CN101416525B - 隔行扫描视频的高级双向预测编码方法和系统 - Google Patents

隔行扫描视频的高级双向预测编码方法和系统 Download PDF

Info

Publication number
CN101416525B
CN101416525B CN2004800246218A CN200480024621A CN101416525B CN 101416525 B CN101416525 B CN 101416525B CN 2004800246218 A CN2004800246218 A CN 2004800246218A CN 200480024621 A CN200480024621 A CN 200480024621A CN 101416525 B CN101416525 B CN 101416525B
Authority
CN
China
Prior art keywords
motion vector
prediction
value
field
buffering area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2004800246218A
Other languages
English (en)
Other versions
CN101416525A (zh
Inventor
K·慕克吉
T·W·赫尔科比
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101416525A publication Critical patent/CN101416525A/zh
Application granted granted Critical
Publication of CN101416525B publication Critical patent/CN101416525B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/16Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter for a given display mode, e.g. for interlaced or progressive display mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets

Abstract

对于隔行扫描B-半帧或隔行扫描B-帧,正向运动向量使用来自正向运动向量缓冲区的正向运动向量由编码器/解码器预测,而反向运动向量使用来自反向运动向量缓冲区的反向运动向量由编码器/解码器预测。结果的运动向量被添加到相应的缓冲区中。运动向量缓冲区中的空穴可用所估计的运动向量值填充。编码器/解码器在隔行扫描B-帧的半帧编码宏块中的半帧之间切换预测模式。对于隔行扫描B-半帧或隔行扫描B-帧,编码器/解码器计算直接模式运动向量。对于隔行扫描B-半帧或隔行扫描B-帧,编码器/解码器使用4MV编码。编码器/解码器使用“自参考”B-帧。编码器发送二进制信息,表示对隔行扫描B-半帧的一个或多个宏块的预测模式是正向还是非正向的。编码器/解码器使用帧内编码的B-半帧[“BI-半帧”]。

Description

隔行扫描视频的高级双向预测编码方法和系统
相关申请
本申请要求对申请号为60/501,081题为“视频编码和解码工具和技术”(VideonEncoding and Decoding Tools and Techniques)并于2003年9月7日提交的美国临时专利申请的权利,该申请通过参考结合于此。
以下共同待批的美国专利申请涉及本申请,并通过参考结合于此:1)序列号为10/622,378题为“视频帧的高级双向预测编码”(Advanced Bi-DirectionalPredictive Coding of Video Frames)并于2003年7月18日提交的美国专利申请;2)序列号为10/622,284题为“帧内和帧间隔行扫描编码和解码”(Intraframe andInterframe Interlace Coding and Decoding)并于2003年7月18日提交的美国专利申请;3)序列号为10/622,841题为“运动向量信息的编码”(Coding of Motion VectorInformation)并于2003年7月18日提交的美国专利申请;4)序列号为10/857,473题为“预测用于正向预测的隔行扫描视频帧的各个半帧的运动向量”(PredictingMotion Vectors for Fields of Forward-predicted Interlaced Video Frames)并于2004年5月27日提交的美国专利申请。
技术领域
描述了用于隔行扫描视频编码和解码的技术和工具。例如,视频编码器对隔行扫描视频中的双向预测宏块进行编码。
背景技术
数字视频消耗大量的存储和传输容量。典型的原始数字视频序列包括每秒15或30个图片。每个图片可包括数万或数十万个像素(也称为pel)。每个像素表示图片的小元素。在原始形式中,计算机通常用24个比特或以上来表示像素。因而,典型的原始数字视频序列的每秒比特数或比特率可以是5百万比特/秒或以上。
大多数计算机和计算机网络缺乏处理原始数字视频的资源。为此,工程师们使用压缩(也称为译码或编码)来降低数字视频的比特率。压缩可以是无损的,其中视频的质量未受损,但比特率的降低受视频复杂性的限制。或者,压缩可以是有损的,其中视频的质量受损,但可获得的比特率降幅更大。解压缩是压缩的反向过程。
一般而言,视频压缩技术包括“帧内”压缩和“帧间”或预测压缩。帧内压缩技术压缩通常称为I-帧或关键帧的各个图片。帧间压缩技术参考前面和/或后续的各帧来压缩各个帧,而经帧间压缩的帧通常称为预测帧、P-帧、或B-帧。
I.Windows Media Video版本8和9中的帧间压缩
微软公司的Windows Media Video版本8[“WMV8”]包括视频编码器和视频解码器。WMV8编码器使用帧内压缩和帧间压缩,且WMV8解码器使用帧内解压缩和帧间解压缩。Windows Media Video版本9[“WMV9”]则将类似的体系结构用于许多操作。
WMV8编码器中的帧内压缩使用基于块的运动补偿预测编码,然后使用残差的变换编码。图1和2示出WMV8编码器中预测帧的基于块的帧间压缩。特别地,图1示出对预测帧110的运动估计,而图2示出对预测帧的运动补偿块的预测残差压缩。
例如,在图1中,WMV8编码器计算用于预测帧110中的宏块115的运动向量。为了计算该运动向量,编码器在参考帧130的搜索区域135中进行搜索。在搜索区域135内,编码器对来自预测帧110的宏块115和各个候选宏块作比较,以便于寻找是好匹配的候选宏块。编码器输出指定匹配宏块的(经熵编码的)运动向量。
因为运动向量值常常相关于空间上位于四周的运动向量的值,所以用来传送运动向量信息的数据的压缩可通过从相邻宏块中选择运动向量预测值,并使用该预测值来预测当前宏块的运动向量来获得。编码器可编码运动向量和预测值之前的差值。在通过将差值添加到预测值中重构运动向量之后,解码器使用该运动向量来用来自参考帧130的信息计算用于宏块115的预测宏块,该参考帧是在编码器和解码器上可用的先前重构帧。预测很少是完美的,所以编码器常常编码预测宏块和宏块115本身之间的像素差异(也称为误差或残差块)的各个块。
图2示出WMV8编码器中误差块235的计算和编码的一个示例。该误差块235是预测块215和原始当前块225之间的差异。编码器将离散余弦变换[“DCT”]240应用于误差块235,得到系数的8x8块245。然后编码器量化(250)DCT系数,得到经量化的DCT系数的8x8块255。编码器将8x8块255扫描(260)成一维数组265,从而系数通常从最低频率到最高频率进行排序。编码器使用运行长度编码270的变体来熵编码经扫描的系数。编码器从一个或多个run/level/last表格275中选择熵码,并输出该熵码。
图3示出对经帧间编码块的相应解码过程300的一个示例。从图3总地看来,解码器使用具有一个或多个run/level/last表格315的可变长度解码310和运行长度解码320来解码(310、320)表示预测残差的经熵编码的信息。解码器将存储了经熵编码信息的一维数组325逆扫描(330)成二维块335。解码器逆量化并逆离散余弦变换(一起编号为340)该数据,产生经重构的误差块345。在独立的运动补偿路径中,解码器使用运动向量信息355来计算预测块365,用于相对参考帧的位移。解码器将预测块365与经重构的误差块345组合(370)在一起,以形成重构块375。
原始和重构帧之间的改变量是失真,且编码该帧所需的比特数表示该帧的速率。失真量大致与速率成反比。
II.隔行扫描视频和逐行扫描视频
视频帧包含视频信号的各行空间信息。对于逐行扫描视频,这些行包含从一时刻开始并继续后续行直到帧的底部的样本。逐行扫描I帧是帧内编码的逐行扫描视频帧。逐行扫描P帧是使用正向预测编码的逐行扫描视频帧,而逐行扫描B帧是使用双向预测编码的逐行扫描视频帧。
典型的隔行扫描视频帧由在不同时间开始扫描的两个半帧组成。例如,参照图4,隔行扫描的视频帧400包括上半帧410和下半帧420。通常,偶数编号行(上半帧)在一时间(例如时间t)开始扫描而奇数编号行(下半帧)在不同(通常为后续)时间(例如时间t+1)开始扫描。该定时可在隔行扫描视频帧的区域中创建锯齿状特征,其中因为两个半帧在不同时间开始扫描而呈现运动。因此,各个隔行扫描的视频帧可根据半帧结构来重新排列,其中奇数行组合在一个半帧中而偶数行组合在另一个半帧中。称为半帧编码的该排列对在高运动图片中减少这种锯齿边缘人工效应是有用的。另一方面,在静态区域中,隔行扫描视频帧中的图像细节无需这种重新排列就可更为有效地保留。因此,帧编码常用于静态或低运动的隔行扫描视频帧,其中原始的交替半帧行排列得以保留。
典型的逐行扫描视频帧由具有非交替行的一内容帧组成。与隔行扫描视频相比,逐行扫描视频不将视频帧分成各个半帧,并且整个帧从某个时间开始进行从左到右、从上到下的扫描。
III.先前WMV编码器和解码器中的P-帧编码和解码
先前的WMV编码器和解码器使用P-帧中的逐行扫描及隔行扫描的编码和解码。在隔行扫描和逐行扫描的P-帧中,运动向量通过计算运动向量和运动向量预测值之间的差值来在编码器中编码,其中运动向量预测值基于相邻的运动向量进行计算。并且,在解码器中,运动向量通过将运动向量差值添加到运动向量预测值来重新构建,其中运动向量预测值再次基于相邻的运动向量进行计算(这次是在解码器中)。当前宏块的预测值或当前宏块的半帧基于候选预测值来选择,而运动向量差值基于该预测值来计算。通过将运动向量差值添加到编码器侧或解码器侧的选定运动向量预测值,可重构运动向量。通常,亮度运动向量从经编码的运动信息中重构,而色度运动向量从经重构的亮度运动向量中导出。
A.逐行扫描P-帧的编码和解码
例如,在先前的WMV编码器和解码器中,逐行扫描P-帧可包含以一运动向量(1MV)模式或四运动向量(4MV)模式编码的宏块,或被跳过的宏块,其中决定通常在逐个宏块的基础上作出。仅具有1MV宏块(以及可能被跳过的宏块)的P-帧被称为1MV P-帧,而都具有1MV和4MV宏块(以及可能被跳过的宏块)的P-帧被称为混合MV的P-帧。一个运动向量与每个1MV宏块相关联,而四个运动向量与每个4MV宏块相关联(每个块一个)。
图5A和5B是示出被视作用于1MV逐行扫描P-帧中宏块的候选运动向量预测值的宏块的位置的示图。候选预测值从左边、上方和右上方宏块中取得,除了宏块是行中最后一个宏块的情形。在该情形中,Predicator(预测值)B从左上方宏块而不是从右上方中取得。对于帧为一个宏块宽的特定情形,预测值总是预测值A(顶部预测值)。当因为宏块在首行中从而预测值A在界限之外时,预测值为预测值C。各种其它规则解决其它特定情形,诸如帧内编码的预测值。
图6A-10示出被视作用于混合MV帧中的1MV或4MV宏块的运动向量的至多3个候选运动向量的块或宏块的位置。在以下附图中,较大的正方形是宏块边界而较小的正方形是块边界。对于帧为一个宏块宽的特定情形,预测值总是PredictorA(顶部预测值)。各种其它规则解决其它特定情形,诸如用于首行4MV宏块的首行块、首行1MV宏块、以及帧内编码预测值。
图6A和6B是示出被视作用于混合MV帧中的1MV当前宏块的候选运动向量预测值的块的位置的示图。相邻的各个宏块可以是1MV或4MV宏块。图6A和6B示出假设邻居都是4MV的候选运动向量的位置(即预测值A是当前宏块上面的宏块中块2的运动向量,而预测值C是当前宏块左侧紧邻的宏块中块1的运动向量)。如果邻居的任一个是1MV宏块,则图5A和5B中示出的运动向量预测值被视为整个宏块的运动向量预测值。如图6B所示,如果宏块是该行中的最后一个宏块,则预测值B来自左上方宏块的块3而不像其它情形一样来自右上方宏块的块2。
图7A-10示出被视作用于4MV宏块中4个亮度块的每一个的候选运动向量预测值的块的位置。图7A和7B是示出被视作用于位置0上一个块的候选运动向量预测值的块的位置的示图;图8A和8B是示出被视作用于位置1上一个块的候选运动向量预测值的块的位置的示图;图9是示出被视作用于位置2上一个块的候选运动向量预测值的块的位置的示图;而图10是示出被视作用于位置3上一个块的候选运动向量预测值的块的位置的示图。再一次,如果邻居是1MV宏块,则该宏块的运动向量预测值用于该宏块的各个块。
对于宏块是行中第一宏块的情形,块0的预测值B与该行中剩余宏块的块0进行不同的处理(参见图7A和7B)。在该情形中,预测值B从当前宏块上面紧邻宏块的块3中取得,而不像其它情形一样从当前宏块左上方的宏块的块3中取得。类似地,对于宏块是行中最后一个宏块的情形,对块1的预测值B进行不同的处理(参见图8A和8B)。在该情形中,预测值从当前宏块上面紧邻宏块的块2中取得,而不像其它情形一样从当前宏块右上方的宏块的块2中取得。一般而言,如果该宏块在第一宏块列中,则块0和2的预测值C被设置为等于0。
B.先前WMV编码器和解码器中隔行扫描P-帧的编码和解码
先前WMV编码器和解码器将4:1:1宏块格式用于隔行扫描的P-帧,该宏块格式可包含用半帧模式或帧模式编码的宏块,或被跳过的宏块,其中决定通常在逐个宏块的基础上作出。两个运动向量关联于每个半帧编码的宏块(每个半帧一个运动向量),而一个运动向量关联于每个帧编码的宏块。编码器联合编码运动信息,包括水平和垂直运动向量差值分量,以及可能的其它信令信息。
图11和12A-B示出分别用于先前WMV编码器和解码器的隔行扫描P-帧中的帧编码4:1:1宏块和半帧编码4:1:1宏块的运动向量预测的候选预测值的示例。图11示出用于隔行扫描P-帧的内部位置中当前帧编码4:1:1宏块的候选预测值A、B和C(不是宏块行中第一或最后一个宏块、也不是首行)。预测值可从不同于那些标有A、B和C的不同候选方向中获得(例如在诸如当前宏块是行中第一宏块或最后一个宏块或在首行中的特定情形,因为对于这些情形得不到某些预测值)。对于当前的帧编码宏块,候选预测值取决于相邻宏块是半帧编码还是帧编码的来进行不同的计算。对于相邻的帧编码宏块,运动向量简便地取作候选预测值。对于相邻的半帧编码宏块,候选运动向量通过平均上半帧和下半帧运动向量来确定。
图12A-B示出用于半帧内部位置中半帧编码的4:1:1宏块内的当前半帧的候选预测值A、B和C。在图12A中,当前半帧是下半帧,且相邻宏块中的下半帧运动向量被用作候选预测值。在图12B中,当前半帧是上半帧,且相邻宏块中的上半帧运动向量被用作候选预测值。因而,对于当前半帧编码宏块中的每个半帧,每个半帧的候选运动向量预测值的数量最多为3,其中每个候选值来自与当前半帧相同的同一半帧类型(例如上半帧或下半帧)。再一次,各种特定情形(未示出)在当前宏块是行中第一宏块或最后一个宏块,或在首行中时应用,因为对于这些情形得不到某些预测值。
为了从候选预测值集中选择一预测值,讨论中的先前WMV编码器和解码器使用不同的选择算法,诸如三者中值算法或四者中值算法。三者中值预测的过程在图13的伪码1300中说明。四者中值预测的过程在图14的伪码1400中说明。
IV.双向预测
双向预测帧(或B-帧)使用来自源视频的两个帧作为参考(或锚)帧,而不是在P-帧中使用的一个锚。在典型B-帧的锚帧中,一个锚帧来自时间上的过去而另一个锚帧来自时间上的将来。参照图15,视频序列中的B-帧1510具有时间上在先的参考帧1520和时间上将来的参考帧1530。使用B-帧提供了根据更大的比特率节约(例如出现某些类型的移动,诸如闭塞)而有效压缩的优点。具有B-帧的经编码比特流通常比没有B-帧的经编码比特流使用较少的比特,同时提供相似的视觉质量。B-帧还提供在较小设备空间中使用时的更多选项和灵活性。例如,解码器可通过选择不解码或显示B-帧来容许空间和时间限制,因为B-帧通常不被用作参考帧。对视频序列中使用B-帧来使速率-失真改进的估计的范围为从0到50%。
V.先前WMV编码器和解码器中B-帧的编码和解码
先前的WMV编码器和解码器使用B-帧。尽管正向预测帧(例如P-帧)中的宏块仅具有一个方向模式的预测(正向,从先前的I-或P-帧),但B-帧中的宏块可使用五种不同预测模式来预测:正向、反向、直接、插值和帧内。编码器选择并用信号表示比特流中不同的预测模式。例如,讨论中的先前WMV编码器在帧级别上发送经压缩的位平面,表示用于B-帧的每个宏块的直接/非直接模式决定,而非直接模式(诸如正向、反向和插值模式)在宏块级别中示出。
正向模式类似于常规的P-帧预测。在正向模式中,宏块从时间上在先的锚中导出。在反向模式中,宏块从时间上后续的锚中导出。以直接或插值模式预测的宏块在预测中使用正向和反向锚。直接和插值模式使用将两个参考的像素值组合到一个宏块像素集中的舍入平均,如以下公式所示:
平均像素值=(正向插值+反向插值+1)>>1
A.共处(co-located)运动向量的分数编码(Fraction Coding)和缩放
在讨论中的先前WMV编码器和解码器中,编码器通过缩放正向锚的共处运动向量来隐式地导出直接模式的运动向量。该缩放运算依赖于当前B-帧相对于其锚的时间位置。为了编码参考图片的时间位置,编码器使用分数编码。
在分数编码中,编码器显式地将当前B-帧的时间位置编码为其两个锚之间距离的一分数。变量BFRACTION用来表示不同的各个分数,并在帧级别上发送。该分数在0和1之间离散值的有限集上取值。对于直接模式的运动向量,编码器和解码器使用该分数来缩放参考帧中的共处运动向量(MV),从而通过实现以下缩放运算来导出当前B-帧的隐式的直接模式运动向量(MVF和MVB):
MVF=分数*MV
MVF=(分数-1)*MV
图16示出分数编码如何使编码器能任意缩放周围参考帧之间的运动。为了导出在B-帧1620中编码的当前宏块的MVF和MVB,编码器和解码器使用分数编码来缩放将来参考帧1630中相应宏块的运动向量(MV)。在图16所示的示例中,对于分数p和q,p+q=1。该编码器和解码器使用两个隐式的运动向量来处理在先参考帧1640和将来参考帧1630中的宏块,并使用这些的平均来预测当前宏块1610。例如,在图16中,MVF=(dx*p,dy*p)而MVB=(-dx*q,-dy*q)。
图17中的表格1700是用于比特流元素BFRACTION的可变长度代码(VLC)表格。在表格1700所示示例中,3-比特代码字是“短”代码字而7-比特代码字是“长”代码字。该解码器根据图18中所示伪码1800基于分数的分子和分母来寻找缩放系数。
一旦缩放系数已被确定,解码器就用它来缩放用于共处宏块的运动向量的x-和y-元素。给定后续的锚帧是P-帧(对于I-帧,所有的运动向量被假定为(0,0))且共处宏块包含运动向量(MV_X,MV_Y),则解码器导出两个运动向量,其中一个(MV_XF,MV_YF)参考正向(在先)锚帧,而另一个(MV_XB,MV_YB)参考反向(后续)锚帧。
解码器根据图19中所示伪码1900来执行缩放。在伪码1900的函数Scale_Direct_MV中,输入MV_X和MV_Y是来自将来参考图片的共处宏块的运动向量的x-和y-元素,而输出MV_XF、MV_YF、MV_XB和MV_YB是用于被解码宏块的正向和反向指示运动向量的x-和y-元素。
B.B/I帧
讨论中的先前WMV编码器和解码器还在逐行扫描编码和解码中使用帧内B-帧(“B/I-帧”)。B/I帧像I-帧一样编码,因为它们不依赖于参考帧。但与I-帧不一样的是,B/I帧不是关键帧;不允许其它帧将B/I帧用作锚。
C.隔行扫描的B-帧
讨论中的先前WMV编码器和解码器还使用隔行扫描的B-帧。隔行扫描B-帧中的宏块可进行半帧编码或帧编码。经帧编码的宏块可具有一个、两个(例如插值模式的正向和反向运动向量,直接模式的导出正向和反向运动向量)、或没有运动向量,而半帧编码的宏块可取决于预测模式具有多达四个运动向量。例如,在直接模式的半帧编码宏块中,导出四个隐式运动向量:上半帧的正向和反向运动向量,以及下半帧的正向和反向运动向量。
尽管讨论中的先前WMV编码器和解码器使用隔行扫描的B-帧,但它们在若干重要方面受限。例如,每个宏块只允许一种宏块预测模式(例如直接模式、正向模式等),不使用4MV编码(即,对宏块中的每个块使用一个运动向量),且没有任何B-帧部分可以是任何帧的运动补偿的参考。作为另一示例,讨论中的先前WMV编码器和解码器的隔行扫描编码和解码(包括隔行扫描的B-帧)仅使用4:1:1宏块格式执行。
VI.用于视频压缩和解压缩的标准
除了先前的WMV编码器和解码器之外,若干种国际标准涉及视频压缩和解压缩。这些标准包括来自国际电信同盟[“ITU”]的运动图象专家组[“MPEG”]1、2和4标准以及H.261、H.262、H.263和H.264标准。在国际标准中用来获得数字视频序列的数据压缩的主要方法之一是减少图片之间的时间冗余。这些流行压缩方案(MPEG-1、MPEG-2、MPEG-4、H.261、H.263等)使用运动估计和补偿。例如,当前帧被分成均匀的正方形区域(例如各个块和/或宏块)。每个当前区域的匹配区域通过发送该区域的运动向量信息来指定。该运动向量指示在先前编码(和重构)帧中要用作当前区域的预测值的区域的位置。当前区域和参考帧中区域之间称为误差信号逐个像素差值被导出。该误差信号通常具有比原始信号更低的熵。因此,信息可以较低速率进行编码。因为在先前的WMV编码器和解码器中,运动向量值常常相关于空间上位于四周的运动向量,所以用来表示运动向量信息的数据的压缩可通过编码当前运动向量与基于先前编码的、相邻运动向量的预测值之间的差异来获得。
一些国际标准描述隔行扫描视频帧的运动估计和补偿。H.262标准使隔行扫描的视频帧被编码为单个帧或两个半帧,其中帧编码或半帧编码可自适应地在逐帧基础上选择。H.262标准描述基于半帧的预测,这是一种仅使用参考帧的一个半帧的预测模式。H.262标准还描述双基预测,这是两个正向的基于半帧预测值对隔行扫描P-图片中的16x16块平均的预测模式。H.262标准的7.6节描述“半帧预测”,包括在两个参考半帧中进行选择,以用作隔行扫描视频帧的当前半帧的宏块的运动补偿。小节7.6.3描述运动向量预测和重构,其中给定宏块的重构运动向量变成经后续编码/解码宏块的运动向量预测值。这种运动向量预测在许多情形中未能充分预测用于隔行扫描视频帧的半帧的宏块的运动向量。
此外,H.262标准的7.6节描述B-图片的“半帧预测”和“帧预测”。在“半帧预测”和“帧预测”中,对B-图片的预测使用两个最新重构的参考帧(略去其它介入的B-图片)执行,这些参考帧可被编码为两个半帧或单个帧。
知道了视频压缩和解压缩对数字视频的关键重要性,视频压缩和解压缩是得以丰富开发的领域就不足为奇了。然而,不管先前的视频压缩和解压缩技术的优点是什么,它们并不具有以下技术和工具的优点。
发明内容
总而言之,详细描述涉及用于编码和解码双向预测的隔行扫描视频帧(例如隔行扫描的B-半帧、隔行扫描的B-帧)的各种技术和工具。所述技术和工具改进了速率/失真性能,并便于更好地支持具有较低CPU资源的设备(例如具有较小形状系数的设备)。
所述各实施例实现一种或多种用于编码和/或解码隔行扫描B-图片的所述技术和工具,如下包括但不限于:
在一方面中,对于隔行扫描B-帧,编码器/解码器在隔行扫描B-帧的半帧编码宏块中的半帧之间切换预测模式。例如,编码器/解码器在半帧编码宏块中的上半帧的正向预测模式和下半帧的反向模式之间切换。同一半帧编码宏块内正向和反向预测之间的切换使发现对隔行扫描B-帧的不同部分的有效预测模式更为灵活。
在另一方面中,对于隔行扫描B-帧,编码器/解码器通过为先前解码的时间后续锚的共处宏块的上半帧和下半帧的每一个选择至多一个代表性运动向量,计算当前宏块的直接模式运动向量。例如,至少部分地基于编码当前隔行扫描B-帧的宏块的模式(例如1MV模式、2半帧MV模式等)执行选择。
在又一方面中,对于隔行扫描B-半帧或隔行扫描B-帧,编码器/解码器使用4MV编码。例如,4MV被用于单向预测模式(正向或反向模式),但不用于其它可用预测模式(例如直接、插值)。使用4MV允许对隔行扫描B-半帧和隔行扫描B-帧进行更准确的运动补偿;将4MV限制在正向和反向模式减少了编码开销,并避免了关联于组合4MV与诸如直接和插值的模式的解码复杂性。
在另一方面中,对于隔行扫描B-半帧或隔行扫描B-帧,正向运动向量使用来自正向运动向量缓冲区的先前重构(或估计)的正向运动向量由编码器/解码器进行预测,而反向运动向量使用来自反向运动向量缓冲区的先前重构(或估计)的反向运动向量进行预测。结果的运动向量被添加到相应的缓冲区中。运动向量缓冲区中的空穴可用估计的运动向量值来填充。例如,对于隔行扫描B-帧,当正向预测用来预测运动向量且运动向量被添加到正向运动向量缓冲区中时,反向运动向量缓冲区中的相应位置以仅将反向运动向量用作预测值的预测运动向量来填充(“空穴填充”)。作为另一示例,对于隔行扫描B-半帧,要为空穴填充在不同极性的运动向量(例如“相同极性”或“相反极性”)之间选择,编码器/解码器选择主极性半帧运动向量。锚和当前帧之间的距离使用各种语法元素计算,且计算出的距离被用于缩放参考半帧运动向量。各个运动向量缓冲区和各个运动向量缓冲区中的空穴填充使得对隔行扫描B-半帧和隔行扫描B-帧的运动向量预测更为准确。
在又一方面中,对于隔行扫描的B-半帧,编码器/解码器使用“自参考”帧。例如,当前帧中的第二个B-半帧在运动补偿预测中参考来自当前帧的第一B-半帧。使帧中第一个B-半帧用作该帧中第二个B-半帧的参考使得第二个半帧的预测更加准确,同时还保留在当前帧中具有B-半帧的时间可缩放性优点。
在另一方面中,对于隔行扫描的B-半帧,编码器发送指示用于隔行扫描B-半帧中的一个或多个宏块的预测模式是正向还是非正向的二进制信息。例如,编码器在经压缩位平面的B-半帧级别上发送正向/非正向决定信息。在经压缩位平面的B-半帧级别上发送正向/非正向预测模式决定信息可减少预测模式编码的编码开销。解码器执行相应的解码。
在又一方面中,对于隔行扫描的B-半帧,如果下一锚图片的相应半帧中的相应宏块使用四个运动向量编码,则编码器/解码器使用利于主极性的逻辑来选择直接模式的运动向量。例如,如果相应宏块的相同极性运动向量数量上超过其相反极性的运动向量,则编码器/解码器计算相同极性运动向量的中值,以获得用于导出直接模式运动向量的运动向量。该选择过程允许导出准确的用于具有4MV宏块锚的隔行扫描B-半帧的直接模式运动向量。
根据本发明的一个实施例,一种使用视频解码器来解码已编码视频的方法包括:采用所述视频解码器,解码隔行扫描的双向预测图片,其中所述解码包括,对于所述隔行扫描的双向预测图片的当前宏块,所述当前宏块具有第一预测方向的第一运动向量:选择所述第一运动向量的第一组多个候选运动向量预测值,其中所述第一组多个候选运动向量预测值是从用于所述第一预测方向的第一运动向量第一运动向量缓冲区中选择的;至少部分地基于所述第一组多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述第一运动向量的第一运动向量预测值,其中所述第一运动向量预测值是所述第一运动向量的预测的值;将所述第一运动向量存储在所述第一运动向量缓冲区中用于所述当前宏块的位置;至少部分地基于第二组多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算第二运动向量预测值,所述第二组多个候选运动向量预测值来自用于与所述第一预测方向相反的的第二预测方向的第二运动向量缓冲区;将所述第二运动向量预测值存储在所述第二运动向量缓冲区中用于所述当前宏块的对应位置,其中所述第二运动向量预测值是所述第二预测方向的填充第二运动向量的预测的值;其中对所述当前宏块的解码在所述第一预测方向上使用运动补偿,但不在与所述第一预测方向相反的第二预测方向上使用运动补偿,并且其中所述解码还包括在对所述隔行扫描的双向预测图片的一个或多个后续宏块的运动向量预测中使用来自所述第一运动向量缓冲区的第一运动向量和来自所述第二运动向量缓冲区的第二运动向量。
根据本发明的一个实施例,一种使用视频解码器来解码已编码视频的系统包括:用于采用所述视频解码器,解码隔行扫描的双向预测图片的装置,其中用于所述解码的装置和包括,对于所述隔行扫描的双向预测图片的当前宏块,所述当前宏块具有第一预测方向的第一运动向量:用于选择所述第一运动向量的第一组多个候选运动向量预测值的装置,其中所述第一组多个候选运动向量预测值是从用于所述第一预测方向的第一运动向量第一运动向量缓冲区中选择的;用于至少部分地基于所述第一组多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述第一运动向量的第一运动向量预测值的装置,其中所述第一运动向量预测值是所述第一运动向量的预测的值;用于将所述第一运动向量存储在所述第一运动向量缓冲区中用于所述当前宏块的位置的装置;用于至少部分地基于第二组多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算第二运动向量预测值的装置,所述第二组多个候选运动向量预测值来自用于与所述第一预测方向相反的的第二预测方向的第二运动向量缓冲区;用于将所述第二运动向量预测值存储在所述第二运动向量缓冲区中用于所述当前宏块的对应位置的装置,其中所述第二运动向量预测值是所述第二预测方向的填充第二运动向量的预测的值;其中对所述当前宏块的解码在所述第一预测方向上使用运动补偿,但不在与所述第一预测方向相反的第二预测方向上使用运动补偿,并且其中所述解码还包括在对所述隔行扫描的双向预测图片的一个或多个后续宏块的运动向量预测中使用来自所述第一运动向量缓冲区的第一运动向量和来自所述第二运动向量缓冲区的第二运动向量。
根据本发明的另一实施例,一种使用视频解码器来解码已编码视频的方法包括:采用所述视频解码器,解码隔行扫描的双向预测图片,其中所述解码包括,对于在第一预测方向上使用运动补偿但在与所述第一预测方向相反的第二预测方向上不使用运动补偿的当前宏块:选择用于所述隔行扫描的双向预测图片的所述当前宏块的第一预测方向中的第一运动向量的第一组一个或多个候选运动向量预测值,其中所述第一组一个或多个候选运动向量预测值是从用于所述第一预测方向的第一运动向量缓冲区中选择的;至少部分地基于所述第一组一个或多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述第一运动向量的第一运动向量预测值,其中所述第一运动向量预测值是所述第一运动向量的预测的值;至少部分地基于所述第一运动向量预测值重构所述第一运动向量;将重构的第一运动向量添加到所述第一运动向量缓冲区;选择用于所述隔行扫描的双向预测图片的所述当前宏块的第二组一个或多个候选运动向量预测值,其中所述第二组一个或多个候选运动向量预测值是从用于所述第二预测方向的第二运动向量缓冲区中选择的;至少部分地基于所述第二组一个或多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述当前宏块的第二运动向量预测值,其中所述第二运动向量预测值是所述第二预测方向上的填充第二运动向量的预测的值;以及将所述第二运动向量预测值作为所述填充第二运动向量添加到所述第二运动向量缓冲区;其中所述解码还包括在对所述隔行扫描的双向预测图片的一个或多个后续宏块的运动向量预测中使用来自所述第一运动向量缓冲区的所述重构的第一运动向量和来自所述第二运动向量缓冲区的所述第二运动向量预测值。
根据本发明的另一实施例,一种使用视频解码器来解码已编码视频的系统包括:用于采用所述视频解码器,解码隔行扫描的双向预测图片的装置,其中用于所述解码的装置包括,对于在第一预测方向上使用运动补偿但在与所述第一预测方向相反的第二预测方向上不使用运动补偿的当前宏块:用于选择用于所述隔行扫描的双向预测图片的所述当前宏块的第一预测方向中的第一运动向量的第一组一个或多个候选运动向量预测值的装置,其中所述第一组一个或多个候选运动向量预测值是从用于所述第一预测方向的第一运动向量缓冲区中选择的;用于至少部分地基于所述第一组一个或多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述第一运动向量的第一运动向量预测值的装置,其中所述第一运动向量预测值是所述第一运动向量的预测的值;用于至少部分地基于所述第一运动向量预测值重构所述第一运动向量的装置;用于将重构的第一运动向量添加到所述第一运动向量缓冲区的装置;用于选择用于所述隔行扫描的双向预测图片的所述当前宏块的第二组一个或多个候选运动向量预测值的装置,其中所述第二组一个或多个候选运动向量预测值是从用于所述第二预测方向的第二运动向量缓冲区中选择的;用于至少部分地基于所述第二组一个或多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述当前宏块的第二运动向量预测值的装置,其中所述第二运动向量预测值是所述第二预测方向上的填充第二运动向量的预测的值;以及用于将所述第二运动向量预测值作为所述填充第二运动向量添加到所述第二运动向量缓冲区的装置;其中所述解码还包括在对所述隔行扫描的双向预测图片的一个或多个后续宏块的运动向量预测中使用来自所述第一运动向量缓冲区的所述重构的第一运动向量和来自所述第二运动向量缓冲区的所述第二运动向量预测值。
根据本发明的又一实施例,一种视频解码方法包括:选择用于隔行扫描的双向预测图片的当前宏块的第一预测方向中的第一运动向量的第一组多个候选运动向量预测值,其中所述多个候选运动向量预测值是从用于所述第一预测方向的第一运动向量缓冲区中选择的;至少部分地基于所述多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述第一运动向量的第一运动向量预测值,其中所述第一运动向量预测值是所述第一运动向量的预测的值;将所述第一运动向量存储在所述第一运动向量缓冲区中用于所述当前宏块的位置;至少部分地基于来自第二运动向量缓冲区的第二组候选运动向量预测值中的一个或多个候选运动向量预测值,计算第二运动向量预测值,所述第二运动向量缓冲区用于存储与所述第一预测方向相反的第二预测方向上的运动向量;将所述第二运动向量预测值填充在所述第二运动向量缓冲区中用于所述当前宏块的对应位置,其中所述第二运动向量预测值是所述第二预测方向上的填充第二运动向量的预测的值;以及在对所述隔行扫描的双向预测图片的后续宏块的运动预测中使用来自所述第一运动向量缓冲区的第一运动向量和来自所述第二运动向量缓冲区的第二运动向量预测值。
根据本发明的又一实施例,一种视频解码系统包括:用于选择用于隔行扫描的双向预测图片的当前宏块的第一预测方向中的第一运动向量的第一组多个候选运动向量预测值的装置,其中所述多个候选运动向量预测值是从用于所述第一预测方向的第一运动向量缓冲区中选择的;用于至少部分地基于所述多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述第一运动向量的第一运动向量预测值的装置,其中所述第一运动向量预测值是所述第一运动向量的预测的值;用于将所述第一运动向量存储在所述第一运动向量缓冲区中用于所述当前宏块的位置的装置;用于至少部分地基于来自第二运动向量缓冲区的第二组候选运动向量预测值中的一个或多个候选运动向量预测值,计算第二运动向量预测值的装置,所述第二运动向量缓冲区用于存储与所述第一预测方向相反的第二预测方向上的运动向量;用于将所述第二运动向量预测值填充在所述第二运动向量缓冲区中用于所述当前宏块的对应位置的装置,其中所述第二运动向量预测值是所述第二预测方向上的填充第二运动向量的预测的值;以及用于在对所述隔行扫描的双向预测图片的后续宏块的运动预测中使用来自所述第一运动向量缓冲区的第一运动向量和来自所述第二运动向量缓冲区的第二运动向量预测值的装置。
根据本发明的再一实施例,一种使用视频解码器来解码已编码视频的方法包括:在所述视频解码器处接收比特流中的已编码数据;以及采用所述视频解码器,使用所述已编码数据来解码隔行扫描的双向预测图片,其中所述隔行扫描的双向预测图片具有一个或多个正向宏块和一个或多个反向宏块,包括:对所述一个或多个正向宏块中的每一宏块:使用来自正向运动向量缓冲区的一个或多个候选运动向量预测值来预测该宏块的正向运动向量的值;至少部分地基于所述正向运动向量的预测的值来重构所述正向运动向量;将重构的正向运动向量存储在所述正向运动向量缓冲区中用于该宏块的位置;使用来自反向运动向量缓冲区的一个或多个候选运动向量预测值来预测反向运动向量的值;以及将所述反向运动向量的预测的值存储在所述反向运动向量缓冲区中用于该宏块的位置;以及对所述一个或多个反向宏块中的每一宏块:使用来自所述反向运动向量缓冲区的一个或多个候选运动向量预测值来预测该宏块的反向运动向量的值;至少部分地基于所述反向运动向量的预测的值来重构所述反向运动向量;将重构的反向运动向量存储在所述反向运动向量缓冲区中用于该宏块的位置;使用来自所述正向运动向量缓冲区的一个或多个候选运动向量预测值来预测正向运动向量的值;以及将所述正向运动向量的预测的值存储在所述正向运动向量缓冲区中用于该宏块的位置。
各种技术和工具可组合或单独使用。
从以下参照附图进行的不同实施例的详细描述中,本发明的其它特征和优点将变得显而易见。
附图说明
图1是示出根据现有技术的视频编码器的运动估计的示图。
图2是示出根据现有技术的视频编码器中预测残差的8x8块的基于块的压缩。
图3是示出根据现有技术的视频编码器中预测残差的8x8块的基于块的解压缩。
图4是示出根据现有技术的隔行扫描帧的示图。
图5A和5B是示出用于根据现有技术的逐行扫描P-帧中1MV宏块的候选运动向量预测值的宏块的位置的示图。
图6A和6B是示出用于根据现有技术的混合1MV/4MV逐行扫描P-帧中的1MV宏块的候选运动向量预测值的块的位置的示图。
图7A、7B、8A、8B、9和10是示出用于根据现有技术的混合1MV/4MV逐行扫描P-帧中的4MV宏块中各位置上块的候选运动向量预测值的块的位置的示图。
图11是示出用于根据现有技术的隔行扫描P-帧中当前帧编码宏块的候选运动向量预测值的示图。
图12A-12B是示出用于根据现有技术的隔行扫描P-帧中当前半帧编码宏块的候选运动向量预测值的示图。
图13和14是示出根据现有技术的用于分别执行三者中值和四者中值计算的伪码的代码示图。
图15是示出根据现有技术的具有过去和将来参考帧的B-帧的示图。
图16是示出根据现有技术的使用分数编码的直接模式预测的示图。
图17示出根据现有技术的比特流元素BFRACTION的VLC表格。
图18是示出根据现有技术的用于寻找缩放直接模式预测中共处宏块的运动向量的缩放系数的伪码的代码清单。
图19是示出根据现有技术的用于根据缩放系数缩放共处宏块中运动向量的x-和y-元素的伪码的代码清单。
图20是适当计算环境的框图,结合该环境可实现若干所述实施例。
图21是通用视频编码器系统的框图,结合该系统可实现若干所述实施例。
图22是通用视频解码器系统的框图,结合该系统可实现若干所述实施例。
图23是在若干所述实施例中使用的宏块格式的示图。
图24A是一部分隔行扫描视频帧的示图,其中示出上半帧和下半帧的交替行。图24B是为编码/解码组织成帧的隔行扫描视频帧的示图,而图24C是为编码/解码组织成半帧的隔行扫描视频帧的示图。
图25和26是示出具有两个参考半帧的隔行扫描P-半帧的示图。
图27和28是示出使用所允许的最新参考半帧的隔行扫描P-半帧的示图。
图29和30是示出使用所允许的第二最新参考半帧的隔行扫描P-半帧的示图。
图31是示出运动向量的各垂直分量与当前和参考半帧极性的不同组合的相应空间位置之间的关系的示图。
图32是示出当前宏块的两组三个候选运动向量预测值的示图。
图33A-33F是示出用于计算两个参考半帧的隔行扫描P-或B-半帧中的运动向量预测值的伪码的代码清单。
图34A-34B是示出用于缩放来自一个半帧的预测值以导出来自另一个半帧的预测值的伪码的代码清单。
图35和36是示出关联于不同参考帧距离的缩放运算值的表格。
图37是示出隔行扫描P-帧的2半帧MV宏块中亮度块的运动向量和色度块的导出运动向量的示图。
图38是示出隔行扫描P-帧的4帧MV宏块中4个亮度块的每一个的不同运动向量和4个色度子块的每一个的导出运动向量的示图。
图39是示出隔行扫描P-帧的4半帧MV宏块中亮度块的运动向量和色度块的导出运动向量的示图。
图40A-40B是示出隔行扫描P-帧的当前宏块的候选预测值的示图。
图41是示出使用不同预测模式预测隔行扫描B-帧的半帧编码宏块中的各个半帧的运动向量的技术的流程图。
图42是示出计算隔行扫描B-帧的宏块的直接模式运动向量的技术的流程图。
图43是先前已解码的时间上后续锚帧的共处宏块的各个块的缓存运动向量的示图,这些缓存运动向量用于计算隔行扫描B-帧的宏块的直接模式运动向量。
图44是示出使用正向和/或反向运动向量缓冲区预测隔行扫描B-帧的当前宏块的运动向量的技术的流程图。
图45是示出用于预测宏块运动向量的正向运动向量缓冲区和反向运动向量缓冲区中的运动向量的示图。
图46是示出正向运动向量缓冲区和反向运动向量缓冲区中重构宏块的上半帧和下半帧运动向量的示图。
图47是示出描述用于隔行扫描B-半帧运动向量预测中的实值缓存和空穴填充的极性选择过程的伪码的代码清单。
图48A-48B是示出缩放来自一个半帧的预测值以导出来自另一半帧的预测值用于经反向预测的隔行扫描B-半帧的伪码的代码清单。
图49是示出关联于第一隔行扫描B-半帧的不同参考帧距离的缩放运算值的表格。
图50A和50B是示出隔行扫描B-半帧的参考半帧的示图。
图51是示出用于在具有一个或多个位平面编码模式的视频编码器中编码隔行扫描B-半帧的宏块的正向/非正向预测模式决定信息的技术的流程图。
图52是示出用于解码隔行扫描B-半帧的宏块的正向/非正向预测模式决定信息的技术的流程图,其中该决定信息由具有一个或多个位平面编码模式的视频编码器编码。
图53是显示描述对用作隔行扫描B-半帧中直接模式运动向量的基础的运动向量的选择过程的伪码的代码清单。
图54是示出用于组合实现中隔行扫描B-半帧或BI-半帧的帧-层比特流语法的示图。
图55是示出用于组合实现中隔行扫描B-半帧的半帧-层比特流语法的示图。
图56是示出用于组合实现中隔行扫描BI-半帧的半帧-层比特流语法的示图。
图57是用于组合实现中隔行扫描B-半帧的宏块的宏块-层比特流语法的示图。
图58是用于组合实现中隔行扫描BI-半帧的宏块的宏块-层比特流语法的示图。
图59是用于组合实现中隔行扫描B-帧的帧-层比特流语法的示图。
图60是用于组合实现中隔行扫描B-帧的宏块的宏块-层比特流语法的示图。
图61A-61B是示出用于组合实现中解码运动向量差值和主/非主预测值信息的伪码的代码清单。
图62A-62F是示出用于组合实现中计算双参考隔行扫描P-半帧中的运动向量预测值的伪码的代码清单。
图63是示出用于组合实现中确定隔行扫描B-半帧的参考半帧的伪码的代码清单。
图64是示出用于组合实现中收集隔行扫描P-帧的1MV宏块的候选运动向量的伪码的代码清单。
图65、66、67和68是示出用于组合实现中收集隔行扫描P-帧的4帧MV宏块的候选运动向量的伪码的代码清单。
图69和70是示出用于组合实现中收集隔行扫描P-帧的2半帧MV宏块的候选运动向量的伪码的代码清单。
图71、72、73和74是示出用于组合实现中收集隔行扫描P-帧的4半帧MV宏块的候选运动向量的伪码的代码清单。
图75是示出用于组合实现中计算隔行扫描P-帧的帧运动向量的运动向量预测值的伪码的代码清单。
图76是示出用于组合实现中计算隔行扫描P-帧的半帧运动向量的运动向量预测值的伪码的代码清单。
图77A和77B是示出用于组合实现中解码隔行扫描P-帧和B-帧的运动向量差值的伪码的代码清单。
图78是示出用于组合实现中导出隔行扫描P-帧的色度运动向量的伪码的代码清单。
图79A-79C是示出用于隔行扫描B-半帧的宏块的正向/非正向预测模式决定信息的Norm-6和Diff-6位平面编码模式的平铺显示的示图。
具体实施方式
本申请涉及用于隔行扫描视频的有效压缩和解压缩的技术和工具。在各个所述实施例中,视频编码器和解码器结合用于编码和解码双向预测的隔行扫描视频帧的技术,和以包括各种层或级别(例如序列级别、帧级别、半帧级别、宏块级别、和/或块级别)的比特流格式或语法使用的相应信号表示技术。
对所述实现的各种可选方案是可能的。例如,参照流程图描述的方法可通过改变各流程图中所示的各阶段的顺序、或重复或略去某些阶段等来变更。作为另一示例,尽管某些实现参照特定宏块格式进行了描述,但是也可使用其它格式。此外,参照双向预测描述的技术和工具也可应用于其它类型的预测。
各种技术和工具可组合或独立地使用。不同实施例实现所述技术和工具的一种或多种。在此所述的一些技术和工具可用于视频编码器或解码器,或者在一些其它系统中并非具体受限于视频编码或解码。
I.计算环境
图20示出可实现若干所述实施例的适当计算环境2000的通用示例。计算环境2000并非旨在提出对本发明使用范围或功能的任何限制,因为本发明的技术和工具可在不同的通用或专用计算环境中实现。
参照图20,计算环境2000包括至少一个处理单元2010和存储2020。在图20中,该最基本配置2030包括在虚线内。处理单元2010执行计算机可执行指令,且可以是实际或虚拟处理器。在多处理系统中,多个处理单元执行计算机可执行指令以增加处理能力。存储器2020可以是易失性存储器(例如寄存器、高速缓存、RAM)、非易失性存储器(例如ROM、EEPROM、闪存等)或两者的组合。存储器2020存储实现进行隔行扫描视频帧的双向预测的视频编码器或解码器的软件2080。
计算环境可具有附加特征。例如,计算环境2000包括存储2040、一个或多个输入设备2050、一个或多个输出设备2060、以及一个或多个通信连接2070。诸如总线、控制器或网络的互连机制(未示出)使计算环境2000的各个组件互相连接。通常,操作系统软件(未示出)向在计算环境2000中执行的其它软件提供一个操作环境,并协调计算环境2000的各个组件的动作。
存储2040可以是可移动或不可移动的,并包括磁盘、磁带或盒式磁带、CD-ROM、CD-RW、DVD、或任何其它可用于存储信息并可在计算环境2000内访问的媒体。存储2040为软件2080存储实现视频编码器或解码器的指令。
输入设备2050可以是诸如键盘、鼠标、电子笔、或跟踪球、语音输入设备、扫描设备、或向计算环境2000提供输入的另一设备。对于音频或视频编码,输入设备2050可以是接受模拟或数字形式的音频或视频输入的声卡、视频卡、TV调谐器卡或相似设备、或将音频或视频样本读入计算环境2000中的CD-ROM或CD-RW。输出设备2060可以是显示器、打印机、扬声器、CD刻录机、或从计算环境2000提供输出的另一设备。
通信连接2070允许经通信媒体与另一计算实体的通信。通信媒体在已调制数据信号中传送诸如计算机可执行指令、音频或视频输入或输出、或其它数据等信息。已调制数据信号是使其特征的一个或多个以在信号中编码信息的方式进行设置或改变的信号。作为示例且非限制,通信媒体包括用电子、光学、RF、红外线、声学或其它载体实现的有线或无线技术。
这些技术和工具可在计算机可读媒体的一般上下文中描述。计算机可读媒体是可在计算环境内访问的任何可用媒体。作为示例,但非限制,对于计算环境2000,计算机可读媒体包括存储器2020、存储2040、通信媒体、以及以上任一个的组合。
这些技术和工具可在计算机可执行指令的一般上下文中描述,诸如在目标实际或虚拟处理器上的计算环境中执行的程序模块所包括的计算机可执行指令。通常,程序模块包括执行具体任务或实现具体抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。程序模块的功能可在各个实施例中按需在程序模块之间组合或划分。程序模块的计算机可执行指令可在本地或分布式的计算环境内执行。
为说明起见,详细描述使用像“估计”、“补偿”、“预测”和“应用”的术语来描述计算环境中的计算机操作。这些术语是由计算机执行的操作的高层抽象,且不应与人执行的动作相混淆。对应于这些术语的实际计算机操作取决于实现而变化。
II.通用视频编码器和解码器
图21是通用视频编码器2100的框图,结合该系统可实现若干所述实施例。图22是通用视频解码器2200的框图,结合该系统可实现若干所述实施例。
编码器2100和解码器2200内各模块之间的所示关系表示编码器和解码器中的一般信息流;其它关系为简化起见并未示出。特别地,图21和22通常并未示出表示用于视频序列、图片、宏块、块等的编码器设置、模式、表格等的辅助信息。这些辅助信息通常在辅助信息的熵编码之后在输出比特流中发送。输出比特流的格式可以是Windows Media Video版本9格式或其它格式。
编码器2100和解码器2200处理视频图片,它们可以是视频帧、视频半帧、或帧和半帧的组合。图片和宏块级别上的比特流语法和语义可依赖于是使用帧还是半帧。也可以有对宏块组织和整体定时的改变。编码器2100和解码器2200是基于块的,并对帧使用4:2:0的宏块格式,其中每个宏块包括4个8x8亮度块(常被视为一个16x16宏块)和2个8x8色度块。对于半帧,可使用相同或不同的宏块组织和格式。这些8x8块可在不同阶段上作进一步的细分,例如在频率变换和熵编码阶段。示例视频帧组织如下进行更详细的描述。或者,编码器2100和解码器2200是基于对象的、使用不同的宏块或块格式、或对不同于8x8块和16x16宏块的大小或配置的像素集执行操作。
取决于所需的压缩实现和类型,编码器或解码器的模块可添加、略去、划分成多个模块、与其它模块相组合、和/或用类似模块替换。在替换实施例中,具有不同模块和/或模块其它配置的编码器或解码器执行一种或多种所述技术。
A.视频帧组织
在一些实现中,编码器2100和解码器2200处理如下组织的视频帧。帧包含视频信号的各行空间信息。对于逐行扫描视频,这些行包含从一时刻开始并继续后续行直到帧的底部的样本。逐行扫描视频帧被分成诸如图23中所示宏块2300的宏块。宏块2300包括4个8x8亮度块(Y1到Y4)和与4个亮度块共处的2个8x8色度块,这些色度块符合常规的4:2:0宏块格式但在水平和垂直方向分辨率减半。这些8x8块可在不同阶段上作进一步的细分,例如在频率变换(例如8x4、4x8或4x4DCT)和熵编码阶段。逐行扫描I-帧是帧内编码的逐行扫描视频帧。逐行扫描P-帧是使用正向预测编码的逐行扫描视频帧,而逐行扫描B-帧是使用双向预测编码的逐行扫描视频帧。逐行扫描P-和B-帧可包括帧内编码宏块以及不同类型的经预测宏块。
隔行扫描视频帧由一个帧的两次扫描组成-一次包括该帧的偶数行(上半帧)而另一次包括该帧的奇数行(下半帧)。这两个半帧可表示两个不同时段,或者它们可来自同一时段。图24A示出隔行扫描视频帧2400的一部分,包括隔行扫描视频帧2400中左上方的上半帧和下半帧的交替行。
图24B示出为编码/解码而组织为帧2430的图24A的隔行扫描视频帧2400。隔行扫描视频帧2400已被分成诸如宏块2431和2432的宏块,它们使用如图23所示的4:2:0格式。在亮度平面中,每个宏块2431、2432包括来自上半帧的8行、与之交替的来自下半帧的8行(一共为16行),且每一行为16像素长。(宏块2431、2432内亮度块和色度块的实际组织和放置并未示出,且实际上对于不同的编码决定可变化。)在给定宏块内,上半帧信息和下半帧信息在各个阶段的任一个上可联合或独立地编码。隔行扫描的I-帧是隔行扫描视频帧的两个帧内编码半帧,其中宏块包括两个半帧的信息。隔行扫描P-帧是使用正向预测编码的隔行扫描视频帧的两个半帧,而隔行扫描B-帧是使用双向预测编码的隔行扫描视频帧的两个半帧,其中宏块包括两个半帧的信息。隔行扫描P-和B-帧可包括帧内编码宏块以及不同类型的预测宏块。
图24C示出为编码/解码而组织为半帧2460的图24A的隔行扫描视频帧2400。隔行扫描视频帧2400的两个半帧的每一个被分成各个宏块。上半帧被分成诸如宏块2461的宏块,而下半帧被分成诸如宏块2462的宏块。(再一次,各宏块使用如图23所示的4:2:0格式,且各宏块内亮度块和色度块的组织和放置并未示出。)在亮度平面中,宏块2461包括来自上半帧的16行、宏块2462包括来自下半帧的16行,且每一行为16像素长。隔行扫描的I-半帧是隔行扫描视频帧的单个独立表示半帧。隔行扫描P-半帧是使用正向预测编码的隔行扫描视频帧的单个独立表示半帧,而隔行扫描B-半帧是使用双向预测编码的隔行扫描视频帧的单个独立表示半帧。隔行扫描P-和B-半帧可包括帧内编码宏块以及不同类型的预测宏块。
术语图片通常指源、经编码或重构的图像数据。对于逐行扫描视频,图片是逐行扫描视频帧。对于隔行扫描视频,取决于上下文,图片可指隔行扫描视频帧、帧的上半帧、或帧的下半帧。
或者,编码器2100或解码器2200是基于对象的、使用不同的宏块或块格式、或对不同于8x8块和16x16宏块的大小或配置的像素集执行操作。
B.视频编码器
图21是通用视频编码器系统2100的框图。编码器系统2100接收包括当前图片2105的一个视频图片序列(例如,逐行扫描视频帧、隔行扫描视频帧、或隔行扫描视频帧的半帧),并产生压缩后视频信息2195作为输出。视频编码器的特定实施例通常使用通用编码器2100的变体或补充版本。
编码器系统2100压缩预测图片和关键图片。为演示起见,图21示出关键图片通过编码器系统2100的路径,以及预测图片的路径。编码器系统2100的许多组件用于压缩关键图片和预测图片。由那些组件执行的确切操作可取决于所压缩的信息类型而变化。
预测图片(例如逐行扫描p-帧或b-帧、隔行扫描p-半帧或b-半帧、或隔行扫描p-帧或b-帧)根据来自一个或多个其它图片(通常称为参考图片或锚)的预测(或差值)来表示。预测残差是所预测图片和原始图片之间的差值。相反,关键图片(例如逐行扫描I-帧、隔行扫描I-半帧、或隔行扫描I-帧)不参照其它图片进行压缩。
如果当前图片2105是正向预测图片,则运动估计器2110参照一个或多个参考图片估计当前图片2105的宏块或其它像素集的运动,其中参考图片是例如缓存在图片存储2120中的重构的先前图片2125。如果当前图片2105是双向预测图片,则运动估计器2110参照(例如隔行扫描B-半帧的)多达4个重构参考图片来估计当前图片2105中的运动。通常,运动估计器参照一个或多个时间上在先的参考图片和一个或多个时间上将来的参考图片来估计B-图片中的运动。因此,编码器系统2100可将分别的存储2120和2122用于多个参考图片。对于有关逐行扫描B-帧的更多信息,参见序列号为10/622,378题为“Advanced Bi-Directional PredictiveCoding of Video Frames”(视频帧的高级双向预测编码)并于2003年7月18日提交的美国专利申请。
运动估计器2110可按像素、1/2像素、1/4像素或其它增量进行估计,并可在逐个图片基础或其它基础上切换运动估计的分辨率。运动估计器2110(和补偿器2130)还可在每帧或其它基础上在参考图片像素插值类型之间(例如双三次和双线性)切换。运动估计的分辨率可水平地或垂直地相同或不同。运动估计器2110输出诸如差值运动向量信息的辅助信息运动信息2115。编码器2100通过例如计算运动向量的一个或多个预测值、计算运动向量和预测值之间的差值、并熵编码这些差值,来编码运动信息。为了重构运动向量,运动补偿器2130组合预测值与差值运动向量信息。用于计算运动向量预测值、计算差值运动向量、并重构隔行扫描B-半帧和隔行扫描B-帧的运动向量的各种技术如下所述。
运动补偿器2130将重构运动向量应用于重构图片2125,以形成经运动补偿的当前图片2135。然而,预测很少是完美的,且经运动补偿的当前图片2135和原始的当前图片2105之间的差值为预测残差2145。在图片的随后重构中,预测残差2145被添加到经运动补偿的当前图片2135中,以获得更接近于原始当前图片2105的重构图片。然而,在有损压缩中,仍有一些信息从原始当前图片2105中丢失。或者,运动估计器和运动补偿器应用另一类型的运动估计/补偿。
频率变换器2160将空间域视频信息转换成频域(即频谱)数据。对于基于块的视频图片,频率变换器2160将DCT、DCT的变体、或其它块变换应用于像素数据或预测残差数据的块,从而产生频率变换系数的块。或者,频率变换器2160应用诸如傅立叶变换的另一种常规频率变换、或使用小波或子频带分析。频率变换器2160可应用8x8、8x4、4x8、4x4或其它大小的频率变换。
然后量化器2170量化频谱数据系数的各个块。该量化器将均匀的标量量化应用于频谱数据,其中步长在逐个图片或其它基础上变化。或者,量化器将另一种类型的量化应用于频谱数据系数,例如不均匀的向量或非自适应量化,或者直接在不使用频率变换的编码器系统中量化空间域数据。除了自适应量化之外,编码器2100可将帧丢弃、自适应滤波或其它技术用于速率控制。
编码器2100可将特定的信号表示用于被跳过的宏块,该宏块是没有特定类型信息的宏块(例如没有该宏块的运动信息和没有残差信息)。
当需要重构后的当前帧用于随后的运动估计/补偿时,逆量化器2176对量化后的频谱数据系数执行逆量化。然后反向频率变换器2166执行频率变换器2160的反向操作,产生重构后预测残差(用于预测图片)或重构后的关键图片。如果当前图片2105是关键图片,则重构后的关键图片被取作重构后的当前图片(未示出)。如果当前图片2105是预测图片,则重构后的预测残差被添加到经运动补偿的当前图片2135中以形成重构后的当前图片。一个或多个图片存储2120、2122缓存重构后的当前图片,以用于运动补偿预测。在某些实施例中,编码器将解块滤波器应用于重构后的帧以自适应地使图片中的间断点和其它人工效应平滑。
熵编码器2180压缩量化器2170的输出以及某些辅助信息(例如运动信息2115、量化步长)。典型的熵编码技术包括算术编码、差分编码、哈夫曼编码、运行长度编码、LZ编码、字典编码以及以上的组合。熵编码器2180通常使用用于不同类型信息(例如DC系数、AC系数、不同类型的辅助信息)的不同编码技术,并可从特定编码技术内的多个代码表中选择。
熵编码器2180向多路复用器[“MUX”]2190提供压缩后的视频信息2195。MUX 2190可包括缓冲区,且缓冲区级别指示符被反馈给比特率自适应模块作速率控制。在MUX 2190之前或之后,压缩后的视频信息2195可被信道编码用于在网络上传输。信道编码可将差错检测和纠正数据应用于压缩后的视频信息2195。
C.视频解码器
图22是一般视频解码器系统2200的框图。解码器系统2200接收用于视频图片的经压缩序列的信息2295,并产生包括重构图片2205的输出(例如,逐行扫描视频帧、隔行扫描视频帧、或隔行扫描视频帧的半帧)。视频解码器的特定实施例通常使用通用解码器2200的变体或补充版本。
解码器系统2200解压缩预测图片和关键图片。为演示起见,图22示出关键图片通过解码器系统2200的路径,以及正向预测图片的路径。解码器系统2200的许多组件用于解压缩关键图片和预测图片。由那些组件执行的确切操作取决于所解压缩的信息类型而变化。
DEMUX(多路分解器)2290接收压缩后视频序列的信息2295,并使接收到的信息可用于熵解码器2280。DEMUX 2290可包括一抖动缓冲区和其它缓冲区。在DEMUX 2290之前或之后,经压缩的视频信息可进行信道解码和用于差错检测和纠正处理。
熵解码器2280通常应用编码器中执行的熵编码的逆,对熵编码后的量化数据以及熵编码后的辅助信息(例如运动信息2215、量化步长)进行熵解码。熵解码技术包括算术解码、差分解码、哈夫曼解码、运行长度解码、LZ解码、字典解码以及以上的组合。熵解码器2280经常使用用于不同类型信息(例如DC系数、AC系数、不同类型的辅助信息)的不同解码技术,并可从特定解码技术内的多个代码表中选择。
解码器2200通过例如计算运动向量的一个或多个预测值、熵解码差值运动向量、并组合解码后的差值运动向量和用于重构运动向量的预测值,来解码运动2215。用于计算运动向量预测值、计算差值运动向量、并重构隔行扫描B-半帧和隔行扫描B-帧的各种技术如下所述。
运动补偿器2230将运动信息2215应用于一个或多个参考图片2225,以形成被重构的图片2205的预测值2235。例如,运动补偿器2230使用一个或多个宏块运动向量来寻找参考图片2225中的宏块。一个或多个图片存储(例如图片存储2220、2222)存储先前重构后的图片,以用作参考图片。通常,B-图片具有一个以上的参考图片(例如至少一个时间上在先的参考图片和至少一个时间上将来的参考图片)。因此,解码器系统2200可将分别的图片存储2220和2222用于多个参考图片。运动补偿器2230可按像素、1/2像素、1/4像素或其它增量补偿运动,并可在逐个图片基础或其它基础上切换运动补偿的分辨率。运动补偿器2230还可在每帧或其它基础上在参考图片像素插值类型之间(例如双三次和双线性)切换。运动补偿的分辨率可水平地或垂直地相同或不同。或者,运动补偿器应用另一类型的运动补偿。由运动补偿器进行的预测很少是完美的,因此解码器2200还重构预测残差。
逆量化器2270对熵解码后的数据执行逆量化。一般而言,该逆量化器将均匀的标量逆量化应用于熵解码后的数据,其中步长在逐帧或其它基础上变化。或者,该逆量化器将另一种类型的逆量化应用于数据,例如在不均匀的向量或非自适应量化后重构,或者在不使用逆频率变换的解码器系统中直接逆量化空间域数据。
逆频率变换器2260将量化后的频域数据转换成空间域视频信息。对于基于块的视频图片,逆频率变换器2260将逆DCT[“IDCT”]、IDCT的变体、或其它逆向块变换应用于频率变换系数的块,从而分别产生关键图片或预测图片的像素数据或预测残差数据。或者,反向频率变换器2260应用诸如傅立叶逆变换的另一种常规反向频率变换、或使用小波或子频带分析。反向频率变换器2260可应用8x8、8x4、4x8、4x4或其它大小的反向频率变换。
对于预测图片,解码器2200组合重构后的预测残差2245和经运动补偿的预测2235来形成重构后的图片2205。当解码器需要用于随后运动补偿的重构后图片2205时,一个或两个图片存储(例如图片存储2220)缓存重构后图片2205,以用于预测下一图片。在一些实施例中,解码器2200将解块滤波器应用于重构后图片以自适应地使图片中的间断点和其它人工效应平滑。
III.隔行扫描P-半帧和隔行扫描P-帧
典型的隔行扫描视频帧由在不同时间扫描的两个半帧(例如上半帧和下半帧)组成。一般而言,通过一起编码半帧来编码隔行扫描视频帧的静态区域是更为有效的(“帧模式”编码)。另一方面,通过分开编码半帧来编码隔行扫描视频帧的移动区域通常更为有效(“半帧模式”编码),因为这两个半帧倾向于具有不同的运动。正向预测的隔行扫描视频帧可被编码为两个独立的正向预测半帧-隔行扫描P-半帧。例如,当在隔行扫描视频帧上有较高运动从而在各半帧之间有很大差异时,分开编码正向预测的隔行扫描视频帧的半帧会比较有效。
或者,正向预测的隔行扫描视频帧可使用半帧编码和帧编码的混合来编码为隔行扫描P-帧。对于隔行扫描P-帧的宏块,该宏块包括上半帧和下半帧的像素行,且各行可用帧编码模式一起编码,或用半帧编码模式分开编码。
A.隔行扫描P-半帧
隔行扫描P-半帧参考一个或多个先前解码的半帧。例如,在一些实现中,隔行扫描P-半帧参考一个或两个先前解码的半帧,而隔行扫描B-半帧参考多达两个先前的和两个将来的参考半帧(即多达总共四个参考半帧)。(用于隔行扫描B-半帧的编码和解码技术在下面详细描述。)
图25和26示出具有两个参考半帧的隔行扫描P-半帧的示例。在图25中,当前半帧2510参考时间上在先的隔行扫描视频帧中的上半帧2520和下半帧2530。因为半帧2540和2550是隔行扫描的B-半帧,所以它们不用作参考半帧。在图26中,当前半帧2610参考在包含当前半帧2610的隔行扫描视频帧前面紧邻的隔行扫描视频帧中的上半帧2620和下半帧2630。对于有关双参考的隔行扫描P-半帧的更多信息,参见序列号为xx/yyy,zzz题为“Predicting Motion Vectors for Fields ofForward-predicted Interlaced Video Frames”(预测正向预测的隔行扫描视频帧的半帧的运动向量)并于2004年5月27日提交的美国专利申请。
图27和28示出具有一个参考半帧-所允许的时间上最新参考半帧的隔行扫描P-半帧的示例。在图27中,当前半帧2710参考时间上在先的隔行扫描视频帧的下半帧2730,但不参考该隔行扫描视频帧上不那么新的上半帧2720。在图27所示示例中,半帧2740和2750是隔行扫描B-半帧,且不是所允许的参考半帧。在图28中,当前半帧2810参考在包含当前半帧2810的隔行扫描视频帧前面紧邻的隔行扫描视频帧中的下半帧2830,而不参考不那么新的上半帧2820。
图29和30示出使用所允许的第二最新参考半帧的隔行扫描P-半帧的示例。在图29中,当前半帧2910参考时间上在先的隔行扫描视频帧的上半帧2920,但不参考更新的下半帧2920。在图29所示示例中,半帧2940和2950是隔行扫描B-半帧,且不是所允许的参考半帧。在图30中,当前半帧3010参考上半帧3020,而不参考更新的下半帧3030。
在一实现中,图25-30中示出的全部情形在隔行扫描P-半帧语法中都是许可的。其它实现也是可能的。例如,图片可将来自不同类型或时间位置的其它图片的半帧用作参考半帧。
1.半帧图片坐标系统和半帧极性
运动向量表示以1/4像素为单位的水平和垂直位移。例如,如果运动向量的垂直分量表示6个1/4像素单位的位移,则这表示参考块是当前块位置下方1.5个半帧行处(6*1/4=1 1/2)。
图31示出在一实现中运动向量的垂直分量和空间位置之间的关系。图31所示示例示出当前和参考半帧类型(例如上和下)的三种不同组合的三种不同情形3110、3120和3130。如果半帧类型对当前和参考半帧不同,则极性“相反”。如果半帧类型相同,则极性“相同”。对于每种情形,图31示出当前半帧中一个垂直像素列和参考半帧中的第二垂直像素列。实际上,该两列是水平对齐的。圆圈表示实际整数像素位置,而X表示插值的1/2或1/4像素位置。水平分量值(未示出)无需说明因为隔行扫描的任何偏移量,因为各个半帧都是水平对齐的。负值表示在相反方向上比所示正值垂直偏移量更偏上的偏移量。
在情形3110中,极性“相反”。当前半帧为上半帧,而参考半帧为下半帧。相对于当前半帧,参考半帧的位置因为隔行扫描而在向下方向上偏移1/2像素。垂直运动向量分量值为0是“无垂直运动”偏移,并表示参考半帧中与当前半帧中位置在同一垂直水平上(绝对值)的位置;垂直运动向量分量值为+2表示参考半帧中偏移到当前半帧中位置下方1/2像素(绝对值)的位置,该位置是参考半帧中的实际值;而垂直分量值为+4表示参考半帧中偏移到当前半帧中位置下方1整个像素(绝对值)的位置,该位置是参考半帧中的插值。
在情形3120中,极性也“相反”。当前半帧是下半帧,而参考半帧是上半帧。相对于当前半帧,参考半帧的位置因为隔行扫描而在向上方向上偏移1/2像素。垂直运动向量分量值为-2表示参考半帧中偏移到当前半帧中位置上方1/2像素(绝对值)的位置;垂直分量值为0表示参考半帧中与当前半帧中位置在同一水平上(绝对值)的位置;而垂直分量值为+2表示参考半帧中偏移到当前半帧中位置下方1/2像素(绝对值)的位置。
在情形3130中,极性“相同”。相对于当前半帧,参考半帧的位置在垂直方向上相同。垂直运动向量分量值为0是“无垂直运动”偏移,并表示参考半帧中与当前半帧中位置在同一垂直水平上(绝对值)的位置;垂直运动向量分量值为+2表示参考半帧中偏移到当前半帧中位置下方1/2像素(绝对值)的位置,该位置是参考半帧中的插值;而垂直分量值为+4表示参考半帧中偏移到当前半帧中位置下方1整个像素(绝对值)的位置,该位置是参考半帧中的实际值。
或者,运动向量的位移根据不同惯例来表达。
2.双参考半帧的隔行扫描P-半帧中的运动向量预测
双参考半帧的隔行扫描P-半帧参考相同时间方向上的两个半帧(例如两个最近的先前参考半帧)。对每个宏块计算两个运动向量预测值。在一些实现中,一个预测值来自相同极性的参考半帧,而另一个预测值来自相反极性的参考半帧。极性的其它组合也是可能的。(以下描述每个方向上使用双参考半帧的隔行扫描B-半帧。在一些实现中,这些隔行扫描B-半帧将与隔行扫描P-半帧相同的技术用于计算运动向量预测值。)
在一些实现中,编码器/解码器通过寻找奇半帧预测值和偶半帧预测值、并选择处理预测值之一用于处理宏块,来计算当前块或宏块的运动向量预测值。例如,编码器/解码器确定奇半帧运动向量预测值和偶半帧运动向量预测值。运动向量预测值之一因而具有与当前半帧相同的极性,而另一运动向量预测值具有相反极性。编码器/解码器从奇半帧运动向量预测值和偶半帧运动向量预测值中选择一运动向量预测值。例如,编码器基于哪个给出较佳预测在各运动向量预测值之间选择。编码器使用简单的选择信号或使用较复杂的结合改进编码效率的上下文信息的信号表示来用信号表示要使用哪个运动向量预测值。该上下文信息可表示奇半帧或偶半帧的哪一个、或相同极性半帧或相反极性半帧的哪一个已主要用于块或宏块周围的邻域中。解码器基于选择信号和/或上下文信息选择要使用哪个运动向量预测值。然后,编码器/解码器使用选定的运动向量预测值处理该运动向量。例如,编码器编码运动向量和运动向量预测值之间的差值。或者,解码器通过组合运动向量差值和运动向量预测值来解码运动向量。
或者,编码器和/或解码器可跳过确定奇半帧运动向量预测值、或跳过确定偶半帧运动向量预测值。例如,如果编码器确定奇半帧将用于特定块或宏块的运动补偿,则编码器只确定奇半帧运动向量预测值。或者,如果解码器从上下文和/或信号表示信息中确定奇半帧将用于运动补偿,则解码器只确定奇半帧运动向量预测值。这样,编码器和解码器可避免不必要的运算。
解码器可采用以下技术来确定当前隔行扫描P-半帧的运动向量预测值。
对于隔行扫描P-半帧中具有运动向量的每个块或宏块,可获得两组三个候选运动向量预测值。从中获得这些候选运动向量预测值的相邻宏块相对于当前宏块3200的位置如图32所示。这些候选值的三个来自偶参考半帧,而另三个来自奇参考半帧。因为每个候选方向中的相邻宏块(A、B和C)是帧内编码的或具有参考偶半帧或奇半帧的实际运动向量,所以需要导出其它半帧的运动向量(或导出帧内编码宏块的奇半帧和偶半帧运动向量候选值)。例如,对于给定宏块,假设预测值A具有参考奇半帧的运动向量。在该情形中,“偶半帧”候选预测值A从“奇半帧”候选预测值A的运动向量中导出。该导出使用缩放运算来完成。(参见例如以下图34A和34B的解释。)或者,导出用另一种方式完成。
一旦已得到三个奇半帧候选运动向量预测值,就使用中值运算来从三个奇半帧候选值中导出奇半帧运动向量预测值。类似地,一旦已得到三个偶半帧候选运动向量预测值,就使用中值运算来从三个偶半帧候选值中导出偶半帧运动向量预测值。或者,使用另一种机制来基于候选半帧运动向量预测值选择半帧运动向量预测值。解码器判定是将偶半帧还是奇半帧用作运动向量预测值(例如通过选择主预测值),及偶还是奇运动向量预测值被用来重构运动向量。
图33A-33F中的伪码3300示出用来从如图32所示排列的预测值A、B和C中产生运动向量预测值的过程。尽管图32示出当前隔行扫描P-半帧中典型宏块的邻域,但图33A-33F的伪码3300解决了宏块位置的各个特定情形。此外,伪码3300可用来计算各个位置上块的运动向量的运动向量预测值。
在伪码3300中,术语“相同半帧”和“相反半帧”被理解成与当前编码或解码的半帧相关。例如,如果当前半帧是偶半帧,则“相同半帧”是偶参考半帧而“相反半帧”是奇参考半帧。伪码3300中的变量samefieldpred_x和samefieldpred_y表示来自相同半帧的运动向量预测值的水平和垂直分量,而变量oppositefieldpred_x和oppositefieldpred_y表示来自相反半帧的运动向量预测值的水平和垂直分量。变量samecount和oppositecount分别跟踪当前块或宏块的邻域的多少运动向量参考当前半帧的“相同”极性参考半帧,及多少参考“相反”极性参考半帧。变量samecount和oppositecount在伪码开始时初始化为0。
伪码3300中所提及的缩放运算scaleforsame()和scaleforopposite()被用来从邻居的实际运动向量值中导出“另一”半帧的候选运动向量预测值。缩放运算是实现无关的。示例缩放运算在以下参照图34A、34B、35和36进行描述。或者,其它缩放运算可用来例如补偿诸如图31中所示的垂直位移。(具体用于隔行扫描B-半帧的缩放运算如下进行详细描述。)
图33A和33B示出用于计算帧内的内部位置中典型块或宏块的运动向量预测值的伪码。“帧内”邻居的运动向量被设置为0。对于每个邻居,都设置相同半帧运动向量预测值和相反半帧运动向量预测值,在其中一个通过邻居运动向量的实际值设置时,另一个从中导出。对相同半帧运动向量预测值和相反半帧运动向量预测值计算候选值的中值,而“主”预测值从samecount和oppositecount中确定。变量dominantpredictor表示哪个半帧包含主运动向量预测值。如果运动向量预测值具有与三个候选预测值的大部分相同的极性,则它是主要预测值。(用运动向量差值数据解码的表示信号的值predictor_flag表示使用主还是非主预测值。)
图33C中的伪码解决每行只有一个宏块(它没有邻居B或C)的隔行扫描P-半帧的宏块的情形。图33D或33E中的伪码解决块或宏块在隔行扫描P一半帧的左边缘(没有邻居C)的情形。在此,如果运动向量预测值具有与两个以上候选预测值相同的极性,则它是主预测值;而在不分上下的情形中,相反半帧运动向量预测值为主预测值。最后,图33F中的伪码解决例如宏块在隔行扫描P一半帧的首行中的情形。
3.一个半帧运动向量预测值从另一个半帧运动向量预测值导出的缩放
在一实现中,编码器/解码器使用图34A和34B的伪码3400中示出的缩放运算,将一个半帧运动向量预测值从另一个半帧运动向量预测值导出。SCALEOPP、SCALESAME1、SCALESAME2、SCALEZONE1_X、SCALEZONE1_Y、ZONE1OFFSET_X和ZONE1OFFSET_Y的值是实现相关的。示出两个可能的值集,其中当前半帧是隔行扫描视频帧中的第一半帧的情形在图35的表格3500中示出,而当前半帧是隔行扫描视频帧中的第二半帧的情形在图36的表格3600中示出。对于P-帧,参考帧距离被第一为当前P-帧及其参考帧之间的B-帧(即包含两个B-半帧的视频帧)数量。如果不出现B-帧,则参考距离为0。例如,编码器使用可变大小的语法元素(例如在以下XIV节详细描述的REFDIST语法元素)来编码参考帧距离。
在表格3500和3600中示出的各个示例中,N的值(用作表格中SCALEZONE1_X、SCALEZONE1_Y、ZONE1OFFSET_X和ZONE1OFFSET_Y值的乘数)取决于运动向量范围。例如,经扩展的运动向量范围可通过语法元素EXTENDED_MV=1来用信号表示。如果EXTENDED_MV=1,则MVRANGE语法元素在图片头中出现,并用信号表示运动向量范围。如果EXTENDED_MV=0,则使用缺省运动向量范围。以下的表格1示出N和MVRANGE之间的关系。
表格1:图35和36中N的导出
  MVRANGE   N
  0或缺省值   1
  10   2
  110   8
  111   16
