JP5049009B2 - マクロブロックフィールド/フレームコード化タイプ情報のためのビットプレーンコーディングおよびデコーディング - Google Patents

マクロブロックフィールド/フレームコード化タイプ情報のためのビットプレーンコーディングおよびデコーディング Download PDF

Info

Publication number
JP5049009B2
JP5049009B2 JP2006525509A JP2006525509A JP5049009B2 JP 5049009 B2 JP5049009 B2 JP 5049009B2 JP 2006525509 A JP2006525509 A JP 2006525509A JP 2006525509 A JP2006525509 A JP 2006525509A JP 5049009 B2 JP5049009 B2 JP 5049009B2
Authority
JP
Japan
Prior art keywords
frame
macroblock
field
interlaced
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006525509A
Other languages
English (en)
Other versions
JP2007504759A (ja
Inventor
スウ ポシャン
スリニバサン スリダー
ダブリュ.ホルコム トーマス
ムケルジー クナル
リン チ−ラン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2007504759A publication Critical patent/JP2007504759A/ja
Application granted granted Critical
Publication of JP5049009B2 publication Critical patent/JP5049009B2/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/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/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
    • H04N19/103Selection of coding mode or of prediction 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/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/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/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は一般に、デジタルデータ処理に関し、より詳細には、ビデオコーディングおよびデコーディングに関する。
デジタルビデオは、大量の記憶領域および伝送能力を消費する。代表的な生デジタルビデオシーケンス(raw digital video sequence)は、1秒に15または30のピクチャーを含む。各ピクチャーは、数万または数十万のピクセル(ペルとも呼ばれる)を含む可能性がある。各ピクセルは、ピクチャーの小さな要素を表す。生の形態においては、コンピュータは一般に、ピクセルを24ビットまたはそれ以上で表わす。したがって、通常の生デジタルビデオシーケンスの秒当りのビット数、またはビットレートは、5百万ビット/秒またはそれ以上となる可能性がある。
ほとんどのコンピュータおよびコンピュータネットワークは、生デジタルビデオを処理するためのリソースを欠いている。そのため、技術者は、圧縮(コーディングまたはエンコーティングとも呼ばれる)を用いて、デジタルビデオのビットレートを低減する。圧縮は可逆的(lossless)にすることが可能であり、この場合、ビデオの品質は、悪化しないが、ビットレートの低下は、ビデオの複雑さによって制限される。または、圧縮は不可逆的(lossy)にすることが可能であり、この場合、ビデオの品質は悪化するが、ビットレートの低下はより劇的である。復元(decompression)は、圧縮を元に戻す。
一般に、ビデオ圧縮技法は、「イントラ」圧縮と「インター」または予測圧縮とを含む。ビデオフレームについては、イントラ圧縮技法は通常、Iフレームまたはキーフレームと呼ばれる、個々のフレームを圧縮する。インター圧縮技法は、先行および/または後続のフレームを基準としてフレームを圧縮し、インター圧縮フレームは、通常、予測フレーム、Pフレーム、またはBフレームと呼ばれる。
1.Windows(登録商標) Media Videoバージョン8および9におけるインター圧縮およびイントラ圧縮
本件特許出願人によるウインドウズメディアビデオ、バージョン8[WMV8]は、ビデオエンコーダおよびビデオデコーダを含む。WMV8エンコーダは、イントラ圧縮およびインター圧縮を使用し、WMV8デコーダは、イントラ復元およびインター復元を使用する。ウインドウズメディアビデオ、バージョン9[WMV9]は、多くの動作に同様のアーキテクチャを使用する。
A.イントラ圧縮
図1Aは、WMV8エンコーダにおけるキーフレーム内のピクセルブロック105のブロックベースイントラ圧縮100を示す。ブロックは、一組のピクセル、例えば8×8のピクセルの配列である。WMV8エンコーダは、キービデオフレームを8×8ピクセルブロックに分割して、8×8離散コサイン変換(Discrete Cosine Transform)(DCT)110を、ブロック105などの個々のブロックに適用する。DCTは、8×8ピクセルブロック(空間的情報)を、周波数情報であるDCT係数の8×8ブロック115に変換する、1種の周波数変換である。DCT動作それ自体は、可逆的またはほぼ可逆的である。しかしながら、原ピクセル値と比較して、DCT係数は、ほとんどの重要な情報が、低周波係数(low frequency coefficients)(通常、ブロック115の左上)に集中しており、高周波係数(high frequency coefficients)(通常、ブロック115の右下)の多くが、ゼロまたはゼロに近い値を有するので、エンコーダが圧縮するのに、より効率的である。
次いで、エンコーダは、DCT係数を量子化し120、8×8ブロックの量子化されたDCT係数125が生ずる。例えば、エンコーダは、各係数に、同一のスカラー量子化ステップサイズを適用する。量子化は不可逆的である。低周波DCT係数は、高い値を有することが多いので、量子化によって精度は低下するが、係数の情報を完全に失うことはない。一方で、高周波DCT係数は、ゼロまたはゼロに近い値を有することが多いので、高周波係数の量子化では、通常、ゼロ値の連続領域を生ずる。さらに、場合によっては、高周波DCT係数は、低周波DCT係数よりも粗く量子化され、高周波DCT係数ではより大きな精度/情報の損失が生じることとなる。
次いで、エンコーダは、エントロピーエンコーディング(entropy encoding)のための8×8ブロックの量子化されたDCT係数125を準備する。これは可逆的圧縮の形態である。エントロピーエンコーディングの正確なタイプは、係数がDC係数(最低周波数)であるか、上端行または左列におけるAC係数(その他の周波数)であるか、またはその他のAC係数であるかによって変わる。
エンコーダは、隣接する8×8ブロックのDC係数136との差分として、DC係数126をエンコードする。この隣接ブロックは、エンコードされているブロックに対して先にエンコードされた近隣(neighbor)(例えば、上端または左)である。(図1Aは、フレーム内でエンコードされているブロックの左に位置する近隣ブロック135を示す。)エンコーダは、差分をエントロピーエンコードする140。
エントロピーエンコーダは、AC係数の左列または上端行を、隣接する8×8ブロックの対応する左列または上端行との差分としてエンコードすることができる。これは、AC係数予測の一例である。図1Aは、隣接する(実際には、左側の)ブロック135の左列137との差分147としてエンコードされたAC係数の左列127を示している。差分コーディングは、差分係数がゼロ値を有するチャンスを増大させる。残りのAC係数は、量子化されたDCT係数のブロック125からのものである。
図1Bは、Iフレーム内の8×8ブロックに対してのAC予測候補を示している。上端予測に対して、上端隣接ブロック175におけるAC係数の上端行177を、量子化されたDCT係数のブロック125におけるAC係数の上端行129に対する予測子(predictor)として使用する。左予測に対しては、左側隣接ブロック135におけるAC係数の左端列137を、ブロック125におけるAC係数の左端列に対する予測子として使用する。
モードによっては、AC係数予測子は、差分値の演算または差分値との組合せの前に、倍率変更(scale)またはその他の処理が行われる。
指定の予測方向に隣接ブロックが存在しない場合には、左端列または上端行における、すべての7つのAC係数に対する予測値はゼロに設定される。例えば、予測方向が上方で、現行ブロックが上端行にある場合には、上方向には隣接ブロックが存在しないので、現行ブロックの上端行の予測AC係数は、それぞれゼロに設定される。予測された行または列におけるAC係数は、現行ブロックにおける対応するデコードされたAC係数(これは差分値である)に加算されて、完全に再構成された量子化された変換係数ブロックが生成される。
エンコーダは、量子化されたAC DCT係数の8×8ブロック145を走査して150、1次元配列155に変えて、次いで走査されたAC係数を、ランレングスコーディング(run length coding)160の変形形態を使用して、エントロピーエンコードする。エンコーダは、1つまたは複数のラン/レベル/ラストテーブル165からエントロピーコード選択して、そのエントロピーコードを出力する。
B.インター圧縮
WMV8エンコーダにおけるインター圧縮は、ブロックベースの動き補償(motion compensated)予測コーディングに続いて、残留誤差(residual error)の変換コーディングを使用する。図2および図3は、WMV8エンコーダにおける予測フレームに対するブロックベースのインター圧縮を示す。特に、図2には、予測フレーム210に対する動き推定(motion estimation)を示してあり、図3には、予測フレームの動き補償ブロックに対する予測残差(prediction residual)の圧縮を示す。
例えば、図2において、WMV8エンコーダは、予測フレーム210内のマクロブロック215に対する動きベクトルを計算する。動きベクトルを計算するために、エンコーダは、参照フレーム230のサーチエリア235内を探索する。探索エリア235内で、エンコーダは、良好な一致を示す候補マクロブロックを発見するために、予測フレーム210からのマクロブロック215を、様々な候補マクロブロックと比較する。エンコーダは、一致マクロブロックに対する、動きベクトル(エントロピーコード化された)を指定する情報を出力する。動きベクトルは、動きベクトル予測子に対して異なる方法でコード化される。
差分を動きベクトル予測子に加えることによって動きベクトルを再構成した後に、デコーダがその動きベクトルを使用して、エンコーダおよびデコーダにおいて利用可能な先に再構成されたフレームである参照フレーム230からの情報を使用して、マクロブロック215に対する予測マクロブロックを計算する。この予測が完全であることはまれであり、そのためにエンコーダは、通常、予測マクロブロックとそのマクロブロック215自体とのピクセル差分のブロック(誤差(error)ブロック、または残留(residual)ブロックとも呼ばれる)をエンコードする。
図3は、WVM8エンコーダにおける誤差ブロック335の計算およびエンコーディングの例を示す。誤差ブロック335は、予測ブロック315と元の現行ブロック325との間の差分である。エンコーダは、DCT340を誤差ブロック335に適用して、8×8ブロックのDCT係数345が生成される。次いで、エンコーダは、DCT係数を量子化して350、8×8ブロックの量子化されたDCT係数355が得られる。エンコーダは8×8ブロック355を走査して360、1次元配列365に変え、その結果、係数は一般に最低周波数から最高周波数へと順序づけられる。エンコーダは、ランレングスコーディングの変形形態370を使用して、走査された係数をエントロピーエンコードする。エンコーダは、1つまたは複数のラン/レベル/ラストテーブル375からエントロピーコードを選択して、そのエントロピーコードを出力する。
図4は、インターコード化ブロックに対する、対応するデコーディングプロセス400の一例を示している。図4を要約すると、デコーダは、予測残差を表わすエントロピーコード化された情報を、1つまたは複数のラン/レベル/ラストテーブル415による可変長デコーディング410およびランレングスデコーディング420を使用してデコードする(410、420)。デコーダは、エントロピーデコードされた情報を記憶する1次元配列425を逆走査430して、2次元ブロック435に変える。デコーダは、データの逆量子化および逆DCTを(一緒に440)行い、再構成された誤差ブロック445が得られる。別の動き補償経路(motion compensation path)において、デコーダは、参照フレームからの変位に対する動きベクトル情報455を使用して、予測ブロック465を計算する。デコーダは、予測ブロック465と再構成された誤差ブロック445とを結合して470、再構成ブロック475を形成する。
先のWMVエンコーダ用のソフトウエアおよび先のWMVデコーダ用のソフトウエアにおいて、AC予測情報(prediction information)は、ビットストリーム内のマクロブロックレベルにおいて、マクロブロック当り1ビットベースでシグナリングされる。
ACPREDフィールドは、マクロブロック内のすべてのブロックに対して、AC係数をデコードするためにAC予測が使用されるかどうかを指定する、1ビット、マクロブロックレベルビットストリーム要素である。ACPREDは、Iフレーム内および予測フレーム内の1MVイントラマクロブロック内にある。ACPRED=0は、AC予測がマクロブロック内で使用されないことを指示し、ACPRED=1は、一般にAC予測がマクロブロックにおいて使用されることを指示する。予測子ブロックは、現行ブロックの直上または左側のブロックである。しかしながら、予測フレーム(例えば、PフレームまたはBフレーム)内において、上端予測子ブロックおよび左予測子ブロックがイントラコード化されていない場合には、ACPRED=1の場合でも、AC予測は使用されない。
エンコーダおよびデコーダは、また、インターレースフレームに対して、AC予測のシグナリングも使用する。ACPREDMBフラグは、マクロブロック内のすべてのブロックに対してAC予測が使用されるかどうかを指定する、フレームコード化マクロブロックに対してマクロブロックレベルにおいて存在する1ビット値である。ACPREDTFIELDフラグおよびACPREDBFIELDフラグは、それぞれ、現行マクロブロックのトップフィールドおよびボトムフィールドにおけるブロックに対してAC予測が使用されるかどうかを指定する、フィールドコード化マクロブロックに対してマクロブロックレベルにおいて存在する1ビット値である。
II.インターレースビデオおよびプログレッシブビデオ
ビデオフレームは、ビデオ信号の空間情報の走査線(lines)を含む。プログレッシブビデオでは、これらの走査線は、1つのタイムインスタントから始まり、連続する走査線を通過してフレームの下端に至るまでのサンプルを含む。プログレッシブIフレームは、イントラコード化されたプログレッシブビデオフレームである。プログレッシブPフレームは、前方予測を使用してコード化されるプログレッシブビデオフレームであり、プログレッシブBフレームは、双方向予測を使用してコード化されるプログレッシブビデオフレームである。
通常のインターレースビデオフレームは、異なる時間から開始して走査される、2つのフィールドからなる。例えば、図5を参照すると、インターレースビデオフレーム500は、トップフィールド510およびボトムフィールド520を含む。通常、偶数走査線(トップフィールド)がある時間(例えば、時刻t)から始まって走査され、奇数番号の走査線(ボトムフィールド)が異なる(通常、遅い)時間(例えば、時刻t+1)に始まって走査される。このタイミングによって、2つのフィールドが異なる時間に始まって走査される場合に運動が存在する、インターレースビデオフレームの領域にぎざぎざの歯型模様が生成される可能性がある。このため、インターレースビデオフレームは、奇数走査線を1つのフィールドにグループ化するとともに、偶数走査線を別のフィールドにグループ化した、フィールド構造に従って再配置することができる。この配置は、フィールドコーディングと呼ばれ、そのようなぎざぎざのエッジアーチファクトを低減するために、高速モーションピクチャーにおいて有用である。一方で、静的領域においては、インターレースビデオフレームの画像詳細は、そのような再配置なしに、より効率的に保存することができる。したがって、フレームコーディングは、元の交互フィールド走査線配置が保存される、静的または低速のインターレースビデオフレームにおいて使用されることが多い。
先のWMVエンコーダ用のソフトウエアおよび先のデコーダ用のソフトウエアは、インターレースビデオフレームにおいて、フィールド構造(フィールドコード化されたマクロブロック)またはフレーム構造(フレームコード化されたマクロブロック)に従って配置されたマクロブロックを使用する。図6は、エンコーダおよびデコーダ内のフィールドコード化されたマクロブロックについての構造を示している。インターレースマクロブロック610は、すべてのトップフィールド走査線(例えば、偶数走査線0、2、...14)がフィールドコード化されたマクロブロック620の上半分に配置され、すべてのボトムフィールド走査線(例えば、奇数走査線1、3、...15)がフィールドコード化されたマクロブロックの下半分に配置されるように並べ替えられる。フレームコード化されたマクロブロックでは、トップフィールド走査線およびボトムフィールド走査線は、インターレースマクロブロック610の場合と同様に、マクロブロック全体を通して交互にある(alternate)。
先のエンコーダおよびデコーダは、インターレースフレームにおいて4:1:1マクロブロックフォーマットを使用する。4:1:1マクロブックは、4つの8×8輝度ブロック、および各クロミナンスチャネル(chrominance channel)の2つの4×8ブロックから構成される。フィールドコード化された4:1:1マクロブロックにおいて、並べ替えられたマクロブロックは、各クロミナンスチャネルにおける上位2つの8×8輝度ブロックおよび上位の4×8クロミナンスブロックがトップフィールド走査線だけを含み、各クロミナンスチャネルにおける下位の2つの8×8輝度ブロックおよび下位の4×8クロミナンスブロックがボトムフィールド走査線だけを含むように、細分される。
一般的なプログレッシブビデオフレームは、交互走査線(non-alternating lines)を含むコンテンツの1フレームからなる。インターレースビデオと異なり、プログレッシブビデオは、ビデオフレームを別個のフィールドに分割せず、フレーム全体が一回で左から右、上端から下端に走査される。
III.インターレースマクロブロックのためのフレーム/フィールドモードのシグナリング
先のWMVエンコーダおよびデコーダ用のソフトウエアにおいて、INTRLCFフィールドは、マクロブロックがフレームモードだけでコード化されているか、またはフィールドモードもしくはフレームモードでコード化されているかをシグナリングする、1ビットのフレームレイヤ要素である。INTRLCF=0の場合には、フレーム内のすべてのマクロブロックはフレームモードでコード化される。INTRLCF=1の場合には、フレーム内のマクロブロックは、フィールドモードもしくはフレームモードでコード化され、ビットストリーム内でINTRLCMBフィールドが続き、各マクロブロックに対してフレーム/フィールドコーディング状態を知らせる。INTRLCMBは、プログレッシブIフレーム、インターレースIフレーム、インターレースPフレームおよびインターレースBフレームに存在する、ビットプレーン(bitplane)である。デコードされたINTRLCMBビットプレーンは、左上から右下へのラスター走査順序における1ビット値のフィールドとして、各マクロブロックについてのインターレース状態を表わす。0の値は、対応するマクロブロックがフレームモードでコード化されていることを示す。1の値は、対応するマクロブロックがフィールドモードでコード化されていることを示す。
フィールド/フレームコーディングモードは、プログレッシブIフレーム、インターレースIフレーム、インターレースPフレームおよびインターレースBフレームにおける各マクロブロックに対してシグナリングされ、フィールド/フレームコーディングモードは、ビットプレーンによってフレームレベルにおいてだけでシグナリングされる。フィールド/フレームコーディングモードをシグナリングするために利用可能なマクロブロックレイヤシグナリングオプション(macroblock layer signaling option)はなく、このことによってシグナリングの柔軟性が制限される。
IV.先のWMVエンコーダおよびデコーダ用のソフトウエアにおけるビットプレーンコーディング
先のWVMエンコーダおよびデコーダ用のソフトウエアにおいて、フレーム内のマクロブロック用のあるバイナリ情報は、7つのビットプレーンコーディングモードの内の1つにおいて2次元配列としてコード化されて、フレームヘッダに入れて伝送される。
エンコーダおよびデコーダは、ビットプレーンコーディングを使用して、フレーム内のマクロブロックに対して、フレームレベルにおいて4つの異なる種類のバイナリ情報:(1)スキップ/非スキップマクロブロック、(2)インターレースピクチャーにおけるフィールドまたはフレームコーディングモード、(3)1モーションベクトル[1MV]または4モーションベクトル[4MV]コーディングモード;および(4)Bフレームにおける直接/非直接予測モード、をシグナリングする。以下の構文要素が、ビットプレーンコーディング方式において使用される。
INVERT
INVERTフィールドは、ビットプレーンが0に等しいビットまたは1に等しいビットを、さらに有するかどうかを指示する1ビットコードである。INVERTおよびビットプレーンコーディングモードに応じて、デコーダは、デコードされたビットプレーンを反転して、オリジナルを再現することができる。
IMODE
IMODEフィールドは、ビットプレーンコーディングモード(bitplane coding mode)を表わす可変長コード[VLC]である。一般に、より頻繁に発生するコーディングモードをエンコードするためには、比較的短いコードが使用される。
DATABITS
DATABITSフィールドは、IMODEフィールドにおいてシグナリングされたコーディングモードに基づく、記号(symbols)のエントロピーコード化されたストリームである。各2次元配列の大きさは、rowMB×colMBであり、ここでrowMBおよびcolMBは、フレーム内における、マクロブロックの行および列の数である。ビットストリーム内で、各配列は、7つのビットプレーンコーディングモードの1つにおいて、1組の連続するビットとしてコード化されている。7つのビットプレーンコーディングモードについて以下に記述する。
1.Rawモード
Rawモードにおいては、ビットプレーンは、自然走査順序で走査されたピクセル当り1ビットとしてエンコードされる。DATABITSの長さは、rowMB×colMBである。
2.ロースキップ(Row−skip)モード
ロースキップモードにおいて、ROWSKIPフィールドは、ビットプレーン内の各行に対してROWBITSフィールドが存在するかどうかを指示する。ビットプレーン内の値の行全体がゼロである場合には、ROWSKIP=0であり、ROWBITSはスキップされる。行において少なくとも1つの値がゼロでない場合には、ROWSKIP=1であり、ROWBITSは、行における各値に対して1ビットを含む。行は、フレームの上端から下端へと走査される。
3.カラムスキップ(Column−skip)モード
カラムスキップモードにおいて、COLUMNSKIPフィールドは、ビットプレーンにおける各列に対してCOLUMNBITSフィールドが存在するかどうかを指示する。ビットプレーンの値の列全体がゼロの場合には、COLUMNSKIP=0であり、COLUMNBITSはスキップされる。列において少なくとも1つの値がゼロでない場合には、COLUMNSKIP=1であり、COLUMNBITSは列内の各値に対して1ビットを含む。列は、フレームの左から右へと走査される。
4.ノーマル2(Normal−2)モード
ノーマル2モードにおいては、rowMB×colMBが奇数の場合には、第1の記号は単にその値に一致する1ビットで表わされ、その後の記号は、バイナリVLCテーブルを使用して、自然走査順序でペアにしてエンコードされる。
5.ノーマル6(Normal−6)モード
ノーマル6モードにおいては、ビットプレーンは6個のピクセルの群にしてエンコードされる。これらのピクセルは、2×3または3×2のタイルにグループ分けされる。ビットプレーンは、1組のタイリング(tiling)ルールを使用して最大にタイリングされ、残りのピクセルは、ロースキップモードおよびカラムスキップモードの変形形態を使用してエンコードされる。rowMBが3の倍数であり、colMBが3の倍数でない場合にだけ、3×2の「垂直」タイルが使用される。そうでない場合には、2×3「水平」タイルが使用される。
6要素タイルが最初にエンコードされて、その後に、カラムスキップおよびロースキップでエンコードされた線形タイルが続く。配列サイズが、3×2または2×3の倍数である場合には、後の線形タイルは存在せず、ビットプレーンは6要素長方形タイルでのみタイリングされる。
6,7.Diff−2およびDiff−6モード
差分モード(Diff−2またはDiff−6)が使用される場合には、「差分ビット」のビットプレーンは、対応するノーマルモード(それぞれ、ノーマル2またはノーマル6)を使用してデコードされる。差分ビットは、原ビットプレーンを再生成するために使用される。
V.ビデオ圧縮および復元の規格
いくつかの国際規格が、ビデオ圧縮および復元に関係している。これらの規格には、MPEG(Motion Picture Experts Group)1、2および4、ITU(国際電気通信連合)によるH.261、H.262(MPEG−2の別称)、H.263およびH.264(JVT/AVCとも呼ばれる)が挙げられる。これらの規格は、ビデオデコーダのアスペクト、および圧縮ビデオ情報のフォーマットを規定している。直接的にまたは暗黙的に、これらの規格は、いくつかのエンコーダ詳細を規定しているが、その他のエンコーダ詳細は規定されていない。これらの規格は、イントラフレームおよびインターフレーム圧縮および復元の様々な組合せを使用(または使用をサポート)している。
A.規格におけるフィールドコード化された、またはフレームコード化されたマクロブロックのシグナリング
国際規格の中には、インターレースピクチャーにおけるマクロブロックに対するフィールドコーディングまたはフレームコーディングのシグナリングについて記載しているものがある。
JVT/AVC規格のドラフトJVT−d157には、mb_field_decoding_flag構文要素が記載されており、これは、マクロブロックペアがインターレースPフレームにおいて、フレームモードまたはフィールドモードのどちらでデコードされるかをシグナリングするのに使用される。セクション7.3.4は、順序パラメータ(mb_frame_field_adaptive_flag)が、マクロブロックにおけるフレームデコーディングとフィールドデコーディンとの間の切り替えを指示し、スライスヘッダ要素(pic_structure)が、インターレースフレームピクチャーとしてのピクチャー構造を識別する場合において、mb_field_decoding_flagがスライスデータの要素として送られる、ビットストリーム構文について記述している。
MPEG−4の1998年5月28日委員会ドラフトには、dct_type構文要素が記載されており、これは、マクロブロックが、フレームDCTコード化されているか、またはフィールドDCTコード化されているかをシグナリングするために使用される。セクション6.2.7.3および6.3.7.3によれば、dct_typeは、インターレースコンテンツ内のMPEG−4ビットストリームにのみ存在するマクロブロックレイヤ要素であり、この場合に、このマクロブロックは、非ゼロコード化ブロックパターンを有するか、またはイントラコード化されている。
MPEG−2において、dct_type要素は、マクロブロックがフレームDCTコード化されているか、またはフィールドDCTコード化されているかを指示する、マクロブロックレイヤ要素でもある。また、MPEG−2には、ピクチャーコーディング拡張要素frame_pred_frame_dctについての記述がある。frame_pred_frame_dctが「1」に設定されると、インターレースフレームにおいてフレームDCTコーディングだけが使用される。frame_pred_frame_dct=1の場合に、条件dct_type=0が「抽出され(derived)」、ビットストリームにはdct_type要素は存在しない。
B.規格におけるAC係数予測(AC Coefficient Prediction)のシグナリング
国際規格の中には、マクロブロックについての様々な空間AC係数予測モードのシグナリングについて記載しているものがある。
MPEG−4の1998年5月28日委員会ドラフトには、ac_pred_flag構文要素が記載されており、これは、イントラマクロブロックの第1行または第1列におけるAC係数が差分コード化されているかどうかをシグナリングするための1ビットフラグである。MPEG−4ビットストリームにおいて、ac_pred_flagは、ビデオオブジェクトプレーンのデータパーティショニングデータ構造(例えば、data_partitioned_I_VOP()、data_partitioned_P_VOP())において、またはマクロブロックレイヤデータ要素構造(マクロブロック())において、マクロブロック当り1ビットベースで送られる。
H.263規格において、付録Iには、任意選択でAC予測を用いるアドバンストイントラコーディングモードが記載されている。マクロブロックレイヤ要素INTRA−MODEは、マクロブロックがAC予測を使用するモードでエンコードされているかどうかをシグナリングする可変長コードである。
C.規格の制約
これらの国際規格には、いくつかの重要な点において制約がある。例えば、これらの規格は、フィールド/フレームタイプ情報のシグナリングおよびAC予測について規定しているが、シグナリングは通常、マクロブロック当り1ビットベースで実行される。
デジタルビデオに対するビデオ圧縮および復元の重要性を考慮すると、ビデオ圧縮および復元の分野が十分に開発されていることは驚くべきことではない。従来のビデオ圧縮および復元技術の利点が何であろうとも、それらは、以下に示す技術およびツールの効果を有してはいない。
AC予測状態およびマクロブロックフィールド/フレームコード化タイプ情報のためのビットプレーンコーディングおよびデコーディングを提供する。
要約すると、ビデオコーディングおよびデコーディングのための様々な技術およびツールについて詳細な説明をする。例えば、エンコーダビットプレーンは、AC予測状態情報をコード化する。別の例としては、エンコーダは、インターレースフレームコード化ピクチャーにおけるマクロブロックのフィールド/フレーム変換タイプをシグナリングする。デコーダは、対応するデコーディングを実行する。記述される実施形態は、それに限定はされないが、以下に示すものを含む、記載される技術およびツールの1つまたは複数を実現する。
一態様において、エンコーダ/デコーダは、複数の利用可能なビットプレーンモードの群からビットプレーンモードを選択し、前記選択されたビットプレーンモードに従って、ビデオピクチャーの複数のマクロブロックに対するAC予測状態情報を指示するビットプレーンを処理する。
別の態様においては、エンコーダは、ビデオピクチャーの複数のマクロブロックに対するAC予測状態情報を指示するビットプレーンをエンコードして、このエンコードしたビットプレーンをシグナリングする。
別の態様においては、デコーダは、ビデオピクチャーの複数のマクロブロックに対するAC予測状態情報を指示する、エンコードされたビットプレーンを受け取り、そのビットプレーンをデコードする。
別の態様においては、ビデオシーケンスにおける第1インターレースビデオフレームに対して、デコーダは、第1のインターレースビデオフレームに対してフレームレイヤにおいてシグナリングされたビットプレーンをデコードする。このビットプレーンは、第1のインターレースビデオフレームの複数のマクロブロックに対するフィールド/フレーム変換タイプを表わす。ビデオシーケンスにおける第2のインターレースビデオフレームに対して、第2のインターレースビデオフレームの少なくとも1つであるが、全部ではない複数のマクロブロックについて、デコーダは、マクロブロックレイヤにおいてシグナリングされたマクロブロック単位フィールド/フレーム変換タイプビットを処理する。
別の態様においては、ビデオシーケンスにおける第1のインターレースビデオフレームに対して、エンコーダはビットプレーンをエンコードして、第1のインターレースビデオフレームに対して、そのビットプレーンをフレームレイヤにおいてシグナリングする。このビットプレーンは、第1のインターレースビデオフレームの複数のマクロブロックに対するフィールド/フレーム変換タイプを表わす。ビデオシーケンスの第2のインターレースビデオフレームに対して、第2のインターレースビデオフレームの少なくとも1つであるが全部ではない複数のマクロブロックのそれぞれについて、エンコーダは、マクロブロック単位フィールド/フレーム変換タイプビットをマクロブロックレイヤにおいてシグナリングする。
別の態様においては、デコーダは、フレームレイヤにおいてシグナリングされたビットプレーンをデコードする手段であって、このビットプレーンは、第1のインターレースビデオフレームのための第1のビットプレーンを含み、この第1のビットプレーンは第1のインターレースビデオフレームの複数のマクロブロックに対するフィールド/フレーム変換タイプを表わす手段と、マクロブロックレイヤにおいてシグナリングされるマクロブロック単位フィールド/フレーム変換タイプビットを処理する手段であって、このマクロブロック単位フィールド/フレーム変換タイプビットは、第2のインターレースビデオフレームの1つまたは複数であるが、全部ではない複数のマクロブロックのそれぞれに対するマクロブロック単位フィールド/フレーム変換タイプビットを含む手段とを備える。
これらの様々な技術およびツールは、組合せまたは単独で使用することができる。
追加の特徴および利点は、添付の図面を参照して行う、様々な実施形態の詳細な説明によって明白になるであろう。
本発明は、プログレッシブおよびインターレースビデオの効率的な圧縮と復元のための技術およびツールに関する。様々な記載の実施形態において、ビデオエンコーダおよびデコーダには、プログレッシブおよびインターレースビデオをエンコードおよびデコードするための技術、および様々なレイヤまたはレベル(例えば、シーケンスレベル、フレームレベル、フィールドレベル、マクロブロックレベル、および/またはブロックレベル)を含むビットストリームフォーマットまたは構文で使用される、対応するシグナリング技術が組み込まれている。
本明細書に記述した実施形態に対して、様々な代替形態が可能である。例えば、フローチャート図を参照して説明する技法は、フローチャートに示す段階の順序を変えたり、ある段階を反復または省略したりすることなどによって変更することができる。別の例として、いくつかの実現形態は、特定のマクロブロックフォーマットを参照して説明するが、その他のフォーマットも使用することができる。また、前方予測を参照して説明する技法およびツールは、その他のタイプの予測にも応用可能である。
これらの様々な技法およびツールは、組合せまたは単独で使用することができる。様々な実施形態は、記載の技法およびツールの1つまたは複数を実装している。本明細書に記述する、いくつかの技法およびツールは、ビデオエンコーダおよびデコーダにおいて、またはビデオエンコーディングまたはデコーディングに特に限定されないその他のシステムにおいて、使用可能である。
I.コンピューティング環境
図7は、記述した実施形態のいくつかを実装することのできる、適当なコンピューティング環境700の一般的な例を示す図である。このコンピューティング環境700は、本技法およびツールが広範な汎用および専用のコンピューティング環境において実装することができるので、使用または機能の範囲についてのいかなる限定を示唆するものではない。
図7を参照すると、コンピューティング環境700には、少なくとも1つの処理ユニット710およびメモリ720が含まれる。図7において、この最も基本的な構成730を、破線で囲んである。処理ユニット710は、コンピュータ実行可能命令を実行するものであり、実際または仮想のプロセッサとすることができる。多重処理システムにおいては、複数の処理ユニットがコンピュータ実行可能命令を実行して、処理能力を増大させる。メモリ720は、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュメモリ、その他)、またはその2つのどれかの組合せとすることができる。メモリ720は、記載の技法およびツールの1つまたは複数を備えるビデオエンコーダまたはデコーダを実装する、ソフトウエア780を格納している。
コンピューティング環境は、追加の機能を備えてもよい。例えば、コンピューティング環境700には、記憶装置740、1つまたは複数の入力装置750、1つまたは複数の出力装置760、および1つまたは複数の通信接続770が含まれる。相互接続機構(図示せず)、例えばバス、コントローラ、またはネットワークが、コンピューティング環境700の構成要素を相互接続する。通常、オペレーティングシステムソフトウエア(図示せず)は、コンピューティング環境700において実行されるその他のソフトウエアのための動作環境を提供するとともに、コンピューティング環境700の構成要素のアクティビティを調整する。
記憶装置740は、取外し可能または取外し不可能としてもよく、それには、磁気ディスク、磁気テープもしくはカセット、CD−ROM、DVD、または情報を記憶するのに使用することができるとともに、コンピューティング環境700においてアクセスが可能なその他の任意の媒体がある。記憶装置740は、ビデオエンコーダまたはデコーダを実装するソフトウエア780のための命令を格納する。
入力装置750は、キーボード、マウス、ペン、またはトラックボールなどのタッチ入力装置、音声入力装置、スキャン装置、あるいはコンピューティング環境700への入力を提供するための他の装置とすることができる。音声またはビデオエンコーディングのために、入力装置750は、音声カード、ビデオカード、TVチューナカード、あるいはアナログまたはディジタル形態で音声またはビデオ入力を受け入れる類似の装置、または音声またはビデオサンプルをコンピューティング環境700に読み込むCD−ROMもしくはCD−RWとすることができる。出力装置760は、ディスプレイ、プリンタ、スピーカ、CDライタ、またはコンピューティング環境700からの出力を提供する他の装置とすることができる。
通信接続770は、通信媒体を介して別のコンピューティングエンティティに通信することを可能にする。通信媒体は、コンピュータ実行可能命令、音声またはビデオ入力もしくは出力、または被変調データ信号内のその他のデータなどの情報を伝達する。被変調データ信号とは、その信号内に情報をエンコードするように、その信号の1つまたは複数の特徴を設定または変更した信号である。一例であり、限定ではないが、通信媒体としては、電気、光、RF、赤外線、音響またはその他の搬送波で実現される、有線または無線技法が挙げられる。
本技法およびツールは、コンピュータ読取り可能記憶媒体の一般的な文脈において説明することができる。コンピュータ読取り可能記憶媒体とは、コンピューティング環境内でアクセスが可能な任意の利用可能な媒体である。一例であり、限定ではないが、コンピューティング環境700において、コンピュータ読取り可能記憶媒体としては、メモリ720、記憶装置740、通信媒体、および前記の任意の組合せがある。
本技法およびツールは、コンピューティング環境における実行用の実プロセッサまたは仮想プロセッサ上で実行されているコンピュータ実行可能命令、例えばプログラムモジュール内に含まれるものなどの一般的な文脈において説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか、または特定の抽象データ型を実装する、ルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などが含まれる。プログラムモジュールの機能は、様々な実施形態において必要に応じて組み合わせても、またはプログラムモジュール間で分割してもよい。
提示の目的で、詳細な説明においては、「推定する(estimate)」、「補償する(compensate)」、「予測する(predict)」、および「適用する(apply)」などの用語を使用して、コンピューティング環境におけるコンピュータ動作を説明する。これらの用語は、コンピュータが実行する動作に対する高レベルな抽象であって、人が実行する行動と混同すべきではない。これらの用語に対応する実際のコンピュータ動作は、実装方法に応じて変化する。
II.汎用ビデオエンコーダおよびデコーダ
図8は、それと合わせていくつかの記載の実施形態を実装することのできる、汎用ビデオエンコーダ800のブロック図である。図9は、それと合わせていくつかの記載の実施形態を実装することのできる、汎用ビデオデコーダ900のブロック図である。
エンコーダ800およびデコーダ900の範囲におけるモジュール間に示してある関係は、エンコーダおよびデコーダ内での情報の一般的な流れを指示しており、簡単にするためにその他の関係は図示していない。特に、図8および図9には、通常、ビデオシーケンス、ピクチャー、マクロブロック、ブロックなどに使用される、エンコーダ設定、モード、テーブルなどを示す、副次的な情報を示さない。そのような副次的な情報は、通常は、その副次的情報をエントロピーエンコーディングした後に、出力ビットストリームにして送られる。出力ビットストリームのフォーマットは、ウインドウズメディアビデオ(Windows(登録商標)Media Video)バージョン9フォーマットまたはその他のフォーマットとすることができる。
エンコーダ800およびデコーダ900は、ビデオフレーム、ビデオフィールド、またはフレームとフィールドの組合せとすることができる、ビデオピクチャーを処理する。ピクチャーレベルおよびマクロブロックレベルにおけるビットストリーム構文およびセマンティクスは、フレームが使用されているか、またはフィールドが使用されているかによって変わることがある。マクロブロック編成および全体的なタイミングに対する変更があることもある。エンコーダ800およびデコーダ900は、ブロックベースであり、フレームに対して4:2:0のマクロブロックフォーマットを使用し、各マクロブロックは、(しばしば、1つの16×16マクロブロックとして扱われる)4つの8×8輝度ブロックと、2つの8×8クロミナンスブロックとを含む。フィールドに対しては、同じか、または異なるマクロブロック編成およびフォーマットを使用することができる。8×8ブロックは、異なる段階、例えば周波数変換段階およびエントロピーエンコーディング段階において、さらに細分してもよい。例示的ビデオフレーム編成について、以下にさらに詳細に述べる。
実現形態および所望の圧縮タイプに応じて、エンコーダまたはデコーダのモジュールは、追加、省略、複数モジュールへの分割、他のモジュールとの結合、および/または同様なモジュールによる置換を行うことができる。代替実施形態において、異なるモジュール、および/またはその他のモジュール構成を備えるエンコーダまたはデコーダは、記載の技法の1つまたは複数を実行する。
A.ビデオフレーム編成
いくつかの実現形態においては、エンコーダ800およびデコーダ900は、次のように編成されたビデオフレームを処理する。フレームは、ビデオ信号の空間情報の走査線を包含する。プログレッシブビデオに対して、これらの走査線は、1つの時点から始まり、連続する走査線を介してフレームの下端へと続くサンプルを包含する。プログレッシブビデオフレームは、図10に示すマクロブロック1000のようなマクロブロックに区画される。マクロブロック1000は、従来型4:2:0マクロブロックフォーマットに従って、4つの8×8輝度ブロック(Y1からY4)および、4つの輝度ブロックと同じ位置にあるが、解像度が水平および垂直に半分である、2つの8×8クロミナンスブロックを含む。この8×8ブロックは、異なる段階、例えば周波数変換(例えば、8×4、4×8または4×4DCT)およびエントロピーエンコーディング段階においてさらに細分してもよい。プログレッシブIフレームとは、イントラコード化されたプログレッシブビデオフレームである。プログレッシブPフレームとは、前方予測を使用してコード化されたプログレッシブビデオフレームであり、プログレッシブBフレームとは、双方向予測を使用してコード化されたプログレッシブビデオフレームである。プログレッシブPおよびBフレームには、イントラコード化されたマクロブロックに加えて、様々なタイプの予測マクロブロックを含めてもよい。
インターレースビデオフレームは、フレームの2つの走査からなり、2つの走査とは、フレームの偶数走査線を含む走査(トップフィールド)と、フレームの奇数走査線を含む走査(ボトムフィールド)である。この2つのフィールドは、2つの異なる時間(time periods)を提示してもよく、また同じ時間のものであってもよい。図11Aには、インターレースビデオフレーム1100の一部分を示してあり、これには、インターレースビデオフレーム1100の左上部における、トップフィールドとボトムフィールドとの交互走査線(alternating lines)が含まれる。
図11Bには、エンコーディング/デコーディングするためにフレーム1130として編成された、図11Aのインターレースビデオフレーム1100を示してある。インターレースビデオフレーム1100は、マクロブロック1131および1132などのマクロブロックに区画されており、これらは図10に示す4:2:0フォーマットを使用している。輝度プレーン(luminance plane)においては、各マクロブロック1131、1132は、トップフィールドからの8本の走査線と、それと交互にあるボトムフィールドからの8本の走査線との合計で16本の走査線を含み、各走査線の長さは16ピクセルである。(マクロブロック1131、1132内の輝度ブロックおよびクロミナンスブロックの実際の編成および配置は図に示してないが、これは実際には様々なエンコーディング決定によって変わる可能性がある。)所与のマクロブロック内で、トップフィールド情報およびボトムフィールド情報は、様々なフェーズの任意の点において、一緒にまたは別々にコード化することができる。インターレースIフレームは、インターレースビデオフレームの2つのイントラコード化されたフィールドであり、この場合に、マクロブロックは、その2つのフィールドについての情報を含む。インターレースPフレームは、前方予測を用いてコード化されたインターレースビデオフレームの2つのフィールドであり、インターレースBフレームは、双方向予測を用いてコード化されたインターレースビデオフレームの2つのフィールドであり、この場合に、マクロブロックはこれら2つのフィールドについての情報を含む。インターレースPおよびBフレームは、イントラコード化されたマクロブロックに加えて、様々なタイプの予測マクロブロックを含んでもよい。インターレースBIフレームは、インターレースIフレームとインターレースBフレームとのハイブリッドであり、これらはイントラコード化されているが、その他のフレームに対するアンカー(anchor)としては使用されない。
図11Cは、エンコーディング/デコーディングするためにフィールド1160として編成された、図11Aのインターレースビデオフレーム1100を示している。インターレースビデオフレーム1100の2つのフィールドのそれぞれは、マクロブロックに区画されている。トップフィールドは、マクロブロック1161のようなマクロブロックに区画され、ボトムフィールドはマクロブロック1162のようなマクロブロックに区画されている。(ここでも、マクロブロックは図10に示す4:2:0フォーマットを使用し、マクロブロック内の輝度ブロックおよびクロミナンスブロックの編成および配置は図示していない。)輝度プレーンにおいて、マクロブロック1161は、トップフィールドからの16本の走査線を含み、マクロブロック1162は、ボトムフィールドからの16本の走査線を含み、各走査線の長さは16ピクセルである。インターレースIフィールドとは、インターレースビデオフレームの、単一の別個に表現されたフィールドである。インターレースPフィールドとは、前方予測を用いてコード化されたインターレースビデオフレームの、単一の別個に表現されたフィールドであり、インターレースBフィールドとは、双方向予測を用いてコード化されたインターレースビデオフレームの、単一の別個に表現されたフィールドである。インターレースPおよびBフィールドには、イントラコード化されたマクロブロックに加えて、様々なタイプの予測マクロブロックを含めてもよい。インターレースBIフィールドとは、インターレースIフィールドとインターレースBフィールドとのハイブリッドであり、これらはイントラコード化されているが、その他のフィールドのためのアンカーとしては使用されない。
エンコーディング/デコーディングのためにフィールドとして編成されるインターレースビデオフレームには、異なるフィールドタイプの様々な組合せを含めることができる。例えば、そのようなフレームは、トップフィールドおよびボトムフィールドの両方において同一のフィールドタイプであっても、各フィールドにおいて異なるフィールドタイプであってもよい。一実施形態においては、フィールドタイプの可能な組合せとしては、I/I、I/P、P/I、P/P、B/B、B/BI、BI/B、およびBI/BIが含まれる。
ピクチャーという用語は、ソースの、コード化された、または再構成された画像データを指す。プログレッシブビデオでは、ピクチャーは、プログレッシブビデオフレームである。インターレースビデオでは、ピクチャーは、文脈に応じて、インターレースビデオフレーム、そのフレームのトップフィールド、またはそのフレームのボトムフィールドを指すことがある。
代替的に、エンコーダ800およびデコーダ900は、オブジェクトベースであるか、異なるマクロブロックまたはブロックフォーマットを使用するか、または、8×8ブロックおよび16×16マクロブロックとは異なる大きさまたは構成のピクセル集合に対する処理を実行する。
B.ビデオエンコーダ
図8は、汎用ビデオエンコーダシステム800のブロック図である。エンコーダシステム800は、現行ピクチャー(current picture)805(例えば、プログレッシブビデオフレーム、インターレースビデオフレーム、またはインターレースビデオフレームのフィールド)を含む、ビデオピクチャーのシーケンスを受け取り、圧縮ビデオ情報895を出力として生成する。ビデオエンコーダの特定の実施形態では、汎用エンコーダ800の変形形態または補完バージョンが使用される。
エンコーダシステム800は、予測ピクチャーおよびキーピクチャーを圧縮する。提示の目的で、図8は、キーピクチャーがエンコーダシステム800を通過する経路および予測ピクチャーの経路を示している。エンコーダシステム800の構成要素の多くが、キーピクチャーと予測ピクチャーの両方を圧縮するのに使用される。これらの構成要素によって実行される厳密な処理は、圧縮中の情報のタイプに応じて変わる可能性がある。
予測ピクチャー(例えば、プログレッシブPフレームまたはBフレーム、インターレースPフィールドまたはBフィールド、あるいはインターレースPフレームまたはBフレーム)は、(一般に参照ピクチャーまたはアンカーと呼ばれる)1つまたは複数の他のピクチャーからの予測(または差分)によって表わされる。予測残差(prediction residual)とは、予測されたものと原ピクチャーとの間の差分である。それとは異なり、キーピクチャー(例えば、プログレッシブIフレーム、インターレースIフィールド、またはインターレースIフレーム)は、他のピクチャーを参照することなく圧縮される。
現行ピクチャー805が前方予測ピクチャーである場合に、動き推定器(motion estimator)810は、1つまたは複数の参照ピクチャー、例えばピクチャー記憶装置820にバッファリングされた、再構成された先のピクチャー825を基準にして、マクロブロックまたは現行ピクチャー805のその他のピクセルの集合の動きを推定する。現行ピクチャー805が双方向予測ピクチャーである場合には、動き推定器810は、(例えば、インターレースBフィールドに対する)最大4つの再構成参照ピクチャーを基準にして、現行ピクチャー805における動きを推定する。通常、動き推定器は、1つまたは複数の時間的に以前の参照ピクチャーおよび1つまたは複数の時間的に未来の参照ピクチャーを基準として、Bピクチャー内の動きを推定する。したがって、エンコーダシステム800は、複数の参照ピクチャーのための別個の記憶装置820および822を使用することができる。
動き推定器810は、ピクセル、1/2ピクセル、1/4ピクセル、またはその他の増分によって動きを推定することができ、動き推定の精度を、ピクチャー毎に、またはその他に基づいて切り替えることができる。動き推定器810(および補償器(compensator)830)は、フレーム毎に、またはその他に基づいて、参照ピクチャーピクセル内挿のタイプ間で(例えば、双三次(bicubic)および双一次(bilinear)の間で)切り替えることもできる。動き推定の精度は、水平および垂直方向において、同じでも異なってもよい。動き推定器810は、差分動きベクトル(differential motion vector)情報などの動き情報815を、副次的情報として出力する。
動き補償器(motion compensator)830は、再構成ピクチャー(複数を含む)825に動きベクトルを適用して、動き補償現行ピクチャー835を形成する。この予測は完全であることはまれであり、動き補償現行ピクチャー835と元の現行ピクチャー805との間の差分は予測残差845である。後に行うピクチャーの再構成中に、予測残差845は、元の現行ピクチャー805により近い再構成ピクチャーを得るために、動き補償現行ピクチャー835に加えられる。不可逆的圧縮(lossy compression)においては、それでも、いくらかの情報は元の現行ピクチャー805から失われている。代替的に、動き推定器および動き補償器は別のタイプの動き推定/補償を適用する。
周波数変換器(frequency transformer)860は、空間ドメインビデオ情報を周波数ドメイン(すなわち、スペクトル)データに変換する。ブロックベースのビデオピクチャーでは、周波数変換器860は、DCT、DCTの変形形態、またはその他のブロック変換を、ピクセルデータのブロックまたは予測残差データに適用して、周波数変換係数のブロックを生成する。代替的に、周波数変換器860は、フーリエ変換などの別の従来型周波数変換を適用するか、またはウェーブレット分析またはサブバンド分析を使用する。周波数変換器860は、8×8、8×4、4×8、4×4またはその他の大きさの周波数変換を適用することができる。
次いで、量子化器(quantizer)870は、スペクトルデータ係数のブロックを量子化する。量子化器は、ピクチャー毎またはその他に基づき変化するステップサイズを有するスペクトルデータに、均一な、スカラー量子化を適用する。代替的に、量子化器は、別のタイプの量子化、例えば不均一(non-unifom)、ベクトル、または非適応(non-adaptive)の量子化を、スペクトルデータ係数に適用するか、または周波数変換を使用しないエンコーダシステム内の空間ドメインデータを、直接的に量子化する。適応量子化(adaptive quantization)に加えて、エンコーダ800は、フレーム切捨て(frame dropping)、適応フィルタリング、またはその他のレート制御の技法を使用することができる。
エンコーダ800は、特定のタイプの情報を持たないマクロブロックである、スキップされたマクロブロックに対して、特別なシグナリングを使用してもよい。
再構成された現行ピクチャーが、後続の動き推定/補償に対して必要な場合には、逆量子化器(inverse quantizer)876が、量子化されたスペクトルデータ係数に対して逆量子化を実行する。次いで、逆周波数変換器(inverse frequency transformer)866が、周波数変換器860の動作の逆を実行して、(予測ピクチャーに対して)再構成予測残差または再構成キーピクチャーを生成する。現行ピクチャー805がキーピクチャーである場合には、再構成キーピクチャーは、再構成現行ピクチャー(図示せず)として取り込まれる。現行ピクチャー805が予測ピクチャーである場合には、再構成予測残差が、動き補償現行ピクチャー835に加えられて、再構成現行ピクチャーが形成される。ピクチャー記憶装置820、822の一方または両方が、動き補償予測に使用するために再構成された現行ピクチャーをバッファリングする。いくつかの実現形態において、エンコーダは、デブロッキングフィルタ(de-blocking filter)を、再構成されたフレームに適用して、ピクチャー内の不連続およびその他のアーチファクトを適応スムージングする。
エントロピーコーダ(entropy coder)880は、量子化器870の出力に加えて、ある種の副次情報(例えば、動き情報815、量子化ステップサイズ)を圧縮する。一般的なエントロピーコーディング技法としては、算術コーディング、差分コーディング、ハフマンコーディング(Huffman coding)、ランレングス(run length)コーディング、LZコーディング、ディクショナリコーディング、および前記の組合せを挙げることができる。エントロピーコーダ880は、通常、様々な種類の情報(例えば、DC係数、AC係数、異なる種類の副次情報)に対して様々なコーディング技法を使用し、特定のコーディング技法の範囲内の複数のコードテーブルから選択することができる。
エントロピーコーダ880は、マルチプレクサ[MUX]890に、圧縮ビデオ情報895を提供する。MUX890はバッファを含むことができ、バッファレベル指示器を、レート制御のためにビットレート適応モジュールにフィードバックしてもよい。MUX890の前または後に、圧縮ビデオ情報895を、ネットワークを介して伝送するために、チャネルコード化することができる。チャネルコーディングは、圧縮ビデオ情報895に、誤差検出(error detection)および補正データ(correction data)を適用することができる。
C.ビデオデコーダ
図9は、汎用ビデオデコーダシステム900のブロック図である。デコーダシステム900はビデオピクチャーの圧縮シーケンスのための情報995を受け取り、再構成されたピクチャー905(例えば、プログレッシブビデオフレーム、インターレースビデオフレーム、またはインターレースビデオフレームのフィールド)を含む出力を生成する。ビデオデコーダの特定の実施形態は、通常、汎用デコーダ900の変形形態または補完バージョンを使用する。
デコーダシステム900は、予測ピクチャーおよびキーピクチャーを復元(decompress)する。提示の目的で、図9は、キーピクチャーがデコーダシステム900を通過する経路および前方予測ピクチャーの経路を示してある。デコーダシステム900の構成要素の多くは、キーピクチャーおよび予測ピクチャーの両方を復元するために使用される。これらの構成要素が実行する厳密な動作は、復元される情報のタイプによって変わる可能性がある。
DEMUX(デマルチプレクサ)990は、圧縮ビデオシーケンスのための情報995を受け取り、エントロピーデコーダ980に対して受取った情報を利用可能にする。DEMUX990には、ジッターバッファ(jitter buffer)とともに、その他のバッファも含めることができる。DEMUX990の前または後に、圧縮ビデオ情報をチャネルデコードして、誤差検出および補正についての処理をすることができる。
エントロピーデコーダ980は、エントロピーコード化された量子化データに加えて、エントロピーコード化された副次情報(例えば、動き情報915、量子化ステップサイズ)をデコードして、通常、エンコーダにおいて実行されるエントロピーエンコーディングの逆を適用する。エントロピーデコーディング技法としては、算術デコーディング、差分デコーディング、ハフマンデコーディング、ランレングスデコーディング、LZデコーディング、ディクショナリデコーディング、および前記の組合せを挙げることができる。エントロピーデコーダ980は、通常、様々な種類の情報(例えば、DC係数、AC係数、異なる種類の副次情報)に対して、様々なデコーディング技法を使用し、特定のデコーディング技法の範囲内の複数コードテーブルの中から選択をすることができる。
デコーダ900は、例えば、動きベクトルに対する1つまたは複数の予測子(predictors)を計算すること、差分動きベクトルをエントロピーデコーディングすること、およびデコードされた差分動きベクトルと動きベクトルを再構成する予測子とを結合することによって、動き情報915をデコードする。
動き補償器930は、動き情報915を1つまたは複数の参照ピクチャー925に適用して、再構成中のピクチャー905の予測935を形成する。例えば、動き補償器930は、1つまたは複数のマクロブロック動きベクトルを使用して、参照ピクチャー(複数を含む)925内のマクロブロック(複数を含む)を見つける。1つまたは複数のピクチャー記憶装置(例えば、ピクチャー記憶装置920、922)は、参照ピクチャーとして使用するために、先に再構成されたピクチャーを格納する。一般に、Bピクチャーは複数の参照ピクチャー(例えば、少なくとも1つの、時間的に以前の参照ピクチャー、および少なくとも1つの、時間的に将来の参照ピクチャー)を有する。したがって、デコーダシステム900は、複数の参照ピクチャーのために、別個のピクチャー記憶装置920、922を使用することができる。動き補償器930は、ピクセル、1/2ピクセル、1/4ピクセル、またはその他の増分によって、動きを補償することが可能であり、また動き補償の精度を、ピクチャー毎またはその他に基づいて切り替えることが可能である。動き補償器930は、参照ピクチャーピクセル内挿のタイプ間で(例えば、双三次と双一次の間で)、フレーム毎またはその他に基づいて切り換えをすることができる。動き補償の精度は、水平および垂直方向において、同じでも異なってもよい。代替的に、動き補償は、別のタイプの動き補償を適用する。動き補償器による予測は、完全であることはまれであるので、デコーダ900も、予測残差を再構成する。
逆量子化器970は、エントロピーデコードされたデータを逆量子化する。一般に、逆量子化器は、ピクチャー毎またはその他に基づいて、変わるステップサイズを有するエントロピーデコードされたデータに、均一な、スカラー逆量子化を適用する。代替的に、逆量子化器は、別のタイプの逆量子化をデータに適用して、例えば、不均一量子化、ベクトル量子化、または非適応量子化の後に再構成するか、または逆周波数変換を使用しないデコーダシステム内で、空間ドメインデータを直接的に逆量子化する。
逆周波数変換器960は、量子化された周波数ドメインデータを空間ドメインビデオ情報に変換する。ブロックベースビデオピクチャーに対して、逆周波数変換器960は、逆DCT[IDCT]、IDCTの変形形態、またはその他の逆ブロック変換を、周波数変換係数のブロックに適用して、キーピクチャーまたは予測ピクチャーに対する、ピクセルデータまたは予測残差データをそれぞれ生成する。代替的に、逆周波数変換器960は、逆フーリエ変換などの別の従来型逆周波数変換を適用するか、またはウェーブレット合成またはサブバンド合成を使用する。この逆周波数変換器960は、8×8、8×4、4×8、4×4、またはその他の大きさの逆周波数変換を適用することができる。
予測ピクチャーに対して、デコーダ900は、再構成された予測残差945と動き補償予測935を結合して、再構成ピクチャー905を形成する。デコーダが、後続の動き補償のために再構成ピクチャー905を必要とするときには、ピクチャー記憶装置(例えば、ピクチャー記憶装置920)の一方または両方が、次のピクチャーの予測に使用する再構成ピクチャー905をバッファリングする。いくつかの実施形態においては、デコーダ900は、デブロッキングフィルタを再構成ピクチャーに適用して、ピクチャー内の不連続およびその他のアーチファクトを適応スムージングする。
III.ビットプレーンコーディング(Bitplane Coding)
いくつかの実施形態において、マクロブロック専用(macroblock-specific)バイナリ情報を、ビットプレーンとしてコード化して、ビットストリーム内でマクロブロックよりも高いレベル(例えば、フレームレベル、フィールドレベル、またはその他のレベル)において伝送することができる。エンコーダは、例えば、ある種のデータをエンコーディングするための、異なるコーディングモードの相対的効率に基づいて、いくつかのコーディングモードの中から選択をすることができる。ビットプレーンコーディング技法は、フレームまたはフィールド内のマクロブロック間の、ある種のバイナリ情報の空間的相関を利用する。マクロブロックレベルのシグナリングと組み合わせると、記載の技法およびツールは、マクロブロック専用情報の柔軟で効率的なシグナリングを提供する。
いくつかの実現形態においては、エンコーダは、ビットプレーンコーディングのために、以下に示すような、INVERT、IMODEおよびDATABITS構文要素を使用する。
INVERT要素は、ビットプレーンが、0に等しいビットまたは1に等しいビットをさらに有するかどうかを指示する1ビットコードである。INVERTおよびビットプレーンコーディングモードに応じて、デコーダは、デコードされたビットプレーンを反転して、オリジナルを再生することができる。IMODE要素は、ビットプレーンコーディングモードを表わすVLCである。一般に、より頻繁に発生するコーディングモードをエンコードするために、より短いコードが使用される。DATABITS要素は、IMODE要素にシグナリングされたコーディングモードに基づく記号(symbols)のエントロピーコード化されたストリームである。例えば、フレームまたはフィールド内のマクロブロックに対するバイナリ情報は、2次元配列としてコード化され、フレームヘッダまたはフィールドヘッダに入れて伝送することができる。各配列の大きさは、rowMB×colMBであり、ここでrowMBおよびcolMBは、それぞれ、そのフレームまたはフィールドにおけるマクロブロックの行および列の数である。
いくつかの実施形態においては、各配列は、7つのビットプレーンコーディングモードの1つにおける、(例えば、ラスタースキャン順序においてマクロブロックを表わす)1組の連続するビットとしてコード化されている。この7つのビットプレーンコーディングモードについて以下に述べる。
ロースキップモード(Row−skip Mode)
ロースキップモードにおいては、ROWSKIP要素は、ビットプレーンの各行にROWBITS要素が存在するかどうかを指示する。ビットプレーンの行の値全体がゼロの場合には、ROWSKIP=0であり、ROWBITSはスキップされる。行において少なくとも1つの値がゼロでない場合には、ROWSKIP=1であり、ROWBITSは行における各値に対して1ビットを含む。
カラムスキップモード(Column−skip mode)
カラムスキップモードにおいて、COLUMNSKIP要素は、ビットプレーン内の各列に対してCOLUMNBITS要素が存在するかどうかを指示する。ビットプレーンの列の値全体がゼロの場合には、COLUMNSKIP=0であり、COLUMNBITSはスキップされる。列において少なくとも1つの値がゼロでない場合には、COLUMNSKIP=1であり、COLUMNBITSは列における各値に対して1ビットを含む。
ノーマル2モード(Normal−2 mode)
ノーマル2モードにおいて、rowMB×colMBが奇数の場合には、最初の記号は、その最初の記号の値に一致する1ビットで表わされ、後続の記号はVLCテーブルを使用してペアにしてエンコードされる。
ノーマル6モード(Normal−6 mode)
ノーマル6モードにおいて、ビットプレーンは、2×3タイルまたは3×2タイルにおける6個のピクセルの群としてエンコードされる。ビットプレーンは、1組のタイリングルール(tiling rule)を使用して、2×3タイルおよび3×2タイルの群に分けられて、残りのピクセル(それがある場合)は、ロースキップモードおよびカラムスキップモードの変形形態を使用してエンコードされる。配列サイズが3×2または2×3の倍数である場合には、ビットプレーンは6要素長方形タイルのみでタイリングされる。3×2「垂直」タイルは、rowMBが3の倍数でありcolMBが3の倍数でない場合にのみ使用される。その他の場合には、2×3「水平」タイルが使用される。6要素長方形タイルは、可変長コードおよび固定長コードの組合せを用いてエンコードされる。
Diff−2およびDiff−6モード
いずれかの差分モード(Diff−2またはDiff−6)が使用されている場合には、「差分ビット」のビットプレーンは、対応するノーマルモード(それぞれ、ノーマル2またはノーマル6)を使用してデコードされる。差分ビットは、原ビットプレーンを再生するために使用される。
再生成プロセスは、バイナリアルファベット(binary alphabet)についての2−D DPCMである。場所(i,j)におけるビットを再生成するために、予測子b(i,j)が(位置(i,j)におけるビットb(i,j)から)次のように生成される。
Figure 0005049009
差分コーディングモードでは、INVERTに基づくビット単位変換プロセスは実行されない。しかしながら、INVERTフラグは、様々な機能で使用されて、上述の予測子の導出に対する記号Aの値を指示する。より具体的には、INVERT=0の場合には、A=0であり、INVERT=1の場合には、A=1となる。ビットプレーンの実際の値は、予測子とデコードされた差分ビット値との排他的論理輪(XOR)をとることによって得られる。上記の式において、b{i,j}は、最終デコーディング(すなわち、Norm−2/Norm−6を行った後に、その予測子との差分XOR)後のi,j番目の位置におけるビットである。
Rawモード
Rawモードは、マクロブロック専用バイナリ情報をバイナリ記号当り1ビットでエンコードする。Rawモードビットは、非圧縮ビットプレーンにおいて、フレームレベルまたはフィールドレベルにおいてエンコードできるが、マクロブロックに対する残りのマクロブロックレベル情報と同じ、ビットストリーム内の同一レイヤにおいて、各マクロブロックに対して、一度に一つずつエンコードすることもできる。
その他のモードは、フレームレベルまたはフィールドレベルにおいてビットプレーンをエンコードし、エンコーディング中にフレームまたはフィールドを通過する第2の経路を使用する。例えば、エンコーダは、第1の経路におけるマクロブロックレベルにおいて、各マクロブロックに対するバイナリ情報(例えば、AC予測状態)を収集し、第2の経路におけるフレームレベルまたはフィールドレベルにおいて、そのマクロブロック専用情報をエンコードする。しかしながら、ローレイテンシ(low-latency)状態においては、第2の経路を回避することが有利であることがある。このように、バイナリ情報のコーディングをフレームレベルまたはフィールドレベルからマクロブロックレベルに切り替える機能によって、さらなる柔軟性が得られる。
いくつかの実現形態において、エンコーダは、スライスコード化(slice-coded)フレームに対してRawモードを使用する。スライスは、マクロブロックの1つまたは複数の連続行を表す。空間予測に関して、スライス内のマクロブロックの1番目の行は、通常、ピクチャー内のマクロブロックの第1番目の行として扱われる。スライスを用いる場合には、通常、ピクチャーレイヤにおいてビットプレーンとして表わされる情報は、マクロブロックレイヤにおいてrawモードでシグナリングされて、その結果、各マクロブロックは、それ自体のローカル情報を伝える。
上述のビットプレーンコーディングモードに加えて、その他のビットプレーンコーディングモードを使用することができる。例えば、エンコーダは、任意の大きさのピクセル群としてビットプレーンをエンコードすることができる。ノーマル6モードの変形形態においては、ビットプレーン内のバイナリ情報が予測可能なパターン内に配置されている場合などに、エンコーダは、「最大長方形(largest rectangles)」モードを利用することができる。エンコーダは、様々なタイリング規則の組を用いて、ビットプレーンを任意の大きさのタイルにグループ化することができる。次いで、可変長コードおよび固定長コードの組合せ、またはその他のコーディングアレンジメントを用いて、これらのタイルをエンコードすることができる。
いくつかの実現形態における、ビットプレーンコーディングについてのさらなる情報は、以下に示す、IV、VおよびVI節を参照されたい。
IV.インターレースフレームコード化ピクチャーのためのフィールド/フレームタイプシグナリングにおける革新
記載の実施形態には、インターレースフレームコード化ピクチャー(例えば、インターレースIフレーム、インターレースPフレーム、インターレースBフレームなど)におけるフィールド/フレームタイプ情報をシグナリングする技法およびツールが含まれる。例えば、記載の技法およびツールには、フレームレベルビットプレーンコーディングまたはマクロブロックレベルコーディングのいずれかを使用して、フィールド/フレームタイプ情報をエンコードすることのできるエンコーダが含まれる。デコーダは、対応するデコーディングを実行する。記載の技法およびツールは、他の技法およびツールと互いに組み合わせて、または単独で使用することができる。
一般に、大きいフィールド間動き(inter-field motion)が存在する場合には、フィールドコード化マクロブロックがより効果的であり、動きが小さい場合には、フレームコード化マクロブロックがより効果的である。エンコーダは、所与のマクロブロックに対してフィールド/フレームタイプを選択し、それがフレームコード化マクロブロックであるか、またはフィールドコード化マクロブロックであるかをビットストリーム中で指示することが可能である。マクロブロックのフィールド/フレームタイプは、マクロブロックの内部編成を指示する。再び図6を参照すると、フィールドコーディングにおいて、インターレースマクロブロック610は、輝度ブロック内のすべてのトップフィールド走査線(例えば、偶数走査線0,2,...14)が、フィールドコード化マクロブロック620の上半分に配置されるとともに、輝度ブロック内のすべてのボトムフィールド走査線(例えば、奇数走査線1,3,...15)が、フィールドコード化マクロブロックの下半分に配置されるように、並べ替えられている。フレームコード化マクロブロックでは、インターレースマクロブロック610と同様に、マクロブロックの端から端まで、トップフィールド走査線およびボトムフィールド走査線が交互にある。クロミナンスブロックは、フィールドコード化マクロブロックおよびフレームコード化マクロブロックの両方に対してインターレースの状態のままとなる。
したがって、いくつかの実現形態においては、エンコーダは、いくつかのコーディングモードからマクロブロック当り1ビットモードを選択し、フレーム内の各マクロブロックに対して、単独ビット(例えば、FIELDTXフラグ)をマクロブロックレベルで送り、そのマクロブロックに対して、そのマクロブロックがフィールドコード化されているか、またはフレームコード化されているかをデコーダに明示的に知らせる、モード決定がなされる。マクロブロックレベルのマクロブロック当り1ビットモード、またはフレームレベルの圧縮ビットプレーンモードのいずれかを選択することができることによって、そのような情報をエンコーディングするための、さらなる柔軟性が得られる。
特に、マクロブロックレベルシグナリングは、フィールド/フレームコーディングモード決定ビットが、フレームの一部であって全部ではないマクロブロックに対してシグナリングされる場合に、効率的である。例えば、インターレースPフレームにおいて、フィールド/フレーム決定ビットのシグナリングは、イントラマクロブロックに対して行われるが、(フィールド/フレーム決定ビットがその他の方法でシグナリングされる)インターマクロブロックに対しては行われない。そのような文脈におけるビットプレーンコーディングは、外部情報をシグナリングすることとなる。他方で、フレームによっては、各マクロブロックが、フィールド/フレーム決定ビットを有する。フィールド/フレームタイプビットを一緒にグループ化して、それらをフレームレベルビットプレーンにコード化することによって、フレーム内のマクロブロック間に存在する可能性のある、フィールド/フレームタイプにおける空間的相関を利用することができる。
例えば、図12は、ビットプレーンコーディングまたはマクロブロックレベルコーディングのいずれかを使用する、マクロブロックのためのフィールド/フレームタイプ情報をシグナリングするための技法1200を示すものである。エンコーダは、1210においてコーディングモードを選択する。1220において、コーディングモードがビットプレーンコーディングモードである場合に、エンコーダは、1230において、フィールド/フレームタイプ情報をビットプレーンとしてシグナリングする。そうでない場合には、1240において、エンコーダは、(1250において)マクロブロックに対するフィールド/フレーム決定を指示する信号ビットを送るかどうかを決定する。1260において、シグナリング決定を行うべきマクロブロックがまだある場合には、エンコーダは、それらのマクロブロックに対する信号ビットを送るかどうかを決定する。デコーダは、対応するデコーディングを実行する。
例えば、一実施形態において、FIELDTXは、全インターレースIフレームマクロブロックおよびインターレースBIフレームマクロブロックに存在するとともに、インターレースPおよびBフレーム内のイントラコード化マクロブロックに存在する、1ビット構文要素である。FIELDTX=1は、マクロブロックがフィールドコード化されていることを指示し、FIELDTX=0は、マクロブロックがフレームコード化されていることを指示する。FIELDTXビットは、ビットストリーム内のフレームレベルにおいてビットプレーンコード化されるか、または、一部または全部のマクロブロックに対して、マクロブロック当り1ビットベースで、マクロブロックレベルにおいてシグナリングされることができる。例えば、インターレースIフレームおよびインターレースBIフレームにおいて、FIELDTXビットは、ビットストリーム内のフレームレベルにおいて、またはマクロブロックレベルにおいてマクロブロック当り1ビットベースで、ビットプレーンコード化される。インターレースPフレームおよびインターレースBフレームにおいて、FIELDTXビットは、マクロブロック当り1ビットベースで、マクロブロックレベルにおいて、イントラマクロブロックに対して送られる。
代替的に、フィールド/フレームタイプは、異なる方法でシグナリングされる。例えば、フィールド/フレームタイプは、異なるサイズまたはアレンジメントのビットストリーム要素を用いて、(例えば、マクロブロックレベルにおいて)シグナリングすることができる。別の代替形態として、フィールド/フレームタイプは、マクロブロックレベル以外のフレームレベルより下のレベル(例えば、スライスレベルまたはその他のレベル)において、シグナリングすることが可能である。別の代替形態として、フィールド/フレームタイプは、イントラコード化フレーム内の全てよりは少ないマクロブロックに対して、マクロブロックレベル(またはその他のレベル)において選択的にシグナリングすることができる。
V.プログレッシブピクチャーおよびインターレースピクチャーのためのAC予測シグナリングにおける革新
記載の実施形態には、プログレッシブピクチャーおよびインターレースピクチャー(例えば、プログレッシブIフレーム、インターレースIフレームなど)において、AC予測情報をシグナリングするための技法およびツールが含まれる。例えば、記載の技法およびツールは、ビットプレーンコーディングを使用してフレームまたはフィールド内のマクロブロックにおけるAC予測の使用をシグナリングするための技法およびツールを含む。記載の技法およびツールは、他の技法およびツールと互いに組み合わせて使用するか、または単独で使用することができる。
例えば、エンコーダ/デコーダは、エントロピーコーディングの前に、AC係数を予測する。エンコーダは、現行ブロック内のAC係数値から、隣接する予測ブロック内の対応するAC係数値を差し引き、AC係数差分を得る。この差分は、次いでエントロピーエンコードされる。予測方向に応じて、予測子ブロックは、直上のブロック、または現行ブロックの左側のブロックである。再び図1Bを参照すると、上端予測には、現行ブロックの直上のブロック175におけるAC係数の上端行177が、現行ブロック125内のAC係数の上端行129に対する予測子として使用される。左予測には、現行ブロックの直左のブロック135内のAC係数の最左端列137が、現行ブロック125におけるAC係数の最左端列の予測子として使用される。一実施形態において、DC係数予測のために選択された予測方向が、AC係数予測用の予測方向として使用される。代替的に、AC予測の方向もシグナリングされる。
AC予測の正確な仕組みは、異なるピクチャータイプに対して異なってもよい。その最も簡単な形態において、AC予測は、隣接ブロックの上端行または左列のAC係数を、係数予測子として単に使用することを含む。より複雑なAC予測においては、係数予測子は、現行ブロックおよび隣接ブロックにおける量子化のレベルに関する係数によって倍率変更される。代替的に、エンコーダおよびデコーダは、その他の仕組みを備えるAC予測を使用する。
ブロックが指定の予測方向に存在しない場合には、左端列または上端行における、すべての7つのAC係数に対する予測値は、ゼロに設定される。例えば、予測方向が上方であり、現行ブロックが上端行にある場合には、現行ブロックの上端行における予測AC係数のそれぞれは、ゼロに設定されるが、この理由は、上方向には隣接ブロックがないからである。予測された行または列におけるAC係数は、現行ブロックにおける対応するデコードされたAC係数(これは差分である)に加算されて、完全に再構成されて量子化された変換係数ブロックを生成する。
フレームまたはフィールド内のすべてのマクロブロックに対するAC係数予測を実行することは効率的でない可能性がある。すなわち予測は、いくつかのマクロブロックにおいて有効ではないことになる。そのために、エンコーダ/デコーダは、フレームまたはフィールド内の個々のマクロブロックに対して、AC予測が使用可能か、または使用不可能かを指示するシグナリングを使用する。単一ビットの情報は、各マクロブロックに対して、マクロブロックレベルにおいて送られ、デコーダに、AC予測がマクロブロックで使用されているかどうかを明示的に通知する。しかしながら、マクロブロック当り1ビットを送ることによってのみAC予測をシグナリングするエンコーダ/デコーダは、フィールドまたはフレーム内のマクロブロックに対するAC予測状態において生じ得る空間的な相関を利用することができない。
したがって、いくつかの実現形態においては、エンコーダ/デコーダは、個々のマクロブロックに対するAC予測情報を一緒にグループ化して、その情報をビットプレーンとして(例えばフレームレベル、フィールドレベル、またはその他のマクロブロックレベルより上のレベルにおいて)コード化することによって、フレームまたはフィールド内の、そのような空間的な相関を利用する。一実施形態において、ビットプレーンは、フレームレベル/フィールドレベルビットプレーンACPREDである。ACPREDビットプレーンについては、以下のVII節でさらに詳細を述べる。
図13は、AC予測情報のビットプレーンコーディングまたはデコーディングについての技法1300を示す。1310において、エンコーダ/デコーダは、複数の利用可能なコーディングモードの群からコーディングモードを選択する。1320において、エンコーダ/デコーダは、選択されたコーディングモードに従ってビットプレーンを処理する。そのビットプレーンは、ビデオフレーム内のマクロブロックがAC予測を使用してエンコードされているかどうかを意味するバイナリ情報を含む。
記載のビットプレーンコーディング技法は、マクロブロックレベルのマクロブロック当り1ビットコーディングと組み合わせて使用することができる。例えば、一実施形態において、ACPRED構文要素は、マクロブロックレイヤにおいてシグナリングされた場合に、AC予測がそのマクロブロックのブロックに対して使用されているかどうかを指示する。ACPRED=1の場合に、マクロブロックのデコードされたブロック内のAC係数は、予測子ブロックにおける係数に基づく差分値として取り扱われる。マクロブロックレベルACPREDビットストリーム要素については、以下のVII節にさらに詳細に述べる。
代替的に、AC予測情報は、異なる方法でシグナリングされる。例えば、AC予測情報は、異なるサイズまたはアレンジメントのビットストリーム要素でシグナリングすることができる。別の代替形態として、AC予測情報は、フレームレベルまたはフィールドレベル以外のマクロブロックレベルより上方のレベル(例えば、スライスレベルまたはその他の何らかのレベル)において、ビットプレーンにエンコードすることができる。別の代替形態として、AC予測情報は、イントラコード化フレーム内における全部よりも少ないマクロブロックに対して、マクロブロックレベル(またはその他のレベル)において選択的にシグナリングすることが可能である。ビットプレーンコーディング(または何らかの他のコーディング技法)は、マクロブロックレベルにおいてシグナリングされていないマクロブロックに対してフィールド/フレームタイプをシグナリングするために、フレームレベル(またはその他のレベル)において使用されることがある。
VI.組合せ実施形態(Combined Implementations)
ビットストリーム構文、セマンティクス、およびデコーダに対する詳細な組合せ実施形態を、主な組合せ実施形態とわずかに異なる代替組合せ実施形態に加えて、ここで説明する。
A.ビットストリーム構文(Bitstream Syntax)
様々な組合せ実施形態において、データは、複数のレイヤ(例えば、シーケンス、エントリーポイント、フレーム、フィールド、スライス、マクロブロック、ブロックおよび/またはサブブロックの各レイヤ)を有するビットストリームの形態で表わされる。
構文図において、矢印経路は、構文要素の可能な流れを示している。四角の境界線で示す構文要素は、固定長構文要素を指示し、角の丸い境界線で示すものは、可変長構文要素を指示し、角の丸い二重の境界線で示すものは、より簡単な構文要素で構成された構文要素(例えば、ビットプレーン)を指示する。固定長構文要素は、構文要素の長さが構文要素自体におけるデータに依存しない構文要素と定義される。固定長構文要素の長さは、一定であるか、または構文フローにおける先のデータによって決まる。レイヤ図における低レイヤ(例えば、フレームレイヤ図内のマクロブロックレイヤ)は、二重の四角形で表示してある。
シーケンスレベル要素は、圧縮ビデオピクチャーのシーケンスをデコードするために使用される。シーケンスレベルデータは、他のレベル(例えば、エントリーポイントレベル、フレームレベル、マクロブロックレベルなど)における要素の解釈または存在に影響を与える可能性がある。一般に、エントリーポイントは、デコードがデコーディングを開始することのできる、ビットストリーム(例えば、Iフレームまたはその他のキーフレーム)内の位置をマーキングする。言い換えると、ビットストリーム内のエントリーポイントの前のピクチャーは、そのエントリーポイントの後のピクチャーをデコードする上で必要ではない。エントリーポイントヘッダは、コーディング制御パラメータの変化(例えば、エントリーポイントの後のフレームに対する、圧縮ツールの使用許可または使用禁止)をシグナリングするために使用することができる。
プログレッシブIフレームについて、フレームレベルビットストリーム要素を図14に示す。(プログレッシブBIフレームに対するフレームレベルビットストリーム要素は、プログレッシブIフレームのものと同じである。)各フレームに対するデータは、フレームヘッダと、それに続く(イントラマクロブロックに対する)マクロブロックレイヤのデータから構成されている。プログレッシブIフレームについてのマクロブロックレベルビットストリーム要素を図15に示す。
インターレースIフィールドおよび/またはBIフィールドを備えるインターレースビデオフレームについて、フレームレベルビットストリーム要素を図16にす。各フレームに対するデータは、フレームヘッダとそれに続くフィールドレイヤ(フィールド毎の反復「FieldPicLayer」要素として示す)から構成されている。インターレースIフィールドのためのフィールドヘッダを構成するビットストリーム要素を図17に示す。(インターレースBフィールドに対するフィールドレベルビットストリーム要素は、インターレースIフィールドに対するものと同じである。)インターレースIフィールドおよびインターレースBフィールドのためのマクロブロックレイヤを構成するビットストリーム要素は、プログレッシブIフレームにおけるマクロブロックのためのものと同じである。
インターレースIフレーム、Pフレーム、およびBフレームについて、フレームレベルビットストリーム要素を、図18、19および20にそれぞれ示す。(インターレースBIフレームに対するフレームレベルビットストリーム要素は、インターレースIフレームに対するものと同じである。)インターレースIフレーム、Pフレーム、およびBフレームにおいて、各フレームのデータは、フレームヘッダとそれに続くマクロブロックレイヤのための(イントラタイプ、または様々なインタータイプのマクロブロックのための)データから構成されている。インターレースIフレーム、PフレームおよびBフレームのためのマクロブロックレイヤを構成するビットストリーム要素を、図21、22、および23にそれぞれ示す。(インターレースBIフレームにおけるマクロブロックのためのビットストリーム要素は、インターレースIフレームにおけるマクロブロックのためのものと同じである。)
以下の節では、フレーム、フィールド、およびマクロブロックの各レイヤにおいて選択されたビットストリーム要素について説明する。選択されたビットストリーム要素を、特定のレイヤの文脈において説明するが、いくつかのビットストリーム要素は、複数のレイヤにおいて使用することができる。
1.選択されたフレームおよびフィールドレイヤ要素
図14、16、18、19、および20は、それぞれ、プログレッシブIフレーム/プログレッシブBIフレーム、インターレースIフィールドまたはBIフィールドを有するフレーム、インターレースIフレーム/インターレースBIフレーム、インターレースPフレーム、およびインターレースBフレームについてフレームレベルビットストリーム構文を示す図である。図17は、インターレースIフィールドについて、フィールドレベルビットストリーム構文を示す図である。いくつかの要素(例えば、ACPREDビットプレーン)は、インターレースBIフィールドに対するフィールドレベルビットストリーム構文中、および場合によってはその他のピクチャータイプに対する構文中にも存在する。具体的なビットストリーム要素を以下に説明する。
フレームコーディングモード(FCM)(可変サイズ)
FCMは、ピクチャーコーディングタイプを指示するために使用される、可変長コードワード[VLC:variable length codeword]である。FCMは以下の表1に示す、フレームコーディングモードに対する値をとる。
Figure 0005049009
フィールドピクチャータイプ(FPTYPE)(3ビット)
FPTYPEは、インターレースIフィールドおよび/またはインターレースBIフィールド、および場合によってはその他の種類のフィールドを含むフレーム用のフレームヘッダに含まれる3ビット構文要素である。FPTYPEは、以下に示す表2に従って、インターレースビデオフレームにおけるフィールドタイプの異なる組合せに対する値をとる。
Figure 0005049009
ピクチャータイプ(PTYPE)(可変サイズ)
PTYPEは、インターレースPフレームおよびインターレースBフレーム(またはインターレースIフレームなどの、その他の種類のインターレースフレーム)用のフレームヘッダに含まれる可変サイズ構文要素である。PTYPEは、以下に示す表3に従って、異なるフレームタイプに対する値をとる。
Figure 0005049009
PTYPEが、フレームがスキップされたことを指示する場合には、そのフレームは、Pフレームとして扱われる。このPフレームはその参照フレームと同じである。スキップされたフレームの再構成は、概念的には参照フレームをコピーするのと同等である。スキップされたフレームとは、このフレームに対して更なるデータが伝送されないことを意味する。
フィールド変換ビットプレーン(FIELDTX)(可変サイズ)
フレームレベルまたはフィールドレベルにおいて、FIELDTXは、インターレースIフレーム内のマクロブロックが、フレームコード化されているか、またはフィールドコード化されているかを指示するビットプレーンである。FIELDTXについては、以下および上記のIV節においてより詳細に説明される。
AC予測ビットプレーン(ACPRED)(可変サイズ)
プログレッシブIフレームおよびBフレームについて、ならびにインターレースIフレームおよびBIフレームについて、すべてのマクロブロックに存在することになる1ビットACPRED構文要素が、フレーム内の各マクロブロックに対するAC予測状態を指示するビットプレーンコード化構文要素を使用して、一緒にコード化される。デコードされたビットプレーンは、各マクロブロックに対するAC予測状態を1ビット値として表わす。ACPREDビットプレーンについては、以下および上記のV節において詳細に説明される。
3.選択されたマクロブロックレイヤ要素
図15、21、22、および23は、それぞれ、組合せ実施形態において、プログレッシブIフレーム/インターレースIフィールド/インターレースBIフィールド、インターレースIフレーム/インターレースBIフレーム、インターレースPフレーム、およびインターレースBフレーム内のマクロブロックに対するマクロブロックレベルビットストリーム構文を示す図である。具体的なビットストリーム要素を以下に記述する。マクロブロックに対するデータは、マクロブロックヘッダとそれに続くブロックレイヤデータで構成されている。マクロブロックレイヤ内のビットストリーム要素(例えば、ACPRED、FIELDTXなど)は、その他のピクチャータイプに対するマクロブロックにも存在することがある。
AC予測フラグ(ACPRED)(1ビット)
組合せ実施形態において、ACPRED構文要素は、すべてのプログレッシブIフレーム、インターレースIフレーム、インターレースBフレーム、インターレースIフィールド、およびインターレースBIフィールドのマクロブロック、ならびにインターレースPフィールド、インターレースBフィールド、インターレースPフレーム、およびインターレースBフレーム内のイントラマクロブロック中に存在する。ACPREDは、また、プログレッシブPフレームおよびBフレーム内のマクロブロック内にも存在する。マクロブロックレベルにおいて、ACPREDは、マクロブロックにおけるブロックがAC予測を使用してコード化されるかどうかを指定する1ビット構文要素である。ACPRED=0は、AC予測が使用されていないことを指示する。ACPRED=1は、AC予測が使用されていることを指示する。ACPREDは、上記V節においてさらに詳細に説明されているように、フレームレベルビットプレーンとしてエンコードすることもできる。
フィールド変換フラグ(FIELDTX)(1ビット)
FIELDTXは、インターレースIフレーム、インターレースBIフレーム、インターレースPフレーム、およびインターレースBフレームにおけるイントラコード化マクロブロック内に存在する1ビット構文である。この構文要素は、マクロブロックがフレームコード化されているか、またはフィールドコード化(基本的に、マクロブロックの内部編成)されているかを指示する。FIELDTX=1は、マクロブロックはフィールドコード化されていることを指示する。そうでない場合には、マクロブロックはフレームコード化されている。インターコード化マクロブロックにおいては、この構文要素は、マクロブロックレベルビットストリーム要素MBMODEから推測することができる。FIELDTXは、上記IV節でより詳細に説明されているように、フレームレベルビットプレーンとしてエンコードすることもできる。
B.ビットプレーンコーディング(Bitplane Coding)
スキップビットなどのマクロブロック専用バイナリ情報は、マクロブロック当り1つのバイナリ記号としてエンコードすることができる。例えば、マクロブロックがスキップされるかどうかは、1ビットでシグナリングすることができる。これらの場合に、フィールドまたはフレーム内のすべてのマクロブロックを、ビットプレーンとしてコード化して、フィールドヘッダまたはフレームヘッダに入れて伝送することができる。この規則に対する1つの例外は、ビットプレーンコーディングモードがRawモードに設定されている場合であり、この場合には、各マクロブロックに対する状態は、記号当り1ビットでコード化されており、マクロブロックレベルにおいて他のマクロブロックレベル構文要素と共に伝送される。
フィールド/フレームレベルビットプレーンコーディングは、2次元バイナリ配列をエンコードするために使用される。各配列の大きさは、rowMB×colMBであり、ここでrowMBおよびcolMBは、それぞれ、問題のフィールドまたはフレームにおけるマクロブロックの行および列の数である。ビットストリーム内で、各配列は、1組の連続するビットとしてコード化される。7つのモードの内の1つが、各配列をエンコードするために使用される。その7つのモードとは、以下のものである。
1.Rawモード:情報が記号当り1ビットとしてコード化され、MBレベル構文の一部として伝送される。
2.ノーマル2モード:2つの記号が一緒にコード化される。
3.差分2モード:ビットプレーンの差分コード化、続いて2つの残留記号を一緒にコード化。
4.ノーマル6モード:6つの記号が一緒にコード化される。
5.差分6モード:ビットプレーンの差分コード化、続いて6つの残留記号を一緒にコード化。
6.ロースキップモード:設定ビットのない行をシグナリングする1ビットスキップ。
7.カラムスキップモード:設定ビットのない列をシグナリングする1ビットスキップ。
フィールドまたはフレームレベルにおけるビットプレーンに対する構文要素は、次のシーケンス、すなわちINVERT、IMODE、およびDATABITSである。
逆フラグ(INVERT)
INVERT構文要素は1ビット値であり、これは、設定される場合には、ビットプレーンはゼロビットよりも多い設定ビットを有することを指示する。INVERTおよびモードに応じて、デコーダは、解釈されたビットプレーンを反転して、オリジナルを再生成する。ここで留意すべきことは、rawモードが使用されている場合には、このビットの値は無視されることである。ビットプレーンのデコーディングにおけるINVERT値の使い方を以下に示す。
コーディングモード(IMODE)
IMODE構文要素は、ビットプレーンをエンコードするために使用されるコーディングモードを指示する可変長値である。表4は、IMODE構文要素をエンコードするために使用されるコードテーブルを示す。ビットプレーンをデコードする際の、IMODE値の使い方について、以下に述べる。
Figure 0005049009
ビットプレーンコーディングビット(DATABITS)
DATABITS構文要素は、ビットプレーンに対する記号のストリームをエンコードする、可変サイズ構文要素である。ビットプレーンをエンコードするために使用される方法は、IMODEの値によって決まる。7つのコーディングモードについて、以下の節で説明する。
Rawモード
このモードにおいて、ビットプレーンは、(例えば、ラスター走査順序で)記号当り1ビットとしてエンコードされ、マクロブロックレイヤの一部として送られる。代替的に、情報は、フィールドレベルまたはフレームレベルにおいて、rawモードでコード化され、DATABITSの長さは、rowMB×colMBビットである。
ノーマル2モード
rowMB×colMBが奇数の場合に、第1の記号はrawでエンコードされる。後続の記号は、自然走査順序で、ペア毎にエンコードされる。表5におけるバイナリVLCテーブルが、記号ペアをエンコードするために使用される。
Figure 0005049009
Diff−2モード
ノーマル2法は、上述のビットプレーンを生成するために使用され、Diff−1演算は、以下に記述するようにビットプレーンに適用される。
ノーマル6モード
Norm−6およびDiff−6モードにおいて、ビットプレーンは6個のピクセルの群にエンコードされる。これらのピクセルは、2×3または3×2のタイルにグループ分けされる。ビットプレーンは、1組の規則を用いて最大限タイリングされ、残りのピクセルは、ロースキップモードおよびカラムスキップモードの変形形態を用いてエンコードされる。rowMBが3の倍数であって、colMBが3の倍数でない場合にのみ、2×3の「垂直」タイルが使用される。そうでない場合には、3×2の「水平」タイルが使用される。図24Aは、2×3「垂直」タイルの簡略化した実施例を示している。図24Bおよび24Cは、3×2「水平」タイルの簡略化した実施例を示しており、このタイルに対して、細長い黒い長方形は1ピクセル幅であり、ロースキップおよびカラムスキップコーディングを使用してエンコードされる。ピクチャーの上端および左端に沿って線形タイルを備える、図24Cに示すようにタイリングされた面に対して、タイルのコード化順序は、次のパターンに従う。6要素タイルが最初にエンコードされ、カラムスキップおよびロースキップでエンコードされた線形タイルがそれに続く。配列サイズが、2×3または3×2の倍数の場合に、後者の線形タイルは存在せず、ビットプレーンは完全にタイリングされる。
6要素長方形タイルは、可変長コードおよび固定長コードの組合せを用いてコード化される。Nをタイル内の設定ビット数、すなわち0≦N≦6とする。N<3の場合には、タイルをエンコードするためにVLCを使用する。N=3の場合は、固定長エスケープコードの後に、5ビット固定長コードが続く。N>3の場合には、別の固定長エスケープコードの後に、VLCが続く。N>3の場合に、エスケープコードに続くVLCは、N<3の場合に、このタイルの補数のコードに使用されるVLCと同一である。N>3の場合に使用される固定長エスケープは、N=3の場合の固定長エスケープコードとは異なる。長方形タイルは6ビットの情報を包含する。kをタイルに関連するコードとすると、
Figure 0005049009
は、タイル内での自然走査順序におけるi番目のビットのバイナリ値である。したがって、0≦k<64である。VLCとエスケープコードおよび固定長コードとの組合せが、kをシグナリングするために使用される。
Diff−6モード
ノーマル6法は、上述のビットプレーンを生成するために使用され、Diff−1演算は、以下に述べるビットプレーンに適用される。
ロースキップ(Row−skip)モード
ロースキップコーディングモードにおいては、全ゼロ行(all-zero rows)は、1ビットオーバヘッドでスキップされる。構文は次のとおりである。各行に対して、単独ROWSKIPビットが、行がスキップされるかどうかを指示し、行がスキップされる場合には、次の行に対するROWSKIPビットが次であり、そうでない(行がスキップされない)場合には、ROWBITSビット(行内の各マクロブロックに対して1ビット)が次となる。したがって、行全体がゼロの場合には、ゼロビットがROWSKIP記号として送られ、ROWBITSはスキップされる。行内に設定ビットがある場合には、ROWSKIPは1に設定され、行全体がrawで送られる(ROWBITS)。行は、フィールドまたはフレームの上端から下端へと走査される。
カラムスキップ(Column−skip)モード
カラムスキップは、ロースキップの転置(transpose)である。列は、フィールドまたはフレームの左から右へと走査される。
Diff−1::逆差分(Inverse differential)デコーディング
いずれかの差分モード(Diff−2またはDiff−6)が使用される場合には、「差分ビット」のビットプレーンが、対応するノーマルモード(それぞれNorm−2またはNorm−6)を使用して、最初にデコードされる。差分ビットは、原ビットプレーンを再生成するために使用される。再生成プロセスは、バイナリアルファベットについての2D DPCMである。場所(i,j)においてビットを再生成するために、予測子b(i,j)が、(位置(i,j)におけるビットb(i,j)から)以下のように生成される:
Figure 0005049009
差分コーディングモードでは、INVERTに基づくビット毎の反転プロセスは実行されない。しかしながら、INVERTフラグは、上述の予測子の導出のための記号Aの値を指示する、異なる機能で使用される。より具体的には、INVERT=0の場合には、A=0であり、INVERT=1の場合には、A=1となる。ビットプレーンの実際の値は、予測子とデコードされた差分ビット値との排他的論理和(XOR)をとることによって得られる。上記の式において、b(i,j)は、最終デコーディング(すなわち、Norm−2/Norm−6を実行した後に、その予測子と差分XOR演算)後のi,j番目の位置におけるビットである。
本発明の原理を、様々な実施形態を参照して記述し説明したが、様々な実施形態は、その原理から逸脱することなく、アレンジメントおよび詳細において修正することが可能であることが認識されるであろう。ここで理解すべきことは、本明細書において記述したプログラム、プロセス、または方法は、特に断らない限りは、いかなる特定のタイプのコンピューティング環境にも関係せず、またそれに限定されるものでもないことである。様々なタイプの汎用または専用のコンピューティング環境を使用できるとともに、それによって、本明細書に記述した教示に従って演算を実行することができる。ソフトウエアにおいて示した実施形態の要素は、ハードウエアに実装してもよく、またその逆も可能である。
本発明の原理を応用することのできる多くの可能な実施形態を考慮して、添付のクレームおよびその均等物の範囲と趣旨に入る実施形態のすべてを、本発明として主張するものである。
従来技術による、8×8ピクセルブロックのブロックベースのイントラフレーム圧縮を示す図である。 従来技術による、8×8ピクセルブロックに対するAC予測候補を示す図である。 従来技術による、ビデオエンコーダにおける動き推定を示す図である。 従来技術による、ビデオエンコーダにおける予測残差の8×8ブロックに対するブロックベース圧縮を示す図である。 従来技術による、ビデオエンコーダにおける予測残差の8×8ブロックに対するブロックベース復元を示す図である。 従来技術による、インターレースフレームを示す図である。 従来技術による、インターレースマクロブロックのフィールドコーディングを示す図である。 いくつかの記述した実施形態を実装することのできる、適当なコンピューティング環境のブロック図である。 いくつかの記述した実施形態を実装することのできる、汎用ビデオエンコーダシステムのブロック図である。 いくつかの記述した実施形態を実装することのできる、汎用ビデオデコーダシステムのブロック図である。 いくつかの記述した実施形態において使用される、マクロブロックフォーマットを示す図である。 トップフィールドとボトムフィールドの交互走査線を示す、インターレースビデオフレームの一部分を示す図である。 フレームとしてエンコーディング/デコーディングするために構成されたインターレースビデオフレームを示す図である。 フィールドとしてエンコーディング/デコーディングするために構成されたインターレースビデオフレームを示す図である。 フレームレベルビットプレーンコーディングまたはマクロブロックレベルコーディングを使用して、マクロブロックためのフィールド/フレームタイプ情報をシグナリングするための技法を示す流れ図である。 AC予測情報のビットプレーンコーディングの技法を示す流れ図である。 組合せ実装におけるプログレッシブIフレームのためのフレームレイヤビットストリーム構文を示す図である。 組合せ実装におけるプログレッシブIフレームのためのマクロブロックレイヤビットストリーム構文を示す図である。 組合せ実装におけるインターレースIフィールドまたはBIフィールドのためのフレームレイヤビットストリーム構文を示す図である。 組合せ実装におけるインターレースIフィールドのためのフィールドレイヤビットストリーム構文を示す図である。 組合せ実装におけるインターレースIフレームのためのフレームレイヤビットストリーム構文を示す図である。 組合せ実装におけるインターレースPフレームのためのフレームレイヤビットストリーム構文を示す図である。 組合せ実装におけるインターレースBフレームのためのフレームレイヤビットストリーム構文を示す図である。 組合せ実装におけるインターレースIフレームのマクロブロックのためのマクロブロックレイヤビットストリーム構文を示す図である。 組合せ実装におけるインターレースPフレームのマクロブロックのためのマクロブロックレイヤビットストリーム構文を示す図である。 組合せ実装におけるインターレースBフレームのマクロブロックのためのマクロブロックレイヤビットストリーム構文を示す図である。 従来技術による、ノーマル6およびdiff−6ビットプレーンコーディングモードのためのタイルを示す図である。 従来技術による、ノーマル6およびdiff−6ビットプレーンコーディングモードのためのタイルを示す図である。 従来技術による、ノーマル6およびdiff−6ビットプレーンコーディングモードのためのタイルを示す図である。

