JP4763607B2 - インターレース・ビデオの進歩した双方向予測コーディング - Google Patents

インターレース・ビデオの進歩した双方向予測コーディング Download PDF

Info

Publication number
JP4763607B2
JP4763607B2 JP2006526220A JP2006526220A JP4763607B2 JP 4763607 B2 JP4763607 B2 JP 4763607B2 JP 2006526220 A JP2006526220 A JP 2006526220A JP 2006526220 A JP2006526220 A JP 2006526220A JP 4763607 B2 JP4763607 B2 JP 4763607B2
Authority
JP
Japan
Prior art keywords
motion vector
field
macroblock
interlaced
prediction
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
JP2006526220A
Other languages
English (en)
Other versions
JP2007532036A (ja
Inventor
ムケルジー クナル
ダブリュ.ホルコム トム
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 Corp
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 JP2007532036A publication Critical patent/JP2007532036A/ja
Application granted granted Critical
Publication of JP4763607B2 publication Critical patent/JP4763607B2/ja
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

Description

本願は、参照によって本明細書に組み込まれている米国特許仮出願第60/501081号、名称「Video Encoding and Decoding Tools and Techniques」、2003年9月7日出願の優先権を主張するものである。
次の同時係属の米国特許仮出願明細書は、本願に関し、参照によって本明細書に組み込まれている:1)米国特許仮出願第10/622378号、名称「Advanced Bi-Directional Predictive Coding of Video Frames」、2003年7月18日出願、2)米国特許仮出願第10/622284号、名称「Intraframe and Interframe Interlace Coding and Decoding」、2003年7月18日出願、3)米国特許仮出願第10/622841号、名称「Coding of Motion Vector Information」、2003年7月18日出願、および4)米国特許仮出願第10/857473号、名称「Predicting Motion Vectors for Fields of Forward-predicted Interlaced Video Frames」、2004年5月27日出願。
インターレース・ビデオ・コーディングおよびインターレース・ビデオ・デコーディングの技法およびツールを説明する。例えば、ビデオ・エンコーダが、インターレース・ビデオの双方向予測マクロブロック(bi-directionally predicted macroblock)をエンコードする。
デジタル・ビデオは、大量のストレージ容量および伝送容量を消費する。通常の生デジタル・ビデオ・シーケンスに、毎秒15枚または30枚のピクチャが含まれる。各ピクチャに、数万個または数十万個のピクセル(pixel、ペルとも称する)が含まれる可能性がある。各ピクセルは、ピクチャの小さい要素を表す。RAW形式で、コンピュータは、一般に、24ビット以上を用いて1ピクセルを表す。したがって、通常の生(raw)デジタル・ビデオ・シーケンスの秒当たりのビット数またはビットレートは、500万ビット/秒以上になる可能性がある。
ほとんどのコンピュータおよびコンピュータ・ネットワークは、生デジタル・ビデオを処理するリソースが欠いている。この理由のために、エンジニアは、圧縮(compression)(コーディングまたはエンコーディングとも称する)を使用して、デジタル・ビデオのビットレートを減らす。圧縮は、ロスレス(lossless)とすることができ、この場合に、ビデオの品質は影響を受けないが、ビットレートの削減がビデオの複雑さによって制限される。あるいは、圧縮をロッシイ(lossy)とすることができ、この場合に、ビデオの品質は影響を受けるが、ビットレートの削減はより劇的である。圧縮解除(decompression)は、圧縮の逆の処理を実行する。
一般に、ビデオ圧縮技法に、「イントラ(intra)」圧縮および「インター(inter)」圧縮すなわち予測圧縮(predictive compression)が含まれる。イントラ圧縮技法は、通常はIフレームまたはキー・フレームと呼ばれる個々のピクチャを圧縮する。インター圧縮技法は、前のフレームおよび/または次のフレームへの参照を用いてフレームを圧縮し、このインター圧縮されたフレームを、通常は予測フレーム、Pフレーム、またはBフレームと呼ばれる。
I. Windows(登録商標)Media Videoバージョン8および9でのインター圧縮
Microsoft Corporation社のWindows(登録商標)Media Videoバージョン8[「WMV8」]に、ビデオ・エンコーダおよびビデオ・デコーダが含まれる。WMV8エンコーダは、イントラ圧縮およびインター圧縮を使用し、WMV8デコーダは、イントラ圧縮解除およびインター圧縮解除を使用する。Windows(登録商標)Media Videoバージョン9[「WMV9」]は、多くの動作に、これらに類似するアーキテクチャを使用する。
WMV8エンコーダのインター圧縮は、ブロック・ベースの動き補償された予測(motion compensated prediction)コーディングと、これに続く残余誤差(residual error)の変換コーディングを使用する。図1および2に、WMV8エンコーダの予測フレームに関するブロック・ベースのインター圧縮を示す。具体的に言うと、図1は、予測フレーム110の動き推定を示し、図2は、予測フレームの動き補償されたブロックの予測残差の圧縮を示す。
例えば、図1では、WMV8エンコーダが、予測フレーム110内のマクロブロック115用の動きベクトルを算出する。動きベクトルを算出するために、エンコーダが、基準フレーム(reference frame)130の検索領域135内で検索する。検索領域135内で、エンコーダは、よい一致である候補マクロブロックを見つけるために、予測フレーム110からのマクロブロック115を様々な候補マクロブロックと比較する。エンコーダは、一致するマクロブロックに対する動きベクトルを指定する(エントロピー・コーディングされた)情報を出力する。
動きベクトルは、しばしば、空間的に周囲の動きベクトルの値と相関するので、動きベクトル情報を送るのに使用されるデータの圧縮は、隣接するマクロブロックから動きベクトル・プレディクタ(motion vector predictor)を選択し、このプレディクタを使用して現在のマクロブロックの動きベクトルを予測する、ことによって達成することができる。エンコーダは、動きベクトルとプレディクタの間の差分をエンコードすることができる。差分をプレディクタに加算することによって動きベクトルを再構成した後に、デコーダは、その動きベクトルを使用して、マクロブロック115の予測マクロブロックを算出する。この算出には、基準フレーム130からの情報を使用し、この基準フレーム130は、エンコーダおよびデコーダで使用可能な、前もって再構成されたフレームである。予測は、完全であることがめったになく、したがって、エンコーダは、通常、予測マクロブロックとマクロブロック115自体の間のピクセル差のブロック(誤差ブロックまたは残差ブロックとも呼ばれる)をエンコードする。
図2に、WMV8エンコーダでの誤差ブロック235の算出およびエンコーディングの例を示す。誤差ブロック235は、予測ブロック215とオリジナルの現在のブロック225の間の差である。エンコーダは、誤差ブロック235に離散コサイン変換(DCT)240を適用し、係数の8×8ブロック245をもたらす。次に、エンコーダは、DCT係数を量子化(250)し、量子化されたDCT係数の8×8ブロック255をもたらす。エンコーダは、8×8ブロック255をスキャン(260)して、係数が、全般的に低い周波数から高い周波数の順になるように、1次元配列265に取り込む。エンコーダは、ランレングス・コーディング270の変形を使用して、スキャンされた係数をエントロピー・エンコードする。エンコーダは、1つまたは複数のラン/レベル/ラスト・テーブル(run/level/last table)275からエントロピー・コードを選択し、そのエントロピー・コードを出力する。
図3に、インター・コーディングされたブロックに対する対応するデコード・プロセス300の例を示す。図3を要約すれば、デコーダが、予測残差を表すエントロピー・コーディングされた情報を、1つまたは複数のラン/レベル/ラスト・テーブル315を用いる可変長デコーディング310、およびラン・レングス・デコーディング320を使用して、デコードする(310、320)。デコーダは、エントロピー・デコードされた情報を格納した1次元配列325を、逆スキャン(330)して、2次元ブロック335に取り込む。デコーダは、データを逆量子化(340)し、(340に続けて)逆離散コサイン変換し、再構成された誤差ブロック345をもたらす。別々の動き補償パスで、デコーダは、基準フレームからの変位に関する動きベクトル情報355を使用して、予測ブロック365を算出する。デコーダは、予測ブロック365を再構成された誤差ブロック345と組み合わせ(370)て、再構成されたブロック375を形成する。
オリジナル・フレームと再構成されたフレームの間の変化の量は、ひずみであり、フレームをコーディングするのに必要なビット数は、そのフレームのレートを示す。ひずみの量は、おおむね、レートに反比例する。
II. インターレース・ビデオおよびプログレッシブ・ビデオ
ビデオ・フレームは、ビデオ信号の空間情報の走査線を収容する。プログレッシブ・ビデオについて、これらの走査線は、ある瞬間から始まり、連続する走査線を介してフレームの最下部まで継続するサンプルを収容する。プログレッシブIフレームは、イントラ・コーディングされたプログレッシブ・ビデオ・フレームである。プログレッシブPフレームは、順方向予測(forward prediction)を使用してコーディングされたプログレッシブ・ビデオ・フレームであり、プログレッシブBフレームは、双方向測(bi-directional prediction)を使用してコーディングされたプログレッシブ・ビデオ・フレームである。
通常のインターレース・ビデオ・フレームは、2つのフィールドから構成され、これらは異なる時刻にスキャンが開始される。例えば、図4を参照すると、インターレース・ビデオ・フレーム400は、上フィールド410および下フィールド420を含む。通常、偶数番号の走査線(上フィールド)が、ある時刻(例えば、時刻t)から開始してスキャンされ、奇数番号の走査線(下フィールド)が、異なる(通常は後の)時刻(例えば、時刻t+1)から開始してスキャンされる。このタイミングは、2つのフィールドが、異なる時刻にスキャンが開始されるという理由で、インターレース・ビデオ・フレーム内の動きが存在する領域にぎざぎざの歯のような外観を生じさせる場合がある。この理由から、インターレース・ビデオ・フレームを、フィールド構造に従って、奇数走査線を一緒に1フィールドにグループ化し、偶数走査線を別のフィールドに一緒にグループ化する態様で、再配置する場合がある。この配置は、フィールド・コーディングとして既知であり、上述したようなぎざぎざの縁のアーティファクトを減らすために、動きの激しいピクチャに有用である。その一方で、静止領域では、インターレース・ビデオ・フレームのイメージ詳細は、そのような再配置をせずにより効率的に保存される場合がある。したがって、フレーム・コーディングが、しばしば、静止しているか動きの少ないインターレース・ビデオ・フレームで使用され、この場合に、オリジナルの交番するフィールド走査線配置が保存される。
通常のプログレッシブ・ビデオ・フレームは、交番しない走査線を有する、コンテンツの1つのフレームから構成される。インターレース・ビデオと異なって、プログレッシブ・ビデオは、ビデオ・フレームを別々のフィールドに分割せず、フレーム全体が、単一の時刻に開始して左から右、上から下にスキャンされる。
III. 従来のWMVエンコーダおよびWMVデコーダでのPフレームのコーディングおよびデコーディング
従来のWMVのエンコーダおよびデコーダは、Pフレームの形でプログレッシブおよびインターレースのコーディングおよびデコーディングを使用する。インターレースPフレームおよびプログレッシブPフレームで、動きベクトルは、動きベクトルと動きベクトル・プレディクタの間の差分を算出することによってエンコーダ内でエンコードされ、この動きベクトル・プレディクタは、隣接する動きベクトルに基づいて算出される。また、デコーダ内では、動きベクトルが、動きベクトル・プレディクタに動きベクトル差分を加算することによって再構成され、この動きベクトル・プレディクタは、やはり隣接する動きベクトルに基づいて算出される(この場合にはデコーダ内で)。現在のマクロブロックまたは現在のマクロブロックのフィールドのプレディクタは、候補プレディクタに基づいて選択され、動きベクトル差分は、このプレディクタに基づいて算出される。動きベクトルは、エンコーダ側またはデコーダ側のいずれかで、選択された動きベクトル・プレディクタに動きベクトル差分を加算することによって再構成することができる。通常、輝度動きベクトルは、エンコードされた動き情報から再構成され、クロミナンス動きベクトルは、再構成された輝度動きベクトルから導出される。
A. プログレッシブPフレームのコーディングおよびデコーディング
例えば、従来のWMVのエンコーダおよびデコーダでは、プログレッシブPフレームは、1動きベクトル(1MV)モードまたは4動きベクトル(4MV)モードでエンコードされたマクロブロック、あるいはスキップド・マクロブロック(skipped macroblock)を収容するができ、決定は、一般に、マクロブロックごとで行われる。1MVマクロブロックだけ(および、潜在的にスキップド・マクロブロック)を有するPフレームを、1MV Pフレームと称し、1MVマクロブロックと4MVマクロブロックの両方(および、潜在的にスキップド・マクロブロック)を有するPフレームを、ミックスドMV(Mixed−MV)Pフレームと称する。1つの動きベクトルが、各1MVマクロブロックに関連付けられ、4つの動きベクトルが、各4MVマクロブロックに関連付けられる(ブロックごとに1つ)。
図5Aおよび5Bは、1MVプログレッシブPフレーム内のマクロブロックに対する候補動きベクトル・プレディクタと見なされるマクロブロックの位置を示す図である。候補プレディクタは、マクロブロックが行(row)の最後のマクロブロックである場合を除いて、左、上、および右上のマクロブロックからとられる。行の最後のマクロブロックである場合には、プレディクタBが、右上ではなく左上のマクロブロックからとられる。フレームが1マクロブロック幅である特別な場合について、プレディクタは、必ずプレディクタA(上プレディクタ)である。マクロブロックが最上行にあってプレディクタAが範囲外であるときには、このプレディクタはプレディクタCである。様々な他のルールが、イントラ・コーディングされるプレディクタなどの他の特別な場合に対処する。
図6A〜図10に、ミックスドMVフレーム内の1MVマクロブロックまたは4MVマクロブロック対する動きベクトルの3つまでの候補動きベクトルと見なされるブロックまたはマクロブロックの位置を示す。次の図では、大きい正方形が、マクロブロック境界であり、小さい正方形が、ブロック境界である。フレームが1マクロブロック幅である特別な場合に、プレディクタは、必ずプレディクタA(上プレディクタ)である。様々な他のルールが、最上行4MVマクロブロックの最上行ブロック、最上行1MVマクロブロック、およびイントラ・コーディングされるプレディクタなどの他の特別な場合に対処する。
図6Aおよび6Bは、ミックスドMVフレーム内の現在の1MVマクロブロックに対する候補動きベクトル・プレディクタと見なされるブロックの位置を示す図である。隣接するマクロブロックは、1MVマクロブロックまたは4MVマクロブロックである場合がある。図6Aおよび6Bには、隣接マクロブロックが4MVである(すなわち、プレディクタAが、現在のマクロブロックの上のマクロブロック内のブロック2の動きベクトルであり、プレディクタCが、現在のマクロブロックのすぐ左のマクロブロック内のブロック1の動きベクトルである)と仮定した場合の候補動きベクトルの位置が示されている。隣接マクロブロックのいずれかが、1MVマクロブロックである場合に、図5Aおよび5Bに示された動きベクトル・プレディクタが、このマクロブロック全体の動きベクトル・プレディクタに採用される。図6Bに示されているように、このマクロブロックが行の最後のマクロブロックである場合には、プレディクタBが、他の場合の右上マクロブロック内のブロック2からではなく、左上マクロブロックのブロック3からになる。
図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のデコーダおよびエンコーダは、フィールド・モードまたはフレーム・モードでエンコードされたマクロブロックあるいはスキップド・マクロブロックを収容含めることができ、インターレースPフレームに対して4:1:1マクロブロック・フォーマットを使用し、決定は、一般に、マクロブロックごとに行われる。2つの動きベクトルが、各フィールド・コーディングされたマクロブロックに関連付けられ(フィールドごとに1つの動きベクトル)、1つの動きベクトルが、各フレーム・コーディングされたマクロブロックに関連付けられる。エンコーダは、垂直および水平の動きベクトル差分成分を含む動き情報を、潜在的に他のシグナリング情報に加えて、一緒にエンコードする。
図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のエンコーダおよびデコーダは、median−of−threeアルゴリズムまたは4のmedian−of−four アルゴリズムなど、異なる選択アルゴリズムを使用する。median−of−three予測のプロシージャを、図13の擬似コード1300に記載する。median−of−four予測のプロシージャを、図14の擬似コード1400に記載する。
IV. 双方向予測
双方向予測フレーム(またはBフレーム)は、Pフレームに使用される1つのアンカーではなく、基準(またはアンカー)フレームとしてソース・ビデオからの2つのフレームを使用する。通常のBフレームのアンカー・フレームの中で、一方のアンカー・フレームは、時間的に過去からのフレームであり、もう1つのアンカー・フレームは、時間的に将来からのフレームである。図15を参照すると、ビデオ・シーケンス内のBフレーム1510は、時間的に前の基準フレーム1520および時間的に将来の基準フレーム1530を有する。Bフレームの使用は、より大きくビットレートを節約する(例えば、オクルージョンなどの、あるタイプの動きが存在する場合に)という点で、効率的な圧縮に関する利益を提供する。Bフレームを用いてエンコードされたビットストリームは、通常は、類似する視覚的品質をもたらしながらも、Bフレームなしでエンコードされたビットストリームより少ないビット数を使用する。Bフレームは、小さいデバイス・スペースで使用されるときに、より多くのオプションおよび柔軟性も提供する。例えば、デコーダは、Bフレームが一般に基準フレームとして使用されないので、Bフレームをデコードしないか表示しないことを選択することによって、スペース制約および時間制約に対処することができる。Bフレームを使用するビデオ・シーケンスのレートひずみ改善の推定値は、0から50%までの範囲におよぶ。
V. 従来のWMVのエンコーダおよびデコーダでのBフレームのコーディングおよびデコーディング
従来のWMVのエンコーダおよびデコーダは、Bフレームを使用する。順方向予測フレーム(例えば、Pフレーム)のマクロブロックは、(順方向、従来のIフレームまたはPフレームからの)予測の1方向モードだけを有するが、Bフレームのマクロブロックは、5つの異なる予測モードすなわち、順方向(forword)、逆方向(backward)、直接(direct)、補間(interpolated)、およびイントラ(intra)を使用して予測することができる。エンコーダは、異なる予測モードを選択し、ビットストリーム内でこれをシグナリングする。例えば、議論している従来のWMVエンコーダは、Bフレームの各マクロブロックに対して直接/非直接モード決定を示す圧縮されたビットプレーンをフレーム・レベルで送るが、非直接モード(順方向モード、逆方向モード、および補間モードなど)は、マクロブロック・レベルで示される。
順方向モードは、従来のPフレーム予測に似ている。順方向モードでは、マクロブロックが、時間的に前のアンカーから導出される。逆方向モードでは、マクロブロックが、時間的に後続のアンカーから導出される。直接モードまたは補間モードで予測されたマクロブロックは、予測に順方向アンカーと逆方向アンカーの両方を使用する。直接モードおよび補間モードは、2つの基準フレームのピクセル値をマクロブロック・ピクセルの1セットに組み合わせるのに、次の式に従う切り上げ平均を使用する。
平均ピクセル値=(順方向補間された値+逆方向補間された値+1)>>1
A. 同一位置の動きベクトルの分数コーディングおよびスケーリング
議論している従来のWMVのエンコーダおよびデコーダでは、エンコーダが、順方向アンカーの同一位置の動きベクトルをスケーリングすることによって、暗黙のうち(自動的に)に直接モード動きベクトルを導出する。このスケーリング動作は、アンカーに対する現在のBフレームの時間的位置に依存する。基準ピクチャ(reference picture)の時間的位置をエンコードするために、エンコーダは、分数コーディングを使用する。
分数コーディングでは、エンコーダは、現在のBフレームの時間的位置を、その2つのアンカーの間の距離の分数として明示的にコーディングする。変数BFRACTIONが、異なる分数を表すのに使用され、フレーム・レベルで送られる。分数は、0と1の間の離散値の限られたセットになる。直接モード動きベクトルについて、エンコーダおよびデコーダは、この分数を使用して、基準フレーム内の同一位置の動きベクトル(MV)をスケーリングし、これによって、次のスケーリング動作を実施することによって現在のBフレームについての暗黙の直接モード動きベクトル(MVおよびMV)を導出する。
MV=分数*MV
MV=(分数−1)*MV
図16に、分数コーディングが、エンコーダが、周囲の基準フレームの間で動きを任意にスケーリングすることをどのようにして可能にするかを示す。Bフレーム1620でエンコードされている現在のマクロブロック1610のMVおよびMVを導出するために、エンコーダおよびデコーダは、分数コーディングを使用して、将来の基準フレーム1630内の対応するマクロブロックの動きベクトル(MV)をスケーリングする。図16に示された例では、分数pおよびqについて、p+q=1である。エンコーダおよびデコーダは、2つの暗黙の動きベクトルを使用して、前の基準フレーム1640および将来の基準フレーム1630内のマクロブロックをアドレッシングし、これらの平均を使用して、現在のマクロブロック1610を予測する。例えば、図16で、MV=(dx*p,dy*p)かつMV=(−dx*q,−dy*q)である。
図17の表1700は、ビットストリーム要素BFRACTIONの可変長コード(VLC)テーブルである。表1700に示された例では、3ビットのコードワードが、「短い」コードワードであり、7ビットのコードワードが、「長い」コードワードである。デコーダは、図18に示された擬似コード1800に従って、分数の分子および分母に基づいて、スケーリング係数を見つける。
スケーリング係数を決定したならば、デコーダは、それを使用して、同一位置のマクロブロック用の動きベクトルのx要素およびy要素をスケーリングする。後続アンカー・フレームがPフレームであり(Iフレームについて、すべての動きベクトルが(0,0)であると仮定する)、同一位置のマクロブロックに、動きベクトル(MV_X,MV_Y)が含まれると仮定すると、デコーダは、2つの動きベクトルを導出するが、その一方は、順方向(前の)アンカー・フレームを参照する(MV_X,MV_Y)であり、他方は、逆方向(後の)アンカー・フレームを参照する(MV_X,MV_Y)である。
デコーダは、図19に示された擬似コード1900に従ってスケーリングを実行する。擬似コード1900の関数Scale_Direct_MVで、入力のMV_XおよびMV_Yは、将来の基準ピクチャの同一位置のマクロブロックからの動きベクトルのx要素およびy要素であり、その出力MV_X、MV_Y、MV_X、およびMV_Yは、デコードされつつあるマクロブロックの順方向を指す動きベクトルおよび逆方向を指す動きベクトルのx要素およびy要素である。
B. B/Iフレーム
議論している従来のWMVのエンコーダおよびデコーダは、プログレッシブ・コーディングおよびプログレッシブ・デコーディングにイントラBフレーム(「B/Iフレーム」)も使用する。B/Iフレームは、基準フレームに依存しないという点で、Iフレームに似た形でコーディングされる。しかし、Iフレームと異なって、B/Iフレームは、キー・フレームではなく、他のフレームがアンカーとしてB/Iフレームを使用することは許可されない。
C. インターレースBフレーム
議論している従来のWMVのエンコーダおよびデコーダは、インターレースBフレームも使用する。インターレースBフレーム内のマクロブロックを、フィールド・コーディングまたはフレーム・コーディングすることができる。フレーム・コーディングされたマクロブロックは、1つ、2つ(例えば、補間モードの順方向動きベクトルおよび逆方向動きベクトル、直接モードの導出された順方向動きベクトルおよび逆方向動きベクトル)、または0個の動きベクトルを有することができ、フィールド・コーディングされたマクロブロックは、予測モードに応じて4つまでの動きベクトルを有することができる。例えば、直接モード・フィールド・コーディングされたマクロブロックでは、4つの暗黙の動きベクトルすなわち、上フィールドの順方向動きベクトルおよび逆方向動きベクトルならびに下フィールドの順方向動きベクトルおよび逆方向動きベクトルが導出される。
議論している従来のWMVのエンコーダおよびデコーダは、インターレースBフレームを使用するが、これらは、いくつかの重要な方法において制限されている。例えば、マクロブロックごとに1つのマクロブロック予測モード(例えば、直接モード、順方向モードなど)だけが許容され、4MVコーディング(すなわち、マクロブロックのブロックごとに1つの動きベクトル)が使用されず、すべてのBフレームのどの部分も、任意のフレームの動き補償のための基準とすることができない。もう1つの例として、議論している従来のWMVのエンコーダおよびデコーダのインターレースのコーディングおよびデコーディング(インターレースBフレームを含む)は、4:1:1マクロブロック・フォーマットだけを使用して実行される。
VI. ビデオの圧縮および圧縮解除に関する標準規格
従来のWMVのエンコーダおよびデコーダのほかに、いくつかの国際標準規格が、ビデオの圧縮および圧縮解除に関係する。これらの標準規格に、Motion Picture Experts Group[「MPEG」]1、2、および4の標準規格と、国際電気通信連合(International Telecommunication Union)[「ITU」]からのH.261、H.262、H.263、およびH.264標準規格が含まれる。これらの国際標準規格でデジタル・ビデオ・シーケンスのデータ圧縮を達成するのに使用される主な方法の1つが、ピクチャの間の時間的冗長性を減らすことである。これらの有名な圧縮方式(MPEG−1、MPEG−2、MPEG−4、H.261、H.263など)は、動き推定および動き補償を使用する。例えば、現在のフレームを、均一な正方形領域(例えば、ブロックおよび/またはマクロブロック)に分割する。各現在の領域に対して一致する領域を、現在の領域の動きベクトル情報を送ることによって指定する。動きベクトルは、現在の領域のプレディクタとして使用されることになる、前にコーディングされた(かつ、再構成された)フレーム内の領域の位置を指し示す。現在の領域と基準フレーム内の領域の間の、誤差信号と称するピクセルごとの差を導出する。この誤差信号は、通常、オリジナル信号より低いエントロピーを有する。したがって、この情報を、より低いレートでエンコードすることができる。従来のWMVのエンコーダおよびデコーダと同様に、動きベクトル値が、しばしば、空間的に周囲の動きベクトルと相関するので、動きベクトル情報を表すのに使用されるデータの圧縮を、現在の動きベクトルと前にコーディングされた隣接する動きベクトルに基づくプレディクタとの間の差分をコーディングすることによって達成することができる。
いくつかの国際標準規格に、インターレース・ビデオ・フレームでの動き推定および動き補償が記載されている。H.262標準規格は、インターレース・ビデオ・フレームを単一フレームまたは2つのフィールドとしてエンコードすることを可能にし、ここで、フレーム・エンコーディングまたはフィールド・エンコーディングを、フレームごとに適応式に選択することができる。H.262標準規格に、フィールド・ベース予測が記載されており、このフィールド・ベース予測は、基準フレームの1つのフィールドだけを使用する予測モードである。H.262標準規格に、デュアル・プライム予測(dual-prime prediction)も記載されており、このデュアル・プライム予測は、2つの順方向フィールド・ベース予測がインターレースPピクチャの16×16ブロックについて平均される予測モードである。非特許文献1に、インターレース・ビデオ・フレームの現在のフィールドのマクロブロックの動き補償に使用される2つの基準フィールド(two reference fields)の間の選択を含む「フィールド予測」が記載されている。非特許文献2に、動きベクトルの予測および再構成が記載されており、ここで、所与のマクロブロックの再構成された動きベクトルは、その後にエンコード/デコードされるマクロブロックの動きベクトル・プレディクタになる。そのような動きベクトル予測は、多くの場合に、インターレース・ビデオ・フレームのフィールドのマクロブロックの動きベクトルを適切に予測することができない。
さらに、非特許文献1に、Bピクチャの「フィールド予測」および「フレーム予測」が記載されている。フィールド予測およびフレーム予測では、予測が、Bピクチャについて、2つの最も最近に再構成された基準フレームを使用して(他の中間のBピクチャを省略して)実行され、これらの基準フレームは、2つのフィールドまたは単一フレームのいずれかとしてコーディングされている場合がある。
米国特許出願第10/622,378号 米国特許出願第10/857,473号 米国仮特許出願第60/501,081号 "Video Encoding and Decoding Tools and Techniques," filed September 7,2003 米国特許出願第10/321,415号 Section 7.6 of the H.262 standard Section 7.6.3 of the H.262 standard
デジタル・ビデオに対するビデオ圧縮およびビデオ圧縮解除のクリティカルな重要さに対して、ビデオ圧縮およびビデオ圧縮解除が十分に開発された分野であることは驚くべきことでない。しかし、従来のビデオ圧縮技法およびビデオ圧縮解除技法の利益が何であれ、これらは、次に説明する技法およびツールの有意性を有しない。
要約すると、この詳細な説明は、双方向予測インターレース・ビデオ・フレーム(例えば、インターレースBフィールド、インターレースBフレーム)をエンコードし、デコードする様々な技法およびツールを対象とする。説明される技法およびツールは、レート/ひずみ性能を改善し、より少ないCPUリソースを有するデバイス(例えば、より小さいフォーム・ファクタを有するデバイス内)のためのよりよいサポートを容易にする。
インターレースBピクチャをコーディングし、かつ/またはデコードするための、説明される技法およびツールのうちの1つまたは複数を実装する説明される実施形態は、限定しないが、以下を含む。
一態様で、インターレースBフレームに対して、エンコーダ/デコーダは、インターレースBフレームのフィールド・コーディングされたマクロブロック内で、フィールドの間で予測モードを切り替える。例えば、エンコーダ/デコーダは、フィールド・コーディングされたマクロブロック内で、上フィールドの順方向予測と下フィールドの逆方向予測のどちらかに切り替える。同一のフィールド・コーディングされたマクロブロック内での順方向予測モードと逆方向予測モードの切替は、インターレースBフレームの異なる部分の効率的な予測モードを見つけるためのより高い柔軟性を可能にする。
もう1つの態様で、インターレースBフレームについて、エンコーダ/デコーダは、前にデコードされた、時間的に後のアンカーの同一位置のマクロブロックについての上フィールドおよび下フィールドのそれぞれについて多くとも1つの代表的な動きベクトルを選択することによって、現在のマクロブロックの直接モード動きベクトルを算出する。例えば、この選択は、現在のインターレースBフレームのマクロブロックをコーディングするモード(例えば、1MVモード、2フィールドMVモードなど)に少なくとも部分的に基づいて実行される。
もう1つの態様で、インターレースBフィールドまたはインターレースBフレームについて、エンコーダ/デコーダは、4MVコーディングを使用する。例えば、4MVは、1方向予測モード(順方向モードおよび逆方向モード)で使用されるが、他の使用可能な予測モード(例えば、直接、補間)では使用されない。4MVを使用することによって、インターレースBフィールドおよびインターレースBフレームのより正確な動き補償が可能になり、4MVを順方向モードおよび逆方向モードに制限することによって、コーディング・オーバーヘッドが減り、直接モードおよび補間モードなどのモードと4MVを組み合わせることに関連するデコーディングの複雑さが回避される。
もう1つの態様で、インターレースBフィールドまたはインターレースBフレームについて、順方向動きベクトルは、順方向動きベクトル・バッファからの前に再構成された(または推定された)順方向動きベクトルを使用してエンコーダ/デコーダによって予測され、逆方向動きベクトルは、逆方向動きベクトル・バッファからの前に再構成された(または推定された)逆方向動きベクトルを使用して予測される。その結果の動きベクトルが、対応するバッファに追加される。動きベクトル・バッファ内の穴(holes)は、推定された動きベクトル値によって埋めることができる。例えば、インターレースBフレームについて、動きベクトルの予測に順方向予測が使用され、その動きベクトルが順方向動きベクトル・バッファに追加されるときに、逆方向動きベクトル・バッファ内の対応する位置が、プレディクタとして逆方向動きベクトルだけを使用して予測された動きベクトルになったものを使用して埋められる(「穴埋め(Hole-filling)」)。もう1つの例として、インターレースBフィールドについて、穴埋めのために異なる極性の動きベクトル(例えば、「同一極性」または「反対極性」)のどちらかを選択するために、エンコーダ/デコーダは、優勢極性フィールド動きベクトルを選択する。アンカーと現在のフレームの間の距離が、様々な構文要素を使用して算出され、算出された距離が、基準フィールド動きベクトルをスケーリングするのに使用される。別々の動きベクトル・バッファおよびその別々の動きベクトル・バッファ内の穴埋めによって、インターレースBフィールドおよびインターレースBフレームに対するより正確な動きベクトル予測が可能になる。
もう1つの態様で、インターレースBフィールドについて、エンコーダ/デコーダは、「自己参照」フレームを使用する。例えば、現在のフレーム内の第2Bフィールドが、動き補償予測で現在のフレームの第1Bフィールドを参照する。あるフレームの第1Bフィールドがそのフレームの第2Bフィールドの基準として働くことを可能にすることによって、第2Bフィールドのより正確な予測が可能になると同時に、現在のフレーム内にBフィールドを有することの時間的スケーラビリティの利益も保たれる。
もう1つの態様で、インターレースBフィールドについて、エンコーダは、インターレースBフィールド内の1つまたは複数のマクロブロックについて、予測モードが順方向または非順方向のどちらであるかを示す2値情報を送る。例えば、エンコーダは、圧縮されたビットプレーン内のBフィールド・レベルで順方向/非順方向決定情報を送る。順方向/非順方向予測モード決定情報を圧縮されたビットプレーン内でBフィールド・レベルで送ることによって、予測モード・コーディングのコーディング・オーバーヘッドを減らすことができる。デコーダは、対応するデコーディングを実行する。
もう1つの態様で、インターレースBフィールドについて、エンコーダ/デコーダは、次のアンカー・ピクチャの対応するフィールド内の対応するマクロブロックが4つの動きベクトルを使用してコーディングされている場合に、優勢極性を選択する論理を使用して直接モード動きベクトルを選択する。例えば、対応するマクロブロックの同一極性の動きベクトルが、それと反対極性の動きベクトルに数で優る場合に、エンコーダ/デコーダは、同一極性の動きベクトルの中央値(median)を算出して、直接モード動きベクトル導出用の動きベクトルを得る。この選択プロセスは、4MVマクロブロックを有するアンカーを有するインターレースBフィールドに対する正確な直接モード動きベクトルの導出を可能にする。
様々な技法およびツールを、組み合わせてまたは独立に使用することができる。
追加の特徴および利点は、添付図面を参照して進行する個々の実施形態からなる以下の詳細な説明から明白になるでしょう。
本願は、インターレース・ビデオの効率的な圧縮および圧縮解除の技法およびツールに関する。説明される様々な実施形態で、ビデオ・エンコーダおよびビデオ・デコーダは、双方向予測インターレース・ビデオ・フレームをエンコードし、デコードする技法と、異なるレイヤまたはレベル(例えば、シーケンス・レベル、フレーム・レベル、フィールド・レベル、マクロブロック・レベル、および/またはブロック・レベル)を含むビットストリーム・フォーマットまたはビットストリーム構文に関して使用される対応するシグナリング技法を組み込む。
本明細書に記載の実装に対しては様々な代替案が可能である。例えば、流れ図を参照して説明される技法は、流れ図に示されたステージの順序付けを変更すること、あるステージを繰り返すか省略することなどによって、変更することができる。もう1つの例として、いくつかの実装を、特定のマクロブロック・フォーマットに関して説明するが、他のフォーマットも使用することができる。さらに、双方向予測に関して説明する技法およびツールが、他のタイプの予測に適用可能である場合もある。
様々な技法およびツールを、組み合わせてまたは独立に使用することができる。個々実施形態は、説明される技法およびツールのうちの1つまたは複数を実装する。本明細書に記載のいくつかの技法およびツールは、ビデオ・エンコーダまたはビデオ・デコーダで、あるいはビデオ・エンコーディングまたはビデオ・デコーディングに特に制限されない他のシステムで、使用することができる。
I.コンピューティング環境
図20は、説明される実施形態のいくつかを実装できる適切なコンピューティング環境2000の一般化された例を示している。この技法およびツールは様々な汎用のまたは特殊目的のコンピューティング環境に実装することができるので、コンピューティング環境2000は、使用または機能性の範囲に関する制限を提案することを意図されたものではない。
図20を参照すると、コンピューティング環境2000に、少なくとも1つの処理ユニット2010およびメモリ2020が含まれる。図20では、この最も基本的な構成2030が、破線の中に含まれる。処理ユニット2010は、コンピュータ実行可能命令を実行し、実際のプロセッサまたは仮想プロセッサとすることができる。マルチ・プロセッシング・システムでは、処理能力を高めるために、複数の処理ユニットがコンピュータ実行可能命令を実行する。メモリ2020は、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュ・メモリ)、またはこの2つのある組合せとすることができる。メモリ2020は、インターレース・ビデオ・フレームの双方向予測を用いるビデオ・エンコーダまたはビデオ・デコーダを実装するソフトウェア2080を格納する。
コンピューティング環境は、さらなる機能(features)を有することができる。例えば、コンピューティング環境2000に、ストレージ2040、1つまたは複数の入力デバイス2050、1つまたは複数の出力デバイス2060、および1つまたは複数の通信接続2070が含まれる。バス、コントローラ、またはネットワークなどの相互接続機構(図示せず)が、コンピューティング環境2000の構成要素を相互接続する。通常、オペレーティング・システム・ソフトウェア(図示せず)が、コンピューティング環境2000内で実行される他のソフトウェアのオペレーティング環境を提供し、コンピューティング環境2000の構成要素のアクティビティを調整する。
ストレージ2040は、リムーバブルまたはノン・リムーバブルとすることができ、磁気ディスク、磁気テープ、磁気カセット、CD−ROM、DVD、または情報を格納するのに使用でき、コンピューティング環境2000内でアクセスできる任意の他の媒体が含まれる。ストレージ2040は、ビデオ・エンコーダまたはビデオ・デコーダを実装するソフトウェア2080の命令を格納する。
入力デバイス2050は、キーボード、マウス、ペン、またはトラック・ボールなどの接触入力デバイス、音声入力デバイス、スキャニング・デバイス、またはコンピューティング環境2000に入力を提供する別のデバイスとすることができる。オーディオ・エンコーディングまたはビデオ・エンコーディングのために、入力デバイス2050を、サウンド・カード、ビデオ・カード、TVチューナ・カード、またはアナログ形式もしくはビデオ形式でアナログ入力もしくはビデオ入力を受け入れる類似するデバイス、もしくはオーディオ・サンプルまたはビデオ・サンプルをコンピューティング環境2000に読み取るCD−ROMまたはCD−RWとすることができる。出力デバイス2060は、ディスプレイ、プリンタ、スピーカ、CDライタ、またはコンピューティング環境2000から出力を提供する別のデバイスとすることができる。
通信接続2070は、通信媒体を介する別のコンピューティング・エンティティへの通信を可能にする。通信媒体は、変調されたデータ信号内でコンピュータ実行可能命令、オーディオもしくはビデオの入力もしくは出力、または他のデータなどの情報を伝える。変調されたデータ信号とは、その信号内で情報をエンコードする形でその特性の1つまたは複数を設定または変更された信号である。制限ではなく例として、通信媒体に、電気、光、RF、赤外線、音響、または他の担体を用いて実装された有線または無線の技法が含まれる。
本技法およびツールは、コンピュータ可読媒体の全般的なコンテクストで説明することができる。コンピュータ可読媒体は、コンピューティング環境内でアクセスできるすべての使用可能な媒体である。制限ではなく例として、コンピューティング環境2000に関して、コンピュータ可読媒体に、メモリ2020、ストレージ2040、通信媒体、および上記のいずれかの組合せが含まれる。
本技法およびツールは、プログラム・モジュールに含まれるものなど、コンピューティング環境内でターゲットの実際のプロセッサまたは仮想プロセッサ上で実行されるコンピュータ実行可能命令の全般的なコンテクストで説明することができる。一般に、プログラム・モジュールには、特定のタスクを実行するか特定の抽象データ型を実装する、ルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などが含まれる。プログラム・モジュールの機能性は、様々な実施形態での要求に従って、プログラム・モジュールの間で組み合わせるか分割することができる。プログラム・モジュールのコンピュータ実行可能命令は、ローカル・コンピューティング環境または分散コンピューティング環境内で実行することができる。
提示のために、この詳細な説明で、コンピューティング環境内のコンピュータ動作を説明するのに、「推定する」、「補償する」、「予測する」、および「適用する」などの用語を使用する。これらの用語が、コンピュータによって実行される動作に関する高水準の抽象化であり、人間によって実行される動作と混同されてはならない。これらの用語に対応する実際のコンピュータ動作は、実装に依存して変化する。
II. 一般化されたビデオ・エンコーダおよびビデオ・デコーダ
図21は、説明される実施形態のいくつか共に実装できる一般化されたビデオ・エンコーダ2100のブロック図である。図22は、説明される実施形態のいくつかを実装できる一般化されたビデオ・デコーダ2200のブロック図である。
エンコーダ2100内のモジュールとデコーダ2200内のモジュールの間に示された関係は、エンコーダおよびデコーダ内の情報の全般的な流れを示し、他の関係は、図を単純にするために示されていない。具体的に言うと、図21および22には、通常、ビデオ・シーケンス、ピクチャ、マクロブロック、ブロックなどに使用される、エンコーダ・セッティング、モード、テーブルなどを示すサイド情報が示されていない。そのようなサイド情報は、通常はサイド情報のエントロピー・コーディングの後に、出力ビットストリーム内で送られる。出力ビットストリームのフォーマットは、Windows(登録商標)Media Videoバージョン9フォーマットまたは他のフォーマットとすることができる。
エンコーダ2100およびデコーダ2200は、ビデオ・ピクチャを処理し、このビデオ・ピクチャは、ビデオ・フレーム、ビデオ・フィールド、またはフレームとフィールドの組合せとすることができる。ピクチャ・レベルおよびマクロブロック・レベルでのビットストリーム構文およびセマンティクスは、フレームまたはフィールドのどちらが使用されているかに依存する場合がある。マクロブロック編成および全体的なタイミングに対する変更もある場合がある。エンコーダ2100およびデコーダ2200は、ブロック・ベースであり、各マクロブロックに、4つの8×8輝度ブロック(時々1つの16×16マクロブロックとして扱われる)および2つの8×8クロミナンス・ブロックが含まれる形の、フォーマットに4:2:0マクロブロック・フォーマットを使用する。フィールドについて、同一のまたは異なるマクロブロックの編成およびフォーマットを使用することができる。8×8ブロックを、さらに、異なるステージで、例えば周波数変換ステージおよびエントロピー・エンコーディング・ステージで副分割することができる。ビデオ・フレーム編成の例については、下で詳細に説明する。代替案では、エンコーダ2100およびデコーダ2200は、オブジェクト・ベースであり、異なるマクロブロック・フォーマットまたはブロック・フォーマットを使用するか、8×8ブロックおよび16×16マクロブロックと異なるサイズまたはコンフィギュレーション(配置)のピクセルのセットに対して動作を実行する。
要求される実装および圧縮のタイプに応じて、エンコーダまたはデコーダのモジュールは、追加し、省略し、複数のモジュールに分割し、他のモジュールと組合せ、かつ/または類似するモジュールと置換することができる。代替実施形態では、異なるモジュールおよび/または他のコンフィギュレーションのモジュールを有するエンコーダまたはデコーダが、説明される技法のうちの1つまたは複数を実行する。
A. ビデオ・フレームの編成
いくつかの実装で、エンコーダ2100およびデコーダ2200は、次のように編成されたビデオ・フレームを処理する。フレームは、ビデオ信号の空間情報からなる走査線を収容する。プログレッシブ・ビデオでは、これらの走査線に、ある瞬間から始まり、連続する走査線を介してフレームの最下部まで継続するサンプルを収容する。プログレッシブ・ビデオ・フレームは、図23に示されているように、マクロブロック2300などのマクロブロックに分割される。マクロブロック2300は、従来の4:2:0マクロブロック・フォーマットに従う、4つの8×8輝度ブロック(Y1からY4)と、4つの輝度ブロックと同一の位置にあるが水平および垂直に半分の解像度を有する2つの8×8クロミナンス・ブロックとが含まれる。8×8ブロックを、さらに、異なるステージで、例えば周波数変換ステージ(例えば、8×4、4×8、または4×4のDCT)およびエントロピー・エンコーディング・ステージで副分割することができる。プログレッシブIフレームは、イントラ・コーディングされたプログレッシブ・ビデオ・フレームである。プログレッシブPフレームは、順方向予測を使用してコーディングされたプログレッシブ・ビデオ・フレームであり、プログレッシブBフレームは、双方向測を使用してコーディングされたプログレッシブ・ビデオ・フレームである。プログレッシブPフレームおよびプログレッシブBフレームは、異なるタイプの予測マクロブロックだけでなく、イントラ・コーディングされたマクロブロックを含むことができる。
インターレース・ビデオ・フレームは、1つのフレームに属する2つのスキャンから構成され、一方のスキャンは、フレームの偶数走査線を備え上フィールド)、他方のスキャンは、フレームの奇数走査線(下フィールド)を備える。この2つのフィールドは、2つの異なる時間期間を表す場合があり、あるいは、これらが同一の時間期間からのものである場合がある。図24Aは、上フィールドおよび下フィールドの交番する走査線が含まれるインターレース・ビデオ・フレーム2400の一部で、その左上部分の一部を示している。
図24Bは、フレーム2430としてのエンコーディング/デコーディングのために編成された図24Aのインターレース・ビデオ・フレーム2400を示している。インターレース・ビデオ・フレーム2400は、図23に示されているように4:2:0フォーマットを使用する、マクロブロック2431および2432などのマクロブロックに区分される。輝度プレーンでは、各マクロブロック2431および2432は、上フィールドからの8つの走査とこれと交番する下フィールドからの8つの走査線、合計16走査線を含み、各走査線は、16ピクセルの長さである(マクロブロック2431および2432内の輝度ブロックおよびクロミナンス・ブロックの実際の編成および配置は、図示されておらず、実際には、異なるエンコーディングの決定に合わせて変化することになる)。所与のマクロブロック内で、上フィールド情報および下フィールド情報は、様々なフェーズのいずれかで、一緒にまたは別々にコーディングすることができる。インターレースIフレームは、インターレース・ビデオ・フレームの2つのイントラ・コーディングされたフィールドであり、その1つのマクロブロックには、この2つのフィールドの情報が含まれる。インターレースPフレームは、順方向予測を使用してコーディングされたインターレース・ビデオ・フレームの2つのフィールドであり、インターレースBフレームは、双方向予測を使用してコーディングされたインターレース・ビデオ・フレームの2つのフィールドであり、その1つのマクロブロックには、この2つのフィールドの情報が含まれる。インターレースPフレームおよびインターレースBフレームには、異なるタイプの予測マクロブロックだけでなく、イントラ・コーディングされたマクロブロックを含めることができる。
図24Cは、フィールド2460としてのエンコーディング/デコーディングのために編成された図24Aのインターレース・ビデオ・フレーム2400を示している。インターレース・ビデオ・フレーム2400に属する2つのフィールドのそれぞれが、マ複数のクロブロックに区分される。上フィールドは、マクロブロック2461などのマクロブロックに区分され、下フィールドは、マクロブロック2462などのマクロブロックに区分される(やはり、図23に示されているように、マクロブロックは4:2:0フォーマットを使用し、マクロブロック内の輝度ブロックおよびクロミナンス・ブロックの編成および配置は、図示されていない)。輝度プレーン内で、マクロブロック2461に、上フィールドからの16本の走査線が含まれ、マクロブロック2462に、下フィールドからの16本の走査線が含まれ、各走査線は、16ピクセルの長さである。インターレースIフィールドは、インターレース・ビデオ・フレームに属する単一の別々に表されたフィールドである。インターレースPフィールドは、順方向予測を使用してコーディングされたインターレース・ビデオ・フレームに属する単一の別々に表されたフィールドであり、インターレースBフィールドは、双方向予測を使用してコーディングされたインターレース・ビデオ・フレームに属する単一の別々に表されたフィールドである。インターレースPフィールドおよびインターレースBフィールドには、異なるタイプの予測マクロブロックだけでなく、イントラ・コーディングされたマクロブロックを含めることができる。
用語「ピクチャ」は、全般的に、ソース、コーディングされたイメージ・データ、あるいは再構成されたイメージ・データ、を指す。プログレッシブ・ビデオについて、ピクチャは、プログレッシブ・ビデオ・フレームである。インターレース・ビデオについて、ピクチャは、コンテクスト(文脈)に依存して、インターレース・ビデオ・フレーム、そのフレームの上フィールド、またはそのフレームの下フィールドを指す場合がある。
代替案では、エンコーダ2100およびデコーダ2200が、オブジェクト・ベースであり、異なるマクロブロック・フォーマットまたはブロック・フォーマットを使用するか、8×8ブロックおよび16×16マクロブロックと異なるサイズまたはコンフィギュレーション(配置)のピクセルのセットに対して動作を実行する。
B. ビデオ・エンコーダ
図21は、一般化されたビデオ・エンコーダ・システム2100のブロック図である。エンコーダ・システム2100は、現在のピクチャ2105(例えば、プログレッシブ・ビデオ・フレーム、インターレース・ビデオ・フレーム、またはインターレース・ビデオ・フレームのフィールド)を含む複数のビデオ・ピクチャから構成されるシーケンスを受け取り、出力として圧縮ビデオ情報2195を作り出す。ビデオ・エンコーダの特定の実施形態は、通常、一般化されたエンコーダ2100の変形版または増補された版を使用する。
エンコーダ・システム2100は、予測ピクチャおよびキー・ピクチャを圧縮する。提示のために、図21に、エンコーダ・システム2100を通るキー・ピクチャのパスおよび予測ピクチャのパスを示している。エンコーダ・システム2100のコンポーネントの多くが、キー・ピクチャと圧縮ピクチャの両方の圧縮に使用される。これらのコンポーネントによって実行される正確な動作は、圧縮される情報のタイプに応じて変化することになる。
予測ピクチャ(例えば、プログレッシブpフレーム、プログレッシブbフレーム、インターレースpフィールド、インターレースbフィールド、インターレースpフレーム、またはインターレースbフレーム)は、1つまたは複数の他のピクチャ(通常は、基準フレームまたはアンカーと称する)からの予測(または差)という形で表される。予測残差は、予測されたものとオリジナル・ピクチャの間の差である。対照的に、キー・ピクチャ(例えば、プログレッシブIフレーム、インターレースIフィールド、またはインターレースIフレーム)は、他のピクチャを参照することなく圧縮されている。
現在のピクチャ2105が、順方向予測ピクチャである場合に、動き予測器2110が、1つまたは複数の基準ピクチャ、例えばピクチャ・ストア2120にバッファリングされている再構成された前のピクチャ2125、に関して現在のピクチャ2105のマクロブロックまたはピクセルの他のセットについての動きを推定する。現在のピクチャ2105が、双方向予測ピクチャである場合に、動き予測器2110は、4つまでの再構成された基準ピクチャ(例えば、インターレースBフィールドの)に関して現在のピクチャ2105内の動きを推定する。通常、動き予測器は、Bピクチャ内の動きを、1つまたは複数の時間的に前の基準ピクチャおよび1つまたは複数の時間的に将来の基準ピクチャに関して推定する。したがって、エンコーダ・システム2100は、複数の基準ピクチャに対して別々のストア2120および2122を使用することになる。プログレッシブBフレームの詳細については、特許文献1を参照されたい。
動き予測器2110は、ピクセル単位、1/2ピクセル単位、1/4ピクセル単位、または他の増分で動きを推定することができ、ピクチャを単位としてまたは他の単位で動き推定の分解能を切り替えることができる。動き予測器2110(および補償器2130)は、フレームを単位としてまたは他の単位で、基準ピクチャのピクセル補間の複数タイプ(例えば、双三次(bicubic)と双線形(bilinear)の間)間を切り替えることができる。動き推定の分解能は、水平と垂直で同一としたり、または異ならせたりすることができる。動き予測器2110は、サイド情報として、差分動きベクトル情報などの動き情報2115を出力する。エンコーダ2100は、動き情報2115のエンコーダオを、例えば、動きベクトルに関する1つまたは複数のプレディクタを算出し、動きベクトルとそのプレディクタの間の差分を算出し、その差分をエントロピー・コーディングすることによって、実行する。動きベクトルを再構成するために、動き補償器2130は、プレディクタを差分動きベクトル情報と組み合わせる。インターレースBフィールドおよびインターレースBフレームに関して、動きベクトル・プレディクタの算出、差分動きベクトルの算出、および動きベクトル再構成の様々な技法を、下で説明する。
動き補償器2130は、再構成された動きベクトルを再構成されたピクチャ2125に適用して、動き補償された現在のピクチャ2135を形成する。しかし、予測は、完全であることがめったになく、したがって、動き補償された現在のピクチャ2135とオリジナルの現在のピクチャ2105の間の差が、予測残差2145である。その後のピクチャ再構成中に、オリジナルの現在のピクチャ2105により近い再構成されたピクチャを得るために、予測残差2145を動き補償された現在のピクチャ2135に加算される。しかし、ロッシイ圧縮では、オリジナルの現在のピクチャ2105からのいくつかの情報が、それでも失われる。代替案では、動き予測器および動き補償器が、別のタイプの動き推定/動き補償を適用する。
周波数トランスフォーマ2160が、空間領域ビデオ情報を周波数領域(すなわち、スペクトル)データに変換する。ブロック・ベースのビデオ・ピクチャについて、周波数トランスフォーマ2160は、DCT、DCTの変形、または他のブロック変換をピクセル・データまたは予測残差データのブロックに適用し、周波数変換係数のブロックを作る。代替案では、周波数トランスフォーマ2160が、フーリエ変換などの別の従来の周波数変換を適用するか、ウェーブレット分析またはサブバンド分析を使用する。周波数トランスフォーマ2160は、8×8、8×4、4×8、4×4、または他のサイズの周波数変換を適用することができる。
次に、量子化器2170が、スペクトル・データ係数のブロックを量子化する。量子化器は、ピクチャを単位としてまたは他の単位として変化するステップ・サイズを有する均一なスカラ量子化をスペクトル・データに適用する。代替案では、量子化器は、例えば、不均一量子化、ベクトル量子化、または非適応量子化などの別のタイプの量子化を空間データ係数に適用したり、周波数変換を使用しないエンコーダ・システムでは空間領域データを直接に量子化したりする。適応量子化のほかに、エンコーダ2100は、フレーム・ドロッピング、適応フィルタリング、またはレート制御のための他の技法を使用することができる。
エンコーダ2100は、スキップド・マクロブロックの特別なシグナリングを使用することができ、このスキップド・マクロブロックは、あるタイプの情報を有しないマクロブロック(例えば、マクロブロックの動き情報および残差情報がない)である。
再構成された現在のピクチャが、後続の動き推定/動き補償に必要なときには、逆量子化器2176が、量子化されたスペクトル・データ係数に対して逆量子化を実行する。次に、逆周波数トランスフォーマ2166が、周波数トランスフォーマ2160の動作の逆を実行し、再構成された予測残差(予測ピクチャの)または再構成されたキー・ピクチャを作る。現在のピクチャ2105がキー・ピクチャである場合には、再構成されたキー・ピクチャが、再構成された現在のピクチャ(図示せず)として採用される。現在のピクチャ2105が予測ピクチャである場合には、再構成された予測残差を、動き補償された現在のピクチャ2135に加算して、再構成された現在のピクチャを形成する。ピクチャ・ストア2120および2122の一方または両方が、動き補償予測で使用するために、再構成された現在のピクチャをバッファリングする。いくつかの実施形態で、エンコーダは、再構成されたフレームにデブロッキング・フィルタを適用して、そのピクチャにおける不連続性および他のアーティファクトを適応式に平滑化する。
エントロピー・コーダ2180は、量子化器2170の出力ならびにある種のサイド情報(例えば、動き情報2115、量子化ステップ・サイズ)を圧縮する。通常のエントロピー・コーディング技法に、算術コーディング、差分コーディング、ハフマン・コーディング、ランレングス・コーディング、LZコーディング、辞書コーディング、および上記の組合せが含まれる。エントロピー・コーダ2180は、通常、異なる種類の情報(例えば、DC係数、AC係数、異なる種類のサイド情報)に異なるコーディング技法を使用し、特定のコーディング技法内で複数のコード・テーブルの中から選択することができる。
エントロピー・コーダ2180は、圧縮ビデオ情報2195をマルチプレクサ[「MUX」]2190に供給する。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をデコードする、例えば、動きベクトルの1つまたは複数のプレディクタを算出し、差分動きベクトルをエントロピー・デコーディングし、デコードされた差分動きベクトルをプレディクタと組み合わせて、動きベクトルを再構成する。インターレースBフィールドおよびインターレースBフレームに関する、動きベクトル・プレディクタの算出、差分動きベクトルの算出、および動きベクトル再構成の様々な技法を、下で説明する。
動き補償器2230は、動き情報2215を1つまたは複数の基準ピクチャ2225に適用して、再構成中のピクチャ2205についての予測2235を形成する。例えば、動き補償器2230は、1つまたは複数のマクロブロック動きベクトルを使用して、基準ピクチャ(群)2225内のマクロブロック(群)を見つける。1つまたは複数のピクチャ・ストア(例えば、ピクチャ・ストア2220および2222)が、基準フレームとして使用するために、前に再構成されたピクチャを格納する。通常、Bピクチャは、複数の基準フレーム(例えば、少なくとも1つの時間的に前の基準フレームおよび少なくとも1つの時間的に将来の基準フレーム)を有する。したがって、デコーダ・システム2200は、複数の基準フレームに別々のピクチャ・ストア2220および2222を使用することができる。動き補償器2230は、ピクセル単位、1/2ピクセル単位、1/4ピクセル単位、または他の増分で動きを補償することができ、ピクチャ単位または他の単位で動き補償の分解能を切り替えることができる。動き補償器2230は、フレーム単位でまたは他の単位で、基準ピクチャ・ピクセル補間の複数のタイプ例えば、双三次(bicubic)と双線形(bilinear)の間)間を切り替えることができる。動き補償の分解能は、水平と垂直で同一としたり、または異ならせたりすることができる。代替案では、動き補償器は、別のタイプの動き補償を適用する。動き補償器による予測は、完全であることがめったになく、したがって、デコーダ2200も、予測残差を再構成する。
逆量子化器2270が、エントロピー・デコードされたデータを逆量子化する。一般に、逆量子化器は、ピクチャ単位でまたは他の単位で変化するステップ・サイズを有する均一なスカラ逆量子化をエントロピー・デコードされたデータに適用する。代替案では、逆量子化器は、例えば、不均一量子化、ベクトル量子化、または非適応量子化などの処理後のデータを再構成するために、別のタイプの逆量子化をデータに適用したり、逆周波数変換を使用しないデコーダ・システム内では空間領域データを直接に逆量子化したりする。
逆周波数トランスフォーマ2260は、逆量子化された周波数領域データを空間領域ビデオ情報に変換する。ブロック・ベースのビデオ・ピクチャについて、逆周波数トランスフォーマ2260は、逆DCT[「IDCT」]、IDCTの変形、または他の逆ブロック変換を周波数変換係数に適用し、それぞれキー・ピクチャまたは予測ピクチャのピクセル・データまたは予測残差データを作る。代替案では、逆周波数トランスフォーマ2260が、逆フーリエ変換などの別の従来の逆周波数変換を適用するか、ウェーブレット合成またはサブバンド合成を使用する。逆周波数トランスフォーマ2260は、8×8、8×4、4×8、4×4、または他のサイズの逆周波数変換を適用することができる。
予測ピクチャに関して、デコーダ2200は、再構成された予測残差2245を動き補償された予測2235と組み合わせて、再構成されたピクチャ2205を形成する。デコーダが、後続の動き補償用に再構成されたピクチャ2205を必要とするときには、ピクチャ・ストア(例えば、ピクチャ・ストア2220)の一方または両方が、次のピクチャを予測する際に使用するために、再構成されたピクチャ2205をバッファリングする。いくつかの実施形態で、デコーダ2200は、再構成されたピクチャにデブロッキング・フィルタを適用して、そのピクチャにおける不連続性および他のアーティファクトを適応式に平滑化する。
III. インターレースPフィールドおよびインターレースPフレーム
通常のインターレース・ビデオ・フレームは、異なる時刻にスキャンされる2つのフィールド(例えば、上フィールドおよび下フィールド)からなる。一般に、(2つの)フィールドを一緒にコーディングすること(「フレーム・モード」コーディング)によってインターレース・ビデオ・フレームの静止領域をエンコードすることが、より効率的である。その一方で、2つのフィールドが異なる動きを有する傾向があるので、フィールドを別々にコーディングすること(「フィールド・モード」コーディング)によってインターレース・ビデオ・フレームの動いている領域をコーディングすることが、しばしばより効率的である。順方向予測インターレース・ビデオ・フレームは、2つの別々の順方向予測フィールド(インターレースPフィールド)としてコーディングすることができる。順方向予測インターレース・ビデオ・フレームのフィールドを別々にコーディングすることには、例えば、インターレース・ビデオ・フレーム全体に激しい動きがあり、したがって、フィールドの間の大きい差があるときに、より効率的である場合がある。
あるいは、順方向予測インターレース・ビデオ・フレームを、フィールド・コーディングおよびフレーム・コーディングの混合を使用して、インターレースPフレームとしてコーディングすることができる。インターレースPフレームのマクロブロックについて、このマクロブロックは、上フィールドおよび下フィールドのピクセルの走査線を含み、これらの走査線は、フレーム・コーディング・モードでは一緒に、フィールド・コーディング・モードでは別々にコーディングされる。
A. インターレースPフィールド
インターレースPフィールドは、1つまたは複数の前にデコードされたフィールドを参照する。例えば、いくつかの実装で、インターレースPフィールドは、前にデコードされたフィールドの1つまたは2つを参照するが、インターレースBフィールドは、2つまでの前の基準フィールドおよび2つまでの将来の基準フィールド(すなわち、合計4つまでの基準フィールド)を参照する(インターレースBフィールドのエンコーディング技法およびデコーディング技法は、下で詳細に説明する)。
図25および図26に、2つの基準フィールドを有するインターレースPフィールドの例を示す。図25では、現在のフィールド2510が、時間的に前のインターレース・ビデオ・フレームの上フィールド2520および下フィールド2530を参照する。フィールド2540および2550は、インターレースBフィールドなので、これらは基準フィールドとしては使用されない。図26では、現在のフィールド2610が、現在のフィールド2610を含むインターレース・ビデオ・フレームの直前のインターレース・ビデオ・フレーム内の上フィールド2620および下フィールド2630を参照する。2つの基準インターレースPフィールドに関するさらなる情報については特許文献2を参照されたい。
図27および28に、1つの基準フィールドすなわち時間的に最も最近の許容可能な基準フィールドを有するインターレースPフィールドの例を示す。図27では、現在のフィールド2710が、時間的に前のインターレース・ビデオ・フレーム内の下フィールド2730を参照するが、そのインターレース・ビデオ・フレームのより最近でない上フィールド2720を参照しない。図27に示された例では、フィールド2740および2750が、インターレースBフィールドであり、許容可能な基準フィールドではない。図28では、現在のフィールド2810が、より最近でない上フィールド2820ではなく、現在のフィールド2810を含むインターレース・ビデオ・フレームの直前のインターレース・ビデオ・フレーム内の下フィールド2830を参照する。
図29および図30に、2番目に最近の許容可能な基準フィールドを使用するインターレースPフィールドの例を示す。図29では、現在のフィールド2910が、時間的に前のインターレース・ビデオ・フレームの上フィールド2920を参照するが、より最近の下フィールド2930を参照しない。図29に示された例では、フィールド2940および2950が、インターレースBフィールドであり、許容可能な基準フィールドではない。図30では、現在のフィールド3010が、最も最近の下フィールド3030ではなく、上フィールド3020を参照する。
一実装で、図25〜図30に示されたすべてのシナリオが、インターレースPフィールド構文で許容される。他の実装が可能である。例えば、ピクチャが、基準フレームとして、異なるタイプまたは異なる時間的位置の他のピクチャからのフィールドを使用することができる。
1. フィールド・ピクチャ座標系およびフィールド極性
動きベクトルは、1/4ピクセル単位での水平変位および垂直変位を表す。例えば、動きベクトルの垂直成分が、6つの1/4ピクセル単位の変位を示す場合に、これは、基準ブロックが、現在のブロック位置の1 1/2フィールド走査線下にあることを示す(6*1/4=1 1/2)。
図31に、一実装での、動きベクトルの垂直成分と空間位置の垂直成分との間の関係を示す。図31に示された例は、現在のフィールド・タイプおよび基準フィールドタイプ(例えば上および下)の3つの異なる組合せに関する3つの異なるシナリオ3110、3120、および3130が示されている。フィールド・タイプが、現在のフィールドと基準フィールドについて異なる場合に、極性は「反対」である。フィールド・タイプが同一の場合には、極性は「同一」である。各シナリオについて、図31に、現在のフィールドにおける複数のピクセルからなる1つの垂直の列(column)および基準フィールドにおける複数のピクセルからなる第2の垂直の列を示す。実際には、この2つの列が、水平に位置合せされている。円は、実際の整数ピクセル位置を表し、×は、補間された1/2ピクセル位置または1/4ピクセル位置を表す。水平成分値(図示せず)は、それぞれのフィールドが水平に位置合せされているので、インターレースに起因するオフセットを考慮に入れる必要がない。負の値は、さらに上へのオフセットを示し、その反対方向で、正の垂直オフセットが示されている。
シナリオ3110では、極性が「反対」である。現在のフィールドは、上フィールドであり、基準フィールドは、下フィールドである。現在のフィールドに対して、基準フィールドの位置は、インターレースに起因して下に1/2ピクセルだけオフセットしている。0の垂直動きベクトル成分値は、「ゼロの垂直動き」オフセットであり、基準フィールド内の位置として、(絶対的には)同一の垂直レベルにある基準フィールド内の位置を表し、+2の垂直動きベクトル成分値は、現在のフィールド内の位置の1/2ピクセル下(絶対項で)にオフセットした基準フィールド内の位置を表し、これは、基準フィールド内の実際の値(actual value)であり、+4の垂直動きベクトル成分値は、現在のフィールド内の位置の1ピクセル下(絶対項で)にオフセットした位置を表し、これは、基準フィールド内で補間された値である。
シナリオ3120では、極性が「反対」である。現在のフィールドは、下フィールドであり、基準フィールドは、上フィールドである。現在のフィールドに対して、基準フィールドの位置は、インターレースに起因して上に1/2ピクセルだけオフセットしている。−2の垂直動きベクトル成分値は、現在のフィールド内の位置の(絶対的には)1/2ピクセル上の基準フィールド内の位置を表し、0の垂直動きベクトル成分値は、基準フィールド内の位置と(絶対的には)同一レベルの位置を表し、+2の垂直動きベクトル成分値は、現在のフィールド内の位置の(絶対的には)1/2ピクセル下にオフセットした位置を表す。
シナリオ3130では、極性が「同一」である。現在のフィールドに対して、基準フィールドの位置は、垂直方向で同一である。0の垂直動きベクトル成分値は、「ゼロの垂直動き」オフセットであり、基準フィールド内の位置として、(絶対的には)同一の垂直レベルにある基準フィールド内の位置を表し、+2の垂直動きベクトル成分値は、現在のフィールド内の位置の1/2ピクセル下(絶対項で)にオフセットした基準フィールド内の位置を表し、これは、基準フィールド内で補間された値であり、+4の垂直動きベクトル成分値は、現在のフィールド内の位置の(絶対的には)1ピクセル下にオフセットした位置を表し、これは、基準フィールド内の実際の値である。
代替案では、動きベクトルの変位が、異なる規約に従って表される。
2. 2つの基準フィールドからのインターレースPフィールドでの動きベクトル予測
2つの基準フィールドからのインターレースPフィールドは、同一の時間的方向の2つのフィールド(例えば、2つの最も最近の前の基準フィールド)を参照する。2つの動きベクトル・プレディクタが、マクロブロックごとに算出される。いくつかの実装で、一方のプレディクタが、同一極性の基準フィールドからであり、他方が、反対極性の基準フィールドからである。極性の他の組合せも可能である(方向ごとに2つの基準フィールドを使用するインターレースBフィールドは、下で説明する。いくつかの実装で、そのようなインターレースBフィールドは、動きベクトル・プレディクタの算出に関してインターレースPフィールドと同一の技法を使用する)。
いくつかの実装で、エンコーダ/デコーダは、奇数フィールド・プレディクタおよび偶数フィールド・プレディクタを見つけ、このプレディクタのうちの1つを選択してマクロブロックを処理することによって、現在のブロックまたはマクロブロックの動きベクトル・プレディクタを算出する。例えば、エンコーダ/デコーダは、奇数フィールド動きベクトル・プレディクタおよび偶数フィールド動きベクトル・プレディクタを決定する。したがって、この動きベクトル・プレディクタのうちの一方が、現在のフィールドと同一極性を有し、他方の動きベクトル・プレディクタが、反対極性を有する。エンコーダ/デコーダは、奇数フィールド動きベクトル・プレディクタおよび偶数フィールド動きベクトル・プレディクタの中から1つの動きベクトル・プレディクタを選択する。例えば、エンコーダは、どちらがよりよい予測を与えるかに基づいて、複数の動きベクトル・プレディクタのいずれかを選択する。エンコーダは、単純な選択信号を使用して、またはコーディング効率を改善するためにコンテクスト情報を組み込んだより複雑なシグナリングを使用して、どの動きベクトル・プレディクタを使用するかをシグナリングする。このコンテクスト情報は、偶数フィールドまたは奇数フィールドのどちらが、あるいは同一極性のフィールドまたは反対極性のフィールドのどちらが、ブロックまたはマクロブロックの周囲の近傍で優勢に使用されたかを示すことができる。デコーダは、この選択信号および/またはコンテクスト情報に基づいて、どの動きベクトル・プレディクタを使用するかを選択する。次に、エンコーダ/デコーダは、選択された動きベクトル・プレディクタを使用して、動きベクトルを処理する。例えば、エンコーダは、動きベクトルと動きベクトル・プレディクタの間の差分をエンコードする。あるいは、デコーダは、動きベクトル差分と動きベクトル・プレディクタを組み合わせることによって、動きベクトルをデコードする。
代替案では、エンコーダおよび/またはデコーダが、奇数フィールド動きベクトル・プレディクタの決定または偶数フィールド動きベクトル・プレディクタの決定をスキップすることができる。例えば、エンコーダが、奇数フィールドが特定のブロックまたはマクロブロックの動き補償に使用されると決定した場合に、エンコーダは、奇数フィールド動きベクトル・プレディクタだけを決定する。あるいは、デコーダが、コンテクスト情報および/またはシグナリングされた情報から、奇数フィールドが動き補償に使用されると決定した場合に、デコーダは、奇数フィールド動きベクトル・プレディクタだけを決定する。この形で、エンコーダおよびデコーダは、不要な動作を避けることができる。
デコーダは、次の技法を使用して、現在のインターレースPフィールドの動きベクトル・プレディクタを決定することができる。
インターレースPフィールドの動きベクトルを有するブロックまたはマクロブロックごとに、3つの候補動きベクトル・プレディクタの2セットを得る。これらの候補動きベクトル・プレディクタがそこから得られる隣接マクロブロックの、現在のマクロブロック3200に対する位置を図32に示す。この候補のうちの3つは、偶数基準フィールドからであり、3つは、奇数基準フィールドからである。各候補方向の隣接マクロブロック(A、B、またはC)は、イントラ・コーディングされるか、偶数フィールドまたは奇数フィールドのいずれかを参照する実際の動きベクトルを有するかのいずれかなので、他方のフィールドの動きベクトルを導出する(または、イントラ・コーディングされたマクロブロック用の奇数フィールドと偶数フィールドの両方の動きベクトル候補を導出する)必要がある。例えば、所与のマクロブロックについて、プレディクタAが、奇数フィールドを参照する動きベクトルを有すると仮定する。この場合に、「偶数フィールド」プレディクタ候補Aは、「奇数フィールド」候補プレディクタAの動きベクトルから導出される。この導出は、スケーリング動作を使用して達成される(例えば、下の図34Aおよび図34Bの説明を参照されたい)。代替案では、この導出が、別の形で達成される。
3つの奇数フィールド候補動きベクトル・プレディクタを得たならば、中央値演算を使用して、3つの奇数フィールド候補から1つの奇数フィールド動きベクトル・プレディクタを導出する。同様に、3つの偶数フィールド候補動きベクトル・プレディクタを得たならば、中央値演算を使用して、3つの偶数フィールド候補から1つの偶数フィールド動きベクトル・プレディクタを導出する。代替案では、別の機構を使用して、候補フィールド動きベクトル・プレディクタに基づいて、フィールド動きベクトル・プレディクタを選択する。デコーダは、動きベクトル・プレディクタとして偶数フィールドまたは奇数フィールドのどちらを使用するかを判断し(例えば、優勢プレディクタを選択することによって)、偶数または奇数の動きベクトル・プレディクタを使用して、動きベクトルを再構成する。
図33A〜図33Fの擬似コード3300に、図32のように配置されたプレディクタA、B、およびCから動きベクトル・プレディクタを生成するのに使用されるプロセスを示す。図32に、現在のインターレースPフィールドの中央の通常のマクロブロックの近傍を示したが、図33A〜33Fの擬似コード3300は、マクロブロック位置に関する様々な特別な場合に対処する。さらに、擬似コード3300を使用して、様々な位置のブロックの動きベクトルの動きベクトル・プレディクタを算出することができる。
擬似コード3300では、用語「same field」(同一のフィールド)および「opposite field」(反対のフィールド)が、現在コーディングまたはデコーディングされつつあるフィールドに対するものであると理解されたい。例えば、現在のフィールドが偶数フィールドである場合に、「same field」は偶数基準フィールドであり、「opposite field」は奇数基準フィールドである。擬似コード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がセットされる。隣接マクロブロックごとに、同一のフィールドの動きベクトル・プレディクタおよび反対のフィールドの動きベクトル・プレディクタが、セットされ、一方は、隣接マクロブロックの動きベクトルの実際の値からセットされ、他方はそれから導出される。候補の中央値(median)を、同一のフィールドの動きベクトル・プレディクタおよび反対のフィールドの動きベクトル・プレディクタについて算出し、「優勢」プレディクタを、samecountおよびoppositecountから決定する。変数dominantpredictorは、どのフィールドに優勢動きベクトル・プレディクタが含まれるかを示す。動きベクトル・プレディクタが優勢であるのは、それが3つの候補プレディクタの過半数と同一極性を有する場合である(シグナリングされる値predictor_flagは、動きベクトル差分データと共にデコードされ、優勢プレディクタまたは非優勢プレディクタのどちらが使用されるかを示す)。
図33Cの擬似コードは、隣接マクロブロックBおよびCが存在しない、1行(row)あたりに1つのマクロブロックだけを有するインターレースPフィールド内のマクロブロックの状況に対処する。図33Dおよび33Eの擬似コードは、隣接マクロブロックCが存在しない、インターレースPフィールドの左端にあるブロックまたはマクロブロックの状況に対処する。ここで、動きベクトル・プレディクタが優勢であるのは、2つの候補プレディクタのうちのより多数と同一極性を有する場合であり、引き分けの場合には、反対のフィールドの動きベクトル・プレディクタが優勢である。最後に、図33Fの擬似コードは、例えば、インターレースPフィールドの最上行内のマクロブロックの場合に対処する。
3. 別のフィールドの動きベクトル・プレディクタからの、あるフィールドの動きベクトル・プレディクタの導出のためのスケーリング
一実装で、エンコーダ/デコーダは、図34Aおよび34Bの擬似コード3400に示されたスケーリング動作を使用して、別のフィールドの動きベクトル・プレディクタからあるフィールドの動きベクトル・プレディクタを導出する。SCALEOPP、SCALESAME1、SCALESAME2、SCALEZONE1_X、SCALEZONE1_Y、ZONE1OFFSET_X、およびZONE1OFFSET_Yの値は、実装に依存である。値の2つの可能なセットが、現在のフィールドがインターレース・ビデオ・フレームの最初のフィールドである場合について図35の表3500に示されており、現在のフィールドがインターレース・ビデオ・フレームの2番目のフィールドである場合について図36の表3600に示されている。Pフレームについて、基準フレーム距離は、現在のPフレームとその基準フレームの間のBフレーム(すなわち、2つの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の間の関係を示す。
Figure 0004763607
表3500および表3600に示された値は、実装に応じて変更することができる。
代替案では、Nは1と仮定され(すなわち、スケーリングはNに依存しない)、あるいは、スケーリングをいくつかの他の形で実行することができる。
B. インターレースPフレーム
いくつかの実装で、インターレースPフレームのマクロブロックは、5つのタイプすなわち、1MV、2フィールドMV、4フレームMV、4フィールドMV、およびイントラのうちの1つとすることができる。
1MVマクロブロックでは、マクロブロック内の4つの輝度ブロックの変位が、単一の動きベクトルによって表される。対応するクロマ動きベクトルを、ルマ(luma:輝度)動きベクトルから導出して、動きベクトルの2つの8×8クロマ・ブロックのそれぞれの変位を表すことができる。例えば、図23に示されたマクロブロック配置をもう一度参照すると、1MVマクロブロック2300に、4つの8×8輝度ブロックおよび2つの8×8クロミナンス・ブロックが含まれる。複数の輝度ブロック(Y1からY4)の変位は、単一の動きベクトルによって表され、対応するクロマ動きベクトルをルマ動きベクトルから導出して、2つのクロマブロック(UおよびV)のそれぞれの変位を表すことができる。
2フィールドMVマクロブロックでは、マクロブロック内の4つの輝度ブロックの各フィールドの変位が、異なる動きベクトルによって記述される。例えば、図37に、上フィールド動きベクトルが、輝度ブロックの4つすべての偶数走査線の変位を記述し、下フィールド動きベクトルが、輝度ブロックの4つすべての奇数走査線の変位を記述することを示す。上フィールド動きベクトルを使用することによって、エンコーダは、対応する上フィールド・クロマ動きベクトルを導出することができ、これは、クロマ・ブロックの偶数走査線の変位を記述する。同様に、エンコーダは、下フィールド・クロマ動きベクトルを導出することができ、これは、クロマ・ブロックの奇数走査線の変位を記述する。
図38を参照すると、4フレームMVマクロブロックでは、4つの輝度ブロックのそれぞれの変位が、個々の動きベクトル(MV1、MV2、MV3、およびMV4)によって記述される。各クロマ・ブロックは、4つの4×4クロマ・サブブロックの変位を記述する4つの導出されたクロマ動きベクトル(MV1’、MV2’、MV3’、およびMV4’)を使用することによって動き補償することができる。各4×4クロマ・サブブロック用の動きベクトルは、空間的に対応する輝度ブロック用の動きベクトルから導出することができる。
図39を参照すると、4フィールドMVマクロブロックでは、複数の輝度ブロックにおける各フィールドの変位が、2つの異なる動きベクトルによって記述される。その複数の輝度ブロックの偶数走査線は、垂直に副分割されて2つの8×8領域を形成している。偶数走査線について、左領域の変位は、上左フィールド・ブロック動きベクトルによって記述され、右領域の変位は、上右フィールド・ブロック動きベクトルによって記述される。輝度ブロックの奇数走査線も、2つの8×8領域を形成するために垂直に副分割されている。左領域の変位は、下左フィールド・ブロック動きベクトルによって記述され、右領域の変位は、下右フィールド・ブロック動きベクトルによって記述される。各クロマ・ブロックも、輝度ブロックと同一の形で4つの領域に区分することができ、各クロマ領域を、導出された動きベクトルを使用して動き補償することができる。
イントラ・マクロブロックについて、動きは0と仮定される。
一般に、インターレースPフレーム内の現在のマクロブロック用の動きベクトル・プレディクタを算出するプロセスは、2つのステップからなる。第1に、現在のマクロブロックに対する3つの候補動きベクトルを、その隣接マクロブロックから収集する。例えば、一実施形態で、候補動きブロックは、図40A〜図40Bに示された配置(および最上行マクロブロックなどの様々な特別な場合)に基づいて収集される。代替案では、候補動きブロックを、ある他の順序または配置で収集することができる。第2に、現在のマクロブロックの動きベクトル・プレディクタを、候補動きベクトルのセットから算出する。例えば、プレディクタを、median−of−3 prediction(3の中央値予測)を使用して、またはいくつかの他の方法によって算出することができる。
インターレースPフレームのマクロブロック用のプレディクタの算出およびクロマ動きベクトルの導出に関するさらなる詳細については、特許文献3を参照されたい。
IV. プログレッシブ・ビデオ・フレームの双方向予測
上で説明したように、プログレッシブBフレームのマクロブロックは、5つの異なる予測モードすなわち、順方向、逆方向、直接、補間、およびイントラを使用して予測することができる。エンコーダは、マクロブロック・レベルまたは他のレベルで異なる予測モードを、選択し、ビットストリーム内でシグナリングする。順方向モードでは、現在のプログレッシブBフレームのマクロブロックが、時間的に前のアンカーから導出される。逆方向モードでは、現在のプログレッシブBフレームのマクロブロックが、時間的に後のアンカーから導出される。直接モードまたは補間モードで予測されるマクロブロックは、前のアンカーと後のアンカーの両方を予測に使用する。直接モードおよび補間モードには2つの基準フレームがあるので、通常、マクロブロックごとに(明示的にコーディングされるか導出されるかのいずれか)少なくとも2つの動きベクトルがある(プログレッシブBフレームに使用されるコーディング、シグナリング、およびデコーディングの様々な態様は、下で説明するように、インターレースBフレームにも使用することができる)。
いくつかの実装で、デコーダは、分数値を使用して、順方向アンカーの同一位置の動きベクトルをスケーリングすることによって、直接モードで動きベクトルを暗黙のうちに導出する。分数は、現在のプログレッシブBフレームの、そのアンカーによって形成されるインターバル内の相対的な時間位置を反映することができるが、真のフレーム間距離を反映する必要はない。したがって、エンコーダは、必ずしも一定の速度を仮定しない。これによって、エンコーダに、動き補償された予測を改善するために分数を「実際の」時間位置から変更することによって、アンカーと現在のプログレッシブBフレームの間の真の動きを正確かつ安価に記述するための追加の自由度が与えられる。変数BFRACTIONは、この相対時間位置を示すためにビットストリーム内(例えば、ピクチャ・レベルまたは他のレベルで)送ることができる個々の分数を表す。この個々分数は、0と1の間の離散値の限られたセットからなる分数である。
図17をもう一度参照すると、表1700は、ビットストリーム要素BFRACTIONの可変長コード(VLC)テーブルである。同一の2つのアンカーの間のプログレッシブBフレームの間でのBFRACTIONの一意性に関する制約はなく、同一のアンカーを有する異なるプログレッシブBフレームが、同一のBFRACTION値を有することができる。表1700のコードは、異なるコードを用いて異なる分数を表すために変更したり、または再配置したりすることができる。表1700に示されていない他の可能なコード(例えば、1111110または1111111)は、無効なコードと見なすことができ、あるいは、他の目的に使用することができる。例えば、エントリ1111110を使用して、固定小数点フォーマットでBFRACTIONを明示的にコーディングすることができる。もう1つの例として、エントリ1111111を使用して、特定のフレーム・タイプ(例えば、イントラ・コーディングされたプログレッシブBフレーム)をシグナリングすることができる。
図18をもう一度参照すると、デコーダは、擬似コード1800に従ってスケーリング係数を見つける。図19をもう一度参照すると、デコーダは、そのスケーリング係数を使用して、後続参照ピクチャの同一位置のマクロブロックの動きベクトルのx要素およびy要素をスケーリングする。擬似コード1900の関数Scale_Direct_MVは、入力MV_XおよびMV_Yをとり、直接モードで2つの動きベクトルを導出し、この動きベクトルの一方は、順方向(前の)アンカー・ピクチャを参照し(MV_X、MV_Y)、他方は、逆方向(後の)アンカー・ピクチャを参照する(MV_X、MV_Y)。
プログレッシブBフレームの「スキップド」マクロブロック信号は、動きベクトル予測誤差が所与のマクロブロックについて存在しないことを示す。予測された動きベクトルは、正確に、エンコーダ/デコーダがそのマクロブロックの再構成に使用する動きベクトルである(すなわち、動きベクトル予測誤差が適用されない)。エンコーダは、それでも、直接予測、順方向予測、逆方向予測、または補間予測でそのマクロブロックをスキップすることができるので、このマクロブロックの予測モードをシグナリングする。
V. インターレースBピクチャの予測コーディング/デコーディングにおける革新の概要
説明される実施形態は、インターレースBピクチャ(例えば、インターレースBフィールド、インターレースBフレーム)をコーディングし、デコーディングする技法およびツールを含む。説明される実施形態は、限定されないが、以下を含む、双方向予測インターレース・ピクチャをコーディングし、かつ/またはデコードする説明される技法およびツールのうちの1つまたは複数を実装する。
1.インターレースBフレームについて、エンコーダ/デコーダは、インターレースBフレーム内のマクロブロックの上フィールドと下フィールドの間で予測モードを切り替える。
2.インターレースBフレームについて、エンコーダ/デコーダは、前にデコードされた時間的に後のアンカーの同一位置のマクロブロックの上フィールドおよび下フィールドのそれぞれの1つの代表的動きベクトルを選択することによって、現在のマクロブロックの直接モード動きベクトルを算出する。この選択は、現在のインターレースBフレームのマクロブロックをコーディングするモード(例えば、1MVモード、2フィールドMVモードなど)に少なくとも部分的に基づいて実行することができる。
3.インターレースBフィールドまたはインターレースBフレームについて、エンコーダ/デコーダは、4MVコーディングを使用する。例えば、4MVは、1方向予測モード(順方向モードまたは逆方向モード)で使用することができるが、他の使用可能な予測モード(例えば、直接、補間)では使用することができない。
4.インターレースBフィールドまたはインターレースBフレームについて、順方向動きベクトルは、順方向動きベクトル・バッファからの前に再構成された(または推定された)順方向動きベクトルを使用して予測され、逆方向動きベクトルは、逆方向動きベクトル・バッファからの前に再構成された(または推定された)逆方向動きベクトルを使用して予測される。結果の動きベクトルが、対応するバッファに追加され、動きベクトル・バッファの穴が、推定された動きベクトル値によって埋められる。
a.インターレースBフレームについて、順方向予測が動きベクトルの予測に使用されて、動きベクトルが順方向バッファに追加されるときに、逆方向バッファ内の対応する位置が、プレディクタとして逆方向動きベクトルだけを使用して予測された動きベクトルになるはずのものによって埋められる(「穴埋め」)。同様に、逆方向予測が動きベクトルの予測に使用されて動きベクトルが逆方向バッファに追加されるときに、順方向バッファ内の対応する位置が、プレディクタとして順方向動きベクトルだけを使用して予測された動きベクトルになるはずのものによって埋められる。
b.インターレースBフィールドについて、穴埋め用に異なる極性の動きベクトル(例えば、「同一極性」または「反対極性」)のどちらかを選択するために、エンコーダ/デコーダは、優勢極性フィールドの動きベクトルを選択する。アンカーと現在のフレームの間の距離が、様々な構文要素を使用して算出され、算出された距離が、基準フィールド動きベクトルのスケーリングに使用される。
5.インターレースBフィールドについて、エンコーダ/デコーダは、「自己参照」フレームを使用する。例えば、現在のフレームの第2のBフィールドが、動き補償された予測において現在のフレームからの第1のBフィールドを参照する。
6.インターレースBフィールドについて、エンコーダは、インターレースBフィールドの1つまたは複数のマクロブロックについて、予測モードが順方向または非順方向のどちらであるかを示す2値情報を(例えば、圧縮されたビットプレーンのBフィールド・レベルで)送る。デコーダは、対応するデコーディングを実行する。
7.インターレースBフィールドについて、エンコーダ/デコーダは、次のアンカー・ピクチャの対応するフィールドの対応するマクロブロックが4つの動きベクトルを使用してコーディングされている場合に、優勢極性を選択する論理を使用して直接モード動きベクトルを選択する。
8.イントラ・コーディングされたフィールド:よい動き補償がBフィールドについて可能でないときに、そのBフィールドを、イントラ(すなわち、予測されない)Bフィールド(「BIフィールド」)としてコーディングすることができる。
説明される技法およびツールは、互いにまたは他の技法もしくはツールと組み合わせて使用することができ、あるいは、独立に使用することができる。
VI. インターレースBフレームのフィールド・コーディングされたマクロブロック内での予測モードの切替
いくつかの実装で、エンコーダは、インターレースBフレームのマクロブロック内で予測モード切替を実行する。例えば、エンコーダは、インターレースBフレームのマクロブロックの上フィールドから下フィールドに進む際に、順方向から逆方向へ、または逆方向から順方向への予測モード切替を可能にする。マクロブロック全体を単一の予測方向モードでエンコードするのではなく、予測方向モードの組合せを使用して、単一のマクロブロックをコーディングする。1つのマクロブロックの個々のフィールドのどちらかに予測方向モードを変更する能力は、多くのシナリオでインターレースBフレームのより効率的なコーディングにつながる。
図41に、異なる予測モードを使用してインターレースBフレーム内のフィールド・コーディングされたマクロブロック内の個々のフィールドの動きベクトルを予測する技法4100を示す。4110で、インターレースBフレーム内で、エンコーダ/デコーダは、第1予測モードを使用して、フィールド・コーディングされたマクロブロック内の第1フィールドの動きベクトルを予測する。いくつかの実装で、「第1フィールド」を、上フィールドまたは下フィールドのいずれかとすることができ、その決定は、別々にシグナリングされる。4120で、エンコーダ/デコーダは、異なる予測モードを使用して、同一マクロブロック内の第2フィールドの動きベクトルを予測する。
例えば、2つの動きベクトルを使用してフィールド・コーディングされたマクロブロックについて、上フィールドを順方向予測することができ(すなわち、上フィールド動きベクトルが前のアンカー・ピクチャを参照する)、下フィールドを逆方向予測することができる(すなわち、下フィールドが後のアンカー・ピクチャを参照する)。いくつかの実装で、インターレースBフレーム内のフィールド・コーディングされたマクロブロックは、4つの動きベクトルを使用してはエンコードされない。代替案では、マクロブロックが、4つの動きベクトル(例えば、フィールドごとに2つの動きベクトル)を使用してフィールド・コーディングされる場合に、上フィールドの2つの動きベクトルが、一方のアンカー(順方向または逆方向)を参照し、下フィールドの動きベクトルが、他方のアンカーを参照する。
この予測モードの切替は、インターレースBフレームに関する次の擬似コードにさらに示されているように、マクロブロック・タイプが直接または補間でない場合に1つの追加ビットだけを、まずは必要とする。
If MB is field-coded AND MB Type is forward or backward
then If MVSwitch = 1 then prediction mode switches (from for ward to backward or vice versa) between top and bottom field
上述の疑似コードの和訳は以下である
MBはフィールド・コーディングされ、且つ MBタイプは順方向または逆方向か?
その場合、MVスイッチ=1か?、その場合、予測モードが(順方向から逆方向へまたはその反対に)上フィールドと下フィールドのどちらかに切り替わる(訳の終わり)
したがって、予測モード切替を順方向モードおよび逆方向モードに制限することは、第2モードが第1モード(前にシグナリングされた)およびスイッチ値から暗示されるので、第2モードをシグナリングするためのより多くのビットの必要性を無くす。
インターレースBフレームのマクロブロックによって覆われる領域に激しい動きがある場合に、そのマクロブロックは、フィールド・モードでコーディングされる可能性が高い。この状況の下で、順方向予測または逆方向予測のどちらかが、ピクセル平均化を伴う直接モードまたは補間モードよりも、正確な動き補償結果を与える可能性が高い。平均化は、平滑化(例えば、激しい動きに伴う高い周波数要素の消失)をもたらすので、直接モードおよび補間モードは、そのようなマクロブロックをコーディングする最善の方法でない可能性がある。実験結果は、フィールド・コーディングされたマクロブロック内のフィールド・レベルでスイッチング・オプションとして4つのすべての予測モードをシグナリングすることによる増加したオーバーヘッドのために非効率性を示している。
代替案では、エンコーダが、インターレースBフレームのフィールド・コーディングされたマクロブロック内で3つ以上の予測モードの間で切り替えることができ、あるいは、異なる予測モードの間で切り替えることができる。
VII. インターレースBフレームでの直接モード動きベクトルの算出
いくつかの実装で、エンコーダ/デコーダは、前にデコードされたアンカーIフレームまたはアンカーPフレーム(時間的に順方向の基準フレームであり、逆方向予測基準フレームとして使用される)からの動きベクトルをバッファリングし、インターレースBフレーム内の現在のマクロブロック用の直接モード動きベクトルの算出に使用するために、バッファリングされた動きベクトルのうちの1つまたは複数を選択する。例えば、エンコーダ/デコーダは、アンカー・フレームの各マクロブロックからの上フィールドおよび下フィールドのそれぞれの代表的な動きベクトルをバッファリングし、バッファリングされた動きベクトルのうちの1つまたは複数を使用して、現在の直接モード・マクロブロック用の動きベクトルを算出する。この選択は、現在のマクロブロックのコーディング・モード(例えば、1MVモード、2フィールドMVモードなど)に少なくとも部分的に基づいて実行される。
図42に、一実装でのインターレースBフレームのマクロブロック用の直接モード動きベクトルを算出する技法4200を示す。4210で、エンコーダ/デコーダが、前に再構成された時間的に将来のアンカー・フレーム内の同一位置のマクロブロックのマクロブロックごとに複数の動きベクトルをバッファリングする。同一位置のマクロブロックに1つの動きベクトルだけが含まれる場合には、その動きベクトルが、必要であれば同一位置のマクロブロックの様々なブロック用の動きベクトル値として、バッファリングされる。4220で、エンコーダ/デコーダは、現在のマクロブロックに必要な動きベクトルの個数に部分的に依存して、インターレースBフレーム内の現在のマクロブロックの直接モード予測に同一位置のマクロブロックのバッファリングされた動きベクトルのうちの1つまたは複数を選択する。
一実装で、デコーダは、将来のアンカー・フレームから、同一位置のマクロブロックの2つの動きベクトル、またはデコードされたルマ動きベクトルの可能な最大の個数の半分をバッファリングする。アンカー・フレーム内のマクロブロックは、マクロブロックごとに4つまでの動きベクトルを用いて、異なる形でコーディングすることができるが、下で説明するように、2つまでの動きベクトルだけがバッファリングされる。また、現在のマクロブロックについて生成される順方向/逆方向動きベクトル対の個数は、前にデコードされた将来のアンカー・フレーム内の同一位置のマクロブロックのコーディング・モードだけではなく、現在のマクロブロックのコーディング・モードに依存する。
例えば、現在の直接モード・マクロブロックが、1MVコーディングされている場合に、デコーダは、アンカー・フレーム内の同一位置のマクロブロックの上フィールドからのバッファリングされた動きベクトルをとり、順方向および逆方向に1つずつの1対の直接動きベクトルを生成する。現在の直接モード・マクロブロックが、フィールド・コーディングされている場合に、デコーダは、アンカー・フレーム内の同一位置のマクロブロックからの下フィールドと上フィールドの両方のバッファリングされた動きベクトルをとって、2対の動きベクトルを生成し、現在の直接モード・マクロブロックについて合計4つの動きベクトル(順方向と逆方向の両方でフィールドごとに1つ)を与える。
図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モードを使用している場合に、デコーダは、4つの直接モード動きベクトルの算出にMV1とMV3の両方を使用する。これらの動作は、現在のマクロブロックの上フィールドおよび下フィールドに関する動きのよい表現をもたらす。
アンカー・フレーム内の同一位置のマクロブロックからの動きベクトルが選択済みであるときに、デコーダは、スケーリング論理を適用して、Bフレーム・マクロブロックの直接モード予測のための対応する順方向および逆方向を指す動きベクトルを導出する。例えば、デコーダは、図19の関数Scale_Direct_MVを適用することができる。あるいは、デコーダは、異なるスケーリング関数を適用する。
代替案では、エンコーダ/デコーダが、アンカー・フレームのマクロブロックごとに4つの動きベクトルをバッファリングすることができる。例えば、現在のマクロブロックが1MVコーディングされている場合に、エンコーダ/デコーダは、アンカー・フレーム内の同一位置のマクロブロックの上左動きベクトルをとって1対の直接動きベクトルを生成するか、アンカー・フレームの4つの動きベクトルを利用することができる。現在のマクロブロックがフィールド・コーディングされている場合に、エンコーダ/デコーダは、上左動きベクトルおよび下左動きベクトルをとり、2対(フィールドごとに1つ)を生成するか、アンカー・フレームのマクロブロックの上(フィールド)動きベクトルの平均および下(フィールド)動きベクトルの平均をとることができる。
直接モード動きベクトルは、アンカー・フレームの同一位置のマクロブロックがイントラであるか、アンカー・フレームがIフレームであるときに、(0,0)として扱われる。
VIII. インターレースBフィールドおよびインターレースBフレームでの4MVコーディング
いくつかの実装で、エンコーダは、4動きベクトル(4MV)コーディング・モードを使用して、インターレースBフィールドおよびインターレースBフレームをエンコードする。4MVコーディングは、(例えば、1つのマクロブロック内で4つのルマ・ブロックを独立に予測し、動き補償することを可能にすることによって)1動きベクトル(1MV)コーディングより正確な、複雑な動き軌跡の表現を可能にすることができる。4MVの使用を、ある種の予測モードに制限することができる。例えば、いくつかの実装で、エンコーダは、順方向モードおよび逆方向モード(フィールドとフレームの両方)に4MVを使用するが、直接モードまたは補間モードには使用しない。このことは、プログレッシブ・コーディング・モードで、4MVがプログレッシブBフレームに使用されないのとは異なる。
直接モードおよび補間モードは、動き補償された予測を算出するときにピクセル平均化を用いるが、これは、微細な細部を平滑化する傾向がある。そのような平滑化が受入可能である場合に、1MVモードを4MVモードの代わりに効果的に使用できる可能性が高い。というのは、1MVが、コーディングがより安価であり、滑らかな動き軌跡を正確に記述するのに使用できるからである。実験から、インターレースBフィールドおよびインターレースBフレームのマクロブロックに4MVモードを使用するが、4MVモードを順方向予測マクロブロックおよび逆方向予測マクロブロックに制限することの利点が示された。4MVを順方向モードおよび逆方向モードに制限することを選択するもう1つの要因が、4MVを直接モードまたは補間モードと組み合わせることによって、各場合に合計8つの動きベクトルがもたらされることである。シグナリング・オーバーヘッド(補間モードに関する)と8つの動きベクトルに関連付けられた実装およびデコーディングの複雑さとが、一般に、正確さの利点を相殺する。さらに、通常はより高い品質セッティングでコーディングされる(すなわち、より軽く量子化される)Pピクチャが通常は動き補償に1つまたは4つの動きベクトルだけを使用できるときに、8つの動きベクトルを用いてインターレースBピクチャをエンコードすることは、しばしば実用的でない。
ある種の予測モードに4MVを制限することは、他の利益も有する。例えば、4MVが、順方向予測モードおよび逆方向予測モードだけに制限され、(例えば、下のセクションXIで説明するものなどのビットプレーン・コーディング技法で)順方向/逆方向モード決定が既にシグナリングされている場合に、エンコーダは、4MVマクロブロックに関する予測モードをシグナリングするために追加のビットを送る必要がない。
次の擬似コードは、順方向/逆方向決定がビットプレーン・コーディングされ、すべてのマクロブロック・レベル情報の前に送られる(例えば、ピクチャ・レベルで送られる)場合に、インターレースBフィールドのマクロブロックに適用可能である。
If MB is 4MV coded AND prediction mode is NOT forward
Then prediction mode = Backward (don't send any more bits to signal mode)
上述の疑似コードの和訳は以下である
MBが4MVコーディングされ、且つ予測モードが非順方向か?
その場合、予測モード=逆方向(信号モードにこれ以上のビットは送らない)(訳の終わり)
いくつかの実装で、直接/非直接予測モード決定が、すべてのマクロブロック・レベル情報の前に(例えば、ピクチャ・レベルで圧縮されたビットプレーン内(の形式で)で)送られる。(直接/非直接情報のコーディングのさらなる詳細については、特許文献1を参照されたい)。次の擬似コードは、そのような実装で4MVが順方向モードおよび逆方向モードに制限されている場合に、インターレースBフレームのマクロブロックに適用可能である。
If MB is 4MV coded AND prediction mode is NOT direct
Then send one additional bit to signal prediction mode (forward or backward)
上述の疑似コードの和訳は以下である
MBが4MVコードされ、且つ予測モードが非直接か?
その場合 1つの追加ビットを信号予測モードに(順方向または逆方向で)送る(訳の終わり)
代替案では、4MVが、順方向モードまたは逆方向モード以外の予測モードに、またはこれに追加して他のモードに使用されたり、順方向モードに使用されなかったり、逆方向モードに使用されなかったり、すべての予測モードに使用されなかったり、する。例えば、いくつかの実装で、4MVが、インターレースBフィールドには使用されるが、インターレースBフレームには使用されない。他の代替案では、他のコードまたは他のコード長を使用して、4MVコーディングと組み合わせて予測モードをシグナリングすることができる。
IX. 別々の順方向動きベクトル・バッファおよび逆方向動きベクトル・バッファを使用する、インターレースBピクチャの動きベクトルの予測
インターレースBピクチャの動きベクトルは、別々の順方向動きベクトル・バッファ・コンテクストおよび逆方向動きベクトル・バッファ・コンテクストを使用して予測される。一般に、順方向動きベクトルは、順方向動きベクトル・バッファに格納された動きベクトルを使用して予測され、逆方向動きベクトルは、逆方向動きベクトル・バッファに格納された動きベクトルを使用して予測される。その後、その結果として得られた現在のマクロブロックの動きベクトルが、適切なバッファに格納され、他のマクロブロック用の後続の動きベクトル予測に使用することができる。通常、所与のマクロブロックが順方向動きベクトルだけ(順方向予測マクロブロックの場合)または逆方向動きベクトルだけ(逆方向予測マクロブロックの場合)を用いて予測される場合であっても、順方向動きベクトル・バッファと逆方向動きベクトル・バッファの両方の対応するスペースが、マクロブロックごとに埋められる。次のセクションで、インターレースBピクチャ(例えば、インターレースBフィールド、インターレースBフレーム)の動きベクトルを予測する技法と、「欠けている」順方向動きベクトルまたは逆方向動きベクトル用の動きベクトル・バッファ内の対応する空間を「穴埋め」する技法を説明する。
A. 順方向バッファおよび逆方向バッファ
インターレースBピクチャの動きベクトルを予測するときに、エンコーダ/デコーダは、順方向動きベクトル・バッファおよび/または逆方向動きベクトル・バッファ内の、前に再構成された動きベクトルを使用する。順方向モードでは、エンコーダ/デコーダは、順方向動きベクトル・バッファからの再構成された順方向動きベクトルを使用して、順方向動き補償について現在の動きベクトルを予測する。逆方向モードでは、エンコーダ/デコーダは、逆方向動きベクトル・バッファからの再構成された逆方向動きベクトルを使用して、逆方向動き補償について現在の動きベクトルを予測する。直接モードまたは補間モードのマクロブロックについて、エンコーダ/デコーダは、順方向動きベクトル・バッファを使用して1つの順方向動きベクトル成分(または、潜在的に複数の順方向動き成分)を予測することと、逆方向動きベクトル・バッファを使用して1つの逆方向成分(または、潜在的に複数の逆方向動き成分)を予測することとの両方を行う。
インターレースBピクチャの動きベクトルを再構成した後に、エンコーダ/デコーダは、再構成された順方向動きベクトルを順方向動きベクトル・バッファにバッファリングし、再構成された逆方向動きベクトルを逆方向動きベクトル・バッファにバッファリングする。順方向モードでは、エンコーダ/デコーダは、再構成された順方向動きベクトルを順方向動きベクトル・バッファに格納する。逆方向モードでは、エンコーダ/デコーダは、再構成された逆方向動きベクトルを逆方向動きベクトル・バッファに格納する。直接予測モードまたは補間予測モードのいずれかを使用するマクロブロックについて、エンコーダ/デコーダは、順方向動きベクトル成分を順方向動きベクトル・バッファに格納することと、逆方向動きベクトル成分を逆方向動きベクトル・バッファに格納することの両方を行う。
例えば、エンコーダが、インターレースBピクチャ内のマクロブロック座標位置(12,13)で順方向予測マクロブロックをエンコードしている場合に、エンコーダは、順方向動きベクトル・プレディクタを算出し、順方向動きベクトルの残差(そのマクロブロックが「スキップド」でないと仮定して)をビットストリームで送る。デコーダは、残差(すなわち差分)をデコードし、動きベクトルを再構成する。エンコーダ/デコーダは、再構成された動きベクトルを順方向動きベクトル・バッファに挿入する。次に、エンコーダ/デコーダは、動きベクトル予測論理を使用して、埋められる逆方向動きベクトルになる逆方向動きベクトル・プレディクタを算出し、この逆方向動きベクトルを逆方向動きベクトル・バッファの位置(12,13)に置く。例えば、median−of−3の予測シナリオでは、エンコーダ/デコーダは、位置(11,13)、(12,12)、および(13,12)(現在の順方向予測マクロブロックの左、上、および右上の隣接マクロブロック)にバッファリングされた逆方向動きベクトルの中央値(median)をとって、(12,13)用の逆方向動きベクトルを埋め込む。
図44に、順方向動きベクトル・バッファおよび/または逆方向動きベクトル・バッファを使用してインターレースBピクチャ内の現在のマクロブロックの動きベクトルを予測する技法4400を示す。4410で、予測される動きベクトルが順方向動きベクトルまたは逆方向動きベクトルのどちらであるかに応じて、エンコーダ/デコーダは、順方向動きベクトル・バッファまたは逆方向動きベクトル・バッファのどちらを使用するかを選択する。現在の動きベクトルが順方向動きベクトルである場合に、エンコーダ/デコーダは、4420で、順方向動きベクトル・バッファからの動きベクトル・プレディクタ候補のセットを選択する。現在の動きベクトルが逆方向動きベクトルである場合に、エンコーダ/デコーダは、4430で、逆方向動きベクトル・バッファからの動きベクトル・プレディクタ候補のセットを選択する。4440で、エンコーダ/デコーダは、動きベクトル・プレディクタ候補からなるセットのうちのそのセットに基づいて動きベクトル・プレディクタを算出する。例えば、エンコーダ/デコーダは、動きベクトル・プレディクタ候補のセットの中央値(median)を算出する。単純な場合に、エンコーダ/デコーダは、すべてが1MVマクロブロックであったプレディクタに基づいて1MVの現在のマクロブロックの動きベクトル・プレディクタを算出する。現在のマクロブロックおよび/または隣接マクロブロックが異なるモードを有する、より複雑な変形形態を、下で説明する。
図45に、順方向動きベクトル・バッファ4510および逆方向動きベクトル・バッファ4520内の動きベクトルを示す。図45に示された例では、再構成されたマクロブロック4530〜4570について、エンコーダ/デコーダが、順方向動きベクトル・バッファ4510に順方向動きベクトルを格納し、逆方向動きベクトル・バッファ4520に逆方向動きベクトルを格納する。現在のマクロブロック4580の動きベクトルを予測するために、エンコーダ/デコーダは、隣接マクロブロックからの候補プレディクタを使用する。例えば、現在のマクロブロック4580が、順方向モードで予測される場合に、エンコーダは、順方向動きベクトル・バッファ内の隣接する順方向動きベクトルを使用して(例えば、median−of−3の予測を使用して)順方向動きベクトルを予測することができ、その後、順方向動きベクトル・バッファ内の現在のマクロブロックの位置に、再構成された動きベクトル値を埋め込むことができる。逆方向動きベクトル・バッファ4520の対応する現在のマクロブロックの位置を埋めるために、エンコーダ/デコーダは、逆方向動きバッファ内の隣接する逆方向動きベクトルを使用して逆方向動きベクトルを予測し、逆方向動きベクトル・バッファ内の現在のマクロブロックの位置にそのプレディクタを置くことができる。
B. インターレースBフレームでの動きベクトル予測
いくつかの実装で、エンコーダ/デコーダは、別々の順方向動きベクトル・コンテクストおよび逆方向動きベクトル・コンテクストを使用する、インターレースBフレーム内のマクロブロック用の(その別々のフィールドを含む)の動きベクトルを予測するのに次のスキームを使用する。図40A〜図40Bに、候補動きベクトルの収集源となる隣接マクロブロックを示す。
1MVマクロブロックが順方向予測される場合に、エンコーダ/デコーダは、順方向動きベクトル・バッファの候補動きベクトルからその順方向動きベクトルを予測する(例えば、median−of−3の予測と、図40Aおよび図40Bまたは他所に示されたものなどの予測パターンを使用して)。エンコーダ/デコーダは、順方向動きベクトル・バッファにその順方向動きベクトルを(動きベクトル予測誤差を加算した後に)格納する。エンコーダ/デコーダは、逆方向動きベクトル・バッファの候補動きベクトルから逆方向動きベクトルを予測する(例えば、順方向予測の場合と同様に)ことによって「穴」を埋め、その逆方向動きベクトル(ここではプレディクタ)を逆方向動きベクトル・バッファに格納する。
1MVマクロブロックが逆方向予測される場合に、エンコーダ/デコーダは、逆方向動きベクトル・バッファの候補動きベクトルからその逆方向動きベクトルを予測する(例えば、順方向予測の場合と同様に)。エンコーダ/デコーダは、逆方向動きベクトル・バッファにその逆方向動きベクトルを(予測誤差を加算した後に)格納する。エンコーダ/デコーダは、順方向動きベクトル・バッファの候補動きベクトルから順方向動きベクトルを予測することによって穴を埋め、その順方向動きベクトル(ここではプレディクタ)を順方向動きベクトル・バッファに格納する。
イントラ・コーディングされたマクロブロックである隣接マクロブロックは、順方向動きベクトル・バッファおよび逆方向動きベクトル・バッファでは無視される。
様々な特別な場合が、インターレースBフレームの1MVマクロブロックとフィールド・コーディングされた2MVマクロブロックの組合せに対処する。現在の1MVマクロブロックの位置A、B、またはCの隣接マクロブロックが、フィールド・コーディングされた2MVマクロブロックである場合に、エンコーダ/デコーダは、その位置の動きベクトル・プレディクタとして、その2MVマクロブロックのフィールド動きベクトルの平均をとる。
例えば、順方向予測される現在の2フィールドMVマクロブロックについて、2つの順方向予測フィールド動きベクトルごとに、隣接マクロブロックからの候補動きベクトルが、順方向動きベクトル・バッファから収集される。エンコーダ/デコーダは、順方向動きベクトル・バッファに格納されている、隣接マクロブロックのコーディング・モード(例えば、イントラ、1MV、2フィールドMV)に基づいて候補動きベクトルのセットを選択するが。隣接マクロブロックが、存在し、それがイントラ・コーディングされていない場合に、エンコーダ/デコーダは、その候補のセットに追加すべきマクロブロックの動きベクトルを探す。いくつかの実施形態で、エンコーダ/デコーダは、次のように処理する。上フィールド順方向動きベクトルについて、位置A、B、またはCの隣接マクロブロックが1MVマクロブロックである場合に、エンコーダは、順方向動きベクトル・バッファの対応する位置からのマクロブロックの動きベクトルを候補のセットに追加する。位置A、B、またはCの、2フィールドMVマクロブロックである隣接マクロブロックについて、エンコーダ/デコーダは、順方向動きベクトル・バッファの対応する位置からの上フィールドMVをセットに追加する。
下フィールド順方向動きベクトルについて、位置A、B、またはCの隣接マクロブロックが1MVマクロブロックである場合に、エンコーダは、順方向動きベクトル・バッファの対応する位置からのマクロブロックの動きベクトルを候補のセットに追加する。位置A、B、またはCの、2フィールドMVマクロブロックである隣接マクロブロックについて、エンコーダ/デコーダは、順方向動きベクトル・バッファの対応する位置からの下フィールド動きベクトルをセットに追加する。
2フィールドMVマクロブロックのフィールド動きベクトルのプレディクタを算出するために、エンコーダ/デコーダは、次に、候補のセットの中央値(median)を算出する。
2フィールドMVマクロブロックの逆方向予測動きベクトルを算出するために、論理は、順方向予測の場合と同一であるが、隣接マクロブロックからの候補動きベクトルが、逆方向動きベクトル・バッファから収集される。
やはり、イントラ・コーディングされた、位置A、B、またはCの隣接マクロブロックは、動きベクトル予測について無視される。
2フィールドMVマクロブロック用の動きベクトルの再構成(例えば、動きベクトル差分情報を加算することによる)の後に、再構成された実際の動きベクトルが、再構成された動きベクトルの予測方向に適切な、順方向動きベクトル・バッファまたは逆方向動きベクトル・バッファに置かれる。欠けている方向の動きベクトル・バッファの対応する空のスロットは、欠けている方向の動きベクトル・プレディクタを算出し、その動きベクトル・プレディクタを空のスロットに格納することによって、埋められる。
予測モード切替が使用されている(上のセクションVIを参照されたい)場合に、例外が、インターレースBフレーム内のフィールド・コーディングされたマクロブロックの穴埋めに、適用される。この場合に、所与のフィールド・コーディングされた2MVマクロブロックは、1つの順方向動きベクトルおよび1つの逆方向動きベクトルを有する。インターレースBフレームのフィールド・コーディングされたマクロブロックの再構成の後に、フィールド・コーディングされたマクロブロックが上フィールドと下フィールドのどちらかに予測方向を切り替える場合に、エンコーダ/デコーダは、順方向動きベクトル・バッファの上下両方の動きベクトル「スロット」に順方向動きベクトルを埋め、逆方向バッファの上下両方の動きベクトル・スロットに逆方向動きベクトルを埋め込む。順方向動きベクトルは、1つのフィールド(例えば、上フィールド)だけに送られるが、エンコーダは、順方向動きベクトル・バッファの上下両方のフィールドの動きベクトル・スロットに同一の動きベクトルを置く。同様に、逆方向動きベクトルは、下フィールドだけに送られるが、エンコーダは、逆方向動きベクトル・バッファの上下両方のフィールドのスロットにその動きベクトルを置く。
例えば、図46に、順方向動きベクトル・バッファ4610および逆方向動きベクトル・バッファ4620内の再構成されたマクロブロック4680の上フィールド動きベクトルおよび下フィールド動きベクトルを示す。図46に示された例では、再構成されたマクロブロック4630〜4670について、エンコーダ/デコーダは、順方向動きベクトル・バッファ4610に順方向動きベクトル、逆方向動きベクトル・バッファ4620に逆方向動きベクトルを格納する。再構成されたマクロブロック4680は、予測切替を用いてフィールド・コーディングされており、その上フィールド動きベクトルは、(上フィールド動きベクトルの予測方向に依存する)順方向または逆方向のいずれかの動きベクトル・バッファの上フィールド位置および下フィールド位置に格納される。マクロブロック4680の下フィールド動きベクトルは、他方の動きベクトル・バッファの上下の位置に格納される。この例では、再構成されたマクロブロック4680が、予測モード切替を使用する。順方向動きベクトルおよび逆方向動きベクトルは、それぞれ、1つのフィールドだけについて送られるが、エンコーダは、めいめいの順方向動きベクトル・バッファおよび逆方向動きベクトル・バッファの上フィールドの動きベクトル・スロットと下フィールドの動きベクトル・スロットとに同一の動きベクトルを置く。
現在のマクロブロックが補間である場合に、エンコーダ/デコーダは、順方向動きベクトル・バッファを使用して1つの順方向動きベクトル(2フィールドMVマクロブロックの場合には複数の順方向動きベクトル)を予測し、逆方向動きベクトル・バッファを使用して1つの逆方向動きベクトル(2フィールドMVマクロブロックの場合には複数の逆方向動きベクトル)を予測し、この順方向動きベクトルおよび逆方向動きベクトル(予測誤差が算出された後にこれを加算した後に)を、それぞれ順方向動きベクトル・バッファおよび逆方向動きベクトル・バッファに格納する。
マクロブロックがインターレースBフレーム内で直接予測される場合には、エンコーダ/デコーダは、上のセクションVIIで説明した技法を使用することができる。
いくつかの実装で、1MVマクロブロック、2フィールドMVマクロブロック、およびイントラ・マクロブロックが、インターレースBフレームについて許容され(他のMVマクロブロック・タイプは許容されない)、これによって、より少数の現在/隣接モード組合せにしか対処する必要がないので、動きベクトルを予測する論理が単純になる。代替案では、4フレームMVマクロブロックおよび4フィールドMVマクロブロックなどの他のおよび/または追加のMVモードが許容される。例えば、図64、図69、および図70に示された擬似コードの一部を使用して、インターレースBフレームでそのような他の組合せに対処することができる。
C. インターレースBフィールドの動きベクトル予測
一般に、インターレースBフィールドについて、前に構成された(または導出された)順方向フィールド動きベクトルが、現在の順方向フィールド動きベクトルのプレディクタとして使用され、前に構成された(または導出された)逆方向フィールド動きベクトルが、現在の逆方向フィールド動きベクトルのプレディクタとして使用される。順方向モードまたは逆方向モードでは、現在の順方向フィールド動きベクトルまたは逆方向フィールド動きベクトルが、適当な動きベクトル・バッファに追加され、他方の(欠けている)方向(例えば、順方向モードでは逆方向、逆方向モードでは順方向)の動きベクトルは、プレディクタとしての後の使用のために導出される。
いくつかの実装で、フィールド動きベクトル予測選択は、この詳細な説明の上のセクションIII.A.2および下のセクションXIV.B.3で説明する2つの基準フィールド動きベクトル予測論理に従って実行される。例えば、図33A〜図33Fに示された擬似コードを使用して、インターレースBフィールドのマクロブロックの2フィールド順方向動きベクトル・プレディクタを算出し、順方向フィールド動きベクトルの再構成に使用するために1つの動きベクトル・プレディクタを選択する。次に、再構成された動きベクトル値を、順方向動きベクトル・バッファに置く。この擬似コードを使用して、マクロブロックの2フィールド逆方向動きベクトル・プレディクタも算出し、逆方向動きベクトル・バッファを埋める値として使用するために1つのプレディクタを選択する。インターレースBフィールドについて、欠けている方向の動きベクトル・バッファの「穴」を埋めるために、エンコーダ/デコーダは、同一極性および反対極性の動きベクトル・プレディクタのどちらかを選択する。この極性の間の選択が生じるのは、2つのプレディクタ(現在のフィールドと同一極性のプレディクタおよび現在のフィールドと反対極性のプレディクタ)が、所与の欠けている方向で生成されるからである。したがって、いくつかの実装で、エンコーダ/デコーダは、欠けている方向の動きベクトルの過半数または「優勢」な極性のプレディクタを選択する。この形で、順方向動きベクトルと逆方向動きベクトルの両方の完全なセットが、動きベクトル予測で使用するために与えられる。代替案では、まず、優勢極性が決定され、プレディクタ選択が実行され、その後、選択された動きベクトル・プレディクタだけが算出される。
異なる極性のフィールド動きベクトルのどちらかを選択することによる実際の値のバッファリングおよび穴埋めについての一実装での処理を、図47の擬似コード4700に示す。擬似コード4700には、穴埋め予測中に、実際の動きベクトルが、欠けている方向について存在しない場合、優勢極性を有する、予測された、欠けている方向の動きベクトルが、エンコーダ/デコーダによって選択されることが示されている。
いくつかの実装で、インターレースBフィールド動きベクトル予測の全体的なスキームは、次の通りである。
マクロブロックが順方向予測である場合に、エンコーダ/デコーダは、順方向動きベクトル・バッファの候補の同一のおよび/または反対極性の動きベクトル(例えば、ほとんどの場合に左、上、および右上の隣接ベクトルの3の中央値(median-of-3)予測を使用して)、またはバッファリングされた動きベクトルから導出された動きベクトルから、順方向動きベクトルを予測する。エンコーダ/デコーダは、再構成された順方向動きベクトルを順方向動きベクトル・バッファに格納し、逆方向動きベクトル・バッファ内の対応する位置の優勢逆方向動きベクトル・プレディクタ(逆方向動きベクトル・バッファの空間的近傍からの3の中央値(median-of-3)によって同様に予測される)を算出し、格納する。
マクロブロックが逆方向予測である場合に、エンコーダ/デコーダは、逆方向動きベクトル・バッファの候補の同一のおよび/または反対極性の動きベクトル(例えば、ほとんどの場合に左、上、および右上の隣接ベクトルの3の中央値(median-of-3)予測を使用して)、またはバッファリングされた動きベクトルから導出された動きベクトルから、逆方向動きベクトルを予測する。エンコーダ/デコーダは、再構成された逆方向動きベクトルを逆方向動きベクトル・バッファに格納し、順方向動きベクトル・バッファ内の対応する位置の優勢順方向動きベクトル・プレディクタ(順方向動きベクトル・バッファの空間的近傍からの3の中央値(median-of-3)によって同様に予測される)を算出し、格納する。
マクロブロックが補間である場合に、エンコーダ/デコーダは、順方向動きベクトル・バッファを使用して、順方向動きベクトル成分を予測し、逆方向動きベクトル・バッファァを使用して、逆方向動きベクトル成分を予測し、再構成された順方向動きベクトルおよび逆方向動きベクトルを(算出された予測誤差が算出された後にこれを加算した後に)、それぞれ順方向動きベクトル・バッファおよび逆方向動きベクトル・バッファに格納する。
マクロブロックが、直接予測である場合に、エンコーダ/デコーダは、現在のフィールドの直接モード動きベクトルを算出し、順方向動きベクトル成分および逆方向動きベクトル成分をそれぞれの動きベクトル・バッファに格納する。
イントラ・コーディングされたマクロブロックである隣接マクロブロックは、動きベクトル予測では無視される。
様々な特別な場合が、インターレースBフィールドの1MVマクロブロックと4MVマクロブロックの組合せに対処する。図6A〜図10は、プログレッシブPフレームの動きベクトル予測のプレディクタ・パターンを示す。これと同一のパターンが、ミックスドMVインターレースBフィールド内の1MVマクロブロックまたは4MVマクロブロックの動きベクトルの動きベクトル予測に関する候補動きベクトルと見なされるブロックまたはマクロブロックの位置を示す。フレームが1マクロブロック幅である特別な場合について、プレディクタは、必ずプレディクタA(上プレディクタ)である。様々な他のルールが、最上行4MVマクロブロックの最上行ブロック、最上行1MVマクロブロック、およびイントラ・コーディングされたプレディクタなどの他の特別な場合に対処する。
図6A〜図10に示されたプレディクタ・パターンは、順方向動きベクトル・バッファ内の位置からの候補を使用する順方向予測に使用され、逆方向動きベクトル・バッファ内の位置からの候補を使用する逆方向予測にも使用される。さらに、図6A〜図10に示されたプレディクタ・パターンは、インターレースBフィールドについて上で述べた2つの基準フィールド動きベクトル予測論理と共に使用される。
図6Aおよび図6Bに、ミックスドMVインターレースBフィールド内の1MV現在マクロブロック用の候補動きベクトル・プレディクタと見なされるブロックの位置を示す。隣接するマクロブロックは、1MVマクロブロックまたは4MVマクロブロックである場合がある。図6Aおよび6Bには、隣接マクロブロックが4MVである(すなわち、プレディクタAが、現在のマクロブロックの上のマクロブロック内のブロック2用の動きベクトルであり、プレディクタCが、現在のマクロブロックのすぐ左のマクロブロック内のブロック1用の動きベクトルである)と仮定した場合の候補動きベクトルの位置が示されている。隣接マクロブロックのいずれかが、1MVマクロブロックである場合に、図5Aおよび5Bに示された動きベクトル・プレディクタが、このマクロブロック全体の動きベクトル・プレディクタに採用される。図6Bに示されているように、このマクロブロックが行の最後のマクロブロックである場合には、プレディクタBが、他の場合の右上マクロブロック内のブロック2からではなく、左上マクロブロックのブロック3からになる。
図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に示されたスケーリング動作を使用して、別のフィールドの動きベクトル・プレディクタからあるフィールドの動きベクトル・プレディクタを導出する。値の2つの可能なセットが、現在のフィールドがインターレース・ビデオ・フレームの最初のフィールドである場合について図35の表3500に示されており、現在のフィールドがインターレース・ビデオ・フレームの2番目のフィールドである場合について図36の表3600に示されている。表3500および3600では、SCALEOPP、SCALESAME1、SCALESAME2、SCALEZONE1_X、SCALEZONE1_Y、ZONE1OFFSET_X、およびZONE1OFFSET_Yの値が、基準フレーム距離に依存する。
いくつかの実装で、インターレースBフィールドの順方向基準および逆方向基準の基準フレーム距離は、分数コーディングを使用して算出される。BFRACTION構文要素(インターレースBフィールドの直接モード・マクロブロックだけではなく、インターレースBフィールドの順方向予測モード・マクロブロックおよび逆方向予測モード・マクロブロックについてシグナリングされる)は、次の擬似コードに示されているように順方向および逆方向の基準ピクチャ距離を導出するのに使用される。
Figure 0004763607
(ここで、NINTは、最も近い整数演算子である)。
BFRACTIONの分子(numerator)および分母(denominator)は、BFRACTION構文要素からデコードされる。要素BFRACTIONは、ビットストリーム内で(例えば、インターレースBフィールドのフレーム・レベルで)送ることができる異なる分数を表すのに使用することができる。この分数は、0と1の間の離散値の限られたセットになり、Bピクチャの、そのアンカーによって形成されるインターバル内の相対的な時間的位置を示す。
インターレースBフィールドを有するフレームの第2フィールドの順方向予測および逆方向予測について、エンコーダ/デコーダは、図34Aおよび図34Bの擬似コード3400に従って、動きベクトル・スケーリングを実行する。しかし、いくつかの実装で、第1フィールドの逆方向動きベクトル予測を実行するエンコーダ/デコーダは、図48の擬似コード4800で定義された関数scaleforopposite_x、scaleforopposite_y、scaleforsame_x、およびscaleforsame_yを使用する。一実装での第1インターレース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フィールドを有するフレームは、2つの別々の(多少独立にコーディングされる)フィールドとしてエンコードされる。上フィールドは、フレームの偶数ラスタライン(走査線0から始まる)からなり、下フィールドは、フレームの奇数ラスタラインからなる。「フィールド・ピクチャ」内のフィールドは、独立にデコード可能なので、これらを事前にセットされた順序で送る必要はない。例えば、エンコーダは、まず下フィールドを送り、それに上フィールドを続けるか、その逆を行うことができる。いくつかの実装で、2つのフィールドの順序は、「top field first」(上フィールドが先)構文要素によって示され、この構文要素は、フレームの2つのフィールドをデコードする正しい時間的順序に応じて真または偽のいずれかである。
従来のエンコーダおよびデコーダは、前後のアンカー・フレーム(例えば、IフレームまたはPフレーム)あるいは前後のアンカー・フレームのフィールドを「基準」ピクチャとして使用して、現在のBピクチャの動き補償を実行した。従来のエンコーダおよびデコーダは、Bピクチャまたはその一部をすべてのピクチャの動き補償基準として使用することを禁止してもいた。しかし、本明細書に記載の技法およびツールのいくつかの実装は、これらの「ルール」の1つまたは複数を緩和する。
例えば、いくつかの実装で、第1インターレースBフィールドは、前後のアンカー・ピクチャからの第1フィールドおよび第2フィールドを参照する。第2インターレースBフィールドは、次のアンカー・ピクチャの第1フィールドおよび第2フィールドのほかに、「反対極性」フィールドとして現在のピクチャからの第1インターレースBフィールドおよび「同一極性」フィールドとして前のアンカー・フレームの同一極性フィールドを参照する。
図50Bは、インターレース・ビデオ・フレームB2の2つのインターレースBフィールドのそれぞれの基準フィールドを示す図である。図50Bに示された例では、デコードされる第1のBフィールド(ここでは上フィールド)が、順方向(時間的に過去の)アンカーP1の2つの基準フィールドと、逆方向(時間的に将来の)アンカーP3からの2つの基準フィールド、合計4つの基準フィールドを参照することを許可される。B2についてデコードされる第2のインターレースBフィールドは、同一のインターレース・ビデオ・フレームからの第1フィールド(したがって、Bピクチャの一部が基準として働くことを許可しないという慣習が破られる)および前のアンカーP1からの1つの基準フィールドならびに将来のアンカーP3からの両方のフィールドを参照することを許可される。比較のために、図50Aに、インターレース・ビデオ・フレームのインターレースPフィールドが従う慣習を示す。
これらのインターレースBフィールド参照ルールを実装する技法およびツールは、よりよい圧縮をもたらすことができる。インターレース・ビデオのフィールド・コーディングは、激しい動き、すなわち、上フィールドと下フィールドの間にかなりの動きがある場合のエンコーディングに最も効率的である。例えば、このシナリオでは、あるフレームの上(先にコーディングされる)フィールドは、同一フレームの下フィールドのピクセルに対して、より大きい時間的距離にある前のフレームからとられる上フィールドよりはるかによいプレディクタになる。これらの時間的に遠いプレディクタは、このより大きい時間的距離のゆえに、動きが激しいときにはるかに弱い予測を提供する。さらに、オクルージョンの確率は、時間的に離れたプレディクタの場合に大きくなり、これが、コーディングに負荷がかかる、より多くのイントラ・コーディングされたマクロブロックをもたらす。具体的に言うと、実験から、あるフレームの第2の時間的にインターレースされたBフィールドが同一フレームの第1の時間的にインターレースされたBフィールドを参照することを許可することによって、大きな圧縮利益を得ることができることが検証された。
XI.インターレースBフィールドでの順方向モードのビットプレーン・コーディング
上のセクションXで述べたように、いくつかの実装で、現在のフレームの第2のコーディングされるインターレースBフィールドが、現在のフレームの現在のフレームの第1のコーディングされるインターレースBフィールドを参照することができる。この「自己参照」技法は、激しい動きを有するフレームのインターレースBフィールドに効果的である。というのは、現在のフレームの時間的により近いBフィールドが、しばしば、時間的により遠いアンカー・フィールドよりよいプレディクタであるからである。インターレースBフィールドを有するフレームが、激しい動きを有し、第2の時間的にインターレースされたBフィールドが、予測基準として第1の時間的にインターレースされたBフィールドを選択する場合に、この第2インターレースBフィールドのマクロブロックに関するより効率的な予測モードは、しばしば、「順方向」になる。
インターレースBフィールドの順方向モード予測は、ビットレートを減らすのに効果的なツールなので、特に低ビットレートの状況で、シグナリング・オーバーヘッドを減らして、順方向モード予測をシグナリングすることの総合コストを減らすことに有利に働く。したがって、いくつかの実施形態で、エンコーダは、統一されたビットプレーン・コーディング技法を使用して順方向モード予測情報をエンコードする。例えば、エンコーダは、圧縮されたビットプレーンで順方向モード予測情報をエンコードし、ここで、このビットプレーンの各ビットは、1つのマクロブロックに関連つけられ、各ビットの値は、そのマクロブロックが順方向モードまたは非順方向予測モードのどちらでコーディングされているかをシグナリングする。
圧縮ビットプレーンは、フレーム・レベルで、フィールド・レベルで、または他のレベルで送ることができる。ビットプレーン・コーディング技法は、インターレースBフィールドの他の予測モードと比較して、順方向モード・バイアスを活用する。例えば、インターレースBフィールドのマクロブロックのほとんどが順方向予測を使用する場合に、エンコーダは、順方向/非順方向決定をビットプレーン・コーディングすることによって、マクロブロック当たり1ビット未満にシグナリング・オーバーヘッドを減らすことができる。
図51に、1つまたは複数のビットプレーン・コーディング・モードを有するビデオ・エンコーダでインターレースBフィールドのマクロブロックの順方向/非順方向予測モード決定情報をエンコードする技法5100を示す。図52に、1つまたは複数のビットプレーン・コーディング・モードを有するビデオ・エンコーダによってエンコードされた順方向/非順方向予測モード決定情報をデコードする対応する技法5200を示す。
図51を参照すると、エンコーダは、順方向/非順方向予測モード決定情報をコーディングするビットプレーン・コーディング・モードを選択する(5110)。コーディング・モードを選択した後に、エンコーダは、選択されたモードの順方向/非順方向予測モード決定情報をエンコードする(5120)。エンコーダは、フィールド単位でビットプレーン・コーディング・モードを選択する。代替案では、エンコーダは、ある他の単位(例えば、シーケンス・レベル)でビットプレーン・コーディング・モードを選択する。あるいは、1つのビットプレーン・コーディング・モードだけが使用される場合には、ビットプレーン・コーディング・モードの選択は実行されない。エンコーダが、順方向/非順方向予測モード決定情報のエンコードを終了したときに5130、順方向/非順方向予測モード決定情報のエンコーディングが終了する。
図52を参照すると、デコーダは、順方向/非順方向予測モード決定情報をエンコードするのにエンコーダによって使用された(エンコーダによってシグナリングされた)ビットプレーン・コーディング・モードを決定する(5210)。次に、デコーダは、選択されたモードで順方向/非順方向予測モード決定情報をデコードする(5220)。デコーダは、フィールド単位でビットプレーン・コーディング・モードを選択する。代替案では、デコーダは、ある他の単位(例えば、シーケンス・レベル)でビットプレーン・コーディング・モードを選択する。あるいは、1つのビットプレーン・コーディング・モードだけが使用可能である場合には、ビットプレーン・コーディング・モードの選択は実行されない。デコーダが、順方向/非順方向予測モード決定情報のデコーディングを終了したときに(5230)、順方向/非順方向予測モード決定情報のデコーディングが終了する。
いくつかの組み合わされた実装形態による様々なビットプレーン・コーディング・モードのシグナリングおよびデコーディングに関するさらなる詳細については、下のセクションXIVを参照されたい。ビットプレーン・コーディング全般に関するさらなる情報については、特許文献4を参照されたい)。代替案では、順方向/非順方向モード情報を表すビットを、未圧縮でおよび/または他のレベル(例えば、マクロブロック・レベル)で送ることができる。
非順方向予測が示されている場合に、エンコーダは、そのマクロブロックに非順方向予測モード(例えば、逆方向モード、直接モード、補間モード、またはイントラ・モード)を指定する。いくつかの実施形態で、エンコーダは、下の表2に示されたVLCテーブルを参照して、マクロブロック・レベルで非順方向予測モードをコーディングする。
Figure 0004763607
表2に示された例では、逆方向モードが、好ましい非順方向予測モードである。エンコーダは、1ビット信号を用いて逆方向モードを表し、2ビット信号を用いて直接モードおよび補間モードを表す。代替案では、エンコーダは、異なるコードを使用して、異なる予測モードを表し、かつ/または異なる非順方向予測モードを選択する。
いくつかの実施形態で、イントラ・モードは、特別な差分動きベクトル値によってシグナリングされ、この値は、コーディングされているその形によって、その予測モードがイントラ・モードであることを示す。したがって、この差分動きベクトル値は、マクロブロックがイントラ・コーディングされていることを推論するのに使用されるが、習慣として、エンコーダは、未定義の予測タイプを有しないように、予測タイプを逆方向にセットする。
XII. インターレースBフィールドの直接モードに関する同一位置の動きベクトルの選択
いくつかの実装で、フィールド・コーディングされたBピクチャ内のマクロブロックの直接モード動きベクトルは、特別な論理を使用して選択される。インターレースBフィールド内の現在のマクロブロックについて、次のアンカー・ピクチャの対応するフィールドの同一位置のマクロブロックが、4つの動きベクトルを使用してコーディングされている場合に、この論理は、同一位置のマクロブロックの4つまでの動きベクトルの間で、より優勢な極性(例えば、同一のまたは反対の)を選択する。現在のマクロブロックに使用する動きベクトルを選択すると、エンコーダ/デコーダは、スケーリング動作を実行して、直接モード動きベクトルを与えることができる。
いくつかの実装で、インターレースBフィールドの直接モード1MVマクロブロックについて、エンコーダ/デコーダは、同一極性を有する基準フィールド(例えば、時間的に次のPフィールド)内の同一位置のマクロブロックの1つまたは複数の動きベクトルに基づいて、直接モード・スケーリングに使用される動きベクトルを算出する。基準フィールド内の同一位置のそのマクロブロックが1MVマクロブロックである場合に、エンコーダ/デコーダは、単一の動きベクトルを使用して、インターレースBフィールド内のマクロブロック用の直接モード動きベクトルを導出する。その一方で、基準フィールド内の同一位置のそのマクロブロックが4MVマクロブロックである場合に、エンコーダ/デコーダは、その4つの動きベクトルの極性を検討し、インターレースBフィールド内のマクロブロックの直接モード動きベクトルを導出するのに使用される動きベクトルを選択する際に、優勢な極性の方を選択する。エンコーダ/デコーダは、インターレースBフィールドのデコード中に必要になったときに、基準フィールド内の4MVマクロブロックにこの選択論理を適用することができる。あるいは、エンコーダ/デコーダは、基準フィールドのデコードの後にこの選択論理を適用し、その後、後のインターレースBフィールド・デコーディングに使用される値だけをバッファリングすることができる。
例えば、基準フィールド内の同一位置の4MVマクロブロックについて、同一極性のフィールドからの(4つのうちの)動きベクトルの個数が、反対極性のフィールドからの個数に優る場合に、エンコーダ/デコーダは、同一極性の動きベクトルの個数がそれぞれ4、3、2、または1の場合に、同一極性の動きベクトルのmedian−of−4、median−of−3、2の算術平均、またはその値を使用して、直接モード・インターレースBフィールド・デコードに使用される動きベクトルを算出する。そうではなく、反対極性のフィールドからの動きベクトルが、同一極性フィールドからの動きベクトルに数で優る場合には、エンコーダ/デコーダは、類似する動作を使用して、直接モード・インターレースBフィールド・デコードに使用される反対極性フィールドの動きベクトルから代表的動きベクトルを得ることができる。同一位置のマクロブロックの4つの動きベクトルのオリジナル・セットのうちの3つ以上(極性にかかわりなく)がイントラである場合に、エンコーダ/デコーダは、単純に、同一位置の代表的動きベクトルをイントラ(すなわち、(0,0))として扱うことができる。しかし、いくつかの実装で、インターレースBフィールドのすべてのイントラMBが、1MVとしてコーディングされ、したがって、オリジナルの4つの動きベクトルのうちの3つ以上がイントラであることが、同一位置の代表的動きベクトルがイントラとして扱われることになるというケースは、実際には絶対に生じない。
図53の擬似コード5300に、インターレースBフィールド内の直接モード動きベクトルに対して、基礎として使用される動きベクトルの選択プロセスを示す。いくつかの実装で、この選択プロセスは、順方向および逆方向を指す直接モード動きベクトルを作るスケーリング動作への先駆け(pre-cursor)である。
XIII. インターレース・ビデオ・フレーム内のイントラ・コーディングされたBフィールド
インターレースBIフィールド(または「イントラBフィールド」)は、その基準ピクチャと独立にコーディングされたフィールドである。インターレースBIフィールドは、他のピクチャを予測するためのアンカーとして使用できないという意味で、他のイントラ・フィールド(例えば、インターレースIフィールド)と異なる。インターレースBIフィールドにはピクチャ間依存性がなく、ビットストリーム内でのその存在は、独立にデコード可能なセグメントまたはGOP(group of pictures)の先頭を表さない。しかし、インターレース・ビデオ・フレームの第1フィールドは、BIフィールドとしてコーディングされた場合に、インターレースBフィールドとしてコーディングできる、そのフレームの第2フィールドを予測するのに使用することができる。この革新は、フレーム全体をイントラ・フレームとしてエンコードするのでも両方のフィールドをイントラ・フィールドとしてエンコードするのでもなく、多くの場合にフレームの半分(最初にコーディングされるフィールド)だけにイントラ・コーディングを使用することによって、総合的な圧縮も改善する。いくつかの実装で、1つのフレームに、2つのBフィールド、2つのBIフィールド、または1つのBフィールドと1つのBIフィールドを含めることができる。
インターレースIフィールドではなくインターレースBIフィールドを使用する理由がある。1つは、時間的スケーラビリティを犠牲にすることを回避することである。例えば、デコーダが、デジタル・ビデオをレンダリングしており、処理需要についてゆくためにあるピクチャを即座に捨てることを必要とするときに、そのデコーダは、潜在的に捨てることができるフィールドのシーケンスを探すことができる。シーケンス内のイントラ・フィールドが、キーフィールドであることがわかった場合に、そのデコーダは、他のフィールドの基準として使用するためにそれらをデコードすることを強制され、それらを捨てることはできない。しかし、シーケンス内のイントラ・フィールドが、BIフィールドとしてコーディングされている場合には、デコーダは、後続の動き補償を妥協せずにそれらを捨てるという選択肢を有する。
インターレースBIフィールドは、BIフィールド内の動き補償関連要素(またはその不在をシグナリングする要素)を避けることができるので、インターレースBIフィールドがイントラ・コーディングおよびイントラ・デコーディングに使用される構文要素をより効率的にシグナリングするという意味で、イントラ・マクロブロックを用いるインターレースBフィールドと異なる。言い換えると、インターレースBIフィールド(通常のBフィールドではなく)を使用する理由は、ビデオ・シーケンス内のフィールド間予測が失敗する(例えば、シーン変化または複雑な動きに起因して)時点でインターレースBフィールドをコーディングするときに生じる。しばしば、そのようなフィールドのほとんどのマクロブロックが、イントラ・マクロブロックとしてコーディングされることを必要とする。このシナリオでは、しばしば、ビットレートに関して、Bフィールド全体をBIフィールドとしてコーディングすることが、フィールド内のマクロブロックごとに予測モード情報を送ることより安価である。インターレースBフィールドについてよい予測または動き補償が可能でないときには、これをBIフィールドとしてコーディングすることができる。
いくつかの実装で、エンコーダは、ピクチャ・タイプの可能な値の1つとして、ビットストリーム内でBIフィールドの生起(occurrence)をシグナリングすることができる。代替案では、BIフィールドの存在を、他の形で示すことができる。
XIV. 組み合わされた実装形態
ビットストリーム構文、セマンティクス、およびデコーダに関する詳細な組み合わされた実装形態を、主な組み合わされた実装形態からの些細な相違を有する代替の組み合わされた実装形態と併せて、これから説明する。
A.ビットストリーム構文
様々な組み合わされた実装形態で、インターレースBピクチャのデータが、複数のレイヤ(例えば、シーケンス・レイヤ、フレーム・レイヤ、フィールド・レイヤ、マクロブロック・レイヤ、ブロック・レイヤ、および/またはサブブロック・レイヤ)を有するビットストリームの形で提示される。
インターレースBフィールドおよび/またはBIフィールドを有するインターレース・ビデオ・フレームについて、フレーム・レベル・ビットストリーム要素を図54に示す。各フレームのデータは、フレーム・ヘッダと、それに続くフィールド・レイヤのデータ(フィールドごとに繰り返される「FieldPicLayer」として図示)からなる。インターレースBフィールドおよびインターレースBIフィールド用のフィールド・ヘッダを構成するビットストリーム要素を、それぞれ図55および図56に示す。インターレースBフィールドおよびインターレースBIフィールドのマクロブロック・レイヤ(イントラ・マクロブロック、1MVマクロブロック、または4MVマクロブロックのいずれか)を構成するビットストリーム要素を、それぞれ図57および図58に示す。
インターレースBフレームについて、フレーム・レベル・ビットストリーム要素を図59に示す。各フレームのデータは、フレーム・ヘッダとそれに続くマクロブロック・レイヤのデータからなる。インターレースBフレームのマクロブロック・レイヤ(イントラ・タイプまたは様々なインタ・タイプのマクロブロックのいずれか)を構成するビットストリーム要素を図60に示す。
次のセクションで、双方向予測されるインターレース・ピクチャに関するシグナリングに関するフレーム・レイヤ、フィールド・レイヤ、およびマクロブロック・レイヤ内の選択されたビットストリーム要素を説明する。選択されたビットストリーム要素を、特定のレイヤの文脈で説明するが、一部のビットストリーム要素は、複数のレイヤで使用することができる。
1. 選択されたフレーム・レイヤ要素
図54は、インターレースBフィールドおよび/またはインターレースBIフィールド(または、潜在的に他の種類のインターレース・フィールド)を収容するフレームのフレーム・レベル・ビットストリーム構文を示す図である。図59は、インターレースBフレームのフレーム・レベル・ビットストリーム構文を示す図である。特定のビットストリーム要素を下で説明する。
フレーム・コーディング・モード(FCM)(可変サイズ)
FCMは、ピクチャ・コーディング・タイプを示すのに使用される可変長コードワード[「VLC」]である。FCMは、下の表3に示されたフレーム・コーディング・モードの値をとる。
Figure 0004763607
フィールド・ピクチャ・タイプ(FPTYPE)(3ビット)
FPTYPEは、インターレースPフィールド、インターレースIフィールド、インターレースBフィールド、および/またはインターレースBIフィールドを含むフレームのフレーム・ヘッダ内に存在する3ビットの構文要素である。FPTYPEは、下の表4による、インターレース・ビデオ・フレームのフィールド・タイプの異なる組合せの値をとる。
Figure 0004763607
基準距離(REFDIST)(可変サイズ)
REFDISTは、可変サイズの構文要素である。この要素は、現在のフレームと基準フレームの間のフレーム数を示す。表5に、REFDIST値をエンコードするのに使用されるVLCを示す。
Figure 0004763607
表5の最後の行に、2を超える基準フレーム距離を表すのに使用されるコードワードが示されている。これらは、(2進)11とそれに続くN−3個の1としてコーディングされ、ここで、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による異なるフレーム・タイプの値をとる。
Figure 0004763607
PTYPEが、フレームがスキップドであることを示す場合に、そのフレームは、その基準フレームと同一であるPフレームとして扱われる。スキップド・フレームの再構成は、概念的に、基準フレームをコピーすることと同等である。スキップド・フレームは、このフレームについてそれ以上のデータが送られないことを意味する。
Bフレーム直接モードMBビット構文要素(DIRECTMB)(可変サイズ)
DIRECTMB構文要素は、直接モードでコーディングされたBピクチャ(ここでは、インターレースBフレーム)内のマクロブロックを示すのにビットプレーン・コーディングを使用する。DIRECTMB構文要素は、直接モードがrawモードでシグナリングされることもシグナリングすることができ、その場合に、直接モードは、インターレースBフレームのマクロブロックに対してマクロブロック・レベルでシグナリングされる。
拡張MV範囲フラグ(MVRANGE)(可変サイズ)
MVRANGEは、シーケンス・レイヤEXTENDED_MVビットに1がセットされている場合に存在する可変サイズの構文要素である。MVRANGE VLCは、動きベクトル範囲を表す。
拡張差分MV範囲フラグ(DMVRANGE)(可変サイズ)
DMVRANGEは、シーケンス・レベル構文要素EXTENDED_DMV=1の場合を提示する可変サイズの構文要素である。DMVRANGE VLCは、動きベクトル差分範囲を表す。
マクロブロック・モード・テーブル(MBMODETAB)(2ビットまたは3ビット)
MBMODETAB構文要素は、固定長フィールドである。インターレースPフィールドについて、MBMODETABは、マクロブロック・レイヤ内のマクロブロック・モード構文要素(MBMODE)をデコードするのに8つのハフマン・テーブルのうちのどれが使用されるかを示す3ビット値である。
動きベクトルテーブル(MVTAB)(2ビットまたは3ビット)
MVTAB構文要素は、2ビットまたは3ビットの値である。NUMREF=1のインターレースPフィールドについて、MVTABは、動きベクトル・データをデコードするのに8つのインターレース・ハフマ・ンテーブルのどれが使用されるかを示す3ビットの構文要素である。
2MVブロック・パターン・テーブル(2MVBPTAB)(2ビット)
2MVBPTAB構文要素は、2MVフィールド・マクロブロック内の2MVブロック・パターン(2MVBP)構文要素をデコードするのに4つのハフマン・テーブルのどれが使用されるかをシグナリングする2ビット値である。
4MVブロック・パターン・テーブル(4MVBPTAB)(2ビット)
4MVBPTAB構文要素は、4MVマクロブロック内の4MVブロック・パターン(4MVBP)構文要素をデコードするのに4つのハフマン・テーブルのどれが使用されるかをシグナリングする2ビット値である。
代替の組み合わされた実装形態では、ピクチャ・タイプ情報が、インターレースBフィールドを含むインターレース・ビデオ・フレームのフレーム・レベルではなく、インターレースBフィールドのフィールド・レベルの始めにシグナリングされ、基準距離が省略される。
2.選択されたフィールド・レイヤ要素
図55は、組み合わされた実装形態でのインターレースBフィールドのフィールド・レベル・ビットストリーム構文を示す図である。特定のビットストリーム要素を、下で説明する。
動きベクトル・モード(MVMODE)(可変サイズまたは1ビット)
MVMODE構文要素は、4つの動きベクトル・コーディング・モードのうちの1つまたは(いくつかのタイプのピクチャに関して可能性は殆どない)1つの強度補償モード(intensity compensation mode)をシグナリングする。複数の後続要素が、追加の動きベクトル・モード情報および/または強度補償情報を供給する。
Bフィールド順方向モードMBビット構文要素(FORWARDMB)(可変サイズ)
FORWARDMB構文要素は、ビットストリーム・コーディングを使用して、順方向モードでコーディングされたBフィールド内のマクロブロックを示す。FORWARDMB構文要素は、順方向モードがrawモードでシグナリングされることをシグナリングすることもでき、その場合に、順方向/非順方向モード決定が、マクロブロック・レベルでシグナリングされる。
図56は、組み合わされた実装形態でのインターレースBIフィールドのフィールド・レベル・ビットストリーム構文を示す図である。組み合わされた実装形態では、インターレースBIフィールドのフィールド・レベル・ビットストリーム構文が、インターレースIフィールドと同一の構文要素を使用する。
3.選択されたマクロブロック・レイヤ要素
図57は、組み合わされた実装形態でのインターレースBフィールドのマクロブロックのマクロブロック・レベル・ビットストリーム構文を示す図である。図60は、組み合わされた実装形態でのインターレースBフレームのマクロブロックのマクロブロック・レベル・ビットストリーム構文を示す図である。特定のビットストリーム要素を、下で説明する。マクロブロックのデータは、マクロブロック・ヘッダとそれに続くブロック・レイヤ・データからなる。
マクロブロック・モード(MBMODE)(可変サイズ)
MBMODE構文要素は、マクロブロック・タイプ(例えば、インターレースBフィールドでは1MV、4MV、またはイントラ)を示し、CBPフラグおよび動きベクトル・データの存在も示す。
順方向Bフィールド・コーディング・モード(FORWARDBIT)(1ビット)
FORWARDBITは、rawモードが使用されていることをフィールド・レベル構文要素FORWARDMBが示す場合に、インターレースBフィールドに存在する1ビットの構文要素である。FORWARDBIT=1の場合には、そのマクロブロックは、順方向モードを使用してコーディングされている。
Bマクロブロック動き予測タイプ(BMVTYPE)(可変サイズ)
BMVTYPEは、マクロブロックが順方向予測、逆方向予測、または補間予測のどれを使用するかを示す、インターレースBフレーム・マクロブロックおよびインターレースBフィールド・マクロブロックに存在する可変サイズの構文要素である。表7に示されているように、インターレースBフレームのマクロブロックについて、BFRACTIONの値が、BMVTYPEと共に、どのタイプが使用されるかを決定する。
Figure 0004763607
インターレース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は、そのマクロブロックの第1動きベクトルを差分式にエンコードする可変サイズの構文要素である。
Bマクロブロック動きベクトル2(BMV2)(可変サイズ)
BMV2は、補間モードが使用される場合にインターレースBフレーム・マクロブロックおよびインターレースBフィールド・マクロブロックに存在する可変サイズの構文要素である。この構文要素は、そのマクロブロックの第2動きベクトルを差分式にエンコードする。
4MVブロック・パターン(4MVBP)(4ビット)
4MVBP構文要素は、4つの輝度ブロックのうちのどれが非0動きベクトル差分を収容しているかを示し、その使用は、下で詳細に説明する。
ブロック・レベル動きベクトル・データ(BLKMVDATA)(可変サイズ)
BLKMVDATAは、ブロック用の動き情報を含む可変サイズの構文要素であり、4MVマクロブロックに存在する。
フィールド変換フラグ(FIELDTX)(1ビット)
FIELDTXは、インターレースBフレームのイントラ・コーディングされたマクロブロックに存在する1ビットの構文要素である。この構文要素は、マクロブロックがフレーム・コーディングされているかフィールド・コーディングされているか(基本的に、マクロブロックの内部編成)を示す。FIELDTX=1は、マクロブロックがフィールド・コーディングされていることを示す。そうでない場合には、マクロブロックはフレーム・コーディングされている。インター・コーディングされたマクロブロックでは、この構文要素をMBMODEから推論することができる。
直接Bフレーム・コーディング・モード(DIRECTBBIT)(1ビット)
DIRECTBBITは、rawモードが使用されていることをフレーム・レベル構文要素DIRECTMBが示す場合にインターレースBフレーム・マクロブロックに存在する1ビットの構文要素である。DIRECTBBIT=1の場合に、そのマクロブロックは、直接モードを使用してコーディングされている。
BフレームMV切替(MVSW)(1ビット)
MVSWは、MBがフィールド・モードであり、BMVTYPEが順方向または逆方向である場合にインターレースBフレーム・マクロブロックに存在する1ビットの構文要素である。MVSW=1の場合に、MVタイプおよび予測タイプが、上フィールドから下フィールドに進む際に順方向から逆方向に(または逆方向から順方向に)変化する。
2つの動きベクトル・ブロック・パターン(2MVBP)(可変サイズ)
2MVBPは、インターレースBフレーム・マクロブロックに存在する可変サイズの構文要素である。この構文要素は、マクロブロックが1つの動きベクトルを収容することをMBMODE構文要素が示し、そのマクロブロックが補間マクロブロックである場合に存在する。この場合に、2MVBPは、2つの動きベクトル(順方向動きベクトルおよび逆方向動きベクトル)のうちのどちらが存在するかを示す。
動きベクトル・データ(MVDATA)(可変サイズ)
MVDATAは、マクロブロック用の動きベクトルの差分をエンコードする可変サイズの構文要素であるが、そのデコーディングは、下で詳細に説明する。
図58は、組み合わされた実装形態でのインターレースBIフィールドのマクロブロック・レベル・ビットストリーム構文を示す図である。この組み合わされた実装形態では、インターレースBIフィールドのマクロブロック・レベル・ビットストリーム構文が、インターレースIフィールドと同一の構文要素を使用する。
B.インターレースBフィールドのデコード
次のセクションでは、組み合わされた実装形態でインターレースBフィールドをデコードするプロセスを説明する。
1.フレーム/フィールド・レイヤ・デコーディング
インターレースBフィールドは、2つのタイプ、すなわち1MVまたはミックスドMVのうちの1つとすることができる。
1MVインターレースBフィールドでは、マクロブロックの予測タイプ(BMVTYPE)に応じて、0個、1個、または2個のいずれかの動きベクトルが、予測されるブロックの変位を表すのに使用される。BMVTYPEがDIRECTと等しいときには、順方向動きベクトルおよび逆方向動きベクトルは、推論され、それ以上の動きベクトルは、明示的にシグナリングされない。BMVTYPEがINTERPOLATEDであるときには、2つの動きベクトルすなわち順方向動きベクトルおよび逆方向動きベクトルがデコードされる。順方向の場合および逆方向の場合には、1つの動きベクトルだけがデコードされる。1MVモードは、MVMODEピクチャ・レイヤ構文要素によってシグナリングされる。
ミックスドMVインターレースBフィールドでは、各マクロブロックを、1MVマクロブロックまたは4MVマクロブロックとしてエンコードすることができる。4MVマクロブロックでは、4つの輝度ブロックのそれぞれが、1つの動きベクトルを関連付けられる。さらに、4MVマクロブロックは、インターレースBフィールド内で順方向予測タイプまたは逆方向予測タイプ(BMVTYPE)だけに関連付けることができる。各マクロブロックの1MVモードまたは4MVモードは、すべてのマクロブロックのMBMODE構文要素によって示される。ミックスドMVモードは、MVMODEピクチャ・レイヤ構文要素によってシグナリングされる。
2.マクロブロック・レイヤ・デコーディング
インターレースBフィールド内のマクロブロックは、3つの可能なタイプすなわち、1MV、4MV、およびイントラのうちの1つとすることができる。さらに、マクロブロックは、4つの予測タイプ(BMVTYPE)すなわち、順方向、逆方向、直接、または補間のうちの1つとすることができる。マクロブロック・タイプは、マクロブロック・レイヤ内のMBMODE構文要素によってシグナリングされる。予測のタイプは、各マクロブロックの順方向/非順方向をシグナリングするフレーム・レベル・ピットプレーンFORWARDMBと、予測タイプが非順方向の場合のマクロブロック・レベルBMVTYPE構文要素の組合せによってシグナリングされる。
次のセクションで、1MVタイプおよび4MVと、これらをどのようにシグナリングするかを説明する。
インターレースBフィールド内の1MVマクロブロック
1MVマクロブロックは、1MVインターレースBフィールドおよびミックスドMVインターレースBフィールドに生起することができる。1MVマクロブロック内では、単一の動きベクトルが、そのマクロブロック内の6つすべてのブロックの現在のピクチャと基準ピクチャの間の変位を表す。1MVマクロブロックについて、マクロブロック・レイヤのMBMODE構文要素が、次の3つを示す。
1)マクロブロック・タイプが1MVであること
2)CBPCY構文要素が存在するかどうか
3)BMV1構文要素が存在するかどうか
BMV1構文要素が存在することをMBMODE構文要素が示す場合に、そのBMV1構文要素は、マクロブロック・レイヤ内の対応する位置に存在する。そのBMV1構文要素は、動きベクトル差分をエンコードしたものである。この動きベクトル差分を動きベクトル・プレディクタと組み合わせて、動きベクトルを再構成する。BMV1構文要素が存在しないことをMBMODE構文要素が示す場合に、動きベクトル差分が0であると仮定され、したがって、動きベクトルは、動きベクトル・プレディクタと等しい。
CBPCY構文要素が存在することをMBMODE構文要素が示す場合に、そのCBPCY構文要素は、マクロブロック・レイヤ内の対応する位置に存在する。CBPCYは、6つのブロックのうちのどれがブロック・レイヤでコーディングされているかを示す。CBPCY構文要素が存在しないことをMBMODE構文要素が示す場合に、CBPCYが0と等しいと仮定され、マクロブロック内の6つのどのブロックについてもブロックデータは存在しない。
さらに、マクロブロック・タイプが1MVであり、マクロブロックの予測タイプが補間である場合に、エンコーダは、INTERPMVP構文要素を使用して、第2動きベクトル差分BMV2が存在するか否かをシグナリングする。存在する場合には、デコーダは、BMV1に続いて直ちにBMV2をデコードする。そうでない場合には、BMV2の動きベクトル差分が0と仮定され、したがって、第2動きベクトルは、動きベクトル・プレディクタと等しい。
予測タイプが補間であるときには、BMV1が順方向動きベクトルに対応し、BMV2が逆方向動きベクトルに対応する。
インターレースBフィールド内の4MVマクロブロック
4MVマクロブロックは、ミックスドMV Bフィールド・ピクチャに生起することができるだけであり、順方向予測タイプおよび逆方向予測タイプに制限される。4MVマクロブロックでは、4つの輝度ブロックのそれぞれが、関連する動きベクトルを有する。クロマ・ブロックの変位は、この4つの輝度動きベクトルから導出される。ミックスドMVインターレースBフィールドでは、4MVマクロブロックを、順方向予測タイプおよび逆方向予測タイプだけに関連付けることができる。
4MVマクロブロックについて、マクロブロック・レイヤのMBMODE構文要素は、次の3つを示す。
1)そのマクロブロックが4MVであること
2)CBPCY構文要素が存在するかどうか
3)4MVBP構文要素が存在するかどうか
4MVBP構文要素は、4つの輝度ブロックのうちのどれが非0動きベクトル差分を収容するかを示す。4MVBP構文要素は、0と15の間の値にデコードされる。4MVBPの4つのビット位置のそれぞれについて、0の値は、動きベクトル差分(BLKMVDATA)がそのブロックについて存在しないことを示し、動きベクトル差分は、0と仮定される。1の値は、そのブロック用の動きベクトル差分(BLKMVDATA)が、対応する位置に存在することを示す。例えば、4MVBPが、1100(2進)の値にデコードされる場合に、そのビットストリームは、ブロック0および1にはBLKMVDATAを収容し、ブロック2および3にはBLKMVDATAが存在しない。
4MVBP構文要素が存在しないことをMBMODE構文要素が示す場合には、4つの輝度ブロックのすべてについて動きベクトル差分データ(BLKMVDATA)が存在すると仮定される。
MVMODE構文要素がミックスドMVまたはすべて1MVのどちらを示すかに応じて、MBMODEは、次のように情報をシグナリングする。下の表8に、すべて1MVのピクチャ内のマクロブロックに関してMBMODE要素が情報をどのようにシグナリングするかを示す。
Figure 0004763607
下の表9に、ミックスドMVピクチャ内のマクロブロックに関してMBMODE要素が情報をどのようにシグナリングするかを示す。
Figure 0004763607
8つのコーディングテーブルのうちの1つが、MBMODEをシグナリングするのに使用される。使用される特定のテーブルは、MBMODETAB構文要素を介してシグナリングされる。
次のセクションでは、予測タイプ・デコーディングおよび直接モード動きベクトルのデコーディングを説明する。
インターレースBフィールドでの予測タイプ・デコーディング(BMVTYPE)
予測タイプは、次のルールに従ってデコードされる。マクロブロックが順方向タイプであることをピクチャ・レベル・ビットプレーンFORWARDMBが示す場合には、そのマクロブロックの予測タイプに順方向をセットする。FORWARDMB要素がrawとしてコーディングされている場合には、エンコーダ/デコーダは、マクロブロック・レベルの追加ビットFORWARDBITを使用して、予測タイプが順方向であるか否かを判断する。
予測タイプが非順方向であり、MBMODE構文要素によるシグナリング(ミックスドMV Bピクチャでのみ可能)によってマクロブロックが4MVを使用している場合に、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フィールドが、順方向と逆方向の両方で2つの基準を使用するという理由で、有効である。
代替の実装で、直接モードで動きベクトルを生成してスケーリングする任意の他のプロセスを使用することができ、これには、バッファリングをまったく用いない(例えば、乱数ジェネレータを使用して0バイアス・ラプラス分布をシミュレートする)プロセスが含まれ、このプロセスは、メモリ制約のあるデバイスに有用である可能性がある。そのようなプロセスは、よいエンコーダが、直接モード動きベクトルの悪い推測を破棄し、より正確な推測をビットストリーム内に残すという理由で、まだ役に立つ。
3.動きベクトル・デコーディング・プロセス
次のセクションでは、組み合わされた実装形態での、インターレースBフィールドのブロックおよびマクロブロックに関する動きベクトル・デコーディング・プロセスを説明する。
順方向予測コンテクストおよび逆方向予測コンテクストの取り込み
順方向動きベクトルおよび順方向動きベクトルは、別々にバッファリングされ、それぞれ順方向動きベクトルおよび逆方向動きベクトルの予測に使用される。順方向コンテクストおよび逆方向コンテクストに関する別々のバッファの使用は、例えば上のセクションXに記載されている。動きベクトル・プレディクタの選択の技法は、背景のセクションIII、詳細な説明のセクションIII、および本明細書の他の部分に記載されている。
順方向動きベクトルがデコードされる際に予測される動きベクトルを逆方向バッファ(「欠けている方向の」バッファ)に埋める(または、逆方向動きベクトルがデコードされる際に順方向バッファを埋める)ときに、追加すべき2つの追加の詳細がある。通常、エンコーダ/デコーダは、予測を形成するために、動きベクトル・タイプ情報(例えば、1MVなど)ならびに前にデコードされた動きベクトルの極性の両方を使用することができる。しかし、「穴埋め」の場合に、エンコーダ/デコーダは、欠けている方向タイプの動きベクトルを実際にはデコードしなかったので、動きベクトル・タイプ情報または極性情報(例えば、同一極性または反対極性)を有しない。この組み合わされた実装形態では、エンコーダ/デコーダは、動きベクトル・タイプに1MVをセットし、プレディクタとして優勢フィールド動きベクトルを選択する。図47の擬似コード4700に、この組み合わされた実装形態での極性選択プロセスが記載されている。
イントラ・コーディングされたマクロブロックについて、「イントラ動きベクトル」が、順方向と逆方向の両方の動き予測プレーンを埋め込むのに使用される。「イントラ動きベクトル」の一貫性のある表現のいずれも、デコーダ実装によって選択することができる。例えば、動きベクトルが、2バイトshort配列として格納されている場合に、「イントラ動きベクトル」を、動きベクトル配列に埋め込む一意の大きい定数として表して、そのマクロブロックがイントラとしてコーディングされたことを示すことができる。
Bフィールド内の順方向動きベクトル予測
順方向基準フレーム距離を、BFRACTION構文要素およびREFDIST構文要素から算出する。順方向動きベクトル予測は、上のセクションXで説明したように進行する。
Bフィールド内の逆方向動きベクトル予測
逆方向基準フレーム距離を、BFRACTION構文要素およびREFDIST構文要素から算出する。逆方向動きベクトル予測は、上のセクションXで説明したように進行する。
動きベクトル差分のデコード
BMV1構文要素、BMV2構文要素、またはBLKMVDATA構文要素に、マクロブロックまたはマクロブロック内のブロックの動き情報がエンコードされている。1MVマクロブロックは、BMV1構文要素およびBMV2構文要素を有し、4MVマクロブロックは、0個と4個の間のBLKMVDATA構文要素を有する場合がある。
予測タイプ(BMVTYPE)が補間であるときには、BMV1が順方向動きベクトル残差に対応し、BMV2が逆方向動きベクトル残差に対応する。
次のセクションでは、Bピクチャに適用される2つの基準の場合に動きベクトル差分をどのように算出するかを説明する。
2つの基準フィールド・ピクチャでの動きベクトル差分
2つの基準フィールド・ピクチャは、フィールド・ピクチャを使用するインターレース・フレームのコーディングに生起する。このシーケンスの各フレームが、2つのフィールドに分離され、各フィールドが、本質的にプログレッシブ・コード・パスであるものを使用してコーディングされる。
2つの基準フィールドを有するフィールド・ピクチャ(例えば、インターレースBフィールドを有するピクチャ)では、マクロブロックの各MVDATA構文要素または各BLKMVDATA構文要素が、次の3つを一緒にエンコードする。1)水平動きベクトル差分成分と、2)垂直動きベクトル差分成分と、3)優勢プレディクタまたは非優勢プレディクタのどちらが使用されるかすなわち、2つのフィールドのうちのどちらが動きベクトルによって参照されるか。
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シンボルによって定義される動きベクトル範囲に依存する。
Figure 0004763607
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は、優勢または非優勢のどちらの動きベクトル・プレディクタが使用されるかを示す2値フラグである(0=優勢プレディクタが使用され、1=非優勢プレディクタが使用される)。offset_table配列およびsize_table配列は、図61Aに示されているように定義される。
図61Bの擬似コード6110に、代替の組み合わされた実装形態で動きベクトル差分が2つの基準フィールドに対してどのようにコーディングされるかを示す。擬似コード6110は、異なる形で動きベクトル差分をデコードする。例えば、擬似コード6110では、拡張された動きベクトル差分範囲の処理が省略されている。
動きベクトル・プレディクタ
動きベクトルは、前のセクションで算出された動きベクトル差分を動きベクトル・プレディクタに加算することによって算出される。次のセクションでは、この組み合わされた実装形態で、1MVおよびミックスドMVのインターレースBフィールド内のマクロブロックについて動きベクトル・プレディクタをどのように算出するかを説明する。
1MVインターレースBフィールドの動きベクトル・プレディクタ
図5Aおよび5Bは、1MVマクロブロックの候補動きベクトル・プレディクタと見なされるマクロブロックの位置を示す図である。候補プレディクタは、マクロブロックが行の最後のマクロブロックである場合を除いて、左、上、および右上のマクロブロックからとられる。行の最後のマクロブロックである場合には、プレディクタBが、右上ではなく左上のマクロブロックからとられる。フレームが1マクロブロック幅である特別な場合について、プレディクタは、必ずプレディクタA(上プレディクタ)である。マクロブロックが最上行にある(AプレディクタおよびBプレディクタがないか、プレディクタがまったくない)特別な場合は、上で図33Aから33Fを参照し、下で図62A〜62Fを参照して対処される。
ミックスドMVインターレースBフィールドの動きベクトル・プレディクタ
図6A〜10に、ミックスドMVインターレースBフィールド内の1MVマクロブロックまたは4MVマクロブロックの動きベクトルの候補動きベクトルと見なされるブロックまたはマクロブロックの位置を示す。
インターレースBフィールドの優勢MVプレディクタおよび非優勢MVプレディクタ
インター・コーディングされたマクロブロックごとに、2つの動きベクトル・プレディクタが導出される。一方は優勢フィールドから、他方は非優勢フィールドから導出される。優勢フィールドは、近傍内に実際の値の動きベクトル・プレディクタ候補の過半数を収容するフィールドと見なされる。同数の場合には、反対のフィールドの動きベクトル・プレディクタが、(時間的により近いので)優勢プレディクタと見なされる。イントラ・コーディングされたマクロブロックは、優勢/非優勢プレディクタの算出では考慮されない。すべての候補プレディクタ・マクロブロックがイントラ・コーディングされている場合には、優勢および非優勢の動きベクトル・プレディクタに0がセットされ、優勢プレディクタが、反対のフィールドからとられる。
インターレースBフィールドでの動きベクトル・プレディクタの算出
基準ごとに1つの、2つの動きベクトル・プレディクタが、ブロックまたはマクロブロックの動きベクトル用に算出される。図62A〜62Fの擬似コード6200に、組み合わされた実装形態で2つの基準の場合に動きベクトル・プレディクタがどのように算出されるかを示す(図33A〜図33Fの擬似コード3300に、もう1つの実装で2つの基準の場合に動きベクトル・プレディクタがどのように算出されるかが記載されている)。2つの基準ピクチャでは、現在のフィールドが、2つの最も最近のフィールドを参照することができる。一方のプレディクタは、同一極性の基準フィールドに関し、他方は、反対極性の基準フィールドに関する。
インターレース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フィールド・ピクチャは、2つの基準ピクチャを使用するので、動きベクトル差分をデコードした後に導出されたpredictor_flagを、動きベクトル予測から導出されたdominantpredictorの値と組み合わせて、どのフィールドを基準として使用するかを決定する。図63の擬似コード6300に、基準フィールドをどのように決定するかを示す。
1MVマクロブロックには、そのマクロブロックの輝度を構成する4つのブロックに対して単一の動きベクトルがある。マクロブロック・レイヤにMVデータが存在しないことをMBMODE構文要素が示す場合には、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フレームでは、各マクロブロックを、フレーム・モードで1つもしくは4つの動きベクトルを使用して、またはフィールド・モードで2つもしくは4つの動きベクトルを使用して、動き補償することができる。インター・コーディングされたマクロブロックには、イントラ・ブロックがまったく含まれない。さらに、動き補償後の残差を、フレーム変換モードまたはフィールド変換モードでコーディングすることができる。具体的に言うと、残差の輝度成分は、フィールド変換モードでコーディングされる場合にフィールドに従って再配置され、フレーム変換モードでは未変更のままになると同時に、クロマ成分も同一のままになる。マクロブロックを、イントラとしてコーディングすることもできる。
動き補償を、4つ(フィールド/フレーム共に)の動きベクトルを含まないように制限することができ、これは、4MVSWITCHを介してシグナリングされる。動き補償のタイプおよび残差コーディングは、共に、MBMODEおよびSKIPMBを介してマクロブロックごとに示される。MBMODEは、4MVSWITCHに従ってテーブルの異なるセットを使用する。
インターレースPフレームのマクロブロックは、5つのタイプすなわち、1MV、2フィールドMV、4フレームMV、4フィールドMV、およびイントラに分類される。最初の4つのタイプのマクロブロックは、インター・コーディングされ、最後のタイプは、マクロブロックがイントラ・コーディングされることを示す。マクロブロック・タイプは、スキップビットと併せて、マクロブロック・レイヤのMBMODE構文要素によってシグナリングされる。MBMODEは、マクロブロックの異なるタイプについて、マクロブロックに関する様々な情報と併せてマクロブロック・タイプを一緒にエンコードする。
スキップド・マクロブロックのシグナリング
SKIPMBフィールドは、マクロブロックのスキップ状態を示す。SKIPMBフィールドが1である場合には、現在のマクロブロックが、スキップされた(スキップド)と言い、SKIPMBフィールドの後に送られる他の情報はない。スキップ状態は、現在のマクロブロックが、0の差分動きベクトルを有する1MVであり(すなわち、そのマクロブロックは、その1MV動きプレディクタを使用して動き補償される)、コーディングされたブロックがない(CPB=0)ことを暗示する。
その一方で、SKIPMBフィールドが1でない場合には、MBMODEフィールドをデコードして、マクロブロックのタイプと、次のセクションで説明する情報などの現在のマクロブロックに関する他の情報を示す。
マクロブロック・モードのシグナリング
MBMODEによって示される15個の可能なイベントがある。MBMODEは、一緒に、マクロブロックのタイプ(1MV、4フレームMV、2フィールドMV、4フィールドMV、またはイントラ)、インター・コーディングされたマクロブロックの変換のタイプ(すなわち、フィールド、フレーム、あるいはコーディングされたブロックなし)、および1MVマクロブロックの場合には差分動きベクトルがあるかどうかを指定する。
<MVP>が、非0の1MV差分動きベクトルがあるか否かをシグナリングする2値イベントを表すものとする。<Field/Frame transform>が、マクロブロックの残差がフレーム変換コーディングされるか、フィールド変換コーディングされるか、0個のコーディングされたブロックを有する(すなわち、CBP=0)か、をシグナリングする3値(ternary)イベントを表すものとする。MBMODEは、次のイベントのセットを一緒にシグナリングする。
MBMODE={
<1MV,MVP,Field/Frame transform>、
<2 Field MV,Field/Frame transform>、
<4 Frame MV,Field/Frame transform>、
<4 Field MV,Field/Frame transform>、
<INTRA>}
ここで、スキップ状態によってシグナリングされる<1MV,MVP=0,CBP=0>であるイベントを除かれる。
インター・コーディングされたマクロブロックについて、CBPCY構文要素は、コーディングされたブロックがないことをMBMODEのField/Frame Transformイベントが示すときに、デコードされない。その一方で、MBMODEのField/Frame transformイベントがフィールド変換またはフレーム変換を示す場合には、CBPCYがデコードされる。デコードされたイベント<field/frame Transform>は、フラグFIELDTXをセットするのに使用される。このイベントが、マクロブロックがフィールド変換コーディングされることを示す場合には、FIELDTXに1がセットされる。このイベントが、マクロブロックがフレーム変換コーディングされることを示す場合には、FIELDTXに0がセットされる。このイベントが0にコーディングされたブロックを示す場合には、FIELDTXには、動きベクトルと同一のタイプがセットされるすなわち、FIELDTXには、FIELDMVの場合に1、FRAME MVの場合に0がセットされる。
非1MVインター・コーディングされたマクロブロックについて、0差分動きベクトルイベントを示す追加のフィールドが送られる。2フィールドMVマクロブロックの場合に、2つの動きベクトルのどちらに非0差分動きベクトルが含まれるかを示す2MVBPフィールドを送る。同様に、4つの動きベクトルのいずれに非0差分動きベクトルが含まれるかを示す4MVBPフィールドを送る。
イントラ・コーディングされたマクロブロックについて、Field/Frame transformおよび0にコーディングされたブロックは、別々のフィールドでコーディングされる。
2.インターレースPフレームの動きベクトル・デコーディング
インターレースPフレームの動きベクトル・プレディクタ
現在のマクロブロックの動きベクトル・プレディクタを算出するプロセスは、2つのステップからなる。第1に、現在のマクロブロック用の3つの候補動きベクトルを、その隣接マクロブロックから収集する。第2に、現在のマクロブロックの動きベクトル・プレディクタを、候補動きベクトルのセットから算出する。図40A〜図40Bに、候補動きベクトルがそこから収集される隣接マクロブロックを示す。候補動きベクトルの収集の順序は、重要である。この組み合わされた実装形態では、収集の順序が、必ず、Aで始まり、Bに進み、Cで終わる。対応するブロックがフレーム境界の外である場合、または対応するブロックが異なるスライスの一部である場合に、プレディクタ候補が存在しないと考えられることに留意されたい。したがって、動きベクトル・プレディクタは、スライス境界にまたがっては実行されない。
次のセクションで、異なるタイプのマクロブロックについて候補動きベクトルがどのように収集されるか、および動きベクトル・プレディクタがどのように算出されるかを説明する。
1MV候補動きベクトル
この組み合わされた実装形態では、図64の擬似コード6400を使用して、その動きベクトルに対して3つまでの候補動きベクトルを集める。
4フレームMV候補動きベクトル
4フレームMVマクロブロックについて、現在のマクロブロックの4つのフレーム・ブロック動きベクトルのそれぞれについて、隣接ブロックからの候補動きベクトルを収集する。この組み合わされた実装形態では、図65の擬似コード6500を使用して、左上フレーム・ブロック動きベクトルに対して3つまでの候補動きベクトルを収集する。図66の擬似コード6600を使用して、右上フレーム・ブロック動きベクトルに対して3つまでの候補動きベクトルを収集する。図67の擬似コード6700を使用して、左下フレーム・ブロック動きベクトルに対して3つまでの候補動きベクトルを収集する。図68の擬似コード6800を使用して、右下フレーム・ブロック動きベクトルに対して3つまでの候補動きベクトルを収集する。
2フィールドMV候補動きベクトルの導出
2フィールドMVマクロブロックについて、現在のマクロブロックの2つのフィールド動きベクトルのそれぞれについて、隣接ブロックからの候補動きベクトルを収集する。図69の擬似コード6900を使用して、上フィールド動きベクトルに対して3つまでの候補動きベクトルを収集する。図70の擬似コード7000を使用して、下フィールド動きベクトルに対して3つまでの候補動きベクトルを収集する。
4フィールドMV候補動きベクトルの導出
4フィールドMVマクロブロックについて、現在のマクロブロックの4つのフィールド・ブロックのそれぞれについて、隣接ブロックからの候補動きベクトルを収集する。図71の擬似コード7100を使用して、左上フィールド・ブロック動きベクトルに対して3つまでの候補動きベクトルを収集する。図72の擬似コード7200を使用して、右上フィールド・ブロック動きベクトルに対して3つまでの候補動きベクトルを収集する。図73の擬似コード7300を使用して、左下フィールド・ブロック動きベクトルに対して3つまでの候補動きベクトルを収集する。図74の擬似コード7400を使用して、右下フィールド・ブロック動きベクトルに対して3つまでの候補動きベクトルを収集する。
フィールド動きベクトルの平均をとる
2つのフィールド動きベクトル(MVX,MVY)および(MVX,MVY)を与えられて、候補動きベクトル(MVX,MVY)を形成するのに使用される平均演算は、次の通りである。
MVX=(MVX+MVX+1)>>1;
MVY=(MVY+MVY+1)>>1;
候補動きベクトルからのフレームMVプレディクタの算出
このセクションでは、候補動きベクトルのセットを与えられて、フレーム動きベクトルについて動きベクトル・プレディクタをどのように算出するかを説明する。この組み合わされた実装形態では、この動作は、1MVのプレディクタまたは4フレームMVマクロブロックの4つのフレーム・ブロック動きベクトルのそれぞれのプレディクタの算出について同一である。
図75の擬似コード7500に、フレーム動きベクトルについて動きベクトルプレディクタ(PMV,PMV)をどのように算出するかを示す。擬似コード7500で、TotalValidMVは、候補動きベクトルのセットに含まれる動きベクトルの総数を表し(TotalValidMV=0、1、2、または3)、ValidMV配列は、候補動きベクトルのセットに含まれる動きベクトルを表す。
候補動きベクトルからのフィールドMVプレディクタの算出
このセクションでは、候補動きベクトルのセットを与えられて、フィールド動きベクトルについて動きベクトル・プレディクタをどのように算出するかを説明する。この動作は、2フィールドMVマクロブロックの2つのフィールド動きベクトルのそれぞれのプレディクタ、または4フィールドMVマクロブロックの4つのフィールド・ブロック動きベクトルのそれぞれのプレディクタ、の算出について同一である。
まず、候補動きベクトルを、2つのセットに分離するが、一方のセットには、現在のフィールドと同一のフィールドを指す候補動きベクトルだけが含まれ、他方のセットには、反対のフィールドを指す候補動きベクトルが含まれる。候補動きベクトルが、1/4ピクセル単位で表されると仮定すると、エンコーダまたはデコーダは、候補動きベクトルが同一のフィールドを指すかどうかを、そのy成分に対する次のチェックによってチェックすることができる。
Figure 0004763607
図76の擬似コード7600に、フィールド動きベクトルについて動きベクトル・プレディクタ(PMV,PMV)をどのように算出するかを示す。擬似コード7600では、SameFieldMVおよびOppFieldMVが、候補動きベクトルの2つのセットを表し、NumSameFieldMVおよびNumOppFieldMVが、各セットに属する候補動きベクトルの個数を表す。各セットの候補動きベクトルの順序は、存在する場合に候補Aで始まり、存在する場合に候補Bが続き、その後、存在する場合に候補Cが続く。例えば、SameFieldMV候補動きベクトルのセットに候補Bおよび候補Cだけが含まれる場合に、SameFieldMV[0]は候補Bである。
動きベクトル差分のデコーディング
MVDATA構文要素に、マクロブロックの動きベクトル差分情報が含まれる。各マクロブロックでシグナリングされる動き補償のタイプおよび動きベクトル・ブロック・パターンに応じて、マクロブロックごとに4つまでのMVDATA構文要素がある場合がある。具体的には、次の通りである。
・ 1MVマクロブロックについて、MBMODEのMVPフィールドに応じて、0個または1個のいずれかのMVDATA構文要素がある場合がある。
・ 2フィールドMVマクロブロックについて、2MVBPに応じて、0個、1個、または2個のいずれかのMVDATA構文要素がある場合がある。
・ 4フレーム/フィールドMVマクロブロックについて、4MVBPに応じて、0個、1個、2個、3個、または4個のいずれかのMVDATA構文要素がある場合がある。
この組み合わされた実装形態では、動きベクトル差分は、インターレースPフィールドの1つの基準フィールド動きベクトル差分と同一の形でデコードされる(図77Aの擬似コード7700に、1基準フィールドについて動きベクトル差分がどのようにデコードされるかを示す。図77Bの擬似コード7710に、代替の組み合わされた実装形態で、1基準フィールドについて動きベクトル差分がどのようにデコードされるかを示す。擬似コード7710は、異なる形で動きベクトル差分をデコードする。例えば、擬似コード7710では、拡張された動きベクトル差分範囲の処理が省略されている)。
動きベクトルの再構成
動きベクトル差分dmvを与えられて、輝度動きベクトルが、上のセクションXV.B.3で説明したように、その差分をプレディクタに加算することによって再構成される。ルマ・フレーム動きベクトルまたはルマ・フィールド動きベクトルを与えられて、対応するクロマ・フレーム動きベクトルまたはクロマ・フィールド動きベクトルを導出して、Cb/Crブロックの一部または全体を補償する。図78の擬似コード7800に、インターレースPフレームのクロマ動きベクトルCMVがルマ動きベクトルLMVからどのように導出されるかを示す。
D.インターレースBフレームのデコーディング
このセクションでは、前のセクションで述べた概念を参照して、組み合わされた実装形態でインターレースBフレームをデコードするプロセスを説明する。
1.インターレースBフレームのマクロブロック・レイヤ・デコーディング
マクロブロック・レベルで、インターレースBフレーム構文は、上で説明したインターレースPフレーム構文に似ている。インターレースBフレームのマクロブロックは、3タイプに分類される。1MV、2フィールドMV、およびイントラである。4フレームMVモードおよび4フィールドMVモードは、この組み合わされた実装形態では、インターレースBフレームについて許容されない。この3つのモードは、インターレースPフレームと同様に、MBMODE構文要素を用いて合同でコーディングされる。また、各マクロブロックは、(DIRECTMB構文要素およびBMVTYPE構文要素を使用して)順方向、逆方向、直接、または補間として予測される。1MVマクロブロックは、順方向または逆方向のいずれかである場合に、単一の動きベクトルを使用する。マクロブロックが、1MVであるが直接または補間である場合には、そのマクロブロックは2つの動きベクトルを使用する。マクロブロックが、2フィールドMVのタイプであり、順方向予測または逆方向予測のいずれかである場合に、そのマクロブロックは、2つの動きベクトルを使用する。マクロブロックが、2フィールドMVのタイプであり、直接または補間である場合に、そのマクロブロックは、4つの動きベクトルを使用する。
次のセクションでは、インターレースBフレームの異なるインター・コーディングされたマクロブロック・タイプの特性を説明する。
インターレースBフレームの1MVマクロブロック
インターレースBフレームの1MVマクロブロックでは、輝度ブロックの変位は、予測タイプが順方向または逆方向のときには単一の動きベクトルによって、予測タイプが直接または補間のときには2つの動きベクトルによって表される。対応するクロマ動きベクトルが、それぞれの場合に導出される。補間予測および直接予測の場合に、順方向基準ピクチャおよび逆方向基準ピクチャからの動き補償されたピクセルの平均をとって、最終的な予測を形成する。
インターレースBフレームの2フィールドMVマクロブロック
インターレースBフレームの2フィールドMVマクロブロックでは、輝度ブロックの各フィールドの変位は、図37に示されているように、異なる動きベクトルによって記述される。さらに、上のセクションVIIで述べたように、予測タイプを、上フィールドから下フィールドに移る際に順方向から逆方向にまたはその逆に切り替えることができ、したがって、上フィールドを一方の基準ピクチャから動き補償し、下フィールドを他方の基準ピクチャから動き補償することができる。
インターレースBフレームでの2MVBP、4MVBPの解釈および動きベクトルの順序
1MVマクロブロックでは、エンコーダが、補間モードで2MVBP構文要素を使用して、2つの動きベクトルのうちのどちらが存在するかを示す。ビット1は、順方向動きベクトルに対応し、ビット0は、逆方向動きベクトルに対応する。
2フィールドMVマクロブロックでは、エンコーダは、順方向モードおよび逆方向モードで2MVBP構文要素を使用して、2つのフィールドの動きベクトルのうちのどちらが存在するかを示す。ビット1は、上フィールド動きベクトルに対応し、ビット0は、下フィールド動きベクトルに対応する。エンコーダは、MVSW構文要素が、上フィールドの順方向予測から下フィールドの逆方向予測へまたはその逆の切替えに使用されているときに、同一の上/下シグナリングを使用する。エンコーダは、補間モードで4MVBP構文要素を使用して、4つの動きベクトルのうちのどれが存在するかを示す。ビット3は、上フィールド順方向動きベクトルに対応し、ビット2は、上フィールド逆方向動きベクトルに対応し、ビット1は、下フィールド順方向動きベクトルに対応し、ビット0は、下フィールド逆方向動きベクトルに対応する。
2MVBPおよび4MVBPの、「1」をセットされたビットは、対応する動きベクトル差分が存在することを示し、「0」をセットされたビットは、対応する動きベクトルが予測された動きベクトルと等しいこと、すなわち、対応する動きベクトル差分が存在しないことを示す。実際にデコードされる動きベクトルは、2MVBPまたは4MVBPのビットと同一の順序で送られる。例えば、補間モードを使用する2フィールドMVマクロブロックで、デコーダが最初に受け取る動きベクトルは、上フィールド順方向動きベクトルであり、最後に受け取られる(すなわち4番目の)動きベクトルは、下フィールド逆方向動きベクトルである。
スキップド・マクロブロックのシグナリング
スキップド・マクロブロックは、Pフレームと同一の形でシグナリングされる。しかし、インターレースBフレームのスキップド・マクロブロックは、1MVフレーム・タイプに制限されるすなわち、フィールド・タイプは許可されない。動きベクトルは、0の差分動きベクトルを用いてコーディングされ(すなわち、このマクロブロックは、その1MV動きプレディクタを使用して動き補償される)、コーディングされたブロックはない(CBP=0)。マクロブロックがスキップドである場合に、エンコーダは、そのマクロブロックに対してBMVTYPE情報だけを送り、その結果、動きベクトルを、順方向、逆方向、直接、または補間として正しく予測できるようになる。
マクロブロック・モードのシグナリング
マクロブロック・モードのシグナリングは、上のセクションXV.Cで説明した、インターレースPフレームと同一の形で実行される。
予測タイプのデコーディング(BMVTYPEおよびMVSW)
予測タイプは、インターレースBフレームについて、次のルールに従ってデコードされる。マクロブロックが直接タイプであることをピクチャ・レベル・ビットプレーンDIRECTMBが示す場合には、そのマクロブロックの予測タイプに直接をセットする。rawモードで直接/非直接決定がコーディングされている場合に、エンコーダは、マクロブロック・レベルで追加ビットDIRECTBBITを使用して、予測タイプが直接であるか否かを示す。
予測タイプが非直接である場合に、デコーダは、BMVTYPE構文要素をデコードする。マクロブロック・モードが「2MVフィールド・コーディング」であり、BMVTYPEタイプが順方向または逆方向のいずれかである場合に、デコーダは、MVSWビットもデコードして、そのマクロブロックの上フィールドから下フィールドに移る際に予測タイプが変化する(すなわち、順方向から逆方向にまたはその逆にフリップされる)か否かを判断する。
直接モード動きベクトルのデコーディング
直接モード動きベクトルをデコードするために、デコーダは、まず、前にデコードされたアンカー・フレームからの動きベクトルをバッファリングする。具体的に言うと、前にデコードされた将来のPフレームについて、デコーダは、その将来のPフレームからデコードされたルマ動きベクトルの可能な最大の個数の半分(すなわち、(2*NumberOfMBs)個の動きベクトル)をバッファリングする。アンカー・フレームからバッファリングされるこれらの動きベクトルを選択する方法は、上のセクションXIIIで説明した。
上述した方法で得た動きベクトルを使用して、動きベクトルをプルバック(pull-back)することなく、デコーダは、図19の擬似コード1900に示されたScale_Direct_MVのスケーリング論理を適用して、順方向および逆方向を指す動きベクトルを得る。
この組み合わされた実装形態には、順方向予測マクロブロックおよび逆方向予測マクロブロックなどの、直接モード予測を使用していないマクロブロックに関する非直接モード動きベクトルについての算出は存在しない。その代わりに、非直接マクロブロックの動きベクトルは、順方向動きベクトル・バッファまたは逆方向動きベクトル・バッファに基づいて予測される。
2.インターレースBフレームの動きベクトルのデコーディング
インターレースBフレームの動きベクトル・プレディクタ
インターレースPフレームと同様に、インターレースBフレームの現在のマクロブロックの動きベクトル・プレディクタを算出するプロセスには、現在のマクロブロック用の候補動きベクトルをそれに隣接するマクロブロックから収集することと、候補動きベクトルのセットから現在のマクロブロック用の動きベクトル・プレディクタを算出すること、が含まれる。図40A〜図40Bに、候補動きベクトルがそこから収集される隣接マクロブロックを示す。この組み合わされた実装形態では、インターレースBフレームの動きベクトル・プレディクタが、インターレースPフレームについて上のセクションXIV.C.で説明したルールに従って候補のセットから選択される。
別々の予測コンテクストが、順方向モード動きベクトルおよび逆方向モード動きベクトルに使用される。デコーダは、順方向予測コンテクストを使用して順方向動きベクトルを予測し、逆方向予測コンテクストを使用して逆方向動きベクトルを予測する。
インターレースBフレームでの順方向予測コンテクストおよび逆方向予測コンテクストの取り込み
デコーダは、順方向動きベクトルおよび逆方向動きベクトルを別々にバッファリングし、これらを使用して、それぞれ順方向動きベクトルおよび逆方向動きベクトルを予測する。補間マクロブロックについて、デコーダは、順方向予測バッファを使用して順方向動きベクトル(最初にデコードされるMVDATA要素)を予測し、逆方向予測バッファを使用して逆方向動きベクトル(2番目にデコードされるMVDATA要素)を予測する。マクロブロックが直接または補間である場合に、デコーダは、順方向MVコンポーネントを順方向バッファに、逆方向MVコンポーネントを逆方向バッファにバッファリングする。それぞれの場合(例えば、1MVマクロブロック、2フィールドMVマクロブロックなど)で候補のセットの間から動きベクトル・プレディクタを選択する実際の予測論理は、上のセクションXIV.Cで説明した。
順方向動きベクトル・バッファおよび逆方向動きベクトル・バッファに取り込み、これらのバッファ内の動きベクトルから動きベクトルを予測するスキームは、上のセクションIX.Cで説明した。
インターレースBフレームでの動きベクトル差分のデコーディング
インターレースBフレームの動きベクトル差分は、上のセクションXIV.C.2で述べた、図77Aおよび77Bの擬似コード7700および7710に従ってデコードされる。
インターレースBフレームでの動きベクトルの再構成
動きベクトルは、インターレースBフレームで再構成されるは、上のセクションXIV.B.3およびXIV.C.2で述べた図78の擬似コード7800に従ってデコードされる。
E.ビットプレーン・コーディング
次のマクロブロック固有2値情報、(1)インターレースBフィールドのマクロブロックの順方向/非順方向決定(すなわち、FORWARDMBフラグ)、および(2)インターレースBフレームのマクロブロックの直接/非直接決定(すなわち、DIRECTMBフラグ)などは、マクロブロックごとに1つの2値シンボルにエンコードすることができる。例えば、インターレースBフィールドのマクロブロックが(逆方向、直接、または補間などの別のモードに対して)順方向モードで動き補償されているか否かを、1ビットを用いてシグナリングすることができる。これらの場合に、あるフィールドまたはフレーム内のすべてのマクロブロックのステイタスを、ビットプレーンとしてコーディングし、フィールド・ヘッダまたはフレーム・ヘッダ内で送ることができる。このルールに関する1つの例外が、ビットプレーン・コーディング・モードにRaw Modeがセットされている場合であり、この場合には、各マクロブロックの状況が、シンボルごとに1つのビットとしてコーディングされ、マクロブロック・レベルの他のマクロブロック・レベル構文要素と共に送られる。
フィールド/フレーム・レベル・ビットプレーン・コーディングは、2次元2値配列をエンコードするのに使用される。各配列のサイズは、rowMB×colMBであり、このrowMBおよびcolMBは、それぞれ、該当するフィールドまたはフレーム内のマクロブロックの行(row)数および列(column)数である。ビットストリーム内では、各配列が、連続するビットのセットとしてコーディングされる。7つのモードのうちの1つが、各配列をエンコードするのに使用される。7つのモードは、次の通りである。
1.rawモード − 情報が、シンボルごとに1ビットとしてコーディングされ、MBレベル構文の一部として送られる
2.normal−2モード − 2つのシンボルが一緒にコーディングされる
3.differential−2モード − 2つの残差シンボルを後続するビットプレーンの一緒の差分コーディング
4.normal−6モード − 6つのシンボルが一緒にコーディングされる
5.differential−6モード − 6つの残差シンボルを後続するビットプレーンと一緒に差分コーディング
6.rowskipモード − セット・ビットがない行(row)をシグナリングするための1ビットスキップ
7.columnskipモード − セット・ビットがない列(column)をシグナリングするための1ビットスキップ
フィールド・レベルまたはフレーム・レベルのビットプレーンに関する構文要素は、INVERT、IMODE、およびDATABITSというシーケンスである。
反転フラグ(INVERT)
INVERT構文要素は、1ビット値であり、セットされている場合に、ビットプレーンが1ビット以上のセット・ビットを有することを示す。INVERTおよびそのモードに応じて、デコーダは、オリジナルを再作成するために、解釈されたビットプレーンを反転しなければならない。rawモードが使用されているときには、このビットの値を無視しなければならないことに留意されたい。INVERT値がビットプレーンのデコードでどのように使用されるかの説明を、下で提供する。
コーディング・モード(IMODE)
IMODE構文要素は、ビットプレーンのエンコードに使用されるコーディング・モードを示す可変長の値である。表11に、IMODE構文要素のエンコードに使用されるコードテーブルを示す。IMODE値がビットプレーンのデコードでどのように使用されるかの説明を、下で提供する。
Figure 0004763607
ビットプレーン・コーディング・ビット(DATABITS)
DATABITS構文要素は、ビットプレーンのシンボルのストリームをエンコードする、可変サイズの構文要素である。ビットプレーンをエンコードするのに使用される方法は、IMODEの値によって決定される。7つのコーディング・モードを、次のセクションで説明する。
Rawモード
このモードでは、ビットプレーンが、マクロブロックのラスタスキャン順でスキャンされた、シンボルごとに1つのビットとしてエンコードされ、マクロブロック・レイヤの一部として送られる。代替案では、この情報が、フィールド・レベルまたはフレーム・レベルでrawモードでコーディングされ、DATABITSは、長さがrowMB×colMBビットである。
Normal−2モード
rowMB×colMBが奇数の場合に、最初のシンボルはrawでエンコードされる。後続シンボルは、自然なスキャン順で、対でエンコードされる。表12の2進VLCテーブルが、シンボル対をエンコードするのに使用される。
Figure 0004763607
Diff−2モード
上で説明したビットプレーンを作るのに、Normal−2方法が使用され、次に、そのビットプレーンに、下で説明するDiff−1演算を適用する。
Normal−6モード
Norm−6モードおよびDiff−6モードでは、ビットプレーンが、6ピクセルのグループでエンコードされる。これらのピクセルは、2×3または3×2のいずれかのタイルにグループ化される。ビットプレーンは、ルールのセットを使用して最大限にタイリングされ、残りのピクセルは、row−skipモードおよびcolumn−skipモードの変形形態を使用してエンコードされる。2×3「垂直」タイルは、rowMBが3の倍数であり、colMBが3の倍数でない場合に限って使用される。そうでない場合には、3×2「水平」タイルが使用される。図79Aに、2×3「垂直」タイルの単純化された例を示す。図79Bおよび79Cに、3×2「水平」タイルの単純化された例を示し、ここで、細長い暗い長方形は、1ピクセル幅であり、row−skipコーディングおよびcolumn−skipコーディングを使用してエンコードされる。図79Cに示された、ピクチャの上端および左端に直線のタイルを有する平面タイルについて、タイルのコーディング順序は、次のパターンに従う。6要素のタイルが最初にエンコードされ、column−skipエンコードされた直線タイルおよびrow−skipエンコードされた直線タイルがそれに続く。配列サイズが、2×3または3×2の倍数である場合には、後者の直線タイルが存在せず、ビットプレーンは、完全にタイリングされる。
6要素の長方形タイルは、不完全ハフマン・コードすなわち、エンコーディングにすべての終了ノードを使用しないハフマン・コードを使用してエンコードされる。Nが、タイルのセット・ビット数すなわち、0≦N≦6であるものとする。N<3について、VLCを使用してタイルをエンコードする。N=3について、固定長エスケープに5ビット固定長コードが続き、N>3について、固定長エスケープにタイルの補数のコードが続く。
長方形タイルに、6ビットの情報を収容する。kが、タイルに関連するコードであるものとするが、k=bであり、bは、タイル内の自然なスキャン順でのi番目のビットの2進値である。したがって、0≦k<64である。VLCとエスケープ・コード+固定長コードの組合せが、kをシグナリングするのに使用される。
Diff−6モード
上で説明したビットプレーンを作るのにNormal−6方法が使用され、次に、そのビットプレーンに、下で説明するDiff−1演算を適用する。
Rowskipモード
rowskipコーディング・モードでは、すべて0の行が、1ビットのオーバーヘッドでスキップされる。構文は、次の通りである。行ごとに、単一のROWSKIPビットが、その行がスキップされるかどうかを示し、行がスキップされる場合には、次の行のROWSKIPビットが次にあり、そうでない(行がスキップされない)場合には、ROWBITSビット(行内のマクロブロックごとに1ビット)が次にある。したがって、行全体が0の場合に、1つの0ビットが、ROWSKIPシンボルとして送られ、ROWBITSがスキップされる。行にセットされたビットがある場合に、ROWSKIPに1をセットし、行全体をrawで送る(ROWBITS)。行は、フィールドまたはフレームの最上部から最下部へとスキャンされる。
Columnskipモード
Columnskipは、rowskipの入れ替え(transpose)である。列は、フィールドまたはフレームの右から左へとスキャンされる。
Diff−1::逆差分デコーディング
差分モードのいずれか(Diff−2またはDiff−6)が使用される場合に、「差分ビット」のビットプレーンが、まず、対応するノーマル・モード(それぞれNorm−2またはNorm−6)を使用してデコードされる。差分ビットを使用して、オリジナル・ビットプレーンを再生成する。再生成プロセスは、2進アルファベットに対する2D DPCMである。位置(i,j)のビットを再生成するために、プレディクタb(i,j)が、(位置(i,j)のビットb(i,j)から)次のように生成される。
Figure 0004763607
差分コーディング・モードについて、INVERTに基づくビット単位の反転プロセスは実行されない。しかし、INVERTフラグは、異なる能力で使用されて、上で示したプレディクタの導出についてシンボルAの値を示す。具体的に言うと、INVERTが0と等しい場合にAは0と等しく、INVERTが1と等しい場合にAは1と等しい。ビットプレーンの実際の値は、プレディクタとデコードされた差分ビット値の排他的論理和をとることによって得られる。上の式では、b(i,j)が、最終的なデコードの後(すなわち、Norm−2/Norm−6を行い、それに続いて差分とプレディクタとの排他的論理和をとった後)の第i,j位置のビットである。
様々な実施形態を参照して本発明の原理を説明し、図示したので、そのような原理から外れずに、配置および詳細において様々な実施形態を変更できることを理解されたい。本明細書で説明したプログラム、プロセス、または方法が、そうでないと示されていない限り、コンピューティング環境の特定のタイプに関連せず、これに制限されないことを理解されたい。様々なタイプの汎用のまたは特殊化されたコンピューティング環境は、本明細書に記載の教示に関して使用することができ、本明細書に記載の教示による動作を実行することができる。ソフトウェアで示された実施形態の要素を、ハードウェアで実装することができ、逆も可能である。
本発明の原理を適用できる多数の可能な実施形態に鑑みて、本発明人は、添付請求項およびその同等物の範囲および趣旨に含めることができるすべての実施形態を本発明として主張する。
従来技術によるビデオ・エンコーダでの動き推定を示す図である。 従来技術によるビデオ・エンコーダでの8×8ブロックの予測残差のブロック・ベース圧縮を示す図である。 従来技術によるビデオ・エンコーダでの8×8ブロックの予測残差のブロック・ベース圧縮解除を示す図である。 従来技術によるインターレースフレームを示す図である。 従来技術によるプログレッシブPフレーム内の1MVマクロブロック用の候補動きベクトル・プレディクタのマクロブロックの位置を示す図である。 従来技術によるプログレッシブPフレーム内の1MVマクロブロック用の候補動きベクトル・プレディクタのマクロブロックの位置を示す図である。 従来技術によるミックスド1MV/4MVプログレッシブPフレーム内の1MVマクロブロック用の候補動きベクトル・プレディクタのブロックの位置を示す図である。 従来技術によるミックスド1MV/4MVプログレッシブPフレーム内の1MVマクロブロック用の候補動きベクトル・プレディクタのブロックの位置を示す図である。 従来技術によるミックスド1MV/4MVプログレッシブPフレーム内の4MVマクロブロック内の様々な位置のブロック用の候補動きベクトル・プレディクタのブロックの位置を示す図である。 従来技術によるミックスド1MV/4MVプログレッシブPフレーム内の4MVマクロブロック内の様々な位置のブロック用の候補動きベクトル・プレディクタのブロックの位置を示す図である。 従来技術によるミックスド1MV/4MVプログレッシブPフレーム内の4MVマクロブロック内の様々な位置のブロック用の候補動きベクトル・プレディクタのブロックの位置を示す図である。 従来技術によるミックスド1MV/4MVプログレッシブPフレーム内の4MVマクロブロック内の様々な位置のブロック用の候補動きベクトル・プレディクタのブロックの位置を示す図である。 従来技術によるミックスド1MV/4MVプログレッシブPフレーム内の4MVマクロブロック内の様々な位置のブロック用の候補動きベクトル・プレディクタのブロックの位置を示す図である。 従来技術によるミックスド1MV/4MVプログレッシブPフレーム内の4MVマクロブロック内の様々な位置のブロック用の候補動きベクトル・プレディクタのブロックの位置を示す図である。 従来技術によるインターレースPフレーム内の現在のフレーム・コーディングされたマクロブロック用の候補動きベクトル・プレディクタを示す図である。 従来技術によるインターレースPフレーム内の現在のフィールド・コーディングされたマクロブロック用の候補動きベクトル・プレディクタを示す図である。 従来技術によるインターレースPフレーム内の現在のフィールド・コーディングされたマクロブロック用の候補動きベクトル・プレディクタを示す図である。 従来技術による3の中央値算出(median-of-3 calculations)を実行する擬似コードを示すコード図である。 従来技術による4の中央値算出(median-of-4 calculations)を実行する擬似コードを示すコード図である。 従来技術による過去および将来の基準フレームと共にBフレームを示す図である。 従来技術による分数コーディングを用いる直接モード予測を示す図である。 従来技術によるビットストリーム要素BFRACTIONのVLCテーブルを示す図である。 従来技術による直接モード予測での同一位置のマクロブロック用の動きベクトルをスケーリングするためのスケーリング係数を見つける擬似コードを示すコード表である。 従来技術による、スケーリング係数に従って同一位置のマクロブロック内の動きベクトルのx要素およびy要素をスケーリングする擬似コードを示すコード表である。 複数の説明される実施形態を実装できる適切なコンピューティング環境を示すブロック図である。 複数の説明される実施形態を実装できる一般化されたビデオエンコーダ・システムを示すブロック図である。 複数の説明される実施形態を実装できる一般化されたビデオデコーダ・システムを示すブロック図である。 複数の説明される実施形態で使用されるマクロブロック・フォーマットを示す図である。 上フィールドおよび下フィールドの交番する走査線を示すインターレース・ビデオ・フレームの一部を示す図である。 フレームとしてのエンコーディング/デコーディングのために編成されたインターレース・ビデオ・フレームを示す図である。 フィールドとしてのエンコーディング/デコーディングのために編成されたインターレース・ビデオ・フレームを示す図である。 2つの基準フィールドを有するインターレースPフィールドを示す図である。 2つの基準フィールドを有するインターレースPフィールドを示す図である。 最も最近の許容可能な基準フィールドを使用するインターレースPフィールドを示す図である。 最も最近の許容可能な基準フィールドを使用するインターレースPフィールドを示す図である。 2番目に最近の許容可能な基準フィールドを使用するインターレースPフィールドを示す図である。 2番目に最近の許容可能な基準フィールドを使用するインターレースPフィールドを示す図である。 現在のフィールド極性および基準フィールド極性の異なる組合せに関する、動きベクトルの垂直成分と対応する空間位置の垂直成分との間の関係を示す図である。 現在マクロブロックの3つの候補動きベクトル・プレディクタの2セットを示す図である。 2つの基準フィールド、インターレースPフィールドまたはインターレースBフィールド内の動きベクトル・プレディクタを算出する擬似コードを示すコード表である。 2つの基準フィールド、インターレースPフィールドまたはインターレースBフィールド内の動きベクトル・プレディクタを算出する擬似コードを示すコード表である。 2つの基準フィールド、インターレースPフィールドまたはインターレースBフィールド内の動きベクトル・プレディクタを算出する擬似コードを示すコード表である。 2つの基準フィールド、インターレースPフィールドまたはインターレースBフィールド内の動きベクトル・プレディクタを算出する擬似コードを示すコード表である。 2つの基準フィールド、インターレースPフィールドまたはインターレースBフィールド内の動きベクトル・プレディクタを算出する擬似コードを示すコード表である。 2つの基準フィールド、インターレースPフィールドまたはインターレースBフィールド内の動きベクトル・プレディクタを算出する擬似コードを示すコード表である。 別のフィールドからプレディクタを導出するためにあるフィールドからのプレディクタをスケーリングする擬似コードを示すコード表である。 別のフィールドからプレディクタを導出するためにあるフィールドからのプレディクタをスケーリングする擬似コードを示すコード表である。 異なる基準フレーム距離に関連付けられたスケーリング動作値を示す表である。 異なる基準フレーム距離に関連付けられたスケーリング動作値を示す表である。 インターレースPフレームの2フィールドMVマクロブロック内の輝度ブロック用の動きベクトルおよびクロミナンス・ブロック用の導出された動きベクトルを示す図である。 インターレースPフレームの4フレームMVマクロブロック内の、4つの輝度ブロック用のそれぞれの異なる動きベクトルおよび4つのクロミナンス・サブブロック用のそれぞれの導出された動きベクトルを示す図である。 インターレースPフレームにおける4フィールドMVマクロブロック内の輝度ブロック用の動きベクトルおよびクロミナンス・ブロック用の導出された動きベクトルを示す図である。 インターレースPフレームの現在のマクロブロックの候補プレディクタを示す図である。 インターレースPフレームの現在のマクロブロックの候補プレディクタを示す図である。 異なる予測モードを使用してインターレースBフレーム内のフィールド・コーディングされたマクロブロック内の個々のフィールド用の動きベクトルを予測する技法を示す流れ図である。 インターレースBフレームのマクロブロック用の直接モード動きベクトルを算出する技法を示す流れ図である。 インターレースBフレームのマクロブロック用の直接モード動きベクトルの算出に使用される、以前にデコードされた時間的に後続のアンカー・フレームの同一位置のマクロブロックのブロック用のバッファリングされた動きベクトルを示す図である。 順方向動きベクトル・バッファおよび/または逆方向動きベクトル・バッファを使用してインターレースBピクチャ内の現在のマクロブロック用の動きベクトルを予測する技法を示す流れ図である。 マクロブロック用の動きベクトルを予測するための順方向動きベクトル・バッファおよび逆方向動きベクトル・バッファ内の動きベクトルを示す図である。 順方向動きベクトル・バッファおよび逆方向動きベクトル・バッファ内の再構成されたマクロブロックの上フィールド動きベクトルおよび下フィールド動きベクトルを示す図である。 インターレースBフィールド動きベクトル予測での実際の値のバッファリングおよび穴埋めの極性選択プロセスを説明する擬似コードを示すコード表である。 逆方向予測されるインターレースBフィールドのもう1つのフィールドからプレディクタを導出するためにあるフィールドからのプレディクタをスケーリングする擬似コードを示すコード表である。 逆方向予測されるインターレースBフィールドのもう1つのフィールドからプレディクタを導出するためにあるフィールドからのプレディクタをスケーリングする擬似コードを示すコード表である。 第1のインターレースBフィールドの異なる基準フレーム距離に関連するスケーリング動作値を示す表である。 インターレースBフィールドの基準フィールドを示す図である。 インターレースBフィールドの基準フィールドを示す図である。 1つまたは複数のビットプレーン・コーディング・モードを有するビデオ・エンコーダでインターレースBフィールドのマクロブロックの順方向/非順方向予測モード決定情報をエンコードする技法を示す流れ図である。 1つまたは複数のビットプレーン・コーディング・モードを有するビデオ・エンコーダによってエンコードされた、インターレースBフィールドのマクロブロックの順方向/非順方向予測モード決定情報をデコードする技法を示す流れ図である。 インターレースBフィールド内の直接モード動きベクトルの基礎として使用される動きベクトルの選択プロセスを説明する擬似コードを示すコード表である。 組み合わされた実装形態でのインターレースBフィールドまたはインターレースBIフィールドのフレーム・レイヤ・ビットストリーム構文を示す図である。 組み合わされた実装形態でのインターレースBフィールドのフィールド・レイヤ・ビットストリーム構文を示す図である。 組み合わされた実装形態でのインターレースBIフィールドのフィールド・レイヤ・ビットストリーム構文を示す図である。 組み合わされた実装形態でのインターレースBフィールドのマクロブロックのマクロブロック・レイヤ・ビットストリーム構文を示す図である。 組み合わされた実装形態でのインターレースBIフィールドのマクロブロックのマクロブロック・レイヤ・ビットストリーム構文を示す図である。 組み合わされた実装形態でのインターレースBフレームのフレーム・レイヤ・ビットストリーム構文を示す図である。 組み合わされた実装形態でのインターレースBフレームのマクロブロックのマクロブロック・レイヤ・ビットストリーム構文を示す図である。 組み合わされた実装形態で動きベクトル差分および優勢/非優勢プレディクタ情報をデコードする擬似コードを示すコード表である。 組み合わされた実装形態で動きベクトル差分および優勢/非優勢プレディクタ情報をデコードする擬似コードを示すコード表である。 組み合わされた実装形態で2つの基準インターレースPフィールド内の動きベクトル・プレディクタを算出する擬似コードを示すコード表である。 組み合わされた実装形態で2つの基準インターレースPフィールド内の動きベクトル・プレディクタを算出する擬似コードを示すコード表である。 組み合わされた実装形態で2つの基準インターレースPフィールド内の動きベクトル・プレディクタを算出する擬似コードを示すコード表である。 組み合わされた実装形態で2つの基準インターレースPフィールド内の動きベクトル・プレディクタを算出する擬似コードを示すコード表である。 組み合わされた実装形態で2つの基準インターレースPフィールド内の動きベクトル・プレディクタを算出する擬似コードを示すコード表である。 組み合わされた実装形態で2つの基準インターレースPフィールド内の動きベクトル・プレディクタを算出する擬似コードを示すコード表である。 組み合わされた実装形態でインターレースBフィールドの基準フィールドを決定する擬似コードを示すコード表である。 組み合わされた実装形態でインターレースPフレームの1MVマクロブロック用の候補動きベクトルを集める擬似コードを示すコード・表である。 組み合わされた実装形態でインターレースPフレームの4フレームMVマクロブロック用の候補動きベクトルを集める擬似コードを示すコード表である。 組み合わされた実装形態でインターレースPフレームの4フレームMVマクロブロック用の候補動きベクトルを集める擬似コードを示すコード表である。 組み合わされた実装形態でインターレースPフレームの4フレームMVマクロブロック用の候補動きベクトルを集める擬似コードを示すコード表である。 組み合わされた実装形態でインターレースPフレームの4フレームMVマクロブロック用の候補動きベクトルを集める擬似コードを示すコード表である。 組み合わされた実装形態でインターレースPフレームの2フィールドMVマクロブロック用の候補動きベクトルを集める擬似コードを示すコード表である。 組み合わされた実装形態でインターレースPフレームの2フィールドMVマクロブロック用の候補動きベクトルを集める擬似コードを示すコード表である。 組み合わされた実装形態でインターレースPフレームの4フィールドMVマクロブロック用の候補動きベクトルを集める擬似コードを示すコード表である。 組み合わされた実装形態でインターレースPフレームの4フィールドMVマクロブロック用の候補動きベクトルを集める擬似コードを示すコード表である。 組み合わされた実装形態でインターレースPフレームの4フィールドMVマクロブロック用の候補動きベクトルを集める擬似コードを示すコード表である。 組み合わされた実装形態でインターレースPフレームの4フィールドMVマクロブロック用の候補動きベクトルを集める擬似コードを示すコード表である。 組み合わされた実装形態でインターレースPフレームのフレーム動きベクトルの動きベクトル・プレディクタを算出する擬似コードを示すコード表である。 組み合わされた実装形態でインターレースPフレームのフィールド動きベクトルの動きベクトル・プレディクタを算出する擬似コードを示すコード表である。 組み合わされた実装形態でインターレースPフレームおよびインターレースBフレームの動きベクトル差分をデコードする擬似コードを示すコード表である。 組み合わされた実装形態でインターレースPフレームおよびインターレースBフレームの動きベクトル差分をデコードする擬似コードを示すコード表である。 組み合わされた実装形態でインターレースPフレームのクロマ動きベクトルを導出する擬似コードを示すコード表である。 インターレースBフィールドのマクロブロックの順方向/非順方向予測モード決定情報のNorm−6ビットプレーン・コーディング・モードおよびDiff−6ビットプレーン・コーディング・モードのタイルを示す図である。 インターレースBフィールドのマクロブロックの順方向/非順方向予測モード決定情報のNorm−6ビットプレーン・コーディング・モードおよびDiff−6ビットプレーン・コーディング・モードのタイルを示す図である。 インターレースBフィールドのマクロブロックの順方向/非順方向予測モード決定情報のNorm−6ビットプレーン・コーディング・モードおよびDiff−6ビットプレーン・コーディング・モードのタイルを示す図である。