表格3500和3600中示出的各个值可依赖于实现而更改。
或者,N被假设为1(即缩放不依赖于N),或者缩放可用一些其它方式来执行。
B.隔行扫描P-帧
在一些实现中,隔行扫描P-帧中的宏块可以是5种类型之一:1MV、2半帧MV、4帧MV、4半帧MV和帧内。
在1MV宏块中,宏块中4个亮度块的位移通过单个运动向量表示。相应的色度运动向量可从亮度运动向量导出,以表示运动向量的2个8x8色度块的每一个的位移。例如,再参看图23中示出的宏块排列,1MV宏块2300包括4个8x8亮度块和2个8x8色度块。亮度块(Y1到Y4)的位移通过单个运动向量表示,且相应的色度运动向量可从亮度运动向量导出,以表示2个色度块(U和V)的每一个的位移。
在2半帧MV宏块中,宏块中4个亮度块的每个半帧的位移通过不同运动向量描述。例如,图37示出,上半帧运动向量描述全部4个亮度块的偶数行的位移,下半帧运动向量描述全部4个亮度块的奇数行的位移。使用上半帧运动向量,编码器可导出相应的上半帧色度运动向量,它描述色度块偶数行的位移。类似地,编码器可导出下半帧色度运动向量,它描述色度块奇数行的位移。
参照图38,在4帧MV宏块中,4个亮度块的每一个的位移通过不同运动向量(MV1、MV2、MV3和MV4)描述。每个色度块可通过使用4个导出色度运动向量(MV1’、MV2’、MV3’和MV4’)来进行运动补偿,这些色度运动向量描述4个4x4色度子块的位移。每个4x4色度子块的运动向量可从空间上相应的亮度块的运动向量中导出。
参照图39,在4半帧MV宏块中,亮度块的每一个半帧的位移通过两个不同运动向量来描述。亮度块的偶数行被垂直细分以形成2个8x8区域。对于偶数行,左边区域的位移通过左上方半帧块的运动向量描述,而右边区域的位移通过右上方半帧块的运动向量描述。亮度块的奇数行也被垂直细分以形成2个8x8区域。左边区域的位移通过左下方半帧块的运动向量描述,而右边区域的位移通过右下方半帧块的运动向量描述。每个色度块也可用与亮度块相同的方式分成4个区域,且每个色度块区域可使用导出运动向量进行运动补偿。
对于帧内宏块,运动假设为0。
一般而言,计算隔行扫描P-帧中当前宏块的运动向量预测值的过程包括两个步骤。首先,从其相邻宏块收集当前宏块的三个候选运动向量。例如,在一实现中,候选运动向量基于图40A-40B中示出的排列(和首行宏块等的各种特定情形)来收集。或者,候选运动向量可在一些其它顺序或排列中收集。其次,当前宏块的运动向量预测值从候选运动向量集中计算。例如,预测值可使用3个预测值的中值、或通过其它方法来计算。
对于有关隔行扫描P-帧的宏块的预测值计算和色度运动向量导出的其它细节,参见申请号为60/501,081题为“Video Encoding and Decoding Tools andTechniques”(视频编码和解码工具及技术)并于2003年9月7日提交的美国临时专利申请,如以下XIV节所述。
IV.逐行扫描视频帧的双向预测
如上所述,逐行扫描B-帧中的宏块可使用5种不同预测模式来预测:正向、反向、直接、插值和帧内。编码器选择并用信号表示在宏块级别或一些其它级别上比特流中的不同预测模式。在正向模式中,当前逐行扫描B-帧中的宏块从时间上在先的锚中导出。在反向模式中,当前逐行扫描B-帧中的宏块从时间上后续的锚中导出。用直接或插值模式预测的宏块将正向和反向锚用于预测。因为有直接和插值模式的两个参考帧,所以对于每个宏块通常都有至少两个运动向量(显式编码或导出的)。(用于逐行扫描B-帧的编码、信号表示和解码的各个方面也可用于隔行扫描B-帧,如下所述。)
在一些实现中,编码器通过使用分数值缩放正向锚的共处运动向量,隐式地用直接模式导出运动向量。该分数可反映当前逐行扫描B-帧在通过其锚形成的间隔内的相对时间位置,但不需要反映真实的帧间距离。因而,编码器无需采取固定速度。这使得编码器有附加的自由度,来通过改变来自“实际”时间位置的分数准确并容易地描述锚和当前逐行扫描B-帧之间的真实运动,以便于改进运动补偿预测。变量BFRACTION表示可在比特流中发送(例如在图片级别或一些其它级别上)以表示该相对时间位置的不同分数。不同分数是0和1之间的有限离散值集。
再参看图17,表格1700是用于比特流元素BFRACTION的可变长度代码(VLC)表格。在相同两个锚之间的逐行扫描B-帧中对BFRACTION的唯一性没有限制;具有相同锚的不同逐行扫描B-帧可具有相同的BFRACTION值。表格1700中的代码可改变或重新安排,以用不同代码表示不同分数。未在表格1700中示出的其它可能代码(例如,1111110或1111111)可被认为是无效代码,或可用于其它目的。例如,条目1111110可用来显式地编码定点格式的BFRACTION。作为另一示例,条目1111111可用于用信号表示特定帧类型(例如,帧内编码的逐行扫描B-帧)。
再参看图18,解码器根据伪码1800寻找缩放系数。再参看图19,解码器使用该缩放系数来缩放后续参考图片中共处宏块的运动向量的x和y元素。伪码1900中的函数Scale_Direct_MV取输入MV_X和MV_Y,并用直接模式来导出两个运动向量,其中一个运动向量参考正向(先前)锚图片(MV_XF、MV_YF),而另一个运动向量参考反向(后续)锚图片(MV_XB、MV_YB)。
逐行扫描B-帧中的“跳过”宏块信号表示对给定宏块未出现运动向量预测误差。所预测的运动向量将精确地等同于编码器/解码器在重构宏块时使用的运动向量(即不应用运动向量预测误差)。编码器仍然用信号表示宏块的预测模式,因为该宏块可使用直接、正向、反向或插值预测来跳过。
V.对隔行扫描B-图片的预测编码/解码的创新的纵览
各所述实施例包括用于编码和解码隔行扫描B-图片(例如隔行扫描B-半帧、隔行扫描B-帧)的技术和工具。各所述实施例实现所述用于编码和/或解码双向预测的隔行扫描图片的技术和工具的一种或多种,如下包括但不限于:
1.对于隔行扫描B-帧,编码器/解码器在隔行扫描B-帧的宏块中的上半帧和下半帧之间切换预测模式。
2.对于隔行扫描B-帧,编码器/解码器通过为先前解码的时间后续锚的共处宏块的上和下半帧的每一个选择一个代表性运动向量,计算当前宏块的直接模式运动向量。该选择至少可部分地基于编码当前隔行扫描B-帧的宏块的模式(例如1MV模式、2半帧MV模式等)执行。
3.对于隔行扫描B-半帧或隔行扫描B-帧,编码器/解码器使用4MV编码。例如,4MV可用于单向预测模式(正向或反向模式),但不用于其它可用预测模式(例如直接、插值)。
4.对于隔行扫描B-半帧或隔行扫描B-帧,正向运动向量使用来自正向运动向量缓冲区的先前重构(或估计)的正向运动向量进行预测,而反向运动向量使用来自反向运动向量缓冲区的先前重构(或估计)的反向运动向量进行预测。结果的运动向量被添加到相应的缓冲区中,且运动向量缓冲区中的空穴可用估计的运动向量值来填充。
a.对于隔行扫描B-帧,当正向预测用来预测运动向量且运动向量被添加到正向缓冲区中时,反向缓冲区中的相应位置以仅将反向运动向量用作预测值的预测运动向量来填充(“空穴填充”)。类似地,当反向预测用来预测运动向量且运动向量被添加到反向缓冲区中时,正向运动向量缓冲区中的相应位置以仅将正向运动向量用作预测值的预测运动向量来填充。
b.对于隔行扫描B-半帧,要为空穴填充在不同极性的运动向量(例如“相同极性”或“相反极性”)之间选择,编码器/解码器选择主极性半帧运动向量。锚和当前帧之间的距离使用各种语法元素计算,且计算出的距离被用于缩放参考半帧运动向量。
5.对于隔行扫描的B-半帧,编码器/解码器使用“自参考”帧。例如,当前帧中的第二个B-半帧在运动补偿预测中参考来自当前帧的第一B-半帧。
6.对于隔行扫描的B-半帧,编码器发送指示用于隔行扫描B-半帧中的一个或多个宏块的预测模式是正向还是非正向的二进制信息(例如,在经压缩位平面的B-半帧级别上)。解码器执行相应的解码。
7.对于隔行扫描的B-半帧,如果下一锚图片的相应半帧中的相应宏块使用四个运动向量编码,则编码器/解码器使用利于主极性的逻辑来选择直接模式的运动向量。
8.帧内编码半帧:当没有好的运动补偿对B半帧可能时,它可被编码为帧内(即非预测的)B-半帧(“BI-半帧”)。
各种所述技术和工具可彼此组合、或与其它技术组合、或可单独使用。
VI.切换隔行扫描B-帧中半帧编码宏块内的预测模式
在一些实现中,编码器在隔行扫描B-帧的宏块内执行预测模式切换。例如,编码器允许在隔行扫描B-帧的宏块中从上半帧去到下半帧时,预测模式可从正向切换成反向,或从反向切换成正向。与用一种预测方向模式编码整个宏块相反,预测方向模式的组合被用来编码单个宏块。在宏块的各个半帧中改变预测方向模式的能力在许多情形中导致隔行扫描B-帧的更有效编码。
图41示出使用不同预测模式预测隔行扫描B-帧的半帧编码宏块中的各个半帧的运动向量的一种技术4100。在4110,在隔行扫描B-帧中,编码器/解码器使用第一预测模式预测半帧编码宏块中第一半帧的运动向量。在一些实现中,该“第一半帧”可以是上半帧或下半帧,对其的判定独立地用信号表示。在4120,编码器/解码器使用一不同预测模式预测同一宏块中第二半帧的运动向量。
例如,对于使用两个运动向量半帧编码的宏块,上半帧可以是正向预测的(即,上半帧运动向量参考先前的锚图片),而下半帧可以是反向预测的(即,下半帧参考后续的锚图片)。在一些实现中,隔行扫描B-帧中的半帧编码宏块不使用4个运动向量编码。或者,如果该宏块使用4个运动向量进行半帧编码(例如每个半帧两个运动向量),则上半帧的这两个运动向量将参考一个锚(正向或反向),而下半帧运动向量将参考另一个锚。
这种预测模式的切换在该宏块类型不是以直接或插值开始的情形中仅需一个附加比特,如在以下隔行扫描B-帧的伪码中进一步示出:
If MB是半帧编码的AND MB类型是正向或反向then
If MVSwitch=1 then预测模式在上半帧和下半帧之间切换(从正向到反向或反之)
因此,将预测模式切换限于正向和反向模式避免对用信号表示第二模式的更多比特的需要,因为该第二模式从第一模式(在先前用信号表示的)和切换值中隐含。
如果在由隔行扫描B-帧的宏块覆盖的区域中有较高运动,则宏块有可能用半帧模式编码。在这些情形中,正向或反向预测更可能比直接或插值模式(包括像素平均)给出准确的运动补偿结果。因为在平滑中平均了各个结果(例如损失了伴随高运动的高频率元素),所以直接和插值模式并非是编码这些宏块的最佳方法。试验结果表明,因为在半帧编码宏块内的半帧级别上将全部四种预测模式用信号表示为切换选项的增加开销使其低效。
或者,编码器可在隔行扫描B-帧的半帧编码宏块内切换两种以上的预测模式,或可在不同预测模式之间切换。
VII.计算隔行扫描B-帧中的直接模式运动向量
在一些实现中,编码器/解码器缓存来自经先前解码锚的I-帧或P-帧(它是时间上正向的参考帧,用作反向预测参考帧)的运动向量,并选择一个或多个缓存运动向量,以用于计算隔行扫描B-帧中当前宏块的直接模式运动向量。例如,编码器/解码器缓存来自锚帧的每个宏块的上半帧和下半帧的每一个的代表性运动向量,并使用一个或多个所缓存的运动向量来计算当前直接模式宏块的运动向量。该选择至少部分地基于当前宏块的编码模式执行(例如1MV模式、2半帧MV模式等)。
图42示出用于在一实现中计算隔行扫描B-帧中宏块的直接模式运动向量的一种技术4200。在4210,编码器/解码器缓存在先前重构的时间上将来的锚帧中共处宏块的每个宏块的多个运动向量。如果该共处宏块仅具有一个运动向量,则如果需要,该运动向量将被缓存为共处宏块的各个块的运动向量值。在4220,编码器/解码器部分地依赖于当前宏块所需运动向量的数量,选择共处宏块的一个或多个缓存运动向量,用于隔行扫描B-帧中当前宏块的直接模式预测。
在一实现中,解码器缓存共处宏块中的两个运动向量,或缓存来自将来锚帧的最大可能数量的经解码亮度运动向量的一半。锚帧中的各宏块可用不同方法编码,其中每个宏块最多达4个运动向量,但只能缓存最多达两个运动向量,如下所述。而且,为当前宏块产生的正向/反向运动向量对的数量取决于当前宏块的编码模式,而不是仅仅取决于经先前解码的将来锚帧的共处宏块的编码模式。
例如,如果当前直接模式宏块是1MV编码的,则解码器从锚帧的共处宏块的上半帧中取得被缓存的运动向量,并产生一对直接运动向量-一个正向另一个反向。如果当前直接模式宏块是半帧编码的,则解码器从锚帧的共处宏块中取得被缓存的上半帧和下半帧运动向量,并产生两对运动向量,一共有当前直接模式宏块的4个运动向量-对每个半帧都有一个正向另一个反向的运动向量。
图43示出经先前解码的时间上将来的锚帧的共处宏块4300的各个块的运动向量MV1、MV2、MV3和MV4。如果该共处宏块是1MV宏块,则MV1、MV2、MV3和MV4都相等。如果该共处宏块是2半帧MV宏块,则MV1和MV2等于一个值,而MV3和MV4等于另一个值。如果该锚帧的共处宏块是4半帧MV或4帧MV宏块,则MV1、MV2、MV3和MV4可能都是不同的值。然而,即使MV1、MV2、MV3和MV4都可用,解码器仍然仅缓存MV1和MV3。
在图43所示示例中,解码器缓存MV1和MV3。如果当前宏块使用1MV模式,则解码器选择MV1来计算当前宏块的正向和反向直接模式运动向量,并略去MV3。如果当前宏块使用2半帧MV模式,则解码器使用MV1和MV3来计算4个直接模式运动向量。该运算产生当前宏块的上下半帧的运动的良好表示。
在已选择来自锚帧中共处宏块的运动向量时,解码器应用缩放逻辑来导出相应的正向和反向指示运动向量,用于B帧宏块的直接模式预测。例如,解码器可应用图19中的函数Scale_Direct_MV。或者,解码器应用不同的缩放函数。
或者,编码器/解码器可缓存每个锚帧宏块的4个运动向量。例如,如果当前宏块是1MV编码的,则编码器/解码器可取锚帧中共处宏块的左上运动向量,并产生一对直接运动向量,或者可取锚帧宏块的4个运动向量的均值。如果当前宏块是半帧编码的,则编码器/解码器可取左上和左下运动向量,并产生两对(一个半帧一对),或者可取锚帧宏块的上运动向量的均值和下运动向量的均值。
当锚帧中的共处宏块为帧内、或当锚帧为I-帧时,直接模式运动向量被视为(0,0)。
VIII.隔行扫描B-半帧和隔行扫描B-帧中的4MV编码
在一些实现中,编码器使用4运动向量(4MV)编码模式编码隔行扫描的B-半帧和隔行扫描的B-帧。4MV编码可允许复杂运动轨迹的表示比1运动向量(1MV)编码更准确(例如,通过允许宏块中的4个亮度块独立地进行预测和运动补偿)。使用4MV可受限于某些预测模式。例如,在一些实现中,编码器将4MV用于正向和反向模式(包括半帧和帧变化两者),而不用于直接或插值模式。当4MV不用于逐行扫描B-帧时,这不同于逐行扫描编码模式。
直接和插值模式涉及计算经运动补偿预测时的像素平均,它用于平滑细微细节。如果这种平滑是可接受的,则可能可使用1MV模式而不是4MV模式,因为编码1MV较容易,且1MV可用来准确地描述平滑运动轨迹。实验已显示,在隔行扫描B-半帧和隔行扫描B-帧的宏块中使用4MV模式,而将4MV模式限于正向和反向预测宏块中是有利的。有利于将4MV限于正向和反向模式中的另一个因素是组合4MV与直接或插值模式将导致每种情形中一共有8个运动向量。信号表示开销(用于插值模式)和实现以及关联于8个运动向量的解码复杂性通常抵销了准确性优点。此外,当通常在较高质量设置上编码的(即较不强烈量化的)P-图片通常可仅将一个或四个运动向量用于运动补偿时,用8个运动向量来编码隔行扫描B-图片通常是不实用的。
将4MV限于某些预测模式还具有其它优点。例如,如果4MV仅限于正向和反向预测模式,并且如果正向/非正向模式决定已用信号表示(例如用诸如在以下XI节所述的位平面编码技术),编码器无需发送任何附加比特来用信号表示4MV宏块的预测模式。
以下伪码可应用于隔行扫描B-半帧的宏块,其中正向/非正向决定是位平面编码的,并在任何宏块级别信息之前发送(例如在图片级别上发送):
If MB是4MV编码的AND预测模式是非正向的
then预测模式=反向(不发送任何更多比特来用信号表示模式)
在一些实现中,直接/非直接预测模式决定在任何宏块级别信息之前发送(例如在图片级别上的经压缩位平面中)。(对于有关编码直接/非直接信息的更多信息,参见序列号为10/622,378的题为“Advanced Bi-Directional Predictive Coding ofVideo Frames”(视频帧的高级双向预测编码)并于2003年7月18日提交的美国专利申请。)以下伪码可应用于隔行扫描B-帧的宏块,其中4MV在这些实现中受限于正向和反向模式:
If MB是4MV编码的AND预测模式是非正向的
then发送一附加比特来用信号表示预测模式(正向或反向)
或者,4MV用于不同于或除正向或反向模式之外的预测模式、不用于正向模式、不用于反向模式、或不用于任何预测模式。例如,在一些实现中,4MV用于隔行扫描B-半帧,但不用于隔行扫描B-帧。在其它可选实现中,其它代码或代码长度可用于用信号表示结合4MV编码的预测模式。
IX.使用分开的正向和反向运动向量缓冲区来预测隔行扫描B-图片中的运动向量
隔行扫描B-图片的运动向量使用分开的正向和反向运动向量上下文来预测。一般而言,正向运动向量使用存储在正向运动向量缓冲区中的运动向量来预测,而反向运动向量使用存储在反向运动向量缓冲区中的运动向量来预测。然后当前宏块的结果运动向量存储在适当的缓冲区中,并可用于其它宏块的后续运动向量预测值中。通常,正向和反向运动向量缓冲区中的相应空间都为每个宏块填充,即使给定宏块仅用正向运动向量(在正向预测宏块的情形中)或仅用反向运动向量(在反向预测宏块的情形中)预测。以下各节描述用于预测隔行扫描B-图片(如,隔行扫描B-半帧,隔行扫描B-帧)中的运动向量,以及用于为“遗漏”的正向或反向运动向量“填充”运动向量缓冲区中的相应空间的技术。
A.正向和反向缓冲区
当预测隔行扫描B-图片的运动向量时,编码器/解码器使用正向运动向量缓冲区和/或反向运动向量缓冲区中的先前重构的运动向量。在正向模式中,编码器/解码器使用来自正向运动向量缓冲区的经重构正向运动向量,来预测用于正向运动补偿的当前运动向量。在反向模式中,编码器/解码器使用来自反向运动向量缓冲区的经重构反向运动向量,来预测用于反向运动补偿的当前运动向量。对于直接模式或插值模式宏块,编码器/解码器使用正向运动向量缓冲区来预测正向运动向量分量(或可能多个正向运动分量),并使用反向运动向量缓冲区来预测反向运动向量分量(或可能多个反向运动分量)。
在重构隔行扫描B-图片的运动向量之后,编码器/解码器将重构后的正向运动向量缓存在正向运动向量缓冲区中,并将重构后的反向运动向量缓存在反向运动向量缓冲区中。在正向模式中,编码器/解码器将重构后的正向运动向量存储在正向运动向量缓冲区中。在反向模式中,编码器/解码器将重构后的反向运动向量存储在反向运动向量缓冲区中。对于使用直接或插值预测模式的宏块,编码器/解码器将(各)正向运动向量分量存储在正向运动向量缓冲区中,并将(各)反向运动向量分量存储在反向运动向量缓冲区中。
例如,如果编码器在隔行扫描B-图片中的宏块坐标位置(12,13)上编码正向预测宏块时,则编码器计算正向运动向量预测值并在比特流中发送该正向运动向量的残差(假设该宏块未被“跳过”)。解码器解码该残差(即差值),并重构运动向量。编码器/解码器将重构后的运动向量插入正向运动向量缓冲区。然后编码器/解码器使用运动向量预测逻辑来计算要填充反向运动向量的反向运动向量预测值,并将反向运动向量置于反向运动向量缓冲区中的位置(12,13)上。例如,在三者中值的预测情形中,编码器/解码器可取位置(11,13)、(12,12)和(13,12)上的缓存反向运动向量的中值(当前正向预测宏块的左、上、右上邻居),来填充(12,13)的反向运动向量。
图44示出使用正向和/或反向运动向量缓冲区来预测隔行扫描B-图片中当前宏块的运动向量的一种技术4400。在4410,取决于要预测的运动向量是正向还是反向运动向量,编码器/解码器选择使用正向还是反向运动向量缓冲区。如果当前运动向量是正向运动向量,则编码器/解码器在4420从正向运动向量缓冲区选择一个候选运动向量预测值集。如果当前运动向量是反向运动向量,则编码器/解码器在4430从反向运动向量缓冲区选择一个候选运动向量预测值集。在4440,编码器/解码器基于候选运动向量预测值集计算运动向量预测值。例如,编码器/解码器计算候选运动向量预测值集的中值。在简单情形中,编码器/解码器基于都是1MV宏块的预测值计算1MV当前宏块的运动向量预测值。更复杂的变化描述如下,其中当前宏块和/或邻居宏块具有不同模式。
图45示出正向运动向量缓冲区4510和反向运动向量缓冲区4520中的运动向量。在图45所示示例中,对于重构宏块4530-4570,编码器/解码器将正向运动向量存储在正向运动向量缓冲区4510中,并将反向运动向量存储在反向运动向量缓冲区4520中。为了预测当前宏块4580的运动向量,编码器/解码器使用来自相邻宏块的候选预测值。例如,如果当前宏块4580用正向模式预测,则编码器使用正向运动向量缓冲区中的相邻正向运动向量来预测正向运动向量(例如使用三者中值预测),随后用重构后的运动向量值填充正向运动向量缓冲区中的当前宏块位置。为了填充反向运动向量缓冲区4520中的相应当前宏块位置,编码器/解码器可使用反向运动向量缓冲区中的相邻反向运动向量来预测反向运动向量,并将该预测值置于反向运动向量缓冲区的当前宏块的位置中。
B.隔行扫描B-帧中的运动向量预测
在一些实现中,编码器/解码器采用以下方案来预测隔行扫描B-帧中宏块(包括其不同半帧)的运动向量,它使用分开的正向和反向运动向量上下文。图40A-40B示出从中收集候选运动向量的相邻宏块。
如果1MV宏块是正向预测的,则编码器/解码器从正向运动向量缓冲区的候选运动向量中预测其正向运动向量(例如使用诸如图40A和40B中或别处示出的三者中值预测和预测模式)。编码器/解码器(在添加运动向量预测误差后)将该正向运动向量存储在正向运动向量缓冲区中。编码器/解码器通过从反向运动向量缓冲区的候选运动向量中预测反向运动向量来填充“空穴”(例如与正向预测情形中一样),并将该反向运动向量(在此为预测值)存储在反向运动向量缓冲区中。
如果1MV宏块是反向预测的,则编码器/解码器从反向运动向量缓冲区的候选运动向量中预测其反向运动向量(例如与正向预测情形中一样)。编码器/解码器(在添加预测误差后)将该反向运动向量存储在反向运动向量缓冲区中。编码器/解码器通过从正向运动向量缓冲区的候选运动向量中预测正向运动向量来填充“空穴”,并将该正向运动向量(在此为预测值)存储在正向运动向量缓冲区中。
在正向和反向运动向量缓冲区中略去作为帧内编码宏块的邻居。
各种特定情形确定隔行扫描B-帧中1MV和半帧编码2MV宏块的组合。如果当前1MV宏块的位置A、B或C中的相邻宏块是半帧编码的2MV宏块,则编码器/解码器取2MV宏块的半帧运动向量的均值作为该位置的运动向量预测值。
对于正向预测的当前2半帧MV宏块,例如对于两个正向预测半帧运动向量的每一个,来自邻居的候选运动向量从正向运动向量缓冲区中收集。编码器/解码器基于相邻宏块的编码模式(例如帧内、1MV、2半帧MV)选择一个候选运动向量集,这些相邻宏块存储在正向运动向量缓冲区中。如果相邻宏块存在且不是帧内编码的,则编码器/解码器注意该宏块的运动向量以添加到候选集中去。在一些实施例中,编码器/解码器继续如下动作。对于上半帧正向运动向量,如果位置A、B或C中的相邻宏块是1MV宏块,则编码器将来自正向运动向量缓冲区的相应位置的宏块的运动向量添加到候选集中。对于是2半帧MV宏块的位置A、B或C中的相邻宏块,编码器/解码器将来自正向运动向量缓冲区的相应位置的上半帧MV添加到该集中。
对于下半帧正向运动向量,如果位置A、B或C中的相邻宏块是1MV宏块,则编码器将来自正向运动向量缓冲区的相应位置的宏块的运动向量添加到候选集中。对于是2半帧MV宏块的位置A、B或C中的相邻宏块,编码器/解码器将来自正向运动向量缓冲区的相应位置的下半帧MV添加到该集中。
为了计算2半帧MV宏块的半帧运动向量的预测值,编码器/解码器然后计算候选集的中值。
为了计算2半帧MV宏块的反向预测运动向量,逻辑与正向预测情形相同,但来自邻居的候选运动向量是从反向运动向量缓冲区中收集的。
再一次,对于运动向量预测,略去位置A、B或C中帧内编码的邻居。
在重构2半帧MV宏块的运动向量之后(例如通过添加运动向量差值信息),重构后的实际运动向量按适合重构后运动向量的预测方向,被置入正向运动向量缓冲区或反向运动向量缓冲区。运动向量缓冲区的用于缺少方向的相应空槽通过计算缺少方向的运动向量预测值并将该运动向量预测值存储在空槽中来填充。
如果使用预测模式切换(参见以上VI节),一例外牵涉到隔行扫描B-帧内半帧编码宏块的空穴填充。在该情形中,给定半帧编码的2MV宏块具有一个正向运动向量和一个反向运动向量。在重构隔行扫描B-帧的半帧编码宏块之后,在半帧编码宏块在上半帧和下半帧之间切换预测方向时,编码器/解码器用正向运动向量填充正向运动向量缓冲区的上下运动向量“槽”,并用反向运动向量填充反向缓冲区的上下运动向量槽。尽管正向运动向量仅对一个半帧(例如上半帧)发送,编码器将同一运动向量置入正向运动向量缓冲区的上下半帧运动向量槽。类似地,尽管反向运动向量仅对下半帧发送,编码器将它置入反向运动向量缓冲区的上下半帧槽。
例如,图46示出正向运动向量缓冲区4610和反向运动向量缓冲区4620中重构宏块4680的上下半帧的运动向量。在图46所示示例中,对于重构宏块4630-4670,编码器/解码器将正向运动向量存储在正向运动向量缓冲区4610中,并将反向运动向量存储在反向缓冲区4620中。重构宏块4680是用预测切换进行半帧编码的,且其上半帧运动向量被存储在正向或反向运动向量缓冲区中(取决于上半帧运动向量的预测方向)的上下位置。宏块4680的下半帧运动向量被存储在其它运动向量缓冲区的上下位置中。在该示例中,重构宏块4680使用预测模式切换。尽管正向运动向量和方向运动向量都仅对一个半帧发送,但编码器将同一运动向量置入相应正向和反向运动向量缓冲区的上下半帧运动向量槽中。
如果当前宏块被插值,则编码器/解码器使用正向运动向量缓冲区来预测正向运动向量(或2半帧MV宏块的正向运动向量),使用反向运动向量缓冲区来预测反向运动向量(或2半帧MV宏块的反向运动向量),并(在添加了一计算好就添加的预测误差之后)将该正向和反向运动向量分别存储在正向和反向运动向量缓冲区中。
如果宏块是在隔行扫描B-帧中直接预测的,则编码器/解码器可使用以上VII节描述的技术。
在一些实现中,1MV宏块、2半帧MV宏块和帧内宏块被允许用于隔行扫描B-帧(但不是其它MV宏块类型),因为只需要确定较少的当前/邻居模式组合而简化了用于预测运动向量的逻辑。或者,允许其它和/或附加MV模式,诸如4帧MV宏块和4半帧MV宏块。例如,图64、69和70中示出的伪码的一部分可用来确定隔行扫描B-帧的这种其它组合。
C.隔行扫描B-半帧的运动向量预测
一般而言,对于隔行扫描B-半帧,先前重构(或导出)的正向半帧运动向量被用作当前正向半帧运动向量的预测值,且先前重构(或导出)的反向半帧运动向量被用作当前反向半帧运动向量的预测值。在正向或反向模式中,当前正向或反向半帧的运动向量被添加到适当的运动向量缓冲区中,且另一(缺少)方向的运动向量(例如正向模式中的反向方向,或反向模式中的正向方向)被导出用作将来使用的预测值。
在一些实现中,半帧运动向量预测选择根据以上III.A.2节的详细描述和以下XIV.B.3节描述的双参考半帧运动向量预测逻辑进行。例如,图33A-33F中示出的伪码用来计算隔行扫描B-半帧的宏块的两个半帧的正向运动向量预测值,且一个运动向量预测值被选择用于重构正向半帧的运动向量。然后将重构的运动向量置于正向运动向量缓冲区中。该伪码也用来计算该宏块的两个半帧的反向运动向量预测值,且一个预测值被选择用作反向运动向量缓冲区的填充值。对于隔行扫描B-半帧,为了填充缺少方向的运动向量缓冲区中的“空穴”,编码器/解码器在相同极性和相反极性的运动向量预测值之间选择。这种极性之间的选择因为两个预测值在给定缺少方向中产生-一个与当前半帧极性相同,另一个与当前半帧极性相反。因此,在一些实现中,编码器/解码器选择用于缺少方向运动向量的主要或“主”极性预测值。这样,正向和方向运动向量的完整集就被提供用于运动向量预测。或者,确定主极性、首先进行预测值选择、并只计算选定运动向量预测值。
在一实现中通过从不同极性的半帧运动向量预测值中选择来进行实际值缓存和空穴填充的过程如图47中的伪码4700所示。伪码4700示出,在空穴填充预测期间,没有实际运动向量被提供为缺少方向,因此具有主极性的经预测的缺少方向运动向量由编码器/解码器来选择。
在一些实现中,隔行扫描B-半帧的运动向量预测的整个方案如下所述。
如果宏块是正向预测的,则编码器/解码器从正向运动向量缓冲区的候选相同和/或相反极性运动向量(例如大多数情形中使用来自左、上和右上邻居的三者中值预测)或从缓存运动向量中导出的运动向量中预测其正向运动向量。编码器/解码器将重构后的正向运动向量存储在正向运动向量缓冲区中,计算主反向运动向量预测值(类似于用来自反向运动向量缓冲区的空间邻域的三者中值预测的),并将其存储在反向运动向量缓冲区中的相应位置。
如果宏块是反向预测的,则编码器/解码器从反向运动向量缓冲区的候选相同和/或相反极性运动向量(例如大多数情形中使用来自左、上和右上邻居的三者中值预测)或从缓存运动向量中导出的运动向量中预测其反向运动向量。编码器/解码器将重构后的反向运动向量存储在反向运动向量缓冲区中,计算主正向运动向量预测值(类似于用来自正向运动向量缓冲区的空间邻域的三者中值预测的),并将其存储在正向运动向量缓冲区中的相应位置。
如果该宏块是插值的,则编码器/解码器使用正向运动向量缓冲区来预测正向运动向量分量,使用反向运动向量缓冲区来预测反向运动向量分量,并(在添加了一计算好就添加的预测误差之后)将重构后的正向和反向运动向量分别存储在正向和反向运动向量缓冲区中。
如果宏块是直接预测的,则编码器/解码器计算当前半帧的直接模式运动向量,并将正向和反向运动向量分量存储在相应的运动向量缓冲区中。
在运动向量预测中,略去位置A、B或C中帧内编码的邻居。
各种特定情形确定隔行扫描B-半帧中1MV和4MV宏块的组合。图6A-10示出用于逐行扫描P-帧的运动向量预测的预测值模式。这些相同模式示出被视为用于混合MV的隔行扫描B-半帧的1MV或4MV宏块的运动向量的运动向量预测的候选运动向量的块或宏块的位置。对于帧是一个宏块宽的特定情形,预测值总是Predicator A(顶部预测值)。各种其它规则解决其它特定情形,诸如首行4MV宏块、首行1MV宏块、和帧内编码预测值。
图6A-10中所示的预测值模式用来使用来自正向运动向量缓冲区中各位置的候选值进行正向预测,并使用来自反向运动向量缓冲区中位置的候选值进行反向预测。此外,图6A-10中所示的预测值模式结合以上所述的对隔行扫描B-半帧的双参考半帧运动向量预测逻辑来使用。
图6A和6B示出被视作用于混合MV的隔行扫描B-半帧中的1MV当前宏块的候选运动向量预测值的块的位置。相邻的各个宏块可以是1MV或4MV宏块。图6A和6B示出假设邻居是4MV的候选运动向量的位置(即预测值A是当前宏块上面的宏块中块2的运动向量,而预测值C是当前宏块左侧紧邻的宏块中块1的运动向量)。如果邻居的任一个是1MV宏块,则图5A和5B中示出的运动向量预测值被视为整个宏块的运动向量预测值。如图6B所示,如果宏块是该行中的最后一个宏块,则预测值B来自左上方宏块的块3而不像其它情形一样来自右上方宏块的块2。
图7A-10示出被视作用于混合MV的隔行扫描B-半帧的4MV宏块中4个亮度块的每一个的候选运动向量预测值的块的位置。图7A和7B是示出被视作用于位置0上一个块的候选运动向量预测值的块的位置的示图;图8A和8B是示出被视作用于位置1上一个块的候选运动向量预测值的块的位置的示图;图9是示出被视作用于位置2上一个块的候选运动向量预测值的块的位置的示图;而图10是示出被视作用于位置3上一个块的候选运动向量预测值的块的位置的示图。再一次,如果邻居是1MV宏块,则该宏块的运动向量预测值用于该宏块的各个块。
对于宏块是行中第一宏块的情形,块0的预测值B与该行中剩余宏块的块0进行不同的处理(参见图7A和7B)。在该情形中,预测值B从当前宏块上面紧邻宏块的块3中取得,而不像其它情形一样从当前宏块左上方的宏块的块3中取得。类似地,对于宏块是行中最后一个宏块的情形,块1的预测值B进行不同的处理(参见图8A和8B)。在该情形中,预测值从当前宏块上面紧邻宏块的块2中取得,而不像其它情形一样从当前宏块右上方的宏块的块2中取得。一般而言,如果该宏块在第一宏块列中,则块0和2的预测值C被设置为等于0。
再一次,对于运动向量预测,略去位置A、B或C中帧内编码的邻居。
在重构4MV宏块的运动向量之后(例如通过添加运动向量差值信息),重构后的实际运动向量按适合重构后运动向量的预测方向,被置入正向运动向量缓冲区或反向运动向量缓冲区。运动向量缓冲区的用于缺少方向的相应空槽通过计算缺少方向的相同和相反极性的运动向量预测值、在不同极性运动向量预测值之间选择、并将该运动向量预测值存储在空槽中来填充。
再参看图34A和34B,对于运动向量预测,编码器/解码器使用伪码3400中所示的缩放运算,将一个半帧运动向量预测值从另一个半帧运动向量预测值导出。示出两个可能的值集,其中当前半帧是隔行扫描视频帧中的第一半帧的情形在图35的表格3500中示出,而当前半帧是隔行扫描视频帧中的第二半帧的情形在图36的表格3600中示出。在表格3500和3600中,SCALEOPP、SCALESAME1、SCALESAME2、SCALEZONE1_X、SCALEZONE1_Y、ZONE1OFFSET_X和ZONE1OFFSET_Y取决于参考帧距离。
在一些实现中,使用分数编码来计算用于隔行扫描B-半帧中的正向和反向参考的参考帧距离。BFRACTION语法元素(它用信号表示隔行扫描B-半帧的正向或反向预测模式宏块,而不只是隔行扫描B-帧的直接模式宏块)用来导出正向和反向参考图片距离,如以下伪码所示:
正向参考帧距离(FRFD)=
NINT((BFRACTION分子)/(BFRACTION分母)*参考帧距离-1
If(FRFD<0)then FRFD=0
反向参考帧距离(BRFD)=
参考帧距离-FRFD-1(其中NINT是最近整数操作符)
BFRACTION分子和分母从BFRACTION语法元素中解码。元素BFRACTION可用来表示可在比特流中发送的不同分数(例如在隔行扫描B-半帧的帧级别上)。该分数在0和1之间的有限离散值集中取值,并在通过其锚形成的间隔内标示B-图片的相对时间位置。
对于具有隔行扫描B-半帧的帧中的第二半帧的正向预测和反向预测,编码器/解码器根据图34A和34B中的伪码3400执行运动向量缩放。然而,在一些实现中,执行第一半帧的反向运动向量预测的编码器/解码器使用如在图48中所示伪码4800中定义的函数scaleforopposite_x、scaleforopposite_y、scaleforsame_x、scaleforsame_y。在一实现中用于第一隔行扫描B-半帧的SCALESAME、SCALEOPP1、SCALEOPP2、SCALEZONE1_X、SCALEZONE1_Y、ZONE1OFFSET_X和ZONE1OFFSET_Y在图49的表格4900中示出。在表格4900中,变量N和运动向量范围之间的关系与以上参考图35和36和表格1所述的关系相同。
或者,参考帧距离用另一种方法计算,或者缩放根据不同算法执行。例如,缩放与N的值无关地执行(即N取为1)。
X.具有隔行扫描B-半帧的“自参考”帧
具有隔行扫描B-半帧的帧被编码为两个独立(且某种程度上独立编码的)的半帧。上半帧由帧的偶光栅行(从行0开始)组成,而下半帧由帧的奇光栅行组成。因为“半帧图片”中的半帧可独立解码,所以它们不需要以任何预先设置顺序发送。例如,编码器可先发送下半帧再发送上半帧,或反之。在有些实现中,两个半帧的顺序由“先上半帧”的语法元素表示,该语法元素取决于解码帧的两个半帧的准确时间顺序而为真或假。
现有的编码器和解码器已将前后锚帧(例如I-或P-帧)或前后锚帧中的半帧用作“参考”图片,以执行对当前B-图片的运动补偿。现有的编码器和解码器还限制B-图片或其任何部分用作任何图片的运动补偿参考。然而,在所述技术和工具的一些实现中,一种或多种这些“规则”被放松。
例如,在一些实现中,第一隔行扫描B-半帧参考来自前后锚图片的第一和第二半帧。第二隔行扫描B-半帧参考作为“相反极性”半帧的来自当前图片的第一隔行扫描B-半帧和作为“相同极性”半帧的前一锚帧的相同极性半帧,以及来自下一锚图片的第一和第二半帧。
图50B是示出隔行扫描视频帧B2中两个隔行扫描B-半帧的每一个的参考半帧的示图。在图50B所示示例中,要解码的第一B-半帧(在此为上半帧)被允许参考正向(时间上过去)锚P1中的两个参考半帧和来自反向(时间上将来)锚P3中的两个参考半帧,总共为4个参考半帧。B2的要解码的第二隔行扫描B-半帧被允许参考来自同一隔行扫描视频帧(因而打破了不允许B-图片的各部分用作参考的惯例)的第一半帧和来自前一锚P1的一个参考半帧,以及来自将来锚P3的两个半帧。为作比较,图50A示出隔行扫描视频帧的隔行扫描P-半帧遵守的惯例。
实现这些隔行扫描B-半帧参考规则的技术和工具可提供更好的压缩。隔行扫描视频的半帧编码对于编码高运动是最为有效的,高运动即为在上半帧和下半帧之间有相当运动时。例如,在该情形中,帧的上(且首先编码的)半帧对于同一帧下半帧中的像素将是比从前一帧中(来自较远的时间距离)取得的上半帧好得多的预测值。由于它们之间较大的时间距离,当运动较高时这些时间上将来的预测值提供弱得多的预测。此外,对于时间上更远的预测值来说闭塞的可能性放大,这导致更多编码昂贵的帧内编码宏块。特别地,实验证实允许帧的第二个时间隔行扫描B-半帧参考同一帧的第一时间隔行扫描B-半帧可产生显著的压缩增益。
XI.隔行扫描B-半帧中正向模式的位平面编码
如以上X节所述,在一些实现中,当前帧的第二已编码隔行扫描B-半帧可参考当前帧的第一已编码隔行扫描B-半帧。该“自参考”技术在具有高运动的帧的隔行扫描B-半帧中是有效的,因为当前帧的时间上较近的B-半帧常常是比时间上较远的锚半帧更好的预测值。当具有隔行扫描B-半帧的帧具有较高运动,且时间上第二隔行扫描B-半帧首选时间上第一隔行扫描B-半帧作为预测参考时,第二隔行扫描B-半帧中宏块的更有效预测模式将常常是“正向”模式。
因为隔行扫描B-半帧中的正向模式预测是用于降低比特率的有效工具,所以特别是在低比特率情形中,减少信号表示开销以降低用信号表示正向模式预测的整体成本是有利的。因此,在一些实施例中,编码器使用统一的位平面编码技术来编码正向模式预测信息。例如,编码器编码压缩位平面中的正向模式预测信息,其中位平面中的每个比特关联于一宏块,且每个比特的值用信号表示该宏块是用正向模式还是用非正向预测模式编码。
经压缩位平面可在帧级别、半帧级别或在一些其它级别上发送。与用于隔行扫描B-半帧的其它预测模式相比,位平面编码技术偏向于利用正向模式。例如,如果隔行扫描B-半帧上的大多数宏块使用正向预测,则编码器通过位平面编码正向/非正向决定,可将信号表示开销降为每个宏块小于一个比特。
图51示出在具有一个或多个位平面编码模式的视频编码器中用于编码隔行扫描B-半帧的宏块的正向/非正向预测模式决定信息的一种技术5100。图52示出用于解码由具有一个或多个位平面编码模式的视频编码器编码的正向/非正向预测模式决定信息的相应技术5200。。
参照图51,编码器选择用于编码正向/非正向预测模式决定信息的位平面编码模式(5110)。在选择编码模式之后,编码器用所选模式来编码正向/非正向预测模式决定信息(5120)。该编码器在逐个半帧基础上选择位平面编码模式。或者,编码器在一些其它基础上(例如在序列级别)选择位平面编码模式。或者,如果只使用一种位平面编码模式,则不进行位平面编码模式的选择。当编码器完成编码正向/非正向预测模式决定信息时(5130),正向/非正向预测模式决定信息的编码结束。
参照图52,解码器确定编码器使用(并用信号表示)的编码正向/非正向预测模式决定信息的位平面编码模式(5210)。然后该解码器用选定模式解码正向/非正向预测模式决定信息。该解码器在逐个半帧基础上确定位平面编码模式。或者,解码器在一些其它基础上(例如在序列级别)确定位平面编码模式。或者,如果只有一种位平面编码模式可用,则不进行位平面编码模式的选择。当解码器完成解码正向/非正向预测模式决定信息时(5230),正向/非正向预测模式决定信息的解码结束。
对于有关根据若干组合实现来用信号表示和解码各种位平面编码模式的其它细节,参见以下XIV节。对于有关一般位平面编码的更多细节,参见序列号为10/321,415题为“Skip Macroblock Coding”(跳过宏块编码)并于2002年12月16日提交的美国专利申请,其公开内容通过引用结合在此。或者,表示正向/非正向模式信息的比特可未经压缩地和/或在一些其它级别(例如宏块级别)上发送。
如果指示的是非正向预测,则编码器指定该宏块的非正向预测模式(例如反向模式、直接模式、插值模式、或帧内模式)。在一些实现中,编码器在宏块级别参照VLC表格编码非正向预测模式,如以下表格2所示。
  BMVTYPE VLC   运动预测模式
  0   反向
  10   直接
  11   插值
表格2.运动预测模式VLC表格
在表格2所示示例中,反向模式是较佳的非正向预测模式。编码器用1-比特信号表示反向模式,并用2-比特信号表示直接和插值模式。或者,编码器使用不同代码来表示不同的预测模式和/或首选一种不同的非正向预测模式。
在一些实现中,帧内模式由特定运动向量差值来作信号表示,该值用预测模式是帧内模式的编码方式来表示。运动向量差值因此用来推断该宏块是帧内编码的,但是按照惯例编码器将预测类型设置为反向,以便于不会具有任何未定义预测类型。
XII.在隔行扫描B-半帧中选择用于直接模式的共处运动向量
在一些实现中,半帧编码B-图片中宏块的直接模式运动向量使用特殊逻辑来选择。对于隔行扫描B-半帧中的当前宏块,如果下一锚图片的相应半帧的共处宏块使用4个运动向量进行编码,则该逻辑在该共处宏块的最多达四个运动向量中偏向更主要的极性(例如相同或相反)。一旦选择了用于当前宏块的运动向量,编码器/解码器就可应用缩放运算以给出直接模式运动向量。
在一些实现中,对于隔行扫描B-半帧的直接模式1MV宏块,编码器/解码器基于具有相同极性的参考半帧(例如时间上的下一P-半帧)内共处宏块的一个或多个运动向量,计算用于直接模式缩放的运动向量。如果参考半帧中的共处宏块是1MV宏块,则编码器/解码器使用单个运动向量来导出隔行扫描B-半帧中宏块的直接模式运动向量。另一方面,如果参考半帧中的共处宏块是4MV宏块,则编码器/解码器在选择用于导出隔行扫描B-半帧中宏块的直接模式运动向量的运动向量时考虑该4个运动向量的极性(偏向主要极性)。在解码隔行扫描B-半帧期间编码器/解码器在需要时可将该选择逻辑应用于参考半帧中的4MV宏块。或者,编码器/解码器可在解码参考半帧之后应用该选择逻辑,然后仅缓存要在后来隔行扫描B-半帧解码中使用的值。
例如,对于参考半帧中的共处4MV宏块,如果(4者中)来自相同极性半帧的运动向量数量超过来自相反极性半帧的运动向量数量,则如果相同极性运动向量的数量分别为4、3、2或1,编码器/解码器可使用四者中值、三者中值、二者中值或相同极性半帧运动向量的值来计算在直接模式隔行扫描B-半帧解码中使用的运动向量。否则,如果来自相反极性半帧的运动向量数量超过来自相同极性半帧的运动向量,则编码器/解码器可使用类似运算来从相反极性半帧的运动向量中得到代表性的运动向量,以用于直接模式的隔行扫描B-半帧解码。如果共处宏块的四个运动向量的原始集中(不管极性)两个以上运动向量是帧内编码的,则编码器/解码器可将共处代表性运动向量简单地视为是帧内编码的(即(0,0))。然而,在一些实现中,隔行扫描B-半帧中的所有帧内MB都被编码为1MV,所以原始的4个运动向量中的两个以上为帧内编码的情形导致共处代表性运动向量被视为是帧内编码在实际上不可能。
图53中的伪码5300示出对用作隔行扫描B-半帧中直接模式运动向量的基础的运动向量的选择过程。在一些实现中,该选择过程是产生正向和反向指示直接模式运动向量的缩放运算的前身。
XIII.隔行扫描视频帧中的帧内编码B-半帧
隔行扫描BI-半帧(或“帧内B-半帧”)是与其参考图片独立编码的半帧。在隔行扫描BI-半帧不可用作预测其它图片的锚的意义上,它们不同于其它帧内半帧(例如隔行扫描I-半帧)。没有对隔行扫描BI-半帧的图片间依赖性,且它在比特流中的出现不表示可独立解码分段或图片组的开始。然而,隔行扫描视频帧中的第一半帧如果被编码为BI-半帧,则可用来预测该帧中可被编码为隔行扫描B-半帧的第二个半帧。这种革新还通过在许多情形中仅对帧的一半(第一编码半帧)使用帧内编码而不将整个帧编码为内帧或将两个半帧编码为帧内半帧,来改进整体压缩。在一些实现中,帧可包括两个B-半帧、两个BI-半帧、或一个B-或一个BI-半帧。
使用隔行扫描BI-半帧而不使用隔行扫描I-半帧是有理由的。一个理由是避免牺牲时间可缩放性。例如,当解码器提交数字视频且需要立即丢弃一些图片以跟上处理需求时,它可寻找它可能丢弃的半帧序列。如果序列中的帧内半帧变成关键半帧,则解码器将被迫解码它们以用作其它半帧的参考,并且不能丢弃它们。然而,如果序列中的帧内半帧被编码为BI-半帧,则解码器将仍然有丢弃它们的选择,而不损害后续运动补偿。
在隔行扫描BI-半帧更有效地用信号表示用于帧内编码和解码的语法元素的意义上,隔行扫描BI-半帧不同于具有帧内宏块的隔行扫描B-半帧,因为BI-半帧内运动补偿相关元素(或信号表示其缺失的元素)可被消除。换言之,当在视频序列中的帧间半帧预测中断点上(例如因为场景变化或复杂运动)编码隔行扫描B-半帧时,使用隔行扫描BI-半帧(而不是常规B-半帧)的理由产生。常常这种半帧中的大多数宏块将需要编码为帧内宏块。在该情形中,根据比特率来看,要将整个B-半帧编码为一个BI-半帧常常比发送该半帧中每个宏块的预测模式信息要容易。当对隔行扫描B-半帧的较好预测或运动补偿不可能时,它可被编码为BI-半帧。
在一些实现中,编码器可用信号表示比特流中作为图片类型的可能值之一的BI-半帧的出现。或者,BI-半帧的出现可用一些其它方法来指示。
XIV.组合实现
现在描述对比特流语法、语义和解码器的详细组合实现,以及与主要组合实现有细微差异的另一组合实现。
A.比特流语法
在各种组合实现中,用于隔行扫描B-图片的数据以具有多个层(例如,序列、帧、半帧、宏块、块和/或子块层)的比特流形式呈现。
对于具有隔行扫描B-半帧和/或BI-半帧的隔行扫描视频帧,帧级别比特流元素如图54所示。每个帧的数据包括帧头,随后是半帧层的数据(示为每个半帧的重复“FieldPicLayer”元素)。组成隔行扫描B-半帧和BI-半帧的半帧头的比特流元素分别如图55和56所示。组成隔行扫描B-半帧(帧内、1MV、或4MV宏块)和BI-半帧的宏块层的比特流元素分别如图57和58所示。
对于隔行扫描B-帧,帧级别比特流元素如图59所示。每个帧的数据包括帧头,随后是宏块层的数据。组成隔行扫描B-帧的宏块层的比特流元素(帧内或各种帧间类型宏块)如图60所示。
以下小节描述帧、半帧和宏块层中的选定比特流元素,它们与相关于双向预测隔行扫描图片的信号表示相关。尽管选定比特流元素在特定层的上下文中描述,但一些比特流元素可在一个以上层中使用。
1.选定帧层元素
图54是示出包含隔行扫描B-半帧或BI-半帧(或可能其它类隔行扫描半帧)的帧的帧级别比特流语法的示图。图59是示出隔行扫描B-帧的帧级别比特流语法的示图。特定的比特流元素如下所述。
帧编码模式(FCM)(可变大小)
FCM是用来表示图片编码类型的可变长度代码字[“VLC”]。FCM具有如以下表格3所示的帧编码模式的值。
表格3.帧编码模式VLC
  FCM值   帧编码模式
  0   逐行扫描
  10   帧-隔行扫描
  11   半帧-隔行扫描
半帧图片类型(FPTYPE)(3个比特)
FPTYPE是包括隔行扫描P-半帧、隔行扫描I-半帧、隔行扫描B-半帧和/或隔行扫描BI半帧的帧的帧头中提供的3-比特语法元素。FPTYPE具有隔行扫描视频帧中半帧类型的不同组合的值,如下表4所示。
表格4.半帧图片类型FLC
  FPTYPE FLC   第一半帧类型   第二半帧类型
  000   I   I
  001   I   P
  010   P   I
  011   P   P
  100   B   B
  101   B   BI
  110   BI   B
  111   BI   BI
参考距离(REFDIST)(可变大小)
REFDIST是可变大小的语法元素。该元素表示当前帧和参考帧之间帧的数量。表格5示出用来编码REFDIST值的VLC。
表格5.REFDISTVLC表格
Figure GSB00000508595700521
表格5中的最后一行表示用来表示大于2的参考帧距离的代码字。这些被编码为(二进制)11,随后是N-3 1s,其中N是参考帧距离。代码字中最后一个比特为0。例如:
N=3,VLC代码字=110,VLC大小=3
N=4,VLC代码字=1110,VLC大小=4
N=5,VLC代码字=11110,VLC大小=5
图片类型(PTYPE)(可变大小)
PTYPE是隔行扫描B-帧(或其它类型的隔行扫描帧,诸如隔行扫描I-帧、或隔行扫描P-帧)的帧头中提供的可变大小的语法元素。PTYPE具有不同帧类型的值,如以下表格6所示。
表格6.图片类型VLC
  PTYPE VLC   图片类型
  110   I
  0   P
  10   B
  1110   BI
  1111   跳过
如果PTYPE指示该帧被跳过,则该帧被视为与其参考帧等同的P帧。被跳过帧的重构在概念上等同于复制该参考帧。被跳过帧意思是没有该帧的其它数据被传送。
B-帧直接模式MB比特语法元素(DIRECTMB)(可变大小)
DIRECTMB语法元素使用位平面编码来表示B图片(在此为隔行扫描B-帧)中以直接模式编码的宏块。DIRECTMB语法元素还可用信号表示:该直接模式是用原始模式来作信号表示的,在该情形中直接模式在隔行扫描B-帧的宏块的宏块级别上作信号表示。
经扩展的MV范围标记(MVRANGE)(可变大小)
MVRANGE是在序列层EXTENDED_MV比特被设置为1时提供的可变大小的语法元素。MVRANGE VLC表示运动向量范围。
经扩展的差值MV范围标记(DMVRANGE)(可变大小)
DMVRANGE是如果序列层语法元素EXTENDED_DMV=1时提供的可变大小的语法元素,该DMVRANGE_VLC表示运动向量差值范围。
宏块模式表格(MBMODETAB)(2或3个比特)
MBMODETAB语法元素是固定长度的字段。对于隔行扫描P-半帧,MBMODETAB是3比特值,表示8个哈夫曼表格的哪一个用来解码宏块层中的宏块模式语法元素(MBMODE)。
运动向量表格(MVTAB)(2或3个比特)
MVTAB语法元素是2或3个比特的值。对于NUMREF=1的隔行扫描P-半帧,MVTAB是表示8个隔行扫描哈夫曼表格的哪一个用来解码运动向量的数据的3比特语法元素。
2MV块模式表格(2MVBPTAB)(2个比特)
2MVBPTAB语法元素是2个比特的值,它表示4个哈夫曼表格的哪一个用来解码2MV半帧宏块中2MV块模式(2MVBP)语法元素。
4MV块模式表格(4MVBPTAB)(2个比特)
4MVBPTAB语法元素是2个比特的值,它表示4个哈夫曼表格的哪一个用来解码4MV半帧宏块中4MV块模式(4MVBP)语法元素。
在另一组合实现中,图片类型信息在隔行扫描B-半帧的半帧级别的开始处,而不是在包括隔行扫描B-半帧的隔行扫描视频帧的帧级别上用信号表示,并可略去参考距离。
2.选定半帧层元素
图55是示出组合实现中隔行扫描B-半帧的半帧级别比特流语法的示图。特定比特流元素如下所述。
运动向量模式(MVMODE)(可变大小或1比特)
MVMODE语法元素用信号表示4种运动向量编码模式之一,或一种亮度补偿模式(还有某些图片类型的较少可能)。若干后续元素提供附加运动向量模式和/或亮度补偿信息。
B-半帧正向模式MB比特语法元素(FORWARDMB)(可变大小)
FORWARDMB语法元素将位平面编码用来表示用正向模式编码的B-半帧中宏块。FORWARDMB语法元素还用信号表示,正向模式用原始模式来作信号表示,在该情形中正向/非正向模式决定在宏块级别上作信号表示。
图56是示出组合实现中隔行扫描B-半帧的半帧级别比特流语法的示图。在该组合实现中,隔行扫描BI-半帧的半帧级别比特流语法使用与隔行扫描I-半帧一样的语法元素。
3.选定宏块层元素
图57是示出组合实现中隔行扫描B-半帧的宏块的宏块级别比特流语法的示图。图60是示出组合实现中隔行扫描B-帧的宏块的宏块级别比特流语法的示图。特定比特流元素如下所述。宏块的数据包括宏块头,随后是块层数据。
宏块模式(MBMODE)(可变大小)
MBMODE语法元素指示宏块类型(例如隔行扫描B-半帧的1MV、4MV或帧内),以及CBP标记和运动向量数据的出现。
正向B半帧编码模式(FORWARDBIT)(1比特)
FORWARDBIT是如果半帧级别语法元素FORWARDMB表示使用了原始模式时在隔行扫描B-半帧宏块中提供的1-比特语法元素。如果FORWARDBIT=1,则宏块使用正向模式编码。
B宏块运动预测类型(BMVTYPE)(可变大小)
BMVTYPE是隔行扫描B-帧宏块和隔行扫描B-半帧宏块中提供的可变大小语法元素,它表示该宏块使用正向、反向还是插值预测。如表格7所示,对于隔行扫描B-帧的宏块,BFRACTION以及BMVTYPE的值确定使用哪一种类型。
表格7.BMVTYPE VLC
Figure GSB00000508595700541
在隔行扫描B-半帧中,如果宏块模式不是正向(由FORWARDMB或FORWARDBIT语法元素所示)且不使用4MV,则发送BMVTYPE。在该情形中,BMVTYPE用于用信号表示该B宏块是反向、直接、还是插值的。这是简单的VLC,其中反向=0,直接=10,插值=11。在宏块模式不是正向且使用4MV的情形中,BMVTYPE是反向的,因为只有正向和反向模式被允许用于4MV。
插值MV提供(INTERPMVP)(1比特)
INTERPMVP是如果半帧级别语法元素BMVTYPE表示该宏块类型为插值时在B-半帧中提供的1-比特语法元素。如果INTERPMVP=1,则插值MV出现,否则它不出现。
B宏块运动向量1(BMV1)(可变大小)
BMV1是差分编码宏块的第一运动向量的可变大小的语法元素。
B宏块运动向量2(BMV2)(可变大小)
BMV2是如果使用插值模式时隔行扫描B-帧宏块和隔行扫描B-半帧宏块中提供的可变大小的语法元素。该语法元素差分地编码宏块的第二运动向量。
4MV块模式(4MVBP)(4个比特)
该4MVBP语法元素指示4个亮度块的哪一个包含非零运动向量差值,它的使用在下面详细描述。
块级别运动向量数据(BLKMVDATA)(可变大小)
BLKMVDATA是包含该块的运动信息并在4MV宏块中提供的可变大小的语法元素。
半帧变换标记(FIELDTX)(1比特)
FIELDTX是在隔行扫描B-帧的帧内编码宏块中提供的1比特语法。该语法元素指示宏块是帧编码还是半帧编码(基本上是宏块的内部组织)。FIELDTX=1指示该宏块是半帧编码的。否则,宏块是帧编码的。在帧间编码宏块中,该语法元素可从MBMODE推断。
直接B帧编码模式(DIRECTBBIT)(1比特)
DIRECTBBIT是如果帧级别语法元素DIRECTMB表示使用原始模式时在隔行扫描B-帧宏块中提供的1-比特语法元素。如果DIRECTBBIT=1,则宏块使用直接模式编码。
B帧MV切换(MVSW)(1比特)
MVSW是如果MB为半帧模式以及如果BMVTYPE为正向或反向时在隔行扫描B-帧宏块中提供的1-比特语法元素。如果MVSW=1,则MV类型和预测类型在从上半帧去到下半帧时从正向变成反向(或者从反向变成正向)。
两运动向量块模式(2MVBP)(可变大小)
2MVBP是在隔行扫描B-帧宏块中提供的可变大小语法元素。如果MBMODE语法元素指示该宏块包含一个运动向量,并且如果该宏块是插值宏块,则提供该语法元素。在该情形中,2MVBP指示提供两个运动向量(正向和反向运动向量)的哪一个。
运动向量数据(MVDATA)(可变大小)
MVDATA是编码宏块的运动向量差值的可变大小语法元素,它的解码在下面详细描述。
图58是示出组合实现中隔行扫描BI-半帧的宏块级别比特流语法的示图。在组合实现中,隔行扫描BI-半帧的宏块级别比特流语法使用与隔行扫描I-半帧的相同语法元素。
B.解码隔行扫描的B-半帧
以下各节描述用于解码组合实现中隔行扫描B-半帧的过程。
1.帧/半帧层解码
隔行扫描B-半帧可以是两种类型之一:1MV或混合MV。
在1MV隔行扫描B-半帧中,取决于宏块的预测类型(BMVTYPE),用0、1或2个运动向量来表示各预测块的位移。当BMVTYPE等于DIRECT(直接)时,推断出正向和反向运动向量,并且不显式地用信号表示其它的运动向量。当BMVTYPE是INTERPOLATED(插值)时,解码两个运动向量:正向和反向。在正向和反向情形中,只解码一个运动向量。1MV模式通过MVMODE图片层语法元素来用信号表示。
在混合MV隔行扫描B-半帧中,每个宏块可被编码为1MV或4MV宏块。在4MV宏块中,4个亮度块的每一个都具有与之相关联的运动向量。此外,4MV宏块只可关联于隔行扫描B-半帧中的正向或反向预测类型(BMVTYPE)。每个宏块的1MV或4MV模式通过每个宏块上的MBMODE语法元素来指示。混合MV模式通过MVMODE图片层语法元素来用信号表示。
2.宏块层解码
隔行扫描B-半帧中的宏块可以是三种可能类型之一:1MV、4MV和帧内。此外,宏块可以是四种预测类型(BMVTYPE)之一:正向、反向、直接或插值。宏块类型通过宏块层中的MBMODE语法元素用信号表示。预测类型通过帧级别位平面FORWARDMB和宏块级别BMVTYPE语法元素的组合用信号表示,其中帧级别位平面FORWARDMB用信号表示每个宏块的正向/非正向,而宏块级别BMVTYPE语法元素则在预测类型为非正向的情形中用信号表示。
以下各节描述1MV和4MV类型、以及如何用信号表示它们。
隔行扫描B-半帧中的1MV宏块
1MV宏块可出现在1MV和混合MV隔行扫描B-半帧中。在1MV宏块中,单个运动向量表示宏块中全部6个块的当前和参考图片之间的位移。对于1MV宏块,宏块层中的MBMODE语法元素表示三点:
1)该宏块类型为1MV
2)是否出现CBPCY语法元素
3)是否出现BMV1语法元素
如果MBMODE语法元素表示BMV1语法元素出现,则BMV1语法元素出现在相应位置的宏块层中。BMV1语法元素编码运动向量差值。运动向量差值与运动向量预测值相组合,以重构运动向量。如果MBMODE语法元素表示BMV1语法元素未出现,则运动向量差值被取为0且因此运动向量等于运动向量预测值。
如果MBMODE语法元素表示CBCPY语法元素出现,则CBCPY语法元素出现在相应位置的宏块层中。CBCPY语法元素表示6个块的哪一个在块层上编码。如果MBMODE语法元素表示CBCPY语法元素未出现,则CBCPY被取为等于0且对宏块中6个块的任一个都不出现块数据。
此外,如果宏块类型为1MV且宏块的预测类型是插值,则编码器使用1NTERPMVP语法元素来用信号表示是否出现第二个运动向量差值BMV2。如果出现,则解码器在BMV1之后立即解码BMV2。否则,BMV2的运动向量差值被取为0,而第二个运动向量等于运动向量预测值。
当预测类型是插值时,BMV1对应于正向运动向量而BMV2对应于反向运动向量。
隔行扫描B-半帧中的4MV宏块
4MV宏块仅可出现在混合MVB-半帧图片中,且限于正向和反向预测类型。在4MV宏块中,4个亮度块的每一个都具有关联运动向量。色度块的位移从4个亮度运动向量中导出。在混合MV隔行扫描B-半帧中,4MV宏块仅可关联于正向和反向预测类型。
对于4MV宏块,宏块层中的MBMODE语法元素表示三点:
1)该宏块类型为4MV
2)是否出现CBPCY语法元素
3)是否出现4MVBP语法元素
4MVBP语法元素表示4个亮度块的哪一个包含非零运动向量差值。该4MVBP语法元素解码到0到15的值。对于4MVBP中4个比特位置的每一个,值0表示未出现该块的运动向量差值(BLKMVDATA)且运动向量差值取为0。值1表示该块的运动向量差值(BLKMVDATA)出现在相应位置中。例如,如果4MVBP解码为值100(二进制),则比特流包含块0和1的BLKMVDATA并且未出现块2和3的BLKMVDATA。
如果MBMODE语法元素表示4MVBP语法元素未出现,则假设出现全部4个亮度块的运动向量差值数据(BLKMVDATA)。
取决于MVMODE语法元素是表示混合MV还是全-1MV,MBMODE如下用信号表示信息。以下表格8示出MBMODE元素如何用信号表示有关全-1MV图片中宏块的信息。
表格8.全-1MV图片中的宏块模式
  索引   宏块类型   CBP出现   MV出现
  0   帧内   无   -
  1   帧内   有   -
  2   1MV   无   无
  3   1MV   无   有
  4   1MV   有   无
  5   1MV   有   有