Claims (15)

  1. フレームレベルビットプレーンデコーディングまたはマクロブロックレベルデコーディングのいずれかを使用して、ビデオシーケンスをデコードする方法であって、該方法は、コンピュータシステムに記憶されたコンピュータ実行可能命令を前記コンピュータシステムが実行することによって実施され、前記コンピュータシステムが、
    前記ビデオシーケンスにおける第1のインターレースビデオフレームに対して、フレームレイヤにおいて前記第1のインターレースビデオフレームに対して伝送されたビットプレーンをデコードすることであって、前記ビットプレーンは、前記第1のインターレースビデオフレームの複数のマクロブロックがフレームコード化されているか、またはフィールドコード化されているかを示すこと、および
    前記ビデオシーケンスにおける第2のインターレースビデオフレームに対して、前記第2のインターレースビデオフレームの一部であって全部ではない複数のマクロブロックのそれぞれに対して、マクロブロックレイヤにおいて伝送されたマクロブロック当り1ビットのフィールド/フレーム決定ビットを処理することであって、前記第2のインターレースビデオフレームは、1つまたは複数のイントラマクロブロックおよび1つまたは複数のインターマクロブロックを含み、前記フィールド/フレーム決定ビットは、前記1つまたは複数のイントラマクロブロックのそれぞれに対して伝送されるが、前記1つまたは複数のインターマクロブロックのいずれに対しても伝送されず、前記フィールド/フレーム決定ビットに応じて、前記マクロブロックがフレームコード化されているか、またはフィールドコード化されているかを決定すること
    を含むことを特徴とする方法。
  2. 前記第1のインターレースビデオフレームは、インターレースIフレームであり、前記第2のインターレースビデオフレームは、インターレースPフレームであることを特徴とする請求項1に記載の方法。
  3. 前記ビットプレーンをデコードすることは、複数の利用可能なデコーディングモードの中からデコーディングモードを選択することを含むことを特徴とする請求項1に記載の方法。
  4. 前記複数の利用可能なデコーディングモードは、ロースキップ、カラムスキップ、ノーマル2、ノーマル6、および1つまたは複数の差分モードを含むことを特徴とする請求項に記載の方法。
  5. 前記第1のインターレースビデオフレームに対して、前記ビットプレーンをデコードした後に、前記第1のインターレースビデオフレームの複数のマクロブロックのそれぞれに対して、前記複数のマクロブロックがフレームコード化されているか、またはフィールドコード化されているかを示す前記ビットプレーンに少なくとも部分的に基づいて、前記マクロブロックのためのマクロブロックレイヤのビットストリーム要素をデコードすることをさらに含むことを特徴とする請求項1に記載の方法。
  6. 前記コンピュータシステムに、請求項1に記載の方法を実行させるための、前記コンピュータ実行可能命令を記憶したことを特徴とするコンピュータ読取り可能記憶媒体。
  7. フレームレベルビットプレーンコーディングまたはマクロブロックレベルコーディングのいずれかを使用して、ビデオシーケンスをエンコードする方法であって、該方法は、コンピュータシステムに記憶されたコンピュータ実行可能命令を前記コンピュータシステムが実行することによって実施され、前記コンピュータシステムが、
    前記ビデオシーケンスにおける第1のインターレースビデオフレームに対して、ビットプレーンをエンコードして、前記第1のインターレースビデオフレームに対して、前記ビットプレーンをフレームレイヤにおいて伝送することであって、前記ビットプレーンは、前記第1のインターレースビデオフレームの複数のマクロブロックがフレームコード化されているか、またはフィールドコード化されているかを示すこと、および
    前記ビデオシーケンスにおける第2のインターレースビデオフレームに対して、前記第2のインターレースビデオフレームの一部であって全部ではない複数のマクロブロックのそれぞれに対して、マクロブロック当り1ビットのフィールド/フレーム決定ビットをマクロブロックレイヤにおいて伝送することであって、前記第2のインターレースビデオフレームは、1つまたは複数のイントラマクロブロックおよび1つまたは複数のインターマクロブロックを含み、前記フィールド/フレーム決定ビットは、前記1つまたは複数のイントラマクロブロックのそれぞれに対して伝送されるが、前記1つまたは複数のインターマクロブロックのいずれに対しても伝送されず、前記フィールド/フレーム決定ビットは、前記マクロブロックがフレームコード化されているか、またはフィールドコード化されているかを示すこと
    を含むことを特徴とする方法。
  8. 前記第1のインターレースビデオフレームは、インターレースIフレームであり、前記第2インターレースビデオフレームは、インターレースPフレームであることを特徴とする請求項に記載の方法。
  9. 前記ビットプレーンをエンコードすることは、複数の利用可能なエンコーディングモードの中からエンコーディングモードを選択することを含むことを特徴とする請求項に記載の方法。
  10. 前記複数の利用可能なエンコーディングモードは、ロースキップ、カラムスキップ、ノーマル2、ノーマル6、および1つまたは複数の差分モードを含むことを特徴とする請求項に記載の方法。
  11. 前記コンピュータシステムに、請求項に記載の方法を実行させるための、前記コンピュータ実行可能命令を記憶したことを特徴とするコンピュータ読取り可能記憶媒体。
  12. フレームレベルビットプレーンデコーディングまたはマクロブロックレベルデコーディングのいずれかを使用して、ビデオシーケンスをデコードするデコーダであって、
    前記ビデオシーケンスにおける第1のインターレースビデオフレームに対して、フレームレイヤにおいて伝送されたビットプレーンをデコードする手段であって、前記ビットプレーンは、前記第1のインターレースビデオフレームの複数のマクロブロックがフレームコード化されているか、またはフィールドコード化されているかを示す手段、および
    前記ビデオシーケンスにおける第2のインターレースビデオフレームに対して、前記第2のインターレースビデオフレームの一部であって全部ではない複数のマクロブロックのそれぞれに対して、マクロブロックレイヤにおいて伝送されたマクロブロック当り1ビットのフィールド/フレーム決定ビットを処理する手段であって、前記第2のインターレースビデオフレームは、動き補償フレームであり、前記フィールド/フレーム決定ビットを処理する手段は、前記第2のインターレースビデオフレームのインターマクロブロックに対してではなく、イントラマクロブロックに対して、前記フィールド/フレーム決定ビットを処理し、前記フィールド/フレーム決定ビットに応じて、前記マクロブロックがフレームコード化されているか、またはフィールドコード化されているかを決定する手段と
    を備えることを特徴とするデコーダ。
  13. 前記第1インターレースビデオフレームは、インターレースIフレームであり、前記第2インターレースビデオフレームは、インターレースPフレームであることを特徴とする請求項12に記載のデコーダ。
  14. 複数の利用可能なビットプレーンデコーディングモードの中からビットプレーンデコーディングモードを選択する手段をさらに備えることを特徴とする請求項12に記載のデコーダ。
  15. 前記複数の利用可能なエンコーディングモードは、ロースキップ、カラムスキップ、ノーマル2、ノーマル6、および1つまたは複数の差分モードを含むことを特徴とする請求項14に記載のデコーダ。