Claims (25)

  1. エンコードされたビデオをデコードする、ビデオ・デコーダにより実行される方法であって、
    前記ビデオ・デコーダがインターレース双方向予測ピクチャをデコードするステップであって、前記デコードするステップは、前記インターレース双方向予測ピクチャの、第1の予測方向での第1の動きベクトルを有する現在のマクロブロックに対して、
    前記第1の動きベクトル用の複数の動きベクトル・プレディクタ候補の第1のセットを選択するステップであって、前記複数の動きベクトル・プレディクタ候補の第1のセットは、前記第1の予測方向用の第1の動きベクトル・バッファから選択されるステップと
    複数の動きベクトル・プレディクタ候補の前記第1のセットのうちの1つまたは複数に少なくとも部分的に基づいて前記第1の動きベクトル用の第1の動きベクトル・プレディクタを算出するステップであって、前記第1の動きベクトル・プレディクタは、前記第1の動きベクトルの予測された値であるステップと、
    前記第1の動きベクトルを、前記第1の動きベクトル・バッファにおける前記現在のマクロブロックの位置に格納するステップと、
    前記第1の予測方向とは逆の第2の予測方向用の第2の動きベクトル・バッファからの複数の動きベクトル・プレディクタ候補の第2のセットのうちの1つまたは複数に少なくとも部分的に基づいて第2の動きベクトル・プレディクタを算出するステップと、
    前記第2の動きベクトル・バッファにおける前記現在のマクロブロックに対応する位置に前記第2の動きベクトル・プレディクタを格納するステップであって、前記第2の動きベクトル・プレディクタは、前記第2の予測方向の、埋められる第2の動きベクトルの予測された値であるステップとを含むステップと
    を備え、
    前記現在のマクロブロックに対してデコードするステップは、前記第1の予測方向における動き補償を使用するが、前記第1の予測方向とは逆の前記第2の予測方向における動き補償を使用せず、
    前記デコードするステップは、前記インターレース双方向予測ピクチャの1つまたは複数の後続のマクロブロックに対する動きベクトル予測において、前記第1の動きベクトル・バッファからの前記第1の動きベクトルと、前記第2の動きベクトル・バッファからの前記第2の動きベクトル・プレディクタとを使用するステップをさらに含むことを特徴とする方法。
  2. 前記第1の動きベクトル・プレディクタおよび動きベクトル差分情報に少なくとも部分的に基づいて前記第1の動きベクトルを再構成するステップであって、前記再構成された第1の動きベクトルは、前記第1の動きベクトルとして、前記第1の動きベクトル・バッファに格納されるステップをさらに備えることを特徴とする請求項1に記載の方法。
  3. 前記第1の動きベクトルに関して動きベクトル差分は存在せず、前記第1の動きベクトル・プレディクタは、前記第1の動きベクトルとして、前記第1の動きベクトル・バッファに格納されることを特徴とする請求項2に記載の方法。
  4. 前記第1の動きベクトル・プレディクタの前記算出は、複数の動きベクトル・プレディクタ候補の前記第1のセット内の前記複数の動きベクトル・プレディクタ候補の中央値(median)を算出することを備えることを特徴とする請求項1に記載の方法。
  5. 前記第1の予測方向は順方向であり、前記第1の動きベクトル・バッファは順方向動きベクトル・バッファであることを特徴とする請求項1に記載の方法。
  6. 前記第1の予測方向は逆方向であり、前記第1の動きベクトル・バッファは逆方向動きベクトル・バッファであることを特徴とする請求項1に記載の方法。
  7. 前記インターレース双方向予測ピクチャはインターレースBフィールドであり、前記第1の動きベクトルは前記現在のマクロブロック全体の順方向予測または逆方向予測の動きベクトルであることを特徴とする請求項1に記載の方法。
  8. 前記インターレース双方向予測ピクチャはインターレースBフィールドであり、前記第1の動きベクトルは前記現在のマクロブロック内の単一ブロックの順方向予測または逆方向予測の動きベクトルであることを特徴とする請求項1に記載の方法。
  9. 前記インターレース双方向予測ピクチャはインターレースBフレームであり、前記第1の動きベクトルは前記現在のマクロブロック全体の順方向予測または逆方向予測の動きベクトルであることを特徴とする請求項1に記載の方法。
  10. 前記インターレース双方向予測ピクチャはインターレースBフレームであり、前記第1の動きベクトルは前記現在のマクロブロック内の1フィールドの順方向予測または逆方向予測の動きベクトルであることを特徴とする請求項1に記載の方法。
  11. エンコードされたビデオをデコードする、ビデオ・デコーダにより実行される方法であって、
    前記ビデオ・デコーダがインターレース双方向予測ピクチャをデコードするステップであって、前記デコードするステップは、現在のマクロブロックに対して、第1の予測方向における動き補償を使用するが、前記第1の予測方向とは逆の前記第2の予測方向における動き補償を使用せず、
    前記インターレース双方向予測ピクチャの前記現在のマクロブロックに関する前記第1の予測方向の第1の動きベクトル用の1つまたは複数の動きベクトル・プレディクタ候補の第の1セットを、前記第1の予測方向用の第1の動きベクトル・バッファから動きベクトル選択するステップと
    1つまたは複数の動きベクトル・プレディクタ候補の前記第1のセットのうちの1つまたは複数に少なくとも部分的に基づいて前記第1の動きベクトルの第1の動きベクトル・プレディクタを算出するステップであって、前記第1の動きベクトル・プレディクタは、前記第1の動きベクトルの予測された値であるステップと
    前記第1の動きベクトル・プレディクタに少なくとも部分的に基づいて前記第1の動きベクトルを再構成するステップと
    前記再構成された第1の動きベクトルを前記第1の動きベクトル・バッファに追加するステップと
    前記インターレース双方向予測ピクチャの前記現在のマクロブロックに関する1つまたは複数の動きベクトル・プレディクタ候補の第2のセットを、前記第2の予測方向用の第2の動きベクトル・バッファから選択するステップと
    1つまたは複数の動きベクトル・プレディクタ候補の前記第2のセットのうちの1つまたは複数に少なくとも部分的に基づいて前記現在のマクロブロック用の第2の動きベクトル・プレディクタを算出するステップであって、前記第2の動きベクトル・プレディクタは、前記第2の予測方向の、埋められる第2の動きベクトルの予測された値であるステップと
    前記第2の動きベクトル・プレディクタを、前記第2の動きベクトルを埋めるものとして、前記第2の動きベクトル・バッファに追加するステップとを含むステップ
    を備え
    前記デコードするステップは、前記インターレース双方向予測ピクチャの1つまたは複数の後続のマクロブロックに対する動きベクトル予測において、前記第1の動きベクトル・バッファからの前記再構成された第1の動きベクトルと、前記第2の動きベクトル・バッファからの前記第2の動きベクトル・プレディクタとを使用するステップをさらに含むことを特徴とする方法。
  12. 前記第1の動きベクトルの前記再構成は、さらに、動きベクトル差分情報に基づくことを特徴とする請求項11に記載の方法。
  13. 前記動きベクトル差分情報は、前記第1の動きベクトルに関して動きベクトル差分は存在しないことを示すことを特徴とする請求項12に記載の方法。
  14. 前記第1の予測方向は順方向であり、前記第1の動きベクトル・バッファは順方向動きベクトル・バッファであり、前記第2の予測方向は逆方向であり、前記第2の動きベクトル・バッファは逆方向動きベクトル・バッファであることを特徴とする請求項11に記載の方法。
  15. 前記マクロブロックは予測モードを有し、前記予測モードは順方向であることを特徴とする請求項14に記載の方法。
  16. 前記第1の予測方向は、逆方向であり、前記第1の動きベクトル・バッファは、逆方向動きベクトル・バッファであり、前記第2の予測方向は、順方向であり、前記第2の動きベクトル・バッファは、順方向動きベクトル・バッファであることを特徴とする請求項11に記載の方法。
  17. 前記マクロブロックは予測モードを有し、前記予測モードは逆方向であることを特徴とする請求項16に記載の方法。
  18. 前記インターレース双方向予測ピクチャは、インターレースBフレームであることを特徴とする請求項11に記載の方法。
  19. 前記インターレース双方向予測ピクチャは、インターレースBフィールドであることを特徴とする請求項11に記載の方法。
  20. 前記第1の動きベクトルは、前記マクロブロック全体に関する動きベクトルであることを特徴とする請求項11に記載の方法。
  21. 前記第1の動きベクトル・プレディクタの前記算出は、前記第1のセット内の複数の動きベクトル・プレディクタ候補の中央値(median)を算出することを備え、前記第2の動きベクトル・プレディクタの前記算出は、前記第2のセット内の複数の動きベクトル・プレディクタ候補の中央値(median)を算出することを備えることを特徴とする請求項11に記載の方法。
  22. ビデオデコーディングシステムであって、
    プロセッサと、
    第1の予測方向の動きベクトルを格納する第1の動きベクトル・バッファと、
    前記第1の予測方向とは逆の第2の予測方向の動きベクトルを格納する第2の動きベクトル・バッファと、
    前記ビデオデコーディングシステムに、ビデオをデコードする方法を実行させる、コンピュータで実行可能な命令を格納するストレージであって、前記デコードする方法は、
    インターレース双方向予測ピクチャの現在のマクロブロックについて、前記第1の予測方向の第1の動きベクトル用の複数の動きベクトル・プレディクタ候補の第1のセットを、前記第1の予測方向用の前記第1の動きベクトル・バッファから選択するステップと
    前記複数の動きベクトル・プレディクタ候補のうちの1つまたは複数に少なくとも部分的に基づいて前記第1の動きベクトル用の第1の動きベクトル・プレディクタを算出するステップであって、前記第1の動きベクトル・プレディクタは、前記第1の動きベクトルの予測された値であるステップと、
    前記第1の動きベクトルを、前記第1の動きベクトル・バッファにおける前記現在のマクロブロックの位置に格納するステップと、
    前記第2の動きベクトル・バッファからの複数の動きベクトル・プレディクタ候補の第2のセットのうちの1つまたは複数に少なくとも部分的に基づいて第2の動きベクトル・プレディクタを算出するステップと、
    前記第2の動きベクトル・バッファにおける前記現在のマクロブロックに対応する位置において、前記第2の動きベクトル・プレディクタを埋めるステップであって、前記第2の動きベクトル・プレディクタは、前記第2の予測方向の、埋められる第2の動きベクトルの予測された値であるステップと、
    前記インターレース双方向予測ピクチャの後続のマクロブロックに対する動きベクトル予測において、前記第1の動きベクトル・バッファからの前記第1の動きベクトルと、前記第2の動きベクトル・バッファからの前記第2の動きベクトル・プレディクタとを使用するステップとを含むストレージと
    を備え
    前記デコードする方法は、現在のマクロブロックに対して、前記第1の予測方向における動き補償を使用するが、前記第1の予測方向とは逆の前記第2の予測方向における動き補償を使用しないことを特徴とするビデオデコーディングシステム
  23. 前記第1の動きベクトル・プレディクタの前記算出は、前記複数の動きベクトル・プレディクタ候補の中央値(median)を算出することを備えることを特徴とする請求項22に記載のビデオデコーディングシステム
  24. 前記第1の予測方向は順方向であり、前記第1の動きベクトル・バッファは順方向動きベクトル・バッファであることを特徴とする請求項22に記載のビデオデコーディングシステム
  25. 前記第1の予測方向は逆方向であり、前記第1の動きベクトル・バッファは逆方向動きベクトル・バッファであることを特徴とする請求項22に記載のビデオデコーディングシステム