以下表格9示出MBMODE元素如何用信号表示有关混合MV图片中宏块的信息。
表格9.混合1MV图片中的宏块模式
  索引   宏块类型   CBP出现   MV出现
  0   帧内   无   -
  1   帧内   有   -
  2   1MV   无   无
  3   1MV   无   有
  4   1MV   有   无
  5   1MV   有   有
  6   4MV   无   -
  7   4MV   有   -
8个编码表格之一用于用信号表示MBMODE。所用特定表格通过MBMODETAB语法元素用信号表示。
以下各节描述预测类型解码和直接模式运动向量的解码。
隔行扫描B-半帧中的预测类型解码(BMVTYPE)
预测类型根据以下规则进行解码。如果图片级别位平面FORWARDMB表示宏块是正向类型,则该宏块的预测类型被设置为正向。如果FORWARDMB元素被编码为原始,则编码器/解码器在宏块级别上使用一附加比特FORWARDBIT,来判定预测类型是否为正向。
如果预测类型为非正向,且如MBMODE语法元素用信号表示的该宏块使用4MV(仅在混合MV B图片中可能),则解码器可直接推断预测类型为反向,因为只有正向和反向类型可与4MV模式相关联。否则,解码器显式地解码BMVTYPE语法元素。
解码隔行扫描B-半帧中的直接模式运动向量
为了解码隔行扫描B-半帧中的直接模式运动向量,解码器首先缓存来自先前解码(即时间上在将来)的锚(I或P)图片的运动向量。这样,解码器将所缓存的对应于上半帧的运动向量用作预测值,以便于计算上部B-半帧的直接模式运动向量,并使用对应于下半帧的运动向量计算下部B-半帧的运动向量。例如,半帧z(z=上/下)中的宏块(x,y)将参考从先前解码I或P半帧z(即与当前半帧相同极性的锚半帧中的共处宏块)的宏块(x,y)中缓存的运动向量。
如果所缓存的来自锚图片的运动向量为帧内运动向量(诸如当先前解码半帧z是I-半帧时),或者如果锚图片是P-半帧但宏块(x,y)是帧内编码的,则解码器将经缓存的运动向量视为(0,0)。如果共处宏块为1MV,则解码器使用该运动向量。如果共处宏块为4MV,则解码器将图53中伪码5300所述的逻辑用来计算运动向量预测值。
在伪码5300中,SelectDirectModeMVFromColocatedMB导出在直接模式计算中使用的运动向量预测值。解码器可缓存来自先前解码的锚图片的所有运动向量,并在解码B-半帧期间应用以上直接模式,或者解码器在解码锚半帧的同时可应用以上直接模式规则,并缓存用于B-半帧的结果运动向量。
使用以上获得的运动向量,解码器应用缩放逻辑(图19中的Scale_Direct_MV)。Scale_Direct_MV获得正向和反向指示运动向量。Scale_Direct_MV可导致指向上下半帧的正向和反向运动向量。这是有效的,因为直接运动向量由编码器评估并仅在它们给出好预测时选择,还因为隔行扫描B-半帧在正向和反向方向上都使用两个参考半帧。
在另一实现中,可使用产生以直接模式缩放的运动向量的任何其它过程,包括不涉及任何缓存的过程,它在存储器受限设备中会有用(例如使用随机数发生器来模拟偏零拉普拉斯分布)。这种过程仍将起作用,因为好的编码器将丢弃对直接模式运动向量的较差推测,而在比特流中保留更为准确的推测。
3.运动向量解码过程
以下各节描述组合实现中隔行扫描B-半帧的块和宏块的运动向量解码过程。
填充正向和反向预测上下文
正向和反向运动向量被分开缓存,并分别用来预测正向和反向运动向量。例如在以上X节描述了单独缓冲区在正向和反向上下文中的使用。用于选择运动向量预测值的技术在III节背景技术、III节详细说明、以及说明书的其它部分中描述。
在解码正向运动向量期间用预测运动向量填充反向缓冲区(“缺少方向”缓冲区)时(或在解码反向运动向量期间填充正向缓冲区时),要添加另外两个细节。通常,编码器/解码器可使用运动向量类型信息(例如1MV等)、以及先前解码的运动向量的极性来形成预测。然而,在“空穴填充”情形中,因为编码器/解码器实际上并不解码缺少方向类型的运动向量,编码器/解码器并不具有运动向量类型信息或极性信息(例如相同极性或相反极性)。在该组合实现中,编码器/解码器将运动向量类型设置为1MV,并将主半帧运动向量选为预测值。图47中的伪码4700描述该组合实现中的极性选择过程。
对于帧内编码宏块,“帧内运动向量”用来填充正向和反向运动预测平面。“帧内运动向量”的任何一致表示可由解码器实现来选择。例如,如果运动向量被存储在2-字节短数组中,则“帧内运动向量”可被表示为唯一的大常数,它被填充到运动向量数组中来表示该宏块被编码为帧内宏块。
B-半帧中的正向运动向量预测
正向参考帧距离从BFRACTION语法元素和REFDIST语法元素中计算。正向运动向量预测如以上X节所述地进行。
B-半帧中的反向运动向量预测
正向参考帧距离从BFRACTION语法元素和REFDIST语法元素中计算。正向运动向量预测如以上X节所述地进行。
解码运动向量差值
BMV1、BMV2或BLKMVDATA语法元素编码宏块或宏块中各块的运动信息。1MV宏块具有BMV1和BMV2语法元素,且4MV宏块可具有0到4个之间的BLKMVDATA元素。
当预测类型(BMVTYPE)为插值时,BMV1对应于正向而BMV2对应于反向运动向量残差。
以下各节描述对于应用于B-图片的双参考情形如何计算运动向量差值。
双参考半帧图片中的运动向量差值
双参考半帧图片在使用半帧图片对隔行扫描帧的编码中出现。序列的每个帧都被分成两个半帧,且每个半帧使用实际上逐行扫描代码路径来编码。
在具有两个参考半帧的半帧图片中(诸如具有隔行扫描B-半帧的图片),宏块层中的每个MVDATA或BLKMVDATA语法元素联合编码三种信息:1)水平运动向量差值分量,2)垂直运动向量差值分量,3)使用主还是非主预测值,即两个半帧的哪一个被运动向量参考。
MVDATA或BLKMVDATA语法元素是可变长度的哈夫曼代码字,然后是一固定长度代码字。哈夫曼代码字的值确定固定长度代码字的大小。图片层中的MVTAB语法元素指定用来解码可变大小代码字的哈夫曼表格。图61A中的伪码6100示出如何解码运动向量差值和主/非主预测值信息。
值predictor_flag、dmv_x和dmv_y在图61A中的伪码6100中计算。伪码6100中的各个值定义如下:
dmv_x:运动向量水平差值分量,
dmv_y:运动向量垂直差值分量,
k_x,k_y:长运动向量的固定长度,
k_x和k_y取决于由MVRANGE符号定义的运动向量范围。
表格10.由MVRANGE指定的k_x和k_y
  MVRANGE   k_x   k_y   range_x   range_y
  0(缺省)   9   8   256   128
  10   10   9   512   256
  110   12   10   2048   512
  111   13   11   4096   1024