JP2006525509A 2003-09-07 2004-09-03 マクロブロックフィールド/フレームコード化タイプ情報のためのビットプレーンコーディングおよびデコーディング Active JP5049009B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US50108103P 2003-09-07 2003-09-07
US60/501,081 2003-09-07
US10/933,959 US7092576B2 (en) 2003-09-07 2004-09-02 Bitplane coding for macroblock field/frame coding type information
US10/933,959 2004-09-02
PCT/US2004/029032 WO2005027494A2 (en) 2003-09-07 2004-09-03 Bitplane coding and decoding for ac prediction status and macroblock field/frame coding type information

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011091387A Division JP5048146B2 (ja) 2003-09-07 2011-04-15 Ac予測状態情報のためのビットプレーンコーディングおよびデコーディング

Publications (2)

Publication Number Publication Date
JP2007504759A JP2007504759A (ja) 2007-03-01
JP5049009B2 true JP5049009B2 (ja) 2012-10-17

Family

ID=34228805

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006525509A Active JP5049009B2 (ja) 2003-09-07 2004-09-03 マクロブロックフィールド/フレームコード化タイプ情報のためのビットプレーンコーディングおよびデコーディング
JP2011091387A Active JP5048146B2 (ja) 2003-09-07 2011-04-15 Ac予測状態情報のためのビットプレーンコーディングおよびデコーディング

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011091387A Active JP5048146B2 (ja) 2003-09-07 2011-04-15 Ac予測状態情報のためのビットプレーンコーディングおよびデコーディング