JP2006526220A 2003-09-07 2004-09-03 インターレース・ビデオの進歩した双方向予測コーディング Active JP4763607B2 (ja)

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
JP2011053027A Division JP5036886B2 (ja) 2003-09-07 2011-03-10 インターレース・ビデオの進歩した双方向予測コーディング
JP2011053026A Division JP4928002B2 (ja) 2003-09-07 2011-03-10 インターレース・ビデオの進歩した双方向予測コーディング
JP2011053025A Division JP5006457B2 (ja) 2003-09-07 2011-03-10 インターレース・ビデオの進歩した双方向予測コーディング
JP2011053024A Division JP4928001B2 (ja) 2003-09-07 2011-03-10 インターレース・ビデオの進歩した双方向予測コーディング
JP2011053023A Division JP4916581B2 (ja) 2003-09-07 2011-03-10 インターレース・ビデオの進歩した双方向予測コーディング

Publications (2)

Publication Number Publication Date
JP2007532036A JP2007532036A (ja) 2007-11-08
JP4763607B2 true JP4763607B2 (ja) 2011-08-31

Family

ID=34228798

Family Applications (6)

Application Number Title Priority Date Filing Date
JP2006526220A Active JP4763607B2 (ja) 2003-09-07 2004-09-03 インターレース・ビデオの進歩した双方向予測コーディング
JP2011053025A Active JP5006457B2 (ja) 2003-09-07 2011-03-10 インターレース・ビデオの進歩した双方向予測コーディング
JP2011053026A Active JP4928002B2 (ja) 2003-09-07 2011-03-10 インターレース・ビデオの進歩した双方向予測コーディング
JP2011053023A Active JP4916581B2 (ja) 2003-09-07 2011-03-10 インターレース・ビデオの進歩した双方向予測コーディング
JP2011053027A Active JP5036886B2 (ja) 2003-09-07 2011-03-10 インターレース・ビデオの進歩した双方向予測コーディング
JP2011053024A Active JP4928001B2 (ja) 2003-09-07 2011-03-10 インターレース・ビデオの進歩した双方向予測コーディング