extend_x:水平运动向量差值的扩展范围,
extend_y:垂直运动向量差值的扩展范围,
extend_x和extend_y从DMVRANGE图片半帧语法元素中导出。如果DMVRANGE表示使用水平分量的扩展范围,则extend_x=1。否则,extend_x=0。类似地,如果DMVRANGE表示使用垂直分量的扩展范围,则extend_y=1。否则,extend_y=0。
变量predictor_flag是表示使用主还是非主运动向量预测值的二进制标记(0=使用主预测值,1=使用非主预测值)。offset_table和size_table数组被定义为如图61A所示。
图61B中的伪码6110示出在另一组合实现中如何解码双参考半帧的运动向量差值。伪码6110用不同方法解码运动向量差值。例如,伪码6110略去经扩展运动向量差值范围的处理。
运动向量预测值
运动向量通过将前面部分中计算的运动向量差值添加到运动向量预测值中来计算。以下各节描述在该组合实现中如何计算1MV-和混合MV隔行扫描B-半帧中宏块的运动向量预测值。
1MV隔行扫描B-半帧中的运动向量预测值
图5A和5B是示出被视作用于1MV宏块的候选运动向量预测值的宏块的位置的示图。候选预测值从左边、上方和右上方宏块中取得,除了宏块是行中最后一个宏块的情形。在该情形中,预测值B从左上方宏块而不是从右上方中取得。对于帧为一个宏块宽的特定情形,预测值总是预测值A(顶部预测值)。当前宏块在首行中的特定情形(没有A或B预测值、或者根本没有预测值)在以上参照图33A-33F以及在以下参照图62A-62F解决。
混合MV隔行扫描B-半帧中的运动向量预测值
图6A-10示出被视作用于混合MV隔行扫描B-半帧中的1MV或4MV宏块的运动向量的候选运动向量的块或宏块的位置。
隔行扫描B-半帧中的主和非主MV预测值
对于每个帧间编码的宏块,导出两个运动向量预测值。一个来自主半帧而另一个来自非主半帧。主半帧被视为包含邻域中候选运动向量预测值的大部分实际值的半帧。在不分上下的情形中,相反半帧的运动向量预测值被视为是主预测值(因为它在时间上较为接近)。帧内编码宏块在主/非主预测值的计算中不作考虑。如果全部候选预测值宏块都是帧内编码的,则主和非主运动向量预测值都被设置为0且主预测值被视为来自相反半帧。
计算隔行扫描B-半帧中的运动向量预测值
对块或宏块的每个运动向量计算两个运动向量预测值-每个参考一个。图62A-62F中的伪码6200描述在组合实现中如何对双参考情形计算运动向量预测值。(图33A-33F中的伪码3300描述在另一实现中如何对双参考情形计算运动向量预测值。)在双参考图片中,当前半帧可参考两个最新半帧。一个预测值用于相同极性的参考半帧,而另一个用于相反极性的参考半帧。
重构隔行扫描B-半帧中的运动向量
以下各节描述如何重构1MV和4MV宏块的亮度和色度运动向量。在重构运动向量之后,它随后可用作邻域运动向量以预测相邻宏块的运动向量。该运动向量将具有“相同”或“相反”的关联极性,并可用来导出另一半帧极性的运动向量预测值,用于运动向量预测。
隔行扫描B-半帧中的亮度运动向量重构
在所有情形(1MV和4MV宏块)中,亮度运动向量通过如下将差值添加到预测值来重构:
mv_x=(dmv_x+predictor_x)smod range_x
mv_y=(dmv_y+predictor_y)smod range_y
模运算“smod”是定义如下的有符号模:
A smod b=((A+b)%(2*b))-b
这确保重构向量是有效的。(A smod b)位于-b和b-1之间。range_x和range_y取决于MVRANGE。
因为隔行扫描B-半帧图片使用两个参考图片,在解码运动向量差值之后导出的predictor_flag与从运动向量预测导出的dominantpredictor值相组合,以确定哪个半帧被用作参考。图63中的伪码6300描述如何确定参考半帧。
在1MV宏块中,对于组成宏块的亮度分量的4个块将有单个运动向量。如果MBMODE语法元素表示没有MV数据在宏块层中出现,则dmv_x=0且dmv_y=0(mv_x=predictor_x和mv_y=predictor_y)。
在4MV宏块中,宏块中每个帧间编码亮度块将具有它自己的运动向量。因此在每个4MV宏块中将有0到4个亮度运动向量。如果4MVBP语法元素表示未出现块的运动向量信息,则该块的dmv_x=0且dmv_y=0(mv_x=predictor_x和mv_y=predictor_y)。
色度运动向量重构
色度运动向量从亮度运动向量中导出。此外,对于4MV宏块,对要将色度块编码为帧间块还是帧内块的决定是基于亮度块或半帧的状态作出的。
C.解码隔行扫描P-帧
在描述组合实现中用于解码隔行扫描B-帧的过程之前,描述用于解码隔行扫描P-帧的过程。描述用于解码隔行扫描B-帧的过程的小节将参照本节中讨论的各个概念进行。
1.隔行扫描P-帧的宏块层解码
在隔行扫描P-帧中,每个宏块可用使用一个或四个运动向量的帧模式、或使用两个或四个运动向量的半帧模式作运动补偿。帧间编码的宏块不包含任何帧内块。此外,运动补偿之后的残差可用帧变换模式或半帧变换模式来编码。更具体地,如果用半帧变换模式编码残差,则残差的亮度分量根据各个半帧来重新排列,而在帧变换模式中当色度分量保持不变时残差保持不变。宏块也可被编码为帧内宏块。
运动补偿可被限制为不包括四个运动向量(半帧/帧),并且它通过4MV
SWITCH用信号表示。每个宏块的运动补偿和残差编码的类型通过MBMODE和SKIPMB联合表示。MBMODE根据4MVSWITCH采用不同的表格集。
隔行扫描P-帧中的各个宏块被分成5种类型:1MV、2半帧MV、4帧MV、4半帧MV和帧内。前四类宏块是帧间编码的,而最后一类表示该宏块是帧内编码的。宏块类型由宏块层中的MBMODE语法元素以及跳过比特用信号表示。MBMODE对不同类型的宏块共同编码宏块类型以及有关该宏块的各条信息。
用信号表示跳过的宏块
SKIPMB字段表示宏块的跳过条件。如果SKIPMB字段为1,则表示要跳过当前宏块,并且在SKIPMB字段之后没有发送其它信息。该跳过条件暗示当前宏块是具有0差值运动向量的1MV(即,该宏块是使用其1MV运动预测值做运动补偿的),并且没有经编码的块(CBP=0)。
另一方面,如果SKIPMB字段不是1,则MBMODE半帧被解码为表示宏块的类型和有关当前宏块的其它信息,诸如以下小节中描述的信息。
用信号表示宏块模式
有15种通过MBMODE表示的可能事件;MBMODE共同指定宏块的类型(1MV、4帧MV、2半帧MV、4半帧MV、或帧内)、帧间编码宏块的变换类型(即半帧或帧或未编码的块)、以及是否有1MV宏块的运动向量差值。
设<MVP>表示用信号表示是否有非零1MV运动向量差值的二进制事件。设<Field/Frame transform>(<半帧/帧变换>)表示用信号表示宏块的残差是帧变换编码、半帧变换编码、还是零编码块(即CBP=0)的三元事件。MBMODE共同用信号表示以下事件集:
MBMODE={<1MV,MVP,半帧/帧变换>,<2半帧MV,半帧/帧变换>,<4帧MV,半帧/帧变换>,<4半帧MV,半帧/帧变换>,<帧内>};<1MV,MVP=0,CBP=0>的事件除外,它通过跳过条件用信号表示。
对于帧间编码宏块,当MBMODE中的半帧/帧变换事件表示无编码块时,不解码CBPCY语法元素。另一方面,如果MBMODE中的半帧/帧变换事件表示半帧或帧变换时,则解码CBPCY。所解码事件<半帧/帧变换>被用来设置标记FIELDTX。如果该事件表示宏块是半帧变换编码的,则FIELDTX被设置为1。如果该事件表示宏块是帧变换编码的,则FIELDTX被设置为0。如果该事件表示0编码块,则FIELDTX被设置为与运动向量相同的类型,即如果它是FIELDMV则FIELDTX被设置为1,且如果它是FRAMEMV则被设置为0。
对于非1MV的帧间编码宏块,发送表示零差值运动向量事件的另一字段。在2半帧MV宏块的情形中,发送表示两个运动向量的哪一个包含非零运动向量差值的2MVBP字段。类似地,发送表示四个运动向量的哪一个包含非零运动向量差值的4MVBP字段。
对于帧内编码宏块,半帧/帧变换和零编码块在各个字段中编码。
2.对隔行扫描P-帧的运动向量解码
隔行扫描P-帧的运动向量预测值
计算当前宏块的运动向量预测值的过程包括两个步骤。首先,当前宏块的三个候选运动向量从其相邻宏块中收集。其次,当前宏块的运动向量预测值从候选运动向量集中计算。图40A-40B示出从中收集候选运动向量的相邻宏块。候选运动向量的收集顺序是重要的。在该组合实现中,收集顺序总是从A开始、继续到B、并在C结束。注意,如果相应块在帧边界之外或者相应块是不同片的一部分,则候选预测值被视为不存在。因而,不跨片边界执行运动向量预测。
以下各节描述是否收集不同类型宏块的候选运动向量,以及如何计算运动向量预测值。
1MV候选运动向量
在该组合实现中,图64中的伪码6400被用来收集该运动向量的最多三个候选运动向量。
4帧MV候选运动向量
对于4帧MV宏块,对于当前宏块中四个帧块运动向量的每一个,收集来自相邻块的候选运动向量。在该组合实现中,图65中的伪码6500用来收集左上帧块运动向量的最多三个候选运动向量。图66中的伪码6600用来收集右上帧块运动向量的最多三个候选运动向量。图67中的伪码6700用来收集左下帧块运动向量的最多三个候选运动向量。图68中的伪码6800用来收集右下帧块运动向量的最多三个运动向量。
2半帧MV候选运动向量的导出
对于2半帧MV宏块,对于当前宏块中两个帧运动向量的每一个,收集来自相邻块的候选运动向量。图69中的伪码6900用来收集上半帧运动向量的最多三个候选运动向量。图70中的伪码7000用来收集下半帧运动向量的最多三个候选运动向量。
4半帧MV候选运动向量的导出
对于4半帧MV宏块,对于当前宏块中四个半帧块的每一个,收集来自相邻块的候选运动向量。图71中的伪码7100用来收集左上半帧块运动向量的最多三个候选运动向量。图72中的伪码7200用来收集右上半帧块运动向量的最多三个候选运动向量。图73中的伪码7300用来收集左下半帧块运动向量的最多三个候选运动向量。图74中的伪码7400用来收集右下半帧块运动向量的最多三个候选运动向量。
平均半帧运动向量
给定两个半帧运动向量(MVX1,MVY1)和(MVX2,MVY2),用来形成候选运动向量(MVXA,MVYA)的平均运算是:
MVXA=(MVX1+MVX2+1)>>1;
MVXA=(MVY1+MVY2+1)>>1;
从候选运动向量中计算帧的MV预测值
本节描述:给定一个候选运动向量集如何计算帧运动向量的运动向量预测值。在该组合实现中,运算对计算4帧MV宏块中4帧块运动向量的每一个的预测值相同。
图75中的伪码7500描述如何计算帧运动向量的运动向量预测值(PMVx,PMVy)。在伪码7500中,TotalValidMV表示候选运动向量集中运动向量的总数(TotalValidMV=0,1,2或3),且ValidMV数组表示候选运动向量集中的运动向量。
从候选运动向量中计算半帧的MV预测值
本节描述:给定一个候选运动向量集如何计算半帧运动向量的运动向量预测值。运算对计算2半帧MV宏块中2个半帧运动向量的每一个、或4半帧MV宏块中4个半帧块运动向量的每一个的预测值相同。
首先,候选运动向量被分成两个集,其中一个集只包含指向与当前半帧相同的半帧的候选运动向量,而另一个集包含指向相反半帧的候选运动向量。假设候选运动向量在1/4像素单元中表示,编码器或解码器可通过对其y-分量的以下检查,来检查候选运动向量是否指向相同半帧:
Figure GSB00000508595700671
图76中的伪码7600描述如何计算半帧运动向量的运动向量预测值(PMVx,PMVy)。在伪码7600中,SameFieldMV和OppFieldMV表示两个候选运动向量集,而NumSameFieldMV和NumOppFieldMV表示属于每个集的候选运动向量的数量。每个集中的候选运动向量的顺序从候选A(如果它存在)开始,然后是候选B(如果它存在),再后是候选C(如果它存在)。例如,如果SameFieldMV候选运动向量集只包含候选B和候选C,则SameFieldMV[0]是候选B。
解码运动向量差值
MVDATA语法元素包含宏块的运动向量差值信息。取决于运动补偿的类型和每个宏块上用信号表示的运动向量块模式,每个宏块最多可有四个MVDATA语法元素。更具体地,
·对于1MV宏块,取决于MBMODE中的MVP字段可出现0或1个MVDATA语法元素。
·对于2半帧MV宏块,取决于2MVBP可出现0、1、或2个MVDATA语法元素。
·对于4帧/半帧MV宏块,取决于4MVBP可出现0、1、2、3或4个MVDATA语法元素。
在该组合实现中,运动向量差值用与隔行扫描P-半帧的单参考半帧运动向量差值相同的方法来解码。(图77A中的伪码7700示出如何解码单参考半帧的运动向量差值。图77B中的伪码7710示出在另一组合实现中如何解码单参考半帧的运动向量差值。伪码7710用一种不同方法解码运动向量差值。例如,伪码7710略去对经扩展的运动向量差值范围的处理。)
重构运动向量
给出运动向量差值dmv,亮度运动向量通过如以上XV.B.3节中所述的将差值添加到预测值中来重构。给定亮度帧或半帧运动向量,导出相应的色度帧或半帧运动向量来补偿Cb/Cr块的一部分或全部。图78中的伪码7800描述色度运动向量CMV如何从隔行扫描P-帧中的亮度运动向量LMV中导出。
D.解码隔行扫描B-帧
本节参照前一节中讨论的概念描述组合实现中用于解码隔行扫描B-帧的过程。
1.隔行扫描B-帧的宏块级别解码
在宏块级别上,隔行扫描B-帧语法类似于上述隔行扫描P-帧。隔行扫描B-帧中的宏块被分成三种类型:1MV、2半帧MV、和帧内。在本组合实现中4帧MV和4半帧MV模式不被允许用于隔行扫描B-帧。这三种模式像在隔行扫描P-帧中一样,与MBMODE语法元素共同编码。每个宏块也被预测为正向、反向、直接或插值(使用DIRECTMB和BMVTYPE语法元素)如果1MV宏块是正向或反向,则它使用单个运动向量。如果它是1MV但是直接或插值的,则它使用两个运动向量。如果它是2半帧MV类型并是正向或反向预测的,则它使用两个运动向量。如果它是2半帧MV类型并是直接或插值的,则它使用四个运动向量。
以下各节描述隔行扫描B-帧中不同帧间编码的宏块类型的特征。
隔行扫描B-帧中的1MV宏块
在隔行扫描B-帧中的1MV宏块中,亮度块的位移在预测类型是正向或反向时由单个运动向量表示,而在类型是直接或插值时由两个运动向量表示。在每一情形中导出相应的色度向量。在插值和直接预测的情形中,平均来自正向和反向参考图片的运动补偿像素以形成最终预测。
隔行扫描B-帧中的2半帧MV宏块
在隔行扫描B-帧中的2半帧MV宏块中,亮度块的每个半帧的位移由一不同运动向量描述,如图37所示。此外,在从上半帧去到下半帧时该预测类型被允许从正向切换到反向,或反之,从而使上半帧从一参考图片中得到运动补偿,而下半帧从另一参考图片中得到运动补偿,如在以上VII节中所述的。
隔行扫描B-帧中的2MVBP、4MVBP的解释和运动向量顺序
在1MV宏块中,编码器用插值模式使用2MVBP语法元素,以表示出现两个运动向量的哪一个。比特1对应于正向运动向量,而比特0对应于反向运动向量。
在2半帧MV宏块中,编码器用正向和反向模式使用2MVBP语法元素,来表示出现两个半帧的运动向量的哪一个。比特1对应于上半帧运动向量而比特0对应于下半帧运动向量。当MVSW语法元素用来从用于上半帧的正向预测切换到用于下半帧的反向预测或反之时,编码器使用相同的上/下信号表示。编码器用插值模式使用4MVBP语法元素,来表示出现四个运动向量的哪一个。比特3对应于上半帧正向运动向量,比特2对应于上半帧反向运动向量,比特1对应于下半帧正向运动向量,而比特0对应于下半帧反向运动向量。
设置为‘1’的2MVBP和4MVBP的比特表示出现相应运动向量差值,同时设置为‘0’的比特表示相应运动向量等于所预测的运动向量,即未出现相应的运动向量差值。经实际解码的运动向量用与2MVBP或4MVBP中各比特相同的顺序发送。例如,在使用差值模式的2半帧MV宏块中,要由解码器接收的第一运动向量是上半帧正向运动向量,而要接收的最后(即第四)运动向量是下半帧反向运动向量。
用信号表示跳过的宏块
被跳过的宏块以与P帧相同的方式用信号表示。然而,隔行扫描B-帧中的被跳过宏块限于1MV帧类型,即不允许半帧类型。运动向量用零差值运动向量编码(即宏块是使用其1MV运动补偿值进行运动补偿的)且没有已编码块(CBP=0)。如果宏块被跳过,则编码器仅发送该宏块的BMVTYPE信息,从而运动向量可被准确预测为正向、反向、直接或插值。
用信号表示宏块模式
用信号表示宏块模式用与隔行扫描P-帧相同的方法执行,如以上XV.C.节中所述。
预测类型解码(BMVTYPE和MVSW)
隔行扫描B-帧的预测类型根据以下规则解码。如果图片层位平面DIRECTMB表示宏块是直接类型,则该宏块的预测类型被设置成直接。如果直接/非直接决定用原始模式编码,则编码器使用宏块级别上的附加比特DIRECTBBIT,来表示预测类型是否是直接。
如果预测类型是非直接的,则解码器解码BMVTYPE语法元素。如果宏块模式是“2MV半帧编码”,且如果BMVTYPE是正向或反向的,则解码器还解码MVSW比特来判定从该宏块的上半帧去到下半帧时预测类型是否将改变(即,从正向变为反向,或反之)。
解码直接模式运动向量
为了解码直接模式运动向量,解码器首先缓存来自先前解码锚帧的运动向量。具体地,对于先前解码的将来P-帧,解码器缓存来自将来P-帧的经解码亮度运动向量的最大可能数量的一半(即(2*NumberOfMB)个运动向量)。选择要缓存的来自锚帧的这些运动向量的方法在以上XIII节中描述。
使用以上所获得的运动向量,解码器应用图19中伪码1900示出的Scale_Direct_MV中的缩放逻辑,来获得正向和反向指示运动向量,而无需回拉运动向量。
在本组合实现中,不计算其中不使用诸如正向和反向预测宏块的直接模式预测的宏块的直接模式运动向量。相反,非直接宏块的运动向量基于正向或反向运动向量缓冲区来预测。
2.对隔行扫描B-帧的运动向量解码
隔行扫描B-帧的运动向量预测值
与隔行扫描P-帧一样,计算隔行扫描B-帧的当前宏块的运动向量预测值的过程包括,从当前宏块的相邻宏块中收集其候选运动向量,并且从候选运动向量集中计算当前宏块的运动向量预测值。图40A-40B示出从中收集候选运动向量的相邻宏块。在该组合实现中,隔行扫描B-帧的运动向量预测值根据以上XV.C.节所述的用于隔行扫描P-帧的规则来从候选集中选择。
不同的预测上下文被用于正向和反向模式运动向量。解码器使用正向预测上下文来预测正向运动向量,并使用反向预测上下文来预测反向运动向量。
填充隔行扫描B-帧中的正向和反向预测上下文
解码器分开缓存正向和反向运动向量,并分别用它们来预测正向和反向运动向量。对于插值宏块,解码器使用正向预测缓冲区来预测正向运动向量(第一个经解码的MVDATA元素),并使用反向缓冲区来预测反向运动向量(第二个经解码的MVDATA元素)。当宏块是直接或插值,则解码器将正向MV分量缓存在正向缓冲区中,并将反向MV分量缓存在反向缓冲区中。每种情形中(例如1MV宏块、2半帧MV宏块等)用于从一个候选集中选择运动向量预测值的实际预测逻辑如以上XV.C.节中所述。
用于填充正向和反向运动向量缓冲区、并从这些缓冲区的运动向量中预测运动向量的方案如以上X.C.节中所述。
解码隔行扫描B-帧中的运动向量差值
隔行扫描B-帧中的运动向量差值根据图77A和77B中的伪码7700和7710解码,如以上XV.C.2节中所述。
重构隔行扫描B-帧中的运动向量
隔行扫描B-帧中的运动向量根据图78中的伪码7800并如以上XV.B.3和XV.C.2节中所述地解码。
E.位平面编码
宏块特定的二进制信息可用每个宏块一个二进制符号来编码,这些二进制信息诸如(1)隔行扫描B-半帧的宏块的正向/非正向决定(即FORWARDMB标记),以及(2)隔行扫描B-半帧的宏块的直接/非直接决定(即DIRECTMB标记)。例如,隔行扫描B-半帧的宏块是否用正向模式(与诸如反向、直接或插值的另一模式相对)作运动补偿可用1个比特作信号表示。在这些情形中,半帧或帧中全部宏块的状态可被编码为位平面并在半帧或帧头中传送。该规则的一个例外是如果位平面编码模式被设置成原始模式时,在该情形中每个宏块的状态被编码为每个符号1个比特,并在宏块级别上与其它宏块级别语法元素一起传送。
半帧/帧级别位平面编码被用来编码两维二进制数组。每个数组的大小是rowMB x colMB,其中rowMB和colMB分别是讨论中半帧或帧中宏块行和列的数量。在比特流内,每个数组被编码为一个连续比特集。七种模式之一被用来编码每个数组。该七种模式是:
1.原始模式-编码为每个符号1个比特并作为MB级别语法的一部分传送的信息;
2.正常-2(Norm-2)模式-共同编码的两个符号;
3.差值-2(Diff-2)模式-位平面的差值编码,随后是共同编码两个残差符号;
4.正常-6(Norm-6)模式-共同编码的六个符号;
5.差值-6(Diff-6)模式-位平面的差值编码,随后是共同编码六个残差符号;
6.rowskip(跳行)模式-用信号表示跳过没有设置比特的行的一个比特;以及
7.columnskip(跳列)模式-用信号表示跳过没有设置比特的列的一个比特。
半帧或帧级别上位平面的语法元素顺序如下:INVERT、IMODE和DATABITS。
逆转标记(INVERT)
INVERT语法元素是1-比特值,如果设置则表示该位平面具有比0比特更多的设置比特。取决于INVERT和模式,解码器将逆转所解释的位平面以重新创建原始位平面。注意,当使用原始模式时,将忽略该比特的值。以下提供对解码位平面时如何使用INVERT值的描述。
编码模式(IMODE)
IMODE语法元素是指示用来编码位平面的编码模式的可变长度值。表格11示出用来编码IMODE语法元素的代码表。以下提供对解码位平面时如何使用IMODE值的描述。
表格11.IMODEVLC代码表
  IMODE VLC   编码模式
  10   Norm-2
  11   Norm-6
  010   跳行
  011   跳列
  001   Diff-2
  0001   Diff-6
  0000   原始