Country Status (8)

Country Link
US (1) US7092576B2 (ja)
EP (1) EP1665761B1 (ja)
JP (2) JP5049009B2 (ja)
KR (1) KR101087400B1 (ja)
ES (1) ES2767932T3 (ja)
HK (1) HK1119336A1 (ja)
MX (1) MXPA06002496A (ja)
WO (1) WO2005027494A2 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100452883C (zh) 2001-12-17 2009-01-14 微软公司 处理视频图像的方法
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US7154952B2 (en) 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7286710B2 (en) * 2003-10-01 2007-10-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Coding of a syntax element contained in a pre-coded video signal
US7379608B2 (en) * 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
US7599435B2 (en) 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US7586924B2 (en) 2004-02-27 2009-09-08 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
US7554602B2 (en) * 2004-07-12 2009-06-30 Canon Kabushiki Kaisha Processing interlaced video in a frame based rendering system
ATE511314T1 (de) * 2004-08-31 2011-06-15 Panasonic Corp Verfahren und vorrichtung zur kodierung bewegter bilder
US7574060B2 (en) * 2004-11-22 2009-08-11 Broadcom Corporation Deblocker for postprocess deblocking
KR100703745B1 (ko) * 2005-01-21 2007-04-05 삼성전자주식회사 비동기 프레임을 효율적으로 예측하는 비디오 코딩 방법 및장치
US20060215754A1 (en) * 2005-03-24 2006-09-28 Intel Corporation Method and apparatus for performing video decoding in a multi-thread environment
KR100723411B1 (ko) * 2005-09-08 2007-05-30 삼성전자주식회사 멀티 코덱용 변환 장치 및 방법과 멀티 코덱용 역변환 장치및 방법
US20070094035A1 (en) * 2005-10-21 2007-04-26 Nokia Corporation Audio coding
GB2435140B (en) * 2006-02-13 2011-04-06 Snell & Wilcox Ltd Sport action coding
JP2008048240A (ja) * 2006-08-18 2008-02-28 Nec Electronics Corp ビットプレーン復号装置およびビットプレーン復号方法
TW200814785A (en) * 2006-09-13 2008-03-16 Sunplus Technology Co Ltd Coding method and system with an adaptive bitplane coding mode
JP5746811B2 (ja) * 2006-12-21 2015-07-08 味の素株式会社 大腸癌の評価方法、ならびに大腸癌評価装置、大腸癌評価方法、大腸癌評価システム、大腸癌評価プログラムおよび記録媒体
US20140355592A1 (en) 2012-11-01 2014-12-04 Datavalet Technologies System and method for wireless device detection, recognition and visit profiling
US9003488B2 (en) * 2007-06-06 2015-04-07 Datavalet Technologies System and method for remote device recognition at public hotspots
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
TW201016017A (en) * 2008-10-08 2010-04-16 Univ Nat Taiwan Memory management method and system of video encoder
JP5406942B2 (ja) * 2009-01-29 2014-02-05 ドルビー ラボラトリーズ ライセンシング コーポレイション 立体画像である複数の画像をサブサンプリング及びインタリーブする方法及び装置
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
JP5020391B2 (ja) * 2010-02-22 2012-09-05 パナソニック株式会社 復号化装置及び復号化方法
DK2675169T3 (da) 2011-02-09 2019-07-22 Lg Electronics Inc Fremgangsmåde til kodning og afkodning af billeddata med en tidsmæssig bevægelsesvektorprediktor og indretning til anvendelse deraf
US9025665B2 (en) 2011-07-01 2015-05-05 Cavium, Inc. Video encoder bit estimator for macroblock encoding
PL230821B1 (pl) 2011-10-17 2018-12-31 Kt Corp Sposób i urządzenie do kodowania/dekodowania obrazu
FI4002842T3 (fi) 2012-06-26 2023-11-02 Lg Electronics Inc Videodekoodausmenetelmä, videokoodausmenetelmä ja tallennusväline, joka tallentaa koodatun videoinformaation
KR102341826B1 (ko) 2012-07-02 2021-12-21 엘지전자 주식회사 영상 정보 코딩 방법 및 이를 이용하는 장치
CN103634606B (zh) * 2012-08-21 2015-04-08 腾讯科技(深圳)有限公司 视频编码方法和装置
US9210434B2 (en) 2013-06-12 2015-12-08 Microsoft Technology Licensing, Llc Screen map and standards-based progressive codec for screen content coding
US10200716B2 (en) 2015-06-25 2019-02-05 Sony Interactive Entertainment Inc. Parallel intra-prediction encoding/decoding process utilizing PIPCM and/or PIDC for selected sections
US20170034538A1 (en) * 2015-07-27 2017-02-02 Sony Computer Entertainment Inc. Encode/Decode Strategy for Mitigating Irregular Stream Decoding Time
AU2017201760B2 (en) * 2017-03-15 2023-03-09 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
US10931963B2 (en) 2017-12-07 2021-02-23 Tencent America LLC Method and apparatus for video coding