Family Applications After (5)

Application Number Title Priority Date Filing Date
JP2011053025A Active JP5006457B2 (ja) 2003-09-07 2011-03-10 インターレース・ビデオの進歩した双方向予測コーディング
JP2011053026A Active JP4928002B2 (ja) 2003-09-07 2011-03-10 インターレース・ビデオの進歩した双方向予測コーディング
JP2011053023A Active JP4916581B2 (ja) 2003-09-07 2011-03-10 インターレース・ビデオの進歩した双方向予測コーディング
JP2011053027A Active JP5036886B2 (ja) 2003-09-07 2011-03-10 インターレース・ビデオの進歩した双方向予測コーディング
JP2011053024A Active JP4928001B2 (ja) 2003-09-07 2011-03-10 インターレース・ビデオの進歩した双方向予測コーディング

Country Status (9)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011139525A (ja) * 2003-09-07 2011-07-14 Microsoft Corp インターレース・ビデオの進歩した双方向予測コーディング

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
US7499495B2 (en) * 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7599438B2 (en) * 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US7620106B2 (en) * 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
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
US7623574B2 (en) * 2003-09-07 2009-11-24 Microsoft Corporation Selecting between dominant and non-dominant motion vector predictor polarities
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
DE602006013272D1 (de) * 2005-01-10 2010-05-12 Hewlett Packard Development Co Bildcodierungsvorrichtung und bilddecodierungsvorrichtung
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
EP1933570A4 (en) * 2005-10-05 2010-09-29 Panasonic Corp PROCESS AND DEVICE FOR REFERENCE SELECTION
KR100891662B1 (ko) * 2005-10-05 2009-04-02 엘지전자 주식회사 비디오 신호 디코딩 및 인코딩 방법
KR20070038396A (ko) * 2005-10-05 2007-04-10 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법
KR100727994B1 (ko) * 2005-10-06 2007-06-14 삼성전자주식회사 깜박거림 현상 감소를 위한 동영상 프레임의 코딩 방법 및장치
WO2007062404A2 (en) * 2005-11-23 2007-05-31 Capso Vision, Inc. Movement detection and construction of an 'actual reality' image
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
WO2008072592A1 (ja) * 2006-12-14 2008-06-19 Nec Corporation 映像符号化方法、映像符号化装置および映像符号化プログラム
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
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
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
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
WO2009032255A2 (en) * 2007-09-04 2009-03-12 The Regents Of The University Of California Hierarchical motion vector processing method, software and devices
WO2009034486A2 (en) * 2007-09-10 2009-03-19 Nxp B.V. Method and apparatus for line-based 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
US8483285B2 (en) * 2008-10-03 2013-07-09 Qualcomm Incorporated Video coding using transforms bigger than 4×4 and 8×8
US20100086048A1 (en) * 2008-10-03 2010-04-08 Faisal Ishtiaq System and Method for Video Image Processing
US8619856B2 (en) * 2008-10-03 2013-12-31 Qualcomm Incorporated Video coding with large macroblocks
US8503527B2 (en) * 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
WO2010041856A2 (en) 2008-10-06 2010-04-15 Lg Electronics Inc. A method and an apparatus for processing a video signal
US10455248B2 (en) * 2008-10-06 2019-10-22 Lg Electronics Inc. Method and an apparatus for processing a video signal
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
US20110026593A1 (en) * 2009-02-10 2011-02-03 New Wei Lee Image processing apparatus, image processing method, program and integrated circuit
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
PL3567855T3 (pl) 2009-03-23 2023-03-13 Ntt Docomo, Inc. Urządzenie do predykcyjnego kodowania wideo, sposób predykcyjnego kodowania wideo, program do predykcyjnego kodowania wideo, urządzenie do predykcyjnego dekodowania wideo, sposób predykcyjnego dekodowania wideo i program do predykcyjnego dekodowania wideo
US9113168B2 (en) 2009-05-12 2015-08-18 Lg Electronics Inc. Method and apparatus of processing a video signal
US9628794B2 (en) 2009-06-18 2017-04-18 Kabushiki Kaisha Toshiba Video encoding apparatus and a video decoding apparatus
EP2530937B1 (en) * 2009-06-18 2015-03-18 Kabushiki Kaisha Toshiba Video encoding apparatus and 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 에스케이텔레콤 주식회사 공간 분할을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
EP2494781A1 (en) * 2009-10-29 2012-09-05 Vestel Elektronik Sanayi ve Ticaret A.S. 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
US9351017B2 (en) 2010-01-19 2016-05-24 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
JP2013517733A (ja) * 2010-01-19 2013-05-16 サムスン エレクトロニクス カンパニー リミテッド 以前ブロックの動きベクトルを現在ブロックの動きベクトルとして用いる映像符号化/復号化方法及び装置
KR101607308B1 (ko) * 2010-01-19 2016-03-29 삼성전자주식회사 이전 블록의 움직임 벡터를 현재 블록의 움직임 벡터로 이용하는 영상 부호화, 복호화 방법 및 장치
WO2011126309A2 (ko) * 2010-04-06 2011-10-13 삼성전자 주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
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
ES2785606T3 (es) 2010-07-20 2020-10-07 Ntt Docomo Inc Dispositivo de decodificación predictiva de imágenes, método de decodificación predictiva de imágenes
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
KR102080892B1 (ko) * 2010-09-02 2020-02-24 엘지전자 주식회사 영상 부호화 및 복호화 방법과 이를 이용한 장치
US8503528B2 (en) * 2010-09-15 2013-08-06 Google Inc. System and method for encoding video using temporal filter
CA2807780C (en) 2010-09-24 2018-09-18 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, and image decoding apparatus
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
CN107360427B (zh) 2010-10-08 2020-09-01 Ge视频压缩有限责任公司 编码器和编码方法与解码器和解码方法
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
CN107087194B (zh) * 2010-12-13 2020-02-11 韩国电子通信研究院 基于帧间预测对视频信号进行解码的方法
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
KR101820997B1 (ko) * 2011-01-12 2018-01-22 선 페이턴트 트러스트 동화상 부호화 방법 및 동화상 복호화 방법
GB2487200A (en) * 2011-01-12 2012-07-18 Canon Kk Video encoding and decoding with improved error resilience
US9066104B2 (en) 2011-01-14 2015-06-23 Google Inc. Spatial block merge mode
CN103299630B (zh) * 2011-01-19 2016-10-19 寰发股份有限公司 获取运动矢量预测子的方法和装置
KR102355509B1 (ko) 2011-02-09 2022-02-08 엘지전자 주식회사 영상 부호화 및 복호화 방법과 이를 이용한 장치
JP6108309B2 (ja) 2011-02-22 2017-04-05 サン パテント トラスト 動画像符号化方法、動画像符号化装置、動画像復号方法、および、動画像復号装置
JP5883431B2 (ja) * 2011-02-25 2016-03-15 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像符号化方法および画像復号化方法
JP5358746B2 (ja) 2011-03-03 2013-12-04 パナソニック株式会社 動画像符号化方法、動画像符号化装置及びプログラム
GB2488815C (en) * 2011-03-09 2018-03-28 Canon Kk Video decoding
MX352139B (es) * 2011-03-10 2017-11-10 Velos Media Int Ltd Método de decodificación de video.
EP2684190B1 (en) * 2011-03-10 2015-11-18 Telefonaktiebolaget L M Ericsson (PUBL) Filling of non-coded sub-vectors in transform coded audio signals
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
WO2012140821A1 (ja) 2011-04-12 2012-10-18 パナソニック株式会社 動画像符号化方法、動画像符号化装置、動画像復号化方法、動画像復号化装置、および動画像符号化復号化装置
KR102015674B1 (ko) 2011-05-24 2019-08-28 벨로스 미디어 인터내셔널 리미티드 화상 부호화 방법, 화상 부호화 장치, 화상 복호 방법, 화상 복호 장치, 및, 화상 부호화 복호 장치
EP3614665B1 (en) 2011-05-27 2022-03-23 Sun Patent Trust Apparatus, method and program for decoding moving pictures
US9485518B2 (en) 2011-05-27 2016-11-01 Sun Patent Trust Decoding method and apparatus with candidate motion vectors
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
TW201304552A (zh) 2011-05-31 2013-01-16 Panasonic Corp 動態圖像編碼方法、動態圖像編碼裝置、動態圖像解碼方法、動態圖像解碼裝置、及動態圖像編碼解碼裝置
US9131239B2 (en) 2011-06-20 2015-09-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
JP6322136B2 (ja) * 2011-06-27 2018-05-09 サムスン エレクトロニクス カンパニー リミテッド 動き情報の符号化方法及び該装置、その復号化方法及び該装置
JPWO2013001794A1 (ja) * 2011-06-27 2015-02-23 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像符号化方法、及び画像符号化装置
PL3481066T3 (pl) 2011-06-28 2021-11-22 Lg Electronics Inc. Sposób wyprowadzania predyktora wektora ruchu
US11647197B2 (en) * 2011-06-30 2023-05-09 Velos Media, Llc Context initialization based on slice header flag and slice type
CN106851269B (zh) 2011-06-30 2019-11-15 太阳专利托管公司 图像解码方法及装置、图像编码方法及装置、编解码装置
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
IN2014CN00729A (ja) 2011-08-03 2015-04-03 Panasonic Corp
US8731067B2 (en) 2011-08-31 2014-05-20 Microsoft Corporation Memory management for video decoding
CN107483927B (zh) * 2011-09-09 2020-06-05 株式会社Kt 用于解码视频信号的方法
US8885706B2 (en) 2011-09-16 2014-11-11 Google Inc. Apparatus and methodology for a video codec system with noise reduction capability
WO2013039692A1 (en) * 2011-09-16 2013-03-21 Mediatek Singapore Pte. Ltd. Method and apparatus for prediction mode and partition mode syntax coding for coding units in hevc
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ケンウッド 動きベクトル検出装置及び方法
EP4283995A3 (en) 2011-10-05 2024-02-21 Sun Patent Trust Decoding method and decoding apparatus
KR101718953B1 (ko) 2011-10-17 2017-03-22 주식회사 케이티 영상 부호화/복호화 방법 및 그 장치
CN108881903B (zh) 2011-10-19 2022-01-04 太阳专利托管公司 图像编码方法及装置、图像解码方法及装置、编解码装置
BR112013018949B8 (pt) 2011-11-02 2022-10-11 Panasonic Corp Método e aparelho de codificação para codificar uma imagem em um fluxo de bits
JP5485969B2 (ja) * 2011-11-07 2014-05-07 株式会社Nttドコモ 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法及び動画像予測復号プログラム
TWI580264B (zh) * 2011-11-10 2017-04-21 Sony Corp Image processing apparatus and method
RU2628226C2 (ru) 2011-12-16 2017-08-15 Сан Пэтент Траст Способ кодирования видеоизображений, устройство кодирования видеоизображений, способ декодирования видеоизображений, устройство декодирования видеоизображений и устройство кодирования/декодирования видеоизображений
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
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
CN105519108B (zh) * 2012-01-09 2019-11-29 华为技术有限公司 量化矩阵编码的加权预测方法和装置
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
US10390041B2 (en) * 2012-03-30 2019-08-20 Sun Patent Trust Predictive image coding and decoding using two reference pictures
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 セイコーエプソン株式会社 光学デバイス及び検出装置
CA2877306A1 (en) * 2012-06-21 2013-12-27 Telefonaktiebolaget L M Ericsson (Publ). Apparatus and method for coding a video signal
US9185414B1 (en) 2012-06-29 2015-11-10 Google Inc. Video encoding using variance
KR102215433B1 (ko) 2012-07-02 2021-02-15 엘지전자 주식회사 영상 정보 코딩 방법 및 이를 이용하는 장치
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
WO2014139567A1 (en) 2013-03-13 2014-09-18 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 에스케이텔레콤 주식회사 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101575605B1 (ko) 2014-01-24 2015-12-10 에스케이텔레콤 주식회사 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101575645B1 (ko) 2014-01-24 2015-12-09 에스케이텔레콤 주식회사 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
KR101575636B1 (ko) 2014-01-24 2015-12-09 에스케이텔레콤 주식회사 복수 개의 움직임 벡터 추정을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR101575616B1 (ko) 2014-01-24 2015-12-09 에스케이텔레콤 주식회사 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
CN106031144B (zh) * 2014-03-28 2019-05-24 华为技术有限公司 生成运动补偿视频帧的方法和设备
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
CN107534765B (zh) * 2015-03-31 2020-10-02 瑞尔数码有限公司 视频编码系统和方法中的运动矢量选择和预测
EP3395072A4 (en) 2015-12-22 2019-05-22 RealNetworks, Inc. SELECTION AND PREDICTION OF MOTION VECTOR IN VIDEO ENCODING 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 上海澜至半导体有限公司 用于无损压缩视频数据的方法和装置
EP3646598A1 (en) 2017-06-26 2020-05-06 InterDigital VC Holdings, Inc. Multiple predictor candidates for motion compensation
CN108390871B (zh) * 2018-02-09 2020-05-22 西安交通大学 一种基于自回归模型帧预测的雷达数据压缩方法
CN117156155A (zh) * 2018-03-14 2023-12-01 Lx 半导体科技有限公司 图像编码/解码方法、存储介质和发送方法
US11451816B2 (en) * 2018-04-24 2022-09-20 Mediatek Inc. Storage of motion vectors for affine prediction
WO2019234598A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Interaction between ibc and stmvp
WO2019244117A1 (en) 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Unified constrains for the merge affine mode and the non-merge affine mode
GB2589223B (en) 2018-06-21 2023-01-25 Beijing Bytedance Network Tech Co Ltd Component-dependent sub-block dividing
CN110944196B (zh) 2018-09-24 2023-05-30 北京字节跳动网络技术有限公司 简化的基于历史的运动矢量预测
CN112970262B (zh) 2018-11-10 2024-02-20 北京字节跳动网络技术有限公司 三角预测模式中的取整
WO2020263038A1 (ko) * 2019-06-27 2020-12-30 삼성전자주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
CN110636290B (zh) * 2019-08-30 2021-12-03 北京大学 视频图像的运动矢量编解码方法以及编/解码器
EP4030277A4 (en) * 2019-11-21 2023-01-11 Huawei Technologies Co., Ltd. MULTIPLIER AND OPERATOR CIRCUIT
CN111246211B (zh) * 2020-02-04 2021-11-16 中国联合网络通信集团有限公司 编码方法、解码方法、装置、设备及存储介质
WO2021196087A1 (zh) * 2020-04-01 2021-10-07 华为技术有限公司 视频增强的方法及装置
EP4128791A4 (en) * 2020-04-02 2023-07-19 Telefonaktiebolaget LM ERICSSON (PUBL) DECODING BASED ON A BIDIRECTIONAL IMAGE STATE

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH114441A (ja) * 1997-03-07 1999-01-06 Nextlevel Syst Inc インターレースされたデジタルビデオ用のビデオオブジェクト平面の移動推定及び補償
WO2003063503A1 (en) * 2002-01-24 2003-07-31 Hitachi, Ltd. Moving picture signal coding method, decoding method, coding apparatus, and decoding apparatus