位平面编码比特(DATABITS)
DATABITS语法元素是编码位平面的符号流的可变大小语法元素。用来编码位平面的方法根据IMODE的值来确定。七种编码模式在以下各节中描述。
原始模式
在该模式中,位平面被编码为每个以宏块的光栅扫描顺序扫描的符号1个比特,并作为宏块层的一部分发送。或者,该信息在半帧或帧级别上以原始模式编码,且DATABITS在长度上为rowMB x colMB比特。
Norm-2模式
如果rowMB x colMB为奇数,则第一个符号被编码为原始。后续符号成对地用自然扫描顺序编码。表格12中的二进制VLC表格被用来编码符号对。
表格1.Norm-2/Diff-2代码表
  符号2n   符号2n+1   代码字
  0   0   0
  1   0   100
  0   1   101
  1   1   11
Diff-2模式
Norm-2模式用来如上所述地产生位平面,然后Diff1运算如下所述地应用于位平面。
Norm-6模式
在Norm-6和Diff-6模式中,位平面分6个像素的组进行编码。这些像素被分成2x3或3x2的块。位平面使用一系列规则来最大程度地平铺,且剩余像素使用跳行和跳列模式的变体进行编码。如果且仅当rowMB是3的倍数而colMB不是,则使用2x3“竖直”块。否则,使用3x2“水平”块。图79A示出2x3“竖直”块的简化示例。图79B和79C示出3x2“水平”块,对这些块细长的黑色矩形为1个像素宽并使用跳行和跳列编码进行编码。对于如图79C所示平铺的平面,在图片的上边缘和左边缘使用线性块,这些块的编码顺序符合以下模式。先编码6-元素块,然后是跳列和跳行编码的线性块。如果数组大小是2x3或3x2的倍数,则后面的线性块不存在,且位平面被完美平铺。
该6-元素矩形块使用不完整的哈夫曼代码编码,即不将所有端点用于编码的哈夫曼代码。设N是块中设置比特的数量,即0≤N≤6。对于N<3,使用VLC来编码该块。对于N=3,固定长度的转义码之后为5比特固定长度代码,对于N>3,固定长度转义码之后为该块的补码。
该矩形块包含6个比特的信息。设k为关联于块的代码,其中k=bi2i,bi为该块内自然扫描顺序中第i个比特的二进制值。因此,0≤k<64。VLC、转义码、加上固定长度代码被用来用信号表示k。
Diff-6模式
Norm-6模式用来如上所述地产生位平面,然后Diff1运算如下所述地应用于位平面。
跳行模式
在跳行编码模式中,用1个比特的开销跳过所有零行。语法如下:对于每一行,单个ROWSKIP比特表示是否跳过该行;如果跳过该行,则接着是下一行的ROWSKIP比特;否则(未跳过该行),则接着是ROWBITS比特(该行中每个宏块的比特)。因而,如果整行为零,则零比特被发送为ROWSKIP符号,并跳过ROWBITS。如果在该行中有一设置比特,ROWSKIP被设置为1,且整个行被发送为原始(ROWBITS)。各行从半帧或帧的顶部扫描到底部。
跳列模式
跳列是跳行的转置。各列从半帧或帧的顶部扫描到底部。
Diff1:逆向差值解码
在使用任一差值模式(Diff-2或Diff-6)时,“差值比特”的位平面首先使用相应的正常模式(Norm-2或Norm-6)解码。差值比特被用来重新产生原始位平面。重新产生过程是二进制字母表上的2-D DPCM。为了在位置(i,j)上重新产生比特,预测值bp(i,j)如下产生(从位置(i,j)上的比特b(i,j)):
Figure GSB00000508595700731
Figure GSB00000508595700741
对于差值编码模式,不执行基于INVERT的逐个比特逆转过程。然而,INVERT标记以不同容量用来表示符号A的值,用于导出所示预测值。更具体地,如果INVERT等于0则A等于0,且如果INVERT等于1则A等于1。位平面的实际值通过异或预测值和经解码的差值比特值来获取。在以上公式中,b(i,j)是在最终解码之后(即进行Norm-2或Norm-6,然后是与其预测值的差值异或之后)第(i,j)位置上的比特。
已经参照各个实施例描述和示出了本发明的各个原理,可以理解各个实施例可在排列和细节中进行更改而不背离这些原理。应当理解,在此所述的程序、过程或方法并不相关于或限于任何特定类型的计算环境,除非另有所示。各种类型的通用或专用计算环境可根据在此所述的教授内容使用或执行操作。在软件中示出的各个实施例的元素可用硬件实现,反之亦然。
根据本发明各原理可应用其中的许多可能实施例,我们将本发明解释为可在以下权利要求及其等效方案的范围和精神内的所有这些实施例。