Family Cites Families (70)

* 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
JPS61205086A (ja) 1985-03-08 1986-09-11 Mitsubishi Electric Corp 画像符号化復号化装置
EP0207774B1 (en) 1985-07-02 1992-03-04 Matsushita Electric Industrial Co., Ltd. Block encoder
FR2599577B1 (fr) 1986-05-29 1988-08-05 Guichard Jacques Procede de codage par transformation pour la transmission de signaux d'image.
US4800432A (en) 1986-10-24 1989-01-24 The Grass Valley Group, Inc. Video Difference key generator
DE3704777C1 (de) 1987-02-16 1988-04-07 Ant Nachrichtentech Verfahren zum UEbertragen und zum Wiedergeben von Fernsehbildsequenzen
NL8700565A (nl) 1987-03-10 1988-10-03 Philips Nv Televisiesysteem waarin aan een transformatiekodering onderworpen gedigitaliseerde beeldsignalen worden overgebracht van een kodeerstation naar een dekodeerstation.
DE3855114D1 (de) 1987-05-06 1996-04-25 Philips Patentverwaltung System zur Übertragung von Videobildern
US5033105A (en) 1987-08-11 1991-07-16 Apple Computer Video compression algorithm
JPH07109990B2 (ja) 1989-04-27 1995-11-22 日本ビクター株式会社 適応型フレーム間予測符号化方法及び復号方法
JP2562499B2 (ja) 1989-05-29 1996-12-11 日本電信電話株式会社 高能率画像符号化装置およびその復号化装置
DE69031107T2 (de) 1989-10-14 1997-11-13 Sony Corp Anordnung und Verfahren zum Übertragen eines Videosignals
JPH03265290A (ja) 1990-03-14 1991-11-26 Toshiba Corp テレビジョン信号走査線変換器
US5091782A (en) 1990-04-09 1992-02-25 General Instrument Corporation Apparatus and method for adaptively compressing successive blocks of digital video
US5068724A (en) 1990-06-15 1991-11-26 General Instrument Corporation Adaptive motion compensation for digital television
DE4113505A1 (de) 1991-04-25 1992-10-29 Thomson Brandt Gmbh Verfahren zur bildsignalcodierung
JPH04334188A (ja) 1991-05-08 1992-11-20 Nec Corp 動画像信号の符号化方式
US5539466A (en) 1991-07-30 1996-07-23 Sony Corporation Efficient coding apparatus for picture signal and decoding apparatus therefor
JP2962012B2 (ja) 1991-11-08 1999-10-12 日本ビクター株式会社 動画像符号化装置及びその復号装置
US5510840A (en) 1991-12-27 1996-04-23 Sony Corporation Methods and devices for encoding and decoding frame signals and recording medium therefor
JP2524044B2 (ja) 1992-01-22 1996-08-14 松下電器産業株式会社 画像符号化方法及び画像符号化装置
KR0166716B1 (ko) 1992-06-18 1999-03-20 강진구 블럭 dpcm을 이용한 부호화/복호화방법 및 장치
US6226327B1 (en) 1992-06-29 2001-05-01 Sony Corporation Video coding method and apparatus which select between frame-based and field-based predictive modes
US6101313A (en) 1992-06-29 2000-08-08 Sony Corporation High efficiency encoding and decoding of picture signals and recording medium containing same
JP2510456B2 (ja) 1992-08-27 1996-06-26 三菱電機株式会社 画像符号化装置
US5982437A (en) 1992-10-26 1999-11-09 Sony Corporation Coding method and system, and decoding method and system
KR0166722B1 (ko) 1992-11-30 1999-03-20 윤종용 부호화 및 복호화방법 및 그 장치
US5544286A (en) 1993-01-29 1996-08-06 Microsoft Corporation Digital video data compression technique
PT1098529E (pt) 1993-03-24 2013-11-25 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
US5448297A (en) 1993-06-16 1995-09-05 Intel Corporation Method and system for encoding images using skip blocks
US5796438A (en) 1994-07-05 1998-08-18 Sony Corporation Methods and apparatus for interpolating picture information
US5552832A (en) 1994-10-26 1996-09-03 Intel Corporation Run-length encoding sequence for video signals
EP0710033A3 (en) 1994-10-28 1999-06-09 Matsushita Electric Industrial Co., Ltd. MPEG video decoder having a high bandwidth memory
JP2951861B2 (ja) 1994-12-28 1999-09-20 シャープ株式会社 画像符号化装置及び画像復号装置
US5864711A (en) 1995-07-05 1999-01-26 Microsoft Corporation System for determining more accurate translation between first and second translator, and providing translated data to second computer if first translator is more accurate
US6208761B1 (en) 1995-07-11 2001-03-27 Telefonaktiebolaget Lm Ericsson (Publ) Video coding
US5764807A (en) 1995-09-14 1998-06-09 Primacomp, Inc. Data compression using set partitioning in hierarchical trees
US6307967B1 (en) 1995-09-29 2001-10-23 Kabushiki Kaisha Toshiba Video coding and video decoding apparatus
US5883678A (en) 1995-09-29 1999-03-16 Kabushiki Kaisha Toshiba Video coding and video decoding apparatus for reducing an alpha-map signal at a controlled reduction ratio
US5825929A (en) 1995-10-05 1998-10-20 Microsoft Corporation Transformation block optimization method
US5764814A (en) 1996-03-22 1998-06-09 Microsoft Corporation Representation and encoding of general arbitrary shapes
DE19637522A1 (de) 1996-09-13 1998-03-19 Bosch Gmbh Robert Verfahren zur Reduzierung von Daten in Videosignalen
US5748789A (en) 1996-10-31 1998-05-05 Microsoft Corporation Transparent block skipping in object-based video coding systems
AU5577398A (en) 1997-02-14 1998-09-08 Nippon Telegraph & Telephone Corporation Predictive coding method and decoding method for dynamic image
US5974184A (en) 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
US6259810B1 (en) 1997-04-15 2001-07-10 Microsoft Corporation Method and system of decoding compressed image data
US6064771A (en) * 1997-06-23 2000-05-16 Real-Time Geometry Corp. System and method for asynchronous, adaptive moving picture compression, and decompression
JP3662129B2 (ja) 1997-11-11 2005-06-22 松下電器産業株式会社 マルチメディア情報編集装置
KR100252108B1 (ko) 1997-12-20 2000-04-15 윤종용 Mpeg 압축부호화 및 복호화기를 채용한 디지털 기록 재생장치 및 그 방법
US5946043A (en) 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
JP3888597B2 (ja) 1998-06-24 2007-03-07 日本ビクター株式会社 動き補償符号化装置、及び動き補償符号化復号化方法
US6275531B1 (en) 1998-07-23 2001-08-14 Optivision, Inc. Scalable video coding method and apparatus
US6573905B1 (en) 1999-11-09 2003-06-03 Broadcom Corporation Video and graphics system with parallel processing of graphics windows
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
JP2000278692A (ja) 1999-03-25 2000-10-06 Victor Co Of Japan Ltd 圧縮データ処理方法及び処理装置並びに記録再生システム
KR100796085B1 (ko) 2000-04-14 2008-01-21 소니 가부시끼 가이샤 복호 장치, 복호 방법, 및 기록 매체
TW527832B (en) 2000-04-20 2003-04-11 Matsushita Electric Ind Co Ltd Video encoding apparatus that adjusts code amount by skipping encoding of image data
CN1322759C (zh) 2000-04-27 2007-06-20 三菱电机株式会社 编码装置和编码方法
JP3669281B2 (ja) * 2000-04-27 2005-07-06 三菱電機株式会社 符号化装置および符号化方法
US6614442B1 (en) 2000-06-26 2003-09-02 S3 Graphics Co., Ltd. Macroblock tiling format for motion compensation
KR100353851B1 (ko) 2000-07-07 2002-09-28 한국전자통신연구원 파문 스캔 장치 및 그 방법과 그를 이용한 영상코딩/디코딩 장치 및 그 방법
WO2002062074A1 (en) 2001-01-22 2002-08-08 Webcast Technologies, Inc. Video encoding and decoding techniques and apparatus
US7110452B2 (en) 2001-03-05 2006-09-19 Intervideo, Inc. Systems and methods for detecting scene changes in a video data stream
CN100452883C (zh) * 2001-12-17 2009-01-14 微软公司 处理视频图像的方法
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
US6798364B2 (en) 2002-02-05 2004-09-28 Intel Corporation Method and apparatus for variable length coding
US7072394B2 (en) 2002-08-27 2006-07-04 National Chiao Tung University Architecture and method for fine granularity scalable video coding
WO2004038921A2 (en) 2002-10-23 2004-05-06 Divxnetworks, Inc. Method and system for supercompression of compressed digital video
JP4093405B2 (ja) 2002-10-25 2008-06-04 株式会社リコー 画像処理装置、プログラム及び記憶媒体
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding

