JP2011130463A - インターレース・ビデオの符号化および復号 - Google Patents

インターレース・ビデオの符号化および復号 Download PDF

Info

Publication number
JP2011130463A
JP2011130463A JP2011009037A JP2011009037A JP2011130463A JP 2011130463 A JP2011130463 A JP 2011130463A JP 2011009037 A JP2011009037 A JP 2011009037A JP 2011009037 A JP2011009037 A JP 2011009037A JP 2011130463 A JP2011130463 A JP 2011130463A
Authority
JP
Japan
Prior art keywords
motion vector
macroblock
field
luminance
interlaced
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.)
Granted
Application number
JP2011009037A
Other languages
English (en)
Other versions
JP5036883B2 (ja
Inventor
Thomas W Holcomb
ダブリュ.ホルコム トーマス
Pohsiang Hsu
スウ ポシャン
Sridhar Srinivasan
スリニバサン スリダー
Chih-Lung Lin
リン チ−ラン
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
Priority claimed from US10/857,473 external-priority patent/US7567617B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011130463A publication Critical patent/JP2011130463A/ja
Application granted granted Critical
Publication of JP5036883B2 publication Critical patent/JP5036883B2/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/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/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/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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets

Abstract

【課題】インターレース・ビデオを符号化しおよび復号する様々な手法およびツールを提供する。
【解決手段】符号化しおよび復号する様々な手法およびツールは、処理ユニットおよびメモリを備えたコンピューティング・デバイスにより複数の変換係数データ存在インジケータを含むマクロブロックごとの可変長符号を決定し、決定した可変長符号をビットストリーム内で信号伝達する。
【選択図】図34

Description

本特許文書の開示の一部は、著作権保護の対象となる内容を含む。著作権保有者は、本特許開示が特許商標庁の特許ファイルまたはレコードにあるとおりにファクシミリ複製されることには異存がないが、それ以外の場合は、すべての著作権を保有するものとする。
本発明は、インターレース・ビデオの符号化および復号の手法およびツールに関する。
デジタル・ビデオは、大量の記憶容量および伝送容量を消費する。一般的なRAWの(加工処理していない)デジタル・ビデオ・シーケンスは、毎秒15枚または30枚のフレームを含む。各フレームは数万個または数十万個の画素(ペル(pels)とも呼ばれる)を含むことが可能であり、各画素は画像の非常に小さな構成要素を表す。RAW形式の場合、コンピュータは一般に、画素を3つのサンプルの組(計24ビット)で表す。例えば、画素は、画素のグレイ・スケール成分を定義する8ビットのルミナンス・サンプルと、画素のクロマ成分を定義する2つの8ビットのクロマ・サンプルとを含むことが可能である。したがって、一般的なRAWデジタル・ビデオ・シーケンスの毎秒のビット数(ビット・レート)は、毎秒500万ビット/秒以上になる可能性がある。
コンピュータやコンピュータ・ネットワークの多くは、RAWデジタル・ビデオを処理するに足るだけのリソースを有していない。このため、技術者らは、圧縮(符号化とも言う)を用いてデジタル・ビデオのビットレートを低減する。圧縮は、ビットをより低いビットレートの形式に変換することによって、ビデオを格納しおよび伝送するコストを下げる。圧縮解除(復号とも言う)は、オリジナルのビデオのバージョンを圧縮形式から再構成する。「コーデック(codec)」は、符号化器/復号器システムである。圧縮は可逆的(lossless)であることが可能であり、可逆的圧縮では、ビデオの画質は劣化しないが、ビットレートの低減量が、ビデオデータの変動性(エントロピーと呼ばれることもある)の固有の量によって制限される。また、圧縮は非可逆的(lossy)であることも可能であり、非可逆的圧縮では、ビデオの画質が劣化するが、ビットレートをより大幅に低減することが可能である。非可逆的圧縮は、可逆的圧縮と組み合わせて用いられることが多く、非可逆的圧縮は情報の近似を確立し、その近似を表すために可逆的圧縮が適用される。
一般に、ビデオ圧縮手法は、「イントラ・ピクチャ(ピクチャ内)」圧縮と「インター・ピクチャ(ピクチャ間)」圧縮とを含み、ここでピクチャは、例えば、プログレッシブ・スキャン・ビデオ・フレーム、(ビデオ・フィールドのラインが互い違いである)インターレース・ビデオ・フレーム、またはインターレース・ビデオ・フィールドである。プログレッシブ・フレームに対して、イントラ・ピクチャ圧縮手法は個別のフレーム(一般に、Iフレームまたはキー・フレームと呼ばれる)を圧縮し、インター・ピクチャ圧縮手法は、先行および/または後続の1つのフレーム(一般に、参照フレームまたはアンカー・フレームと呼ばれる)または複数のフレーム(Bフレームの場合)を基準(reference)にして複数のフレーム(一般に、予測フレーム、Pフレーム、またはBフレームと呼ばれる)を圧縮する。
インター・ピクチャ圧縮手法では、動き推定および動き補償を用いることが多い。動き推定では、例えば、符号化器は、現在の予測フレームを8×8または16×16の画素単位に分割する。現在のフレームの、ある単位に対して、参照フレーム内の類似する単位が見つけだされ、プレディクタとして用いられる。動きベクトルは、参照フレーム内のプレディクタの位置を示す。言い換えると、現在のフレームの、ある単位に対応する動きベクトルは、現在のフレーム内のその単位の空間的位置と、参照フレーム内のプレディクタの空間的位置との間の変位を表す。符号化器は、現在の単位とプレディクタとの、サンプルごとの差分を計算して残差(誤差信号とも呼ばれる)を算出する。現在の単位のサイズが16×16であれば、残差は、4つの8×8ブロックに分割される。各8×8残差に対し、符号化器が可逆的周波数変換演算を適用する。これによって、一組の周波数領域(すなわち、スペクトル)係数が生成される。離散コサイン変換[「DCT」]は、周波数変換の一種である。結果として得られる、スペクトル係数のブロックを量子化およびエントロピー符号化する。予測フレームが後続の動き補償の基準として用いられる場合は、符号化器が予測フレームを再構成する。符号化器は、残差を再構成する際に、量子化された変換係数(例えば、DCT係数)を再構成し、逆周波数変換(例えば、逆DCT[「IDCT」])を行う。符号化器は、動き補償を実行してプレディクタを算出し、プレディクタと残差とを結合する。復号時には一般に、復号器が、情報をエントロピー復号し、同様の演算を実行して残差を再構成し、動き補償を実行し、プレディクタと残差とを結合する。
I.Windows(登録商標)Media Videoバージョン8および9におけるインター圧縮
Microsoft CorporationのWindows(登録商標)Media Videoバージョン8[「WMV8」]は、ビデオ符号化器とビデオ復号器とを含む。WMV8符号化器はイントラ圧縮およびインター圧縮を用い、WMV8復号器はイントラ圧縮解除およびインター圧縮解除を用いる。Windows(登録商標)Media Videoバージョン9[「WMV9」]は、これらに類似するアーキテクチャを多くの操作に用いる。
WMV8符号化器におけるインター圧縮では、ブロック・ベースの動き補償予測符号化を行い、その後に、残余誤差(residual error)の変換符号化を行う。図1および図2は、WMV8符号化器における予測フレームのブロック・ベースのインター圧縮を示す。具体的には、図1は、予測フレーム(110)の動き推定を示し、図2は、予測フレームの動き補償されたブロックの予測残差の圧縮を示す。
例えば、図1では、WMV8符号化器は、予測フレーム(110)内のマクロブロック(115)の動きベクトルを算出する。符号化器は、動きベクトルを算出するために、参照フレーム(130)のサーチ領域(135)内をサーチする。符号化器は、サーチ領域(135)内で、予測フレーム(110)内のマクロブロック(115)と、様々な候補マクロブロックとを比較して、よく一致する候補マクロブロックを見つける。符号化器は、一致するマクロブロックの動きベクトルを示す(エントロピー符号化された)情報を出力する。
動きベクトルの値は、空間的に周囲にある動きベクトルの値と相関があることが多いので、動きベクトル情報の伝送に使用されるデータを圧縮するには、隣接するマクロブロックから動きベクトル・プレディクタを決定しまたは選択して、その動きベクトル・プレディクタを用いて現在のマクロブロックの動きベクトルを予測する。符号化器は、動きベクトルと動きベクトル・プレディクタとの差分を符号化することが可能である。例えば、符号化器は、動きベクトルの水平成分と動きベクトル・プレディクタの水平成分との差分を算出し、動きベクトルの垂直成分と動きベクトル・プレディクタの垂直成分との差分を算出し、それら差分を符号化する。
復号器は、その算出された差分を動きベクトル・プレディクタに加算して動きベクトルを再構成した後、その動きベクトルを用い、参照フレーム(130)(符号化器および復号器で使用可能に、あらかじめ再構成されたフレーム)からの情報を用いて、マクロブロック(115)の予測マクロブロックを算出する。予測が完全であることはほとんどないので、符号化器は、通常、予測マクロブロックとマクロブロック(115)自体との画素差のブロック(誤差ブロックまたは残差ブロックとも呼ばれる)を符号化する。
図2は、WMV8符号化器における誤差ブロック(235)の算出および符号化の例を示す。誤差ブロック(235)は、予測ブロック(215)とオリジナルの現在のブロック(225)との差分である。符号化器は、誤差ブロック(235)に離散コサイン変換[「DCT」](240)を適用して、8×8ブロックの係数(245)を得る。次に符号化器は、DCT係数を量子化し(250)、8×8ブロックの量子化されたDCT係数(255)を得る。符号化器は、8×8ブロック(255)をスキャンして(260)、係数が最低周波数から最高周波数へと大まかに並べられた1次元配列(265)を得る。符号化器は、一種のランレングス符号化(270)により、スキャンされた係数をエントロピー符号化する。符号化器は、1つまたは複数のrun/level/lastテーブル(run/level/last tables)(275)からエントロピー符号を選択し、そのエントロピー符号を出力する。
図3は、インター符号化(インター圧縮)されたブロックに対応する復号処理(300)の例を示す。図3の概要を述べると、予測残差を表す、エントロピー符号化された情報を、復号器が、1つまたは複数のrun/level/lastテーブル(315)を用いる可変長復号310とランレングス復号とにより復号する(310、320)。復号器は、エントロピー復号された情報を格納する1次元配列(325)を逆スキャンして(330)2次元ブロック(335)にする。復号器は、データを逆量子化および逆離散コサイン変換して(まとめて340)、再構成された誤差ブロック(345)を得る。別の動き補償パスで、復号器は、参照フレームからの変位に関する動きベクトル情報(355)を用いて予測ブロック(365)を算出する。復号器は、予測ブロック(365)と、再構成された誤差ブロック(345)とを結合して(370)、再構成されたブロック(375)を形成する。
II.インターレース・ビデオとプログレッシブ・ビデオ
ビデオ・フレームは、ビデオ信号の空間情報からなる複数のライン(走査線)を収容する。プログレッシブ・ビデオの場合、これらのラインは、ある時点から始まり、ラスタ・スキャン方式で、連続する複数のラインを通ってフレームの一番下まで続くサンプル群を収容する。プログレッシブIフレームは、イントラ符号化(イントラ圧縮)されたプログレッシブ・ビデオ・フレームである。プログレッシブPフレームは、順方向予測を用いて符号化されたプログレッシブ・ビデオ・フレームであり、プログレッシブBフレームは、双方向予測を用いて符号化されたプログレッシブ・ビデオ・フレームである。
インターレース・ビデオの一番の特徴は、ビデオ・フレーム全体のラスタ・スキャンが2パスで行われ、パスごとに交互のラインがスキャンされることである。例えば、第1のスキャンがフレームの偶数ラインで構成され、第2のスキャンがスキャンの奇数ラインで構成される。その結果、各フレームは、異なる2つの時刻エポックを表す2つのフィールドを収容する。図4は、トップ・フィールド(410)とボトム・フィールド(420)とを含むインターレース・ビデオ・フレーム(400)を示している。このフレーム(400)では、ある時刻(例えば、時刻t)から偶数番号ライン(トップ・フィールド)のスキャンが開始され、別の(一般に後の)時刻(例えば、時刻t+1)から奇数番号ライン(ボトムフィールド)のスキャンが開始される。このようなタイミングは、異なるタイミングで2つのフィールドの走査が開始されたときに動きがあったインターレース・ビデオ・フレームの領域内に、ぎざぎざの歯のような外観を生じさせる場合がある。このため、フィールド構成に従ってインターレース・ビデオ・フレームを、奇数ライン群を一方のフィールドにまとめ、偶数ライン群をもう一方のフィールドにまとめる態様で、再配置することが可能である。フィールド符号化と呼ばれるこの配置は、そのようなぎざぎざのエッジのアーティファクトを低減するために、動きの多いピクチャにおいて有効である。これに対し、静的な領域では、そのような再配置を行わなくても、インターレース、ビデオ、フレームの画像詳細をより効率的に保存することが可能である。したがって、静的な、動きの少ないインターレース、ビデオ、フレームでは、オリジナルの交番するフィールド・ライン配置が保存されるフレーム符号化が行われることが多い。
一般的なプログレッシブ、ビデオ、フレームは、交番するラインを有しないコンテンツからなる1フレームから構成される。インターレース、ビデオと異なり、プログレッシブ、ビデオでは、ビデオ、フレームが別々のフィールドに分割されず、フレーム全体が、左から右、上から下へのスキャンが単一の時刻から開始される。
III.WMV符号化器および復号器における従来の符号化および復号
従来のWMV符号化器および復号器用ソフトウェアは、実行可能形式でリリースされ、プログレッシブPフレームとインターレースPフレームの符号化および復号を用いている。これらの符号化器および復号器は、様々な符号化/復号シナリオおよびコンテンツ・タイプに有効であるが、いくつかの点で改善の余地がある。
A.動き補償用参照ピクチャ
符号化器および復号器では、プログレッシブおよびインターレースの順方向予測フレームに動き補償を用いる。プログレッシブPフレームの場合、動き補償は、単一の参照フレームを基準にするが、その参照フレームは、現在のPフレームの直前の、既に再構成されているIフレームまたはPフレームである。現在のPフレームの参照フレームは既知であって、可能な参照フレームは1つだけなので、複数の参照フレームの中から選択するための情報が不要である。
インターレースPフレームのマクロブロックは、フィールド符号化またはフレーム符号化が可能である。フィールド符号化されたマクロブロックでは、最大2つの動きベクトルがマクロブロックに関連付けられ、1つはトップ・フィールド用、もう1つはボトム・フィールド用である。フレーム符号化されたマクロブロックでは、最大1つの動きベクトルがマクロブロックに関連付けられる。インターレースPフレーム内のフレーム符号化されたマクロブロックの場合、動き補償は、単一の参照フレームを参照にするが、その参照フレームは、現在のPフレームの直前の、既に再構成されているIフレームまたはPフレームである。インターレースPフレーム内のフィールド符号化されたマクロブロックの場合、動き補償はやはり単一の参照フレームを参照にするが、フィールド符号化されたマクロブロックのトップ・フィールドの動きベクトルについては、参照フレームのトップ・フィールドのラインだけが考慮され、フィールド符号化されたマクロブロックのボトム・フィールドの動きベクトルについては、参照フレームのボトム・フィールドのラインだけが考慮される。ここでも、参照フレームは既知であって、可能な参照フレームは1つだけなので、複数の参照フレームの中から選択するための情報が不要である。
特定の符号化/復号シナリオでは(例えば、動きの多い、高ビットレートのインターレース・ビデオの場合には)、順方向予測の動き補償の基準を単一の参照フレームだけにすると、全体の圧縮効率が低下する可能性がある。
B.マクロブロック情報の信号伝達(シグナリング)
符号化器および復号器では、プログレッシブまたはインターレースPフレーム用のマクロブロック情報を信号伝達(シグナリング)する。
1.プログレッシブPフレーム用マクロブロック情報の信号伝達
プログレッシブPフレームは、1MVフレームまたは混在(mixed)MVフレームであることが可能である。1MVプログレッシブPフレームは、1MVマクロブロックを含む。1MVマクロブロックは、マクロブロック内の6つのブロックすべてについて予測ブロックの変位を示す1つの動きベクトルを使用する。混在MVプログレッシブPフレームは、1MVおよび/または4MVマクロブロックを含む。4MVマクロブロックは、0〜4つの動きベクトルを有し、各動きベクトルは、マクロブロックの最大4つのルミナンス・ブロックのうちの1つに用いられる。プログレッシブPフレームのマクロブロックは、可能な3つのタイプ、すなわち、1MV、4MV、スキップされたもののいずれかであることが可能である。さらに、1MVおよび4MVマクロブロックは、イントラ符号化可能である。マクロブロックのタイプは、ピクチャ・レイヤ要素とマクロブロック・レイヤ要素との組合せで示される。
したがって、1MVマクロブロックは、1MVおよび混在MVプログレッシブPフレームに発生する可能性がある。1MVマクロブロック内のすべてのブロックに、単一動きベクトル・データであるMVDATA要素が関連付けられる。MVDATAは、ブロックがイントラ符号化されているか、インター符号化されているかを信号伝達する。インター符号化されている場合、MVDATAは、動きベクトル差分も示す。
プログレッシブPフレームが1MVであれば、その中のすべてのマクロブロックが1MVマクロブロックなので、マクロブロックのタイプを個別に信号伝達する必要はない。プログレッシブPフレームが混在MVであれば、その中のマクロブロックは1MVまたは4MVである可能性がある。この場合は、マクロブロック・タイプ(1MVまたは4MV)が、ビットストリーム内のピクチャ・レイヤにあるビット・プレーンによって、フレーム内の各マクロブロックに向けて信号伝達される。復号されたビット・プレーンは、マクロブロックの1MV/4MVステータスを、左上から右下へのラスタ・スキャン順序の1ビット値の面(プレーン)として表す。値0は、対応するマクロブロックが1MVモードで符号化されていることを示す。値1は、対応するマクロブロックが4MVモードで符号化されていることを示す。ある符号化モードでは、1MV/4MVステータス情報は、(プログレッシブPフレームに対応するプレーンとしてではなく)ビットストリームのマクロブロック・レイヤにおいてマクロブロックごとに信号伝達される。
4MVマクロブロックは、混在MVプログレッシブPフレームにおいて発生する。4MVマクロブロック内の個々のブロックは、イントラ・ブロックとして符号化されることが可能である。4MVマクロブロックの4つのルミナンス・ブロックのそれぞれに対して、イントラ/インターのステータスが、そのブロックに関連付けられたブロック動きベクトル・データであるBLKMVDATA要素によって信号伝達される。4MVマクロブロックについては、符号化されたブロック・パターンであるCBPCY要素が、どのブロックがBLKMVDATA要素をビットストリーム内に有するかを示す。クロマ・ブロックのインター/イントラのステータスは、ルミナンスのインター/イントラのステータスから抽出される。2つ以上のルミナンス・ブロックがイントラ符号化されていれば、クロマ・ブロックもイントラ符号化されている。
さらに、フレーム内の各マクロブロックのスキップ/非スキップのステータスも、プログレッシブPフレーム用のビット・プレーンによって信号伝達される。スキップ(された)マクロブロックも、ハイブリッド動きベクトル予測のための関連情報を有することが可能である。
CBPCYは、6ビット・フィールドに復号される可変長符号[「VLC」]である。CBPCYは、1MVおよび4MVマクロブロック用ビットストリーム内の様々な位置に現れ、1MVおよび4MVマクロブロック用の様々なセマンティクスを有する。
CBPCYは、(1)MVDATAが、マクロブロックがインター符号化されていることを示し、(2)MVDATAが、1MVマクロブロックの少なくとも1つのブロックに(MVDATAから復号された「last」値で示され)係数情報が含まれていることを示す場合、1MVマクロブロック・レイヤに存在する。CBPCYが存在すれば、CBPCYは、対応する6つのブロックのどれに少なくとも1つの非ゼロ係数が含まれているかを示す6ビット・フィールドに復号される。
CBPCYは、4MVマクロブロック・レイヤ内に常に存在する。ルミナンス・ブロック用のCBPCYビット位置(ビット0〜3)は、クロマ・ブロック用のビット位置(ビット4および5)と若干異なる意味を有する。ルミナンス・ブロック用のビット位置の場合、0は、対応するブロックが動きベクトル情報または何らかの非ゼロ係数を含まないことを示す。そのようなブロックでは、BLKMVDATAが存在せず、予測動きベクトルが動きベクトルとして用いられ、残差データがない。ハイブリッド動きベクトル予測が用いられていることが動きベクトル・プレディクタによって示されていれば、使用候補である動きベクトル・プレディクタを示す単一ビットが存在する。ルミナンス・ブロック用ビット位置の1は、そのブロックに対応するBLKMVDATAが存在することを示す。BLKMVDATAは、そのブロックがインターかイントラかを示し、インターである場合は、動きベクトル差分を示す。BLKMVDATAはさらに、そのブロックに係数データがあるかどうかも(BLKMVDATAから復号される「last」値によって)示す。クロマ・ブロック用のビット位置の場合、0または1は、対応するブロックが非ゼロ係数情報を収容するかどうかを示す。
符号化器および復号器では、MVDATA、BLKMVDATA、およびCBPCYのそれぞれのVLCテーブルについて符号テーブルを選択する。
2.インターレースPフレーム用マクロブロック情報の信号伝達
インターレースPフレームは、フレーム符号化されたマクロブロックとフィールド符号化されたマクロブロックとを混在させて有することが可能である。フィールド符号化されたマクロブロックでは、最大2つの動きベクトルがマクロブロックに関連付けられる。フレーム符号化されたマクロブロックでは、最大1つの動きベクトルがマクロブロックに関連付けられる。シーケンス・レイヤ要素のINTERLACEが1であれば、ピクチャ・レイヤ要素のINTRLCFがビットストリーム内に存在する。INTRLCFは、そのフレーム内のマクロブロックの符号化に用いられるモードを示す1ビット要素である。INTRLCF=0であれば、フレーム内のすべてのマクロブロックがフレーム・モードで符号化される。INTRLCF=1であれば、マクロブロックがフィールド・モードまたはフレーム・モードで符号化されることが可能であり、ピクチャ・レイヤに存在するビット・プレーンのINTRLCMBが、インターレースPフレーム内の各マクロブロックのフィールド/フレーム符号化ステータスを示す。
インターレースPフレームのマクロブロックは、可能な3つのタイプ、すなわち、フレーム符号化されたもの、フィールド符号化されたもの、スキップされたもののいずれかであることが可能である。マクロブロックのタイプは、ピクチャ・レイヤ要素とマクロブロック・レイヤ要素との組合せで示される。
単一のMVDATAが、フレーム符号化されたマクロブロック内のすべてのブロックに関連付けられる。このMVDATAは、ブロックがイントラ符号化されているか、インター符号化されているかを信号伝達する。インター符号化されている場合、MVDATAは、動きベクトル差分も示す。
フィールド符号化されたマクロブロックでは、トップ・フィールド動きベクトル・データであるTOPMVDATA要素がトップ・フィールドのブロックに関連付けられ、ボトム・フィールド動きベクトル・データであるBOTMVDATA要素がボトム・フィールドのブロックに関連付けられる。それらの要素は、各フィールドの1番目のブロックにおいて信号伝達される。より具体的には、TOPMVDATAは、左のトップ・フィールド・ブロックとともに信号伝達され、BOTMVDATAは、左のボトム・フィールド・ブロックとともに信号伝達される。TOPMVDATAは、トップ・フィールド・ブロックがイントラかインターかを示す。それらがインターであれば、TOPMVDATAはさらに、トップ・フィールド・ブロックの動きベクトル差分も示す。同様に、BOTMVDATAは、ボトム・フィールド・ブロックのインター/イントラのステータスと、ボトム・フィールド・ブロックの潜在的な動きベクトル差分情報を信号伝達する。CBPCYは、どのフィールドが動きベクトル・データ要素をビットストリーム内に有するかを示す。
スキップされたマクロブロックは、ピクチャ・レイヤ内のSKIPMBビット・プレーンによって信号伝達される。CBPCYおよび動きベクトル・データ要素は、ブロックがAC係数を有するかどうかを示すために用いられる。復号すべきデータが動きベクトルの後に存在することが、MVDATAから復号された「last」値によって示されている場合は、インターレースPフレームのフレーム符号化されたマクロブロックに対してCBPCYが存在する。CBPCYが存在すれば、CBPCYは6ビット・フィールドに復号され、4つのYブロックのそれぞれに1ビットずつ対応し、1ビットが両方のUブロック(トップ・フィールドおよびボトム・フィールド)に対応し、1ビットが両方のVブロック(トップ・フィールドおよびボトム・フィールド)に対応する。
CBPCYは、フィールド符号化されたマクロブロックに対して常に存在する。CBPCYと2つのフィールド動きベクトル・データ要素を用いて、マクロブロックのブロック内の存在AC係数(presence AC coefficients)が算出される。CBPCYの意味は、ビット1、3、4、および5については、フレーム符号化されたマクロブロックの場合と同じである。すなわち、それらは、右のトップ・フィールドYブロック、右のボトム・フィールドYブロック、トップ/ボトムのUブロック、およびトップ/ボトムのVブロックにおけるAC係数の存在または不在をそれぞれ示す。ビット位置0および2については、意味が若干異なる。ビット位置0に0があることは、TOPMVDATAが存在せず、動きベクトル・プレディクタがトップ・フィールド・ブロックの動きベクトルとして用いられることを示す。これはさらに、左のトップ・フィールド・ブロックに非ゼロ係数がまったく含まれないことも示している。ビット位置0に1があることは、TOPMVDATAが存在することを示す。TOPMVDATAは、トップ・フィールド・ブロックがインターかイントラかを示し、インターである場合はさらに、動きベクトル差分を示す。TOPMVDATAから復号された「last」値が1に復号された場合は、左のトップ・フィールド・ブロックに対応するAC係数が存在せず、それ以外の場合は、左のトップ・フィールド・ブロックに対応する非ゼロAC係数が存在する。同様に、上述の規則は、BOTMVDATAおよび左のボトム・フィールド・ブロックに対応するビット位置2についても当てはまる。
符号化器および復号器では、MVDATA、TOPMVDATA、BOTMVDATA、およびCBPCYのそれぞれのVLCテーブルについて符号テーブルを選択する。
3.従来のマクロブロック情報の信号伝達の問題
要約すると、プログレッシブPフレームおよびインターレースPフレームのマクロブロックに関する様々な情報が、フレーム・レイヤおよびマクロブロック・レイヤにおいて、別々の符号(または符号の組合せ)を用いて信号伝達される。この別々に信号伝達される情報に含まれるものは、動きベクトルの数、マクロブロックのイントラ/インターのステータス、CBPCYが存在するか不在か(例えば、1MVおよびフレーム符号化されたマクロブロックの「last」値による)、および動きベクトル・データが存在するか不在か(例えば、4MVおよびフィールド符号化されたマクロブロックのCBPCYによる)などである。この信号伝達は、多くのケースにおいて良好な全体性能を与えるが、各種の一般的なケースにおいて、信号伝達される様々な情報の間の統計的依存性を十分に活用していない。さらにこの信号伝達は、4MVマクロブロックのCBPCYの存在/不在や、1MVマクロブロックの動きベクトル・データの存在/不在など、各種の有用なコンフィギュレーションを可能にしたり、それらに対応したりしていない。
さらに、動きベクトル・データの存在/不在が(例えば、4MVおよびフィールド符号化されたマクロブロックのCBPCYによって)信号伝達される限り、CBPCY要素の従来の役割の紛らわしい再定義が必要である。そして、それによって、従来そうした目的に用いられていなかった様々な要素(例えば、BLKMVDATA、TOPMVDATA、BOTMVDATA)を用いて従来のCBPCY情報を信号伝達することが必要になる。そして、この信号伝達は、動きベクトル・データの不在時の係数情報の存在など、各種の有用なコンフィギュレーションを可能にせず、それらに対応していない。
C.動きベクトル予測
インターレースまたはプログレッシブPフレームのマクロブロック(またはブロック、またはマクロブロックのフィールドなど)の動きベクトルについては、符号化器は、隣接する動きベクトルに基づいて動きベクトル・プレディクタを算出し、動きベクトルと動きベクトル・プレディクタとの差分を算出し、その差分を符号化することによって、動きベクトルを符号化する。復号器は、(ここでも隣接する動きベクトルに基づいて)動きベクトル・プレディクタを算出し、動きベクトル差分を復号し、動きベクトル差分を動きベクトル・プレディクタに加算することによって、動きベクトルを再構成する。
図5Aおよび図5Bは、1MVプログレッシブPフレームの1MVマクロブロックの候補動きベクトル・プレディクタと見なされるマクロブロックの位置を示す。候補プレディクタは、マクロブロックが行(row)の最後のマクロブロックである場合を除き、左、上、および右上のマクロブロックから取得される。マクロブロックが行の最後のマクロブロックである場合は、プレディクタBは、右上ではなく左上のマクロブロックから取得される。特殊なケースとして、フレームが1マクロブロック幅である場合は、プレディクタは常にプレディクタA(上のプレディクタ)である。マクロブロックが最上行にあるためにプレディクタAが範囲外である場合のプレディクタは、プレディクタCである。他の特殊なケース(イントラ符号化されたプレディクタなど)には、他の様々な規則が対応する。
図6A〜図10は、混在MVプログレッシブPフレームの1MVまたは4MVマクロブロックの動きベクトルの最大3つの候補動きベクトルと見なされるブロックまたはマクロブロックの位置を示す。これらの図では、大きい正方形がマクロブロック境界を示し、小さい正方形がブロック境界を示す。特殊なケースとして、フレームが1マクロブロック幅である場合は、プレディクタは常にプレディクタA(上のプレディクタ)である。他の特殊なケース(最上行の4MVマクロブロックの最上行のブロック、上の行の1MVマクロブロック、イントラ符号化されたプレディクタなど)には、他の様々な規則が対応する。
具体的には、図6Aおよび図6Bは、混在MVプログレッシブPフレームの現在の1MVマクロブロックの候補動きベクトル・プレディクタと見なされるブロックの位置を示す。隣接するマクロブロックは、1MVまたは4MVマクロブロックである可能性がある。図6Aおよび図6Bは、隣接するマクロブロックが4MVであると仮定した場合の候補動きベクトルの位置を示す(すなわち、現在のマクロブロックの上のマクロブロックのブロック2の動きベクトルがプレディクタAであり、現在のマクロブロックのすぐ左のマクロブロックのブロック1の動きベクトルがプレディクタCである)。すべての隣接するマクロブロックが1MVマクロブロックであれば、図5Aおよび図5Bに示した動きベクトル・プレディクタが、マクロブロック全体の動きベクトル・プレディクタとなる。図6Bに示すように、マクロブロックが行の最後のマクロブロックであれば、プレディクタBは、他のケースと同様に、右上のマクロブロックのブロック2ではなく、左上のマクロブロックのブロック3の動きベクトルになる。
図7A〜図10は、混在MVプログレッシブPフレームの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に等しく設定される。
プログレッシブPフレームのマクロブロックが、スキップされた(マクロブロック)として符号化されている場合、そのマクロブロックの動きベクトル・プレディクタが、そのマクロブロックの動きベクトルとして用いられる(または、そのマクロブロックのブロックのプレディクタがそのブロックについて用いられる、など)。ハイブリッド動きベクトル予測にどのプレディクタを用いるかを示す単一ビットが存在し続けることが可能である。
図11および図12A〜図12Bは、インターレースPフレームのフレーム符号化されたマクロブロックおよびフィールド符号化されたマクロブロックの動きベクトル予測の候補プレディクタの例をそれぞれ示している。図11は、インターレースPフレームの(マクロブロック行の最初または最後のマクロブロックでなく、一番上の行でない)内側の位置にある、現在のフレーム符号化されたマクロブロック用の候補プレディクタA、B、およびCを示す。プレディクタは、A、B、およびCとラベル付けされた以外の様々な候補方向から取得可能である(例えば、現在のマクロブロックが、行の最初または最後のマクロブロックである場合や、一番上の行にある場合のような特殊なケースでは、使用不可能なプレディクタがあるため)。現在のフレーム符号化されたマクロブロックの場合、プレディクタ候補は、隣接するマクロブロックがフィールド符号化されているかフレーム符号化されているかに応じて異なる算出が行われる。隣接するマクロブロックがフレーム符号化されている場合は、そのマクロブロックの動きベクトルが、単純に、プレディクタ候補として取得される。隣接するマクロブロックがフィールド符号化されている場合は、トップ・フィールドとボトム・フィールドの動きベクトルを平均することによって候補動きベクトルが決定される。
図12Aおよび図12Bは、フィールドの内側の位置にあるフィールド符号化されたマクロブロックにおける、現在のフィールドの候補プレディクタA、B、およびCを示す。図12Aでは、現在のフィールドはボトム・フィールドであり、隣接するマクロブロックにあるボトム・フィールド動きベクトルが候補プレディクタとして用いられる。図12Bでは、現在のフィールドはトップ・フィールドであり、隣接するマクロブロックにあるトップ・フィールド動きベクトルが候補プレディクタとして用いられる。現在のフィールド符号化されたマクロブロックの各フィールドについては、各フィールドの動きベクトル・プレディクタ候補の数は最大で3である。各候補は、現在のフィールドと同じフィールド・タイプ(例えば、トップまたはボトム)から取得される。隣接するマクロブロックがフレーム符号化されている場合は、そのマクロブロックの動きベクトルが、そのマクロブロックのトップ・フィールド・プレディクタおよびボトム・フィールド・プレディクタとして用いられる。ここでも、現在のマクロブロックが、行の最初または最後のマクロブロックである場合や、一番上の行にある場合には、使用不可能なプレディクタがあるため、様々な特殊ケース(図示せず)が当てはまる。フレームが1マクロブロック幅である場合の動きベクトル・プレディクタは、プレディクタAである。隣接するマクロブロックがイントラである場合、そのマクロブロックの動きベクトル・プレディクタは0である。
図13Aおよび図13Bは、一組のプレディクタをA、B、およびCとして、動きベクトル・プレディクタを算出する擬似コードを示す。符号化器および復号器は、一組のプレディクタ候補からプレディクタを選択するために、図13Cに示す「median-of-three」アルゴリズムのような選択アルゴリズムを用いる。
D.プログレッシブPフレームのハイブリッド動きベクトル予測
プログレッシブPフレームの動きベクトルについては、ハイブリッド動きベクトル予測が可能である。マクロブロックまたはブロックの動きベクトルについては、プログレッシブPフレームが1MVであれ、混在MVであれ、前のセクションで算出された動きベクトル・プレディクタが、AプレディクタおよびCプレディクタを基準にして検査されて、プレディクタ選択がビットストリーム内で明示的に符号化されているかどうかが判定される。明示的に符号化されていれば、(前述のセクションCで算出された動きベクトル・プレディクタを用いるのではなく)動きベクトル用の動きベクトル・プレディクタとしてプレディクタAを用いるか、プレディクタCを用いるかを示すビットが復号される。ハイブリッド動きベクトル予測は、インターレースPフレームおよびインターレース・ビデオの任意の表現用の動きベクトル予測には、用いられない。
図14Aおよび図14Bの擬似コードは、プログレッシブPフレームの動きベクトルのハイブリッド動きベクトル予測を示す。この擬似コードでは、変数predictor_pre_xおよびpredictor_pre_yが、それぞれ、前のセクションで算出された水平方向および垂直方向の動きベクトル・プレディクタである。変数predictor_post_xおよびpredictor_post_yは、それぞれ、ハイブリッド動きベクトル予測を検査した後の、水平方向および垂直方向の動きベクトル・プレディクタである。
E.動きベクトル差分の復号
プログレッシブPフレームのマクロブロックまたはブロックについては、MVDATAまたはBLKMVDATA要素が動きベクトル差分情報を信号伝達する。1MVマクロブロックは、単一のMVDATAを有する。4MVマクロブロックは、0〜4つのBLKMVDATA要素を有する。(その存在はCBPCYによって示される)。
MVDATAまたはBLKMVDATAは、共同で、(1)動きベクトル差分の水平方向成分、(2)動きベクトル差分の垂直方向成分、および(3)変換係数が存在するかどうかを大まかに示すバイナリ「last」フラグ、の3つを符号化する。マクロブロック(4MVの場合はブロック)がイントラ符号化されているかインター符号化されているかは、動きベクトル差分の可能性の1つとして信号伝達される。図15Aおよび図15Bの擬似コードは、動きベクトル差分情報、インター/イントラのタイプ、およびlastフラグ情報がMVDATAまたはBLKMVDATAに対して復号される様子を示す。この擬似コードでは、変数last_flagが、バイナリ・フラグであり、この使用は、マクロブロック情報の信号伝達のセクションで使用方法を説明する。変数intra_flagは、ブロックまたはマクロブロックがイントラかどうかを示すバイナリ・フラグである。変数dmv_xおよびdmv_yは、それぞれ、動きベクトル差分の水平方向成分および垂直方向成分である。変数k_xおよびk_yは、拡張範囲(extended range)の動きベクトルに対して固定長であって、その長さは図15Cの表に示すように様々である。変数halfpel_flagは、動きベクトルの精度として1/2画素を用いるか、1/4画素を用いるか、およびピクチャ・レイヤのシンタックス要素に基づいてどの値を設定するかを示すバイナリ値である。最後に、テーブルsize_tableおよびoffset_tableは、次のように定義される配列である。
size_table[6]={0,2,3,4,5,8}
offset_table[6]={0,1,3,7,15,31}
インターレースPフレームのフレーム符号化されたマクロブロックまたはフィールド符号化されたマクロブロックについても、MVDATA、TOPMVDATA、およびBOTMVDATA要素が同様に復号される。
F.動きベクトルの再構成および導出
ルミナンス動きベクトルは、符号化された動きベクトル差分情報および動きベクトル・プレディクタから再構成され、クロマ動きベクトルは、再構成されたルミナンス動きベクトルから導出される。
プログレッシブPフレームの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)%2b)−b
これによって、再構成されたベクトルが有効であることが保証される。
1MVマクロブロックには、マクロブロックのルミナンス成分を構成する4つのブロックに対して1つの動きベクトルが存在する。マクロブロックがイントラであれば、マクロブロックに関連付けられた動きベクトルは存在しない。マクロブロックがスキップされていれば、dmv_x=0およびdmv_y=0であるので、mv_x=predictor_xおよびmv_y=predictor_yである。
4MVマクロブロック内の各インタールミナンス・ブロックは、各自で動きベクトルを使用する。したがって、4MVマクロブロックには0〜4つのルミナンス・動きベクトルが存在する。4MVマクロブロックがスキップされているか、4MVマクロブロックのCBPCYが、ブロックが符号化されていないことを示している場合には、4MVマクロブロック内に符号化されていないブロックがあってもよい。ブロックが符号化されていない場合は、dmv_x=0およびdmv_y=0であるので、mv_x=predictor_xおよびmv_y=predictor_yである。
プログレッシブPフレームの場合、クロマ動きベクトルはルミナンス動きベクトルから導出される。さらに、4MVマクロブロックの場合は、クロマ・ブロックをインター符号化するかイントラ符号化するかの決定が、ルミナンス・ブロックのステータスに基づいて行われる。クロマ・ベクトルは、2つのステップで再構成される。
第1のステップでは、ルミナンス動きベクトルを適切に組み合わせ、スケーリングすることによって、名目上のクロマ動きベクトル(nominal chroma motion vector)が取得される。スケーリングは、1/4画素オフセットより1/2画素オフセットが優先されるように行われる。図16Aは、1MVマクロブロックのルミナンス動きベクトルからクロマ動きベクトルを導出する際のスケーリングを行う擬似コードである。図16Bは、4MVマクロブロックのクロマ動きベクトルを導出する際に、最大4つのルミナンス動きベクトルを結合してスケーリングする擬似コードを示す。図13Cは、median3()関数の擬似コードを示し、図16Cは、median4()関数の擬似コードを示す。
第2のステップでは、シーケンス・レベルの1ビット要素を用いて、クロマ動きベクトルのさらなる丸めが必要かどうかが決定される。さらなる丸めが必要であれば、1/4画素オフセットのところにあるクロマ動きベクトルが最も近いフル画素位置に丸められる。
インターレースPフレームのフレーム符号化されたマクロブロックおよびフィールド符号化されたマクロブロックについては、プログレッシブPフレームについて行われるのと同様に、ルミナンス動きベクトルが再構成される。フレーム符号化されたマクロブロックには、マクロブロックのルミナンス成分を構成する4つのブロックに対して1つの動きベクトルが存在する。マクロブロックがイントラであれば、そのマクロブロックに関連付けられた動きベクトルは存在しない。そのマクロブロックがスキップされていれば、dmv_x=0およびdmv_y=0であるので、mv_x=predictor_xおよびmv_y=predictor_yである。フィールド符号化されたマクロブロックでは、各フィールドは、それ自身の動きベクトルを有することが可能である。したがって、フィールド符号化されたマクロブロックには0〜2つのルミナンス動きベクトルが存在する。フィールド符号化されたマクロブロックがスキップされているか、フィールド符号化されたマクロブロックのCBPCYが、フィールドが符号化されていないことを示している場合は、フィールド符号化されたマクロブロック内に符号化されていないフィールドがあってもよい。フィールドが符号化されていない場合は、dmv_x=0およびdmv_y=0であるので、mv_x=predictor_xおよびmv_y=predictor_yである。
インターレースPフレームの場合、クロマ動きベクトルはルミナンス動きベクトルから導出される。フレーム符号化されたマクロブロックの場合は、単一のルミナンス動きベクトルに対応するクロマ動きベクトルが1つ存在する。フィールド符号化されたマクロブロックの場合は、クロマ動きベクトルが2つ存在する。1つはトップ・フィールド用であり、1つはボトム・フィールド用であって、トップおよびボトム・フィールドのルミナンス動きベクトルに対応する。クロマ動きベクトルを導出する規則は、フィールド符号化されたマクロブロックとフレーム符号化されたマクロブロックとで同じである。これらは、マクロブロックのタイプによってではなく、ルミナンス動きベクトルによって異なる。図17は、インターレースPフレームのフレーム符号化されたマクロブロックまたはフィールド符号化されたマクロブロックのルミナンス動きベクトルからクロマ動きベクトルを導出する擬似コードを示す。基本的に、クロマ動きベクトルのx成分は4倍にされ、クロマ動きベクトルのy成分はそのままである(4:1:1マクロブロッククロマ・サブサンプリングのため)。クロマ動きベクトルのスケーリングされたx成分も、隣接する1/4画素位置に丸められる。cmv_xまたはcmv_yが境界の外にある場合は、有効な範囲まで引き戻される。
G.輝度補償(Intensity Compensation)
プログレッシブPフレームの場合、ピクチャ・レイヤは、フレームの動き補償モードおよび輝度補償を制御するシンタックス要素を含む。輝度補償が信号伝達された場合は、LUMSCALE要素およびLUMSHIFT要素がピクチャ・レイヤ内で続く。LUMSCALEおよびLUMSHIFTは、輝度補償処理で用いられるパラメータを指定する6ビット値である。
プログレッシブPフレームに対して輝度補償が用いられる場合は、参照フレーム内の画素が、Pフレームの動き補償予測に用いられる前に再マッピングされる。図18の擬似コードは、参照フレーム画素の再マッピングに用いるルックアップ・テーブルを構築するためにLUMSCALE要素およびLUMSHIFT要素が用いられる様子を示している。次のように、参照フレームのY成分がLUTY[]テーブルを用いて再マッピングされ、U成分およびV成分がLUTUV[]テーブルを用いて再マッピングされる。
Figure 2011130463
ここで、pYは、参照フレーム内のオリジナルのルミナンス画素値であり、
Figure 2011130463
は、参照フレーム内の再マッピングされたルミナンス画素値であり、pUVは、参照フレーム内のオリジナルのUまたはVの画素値であり、
Figure 2011130463
は、参照フレーム内の再マッピングされたUまたはVの画素値である。
インターレースPフレームの場合は、1ビットのピクチャ・レイヤINTCOMP値が、そのフレームに対して輝度補償を用いるかどうかを信号伝達する。輝度補償を用いる場合は、LUMSCALE要素およびLUMSHIFT要素がピクチャ・レイヤ内で続く。LUMSCALEおよびLUMSHIFTは、インターレースPフレーム全体の輝度補償処理で用いられるパラメータを指定する6ビット値である。輝度補償自体は、プログレッシブPフレームの場合と同じである。
VI.ビデオの圧縮および圧縮解除の規格
従来のWMV符号化器および復号器の話からはそれるが、ビデオの圧縮および圧縮解除に関連する国際規格がいくつかある。これらの規格には、Motion Picture Experts Group[「MPEG」]−1、−2、および−4規格と、国際電気通信連合(International Telecommunication Union)[「ITU」]のH.261、H.262(MPEG−2の別名)、H.263、およびH.264規格とが含まれる。これらのいずれかの規格に準拠している符号化器および復号器は、通常、動き推定と動き補償とを用いて、ピクチャ間の時間的冗長度を低減する。
A.動き補償用参照ピクチャ
一部の規格では、順方向予測フレームの動き補償は、単一の参照フレーム(現在の順方向予測フレームの直前の、既に再構成されているIフレームまたはPフレーム)を基準にしている。現在の順方向予測フレームの参照フレームは既知であって、可能な参照フレームは1つだけなので、複数の参照フレームの中から選択するための情報が不要である。例えば、H.261規格およびMPEG−1規格を参照されたい。特定の符号化/復号シナリオでは(例えば、動きの多い、高ビットレートのインターレース・ビデオの場合には)、順方向予測の動き補償の基準を単一の参照フレームだけにすると、全体の圧縮効率が低下する可能性がある。
H.262規格では、インターレース・ビデオ・フレームを1つのフレームとして、または2つのフィールドとして符号化することが可能であり、フレーム符号化とフィールド符号化とをフレームごとに適応的に選択することが可能である。現在のフィールドのフィールド・ベース予測では、既に再構成されているトップ・フィールドまたはボトム・フィールドを動き補償に用いる[H.262規格、セクション7.6.1および7.6.2.1]。H.262規格には、動きベクトルによる現在のフィールドの動き補償に用いる参照フィールドを、2つの参照フィールドから選択することが記載されている[H.262規格、セクション6.2.5.2、6.3.17.2、および7.6.4]。16×16マクロブロック(または、マクロブロックの上半分の16×8、またはマクロブロックの下半分の16×8)の所与の動きベクトルについて、動きベクトルをトップ参照フィールドに適用するか、ボトム参照フィールドに適用するかを示す単一ビットが信号伝達される。[Id]。詳細については、H.262規格を参照されたい。
そのような参照フィールド選択は、場合によっては動き補償にいくらかの柔軟性および予測の向上をもたらすが、ビットレートに関しては不利点がいくつかある。動きベクトルの参照フィールド選択信号は、多数のビットを消費する可能性がある。例えば、810個のマクロブロックを有し、各マクロブロックが0、1、または2つの動きベクトルを使用する単一の720×288フィールドでは、動きベクトルの参照フィールド選択ビットは、最大1620ビットを消費する。それぞれの動きベクトルに対してどの参照フィールドが選択されるかを予測することによって参照フィールド選択情報のビットレートを低減する試みは行われていない。参照フィールド選択情報の信号伝達は、純粋に符号化効率に関して言えば、効率が悪い。さらに、シナリオによっては、情報がどのように符号化されようと、参照フィールド選択情報が多数のビットを消費する可能性があるので、動き補償において複数の使用可能な基準を有することによる予測の向上という利点は小さくなる。そのようなシナリオに対応するために参照フィールド選択を無効にするという選択肢は与えられていない。
H.262規格にはさらに、デュアル・プライム予測が記載されている。デュアルプライム予測は、インターレースPピクチャ内の16×16ブロックについて2つの順方向フィールド・ベース予測が平均される予測モードである[H.262規格、セクション7.6.3.6]。
MPEG−4規格では、インターレース・ビデオ・フレームのマクロブロックをフレーム符号化またはフィールド符号化することが可能である[MPEG−4規格、セクション6.1.3.8]。フィールド符号化されたマクロブロックのトップまたはボトム・フィールド・ラインのフィールド・ベース予測の動き補償では、既に再構成されたトップ・フィールドまたはボトム・フィールドを用いる[MPEG−4規格、セクション6.3.7.3および7.6.2]。MPEG−4規格には、動き補償に用いる参照フィールドを、2つの参照フィールドから選択することが記載されている[MPEG−4規格、セクション6.3.7.3]。マクロブロックのトップ・フィールド・ラインまたはボトム・フィールド・ラインの所与の動きベクトルについて、動きベクトルをトップ参照フィールドに適用するか、ボトム参照フィールドに適用するかを示す単一ビットが信号伝達される[同上の文献]。詳細については、MPEG−4規格を参照されたい。そのような参照フィールド選択情報の信号伝達には、前述のH.262の場合と同様の問題がある。
H.263規格には、プログレッシブPフレームの動き補償が記載されており、これには、オプションの参照ピクチャ選択モードが含まれる[H.263規格、セクション3.4.12、Annex N]。通常は、最も近い、時間的に先行するアンカー・ピクチャが動き補償に用いられる。しかしながら、参照ピクチャ選択モードが用いられている場合には、最も近い参照ピクチャ以外のピクチャからの時間的予測が可能である[同上の文献Id]。これにより、符号化器がチャネル状態に応じてビデオ符号化を最適化する(例えば、インターフレーム符号化の基準として必要な情報がない場合にエラーが伝搬されるのを止める)ことを可能にすることによって、エラーが発生しやすいチャネルでのリアルタイム・ビデオ通信の性能を向上させることが可能である[同上の文献]。ピクチャ内の所与のブロック群またはスライスについて参照ピクチャ選択モードが用いられた場合は、10ビット値が、そのブロック群またはスライスの予測に用いられる基準を示す[同上の文献]。H.263に記載されている参照ピクチャ選択メカニズムは、プログレッシブ・ビデオのためのものであり、本質的に、圧縮効率向上のためではなく、エラーが発生しやすいチャネルでのエラー伝搬の問題に対応するように適合されている。
H.264規格の草案JVT−D157では、ブロックの動き補償予測のインター予測処理が、保存されているいくつかの、あらかじめ復号されたピクチャの中から参照ピクチャを選択することを含むことが可能である[JVT−D157、セクション0.4.3]。ピクチャ・レベルでは、1つまたは複数のパラメータが、ピクチャの復号に用いられる参照ピクチャの数を指定する[JVT−D157、セクション7.3.2.2および7.4.2.2]。スライス・レベルでは、使用可能な参照ピクチャの数を変更することが可能であり、リストにある参照ピクチャの並べ替えおよび管理のために追加パラメータを受け取ることが可能である[JVT−D157、セクション7.3.3および7.4.3]。(マクロブロックまたはサブマクロブロック部分の)所与の動きベクトルについて、参照インデックスが存在すれば、その参照インデックスが、予測に用いられる参照ピクチャを示す[JVT−D157、セクション7.3.5.1および7.4.5.1]。参照インデックスは、リスト内の第1、第2、第3、...のフレームまたはフィールドを示す[同上の文献]。リスト内にアクティブな参照ピクチャが1つしかない場合は、参照インデックスが存在しない[同上の文献Id]。リスト内にアクティブな参照ピクチャが2つしかない場合は、参照インデックスを表すために単一の符号化されたビットが用いられる[同上の文献Id]。詳細については、H.264規格の草案JVT−D157を参照されたい。
JVT−D157の参照ピクチャ選択は柔軟性をもたらし、それによって、動き補償の予測を向上させることが可能になる。しかしながら、参照ピクチャリストを管理し、参照ピクチャ選択を信号伝達する処理は、複雑であり、シナリオによっては効率的でない数のビットを消費する。
B.マクロブロック・モードの信号伝達
マクロブロック情報を信号伝達するために、様々な規格で様々なメカニズムが用いられている。例えば、H.261規格では、マクロブロックのマクロブロック・ヘッダに、マクロブロック・タイプであるMTYPE要素が含まれ、これはVLCとして信号伝達される[H.261規格、セクション4.2.3]。MTYPE要素は、予測モード(イントラ、インター、インター+MC、インター+MC+ループ・フィルタリング)、マクロブロックに対して、量子化器であるMQUANT要素が存在するかどうか、マクロブロックに対して、動きベクトル・データであるMVD要素が存在するかどうか、マクロブロックに対して、符号化されたブロック・パターンであるCBP要素が存在するかどうか、およびマクロブロックのブロックに対して、変換係数であるTCOEFF要素が存在するかどうか、を示す[同上の文献]。すべての動き補償マクロブロックについてMVD要素が存在する[同上の文献]。
MPEG−1規格では、マクロブロックがmacroblock_type要素を有し、これはVLCとして信号伝達される[MPEG−1規格、セクション2.4.3.6、表B.2a〜B.2d、D.6.4.2]。順方向予測ピクチャのマクロブロックの場合は、macroblock_type要素は、マクロブロックに対して、quantizer scale要素が存在するかどうか、マクロブロックに対して、順方向動きベクトル・データが存在するかどうか、マクロブロックに対して、符号化されたブロック・パターン要素が存在するかどうか、およびマクロブロックがイントラかどうか、を示す[同上の文献]。マクロブロックが順方向動き補償を用いる場合は、順方向動きベクトル・データが必ず存在する[同上の文献]。
H.262規格では、マクロブロックがmacroblock_type要素を有し、これはVLCとして信号伝達される[H.262規格、セクション6.2.5.1、6.3.17.1、および表B.2〜B.8]。順方向予測ピクチャのマクロブロックの場合は、macroblock_type要素は、マクロブロックに対して、quantizer_scale_code要素が存在するかどうか、マクロブロックに対して、順方向動きベクトル・データが存在するかどうか、マクロブロックに対して、符号化されたブロック・パターン要素が存在するかどうか、マクロブロックがイントラかどうか、およびマクロブロックに対するスケーラビリティ・オプションを示す[同上の文献]。マクロブロックが順方向動き補償を用いる場合は、順方向動きベクトル・データが必ず存在する[同上の文献Id]。別の符号(frame_motion_typeまたはfield_motion_type)が、マクロブロックの動きベクトルの数および動きベクトルの形式を含むマクロブロック予測タイプをさらに示すことが可能である[同上の文献]。
H.263規格では、マクロブロックは、クロマMCBPC要素のマクロブロック・タイプおよび符号化されたブロック・パターンを有し、これらはVLCとして信号伝達される[H.263規格、セクション5.3.2、表8〜表9、およびF.2]。マクロブロック・タイプは、マクロブロックに関する情報(例えば、インター、インター4V、イントラ)を与える。[Id]。インター符号化されたピクチャの符号化されたマクロブロックについては、MCBPCおよび符号化されたブロック・パターンがルミナンスに関して必ず存在し、マクロブロック・タイプは、マクロブロックに対してquantizer information要素が存在するかどうかを示す。順方向動き補償マクロブロックは、存在するマクロブロック(またはインター4Vタイプの場合はブロック)の動きベクトル・データを必ず有する[同上の文献]。MPEG−4規格でも同様に、VLCとして信号伝達されるMCBPC要素が示されている[MPEG−4規格、セクション6.2.7、6.3.7、11.1.1]。
JVT−D157では、mb_type要素はマクロブロック・レイヤの一部である[JVT−D157、セクション7.3.5および7.4.5.]。mb_typeは、マクロブロック・タイプおよび各種関連情報を示す[同上の文献]。例えば、Pスライスについては、mb_type要素は、予測のタイプ(イントラか順方向か)、各種イントラモード符号化パラメータ(マクロブロックがイントラ符号化されている場合)、マクロブロック・パーティション(例えば、16×16、16×8、8×16、または8×8)およびそれゆえの動きベクトルの数(マクロブロックが順方向予測されている場合)、参照ピクチャ選択情報が存在するかどうか(パーティションが8×8の場合)を示す。[同上の文献]。予測のタイプおよびmb_typeはさらに、マクロブロックに対して、符号化されたブロック・パターン要素が存在するかどうかを一括して示す。[同上の文献]。順方向動き補償されたマクロブロックの16×16、16×8、または8×16の各パーティションについて、動きベクトル・データが信号伝達される[同上の文献]。8×8パーティションを有する、順方向予測されたマクロブロックの場合は、sub_mb_type要素が8×8パーティションごとに、それの予測のタイプ(イントラか順方向か)を示す[同上の文献]。8×8パーティションが順方向予測されている場合、sub_mb_typeは、サブパーティション(例えば、8×8、8×4、4×8、または4×4)と、それゆえの動きベクトルの数(8×8パーティションの場合)とを示す[同上の文献]。順方向動き補償された8×8パーティションの中の各サブパーティションについて、動きベクトル・データが信号伝達される[同上の文献]。
様々な規格で、非常に様々な、マクロブロック情報の信号伝達メカニズムが用いられている。それらの信号伝達メカニズムがどのような利点を有していても、それらはまた、次の不利点を有する。まず、それらは、マクロブロック・タイプ、符号化されたブロック・パターン情報の存在/不在、および動き補償されたマクロブロックの動きベクトル差分情報の存在/不在を効率的に信号伝達しないことがある。実際、それらの規格では、動き補償されたマクロブロック(または、そのブロックまたはフィールド)の動きベクトル差分情報の存在/不在をまったく信号伝達しないのが一般的であり、その代わりに、動き補償が用いられた場合に動きベクトル差分情報が信号伝達されると仮定している。さらに、これらの規格は、マクロブロック・モード情報にどの符号テーブルを用いるかの決定において柔軟性がない。
C.動きベクトル予測
H.261、H.262、H.263、MPEG−1、MPEG−4、およびJVT−D157規格のそれぞれは、何らかの形式の動きベクトル予測を示しているが、動きベクトル予測の細部は、規格間で大きく異なる。動きベクトル予測が最も単純なのは、H.261規格である。H.261規格では、例えば、現在のマクロブロック用の動きベクトルの動きベクトル・プレディクタは、既に符号化/復号されているマクロブロックの動きベクトルである[H.261規格、セクション4.2.3.4]。様々な特殊ケース(例えば、現在のマクロブロックが行の最初にある場合)において、動きベクトル・プレディクタは0になる。動きベクトル・プレディクタは、MPEG−1規格の場合と同様である[MPEG−1規格、セクション2.4.4.2およびD.6.2.3]。
他の規格(H.262など)では、格段に複雑な動きベクトル予測が示されているが、それらの規格でも、動きベクトル・プレディクタは単一の隣接する動きベクトルから決定されるのが一般的である[H.262規格、セクション7.6.3.]。動きベクトル・プレディクタを単一の隣接する動きベクトルから決定することは、動きが一様の場合は十分であるが、そうでない多くの場合で不十分である。
そこでさらに、他の規格(H.263、MPEG−4、JVT−D157など)では、異なる候補動きベクトル・プレディクタを有する、複数の異なる隣接する動きベクトルから動きベクトル・プレディクタを決定する[H.263規格、セクション6.1.1;MPEG−4規格、セクション7.5.5および7.6.2、F.2; JVT−D157、セクション8.4.1]。これらは、より多くの種類の動きに対して十分であるが、異なる候補動きベクトル・プレディクタの間のばらつきが大きく、動きパターンに不連続があるシナリオに対しては、やはり対応が十分ではない。
詳細については、それぞれの規格を参照されたい。
D.動きベクトル差分の復号
H.261、H.262、H.263、MPEG−1、MPEG−4、およびJVT−D157のそれぞれは、何らかの形式の差分動きベクトルの符号化および復号を示しているが、符号化および復号の細部は、規格間で大きく異なる。動きベクトルの符号化および復号が最も単純なのは、H.261規格である。H.261規格では、例えば、1つのVLCが水平方向差分成分を表し、もう1つのVLCが垂直方向差分成分を表す[H.261規格、セクション4.2.3.4]。他の規格では、動きベクトル差分情報のより複雑な符号化および復号が示されている。詳細については、それぞれの規格を参照されたい。
E.動きベクトルの再構成および導出
一般に、H.261、H.262、H.263、MPEG−1、MPEG−4、またはJVT−D157における動きベクトルは、動きベクトル・プレディクタと動きベクトル差分とを結合することによって再構成される。この場合も、再構成の細部は規格ごとに異なる。
(信号伝達されない)クロマ動きベクトルは、一般に、(信号伝達される)ルミナンス動きベクトルから導出される。例えば、H.261規格では、クロマ動きベクトルを導出するために、ルミナンス動きベクトルが二分され、ゼロまで切り詰められる[H.261規格、セクション3.2.2]。同様に、MPEG−1規格およびJVT−D157でも、クロマ動きベクトルを導出するためにルミナンス動きベクトルが二分される[MPEG−1規格、セクション2.4.4.2;JVT−D157、セクション8.4.1.4]。
H.262規格では、クロマ・サブサンプリング・モード(例えば、4:2:0、4:2:2、または4:4:4)に依存する比率で、ルミナンス動きベクトルがクロマ動きベクトルにスケールダウンされる[H.262規格、セクション7.6.3.7]。
H.263規格では、4つのルミナンス・ブロックのすべてに対し単一のルミナンス動きベクトルを有するマクロブロックの場合、ルミナンス動きベクトルを2で割り、1/2画素位置まで丸めることによってクロマ動きベクトルが導出される[H.263規格、セクション6.1.1]。4つのルミナンス動きベクトル(ブロックごとに1つ)を有するマクロブロックの場合、クロマ動きベクトルは、4つのルミナンス動きベクトルを合計し、8で割り、1/2画素位置まで丸めることによって導出される[H.263規格、セクションF.2]。MPEG−4規格でも、クロマ動きベクトルが同様に導出される[MPEG−4規格、セクション7.5.5および7.6.2]。
F.重み付け予測
H.264規格の草案JVT−D157には、重み付け予測が記載されている。ピクチャの重み付け予測フラグが、ピクチャ内の予測スライス(predicted slices)に重み付け予測を用いているかどうかを示す[JVT−D157、セクション7.3.2.2および7.4.2.2]。ピクチャに重み付け予測が用いられている場合は、ピクチャ内の各予測スライスが、予測重みのテーブルを有する[JVT−D157、セクション7.3.3、7.3.3.2、7.4.3.3、および10.4.1]。そのテーブル用として、ルミナンス重みパラメータの分母と、クロマ重みパラメータの分母とが信号伝達される[同上文献]。そして、そのスライスに使用可能な参照ピクチャごとに、そのピクチャについてルミナンス重みパラメータおよびルミナンス・オフセット分子パラメータが信号伝達されているかどうかをルミナンス重みフラグが示し(信号伝達される場合は、フラグの後にパラメータが続く)、そのピクチャについてクロマ重みパラメータおよびクロマ・オフセット分子パラメータが信号伝達されているかどうかをクロマ重みフラグが示す(信号伝達される場合は、フラグの後にパラメータが続く)。[同上文献]。信号伝達されない分子重みパラメータには、信号伝達された分母値に関連するデフォルト値が与えられる。[同上文献]。JVT−D157では、重み付け予測パラメータの信号伝達にいくらかの柔軟性が与えられているが、その信号伝達メカニズムは、様々なシナリオにおいて不十分である。
デジタル・ビデオにおいては、ビデオの圧縮および圧縮解除はきわめて重要なので、ビデオの圧縮および圧縮解除の分野が非常に発達していることは驚くことではない。従来のビデオ圧縮および圧縮解除手法の利点がどうであれ、それらの手法は、以下に示す手法およびツールの利点を有していない。
米国特許出願第10/857473号 米国特許出願公開第2003/0206593−A1号明細書
デジタル・ビデオにおいては、ビデオの圧縮および圧縮解除はきわめて重要なので、ビデオの圧縮および圧縮解除の分野が非常に発達していることは驚くことではない。従来のビデオ圧縮および圧縮解除手法の利点がどうであれ、それらの手法は、以下に示す手法およびツールの利点を有していない。
本発明の目的は、ビデオ・コンテンツの圧縮および圧縮解除について、特にインターレース・ビデオ・コンテンツの圧縮および圧縮解除についての現在の手法を改善することにある。
本明細書では、インターレース・ビデオの符号化および復号の様々な手法およびツールについて詳細に説明する。それらの様々な手法およびツールは、組み合わせて用いても、別々に用いてもよい。
詳細説明の一部は、インターレース順方向予測フィールドのハイブリッド動きベクトル予測の様々な手法およびツールを対象とする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。
ビデオ符号化器または復号器などのツールは、動きベクトル・プレディクタに適用可能なプレディクタ極性信号に少なくとも部分的に基づいて、ハイブリッド動きベクトル予測条件をチェックする。ここで、プレディクタ極性信号は、動きベクトル・プレディクタの優勢極性(優勢的な極性)(dominant polarity)または非優勢極性(非優勢的な極性)(non-dominant polarity)を選択するためのものである。それによってツールが動きベクトル・プレディクタを決定することになる。
または、ビデオ符号化器または復号器などのツールは、インターレース順方向予測フィールドの動きベクトル用の初期導出動きベクトル・プレディクタを決定する。そしてツールは、初期導出動きベクトル・プレディクタおよび1つまたは複数の隣接する動きベクトルに少なくとも部分的に基づいて、分散条件(variation condition)をチェックする。分散条件が満たされていれば、ツールは、1つまたは複数の隣接する動きベクトルの1つを、動きベクトルの最終的な動きベクトル・プレディクタとして用いる。分散条件が満たされていない場合、ツールは、初期導出動きベクトル・プレディクタを最終的な動きベクトル・プレディクタとして用いる。
詳細説明の一部は、複数の動きベクトルを有するマクロブロックの動きベクトル・データの存在または不在を信号伝達する動きベクトル・ブロック・パターンを用いる様々な手法およびツールを対象にする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。
ビデオ符号化器または復号器などのツールは、複数のルミナンス動きベクトルを有するマクロブロックに関する第1の情報を表す第1の可変長符号を処理する。第1の情報は、マクロブロックのルミナンス動きベクトルごとに1つの動きベクトル・データ存在インジケータを含む。ツールはさらに、マクロブロックに関する第2の情報を表す第2の可変長符号を処理する。第2の情報は、マクロブロックの複数のブロックについての複数の変換係数データ存在インジケータを含む。
または、ビデオ符号化器または復号器などのツールは、第1の数(>1)のルミナンス動きベクトルを有するマクロブロックについて、第2の数(=第1の数)のビットからなる動きベクトル・ブロック・パターンを処理する。各ビットは、それに対応するルミナンス動きベクトルが、ビットストリーム内で信号伝達される関連付けられた動きベクトル・データを有するかどうかを示す。ツールはさらに、関連付けられた動きベクトル・データがビットストリーム内で信号伝達されることが示されているルミナンス動きベクトルのそれぞれについて、関連付けられた動きベクトル・データを処理する。
詳細説明の一部は、動きベクトル・プレディクタの優勢極性または非優勢極性を選択する様々な手法およびツールを対象にする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。
ビデオ符号化器または復号器などのツールは、動きベクトル・プレディクタの優勢極性を決定する。ツールは、優勢極性に少なくとも部分的に基づいて動きベクトル・プレディクタを処理し、その動きベクトル・プレディクタに少なくとも部分的に基づいて動きベクトルを処理する。例えば、この動きベクトルは、インターレース順方向予測フィールドの現在のブロックまたはマクロブロック用のものであり、優勢極性は、隣接するブロックまたはマクロブロックの複数の先行動きベクトルのそれぞれの極性に少なくとも部分的に基づく。
または、ビデオ符号化器または復号器などのツールは、動きベクトル・プレディクタの優勢極性または非優勢極性の選択を示す情報を処理し、その動きベクトル・プレディクタに少なくとも部分的に基づいて動きベクトルを処理する。例えば、復号器は、優勢極性および非優勢極性を決定してから、優勢極性および非優勢極性と、それらからの選択を示す情報とに少なくとも部分的に基づいて動きベクトル・プレディクタを決定する。
詳細説明の一部は、参照フィールド選択情報および差分動きベクトル情報の統合符号化および統合復号(joint coding and decoding)の様々な手法およびツールを対象とする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。ビデオ復号器などのツールは、動きベクトルの差分動きベクトル情報および動きベクトル・プレディクタ選択を統合的に表現する可変長符号を復号する。そして復号器は、差分動きベクトル情報および動きベクトル・プレディクタ選択に少なくとも部分的に基づいて、動きベクトルを再構成する。
または、ビデオ符号化器などのツールは、動きベクトルの優勢的/非優勢的プレディクタ選択を決定する。符号化器は、動きベクトルの差分動きベクトル情報を決定し、優勢的/非優勢的プレディクタ選択と差分動きベクトル情報とを統合的に符号化する。
詳細説明の一部は、インターレース順方向予測フィールドのマクロブロックのマクロブロック・モード情報の符号テーブル選択および統合符号化/復号の様々な手法およびツールを対象とする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。
ビデオ符号化器または復号器などのツールは、マクロブロックのマクロブロック・モード情報を統合的に信号伝達する可変長符号を処理する。マクロブロックは動き補償され、統合的に信号伝達されるマクロブロック・モード情報は、(1)マクロブロック・タイプ、(2)符号化されたブロック・パターンが存在するか不在か、および(3)動き補償されたマクロブロックの動きベクトル・データが存在するか不在か、を含む。
または、ビデオ符号化器または復号器などのツールは、インターレース順方向予測フィールドのマクロブロック・モード情報の、複数の使用可能な符号テーブルから符号テーブルを選択する。ツールは、選択された符号テーブルを用いて、マクロブロックのマクロブロック・モード情報を示す可変長符号を処理する。マクロブロック・モード情報は、(1)マクロブロック・タイプ、(2)符号化されたブロック・パターンが存在するか不在か、および(3)マクロブロック・タイプに適用可能な場合に、動きベクトル・データが存在するか不在か、を含む。
詳細説明の一部は、インターレース順方向予測フィールドに使用可能な参照フィールドの数の信号を用いる様々な手法およびツールを対象にする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。
ビデオ符号化器または復号器などのツールは、インターレース順方向予測フィールドが動き補償用として1つの参照フィールドを有するか、2つの可能な参照フィールドを使用するか、を示す第1の信号を処理する。インターレース順方向予測フィールドが1つの参照フィールドを使用することが第1の信号によって示された場合、ツールは、2つの可能な参照フィールドの中からその1つの参照フィールドを識別する第2の信号を処理する。一方、インターレース順方向予測フィールドが2つの可能な参照フィールドを有することが第1の信号によって示された場合、ツールは、インターレース順方向予測フィールドのブロックおよび/またはマクロブロックの複数の動きベクトルのそれぞれについて、その2つの可能な参照フィールドからの選択を行う第3の信号を処理することが可能である。そしてツールは、インターレース順方向予測フィールドに対して動き補償を行う。
または、ビデオ符号化器または復号器などのツールは、インターレース順方向予測フィールドが動き補償用として1つの参照フィールドを使用するか、2つの可能な参照フィールドを使用するか、を示す信号を処理する。ツールは、インターレース順方向予測フィールドに対して動き補償を行う。ツールはさらに、後続の動き補償のための参照フィールド・バッファを更新する。参照フィールド・バッファを管理するためにさらなる信号を処理することはない。
詳細説明の一部は、インターレース順方向予測フィールドのマクロブロックのクロマ動きベクトルを導出する様々な手法およびツールを対象とする。記載の手法およびツールには以下のものが含まれるが、これらに限定されない。
ビデオ符号化器または復号器などのツールは、1つまたは複数のルミナンス動きベクトルを有するマクロブロックに対し、その1つまたは複数のルミナンス動きベクトルの極性評価(polarity evaluation)に少なくとも部分的に基づいてクロマ動きベクトルを導出する。例えば、その1つまたは複数のルミナンス動きベクトルのそれぞれは奇数極性または偶数極性(odd or even polarity)であり、極性評価は、その1つまたは複数のルミナンス動きベクトルの中でどの極性がより一般的か(多く見られるか)を決定することを含む。
または、ビデオ符号化器または復号器などのツールは、マクロブロックの複数のルミナンス動きベクトルの中から一般的な極性(prevailing polarity)を決定する。そしてツールは、一般的な極性を有する複数のルミナンス動きベクトルのうちの1つまたは複数に少なくとも部分的に基づいて、マクロブロックのクロマ動きベクトルを導出する。
以下、添付図面を参照しながら、様々な実施形態の詳細説明を進めていく中で、さらなる特徴や利点が明らかになるであろう。
従来技術による、ビデオ符号化器における動き推定を示す図である。 従来技術による、ビデオ符号化器における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フレームにおける現在のフィールド符号化されたマクロブロックの候補動きベクトル・プレディクタを示す図である。 従来技術による、動きベクトル・プレディクタを算出する擬似コードである。 従来技術による、動きベクトル・プレディクタを算出する擬似コード(図13Aからの続き)である。 従来技術による、プログレッシブPフレームのクロマ動きベクトルの導出を示す擬似コードである。 従来技術による、プログレッシブPフレームのハイブリッド動きベクトル予測を示す擬似コードである。 従来技術による、プログレッシブPフレームのハイブリッド動きベクトル予測を示す擬似コード(図14Aからの続き)である。 従来技術による、動きベクトル差分情報の復号を示す擬似コードである。 従来技術による、動きベクトル差分情報の復号を示す擬似コード(図15Aからの続き)である。 従来技術による、動きベクトル差分情報の復号を示すテーブルである。 従来技術による、プログレッシブPフレームのクロマ動きベクトルの導出を示す擬似コードである。 従来技術による、プログレッシブPフレームのクロマ動きベクトルの導出を示す擬似コードである。 従来技術による、プログレッシブPフレームのクロマ動きベクトルの導出を示す擬似コードである。 従来技術による、インターレースPフレームのクロマ動きベクトルの導出を示す擬似コードである。 従来技術による、プログレッシブPフレームの輝度補償を示す擬似コードである。 記載の各種実施形態の実装との組合せに好適なコンピューティング環境のブロック図である。 記載の各種実施形態の実装との組合せが可能な、一般化されたビデオ符号化器システムのブロック図である。 記載の各種実施形態の実装との組合せが可能な、一般化されたビデオ復号器システムのブロック図である。 記載の各種実施形態で用いられるマクロブロック形式を示す図である。 トップ・フィールドとボトム・フィールドの互い違いのラインを示す、インターレース・ビデオ・フレームの一部分の図である。 符号化/復号のためにフレームとして構成されたインターレース・ビデオ・フレームを示す図である。 符号化/復号のためにフィールドとして構成されたインターレース・ビデオ・フレームを示す図である。 インターレースPフィールドの参照フィールドの例を示すチャートである。 インターレースPフィールドの参照フィールドの例を示すチャートである。 インターレースPフィールドの参照フィールドの例を示すチャートである。 インターレースPフィールドの参照フィールドの例を示すチャートである。 インターレースPフィールドの参照フィールドの例を示すチャートである。 インターレースPフィールドの参照フィールドの例を示すチャートである。 参照フィールドの数および選択情報を符号化する手法を示すフローチャートである。 参照フィールドの数および選択情報を復号する手法を示すフローチャートである。 MBMODE値を示すテーブルである。 MBMODE値を示すテーブルである。 インターレースPフィールドのマクロブロックのマクロブロック・モード情報を符号化する手法を示すフローチャートである。 インターレースPフィールドのマクロブロックのマクロブロック・モード情報を復号する手法を示すフローチャートである。 優勢的な参照フィールドと非優勢的な参照フィールドとを決定する擬似コードである。 動きベクトルに用いられる参照フィールドが優勢的か非優勢的かを信号伝達する擬似コードである。 参照フィールドが2つであるインターレースPフィールドの動きベクトルの符号化における動きベクトル予測のための優勢極性および非優勢極性を決定する手法を示すフローチャートである。 参照フィールドが2つであるインターレースPフィールドの動きベクトルの復号における動きベクトル予測のための優勢極性および非優勢極性を決定する手法を示すフローチャートである。 復号時のハイブリッド動きベクトル予測の擬似コードである。 符号化時のハイブリッド動きベクトル予測の手法を示すフローチャートである。 復号時のハイブリッド動きベクトル予測の手法を示すフローチャートである。 ルミナンス・ブロックと4MVBP要素との間の関連付けを示す図である。 動きベクトル・ブロック・パターンを用いる符号化の手法を示すフローチャートである。 動きベクトル・ブロック・パターンを用いる復号の手法を示すフローチャートである。 参照フィールドが2つであるインターレースPフィールドについての動きベクトル差分情報および優勢的/非優勢的プレディクタ選択を符号化する擬似コードである。 参照フィールドが2つであるインターレースPフィールドについての動きベクトル差分情報および優勢的/非優勢的プレディクタ選択の符号化の手法を示すフローチャートである。 参照フィールドが2つであるインターレースPフィールドについての動きベクトル差分情報および優勢的/非優勢的プレディクタ選択の復号の手法を示すフローチャートである。 4:2:0マクロブロックのクロマ・サブサンプリング・パターンを示す図である。 動きベクトルの垂直方向成分について現在のフィールドと参照フィールドとの間の関係を示す図である。 インターレースPフィールドの動き補償されたマクロブロックのクロマ動きベクトルに寄与するルミナンス動きベクトルを選択する擬似コードである。 インターレースPフィールドのマクロブロックのルミナンス動きベクトルからクロマ動きベクトルを導出する手法を示すフローチャートである。 インターレースPフィールドに対し輝度補償を行う符号化器フレームワークを示す図である。 インターレースPフィールドに対し輝度補償を行う復号器フレームワークを示す図である。 インターレースPフィールドの輝度補償参照フィールド・パターンを信号伝達するシンタックス要素を示すテーブルである。 インターレースPフィールドの符号化においてフェード(fading)推定を行う手法を示すフローチャートである。 インターレースPフィールドの復号においてフェード補償を実行する手法を示すフローチャートである。 第1の複合実装形態(combined implementation)による、ビットストリームのレイヤのシンタックス図である。 第1の複合実装形態による、ビットストリームのレイヤのシンタックス図である。 第1の複合実装形態による、ビットストリームのレイヤのシンタックス図である。 第1の複合実装形態による、ビットストリームのレイヤのシンタックス図である。 第1の複合実装形態による、ビットストリームのレイヤのシンタックス図である。 第1の複合実装形態における符号のテーブルである。 第1の複合実装形態における符号のテーブルである。 第1の複合実装形態における符号のテーブルである。 第1の複合実装形態における符号のテーブルである。 第1の複合実装形態における符号のテーブルである。 第1の複合実装形態における符号のテーブルである。 第1の複合実装形態における符号のテーブルである。 第1の複合実装形態における符号のテーブルである。 第1の複合実装形態における符号のテーブルである。 第1の複合実装形態における符号のテーブルである。 第1の複合実装形態における符号のテーブルである。 第1の複合実装形態における、動きベクトルの垂直方向成分について現在のフィールドと参照フィールドとの間の関係を示す図である。 第1の複合実装形態における、参照フィールドが1つであるインターレースPフィールドの動きベクトル差分復号の擬似コードである。 第1の複合実装形態における、参照フィールドが1つであるインターレースPフィールドの動きベクトル差分復号のテーブルである。 第1の複合実装形態における、参照フィールドが2つであるインターレースPフィールドについての動きベクトル差分情報および優勢的/非優勢的プレディクタ選択を復号する擬似コードである。 第1の複合実装形態における、参照フィールドが1つであるインターレースPフィールドの動きベクトル予測の擬似コードである。 第1の複合実装形態における、参照フィールドが1つであるインターレースPフィールドの動きベクトル予測の擬似コード(図51Aからの続き)である。 第1の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測の擬似コードである。 第1の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測の擬似コード(図52Aからの続き)である。 第1の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測の擬似コード(図52Bからの続き)である。 第1の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測の擬似コード(図52Cからの続き)である。 第1の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測の擬似コード(図52Dからの続き)である。 第1の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測の擬似コード(図52Eからの続き)である。 第1の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測の擬似コードである。 第1の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測の擬似コードである。 第1の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測のテーブルである。 第1の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測のテーブルである。 図52H〜図52Jに示したものの代替となるスケーリング操作の擬似コードである。 図52H〜図52Jに示したものの代替となるスケーリング操作のテーブルである。 図52H〜図52Jに示したものの代替となるスケーリング操作のテーブルである。 図52H〜図52Jに示したものの代替となるスケーリング操作のテーブルである。 第1の複合実装形態における、インターレースPフィールドのハイブリッド動きベクトル予測の擬似コードである。 第1の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル再構成の擬似コードである。 第1の複合実装形態における、インターレースPフィールドのクロマ動きベクトル導出の擬似コードである。 第1の複合実装形態における、インターレースPフィールドのクロマ動きベクトル導出の擬似コードである。 第1の複合実装形態における、インターレースPフィールドの輝度補償の擬似コードである。 第2の複合実装形態による、ビットストリームのレイヤのシンタックス図である。 第2の複合実装形態による、ビットストリームのレイヤのシンタックス図である。 第2の複合実装形態による、ビットストリームのレイヤのシンタックス図である。 第2の複合実装形態における、参照フィールドが1つであるインターレースPフィールドの動きベクトル差分復号の擬似コードである。 第2の複合実装形態における、参照フィールドが1つであるインターレースPフィールドの動きベクトル差分復号のテーブルである。 第2の複合実装形態における、参照フィールドが2つであるインターレースPフィールドについての動きベクトル差分情報および優勢的/非優勢的プレディクタ選択を復号する擬似コードである。 第2の複合実装形態における、参照フィールドが1つであるインターレースPフィールドの動きベクトル予測の擬似コードである。 第2の複合実装形態における、参照フィールドが1つであるインターレースPフィールドの動きベクトル予測の擬似コード(図60Aからの続き)である。 第2の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測の擬似コードである。 第2の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測の擬似コード(図61Aからの続き)である。 第2の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測の擬似コード(図61Bからの続き)である。 第2の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測の擬似コード(図61Cからの続き)である。 第2の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測の擬似コード(図61Dからの続き)である。 第2の複合実装形態における、参照フィールドが2つであるインターレースPフィールドの動きベクトル予測の擬似コード(図61Eからの続き)である。
本出願は、インターレース・ビデオの効率的な圧縮および圧縮解除の手法およびツールに関する。インターレース・ビデオ表現の特定の特性を扱うことに特化した様々な手法およびツールを用いて、インターレース・ビデオ・コンテンツの圧縮および圧縮解除を改善する。記載の各種実施形態では、ビデオ符号化器および復号器に、インターレース順方向予測フィールドを符号化および復号する手法が組み込まれ、さらに、それらに対応する信号伝達手法が組み込まれる。これらの信号伝達手法は、様々なレイヤまたはレベル(例えば、シーケンス・レベル、フレーム・レベル、フィールド・レベル、スライス・レベル、マクロブロック・レベル、および/またはブロック・レベル)を含むビットストリーム形式またはシンタックスに用いられる。
インターレース・ビデオ・コンテンツは、ケーブル、衛星、DSLなどを経由するデジタル・ビデオ放送システムにおいて一般的に用いられている。インターレース・ビデオ・コンテンツを圧縮および圧縮解除する効率的な手法およびツールは、ビデオ・コーデックの重要な要素である。
本明細書に記載の実装形態に対する様々な代替が可能である。例えば、フローチャート図を参照して記載されている手法は、フローチャートに示されているステージの順序を変えたり、特定のステージを繰り返したり省略したりして変更することが可能である。あるいは、一部の実装形態は特定のマクロブロック形式を基準にして記載されているが、他の形式を用いることも可能である。さらには、インターレース順方向予測フィールドに関して記載されている手法およびツールを他のタイプのピクチャに適用することも可能である。
各種実施形態では、符号化器および復号器は、ビットストリーム内の複数のフラグおよび/または複数の信号を用いる。特定の複数のフラグおよび複数の信号について記載しているが、この記載方法は、フラグおよび信号についての様々な規約(例えば、1ではなく0)を包含することを理解されたい。
これらの様々な手法およびツールは、組み合わせて用いても、別々に用いてもよい。記載の手法およびツールのうちの1つまたは複数が、様々な実施形態において実装される。本明細書に記載の手法およびツールのいくつかは、ビデオ符号化器または復号器に用いたり、ビデオの符号化または復号に特に限定されない他のシステムに用いたりすることが可能である。
I.コンピューティング環境
図19は、記載の実施形態のいくつかを実装することが可能な、好適なコンピューティング環境(1900)を一般化した例を示す。記載の手法およびツールは、多種多様な汎用または専用コンピューティング環境への実装が可能なので、コンピューティング環境(1900)は、使用または機能性の範囲の何らかの限定を意図するものではない。
図19に示すように、コンピューティング環境(1900)は、少なくとも1つの処理ユニット(1910)とメモリ(1920)とを含む。図19では、この最も基本的な構成(1930)を破線で囲んでいる。処理ユニット(1910)は、コンピュータで実行可能な命令を実行し、実際のプロセッサであっても仮想のプロセッサであってもよい。マルチ処理システムでは、処理能力を高めるために複数の処理ユニットが、コンピュータで実行可能な命令を実行する。メモリ(1920)は、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)であっても、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュ・メモリなど)であっても、これらのうちの2つの組合せであってもよい。メモリ(1920)は、ビデオ符号化器または復号器を実装するソフトウェア(1980)を格納する。
コンピュータ環境は、付加機能を有することが可能である。例えば、コンピューティング環境(1900)は、記憶装置(1940)、1つまたは複数の入力装置(1950)、1つまたは複数の出力装置(1960)、および1つまたは複数の通信接続(1970)を含む。バス、コントローラ、ネットワークなどの相互接続メカニズム(図示せず)が、コンピューティング環境(1900)のコンポーネントを相互接続する。一般に、オペレーティング・システム・ソフトウェア(図示せず)が、コンピューティング環境(1900)で実行される他のソフトウェアの動作環境を提供し、コンピューティング環境(1900)のコンポーネントのアクティビティを調整する。
記憶装置(1940)は、リムーバブルであっても非リムーバブルであってもよく、磁気ディスク、磁気テープまたはカセット、CD−ROM、DVD、または他の任意の、コンピューティング環境(1900)内で情報を記憶するために用いられることが可能であって、アクセスされることが可能である媒体を含む。記憶装置(1940)は、ビデオ符号化器または復号器を実装するソフトウェア(1980)に対する命令を格納する。
入力装置(1950)としては、キーボード、マウス、ペン、トラック・ボールなどのタッチ入力装置、音声入力装置、スキャン装置、または他の、コンピューティング環境(1900)に入力を提供する装置が可能である。オーディオまたはビデオの符号化に関する入力装置(1950)としては、サウンド・カード、ビデオ・カード、TVチューナ・カード、または同様の、オーディオまたはビデオの入力をアナログまたはデジタル形式で受け付ける装置や、オーディオまたはビデオのサンプルをコンピューティング環境(1900)に読み込むCD−ROMやCD−RWなどが可能である。出力装置(1960)としては、ディスプレイ、プリンタ、スピーカ、CDライタ、または他の、コンピューティング環境(1900)からの出力を提供する装置が可能である。
通信接続(1970)は、通信媒体を経由しての、別のコンピューティング・エンティティとの通信を可能にする。通信媒体は、コンピュータで実行可能な命令のような情報、オーディオまたはビデオの入力または出力、または他のデータを、変調データ信号の形で搬送する。変調データ信号は、その特性の1つまたは複数が、信号内の情報を符号化するように設定または変更される信号である。限定ではなく例として、通信媒体は、電気、光、RF、赤外線、音響、または他のキャリアを用いて実装される有線または無線技術を含む。
本発明の手法およびツールは、コンピュータ可読媒体の一般的なコンテキストの形での説明が可能である。コンピュータ可読媒体は、コンピューティング環境においてアクセス可能な任意の使用可能な媒体である。限定ではなく例として、コンピューティング環境(1900)では、コンピュータ可読媒体は、メモリ(1920)、記憶装置(1940)、通信媒体、およびこれらの任意の組合せを含む。
本発明の手法およびツールは、プログラム・モジュールに含まれ、コンピューティング環境内のターゲット実プロセッサまたは仮想プロセッサで実行される、コンピュータで実行可能な命令などの、コンピュータで実行可能な命令の一般的なコンテキストの形での説明が可能である。一般に、プログラム・モジュールとしては、特定のタスクを実行したり、特定の抽象データ型を実装したりするルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造体などがある。プログラム・モジュールの機能は、様々な実施形態において、必要に応じてプログラム・モジュール間で結合したり分割したりすることが可能である。プログラム・モジュールのコンピュータで実行可能な命令は、ローカル・コンピューティング環境においても分散コンピューティング環境においても実行可能である。
説明のための表現として、以下の詳細説明では、「推定する」、「補償する」、「予測する」、「適用する」などの用語を、コンピューティング環境内のコンピュータ動作を記述するために用いる。これらの用語は、コンピュータによって実行される動作の高レベル抽象化であって、人間によって実行される動作と混同されてはならない。これらの用語に対応する実際のコンピュータ動作は、実装に応じて異なる。
II.一般化されたビデオ符号化器および復号器
図20は、一般化されたビデオ符号化器システム(2000)のブロック図であり、図21は、一般化されたビデオ復号器システム(2100)のブロック図であり、これらのシステムと組み合わせて、記載の各種実施形態を実装することが可能である。
符号化器および復号器内のモジュール間の、図示した関係が、符号化器および復号器における情報の主要なフローを示しており、他の関係は簡略化のために図示していない。具体的には、図20および図21は、通例として、ビデオのシーケンス、フレーム、マクロブロック、ブロックなどに用いられる符号化器の設定、モード、テーブルなどを表す副情報を示していない。そのような副情報は、一般に、エントロピー符号化されてから出力ビットストリームの中で送信される。出力ビットストリームの形式は、Windows(登録商標)Media Videoバージョン9であっても他の形式であってもよい。
符号化器(2000)および復号器(2100)は、ビデオ・ピクチャを処理するが、それらは、ビデオ・フレームであってもビデオ・フィールドであってもフレームとフィールドの組合せであってもよい。ピクチャ・レベルおよびマクロブロック・レベルにおけるビットストリームのシンタックスおよびセマンティクスは、フレームを用いるかフィールドを用いるかによって異なってもよい。マクロブロック構成および全体のタイミングも同様に異なってもよい。符号化器(2000)および復号器(2100)は、ブロック・ベースであり、フレームに4:2:0マクロブロック形式を用いる。各マクロブロックは、4つの8×8ルミナンス・ブロック(1つの16×16マクロブロックとして扱われることもある)と2つの8×8クロマ・ブロックとを含む。フィールドについて用いるマクロブロック構成および型式は、同じであっても異なっていてもよい。これらの8×8ブロックは、例えば、周波数変換、およびエントロピー符号化などの様々なステージにおいて、さらに分割することが可能である。次のセクションで、ビデオ・フレーム構成の例を示す。
実装および必要な圧縮のタイプに応じて、符号化器または復号器のモジュールを追加したり、省略したり、複数のモジュールに分割したり、他のモジュールと組み合わせたり、および/または同様のモジュールで置き換えたりすることが可能である。代替実施形態では、異なるモジュールおよび/または他のモジュール構成を有する符号化器または復号器が、記載の手法のうちの1つまたは複数を実施する。
A.ビデオ・フレーム構成
一部の実装形態では、符号化器(2000)および復号器(2100)は、以下のように構成されたビデオ・フレームを処理する。フレームは、ビデオ信号の空間情報をライン(走査線)の形で収容する。プログレッシブ・ビデオの場合、これらのラインは、ある時点から始まり、連続するラインを通ってフレームの一番下まで続くサンプル群を収容する。プログレッシブ・ビデオ・フレームは、図22に示すマクロブロック(2200)のように、マクロブロックに分割される。マクロブロック(2200)は、4つの8×8ルミナンス・ブロック(Y1〜Y4)と2つの8×8クロマ・ブロックとを含む。2つの8×8クロマ・ブロックは、4つのルミナンス・ブロックと同じ場所にあるが、従来の4:2:0マクロブロック形式に従って、水平方向および垂直方向の解像度がルミナンス・ブロックの半分である。これらの8×8ブロックは、例えば、周波数変換(例えば、8×8、4×8、または4×4のDCTなど)、エントロピー符号化などの様々なステージにおいて、さらに分割することが可能である。プログレッシブIフレームは、イントラ符号化されたプログレッシブ・ビデオ・フレームである。プログレッシブPフレームは、順方向予測を用いて符号化されたプログレッシブ・ビデオ・フレームであり、プログレッシブBフレームは、双方向予測を用いて符号化されたプログレッシブ・ビデオ・フレームである。プログレッシブPフレームおよびプログレッシブBフレームは、イントラ符号化されたマクロブロックだけでなく、様々なタイプの予測マクロブロックを含むことが可能である。
インターレース・ビデオ・フレームは、1フレームに属する2つのスキャンで構成され、1つはフレームの偶数ライン(トップ・フィールド)を含み、もう1つはフレームの奇数ライン(ボトム・フィールド)を含む。これら2つのフィールドは、異なる2つの時間帯を表すことも可能であり、同じ時間帯であることも可能である。図23Aは、インターレース・ビデオ・フレーム(2300)の一部を示しており、インターレース・ビデオ・フレーム(2300)の左上部分の、トップ・フィールドとボトム・フィールドとで互い違いになるラインを含む。
図23Bは、フレーム(2330)として符号化/復号するために構成された、図23Aのインターレース・ビデオ・フレーム(2300)を示す。インターレース・ビデオ・フレーム(2300)は、マクロブロック(2331)および(2332)のように、図22に示した4:2:0形式を用いるマクロブロックに分割されている。ルミナンス・プレーンでは、各マクロブロック(2331、2332)は、トップ・フィールドの8ラインとボトム・フィールドの8ラインとが互い違いになっている合計16ラインを含み、各ラインの長さが16画素である(マクロブロック(2331、2332)内のルミナンス・ブロックおよびクロマ・ブロックの実際の構成および配置は図示していない。これらは、実際には、符号化決定(encoding decisions)が異なれば異なる可能性がある)。所与のマクロブロック内で、トップ・フィールド情報およびボトム・フィールド情報を、任意の様々なフェーズにおいて、統合的に、または別々に符号化することが可能である。インターレースIフレームは、インターレース・ビデオ・フレームの、イントラ符号化された2つのフィールドであって、マクロブロックがその2つのフィールドの情報を含む。インターレースPフレームは、インターレース・ビデオ・フレームの、順方向予測を用いて符号化された2つのフィールドであり、インターレースBフレームは、インターレース・ビデオ・フレームの、双方向予測を用いて符号化された2つのフィールドであり、マクロブロックがその2つのフィールドの情報を含む。インターレースPフレームおよびインターレースBフレームは、イントラ符号化されたマクロブロックだけでなく、様々なタイプの予測マクロブロックを含むことが可能である。
図23Cは、フィールド(2360)として符号化/復号するために構成された、図23Aのインターレース・ビデオ・フレーム(2300)を示す。インターレース・ビデオ・フレーム(2300)の2つのフィールドのそれぞれがマクロブロックに分割されている。トップ・フィールドは、マクロブロック(2361)のようなマクロブロックに分割され、ボトム・フィールドは、マクロブロック(2362)のようなマクロブロックに分割されている(この場合も、マクロブロックは、図22に示すように、4:2:0形式を用いており、マクロブロック内のルミナンス・ブロックおよびクロマ・ブロックの構成および配置は図示していない)。ルミナンス・プレーンでは、マクロブロック(2361)がトップ・フィールドの16ラインを含み、マクロブロック(2362)がボトム・フィールドの16ラインを含み、各ラインの長さが16画素である。インターレースIフィールドは、インターレース・ビデオ・フレームに属する、単独で表現された1つのフィールドである。インターレースPフィールドは、順方向予測を用いて符号化された、インターレース・ビデオ・フレームに属する、単独で表現された1つのフィールドであり、インターレースBフィールドは、双方向予測を用いて符号化された、インターレース・ビデオ・フレームに属する、単独で表現された1つのフィールドである。インターレースPフィールドおよびインターレースBフィールドは、イントラ符号化されたマクロブロックだけでなく、様々なタイプの予測マクロブロックを含むことが可能である。
ピクチャという用語は、一般に、ソース画像データ、符号化された画像データ、または再構成された画像データを指す。プログレッシブ・ビデオについては、ピクチャは、プログレッシブ・ビデオ・フレームである。インターレース・ビデオについては、ピクチャは、コンテキストに応じて、インターレース・ビデオ・フレームを指す場合、フレームのトップ・フィールドを指す場合、またはフレームのボトム・フィールドを指す場合がある。
あるいは、符号化器(2000)および復号器(2100)は、オブジェクトベースであり、別のマクロブロック形式またはブロック形式を用いるか、8×8ブロックや16×16マクロブロックとは異なるサイズまたは構成の画素集合に対して操作を実行する。
B.ビデオ符号化器
図20は、一般化されたビデオ符号化器システム(2000)のブロック図である。符号化器システム(2000)は、現在のピクチャ(2005)を含むビデオ・ピクチャ(例えば、プログレッシブ・ビデオ・フレーム、インターレース・ビデオ・フレーム、またはインターレース・ビデオ・フレームのフィールド)のシーケンスを受け取り、圧縮ビデオ情報(2095)を出力として生成する。ビデオ符号化器の個々の実施形態では、一般に、一般化された符号化器(2000)の変形形態または強化形態を用いる。
符号化器システム(2000)は、予測ピクチャおよびキー・ピクチャを圧縮する。説明のための表現として、図20は、符号化器システム(2000)を通るキー・ピクチャのパスと、順方向予測ピクチャのパスとを示す。符号化器システム(2000)のコンポーネントの多くは、キー・ピクチャと予測ピクチャの両方の圧縮に用いられる。それらのコンポーネントによって実行される動作は、厳密には、圧縮される情報のタイプによって異なる可能性がある。
予測ピクチャ(Pピクチャ、双方向予測ピクチャとしてのBピクチャ、またはインター符号化されたピクチャ、とも呼ばれる)は、1つまたは複数の他のピクチャからの予測(または差分)という形で表現される。予測残差は、予測されたものとオリジナルピクチャとの差分である。一方、キー・ピクチャ(Iピクチャ、またはイントラ符号化されたピクチャとも呼ばれる)は、他のピクチャを参照せずに圧縮される。
現在のピクチャ(2005)が順方向予測ピクチャである場合は、動き推定器(2010)が、ピクチャ記憶器(2020)にバッファリングされている再構成された先行ピクチャ(reconstructed previous picture)(2025)である参照ピクチャを基準にして、現在のピクチャ(2005)のマクロブロックまたは他の画素集合の動きを推定する。代替実施形態では、参照ピクチャが後のピクチャであったり、現在のピクチャが双方向予測されたりする。動き推定器(2010)は、1画素、1/2画素、1/4画素、または他の増分を単位として動きを推定することが可能であり、ピクチャごと、または他の区切りごとに動き推定の精度を切り替えることが可能である。動き推定の精度は、水平方向と垂直方向とで同じであっても異なってもよい。動き推定器(2010)は、動きベクトルなどの動き情報(2015)を副情報として出力する。動き補償器(2030)は、再構成された先行ピクチャ(2025)に動き情報(2015)を適用して、動き補償された、現在のピクチャ(2035)を形成する。予測が完全であることはまれであり、動き補償された、現在のピクチャ(2035)と、オリジナルの現在のピクチャ(2005)との差分が予測残差(2045)である。あるいは、動き推定器および動き補償器は、別のタイプの動き推定/補償を適用する。
周波数変換器(2060)は、空間領域のビデオ情報を、周波数領域の(すなわち、スペクトル)データに変換する。ブロック・ベースのビデオ・ピクチャの場合、周波数変換器(2060)は、画素データまたは予測残差データのブロックにDCTまたはDCTの変形形態を適用して、DCT係数のブロックを生成する。あるいは、周波数変換器(2060)は、別の従来の周波数変換(例えば、フーリエ変換)を適用したり、ウェーブレット解析またはサブバンド解析を行ったりする。周波数変換器(2060)は、予測ピクチャの予測残差に、8×8、8×4、4×8、または他のサイズの周波数変換(例えば、DCT)を適用する。
次に量子化器(2070)が、スペクトル・データ係数のブロックを量子化する。量子化器は、ピクチャごと、または他の区切りごとに異なるステップ・サイズを使用して、スペクトル・データに、均一のスカラ量子化を適用する。あるいは、量子化器は、別のタイプの量子化(例えば、不均一量子化、ベクトル量子化、または非適応量子化(non-adaptive quantization))をスペクトル・データ係数に適用したり、あるいは周波数変換を行わない符号化器システムにおいて空間領域データを直接量子化したりする。符号化器(2000)は、適応量子化に加えて、フレームドロップ、適応フィルタリング、または他のレート制御手法を用いることが可能である。
予測ピクチャ内の所与のマクロブロックが特定タイプの情報を有しない場合(例えば、マクロブロックの動き情報がない場合や、残差情報がない場合)、符号化器(2000)は、そのマクロブロックを、スキップされたマクロブロックとして符号化することが可能である。その場合、符号化器は、スキップされたマクロブロックを、圧縮ビデオ情報(2095)の出力ビットストリームの中で信号伝達する。
再構成された現在のピクチャが後続の動き推定/補償に必要である場合は、逆量子化器(2076)が、量子化されたスペクトル・データ係数に逆量子化を実行する。次に逆周波数変換器(2066)が、周波数変換器(2060)とは逆の操作を実行して、(予測ピクチャの)再構成された予測残差または(イントラ符号化されたピクチャの)再構成されたサンプルを生成する。符号化されるピクチャ(2005)が、イントラ符号化されるピクチャであれば、再構成されたサンプルは、再構成された現在のピクチャ(図示せず)を形成する。符号化されるピクチャ(2005)が予測ピクチャであれば、再構成された予測残差を、動き補償された予測(2035)に加算して、再構成された現在のピクチャを形成する。ピクチャ記憶装置(2020)は、次のピクチャの予測に用いる、再構成された現在のピクチャをバッファリングする。一部の実施形態では、符号化器は、再構成されたフレームにデブロッキング・フィルタを適用して、フレームのブロック間の不連続部分を適応的に平滑化する。
エントロピー符号化器(2080)は、量子化器(2070)の出力ならびに特定の副情報(例えば、動き情報(2015)、量子化ステップ・サイズ)を圧縮する。一般的なエントロピー符号化手法として、算術符号化、差分符号化、ハフマン符号化、ランレングス符号化、LZ符号化、辞書符号化、およびこれらの組合せなどがある。エントロピー符号化器(2080)は、一般に、様々な種類の情報(例えば、DC係数、AC係数、様々な種類の副情報)に対して様々な符号化手法を用い、特定の符号化手法において複数の符号化テーブル間で選択することが可能である。
エントロピー符号化器(2080)は、圧縮ビデオ情報(2095)をバッファ(2090)内に配置する。バッファ・レベル・インジケータがビットレート適応モジュールにフィードバックされる。圧縮ビデオ情報(2095)は、一定または比較的一定のビットレートでバッファ(2090)から引き出され、そのビットレートでの後続のストリーミングに備えて保存される。したがって、バッファ(2090)のレベルは、主に、フィルタリングおよび量子化されたビデオ情報のエントロピーの関数であって、これは、エントロピー符号化の効率に影響を及ぼす。あるいは、符号化器システム(2000)は、圧縮後ただちに圧縮ビデオ情報をストリーミングし、バッファ(2090)のレベルは、やはり、情報が送り出し用バッファ(2090)から引き出されるレートに依存する。
バッファ(2090)の前または後で、圧縮ビデオ情報(2095)を、ネットワーク送信のためにチャネル符号化することが可能である。チャネル符号化では、エラーの検出および訂正のデータを圧縮ビデオ情報(2095)に適用(追加)することが可能である。
C.ビデオ復号器
図21は、一般化されたビデオ復号器システム(2100)のブロック図である。復号器システム(2100)は、ビデオ・ピクチャの圧縮されたシーケンスの情報(2195)を受け取り、再構成されたピクチャ(2105)(例えば、プログレッシブ・ビデオ・フレーム、インターレース・ビデオ・フレーム、またはインターレース・ビデオ・フレームのフィールド)を含む出力を生成する。ビデオ復号器の個々の実施形態では、一般に、一般化された復号器(2100)の変形形態または強化形態を用いる。
復号器システム(2100)は、予測ピクチャおよびキー・ピクチャを圧縮解除する。説明のために、図21は、復号器システム(2100)を通るキー・ピクチャのパスと、順方向予測ピクチャのパスとを示す。復号器システム(2100)のコンポーネントの多くは、キー・ピクチャと予測ピクチャの両方の圧縮解除に用いられる。それらのコンポーネントによって実行される動作は、厳密には、圧縮解除される情報のタイプによって異なる可能性がある。
バッファ(2190)は、圧縮ビデオシーケンスの情報(2195)を受け取り、受け取った情報を、エントロピー復号器(2180)で利用できるようにする。バッファ(2190)は、一般に、時間に対してほぼ一定のレートで情報を受け取り、帯域幅または伝送の短時間変動を平滑化するジッタ・バッファを含む。バッファ(2190)は、再生バッファおよび他のバッファも含むことが可能である。あるいは、バッファ(2190)は、情報を変動レートで受け取る。バッファ(2190)の前または後で、圧縮ビデオ情報を、エラーの検出および訂正のためにチャネル復号および処理することが可能である。
エントロピー復号器(2180)は、エントロピー符号化された量子化データならびにエントロピー符号化された副情報(例えば、動き情報(2115)、量子化ステップ・サイズ)をエントロピー復号する。これには、一般に、符号化器で実行されたエントロピー符号化の逆が適用される。エントロピー復号手法として、算術復号、差分復号、ハフマン復号、ランレングス復号、LZ復号、辞書復号、およびこれらの組合せなどがある。エントロピー復号器(2180)は、しばしば、様々な種類の情報(例えば、DC係数、AC係数、様々な種類の副情報)に対して様々な復号手法を用い、特定の復号手法において複数の符号化テーブル間で選択することが可能である。
再構成されるピクチャ(2105)が順方向予測ピクチャであれば、動き補償器(2130)が、動き情報(2115)を参照ピクチャ(2125)に適用して、再構成されるピクチャ(2105)の予測(2135)を形成する。例えば、動き補償器(2130)が、マクロブロック動きベクトルを用いて、参照ピクチャ(2125)内のマクロブロックを見つける。ピクチャ・バッファ(2120)が、再構成された先行ピクチャを、参照ピクチャとして用いるために格納する。動き補償器(2130)は、1画素、1/2画素、1/4画素、または他の増分を単位として動きを補償することが可能であり、ピクチャごと、または他の区切りごとに動き補償の精度を切り替えることが可能である。動き補償の精度は、水平方向と垂直方向とで同じであっても異なってもよい。あるいは、動き補償器は、別のタイプの動き補償を適用する。動き補償器による予測が完全であることはまれなので、復号器(2100)はさらに、予測残差を再構成する。
復号器において、再構成されたピクチャが後続の動き補償に必要な場合は、ピクチャ記憶装置(2120)が、再構成されたピクチャを、次のピクチャの予測に用いるためにバッファリングする。一部の実施形態では、符号化器は、再構成されたフレームにデブロッキング・フィルタを適用して、フレームのブロック間の不連続部分を適応的に平滑化する。
逆量子化器(2170)は、エントロピー復号されたデータを逆量子化する。一般に、逆量子化器は、ピクチャごと、または他の区切りごとに異なるステップ・サイズを使用して、エントロピー復号されたデータに、均一のスカラ逆量子化を適用する。あるいは、逆量子化器は、別のタイプの逆量子化(例えば、不均一逆量子化、ベクトル逆量子化、または非適応逆量子化)をデータに適用したり、逆周波数変換を行わない復号器システムにおいて空間領域データを直接逆量子化したりする。
逆周波数変換器(2160)が、量子化された周波数領域データを空間領域ビデオ情報に変換する。ブロック・ベースのビデオ・ピクチャについては、逆周波数変換器(2160)は、IDCTまたはIDCTの変形形態をDCT係数のブロックに適用して、キー・ピクチャの画素データ、または予測ピクチャの予測残差データをそれぞれ生成する。あるいは、周波数変換器(2160)は、別の従来の逆周波数変換(例えば、フーリエ変換)を適用するか、ウェーブレット合成またはサブバンド合成を行う。逆周波数変換器(2160)は、予測ピクチャの予測残差に、8×8、8×4、4×8、または他のサイズの逆周波数変換(例えば、IDCT)を適用する。
III.インターレースPフィールドとインターレースPフレーム
一般的なインターレース・ビデオ・フレームは、異なる時刻にスキャンされた2つのフィールド(例えば、トップ・フィールドとボトム・フィールド)からなる。一般に、インターレース・ビデオ・フレームの静止領域については、フィールドをまとめて符号化(「フレームモード」符号化)することによって符号化するのが効率的である。一方、インターレース・ビデオ・フレームの、動きのある領域については、フィールドを別々に符号化(「フィールド・モード符号化」)することによって符号化するのが効率的である場合が多い。これは、2つのフィールドがそれぞれ異なる動きを有する傾向があるからである。順方向予測インターレース・ビデオ・フレームは、2つの別々の順方向予測フィールド(インターレースPフィールド)として符号化されることが可能である。順方向予測インターレース・ビデオ・フレームのフィールドを別々に符号化することは、例えば、インターレース・ビデオ・フレーム全体で動きが多く、したがって、フィールド間の差分が大きい場合に効率的である可能性がある。
または、順方向予測インターレース・ビデオ・フレームは、インターレースPフレームのように、フィールド符号化とフレーム符号化の混在を用いて符号化されることが可能である。インターレースPフレームのマクロブロックの場合、マクロブロックは、トップ・フィールドおよびボトム・フィールドの画素のラインを含み、これらのラインは、フレーム符号化モードで一括して符号化されるか、フィールド符号化モードで別々に符号化されることが可能である。
インターレースPフィールドは、既に復号されている1つまたは複数のフィールドを参照する。例えば、一部の実施形態では、インターレースPフィールドは、既に復号されている1つまたは2つのフィールドを参照し、インターレースBフィールドは、先行の参照フィールドを2つまでと、後続の参照フィールドを2つまで(すなわち、全部で4つまでの参照フィールドを)参照する(インターレースPフィールドの符号化および復号の手法については後で詳述する)。また、特に、一部の実施形態による、インターレースPフィールドおよび2つの参照インターレースPフィールドの詳細については、2004年5月27日出願、「Predicting Motion Vectors for Fields of Forward-predicted Interlaced Video Frames」という名称の特許文献1を参照されたい。
IV.インターレースPフィールドの参照フィールドの数
一部の実施形態では、単一の、現在のインターレースPフィールドの動き補償予測を実行する際に、既に符号化/復号されている2つのフィールドを参照フィールドとして用いることが可能である。一般に、参照フィールドを2つ用いることができれば、動き補償予測が1つの参照フィールドに制限される場合より、圧縮効率がよくなる。しかしながら、信号伝達オーバーヘッドは、参照フィールドを2つ使用できる場合のほうが大きい。これは、動きベクトルを有するマクロブロックまたはブロックのそれぞれに対し、2つのうちのどのフィールドが参照を与えるかを示す情報を余計に送らなければならないからである。
状況によっては、(参照フィールドが2つの場合と1つの場合とで)動きベクトルごとの潜在的動き補償プレディクタの数がより多いことの利点が、参照フィールド選択を信号伝達するために必要なオーバーヘッドを補って余りあるものにならない場合がある。例えば、最良の基準が、常に、可能な2つの参照フィールドのうちの一方から得られる場合は、2つではなく1つの参照フィールドを用いるほうが有利である可能性がある。通常、これは、2つの参照フィールドのうちの一方だけが現在のフィールドと同じシーンからのものになるようなシーン・チェンジによる場合である。または、シーケンスの先頭のように、参照フィールドが1つしか使用可能でない場合がある。こうした場合に効率的であるのは、参照フィールドが1つだけ使用されていることと、その1つの参照フィールドが何であるかを、現在のPフィールドのフィールド・レベルで信号伝達し、その決定が、現在のPフィールド内のマクロブロックおよびブロックに適用されるようにすることである。結果として、動きベクトルを有するマクロブロックまたはブロックで参照フィールド選択情報を送ることは不要になる。
A.様々なスキームでの参照フィールドの数
あるスキームでは、既に符号化/復号された2つのフィールドを、現在のPフィールドの参照フィールドとして用いることが可能である。(マクロブロックまたはブロックの)動きベクトルが用いる参照フィールドは、その動きベクトルに関する他の情報と同様に、その動きベクトルに関して信号伝達される。例えば、動きベクトルに関して、信号伝達される情報は、(1)参照フィールドと、(2)動きベクトルに関連付けられた現在のブロックまたはマクロブロックのブロック・プレディクタまたはマクロブロック・プレディクタに対する参照フィールドの位置、とを示す。または、参照フィールド情報および動きベクトル情報は、セクションXIIの複合実装形態のいずれかで説明されるように信号伝達される。
別のスキームでは、既に符号化/復号されたフィールドの1つだけを、現在のPフィールドの参照フィールドとして用いることが可能である。動きベクトルについては、動きベクトルが参照する参照フィールドを示すことは不要である。例えば、動きベクトルについては、信号伝達される情報は、動きベクトルに関連付けられた現在のブロックまたはマクロブロックの・プレディクタの、参照フィールド内の位置だけを示す。または、動きベクトル情報は、セクションXIIの複合実装形態のいずれかで説明されるように信号伝達される。1つの参照フィールドのスキームにおける動きベクトルは、一般に、2つの参照フィールドのスキームにおける同じ動きベクトルより少ないビット数で符号化される。
どのスキームの場合も、参照フィールド用のバッファまたはピクチャ記憶装置を、後続の動き補償のために更新することは単純である。現在のPフィールドの1つまたは複数の参照フィールドは、現在のPフィールドの前にある、現在のPフィールドに最も近いIまたはPフィールドと、現在のPフィールドに2番目に近いIまたはPフィールドとのうちのいずれかまたは両方である。候補参照フィールドの場所が既知であるので、符号化器および復号器は、バッファ管理信号を用いることなく、自動的に、次のPフィールドの動き補償用の参照ピクチャ・バッファを更新することが可能である。
あるいは、符号化器および復号器は、インターレースPフィールドの多数の参照フィールドに関して1つまたは複数の補助スキームを用いる。
B.信号伝達の例
本セクション、およびセクションXIIの複合実装形態で説明する、信号伝達の具体例では、現在のPフィールドに用いられる参照フィールドの数と、1つの参照フィールドが用いられる場合には、どの候補参照フィールドが用いられているかを信号伝達する。例えば、Pフィールド・ヘッダ内の(NUMREFと呼ばれる)1ビット・フィールドは、Pフィールドが参照として用いる先行フィールドが1つか2つかを示す。NUMREF=0であれば、参照フィールドが1つだけ用いられる。NUMREF=1であれば、参照フィールドが2つ用いられる。NUMREF=0の場合は、別の(REFFIELDと呼ばれる)1ビット・フィールドが存在し、2つのフィールドのうちのいずれを参照として用いるかを示す。REFFIELD=0であれば、時間的に近いほうのフィールドが参照フィールドとして用いられる。REFFIELD=1であれば、2つの候補参照フィールドのうち、時間的に遠いほうのフィールドが、現在のPフィールドの参照フィールドとして用いられる。あるいは、符号化器および復号器は、別の信号および/または追加の信号を参照フィールド選択のために用いる。
C.参照フィールドの場所
図24A〜図24Fは、インターレースPフィールドの動き補償予測に使用可能な参照フィールドの場所を示す。Pフィールドは、1つまたは2つの既に符号化/復号されたフィールドを参照として用いることが可能である。具体的には、図24A〜図24Fは、NUMREF=1およびNUMREF=0の場合の参照フィールドの例を示している。
図24Aおよび図24Bは、現在のPフィールドに対して2つの参照フィールドを用いる例を示す(NUMREF=1)。図24Aでは、現在のフィールドは、時間的に先行しているインターレース・ビデオ・フレームのトップ・フィールドとボトム・フィールドとを参照する。中間にあるインターレースBフィールドは、参照フィールドとして用いられない。図24Bでは、現在のフィールドは、現在のフィールドを含むインターレース・ビデオ・フレームの直前にあるインターレース・ビデオ・フレームのトップ・フィールドとボトム・フィールドとを参照する。
図24Cおよび図24Dは、現在のPフィールドに対して1つの参照フィールドを用いる例(NUMREF=0)を示し、この1つの参照フィールドは、時間的に最も近い参照フィールドである(REFFIELD=0)。この参照フィールドの極性は、現在のPフィールドの極性の反対である。このことは、例えば、現在のPフィールドが偶数ラインからのものであれば、参照フィールドが奇数ラインからのものであることを意味する。図24Cでは、現在のフィールドは、時間的に先行するインターレース・ビデオ・フレームのボトム・フィールドを参照し、そのインターレース・ビデオ・フレーム内のより遠くにあるトップ・フィールドを参照しない。この場合も、中間にあるインターレースBフィールドは、使用可能な参照フィールドではない。図24Dでは、現在のフィールドは、現在のフィールドを含むインターレース・ビデオ・フレームの直前にあるインターレース・ビデオ・フレームのボトム・フィールドを参照し、より遠くにあるトップ・フィールドは参照しない。
図24Eおよび図24Fは、現在のPフィールドに対して1つの参照フィールドを用いる例(NUMREF=0)を示し、この1つの参照フィールドは、時間的に2番目に近い参照フィールドである(REFFIELD=1)。この参照フィールドの極性は、現在のフィールドの極性と同じである。このことは、例えば、現在のフィールドが偶数ラインからのものであれば、参照フィールドも偶数ラインからのものであることを意味する。図24Eでは、現在のフィールドは、時間的に先行するインターレース・ビデオ・フレームのトップ・フィールドを参照し、より近くにあるボトム・フィールドを参照しない。この場合も、中間にあるインターレースBフィールドは、使用可能な参照フィールドではない。図24Fでは、現在のフィールドは、より近いボトム・フィールドではなくトップ・フィールドを参照する。
あるいは、符号化器および復号器は、別の場所またはタイミング、および/または追加の場所またはタイミングにある参照フィールドを、インターレースPフィールドの動き補償予測に用いる。例えば、現在のPフィールドと同じフレーム内にある参照フィールドが可能である。または、フレームのトップ・フィールドとボトム・フィールドのいずれかを先に符号化/復号することが可能である。
D.符号化手法
図20の符号化器(2000)のような符号化器が、複数の参照フィールド・スキームのうちのどれがインターレースPフィールドの符号化に用いられているかを信号伝達する。例えば、この符号化器は、図25Aに示す手法(2500)を実行する。
所与のインターレースPフィールドについて、符号化器は、インターレースPフィールドの動き補償予測に用いられている参照フィールドの数を信号伝達する(2510)。例えば、符号化器は、用いられている参照フィールドが1つか2つかを、単一ビットを用いて示す。あるいは、符号化器は、参照フィールドの数のために別の信号伝達/符号化メカニズムを用いる。
符号化器は、用いられている参照フィールドが1つか2つかを決定する(2520)。1つの参照フィールドが用いられている場合、符号化器は、インターレースPフィールドの参照フィールド選択を信号伝達する(2530)。例えば、符号化器は、用いられているのが、時間的に最も近い参照フィールド(先行するIまたはPフィールド)なのか、時間的に2番目に近い参照フィールド(先行するIまたはPフィールド)なのかを、単一ビットを用いて示す。あるいは、符号化器は、Pフィールドの参照フィールド選択のために別の信号伝達/符号化メカニズムを用いる。
2つの参照フィールドが用いられている場合、符号化器は、インターレースPフィールドのブロック、マクロブロック、または他の部分の動きベクトルの参照フィールド選択を信号伝達する(2540)。例えば、符号化器は、動きベクトルの参照フィールド選択を、動きベクトルの差分動きベクトル情報と統合的に符号化する。あるいは、符号化器は、動きベクトルの参照フィールド選択のために別の信号伝達/符号化メカニズムを用いる。符号化器は、次の動きベクトルについての信号伝達を、Pフィールドについて信号伝達すべき動きベクトルがなくなるまで繰り返す(2545、2540)(簡略化のために、図25Aでは、参照フィールド選択の信号伝達(2540)の後または前後にありうる、マクロブロックおよびブロックの符号化および対応する信号伝達の各種ステージを示していない。そうすることで、図25Aでは、Pフィールドの複数の動きベクトルの参照フィールド選択の信号伝達の繰り返しに注目している)。
あるいは、符号化器は、複数の参照フィールド・スキームのうちのどれがインターレースPフィールドの符号化に用いられているかを示すために別の手法を実行する。例えば、符号化器は、参照フィールドの数について、さらなるオプションおよび/または別のオプションを有する。
簡略化のために、図25Aでは、手法(2500)が、符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。
E.復号手法
図21の復号器(2100)のような復号器が、複数のスキームのどれをインターレースPフィールドの復号に用いるべきかを示す信号を受け取り、復号する。例えば、この復号器は、図25Bに示す手法(2550)を実行する。
所与のインターレースPフィールドについて、復号器は、インターレースPフィールドの動き補償予測に用いられている参照フィールドの数の信号を受け取り、復号する(2560)。例えば、復号器は、用いられている参照フィールドが1つか2つかを示す単一ビットを受け取り、復号する。あるいは、復号器は、参照フィールドの数のために別の復号メカニズムを用いる。
復号器は、用いられている参照フィールドが1つか2つかを決定する(2570)。1つの参照フィールドが用いられている場合、復号器は、インターレースPフィールドの参照フィールド選択の信号を受け取り、復号する(2580)。例えば、復号器は、用いられているのが、時間的に最も近い参照フィールド(先行するIまたはPフィールド)なのか、時間的に2番目に近い参照フィールド(先行するIまたはPフィールド)なのかを示す単一ビットを受け取り、復号する。あるいは、復号器は、Pフィールドの参照フィールド選択のために別の復号メカニズムを用いる。
2つの参照フィールドが用いられている場合、復号器は、インターレースPフィールドのブロック、マクロブロック、または他の部分の動きベクトルの参照フィールド選択の信号を受け取り、復号する(2590)。例えば、復号器は、動きベクトルの差分動きベクトル情報と統合的に符号化された動きベクトルの参照フィールド選択を復号する。あるいは、復号器は、動きベクトルの参照フィールド選択のために別の復号メカニズムを用いる。復号器は、次の動きベクトルについての信号の受け取りおよび復号を、Pフィールドについて信号伝達された動きベクトルがなくなるまで繰り返す(2595、2590)(簡略化のために、図25Bでは、参照フィールド選択の受け取りおよび復号(2590)の後または前後にありうる、マクロブロックおよびブロックの復号の各種ステージを示していない。そうすることで、図25Bでは、Pフィールドの複数の動きベクトルの参照フィールド選択の受け取り/復号の繰り返しに注目している)。
あるいは、復号器は、複数の参照フィールド・スキームのうちのどれがインターレースPフィールドの復号に用いられるかを決定するために別の手法を実行する。例えば、復号器は、参照フィールドの数について、さらなるオプションおよび/または別のオプションを有する。
簡略化のために、図25Bでは、手法(2550)が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。
V.インターレースPフィールドのマクロブロック・モード情報の信号伝達
一部の実施形態では、インターレースPフィールドのマクロブロックの各種のマクロブロック・モード情報が、信号伝達のために統合的にグループ化される。インターレースPフィールドのマクロブロックは、いくつかのシンタックス要素のうちのあるものが存在したり不在であったりする態様で、多様なモードで符号化されることが可能である。特に、動き補償のタイプ(例えば、1MV、4MV、またはイントラ)、符号化されたブロック・パターンがマクロブロックのビットストリーム内に存在するかどうか、および(1MVの場合に)動きベクトル・データがマクロブロックのビットストリーム内に存在するかどうか、が統合的に符号化される。マクロブロック・モード情報の様々なシナリオに対して様々な符号テーブルを用いて、情報の全体的な圧縮効率をより高めることが可能である。
本セクション、およびセクションXIIの複合実装形態で説明する信号伝達の具体例では、可変長符号化されたMBMODEシンタックス要素によりマクロブロック・モード情報を信号伝達する。MBMODEのテーブル選択は、フィールド・レベル要素である、固定長符号化されたMBMODETABによって信号伝達される。あるいは、符号化器および復号器は、他の信号および/または追加の信号を用いてマクロブロック・モード情報を信号伝達する。
A.様々なタイプのインターレースPフィールドのマクロブロック・モード
一般に、マクロブロック・モードは、マクロブロック・タイプ(1MV、4MV、またはイントラ)、マクロブロックの符号化されたブロック・パターンの存在/不在、およびマクロブロックの動きベクトル・データの存在/不在を示す。マクロブロックモードシンタックス要素によって示される情報は、インターレースPフィールドが、(イントラおよび/または1MVマクロブロックを有する)1MVフィールドとして符号化されているか、あるいは(イントラ、1MV、および/または4MVマクロブロックを有する)混在MVフィールドとして符号化されているかに依存する。
1MVインターレースPフィールドでは、マクロブロックのマクロブロック・モード要素は、マクロブロック・タイプ(イントラまたは1MV)、マクロブロックの符号化されたブロック・パターン要素の存在/不在、および(マクロブロック・タイプが1MVであって、イントラでない場合に)動きベクトル・データの存在/不在、を統合的に表現する。図26のテーブルは、1MVインターレースPフィールドのMBMODEによって信号伝達されるマクロブロック情報の完全なイベント空間を示す。
混在MVインターレースPフィールドでは、マクロブロックのマクロブロック・モード要素は、マクロブロック・タイプ(イントラ、1MVまたは4MV)、マクロブロックの符号化されたブロック・パターン要素の存在/不在、および(マクロブロック・タイプが1MVであって、イントラでも4MVでもでない場合に)動きベクトル・データの存在/不在、を統合的に表現する。図27のテーブルは、混在MVインターレースPフィールドのMBMODEによって信号伝達されるマクロブロック情報の完全なイベント空間を示す。
マクロブロック・モードが、動きベクトル・データが存在することを示している場合は、動きベクトル・データが、マクロブロック・レイヤ内に存在し、動きベクトル差分を信号伝達する。この動きベクトル差分は、動きベクトルを再構成するために、動きベクトル・プレディクタと結合される。マクロブロック・モード要素が、動きベクトル・データが存在しないことを示している場合は、動きベクトル差分がゼロであると見なされ、したがって、動きベクトルは動きベクトル・プレディクタと等しくなる。したがって、マクロブロック・モード要素は、動きベクトル・プレディクタだけを用いる(動きベクトル差分による修正がまったくない)動き補償がいつ行われるかを効率的に信号伝達する。
インターレースPフィールドのマクロブロック・モード要素の信号伝達には、複数の異なるVLCテーブルのうちの1つを用いる。例えば、図47Hは、混在MVインターレースPフィールドのマクロブロックのMBMODEのための、8つの異なる符号テーブルであり、図47Iは、1MVインターレースPフィールドのマクロブロックのMBMODEのための、8つの異なる符号テーブルである。テーブル選択は、フィールド・レイヤのところで信号伝達されるMBMODETAB要素によって示される。あるいは、符号化器および復号器は、他の符号および/または追加の符号を用いてマクロブロック・モード情報およびテーブル選択を信号伝達する。
B.符号化手法
図20の符号化器(2000)のような符号化器が、インターレースPフィールドのマクロブロックのマクロブロック・モード情報を符号化する。例えば、この符号化器は、図28Aに示す手法(2800)を実行する。
所与のインターレースPフィールドについて、符号化器は、インターレースPフィールドのマクロブロックのマクロブロック・モード情報を符号化するために用いる符号テーブルを選択する(2810)。例えば、符号化器は、図47Hまたは図47Iに示すMBMODE用VLCテーブルのうちの1つを選択する。あるいは、符号化器は、他のテーブルおよび/または追加のテーブルの中から選択する。
符号化器は、選択した符号テーブルをビットストリーム内で信号伝達する(2820)。例えば、符号化器は、所与のタイプのインターレースPフィールドについて選択した符号テーブルを示すFLCを信号伝達する。あるいは、符号化器は、別の符号テーブル選択用信号伝達メカニズム(例えば、符号テーブル選択にVLCを用いるメカニズム)を用いる。
符号化器は、マクロブロックのマクロブロック・モードを、使用可能な複数のマクロブロック・モードの中から選択する(2830)。例えば、符号化器は、マクロブロック・タイプ、符号化されたブロック・パターンが存在するかどうか、および(マクロブロック・タイプについて適用可能である場合に)動きベクトル・データが存在するかどうか、を示すマクロブロック・モードを選択する。MBMODEのオプションの様々な組合せを図26および図27にリストした。あるいは、符号化器は、マクロブロック・オプションの他の組合せおよび/または追加の組合せのために、他のマクロブロック・モードおよび/または追加のマクロブロック・モードの中から選択する。
符号化器は、選択したマクロブロック・モードを、選択した符号テーブルを用いて信号伝達する(2840)。一般に、符号化器は、マクロブロック・モードを、選択したVLCテーブルを用いてVLCとして信号伝達する。符号化器は、マクロブロック・モードの選択および信号伝達を、Pフィールドについて信号伝達すべきマクロブロック・モードがなくなるまで繰り返す(2845、2830、2840)(簡略化のために、図28Aでは、選択されたマクロブロック・モードの信号伝達(2840)の後または前後にありうる、マクロブロックおよびブロックの符号化および対応する信号伝達の各種ステージを示していない。そうすることで、図28Aでは、Pフィールドについて選択された符号テーブルを用いる、Pフィールド内の複数のマクロブロックのマクロブロック・モードの信号伝達の繰り返しに注目している)。
あるいは、符号化器は、インターレースPフィールド内の複数のマクロブロックのマクロブロック・モード情報を符号化するために、別の手法を実行する。例えば、図28Aでは、モードを選択する前に符号テーブルを選択するが、多くの一般的な符号化シナリオでは、符号化器は、最初にマクロブロックのマクロブロック・モードを選択し、それらの選択したマクロブロック・モードを効率的に信号伝達するための符号テーブルを選択してから、符号テーブル選択とモードとを信号伝達する。さらに、図28Aでは、インターレースPフィールドごとに符号テーブル選択を実行するが、別の方法として、符号テーブルが、より頻繁に、またはより少ない頻度で、または不定期に選択されたり、または符号化器が符号テーブル選択を完全にスキップ(すなわち、常に同じ符号テーブルを使用)したりする。または、符号化器は、コンテキスト情報から符号テーブルを選択することが可能である(これにより、符号テーブル選択の信号伝達が不要になる)。
簡略化のために、図28Aでは、手法(2800)が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。
C.復号手法
図21の復号器(2100)のような復号器が、インターレースPフィールドのマクロブロックのマクロブロック・モード情報を受け取り、復号する。例えば、この復号器は、図28Bに示す手法(2850)を実行する。
所与のインターレースPフィールドについて、復号器は、インターレースPフィールドのマクロブロックのマクロブロック・モード情報の復号に使用される符号テーブルの符号テーブル選択を受け取り、復号する(2860)。例えば、復号器は、所与のタイプのインターレースPフィールドについて選択された符号テーブルを示すFLCを受け取り、復号する。あるいは、復号器は、別の符号テーブル選択用信号伝達メカニズム(例えば、符号テーブル選択にVLCを用いるメカニズム)を用いる。
復号器は、復号した符号テーブル選択(および場合によって他の情報)に基づいて符号テーブルを選択する(2870)。例えば、復号器は、図47Hまたは図47Iに示すMBMODE用VLCテーブルのうちの1つを選択する。あるいは、復号器は、他のテーブルおよび/または追加のテーブルの中から選択する。
復号器は、マクロブロックのマクロブロック・モード情報を受け取り、復号する(2880)。例えば、マクロブロック・モード選択は、マクロブロック・タイプ、符号化されたブロック・パターンが存在するかどうか、および(マクロブロック・タイプについて適用可能である場合に)動きベクトル・データが存在するかどうかを示す。これらのMBMODEのオプションの様々な組合せを図26および図27にリストした。あるいは、マクロブロック・モードは、マクロブロック・オプションの他の組合せおよび/または追加の組合せのための、他のマクロブロック・モードおよび/または追加のマクロブロック・モードのうちの1つである。復号器は、次のマクロブロックのマクロブロック・モードの受け取りおよび復号を、Pフィールドについて受け取り、復号すべきマクロブロック・モードがなくなるまで繰り返す(2885、2880)(簡略化のために、図28Bでは、マクロブロック・モード選択の受け取りおよび復号(2880)の後または前後にありうる、マクロブロックおよびブロックの復号の各種ステージを示していない。そうすることで、図28Bでは、Pフィールドについて選択された符号テーブルを用いる、Pフィールド内の複数のマクロブロックのマクロブロック・モード選択の受け取り/復号の繰り返しに注目している)。
あるいは、復号器は、インターレースPフィールドのマクロブロックのマクロブロック・モード情報を復号するために、別の手法を実行する。例えば、図28Bでは、インターレースPフィールドごとに符号テーブル選択を実行するが、別の方法として、符号テーブルが、より頻繁に、またはより少ない頻度で、または不定期に選択されたり、復号器が符号テーブル選択を完全にスキップ(すなわち、常に同じ符号テーブルを使用)したりする。または、復号器が、コンテキスト情報から符号テーブルを選択することが可能である(これにより、符号テーブル選択の受け取りおよび復号が不要になる)。
簡略化のために、図28Bでは、手法(2850)が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。
VI.参照フィールドが2つであるインターレースPフィールドにおける参照フィールド選択
一部の実施形態では、単一の、現在のインターレースPフィールドの動き補償予測を行う際に、既に符号化/復号されている2つのフィールドを参照フィールドとして用いる(例についてはセクションIVを参照されたい)。信号伝達される情報は、動きベクトルを使用する各マクロブロック(またはブロック)に対して、2つのフィールドのどれが参照を与えるかを示す。
このセクションでは、現在のマクロブロックまたはブロックを符号化または復号する際の動き補償予測情報を与えるために、既に符号化/復号されている複数の参照フィールドのどれが用いられるかを効率的に信号伝達するための様々な手法およびツールについて説明する。例えば、符号化器および復号器は、インターレースPフィールド内の既に符号化されている動きベクトルに基づいて、現在のマクロブロックまたはブロックに対する優勢的および非優勢的な参照フィールドを暗黙のうちに導出する(または、これに対応して、符号化器および復号器は、優勢的および非優勢的な動きベクトル・プレディクタ極性を導出する)。そして、信号伝達される情報は、現在のマクロブロックまたはブロックの動き補償に用いられるのが優勢的な参照フィールドか、非優勢的な参照フィールドかを示す。
A.優勢的および非優勢的な参照フィールドおよび・プレディクタ
インターレース・フィールドを符号化するには、動き補償を用いないか(Iフィールド)、順方向動き補償を用いるか(Pフィールド)、あるいは順方向および逆方向動き補償を用いる(Bフィールド)。インターレースPフィールドは、2つの参照フィールド(既に符号化/復号されているIフィールドまたはPフィールド)を参照することが可能である。図24Aおよび図24Bは、現在のPフィールドに対して2つの参照フィールドを用いる例を示す。これら2つの参照フィールドは、極性が反対である。一方の参照フィールドがビデオ・フレームの奇数ラインを表し、もう一方の参照フィールドがビデオ・フレームの偶数ラインを表す(後者のビデオ・フレームは、奇数ラインの参照フィールドを含むフレームと同じフレームであるとは限らない)。現在符号化中または復号中のPフィールドは、既に符号化/復号されている2つのフィールドの一方または両方を、動き補償の参照として用いることが可能である。したがって、Pフィールドのマクロブロックまたはブロックの動きベクトル・データは、一般に、(1)どのフィールドを動き補償の参照フィールドとして用いるか、および(2)動き補償で用いるべきサンプル値の、その参照フィールドにおける変位/位置、を何らかの形で示す。
参照フィールド選択情報の信号伝達では、非効率な数のビットが消費される可能性がある。しかしながら、このビット数は、所与の動きベクトルに対して、どの参照フィールドが用いられるかを予測することと、およびその予測された参照フィールドが実際にその動きベクトルの参照フィールドとして用いられているかどうかを信号伝達すること、によって、低減が可能である。
例えば、インターフェースPフィールドにおいて動き補償を用いる各マクロブロックまたはブロックについて、符号化器または復号器は、隣接するマクロブロックまたはブロックから、既に符号化/復号されている最大3つの動きベクトルを、解析する。符号化器または復号器は、その解析結果から、優勢的および非優勢的な参照フィールドを導出する。要するに、符号化器または復号器は、可能な2つの参照フィールドのどれが、隣接するマクロブロックまたはブロックの大多数の動きベクトルによって用いられるかを決定する。隣接するマクロブロックまたはブロックの動きベクトルのうちのより多くによって参照されているフィールドが、優勢的な参照フィールドであり、そうでないほうの参照フィールドが、非優勢的な参照フィールドである。同様に、優勢的な参照フィールドの極性が、優勢的な動きベクトル・プレディクタ極性であり、非優勢的な参照フィールドの極性が、非優勢的な動きベクトル・プレディクタ極性である。
図29の擬似コードは、符号化器または復号器が優勢的および非優勢的な参照フィールドを決定する一手法を示す。この擬似コードでの用語「same field(同じフィールド)」および「opposite field(反対のフィールド)」は、現在のインターレースPフィールドを基準にしている。例えば、現在のPフィールドが偶数フィールドであれば、「same field」は偶数ラインの参照フィールドであり、「opposite field」は奇数ラインの参照フィールドである。図5A〜図10は、プレディクタA、B、およびCが取得される、隣接するマクロブロックおよびブロックの位置を示す。図29の擬似コードでは、優勢的なフィールドは、大多数の動きベクトル・プレディクタ候補によって参照されるフィールドである。同数の場合は、反対のフィールドから導出された動きベクトルが、優勢的な動きベクトル・プレディクタであると見なされる。イントラ符号化されたマクロブロックは、優勢的/非優勢的なプレディクタの算出では考慮されない。すべての候補プレディクタのマクロブロックがイントラ符号化されている場合、優勢的および非優勢的な動きベクトル・プレディクタはゼロに設定され、優勢的なプレディクタは、反対のフィールドからのものであると見なされる。
あるいは、符号化器および復号器は、隣接するマクロブロックまたはブロックからの他の動きベクトルおよび/または追加の動きベクトルを解析し、かつ/または、別の決定論理を適用して優勢的および非優勢的な参照フィールドを決定する。または、符号化器および復号器は、別のメカニズムを用いて、インターレースPフィールドの所与の動きベクトルについてどの参照フィールドが選択されるかを予測する。
場合によっては、優勢的あるいは非優勢的のどちらのフィールドが使用されるかを示す1ビットの情報が、差分動きベクトル情報と統合的に符号化される。したがって、この1ビットの情報のビット/シンボルは、真のシンボル・エントロピーとより正確に一致することが可能である。例えば、図30の擬似コードに示すように、優勢的/非優勢的選択子が、動きベクトル差分の垂直方向成分の一部として信号伝達される。この擬似コードでは、MVYが動きベクトルの垂直方向成分であり、PMVYが動きベクトル・プレディクタの垂直方向成分である。本質的には、垂直方向の動きベクトル差分は、次のように、参照フィールド選択子と垂直方向オフセット差分とを統合的に符号化する。
DMVY=(MVY−PMVY)*2+p
ここで、優勢的な参照フィールドが用いられている場合はp=0であり、非優勢的な参照フィールドが用いられている場合はp=1である。数値的な例として、現在のブロックが偶数極性であり、動きベクトルの実際の参照フィールドが偶数極性であり、優勢的なプレディクタがoppfield(言い換えると、優勢的な参照フィールドが奇数極性の参照フィールド)であるとする。さらに、動きベクトルの垂直方向変位が7単位(MVY=7)であり、動きベクトル・プレディクタの垂直方向成分が4単位(PMVY=4)であるとする。現在の参照フィールドおよび優勢的なプレディクタが反対の極性なので、DMVY=(7−4)*2+1=7である。
あるいは、優勢的/非優勢的選択子は、何らかの別の形で、動きベクトル差分情報と統合的に符号化される。または、優勢的/非優勢的選択子は、別のメカニズムによって信号伝達される。
B.符号化手法
図20の符号化器(2000)のような符号化器が、参照フィールドが2つであるインターレースPフィールドの動きベクトルの符号化時に、動きベクトル・プレディクタ候補の優勢的および非優勢的な参照フィールド極性を決定する。例えば、この符号化器は、現在のマクロブロックまたはブロックの動きベクトルについて、図31Aに示す手法(3100)を実行する。一般に、符号化器は、2つの参照フィールドにおいて何らかの形の動き推定を実行して、動きベクトルおよび参照フィールドを取得する。その動きベクトルを、手法(3100)に従って符号化する。
符号化器は、同じ参照フィールド極性の動きベクトル・プレディクタを動きベクトルとして決定する(3110)。例えば、符号化器は、セクションVIIで説明するように、動きベクトルに関連付けられた参照フィールドの動きベクトル・プレディクタを決定する。あるいは、符号化器は、別のメカニズムを用いて動きベクトル・プレディクタを決定する。
符号化器は、動きベクトルの優勢的および非優勢的な参照フィールド極性を決定する(3120)。例えば、符号化器は、図29の擬似コードに従う。あるいは、符号化器は、別の手法を用いて、優勢極性および非優勢極性を決定する。
符号化器は、優勢/非優勢の極性選択子をビットストリーム内で信号伝達する(3125)。この優勢/非優勢の極性選択子は、動きベクトルに関連付けられた動きベクトル・プレディクタおよび参照フィールドに対して用いるべき極性が優勢的か非優勢的かを示す。例えば、符号化器は、統合VLCを用いて、優勢的/非優勢の極性選択子を、他の情報と統合的に符号化する。あるいは、符号化器は、優勢的/非優勢の極性選択子を、別のメカニズム、例えば、選択子を示すビットの算術符号化、を用いて信号伝達する。動きベクトル・プレディクタの参照フィールド極性を予測すると、選択子情報のエントロピーが小さくなり、選択子情報のより効率的な符号化が可能になる。
符号化器は、動きベクトル予測および動きベクトルから動きベクトル差分を算出し(3130)、その動きベクトル差分の情報を信号伝達する(3140)。
あるいは、符号化器は、別の手法を用いて、参照フィールドが2つであるインターレースPフィールドの動きベクトルの符号化時に、動きベクトル予測の優勢/非優勢の極性を決定する。さらに、図31Aでは、優勢/非優勢の極性選択子と動きベクトル差分情報とを別々に信号伝達しているが、様々な実施形態において、これらの厳密な情報が統合的に信号伝達される。ほかにも様々な順序変更が可能である。例えば、(選択子の信号伝達のオーバーヘッドのコストを動きベクトル選択処理に織り込むために)優勢/非優勢の極性を決定してから動きベクトルを決定することが可能である。
簡略化のために、図31Aでは、手法(3100)が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。
C.復号手法
図21の復号器(2100)のような復号器が、参照フィールドが2つであるインターレースPフィールドの動きベクトルの復号時に、動きベクトル・プレディクタ候補の優勢的および非優勢的な参照フィールド極性を決定する。例えば、この復号器は、図31Bに示す手法(3150)を実行する。
復号器は、現在のマクロブロックまたはブロックの動きベクトルの優勢的および非優勢的参照フィールド極性を決定する(3160)。例えば、復号器は、図29の擬似コードに従う。あるいは、復号器は、別の手法を用いて、優勢および非優勢の極性を決定する。
復号器は、ビットストリーム内の優勢/非優勢の極性選択子を受け取り、復号する(3165)。優勢/非優勢の極性選択子は、動きベクトルに関連付けられた動きベクトル・プレディクタおよび参照フィールドに対して用いるべき極性が優勢的か非優勢的かを示す。例えば、復号器は、統合VLCを用いて他の情報と統合的に符号化されている優勢/非優勢の極性選択子を受け取り、復号する。あるいは、復号器は、信号伝達された優勢/非優勢の極性選択子を受け取り、別のメカニズム(例えば、選択子を示すビットの算術復号)を用いて復号する。
復号器は、動きベクトルに用いられる、参照フィールドの動きベクトル・プレディクタを決定する(3170)。例えば、復号器は、セクションVIIで説明するように、信号伝達された極性に対する動きベクトル・プレディクタを決定する。あるいは、復号器は、別のメカニズムを用いて動きベクトル・プレディクタを決定する。
復号器は、動きベクトル差分の情報を受け取って復号し(3180)、動きベクトル差分と動きベクトル・プレディクタとから動きベクトルを再構成する(3190)。
あるいは、復号器は、別の手法を用いて、参照フィールドが2つであるインターレースPフィールドの動きベクトルの復号時に、動きベクトル予測の優勢/非優勢の極性を決定する。例えば、図31Bでは、優勢/非優勢の極性選択子と動きベクトル差分情報とを別々に信号伝達しているが、代替方法では、これらの情報が統合的に信号伝達される。さらに他の様々な順序変更が可能である。
簡略化のために、図31Bでは、手法(3150)が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。
VII.インターレースPフィールドのハイブリッド動きベクトル予測
一部の実施形態では、動きベクトルの信号伝達に関連するビットレートを下げるために、動きベクトルを、動きベクトル・プレディクタに対する差分として信号伝達する。動きベクトル差分の信号伝達の性能は、動きベクトル予測の質に部分的に依存する。動きベクトル予測の質は、現在のマクロブロック、ブロックなどの周辺の領域において複数の候補動きベクトル・プレディクタが考慮される場合に高まる。しかしながら、場合によっては、複数の候補プレディクタを用いると、動きベクトル予測の質が低下する。これは、例えば、動きベクトル・プレディクタが、多様な(例えば、動きベクトル・プレディクタ間の分散が大きい)候補プレディクタの集合のメジアンとして算出される場合に起こる。
したがって、一部の実施形態では、符号化器および復号器は、インターレースPフィールドの動きベクトルのハイブリッド動きベクトル予測を実行する。現在のマクロブロックまたはブロックと因果関係を有する近傍を構成するベクトルが、何らかの基準からみて多様である場合に、ハイブリッド動きベクトル予測モードが用いられる。このモードでは、候補プレディクタの集合のメジアンを動きベクトル・プレディクタとして用いる代わりに、その集合にある特定の動きベクトル(例えば、上のプレディクタ、左のプレディクタ)を、選択子ビットまたは符号ワードによって信号伝達する。これにより、インターレースPフィールドにおける動きの不連続点での動きベクトル予測を向上させることが可能になる。参照フィールドが2つであるインターレースPフィールドの場合は、ハイブリッド動きベクトル予測条件のチェック時に、優勢極性がさらに考慮される。
A.インターレースPフィールドの動きベクトル予測
ハイブリッド動きベクトル予測は、インターレースPフィールドの通常の動きベクトル予測の特殊なケースである。既述のように、動きベクトルは、動きベクトル・プレディクタに(ビットストリーム内で信号伝達される)動きベクトル差分を加算することによって再構成される。プレディクタは、最大3つの隣接する動きベクトルから算出される。図5A〜図10は、動きベクトル予測のためにプレディクタA、B、およびCが取得される、隣接するマクロブロックおよびブロックの位置を示す(これらの図は、プログレッシブPフレームのマクロブロックおよびブロックを示しているが、セクションVIで説明するように、インターレースPフィールドのマクロブロックおよびブロックにも当てはまる)。
インターレースPフィールドが1つの先行フィールドだけを参照する場合は、Pフィールドの動きベクトルのそれぞれに対して動きベクトル・プレディクタが1つずつ算出される。例えば、図51Aおよび図51B(または代替として図60Aおよび図60B)の擬似コードは、セクションXIIで詳述する、参照フィールドが1つであるインターレースPフィールドの動きベクトルに対して動きベクトル・プレディクタが算出される要素を示す。
インターレースPフィールドに対して2つの参照フィールドが用いられる場合は、Pフィールドの動きベクトルのそれぞれに対して2つずつの動きベクトル・プレディクタが可能である。両方の動きベクトル・プレディクタを算出してから一方を選択することも可能であり、最初にプレディクタの選択を決定することによって一方の動きベクトル・プレディクタだけを算出することも可能である。一方の候補動きベクトル・プレディクタは優勢的な参照フィールドにあり、もう一方の候補動きベクトル・プレディクタは非優勢的な参照フィールドにある(用語の「優勢的」および「非優勢的」は、例えば、セクションVIで説明したとおりである)。優勢的な参照フィールドと非優勢的な参照フィールドは反対の極性を有するので、一方の動きベクトル・プレディクタは現在のPフィールドと同じ極性の参照フィールドにあり、もう一方の動きベクトル・プレディクタは現在のPフィールドと反対の極性の参照フィールドにある。例えば、図52A〜図52Nの擬似コードおよびテーブルは、セクションXIIで詳述する、参照フィールドが2つであるPフィールドの動きベクトルの動きベクトル・プレディクタを算出する方法を示す。変数samefieldpred_xおよびsamefieldpred_yは、それぞれ、同じフィールドにある動きベクトル・プレディクタの水平方向成分および垂直方向成分を表し、変数oppositefieldpred_xおよびoppositefieldpred_yは、それぞれ、反対のフィールドにある動きベクトル・プレディクタの水平方向成分および垂直方向成分を表す。変数dominantpredictorは、優勢的なプレディクタがどのフィールドに含まれるかを示す。predictor_flagは、動きベクトルに対して用いられているプレディクタが優勢的か非優勢的かを示す。あるいは、図61A〜図61Fの擬似コードを用いる。
B.インターレースPフィールドのハイブリッド動きベクトル予測
動きベクトルのハイブリッド動きベクトル予測では、符号化器および復号器が、動きベクトルのハイブリッド動きベクトル予測条件をチェックする。この条件は、一般に、動きベクトル・プレディクタの分散の度合いに関連する。評価されるプレディクタは、候補動きベクトル・プレディクタおよび/または通常の動きベクトル予測を用いて算出される動きベクトル・プレディクタであることが可能である。条件が満たされた場合(例えば、分散の度合いが高い場合)は、一般に、通常の動きベクトル・プレディクタではなく、オリジナルの候補動きベクトル・プレディクタのうちの1つが用いられる。符号化器は、どのハイブリッド動きベクトル・プレディクタを用いるべきかを信号伝達し、復号器は、その信号を受け取り、復号する。ハイブリッド動きベクトル・プレディクタは、インター・プレディクタの分散が小さい場合(よくあるケースである)には用いられない。
符号化器および復号器は、インターレースPフィールドの各動きベクトルについて、その動きベクトルがマクロブロック用であれ、ブロック用であれ、それ以外であれ、ハイブリッド動きベクトル条件をチェックする。言い換えると、符号化器および復号器は、各動きベクトルについて、ハイブリッド動きベクトル条件がトリガされていて、それゆえ、プレディクタ選択信号が期待されるかどうかを決定する。あるいは、符号化器および復号器は、インターレースPフィールドの一部の動きベクトルについてのみハイブリッド動きベクトル条件をチェックする。
インターレースPフィールドのハイブリッド動きベクトル予測の利点は、良好な動きベクトル・プレディクタを選択するために、算出されたプレディクタと優勢極性とを用いる点である。多彩な実験の結果から、後述するハイブリッド動きベクトル予測は、ハイブリッド動きベクトル予測を行わない動きベクトル予測より、さらにはハイブリッド動きベクトル予測の従来の実装より、大幅にすぐれた圧縮/画質をもたらすことがわかった。のみならず、ハイブリッド・ベクトル予測チェックに必要な追加算出のコストはあまり大きくない。
一部の実施形態では、符号化器または復号器は、オリジナルの候補動きベクトル・プレディクタの集合に対して、(セクションVII.Aで説明した手法によって決定される)通常の動きベクトル・プレディクタを検査する。通常の動きベクトル・プレディクタは、プレディクタA、B、および/またはCの成分ごとのメジアンであり、符号化器または復号器はそれを、プレディクタAおよびプレディクタCを基準にして検査する。この検査は、通常の動きベクトル・プレディクタと候補との間の分散が大きいかどうかをチェックする。大きい場合は、真の動きベクトルが、メジアン操作から導出されたプレディクタよりも、候補プレディクタ(A、B、またはC)のいずれかに近い可能性が大きい。候補プレディクタが互いに離れている場合は、これらの成分ごとのメジアンは良好な予測を与えないので、真の動きベクトルがAに近いかCに近いかを示す追加信号を送るほうが効率的である。プレディクタAがその近いプレディクタである場合は、プレディクタAが現在の動きベクトルの動きベクトル・プレディクタとして用いられ、プレディクタCがその近いプレディクタである場合は、プレディクタCが現在の動きベクトルの動きベクトル・プレディクタとして用いられる。
図32の擬似コードは、復号時の、そのようなハイブリッド動きベクトル予測を示す。変数predictor_pre_xおよびpredictor_pre_yは、それぞれ、通常のハイブリッド動きベクトル予測を用いて算出される水平方向および垂直方向の動きベクトル・プレディクタである。変数predictor_post_xおよびpredictor_post_yは、それぞれ、ハイブリッド動きベクトル予測後の、水平方向および垂直方向の動きベクトル・プレディクタである。この擬似コードでは、動きベクトル・プレディクタ選択がビットストリーム内で明示的に符号化されているかどうかを調べるために、通常の動きベクトル・プレディクタが、プレディクタAおよびCに対して検査される。そうなっている場合は、動きベクトル・プレディクタとしてプレディクタAを用いるか、プレディクタCを用いるかを示す単一ビットがビットストリーム内に存在する。そうなっていない場合は、通常の動きベクトル・プレディクタが用いられる。他の様々な条件(例えば、AまたはCがイントラである場合の、通常の動きベクトルの大きさ)もチェックすることが可能である。AまたはCがイントラである場合は、AまたはCに対応する動きがそれぞれゼロであると見なされる。
参照フィールドが2つであるPフィールドの動きベクトルの場合は、すべてのプレディクタが同一極性を有する。一部の実施形態では、参照フィールド極性は、優勢的/非優勢的なプレディクタ極性と、差分動きベクトル復号処理で得られる選択子信号とによって決定される。例えば、反対のフィールド・プレディクタが用いられている場合は、
predictor_pre_x = oppositefieldpred_x、
predictor_pre_x = oppositefieldpred_y、
predictorA_x = oppositefieldpredA_x、
predictorA_y = oppositefieldpredA_y、
predictorC_x = oppositefieldpredC_x、および
predictorC_y = oppositefieldpredC_yである。
同じフィールド・プレディクタが用いられている場合は、
predictor_pre_x = samefieldpred_x、
predictor_pre_x = samefieldpred_y、
predictorA_x = samefieldpredA_x、
predictorA_y = samefieldpredA_y、
predictorC_x = samefieldpredC_x、および
predictorC_y = samefieldpredC_yである。oppositefieldpredおよびsamefieldpredの値は、例えば、図52A〜図52Jまたは図61A〜図61Fの擬似コードにあるように算出される。図53は、複合実装形態(セクションXIIを参照)におけるハイブリッド動きベクトル予測の代替擬似コードである。
あるいは、符号化器および復号器は、別のハイブリッド動きベクトル予測条件(例えば、他のプレディクタおよび/または追加のプレディクタを検討する条件、動きの不連続を検出するために別の決定論理を用いる条件、および/または別の分散しきい値(32以外を用いる条件)を検査する。
2つの候補プレディクタ(例えば、AおよびC)から選択する単純な信号は、動きベクトルごとに1ビットである。あるいは、符号化器および復号器は、別の信号伝達メカニズム(例えば、選択子ビットと他の情報(動きベクトルデータなど)とを統合的に信号伝達するメカニズム)を用いる。
C.符号化手法
図20の符号化器(2000)のような符号化器が、インターレースPフィールドの動きベクトルの符号化時にハイブリッド動きベクトル予測を行う。例えば、この符号化器は、現在のマクロブロックまたはブロックの動きベクトルについて、図33Aに示す手法(3300)を実行する。
符号化器は、動きベクトルの動きベクトル・プレディクタを決定する(3310)。例えば、符号化器は、セクションVII.Aで説明した手法を用いて、動きベクトル・プレディクタを決定する。あるいは、符号化器は、別の手法を用いて動きベクトル・プレディクタを決定する。
次に符号化器は、その動きベクトル・プレディクタのハイブリッド動きベクトル予測条件をチェックする(3320)。例えば、符号化器は、図32に示した、復号器側の擬似コードを逆の形で反映した処理を実行する手法(technique that mirrors the decoder-side pseudocode)を用いる。あるいは、符号化器は、別のハイブリッド動きベクトル予測条件をチェックする(対応する復号器は、符号化器と同じハイブリッド動きベクトル予測条件を、その条件がどのようなものであれ、チェックする。これは、プレディクタ信号情報の存在/不在が暗黙のうちに符号化器および対応する復号器によって導出されるからである)。
ハイブリッド動きベクトル条件がトリガされていない場合(判断3325からの「いいえ」のパス)、符号化器は、最初に決定された動きベクトル予測子を用いる。
これに対し、ハイブリッド動きベクトル条件がトリガされている場合(判断3325からの「はい」のパス)、符号化器は、用いるハイブリッド動きベクトル・プレディクタを選択する(3330)。例えば、符号化器は、隣接する動きベクトルである、上の候補プレディクタおよび左の候補プレディクタから選択する。あるいは、符号化器は、他のプレディクタおよび/または追加のプレディクタの中から選択する。
次に符号化器は、選択したハイブリッド動きベクトル・プレディクタを信号伝達する(3340)。例えば、符号化器は、動きベクトル・プレディクタとして用いられるのが上の候補プレディクタか、左の候補プレディクタかを示す単一ビットを送信する。あるいは、符号化器は、別の信号伝達メカニズムを用いる。
符号化器は、(例えば、マクロブロック・タイプに応じて)インターレースPフィールドのすべての動きベクトルに対して、または、インターレースPフィールドの特定の動きベクトルに対してのみ、手法(3300)を実行する。簡略化のために、図33Aでは、手法(3300)が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。
D.復号手法
図21の復号器(2100)のような復号器が、インターレースPフィールドの動きベクトルの復号時にハイブリッド動きベクトル予測を行う。例えば、この復号器は、現在のマクロブロックまたはブロックの動きベクトルについて、図33Bに示す手法(3350)を実行する。
復号器は、動きベクトルの動きベクトル・プレディクタを決定する(3360)。例えば、復号器は、セクションVII.Aで説明した手法を用いて、動きベクトル・プレディクタを決定する。あるいは、復号器は、別の手法を用いて動きベクトル・プレディクタを決定する。
次に復号器は、その動きベクトル・プレディクタのハイブリッド動きベクトル予測条件をチェックする(3370)。例えば、復号器は、図32の擬似コードに従う。あるいは、復号器は、別のハイブリッド動きベクトル予測条件をチェックする(復号器は、対応する符号化器と同じハイブリッド動きベクトル予測条件を、その条件がどのようなものであれ、チェックする)。
ハイブリッド動きベクトル条件がトリガされていない場合(判断3375からの「いいえ」のパス)、復号器は、最初に決定された動きベクトル・プレディクタを用いる。
これに対し、ハイブリッド動きベクトル条件がトリガされている場合(判断3375からの「はい」のパス)、復号器は、選択されたハイブリッド動きベクトル・プレディクタを示す信号を受け取り、復号する(3380)。例えば、復号器は、動きベクトル・プレディクタとして用いられるのが上の候補プレディクタか、左の候補プレディクタかを示す単一ビットを取得する。あるいは、復号器は、別の信号伝達メカニズムと連係して動作する。
次に復号器は、用いるハイブリッド動きベクトル・プレディクタを選択する(3390)。例えば、復号器は、隣接する動きベクトルである、上の候補プレディクタおよび左の候補プレディクタから選択する。あるいは、復号器は、他のプレディクタおよび/または追加のプレディクタの中から選択する。
復号器は、(例えば、マクロブロック・タイプに応じて)インターレースPフィールドのすべての動きベクトルに対して、または、インターレースPフィールドの特定の動きベクトルに対してのみ、手法(3350)を実行する。簡略化のために、図33Bでは、手法(3350)が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。
VIII.動きベクトル・ブロック・パターン
一部の実施形態では、マクロブロックが複数の動きベクトルを有することが可能である。例えば、混在MVインターレースPフィールドのマクロブロックは、1つの動きベクトルまたは4つの動きベクトル(マクロブロックのルミナンス・ブロックごとに1つ)を有するか、イントラ符号化される(動きベクトルを有しない)ことが可能である。同様に、インターレースPフレームのフィールド符号化されたマクロブロックは、2つの動きベクトル(フィールドごとに1つ)または4つの動きベクトル(フィールドごとに2つ)有することが可能であり、インターレースPフレームのフレーム符号化されたマクロブロックは、1つの動きベクトルまたは4つの動きベクトル(ルミナンス・ブロックごとに1つ)を有することが可能である。
2MVまたは4MVマクロブロックは、信号伝達すべき関連付けられた動きベクトル・データ(例えば、差分)を有しない場合には、「スキップされた」ものとして信号伝達されることが可能である。その場合には、動きベクトル・プレディクタが、そのマクロブロックの動きベクトルとして用いられるのが普通である。または、マクロブロックは、1つの動きベクトルについては信号伝達すべき非ゼロの動きベクトル・データを有し、((0,0)の動きベクトル差分を有する)別の動きベクトルについては有しないことが可能である。すべての動きベクトルではないが少なくとも1つの動きベクトルについて(0,0)の差分を有する2MVまたは4MVマクロブロックの場合は、動きベクトル・データを信号伝達することで非効率的な数のビットが消費される可能性がある。
したがって、一部の実施形態では、符号化器または復号器は、複数の動きベクトルを有するマクロブロックの動きベクトル・データの存在または不在を効率的に信号伝達する信号伝達メカニズムを用いる。マクロブロックの、動きベクトルの符号化されたブロック・パターン(または短縮して「動きベクトル・ブロック・パターン」)は、どのブロック、フィールド、半フィールドなどが、ビットストリーム内で信号伝達される動きベクトル・データを有し、どのブロック、フィールド、半フィールドなどが有していないかを、動きベクトルごとに示す。動きベクトル・ブロック・パターンは、マクロブロックの動きベクトル・データのパターンを統合的に信号伝達する。これによって、符号化器および復号器は、ブロック間に存在する空間的相関を活用することが可能になる。さらに、動きベクトル・データの存在/不在を動きベクトル・ブロック・パターンで信号伝達することにより、この情報を、変換係数データ(CBPCY要素を有するデータなど)の存在/不在に関する信号伝達と切り離す形で単純に信号伝達することが可能になる。
本セクション、およびセクションXIIの複合実装形態で説明する信号伝達の具体例では、可変長符号化された2MVBPおよび4MVBPシンタックス要素により動きベクトル・ブロック・パターンを信号伝達する。2MVBPおよび4MVBPについてのテーブル選択は、それぞれ、固定長符号化された2MVBPTABおよび4MVBPTAB要素によって信号伝達される。あるいは、符号化器および復号器は、他の信号および/または追加の信号を用いて動きベクトル・ブロック・パターンを信号伝達する。
A.動きベクトル・ブロック・パターン
動きベクトル・ブロック・パターンは、複数の動きベクトルを有するマクロブロックについて、どの動きベクトルが「符号化されている」か、および、どの動きベクトルが「符号化されていない」かを示す。動きベクトルが符号化されるのは、その動きベクトルの差分動きベクトルが非ゼロの場合(すなわち、信号伝達される動きベクトルが、その動きベクトル・プレディクタと異なる場合)である。そうでない場合は、動きベクトルは符号化されない。
マクロブロックが4つの動きベクトルを有する場合、動きベクトル・ブロック・パターンは4ビットを有し、各ビットが4つの動きベクトルのそれぞれに対応する。動きベクトル・ブロック・パターン内のビットの並びは、インターレースPフィールドの4MVマクロブロックまたはインターレースPフレームの4MVフレーム符号化されたマクロブロックの場合には、図34に示すブロック並びに従う。インターレースPフレームの4MVフィールド符号化されたマクロブロックの場合、動きベクトル・ブロック・パターンのビット並びは、左上のフィールドの動きベクトル、右上のフィールドの動きベクトル、左下のフィールドの動きベクトル、および右下のフィールドの動きベクトルである。
マクロブロックが2つの動きベクトルを有する場合、動きベクトル・ブロック・パターンは2ビットを有し、各ビットが2つの動きベクトルのそれぞれに対応する。インターレースPフレームの2MVフィールド符号化されたマクロブロックの場合、動きベクトル・ブロック・パターンのビット並びは、単純に、トップ・フィールドの動きベクトル、そしてボトム・フィールドの動きベクトルである。
動きベクトル・ブロック・パターン要素を信号伝達するために、複数の異なるVLCテーブルのうちの1つを用いることが可能である。例えば、図47Jは、4MVBPの場合の4つの異なる符号テーブルを示し、図47Kは、2MVBPの場合の4つの異なる符号テーブルを示す。テーブル選択は、ピクチャ・レイヤにおいて信号伝達される4MVBPTABまたは2MVBPTAB要素によって示される。あるいは、符号化器および復号器は、他の符号および/または追加の符号を用いて動きベクトル・ブロック・パターン情報およびテーブル選択を信号伝達する。
参照フィールドが2つであるインターレースPフィールドのマクロブロックについては、どの動きベクトルが符号化されているかを決定する追加規則が適用される。「符号化されていない」動きベクトルは、セクションVIで説明したように、優勢的なプレディクタを有する。「符号化されている」動きベクトルは、ゼロ値の動きベクトル差分を有することが可能であるが、非優勢的なプレディクタを信号伝達することが可能である。または、「符号化されている」動きベクトルは、非ゼロの差分動きベクトルを有することが可能であり、優勢的なプレディクタでも非優勢的なプレディクタでも信号伝達することが可能である。
あるいは、符号化器および復号器は、他の種類および/または追加の種類のピクチャの動きベクトル・ブロック・パターン、他の種類および/または追加の種類のマクロブロックの動きベクトル・ブロック・パターン、他の数および/または追加の数の動きベクトルの動きベクトル・ブロック・パターン、および/または異なるビット位置の動きベクトル・ブロック・パターンを用いる。
B.符号化手法
図20の符号化器(2000)のような符号化器が、動きベクトル・ブロック・パターンを用いて、マクロブロックの動きベクトル・データを符号化する。例えば、この符号化器は、図35Aに示す手法(3500)を実行する。
複数の動きベクトルを有する所与のマクロブロックに対して、符号化器は、そのマクロブロックの動きベクトル・ブロック・パターンを決定する(3510)。例えば、符号化器は、インターレースPフィールドの4MVマクロブロックについて、またはインターレースPフレームの4MVフィールド符号化またはフレーム符号化されたマクロブロックについて、4つの動きベクトル・ブロック・パターンを決定する。または、符号化器は、インターレースPフレームの2MVフィールド符号化されたマクロブロックについて、2つの動きベクトル・ブロック・パターンを決定する。あるいは、符号化器は、別の種類のマクロブロックおよび/または別の数の動きベクトルについて動きベクトル・ブロック・パターンを決定する。
次に符号化器は、動きベクトル・ブロック・パターンを信号伝達する(3520)。通常、符号化器は、例えば、図47Jおよび図47Kに示すような符号テーブルを用いて、動きベクトル・ブロック・パターンのVLCを信号伝達する。あるいは、符号化器は、別のメカニズムを用いて、動きベクトル・ブロック・パターンを信号伝達する。
動きベクトル・データを信号伝達すべき動きベクトルが少なくとも1つ存在する場合(判断3525からの「はい」のパス)、符号化器は、その動きベクトルの動きベクトル・データを信号伝達する(3530)。例えば、符号化器は、セクションIXで説明する手法を用いて、動きベクトル・データをBLKMVDATA、TOPMVDATA、またはBOTMVDATA要素として符号化する。あるいは、符号化器は、別の信号伝達手法を用いる。
符号化器は、動きベクトル・データの符号化を、動きベクトル・データを信号伝達すべき動きベクトルがなくなるまで(判断3525からの「いいえ」のパス)繰り返す(3525、3530)。
符号化器は、動きベクトル・ブロック・パターンを符号化するために複数の符号テーブルから符号テーブルを選択することが可能である(図35Aには示していない)。例えば、符号化器は、インターレースPフィールドまたはPフレームについて符号テーブルを選択し、その符号テーブルを用いて、ピクチャ内のマクロブロックの動きベクトル・ブロック・パターンを符号化する。あるいは、符号化器は、符号テーブルを、より頻繁に、またはより少ない頻度で、または不定期に選択したり、符号テーブル選択を完全にスキップ(すなわち、常に同じ符号テーブルを使用)したりする。または、符号化器が、コンテキスト情報から符号テーブルを選択することが可能である(これにより、符号テーブル選択の信号伝達が不要になる)。符号テーブルは、図47Jおよび図47Kに示すテーブル、他のテーブル、および/または追加のテーブルであることが可能である。符号化器は、例えば、選択された符号テーブルを示すFLC、選択された符号テーブルを示すVLC、または別の信号伝達メカニズムを用いて、選択された符号テーブルをビットストリーム内で信号伝達する。
あるいは、符号化器は、別の手法により、動きベクトル・ブロック・パターンを用いてマクロブロックの動きベクトル・データを符号化する。簡略化のために、図35Aでは、手法(3500)が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態様については、セクションXIIで詳述する。
C.復号手法
図21の復号器(2100)のような復号器が、動きベクトル・ブロック・パターンを用いて、インターレースPフィールドまたはインターレースPフレームのマクロブロックの動きベクトル・データを受け取り、復号する。例えば、この復号器は、図35Bに示す手法(3550)を実行する。
複数の動きベクトルを有する所与のマクロブロックに対して、復号器は、そのマクロブロックの動きベクトル・ブロック・パターンを受け取り、復号する(3560)。例えば、復号器は、前のセクションで説明した、4つの動きベクトル・ブロック・パターン、2つの動きベクトル・ブロック・パターン、または他の動きベクトル・ブロック・パターンを受け取り、復号する。通常、復号器は、動きベクトル・ブロック・パターンのVLCを受け取り、例えば、図47Jおよび図47Kに示すような符号テーブルを用いて復号する。あるいは、復号器は、別の信号伝達メカニズムと連係して、動きベクトル・ブロック・パターンを受け取り、復号する。
動きベクトル・データが信号伝達されている動きベクトルが少なくとも1つ存在する場合(判断3565からの「はい」のパス)、復号器は、その動きベクトルの動きベクトル・データを受け取り、復号する(3570)。例えば、復号器は、セクションIXで説明する手法を用いてBLKMVDATA、TOPMVDATA、またはBOTMVDATA要素として符号化された動きベクトル・データを受け取り、復号する。あるいは、復号器は、別の復号手法を用いる。
復号器は、動きベクトル・データの受け取りおよび復号を、動きベクトル・データが信号伝達されるべき動きベクトルがなくなるまで(判断3565からの「いいえ」のパス)繰り返す(3565、3570)。
復号器は、動きベクトル・ブロック・パターンを復号するために複数の符号テーブルから符号テーブルを選択することが可能である(図35Bには示していない)。例えば、テーブル選択オプションおよびテーブル選択信号伝達オプションは、前のセクションで符号化器について説明した内容を逆の形で反映した処理を実行する。
あるいは、復号器は、別の手法により、動きベクトル・ブロック・パターンを用いてマクロブロックの動きベクトル・データを復号する。簡略化のために、図35Bでは、手法(3550)が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。
IX.インターレースPフィールドの動きベクトル差分
一部の実施形態では、単一の、現在のインターレースPフィールドの動き補償予測を行う際に、既に符号化/復号されている2つのフィールドを参照フィールドとして用いる(例については、セクションIV、VI、およびVIIを参照されたい)。Pフィールドの動きベクトルについて信号伝達される情報は、(1)2つのフィールドのどれが動きベクトルの参照を与えるか、および(2)動きベクトル値、を指し示す。通常、動きベクトル値は、動きベクトル・プレディクタに対する差分として信号伝達される。可能な2つの参照フィールドからの選択は、その動きベクトルに関する1つのビットを追加して信号伝達されることが可能であるが、その信号伝達方式は、多くの場合、非効率的である。通常、2つの参照フィールドは、所与の動きベクトルに対して同程度に可能性があるわけではなく、動きベクトルに関する選択は、他の(例えば、隣接する)動きベクトルに関する選択と無関係ではない。したがって、実際には、選択ごとに1つのビットを用いる参照フィールド選択の信号伝達は、効率的でないのが普通である。
そこで、一部の実施形態では、符号化器が、動きベクトル差分情報と参照フィールド選択情報とを統合的に符号化する。復号器は、統合的に符号化された情報について、対応する復号を実行する。
A.理論および実験結果
参照フィールドが2つであるインターレースPフィールドの場合、2つの参照フィールドは、そのPフィールドに対して以下の空間的および時間的関係を有する。時間的順序において最も近い参照フィールドの極性は、現在のPフィールドの極性の反対である。例えば、現在のPフィールドが(インターレース・フレームの偶数ラインで構成される)偶数フィールドの場合は、時間的順序における最も近い参照フィールドが奇数フィールドであり、もう一方の参照フィールド(時間的順序における遠いほうのフィールド)が偶数フィールドである。
符号化器および復号器は、因果関係を示す情報(causal information)を用いて現在の動きベクトルの参照フィールド選択を予測する。例えば、既に符号化されている隣接の動きベクトルからの参照フィールド選択情報が、現在の動きベクトルに用いられる参照フィールドの予測に用いられる。そして、予測した参照フィールドが用いられているかどうかは、バイナリ値によって示される。一方の値は、現在の動きベクトルの実際の参照フィールドが、予測された参照フィールドであることを示し、もう一方の値は、現在の動きベクトルの実際の参照フィールドが、他の参照フィールドであることを示す。一部の実装形態では、参照フィールド予測は、現在の動きベクトルに対する、既に用いられた参照フィールドおよび予想される参照フィールドの極性の観点から表現される(例えば、優勢極性と非優勢極性として。セクションVIを参照)。ほとんどのケースでは、そのような予測を行うと、バイナリ値の参照フィールド選択子の確率分布が一定になり、予測された参照フィールドに偏る。実験では、予測された参照フィールドは、70%前後の動きベクトルに用いられ、30%前後の動きベクトルには他の参照フィールドが用いられる。
そのような確率分布の参照フィールド選択情報を信号伝達するために1つのビットを伝送することは、効率的ではない。より効率的な方法は、参照フィールド選択情報を差分動きベクトル情報と統合的に符号化することである。
B.信号伝達メカニズムの例
動きベクトル差分情報と参照フィールド選択情報とを統合的に符号化および復号する信号伝達メカニズムの様々な例を示す。代替として、符号化器および復号器は、別のメカニズムと連係してそれらの情報を統合的に符号化および復号する。
図36の擬似コードは、一般化された信号伝達メカニズムによる、動きベクトル差分情報と参照フィールド選択情報との統合的な符号化を示す。この擬似コードでは、変数DMVXおよびDMVYが、それぞれ、差分動きベクトルの水平方向成分および垂直方向成分である。変数AXおよびAYは差分成分の絶対値であり、変数SXおよびSYは差分成分の符号である。水平方向の動きベクトルの範囲は−RX〜RX+1であり、垂直方向の動きベクトルの範囲は−RY〜RY+1である。RXおよびRYは2のべき乗であり、それぞれの指数がMXおよびMYである。変数ESCXおよびESCY(それぞれ、指数をKXおよびKYとする2のべき乗)は、これを超えるとエスケープ符号化が用いられるしきい値を示す。変数Rは、参照フィールド選択のバイナリ値である。
エスケープ条件がトリガされると(AX>ESCXまたはAY>ESCY)、符号化器が、エスケープ・モード信号およびRを統合的に表すVLCを送る。次に符号化器は、DMVXおよびDMVYを、長さがそれぞれMX+1およびMY+1である固定長符号として送る。したがって、VLCテーブルの2つの要素が使用され、(1)DMVXおよびDMVYが(MX+MY+2)ビットを用いて一括して符号化されていることと、(2)関連付けられたR値、を信号伝達する。言い換えると、この2つの要素は、R=0およびR=1に対応するエスケープ符号である。
他のイベントについては、変数NXおよびNYは、それぞれ、AXおよびAYの様々な値の信号伝達に用いられるビット数を示す。NX=0,1,2,...KX−1であれば、AXは2NX≦AX<2NX+1の区間にあり、NX=−1であればAX=0である。NY=0,1,2,...KY−1であれば、AYは2NY≦AY<2NY+1の区間にあり、NY=−1であればAY=0である。
サイズ情報NXおよびNYと、フィールド参照情報Rとを符号化するために用いられるVLCテーブルは、(KX+1)*(KY+1)*2+1個の要素のテーブルであり、各要素は(符号ワード、符号サイズ)のペアである。このテーブルの要素のうちの、2つを除くすべてを用いて、NX、NY、およびRの値が統合的に信号伝達される。除いた2つの要素は、エスケープ符号である。
NXおよびNYを用いて信号伝達されるイベントについては、符号化器は、NX、NY、およびRの値の組合せを示すVLCを送る。次に符号化器は、AXをNXビットで送り、SXを1ビットで送り、AYをNYビットで送り、SYを1ビットで送る。NXが0または−1であれば、AXを送る必要がない。これは、NYとAYについても当てはまる。それらの場合は、AXまたはAYの値がNXまたはNYから直接導出されることが可能だからである。
AX=0、AY=0、およびR=0である場合のイベントは、別のメカニズム(例えば、スキップ・マクロブロック・メカニズムまたは動きベクトル・ブロック・パターン(セクションVIIIを参照))によって信号伝達される。[0,0,0]要素は、図36の擬似コードのためのVLCテーブルに存在しないか、この擬似コードにおいて対応されていない。
対応する復号器は、図36に示した符号化を逆の形で反映した処理を実行する統合的復号を実行する。例えば、復号器は、ビットを送る代わりに受け取り、可変長符号化の代わりに可変長復号を実行する。
図50の擬似コードは、一つの組み合わされた実装形態における信号伝達メカニズムに従って統合的に符号化された動きベクトル差分情報および参照フィールド選択情報の復号を示す。図59の擬似コードは、別の組み合わされた実装形態における信号伝達メカニズムに従って統合的に符号化された動きベクトル差分情報および参照フィールド選択情報の復号を示す。図50および図59の擬似コードについては、セクションXIIで詳述する。特に、この擬似コードは、垂直方向差分値、または垂直方向差分値および水平方向差分値のサイズと共に、予測選択子の統合的な符号化および復号を示す。
対応する符号化器は、図50または図59に示した復号を逆の形で反映した処理を実行する統合的符号化を実行する。例えば、符号化器は、ビットを受け取る代わりに送り、可変長復号の代わりに可変長符号化を実行する。
C.符号化手法
図20の符号化器(2000)のような符号化器が、参照フィールド予測選択子情報と差分動きベクトル情報とを統合的に符号化する。例えば、この符号化器は、図37Aに示す手法(3700)を実行して、情報を統合的に符号化する。一般に、符号化器は、2つの参照フィールドにおいて何らかの形の動き推定を実行して、動きベクトルおよび参照フィールドを取得する。その後、動きベクトルを手法(3700)に従って符号化し、この時点で、選択子情報を、例えば、垂直方向の動きベクトル差分と統合的に符号化することによって、可能な2つの参照フィールドのうちの1つを動きベクトルに関連付ける。
符号化器は、動きベクトルの動きベクトル・プレディクタを決定する(3710)。例えば、符号化器は、セクションVIIで説明したように、動きベクトル・プレディクタを決定する。あるいは、符号化器は、別のメカニズムを用いて動きベクトル・プレディクタを決定する。
符号化器は、動きベクトルの、動きベクトル・プレディクタに対する動きベクトル差分を決定する(3720)。通常、この差分は、動きベクトルと動きベクトル・プレディクタとの間の成分ごとの差分である。
符号化器はさらに、参照フィールド予測選択子情報を決定する(3730)。例えば、符号化器は、動きベクトルの優勢的および非優勢的な極性(および、それゆえの優勢的な参照フィールド、動きベクトル・プレディクタの優勢的な極性、その他。セクションVIを参照)を決定する。この場合、選択子は、その優勢極性が用いられているかどうかを示す。あるいは、符号化器は、別の手法を用いて、参照フィールド予測選択子情報を決定する。例えば、符号化器は、別のタイプの参照フィールド予測を用いる。
次に符号化器は、動きベクトルの動きベクトル差分情報および参照フィールド予測選択子情報を統合的に符号化する(3740)。例えば、符号化器は、前のセクションで説明したメカニズムのいずれかを用いて情報を符号化する。あるいは、符号化器は、別のメカニズムを用いる。
簡略化のために、図37Aでは、手法(3700)が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。
D.復号手法
図21の復号器(2100)のような復号器が、統合的に符号化された参照フィールド予測選択子情報と差分動きベクトル情報とを復号する。例えば、この復号器は、図37Bに示す手法(3750)を実行して、そのような統合的に符号化された情報を復号する。
復号器は、動きベクトルの、統合的に符号化された動きベクトル差分情報および参照フィールド予測選択子情報を復号する(3760)。例えば、復号器は、セクションIX.Bで説明したメカニズムのいずれかを用いて信号伝達された情報を復号する。あるいは、復号器は、別のメカニズムを用いて信号伝達された情報を復号する。
次に復号器は、動きベクトルの動きベクトル・プレディクタを決定する(3770)。例えば、復号器は、動きベクトルの優勢的および非優勢的な極性を決定し(セクションVIを参照)、その選択子情報を適用し、選択された極性についての、セクションVIIで説明された動きベクトル・プレディクタを決定する。あるいは、復号器は、別のメカニズムを用いて、動きベクトル・プレディクタを決定する。例えば、復号器は、別のタイプの参照フィールド予測を用いる。
最後に復号器は、動きベクトル差分と動きベクトル・プレディクタとを結合することによって動きベクトルを再構成する(3780)。
簡略化のために、図37Bでは、手法(3750)が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。
X.インターレースPフィールドのクロマ動きベクトルの導出
一部の実施形態では、符号化器および復号器は、インターレースPフィールドのマクロブロックについて信号伝達されるルミナンス動きベクトルからクロマ動きベクトルを導出する。クロマ動きベクトルは、ビットストリーム内では明示的に信号伝達されない。クロマ動きベクトルは、明示的に信号伝達されずに、マクロブロックのルミナンス動きベクトルから決定される。符号化器および復号器は、プログレッシブPフレームまたはインターレースPフレームに適合されたクロマ動きベクトル導出を行うことが可能であるが、これは一般に、インターレースPフィールドに関しては性能が不十分である。そこで、符号化器および復号器は、インターレースPフィールドの参照フィールド構成に適合されたクロマ動きベクトル導出を行う。
クロマ動きベクトル導出には2つのフェーズがある。(1)選択と(2)サブサンプリングおよびクロマ丸めである。これらのフェーズのうち、特に選択フェーズが、インターレースPフィールドのクロマ動きベクトル導出に適合されている。選択フェーズの結果は、初期クロマ動きベクトルである。この結果は、マクロブロックのルミナンス動きベクトルの数(および潜在的に極性)に依存する。マクロブロックにルミナンス動きベクトルが用いられていない場合(イントラマクロブロックの場合)は、クロマ動きベクトルが導出されない。マクロブロックに1つのルミナンス動きベクトルが用いられている場合(1MVマクロブロックの場合)は、その1つのルミナンス動きベクトルが、第2および第3のフェーズで用いられるために選択される。マクロブロックに4つのルミナンス動きベクトルが用いられている場合(4MVマクロブロックの場合)は、4つのルミナンス度動きベクトルの中でより多くある極性を優先する論理を用いて、初期クロマ動きベクトルが選択される。
A.クロマサブサンプリングと動きベクトル表現
インターレースPフィールドのマクロブロックのクロマ動きベクトル導出は、マクロブロックに用いられるクロマ・サブサンプリングのタイプと、さらに動きベクトル表現とに依存する。
一般的なクロマ・サブサンプリングの形式として、4:2:0および4:1:1がある。図38は、YUV 4:2:0マクロブロックのサンプリング・グリッドを示す。これによってクロマ・サンプルが、ルミナンス・サンプルに対して規則的な4:1パターンでサブサンプリングされる。図38は、(図22で表されるような)4つの8×8ルミナンス・ブロック、1つの8×8クロマ「U」ブロック、および1つの8×8クロマ「V」ブロックを有する16×16マクロブロックの場合の、ルミナンス・サンプルとクロマサンプルとの空間的関係を示している。全体で、クロマ・グリッドの解像度は、x方向とy方向の両方とも、ルミナンス・グリッドの解像度の半分である。これは、クロマ動きベクトル導出におけるダウンサンプリングの基本原理である。ルミナンス・グリッドでの動きベクトル距離を、クロマ・グリッドにおいて対応する距離までスケーリングするために、動きベクトル値を係数2で割る。本明細書で説明する選択フェーズ手法は、YUV 4:2:0マクロブロックまたは別のクロマ・サブサンプリング形式のマクロブロックに適用可能である。
インターレースPフィールドのルミナンス動きベクトルおよびクロマ動きベクトルの表現は、動きベクトルおよび動き補償の精度に部分的に依存する。標準的な動きベクトル精度は1/2画素および1/4画素であり、これはそれぞれ、動き補償における1/2画素および1/4画素の補間を使用して動作する。
一部の実施形態では、インターレースPフィールドの動きベクトルは、上(top)または下(bottom)の(同一または反対の極性)の参照フィールドを参照することが可能である。動きベクトル値で示される垂直方向変位は、現在のPフィールドおよび参照フィールドの極性に依存する。動きベクトルの単位は、一般に、フィールド・ピクチャ単位で表される。例えば、動きベクトルの垂直方向成分が(1/4画素単位で)+6であれば、これは一般に、(必要に応じて、現在のPフィールドと参照フィールドとで極性が異なる場合の調整を行う前の)垂直方向変位が1と1/2フィールド・ピクチャ・ライン(走査線)であることを示す。
様々な垂直方向動きベクトル成分値と、フィールド極性の組合せとについて、図39は、第1の規約による、現在のフィールドと参照フィールドにおける対応する空間位置を示す。フィールド極性の各組合せは列のペアであり、一方(左の列)が現在のフィールドのライン(N=0,1,2...と番号付けされたライン)の画素に対応し、もう一方(右の列)が参照フィールドのライン(これもN=0,1,2...と番号付けされたライン)の画素に対応する。○印は、整数の画素位置にあるサンプルを表し、×印は、端数の画素位置にある補間されたサンプルを表す。この規約では、垂直方向動きベクトル成分値0は、参照フィールド内の整数の画素位置(すなわち、実際のライン上のサンプル)を参照する。現在のフィールドと参照フィールドの極性が同じ場合、現在のフィールドのラインNの垂直方向成分値0は、参照フィールドのラインNを参照する。これは、フレーム内では同じ実オフセットのところにある場所である。現在のフィールドと参照フィールドの極性が反対の場合も、現在のフィールドのラインNの垂直方向成分値0は、参照フィールドのラインNを参照するが、参照される場所は、奇数ラインと偶数ラインのインターレースのため、フレーム内では1/2画素の実オフセットのところにある場所である。
図48は、第2の規約による、現在のフィールドと参照フィールドにおける対応する空間位置を示す。この規約では、垂直方向動きベクトル成分値0は、インターレース・フレーム内の同じ実オフセットのところにあるサンプルを参照する。参照されるサンプルは、同じ極性の参照フィールドの整数の画素位置、または反対の極性の参照フィールドの1/2画素位置にある。
あるいは、インターレースPフィールドの動きベクトルは、極性の垂直方向変位を扱う別の表現を用いるか、かつ/または、極性の垂直方向変位を扱う別の規約に従う。
B.選択フェーズの例
一部の実施形態では、クロマ動きベクトル導出の選択フェーズは、1つまたは2つの参照フィールドを有するインターレースPフィールドの動き補償に用いられる参照フィールド・パターンに適合されている。例えば、マクロブロックの選択フェーズの結果は、マクロブロックのルミナンス動きベクトルの数および極性に依存する。
最も単純なケースは、マクロブロック全体がイントラ符号化されている場合である。このケースでは、クロマ動きベクトルは存在せず、クロマ動きベクトル導出の第2および第3のフェーズがスキップされる。マクロブロックのクロマ・ブロックは、イントラ符号化/復号され、動き補償は行われない。
次いで最も単純なケースは、マクロブロックが4つのルミナンス・ブロックのすべてに対して1つのルミナンス動きベクトルを有する場合である。現在のPフィールドが参照フィールドを1つ有するか、2つ有するかにかかわらず、1つのルミナンス動きベクトルが単に丸めおよびサブサンプリングに向けて送られるだけであるので、選択操作それ自体がない。
マクロブロックが4つまでのルミナンス動きベクトルを有する場合、選択フェーズはより複雑になる。全体として、選択フェーズでは、マクロブロックのルミナンス動きベクトルの中の優勢極性が優先される。Pフィールドが参照フィールドを1つしか有しない場合は、マクロブロックのルミナンス動きベクトルのすべてに対して極性が同一である。これに対し、Pフィールドが参照フィールドを2つ有する場合は、マクロブロックの、異なるルミナンス動きベクトルが異なる参照フィールドをポイントすることが可能である。例えば、現在のPフィールドの極性が奇数であれば、マクロブロックは、(偶数極性参照フィールドを参照する)極性が反対である2つのルミナンス動きベクトルと、(奇数極性参照フィールドを参照する)極性が同じである2つのルミナンス動きベクトルとを有することが可能である。符号化器または復号器は、マクロブロックのルミナンス動きベクトルの優勢極性を決定し、この優勢極性のルミナンス動きベクトルから初期クロマ動きベクトルを決定する。
一部の実装形態では、4MVマクロブロックは、0〜4つの動きベクトルを有する。そのような4MVマクロブロックのルミナンス・ブロックは、イントラ符号化されているか、関連付けられた、同じ極性のルミナンス動きベクトルを有するか、または関連付けられた、同じ極性のルミナンス動きベクトルを有する。他の実装形態では、4MVマクロブロックは、必ず4つのルミナンス動きベクトルを有する。(例えば、(0,0)の差分を有するなどの理由で)それらのいくつかが信号伝達されないとしても、必ず4つ有する。そのような4MVマクロブロックのルミナンス・ブロックは、反対の極性の動きベクトルを有するか、同じ極性の動きベクトルを有する。選択フェーズの論理は、以下の様々な実装形態に応じて多少異なる。
1.0〜4つのルミナンス動きベクトルを有する4MVマクロブロック
図40の擬似コードは、選択フェーズの論理の一例である。これは、0〜4つのルミナンス動きベクトルを有する4MVマクロブロックに適用される。ルミナンス動きベクトルのうち、同じ極性の参照フィールドを参照するルミナンス動きベクトルの数が、反対の極性の参照フィールドを参照するルミナンス動きベクトルの数より多い場合、符号化器/復号器は、同じ極性の参照フィールドを参照するルミナンス動きベクトルから初期クロマ動きベクトルを導出する。そうでない場合、符号化器/復号器は、反対の極性の参照フィールドを参照するルミナンス動きベクトルから初期クロマ動きベクトルを導出する。
4つのルミナンス動きベクトルが優勢極性(例えば、すべての奇数参照フィールドまたはすべての偶数参照フィールド)を有する場合、符号化器/復号器は、その4つのルミナンス動きベクトルのメジアンを算出する。(例えば、1つのルミナンス・ブロックがイントラであるか、非優勢極性の動きベクトルを有するなどの理由で)3つのルミナンス動きベクトルだけが優勢極性を有するかする場合、符号化器/復号器は、これら3つのルミナンス動きベクトルのメジアンを算出する。2つのルミナンス動きベクトルが優勢極性を有する場合、符号化器/復号器は、それら2つのルミナンス動きベクトルの平均を算出する(同じ極性の数と反対の極性の数が同じである場合は、(現在のPフィールドと)同じ極性が優先される)。最後に、(例えば、3つのルミナンス・ブロックがイントラであるなどの理由で)優勢極性のルミナンス動きベクトルが1つだけ存在する場合は、その1つのルミナンス動きベクトルが選択フェーズの結果であるとされる。すべてのルミナンス・ブロックがイントラである場合は、そのマクロブロックがイントラであり、図40の擬似コードは適用されない。
2.4つのルミナンス動きベクトルを有する4MVマクロブロック
図55Aおよび図55Bの擬似コードは、選択フェーズの論理の別の例である。これは、(例えば、イントラ符号化されたルミナンス・ブロックが許可されないなどの理由で)常に4つのルミナンス動きベクトルを有する4MVマクロブロックに適用される。図55Aは、参照フィールドが1つであるインターレースPフィールドにおけるそのような4MVマクロブロックのクロマ動きベクトル導出を示し、図55Bは、参照フィールドが2つであるインターレースPフィールドにおけるそのような4MVマクロブロックのクロマ動きベクトル導出を示す。
図55Bに関しては、符号化器/復号器は、4MVマクロブロックの4つのルミナンス動きベクトルの中でどの極性が優勢であるか(例えば、奇数または偶数)を決定する。4つのルミナンス動きベクトルのすべてが同じフィールドから(例えば、すべてが奇数、またはすべてが偶数)であれば、その4つのルミナンス動きベクトルのメジアンが算出される。4つのうちの3つが同じフィールドからであれば、その3つのルミナンス動きベクトルのメジアンが算出される。最後に、各極性のルミナンス動きベクトルが2つずつ存在する場合は、現在のPフィールドと同じ極性を有する2つのルミナンス動きベクトルが優先され、それらの平均が算出される(優勢極性を有するルミナンス動きベクトルが1つだけ存在するケースと、1つも存在しないケースは、4MVマクロブロックが常に4つのルミナンス動きベクトルを有する場合にはありえない)。
あるいは、符号化器または復号器は、別の選択論理を用いて、インターレースPフィールドのマクロブロックの複数のルミナンス動きベクトルからクロマ動きベクトルを導出する。または、符号化器または復号器は、別のタイプのマクロブロック(例えば、異なる数のルミナンス動きベクトルを有するマクロブロック、および/またはインターレースPフィールド以外のタイプのピクチャにあるマクロブロック)のクロマ動きベクトル導出におけるルミナンス動きベクトル極性を考慮する。
C.サブサンプリング/丸めフェーズ
クロマ動きベクトル導出の第2のフェーズとして、符号化器または復号器は、一般に、丸め論理を適用して、初期クロマ動きベクトルから特定の画素位置を除去する(例えば、3/4画素位置を切り上げて、そのようなクロマ動きベクトルがダウンサンプリング後に1/4画素(単位)の変位を示さないようにする)。丸めを用いる度合いを調節して、予測の質と補間の複雑さとをトレードオフすることが可能である。例えば、符号化器または復号器は、より積極的な丸めを行うことにより、得られるクロマ動きベクトルにおける1/4画素のクロマ変位をすべて除去して、整数画素および1/2画素の変位だけが許可されるようにする。これによって、クロマ・ブロックの動き補償での補間が簡略化される。
第2のフェーズでは、符号化器および復号器はさらに、初期クロマ動きベクトルをダウンサンプリングして、クロマ解像度にふさわしい尺度のクロマ動きベクトルを得る。例えば、クロマ解像度が水平方向および垂直方向の両方でルミナンス解像度の1/2である場合は、水平方向および垂直方向の動きベクトル成分が係数2でダウンサンプリングされる。
あるいは、符号化器または復号器は、丸め、サブサンプリング、プルバック、または他のクロマ動きベクトル調節に関して、他のメカニズムおよび/または追加のメカニズムを適用する。
D.導出手法
図20の符号化器(2000)のような符号化器が、インターレースPフィールドのマクロブロックのクロマ動きベクトルを導出する。または、図21の復号器(2100)のような復号器が、インターレースPフィールドのマクロブロックのクロマ動きベクトルを導出する。例えば、符号化器/復号器は、図41に示す手法(4100)を実行して、クロマ動きベクトルを導出する。
符号化器/復号器は、現在のマクロブロックがイントラ・マクロブロックかどうかを決定する(4110)。イントラ・マクロブロックであれば、符号化器/復号器は、クロマ動きベクトル導出をスキップし、動き補償のかわりに、そのマクロブロックに対してイントラ符号化/復号を行う。
マクロブロックがイントラ・マクロブロックでない場合は、符号化器/復号器は、マクロブロックが1MVマクロブロックかどうかを決定する(4120)。1MVマクロブロックであれば、符号化器/復号器は、マクロブロックの単一のルミナンス動きベクトルを、手法(4100)の後段の調節ステージ(4150)に渡す初期クロマ動きベクトルとして用いる。
マクロブロックが1MVマクロブロックでない場合は、符号化器/復号器は、マクロブロックのルミナンス動きベクトルの中の優勢極性を決定する(4130)。例えば、符号化器/復号器は、図40または図55Aおよび図55Bに示すように、マクロブロックの1つまたは複数のルミナンス動きベクトルの中の一般的な極性(prevailing polarity)を決定する。あるいは、符号化器/復号器は、他の決定論理および/または追加の決定論理を適用して一般的な極性を決定する。マクロブロックを含むPフィールドが参照フィールドを1つしか有しない場合、ルミナンス動きベクトルの中の優勢極性は、単純に、その1つの参照フィールドの極性である。
次に符号化器/復号器は、優勢極性を有する、マクロブロックのそれらのルミナンス動きベクトルから初期クロマ動きベクトルを決定する(4140)。例えば、符号化器/復号器は、図40または図55Aおよび図55Bに示すような初期クロマ動きベクトルを決定する。あるいは、符号化器/復号器は、他の論理および/または追加の論理を用いて、初期クロマ動きベクトルを、優勢極性の動きベクトルのメジアン、平均、または他の組合せとして決定する。
最後に、符号化器/復号器は、先行段のいずれかによって生成された初期クロマ動きベクトルを調節する(4150)。例えば、符号化器/復号器は、前述の丸めおよびサブサンプリングを行う。あるいは、符号化器/復号器は、他の調節および/または追加の調節を行う。
あるいは、符号化器/復号器は、様々なマクロブロックのタイプおよび極性条件を別の順序でチェックする。または、符号化器/復号器は、インターレースPフィールドまたは他のタイプのピクチャにある他のタイプおよび/または追加のタイプのマクロブロックのクロマ動きベクトルを導出する。
簡略化のために、図41では、手法(4100)が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。
XI.インターレースPフィールドの輝度補償
ビデオコンテンツの作成および編集では、フェード、モーフィング、およびブレンドが広く用いられている。これらの手法は、コンテンツの変わり目にまたがるビデオの視覚的展開を円滑化する。さらに、照明の変化によるフェードがビデオ・シーケンスに自然に含まれる場合がある。フェード、モーフィング、ブレンドなどの影響を受ける予測ピクチャの場合、基準ピクチャに比べてルミナンスが全体的に変化すると、従来の動き推定および動き補償の有効性が低下する。結果として、動き補償予測が悪化して、予測ピクチャを表現するために必要なビット数が多くなる。この問題は、1つまたは複数の参照フィールドを有するインターレースPフィールドの場合には、さらに複雑である。
一部の実施形態では、符号化器および復号器が、インターレースPフィールドの参照フィールドに対してフェード補償(輝度補償とも呼ばれる)を行う。符号化器は、対応するフェード推定を行う。フェード推定とフェード補償、およびフェード補償パラメータの信号伝達メカニズムは、インターレースPフィールドの参照フィールド構成に適合される。例えば、1つまたは2つの参照フィールドを有するインターレースPフィールドの場合は、フェード補償を実行するかどうかの決定を、参照フィールドごとに別々に行う。フェード補償を用いる各参照フィールドは、それぞれのフェード補償パラメータを有することが可能である。フェード補償の決定およびパラメータの信号伝達メカニズムは、この情報を効率的に表現する。結果として、インターレース・ビデオの画質が向上し、かつ/またはビットレートが低減される。
A.参照フィールドに対するフェード推定および補償
フェード補償では、フェード、ブレンド、モーフィングなどに対する補償のために、1つまたは複数の参照フィールドを変化させる必要がある。一般に、フェード補償は、フェード(すなわち、黒へのフェード、または黒からのフェード)、ブレンド、モーフィング、または他の、画素値輝度(pixel value intensities)に影響を及ぼす自然光効果または合成光効果に対する何らかの補償を含む。例えば、全体的なルミナンス変化は、シーンの明るさおよび/またはコントラストの変化として表すことが可能である。一般に、変化は線形であるが、同じフレーム内で何らかの円滑な非線形マッピングを含むように変化を定義することも可能である。次に現在のPフィールドが、調節された1つまたは複数の参照フィールドから、動き推定/補償によって予測される。
YUVクロマ空間にある参照フィールドの場合、調節は、ルミナンス・チャネルおよびクロマ・チャネルにあるサンプルを調節することによって行われる。この調節は、ルミナンス値のスケーリングおよびシフトと、クロマ値のスケーリングおよびシフトとを含むことが可能である。あるいは、クロマ空間が別のクロマ空間(例えば、YIQまたはRGB)であり、かつ/または、補償において他の調節手法が用いられる。
符号化器/復号器は、フェード推定/補償をフィールドごとに行う。あるいは、符号化器/復号器は、フェード推定/補償を、他の何らかの区切りごとに行う。したがって、フェード補償調節は、指定領域(フィールドでもフィールドの一部(例えば、個々のブロックまたはマクロブロック、あるいはマクロブロックのひとかたまり)でもよい)に影響を及ぼし、フェード補償パラメータは、指定領域が対象である。または、フェード補償パラメータは、フィールド全体が対象であるが、フィールド内の領域に、選択的に、かつ、必要に応じて適用される。
B.インターレースPフィールドの参照フィールド構成
一部の実施形態では、インターレースPフィールドは、動き補償のための参照フィールドを1つまたは2つ有する(例についてはセクションIVを参照されたい)。図24A〜図24Fは、インターレースPフィールドの動き補償予測に使用可能な参照フィールドの場所を示す。符号化器および復号器は、別の場所またはタイミング、および/または追加の場所またはタイミングにある参照フィールドを、Pフィールドの動き補償予測に用いることが可能である。例えば、現在のPフィールドと同じフレーム内にある参照フィールドが可能である。または、フレームのトップ・フィールドまたはボトム・フィールドを先に符号化/復号することが可能である。
動き補償のための参照フィールドを1つまたは2つ有するインターレースPフィールドの場合、Pフィールドは、参照フィールドを1つだけ有するか、または、Pフィールドは、2つの参照フィールドを有し、異なる動きベクトルに対して、または他の何らかの基準で、2つの参照フィールドを切り替えることが可能である。
あるいは、Pフィールドは、さらに多くの参照フィールドおよび/または別の場所にある参照フィールドを有する。
C.符号化器と復号器
図42は、1つまたは2つの参照フィールドを有するインターレースPフィールドの輝度推定および輝度補償を行う例示的符号化器フレームワーク(4200)を示す。このフレームワーク(4200)では、符号化器は、フェード推定によって取得したパラメータを用いて、参照フィールドを条件付きで再マッピングする。符号化器は、フィールド全体である程度の確実性および一貫性があるフェードを検出した場合に、再マッピング(フェード補償)を行う。そうでない場合、フェード補償は、一致演算(すなわち、出力=入力)である。
図42では、符号化器は、フェード検出モジュール(4230)を用いて現在のPフィールド(4210)と第1の参照フィールド(4220)とを比較して、それらのフィールド(4220、4210)間でフェードが発生しているかどうかを決定する。符号化器は、これとは別に、フェード検出モジュール(4230)を用いて現在のPフィールド(4210)と第2の参照フィールド(4225)とを比較して、それらのフィールド(4225、4210)間でフェードが発生しているかどうかを決定する。符号化器は、フェード検出結果に基づいて、1つまたは複数の「フェード・オン」信号または「フェード・オフ」信号(4240)を生成する。これらの信号は、フェード補償をとにかく行うかどうか、および、行う場合は、第1の参照フィールドに対してのみ行うか、第2の参照フィールドに対してのみ行うか、両方の参照フィールド(4220、4225)に対して行うかを示す。
第1の参照フィールド(4220)についてフェード補償がオンの場合は、フェード推定モジュール(4250)が、第1の参照フィールド(4220)についてフェード・パラメータ(4260)を推定する(フェード推定の詳細については後述)。同様に、第2の参照フィールド(4225)についてフェード補償がオンの場合は、フェード推定モジュール(4250)が、別途、第2の参照フィールドについてフェード・パラメータ(4260)を推定する。
フェード補償モジュール(4270、4275)は、フェード・パラメータ(4260)を用いて、参照フィールド(4220)の一方または両方を再マッピングする。図42では2つのフェード補償モジュール(4270、4275)(参照フィールドごとに1つ)を示しているが、代替として、符号化器フレームワーク(4200)は、参照フィールド(4220、4225)のいずれかに対して動作する単一のフェード補償モジュールを含む。
他の符号化器モジュール(4280)(例えば、動き推定および補償、周波数変換、量子化などのモジュール)は、現在のPフィールド(4210)を圧縮する。符号化器は、動きベクトル、残差、および符号化済みPフィールド(4210)を表す他の情報(4290)を出力する。変換動きベクトル(translational motion vectors)による動き推定/補償は別として、フレームワーク(4200)は、多種多様な動き補償ベースのビデオ・コーデックに適用可能である。
図43は、輝度補償を行う例示的復号器フレームワーク(4300)を示す。この復号器は、復号されたPフィールド(4310)を生成する。符号化されている、フェード補償されたPフィールドを復号するために、復号器は、フェード補償モジュール(4370、4375)を用いて、既に復号されている1つまたは2つの参照フィールド(4320、4325)に対してフェード補償を行う。代替として、復号器フレームワーク(4300)は、参照フィールド(4320、4325)のいずれかに対して動作する単一のフェード補償モジュールを含む。
フェード補償が第1の参照フィールド(4320)およびPフィールド(4310)に対して行われていることをフェード・オン/オフ信号(4340)が示している場合、復号器は、第1の参照フィールド(4320)に対してフェード補償を行う。同様に、フェード補償が第2の参照フィールド(4325)およびPフィールド(4310)に対して行われていることをフェード・オン/オフ信号(4340)が示している場合、復号器は、第2の参照フィールド(4325)に対してフェード補償を行う。復号器は、第1および第2の参照フィールド(4320、4325)のフェード推定で取得したフェード・パラメータのそれぞれのセット(4360)を用いて(符号化器内で行われたものと同様の)フェード補償を行う。フェード補償がオフの場合、フェード補償は、一致演算(すなわち、出力=入力)である。
他の復号器モジュール(4380)(例えば、動き補償、逆周波数変換、逆量子化などのモジュール)は、動きベクトル、残差、および他の、符号化器から提供される情報(4390)を用いて、符号化されているPフィールド(4310)を圧縮解除する。
D.パラメータ化と補償
複数のパラメータが、Pフィールドと第1の参照フィールドとの間、および/またはPフィールドと第2の参照フィールドとの間でのフェード、ブレンド、モーフィング、またはその他の変化を表す。これらのパラメータはフェード補償に適用される。
ビデオ編集では、ルミナンス・チャネルおよびクロマ・チャネルに画素ごとの単純な線形変換を適用して合成フェードを実現することがある。同様に、2つのビデオ・シーケンスを、時間とともに組成を変化させながら線形加算することによって、クロス・フェードを実現することがある。したがって、一部の実施形態では、フェードやその他の輝度補償調節を画素ごとの線形変換としてパラメータ化し、クロス・フェードを線形加算としてパラメータ化する。
I(n)をPフィールドnとし、I(n−1)を1つの参照フィールドと仮定する。動きが小さい場合、単純なフェードは、次式で示される1次関係によってモデル化される。この式による関係は、ビデオ・シーケンス内では可能な動きなので近似である。
Figure 2011130463
ここで、フェード・パラメータB1およびC1は、それぞれ、参照フィールドの明るさおよびコントラストの変化に対応する。(パラメータB2およびC2は、それぞれ、他の参照フィールドの明るさおよびコントラストの変化に対応する)。非線形フェードが発生した場合は、一般に、この1次成分が変化の大部分を占める。
画像シーケンスU(n)から画像シーケンスV(n)へのクロス・フェードは、次式に示される関係によってモデル化が可能である。この場合も、この式による関係は、シーケンス内では可能な動きなので近似である。
Figure 2011130463
ここで、
Figure 2011130463
はクロス・フェードの開始点を表し、
Figure 2011130463
はクロス・フェードの終了点を表す。クロス・フェードが複数のフィールドにまたがる場合は、αが小さい。クロス・フェードの開始点では、n番目のフィールドは、n−1番目のフィールドを減衰させたもの(コントラスト<1)に近い。終了点に向かっては、n番目のフィールドは、n−1番目のフィールドを増幅したもの(コントラスト>1)である。
符号化器は、参照フィールドを再マッピングすることによって輝度補償を実行する。符号化器は、参照フィールドを、画素ごとに、または他の何らかの区切りごとに再マッピングする。オリジナルの、再マッピングされていない参照フィールドは、基本的に廃棄される(ここで、実装によっては、再マッピングされていない参照フィールドも動き補償に用いる場合がある)。
次の線形公式により、2つのパラメータB1およびC1に関して、参照フィールドRのルミナンス値が、再マッピングされた参照フィールド
Figure 2011130463
に再マッピングされる。
Figure 2011130463
参照フィールドのルミナンス値は、コントラスト値によってスケーリング(または「重み付け」)され、明るさ値によってシフト(すなわち、オフセットの加算によってシフト)される。クロマについては、再マッピングは次の公式に従う。
Figure 2011130463
ここで、μはクロマ値の平均である。一実施形態では、クロマ値の符号なし8ビット表現の平均を128としている。この、クロマの再マッピングの公式では、明るさ成分を用いない。一部の実施形態では、2つのパラメータによる線形再マッピングを高次の項まで拡張する。例えば、ルミナンス値Rを
Figure 2011130463
に再マッピングする2次式は次のとおりである。
Figure 2011130463
別の実施形態では、別の再マッピング公式を用いる。あるカテゴリのそのような再マッピング公式では、非線形フェードについて、線形マッピングを非線形マッピングに置き換えている。
フェード補償は、動き補償の前に参照フィールドに適用することが可能である。または、動き補償中に、必要に応じて参照フィールドに適用することが可能である。例えば、参照フィールドの、動きベクトルによって実際に参照されている領域に適用することが可能である。
E.パラメータの推定
推定は、符号化処理中に補償パラメータを算出する処理である。図42のフレームワーク(4200)に示すような符号化器が、符号化処理中に明るさパラメータ(B1、B2)およびコントラスト・パラメータ(C1、C2)を算出する。あるいは、そのような符号化器は、別の補償パラメータを算出する。
推定を速めるために、符号化器は、参照フィールドごとに別々に、各パラメータを考慮および評価する。さらに符号化器は、ルミナンス・チャネルだけを解析する。あるいは、符号化器は、より多くの計算リソースが使用可能な場合に、クロマを解析に含める。例えば、符号化器は、C1(またはC2)をよりロバストにするために、第1の参照フィールドについては、ルミナンスの再マッピング式だけでなくルミナンスおよびクロマの再マッピング式で、C1(またはC2)の値を求める。
フェード推定処理では、シーン内の動きを無視する。これは、(a)フェードおよびクロス・フェードは、一般に、静止シーンまたは動きの少ないシーンで発生する、および(b)動きの多いシーンでの輝度補償の有用性は非常に低い、という報告に基づいている。あるいは、符号化器は、フェード補償パラメータと動き情報とを統合的に求める。動き情報は、この手法の後段、または、ある別の時点で、フェード補償パラメータの精度をより高めるために用いられる。動き情報の1つの用途は、参照フィールドの、動きが検出された部分をフェード推定計算から省くことである。
絶対誤差合計Σabs(I(n)−R)または
Figure 2011130463
は、フェードの存在およびパラメータを決定するための測定基準としての役目を果たす。あるいは、符号化器は、同じ誤差項の二乗誤差または平均二乗誤差の合計のような他の測定基準または追加の測定基準を用いるか、または別の誤差項を用いる。
符号化器は、後述するような終了条件が満たされたら、推定を終了することが可能である。別の終了条件では、符号化器は、推定の開始時または中間段階で、コントラスト・パラメータC1(またはC2)が1.0に近いかどうか(一実装形態では、0.99<C<1.02かどうか)をチェックし、そのとおりであれば、この手法を終了する。
符号化器は、現在のフィールドおよび選択された(第1または第2の)参照フィールドをダウンサンプリングすることによって推定を開始する。一実装形態では、符号化器は、水平方向および垂直方向に係数4でダウンサンプリングを行う。あるいは、符号化器は、別の係数でダウンサンプリングを行うか、ダウンサンプリングをまったく行わない。
次に符号化器は、現在のフィールドおよび参照フィールドの、解像度を落としたId(n)およびRdの絶対誤差合計Σabs(Id(n)−Rd)を算出する。絶対誤差合計は、ダウンサンプリングされた現在のフィールドとダウンサンプリングされた参照フィールドとの間の値の差分を計測する。絶対誤差合計が特定のしきい値(例えば、あらかじめ決められた差分測定値)より小さければ、符号化器は、フェードが発生していないのでフェード補償を用いないと結論づける。
それ以外であれば、符号化器は、明るさパラメータB1(またはB2)およびコントラスト・パラメータC1(またはC2)を推定する。様々なパラメータ値についてRdの観点からId(n)をモデル化することによって、最初の推定が得られる。例えば、明るさおよびコントラストのパラメータは、ダウンサンプリングされたフィールドの全体に対する線形回帰から得られる。または、符号化器は、さらなる確実な解析のために、総最小二乗、最小平均二乗などのような他の形式の統計解析を行う。例えば、符号化器は、誤差項Id(n)−RdのMSEまたはSSEを最小化する。状況によっては、MSEおよびSSEがロバストではないので、符号化器はさらに、誤差項の絶対誤差合計を検査する。符号化器は、(フェードではなく動きに起因する可能性がある)特定の点の高い誤差値を廃棄する。
最初のパラメータが許容範囲内にあることの確認と、それらの適合性の検査とのために、最初のパラメータを量子化および逆量子化する。一部の実施形態では、一般的な8ビット深度の画像に対し、これらのパラメータをそれぞれ6ビットに量子化する。B1(またはB2)は、符号付き6ビット整数として表される、−32〜31の範囲の整数値をとる。C1(またはC2)は、0.015625(1/64)の均等ステップで0.5〜1.484375の範囲をとり、これは、C1(またはC2)の量子化値0〜63に対応する。量子化は、B1(またはB2)およびC1(またはC2)を、最も近い有効な逆量子化値に丸め、該当する二進指数を取得することによって行われる。
符号化器は、オリジナルの有界絶対誤差合計(SOrgBnd)と再マッピングされた有界絶対誤差合計(SRmpBnd)とを算出する。一部の実施形態では、符号化器は、適合度解析(goodness-of-fit analysis)を用いて合計を算出する。符号化器は、オリジナルの解像度の画素のランダム集合または擬似ランダム集合について、再マッピングされた有界絶対誤差合計Σbabs(I(n)−CfR−Bf)を算出する。ここで、符号化されるフィールドの量子化パラメータの倍数など、何らかの範囲Mについてbabs(x)=min(abs(x),M)である。限界Mは、量子化パラメータが粗い場合には高くなり、細かい場合には低くなる。符号化器はさらに、オリジナルの有界絶対誤差合計Σbabs(I(n)−R)を蓄積する。符号化器は、計算リソースが使用可能であれば、フィールド全体の有界誤差合計を算出することが可能である。
符号化器は、オリジナルの有界絶対誤差合計と再マッピングされた有界絶対誤差合計との相対的な値に基づいて、フェード補償を用いるかどうかを決定する。例えば、一部の実施形態では、符号化器は、再マッピングされた有界絶対誤差合計が、オリジナルの有界絶対誤差合計の特定のしきい値パーセンテージσ以下にならない限り、フェード補償を行わない。一部の実装形態では、σ=0.95である。
フェード補償を用いる場合、符号化器は、フェード・パラメータを、今度は、I(n)とRとの間の線形回帰に基づいて、ただし、フル解像度で再計算する。計算時間を節約するために、符号化器は、フィールドのランダムまたは擬似ランダム・サンプリングに対して線形回帰を繰り返すことが可能である。この場合も、符号化器は、代替として、さらなる確実な解析のために(例えば、総最小二乗、最小平均二乗などの)他の形式の統計解析を行うことが可能である。
一部の実装形態では、符号化器は、C1(またはC2)の再構成された値が−1である特殊なケースを可能にする。この特殊なケースは、C1(またはC2)が0に等しくなるシンタックス要素によって信号伝達される。この「反転」モードでは、参照フィールドがシフトの前にB1(またはB2)によって反転され、B1(またはB2)の範囲は均等ステップ2で193〜319である。あるいは、一部またはすべてのフェード補償パラメータが別の表現を用いるか、または他のパラメータおよび/または追加のパラメータが用いられる。
F.信号伝達
高レベルでは、信号伝達されるフェード補償情報は、(1)補償オン/オフ情報、および(2)補償パラメータ、を収容する。このオン/オフ情報は、(a)全体に対して(例えば、シーケンス全体に対して)フェード補償が可能かどうか、(b)フェード補償が可能な場合、特定のPフィールドに対してフェード補償を用いるかどうか、および(c)特定のPフィールドに対してフェード補償が用いられる場合に、フェード補償によってどの参照フィールドを調節すべきか、を含むことが可能である。参照フィールドに対してフェード補償を用いる場合は、フェード補償パラメータを以下のように適用する。
1.全体のオン/オフの信号伝達
シーケンス・レベルにおいて、1つのビットが、フェード補償がそのシーケンスに対して有効化されているかどうかを示す。フェード補償が可能な場合は、後続の要素が、フェード補償をいつどのように行うかを示す。あるいは、フェード補償は、他の何らかのシンタックス・レベルで有効化/無効化される。または、フェード補償が常に可能になっていて、全体のオン/オフの信号伝達がスキップされる。
2.Pフィールドのオン/オフの信号伝達
フェード補償が可能な場合は、1つまたは複数の追加信号が、フェード補償をいつ行うかを示す。一般的なインターレース・ビデオ・シーケンスのフィールドにおいては、輝度補償を行うことはまれである。Pフィールドのフェード補償を用いることの信号伝達は、フィールドごとに1つのビット(例えば、フィールド・レベルで信号伝達される1つのビット)を追加することによって可能である。しかしながら、フェード補償を用いることを、他の情報と統合的に信号伝達するほうが経済的である。
1つのオプションは、Pフィールドにフェード補償を用いることを、動きベクトル・モード(例えば、動きベクトルの数および構成、端数画素補間スキームなど)と統合的に信号伝達することである。例えば、あるVLCは、最低頻度の動きベクトル・モードと、Pフィールドのフェード補償のアクティベーションとを統合的に示す。詳細については、「Fading Estimation/Compensation」という名称の特許文献2を参照されたい。または、後述の複数の複合実装形態に示すように、Pフィールドのフェード補償を用いるかどうかを、動きベクトル・モード情報とともに信号伝達する。セクションXIIのMVMODE要素およびMVMODE2要素を参照されたい。あるいは、Pフィールドのフェード補償のオン/オフの情報を信号伝達する別のメカニズムを用いる。
3.参照フィールドのオン/オフの信号伝達
Pフィールドに対してフェード補償を用いる場合は、どの参照フィールドがフェード補償を受けるかについていくつかのオプションがありうる。Pフィールドがフェード補償を用い、2つの参照フィールドを有する場合は、3つのケースが存在する。フェード補償を行う対象は、(1)両方の参照フィールド、(2)第1の参照フィールドのみ(例えば、時間的に2番目に近い参照フィールド)、または(3)第2の参照フィールドのみ(例えば、時間的に最も近い参照フィールド)である。フェード補償の参照フィールドのパターン情報は、PフィールドごとにFLCまたはVLCとして信号伝達可能である。図44のテーブルは、Pフィールド・ヘッダ内で信号伝達される、要素INTCOMPFIELDのパターン情報のVLCの1つの集合を示す。あるいは、フィールド・レベルまたは別のシンタックスレベルで、図47Gのテーブルまたは別のテーブルを用いる。
一部の実装形態では、すべてのPフィールドについて、フェード補償用参照フィールド・パターンを信号伝達する。あるいは、フェード補償を用いる参照フィールドが1つであるPフィールドの場合は、参照フィールド・パターンの信号伝達をスキップする。これは、フェード補償が自動的に単一参照フィールドに適用されるからである。
4.フェード補償パラメータの信号伝達
参照フィールドに対してフェード補償を用いる場合は、その参照フィールドについてのフェード補償パラメータを信号伝達する。例えば、Pフィールドのヘッダ内にフェード補償パラメータの第1の集合が存在する。1つの参照フィールドに対してのみフェード補償を用いる場合、パラメータの第1の集合は、その1つの参照フィールドが対象である。しかしながら、Pフィールドの2つの参照フィールドに対してフェード補償を用いる場合、パラメータの第1の集合は一方の参照フィールドが対象であり、もう一方の参照フィールドのフェード補償のための、フェード補償パラメータの第2の集合がヘッダ内に存在する。
フェード補償パラメータの各集合は、例えば、コントラスト・パラメータおよび明るさパラメータを収容する。一複合実装形態では、パラメータの第1の集合は、LUMSCALE1要素およびLUMSHIFT1要素を含む。これらは、Pフィールドのための輝度補償が信号伝達されるときにPフィールド・ヘッダ内に存在する。両方の参照フィールドまたは2番目に近い参照フィールドだけがフェード補償を用いることをINTCOMPFIELDが示した場合は、その2番目に近い参照フィールドにLUMSCALE1およびLUMSHIFT1が適用される。それ以外の場合(最も近い参照フィールドだけがフェード補償を用いることをINTCOMPFIELDが示した場合)は、その最も近い参照フィールドにLUMSCALE1およびLUMSHIFT1が適用される。LUMSCALE2要素およびLUMSHIFT2要素を含む、パラメータの第2の集合は、Pフィールドのための輝度補償が信号伝達され、INTCOMPFIELDが、両方の参照フィールドがフェード補償を用いることを示す場合に、Pフィールド・ヘッダ内に存在する。LUMSCALE2およびLUMSHIFT2は、より近い参照フィールドに適用される。
LUMSHIFT1、LUMSCALE1、LUMSHIFT2、およびLUMSCALE2は、パラメータB1、C1、B2、およびC2に対応する。LUMSCALE1、LUMSCALE2、LUMSHIFT1、およびLUMSHIFT2は、それぞれ、6ビットFLCを用いて信号伝達される。あるいは、これらのパラメータは、VLCを用いて信号伝達される。図56は、LUMSHIFT1およびLUMSCALE1に基づいて第1の参照フィールドに対してフェード補償を行う擬似コードを示す。LUMSHIFT2およびLUMSCALE2に基づく、第2の参照フィールドに対するフェード補償についても、同様の処理を行う。
あるいは、フェード補償パラメータは、別の表現を有するか、かつ/または、別の信号伝達メカニズムで信号伝達される。
G.推定および信号伝達の手法
図20の符号化器(2000)のような符号化器、または図42のフレームワーク(4200)内の符号化器が、2つの参照フィールドを有するインターレースPフィールドについてフェード推定および対応する信号伝達を行う。例えば、この符号化器は、図45Aに示す手法(4500)を実行する。
符号化器は、Pフィールドの2つの参照フィールドのうちの第1の参照フィールドに対してフェード検出を行う(4510)。フェードが検出された場合(判断4512からの「はい」のパス)、符号化器は、第1の参照フィールドを基準にして、Pフィールドのフェード推定を行う(4514)。これによって、第1の参照フィールドについてのフェード補償パラメータが生成される。符号化器はさらに、Pフィールドの2つの参照フィールドのうちの第2の参照フィールドに対してフェード検出を行う(4520)。フェードが検出された場合(判断4522からの「はい」のパス)、符号化器は、第2の参照フィールドを基準にして、Pフィールドのフェード推定を行う(4524)。これによって、第2の参照フィールドについてのフェード補償パラメータが生成される。例えば、符号化器は、セクション「フェード・パラメータの推定」で説明されたようなフェード検出および推定を行う。あるいは、符号化器は、別の手法を用いて、フェードを検出するか、かつ/またはフェード補償パラメータを取得する。現在のPフィールドが参照フィールドを1つだけ有する場合は、第2の参照フィールドに対する操作をスキップすることが可能である。
符号化器は、Pフィールドについてフェード補償がオンかオフかを信号伝達する(4530)。例えば、符号化器は、この情報を、Pフィールドの動きベクトル・モード情報と統合的に符号化する。あるいは、符号化器は、他の信号および/または追加の信号を用いて、Pフィールドについてフェード補償がオンかオフかを示す。フェード補償が現在のPフィールドについてオンでない場合は(判断4532からの「いいえ」のパス)、手法(4500)を終了する。
そうでない場合(判断4532からの「はい」のパス)、符号化器は、フェード補償の参照フィールド・パターンを信号伝達する(4540)。例えば、符号化器は、フェード補償を両方の参照フィールドに用いるか、第1の参照フィールドだけに用いるか、または第2の参照フィールドだけに用いるかを示すVLCを信号伝達する。あるいは、符号化器は、別の信号伝達メカニズム(例えば、FLC)を用いて、参照フィールド・パターンを示す。このパスでは、符号化器はさらに、フェード推定において算出されていたフェード補償パラメータの第1の集合および/または第2の集合を信号伝達する(4542)。例えば、符号化器は、セクションXI.Fで説明した信号伝達を用いる。あるいは、符号化器は、別の信号伝達を用いる。
一般には符号化器はさらにフェード補償、動き推定、および動き補償を行うが、図45Aでは、簡略化のためにこれらの操作を示していない。さらに、フェード推定は、動き推定の前に、または動き推定と並行して行うことが可能である。図45Aでは、手法(4500)が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。
H.復号および補償の手法
図21の復号器(2100)のような復号器、または図43のフレームワーク(4300)内の復号器が、2つの参照フィールドを有するインターレースPフィールドについて復号およびフェード補償を行う。例えば、この復号器は、図45Bに示す手法(4550)を実行する。
復号器は、Pフィールドについてフェード補償がオンかオフかを示す1つまたは複数の信号を受け取り、復号する(4560)。例えば、この情報は、Pフィールドの動きベクトル・モード情報と統合的に符号化されている。あるいは、復号器は、Pフィールドについてフェード補償がオンかオフかを示す他の信号および/または追加の信号を受け取り、復号する。フェード補償がPフィールドについてオンでない場合は(判断4562からの「いいえ」のパス)、手法(4550)を終了する。
そうでない場合(判断4562からの「はい」のパス)、復号器は、フェード補償の参照フィールド・パターンを受け取り、復号する(4570)。例えば、復号器は、フェード補償を両方の参照フィールドに用いるか、第1の参照フィールドだけに用いるか、または第2の参照フィールドだけに用いるかを示すVLCを受け取り、復号する。あるいは、復号器は、別の信号伝達メカニズム(例えば、FLC)と連係動作して、参照フィールド・パターンを決定する。
このパスでは、復号器はさらに、フェード補償パラメータの第1の集合を受け取り、復号する(4572)。例えば、復号器は、セクションXI.Fで説明した信号伝達にしたがって動作する。あるいは、復号器は、他の信号伝達にしたがって動作する。
2つの参照フィールドのうちの1つについてのみフェード補償を行う場合は(判断4575からの「いいえ」のパス)、パラメータの第1の集合は、参照フィールド・パターンによって示されるように、第1または第2の参照フィールドが対象である。復号器は、指定された参照フィールドに対し、フェード補償パラメータの第1の集合を用いてフェード補償を行い(4592)、手法(4500)を終了する。
そうでない場合、すなわち、2つの参照フィールドの両方についてフェード補償を行う場合は(判断4575からの「はい」のパス)、復号器は、フェード補償パラメータの第2の集合を受け取り、復号する(4580)。例えば、復号器は、セクションXI.Fで説明した信号伝達にしたがって動作する。あるいは、復号器は、他の信号伝達にしたがって動作する。この場合、パラメータの第1の集合は、2つの参照フィールドのうちの一方が対象であり、パラメータの第2の集合は、もう一方が対象である。復号器は、一方の参照フィールドに対し、パラメータの第1の集合を用いてフェード補償を行い(4592)、もう一方の参照フィールドに対し、パラメータの第2の集合を用いてフェード補償を行う(4582)。
簡略化のために、図45Bでは、手法(4550)が符号化および復号の他の態様と様々に結合されるであろう様子を示していない。各種の複合実装形態については、セクションXIIで詳述する。
XII.複合実装形態 以下では、ビットストリーム・シンタックス、セマンティクス、および復号器の複合実装形態について、特にインターレースPフィールドに関し、詳細に説明する。以下の説明は、第1の複合実装態様と、代替の第2の複合実装態様とを含む。さらに、2004年5月27日出願の特許文献1が、第3の複合実装態様の態様を開示する。
インターレースPフィールドに重点を置いているが、このセクションの様々な場所で、他のピクチャ・タイプ(例えば、インターレースPおよびBフレーム、インターレースI、BI、PI、およびBフィールド)に対するシンタックス要素、セマンティクス、および復号の適用可能性について述べている。
A.第1の複合実装態様におけるシーケンスおよびセマンティクス
第1の複合実装態様では、圧縮ビデオ・シーケンスは、階層型レイヤ(ピクチャ・レイヤ、マクロブロック・レイヤ、およびブロック・レイヤ)に構造化されたデータで構成される。このシーケンスにはシーケンス・レイヤが先行し、シーケンス内にはエントリ・ポイント・レイヤを点在させることが可能である。図46A〜図46Eは、各種レイヤを構成するビットストリーム要素を示す。
1.シーケンス・レイヤのシンタックスおよびセマンティクス
シーケンス・レベル・ヘッダが、圧縮ピクチャのシーケンスの復号に用いられるシーケンス・レベル・パラメータを収容する。一部のプロファイルでは、トランスポート・レイヤまたは他の手段によって、シーケンス関連メタデータが復号器に伝達される。しかしながら、インターレースPフィールドを有するプロファイル(アドバンスド・プロファイル)の場合は、このヘッダ・シンタックスは、ビデオ・データ・ビットストリームの一部である。
図46Aは、アドバンスド・プロファイルのシーケンス・ヘッダを構成するシンタックス要素を示す。PROFILE(4601)要素およびLEVEL(4602)要素は、それぞれ、シーケンスの符号化に用いられたプロファイルと、プロファイル内の符号化レベルとを指定する。特にインターレースPフィールドに関しては、INTERLACE(4603)要素が、ソース・コンテンツがプログレッシブ(INTERLACE=0)か、インターレース(INTERLACE=1)かを信号伝達する、1ビットのシンタックス要素である。INTERLACE=1の場合には、個々のフレームもプログレッシブ・シンタックスまたはインターレース・シンタックスを用いて符号化されることが可能である。
2.エントリ・ポイント・レイヤのシンタックスおよびセマンティクス
アドバンスド・プロファイルには、エントリ・ポイント・ヘッダが存在する。エントリ・ポイントには2つの用途がある。第1に、エントリポイントは、ビットストリーム内でランダム・アクセス・ポイントを信号伝達するために用いられる。第2に、エントリ・ポイントは、符号化制御パラメータの変化を信号伝達するために用いられる。
図46Bは、エントリ・ポイント・レイヤを構成するシンタックス要素を示す。特にインターレースPフィールドに関しては、参照フレーム距離フラグREFDIST_FLAG(4611)要素が、1ビットのシンタックス要素である。REFDIST_FLAG=1は、REFDIST(4624)要素がI/I、I/P、P/I、またはP/Pフィールド・ピクチャ・ヘッダ内に存在することを示す。REFDIST_FLAG=0は、REFDIST(4624)要素がI/I、I/P、P/I、またはP/Pフィールド・ピクチャ・ヘッダ内に存在しないことを示す。
拡張動きベクトル・フラグEXTENDED_MV(4612)要素は、拡張動きベクトル機能がオンになっているか(EXTENDED_MV=1)、オフになっているか(EXTENDED_MV=0)を示す1ビット要素である。拡張差分動きベクトル範囲フラグEXTENDED_DMV(4613)要素は、EXTENDED_MV=1の場合に存在する、1ビットのシンタックス要素である。EXTENDED_DMV=1であれば、拡張差分動きベクトル範囲内の動きベクトル差分が、エントリ・ポイント・セグメント内のピクチャ・レイヤにおいて信号伝達される。EXTENDED_DMV=0であれば、拡張差分動きベクトル範囲内の動きベクトル差分が信号伝達されない。拡張差分動きベクトル範囲は、インターレースPフィールドおよびPフレームと、インターレースBフィールドおよびBフレームとを含むインターレースPおよびBピクチャについてのオプションである。
3.ピクチャ・レイヤのシンタックスおよびセマンティクス
ピクチャのデータは、ピクチャ・ヘッダと、それに続くマクロブロック・レイヤ用データとからなる。図46Cは、インターレース・フィールド・ピクチャ用フレーム・ヘッダを構成するビットストリーム要素を示す。以下の説明はインターレースPフィールドに用いられる要素に重点を置いているが、図46Cに示したヘッダは、インターレースI、P、B、およびBIフィールドの様々な組合せに適用可能である。
フレーム符号化モードFCM(4621)要素は、シーケンス・レイヤINTERLACE(4603)が値1を有する場合のみ、アドバンスド・プロファイルにのみ存在する。FCM(4621)は、ピクチャがプログレッシブとして符号化されているか、インターレース・フィールドとして符号化されているか、インターレース・フレームとして符号化されているかを示す。図47Aのテーブルは、ピクチャ符号化タイプをFCMによって示すために用いられるVLCを含む。
フィールド・ピクチャ・タイプFPTYPE(4622)要素は、インターレース・フィールド・ピクチャのピクチャ・ヘッダに存在する、3ビットのシンタックス要素である。FPTYPEは、図47Bのテーブルに従って復号される。このテーブルに示すように、インターレース・フレームは、2つのインターレースIフィールド、1つのインターレースIフィールドと1つのインターレースPフィールド、2つのインターレースPフィールド、2つのインターレースBフィールド、1つのインターレースBフィールドと1つのインターレースBIフィールド、または2つのインターレースBIフィールドを含むことが可能である。
トップ・フィールド第1のTFF(4623)要素は、シーケンス・ヘッダ要素PULLDOWN=1であってシーケンスヘッダ要素INTERLACE=1である場合に、アドバンスド・プロファイルのピクチャ・ヘッダ内に存在する1ビット要素である。TFF=1は、トップ・フィールドが第1の復号されたフィールドであることを示す。TFF=0であれば、ボトム・フィールドが第1の復号されたフィールドである。
P参照距離REFDIST(4624)要素は、エントリ・レベル・フラグREFDIST_FLAG=1であって、ピクチャ・タイプがB/B、B/BI、BI/B、BI/BIでない場合に、インターレース・フィールド・ピクチャ・ヘッダ内に存在する、可変サイズのシンタックス要素である。REFDIST_FLAG=0であれば、REFDIST(4624)がデフォルト値0に設定される。REFDIST(4624)は、現在のフレームと参照フレームとの間のフレーム数を示す。図47Cのテーブルは、REFDIST(4624)値に用いられるVLCを含む。このテーブルの最後の行は、2より大きい参照フレーム距離を表すために用いられる符号ワードを示す。これらは、(バイナリの)11として符号化され、その後にN−3個の1が続く。Nは参照フレーム距離である。符号ワードの最後のビットは0である。REFDIST(4624)の値は16以下である。例えば、次のようになる。
N=3、VLC符号ワード=110、VLCサイズ=3
N=4、VLC符号ワード=1110、VLCサイズ=4
N=5、VLC符号ワード=11110、VLCサイズ=5
フィールド・ピクチャ・レイヤFIELDPICLAYER(4625)要素は、インターレース・フレームの別々のインターレース・フィールドのうちの1つに関するデータである。インターレース・フレームがP/Pフレーム(FPTYPE=011)であれば、ビットストリームは、2つのインターレースPフィールドに対し、2つのFIELDPICLAYER(4625)要素を含む。図46Dは、インターレースPフィールド・ピクチャのフィールド・ピクチャ・ヘッダを構成するビットストリーム要素を示す。
参照ピクチャ数NUMREF(4631)要素は、インターレースPフィールド・ヘッダ内に存在する、1ビットのシンタックス要素である。この要素は、インターレースPフィールドが1つの参照ピクチャを有するか(NUMREF=0)、2つの参照ピクチャを有するか(NUMREF=1)を示す。参照フィールド・ピクチャ・インジケータREFFIELD(4632)は、NUMREF=0の場合にインターレースPフィールド・ヘッダ内に存在する、1ビットのシンタックス要素である。この要素は、可能な2つの参照ピクチャのどれをインターレースPフィールドが用いるかを示す。
拡張MV範囲フラグMVRANGE(4633)は、大まかには、動きベクトルの拡張範囲(すなわち、動きベクトルの、より長い、可能な水平方向および/または垂直方向変位)を示す、可変サイズのシンタックス要素である。拡張差分MV範囲フラグDMVRANGE(4634)は、EXTENDED_DMV=1の場合に存在する、可変サイズのシンタックス要素である。図47Dのテーブルは、DMVRANGE(4634)要素に用いられる。MVRANGE(4633)およびDMVRANGE(4634)の両方が動きベクトル差分の復号に用いられ、拡張差分動きベクトル範囲は、インターレースPフィールド、インターレースPフレーム、インターレースBフィールド、およびインターレースBフレームのオプションである。
動きベクトルモードMVMODE(4635)要素は、4つの動きベクトル符号化モードのうちの1つ、または1つの輝度補償モードを信号伝達する、可変サイズのシンタックス要素である。動きベクトル符号化モードは、動き補償の端数画素補間規則が異なる3つの「1MV」モードを含む。1MVは、ピクチャ内の各マクロブロックがせいぜい1つの動きベクトルを有することを意味する。「混在(mixed)MV」モードでは、ピクチャ内の各マクロブロックは、1つまたは4つの動きベクトルを有するか、スキップされることが可能である。PQUANT(ピクチャの量子化係数)の値に応じて、図47Eに示すテーブルのうちのいずれか1つがMVMODE(4635)要素に用いられる。
動きベクトル・モード2 MVMODE2(4636)要素は、MVMODE(4635)が輝度補償を信号伝達する場合にインターレースPフィールド・ヘッダ内に存在する、可変サイズのシンタックス要素である。PQUANTの値に応じて、図47Fに示すテーブルのいずれかが、MVMODE(4635)要素に対して用いられる。
輝度補償フィールドINTCOMPFIELD(4637)は、インターレースPフィールド・ピクチャ・ヘッダに存在する、可変サイズのシンタックス要素である。図47Gのテーブルに示すように、INTCOMPFIELD(4637)は、どの参照フィールドが輝度補償を受けるかを示すために用いられる。INTCOMPFIELD(4637)は、NUMREF=0の場合でも存在する。
フィールド・ピクチャ・ルミナンス尺度1 LUMSCALE1(4638)要素、フィールド・ピクチャ輝度シフト1 LUMSHIFT1(4639)要素、フィールド・ピクチャ・ルミナンス尺度2 LUMSCALE2(4640)要素、およびフィールド・ピクチャ・ルミナンス・シフト2 LUMSHIFT2(4641)要素は、それぞれ、輝度補償に用いられる6ビット値である。LUMSCALE1(4638)要素およびLUMSHIFT1(4639)要素は、MVMODE(4635)が輝度補償を信号伝達する場合に存在する。INTCOMPFIELD(4637)要素が「1」または「00」の場合は、LUMSCALE1(4638)およびLUMSHIFT1(4639)がトップ・フィールドに適用される。それ以外の場合は、LUMSCALE1(4638)およびLUMSHIFT1(4639)がボトム・フィールドに適用される。LUMSCALE2(4640)要素およびLUMSHIFT2(4641)要素は、MVMODE(4635)が輝度補償を信号伝達し、INTCOMPFIELD(4637)要素が「1」である場合に存在する。LUMSCALE2(4640)およびLUMSHIFT2(4641)は、ボトム・フィールドに適用される。
マクロブロック・モード・テーブルMBMODETAB(4642)要素は、インターレースPフィールド・ヘッダ用に3ビット値を有する固定長フィールドである。MBMODETAB(4642)は、マクロ・ブロック・レイヤ内のマクロ・ブロック・モードMBMODE(4661)シンタックス要素を符号化/復号するために8つの符号テーブル(3ビット値で指定されるテーブル0〜7)のどれが用いられるかを示す。8つの符号テーブルは2セットあり、どのセットが用いられるかは、MVMODE(4635)によって示されるように、4MVマクロブロックがピクチャ内で可能かどうかに依存する。図47Hは、混在MVモードのインターレースPフィールドにおいて、MBMODE(4661)に使用可能な8つのテーブルを示す。図47Iは、1MVモードのインターレースPフィールドにおいて、MBMODE(4661)に使用可能な8つのテーブルを示す。
動きベクトルテーブルMVTAB(4643)要素は、固定長フィールドである。NUMREF=0であるインターレースPフィールドの場合、MVTAB(4643)は、動きベクトルデータを復号するために4つの符号テーブル(2ビット値で指定されるテーブル0〜3)のどれが用いられるかを示す、2ビットのシンタックス要素である。NUMREF=1であるインターレースPフィールドの場合、MVTAB(4643)は、動きベクトル・データを符号化/復号するために8つの符号テーブル(3ビット値で指定されるテーブル0〜7)のどれが用いられるかを示す、3ビットのシンタックス要素である。
インターレースPフィールド・ヘッダ内の4MVブロック・パターン・テーブル4MVBPTAB(4644)要素は、ピクチャが混在MVタイプであることを、MVMODE(4635)(または、MVMODE(4635)が輝度補償に設定されている場合はMVMODE2(4636))が示している場合に存在する2ビット値である。4MVBPTAB(4644)シンタックス要素は、4MVマクロブロック内の4MVブロック・パターン4MVBP(4664)シンタックス要素について4つのテーブル(2ビット値で指定されるテーブル0〜3)のどれが用いられるかを信号伝達する。図47Jは、4MVBP(4664)に使用可能な4つのテーブルを示す。
インターレースPフレーム・ヘッダ(図示せず)は、図46Cに示した、フィールド符号化されたインターレース・フレーム・ヘッダおよび図46Dに示したインターレースPフィールド・ヘッダと同じ要素を多く有する。これらは、FCM(4621)、MVRANGE(4633)、DMVRANGE(4634)、MBMODETAB(4642)、およびMVTAB(4643)を含むが、インターレースPフレームの厳密なシンタックスおよびセマンティクスはインターレースPフィールドと異なる可能性がある。インターレースPフレーム・ヘッダはさらに、ピクチャ・タイプ、1MVモードと4MVモードの切り換え、および輝度補償の信号伝達に関して、別の要素を含む。
インターレースPフレームは、マクロブロックごとに2つの動きベクトルを有する、フィールド符号化されたマクロブロックを含むことが可能なので、インターレースPフレーム・ヘッダは、2動きベクトル・ブロック・パターン・テーブル2MVBPTAB要素を含む。2MVBPTABは、インターレースPフレーム内に存在する2ビット値である。このシンタックス要素は、2MVフィールド符号化されたマクロブロックにある2MVブロック・パターン(2MVBP)要素を復号するために4つのテーブル(2ビット値で指定されるテーブル0〜3)のどれが用いられるかを信号伝達する。図47Kは、2MVBPに使用可能な4つのテーブルを示す。
インターレースBフィールドおよびインターレースBフレームは、インターレースPフィールドおよびインターレースPフレームと同じ要素を多く有する。特に、インターレースBフィールドは、4MVBPTAB(4644)シンタックス要素を含むことが可能である。インターレースBフレームは、2MVBPTABシンタックス要素と4MVBPTAB(4644)シンタックス要素の両方を含むが、それらの要素のセマンティクスは異なる可能性がある。
4.マクロブロック・レイヤのシンタックスおよびセマンティクス
マクロブロック用データは、マクロブロック・ヘッダとそれに続くブロック・レイヤとからなる。図46Eは、インターレースPフィールドのマクロブロック・レイヤ構造を示す。
マクロブロック・モードMBMODE(4661)要素は、可変サイズの要素である。この要素は、マクロブロック(1MV、4MV、またはイントラ)の動きベクトルの数、符号化されたブロック・パターンCBPCY(4662)要素がマクロブロックに対して存在するかどうか、および(一部のケースでは)動きベクトル差分データがマクロブロックに対して存在するかどうか、などの情報を統合的に示す。図47Hおよび図47Iは、インターレースPフィールドのMBMODE(4661)に使用可能なテーブルを示す。
動きベクトル・データMVDATA(4663)要素は、動きベクトルの動きベクトル情報(例えば、水平方向および垂直方向の差分)を符号化する、可変サイズの要素である。2つの参照フィールドを有するインターレースPフィールドについては、MVDATA(4663)はさらに、動きベクトルについて可能な複数の動きベクトル・プレディクタの中から選択するための情報を符号化する。
4動きベクトルブロックパターン4MVBP(4664)要素は、インターレースPフィールド、Bフィールド、Pフレーム、およびBフレームのマクロブロック内に存在可能な、可変サイズのシンタックス要素である。インターレースPフィールド、Bフィールド、およびPフレームのマクロブロックでは、4MVBP(4664)要素は、マクロブロックが4つの動きベクトルを有することをMBMODE(4661)が示している場合に存在する。この場合、4MVBP(4664)は、4つのルミナンス・ブロックのどれが非ゼロ動きベクトル差分を含むかを示す。
インターレースBフレームのマクロブロックでは、4MVBP(4664)は、マクロブロックが2つのフィールド動きベクトルを含むことをMBMODE(4661)が示している場合、およびマクロブロックが補間されたマクロブロックである場合に存在する。このケースでは、4MVBP(4664)は、4つの動きベクトル(トップおよびボトムフィールドの順方向動きベクトルと、トップおよびボトム・フィールドの逆方向動きベクトル)のどれが存在するかを示す。
2動きベクトル・ブロック・パターン2MVBP要素(図示せず)は、インターレースPフレームおよびBフレーム内のマクロブロックに存在する、可変サイズのシンタックス要素である。インターレースPフレームのマクロブロックでは、2MVBPは、マクロブロックが2つのフィールド動きベクトルを有することをMBMODE(4661)が示している場合に存在する。この場合、2MVBPは、2つのフィールド(トップおよびボトム)のどれが非ゼロ動きベクトル差分を含むかを示す。インターレースBフレームのマクロブロックでは、2MVBPは、マクロブロックが1つの動きベクトルを含むことをMBMODE(4661)が示していて、マクロブロックが補間されたマクロブロックである場合に存在する。この場合、2MVBPは、2つの動きベクトル(順方向および逆方向の動きベクトル)のどれが存在するかを示す。
ブロック・レベル動きベクトル・データBLKMVDATA(4665)要素は、特定の状況で存在する、可変サイズの要素である。この要素は、マクロブロックのブロックの動き情報を含む。
ハイブリッド動きベクトル予測HYBRIDPRED(4666)要素は、インターレースPフィールドのマクロブロックに存在可能な、動きベクトルごとの、1ビットのシンタックス要素である。ハイブリッド動きベクトル予測が用いられるときに、HYBRIDPRED(4666)が、2つの動きベクトル・プレディクタのどれを用いるべきかを示す。
5.ブロック・レイヤのシンタックスおよびセマンティクス
インターレース・ピクチャのブロック・レイヤは、プログレッシブ・ピクチャのブロック・レイヤのシンタックスおよびセマンティクスに従う。一般に、ブロックおよびサブブロックのDC係数およびAC係数の情報は、ブロック・レイヤで信号伝達される。
B.第1の複合実装形態における復号
ビデオ・シーケンスがインターレース・ビデオ・フレームからなるか、インターレース・フレームとプログレッシブ・フレームの混在を含む場合、FCM(4621)要素は、所与のピクチャがプログレッシブ・フレームとして符号化されているか、インターレース・フィールドとして符号化されているか、またはインターレース・フレームとして符号化されているかを示す。インターレース・フィールドとして符号化されたフレームの場合、FPTYPE(4622)は、そのフレームが、2つのインターレースIフィールドを含むか、1つのインターレースIフィールドと1つのインターレースPフィールドを含むか、2つのインターレースPフィールドを含むか、2つのインターレースBフィールドを含むか、1つのインターレースBフィールドと1つのインターレースBIフィールドを含むか、あるいは2つのインターレースBIフィールドを含むかを示す。以下、インターレース・フィールドの復号について説明する。以下のセクションでは、インターレースPフィールドの復号処理に焦点を当てる。
1.インターレースPフィールド復号のための参照
インターレースPフィールドは、動き補償において、既に復号された1つまたは2つのフィールドを参照することが可能である。NUMREF(4631)要素は、現在のPフィールドが1つの先行参照フィールドを参照できるか、2つの先行参照フィールドを参照できるかを示す。NUMREF=0であれば、現在のPフィールドは1つのフィールドだけを参照することが可能である。この場合は、ビットストリーム内でREFFIELD(4632)が後に続く。REFFIELD(4632)は、既に復号されているどのフィールドが参照として用いられているかを示す。REFFIELD=0であれば、(表示順で)時間的に最も近いIフィールドまたはPフィールドが参照として用いられている。REFFIELD=1であれば、時間的に2番目に近いIフィールドまたはPフィールドが参照として用いられている。NUMREF=1であれば、現在のPフィールドは、(表示順で)時間的に最も近い2つのIフィールドまたはPフィールドを参照として用いる。前述の、図24A〜図24Fに示した、NUMREF=0およびNUMREF=1の場合の参照フィールド・ピクチャの例は、第1の複合実装形態に当てはまる。
2.ピクチャ・タイプ
インターレースPフィールドは、2つのタイプ(1MVまたは混在MV)のうちの1つであることが可能である。1MV Pフィールドでは、各マクロブロックが1MVマクロブロックである。混在MV Pフィールドでは、各マクロブロックは、すべてのマクロブロックにおいてMBMODE(4661)によって示されるように、1MVまたは4MVマクロブロックとして符号化されることが可能である。インターレースPフィールドについては、1MVモードか混在MVモードかは、MVMODE(4635)要素およびMVMODE2(4636)要素によって信号伝達される。
3.マクロブロック・モード
インターレースPフィールドのマクロブロックは、可能な3つのタイプ(1MV、4MV、およびイントラ)のうちの1つであることが可能である。MBMODE(4661)要素は、マクロブロック・タイプ(1MV、4MV、またはイントラ)と、さらにCBPおよびMVデータの存在と、を示す。MVMODE(4635)/MVMODE2(4636)シンタックス要素が示す、インターレースPフィールドが混在MVか、すべて1MVかに応じて、MBMODE(4661)は、以下のように情報を信号伝達する。
図26のテーブルは、MBMODE(4661)が、すべて1MVであるPフィールドのマクロブロックについて情報を信号伝達する様子を示している。図47Iに示すように、8つのテーブルのうちの1つを用いて、1MV PフィールドのMBMODE(4661)が符号化/復号される。図27のテーブルは、MBMODE(4661)が、混在MVであるPフィールドのマクロブロックについて情報を信号伝達する様子を示している。図47Hに示すように、8つのテーブルのうちの1つを用いて、混在MV PフィールドのMBMODE(4661)が符号化/復号される。
したがって、1MVマクロブロックは、1MV インターレースPフィールドと混在MVインターレースPフィールドとで発生する可能性がある。1MVマクロブロックは、マクロブロック内の6つのブロックすべてについて現在のピクチャと参照ピクチャとの間の変位が単一の動きベクトルによって表されるマクロブロックである。1MVマクロブロックについては、MBMODE(4661)要素は、(1)マクロブロックタイプが1MVであること、(2)マクロブロックについてCBPCY(4662)要素が存在するかどうか、および(3)マクロブロックについてMVDATA(4663)要素が存在するかどうか、を示す。
CBPCY(4662)要素が存在することをMBMODE(4661)要素が示している場合は、マクロブロック・レイヤ内の対応する場所にCBPCY(4662)要素が存在する。CBPCY(4662)は、ブロック・レイヤ内で6つのブロックのどれが符号化されているかを示す。CBPCY(4662)が存在しないことをMBMODE(4661)要素が示している場合は、CBPCY(4662)が0に等しいと見なされ、マクロブロック内の6つのブロックのどれについてもブロック・データが存在しない。
MVDATA(4663)要素が存在することをMBMODE(4661)要素が示している場合は、マクロブロック・レイヤ内の対応する場所にMVDATA(4663)要素が存在する。MVDATA(4663)要素は、動きベクトル差分を符号化する。動きベクトル差分は、動きベクトルを再構成するために、動きベクトル・プレディクタと結合される。MVDATA(4663)要素が存在しないことをMBMODE(4661)要素が示している場合は、動きベクトル差分がゼロであると見なされ、したがって、動きベクトルが動きベクトル・プレディクタと等しくなる。
4MVマクロブロックは、混在MV Pフィールドにおいて発生する。4MVマクロブロックは、マクロブロック内の4つのルミナンス・ブロックのそれぞれが、そのブロックの、現在のピクチャと参照ピクチャとの間の変位を示す関連付けられた動きベクトルを有することが可能であるマクロブロックである。クロマ・ブロックの変位は、4つのルミナンス動きベクトルから導出される。現在のブロックと参照ブロックとの間の差分は、ブロック・レイヤにおいて符号化される。4MVマクロブロックについては、MBMODE(4661)要素は、(1)マクロブロック・タイプが4MVであること、および(2)CBPCY(4662)要素が存在するかどうか、を示す。
イントラ・マクロブロックは、1MVまたは混在MV Pフィールドで発生する可能性がある。イントラ・マクロブロックは、6つのブロックすべてが、先行ピクチャ・データをまったく参照せずに符号化されたマクロブロックである。イントラ・マクロブロックについては、MBMODE(4661)要素は、(1)マクロブロック・タイプがイントラであること、および(2)CBPCY(4662)要素が存在するかどうか、を示す。イントラ・マクロブロックの場合、CBPCY(4662)要素が存在すれば、これは、6つのブロックのどれが、符号化されたAC係数データをブロックレイヤ内に有するか、を示す。DC係数は、どの場合でも、各ブロックについて存在する。
4.動きベクトル・ブロック・パターン
4MVBP(4664)要素は、4つのルミナンス・ブロックのどれが非ゼロ動きベクトル差分を含むかを示す。4MVBP(4664)は、0〜15の値に復号される。これは、バイナリ値で表された場合には、対応するルミナンス・ブロックの動きベクトルが存在するかどうかを示すビット・シンタックス要素を表す。図34のテーブルは、ルミナンス・ブロックと4MVBP(4664)の各ビットとの関連付けを示している。図47Jに示すように、4つのテーブルのうちの1つを用いて4MVBP(4664)が符号化/復号される。
4MVBP(4664)の4ビットの各場所においては、値0は、(BLKMVDATA内の)動きベクトル差分が、ブロックの、対応する場所に存在しないことを示し、動きベクトル差分は0と見なされる。値1は、(BLKMVDATA内の)動きベクトル差分が、ブロックの、対応する場所に存在することを示す。例えば、4MVBP(4664)がバイナリ値1100に復号された場合、ビットストリームは、ブロック0および1についてはBLKMVDATA(4665)を含み、ブロック2および3についてはBLKMVDATA(4665)が存在しない。同様に、4MVBP(4664)は、インターレースBフィールドおよびインターレースPフレームの4MVマクロブロックについて動きベクトル差分情報の存在/不在を示すために用いられる。
インターレースPフレームまたはインターレースBフレームのフィールド符号化されたマクロブロックは、2つの動きベクトルを含むことが可能である。2フィールドMVマクロブロックの場合、2MVBP要素は、2つのフィールドのどれが非ゼロ差分動きベクトルを有するかを示す。図47Kに示すように、4つのテーブルのうちの1つを用いて2MVBPが符号化/復号される。
5.フィールド・ピクチャ座標系
以下のセクションでは、動きベクトルの単位をフィールド・ピクチャの単位で表す。例えば、動きベクトルの垂直方向成分が(1/4画素単位で)+6の変位を示した場合、これは、1と1/2フィールド・ピクチャ・ラインの変位を示している。
図48は、動きベクトルの垂直方向成分と、現在のフィールドと参照フィールドの、同じ極性と反対の極性の両方の組合せでの空間位置との関係を示す。図48は、現在のフィールドおよび参照フィールドにおける画素の1つの縦列を示している。○印は、整数の画素位置を表し、×印は、1/4画素位置を表す。値0は、現在のフィールドと参照フィールドとで、場所の垂直方向変位がないことを示す。現在のフィールドと参照フィールドとが反対の極性の場合、0垂直方向ベクトルは、参照フィールド内のフィールド・ライン間の途中の場所(1/2画素シフト)をポイントする。現在のフィールドと参照フィールドとが同じ極性の場合、0垂直方向ベクトルは、参照フィールド内の対応するフィールド・ラインをポイントする。
6.動きベクトル差分の復号
MVDATA(4663)要素およびBLKMVDATA(4665)要素は、マクロブロックまたはマクロブロック内のブロックの動き情報を符号化する。1MVマクロブロックは、単一のMVDATA(4663)要素を有し、4MVマクロブロックは、0〜4個のBLKMVDATA(4665)を有することが可能である。MVDATA(4663)またはBLKMVDATA(4665)から動きベクトル差分を算出する処理は、参照(NUMREF=0)が1つの場合と参照(NUMREF=1)が2つの場合とで異なる。
参照フィールドを1つだけ有するフィールド・ピクチャでは、MVDATA(4663)またはBLKMVDATA(4665)シンタックス要素のそれぞれが、(1)水平方向の動きベクトル差分成分、および(2)垂直方向の動きベクトル差分成分を統合的に符号化する。MVDATA(4663)要素またはBLKMVDATA(4665)要素は、VLCであり、その後にFLCが続く。VLCの値によってFLCのサイズが決まる。MVTAB(4643)シンタックス要素は、VLCの復号に用いられるテーブルを指定する。
図49Aは、1つの参照フィールドを有するフィールド・ピクチャのブロックまたはマクロブロックの動きベクトルについての、動きベクトル差分の復号を示す擬似コードである。この擬似コードでは、値dmv_xおよびdmv_yを算出する。ここで、dmv_xは、差分水平方向動きベクトル成分であり、dmv_yは、差分垂直方向動きベクトル成分である。変数k_xおよびk_yは、図49Bに示すテーブルに従うMVRANGE(4633)によって定義される動きベクトル範囲に依存する固定長値である。
変数extend_xは、拡張範囲水平方向動きベクトル差分に対応し、変数extend _yは、拡張範囲垂直方向動きベクトル差分に対応する。変数extend_xおよびextend_yは、DMVRANGE(4634)シンタックス要素から導出される。水平方向成分の拡張範囲が用いられていることをDMVRANGE(4634)が示している場合は、extend_x=1である。そうでない場合は、extend_x=0である。同様に、垂直方向成分の拡張範囲が用いられていることをDMVRANGE(4634)が示している場合は、extend_y=1である。そうでない場合は、extend_y=0である。offset_tableは、次のように定義される配列である。
offset_table1[9]={0,1,2,4,8,16,32,64,128}
offset_table2[9]={0,1,3,7,15,31,63,127,255}
ここで、offset_table2[]は、差分範囲が拡張されている場合に、水平方向成分または垂直方向成分についてついて用いられる。図49Aおよび図49Bは、インターレースPフィールドの場合の拡張差分動きベクトルの復号を示しているが、拡張差分動きベクトルの復号は、第1の複合実装形態において、インターレースBフィールド、インターレースPフレーム、およびインターレースBフレームにも用いられる。
2つの参照フィールドを有するフィールド・ピクチャでは、MVDATA(4663)またはBLKMVDATA(4665)の各シンタックス要素が、(1)水平方向動きベクトル差分成分、(2)垂直方向動きベクトル差分成分、および(3)用いられているのが優勢的なプレディクタか、非優勢的なプレディクタか、すなわち、その2つのフィールドのどれが動きベクトルによって参照されているか、を統合的に符号化する。参照フィールドが1つである場合と同様に、MVDATA(4663)要素またはBLKMVDATA(4665)要素はVLCであり、その後にFLCが続く。VLCの値によってFLCのサイズが決まり、MVTAB(4643)シンタックス要素が、VLCの復号に用いられるテーブルを指定する。
図50は、2つの参照フィールドを有するフィールド・ピクチャのブロックまたはマクロブロックの動きベクトルについての、動きベクトル差分および優勢的/非優勢的なプレディクタの復号を説明する擬似コードである。この擬似コードでは、値predictor_flagは、用いられているのが優勢的な動きベクトル・プレディクタか、非優勢動きベクトルプレディクタかを示すバイナリ・フラグである。predictor_flag=0であれば優勢プレディクタが用いられており、predictor_flag=1であれば非優勢プレディクタが用いられている。他の様々な変数(dmv_x、dmv_y、k_x、k_y、extend_x、extend_y、offset_table1[]、offset_table2[]など)は、参照フィールドが1つの場合と同様である。テーブルsize_tableは、次のように定義される配列である。
size_table[16]={0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7}
7.動きベクトル・プレディクタ
動きベクトルは、前のセクションで算出された動きベクトル差分を動きベクトルプレディクタに加算することによって算出される。プレディクタは、最大3つの隣接する動きベクトルから算出される。動きベクトル・プレディクタの算出は、動きベクトル・モードが1/2画素であっても、1/4画素単位で行う。
1MVインターレースPフィールドでは、現在のマクロブロックのプレディクタを算出するために最大3つの隣接する動きベクトルを用いる。1MVプログレッシブPフレームについては、対象の動きベクトルに隣接するマクロブロックの位置を図5Aおよび図5Bに示して説明した。
混在MXインターレースPフィールドでは、現在のブロックまたはマクロブロックのプレディクタを算出するために最大3つの隣接する動きベクトルを用いる。混在MVプログレッシブPフレームについては、対象の動きベクトルに隣接するブロックおよび/またはマクロブロックの位置を図6A〜図10に示して説明した。
ピクチャ・ヘッダ内のNUMREF(4631)シンタックス要素が0であれば、現在のインターレースPフィールドは、既に符号化されたフィールドを1つだけ参照することが可能である。NUMREF=1であれば、現在のインターレースPフィールドは、最も近い2つの参照フィールド・ピクチャを参照することが可能である。前者の場合は、各動きベクトルについて単一のプレディクタを算出する。後者の場合は、2つの動きベクトル・プレディクタを算出する。図51Aおよび図51Bの擬似コードは、参照フィールドが1つである場合について動きベクトル・プレディクタを算出する様子を示す。この擬似コードの変数fieldpred_xおよびfieldpred_yは、動きベクトル・プレディクタの水平方向成分および垂直方向成分を表す。
参照フィールドが2つであるインターレースPフィールドの場合(NUMREF=1)、現在のフィールドは、最も近い2つの参照フィールドを参照することが可能である。この場合は、インター符号化された各マクロブロックについて、2つの動きベクトル・プレディクタが算出される。1つのプレディクタは、同じ極性の参照フィールドから算出され、もう1つのプレディクタは、反対の極性の参照フィールドから算出される。同じ極性のフィールドと反対の極性のフィールドのうち、一方が優勢的なフィールドであり、もう一方が非優勢的なフィールドである。優勢的なフィールドは、動きベクトル・プレディクタ候補の大多数を含むフィールドである。同数の場合は、反対のフィールドから導出された動きベクトルが、優勢的なプレディクタであると見なされる。イントラ符号化されたマクロブロックは、優勢的/非優勢的なプレディクタの算出では考慮されない。すべての候補プレディクタ・マクロブロックがイントラ符号化されている場合、優勢的および非優勢的な動きベクトル・プレディクタはゼロに設定され、優勢的なプレディクタは、反対のフィールドからのものであると見なされる。
図52A〜図52Fの擬似コードは、参照フィールドが2つあり、動きベクトル・プレディクタ候補が3つある場合について、動きベクトル・プレディクタが算出される様子を示す。変数samefieldpred_xおよびsamefieldpred_yは、同じフィールドにある動きベクトル・プレディクタの水平方向成分および垂直方向成分を表し、変数oppositefieldpred_xおよびoppositefieldpred_yは、反対のフィールドにある動きベクトル・プレディクタの水平方向成分および垂直方向成分を表す。変数samecountおよびoppositecountは、0に初期設定される。変数dominantpredictorは、優勢的なプレディクタがどのフィールドに含まれるかを示す。(動きベクトル差分から復号された)値predictor_flagは、用いられているのが優勢的なプレディクタか、非優勢的なプレディクタかを示す。
図52Gおよび図52Hの擬似コードは、図52A〜図52Fの擬似コードで参照されているスケーリング操作を示す。この操作は、一方のフィールドのプレディクタをもう一方のフィールドのプレディクタから導出するために用いられる。SCALEOPP、SCALESAME1、SCALESAME2、SCALEZONE1_X、SCALEZONE1_Y、ZONE1OFFSET_X、およびZONE1OFFSET_Yの値を、現在のフィールドが第1のフィールドである場合について図52Iのテーブルに示し、現在のフィールドが第2のフィールドである場合について図52Jのテーブルに示す。参照フレーム距離は、ピクチャヘッダ内のREFDIST(4624)フィールドにおいて符号化される。参照フレーム距離はREFDIST+1である。
図52K〜図52Nは、図52H〜図52Jに示したものの代替となるスケーリング操作の擬似コードおよびテーブルである。(図52A〜図52Gの擬似コードは引き続き用いるが)図52H〜図52Jのスケーリングの擬似コードおよびテーブルの代わりに、図52K〜図52Nのスケーリングの擬似コードおよびテーブルを用いる。参照フレーム距離は、フィールドレイヤヘッダの要素から取得される。Nの値は、図52Nのテーブルに示すように、動きベクトル範囲に依存する。
8.ハイブリッド動きベクトル予測
前のセクションで算出された動きプレディクタは、そのプレディクタがビットストリーム内で明示的に符号化されているかどうかを確認するために、A(上の)プレディクタおよびC(左の)プレディクタを基準にして検査される。明示的に符号化されている場合は、動きベクトル・プレディクタとしてプレディクタAを用いるか、プレディクタCを用いるかを示すビットが存在する。図53の擬似コードは、そのようなハイブリッド動きベクトル予測の復号を示す。この擬似コードでは、変数predictor_pre_xおよびpredictor_pre_yが、それぞれ、前のセクションで算出された水平方向および垂直方向の動きベクトルプレディクタである。変数predictor_post_xおよびpredictor_post_yは、それぞれ、ハイブリッド動きベクトル予測を検査した後の、水平方向および垂直方向の動きベクトル・プレディクタである。変数predictor_pre、predictor_post、predictorA、predictorB、およびpredictorCはすべて、predictor_flagの値で示される極性のフィールドを表す。例えば、反対のフィールド・プレディクタが用いられていることをpredictor_flagが示している場合は次のようになる。
Figure 2011130463
同様に、同じフィールドプレディクタが用いられていることをpredictor_flagが示している場合は次のようになる。
Figure 2011130463
ここで、oppositefieldpredおよびsamefieldpredの値は、前のセクションで説明したように算出される。
9.ルミナンス動きベクトルの再構成
1MVおよび4MVマクロブロックの両方について、ルミナンス動きベクトルは、以下のように、差分をプレディクタに加算することによって再構成される。ここで、変数range_xおよびrange_yは、MVRANGE(4633)に依存し、図49Bのテーブルで指定される。NUMREF=0の場合(参照フィールドが1つであるインターレースPフィールド):
mv_x=(dmv_x+predictor_x)smod range_x
mv_y=(dmv_y+predictor_y)smod(range_y)
NUMREF=1の場合(参照フィールドが2つであるインターレースPフィールド):
mv_x=(dmv_x+predictor_x)smod range_x
mv_y=(dmv_y+predictor_y)smod(range_y/2)
インターレースPフィールドが2つの参照ピクチャを用いる場合(NUMREF=1)は、図54に示すように、(動きベクトル差分の復号において導出された)predictor_flagと、(動きベクトル予測において導出された)dominantpredictorの値との組合せによって、どのフィールドが参照として用いられているかが決定される。
1MVマクロブロックには、マクロブロックのルミナンス成分を構成する4つのブロックに対して1つの動きベクトルが存在する。マクロブロック・レイヤにMVデータが存在しないことをMBMODE(4661)シンタックス要素が示している場合は、dmv_x=0およびdmv_y=0(mv_x=predictor_xおよびmv_y=predictor_y)である。
4MVマクロブロックでは、マクロブロック内のインター符号化されたルミナンス・ブロックのそれぞれが、それぞれの動きベクトルを有する。したがって、各4MVマクロブロックには4つのルミナンス動きベクトルが存在する。ブロックについて動きベクトル情報が存在しないことを4MVBP(4664)シンタックス要素が示している場合は、そのブロックについてdmv_x=0およびdmv_y=0(mv_x=predictor_xおよびmv_y=predictor_y)である。
10.クロマ動きベクトルの導出
クロマ動きベクトルは、ルミナンス動きベクトルから導出される。クロマ動きベクトルは、2つのステップで再構成される。第1のステップでは、ルミナンス動きベクトルを適切に組み合わせ、スケーリングすることによって、名目上のクロマ動きベクトルを取得する。スケーリングは、1/4画素オフセットより1/2画素オフセットが優先されるように行われる。第2のステップでは、1ビットのFASTUVMCシンタックス要素を用いて、クロマ動きベクトルのさらなる丸めが必要かどうかを決定する。FASTUVMC=0であれば、第2のステップで丸めを行わない。FASTUVMC=1であれば、1/4画素オフセットにあるクロマ動きベクトルを、最も近い1/2画素位置およびフル画素位置に丸める。双線形(bilinear)フィルタリングだけがすべてのクロマ補間に用いられる。変数cmv_xおよびcmv_yは、それぞれクロマ動きベクトル成分を表し、lmv_xおよびlmv_yは、それぞれルミナンス動きベクトル成分を表す。
1MVマクロブロックでは、クロマ動きベクトルは、以下のように、ルミナンス動きベクトルから導出される。
cmv_x=(lmv_x+round[lmv_x & 3])>>1
cmv_y=(lmv_y+round[lmv_y & 3])>>1
ここで、round[0]=0、round[1]=0、round[2]=0、round[3]=1。
図55Aおよび図55Bの擬似コードは、4MVマクロブロックの4つのルミナンス・ブロックにある動き情報からクロマ動きベクトルを導出する第1のステップの様子を示す。この擬似コードのixおよびiyは一時変数である。図55Aは、参照フィールドが1つであるインターレースPフィールドのクロマ動きベクトル導出の擬似コードであり、図55Bは、参照フィールドが2つであるインターレースPフィールドのクロマ動きベクトル導出の擬似コードである。
11.輝度補償
インターレースPフィールドに輝度補償が用いられていることをMVMODE(4635)が示している場合は、参照フィールドの1つまたは両方の画素が、現在のPフィールドのプレディクタとして用いられる前に再マッピングされる。輝度補償が用いられる場合は、第1の参照フィールドのビットストリーム内にLUMSCALE1(4638)およびLUMSHIFT1(4639)シンタックス要素が存在し、第2の参照フィールドについても同様にLUMSCALE2(4640)およびLUMSHIFT2(4641)要素が存在することが可能である。図56の擬似コードは、第1の参照フィールドの参照フィールド画素の再マッピングに用いられるルック・アップ・テーブルを構築するために、LUMSCALE1(4638)およびLUMSHIFT1(4639)の値が用いられる様子を示す(この擬似コードは、第2の参照フィールドの場合のLUMSCALE2(4640)およびLUMSHIFT2(4641)にも同様に適用可能である)。
次のように、参照フィールドのY成分がLUTY[]テーブルを用いて再マッピングされ、Cb/Cr成分がLUTUV[]テーブルを用いて再マッピングされる。
Figure 2011130463
ここで、pYは、参照フィールド内のオリジナルのルミナンス画素値であり、
Figure 2011130463
は、参照フィールド内の再マッピングされたルミナンス画素値であり、pUVは、参照フィールド内のオリジナルのCbまたはCr画素値であり、
Figure 2011130463
は、参照フィールド内の再マッピングされたCbまたはCr画素値である。
12.残りの復号
復号器は、マクロブロックのCBPCY(4662)要素が存在する場合にはこれを復号する。CBPCY(4662)要素は、係数データの存在/不在を示す。復号器は、ブロック・レイヤにおいて、インター符号化されたブロックおよびイントラ符号化されたブロックの係数データを復号する(4MVマクロブロックの場合を除く)。復号器は、インター符号化されたブロックを再構成するために、復号器は、(1)変換タイプ(8×8、8×4、4×8、または4×4)を選択し、(2)サブブロック・パターンを復号し、(3)係数を復号し、(4)逆変換を実行し、(5)逆量子化を実行し、(6)そのブロックの予測を取得し、(7)その予測と誤差ブロックとを加算する。
C.第2の複合実装形態におけるシーケンスおよびセマンティクス
第2の複合実装形態では、圧縮ビデオ・シーケンスは、階層型レイヤとして構造化されたデータで構成される。これらのレイヤは、上から順に、ピクチャ・レイヤ、マクロブロック・レイヤ、およびブロック・レイヤである。このシーケンスの前にシーケンス・レイヤがある。図57A〜図57Cは、各種レイヤを構成するビットストリーム要素を示す。
1.シーケンス・レイヤのシンタックスおよびセマンティクス
シーケンス・レベル・ヘッダは、圧縮ピクチャのシーケンスの復号に用いられるシーケンス・レベル・パラメータを収容する。復号器は、このヘッダを、外部から伝達された復号器構成情報として、またはビデオ・データ・ビットストリームの一部として、用いることが可能である。図57Aは、シーケンス・レイヤ・ビットストリームのシンタックス図であり、シーケンス・レイヤを構成する要素を示す。クリップ・プロファイルPROFILE(5701)要素は、クリップ生成に用いられる符号化プロファイルを指定する。PROFILEが「アドバンスド」プロファイルの場合、クリップ・レベルLEVEL(5702)要素は、そのクリップの符号化レベルを指定する。あるいは(例えば、他のプロファイルの場合)、クリップ・レベルは、外部手段によって復号器に伝達される。
INTERLACE(5703)要素は、PROFILEがアドバンスド・プロファイルの場合に存在する1ビット・フィールドである。INTERLACE(5703)は、ビデオがプログレッシブ・モードで符号化されているか、インターレース・モードで符号化されているかを示す。INTERLACE=0であれば、ビデオ・フレームはプログレッシブ・モードで符号化されている。INTERLACE=1であれば、ビデオ・フレームはインターレース・モードで符号化されている。PROFILE(5701)がアドバンスド・プロファイルでない場合、ビデオはプログレッシブ・モードで符号化されている。
拡張動きベクトルEXTENDED_MV(5704)要素は、拡張動きベクトル機能がオンになっているかオフになっているかを示す1ビット・フィールドである。EXTENDED_MV=1であれば、動きベクトルは拡張範囲を有する。EXTENDED_MV=0であれば、動きベクトルは拡張範囲を有しない。
2.ピクチャ・レイヤのシンタックスおよびセマンティクス
ピクチャのデータは、ピクチャ・ヘッダと、それに続くマクロブロック・レイヤ用データとからなる。図57Bは、ピクチャ・レイヤ・ビットストリームのシンタックス図であり、インターレースPフィールドのピクチャ・レイヤを構成する要素を示す。
ピクチャ・タイプPTYPE(5722)要素は、1ビット・フィールドまたは可変サイズのフィールドである。Bピクチャがない場合は、IおよびPピクチャだけがシーケンス内に存在し、PTYPEは単一ビットで符号化される。PTYPE=0であれば、ピクチャ・タイプはIである。PTYPE=1であれば、ピクチャ・タイプはPである。Bピクチャの数が0より大きい場合、PTYPE(5722)は、フレームのピクチャ・タイプを示す、可変サイズのフィールドである。PTYPE=1であれば、ピクチャ・タイプはPである。PTYPE=01(バイナリ)であれば、ピクチャ・タイプはIである。そして、PTYPE=00(バイナリ)であれば、ピクチャ・タイプはBである。
参照ピクチャ数NUMREF(5731)要素は、インターレースPフィールド・ヘッダ内に存在する、1ビットのシンタックス要素である。この要素は、インターレースPフィールドが1つの参照ピクチャを有するか(NUMREF=0)、2つの参照ピクチャを有するか(NUMREF=1)を示す。参照フィールド・ピクチャ・インジケータREFFIELD(5732)は、NUMREF=0の場合にインターレースPフィールド・ヘッダ内に存在する、1ビットのシンタックス要素である。この要素は、可能な2つの参照ピクチャのどれをインターレースPフィールドが用いるかを示す。
拡張MV範囲フラグMVRANGE(5733)は、特定のプロファイル(「メイン」プロファイル)を用いて符号化され、BROADCAST要素が1に設定されているシーケンスのPピクチャに存在する、可変サイズのシンタックス要素である。MVRANGE(5733)は、大まかには、動きベクトルの拡張範囲(すなわち、動きベクトルの、より長い、可能な水平方向および/または垂直方向変位)を示す。MVRANGE(5733)は、動きベクトル差分の復号に用いられる。
動きベクトル・モードMVMODE(5735)要素は、可変サイズのシンタックス要素であり、4つの動きベクトル符号化モードのうちの1つ、または1つの輝度補償モードを信号伝達する。動きベクトル符号化モードは、動き補償の端数画素補間規則が異なる3つの「1MV」モードを含む。1MVは、ピクチャ内の各マクロブロックがせいぜい1つの動きベクトルを有することを意味する。「混在MV」モードでは、ピクチャ内の各マクロブロックは、1つまたは4つの動きベクトルを有するか、スキップされることが可能である。PQUANT(ピクチャの量子化係数)の値に応じて、図47Eに示すテーブルのうちのいずれか1つがMVMODE(5735)要素用に用いられる。
動きベクトル・モード2 MVMODE2(5736)要素は、可変サイズのシンタックス要素であり、MVMODE(5735)が輝度補償を信号伝達する場合にインターレースPフィールド・ヘッダ内に存在する。MVMODE2(5736)については、先出のテーブル(から輝度補償用のコードを除いたもの)を用いることが可能である。
ルミナンス尺度LUMSCALE(5738)要素およびルミナンス・シフトLUMSHIFT(5739)要素は、それぞれ、輝度補償に用いられる6ビット値である。LUMSCALE(5738)およびLUMSHIFT(5739)は、MVMODE(5735)が輝度補償を信号伝達する場合に、インターレースPフィールド・ヘッダ内に存在する。
マクロブロック・モード・テーブルMBMODETAB(5742)要素は、インターレースPフィールド・ヘッダ用の2ビット・フィールドである。MBMODETAB(5742)は、マクロブロック・レイヤ内のマクロブロック・モードMBMODE(5761)シンタックス要素を符号化/復号するために4つの符号テーブル(2ビット値で指定されるテーブル0〜3)のどれが用いられるかを示す。
動きベクトル・テーブルMVTAB(5743)要素は、インターレースPフィールド用の2ビット・フィールドである。MVTAB(5743)は、動きベクトル・データを符号化/復号するために4つの符号テーブル(2ビット値で指定されるテーブル0〜3)のどれが用いられるかを示す。
4MVブロック・パターン・テーブル4MVBPTAB(5744)要素は、ピクチャが混在MVタイプであることを、MVMODE(5735)(または、MVMODE(5735)が輝度補償に設定されている場合はMVMODE2(5736))が示している場合に、インターレースPフィールド内に存在する2ビット値である。4MVBPTAB(5744)は、4MVマクロブロック内の4MVブロック・パターン4MVBP(5764)フィールドを符号化/復号するために4つの符号テーブル(2ビット値で指定されるテーブル0〜3)のどれが用いられるかを信号伝達する。
インターレースPフレーム・ヘッダ(図示せず)は、図57Bに示したインターレースPフィールド・ヘッダと同じ要素を多く有する。これらは、PTYPE(5722)、MBMODETAB(5742)、MVTAB(5743)、および4MVBPTAB(5744)を含むが、インターレースPフレームの厳密なシンタックスおよびセマンティクスはインターレースPフィールドと異なる可能性がある。例えば、繰り返しになるが、4MVBPTABは、4MVマクロブロック内の4MVブロック・パターン4MVBP要素を符号化/復号するために4つの符号テーブル(2ビット値で指定されるテーブル0〜3)のどれが用いられるかを示す2ビット・フィールドである。インターレースPフレーム・ヘッダはさらに、1MVモードと4MVモードの切り換え、および輝度補償の信号伝達に関して、別の要素を含む。
インターレースPフレームは、マクロブロックごとに2つの動きベクトルを有する、フィールド符号化されたマクロブロックを含むことが可能なので、インターレースPフレーム・ヘッダは、2動きベクトル・ブロック・パターン・テーブル2MVBPTAB要素を含む。2MVBPTABは、インターレースPフレーム内に存在する2ビット・フィールドである。このシンタックス要素は、2MVフィールド符号化されたマクロブロックにある2MVブロック・パターン(2MVBP)要素を符号化/復号するために、4つのテーブル(2ビット値で指定されるテーブル0〜3)のどれが用いられるかを信号伝達する。図47Kは、2MVBPに使用可能な4つのテーブルを示す。
インターレースBフィールドおよびインターレースBフレームは、インターレースPフィールドおよびインターレースPフレームと同じ要素を多く有する。特に、インターレースBフレームは、2MVBPTABおよび4MVBPTAB(5721)の両シンタックス要素を含むが、これらの要素のセマンティクスはインターレースPフィールドおよびPフレームと異なる可能性がある。
3.マクロブロック・レイヤのシンタックスおよびセマンティクス
マクロブロック用データは、マクロブロック・ヘッダとそれに続くブロック・レイヤとからなる。図57Cは、マクロブロック・レイヤ・ビットストリームのシンタックス図であり、インターレースPフィールドのマクロブロックのマクロブロック・レイヤを構成する要素を示す。
マクロブロック・モードMBMODE(5761)要素は、可変サイズの要素である。この要素は、マクロブロック(1MV、4MV、またはイントラ)の動きベクトルの数、符号化されたブロック・パターンCBPCY(5762)要素がマクロブロックに対して存在するかどうか、および(一部のケースでは)動きベクトル差分データがマクロブロックに対して存在するかどうかなどの情報を統合的に示す。
動きベクトル・データMVDATA(5763)要素は、可変サイズの要素であり、マクロブロックの動きベクトルの動きベクトル情報(例えば、水平方向および垂直方向の差分)を符号化する。2つの参照フィールドを有するインターレースPフィールドについては、MVDATA(5763)はさらに、動きベクトルについて、優勢的および非優勢的な動きベクトル・プレディクタの中から選択するための情報を符号化する。
4動きベクトル・ブロック・パターン4MVBP(5764)要素は、マクロブロックが4つの動きベクトルを有することをMBMODE(5761)が示している場合に存在する。4MVBP(5764)要素は、4つのルミナンス・ブロックのどれが非ゼロ動きベクトル差分を含むかを示す。符号テーブルを用いて、4MVBP(5764)要素が0〜14の値に復号される。この復号された値は、バイナリ値で表される場合に、図34に示すように、対応するルミナンス・ブロックの動きベクトルが存在するかどうかを示すビット・フィールドを表す。
2動きベクトル・ブロック・パターン2MVBP要素(図示せず)は、可変サイズのシンタックス要素であり、インターレースPフレーム内のマクロブロックに存在する。インターレースPフレームのマクロブロックでは、2MVBPは、マクロブロックが2つのフィールド動きベクトルを有することをMBMODE(5761)が示している場合に、存在する。この場合、2MVBPは、2つのフィールド(トップおよびボトム)のどれが非ゼロ動きベクトル差分を含むかを示す。
ブロック・レベル動きベクトル・データBLKMVDATA(5765)要素は、特定の状況で存在する、可変サイズの要素である。この要素は、マクロブロックのブロックの動き情報を含む。
ハイブリッド動きベクトル予測HYBRIDPRED(5766)要素は、インターレースPフィールドのマクロブロックに存在可能な、動きベクトルごとの、1ビットのシンタックス要素である。ハイブリッド動きベクトル予測が用いられるときに、HYBRIDPRED(5766)は、2つの動きベクトル・プレディクタのどれを用いるべきかを示す。
4.ブロック・レイヤのシンタックスおよびセマンティクス
インターレース・ピクチャのブロック・レイヤは、プログレッシブ・ピクチャのブロック・レイヤのシンタックスおよびセマンティクスに従う。一般に、ブロックおよびサブブロックのDC係数およびAC係数の情報は、ブロック・レイヤで信号伝達される。
D.第2の複合実装形態における復号
以下のセクションでは、インターレースPフィールドの復号処理に焦点を当てる。
1.インターレースPフィールド復号のための参照
インターレースPフィールドは、動き補償において、既に復号された1つまたは2つのフィールドを参照することが可能である。ピクチャ・レイヤ内のNUMREF(5731)フィールドは、現在のフィールドが参照することが可能な先行参照フィールド・ピクチャが1つか2つかを示す。NUMREF=0であれば、現在のインターレースPフィールドは1つのフィールドだけを参照することが可能である。この場合は、ピクチャ・レイヤ・ビットストリーム内でREFFIELD(5732)要素が続き、この要素が、どのフィールドが参照として用いられているかを示す。REFFIELD=0であれば、(表示順で)時間的に最も近いIフィールドまたはPフィールドが参照として用いられている。REFFIELD=1であれば、時間的に2番目に近いIフィールド・ピクチャまたはPフィールド・ピクチャが参照として用いられている。NUMREF=1であれば、現在のインターレースPフィールド・ピクチャは、(表示順で)時間的に最も近い2つのIフィールド・ピクチャまたはPフィールド・ピクチャを参照として用いる。前述の、図24A〜図24Fに示した、NUMREF=0およびNUMREF=1の場合の参照フィールド・ピクチャの例は、第2の複合実装形態に当てはまる。
2.ピクチャ・タイプおよびピクチャ・レイヤ・テーブルの選択
インターレースPフィールドは、2つのタイプ(1MVまたは混在MV)のうちの1つであることが可能である。1MV Pフィールドでは、1MVマクロブロックについて、マクロブロック内の6つのブロックすべての予測ブロックの変位を示すために単一の動きベクトルが用いられる。混在MV Pフィールドでは、マクロブロックを1MVマクロブロックまたは4MVマクロブロックとして符号化することが可能である。4MVマクロブロックの場合は、4つのルミナンス・ブロックのそれぞれが、それぞれに関連付けられた動きベクトルを有することが可能である。1MVモードまたは混在MVモードは、MVMODE(5735)およびMVMODE2(5736)ピクチャ・レイヤ・フィールドによって信号伝達される。
インターレースPフィールドの場合、ピクチャ・レイヤは、フィールドの動き補償モードおよび輝度補償を制御するシンタックス要素を含む。MVMODE(5735)は、1)フィールドの4つの動きベクトル・モードのうちの1つ、または、2)そのフィールドで輝度補償が用いられていること、を信号伝達する。輝度補償が信号伝達された場合は、ピクチャ・レイヤ内で、MVMODE2(5736)、LUMSCALE(5738)、およびLUMSHIFT(5739)の各フィールドが続く。PQUANTが12より大きいかどうかに応じて、図47Eの2つのテーブルのうちの1つが、MVMODE(5735)およびMVMODE2(5736)フィールドを復号するために用いられる。
動きベクトル・モードが混在MVモードの場合、MBMODETAB(5742)は、フィールドの各マクロブロックのモードを信号伝達するために4つの混在MV MBMODEテーブルのどれが用いられるかを信号伝達する。動きベクトル・モードが混在MVでない場合(この場合は、インター符号化されたすべてのマクロブロックが1つの動きベクトルを用いる)、MBMODETAB(5742)は、フィールドの各マクロブロックのモードを信号伝達するために4つの1MV MBMODEテーブルのどれが用いられるかを信号伝達する。
MVTAB(5743)は、インターレースPフィールドのマクロブロックの動きベクトル差分を復号するために用いられる符号テーブルを示す。4MVBPTAB(5744)は、インターレースPフィールドの4MVマクロブロックの4MVBP(5764)を復号するために用いられる符号テーブルを示す。
3.マクロブロック・モードおよび動きベクトル・ブロック・パターン
インターレースPフィールドのマクロブロックは、可能な3つのタイプ(1MV、4MV、およびイントラ)のうちの1つであることが可能である。マクロブロック・タイプは、マクロブロック・レイヤ内のMBMODE(5761)によって信号伝達される。
1MVマクロブロックは、1MVおよび混在MV Pフィールドで発生する可能性がある。1MVマクロブロックは、マクロブロック内の6つのブロックすべてについて現在のピクチャと参照ピクチャとの間の変位が単一の動きベクトルによって表されるマクロブロックである。現在のブロックと参照ブロックとの間の差分は、ブロック・レイヤにおいて符号化される。MBMODE(5761)は、1MVマクロブロックについて、(1)マクロブロック・タイプが1MVであること、(2)CBPCY(5762)が存在するかどうか、および(3)MVDATA(5763)が存在するかどうか、を示す。
CBPCY(5762)が存在することをMBMODE(5761)が示している場合は、CBPCY(5762)がマクロブロック・レイヤ内に存在して、6つのブロックのどれがブロックレイヤ内で符号化されているかを示す。CBPCY(5762)が存在しないことをMBMODE(5761)要素が示している場合は、CBPCY(5762)が0に等しいと見なされ、マクロブロック内の6つのブロックのどれについてもブロックデータが存在しない。
MVDATA(5763)が存在することをMBMODE(5761)が示している場合は、MVDATA(5763)がマクロブロック・レイヤ内に存在して、動きベクトル差分を符号化する。この動きベクトル差分が動きベクトル・プレディクタと結合されて動きベクトルが再構成される。MVDATA(5763)が存在しないことをMBMODE(5761)が示している場合は、動きベクトル差分がゼロであると見なされ、したがって、動きベクトルが動きベクトル・プレディクタと等しくなる。
4MVマクロブロックは、混在MV Pフィールドにおいてのみ発生する。4MVマクロブロックは、マクロブロック内の4つのルミナンス・ブロックのそれぞれが、そのブロックの、現在のピクチャと参照ピクチャとの間の変位を示す関連付けられた動きベクトルを有することが可能であるマクロブロックである。クロマ・ブロックの変位は、4つのルミナンス動きベクトルから導出される。現在のブロックと参照ブロックとの間の差分は、ブロック・レイヤにおいて符号化される。MBMODE(5761)は、4MVマクロブロックについて、(1)マクロブロック・タイプが4MVであること、(2)CBPCY(5762)が存在するかどうか、および(3)4MVBP(5764)が存在するかどうか、を示す。
4MVBP(5764)が存在することをMBMODE(5761)が示している場合は、4MVBP(5764)がマクロブロック・レイヤ内に存在して、4つのルミナンス・ブロックのうちのどれが非ゼロ動きベクトル差分を含むかを示す。4MVBP(5764)は、0〜14の値に復号される。これは、バイナリ値で表される場合に、図27に示すように、対応するルミナンス・ブロックの動きベクトル・データが存在するかどうかを示すビット・フィールドを表す。4MVBP(5764)の4ビットの各場所においては、値0は、そのブロックについて動きベクトル差分(BLKMVDATA(5765))が存在しないことを示し、動きベクトル差分は0と見なされる。値1は、そのブロックについて動きベクトル差分(BLKMVDATA(5765))が存在することを示す。4MVBP(5764)が存在しないことをMBMODE(5761)が示している場合は、4つのルミナンス・ブロックすべてについて動きベクトル差分データ(BLKMVDATA(5765))が存在すると見なされる。
インターレースPフレームのフィールド符号化されたマクロブロックは、2つの動きベクトルを含むことが可能である。2フィールドMVマクロブロックの場合、2MVBP要素は、2つのフィールドのどれが非ゼロ差分動きベクトルを有するかを示す。
イントラ・マクロブロックは、1MVまたは混在MV Pフィールドで発生する可能性がある。イントラ・マクロブロックは、6つのブロックすべてが、先行ピクチャ・データをまったく参照せずに符号化されたマクロブロックである。現在のブロック画素と定数値128との差分が、ブロック・レイヤ内で符号化される。MBMODE(5761)は、イントラ・マクロブロックについて、(1)マクロブロック・タイプがイントラであること、および(2)CBPCY(5762)が存在するかどうかを示す。イントラ・マクロブロックの場合、CBPCY(5762)が存在すれば、これは、6つのブロックのどれが、符号化されたAC係数データをブロックレイヤ内に有するかを示す。
4.動きベクトル差分の復号
MVDATA(5763)フィールドおよびBLKMVDATA(5765)フィールドは、マクロブロックまたはマクロブロック内のブロックの動き情報を符号化する。1MVマクロブロックは、単一のMVDATA(5763)フィールドを有し、4MVマクロブロックは、0〜4個のBLKMVDATA(5765)を有することが可能である。動きベクトル差分の算出は、参照が1つの場合(NUMREF=0)と参照が2つの場合(NUMREF=1)とでは実行のされかたが異なる。
参照フィールドを1つだけ有するフィールド・ピクチャでは、マクロブロック・レイヤ内のMVDATA(5763)またはBLKMVDATA(5765)フィールドのそれぞれが、(1)水平方向の動きベクトル差分成分、および(2)垂直方向の動きベクトル差分成分を統合的に符号化する。MVDATA(5763)フィールドまたはBLKMVDATA(5765)フィールドは、ハフマンVLCであり、その後にFLCが続く。VLCの値によってFLCのサイズが決まる。ピクチャ・レイヤ内のMVTAB(5743)フィールドは、VLCの復号に用いられるテーブルを指定する。
図58Aは、1つの参照フィールドを有するフィールド・ピクチャのブロックまたはマクロブロックの動きベクトルについての、動きベクトル差分の復号を示す擬似コードである。この擬似コードでは、値dmv_xおよびdmv_yが算出される。値dmv_xは、差分水平方向動きベクトル成分であり、値dmv_yは、差分垂直方向動きベクトル成分である。変数k_xおよびk_yは、長い動きベクトルのための固定長値であって、図58Bのテーブルに示すように、MVRANGE(5733)で定義される動きベクトル範囲に依存する。値halfpel_flagは、ピクチャの動き補償に用いられる精度が1/2画素か1/4画素かを示すバイナリ値である。halfpel_flagの値は、動きベクトル・モードによって決まる。モードが1MVまたは混在MVであれば、halfpel_flag=0であり、1/4画素精度が動き補償に用いられる。モードが1MV 1/2画素または1MV 1/2画素双線形であれば、halfpel_flag=1であり、1/2画素精度が用いられる。offset_tableは、次のように定義される配列である。
offset_table[9]={0,1,2,4,8,16,32,64,128}
2つの参照フィールドを有するフィールド・ピクチャでは、マクロブロック・レイヤ内のMVDATA(5763)フィールドまたはBLKMVDATA(5765)フィールドのそれぞれが、(1)水平方向動きベクトル差分成分、(2)垂直方向動きベクトル差分成分、および(3)用いられる動きベクトル・プレディクタが優勢的か非優勢的か、を統合的に符号化する。MVDATA(5763)フィールドまたはBLKMVDATA(5765)フィールドはハフマンVLCであり、その後にFLCが続く。VLCの値はFLCのサイズによって決まる。MVTAB(5743)フィールドは、VLCの復号に用いられるテーブルを指定する。
図59は、2つの参照フィールドを有するフィールド・ピクチャのブロックまたはマクロブロックの動きベクトルについての、動きベクトル差分および優勢的/非優勢的なプレディクタの復号を示す擬似コードである。この擬似コードでは、値predictor_flagは、用いられているのが優勢的な動きベクトル・プレディクタか、非優勢的な動きベクトル・プレディクタかを示すバイナリ・フラグである(0=優勢的なプレディクタ、1=非優勢的なプレディクタ)。他の様々な変数(dmv_x、dmv_y、k_x、k_y、halfpel_flag、およびoffset_table[]など)は、参照フィールドが1つの場合と同様である。テーブルsize_tableは、次のように定義される配列である。
size_table[14]={0,0,1,1,2,2,3,3,4,4,5,5,6,6}
5.動きベクトル・プレディクタ
動きベクトルは、前のセクションで算出された動きベクトル差分を動きベクトル・プレディクタに加算することによって算出される。プレディクタは、最大3つの隣接する動きベクトルから算出される。
1MVインターレースPフィールドでは、現在のマクロブロックのプレディクタを算出するために最大3つの動きベクトルを用いる。隣接するプレディクタA、B、およびCの位置を図5Aおよび図5Bに示した。プログレッシブPフレームについて説明したように、隣接する候補プレディクタは、現在のマクロブロックが行の最後のマクロブロックである場合を除き、左、上、および右上のマクロブロックから取得される。マクロブロックが行の最後のマクロブロックである場合は、プレディクタBは、右上ではなく左上のマクロブロックから取得される。特殊なケースとして、フレームが1マクロブロック幅である場合は、プレディクタは常にプレディクタA(上のプレディクタ)である。
混在MVインターレースPフィールドでは、現在のブロックまたはマクロブロックのプレディクタを算出するために最大3つの動きベクトルを用いる。図6A〜図10は、プログレッシブPフレームについて説明したように、混在MV Pフィールドの1MVおよび4MVマクロブロックの3つの候補動きベクトルを示す。特殊なケースとして、フレームが1マクロブロック幅である場合は、プレディクタは常にプレディクタA(上のプレディクタ)である。
ピクチャ・ヘッダ内のNUMREF(5731)フィールドが0であれば、現在のインターレースPフィールドは、既に符号化されたピクチャを1つだけ参照することが可能である。NUMREF=1であれば、現在のインターレースPフィールドは、最も近い2つの参照フィールドピクチャを参照することが可能である。前者の場合は、各動きベクトルについて単一のプレディクタを算出する。後者の場合は、2つの動きベクトル・プレディクタを算出する。図60Aおよび図60Bの擬似コードは、参照フィールドが1つである場合について動きベクトル・プレディクタを算出する様子を示す。変数fieldpred_xおよびfieldpred_yは、動きベクトル・プレディクタの水平方向成分および垂直方向成分を表す。
参照フィールドが2つであるインターレースPフィールドの場合(NUMREF=1)、現在のフィールドは、最も近い2つの参照フィールドを参照することが可能である。この場合は、インター符号化された各マクロブロックについて、2つの動きベクトル・プレディクタが算出される。1つのプレディクタは、同じ極性の参照フィールドから算出され、もう1つのプレディクタは、反対の極性の参照フィールドから算出される。
図61A〜図61Fの擬似コードは、参照フィールドが2つあり、動きベクトル・プレディクタ候補が3つある場合について、動きベクトル・プレディクタが算出される様子を示す。変数samefieldpred_xおよびsamefieldpred_yは、同じフィールドにある動きベクトル・プレディクタの水平方向成分および垂直方向成分を表し、変数oppositefieldpred_xおよびoppositefieldpred_yは、反対のフィールドにある動きベクトル・プレディクタの水平方向成分および垂直方向成分を表す。変数dominantpredictorは、優勢的なプレディクタがどのフィールドに含まれるかを示す。(動きベクトル差分から復号された)値predictor_flagは、用いられているのが優勢的なプレディクタか、非優勢的なプレディクタかを示す。
6.ハイブリッド動きベクトル予測
インターレースPフィールドが1MVまたは混在MVの場合は、前のセクションで算出された動きベクトル・プレディクタが、そのプレディクタがビットストリーム内で明示的に符号化されているかどうかを確認するために、A(上の)プレディクタおよびC(左の)プレディクタを基準にして検査される。明示的に符号化されている場合は、動きベクトル・プレディクタとしてプレディクタAを用いるか、プレディクタCを用いるかを示すビットが存在する。図14Aおよび図14Bの擬似コードは、以下に示す変数を用いる、ハイブリッド動きベクトル予測の復号を示す。変数predictor_pre_xおよびpredictor_pre_yと、候補プレディクタA、B、およびCは、前のセクションで算出されているとおりである(すなわち、これらは、反対のフィールドのプレディクタまたは同じフィールドのプレディクタであり、どちらであるかはpredictor_flagで示される)。変数predictor_post_xおよびpredictor_post_yは、それぞれ、ハイブリッド動きベクトル予測を検査した後の、水平方向および垂直方向の動きベクトル・プレディクタである。
7.動きベクトルの再構成
1MVマクロブロックの場合も4MVマクロブロックの場合も、ルミナンス動きベクトルは、次のように差分をプレディクタに加算することによって再構成される。
mv_x=(dmv_x+predictor_x)smod range_x
mv_y=(dmv_y+predictor_y)smod range_y
ここでし、変数range_xおよびrange_yはMVRANGE(5733)に依存し、図58Bに示すテーブルで指定される。演算「smod」は、次のように定義される符号付きモジュラス(signed modulus)である。
A smod b=((A+b)%2b)−b
これによって、再構成されたベクトルが有効であることが保証される。(A smod b)は、−b〜b−1の範囲に収まる。
1MVマクロブロックには、マクロブロックのルミナンス成分を構成する4つのブロックに対して1つの動きベクトルが存在する。マクロブロックがイントラ符号化されていることをdmv_xが示している場合は、そのマクロブロックに関連付けられた動きベクトルが存在しない。マクロブロックがスキップされていれば、dmv_x=0およびdmv_y=0であるので、mv_x=predictor_xおよびmv_y=predictor_yである。
4MVマクロブロックでは、マクロブロック内のインター符号化されたルミナンス・ブロックのそれぞれが、それぞれの動きベクトルを有する。したがって、各4MVマクロブロックには0〜4つのルミナンス動きベクトルが存在する。4MVマクロブロックにおいて符号化されていないブロックが発生しうるのは、(1)マクロブロックがスキップされ、マクロブロックが4MVである場合(この場合はマクロブロック内のすべてのブロックがスキップされる)、または(2)ブロックが符号化されていないことを、マクロブロックのCBPCY(5762)が示している場合である。ブロックが符号化されていない場合は、dmv_x=0およびdmv_y=0であるので、mv_x=predictor_xおよびmv_y=predictor_yである。
8.クロマ動きベクトルの導出
クロマ動きベクトルは、ルミナンス動きベクトルから導出される。さらに、4MVマクロブロックの場合は、クロマ・ブロックをインター符号化するかイントラ符号化するかの決定が、ルミナンス・ブロックのステータスに基づいて行われる。クロマ動きベクトルは、2つのステップで再構成される。第1のステップでは、ルミナンス動きベクトルを適切に組み合わせ、スケーリングすることによって、名目上のクロマ動きベクトルを取得する。スケーリングは、1/4画素オフセットより1/2画素オフセットが優先されるように行われる。第2のステップでは、シーケンス・レベルの1ビット・フィールドのFASTUVMCフィールドを用いて、クロマ動きベクトルのさらなる丸めが必要かどうかを決定する。FASTUVMC=0であれば、第2のステップで丸めを行わない。FASTUVMC=1であれば、1/4画素オフセットにあるクロマ動きベクトルを、最も近いフル画素位置に丸める。さらに、FASTUVMC=1の場合は、双線形フィルタリングだけをすべてのクロマ補間に用いる。
1MVマクロブロックでは、クロマ動きベクトルは、以下のように、ルミナンス動きベクトルから導出される。
//s_RndTbl[0]=0,s_RndTbl[1]=0,s_RndTbl[2]=0,s_RndTbl[3]=1
cmv_x=(lmv_x+s_RndTbl[lmv_x & 3])>>1
cmv_y=(lmv_y+s_RndTbl[lmv_y & 3])>>1
図16Bの擬似コードは、以下に示す変数を用いて、4MVマクロブロックの4つのルミナンス・ブロックの動き情報からクロマ動きベクトルを導出する第1のステップの様子を示している。4MVマクロブロックの最大4つのルミナンス動きベクトルの中での優勢極性が決定され、その優勢極性を有するルミナンス動きベクトルからクロマ動きベクトルが決定される(その他の極性のルミナンス動きベクトルからではない)。
9.輝度補償
参照フィールドに輝度補償が用いられている場合は、参照フィールド内の画素が、プレディクタとして用いられる前に再マッピングされる。輝度補償が用いられている場合は、ピクチャ・ビットストリーム内にLUMSCALE(5738)およびLUMSHIFT(5739)が存在する。図18または図56の擬似コードは、参照フィールドの画素を再マッピングするためにLUMSCALE(5738)およびLUMSHIFT(5739)が用いられる様子を示している。次のように、参照のY成分がLUTY[]テーブルを用いて再マッピングされ、U成分およびV成分がLUTUV[]テーブルを用いて再マッピングされる。
Figure 2011130463
ここで、pYは、参照フィールド内のオリジナルのルミナンス画素値であり、
Figure 2011130463
は、参照フィールド内の再マッピングされたルミナンス画素値であり、pUVは、参照フィールド内のオリジナルのUまたはVの画素値であり、
Figure 2011130463
は、参照フィールド内の再マッピングされたUまたはVの画素値である。
10.残りの復号
復号器は、マクロブロックのCBPCY(5762)要素が存在する場合にはこれを復号する。CBPCY(5762)要素は、係数データの存在/不在を示す。復号器は、ブロック・レイヤにおいて、インター符号化されたブロックおよびイントラ符号化されたブロックの係数データを復号する。復号器は、インター符号化されたブロックを再構成するために、(1)変換タイプ(8×8、8×4、4×8、または4×4)を選択し、(2)サブブロック・パターンを復号し、(3)係数を復号し、(4)逆変換を実行し、(5)逆量子化を実行し、(6)そのブロックの予測を取得し、(7)その予測と誤差ブロックとを加算する。
様々な実施形態に関連して本発明の原理を説明および図示してきたが、これらの様々な実施形態は、本発明の原理から逸脱することなく、構成および細部を改変することが可能であることを認識されよう。本明細書に記載のプログラム、処理、または方法は、特に断らない限り、何ら特定タイプのコンピューティング環境に関連するものでも限定されるものでもないことを理解されたい。様々なタイプの汎用または専用コンピューティング環境を本明細書に記載の教示に従う操作に用いることが可能であり、あるいは、それらの環境を用いて、本明細書に記載の教示に従う操作を実行することが可能である。ソフトウェアの形で示した、実施形態の要素をハードウェアの形で実装することも、ハードウェアの形で示した、実施形態の要素をソフトウェアの形で実装することも可能である。
本発明の原理を適用しうる、多くの可能な実施形態を考慮して、特許請求項ならびにその均等物の範囲および趣旨に含まれうるすべての実施形態を本発明として特許請求するものとする。
110 予測フレーム
115 マクロブロック
130 参照フレーム
135 サーチ領域
265 1次元配列
275 テーブル
315 テーブル
325 1次元配列
345 再構成された誤差ブロック
370 結合
400 インターレース・ビデオ・フレーム
1930 最も基本的な構成
2000 一般化されたビデオ符号化器システム
2015 動き情報
2035 動き補償された、現在のピクチャ
2100 一般化されたビデオ復号器システム
2115 動き情報
2200 マクロブロック
2300 インターレース・ビデオ・フレーム
2330 フレーム
2360 フィールド
2361 マクロブロック
2362 マクロブロック
2500 手法
2550 手法
2800 手法
2850 手法
3100 手法
3150 手法
3300 手法
3350 手法
3500 手法
3550 手法
3700 手法
3750 手法
4100 手法
4200 符号化器フレームワーク
4300 復号器フレームワーク
4500 手法
4550 手法

Claims (34)

  1. ビデオ符号化器を実装するコンピューティング・デバイスを使用してビデオ情報を変換するコンピュータ実装方法であって、前記コンピューティング・デバイスは処理ユニットおよびメモリを備え、前記方法は、前記ビデオ符号化器を実装する前記コンピューティング・デバイスにより、
    複数のルミナンス動きベクトルを有するマクロブロックについての第1の情報を表す第1の可変長符号を決定することであって、前記第1の情報は前記マクロブロックのルミナンス動きベクトルごとに1つの動きベクトル・データ存在インジケータを含み、前記動きベクトル・データ存在インジケータのそれぞれはビット・フィールド内の対応するビットによって表され、0のビット値は前記複数のルミナンス動きベクトルのうちの対応する動きベクトルについて動きベクトル・データが信号伝達されないことを示し、1のビット値は前記複数のルミナンス動きベクトルのうちの対応する動きベクトルについて動きベクトル・データが信号伝達されることを示すこと、
    前記第1の可変長符号を、ビットストリーム内で信号伝達すること、および
    前記マクロブロックについての第2の情報を表す第2の可変長符号を決定することであって、前記第1の情報は前記マクロブロックの複数のブロックについての複数の変換係数データ存在インジケータを含むこと
    を備えることを特徴とする方法。
  2. 前記ビデオ符号化器を実装する前記コンピューティング・デバイスにより、
    動きベクトル・データが存在することが前記第1の情報によって示されている前記複数のルミナンス動きベクトルのそれぞれについて前記動きベクトル・データを、ビットストリーム内で信号伝達すること
    をさらに備えることを特徴とする請求項1に記載の方法。
  3. 前記動きベクトル・データは、動きベクトル差分情報および/またはプレディクタ極性選択を含むことを特徴とする請求項2に記載の方法。
  4. 前記マクロブロックは(4つのルミナンス・ブロックに対応する)4つのルミナンス動きベクトルを有し、前記第1の情報は4つの動きベクトル・データ存在インジケータからなることを特徴とする請求項1に記載の方法。
  5. 前記マクロブロックは2つのルミナンス動きベクトルを有し、前記第1の情報は2つの動きベクトル・データ存在インジケータからなることを特徴とする請求項1に記載の方法。
  6. 前記第1の可変長符号を決定するために複数の可変長符号テーブルのどれを用いるかを示すテーブル選択符号を、ビットストリーム内で信号伝達することをさらに備えることを特徴とする請求項1に記載の方法。
  7. 前記テーブル選択符号は、ピクチャ・レベルまたはスライス・レベルで信号伝達されることを特徴とする請求項6に記載の方法。
  8. 前記テーブル選択符号は、固定長符号であることを特徴とする請求項6に記載の方法。
  9. ビデオ符号化器を実装するコンピューティング・デバイスを使用してビデオ情報を変換するコンピュータ実装方法であって、前記コンピューティング・デバイスは処理ユニットおよびメモリを備え、前記方法は、前記ビデオ符号化器を実装する前記コンピューティング・デバイスにより、
    1より大きい第1の数のルミナンス動きベクトルを有するマクロブロックについて、前記第1の数に等しい第2の数のビットからなる動きベクトル・ブロック・パターンを決定することであって、前記動きベクトル・ブロック・パターンのビットのそれぞれが、前記ルミナンス動きベクトルのうちの対応するルミナンス動きベクトルが、ビットストリーム内で信号伝達される関連付けられた動きベクトル・データを有するかどうかを示し、0のビット値は前記ルミナンス動きベクトルのうちの対応するルミナンス動きベクトルについて動きベクトル・データが信号伝達されないことを示し、1のビット値は前記ルミナンス動きベクトルのうちの対応するルミナンス動きベクトルについて動きベクトル・データが信号伝達されることを示すこと、
    前記動きベクトル・ブロック・パターンを、ビットストリーム内で信号伝達することであって、前記動きベクトル・ブロック・パターンは可変長符号で信号伝達されること、および
    関連付けられた動きベクトル・データが前記ビットストリーム内で信号伝達されることが示されている前記ルミナンス動きベクトルのそれぞれについて、関連付けられた動きベクトル・データを、ビットストリーム内で信号伝達すること
    を備えることを特徴とする方法。
  10. 前記ビデオ符号化器を実装する前記コンピューティング・デバイスにより、
    前記マクロブロックの複数のブロックのどれが、前記ビットストリーム内で信号伝達される関連付けられた変換係数データを有するかを示す、符号化されたブロック・パターンを決定することをさらに備えることを特徴とする請求項9に記載の方法。
  11. 前記関連付けられた動きベクトル・データは動きベクトル差分情報を含むことを特徴とする請求項9に記載の方法。
  12. 前記関連付けられた動きベクトル・データはプレディクタ極性選択をさらに含むことを特徴とする請求項11に記載の方法。
  13. 前記マクロブロックは、前記マクロブロックの4つのルミナンス・ブロックのそれぞれについての4つのルミナンス動きベクトルを有することを特徴とする請求項9に記載の方法。
  14. 前記マクロブロックは、前記マクロブロックのトップ・フィールドおよびボトム・フィールドのそれぞれについての2つのルミナンス動きベクトルを有することを特徴とする請求項9に記載の方法。
  15. 前記マクロブロックは、前記マクロブロックのトップ・フィールドおよびボトム・フィールドの左半分および右半分のそれぞれについての4つのルミナンス動きベクトルを使用することを特徴とする請求項9に記載の方法。
  16. 前記動きベクトル・ブロック・パターンの決定に複数の可変長符号テーブルのどれを用いるかを示すテーブル選択符号を、ビットストリーム内で信号伝達することをさらに備えることを特徴とする請求項9に記載の方法。
  17. 複数の動きベクトル・ブロック・パターンを表す複数の可変長符号を復号する手段であって、前記複数の動きベクトル・ブロック・パターンのそれぞれが、複数のルミナンス動きベクトルを有するマクロブロックの対応するルミナンス動きベクトルごとに1ビットを有し、前記1ビットは、前記対応するルミナンス動きベクトルの動きベクトル・データが信号伝達されているかどうかを示し、0のビット値は前記対応するルミナンス動きベクトルについて動きベクトル・データが信号伝達されないことを示し、1のビット値は前記対応するルミナンス動きベクトルについて動きベクトル・データが信号伝達されることを示す、手段、および
    動きベクトル・データを復号する手段
    を備えることを特徴とするビデオ復号器。
  18. 前記複数の動きベクトル・ブロック・パターンを表す前記複数の可変長符号を復号するために、複数の使用可能な可変長符号テーブルの中から可変長符号テーブルを選択する手段をさらに備えることを特徴とする請求項17に記載の復号器。
  19. ビデオ復号器を実装するコンピューティング・デバイスを使用して符号化ビデオ情報を変換するコンピュータ実装方法であって、前記コンピューティング・デバイスは処理ユニットおよびメモリを備え、前記方法は、前記ビデオ復号器を実装する前記コンピューティング・デバイスにより、
    第1の可変長符号を、ビットストリーム内で受信すること、
    前記第1の可変長符号を復号することであって、前記第1の可変長符号は複数のルミナンス動きベクトルを有するマクロブロックについて第1の情報を表し、前記第1の情報は前記マクロブロックのルミナンス動きベクトルごとに1つの動きベクトル・データ存在インジケータを含み、前記動きベクトル・データ存在インジケータのそれぞれが、ビット・フィールド内の対応するビットによって表され、ゼロのビット値は前記複数のルミナンス動きベクトルのうちの対応する動きベクトルについて動きベクトル・データが信号伝達されないことを示し、1のビット値は前記複数のルミナンス動きベクトルのうちの対応する動きベクトルについて動きベクトル・データが信号伝達されることを示すこと、
    第2の可変長符号を、ビットストリーム内で受信すること、および
    前記第1の可変長符号を復号することであって、前記第2の可変長符号は前記マクロブロックについて第2の情報を表し、前記第2の情報は前記マクロブロックの複数のブロックについて複数の変換係数データ存在インジケータを含むこと
    を備えることを特徴とする方法。
  20. 前記ビデオ復号器を実装する前記コンピューティング・デバイスにより、
    動きベクトル・データが存在することが前記第1の情報によって示されている前記複数のルミナンス動きベクトルのそれぞれについて前記動きベクトル・データを、ビットストリーム内で受信すること
    をさらに備えることを特徴とする請求項19に記載の方法。
  21. 前記動きベクトル・データは、動きベクトル差分情報および/またはプレディクタ極性選択を含むことを特徴とする請求項20に記載の方法。
  22. 前記マクロブロックは(4つのルミナンス・ブロックに対応する)4つのルミナンス動きベクトルを有し、前記第1の情報は4つの動きベクトル・データ存在インジケータからなることを特徴とする請求項19に記載の方法。
  23. 前記マクロブロックは2つのルミナンス動きベクトルを有し、前記第1の情報は2つの動きベクトル・データ存在インジケータからなることを特徴とする請求項19に記載の方法。
  24. 前記第1の可変長符号を復号するために複数の可変長符号テーブルのどれを用いるかを示すテーブル選択符号を、ビットストリーム内で受信することをさらに備えることを特徴とする請求項19に記載の方法。
  25. 前記テーブル選択符号は、ピクチャ・レベルまたはスライス・レベルで信号伝達されることを特徴とする請求項24に記載の方法。
  26. 前記テーブル選択符号は、固定長符号であることを特徴とする請求項24に記載の方法。
  27. ビデオ復号器を実装するコンピューティング・デバイスを使用して符号化ビデオ情報を変換するコンピュータ実装方法であって、前記コンピューティング・デバイスは処理ユニットおよびメモリを備え、前記方法は、前記ビデオ復号器を実装する前記コンピューティング・デバイスにより、
    1より大きい第1の数のルミナンス動きベクトルを有するマクロブロックについて、前記第1の数に等しい第2の数のビットからなる動きベクトル・ブロック・パターンを、ビットストリーム内で受信することであって、前記動きベクトル・ブロック・パターンのビットのそれぞれが、前記ルミナンス動きベクトルのうちの対応するルミナンス動きベクトルが、ビットストリーム内で信号伝達される関連付けられた動きベクトル・データを有するかどうかを示し、0のビット値は前記ルミナンス動きベクトルのうちの対応するルミナンス動きベクトルについて動きベクトル・データが信号伝達されないことを示し、1のビット値は前記ルミナンス動きベクトルのうちの対応するルミナンス動きベクトルについて動きベクトル・データが信号伝達されることを示し、前記動きベクトル・ブロック・パターンは可変長符号として受信されること、および
    関連付けられた動きベクトル・データが前記ビットストリーム内で信号伝達されることが示されている前記ルミナンス動きベクトルのそれぞれについて、関連付けられた動きベクトル・データを、ビットストリーム内で受信すること
    を備えることを特徴とする方法。
  28. 前記ビデオ復号器を実装する前記コンピューティング・デバイスにより、
    前記マクロブロックの複数のブロックのどれが、前記ビットストリーム内で信号伝達される関連付けられた変換係数データを有するかを示す、符号化されたブロック・パターンを、前記ビットストリーム内で受信することをさらに備えることを特徴とする請求項27に記載の方法。
  29. 前記関連付けられた動きベクトル・データは動きベクトル差分情報を含むことを特徴とする請求項27に記載の方法。
  30. 前記関連付けられた動きベクトル・データはプレディクタ極性選択をさらに含むことを特徴とする請求項29に記載の方法。
  31. 前記マクロブロックは、前記マクロブロックの4つのルミナンス・ブロックにそれぞれについての4つのルミナンス動きベクトルを有することを特徴とする請求項27に記載の方法。
  32. 前記マクロブロックは、前記マクロブロックのトップ・フィールドおよびボトム・フィールドのそれぞれについての2つのルミナンス動きベクトルを有することを特徴とする請求項27に記載の方法。
  33. 前記マクロブロックは、前記マクロブロックのトップ・フィールドおよびボトム・フィールドの左半分および右半分のそれぞれに対する4つのルミナンス動きベクトルを有することを特徴とする請求項27に記載の方法。
  34. 前記動きベクトル・ブロック・パターンの復号に複数の可変長符号テーブルのどれを用いるかを示すテーブル選択符号を、ビットストリーム内で受信することをさらに備えることを特徴とする請求項27に記載の方法。
JP2011009037A 2003-09-07 2011-01-19 インターレース・ビデオの符号化および復号 Active JP5036883B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US50108103P 2003-09-07 2003-09-07
US60/501,081 2003-09-07
US10/857,473 2004-05-27
US10/857,473 US7567617B2 (en) 2003-09-07 2004-05-27 Predicting motion vectors for fields of forward-predicted interlaced video frames
US10/933,958 2004-09-02
US10/933,958 US7599438B2 (en) 2003-09-07 2004-09-02 Motion vector block pattern coding and decoding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006525510A Division JP5030591B2 (ja) 2003-09-07 2004-09-03 インターレース・ビデオの符号化および復号

Publications (2)

Publication Number Publication Date
JP2011130463A true JP2011130463A (ja) 2011-06-30
JP5036883B2 JP5036883B2 (ja) 2012-09-26

Family

ID=34317471

Family Applications (7)

Application Number Title Priority Date Filing Date
JP2006525510A Active JP5030591B2 (ja) 2003-09-07 2004-09-03 インターレース・ビデオの符号化および復号
JP2011009037A Active JP5036883B2 (ja) 2003-09-07 2011-01-19 インターレース・ビデオの符号化および復号
JP2011009040A Active JP5043206B2 (ja) 2003-09-07 2011-01-19 インターレース・ビデオの符号化および復号
JP2011009039A Active JP5036884B2 (ja) 2003-09-07 2011-01-19 インターレース・ビデオの符号化および復号
JP2011009038A Active JP4913245B2 (ja) 2003-09-07 2011-01-19 インターレース・ビデオの符号化および復号
JP2011009042A Active JP5026602B2 (ja) 2003-09-07 2011-01-19 インターレース・ビデオの符号化および復号
JP2011009041A Active JP4916579B2 (ja) 2003-09-07 2011-01-19 インターレース・ビデオの符号化および復号

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2006525510A Active JP5030591B2 (ja) 2003-09-07 2004-09-03 インターレース・ビデオの符号化および復号

Family Applications After (5)

Application Number Title Priority Date Filing Date
JP2011009040A Active JP5043206B2 (ja) 2003-09-07 2011-01-19 インターレース・ビデオの符号化および復号
JP2011009039A Active JP5036884B2 (ja) 2003-09-07 2011-01-19 インターレース・ビデオの符号化および復号
JP2011009038A Active JP4913245B2 (ja) 2003-09-07 2011-01-19 インターレース・ビデオの符号化および復号
JP2011009042A Active JP5026602B2 (ja) 2003-09-07 2011-01-19 インターレース・ビデオの符号化および復号
JP2011009041A Active JP4916579B2 (ja) 2003-09-07 2011-01-19 インターレース・ビデオの符号化および復号

Country Status (9)

Country Link
US (1) US7599438B2 (ja)
EP (5) EP2323399B1 (ja)
JP (7) JP5030591B2 (ja)
KR (1) KR101037816B1 (ja)
CN (7) CN101411195B (ja)
HK (6) HK1144989A1 (ja)
MX (1) MXPA06002525A (ja)
PL (1) PL2323399T3 (ja)
WO (1) WO2005027496A2 (ja)

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7983835B2 (en) 2004-11-03 2011-07-19 Lagassey Paul J Modular intelligent transportation system
US8315307B2 (en) * 2004-04-07 2012-11-20 Qualcomm Incorporated Method and apparatus for frame prediction in hybrid video compression to enable temporal scalability
TWI308841B (en) * 2005-01-24 2009-04-11 Via Tech Inc Method and system for reducing the bandwidth access in video encoding
JP4760551B2 (ja) * 2006-06-05 2011-08-31 ソニー株式会社 動きベクトル復号化方法および復号化装置
JP4760552B2 (ja) * 2006-06-06 2011-08-31 ソニー株式会社 動きベクトル復号化方法および復号化装置
KR100763917B1 (ko) * 2006-06-21 2007-10-05 삼성전자주식회사 고속으로 움직임을 추정하는 방법 및 장치
DE102006043707A1 (de) * 2006-09-18 2008-03-27 Robert Bosch Gmbh Verfahren zur Datenkompression in einer Videosequenz
US8416859B2 (en) 2006-11-13 2013-04-09 Cisco Technology, Inc. Signalling and extraction in compressed video of pictures belonging to interdependency tiers
US8875199B2 (en) 2006-11-13 2014-10-28 Cisco Technology, Inc. Indicating picture usefulness for playback optimization
US8155207B2 (en) 2008-01-09 2012-04-10 Cisco Technology, Inc. Processing and managing pictures at the concatenation of two video streams
US8958486B2 (en) 2007-07-31 2015-02-17 Cisco Technology, Inc. Simultaneous processing of media and redundancy streams for mitigating impairments
US8804845B2 (en) 2007-07-31 2014-08-12 Cisco Technology, Inc. Non-enhancing media redundancy coding for mitigating transmission impairments
WO2009032255A2 (en) * 2007-09-04 2009-03-12 The Regents Of The University Of California Hierarchical motion vector processing method, software and devices
EP2213097A2 (en) * 2007-10-16 2010-08-04 Cisco Technology, Inc. Conveyance of concatenation properties and picture orderness in a video stream
US8718388B2 (en) 2007-12-11 2014-05-06 Cisco Technology, Inc. Video processing with tiered interdependencies of pictures
US8432975B2 (en) * 2008-01-18 2013-04-30 Mediatek Inc. Apparatus and method for processing a picture frame
US8416858B2 (en) 2008-02-29 2013-04-09 Cisco Technology, Inc. Signalling picture encoding schemes and associated picture properties
ES2812473T3 (es) 2008-03-19 2021-03-17 Nokia Technologies Oy Vector de movimiento combinado y predicción de índice de referencia para la codificación de vídeo
US9077971B2 (en) * 2008-04-10 2015-07-07 Qualcomm Incorporated Interpolation-like filtering of integer-pixel positions in video coding
US20090257499A1 (en) * 2008-04-10 2009-10-15 Qualcomm Incorporated Advanced interpolation techniques for motion compensation in video coding
US8705622B2 (en) * 2008-04-10 2014-04-22 Qualcomm Incorporated Interpolation filter support for sub-pixel resolution in video coding
US9967590B2 (en) 2008-04-10 2018-05-08 Qualcomm Incorporated Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter
US8804831B2 (en) * 2008-04-10 2014-08-12 Qualcomm Incorporated Offsets at sub-pixel resolution
KR101445791B1 (ko) * 2008-05-10 2014-10-02 삼성전자주식회사 움직임 벡터 변환을 이용한 비월 주사 영상 부호화/복호화방법 및 장치
US8886022B2 (en) 2008-06-12 2014-11-11 Cisco Technology, Inc. Picture interdependencies signals in context of MMCO to assist stream manipulation
US8971402B2 (en) 2008-06-17 2015-03-03 Cisco Technology, Inc. Processing of impaired and incomplete multi-latticed video streams
US8705631B2 (en) 2008-06-17 2014-04-22 Cisco Technology, Inc. Time-shifted transport of multi-latticed video for resiliency from burst-error effects
US8699578B2 (en) 2008-06-17 2014-04-15 Cisco Technology, Inc. Methods and systems for processing multi-latticed video streams
CN102396221B (zh) * 2008-06-25 2015-03-25 思科技术公司 阻止特技模式操作的支持
US9445121B2 (en) 2008-08-04 2016-09-13 Dolby Laboratories Licensing Corporation Overlapped block disparity estimation and compensation architecture
US8599920B2 (en) 2008-08-05 2013-12-03 Qualcomm Incorporated Intensity compensation techniques in video processing
US9078007B2 (en) * 2008-10-03 2015-07-07 Qualcomm Incorporated Digital video coding with interpolation filters and offsets
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
EP2207357A1 (en) * 2008-10-06 2010-07-14 Lg Electronics Inc. Method and apparatus for video coding using large macroblocks
KR102540547B1 (ko) * 2018-08-20 2023-06-05 현대자동차주식회사 차량의 연료시스템 냉각 장치
WO2010041856A2 (en) * 2008-10-06 2010-04-15 Lg Electronics Inc. A method and an apparatus for processing a video signal
TW201016017A (en) * 2008-10-08 2010-04-16 Univ Nat Taiwan Memory management method and system of video encoder
US8259817B2 (en) 2008-11-12 2012-09-04 Cisco Technology, Inc. Facilitating fast channel changes through promotion of pictures
US8326131B2 (en) 2009-02-20 2012-12-04 Cisco Technology, Inc. Signalling of decodable sub-sequences
US20100218232A1 (en) * 2009-02-25 2010-08-26 Cisco Technology, Inc. Signalling of auxiliary information that assists processing of video according to various formats
US8782261B1 (en) 2009-04-03 2014-07-15 Cisco Technology, Inc. System and method for authorization of segment boundary notifications
JP5481923B2 (ja) * 2009-04-28 2014-04-23 富士通株式会社 画像符号化装置、画像符号化方法および画像符号化プログラム
US8949883B2 (en) 2009-05-12 2015-02-03 Cisco Technology, Inc. Signalling buffer characteristics for splicing operations of video streams
US8279926B2 (en) 2009-06-18 2012-10-02 Cisco Technology, Inc. Dynamic streaming with latticed representations of video
KR101452859B1 (ko) 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
KR101456498B1 (ko) * 2009-08-14 2014-10-31 삼성전자주식회사 계층적 부호화 단위의 스캔 순서를 고려한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US9237355B2 (en) * 2010-02-19 2016-01-12 Qualcomm Incorporated Adaptive motion resolution for video coding
KR101752418B1 (ko) * 2010-04-09 2017-06-29 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
JP5736032B2 (ja) * 2010-04-09 2015-06-17 株式会社Nttドコモ 算術符号化のための適応型2値化
US8942282B2 (en) * 2010-04-12 2015-01-27 Qualcomm Incorporated Variable length coding of coded block pattern (CBP) in video compression
US8837592B2 (en) * 2010-04-14 2014-09-16 Mediatek Inc. Method for performing local motion vector derivation during video coding of a coding unit, and associated apparatus
US9118929B2 (en) 2010-04-14 2015-08-25 Mediatek Inc. Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
US8971400B2 (en) * 2010-04-14 2015-03-03 Mediatek Inc. Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
KR101885258B1 (ko) 2010-05-14 2018-08-06 삼성전자주식회사 비디오 신호의 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR101444691B1 (ko) * 2010-05-17 2014-09-30 에스케이텔레콤 주식회사 참조영상 구성 및 인덱싱 장치 및 방법
US9014271B2 (en) * 2010-07-12 2015-04-21 Texas Instruments Incorporated Method and apparatus for region-based weighted prediction with improved global brightness detection
US9398308B2 (en) 2010-07-28 2016-07-19 Qualcomm Incorporated Coding motion prediction direction in video coding
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
US10327008B2 (en) 2010-10-13 2019-06-18 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
KR102287971B1 (ko) 2011-02-09 2021-08-09 엘지전자 주식회사 영상 부호화 및 복호화 방법과 이를 이용한 장치
US8964852B2 (en) 2011-02-23 2015-02-24 Qualcomm Incorporated Multi-metric filtering
JP5729817B2 (ja) 2011-06-29 2015-06-03 日本電信電話株式会社 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム及び動画像復号プログラム
CN106658014B (zh) 2011-06-30 2021-01-08 三菱电机株式会社 图像编码装置及方法、图像解码装置及方法
US10536701B2 (en) 2011-07-01 2020-01-14 Qualcomm Incorporated Video coding using adaptive motion vector resolution
EP2728873A4 (en) * 2011-07-01 2016-02-17 Samsung Electronics Co Ltd METHOD AND DEVICE FOR ENTROPY CODING BY MEANS OF A HIERARCHIC DATA UNIT AND DECODING METHOD AND DEVICE
KR20130034566A (ko) * 2011-09-28 2013-04-05 한국전자통신연구원 제한된 오프셋 보상 및 루프 필터를 기반으로 하는 영상 부호화 및 복호화 방법 및 그 장치
US9148663B2 (en) 2011-09-28 2015-09-29 Electronics And Telecommunications Research Institute Method for encoding and decoding images based on constrained offset compensation and loop filter, and apparatus therefor
US9204148B1 (en) 2011-09-28 2015-12-01 Electronics And Telecommunications Research Institute Method for encoding and decoding images based on constrained offset compensation and loop filter, and apparatus therefor
US9204171B1 (en) 2011-09-28 2015-12-01 Electronics And Telecommunications Research Institute Method for encoding and decoding images based on constrained offset compensation and loop filter, and apparatus therefor
US10110891B2 (en) 2011-09-29 2018-10-23 Sharp Kabushiki Kaisha Image decoding device, image decoding method, and image encoding device
JP5976658B2 (ja) 2011-09-29 2016-08-24 シャープ株式会社 画像復号装置、画像復号方法および画像符号化装置
GB2551290B (en) 2011-10-17 2018-09-19 Kt Corp Method and apparatus for encoding/decoding image
JP5685682B2 (ja) * 2011-10-24 2015-03-18 株式会社Gnzo 映像信号の符号化システム及び符号化方法
WO2013067436A1 (en) 2011-11-04 2013-05-10 Huawei Technologies Co., Ltd. Binarization of prediction residuals for lossless video coding
KR20130050403A (ko) 2011-11-07 2013-05-16 오수미 인터 모드에서의 복원 블록 생성 방법
PL2847996T3 (pl) * 2012-05-09 2021-04-19 Sun Patent Trust Sposoby wykonywania predykcji wektora ruchu, sposoby kodowania i dekodowania oraz służące do tego urządzenia
RS57336B1 (sr) 2012-07-02 2018-08-31 Samsung Electronics Co Ltd Postupak za entropijsko dekodiranje video zapisa
KR102259792B1 (ko) 2012-07-02 2021-06-02 엘지전자 주식회사 영상 정보 코딩 방법 및 이를 이용하는 장치
WO2014049205A1 (en) * 2012-09-28 2014-04-03 Nokia Corporation An apparatus, a method and a computer program for video coding and decoding
CN103869932A (zh) * 2012-12-10 2014-06-18 建兴电子科技股份有限公司 光学输入装置及其操作方法
JP2014137099A (ja) * 2013-01-16 2014-07-28 Jatco Ltd 変速機の制御装置
US9509998B1 (en) * 2013-04-04 2016-11-29 Google Inc. Conditional predictive multi-symbol run-length coding
GB2512829B (en) 2013-04-05 2015-05-27 Canon Kk Method and apparatus for encoding or decoding an image with inter layer motion information prediction according to motion information compression scheme
US9706229B2 (en) * 2013-06-05 2017-07-11 Texas Instruments Incorporated High definition VP8 decoder
FR3011429A1 (fr) * 2013-09-27 2015-04-03 Orange Codage et decodage video par heritage d'un champ de vecteurs de mouvement
WO2015100522A1 (en) * 2013-12-30 2015-07-09 Mediatek Singapore Pte. Ltd. Methods for inter-component residual prediction
CN103957424B (zh) * 2014-04-15 2017-04-12 南京第五十五所技术开发有限公司 一种有效消除视频的乱码或方块的方法
US9998745B2 (en) 2015-10-29 2018-06-12 Microsoft Technology Licensing, Llc Transforming video bit streams for parallel processing
US10827186B2 (en) * 2016-08-25 2020-11-03 Intel Corporation Method and system of video coding with context decoding and reconstruction bypass
US10701384B2 (en) * 2018-08-01 2020-06-30 Tencent America LLC Method and apparatus for improvement on decoder side motion derivation and refinement
US11477476B2 (en) * 2018-10-04 2022-10-18 Qualcomm Incorporated Affine restrictions for the worst-case bandwidth reduction in video coding
US10735745B1 (en) * 2019-06-06 2020-08-04 Tencent America LLC Method and apparatus for video coding
CN113869154B (zh) * 2021-09-15 2022-09-02 中国科学院大学 根据语言描述的视频动作者分割方法
EP4300955A1 (en) * 2022-06-29 2024-01-03 Beijing Xiaomi Mobile Software Co., Ltd. Encoding/decoding video picture data

Family Cites Families (167)

* 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
EP0207774B1 (en) 1985-07-02 1992-03-04 Matsushita Electric Industrial Co., Ltd. Block encoder
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
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
DE3854337T2 (de) 1987-06-09 1996-02-01 Sony Corp Bewegungskompensierte Interpolation von digitalen Fernsehbildern.
EP0294962B1 (en) 1987-06-09 1995-07-19 Sony Corporation Motion vector estimation in television images
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
JPH07109990B2 (ja) 1989-04-27 1995-11-22 日本ビクター株式会社 適応型フレーム間予測符号化方法及び復号方法
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
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
US5155594A (en) 1990-05-11 1992-10-13 Picturetel Corporation Hierarchical encoding method and apparatus employing background references for efficiently communicating image sequences
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 キヤノン株式会社 画像処理システム及びその方法
DE69131257T2 (de) 1990-10-31 1999-09-23 Victor Company Of Japan Verfahren zur Kompression von bewegten Bildsignalen nach dem Zeilensprungverfahren
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
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
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
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
JP2699703B2 (ja) 1991-07-31 1998-01-19 松下電器産業株式会社 動き補償予測方法とそれを用いた画像信号符号化方法
US5428396A (en) 1991-08-03 1995-06-27 Sony Corporation Variable length coding/decoding method for motion vectors
JPH0541862A (ja) 1991-08-03 1993-02-19 Sony Corp 動きベクトルの可変長符号化方式
JP2991833B2 (ja) 1991-10-11 1999-12-20 松下電器産業株式会社 インターレス走査ディジタルビデオ信号の符号化装置及びその方法
JP2586260B2 (ja) * 1991-10-22 1997-02-26 三菱電機株式会社 適応的ブロッキング画像符号化装置
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
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 ソニー株式会社 画像信号符号化、復号化方法及び画像信号記録媒体
US6101313A (en) 1992-06-29 2000-08-08 Sony Corporation High efficiency encoding and decoding of picture signals and recording medium containing same
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
US5412435A (en) 1992-07-03 1995-05-02 Kokusai Denshin Denwa Kabushiki Kaisha Interlaced video signal motion compensation prediction system
JPH06113287A (ja) 1992-09-30 1994-04-22 Matsushita Electric Ind Co Ltd 画像符号化装置と画像復号化装置
KR0166722B1 (ko) 1992-11-30 1999-03-20 윤종용 부호화 및 복호화방법 및 그 장치
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
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
PT2375753E (pt) * 1993-03-24 2013-10-21 Sony Corp Método para codificar e descodificar vetores de movimento e respetivo dispositivo e método para codificar e descodificar sinais de imagem e respetivo dispositivo
KR950702083A (ko) 1993-04-08 1995-05-17 오오가 노리오 움직이는 벡터검출방법 및 장치
US5442400A (en) 1993-04-29 1995-08-15 Rca Thomson Licensing Corporation Error concealment apparatus for MPEG-like video data
DE69416717T2 (de) 1993-05-21 1999-10-07 Nippon Telegraph & Telephone Bewegtbildkoder und -dekoder
JPH06343172A (ja) 1993-06-01 1994-12-13 Matsushita Electric Ind Co Ltd 動きベクトル検出方法及び動きベクトル符号化方法
US5448297A (en) 1993-06-16 1995-09-05 Intel Corporation Method and system for encoding images using skip blocks
JPH0730896A (ja) 1993-06-25 1995-01-31 Matsushita Electric Ind Co Ltd 動きベクトル符号化及び復号化方法
US5517327A (en) 1993-06-30 1996-05-14 Minolta Camera Kabushiki Kaisha Data processor for image data using orthogonal transformation
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
JP2606572B2 (ja) * 1993-12-28 1997-05-07 日本電気株式会社 動画像符号化装置
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
DE69535952D1 (de) 1994-03-30 2009-06-25 Nxp Bv Verfahren und Schaltung zur Bewegungsschätzung zwischen Bildern mit zwei Zeilensprunghalbbildern, und Vorrichtung zur digitalen Signalkodierung mit einer solchen Schaltung
US5550541A (en) 1994-04-01 1996-08-27 Dolby Laboratories Licensing Corporation Compact source coding tables for encoder/decoder system
TW283289B (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 심상철 양방향 이동벡터 추정을 위한 고속 블럭정합 방식
KR0151210B1 (ko) * 1994-09-23 1998-10-15 구자홍 엠펙2를 수용하는 반화소 움직임 보상조절장치
US5552832A (en) 1994-10-26 1996-09-03 Intel Corporation Run-length encoding sequence for video signals
US5623311A (en) 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
EP0710033A3 (en) * 1994-10-28 1999-06-09 Matsushita Electric Industrial Co., Ltd. MPEG video decoder having a high bandwidth memory
US5619281A (en) 1994-12-30 1997-04-08 Daewoo Electronics Co., Ltd Method and apparatus for detecting motion vectors in a frame decimating video encoder
EP0721287A1 (en) 1995-01-09 1996-07-10 Daewoo Electronics Co., Ltd Method and apparatus for encoding a video signal
US5731840A (en) * 1995-03-10 1998-03-24 Kabushiki Kaisha Toshiba Video coding/decoding apparatus which transmits different accuracy prediction levels
KR0181027B1 (ko) 1995-03-20 1999-05-01 배순훈 화소 단위 움직임 추정을 이용하는 영상처리 시스템
KR0171118B1 (ko) 1995-03-20 1999-03-20 배순훈 비디오신호 부호화 장치
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
GB2301972B (en) 1995-06-06 1999-10-20 Sony Uk Ltd Video compression
US5731850A (en) 1995-06-07 1998-03-24 Maturi; Gregory V. Hybrid hierarchial/full-search MPEG encoder motion estimation
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
US5796855A (en) 1995-10-05 1998-08-18 Microsoft Corporation Polygon block matching method
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
JP2798035B2 (ja) * 1996-01-17 1998-09-17 日本電気株式会社 適応動きベクトル補間による動き補償フレーム間予測方法
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
US6957350B1 (en) * 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US6037887A (en) * 1996-03-06 2000-03-14 Burr-Brown Corporation Programmable gain for delta sigma analog-to-digital converter
US5764814A (en) 1996-03-22 1998-06-09 Microsoft Corporation Representation and encoding of general arbitrary shapes
EP1120975A3 (en) * 1996-05-17 2005-05-04 Matsushita Electric Industrial Co., Ltd. Image encoding apparatus, image decoding apparatus, image encoding method, image decoding method, image encoding program recording medium and image decoding program recording medium
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 송문섭 영상 예측부호화 장치 및 그 방법
JP3164292B2 (ja) * 1996-10-11 2001-05-08 日本ビクター株式会社 動画像符号化装置、動画像復号化装置および動画像符号記録方法
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 フィールド検出装置およびフィールド検出方法、画像符号化装置および画像符号化方法、並びに記録媒体および記録方法
US5905542A (en) * 1996-12-04 1999-05-18 C-Cube Microsystems, Inc. Simplified dual prime video motion estimation
US6377628B1 (en) * 1996-12-18 2002-04-23 Thomson Licensing S.A. System for maintaining datastream continuity in the presence of disrupted source data
US6201927B1 (en) * 1997-02-18 2001-03-13 Mary Lafuze Comer Trick play reproduction of MPEG encoded signals
US6005980A (en) * 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
US6404813B1 (en) * 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
JP3164031B2 (ja) * 1997-05-30 2001-05-08 日本ビクター株式会社 動画像符号化復号化装置、動画像符号化復号化方法、及び動画像符号化記録媒体
US6067322A (en) * 1997-06-04 2000-05-23 Microsoft Corporation Half pixel motion estimation in motion video signal encoding
EP1237376B1 (en) * 1997-06-09 2015-08-05 Hitachi, Ltd. Image information recording medium
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 日本ビクター株式会社 動き補償符号化装置、復号化装置、符号化方法及び復号化方法
FR2766946B1 (fr) * 1997-08-04 2000-08-11 Thomson Multimedia Sa Procede et dispositif de pretraitement pour estimation de mouvement
KR100252342B1 (ko) * 1997-08-12 2000-04-15 전주범 움직임 벡터 부호화 방법 및 그 장치
KR100249223B1 (ko) * 1997-09-12 2000-03-15 구자홍 엠팩(mpeg)-4의움직임벡터코딩방법
JP4573366B2 (ja) * 1997-09-25 2010-11-04 株式会社大宇エレクトロニクス 動きベクトル符号化方法及び符号化装置
KR100523908B1 (ko) * 1997-12-12 2006-01-27 주식회사 팬택앤큐리텔 격행주사 영상에 대한 영상신호 부호화 장치 및 그 방법
KR100252108B1 (ko) * 1997-12-20 2000-04-15 윤종용 Mpeg 압축부호화 및 복호화기를 채용한 디지털 기록 재생장치 및 그 방법
CN1146245C (zh) * 1997-12-22 2004-04-14 株式会社大宇电子 隔行二进制形状编码方法和装置
US6339656B1 (en) * 1997-12-25 2002-01-15 Matsushita Electric Industrial Co., Ltd. Moving picture encoding decoding processing apparatus
JPH11275592A (ja) * 1998-01-22 1999-10-08 Victor Co Of Japan Ltd 動画像符号列変換装置及びその方法
US6122017A (en) * 1998-01-22 2000-09-19 Hewlett-Packard Company Method for providing motion-compensated multi-field enhancement of still images from video
KR100281463B1 (ko) * 1998-03-14 2001-02-01 전주범 물체 기반 부호화 시스템의 보조 정보 부호화 장치
KR100281462B1 (ko) * 1998-03-30 2001-02-01 전주범 격행 부호화에서 이진 형상 신호의 움직임 벡터 부호화 방법
US6408029B1 (en) * 1998-04-02 2002-06-18 Intel Corporation Method and apparatus for simplifying real-time data encoding
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 ソニー株式会社 画像復号装置及び画像復号方法
US6219070B1 (en) * 1998-09-30 2001-04-17 Webtv Networks, Inc. System and method for adjusting pixel parameters by subpixel positioning
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
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
JP2000278692A (ja) * 1999-03-25 2000-10-06 Victor Co Of Japan Ltd 圧縮データ処理方法及び処理装置並びに記録再生システム
KR100355831B1 (ko) * 2000-12-06 2002-10-19 엘지전자 주식회사 2차원 최소 비트 예측 기반의 움직임 벡터 부호화 방법
JP2004519167A (ja) * 2001-02-13 2004-06-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 動き情報の符号化及び復号化方法
EP1351510A4 (en) * 2001-09-14 2008-12-10 Ntt Docomo Inc ENCODING METHOD, DECODING METHOD, ENCODING APPARATUS, DECODING APPARATUS, IMAGE PROCESSING SYSTEM, ENCODING PROGRAM, AND DECODING PROGRAM
US20030095603A1 (en) * 2001-11-16 2003-05-22 Koninklijke Philips Electronics N.V. Reduced-complexity video decoding using larger pixel-grid motion compensation
US20030099294A1 (en) * 2001-11-27 2003-05-29 Limin Wang Picture level adaptive frame/field coding for digital video content
US6980596B2 (en) * 2001-11-27 2005-12-27 General Instrument Corporation Macroblock level adaptive frame/field coding for digital video content
ES2545213T3 (es) * 2001-11-21 2015-09-09 Google Technology Holdings LLC Codificación de cuadro/campo adaptativa de nivel de macrobloques para contenido de vídeo digital
SG162623A1 (en) * 2002-01-18 2010-07-29 Toshiba Kk Video encoding method and apparatus and video decoding method and apparatus
US7463684B2 (en) 2002-05-03 2008-12-09 Microsoft Corporation Fading estimation/compensation
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
US20050013498A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7426308B2 (en) * 2003-07-18 2008-09-16 Microsoft Corporation Intraframe and interframe interlace coding and decoding
US7577200B2 (en) * 2003-09-07 2009-08-18 Microsoft Corporation Extended range variable length coding/decoding of differential motion vector information
US7317839B2 (en) * 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US7961786B2 (en) * 2003-09-07 2011-06-14 Microsoft Corporation Signaling field type information
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7567617B2 (en) * 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7620106B2 (en) * 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
FR2872973A1 (fr) * 2004-07-06 2006-01-13 Thomson Licensing Sa Procede ou dispositif de codage d'une sequence d'images sources

Also Published As

Publication number Publication date
EP2323399A3 (en) 2011-07-13
JP5036883B2 (ja) 2012-09-26
CN101848386A (zh) 2010-09-29
JP2011130464A (ja) 2011-06-30
EP2323398A2 (en) 2011-05-18
JP4913245B2 (ja) 2012-04-11
JP2011130465A (ja) 2011-06-30
CN101931802B (zh) 2013-01-23
CN101902635B (zh) 2013-08-21
KR101037816B1 (ko) 2011-05-30
EP1656794A4 (en) 2011-08-10
HK1149658A1 (en) 2011-10-07
EP2323398B1 (en) 2015-06-24
EP1656794B1 (en) 2019-12-25
HK1147373A1 (en) 2011-08-05
HK1144989A1 (en) 2011-03-18
CN101778286B (zh) 2012-05-30
JP2011101416A (ja) 2011-05-19
EP2323406A2 (en) 2011-05-18
US20050053143A1 (en) 2005-03-10
HK1150484A1 (en) 2011-12-30
EP2323406B1 (en) 2015-08-26
CN101411195A (zh) 2009-04-15
EP2323399A2 (en) 2011-05-18
CN101902636A (zh) 2010-12-01
EP2323406A3 (en) 2011-08-03
CN101778286A (zh) 2010-07-14
CN101931802A (zh) 2010-12-29
CN101873486A (zh) 2010-10-27
HK1149657A1 (en) 2011-10-07
JP2011101417A (ja) 2011-05-19
EP2323399B1 (en) 2013-05-29
JP4916579B2 (ja) 2012-04-11
CN101902636B (zh) 2013-11-06
KR20060121808A (ko) 2006-11-29
JP5043206B2 (ja) 2012-10-10
CN101902635A (zh) 2010-12-01
EP2451161B1 (en) 2017-10-25
JP2011101418A (ja) 2011-05-19
CN101411195B (zh) 2012-07-04
PL2323399T3 (pl) 2014-03-31
CN101873486B (zh) 2012-07-18
MXPA06002525A (es) 2006-06-20
EP2451161A1 (en) 2012-05-09
WO2005027496A2 (en) 2005-03-24
JP5030591B2 (ja) 2012-09-19
EP1656794A2 (en) 2006-05-17
US7599438B2 (en) 2009-10-06
EP2323398A3 (en) 2011-08-17
JP5036884B2 (ja) 2012-09-26
JP2007516640A (ja) 2007-06-21
CN101848386B (zh) 2012-06-06
JP5026602B2 (ja) 2012-09-12
WO2005027496A3 (en) 2009-04-16
HK1149405A1 (en) 2011-09-30

Similar Documents

Publication Publication Date Title
JP5036883B2 (ja) インターレース・ビデオの符号化および復号
US7623574B2 (en) Selecting between dominant and non-dominant motion vector predictor polarities
US7577198B2 (en) Number of reference fields for an interlaced forward-predicted field
US7620106B2 (en) Joint coding and decoding of a reference field selection and differential motion vector information
US7317839B2 (en) Chroma motion vector derivation for interlaced forward-predicted fields
US8009739B2 (en) Intensity estimation/compensation for interlaced forward-predicted fields
US7606308B2 (en) Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields
US20050025246A1 (en) Decoding jointly coded transform type and subblock pattern information
US7577200B2 (en) Extended range variable length coding/decoding of differential motion vector information
JP2011166816A (ja) インターレース・ビデオおよびプログレッシブ・ビデオのマクロブロックおよび動き情報の符号化および復号における新機軸
KR101038794B1 (ko) 인터레이스형 비디오의 코딩 및 디코딩

Legal Events

Date Code Title Description
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20110406

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20110517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110603

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110905

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110908

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111003

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120518

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20120521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120521

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120608

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: 20120626

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: 20120703

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

Free format text: PAYMENT UNTIL: 20150713

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5036883

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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