Claims (29)

1.一种使用视频解码器来解码已编码视频的方法,所述方法包括:
采用所述视频解码器,解码隔行扫描的双向预测图片,其中所述解码包括,对于所述隔行扫描的双向预测图片的当前宏块,所述当前宏块具有第一预测方向的第一运动向量:
选择所述第一运动向量的第一组多个候选运动向量预测值,其中所述第一组多个候选运动向量预测值是从用于所述第一预测方向的第一运动向量第一运动向量缓冲区中选择的;
至少部分地基于所述第一组多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述第一运动向量的第一运动向量预测值,其中所述第一运动向量预测值是所述第一运动向量的预测的值;
将所述第一运动向量存储在所述第一运动向量缓冲区中用于所述当前宏块的位置;
至少部分地基于第二组多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算第二运动向量预测值,所述第二组多个候选运动向量预测值来自用于与所述第一预测方向相反的第二预测方向的第二运动向量缓冲区;
将所述第二运动向量预测值存储在所述第二运动向量缓冲区中用于所述当前宏块的对应位置,其中所述第二运动向量预测值是所述第二预测方向的填充第二运动向量的预测的值;
其中对所述当前宏块的解码在所述第一预测方向上使用运动补偿,但不在与所述第一预测方向相反的第二预测方向上使用运动补偿,并且
其中所述解码还包括在对所述隔行扫描的双向预测图片的一个或多个后续宏块的运动向量预测中使用来自所述第一运动向量缓冲区的第一运动向量和来自所述第二运动向量缓冲区的第二运动向量。
2.如权利要求1所述的方法,还包括至少部分地基于所述第一运动向量预测值和运动向量差值信息重构所述第一运动向量,其中所述存储将所重构的第一运动向量作为所述第一运动向量存储在所述第一运动向量缓冲区中。
3.如权利要求1所述的方法,其特征在于,当运动向量差值信息表示对所述第一运动向量不存在运动向量差值时,所述存储将所述第一运动向量预测值作为所述第一运动向量存储在所述第一运动向量缓冲区中。
4.如权利要求1所述的方法,其特征在于,计算所述第一运动向量预测值包括计算所述第一组多个候选运动向量预测值中多个候选运动向量预测值的中值。
5.如权利要求1所述的方法,其特征在于,所述第一预测方向为正向,且所述第一运动向量缓冲区是正向运动向量缓冲区。
6.如权利要求1所述的方法,其特征在于,所述第一预测方向为反向,且所述第一运动向量缓冲区是反向运动向量缓冲区。
7.如权利要求1所述的方法,其特征在于,所述隔行扫描的双向预测图片是隔行扫描B-半帧,且其中所述第一运动向量用于整个当前宏块的正向或反向预测。
8.如权利要求1所述的方法,其特征在于,所述隔行扫描的双向预测图片是隔行扫描B-半帧,且其中所述第一运动向量用于当前宏块中单个块的正向或反向预测。
9.如权利要求1所述的方法,其特征在于,所述隔行扫描的双向预测图片是隔行扫描B-帧,且其中所述第一运动向量用于整个当前宏块的正向或反向预测。
10.如权利要求1所述的方法,其特征在于,所述隔行扫描的双向预测图片是隔行扫描B-帧,且其中所述第一运动向量用于当前宏块中一个半帧的正向或反向预测。
11.一种使用视频解码器来解码已编码视频的系统,所述系统包括:
用于采用所述视频解码器,解码隔行扫描的双向预测图片的装置,其中用于所述解码的装置包括,对于所述隔行扫描的双向预测图片的当前宏块,所述当前宏块具有第一预测方向的第一运动向量:
用于选择所述第一运动向量的第一组多个候选运动向量预测值的装置,其中所述第一组多个候选运动向量预测值是从用于所述第一预测方向的第一运动向量第一运动向量缓冲区中选择的;
用于至少部分地基于所述第一组多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述第一运动向量的第一运动向量预测值的装置,其中所述第一运动向量预测值是所述第一运动向量的预测的值;
用于将所述第一运动向量存储在所述第一运动向量缓冲区中用于所述当前宏块的位置的装置;
用于至少部分地基于第二组多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算第二运动向量预测值的装置,所述第二组多个候选运动向量预测值来自用于与所述第一预测方向相反的第二预测方向的第二运动向量缓冲区;
用于将所述第二运动向量预测值存储在所述第二运动向量缓冲区中用于所述当前宏块的对应位置的装置,其中所述第二运动向量预测值是所述第二预测方向的填充第二运动向量的预测的值;
其中对所述当前宏块的解码在所述第一预测方向上使用运动补偿,但不在与所述第一预测方向相反的第二预测方向上使用运动补偿,并且
其中所述解码还包括在对所述隔行扫描的双向预测图片的一个或多个后续宏块的运动向量预测中使用来自所述第一运动向量缓冲区的第一运动向量和来自所述第二运动向量缓冲区的第二运动向量。
12.一种使用视频解码器来解码已编码视频的方法,所述方法包括:
采用所述视频解码器,解码隔行扫描的双向预测图片,其中所述解码包括,对于在第一预测方向上使用运动补偿但在与所述第一预测方向相反的第二预测方向上不使用运动补偿的当前宏块:
选择用于所述隔行扫描的双向预测图片的所述当前宏块的第一预测方向中的第一运动向量的第一组一个或多个候选运动向量预测值,其中所述第一组一个或多个候选运动向量预测值是从用于所述第一预测方向的第一运动向量缓冲区中选择的;
至少部分地基于所述第一组一个或多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述第一运动向量的第一运动向量预测值,其中所述第一运动向量预测值是所述第一运动向量的预测的值;
至少部分地基于所述第一运动向量预测值重构所述第一运动向量;
将重构的第一运动向量添加到所述第一运动向量缓冲区;
选择用于所述隔行扫描的双向预测图片的所述当前宏块的第二组一个或多个候选运动向量预测值,其中所述第二组一个或多个候选运动向量预测值是从用于所述第二预测方向的第二运动向量缓冲区中选择的;
至少部分地基于所述第二组一个或多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述当前宏块的第二运动向量预测值,其中所述第二运动向量预测值是所述第二预测方向上的填充第二运动向量的预测的值;以及
将所述第二运动向量预测值作为所述填充第二运动向量添加到所述第二运动向量缓冲区;
其中所述解码还包括在对所述隔行扫描的双向预测图片的一个或多个后续宏块的运动向量预测中使用来自所述第一运动向量缓冲区的所述重构的第一运动向量和来自所述第二运动向量缓冲区的所述第二运动向量预测值。
13.如权利要求12所述的方法,其特征在于,重构所述第一运动向量还基于运动向量差值信息。
14.如权利要求13所述的方法,其特征在于,所述运动向量差值信息表示对所述第一运动向量不存在运动向量差值。
15.如权利要求12所述的方法,其特征在于,所述第一预测方向为正向,其中所述第一运动向量缓冲区是正向运动向量缓冲区,且所述第二预测方向为反向,其中所述第二运动向量缓冲区是反向运动向量缓冲区。
16.如权利要求15所述的方法,其特征在于,所述宏块具有预测模式,且其中所述预测模式为正向。
17.如权利要求12所述的方法,其特征在于,所述第一预测方向为反向,其中所述第一运动向量缓冲区是反向运动向量缓冲区,且所述第二预测方向为正向,其中所述第二运动向量缓冲区是正向运动向量缓冲区。
18.如权利要求17所述的方法,其特征在于,所述宏块具有预测模式,且其中所述预测模式为反向。
19.如权利要求12所述的方法,其特征在于,所述隔行扫描的双向预测图片是隔行扫描B-帧。
20.如权利要求12所述的方法,其特征在于,所述隔行扫描的双向预测图片是隔行扫描B-半帧。
21.如权利要求12所述的方法,其特征在于,所述第一运动向量用于整个当前宏块。
22.如权利要求12所述的方法,其特征在于,计算所述第一运动向量预测值包括计算所述第一组中多个候选运动向量预测值的中值,且其中计算所述第二运动向量预测值包括计算所述第二组中多个候选运动向量预测值的中值。
23.一种使用视频解码器来解码已编码视频的系统,所述系统包括:
用于采用所述视频解码器,解码隔行扫描的双向预测图片的装置,其中用于所述解码的装置包括,对于在第一预测方向上使用运动补偿但在与所述第一预测方向相反的第二预测方向上不使用运动补偿的当前宏块:
用于选择用于所述隔行扫描的双向预测图片的所述当前宏块的第一预测方向中的第一运动向量的第一组一个或多个候选运动向量预测值的装置,其中所述第一组一个或多个候选运动向量预测值是从用于所述第一预测方向的第一运动向量缓冲区中选择的;
用于至少部分地基于所述第一组一个或多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述第一运动向量的第一运动向量预测值的装置,其中所述第一运动向量预测值是所述第一运动向量的预测的值;
用于至少部分地基于所述第一运动向量预测值重构所述第一运动向量的装置;
用于将重构的第一运动向量添加到所述第一运动向量缓冲区的装置;
用于选择用于所述隔行扫描的双向预测图片的所述当前宏块的第二组一个或多个候选运动向量预测值的装置,其中所述第二组一个或多个候选运动向量预测值是从用于所述第二预测方向的第二运动向量缓冲区中选择的;
用于至少部分地基于所述第二组一个或多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述当前宏块的第二运动向量预测值的装置,其中所述第二运动向量预测值是所述第二预测方向上的填充第二运动向量的预测的值;以及
用于将所述第二运动向量预测值作为所述填充第二运动向量添加到所述第二运动向量缓冲区的装置;
其中所述解码还包括在对所述隔行扫描的双向预测图片的一个或多个后续宏块的运动向量预测中使用来自所述第一运动向量缓冲区的所述重构的第一运动向量和来自所述第二运动向量缓冲区的所述第二运动向量预测值。
24.一种视频解码方法,包括:
选择用于隔行扫描的双向预测图片的当前宏块的第一预测方向中的第一运动向量的第一组多个候选运动向量预测值,其中所述多个候选运动向量预测值是从用于所述第一预测方向的第一运动向量缓冲区中选择的;
至少部分地基于所述多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述第一运动向量的第一运动向量预测值,其中所述第一运动向量预测值是所述第一运动向量的预测的值;
将所述第一运动向量存储在所述第一运动向量缓冲区中用于所述当前宏块的位置;
至少部分地基于来自第二运动向量缓冲区的第二组候选运动向量预测值中的一个或多个候选运动向量预测值,计算第二运动向量预测值,所述第二运动向量缓冲区用于存储与所述第一预测方向相反的第二预测方向上的运动向量;
将所述第二运动向量预测值填充在所述第二运动向量缓冲区中用于所述当前宏块的对应位置,其中所述第二运动向量预测值是所述第二预测方向上的填充第二运动向量的预测的值;以及
在对所述隔行扫描的双向预测图片的后续宏块的运动预测中使用来自所述第一运动向量缓冲区的第一运动向量和来自所述第二运动向量缓冲区的第二运动向量预测值。
25.如权利要求24所述的方法,其特征在于,计算所述第一运动向量预测值包括计算多个候选运动向量预测值的中值。
26.如权利要求24所述的方法,其特征在于,所述第一预测方向为正向,且所述第一运动向量缓冲区是正向运动向量缓冲区。
27.如权利要求24所述的方法,其特征在于,所述第一预测方向为反向,且所述第一运动向量缓冲区是反向运动向量缓冲区。
28.一种视频解码系统,包括:
用于选择用于隔行扫描的双向预测图片的当前宏块的第一预测方向中的第一运动向量的第一组多个候选运动向量预测值的装置,其中所述多个候选运动向量预测值是从用于所述第一预测方向的第一运动向量缓冲区中选择的;
用于至少部分地基于所述多个候选运动向量预测值中的一个或多个候选运动向量预测值,计算所述第一运动向量的第一运动向量预测值的装置,其中所述第一运动向量预测值是所述第一运动向量的预测的值;
用于将所述第一运动向量存储在所述第一运动向量缓冲区中用于所述当前宏块的位置的装置;
用于至少部分地基于来自第二运动向量缓冲区的第二组候选运动向量预测值中的一个或多个候选运动向量预测值,计算第二运动向量预测值的装置,所述第二运动向量缓冲区用于存储与所述第一预测方向相反的第二预测方向上的运动向量;
用于将所述第二运动向量预测值填充在所述第二运动向量缓冲区中用于所述当前宏块的对应位置的装置,其中所述第二运动向量预测值是所述第二预测方向上的填充第二运动向量的预测的值;以及
用于在对所述隔行扫描的双向预测图片的后续宏块的运动预测中使用来自所述第一运动向量缓冲区的第一运动向量和来自所述第二运动向量缓冲区的第二运动向量预测值的装置。
29.一种使用视频解码器来解码已编码视频的方法,所述方法包括:
在所述视频解码器处接收比特流中的已编码数据;以及
采用所述视频解码器,使用所述已编码数据来解码隔行扫描的双向预测图片,其中所述隔行扫描的双向预测图片具有一个或多个正向宏块和一个或多个反向宏块,包括:
对所述一个或多个正向宏块中的每一宏块:
使用来自正向运动向量缓冲区的一个或多个候选运动向量预测值来预测该宏块的正向运动向量的值;
至少部分地基于所述正向运动向量的预测的值来重构所述正向运动向量;
将重构的正向运动向量存储在所述正向运动向量缓冲区中用于该宏块的位置;
使用来自反向运动向量缓冲区的一个或多个候选运动向量预测值来预测反向运动向量的值;以及
将所述反向运动向量的预测的值存储在所述反向运动向量缓冲区中用于该宏块的位置;以及
对所述一个或多个反向宏块中的每一宏块:
使用来自所述反向运动向量缓冲区的一个或多个候选运动向量预测值来预测该宏块的反向运动向量的值;
至少部分地基于所述反向运动向量的预测的值来重构所述反向运动向量;
将重构的反向运动向量存储在所述反向运动向量缓冲区中用于该宏块的位置;
使用来自所述正向运动向量缓冲区的一个或多个候选运动向量预测值来预测正向运动向量的值;以及
将所述正向运动向量的预测的值存储在所述正向运动向量缓冲区中用于该宏块的位置。
CN2004800246218A 2003-09-07 2004-09-03 隔行扫描视频的高级双向预测编码方法和系统 Active CN101416525B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US50108103P 2003-09-07 2003-09-07
US60/501,081 2003-09-07
US10/882,135 US8064520B2 (en) 2003-09-07 2004-06-29 Advanced bi-directional predictive coding of interlaced video
US10/882,135 2004-06-29
PCT/US2004/029000 WO2005027493A2 (en) 2003-09-07 2004-09-03 Advanced bi-directional predictive coding of interlaced video

Related Child Applications (5)

Application Number Title Priority Date Filing Date
CN201010169821XA Division CN101841718B (zh) 2003-09-07 2004-09-03 隔行扫描视频的高级双向预测编码
CN2010101699886A Division CN101924935B (zh) 2003-09-07 2004-09-03 隔行扫描视频的高级双向预测编码
CN2010101701585A Division CN101867817B (zh) 2003-09-07 2004-09-03 隔行扫描视频的高级双向预测编码
CN2010101701602A Division CN101841719B (zh) 2003-09-07 2004-09-03 隔行扫描视频的高级双向预测编码
CN2010101699829A Division CN101924934B (zh) 2003-09-07 2004-09-03 视频编码和解码方法

Publications (2)

Publication Number Publication Date
CN101416525A CN101416525A (zh) 2009-04-22
CN101416525B true CN101416525B (zh) 2012-06-06

Family

ID=34228798

Family Applications (6)

Application Number Title Priority Date Filing Date
CN2010101701585A Active CN101867817B (zh) 2003-09-07 2004-09-03 隔行扫描视频的高级双向预测编码
CN201010169821XA Active CN101841718B (zh) 2003-09-07 2004-09-03 隔行扫描视频的高级双向预测编码
CN2010101701602A Active CN101841719B (zh) 2003-09-07 2004-09-03 隔行扫描视频的高级双向预测编码
CN2004800246218A Active CN101416525B (zh) 2003-09-07 2004-09-03 隔行扫描视频的高级双向预测编码方法和系统
CN2010101699829A Active CN101924934B (zh) 2003-09-07 2004-09-03 视频编码和解码方法
CN2010101699886A Active CN101924935B (zh) 2003-09-07 2004-09-03 隔行扫描视频的高级双向预测编码

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN2010101701585A Active CN101867817B (zh) 2003-09-07 2004-09-03 隔行扫描视频的高级双向预测编码
CN201010169821XA Active CN101841718B (zh) 2003-09-07 2004-09-03 隔行扫描视频的高级双向预测编码
CN2010101701602A Active CN101841719B (zh) 2003-09-07 2004-09-03 隔行扫描视频的高级双向预测编码

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN2010101699829A Active CN101924934B (zh) 2003-09-07 2004-09-03 视频编码和解码方法
CN2010101699886A Active CN101924935B (zh) 2003-09-07 2004-09-03 隔行扫描视频的高级双向预测编码

Country Status (9)

Country Link
US (8) US8064520B2 (zh)
EP (5) EP2285115B1 (zh)
JP (6) JP4763607B2 (zh)
KR (3) KR101365908B1 (zh)
CN (6) CN101867817B (zh)
ES (2) ES2638327T3 (zh)
HK (2) HK1152178A1 (zh)
MX (1) MXPA06002079A (zh)
WO (1) WO2005027493A2 (zh)