Also Published As

Publication number Publication date
EP1665761A2 (en) 2006-06-07
MXPA06002496A (es) 2006-06-20
WO2005027494A3 (en) 2006-04-13
JP2007504759A (ja) 2007-03-01
KR101087400B1 (ko) 2011-11-25
ES2767932T3 (es) 2020-06-19
EP1665761B1 (en) 2019-11-27
KR20060131720A (ko) 2006-12-20
JP5048146B2 (ja) 2012-10-17
EP1665761A4 (en) 2011-10-05
US20050053296A1 (en) 2005-03-10
US7092576B2 (en) 2006-08-15
WO2005027494A2 (en) 2005-03-24
HK1119336A1 (en) 2009-02-27
JP2011139547A (ja) 2011-07-14

Similar Documents

Publication Publication Date Title
JP5048146B2 (ja) Ac予測状態情報のためのビットプレーンコーディングおよびデコーディング
US10567753B2 (en) Skip macroblock coding
US7099515B2 (en) Bitplane coding and decoding for AC prediction status information
JP4921971B2 (ja) インターレース・ビデオおよびプログレッシブ・ビデオのマクロブロックおよび動き情報の符号化および復号における新機軸

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101015

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110117

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110124

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110215

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110315

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110610

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110908

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110915

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111011

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111018

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111110

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111212

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120531

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20120601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120601

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120621

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

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

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

Free format text: PAYMENT UNTIL: 20150727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5049009

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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