Family Cites Families (379)

* 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.
EP0290085B1 (de) 1987-05-06 1996-03-20 Philips Patentverwaltung GmbH System zur Übertragung von Videobildern
EP0294958B1 (en) 1987-06-09 1995-08-23 Sony Corporation Motion compensated interpolation of digital television images
DE3854171T2 (de) 1987-06-09 1995-12-21 Sony Corp Bewertung von Bewegungsvektoren in Fernsehbildern.
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
EP0359334B1 (en) 1988-09-16 1995-12-06 Koninklijke Philips Electronics N.V. High-definition television system
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
DE3912605B4 (de) 1989-04-17 2008-09-04 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
KR950011200B1 (ko) 1990-10-31 1995-09-29 니뽕 빅터 가부시끼가이샤 인터레이스 동화상 신호의 압축 장치
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
US5212549A (en) 1991-04-29 1993-05-18 Rca Thomson Licensing Corporation Error concealment apparatus for a compressed video signal processing system
US5185819A (en) 1991-04-29 1993-02-09 General Electric Company Video signal compression apparatus for independently compressing odd and even fields
JPH04334188A (ja) 1991-05-08 1992-11-20 Nec Corp 動画像信号の符号化方式
GB2256341B (en) 1991-05-24 1995-02-15 British Broadcasting Corp Video image processing
US5317397A (en) 1991-05-31 1994-05-31 Kabushiki Kaisha Toshiba Predictive coding using spatial-temporal filtering and plural motion vectors
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
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 ソニー株式会社 動画像データエンコード方法および装置、並びに動画像データデコード方法および装置
US5539466A (en) 1991-07-30 1996-07-23 Sony Corporation Efficient coding apparatus for picture signal and decoding apparatus therefor
JP3092280B2 (ja) 1991-07-30 2000-09-25 ソニー株式会社 画像信号の高能率符号化及び復号化装置
JP2699703B2 (ja) 1991-07-31 1998-01-19 松下電器産業株式会社 動き補償予測方法とそれを用いた画像信号符号化方法
JPH0541862A (ja) 1991-08-03 1993-02-19 Sony Corp 動きベクトルの可変長符号化方式
US5428396A (en) 1991-08-03 1995-06-27 Sony Corporation Variable length coding/decoding method for motion vectors
JP3001688B2 (ja) 1991-08-05 2000-01-24 株式会社大一商会 パチンコ球の循環制御装置
JP2507204B2 (ja) 1991-08-30 1996-06-12 松下電器産業株式会社 映像信号符号化装置
CA2079434A1 (en) 1991-09-30 1993-03-31 Derek Andrew Motion vector estimation, motion picture encoding and storage
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
US5594813A (en) 1992-02-19 1997-01-14 Integrated Information Technology, Inc. Programmable architecture and methods for motion estimation
US6441842B1 (en) 1992-02-19 2002-08-27 8×8, Inc. Video compression/decompression processing and processors
WO1993018618A1 (en) 1992-03-03 1993-09-16 Kabushiki Kaisha Toshiba Time-varying image encoder
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
WO1994022269A1 (en) 1993-03-24 1994-09-29 Sony Corporation Method and apparatus for coding/decoding motion vector, and method and apparatus for coding/decoding image signal
JP3500634B2 (ja) * 1993-04-08 2004-02-23 ソニー株式会社 動きベクトル検出装置
US5442400A (en) 1993-04-29 1995-08-15 Rca Thomson Licensing Corporation Error concealment apparatus for MPEG-like video data
EP0625853B1 (en) 1993-05-21 1999-03-03 Nippon Telegraph And Telephone Corporation Moving image encoder and decoder
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
EP0665688A3 (en) 1993-12-29 1995-11-02 Toshiba Kk Method for arranging video data and device for encoding / decoding video data.
US5586200A (en) 1994-01-07 1996-12-17 Panasonic Technologies, Inc. Segmentation based image compression system
JP2993351B2 (ja) * 1994-02-14 1999-12-20 松下電器産業株式会社 圧縮データ記録装置
EP0675652B1 (fr) 1994-03-30 2009-05-13 Nxp B.V. Procédé et circuit d'estimation de mouvement entre images à deux trames entrelacées, et dispositif de codage de signaux numériques comprenant un tel circuit
US5550541A (en) 1994-04-01 1996-08-27 Dolby Laboratories Licensing Corporation Compact source coding tables for encoder/decoder system
TW283289B (ja) 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
EP0720383B1 (en) 1994-12-30 2000-09-13 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 株式会社ルネサステクノロジ 画像伸張装置
DE69619002T2 (de) 1995-03-10 2002-11-21 Toshiba Kawasaki Kk Bildkodierungs-/-dekodierungsvorrichtung
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
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
GB2301971B (en) 1995-06-06 1999-10-06 Sony Uk Ltd Video compression
US5629762A (en) * 1995-06-07 1997-05-13 Eastman Kodak Company Image forming apparatus having a duplex path and/or an inverter
US5731850A (en) * 1995-06-07 1998-03-24 Maturi; Gregory V. Hybrid hierarchial/full-search MPEG encoder motion estimation
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
US5825929A (en) 1995-10-05 1998-10-20 Microsoft Corporation Transformation block optimization method
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 日本電気株式会社 適応動きベクトル補間による動き補償フレーム間予測方法
US5799113A (en) 1996-01-19 1998-08-25 Microsoft Corporation Method for expanding contracted video images
US5692063A (en) 1996-01-19 1997-11-25 Microsoft Corporation Method and system for unrestricted motion estimation for video
US5787203A (en) 1996-01-19 1998-07-28 Microsoft Corporation Method and system for filtering compressed 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
DE69614500T2 (de) * 1996-02-27 2001-11-22 St Microelectronics Srl Speicherverminderung für das Grundprofil und die Hauptebene eines MPEG-2-Dekoders
US5982438A (en) 1996-03-22 1999-11-09 Microsoft Corporation Overlapped motion compensation for object coding
DE69709835T2 (de) 1996-05-28 2002-08-22 Matsushita Electric Ind Co Ltd Vorrichtung zur bildvorhersage und decodierung
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 三菱電機株式会社 画像符号化装置
JP4286322B2 (ja) * 1996-07-11 2009-06-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 符号化されたビデオ画像の送信及び受信
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
JP4049280B2 (ja) 1996-09-24 2008-02-20 株式会社ハイニックスセミコンダクター グレースケール形状情報符号化/復号化装置及び方法
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 ソニー株式会社 画像信号符号化装置及び方法、画像信号復号装置及び方法
WO1998034407A1 (en) 1997-01-30 1998-08-06 Matsushita Electric Industrial Co., Ltd. Digital image replenishment method, image processing device and data recording medium
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
CN1297147C (zh) * 1997-03-07 2007-01-24 通用仪器公司 对交错数字视频的双向预测的视频目标平面的预测和编码
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
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
EP0973147A4 (en) 1997-03-31 2007-09-26 Matsushita Electric Ind Co Ltd DYNAMIC IMAGE DISPLAY METHOD AND DEVICE THEREFOR
JP3217987B2 (ja) 1997-03-31 2001-10-15 松下電器産業株式会社 動画像信号の復号方法および符号化方法
US5973755A (en) 1997-04-04 1999-10-26 Microsoft Corporation Video encoder and decoder using bilinear motion compensation and lapped orthogonal transforms
MY129665A (en) 1997-04-09 2007-04-30 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 日本電気株式会社 動きベクトル検出装置
JP3164031B2 (ja) 1997-05-30 2001-05-08 日本ビクター株式会社 動画像符号化復号化装置、動画像符号化復号化方法、及び動画像符号化記録媒体
EP1138152B8 (en) 1997-05-30 2007-02-14 MediaTek Inc. Method and apparatus for performing hierarchical motion estimation using nonlinear pyramid
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
ES2545066T3 (es) 1997-06-09 2015-09-08 Hitachi, Ltd. Medio de grabación de información de imágenes
US6574371B2 (en) 1997-06-09 2003-06-03 Hitachi, Ltd. Image decoding method
JPH1169345A (ja) 1997-06-11 1999-03-09 Fujitsu Ltd フレーム間予測動画像符号化装置及び復号装置並びにフレーム間予測動画像符号化方法及び復号方法
GB9712651D0 (en) * 1997-06-18 1997-08-20 Nds Ltd Improvements in or relating to encoding digital signals
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
KR100249223B1 (ko) * 1997-09-12 2000-03-15 구자홍 엠팩(mpeg)-4의움직임벡터코딩방법
US6249318B1 (en) * 1997-09-12 2001-06-19 8×8, Inc. Video coding/decoding arrangement and method therefor
US6148033A (en) 1997-11-20 2000-11-14 Hitachi America, Ltd. Methods and apparatus for improving picture quality in reduced resolution video decoders
CN1668111A (zh) * 1997-12-01 2005-09-14 三星电子株式会社 运动向量预测方法
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
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
US5973743A (en) 1997-12-02 1999-10-26 Daewoo Electronics Co., Ltd. Mode coding method and apparatus for use in an interlaced shape coder
JP3740813B2 (ja) 1997-12-12 2006-02-01 ソニー株式会社 画像符号化方法および画像符号化装置
KR100523908B1 (ko) 1997-12-12 2006-01-27 주식회사 팬택앤큐리텔 격행주사 영상에 대한 영상신호 부호화 장치 및 그 방법
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 전주범 이진 형상 신호의 모드 신호 부호화 방법 및 그 복원 방법
JP2002503901A (ja) 1998-02-13 2002-02-05 クビス・インク 飛越し走査移動画像の最適圧縮方法及び装置
KR100328417B1 (ko) 1998-03-05 2002-03-16 마츠시타 덴끼 산교 가부시키가이샤 화상부호화장치및화상복호화장치, 화상부보화방법 및 화상복호화방법, 및 데이터기억매체
US6226407B1 (en) * 1998-03-18 2001-05-01 Microsoft Corporation Method and apparatus for analyzing computer screens
EP0944245B1 (en) 1998-03-20 2001-07-25 SGS-THOMSON MICROELECTRONICS S.r.l. Hierarchical recursive motion estimator for video images encoder
KR100281462B1 (ko) 1998-03-30 2001-02-01 전주범 격행 부호화에서 이진 형상 신호의 움직임 벡터 부호화 방법
US6396956B1 (en) * 1998-03-31 2002-05-28 Sharp Laboratories Of America, Inc. Method and apparatus for selecting image data to skip when encoding digital video
US6408029B1 (en) 1998-04-02 2002-06-18 Intel Corporation Method and apparatus for simplifying real-time data encoding
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
JP4026238B2 (ja) 1998-07-23 2007-12-26 ソニー株式会社 画像復号装置及び画像復号方法
US6275531B1 (en) 1998-07-23 2001-08-14 Optivision, Inc. Scalable video coding method and apparatus
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
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
US6418166B1 (en) 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern
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
ATE309197T1 (de) * 1999-02-05 2005-11-15 Emisphere Tech Inc Verfahren zur herstellung alkylierter salicylamide
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
EP1092321A1 (en) 1999-04-30 2001-04-18 Koninklijke Philips Electronics N.V. Video encoding method with selection of b-frame encoding mode
US6519005B2 (en) 1999-04-30 2003-02-11 Koninklijke Philips Electronics N.V. Method of concurrent multiple-mode motion estimation for digital video
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
WO2001033864A1 (en) 1999-10-29 2001-05-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 動画像復号器におけるフレームレート変換装置、フレームレート変換方法、およびその記録媒体、集積回路装置
JP4378824B2 (ja) 2000-02-22 2009-12-09 ソニー株式会社 画像処理装置及び方法
KR100619377B1 (ko) * 2000-02-22 2006-09-08 주식회사 팬택앤큐리텔 움직임 추정 방법 및 장치
US6522693B1 (en) * 2000-02-23 2003-02-18 International Business Machines Corporation System and method for reencoding segments of buffer constrained video streams
US20020114388A1 (en) 2000-04-14 2002-08-22 Mamoru Ueda Decoder and decoding method, recorded medium, and program
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
US20020168066A1 (en) * 2001-01-22 2002-11-14 Weiping Li Video encoding and decoding techniques and apparatus
CN1248509C (zh) 2001-02-13 2006-03-29 皇家菲利浦电子有限公司 运动信息编码和解码方法
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
JP2004531925A (ja) 2001-03-05 2004-10-14 インタービデオインコーポレイテッド 圧縮されたビデオビットストリームにおける冗長な動きベクトルを符号化し復号するシステム及び方法
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
PT1449385E (pt) * 2001-11-21 2015-10-15 Google Technology Holdings LLC Codificação adaptativa de quadro/campo ao nível dos macroblocos para o conteúdo de vídeo digital
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
WO2003053066A1 (en) * 2001-12-17 2003-06-26 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 松下電器産業株式会社 動きベクトル符号化方法および動きベクトル復号化方法
EP1830577A1 (en) 2002-01-18 2007-09-05 Kabushiki Kaisha Toshiba 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
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
EP3525467B1 (en) 2002-04-19 2021-02-24 Panasonic Intellectual Property Corporation of America Bitstream decoding method and apparatus
PT3525465T (pt) 2002-04-19 2021-05-10 Panasonic Ip Corp America Método e aparelho de descodificação de imagens
KR100481732B1 (ko) 2002-04-20 2005-04-11 전자부품연구원 다 시점 동영상 부호화 장치
US7277587B2 (en) 2002-04-26 2007-10-02 Sharp Laboratories Of America, Inc. System and method for lossless video coding
EP2479896A1 (en) 2002-04-26 2012-07-25 NTT DoCoMo, Inc. Signal encoding method, signal decoding method, signal encoding device, signal decoding device, signal encoding program, and signal decoding program
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 動画像の符号化方法および復号化方法およびデータ記録媒体
JP2005526887A (ja) * 2002-05-24 2005-09-08 スリーエム イノベイティブ プロパティズ カンパニー 油回収のための表面改質ナノ粒子の使用
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
WO2004001666A2 (en) * 2002-06-25 2003-12-31 Quix Technologies Ltd. Image processing using probabilistic local behavior assumptions
WO2004004357A1 (ja) 2002-06-28 2004-01-08 Matsushita Electric Industrial Co., Ltd. 動画像の符号化方法、復号化方法、データストリーム、データ記録媒体およびプログラム
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
KR101075860B1 (ko) 2002-07-15 2011-10-25 노키아 코포레이션 비디오 시퀀스에서 오류 은폐 방법
CN101043626B (zh) 2002-07-15 2010-06-09 株式会社日立制作所 动态图像编码方法
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 엘지전자 주식회사 모션벡터 결정방법
WO2004038921A2 (en) 2002-10-23 2004-05-06 Divxnetworks, Inc. 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 富士電機デバイステクノロジー株式会社 磁気記録媒体の製造方法、および、製造装置
US7426308B2 (en) 2003-07-18 2008-09-16 Microsoft Corporation Intraframe and interframe interlace coding and decoding
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7623574B2 (en) 2003-09-07 2009-11-24 Microsoft Corporation Selecting between dominant and non-dominant motion vector predictor polarities
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
US7577200B2 (en) 2003-09-07 2009-08-18 Microsoft Corporation Extended range variable length coding/decoding of differential motion vector information
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
US8107531B2 (en) 2003-09-07 2012-01-31 Microsoft Corporation Signaling and repeat padding for skip frames
US7317839B2 (en) 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US7620106B2 (en) * 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US7616692B2 (en) 2003-09-07 2009-11-10 Microsoft Corporation Hybrid motion vector prediction for interlaced forward-predicted fields
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7092576B2 (en) 2003-09-07 2006-08-15 Microsoft Corporation Bitplane coding for macroblock field/frame coding type information
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH114441A (ja) * 1997-03-07 1999-01-06 Nextlevel Syst Inc インターレースされたデジタルビデオ用のビデオオブジェクト平面の移動推定及び補償
WO2003063503A1 (en) * 2002-01-24 2003-07-31 Hitachi, Ltd. Moving picture signal coding method, decoding method, coding apparatus, and decoding apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011139525A (ja) * 2003-09-07 2011-07-14 Microsoft Corp インターレース・ビデオの進歩した双方向予測コーディング

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4763607B2 (ja) インターレース・ビデオの進歩した双方向予測コーディング
JP4921971B2 (ja) インターレース・ビデオおよびプログレッシブ・ビデオのマクロブロックおよび動き情報の符号化および復号における新機軸

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101015

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110114

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110121

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110215

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110310

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110607

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110609

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4763607

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250