Families Citing this family (219)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8923688B2 (en) * 2001-09-12 2014-12-30 Broadcom Corporation Performing personal video recording (PVR) functions on digital video streams
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US7154952B2 (en) * 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
US7609763B2 (en) * 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7499495B2 (en) * 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7620106B2 (en) * 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US7567617B2 (en) * 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7599438B2 (en) * 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US7616692B2 (en) * 2003-09-07 2009-11-10 Microsoft Corporation Hybrid motion vector prediction for interlaced forward-predicted fields
US7623574B2 (en) * 2003-09-07 2009-11-24 Microsoft Corporation Selecting between dominant and non-dominant motion vector predictor polarities
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7693339B2 (en) * 2003-12-17 2010-04-06 Andreas Wittenstein Method and apparatus for faster-than-real-time lossless compression and decompression of images
US7397855B2 (en) * 2004-04-14 2008-07-08 Corel Tw Corp. Rate controlling method and apparatus for use in a transcoder
TWI245539B (en) * 2004-09-22 2005-12-11 Sony Taiwan Ltd Spatial domain pre-processing to reduce the intra-coding computation complexity
EP2164262B1 (en) * 2005-01-10 2013-03-20 Panasonic Corporation Picture coding apparatus and picture decoding apparatus
TWI277013B (en) * 2005-02-01 2007-03-21 Ind Tech Res Inst Method for reducing buffered-frame memory sizes and accesses in a video codec
US8548055B2 (en) * 2005-03-10 2013-10-01 Qualcomm Incorporated Encoding of multimedia data
KR100891662B1 (ko) * 2005-10-05 2009-04-02 엘지전자 주식회사 비디오 신호 디코딩 및 인코딩 방법
KR20070038396A (ko) * 2005-10-05 2007-04-10 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법
CN101283600B (zh) * 2005-10-05 2012-10-03 松下电器产业株式会社 参考图像选择方法以及装置
KR100727994B1 (ko) * 2005-10-06 2007-06-14 삼성전자주식회사 깜박거림 현상 감소를 위한 동영상 프레임의 코딩 방법 및장치
JP2009517138A (ja) * 2005-11-23 2009-04-30 カプソ・ビジョン・インコーポレイテッド 動き検出と「実体像」イメージの構築
FR2894424A1 (fr) * 2005-12-05 2007-06-08 Thomson Licensing Sas Procede de prediction de donnees mouvement et de texture
US8049741B2 (en) * 2006-01-11 2011-11-01 Dell Products L.P. Video optimized LCD response time compensation
FR2897741B1 (fr) * 2006-02-17 2008-11-07 Canon Kk Procede et dispositif de generation de donnees representatives d'un degre d'importance de blocs de donnees et procede et dispositif de transmission d'une sequence video encodee
US8385419B2 (en) * 2006-04-26 2013-02-26 Altera Corporation Methods and apparatus for motion search refinement in a SIMD array processor
KR100763917B1 (ko) * 2006-06-21 2007-10-05 삼성전자주식회사 고속으로 움직임을 추정하는 방법 및 장치
JP4592656B2 (ja) * 2006-08-17 2010-12-01 富士通セミコンダクター株式会社 動き予測処理装置、画像符号化装置および画像復号化装置
KR20080022614A (ko) * 2006-09-07 2008-03-12 삼성전자주식회사 글로벌 영상 검출 방법과, 표시 장치 및 이의 구동 방법
DE102006043707A1 (de) * 2006-09-18 2008-03-27 Robert Bosch Gmbh Verfahren zur Datenkompression in einer Videosequenz
US8194744B2 (en) * 2006-09-20 2012-06-05 Lsi Corporation Method and/or apparatus for implementing reduced bandwidth high performance VC1 intensity compensation
FR2906433B1 (fr) * 2006-09-22 2009-02-27 Canon Kk Procedes et dispositifs de codage et de decodage d'images, programme d'ordinateur les mettant en oeuvre et support d'informaton permettant de les mettre en oeuvre
US9456222B2 (en) * 2006-10-18 2016-09-27 Thomson Licensing Local illumination and color compensation without explicit signaling
US20080117968A1 (en) * 2006-11-22 2008-05-22 Capso Vision, Inc. Movement detection and construction of an "actual reality" image
US8611418B2 (en) * 2006-11-30 2013-12-17 Lsi Corporation Decoding a progressive JPEG bitstream as a sequentially-predicted hybrid video bitstream
EP2124343A4 (en) * 2006-12-14 2012-01-11 Nec Corp METHOD, DEVICE AND VIDEO PROGRAMMING PROGRAM
NO328076B1 (no) * 2007-02-09 2009-11-23 Tandberg Telecom As Fremgangsmate for pikselprediksjon med redusert kompleksitet.
US20080240242A1 (en) * 2007-03-27 2008-10-02 Nokia Corporation Method and system for motion vector predictions
US20080260023A1 (en) * 2007-04-18 2008-10-23 Chih-Ta Star Sung Digital video encoding and decoding with refernecing frame buffer compression
WO2008153262A1 (en) 2007-06-15 2008-12-18 Sungkyunkwan University Foundation For Corporate Collaboration Bi-prediction coding method and apparatus, bi-prediction decoding method and apparatus, and recording midium
US8526499B2 (en) 2007-06-15 2013-09-03 Sungkyunkwan University Foundation For Corporate Collaboration Bi-prediction coding method and apparatus, bi-prediction decoding method and apparatus, and recording medium
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8605786B2 (en) * 2007-09-04 2013-12-10 The Regents Of The University Of California Hierarchical motion vector processing method, software and devices
WO2009034489A2 (en) * 2007-09-10 2009-03-19 Nxp B.V. Method and apparatus for motion estimation in video image data
US8432975B2 (en) * 2008-01-18 2013-04-30 Mediatek Inc. Apparatus and method for processing a picture frame
KR101442608B1 (ko) * 2008-02-05 2014-09-25 삼성전자주식회사 영상을 효율적으로 부호화/복호화하는 방법 및 장치
CN101527843B (zh) * 2008-03-07 2011-01-26 瑞昱半导体股份有限公司 用来解码视频画面中的视频块的装置及其相关方法
KR101431545B1 (ko) * 2008-03-17 2014-08-20 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
KR101423655B1 (ko) * 2008-03-18 2014-07-29 삼성전자주식회사 필드 픽쳐 부호화/복호화 장치 및 그 방법
US20090238479A1 (en) * 2008-03-20 2009-09-24 Pawan Jaggi Flexible frame based energy efficient multimedia processor architecture and method
US20090238263A1 (en) * 2008-03-20 2009-09-24 Pawan Jaggi Flexible field based energy efficient multimedia processor architecture and method
US8634467B2 (en) * 2008-05-06 2014-01-21 Choy Sai Foundation L.L.C. Flexible Wyner-Ziv video frame coding
KR101445791B1 (ko) * 2008-05-10 2014-10-02 삼성전자주식회사 움직임 벡터 변환을 이용한 비월 주사 영상 부호화/복호화방법 및 장치
KR101361005B1 (ko) 2008-06-24 2014-02-13 에스케이 텔레콤주식회사 인트라 예측 방법 및 장치와 그를 이용한 영상부호화/복호화 방법 및 장치
US8805101B2 (en) * 2008-06-30 2014-08-12 Intel Corporation Converting the frame rate of video streams
JP5578775B2 (ja) 2008-09-02 2014-08-27 富士通株式会社 符号化装置および復号装置
US8379727B2 (en) * 2008-09-26 2013-02-19 General Instrument Corporation Method and apparatus for scalable motion estimation
US8634456B2 (en) * 2008-10-03 2014-01-21 Qualcomm Incorporated Video coding with large macroblocks
US8619856B2 (en) * 2008-10-03 2013-12-31 Qualcomm Incorporated Video coding with large macroblocks
US20100086048A1 (en) * 2008-10-03 2010-04-08 Faisal Ishtiaq System and Method for Video Image Processing
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
US8483285B2 (en) * 2008-10-03 2013-07-09 Qualcomm Incorporated Video coding using transforms bigger than 4×4 and 8×8
WO2010041856A2 (en) * 2008-10-06 2010-04-15 Lg Electronics Inc. A method and an apparatus for processing a video signal
US8879637B2 (en) * 2008-10-06 2014-11-04 Lg Electronics Inc. Method and an apparatus for processing a video signal by which coding efficiency of a video signal can be raised by using a mixed prediction mode in predicting different macroblock sizes
KR101377527B1 (ko) 2008-10-14 2014-03-25 에스케이 텔레콤주식회사 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101279573B1 (ko) * 2008-10-31 2013-06-27 에스케이텔레콤 주식회사 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
TWI398169B (zh) * 2008-12-23 2013-06-01 Ind Tech Res Inst 移動向量之編碼模式選擇方法及其相關編碼模式選擇裝置,及其機器可讀取媒體
WO2010086500A1 (en) 2009-01-28 2010-08-05 Nokia Corporation Method and apparatus for video coding and decoding
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
WO2010092740A1 (ja) * 2009-02-10 2010-08-19 パナソニック株式会社 画像処理装置、画像処理方法、プログラムおよび集積回路
EP2224740A1 (en) * 2009-02-27 2010-09-01 Nxp B.V. Detecting occlusion
JP5115498B2 (ja) * 2009-03-05 2013-01-09 富士通株式会社 画像符号化装置、画像符号化制御方法およびプログラム
US20100226437A1 (en) * 2009-03-06 2010-09-09 Sony Corporation, A Japanese Corporation Reduced-resolution decoding of avc bit streams for transcoding or display at lower resolution
US8798158B2 (en) * 2009-03-11 2014-08-05 Industry Academic Cooperation Foundation Of Kyung Hee University Method and apparatus for block-based depth map coding and 3D video coding method using the same
PL3567854T3 (pl) 2009-03-23 2023-02-06 Ntt Docomo, Inc. Sposób predykcyjnego dekodowania obrazu
WO2010131903A2 (en) 2009-05-12 2010-11-18 Lg Electronics Inc. Method and apparatus for processing a video signal
LT3809703T (lt) * 2009-06-18 2023-12-11 Kabushiki Kaisha Toshiba Vaizdo kodavimas
US9628794B2 (en) 2009-06-18 2017-04-18 Kabushiki Kaisha Toshiba Video encoding apparatus and a video decoding apparatus
US8873626B2 (en) * 2009-07-02 2014-10-28 Qualcomm Incorporated Template matching for video coding
KR20110022133A (ko) * 2009-08-27 2011-03-07 삼성전자주식회사 영상의 움직임 추정방법 및 영상처리장치
US8487981B2 (en) * 2009-09-04 2013-07-16 Broadcom Corporation Method and system for processing 2D/3D video
KR20110027238A (ko) * 2009-09-10 2011-03-16 삼성전자주식회사 휴대용 단말기의 영상 데이터 처리 장치 및 방법
US9060176B2 (en) * 2009-10-01 2015-06-16 Ntt Docomo, Inc. Motion vector prediction in video coding
KR101459714B1 (ko) * 2009-10-28 2014-11-13 에스케이텔레콤 주식회사 공간 분할을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2011050997A1 (en) 2009-10-29 2011-05-05 Thomas Sikora Method and device for processing a video sequence
US9621892B2 (en) * 2009-12-18 2017-04-11 Sony Corporation Emulation of Bi predicted pictures using adjacent pictures for improved video
KR101487687B1 (ko) * 2010-01-14 2015-01-29 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
US9036692B2 (en) * 2010-01-18 2015-05-19 Mediatek Inc. Motion prediction method
CN104967857B (zh) 2010-01-19 2019-08-23 三星电子株式会社 对图像进行编码/解码的方法和设备
CN105025298B (zh) * 2010-01-19 2019-04-16 三星电子株式会社 对图像进行编码/解码的方法和设备
MY184904A (en) * 2010-01-19 2021-04-30 Samsung Electronics Co Ltd Method and apparatus for encoding/decoding images using a motion vector of a previous block as a motion vector for the current block
EP2557795A4 (en) * 2010-04-06 2015-07-08 Samsung Electronics Co Ltd METHOD AND APPARATUS FOR ENCODING A VIDEO AND METHOD AND APPARATUS FOR DECODING A VIDEO
WO2011128259A1 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. A video decoder and a video encoder using motion-compensated prediction
WO2011145865A2 (ko) * 2010-05-17 2011-11-24 에스케이텔레콤 주식회사 참조영상 구성 및 인덱싱 장치 및 방법
JP5625512B2 (ja) * 2010-06-09 2014-11-19 ソニー株式会社 符号化装置、符号化方法、プログラム、および記録媒体
US8908755B2 (en) * 2010-07-16 2014-12-09 Sony Corporation Multi-parameter motion for efficient prediction in video compression
WO2012011432A1 (ja) 2010-07-20 2012-01-26 株式会社エヌ・ティ・ティ・ドコモ 画像予測符号化装置、画像予測符号化方法、画像予測符号化プログラム、画像予測復号装置、画像予測復号方法、及び、画像予測復号プログラム
KR101373814B1 (ko) * 2010-07-31 2014-03-18 엠앤케이홀딩스 주식회사 예측 블록 생성 장치
US9549197B2 (en) * 2010-08-16 2017-01-17 Dolby Laboratories Licensing Corporation Visual dynamic range timestamp to enhance data coherency and potential of metadata using delay information
HUE055116T2 (hu) 2010-09-02 2021-10-28 Lg Electronics Inc Videó kódolási és dekódolási eljárás
US8503528B2 (en) 2010-09-15 2013-08-06 Google Inc. System and method for encoding video using temporal filter
KR101842852B1 (ko) 2010-09-24 2018-03-27 선 페이턴트 트러스트 화상 부호화 방법, 화상 복호화 방법, 화상 부호화 장치, 및 화상 복호화 장치
US8976856B2 (en) * 2010-09-30 2015-03-10 Apple Inc. Optimized deblocking filters
US10104391B2 (en) 2010-10-01 2018-10-16 Dolby International Ab System for nested entropy encoding
US20120082228A1 (en) 2010-10-01 2012-04-05 Yeping Su Nested entropy encoding
WO2012045886A1 (en) 2010-10-08 2012-04-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Picture coding supporting block partitioning and block merging
EP3570542B1 (en) 2010-11-24 2022-09-14 Velos Media International Limited Motion vector calculation method, picture coding method, picture decoding method, motion vector calculation apparatus, and picture coding and decoding apparatus
US9137544B2 (en) * 2010-11-29 2015-09-15 Mediatek Inc. Method and apparatus for derivation of mv/mvp candidate for inter/skip/merge modes
KR101588601B1 (ko) * 2010-12-13 2016-01-29 한국전자통신연구원 참조 유닛 결정 방법 및 장치
US9706214B2 (en) 2010-12-24 2017-07-11 Microsoft Technology Licensing, Llc Image and video decoding implementations
TWI471010B (zh) * 2010-12-30 2015-01-21 Mstar Semiconductor Inc 一種具有移動補償的解交錯影像處理裝置及其相關方法
CN103763500A (zh) * 2011-01-04 2014-04-30 晨星软件研发(深圳)有限公司 一种具有移动补偿的解交错影像处理装置及其相关方法
US9635382B2 (en) * 2011-01-07 2017-04-25 Texas Instruments Incorporated Method, system and computer program product for determining a motion vector
KR101913086B1 (ko) * 2011-01-12 2018-10-29 선 페이턴트 트러스트 동화상 부호화 방법 및 동화상 복호화 방법
GB2487200A (en) * 2011-01-12 2012-07-18 Canon Kk Video encoding and decoding with improved error resilience
WO2012097376A1 (en) 2011-01-14 2012-07-19 General Instrument Corporation Spatial block merge mode
AU2012208842B2 (en) * 2011-01-19 2014-08-07 Hfi Innovation Inc. Method and apparatus for parsing error robustness of temporal Motion Vector Prediction
KR102450324B1 (ko) 2011-02-09 2022-10-04 엘지전자 주식회사 영상 부호화 및 복호화 방법과 이를 이용한 장치
US10404998B2 (en) 2011-02-22 2019-09-03 Sun Patent Trust Moving picture coding method, moving picture coding apparatus, moving picture decoding method, and moving picture decoding apparatus
US20130329797A1 (en) * 2011-02-25 2013-12-12 Panasonic Corporation Image coding method and image decoding method
WO2012117728A1 (ja) 2011-03-03 2012-09-07 パナソニック株式会社 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、及び動画像符号化復号装置
GB2501835B (en) 2011-03-09 2014-09-03 Canon Kk Video encoding and decoding
MX352139B (es) * 2011-03-10 2017-11-10 Velos Media Int Ltd Método de decodificación de video.
PT2684190E (pt) 2011-03-10 2016-02-23 Ericsson Telefon Ab L M Preenchimento de sub-vectores não codificados em sinais de aúdio codificados por transformação
JP5982734B2 (ja) * 2011-03-11 2016-08-31 ソニー株式会社 画像処理装置および方法
US8780996B2 (en) 2011-04-07 2014-07-15 Google, Inc. System and method for encoding and decoding video data
US8781004B1 (en) 2011-04-07 2014-07-15 Google Inc. System and method for encoding video using variable loop filter
US8780971B1 (en) 2011-04-07 2014-07-15 Google, Inc. System and method of encoding using selectable loop filters
ES2621231T3 (es) 2011-04-12 2017-07-03 Sun Patent Trust Método de codificación de video de movimiento, aparato de codificación de video de movimiento, método de decodificación de video de movimiento, aparato de decodificación de video de movimiento y aparato de codificación/decodificación de video de movimiento
DK2717573T3 (en) 2011-05-24 2018-06-14 Velos Media Int Ltd Image coding method, image coding apparatus, image decoding method, image decoding apparatus and image coding / decoding apparatus
US9485518B2 (en) 2011-05-27 2016-11-01 Sun Patent Trust Decoding method and apparatus with candidate motion vectors
EP2717575B1 (en) 2011-05-27 2018-10-10 Sun Patent Trust Image decoding method and image decoding device
SG194746A1 (en) 2011-05-31 2013-12-30 Kaba Gmbh Image encoding method, image encoding device, image decoding method, image decoding device, and image encoding/decoding device
PL2717579T3 (pl) 2011-05-31 2020-07-27 Sun Patent Trust Sposób dekodowania obrazu i urządzenie do dekodowania obrazu
US9131239B2 (en) 2011-06-20 2015-09-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
US8780981B2 (en) * 2011-06-27 2014-07-15 Panasonic Intellectual Property Corporation Of America Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding-decoding apparatus
JP6322136B2 (ja) * 2011-06-27 2018-05-09 サムスン エレクトロニクス カンパニー リミテッド 動き情報の符号化方法及び該装置、その復号化方法及び該装置
CA3182875A1 (en) 2011-06-28 2013-01-03 Lg Electronics Inc. Method for setting motion vector list and apparatus using same
US11647197B2 (en) * 2011-06-30 2023-05-09 Velos Media, Llc Context initialization based on slice header flag and slice type
BR112013029425B1 (pt) 2011-06-30 2022-03-29 Sun Patent Trust Método de decodificação de imagem, método de codificação de imagem, dispositivo de decodificação de imagem, dispositivo de codificação de imagem, e dispositivo de codifica ção/decodificação de imagem
US8767824B2 (en) * 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles
US9159139B2 (en) * 2011-07-14 2015-10-13 Technische Universitat Berlin Method and device for processing pixels contained in a video sequence
EP2741499A4 (en) 2011-08-03 2014-12-10 Panasonic Ip Corp America VIDEO CODING METHOD, VIDEO CODING METHOD, VIDEO CODING DEVICE, VIDEO ENCODING DEVICE AND VIDEO ENCODING / DECODING DEVICE
US8731067B2 (en) 2011-08-31 2014-05-20 Microsoft Corporation Memory management for video decoding
CN107592528B (zh) * 2011-09-09 2020-05-12 株式会社Kt 用于解码视频信号的方法
CN103797794B (zh) * 2011-09-16 2017-11-03 寰发股份有限公司 用于编码的方法和装置
US8885706B2 (en) 2011-09-16 2014-11-11 Google Inc. Apparatus and methodology for a video codec system with noise reduction capability
US9131245B2 (en) 2011-09-23 2015-09-08 Qualcomm Incorporated Reference picture list construction for video coding
JP5803500B2 (ja) * 2011-09-27 2015-11-04 株式会社Jvcケンウッド 動きベクトル検出装置及び方法
CA2850066C (en) 2011-10-05 2020-03-24 Panasonic Corporation An image coding and decoding method using prediction information candidates for prediction unit sub-blocks
IN2014DN03098A (zh) 2011-10-17 2015-05-15 Kt Corp
EP2770738A4 (en) 2011-10-19 2016-07-27 Panasonic Ip Corp America IMAGE ENCRYPTION METHOD, IMAGE ENCRYPTION DEVICE, IMAGE KEYING METHOD AND IMAGE WRITING DEVICE
US8942288B2 (en) 2011-11-02 2015-01-27 Tagivan Ii Llc Moving picture coding method, moving picture coding apparatus, moving picture decoding method, and moving picture decoding apparatus
JP5485969B2 (ja) * 2011-11-07 2014-05-07 株式会社Nttドコモ 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法及び動画像予測復号プログラム
TWI580264B (zh) * 2011-11-10 2017-04-21 Sony Corp Image processing apparatus and method
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
KR102211673B1 (ko) 2011-12-16 2021-02-03 벨로스 미디어 인터내셔널 리미티드 동화상 부호화 방법, 동화상 부호화 장치, 동화상 복호 방법, 동화상 복호 장치, 및 동화상 부호화 복호장치
US9762904B2 (en) 2011-12-22 2017-09-12 Qualcomm Incorporated Performing motion vector prediction for video coding
US9900615B2 (en) * 2011-12-28 2018-02-20 Microsoft Technology Licensing, Llc Representative motion information for temporal motion prediction in video encoding and decoding
EP2801194B1 (en) * 2012-01-09 2021-10-27 Huawei Technologies Co., Ltd. Quantization matrix (qm) coding based on weighted prediction
US9531990B1 (en) 2012-01-21 2016-12-27 Google Inc. Compound prediction using multiple sources or prediction modes
US9131073B1 (en) 2012-03-02 2015-09-08 Google Inc. Motion estimation aided noise reduction
US8737824B1 (en) 2012-03-09 2014-05-27 Google Inc. Adaptively encoding a media stream with compound prediction
US9503720B2 (en) * 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
US10200709B2 (en) 2012-03-16 2019-02-05 Qualcomm Incorporated High-level syntax extensions for high efficiency video coding
JP6012014B2 (ja) * 2012-03-30 2016-10-25 サン パテント トラスト 画像符号化方法および画像復号方法
US10721487B2 (en) * 2012-04-17 2020-07-21 Texas Instruments Incorporated Converting a bi-predicted merging candidate in a merging candidate list for a prediction unit of a picture
JP5939016B2 (ja) 2012-04-27 2016-06-22 セイコーエプソン株式会社 光学デバイス及び検出装置
BR112014031502A2 (pt) * 2012-06-21 2017-06-27 Ericsson Telefon Ab L M aparelho e método para codificar um sinal de vídeo
US9185414B1 (en) * 2012-06-29 2015-11-10 Google Inc. Video encoding using variance
KR102341826B1 (ko) 2012-07-02 2021-12-21 엘지전자 주식회사 영상 정보 코딩 방법 및 이를 이용하는 장치
US9344729B1 (en) 2012-07-11 2016-05-17 Google Inc. Selective prediction signal filtering
CN103634606B (zh) * 2012-08-21 2015-04-08 腾讯科技(深圳)有限公司 视频编码方法和装置
US20140092992A1 (en) 2012-09-30 2014-04-03 Microsoft Corporation Supplemental enhancement information including confidence level and mixed content information
US9560361B2 (en) * 2012-12-05 2017-01-31 Vixs Systems Inc. Adaptive single-field/dual-field video encoding
US9008363B1 (en) 2013-01-02 2015-04-14 Google Inc. System and method for computing optical flow
US9628790B1 (en) 2013-01-03 2017-04-18 Google Inc. Adaptive composite intra prediction for image and video compression
EP2974310B1 (en) * 2013-03-13 2019-01-02 Huawei Technologies Co., Ltd. Method for sub-range based coding a depth lookup table
US9749627B2 (en) 2013-04-08 2017-08-29 Microsoft Technology Licensing, Llc Control data for motion-constrained tile set
US9374578B1 (en) 2013-05-23 2016-06-21 Google Inc. Video coding using combined inter and intra predictors
FR3011429A1 (fr) * 2013-09-27 2015-04-03 Orange Codage et decodage video par heritage d'un champ de vecteurs de mouvement
US9609343B1 (en) 2013-12-20 2017-03-28 Google Inc. Video coding using compound prediction
WO2015100522A1 (en) 2013-12-30 2015-07-09 Mediatek Singapore Pte. Ltd. Methods for inter-component residual prediction
US20150208072A1 (en) * 2014-01-22 2015-07-23 Nvidia Corporation Adaptive video compression based on motion
KR101575635B1 (ko) 2014-01-24 2015-12-09 에스케이텔레콤 주식회사 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101575636B1 (ko) 2014-01-24 2015-12-09 에스케이텔레콤 주식회사 복수 개의 움직임 벡터 추정을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR101575645B1 (ko) 2014-01-24 2015-12-09 에스케이텔레콤 주식회사 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101575616B1 (ko) 2014-01-24 2015-12-09 에스케이텔레콤 주식회사 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101575605B1 (ko) 2014-01-24 2015-12-10 에스케이텔레콤 주식회사 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
EP3111630B1 (en) * 2014-03-28 2021-06-02 Huawei Technologies Co., Ltd. Method and device for generating a motion-compensated video frame
US9877048B2 (en) * 2014-06-09 2018-01-23 Qualcomm Incorporated Entropy coding techniques for display stream compression (DSC)
KR101582504B1 (ko) * 2014-06-12 2016-01-07 에스케이텔레콤 주식회사 인터 예측을 이용한 영상 부호화 및 복호화 방법과 장치
KR101590493B1 (ko) 2014-06-12 2016-02-02 에스케이텔레콤 주식회사 인터 예측을 이용한 영상 부호화 및 복호화 방법과 장치
US10102613B2 (en) 2014-09-25 2018-10-16 Google Llc Frequency-domain denoising
WO2016154930A1 (en) * 2015-03-31 2016-10-06 Realnetworks, Inc. Motion vector selection and prediction in video coding systems and methods
US10652569B2 (en) 2015-12-22 2020-05-12 Realnetworks, Inc. Motion vector selection and prediction in video coding systems and methods
CN114466193A (zh) * 2016-03-16 2022-05-10 联发科技股份有限公司 视频编码的样式基础的运动向量推导之方法及装置
EP3249652B1 (en) * 2016-05-25 2020-07-15 Axis AB Method and apparatus for playing back recorded video
CN106780363B (zh) * 2016-11-21 2019-07-23 北京金山安全软件有限公司 一种图片处理方法、装置及电子设备
US10235763B2 (en) 2016-12-01 2019-03-19 Google Llc Determining optical flow
CN108347602B (zh) * 2017-01-22 2021-07-30 上海澜至半导体有限公司 用于无损压缩视频数据的方法和装置
RU2770185C2 (ru) * 2017-06-26 2022-04-14 ИНТЕРДИДЖИТАЛ ВиСи ХОЛДИНГЗ, ИНК. Множество кандидатов предсказателя для компенсации движения
CN108390871B (zh) * 2018-02-09 2020-05-22 西安交通大学 一种基于自回归模型帧预测的雷达数据压缩方法
CN117041593A (zh) * 2018-03-14 2023-11-10 Lx 半导体科技有限公司 图像编码/解码方法、存储介质和发送方法
US11451816B2 (en) * 2018-04-24 2022-09-20 Mediatek Inc. Storage of motion vectors for affine prediction
WO2019234606A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Interaction between ibc and atmvp
CN115426497A (zh) 2018-06-21 2022-12-02 抖音视界有限公司 颜色分量之间的子块运动矢量继承
WO2020065518A1 (en) 2018-09-24 2020-04-02 Beijing Bytedance Network Technology Co., Ltd. Bi-prediction with weights in video coding and decoding
JP7324841B2 (ja) 2018-11-10 2023-08-10 北京字節跳動網絡技術有限公司 ビデオ・データ処理方法、装置、記憶媒体及び記憶方法
EP3993422A4 (en) * 2019-06-27 2023-07-19 Samsung Electronics Co., Ltd. VIDEO DECODING METHOD AND APPARATUS AND VIDEO CODING METHOD AND APPARATUS
CN110636290B (zh) * 2019-08-30 2021-12-03 北京大学 视频图像的运动矢量编解码方法以及编/解码器
WO2021097765A1 (zh) * 2019-11-21 2021-05-27 华为技术有限公司 一种乘法器及算子电路
CN111246211B (zh) * 2020-02-04 2021-11-16 中国联合网络通信集团有限公司 编码方法、解码方法、装置、设备及存储介质
CN113767626A (zh) * 2020-04-01 2021-12-07 华为技术有限公司 视频增强的方法及装置
EP4128791A4 (en) * 2020-04-02 2023-07-19 Telefonaktiebolaget LM ERICSSON (PUBL) DECODING BASED ON A BIDIRECTIONAL IMAGE STATE

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539466A (en) * 1991-07-30 1996-07-23 Sony Corporation Efficient coding apparatus for picture signal and decoding apparatus therefor
CN1243391A (zh) * 1997-12-01 2000-02-02 三星电子株式会社 运动向量预测方法
US6421383B2 (en) * 1997-06-18 2002-07-16 Tandberg Television Asa Encoding digital signals

Family Cites Families (378)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56128070A (en) 1980-03-13 1981-10-07 Fuji Photo Film Co Ltd Band compressing equipment of variable density picture
JPS60158786A (ja) 1984-01-30 1985-08-20 Kokusai Denshin Denwa Co Ltd <Kdd> 画像動き量検出方式
US4661849A (en) 1985-06-03 1987-04-28 Pictel Corporation Method and apparatus for providing motion estimation signals for communicating image sequences
DE3684047D1 (de) 1985-07-02 1992-04-09 Matsushita Electric Ind Co Ltd Vorrichtung zur blockkodierung.
US4661853A (en) 1985-11-01 1987-04-28 Rca Corporation Interfield image motion detector for video signals
FR2599577B1 (fr) 1986-05-29 1988-08-05 Guichard Jacques Procede de codage par transformation pour la transmission de signaux d'image.
US4800432A (en) 1986-10-24 1989-01-24 The Grass Valley Group, Inc. Video Difference key generator
DE3704777C1 (de) 1987-02-16 1988-04-07 Ant Nachrichtentech Verfahren zum UEbertragen und zum Wiedergeben von Fernsehbildsequenzen
NL8700565A (nl) 1987-03-10 1988-10-03 Philips Nv Televisiesysteem waarin aan een transformatiekodering onderworpen gedigitaliseerde beeldsignalen worden overgebracht van een kodeerstation naar een dekodeerstation.
DE3855114D1 (de) 1987-05-06 1996-04-25 Philips Patentverwaltung System zur Übertragung von Videobildern
EP0294958B1 (en) 1987-06-09 1995-08-23 Sony Corporation Motion compensated interpolation of digital television images
EP0294962B1 (en) 1987-06-09 1995-07-19 Sony Corporation Motion vector estimation in television images
US5033105A (en) 1987-08-11 1991-07-16 Apple Computer Video compression algorithm
US4836119A (en) * 1988-03-21 1989-06-06 The Charles Stark Draper Laboratory, Inc. Sperical ball positioning apparatus for seamed limp material article assembly system
DE68925011T2 (de) 1988-09-16 1996-06-27 Philips Electronics Nv Hochauflösungs-Fersehsystem.
FR2648254B2 (fr) 1988-09-23 1991-08-30 Thomson Csf Procede et dispositif d'estimation de mouvement dans une sequence d'images animees
US4985768A (en) * 1989-01-20 1991-01-15 Victor Company Of Japan, Ltd. Inter-frame predictive encoding system with encoded and transmitted prediction error
US5379351A (en) 1992-02-19 1995-01-03 Integrated Information Technology, Inc. Video compression/decompression processing and processors
DE3943881B4 (de) 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
JPH07109990B2 (ja) * 1989-04-27 1995-11-22 日本ビクター株式会社 適応型フレーム間予測符号化方法及び復号方法
JPH0832047B2 (ja) 1989-04-28 1996-03-27 日本ビクター株式会社 予測符号化装置
AU612543B2 (en) 1989-05-11 1991-07-11 Panasonic Corporation Moving image signal encoding apparatus and decoding apparatus
USRE35910E (en) 1989-05-11 1998-09-29 Matsushita Electric Industrial Co., Ltd. Moving image signal encoding apparatus and decoding apparatus
JPH03117991A (ja) * 1989-09-29 1991-05-20 Victor Co Of Japan Ltd 動きベクトル符号化装置及び復号化装置
US5144426A (en) * 1989-10-13 1992-09-01 Matsushita Electric Industrial Co., Ltd. Motion compensated prediction interframe coding system
EP0424026B1 (en) * 1989-10-14 1997-07-23 Sony Corporation Video signal transmitting system and method
JP2787599B2 (ja) 1989-11-06 1998-08-20 富士通株式会社 画像信号符号化制御方式
JP2636441B2 (ja) * 1989-11-09 1997-07-30 富士ゼロックス株式会社 画像記録装置
NL9000424A (nl) 1990-02-22 1991-09-16 Philips Nv Overdrachtsysteem voor gedigitaliseerde televisiebeelden.
JPH082107B2 (ja) 1990-03-02 1996-01-10 国際電信電話株式会社 動画像のハイブリッド符号化方法及びその装置
JPH03265290A (ja) 1990-03-14 1991-11-26 Toshiba Corp テレビジョン信号走査線変換器
US5103306A (en) 1990-03-28 1992-04-07 Transitions Research Corporation Digital image compression employing a resolution gradient
US5091782A (en) 1990-04-09 1992-02-25 General Instrument Corporation Apparatus and method for adaptively compressing successive blocks of digital video
US4999705A (en) 1990-05-03 1991-03-12 At&T Bell Laboratories Three dimensional motion compensated video coding
JP2969782B2 (ja) 1990-05-09 1999-11-02 ソニー株式会社 符号化データ編集方法及び符号化データ編集装置
US5155594A (en) 1990-05-11 1992-10-13 Picturetel Corporation Hierarchical encoding method and apparatus employing background references for efficiently communicating image sequences
CA2043670C (en) 1990-06-05 2002-01-08 Wiebe De Haan Method of transmitting a picture sequence of a full-motion video scene, and a medium for said transmission
US5068724A (en) 1990-06-15 1991-11-26 General Instrument Corporation Adaptive motion compensation for digital television
JP3037383B2 (ja) 1990-09-03 2000-04-24 キヤノン株式会社 画像処理システム及びその方法
US5095342A (en) * 1990-09-28 1992-03-10 Xerox Corporation Methods for sheet scheduling in an imaging system having an endless duplex paper path loop
US5175618A (en) 1990-10-31 1992-12-29 Victor Company Of Japan, Ltd. Compression method for interlace moving image signals
JP3303869B2 (ja) 1990-11-30 2002-07-22 株式会社日立製作所 画像符号化方法、画像符号化装置、画像復号化方法
US5193004A (en) * 1990-12-03 1993-03-09 The Trustees Of Columbia University In The City Of New York Systems and methods for coding even fields of interlaced video sequences
USRE35093E (en) 1990-12-03 1995-11-21 The Trustees Of Columbia University In The City Of New York Systems and methods for coding even fields of interlaced video sequences
US5080340A (en) * 1991-01-02 1992-01-14 Eastman Kodak Company Modular finisher for a reproduction apparatus
US5111292A (en) * 1991-02-27 1992-05-05 General Electric Company Priority selection apparatus as for a video signal processor
JPH0630280A (ja) 1991-03-19 1994-02-04 Nec Eng Ltd 2値画像データのブロック別選択型符号化前処理方式
JP3119888B2 (ja) * 1991-04-18 2000-12-25 松下電器産業株式会社 信号処理方法及び記録再生装置
DE4113505A1 (de) 1991-04-25 1992-10-29 Thomson Brandt Gmbh Verfahren zur bildsignalcodierung
US5185819A (en) * 1991-04-29 1993-02-09 General Electric Company Video signal compression apparatus for independently compressing odd and even fields
US5212549A (en) * 1991-04-29 1993-05-18 Rca Thomson Licensing Corporation Error concealment apparatus for a compressed video signal processing system
JPH04334188A (ja) 1991-05-08 1992-11-20 Nec Corp 動画像信号の符号化方式
WO1992021201A1 (en) 1991-05-24 1992-11-26 British Broadcasting Corporation Video image processing
US5467136A (en) 1991-05-31 1995-11-14 Kabushiki Kaisha Toshiba Video decoder for determining a motion vector from a scaled vector and a difference vector
US5317397A (en) * 1991-05-31 1994-05-31 Kabushiki Kaisha Toshiba Predictive coding using spatial-temporal filtering and plural motion vectors
US5784107A (en) 1991-06-17 1998-07-21 Matsushita Electric Industrial Co., Ltd. Method and apparatus for picture coding and method and apparatus for picture decoding
JP2684941B2 (ja) 1992-11-25 1997-12-03 松下電器産業株式会社 画像符号化方法及び画像符号化装置
JP2977104B2 (ja) * 1991-07-26 1999-11-10 ソニー株式会社 動画像データエンコード方法および装置、並びに動画像データデコード方法および装置
JP3092280B2 (ja) 1991-07-30 2000-09-25 ソニー株式会社 画像信号の高能率符号化及び復号化装置
JP2699703B2 (ja) 1991-07-31 1998-01-19 松下電器産業株式会社 動き補償予測方法とそれを用いた画像信号符号化方法
US5428396A (en) 1991-08-03 1995-06-27 Sony Corporation Variable length coding/decoding method for motion vectors
JPH0541862A (ja) 1991-08-03 1993-02-19 Sony Corp 動きベクトルの可変長符号化方式
JP3001688B2 (ja) 1991-08-05 2000-01-24 株式会社大一商会 パチンコ球の循環制御装置
JP2507204B2 (ja) 1991-08-30 1996-06-12 松下電器産業株式会社 映像信号符号化装置
DE69217150T2 (de) 1991-09-30 1997-07-17 Philips Electronics Nv Bewegungsvektorschätzung, Bewegungsbildkodierung- und -speicherung
JP2991833B2 (ja) * 1991-10-11 1999-12-20 松下電器産業株式会社 インターレス走査ディジタルビデオ信号の符号化装置及びその方法
JP2586260B2 (ja) * 1991-10-22 1997-02-26 三菱電機株式会社 適応的ブロッキング画像符号化装置
JP3134424B2 (ja) 1991-10-31 2001-02-13 ソニー株式会社 可変長符号化方法及び装置
JP2962012B2 (ja) * 1991-11-08 1999-10-12 日本ビクター株式会社 動画像符号化装置及びその復号装置
JPH05137131A (ja) * 1991-11-13 1993-06-01 Sony Corp フレーム間動き予測方法
US5227878A (en) * 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
US5510840A (en) 1991-12-27 1996-04-23 Sony Corporation Methods and devices for encoding and decoding frame signals and recording medium therefor
US6441842B1 (en) 1992-02-19 2002-08-27 8×8, Inc. Video compression/decompression processing and processors
US5594813A (en) 1992-02-19 1997-01-14 Integrated Information Technology, Inc. Programmable architecture and methods for motion estimation
DE69322769T2 (de) 1992-03-03 1999-07-22 Toshiba Kawasaki Kk Koder für zeitveränderliche bilder
US5293229A (en) * 1992-03-27 1994-03-08 Matsushita Electric Corporation Of America Apparatus and method for processing groups of fields in a video data compression system
US5287420A (en) * 1992-04-08 1994-02-15 Supermac Technology Method for image compression on a personal computer
KR0166716B1 (ko) 1992-06-18 1999-03-20 강진구 블럭 dpcm을 이용한 부호화/복호화방법 및 장치
JP3443867B2 (ja) 1992-06-26 2003-09-08 ソニー株式会社 画像信号符号化、復号化方法及び画像信号記録媒体
US6226327B1 (en) 1992-06-29 2001-05-01 Sony Corporation Video coding method and apparatus which select between frame-based and field-based predictive modes
US6101313A (en) 1992-06-29 2000-08-08 Sony Corporation High efficiency encoding and decoding of picture signals and recording medium containing same
US5412435A (en) * 1992-07-03 1995-05-02 Kokusai Denshin Denwa Kabushiki Kaisha Interlaced video signal motion compensation prediction system
JPH06153180A (ja) 1992-09-16 1994-05-31 Fujitsu Ltd 画像データ符号化方法及び装置
US5461420A (en) 1992-09-18 1995-10-24 Sony Corporation Apparatus for coding and decoding a digital video signal derived from a motion picture film source
JPH06113287A (ja) 1992-09-30 1994-04-22 Matsushita Electric Ind Co Ltd 画像符号化装置と画像復号化装置
US5982437A (en) 1992-10-26 1999-11-09 Sony Corporation Coding method and system, and decoding method and system
KR0166722B1 (ko) 1992-11-30 1999-03-20 윤종용 부호화 및 복호화방법 및 그 장치
JP3358835B2 (ja) 1992-12-14 2002-12-24 ソニー株式会社 画像符号化方法及び装置
US5467134A (en) 1992-12-22 1995-11-14 Microsoft Corporation Method and system for compressing video data
US5400075A (en) 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
US5491516A (en) 1993-01-14 1996-02-13 Rca Thomson Licensing Corporation Field elimination apparatus for a video compression/decompression system
US5544286A (en) 1993-01-29 1996-08-06 Microsoft Corporation Digital video data compression technique
US5592228A (en) 1993-03-04 1997-01-07 Kabushiki Kaisha Toshiba Video encoder using global motion estimation and polygonal patch motion estimation
US5376968A (en) 1993-03-11 1994-12-27 General Instrument Corporation Adaptive compression of digital video data using different modes such as PCM and DPCM
ATE204691T1 (de) 1993-03-24 2001-09-15 Sony Corp Verfahren und vorrichtung zur kodierung/dekodierung von bewegungsvektoren, und verfahren und vorrichtung zur kodierung/dekodierung von bildsignalen
KR950702083A (ko) * 1993-04-08 1995-05-17 오오가 노리오 움직이는 벡터검출방법 및 장치
US5442400A (en) 1993-04-29 1995-08-15 Rca Thomson Licensing Corporation Error concealment apparatus for MPEG-like video data
DE69416717T2 (de) 1993-05-21 1999-10-07 Nippon Telegraph & Telephone Bewegtbildkoder und -dekoder
JPH06343172A (ja) 1993-06-01 1994-12-13 Matsushita Electric Ind Co Ltd 動きベクトル検出方法及び動きベクトル符号化方法
US5448297A (en) 1993-06-16 1995-09-05 Intel Corporation Method and system for encoding images using skip blocks
JPH0730896A (ja) * 1993-06-25 1995-01-31 Matsushita Electric Ind Co Ltd 動きベクトル符号化及び復号化方法
US5517327A (en) 1993-06-30 1996-05-14 Minolta Camera Kabushiki Kaisha Data processor for image data using orthogonal transformation
US5329365A (en) * 1993-07-07 1994-07-12 Rca Thomson Licensing Corporation Method and apparatus for providing compressed non-interlaced scanned video signal
JP3152268B2 (ja) * 1993-07-16 2001-04-03 日本ビクター株式会社 画像情報記録方法及び画像情報再生方法
US5477272A (en) 1993-07-22 1995-12-19 Gte Laboratories Incorporated Variable-block size multi-resolution motion estimation scheme for pyramid coding
US5453799A (en) * 1993-11-05 1995-09-26 Comsat Corporation Unified motion estimation architecture
JP3050736B2 (ja) * 1993-12-13 2000-06-12 シャープ株式会社 動画像符号化装置
KR0155784B1 (ko) * 1993-12-16 1998-12-15 김광호 영상데이타의 적응형 가변장 부호화/복호화방법
US5465118A (en) 1993-12-17 1995-11-07 International Business Machines Corporation Luminance transition coding method for software motion video compression/decompression
KR100205503B1 (ko) 1993-12-29 1999-07-01 니시무로 타이죠 비디오데이타 부호화장치 및 복호장치
US5586200A (en) 1994-01-07 1996-12-17 Panasonic Technologies, Inc. Segmentation based image compression system
JP2993351B2 (ja) * 1994-02-14 1999-12-20 松下電器産業株式会社 圧縮データ記録装置
DE69535952D1 (de) * 1994-03-30 2009-06-25 Nxp Bv Verfahren und Schaltung zur Bewegungsschätzung zwischen Bildern mit zwei Zeilensprunghalbbildern, und Vorrichtung zur digitalen Signalkodierung mit einer solchen Schaltung
US5550541A (en) 1994-04-01 1996-08-27 Dolby Laboratories Licensing Corporation Compact source coding tables for encoder/decoder system
TW283289B (zh) 1994-04-11 1996-08-11 Gen Instrument Corp
US5650829A (en) * 1994-04-21 1997-07-22 Sanyo Electric Co., Ltd. Motion video coding systems with motion vector detection
US5457495A (en) 1994-05-25 1995-10-10 At&T Ipm Corp. Adaptive video coder with dynamic bit allocation
US5767898A (en) * 1994-06-23 1998-06-16 Sanyo Electric Co., Ltd. Three-dimensional image coding by merger of left and right images
US5796438A (en) 1994-07-05 1998-08-18 Sony Corporation Methods and apparatus for interpolating picture information
US5594504A (en) 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine
KR0126871B1 (ko) 1994-07-30 1997-12-29 심상철 양방향 이동벡터 추정을 위한 고속 블럭정합 방식
US5684538A (en) 1994-08-18 1997-11-04 Hitachi, Ltd. System and method for performing video coding/decoding using motion compensation
FR2725577B1 (fr) * 1994-10-10 1996-11-29 Thomson Consumer Electronics Procede de codage ou de decodage de vecteurs mouvement et dispositif de codage ou de decodage mettant en oeuvre ledit procede
US5550847A (en) 1994-10-11 1996-08-27 Motorola, Inc. Device and method of signal loss recovery for realtime and/or interactive communications
JP3474005B2 (ja) 1994-10-13 2003-12-08 沖電気工業株式会社 動画像符号化方法及び動画像復号方法
US5552832A (en) 1994-10-26 1996-09-03 Intel Corporation Run-length encoding sequence for video signals
EP0710033A3 (en) * 1994-10-28 1999-06-09 Matsushita Electric Industrial Co., Ltd. MPEG video decoder having a high bandwidth memory
US5623311A (en) 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
DE69525424T2 (de) * 1994-11-25 2002-10-02 Koninkl Philips Electronics Nv Verfahren und Vorrichtung zur Dekodierung von kodierten Videosignalen
MY113223A (en) 1994-12-29 2001-12-31 Sony Corp Processing of redundant fields in a moving picture to achive synchronized system operation
US5619281A (en) 1994-12-30 1997-04-08 Daewoo Electronics Co., Ltd Method and apparatus for detecting motion vectors in a frame decimating video encoder
EP0721287A1 (en) 1995-01-09 1996-07-10 Daewoo Electronics Co., Ltd Method and apparatus for encoding a video signal
JP3732867B2 (ja) * 1995-03-09 2006-01-11 株式会社ルネサステクノロジ 画像伸張装置
EP0731614B1 (en) 1995-03-10 2002-02-06 Kabushiki Kaisha Toshiba Video coding/decoding apparatus
KR0181027B1 (ko) 1995-03-20 1999-05-01 배순훈 화소 단위 움직임 추정을 이용하는 영상처리 시스템
KR0171118B1 (ko) 1995-03-20 1999-03-20 배순훈 비디오신호 부호화 장치
US5489969A (en) * 1995-03-27 1996-02-06 Xerox Corporation Apparatus and method of controlling interposition of sheet in a stream of imaged substrates
CN1154631A (zh) * 1995-04-14 1997-07-16 株式会社东芝 图象解码装置
KR0181063B1 (ko) 1995-04-29 1999-05-01 배순훈 특징점을 이용한 움직임 보상에서의 그리드 형성방법 및 장치
JP3803122B2 (ja) * 1995-05-02 2006-08-02 松下電器産業株式会社 画像メモリ装置および動きベクトル検出回路
US5654771A (en) 1995-05-23 1997-08-05 The University Of Rochester Video compression system using a dense motion vector field and a triangular patch mesh overlay model
GB2301971B (en) 1995-06-06 1999-10-06 Sony Uk Ltd Video compression
US5835149A (en) 1995-06-06 1998-11-10 Intel Corporation Bit allocation in a coded video sequence
GB2301972B (en) 1995-06-06 1999-10-20 Sony Uk Ltd Video compression
US5731850A (en) * 1995-06-07 1998-03-24 Maturi; Gregory V. Hybrid hierarchial/full-search MPEG encoder motion estimation
US5629762A (en) * 1995-06-07 1997-05-13 Eastman Kodak Company Image forming apparatus having a duplex path and/or an inverter
US6208761B1 (en) 1995-07-11 2001-03-27 Telefonaktiebolaget Lm Ericsson (Publ) Video coding
US5687097A (en) 1995-07-13 1997-11-11 Zapex Technologies, Inc. Method and apparatus for efficiently determining a frame motion vector in a video encoder
US5668608A (en) 1995-07-26 1997-09-16 Daewoo Electronics Co., Ltd. Motion vector estimation method and apparatus for use in an image signal encoding system
US5825830A (en) 1995-08-17 1998-10-20 Kopf; David A. Method and apparatus for the compression of audio, video or other data
US5764807A (en) 1995-09-14 1998-06-09 Primacomp, Inc. Data compression using set partitioning in hierarchical trees
GB2305797B (en) * 1995-09-27 2000-03-01 Sony Uk Ltd Video data compression
US5883678A (en) 1995-09-29 1999-03-16 Kabushiki Kaisha Toshiba Video coding and video decoding apparatus for reducing an alpha-map signal at a controlled reduction ratio
US5970173A (en) 1995-10-05 1999-10-19 Microsoft Corporation Image compression and affine transformation for image motion compensation
JPH09107547A (ja) 1995-10-09 1997-04-22 Hitachi Ltd 既圧縮動画データ量削減装置および既圧縮動画データ量削減システムならびに既圧縮動画データ量削減方法
US5819215A (en) 1995-10-13 1998-10-06 Dobson; Kurt Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data
US5929940A (en) 1995-10-25 1999-07-27 U.S. Philips Corporation Method and device for estimating motion between images, system for encoding segmented images
KR100211917B1 (ko) 1995-10-26 1999-08-02 김영환 물체 모양정보 부호화 방법
US6192081B1 (en) 1995-10-26 2001-02-20 Sarnoff Corporation Apparatus and method for selecting a coding mode in a block-based coding system
US5991463A (en) 1995-11-08 1999-11-23 Genesis Microchip Inc. Source data interpolation method and apparatus
US5963673A (en) 1995-12-20 1999-10-05 Sanyo Electric Co., Ltd. Method and apparatus for adaptively selecting a coding mode for video encoding
JPH09182083A (ja) 1995-12-27 1997-07-11 Matsushita Electric Ind Co Ltd ビデオ画像符号化方法及び復号化方法とその装置
US6055012A (en) * 1995-12-29 2000-04-25 Lucent Technologies Inc. Digital multi-view video compression with complexity and compatibility constraints
JP2798035B2 (ja) 1996-01-17 1998-09-17 日本電気株式会社 適応動きベクトル補間による動き補償フレーム間予測方法
US5787203A (en) 1996-01-19 1998-07-28 Microsoft Corporation Method and system for filtering compressed video images
US5692063A (en) 1996-01-19 1997-11-25 Microsoft Corporation Method and system for unrestricted motion estimation for video
US5799113A (en) 1996-01-19 1998-08-25 Microsoft Corporation Method for expanding contracted video images
US5737019A (en) * 1996-01-29 1998-04-07 Matsushita Electric Corporation Of America Method and apparatus for changing resolution by direct DCT mapping
JP3521596B2 (ja) 1996-01-30 2004-04-19 ソニー株式会社 信号符号化方法
US6957350B1 (en) * 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US5798788A (en) * 1996-02-01 1998-08-25 David Sarnoff Research Center, Inc. Method and apparatus for evaluating field display functionality of a video decoder
EP0793389B1 (en) * 1996-02-27 2001-08-16 STMicroelectronics S.r.l. Memory reduction in the MPEG-2 main profile main level decoder
US5982438A (en) 1996-03-22 1999-11-09 Microsoft Corporation Overlapped motion compensation for object coding
EP1835760B1 (en) 1996-05-28 2012-01-04 Panasonic Corporation Decoding apparatus and method with intra prediction
US5847776A (en) 1996-06-24 1998-12-08 Vdonet Corporation Ltd. Method for entropy constrained motion estimation and coding of motion vectors with increased search range
JP3628810B2 (ja) * 1996-06-28 2005-03-16 三菱電機株式会社 画像符号化装置
DE69731517T2 (de) * 1996-07-11 2005-10-20 Koninklijke Philips Electronics N.V. Übertragung und empfang codierter videobilder
US5926226A (en) 1996-08-09 1999-07-20 U.S. Robotics Access Corp. Method for adjusting the quality of a video coder
EP0825778A3 (en) 1996-08-22 1998-06-10 Cirrus Logic, Inc. Method for motion estimation
DE19637522A1 (de) 1996-09-13 1998-03-19 Bosch Gmbh Robert Verfahren zur Reduzierung von Daten in Videosignalen
US6233017B1 (en) 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
EP0831658A3 (en) 1996-09-24 1999-09-15 Hyundai Electronics Industries Co., Ltd. Encoder/decoder for coding/decoding gray scale shape data and method thereof
KR100303685B1 (ko) 1996-09-30 2001-09-24 송문섭 영상 예측부호화 장치 및 그 방법
US5748789A (en) 1996-10-31 1998-05-05 Microsoft Corporation Transparent block skipping in object-based video coding systems
JPH10145779A (ja) * 1996-11-06 1998-05-29 Sony Corp フィールド検出装置およびフィールド検出方法、画像符号化装置および画像符号化方法、並びに記録媒体および記録方法
US6130963A (en) 1996-11-22 2000-10-10 C-Cube Semiconductor Ii, Inc. Memory efficient decoding of video frame chroma
US5905542A (en) * 1996-12-04 1999-05-18 C-Cube Microsystems, Inc. Simplified dual prime video motion estimation
KR100413153B1 (ko) 1996-12-12 2003-12-31 마쯔시다덴기산교 가부시키가이샤 화상 부호화 장치, 화상 복호화 장치 및 기록 매체
US6377628B1 (en) 1996-12-18 2002-04-23 Thomson Licensing S.A. System for maintaining datastream continuity in the presence of disrupted source data
US6167090A (en) 1996-12-26 2000-12-26 Nippon Steel Corporation Motion vector detecting apparatus
US5874111A (en) * 1997-01-07 1999-02-23 Maitra; Amarnath Process for the preparation of highly monodispersed polymeric hydrophilic nanoparticles
EP0786907A3 (en) 1997-01-24 2001-06-13 Texas Instruments Incorporated Video encoder
JP3301375B2 (ja) * 1997-01-24 2002-07-15 ソニー株式会社 画像信号符号化装置及び方法、画像信号復号装置及び方法
CN1216199A (zh) * 1997-01-30 1999-05-05 松下电器产业株式会社 数字图象填补方法、图象处理装置及数据记录媒体
EP1809044B1 (en) 1997-02-14 2008-10-01 Nippon Telegraph and Telephone Corporation Predictive decoding method of video data
US6201927B1 (en) 1997-02-18 2001-03-13 Mary Lafuze Comer Trick play reproduction of MPEG encoded signals
US5974184A (en) 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
US5991447A (en) 1997-03-07 1999-11-23 General Instrument Corporation Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
CN1297147C (zh) * 1997-03-07 2007-01-24 通用仪器公司 对交错数字视频的双向预测的视频目标平面的预测和编码
US6005980A (en) * 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
US6175592B1 (en) 1997-03-12 2001-01-16 Matsushita Electric Industrial Co., Ltd. Frequency domain filtering for down conversion of a DCT encoded picture
US5844613A (en) 1997-03-17 1998-12-01 Microsoft Corporation Global motion estimator for motion video signal encoding
US6263065B1 (en) * 1997-03-18 2001-07-17 At&T Corp. Method and apparatus for simulating central queue for distributing call in distributed arrangement of automatic call distributors
US6404813B1 (en) * 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
JP3217987B2 (ja) 1997-03-31 2001-10-15 松下電器産業株式会社 動画像信号の復号方法および符号化方法
EP0973147A4 (en) 1997-03-31 2007-09-26 Matsushita Electric Ind Co Ltd DYNAMIC IMAGE DISPLAY METHOD AND DEVICE THEREFOR
US5973755A (en) 1997-04-04 1999-10-26 Microsoft Corporation Video encoder and decoder using bilinear motion compensation and lapped orthogonal transforms
SG65064A1 (en) 1997-04-09 1999-05-25 Matsushita Electric Ind Co Ltd Image predictive decoding method image predictive decoding apparatus image predictive coding method image predictive coding apparatus and data storage media
US6441813B1 (en) 1997-05-16 2002-08-27 Kabushiki Kaisha Toshiba Computer system, and video decoder used in the system
JP3226020B2 (ja) * 1997-05-28 2001-11-05 日本電気株式会社 動きベクトル検出装置
KR100563552B1 (ko) 1997-05-30 2006-03-27 미디어텍 인크. 비선형 피라미드를 사용하여 계층적인 움직임 추정을 실행하기 위한 장치 및 방법
JP3164031B2 (ja) * 1997-05-30 2001-05-08 日本ビクター株式会社 動画像符号化復号化装置、動画像符号化復号化方法、及び動画像符号化記録媒体
US6067322A (en) 1997-06-04 2000-05-23 Microsoft Corporation Half pixel motion estimation in motion video signal encoding
US6057884A (en) * 1997-06-05 2000-05-02 General Instrument Corporation Temporal and spatial scaleable coding for video object planes
US6295376B1 (en) 1997-06-09 2001-09-25 Hitachi, Ltd. Image sequence coding method and decoding method
US6574371B2 (en) 1997-06-09 2003-06-03 Hitachi, Ltd. Image decoding method
JPH1169345A (ja) 1997-06-11 1999-03-09 Fujitsu Ltd フレーム間予測動画像符号化装置及び復号装置並びにフレーム間予測動画像符号化方法及び復号方法
US6064771A (en) 1997-06-23 2000-05-16 Real-Time Geometry Corp. System and method for asynchronous, adaptive moving picture compression, and decompression
US6351563B1 (en) * 1997-07-09 2002-02-26 Hyundai Electronics Ind. Co., Ltd. Apparatus and method for coding/decoding scalable shape binary image using mode of lower and current layers
JP2897763B2 (ja) 1997-07-28 1999-05-31 日本ビクター株式会社 動き補償符号化装置、復号化装置、符号化方法及び復号化方法
KR100244291B1 (ko) 1997-07-30 2000-02-01 구본준 동영상 움직임 벡터 코딩 방법
US6266091B1 (en) * 1997-07-31 2001-07-24 Lsi Logic Corporation System and method for low delay mode operation video decoding
US6310918B1 (en) 1997-07-31 2001-10-30 Lsi Logic Corporation System and method for motion vector extraction and computation meeting 2-frame store and letterboxing requirements
FR2766946B1 (fr) 1997-08-04 2000-08-11 Thomson Multimedia Sa Procede et dispositif de pretraitement pour estimation de mouvement
US6281942B1 (en) 1997-08-11 2001-08-28 Microsoft Corporation Spatial and temporal filtering mechanism for digital motion video signals
KR100252342B1 (ko) 1997-08-12 2000-04-15 전주범 움직임 벡터 부호화 방법 및 그 장치
US6477202B1 (en) 1997-09-03 2002-11-05 Matsushita Electric Industrial Co., Ltd. Apparatus of layered picture coding, apparatus of picture decoding, methods of picture decoding, apparatus of recording for digital broadcasting signal, and apparatus of picture and audio decoding
US6249318B1 (en) * 1997-09-12 2001-06-19 8×8, Inc. Video coding/decoding arrangement and method therefor
KR100249223B1 (ko) * 1997-09-12 2000-03-15 구자홍 엠팩(mpeg)-4의움직임벡터코딩방법
US6148033A (en) 1997-11-20 2000-11-14 Hitachi America, Ltd. Methods and apparatus for improving picture quality in reduced resolution video decoders
US6111914A (en) 1997-12-01 2000-08-29 Conexant Systems, Inc. Adaptive entropy coding in adaptive quantization framework for video signal coding systems and processes
US5973743A (en) 1997-12-02 1999-10-26 Daewoo Electronics Co., Ltd. Mode coding method and apparatus for use in an interlaced shape coder
US6094225A (en) * 1997-12-02 2000-07-25 Daewoo Electronics, Co., Ltd. Method and apparatus for encoding mode signals for use in a binary shape coder
KR100523908B1 (ko) * 1997-12-12 2006-01-27 주식회사 팬택앤큐리텔 격행주사 영상에 대한 영상신호 부호화 장치 및 그 방법
JP3740813B2 (ja) * 1997-12-12 2006-02-01 ソニー株式会社 画像符号化方法および画像符号化装置
US6198773B1 (en) 1997-12-18 2001-03-06 Zoran Corporation Video memory management for MPEG video decode and display system
KR100252108B1 (ko) * 1997-12-20 2000-04-15 윤종용 Mpeg 압축부호화 및 복호화기를 채용한 디지털 기록 재생장치 및 그 방법
US6339656B1 (en) 1997-12-25 2002-01-15 Matsushita Electric Industrial Co., Ltd. Moving picture encoding decoding processing apparatus
US5946043A (en) 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
US6122017A (en) 1998-01-22 2000-09-19 Hewlett-Packard Company Method for providing motion-compensated multi-field enhancement of still images from video
JPH11275592A (ja) * 1998-01-22 1999-10-08 Victor Co Of Japan Ltd 動画像符号列変換装置及びその方法
KR100281329B1 (ko) * 1998-01-31 2001-02-01 전주범 이진 형상 신호의 모드 신호 부호화 방법 및 그 복원 방법
EP1062626A4 (en) 1998-02-13 2004-10-06 Quvis Inc SYSTEM AND METHOD FOR OPTIMIZED COMPRESSION OF INTERLACED MOTION IMAGES
EP0940774A3 (en) * 1998-03-05 2000-07-05 Matsushita Electric Industrial Co., Ltd. Motion vector coding and decoding apparatus and method
US6226407B1 (en) * 1998-03-18 2001-05-01 Microsoft Corporation Method and apparatus for analyzing computer screens
DE69801209T2 (de) 1998-03-20 2001-11-08 St Microelectronics Srl Hierarchischer rekursiver Bewegungsschätzer für Bewegtbildkodierer
KR100281462B1 (ko) * 1998-03-30 2001-02-01 전주범 격행 부호화에서 이진 형상 신호의 움직임 벡터 부호화 방법
US6385345B1 (en) * 1998-03-31 2002-05-07 Sharp Laboratories Of America, Inc. Method and apparatus for selecting image data to skip when encoding digital video
US7263127B1 (en) * 1998-04-02 2007-08-28 Intel Corporation Method and apparatus for simplifying frame-based motion estimation
US6115689A (en) * 1998-05-27 2000-09-05 Microsoft Corporation Scalable audio coder and decoder
JP3888597B2 (ja) * 1998-06-24 2007-03-07 日本ビクター株式会社 動き補償符号化装置、及び動き補償符号化復号化方法
US6519287B1 (en) * 1998-07-13 2003-02-11 Motorola, Inc. Method and apparatus for encoding and decoding video signals by using storage and retrieval of motion vectors
US6275531B1 (en) * 1998-07-23 2001-08-14 Optivision, Inc. Scalable video coding method and apparatus
JP4026238B2 (ja) 1998-07-23 2007-12-26 ソニー株式会社 画像復号装置及び画像復号方法
US6219070B1 (en) 1998-09-30 2001-04-17 Webtv Networks, Inc. System and method for adjusting pixel parameters by subpixel positioning
GB2343579A (en) 1998-11-07 2000-05-10 Ibm Hybrid-linear-bicubic interpolation method and apparatus
US6081209A (en) * 1998-11-12 2000-06-27 Hewlett-Packard Company Search system for use in compression
US6983018B1 (en) 1998-11-30 2006-01-03 Microsoft Corporation Efficient motion vector coding for video compression
US6418166B1 (en) 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern
US6563953B2 (en) 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
US6192080B1 (en) 1998-12-04 2001-02-20 Mitsubishi Electric Research Laboratories, Inc. Motion compensated digital video signal processing
KR100587280B1 (ko) 1999-01-12 2006-06-08 엘지전자 주식회사 오류 은폐방법
US6496608B1 (en) 1999-01-15 2002-12-17 Picsurf, Inc. Image data interpolation system and method
EP1149066B1 (en) * 1999-02-05 2005-11-09 Emisphere Technologies, Inc. Method of preparing alkylated salicylamides
WO2000046989A1 (fr) 1999-02-05 2000-08-10 Sony Corporation Dispositifs de codage et de decodage et methodes correspondantes, systeme de codage et procede correspondant
US6259741B1 (en) * 1999-02-18 2001-07-10 General Instrument Corporation Method of architecture for converting MPEG-2 4:2:2-profile bitstreams into main-profile bitstreams
US6499060B1 (en) 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
JP3778721B2 (ja) 1999-03-18 2006-05-24 富士通株式会社 動画像符号化方法および装置
JP2000278692A (ja) 1999-03-25 2000-10-06 Victor Co Of Japan Ltd 圧縮データ処理方法及び処理装置並びに記録再生システム
JP3899727B2 (ja) 1999-03-31 2007-03-28 ソニー株式会社 画像再生装置
US6320593B1 (en) 1999-04-20 2001-11-20 Agilent Technologies, Inc. Method of fast bi-cubic interpolation of image information
US6519005B2 (en) * 1999-04-30 2003-02-11 Koninklijke Philips Electronics N.V. Method of concurrent multiple-mode motion estimation for digital video
KR20010071706A (ko) * 1999-04-30 2001-07-31 요트.게.아. 롤페즈 비-프레임 부호화 모드의 선택을 갖는 비디오 부호화 방법
US6968008B1 (en) 1999-07-27 2005-11-22 Sharp Laboratories Of America, Inc. Methods for motion estimation with adaptive motion accuracy
US6735249B1 (en) * 1999-08-11 2004-05-11 Nokia Corporation Apparatus, and associated method, for forming a compressed motion vector field utilizing predictive motion coding
EP1142343A1 (en) 1999-10-29 2001-10-10 Koninklijke Philips Electronics N.V. Video encoding method
GB9928022D0 (en) * 1999-11-26 2000-01-26 British Telecomm Video coding and decording
JP3694888B2 (ja) 1999-12-03 2005-09-14 ソニー株式会社 復号装置および方法、符号化装置および方法、情報処理装置および方法、並びに記録媒体
US6493392B1 (en) * 1999-12-27 2002-12-10 Hyundai Electronics Industries Co., Ltd. Method for coding digital interlaced moving video
JP2001218172A (ja) 2000-01-31 2001-08-10 Nec Corp 動画像復号器におけるフレームレート変換装置、フレームレート変換方法、およびその記録媒体、集積回路装置
KR100619377B1 (ko) * 2000-02-22 2006-09-08 주식회사 팬택앤큐리텔 움직임 추정 방법 및 장치
JP4378824B2 (ja) 2000-02-22 2009-12-09 ソニー株式会社 画像処理装置及び方法
US6522693B1 (en) * 2000-02-23 2003-02-18 International Business Machines Corporation System and method for reencoding segments of buffer constrained video streams
CN1223196C (zh) 2000-04-14 2005-10-12 索尼公司 解码器、解码方法
CN1322759C (zh) * 2000-04-27 2007-06-20 三菱电机株式会社 编码装置和编码方法
US6654419B1 (en) 2000-04-28 2003-11-25 Sun Microsystems, Inc. Block-based, adaptive, lossless video coder
US6876703B2 (en) 2000-05-11 2005-04-05 Ub Video Inc. Method and apparatus for video coding
GB2362533A (en) 2000-05-15 2001-11-21 Nokia Mobile Phones Ltd Encoding a video signal with an indicator of the type of error concealment used
US6501397B1 (en) * 2000-05-25 2002-12-31 Koninklijke Philips Electronics N.V. Bit-plane dependent signal compression
JP3662171B2 (ja) 2000-06-05 2005-06-22 三菱電機株式会社 符号化装置及び符号化方法
US6449312B1 (en) 2000-06-08 2002-09-10 Motorola, Inc. Method of estimating motion in interlaced video
US6647061B1 (en) 2000-06-09 2003-11-11 General Instrument Corporation Video size conversion and transcoding from MPEG-2 to MPEG-4
US6614442B1 (en) 2000-06-26 2003-09-02 S3 Graphics Co., Ltd. Macroblock tiling format for motion compensation
RU2182727C2 (ru) 2000-07-20 2002-05-20 Дворкович Александр Викторович Способ поиска векторов движения деталей в динамических изображениях
JP4682410B2 (ja) * 2000-10-12 2011-05-11 ソニー株式会社 画像処理装置及び画像処理方法
JP2002152752A (ja) 2000-11-13 2002-05-24 Sony Corp 画像情報変換装置及び方法
KR100355831B1 (ko) 2000-12-06 2002-10-19 엘지전자 주식회사 2차원 최소 비트 예측 기반의 움직임 벡터 부호화 방법
US6633612B2 (en) 2000-12-13 2003-10-14 Genesis Microchip Inc. Method and apparatus for detecting motion between odd and even video fields
US6765963B2 (en) 2001-01-03 2004-07-20 Nokia Corporation Video decoder architecture and method for using same
US6920175B2 (en) 2001-01-03 2005-07-19 Nokia Corporation Video coding architecture and methods for using same
WO2002062074A1 (en) * 2001-01-22 2002-08-08 Webcast Technologies, Inc. Video encoding and decoding techniques and apparatus
ATE297099T1 (de) * 2001-02-13 2005-06-15 Koninkl Philips Electronics Nv Verfahren zur codierung und decodierung von bewegungsschätzungen
US8374237B2 (en) 2001-03-02 2013-02-12 Dolby Laboratories Licensing Corporation High precision encoding and decoding of video images
US6778610B2 (en) * 2001-03-02 2004-08-17 Redrock Semiconductor, Ltd. Simultaneous search for different resync-marker patterns to recover from corrupted MPEG-4 bitstreams
US6940903B2 (en) 2001-03-05 2005-09-06 Intervideo, Inc. Systems and methods for performing bit rate allocation for a video data stream
US7206453B2 (en) 2001-05-03 2007-04-17 Microsoft Corporation Dynamic filtering for lossy compression
US6859235B2 (en) 2001-05-14 2005-02-22 Webtv Networks Inc. Adaptively deinterlacing video on a per pixel basis
JP4458714B2 (ja) 2001-06-20 2010-04-28 富士通マイクロエレクトロニクス株式会社 画像復号装置、画像復号方法、および、プログラム
US6593392B2 (en) * 2001-06-22 2003-07-15 Corning Incorporated Curable halogenated compositions
US6975680B2 (en) 2001-07-12 2005-12-13 Dolby Laboratories, Inc. Macroblock mode decision biasing for video compression systems
EP1294194B8 (en) * 2001-09-10 2010-08-04 Texas Instruments Incorporated Apparatus and method for motion vector estimation
US6950469B2 (en) 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
US20030095603A1 (en) 2001-11-16 2003-05-22 Koninklijke Philips Electronics N.V. Reduced-complexity video decoding using larger pixel-grid motion compensation
US6980596B2 (en) 2001-11-27 2005-12-27 General Instrument Corporation Macroblock level adaptive frame/field coding for digital video content
US20030099294A1 (en) 2001-11-27 2003-05-29 Limin Wang Picture level adaptive frame/field coding for digital video content
CA2468087C (en) * 2001-11-21 2013-06-25 General Instrument Corporation Macroblock level adaptive frame/field coding for digital video content
AU2002351389A1 (en) 2001-12-17 2003-06-30 Microsoft Corporation Skip macroblock coding
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US8780970B2 (en) * 2001-12-21 2014-07-15 Polycom, Inc. Motion wake identification and control mechanism
US6873657B2 (en) 2001-12-27 2005-03-29 Koninklijke Philips Electronics, N.V. Method of and system for improving temporal consistency in sharpness enhancement for a video signal
JP4114859B2 (ja) * 2002-01-09 2008-07-09 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
EP1833261A1 (en) * 2002-01-18 2007-09-12 Kabushiki Kaisha Toshiba Video encoding method and apparatus and video decoding method and apparatus
US7236207B2 (en) 2002-01-22 2007-06-26 Broadcom Corporation System and method of transmission and reception of progressive content with isolated fields for conversion to interlaced display
FI114433B (fi) * 2002-01-23 2004-10-15 Nokia Corp Otossiirtymän koodaaminen videokoodauksessa
WO2003063503A1 (en) * 2002-01-24 2003-07-31 Hitachi, Ltd. Moving picture signal coding method, decoding method, coding apparatus, and decoding apparatus
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
EP1347649A1 (en) 2002-03-18 2003-09-24 Lg Electronics Inc. B picture mode determining method and apparatus in video coding system
US7034897B2 (en) 2002-04-01 2006-04-25 Broadcom Corporation Method of operating a video decoding system
ES2745044T3 (es) 2002-04-19 2020-02-27 Panasonic Ip Corp America Método de cálculo de vectores de movimiento
CN1976456B (zh) 2002-04-19 2011-06-08 松下电器产业株式会社 图像解码方法及图像解码装置
KR100481732B1 (ko) 2002-04-20 2005-04-11 전자부품연구원 다 시점 동영상 부호화 장치
WO2003092169A1 (en) 2002-04-26 2003-11-06 Ntt Docomo, Inc. Signal encoding method, signal decoding method, signal encoding device, signal decoding device, signal encoding program, and signal decoding program
US7277587B2 (en) 2002-04-26 2007-10-02 Sharp Laboratories Of America, Inc. System and method for lossless video coding
US20030202590A1 (en) 2002-04-30 2003-10-30 Qunshan Gu Video encoding using direct mode predicted frames
KR100491530B1 (ko) 2002-05-03 2005-05-27 엘지전자 주식회사 모션 벡터 결정 방법
JP2004048711A (ja) 2002-05-22 2004-02-12 Matsushita Electric Ind Co Ltd 動画像の符号化方法および復号化方法およびデータ記録媒体
EP2045439B1 (en) * 2002-05-24 2010-07-21 3M Innovative Properties Company Use of surface-modified nanoparticles for oil recovery
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
EP1535239A2 (en) * 2002-06-25 2005-06-01 Quix Technologies Ltd. Image processing using probabilistic local behavior assumptions
US20050117642A1 (en) 2002-06-28 2005-06-02 Kiyofumi Abe Moving picture coding method, decoding method, data stream, data recording medium and program
US7280700B2 (en) 2002-07-05 2007-10-09 Microsoft Corporation Optimization techniques for data compression
US7136417B2 (en) 2002-07-15 2006-11-14 Scientific-Atlanta, Inc. Chroma conversion optimization
RU2321967C2 (ru) * 2002-07-15 2008-04-10 Нокиа Корпорейшн Способ маскирования ошибок в видеопоследовательностях
CN101039428B (zh) 2002-07-15 2013-04-10 日立民用电子株式会社 动态图像编码方法及解码方法
US7154952B2 (en) 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
US7020200B2 (en) 2002-08-13 2006-03-28 Lsi Logic Corporation System and method for direct motion vector prediction in bi-predictive video frames and fields
US7072394B2 (en) * 2002-08-27 2006-07-04 National Chiao Tung University Architecture and method for fine granularity scalable video coding
KR100506864B1 (ko) * 2002-10-04 2005-08-05 엘지전자 주식회사 모션벡터 결정방법
US20040136457A1 (en) 2002-10-23 2004-07-15 John Funnell Method and system for supercompression of compressed digital video
JP4093405B2 (ja) 2002-10-25 2008-06-04 株式会社リコー 画像処理装置、プログラム及び記憶媒体
JP3878591B2 (ja) 2002-11-01 2007-02-07 松下電器産業株式会社 動画像符号化方法および動画像復号化方法
US7050088B2 (en) 2003-01-06 2006-05-23 Silicon Integrated Systems Corp. Method for 3:2 pull-down film source detection
JP4207684B2 (ja) 2003-06-27 2009-01-14 富士電機デバイステクノロジー株式会社 磁気記録媒体の製造方法、および、製造装置
US20050013498A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7426308B2 (en) * 2003-07-18 2008-09-16 Microsoft Corporation Intraframe and interframe interlace coding and decoding
US7961786B2 (en) 2003-09-07 2011-06-14 Microsoft Corporation Signaling field type information
US7599438B2 (en) * 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US7092576B2 (en) * 2003-09-07 2006-08-15 Microsoft Corporation Bitplane coding for macroblock field/frame coding type information
US7623574B2 (en) 2003-09-07 2009-11-24 Microsoft Corporation Selecting between dominant and non-dominant motion vector predictor polarities
US7577200B2 (en) * 2003-09-07 2009-08-18 Microsoft Corporation Extended range variable length coding/decoding of differential motion vector information
US7620106B2 (en) * 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US8107531B2 (en) 2003-09-07 2012-01-31 Microsoft Corporation Signaling and repeat padding for skip frames
US7609762B2 (en) 2003-09-07 2009-10-27 Microsoft Corporation Signaling for entry point frames with predicted first field
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7317839B2 (en) * 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US7616692B2 (en) 2003-09-07 2009-11-10 Microsoft Corporation Hybrid motion vector prediction for interlaced forward-predicted fields
US7567617B2 (en) * 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7324595B2 (en) * 2003-09-22 2008-01-29 Lsi Logic Corporation Method and/or apparatus for reducing the complexity of non-reference frame encoding using selective reconstruction
US7853980B2 (en) 2003-10-31 2010-12-14 Sony Corporation Bi-directional indices for trick mode video-on-demand
US7295616B2 (en) 2003-11-17 2007-11-13 Eastman Kodak Company Method and system for video filtering with joint motion and noise estimation
KR20050061762A (ko) 2003-12-18 2005-06-23 학교법인 대양학원 부호화 모드 결정방법, 움직임 추정방법 및 부호화 장치
US7889792B2 (en) 2003-12-24 2011-02-15 Apple Inc. Method and system for video encoding using a variable number of B frames
EP1558039A1 (en) 2004-01-21 2005-07-27 Deutsche Thomson-Brandt Gmbh Method and apparatus for generating/evaluating prediction information in picture signal encoding/decoding
US7283176B2 (en) 2004-03-12 2007-10-16 Broadcom Corporation Method and system for detecting field ID
KR100586882B1 (ko) 2004-04-13 2006-06-08 삼성전자주식회사 모션 스케일러빌리티를 지원하는 코딩 방법 및 장치
FR2872973A1 (fr) 2004-07-06 2006-01-13 Thomson Licensing Sa Procede ou dispositif de codage d'une sequence d'images sources
JP3129986U (ja) 2006-12-26 2007-03-08 ライオン株式会社 板状緩衝材

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539466A (en) * 1991-07-30 1996-07-23 Sony Corporation Efficient coding apparatus for picture signal and decoding apparatus therefor
US6421383B2 (en) * 1997-06-18 2002-07-16 Tandberg Television Asa Encoding digital signals
CN1243391A (zh) * 1997-12-01 2000-02-02 三星电子株式会社 运动向量预测方法

Also Published As

Publication number Publication date
ES2638327T3 (es) 2017-10-19
US20050053148A1 (en) 2005-03-10
JP2011139524A (ja) 2011-07-14
CN101841718A (zh) 2010-09-22
US20050053297A1 (en) 2005-03-10
EP2466894A2 (en) 2012-06-20
EP2466894B1 (en) 2017-05-31
US20050053292A1 (en) 2005-03-10
US20050053149A1 (en) 2005-03-10
KR20060118400A (ko) 2006-11-23
KR20090108107A (ko) 2009-10-14
US20050053300A1 (en) 2005-03-10
JP2011139527A (ja) 2011-07-14
HK1152431A1 (en) 2012-02-24
KR101083870B1 (ko) 2011-11-15
CN101841719A (zh) 2010-09-22
WO2005027493A2 (en) 2005-03-24
ES2634493T3 (es) 2017-09-28
EP2285115A3 (en) 2012-01-04
US7680185B2 (en) 2010-03-16
EP1665766A4 (en) 2011-10-26
JP4763607B2 (ja) 2011-08-31
US7664177B2 (en) 2010-02-16
JP5006457B2 (ja) 2012-08-22
US7590179B2 (en) 2009-09-15
EP2466895B1 (en) 2017-04-26
EP2285114B1 (en) 2016-12-21
WO2005027493A3 (en) 2008-11-20
US20050053146A1 (en) 2005-03-10
CN101841719B (zh) 2012-11-07
EP2466895A3 (en) 2013-05-15
JP5036886B2 (ja) 2012-09-26
EP1665766B1 (en) 2018-11-14
EP2285114A2 (en) 2011-02-16
US7852936B2 (en) 2010-12-14
KR20090108108A (ko) 2009-10-14
HK1152178A1 (en) 2012-02-17
US20050053298A1 (en) 2005-03-10
EP2285114A3 (en) 2011-08-10
JP2007532036A (ja) 2007-11-08
CN101924934A (zh) 2010-12-22
CN101924935B (zh) 2012-12-05
EP2285115B1 (en) 2016-12-28
EP2466895A2 (en) 2012-06-20
US7529302B2 (en) 2009-05-05
JP2011139526A (ja) 2011-07-14
US20050053147A1 (en) 2005-03-10
EP2285115A2 (en) 2011-02-16
KR101075377B1 (ko) 2011-10-24
CN101867817B (zh) 2012-04-25
JP4928001B2 (ja) 2012-05-09
JP2011151839A (ja) 2011-08-04
MXPA06002079A (es) 2006-05-19
US7630438B2 (en) 2009-12-08
EP1665766A2 (en) 2006-06-07
CN101867817A (zh) 2010-10-20
KR101365908B1 (ko) 2014-02-25
CN101416525A (zh) 2009-04-22
CN101924934B (zh) 2012-12-05
CN101841718B (zh) 2013-05-01
EP2466894A3 (en) 2013-04-24
US8064520B2 (en) 2011-11-22
JP4916581B2 (ja) 2012-04-11
CN101924935A (zh) 2010-12-22
JP4928002B2 (ja) 2012-05-09
JP2011139525A (ja) 2011-07-14

Similar Documents

Publication Publication Date Title
CN101416525B (zh) 隔行扫描视频的高级双向预测编码方法和系统
CN101335896B (zh) 用于前向预测的隔行扫描视频帧的场的预测运动矢量
AU728469B2 (en) Intra-macroblock DC and AC coefficient prediction for interlaced digital video
CN100534164C (zh) 为隔行扫描和逐行扫描视频编码和解码宏块和运动信息中的革新
CN101005620B (zh) 为隔行扫描和逐行扫描视频编码和解码宏块和运动信息中的革新
WO2012120661A1 (ja) 動画像符号化方法及び動画像復号化方法
JP2002532029A (ja) ビデオ圧縮のための効率的マクロブロックヘッダ符号化
CN102100059A (zh) 用于运动估计迭代搜索的简单下一搜索位置选择

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150507

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150507

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.