JP2011509642A - Cabacコーダのためのレート歪みモデリングに基づいた量子化 - Google Patents

Cabacコーダのためのレート歪みモデリングに基づいた量子化 Download PDF

Info

Publication number
JP2011509642A
JP2011509642A JP2010542348A JP2010542348A JP2011509642A JP 2011509642 A JP2011509642 A JP 2011509642A JP 2010542348 A JP2010542348 A JP 2010542348A JP 2010542348 A JP2010542348 A JP 2010542348A JP 2011509642 A JP2011509642 A JP 2011509642A
Authority
JP
Japan
Prior art keywords
coefficients
value
quantized coefficients
video block
coefficient
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
JP2010542348A
Other languages
English (en)
Other versions
JP5290325B2 (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2011509642A publication Critical patent/JP2011509642A/ja
Application granted granted Critical
Publication of JP5290325B2 publication Critical patent/JP5290325B2/ja
Expired - Fee Related 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/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/124Quantisation
    • 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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/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/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/19Methods 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 using optimisation based on Lagrange multipliers
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本開示は、コンテキストベースの適応バイナリ算術符号化(CABAC)をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するための技術を説明する。方法は、ビデオブロックのための量子化係数の複数のセットを生成することと、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のものはビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される;CABACを介してビデオブロックをコード化することと関連づけられた複数のコストを推定することと、なお、その推定されたコストは、量子化係数のセットのうちの異なるものにそれぞれ基づいている;最低コストと関連づけられた量子化係数のセットのうちの所定の1つを選択することと;を備えることができる。

Description

関連出願
本願は、2008年1月8日に出願された米国仮特許番号第61/019,830号、及び2008年2月21日に出願された米国仮特許番号第61/030,454号の利益を主張しており、それらの両方の全体の内容は、参照によってここにおいて組み込まれている。
本開示は、デジタルビデオコーディング(digital video coding)に関し、より具体的には、コンテキストベースの適応バイナリ算術符号化(context-based adaptive binary arithmetic coding)(CABAC)をサポートするビデオコーディングプロセスのための量子化技術に関する。
背景
デジタルビデオ機能は、広範囲のデバイスに組み込まれることができ、デジタルテレビ、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDAs)、ラップトップあるいはデスクトップコンピュータ、デジタルカメラ、デジタルレコーディングデバイス、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラあるいは衛星無線電話、及び同様なもの、を含む。デジタルビデオデバイスは、より効率的に、デジタルビデオ情報を送信し受信するために、MPEG−2、MPEG−4、あるいはITU−T H.264/MPEG−4 パート10 アドバンスドビデオコーディング(AVC)のようなビデオ圧縮技術をインプリメントする。ビデオ圧縮技術は、ビデオシーケンスに内在の冗長性を縮らすあるいは取り除くために、空間予測及び一時的な予測を実行する。
イントラコーディング(Intra-coding)は、ビデオフレーム、ビデオフレームのスライス(a slice of a video frame)、ピクチャのグループ(a group of pictures)を備えている与えられたコード化されたユニット(a given coded unit)、あるいは、ビデオブロックの別の定義されたユニット(another defined unit of video blocks)内の、ビデオブロック間の空間的冗長性を減らすあるいは取り除くために、空間予測に依存する。対照的に、インターコーディング(inter-coding)は、ビデオシーケンスの連続コード化されたユニット(successive coded units)のビデオブロック間の一時的な冗長性を減らすあるいは取り除くために、一時的な予測に依存する。イントラコーディングの場合、ビデオエンコーダは、同じコード化されたユニット内の他のデータに基づいて、データを圧縮するために、空間予測を実行する。インターコーディングの場合、ビデオエンコーダは、2以上の隣接しているコード化されたユニットの対応するビデオブロックの動きをトラッキングするために、動き推定及び動き補償を実行する。
コード化されたビデオブロックは、予測ブロックを作成するあるいは識別するために使用されることができる予測情報によって表されることができ、データの残差ブロックは、コード化されているブロックと予測ブロックとの間の差異(differences)を示す。インターコーディングの場合、1つまたは複数の動きベクトルがデータの予測ブロックを識別するために使用されているが、イントラコーディングの場合、予測モードは、予測ブロックを生成するために使用されることができる。イントラコーディングとインターコーディングの両方は、異なるブロックサイズ及び/またはコーディングにおいて使用される予測技術を定義することができる、いくつかの異なる予測モードを定義することができる。さらなるタイプのシンタクスエレメントはまた、コーディング技術あるいはコーディングプロセスで使用されるパラメータを制御するあるいは定義するために、エンコードされたビデオデータの一部として含まれることができる。
ブロックベースの予測コーディングの後で、ビデオエンコーダは、残差ブロックの通信と関連づけられたビットレートをさらに減らすために、変換、量子化、及びエントロピー符号化のプロセスを適用することができる。変換技術は、離散コサイン変換あるいは概念的に同様なプロセスを備えることができる。あるいは、ウェーブレット変換(wavelet transforms)、整数変換、あるいは他のタイプの変換が使用されることができる。離散コサイン変換(DCT)プロセスでは、一例として、変換プロセスは、1セットのピクセル値を変換係数へと変換し、そしてそれは、周波数ドメインにおいてピクセル値のエネルギーを表わすことができる。量子化は変換係数に適用され、与えられた変換係数と関連づけられたビットの数を制限するプロセスを一般的に含む。エントロピー符号化(Entropy coding)は、1シーケンスの量子化変換係数を集約的に圧縮する、1つまたは複数のプロセスを備えることができる。
コンテキストベースの適応性のあるバイナリコーディング(CABAC)は、ITU−T H.264/MPEG4、AVC標準規格のような、いくつかのコードディング標準規格において現在サポートされる、1つのタイプのエントロピー符号化技術である。CABACは、2値化(binarization)、コンテキストモデル選択(context model selection)、及びバイナリ算術符号化(binary arithmetic coding)を含んでいる、いくつかのステージを含むことができる。2値化では、いずれのノンバイナリシンボルも、バイナリシーケンス(時々、ビン・ストリング(a bin string)と呼ばれる)にマッピングされる。コンテキストモデリングでは、モデル確率分布は、コード化されているエレメント(例、シンボル)に割り当てられる。そのあと、後続のバイナリ算術符号化ステージにおいて、その割り当てられた確率分布は、割当てられたモデル確率分布にしたがってコード化されているエレメントのコード化された表示を形成する1シーケンスのビットを生成するために、コーディングを実行するために使用される。
CABACプロセスは、与えられたコンテキストにおいてエレメントの確率を知ることによって、ビデオストリームを定義するエレメントを無損失で(losslessly)圧縮することができる。CABACは、一般的に、コンテンツ適応可変長符号化(content adaptive variable length coding)(CAVLC)技術のような他のエントロピー符号化技術よりも、より効率的にデータを圧縮するが、デコーダサイド上で比較的より複雑な処理を必要とする可能性がある。ITU H.264/AVC設定におけるCABACは、次の刊行物:ビデオ技術のための回路及びシステムに関するIEEE翻訳で、第13巻第7号で2003年7月に発行された、Detlev Marpe、Heiko Schwarz、そしてThomas Wiegand著の「H.264/AVCビデオ圧縮標準規格におけるコンテキストベースの適応バイナリ符号化(Context-based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard)」でより詳細に説明されている。
一般的に、コンテキストベースの適応性のあるバイナリ算術符号化(CABAC)をサポートするビデオコーディングプロセスのために、ビデオブロックの係数を量子化することに使用されることができる、量子化技術を、本開示は説明する。その説明された技術は、量子化プロセスの間にCABACステップのうちのいくつかを実行する及び/または推定することによって、量子化プロセスの間のCABAC(CABAC during the quantization process)を説明することができる。本技術は、ビデオコーディングの量子化ステップにおける歪みとコーディングレートとの間で、望ましいバランスを達成するために使用されることができる。本技術によれば、CABACを介してビデオブロックをコード化することと関連づけられた複数のコスト(a plurality of costs)は、量子化係数の異なるセットについて推定されることができる。そのあとで、最低コスト(a lowest cost)と関連づけられた、量子化係数のセット(sets of quantized coefficients)は、量子化係数を定義するために選択されることができる。
一例では、本開示は、CABACをサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化する方法を提供する。その方法は、ビデオブロックのための量子化係数の複数のセット(a plurality of sets of quantized coefficients)を生成することと、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のもの(a particular one)はビデオブロックの最後の非ゼロ係数(a last non-zero coefficient)に対応するという仮定に基づいて定義される;CABACを介してビデオブロックをコード化することと関連づけられた複数のコストを推定することと、なお、その推定されたコストは、量子化係数のセットのうちの異なるもの(different ones)にそれぞれ基づいている;コストのうちの最低のものと関連づけられた量子化係数のセットのうちの所定の1つ(a given one)を選択することと;を備えている。
別の例では、本開示は、CABACをサポートするビデオコーディングプロセスのために、ビデオブロックの係数を量子化するように構成された装置(apparatus)を提供する。装置は、ビデオブロックのための量子化係数の複数のセットを生成し、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のものはビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される;CABACを介してビデオブロックをコード化することと関連づけられた複数のコストを推定し、なお、その推定されたコストは、量子化係数のセットのうちの異なるものにそれぞれ基づいている;最低コストと関連づけられた量子化係数のセットのうちの所定の1つを選択する;量子化ユニット(quantization unit)を備えている。
別の例では、本開示は、CABACをサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するデバイス(device)を提供しており、そのデバイスは、ビデオブロックのための量子化係数の複数のセットを生成するための手段、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のものはビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される;CABACを介してビデオブロックをコード化することと関連づけられた複数のコストを推定するための手段と、なお、その推定されたコストは、量子化係数のセットのうちの異なるものにそれぞれ基づいている;最低コストと関連づけられた量子化係数のセットのうちの所定の1つを選択するための手段と;を備えている。
別の例では、本開示は、コンテキストベースの適応バイナリ算術符号化(CABAC)をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するように構成されたデバイスを提供しており、そのデバイスは、コーディングユニットと送信機を備えており、そのコーディングユニットは、量子化ユニットとCABACユニットを含んでいる。その量子化ユニットは、ビデオブロックのための量子化係数の複数のセットを計算し、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のものはビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される;CABACを介してビデオブロックをコード化することと関連づけられた複数のコストを推定し、なお、その推定されたコストは、量子化係数のセットのうちの異なるものにそれぞれ基づいている;最低コストと関連づけられた量子化係数のセットのうちの所定の1つを選択し;量子化係数のセットのうちの所定の1つを出力する。CABACユニットは、量子化係数のセットのうちの所定の1つを受信し、量子化係数のセットのうちの所定の1つをビットストリームへとエントロピーコード化するために、量子化係数のセットのうちの所定の1つに関してCABACを実行し、ビットストリームを出力し、送信機は、ビットストリームを送信する。
本開示で説明された技術は、ハードウェア、ソフトウェア、ファームウェア、あるいはそれらのいずれの組み合わせ、でインプリメントされることができる。ソフトウェアでインプリメントされる場合には、ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array)(FPGA)、あるいはデジタルシグナルプロセッサ(digital signal processor )(DSP)、のような1つまたは複数のプロセッサで実行されることができる。本技術を実行するソフトウェアは、コンピュータ可読媒体(computer-readable medium)において最初に保存され、そして、プロセッサで、ロードされ、実行されることができる。
したがって、本開示はまた、実施のときに、CABACをサポートするビデオコーディングプロセスにおいてビデオブロックの係数をデバイスに量子化させる命令を備えているコンピュータ可読媒体を企図しており、その命令は、デバイスに、ビデオブロックのための量子化係数の複数のセットをデバイスに生成させ、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のものはビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される;CABACを介してビデオブロックをコード化することと関連づけられた複数のコストを推定させ、なお、その推定されたコストは、量子化係数のセットのうちの異なるものにそれぞれ基づいている;最低コストと関連づけられた量子化係数のセットのうちの所定の1つを選択させる。
本開示の1つまたは複数の態様の詳細は、添付図面と下記の説明の中で記載されている。本開示で説明された技術の他の特徴、目的及び利益は、説明と図面から、また特許請求の範囲から、明らかであろう。
図1は、ビデオコーディング及びデコーディングのシステムを説明する例示的なブロック図である。 図2は、本開示と一致したビデオエンコーダの例を図示するブロック図である。 図3は、4X4エレメントのビデオブロックのジグザグスキャンを図示する概念図である。 図4は、本開示と一致したビデオデコーダの例を図示するブロック図である。 図5−10は、本開示と一致した技術を説明しているフロー図である。 図5−10は、本開示と一致した技術を説明しているフロー図である。 図5−10は、本開示と一致した技術を説明しているフロー図である。 図5−10は、本開示と一致した技術を説明しているフロー図である。 図5−10は、本開示と一致した技術を説明しているフロー図である。 図5−10は、本開示と一致した技術を説明しているフロー図である。
詳細な説明
図1は、本開示の技術をインプリメントすることができる、1つの例示的なビデオコーディング及びデコーディングのシステム10を説明するブロック図である。図1で示されているように、システム10は、通信チャネル15を介して、デスティネーションデバイス(destination device)16に対して、エンコードされたビデオを送信する、ソースデバイス12を含む。ソースデバイス12及びデスティネーションデバイス16は、いずれの広範囲なデバイスを備えることができる。ある場合では、ソースデバイス12及びデスティネーションデバイス16は、いわゆるセルラあるいは衛星無線電話と呼ばれる、無線ハンドセットのような無線通信デバイス、あるいは、通信チャネル15上でビデオ情報を通信することができるいずれの無線デバイス、を備えており、その場合には、通信チャネル15はワイヤレスである。しかしながら、量子化に関する本開示の技術は、必ずしも無線アプリケーションあるいは設定に限定されていない。
図1の例では、ソースデバイス12は、ビデオソース20、ビデオエンコーダ22、モジュレータ/デモジュレータ(モデム)23、及び送信機24を含むことができる。デスティネーションデバイス16は、受信機26、モデム27、ビデオデコーダ28、及びディスプレイデバイス30を含むことができる。本開示にしたがって、ソースデバイス12のビデオエンコーダ22は、コンテキスト適応バイナリ算術符号化(CABAC)の影響を考慮に入れる量子化技術を適用するように構成されることができる。このように、ソースデバイス12は、望ましいレベルの量子化を達成することができ、それによってコーディングプロセスを改善する。
図1の図示されたシステム10は、単なる例示である。本開示の量子化技術は、CABACをサポートするいずれのコーディングデバイスによって実行されることができる。ソースデバイス12は、そのようなコーディングデバイスの単なる1つの例である。本開示の量子化技術は、エントロピー符号化のためにCABACをサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化することを含むことができる。この場合には、ビデオコーダ22は、ビデオブロックのための量子化係数の複数のセットを生成することができ、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のものはビデオブロックの最後の非ゼロ係数に対応するという想定に基づいて定義される。最後の非ゼロ係数は、例えばジグザグスキャンのような、使用されるスキャン順序(scanning order)に依存することができる。ビデオコーダ22は、CABACを介してビデオブロックをコード化することと関連づけられた複数のコストを推定することができ、ここでは、その推定されたコストは量子化係数のセットのうちの異なるものにそれぞれ基づいており、そして、最低コストと関連づけられた量子化係数のセットのうちの所定の1つを選択することができる。このアプローチは、推定されたコストが、ビデオブロックの最後の非ゼロ係数であるものとして異なる係数を考慮する単独パスにおいて量子化係数のうちの異なるセットのそれぞれについて生成されている限り、1パスアプローチ(one-pass approach)と呼ばれることができる。
代替的に、本開示の量子化技術は、2パスアプローチ(two-pass approach)に従うことができる。この場合には、本技術は、第1パスにおいてビデオブロックの最後の非ゼロ係数を推定することと、その推定された最後の非ゼロ係数は実際にはビデオブロックの最後の非ゼロ係数であるという仮定に基づいて第2パスにおいてビデオブロックのための量子化係数のセットを生成することと、を含むことができる。本開示は、組み合わせられた1パスアプローチと、2パスアプローチと、の両方を提案する。組み合わせられた1パスアプローチでは、すべての可能ある係数は、最後の非ゼロ係数であると考えられることができ、多くの可能ある量子化係数のセットは、最後の非ゼロ係数である異なる係数のために生成されることができる。しかしながら、2パスアプローチでは、推定技術は、最後の非ゼロ係数を推定するために使用されており、量子化係数のセットは、推定された最後の非ゼロ係数が最後の非ゼロ係数として固定される単一の場合にのみ、生成され考慮されうる。組み合わせられた1パスアプローチは、1パスアプローチよりもコンピュータ上負荷が大きい可能性があるが(may be more computationally intensive)、いくつかの場合ではより正確な結果をもたらす可能性がある。様々なさらなる技術は、1パスアプローチのコンピュータ的な複雑さ(computational complexity)を縮らすために使用されることができる。2パスアプローチは、1パスアプローチと比べて複雑さを著しく減らすことができ、多くの場合には、2パスアプローチにおけるコーディング品質(coding quality)の縮小は、1パスアプローチと比べてごくわずかでありうる。
一般に、ソースデバイス12は、デスティネーションデバイス16への送信のために、コード化されたビデオデータを生成する。しかしながら、ある場合では、デバイス12及び16は、実体的に対称な方法で動作することができる。例えば、デバイス12及び16のそれぞれは、ビデオコーディングコンポーネント及びデコーディングコンポーネントを含むことができる。したがって、システム10は、ビデオデバイス12、16間の1方向あるいは双方向の送信、例えばビデオストリーミング、ビデオプレイバック、ビデオブロードキャスティング、あるいはビデオ電話、をサポートすることができる。
ソースデバイス12のビデオソース20は、ビデオキャプチャデバイス、例えば、ビデオカメラ、前にキャプチャされたビデオを含んでいるビデオアーカイブ(video archive containing previously captured video)、あるいは、ビデオコンテンツプロバイダからのビデオフィード(video feed from a video content provider)、を含むことができる。さらなる代替として、ビデオソース20は、ソースビデオ、あるいは、ライブビデオ、アーカイブに保管されたビデオ、及びコンピュータ生成ビデオの組み合わせとして、コンピュータグラフィクスベースのデータを生成することができる。ある場合では、ビデオソース20がビデオカメラである場合、ソースデバイス12及びデスティネーションデバイス16は、いわゆるカメラ電話(camera phones)あるいはテレビ電話(video phones)を形成することができる。各場合では、キャプチャされた、予めキャプチャされた、あるいは、コンピュータ生成された、ビデオは、ビデオエンコーダ22によってエンコードされることができる。そのエンコードされたビデオ情報は、符号分割多元接続(CDMA)あるいは別の通信標準規格のような通信標準規格にしたがってモデム23によって変調され、送信機24を介してディスティネーションデバイス16に対して送信されることができる。モデム23は、様々なミキサ、フィルタ、増幅器、あるいは信号変調のために設計された他のコンポーネント、を含むことができる。送信機24は、増幅器、フィルタ、及び1つまたは複数のアンテナ、を含んでいるデータを送信するために設計された回路、を含むことができる。
デスティネーションデバイス16の受信機26は、チャネル15上で情報を受信し、モデム27は、情報を復調する。再び、ビデオエンコーディングプロセスは、量子化プロセスを改善するために、ここで説明された技術をインプリメントすることができる。ビデオデコーダ28によって実行されたビデオデコーディングプロセスは、ビデオシーケンスを再構築することにおいて、逆量子化を実行することができる。ディスプレイデバイス28は、ユーザーに対して、デコードされたビデオデータをディスプレイし、陰極線管(a cathode ray tube)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)(an organic light emitting diode)ディスプレイ、あるいは、別のタイプのディスプレイデバイス、のような様々なディスプレイデバイスのうちいずれかを備えることができる。
図1の例では、通信チャネル15は、例えば無線周波数(RF)スペクトラムあるいは1つまたは複数の物理送信ラインあるいは無線及び有線のメディアのいずれの組み合わせ、のようないずれの無線あるいは有線の通信媒体を備えることができる。通信チャネル15は、ローカルエリアネットワーク、広域ネットワーク、あるいはインターネットのようなグローバネットワークのようなパケットベースネットワークの一部を形成することができる。通信チャネル15は、ソースデバイス12からデスティネーションデバイス16までビデオデータを送信するための、いずれの適切な通信媒体、あるいは、異なる通信媒体の集まり、を一般的に表わす。
ビデオエンコーダ22及びビデオデコーダ28は、ITU−T H.264標準規格のようなCABAC、あるいはMPEG−4、Part10、アドバンスドビデオコーディング(AVC)(Advanced Video Coding)と説明される、をサポートするビデオ圧縮技術にしたがって動作することができる。図1に図示されていないが、いくつかの態様では、ビデオエンコーダ22及びビデオデコーダ28はそれぞれ、オーディオエンコーダ及びデコーダで統合されることができ、共通のデータストリームあるいは個別のデータストリームにおいて両方のオーディオ及びビデオのエンコーディングを扱う、適切なMUX−DEMUXユニット、あるいは、他のハードウェア及びソフトウェアを含むことができる。適用可能である場合には、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、あるいはユーザデータグラムプロトコル(UDP)のような他のプロトコルに合わせることができる。
ITU−T H.264/MPEG−4(AVC)標準規格は、Joint Video Team(JVT)として知られる集約的パートナーシップのプロダクトとして、ISO/IEC Moving Picture Experts Group(MPEG)と一緒にITU−T Video Coding Experts Group(VCEG)によって公式化された。いくつかの態様では、本開示で説明された技術は、H.264標準規格に一般的に合わせるデバイスに適用されることができる。H.264標準規格は、2005年3月付けの、ITU−Tスタディグループによる、ITU−T推奨H.264、一般的なオーディオビジュアルサービスのためのアドバンスドビデオコーディング、で説明されており、H.264標準規格あるいはH.264仕様、あるいは、H.264/AVC標準規格あるいは仕様としてここでは指されることができる。ジョイントビデオチーム(JVT)は、H.264/MPEG−4 AVCに対する拡張に取り組むことを続ける。
ビデオエンコーダ22及びビデオデコーダ28は、それぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSPs)、特定用途向け集積回路(ASICs)、フィールドプログラム可能なゲートアレイ(FPGAs)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、あるいはそれらの任意の組み合わせとしてインプリメントされることができる。ビデオエンコーダ22及びビデオデコーダ28のそれぞれは、1つまたは複数のエンコーダあるいはデコーダに含まれてもよく、それらのいずれかは、個別のモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバ、あるいは同様なものにおいて、組み合わせられたエンコーダ/デコーダ(CODEC)の一部として組み込まれることができる。
ビデオシーケンスは、一般的には一連のビデオフレームを含む。ビデオコーダ22は、ビデオデータをエンコードするために、個々のビデオフレーム(individual video frames)内のビデオブロック上で動作する。ビデオブロックは、固定されたあるいは変動するサイズを有してもよく、指定されたコーディング基準にしたがって、サイズが異なってもよい。各ビデオフレームは、一連のスライス(a series of slices)を含む。各スライスは、一連のマクロブロックを含むことができ、そしてそれは、サブブロックへと配列される(arranged)ことができる。一例として、ITU−T H.264標準規格は、様々なブロックサイズにおけるイントラ予測、例えば輝度コンポーネントについては16×16、8×8、あるいは4×4、色度コンポーネントについては8×8、をサポートし、さらに様々なブロックサイズにおけるインター予測、例えば、輝度コンポーネントについては16×16、16×8、8×16、8×8、8×4、4×8、4×4、色度コンポーネントについては、対応するスケーリングされたサイズ、をサポートする。ビデオブロックは、例えば、離散コサイン変換あるいは概念的に同様な変換プロセスのような変換プロセスにしたがって、ピクセルデータのブロック、あるいは、変換係数のブロック、を備えることができる。本開示の量子化技術は、一般的に、変換されたビデオブロックの変換係数に適用する。
より小さなビデオブロックは、よりよい解像度を提供することができ、そして、高レベルの詳細(high levels of detail)を含むビデオフレームのロケーションに使用されることができる。一般的に、マクロブロック(MBs)及び様々なサブブロックは、ビデオブロックであると考えられることができる。さらに、スライスは、MBs及び/またはサブブロックのような一連のビデオブロックであると考えられることができる。各スライスは、ビデオフレームの独立デコード可能ユニット(an independently decodable unit)であってもよい。予測の後で、変換は、8×8残差ブロックあるいは4×4残差ブロック上で実行されることができ、追加変換は、intra_16x16予測モードが使用される場合には色度コンポーネントあるいは輝度コンポーネントについての4×4ブロックのDC係数に適用されうる。再び、変換にしたがって、データは、ビデオブロック、すなわち変換係数のブロック、であると呼ばれることができる。用語「係数(coefficients)」は、変換係数を一般的に指すが、代替的に、他のタイプの係数あるいは値、例えばピクセル値、あるいは別のタイプの係数を指すことができる。
イントラあるいはインターベースの予測符号化及び変換技術(例えば、H.264/AVCで使用される4x4あるいは8x8整数変換、あるいは、離散コサイン変換DCT)にしたがって、量子化は、実行されることができる。量子化は、下記でより詳細に説明されているが、係数を表すために使用されるデータの量を出来る限り減らすために係数が量子化されるプロセスを一般的に指す。量子化プロセスは、係数のうちのいくつかあるいはすべてと関連づけられたビット深さを縮小することができる。例えば、8ビット値は、量子化の間に、7ビット値に丸められることができる。本開示の量子化技術は、CABACが実行されるという事実を説明する。
具体的には、下記の量子化、すなわちエントロピー符号化は、CABAC方法にしたがって実行されることができる。本開示は、歪み及びレートの望ましいバランスを達成することができる方法で、ビデオブロックの係数の量子化のための技術を提供する。説明された技術は、量子化を改善し、かつ、例えば通信レートのための与えられたビットバジェットで品質の望ましいレベル、を達成するために、CABACの推定をインプリメントする。
本開示の技術によれば、ビデオコーダ22は、ビデオブロックのための量子化係数の複数のセットを生成することができ、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数のうちの特定のものはビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される。ビデオエンコーダ22は、CABACを介してビデオブロックをコード化することと関連づけられた複数のコストを推定することができ、その推定されたコストは、量子化係数のセットのうちの異なるものにそれぞれ基づいており、そして、最低コストと関連づけられた量子化係数のセットのうちの所定の1つを選択する。ビデオエンコーダ22は、ビデオブロックの量子化のために量子化係数のうち選択されたセットを使用することが出来る。このアプローチは1パスアプローチと呼ばれる。
あるいは、本開示の量子化技術は、2パスアプローチに従うことができる。この場合では、ビデオエンコーダ22は、第1パスにおいてビデオブロックの最後の非ゼロ係数を推定し、そして、その推定された非ゼロ係数が実際にビデオブロックの最後の非ゼロ係数であるという想定に基づいて、第2パスにおいてビデオブロックについての量子化係数のセットを生成することができる。2パスアプローチでは、推定技術は、最後の非ゼロ係数を推定するために使用され、量子化係数のセットは、その推定された最後の非ゼロ係数が実際に最後の非ゼロ係数である場合についてのみを考慮されることができる。個別の推定パスは、最後の非ゼロ係数として正しい係数を有さない量子化係数のセットと関連づけられたコンピューテーションを実行する必要を除去することができる。
図2は、本開示と一致する残差係数の量子化を実行する、レート歪み(RD)量子化ユニット40を含んでいるビデオコーダ50の例を図示するブロック図である。ビデオエンコーダ50は、デバイス20のビデオエンコーダ22、あるいは異なるデバイスのビデオエンコーダに対応することができる。ビデオエンコーダ50は、ビデオフレーム内で、ブロックのイントラコーディング及びインターコーディングを実行することができる。イントラコーディングは、与えられたビデオフレーム内のビデオにおける空間冗長性を減らすあるいは取り除くために、空間予測に依存する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオにおける一時的な冗長性を縮小するあるいは取り除くために、一時的な予測に依存する。インターコーディングについては、ビデオエンコーダ50は、2以上の隣接フレーム間のビデオブロックを整合する動きをトラッキングする、動き推定を実行する。イントラモード(I−モード)は、空間ベースの圧縮モードを指すことができ、予測(P−モード)あるいは双方向(B−モード)のようなインターモードは、一時的ベースの圧縮モードを指すことができる。
図2で示されるように、ビデオエンコーダ50は、エンコードされる予定であるビデオフレーム内で現在のビデオブロックを受信する。図2の例では、ビデオエンコーダ50は予測ユニット32、参照フレームストア34、ブロック変換ユニット38、RD量子化ユニット40、逆量子化ユニット42、逆変換ユニット44、及びCABACコーディングユニット46、を含む。デブロッキングフィルタ(図示されず)もまた、ブロックノイズ副作用(blockiness artifacts)を取り除く、ブロック境界をフィルタにかけるために含まれることができる。ビデオエンコーダ50はまた、加算器48と加算器51を含む。予測ユニット32は、一般的に、イントラ予測ユニット及び/またはインター予測ユニットを表わす。
エンコーディングプロセスの間に、ビデオエンコーダ50は、コード化されるべきビデオブロックを受信し、予測ユニット32は、予測符号化技術を実行する。インターコーディングについては、予測ユニット32は、予測ブロックを定義するために、1つまたは複数のビデオ参照フレームあるいはスライスにおいて様々なブロックにエンコードされるビデオブロックを比較する。イントラコーディングについては、予測ユニット32は、同じコード化されたユニット内の近隣データに基づいて予測ブロックを生成する。予測ユニット32は、予測ブロックを出力し、加算器48は、残差ブロックを生成するためにコード化されているビデオブロックから予測ブロックを差し引く。
インターコーディングについては、予測ユニット32は、予測ブロックを指摘しそして動きベクトルに基づいて予測ブロックを生成する動きベクトル、を識別する動き推定及び動き補償ユニットを備えることができる。一般的には、動き推定は、動きを推定する動きベクトルを生成するプロセスと考えられる。例えば、動きベクトルは、現在のフレーム内でコード化されている現在のブロックと関連する予測フレーム内の予測ブロックの置換(displacement)を示すことができる。動き補償は、動き推定によって決定される動きベクトルに基づいて予測ブロックをフェッチするあるいは生成するプロセスと典型的に考えられる。述べられているように、イントラコーディングについては、予測ユニット32は、同じコード化されたユニット内の近隣データに基づいて、予測ブロックを生成する。1つまたは複数のイントラ予測モードは、どのようにイントラ予測ブロックが定義されることができるかを定義することができる。
ビデオエンコーダ50は、コード化されているオリジナルビデオブロックから予測ユニット32によって生成された予測ビデオブロックを差し引くことにより、残差ビデオブロックを形成する。加算器48は、この減算オペレーションを実行する。変換ユニット38は、残差ブロックに対して、変換、例えば離散コサイン変換(DCT)あるいは概念的に同様な変換、を適用し、残差変換ブロック係数を備えているビデオブロックを生成する。例えば、変換ユニット38は、DCTと概念的に同じである、H.264標準規格によって定義される他の変換を実行してもよい。ウェーブレット変換、整数変換、サブバンド変換、あるいは他のタイプの変換もまた使用されることができる。いずれの場合においても、変換ユニット38は、残差ブロックに対して変換を適用し、残差変換係数のブロックを生成する。変換は、残差情報を、ピクセルドメインから周波数ドメインに変換することができる。
RD量子化ユニット40(ここでは「量子化ユニット40」とも呼ばれる)は、ビットレートをさらに減らすために、残差変換係数を量子化する。具体的には、量子化ユニット40は、CABACユニット46によって実行されるCABAC符号化を説明するために、下記でより詳細に説明される量子化技術の1つまたは複数を実行する。このように、量子化ユニット40は、レート歪みモデルをインプリメントし、例えば与えられたレートあるいはビットバジェット(bit budget)について望ましい数のビットを達成する、量子化の望ましいレベルを達成することができる。
量子化の後で、CABACユニット46は、データをさらに圧縮するためにCABAC方法にしたがって量子化変換係数をエントロピーコード化する。CABACユニット46によるエントロピー符号化にしたがって、エンコードされたビデオは、別のデバイスに送信される、あるいは、後の送信あるいは検索のためにアーカイブに入れられることができる。逆量子化ユニット42及び逆変換ユニット44は、参照ブロックとして使用するためにピクセルドメインにおいて残差ブロックを再構築するために、それぞれ、逆量子化及び逆変換を適用する。加算器51は、参照フレームストア34における保存のために再構築されたビデオブロックを生成するために、動き補償ユニット36によって生成された動き補償された予測ブロックに、その再構築された残差ブロックを追加する。その再構築されたビデオブロックは、後続ビデオフレームにおけるブロックをインターエンコードするために参照ブロックとして、予測ユニット32によって使用されることができる。
予測エラーE(x,y)と、すなわちコード化されているブロックI(x,y)と、予測されたブロックP(x,y)との間の差異は、変換基本関数fij(x,y)の重み付けられた和として表されることができる:
Figure 2011509642
なお、x及びyは、ビデオブロック内の与えられた係数のロケーションを定義し、cijは、重み要因(weight factors)であり、ときどき、予測エラー係数(prediction error coefficients)と呼ばれる。変換は、8x8(N=8)あるいは4x4(N=4)ブロックベースで典型的には実行される。重みcijは、下記のように続いて量子化されることができる。
Figure 2011509642
なお、lijは、量子化係数あるいはレベルと呼ばれ、QPは、量子化パラメータであり、Qは、量子化ステップサイズを定義する量子化マトリクスである。量子化のオペレーションは、情報の損失を導入する。しかしながら、量子化係数はより小さい数のビットで表されることができ、それによって、送信帯域幅、ストレージ空間(storage space)、及び処理リソース(processing resources)を節約する。圧縮のレベル(情報の損失)は、値QPを調節することにより、従来、制御される。
量子化変換係数は、動きベクトル及びいくつかの制御情報と一緒に、エレメントの完全なコード化されたシーケンスを形成することができる。エンコーディングデバイスからでコーディングデバイスまでの送信の前に、これらのエレメントのすべては、それらの表示に必要とされるビットの数をさらに減らすために、一般的にエントロピーコード化される。
デコーダ側では、現在フレームにおけるブロックは、エンコーダにおけるのと同じ方法でその予測を最初に構築することによって、そして、その圧縮された予測エラーを予測に追加することによって、得られる。圧縮された予測エラーは、下記のように、逆量子化係数に対して逆変換を適用することによって見つけられる。
Figure 2011509642
ijは、逆量子化された(あるいは再構築されたと呼ばれる)係数である。係数rijは、逆量子化によって計算されることができる:
Figure 2011509642
再構築されたフレームR(x,y)とオリジナルフレームI(x,y)の間の差異は、再構築エラー(reconstruction error)と呼ばれることができる。
従来、ビデオコーデックにおける変換係数の量子化は、均一再構築量子化器(uniform-reconstruction quantizers)(URQ)に大抵基づいている。データを量子化するための分類ルールは、エンコーダによって定義される。量子化の一例は、いわゆるデッドゾーン・プラス・均一しきい値量子化(dead-zone plus uniform threshold quantization)(DZ−UTQ)である。下記の等式は、このようなデッドゾーン量子化器を定義しており、ここでは、fは、0≦f≦0.5を備えた、デッドゾーンパラメータを示す。
Figure 2011509642
ijは、与えられたQPと関連づけられたレベルに対応する。
概念的に、レベルlijに対応する再構築値rijは、対応するQPでlijを乗算することによって、導出されることができる:
ij=lij・QP
Figure 2011509642
は、MPEG−4 AVCについて実際に規定されている数学的な簡略版を表しており、対応する基本関数の正規化についての異なるスケーリングファクタは簡潔のために無視されている。
H.264及びMPEG−4 AVCにおいて、量子化は、下記の式にしたがって実行されることができる。
Figure 2011509642
なお、Qは、量子化マトリクスを表し、%は、モジュラー分割を表し、fは、イントラフレームについては215+QP/6/3、インターフレームについては215+QP/6/6、に等しい。係数の逆量子化は、下記の式にしたがって実行されることができる。
Figure 2011509642
Rは、逆量子化マトリクスを表す。値は、QP%6=0.1,…,5についてQ及びRと関連づけられ、予め計算され、保存されることができる。
与えられたブロックにおける係数は、ジグザグスキャニングあるいは別のスキャニング順序を使用して、順序づけられる(スキャンされる)ことができ、一次元の順序づけられた係数ベクトル(one-dimensional ordered coefficient vector)を結果としてもたらす。ジグザグスキャニングのようなスキャニングは、ブロックによって定義される二次元パターンとは対照的に、一次元のシリーズの係数(one-dimensional series of coefficients)を生成するという点から、シリアル化とも呼ばれる。4x4ブロックのためのジグザグスキャンの例が図3にある。ジグザグスキャニングは、二次元(2D)変換を適用した後で、ほとんどのエネルギー(すなわち、より高い値の係数)を有する変換係数は低周波数変換関数に対応し、図3で図示されるようなブロックの左上のほうに配置されているということを一般的に、推定する。したがって、ジグザグスキャニングを通じて生成された係数ベクトルでは、より高い大きさの係数は、一次元の順序づけられた係数ベクトルの開始のほうにおそらく最も現われる。量子化の後、低いエネルギー係数のほとんどは、0に等しくてもよい。
CABACは、H.264/AVCで使用される変換係数をコード化する1つの方法である。図2のCABACエンコーディングユニット46は、そのようなコード化を実行することができる。一般に、CABACを使用して、いずれのデータシンボルをコード化することは、次のステージである、2値化、コンテキストモデル選択、算術符号化及び確率アップデート、を含むことができる。2値化の場合、CABACユニット46は、算術符号化の前に、いずれのノンバイナリ値シンボルをバイナリコードに変換する。コンテキストモデル選択では、CABACユニット46は、例えば最近コード化されたデータシンボルと関連づけられた統計に依存して、利用可能なモデルの選択からコンテキストモデルを選ぶ。「コンテキストモデル(context model)」は、2値化されたシンボルの1つまたは複数のビンのための確率モデルである。このモデルは、最近コード化されたデータシンボルの統計に依存して、利用可能なモデルの選択から選択されることができる。コンテキストモデルは、「1」あるいは「0」である各ビンの確率を保存する。
算術符号化の場合、CABACユニット46は、その選択された確率モデルにしたがって各ビンをエンコードする(コンテキストモデルとも呼ばれる)。その選択された確率モデルは、実際のコード化された値に基づいて、アップデートされる(確率アップデート)(例、ビン値が「1」であった場合、周波数カウント「1」が増加される)。CABACにおける確率推定は、有限状態機械(finite state machine)(FSM)を使用して、テーブル駆動推定器(table-driven estimator)に基づいていてもよい。この場合では、CABACにおける各確率モデルは、関連づけられた確率値pを備えた128の異なる状態から1つを取り出すことが出来る。確率アップデートは、2つのバイナリ決定「0」あるいは「1」の発生確率の低いものである(the least probable)、「劣勢シンボル(Least Probable Symbol)」について64の個別確率状態間の遷移プロセスによって実行されることができる。コンテキストモデル選択、算術エンコーディング、及び確率アップデートは、2値化されたシンボルの各ビット(あるいは「ビン」)について繰り返されることができる。
CABACユニット46によってCABACを使用する変換係数は、いわゆる有意マップ(significance map)のコード化と非ゼロ係数のコード化を含む。ブロックが非ゼロ係数を有する場合には、バイナリ値の有意マップ(a binary-valued significance map)がエンコードされる。スキャニング順序における各係数については、1ビットのシンボルsignificant_coeff_flagが送信される。significant_coeff_flagシンボルが1である場合、すなわち非ゼロ係数がそれぞれのスキャン位置に存在する場合、さらなる1ビットシンボルlast_significant_coeff_flagが送られる。このlast_significant_coeff_flagシンボルは、現在の非ゼロ係数がブロック内の最後の非ゼロである場合(last_significant_coeff_flag=1)、あるいは、さらに非ゼロ係数が続く場合(last_significant_coeff_flag=0)、を示す。
有意マップをエンコードするために、最大15の異なる確率モデルまでが、significant_coeff_flagとlast_significant_coeff_flagの両方に使用されることができる。モデルの選択、したがって対応するコンテキストインデクスは、スキャニング位置に依存してもよい。非ゼロレベルcoeff_abs_level_minus 1=|lij|−1をエンコードするために、10のコンテキストが使用されてもよく、コンテキストのうちの5つはバイナリ表示の第1ビットをコード化するためのものであり、他の5つは、第2番目ビットから第14番目ビットまでをコード化することを対象としている。コンテキストは、CABACユニット46によって、以下のように選択されることができる。
1.パラメータNumLg1とパラメータNumEq1は、それぞれ、1よりも大きい、そして、1に等しい、ブロックにおいて、今のところ、エンコードされる係数の数に、等しく設定される。非ゼロレベルがエンコードされ、したがって、パラメータNumLg1とパラメータNumEq1は、逆スキャン順序でアップデートされ、すなわち、高い周波数変換関数に対応する係数は最初にエンコードされる。
2.2値化されたシンボルの第1ビットについてのコンテキストは、
Figure 2011509642
によって決定されることができる。
3.2値化されたシンボルの第2番目ビットから第14番目ビットまでのコンテキストは、Ctx=min(4,NumLg1)によって選択されることができる。
CABACユニット46はまた、固定された配信(fixed distribution)で、バイパスモードをサポートしてもよい。coeff_abs_level_minus 1のバイナリ表示における他のビットは、バイパスモードを通じてパスすることができる。最終的に、非ゼロ係数のサイン(signs)は、各非ゼロ係数についての1ビットを使用して送信されることができ、例えば、1は正を示し、0は負を示す(あるいは、その逆であってもよい)。
各N×Nビデオブロックについて、その変換係数をcijだとすると、予測エラーE(x,y)と予測エラーの再構築バージョン
Figure 2011509642
との間の平均二乗誤差(MSE)歪みDが、係数をコード化するためのレートRにおける制約を仮定して最小化されるような、対応する量子化係数lijを見つけることが望ましい。言い換えると、目的は下記の式を最小化することである。
Figure 2011509642
他の追加歪みメトリクスは、MSEの代わりに、例えばアクティビティ重み付けられたMSE(activity-weighted MSE)、使用されることができる。上記の式を最小するレート制約問題は、ラグランジュ乗算子
Figure 2011509642
の使用を通じてレート及び歪みを「合併すること(merging)」によって、均等の制約されていない問題に変換されることによって解決されることができる。この場合では、制約されていない問題が係数レベルの決定(固定
Figure 2011509642
について)となり、そしてそれは、下記のように定義された最小合計ラグランジュコストをもたらす。
Figure 2011509642
H.264の場合では、与えられたブロックについての、二乗の再構築エラー
Figure 2011509642
は、二乗量子化エラー
Figure 2011509642
と比例する。レートRは、量子化係数lijをコード化するために必要とされたビットの数である。
下記で説明された、提案されたアルゴリズムは、合計ラグランジュコスト関数
Figure 2011509642
の値がその最小に近い、量子化係数値lijを見つける。
MPEG−4 AVCで使用される変換が直交であるので、ラグランジュコスト
Figure 2011509642
は次のように計算されることができる:
Figure 2011509642
この場合、
Figure 2011509642
は、レベルlijに量子化されるときの、係数cijについてのラグランジュコストである。言いかえれば、以下となる。
Figure 2011509642
量子化エラーerr(cij,lij)は、(rij−cijと比例しており、
Figure 2011509642
である。
この場合も先と同様に、QPは、量子化パラメータを表わしており、%は、モジュラー分割を表わす。N(QP%6、i、j)は、正規化マトリクスを表わす。エンコーディング品質は、QPが小さくなると、一般的には増加する。すなわち、QPのより小さな値は、より少ない量子化に一般的に対応しており、したがって、より高い品質エンコーディング(higher quality encoding)である。あるいは、QPがこのような方法で定義される場合、エンコーディング品質はQPが小さくなると減少する可能性がある(could decrease)。
量子化及び逆量子化マトリックスQ及びRの場合では、正規化マトリックスN(QP%6、i、j)の値は、i及びjによって指定されるロケーションと値QP%6=0,1,…,5にのみ依存することができる。値lijをコード化するのに必要とされるビットの数(「ビット(lij)」)は、例えばITU H.264について定義されるように、CABACの部分を使用して、lijをエンコードすることによって計算されることができる。しかしながら、CABACステップをすべて実行することよりも、RD量子化ユニット40は、量子化のために、CABACの最初の2ステップのみを実行することができる。これらの最初の2ステップは、2値化とコンテキストモデル選択を含む。その後、算術コーダを起動してバイナリ算術符号化を実行する代わりに、RD量子化ユニット40は、各ビンをコード化するのに必要とされるビットの数を推定できる。与えられたビンについて選択されたコンテキストが有限状態機械における状態mに対応するということを想定して、与えられたビンをコード化するのに必要とされる、推定された数のビットは、状態mに割当てられた確率pのエントロピー(entropy)として表されることができる。それは、RD量子化ユニット40が、マクロブロックごとに一度、各ビンについてのコンテキストを決定するのに、十分でありうる。
各係数cijについて、レベル|lij|の最大3つの可能性ある値、0、
Figure 2011509642
がテストされることができる。単独パスの例に関しては、この2パスアプローチでは、4×4ブロック値
Figure 2011509642
が下記のように計算されることができる。
Figure 2011509642
与えられたブロックにおける係数は、ジグザグスキャニングを使用して順序づけられる(スキャニングされる)ということを想定することができ、そしてそれは、一次元の順序づけられた係数ベクトルを結果としてもたらす。順序づけられた係数は、cと示されることができ、ここでは、i=0,…,Mであり、例えば、Mは、4x4ブロックについては15に、8x8ブロックについては63に、等しい。
本開示にしたがって、RD量子化ユニット40は、下記のように、量子化係数/レベルlを生成することができる。
1.ラグランジュコスト
Figure 2011509642
を計算し、k=M,M−1,…,0である係数cがブロックにおける最後の非ゼロ係数である、すなわちスキャニングポジションkについてのlast_significant_coeff_flagが1に等しい、と仮定して、量子化係数lのベクトルを生成する。
a.i=k−1,…,0である各係数cについては、量子化値が予め選択されたセットの値、例えば0、lfloor、及びlceilに等しいとき、そのラグランジュコスト
Figure 2011509642
を計算する。
2.
Figure 2011509642
が最小化される、値lを選び、その選択された値lに対応する
Figure 2011509642
を使用してラグランジュコスト
Figure 2011509642
をアップデートする。
RD量子化ユニット40によって実行された量子化技術の速度(speed)は、以下のように増加されることができる。
1.係数cが、lceilよりもlfloorに近い場合には(例えばlfloatとlfloorまたはlceilとの間の絶対距離によって測定される)、値lfloorのみが上記ステップ1.aで考慮されうる。
2.係数ckが、lceilよりもlfloorに近く、lfloorが0に等しい場合には、係数ckは、最後の非ゼロ係数であることはできない。したがって、この場合では、ラグランジュコスト
Figure 2011509642
の計算は、この値kについてスキップされうる。
3.
Figure 2011509642
の計算は、kを減らしながら
Figure 2011509642
が増加しはじめるとき、終了されることができる。
要約すると、RD量子化ユニット40は、CABACをサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化することができる。RD量子化ユニット40は、ビデオブロックのための量子化係数の複数のセットを生成し、なお、量子化係数のセットのそれぞれは、ビデオブロックの係数の特定のものはビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される;CABACを介してビデオブロックをコード化することと関連づけられた複数のコストを推定し、なお、その推定されたコストは、量子化係数のセットのうちの異なるものにそれぞれ基づいている;最低コストと関連づけられた量子化係数のセットのうちの所定の1つを選択し;CABACエンコーディングユニットに対して、量子化係数のセットのうちの所定の1つを出力することができる。その後で、CABACエンコーディングユニット46は、量子化係数のセットのうちの所定の1つをビットストリームへとエントロピーコード化するために、量子化係数のセットのうちの所定の1つに関してCABACを実行し、ビットストリームを出力する。
量子化ユニット40は、レート歪みモデルと関連づけられたラグランジュコスト関数を計算することにより、コストを推定することができる。量子化係数のセットのうちの選択されたものと関連づけられた特定コストは、複数のコストと関連づけられた最低数のビットを定義する。量子化ユニット40は、最低数のビットを示す値を保存してもよく、そしてそれは特定コストと関連づけられる。
ラグランジュコスト関数は、量子化係数のセットにおいて量子化係数のそれぞれと関連づけられた、個々の係数ラグランジュコストのセット(sets of individual coefficient Lagrangian costs)を定義することができる。量子化ユニット40は、0、フロア値(floor value)、シーリング値(ceiling value)に等しい量子化係数の値について、量子化係数のセットにおいて量子化係数と関連づけられた個々の係数ラグランジュコストのセットを計算する。これらの値の例は上記で説明されている。一般的に、フロア値は、ビデオブロックの係数のうちの個々のものの絶対値(an absolute value of an individual one of the coefficients of the video block)と、量子化パラメータと、量子化マトリクスと、に基づいており、シーリング値は、フロア値に1足したものを備えている。
この量子化プロセスを加速するために、量子化ユニット40は、上記で言及されたもののような加速技術をインプリメントすることができる。例えば、量子化係数のうちの個々のものについては、量子化係数のうちの個々のものが、シーリング値よりもフロア値に近い場合には、量子化ユニット40は、シーリング値に等しい値について、量子化係数のうちの個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップすることができる。
また、量子化係数のセットのうちの1つについてのビデオブロックの最後の非ゼロ係数に対応するビデオブロックの係数のうちの特定のものが、シーリング値よりもフロア値に近い値を定義する場合、そして、フロア値がゼロに等しい場合、RD量子化ユニット40は、量子化係数のセットのうちのその1つについてのビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップすることができる。さらに、RD量子化ユニット40は、ビデオブロックの係数の値を減らしながら、セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、セットのうちの特定のものと関連づけられた複数のコストを推定することを終了することができる。これらあるいは他の技術は、エンコードされたビデオにおける品質を下げることなく、量子化プロセスを加速するために使用されることができる。
図4は、ビデオデコーダ60の一例を図示しているブロック図であり、そしてそれは、ここで説明された方法でエンコードされるビデオシーケンスをデコードする。ビデオデコーダ60は、図3のCABACユニット46によって実行されるエンコーディングの相互デコーディング機能を実行するCABACデコーディングユニット52を含む。
ビデオデコーダ60は、ビデオフレーム内で、イントラ及びインターデコーディングを実行することができる。図4の例では、ビデオデコーダ60は、CABACデコーディングユニット52(上記で言及されている)、動き補償ユニット54、逆量子化ユニット56、逆変換ユニット58、及び参照フレームストア62を含む。ビデオデコーダ60はまた、加算器64を含む。オプションとして、ビデオデコーダ60はまた、加算器64の出力をフィルタにかける、デブロッキングフィルタ(図示されず)を含むことができる。図4は、ビデオブロックのインターデコーディングのためのビデオデコーダ60の一時的な予測コンポーネントを図示する。図4で図示されていないが、ビデオデコーダ60はまた、いくつかのビデオブロックのイントラデコーディングのための空間予測コンポーネントを含むことができる。
CABACデコーディングユニット52によって実行されるCABACデコーディングにしたがって、動き補償ユニット54は、参照フレームストア62から、1つまたは複数の再構築された参照フレームと動きベクトルを受信する。逆量子化ユニット56は、量子化されたブロック係数を、逆量子化する(inverse quantizes)、すなわち非量子化する(de-quantizes)。逆量子化プロセスは、H.264デコーディングによって定義されるような従来プロセスであってもよい。逆変換ユニット58は、ピクセルドメインにおける残差ブロックを生成するために、変換係数に対して、逆変換、例えば逆DCTあるいは概念的に同様な逆変換プロセス、を適用する。動き補償ユニット54は、デコードされたブロックを形成するために残差ブロックで加算器64によって加算される、動き補償されたブロックを生成する。望まれる場合には、ブロックデブロッキングフィルタ(deblocking filter)はまた、ブロックノイズ副作用(blockiness artifacts)を取り除くために、デコードされたブロックをフィルタにかけるために適用されることができる。フィルタにかけられたブロックは、参照フレームストア62に位置しており、そしてそれは、動き補償から参照ブロックを提供し、そして、駆動ディスプレイデバイス(例えば、図1のデバイス28)に対してデコードされたビデオを生成する。
図5は、ビデオエンコーダ50によって実行された1パス技術を図示するフロー図である。示されているように、レート歪み(RD)量子化ユニット40は、非ゼロ係数想定に基づいて、量子化係数のセットを生成する(101)。具体的に、RD量子化ユニット40は、与えられた係数が最後の非ゼロ係数であるということを想定し、この想定に基づいて、ビデオブロックについてのセットの係数を計算する。RD量子化ユニット40は、別の係数が最後の非ゼロ係数ということを次に想定し、この想定に基づいて、ビデオブロックについての別のセットの係数、等を生成する。
量子化係数のセットのそれぞれについては、量子化ユニットは、ラグランジュコスト関数に基づいてコストを推定する(102)。具体的には、各セットについては、RD量子化ユニット40は、複数の可能ある値(a plurality of possible values)、例えば0、フロア値、及びシーリング値で、各係数についての個々のラグランジュコスト関数を決定する。フロア値は、ビデオブロックの係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクス(あるいはそのパラメータ)と、に基づいており、シーリング値は、フロア値に1足したものを備えている。
RD量子化ユニット40は、最低の全体的なラグランジュコストを有する、量子化係数のセットを選択する(103)。具体的には、RD量子化ユニット40は、セットのための各係数についての最低の個々のラグランジュコストを加算し、各可能性のあるセットについてこのプロセスを繰り返す。また、ラグランジュコストは、レート及び歪みのコストのバランスを取る。RD量子化ユニット40は、全体的な最低ラグランジュ関数を有するセットを選択し(103)、RD量子化ユニット40は、CABACエンコーディングユニット46に対して量子化係数のうちの選択されたセットを出力する(104)。CABACエンコーディングユニット46は、コード化されたビットストリームを生成するために、量子化係数のうちの選択されたセットと、いずれの他のシンタックスパラメータに基づいてCABACを実行し(105)、コード化されたビットストリームを出力する(106)。
図6は、より詳細に、コストを推定するプロセスの例を図示している別のフロー図である。具体的には、量子化ユニット40は、0、フロア値、及びシーリング値の値について、各係数についての個々のラグラジアンコスト関数を計算する。また、フロア値は、ビデオブロックの係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクス(あるいは、マトリクスからマッピングされたパラメータ)と、に基づいており、シーリング値は、フロア値に1足したものを備えている。
上記で示されるように、どのようにRD量子化ユニット40が4×4ブロックの係数cijについて、フロア値(lfloor)とシーリング値(lceil)を計算することができるかという例は下記の通りである。
Figure 2011509642
再び、オペレーションフロア(Ifloat)は、Ifloatと関連づけられた最低値を表わし、QPは、量子化パラメータを表わし、また、Qは、H.264/AVCについて定義された量子化マトリックスのような量子化マトリックスを表わす。値QP%6、値i、及び値jは、マトリックスQからのパラメータを定義するために使用されることができる。関数%はモジュラー分割を表わす。
RD量子化ユニット40は、各係数についての最低コストの個々の係数ラグランジュコスト関数を選択し(111)、その選択された個々の係数ラグランジュコストを加算することによって、セットについての全体ラグランジュコストを決定する(112)。RD量子化ユニット40は、考慮する量子化係数の別のセットがある場合には、このプロセスのステップを繰り返す(110−112)。具体的には、与えられた係数が最後の非ゼロ係数であるという仮定によって定義される各セットの係数については、量子化ユニット40は、このプロセスのステップを繰り返す(110−112)。いったん全体ラグランジュコストが、量子化係数の各可能性のあるセット(最後の非ゼロ係数想定によって定義される)について決定されると、RD量子化ユニット40は、最低の全体ラグランジュコストを有する量子化係数のセットを選択する(114)。
図7−9は、量子化係数における品質を実質的に犠牲することなく、量子化プロセスを加速するために使用されることができるオプションの技術を図示する。図7−9の技術は、個々に、あるいは、共同で(collectively)、使用されることができる。図7−9の技術は、1パス量子化プロセスに対して最も適用可能であるが、これらの技術のいくつか(特に図7の技術)はまた、下記でさらに詳細に取り組まれる2パス量子化において有用でありうる。図7で示されているように、個々の量子化係数がシーリングよりもフロアに近い場合(121のyes分岐)、量子化ユニット40は、シーリング値で個々の量子化係数と関連づけられた個々の係数ラグランジュコストの計算をスキップすることができる。この場合では、RD量子化ユニット40は、個々の量子化係数と関連づけられた個々の係数ラグランジュコストは0あるいはフロア値のいずれかで最小化されるということが想定することができる。したがって、この場合、RD量子化ユニット40は、シーリング値で、個々の量子化係数と関連づけられたラグランジュコストの計算と関連づけられた不必要な計算を回避することができる。しかし、個々の量子化係数が、シーリングよりもフロアに近くない場合(121のno分岐)、計算はスキップされない(123)。
図8の技術では、RD量子化ユニット40は、フロア値がゼロに等しいかどうか(131)、そして、最後の非ゼロ係数に対応する特定の係数がシーリングよりもフロアに近いかどうか(132)を決定する。これらの不測自体の双方が真実である場合には(131のyes分岐と132のyes分岐)、RD量子化ユニット40は、その特定の最後の非ゼロ係数と関連づけられた量子化係数のうちの特定セットについてビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップすることができる(133)。この場合では、RD量子化ユニット40は、量子化係数のその特定セットについての全体ラグランジュコストは、最小を備えず、値が十分にコンピュートされたとしても選択されないということを想定することができる。したがって、特定コストのコンピューテーションは、この場合では、スキップされてもよい。しかしながら、これらの不測事態のいずれかが誤りの場合(131のno分岐あるいは132のno分岐)、そのときには、RD量子化ユニット40は、特定コストの推定をスキップしない。図8の技術は、いくつかの不必要なコンピューテーションを回避するRD量子化ユニット40のための別の方法である。
図9の技術では、RD量子化ユニット40は、特定コストを定義する加算をモニタしており、すなわち、与えられたセットの係数と関連づけられた全体ラグランジュコストを定義するために量子化係数のそれぞれについて個々のラグランジュコストの加算をモニタする。ビデオブロックの係数の値を減らしながら、特定コストのうちの1つを定義する加算が増加しはじめる場合(141のyes分岐)、RD量子化ユニット40は、そのセットについての複数のコストの推定を終了する。この場合では、RD量子化ユニット40は、係数のちの与えられたセットと関連づけられた全体ラグランジュコストが全体的な最小でないということを想定することができる。したがって、ステップ141の不測事態が識別されるとき、コンピューテーションは回避されることができる(141のyes分岐)。ビデオブロックの係数の値を減らしながら、加算が増加しないとき(141のno分岐)、コンピューテーションは終了されない(143)。
上記で記載されているように、本開示はまた2パスアプローチを企図する。2パスアプローチでは、本開示の技術は、第1パスにおいてビデオブロックの最後の非ゼロ係数を推定することと、そのあとで、推定された最後の非ゼロ係数が実際にビデオブロックの最後の非ゼロ係数であるという想定に基づいて、第2パスにおいてビデオブロックについての量子化係数のセットを生成することと、を含むことができる。別個の推定パスは、最後の非ゼロ係数として正しい係数を有さない量子化係数のセットと関連づけられたコンピューテーションを実行する必要を除去することができる。本開示にしたがって、RD量子化ユニット40は、下記でさらに詳細アウトラインされるように、この2パスアプローチにしたがって、量子化係数を生成することができる。
単独パスアプローチ同様に、下記で説明される、提案された2パスアルゴリズムは、合計ラグランジュコスト関数
Figure 2011509642
の値がその最小値に近い、量子化係数値lijを見つける。2パスアプローチは、網羅的なサーチに基づいて合計ラグランジュコスト関数
Figure 2011509642
を最小化する方法よりも、より少ない複雑さによって特徴づけられることができる。
各係数cijについては、レベル|lij|の最大3つの可能性ある値、0、
Figure 2011509642
がテストされることができる。単独パスの例に関しては、この2パスアプローチにおいて、4×4ブロック値
Figure 2011509642
は、下記のように計算されることができる。
Figure 2011509642

Figure 2011509642
ijがレベル1よりもレベル0に近い場合には、さらなる分析なしにレベル0を割当てられうる。別の方法に置き換えると、図7の技術は、2パスアプローチの第2パスの間に適用されることができる。
与えられたブックにおける係数はジグザグスキャニング(例、図3に示されるように)を使用して順序づけられる(スキャニングされる)ということを想定することができ、一次元の順序づけられた係数ベクトルを結果としてもたらす。順序づけられた係数は、ciとして示されることができ、ここでは、i=0,...,Mであり、例えば、Mは、4x4ブロックについては15に、8x8ブロックについては63に、等しい。
RD量子化ユニット40は、サインビットに加えて値liをコード化するように必要とされるビットを計算するために、下記のシンボルを使用することができる。
significant_coeff_flag(係数が非ゼロかどうかを示す)、last_significant_coeff_flag(最後の非ゼロ係数を識別する)、coeff_abs_level_minus1(係数の絶対値−1を表す)。
significant_coeff_flagとlast_significant_coeff_flagの場合では、コンテキスト、すなわち、シンボルをコード化するために必要とされるビットは、スキャニングポジションi上でのみ従属することができる。しかしながら、ビンについてのコンテキストcoeff_abs_level_minus1(第1ビン、greater_than_1 symbolを含んでいる)は、逆の順序でスキャンされた他の非ゼロレベルの値に依存する。言い換えると、liについてのコンテキストは、インデクスjを備えた量子化係数の値に依存し、ここでは、j>iである。
したがって、RD量子化ユニット40は、2つの個別のパスでの量子化された係数/レベルを得ることができる。第1のパスでは、RD量子化ユニット40は、どの係数が最後の非ゼロ係数であるべきかを推定することができる。この推定された最後の非ゼロ係数はckと表わされることができる。第2のパスでは、RD量子化ユニット40は、係数ckは実際ブロックにおける最後の非ゼロ係数であるということを想定して、量子化係数の最後の値を決定し、生成することができる。
インプリメンテーションでは、係数
Figure 2011509642
のみが、RD量子化ユニット40によって第1のパスにおいて考慮されうる。
Figure 2011509642
さらに、複雑さを減らすために、Jsumの値は、係数c,i=i,…,i,が下記のようにl=0に量子化されるとき、量子化エラーerr(c,l)の合計として予め計算されることができる。
Figure 2011509642
RD量子化ユニット40は、第1パスにおける下記のステップのうちのいくつかあるいはすべてを実行することができ、そしてそれは、ビデオブロックの最後の非ゼロ係数を推定するために使用される。
Figure 2011509642
Figure 2011509642
最小の対応値
Figure 2011509642
を備えた係数ckは、ブロックにおける最後の非ゼロ係数であるように推定される。
上記のステップでは、RD量子化ユニット40は、各可能性のある最後の非ゼロ係数について各可能性のあるシナリオを明示的に考慮することなく、ビデオブロックの最後の非ゼロ係数を推定する。この場合では、RD量子化ユニット40は、CABACを介してビデオブロックをコード化することと関連づけられたコストを近似することにより、最後の非ゼロ係数を推定する。近似されたコストのうちの異なるものは、最後の非ゼロ係数である異なる係数に対応する。最終の推定された最後の非ゼロ係数は、最小近似化されたコスト(lowest approximated cost)を定義する。ステップ1は、特別の場合を考慮されうるが、ステップ2は、ほとんどの係数に関して実行されることができる。
上記のステップでは、RD量子化ユニット40は、最後の非ゼロ係数であるビデオブロックの係数のそれぞれを連続的に考慮することにより、連続的な方法で近似されたコストのうちの異なるものを定義する。それをすることにより、ビデオブロックの係数のそれぞれを最後の非ゼロ係数であると考慮されるとき、RD量子化ユニット40は、蓄積されたコストをアップワード及びダウンワードで調節する。具体的には、上記ステップ2(a)は、蓄積されたコストを縮小させることができ、なお、Jsumは、Jsum=Jsum−err(C,0)としてアップデートされる。この場合では、ステップ2(a)は、Jsumを小さくさせる。他方で、ステップ2(c)及び2(d)は、蓄積されたコストを大きくさせ、なお、ここでは、値Jsumは、
Figure 2011509642
アップデートされる。したがって、量子化ユニット40は、最後の非ゼロ係数であるビデオブロックの係数のそれぞれを連続的に考慮することによって、連続的な方法で近似されたコストのうちの異なるものを定義し、それをすることにおいて、アップワード調整とダウンワード調整で、全体コストを蓄積する。このように、RD量子化ユニット40は、各可能性ある最後の非ゼロ係数についての各すべてのシナリオを明示的に考慮することなくビデオブロックの最後の非ゼロ係数を推定する。
いったんRD量子化ユニット40が最後の非ゼロ係数を推定すると、RD量子化ユニット40は、推定された最後の非ゼロ係数が実際にビデオブロックの最後の非ゼロ係数であるという想定に基づいて、ビデオブロックについての量子化係数のセットを生成する第2のパスを実行することができる。具体的には、第2パスでは、RD量子化ユニット40は、第1パスで選択された係数ckは、実際ビデオブロックにおける最後の非ゼロ係数であるということを想定して、各量子化係数についての最終値を決定する。この場合では、i=k,…,0である各係数ciについては、RD量子化ユニット40は、ラグランジュコスト
Figure 2011509642
が最小化されるレベルliの値を見つける。上記で説明されているように、レベルliの3つの異なる値は、例えば、
Figure 2011509642
と考えられることができる。レベルliの値をエンコードするときに、コンテキストを計算するために、j=k,…,i+1であるレベルlについてすでに選択された値が使用されることができる。
言い換えると、量子化係数のセットを生成することは、ゼロ、フロア値、及びシーリング値に等しい値を有するものとして、ビデオブロックについての量子化係数のセットにおいて各可能性のある非ゼロ量子化係数と関連づけられたラグランジュコストを計算すること、を備えることができる。さらに、フロア値は、ビデオブロックの係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、シーリング値は、フロア値に1足したものを備えることができる。
図10は、上記でアウトライン化された2パスアプローチを使用することができるエンコーディング技術を図示するフロー図である。この場合には、RD量子化ユニット40は、ビデオブロックの最後の非ゼロ係数を推定する(151)。上記で説明されているように、この推定ステップ(151)は、CABACを介してビデオブロックをコード化することと関連づけられたコストを近似することを含むことができ、近似されたコストのうちの異なるものは、最後の非ゼロ係数である異なる係数に対応することができる。この場合では、最終の推定された最後の非ゼロ係数は、最小近似コストを定義する。
さらに、推定ステップ(151)の間に、RD量子化ユニット40は、最後の非ゼロ係数であると、ビデオブロックの係数のそれぞれを連続的に考慮することにより、連続的な方法で近似されたコストのうちの異なるものを定義することができる。そうすることで、RD量子化ユニット40は、最後の非ゼロ係数であると、ビデオブロックの係数のそれぞれを考慮するときに、蓄積されたコストをアップワード及びダウンワードで連続的に調節する。
次に、RD量子化ユニット40は、推定された最後の非ゼロ係数が実際に最後の非ゼロ係数であるという想定に基づいて、量子化係数のセットを生成する(152)。その生成ステップ(152)は、0、フロア値、及びシーリング値に等しい値を有するものとして、ビデオブロックについての量子化係数のセットにおける各可能性のある非ゼロ量子化係数と関連づけられたラグランジュコストを計算することを含むことができる。いったん、生成されると、RD量子化ユニット40は、CABACユニット46に対して量子化係数のセットを出力することができ、そしてそれは、生成された量子化係数のセットをビットストリームへとエントロピーコード化するために量子化係数のうちの生成されたセットに関してCABACを実行する(153)。エンコードされたビットストリームは出力されることができ、恐らく変調され、別のデバイスに対して送信されることができる。
本開示の技術は、無線ハンドセット、集積回路(IC)、あるいは、ICsのセット(すなわち、チップセット)を含んでいる、広範囲のデバイスあるいは装置において具現化されてもよい。いずれのコンポーネント、モジュール、あるいはユニットも、機能態様を強調するように提供して説明されており、異なるハードウェアユニット等による実現を必ずしも必要としていない。
したがって、ここにおいて説明された技術は、ハードウェア、ソフトウェア、ファームウェア、あるいはそれらの任意の組み合わせ、でインプリメントされることができる。モジュールあるいはコンポーネントとして説明されたいずれの特徴も、集積論理デバイスで一緒に、あるいはディスクリートであるが相互運用論理デバイスとして別々に、インプリメントされることができる。ソフトウェアでインプリメントされる場合には、本技術は、実施されるときに、上記で説明される方法のうちの1つまたは複数を実行する命令を備えているコンピュータ可読媒体によって少なくとも部分的に実現されることができる。コンピュータ可読データ保存媒体(computer-readable data storage medium)は、パッケージング材料を含むことができる、コンピュータプログラムプロダクト(computer program product)の一部を形成することができる。コンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、例えば、シンクロナス動的ランダムアクセスメモリ(SDRAM)、読み取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電子的消去可能プログラマブル読み取り専用メモリ(EEPROM)、FLASHメモリ、磁気あるいは光学のデータストレージメディア、及び同様なもの、を備えることができる。本技術は、追加的に、あるいは、代替的に、命令あるいはデータ構造の形態でコードを搬送するあるいは通信する、そして、コンピュータによってアクセスされ、読み取られ、及び/または実行されることができる、コンピュータ可読通信媒体(computer-readable communication medium)によって、少なくとも部分的に実現されることができる。
コードは、1つまたは複数のプロセッサ、例えば1つまたは複数のデジタル信号プロセッサ(DSPs)、汎用マイクロプロセッサ、特定用途向け集積回路(ASICs)、フィールドプログラマブル論理アレイ(FPGAs)、あるいは他の同等な一体化された(integrated)あるいはディスクリートの論理回路素子、によって実行されることができる。したがって、ここで使用される用語「プロセッサ(processor)」は、前述の構造のうちのいずれか、あるいは、ここに説明される技術のインプリメンテーションに適したいずれの他の構造を意味することができる。さらに、いくつかの態様では、ここに説明される機能は、エンコーディングおよびデコーディングのために構成された専用のソフトモジュールあるいはハードウェアモジュール内で提供されてもよく、あるいは、組み合わせされたビデオコーダ−デコーダ(a combined video encoder-decoder)(CODEC)に組み込まれてもよい。また、本技術は、1つまたは複数の回路あるいは論理エレメントにおいて十分にインプリメントされることができるであろう。
本開示の様々な態様が説明されている。これら及び他の態様は、特許請求の範囲の範囲内にある。

Claims (52)

  1. コンテキストベースの適応バイナリ算術符号化(CABAC)をサポートするビデオコーディングプロセスのために、ビデオブロックの係数を量子化する方法であって、前記方法は、
    前記ビデオブロックのための量子化係数の複数のセットを生成することと、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される;
    前記CABACを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定することと、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいている;
    前記コストの最低のものと関連づけられた量子化係数の前記セットのうちの所定の1つを選択することと;
    備えている、
    方法。
  2. 量子化係数の前記セットのうちの前記所定の1つを出力することと、をさらに備えている請求項1に記載の方法。
  3. 量子化係数の前記セットのうちの前記所定の1つを受信することと、
    量子化係数の前記セットのうちの前記所定の1つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の1つに関して前記CABACを実行することと、
    前記ビットストリームを出力することと、
    をさらに備えている請求項2に記載の方法。
  4. 前記コストを推定することは、レート歪みモデルと関連づけられた、ラグランジュコスト関数を計算することを備えている、請求項1に記載の方法。
  5. 量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する、請求項4に記載の方法。
  6. 前記最低数のビットを示す値を保存すること、をさらに備え、そしてそれは、前記特定コストと関連づけられる、請求項5に記載の方法。
  7. 前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数のラグランジュコストのセットを定義する、請求項4に記載の方法。
  8. ゼロ、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算すること、をさらに備えている請求項7に記載の方法。
  9. 前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に1足したものを備えている、請求項8に記載の方法。
  10. 前記量子化係数のうちの個々のものについて、
    前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合には、前記シーリング値に等しい値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップすること、
    をさらに備えている請求項8に記載の方法。
  11. 量子化係数の前記セットのうちの1つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして、前記フロア値がゼロに等しい場合には、量子化係数の前記セットのうちのその1つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップすること、
    をさらに備えている請求項8に記載の方法。
  12. 前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了すること、をさらに備えている請求項8に記載の方法。
  13. 実行のときに、コンテキストベースの適応バイナリ算術符号化(CABAC)をサポートするビデオコーディングプロセスでビデオブロックの係数をデバイスに量子化させる命令を備えているコンピュータ可読媒体であって、前記命令は、前記デバイスに、
    前記ビデオブロックのための量子化係数の複数のセットを生成させ、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものは前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される;
    前記CABACを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定させ、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいている;
    最低コストと関連づけられた量子化係数の前記セットのうちの所定の1つを選択させる;
    コンピュータ可読媒体。
  14. 前記命令は、前記デバイスに、
    量子化ユニットから、量子化係数の前記セットのうちの前記所定の1つを出力させる、
    請求項13に記載のコンピュータ可読媒体。
  15. 前記命令は、前記デバイスに、
    前記量子化ユニットから、量子化係数の前記セットのうちの所定の1つを受信させ、
    量子化係数の前記セットのうちの前記所定の1つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の1つに関して前記CABACを実行させ、
    CABACユニットから前記ビットストリームを出力させる、
    請求項14に記載のコンピュータ可読媒体。
  16. 前記命令は、前記デバイスに、レート歪みモデルと関連づけられたラグランジュコスト関数を計算させる、請求項13に記載のコンピュータ可読媒体。
  17. 量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する、請求項16に記載のコンピュータ可読媒体。
  18. 前記命令は、前記デバイスに前記最低数のビットを示す値を保存させ、そしてそれは、前記特定コストと関連づけられている、請求項17に記載のコンピュータ可読媒体。
  19. 前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数ラグランジュコストのセットを定義する、請求項16に記載のコンピュータ可読媒体。
  20. 前記命令は、前記デバイスに、
    ゼロ、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算させる、
    請求項19に記載のコンピュータ可読媒体。
  21. 前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に1足したものを備えている、請求項20に記載のコンピュータ可読媒体。
  22. 前記量子化係数の個々のものについては、
    前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合、前記命令は、前記デバイスに、前記シーリング値に近い値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップさせる、
    請求項20に記載のコンピュータ可読媒体。
  23. 量子化係数の前記セットのうちの1つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして前記フロア値がゼロに等しい場合には、前記命令は、前記デバイスに、量子化係数の前記セットのうちの1つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップさせる、
    請求項20に記載のコンピュータ可読媒体。
  24. 前記命令は、前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記デバイスに、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了させる、請求項20に記載のコンピュータ可読媒体。
  25. コンテキストベースの適応バイナリ算術符号化(CABAC)をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するように構成された装置であって、前記装置は、
    前記ビデオブロックのための量子化係数の複数のセットを生成し、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される;
    前記CABACを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定し、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいている;
    最低コストと関連づけられた量子化係数の前記セットのうちの所定の1つを選択する;
    量子化ユニット、
    を備えている、
    装置。
  26. 前記量子化ユニットは、量子化係数の前記セットのうちの前記所定の1つを出力する、請求項25に記載の装置。
  27. 量子化係数の前記セットのうちの前記所定の1つを受信し、
    量子化係数の前記セットのうちの前記所定の1つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の1つに関して前記CABACを実行し、
    前記ビットストリームを出力する、
    CABACユニット、
    をさらに備えている請求項26に記載の装置。
  28. 前記コストを推定することは、レート歪みモデルと関連づけられたラグランジュコスト関数を計算することを備える、請求項25に記載の装置。
  29. 量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する、請求項28に記載の装置。
  30. 前記量子化ユニットは、前記最低数のビットを示す値を保存し、そしてそれは前記特定コストと関連づけられる、請求項29に記載の装置。
  31. 前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数ラグランジュコストのセットを定義する、請求項28に記載の装置。
  32. 前記量子化ユニットは、
    ゼロ、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算する、
    請求項31に記載の装置。
  33. 前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に1足したものを備えている、請求項32に記載の装置。
  34. 前記量子化係数のうちの個々のものについては、
    前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合には、前記量子化ユニットは、前記シーリング値に等しい値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップする、請求項32に記載の装置。
  35. 量子化係数の前記セットのうちの1つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして、前記フロア値がゼロに等しい場合には、前記量子化ユニットは、量子化係数の前記セットのうちの1つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップする、請求項32に記載の装置。
  36. 前記量子化ユニットは、
    前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了する、請求項32に記載の装置。
  37. 前記装置は、1つまたは複数の回路、集積回路(IC)チップあるいはICチップセットを備えている、請求項23に記載の装置。
  38. コンテキストベースの適応バイナリ算術符号化(CABAC)をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するデバイスであって、前記デバイスは、
    前記ビデオブロックのための量子化係数の複数のセットを生成するための手段と、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される;
    前記CABACを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定するための手段と、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいている;
    最低コストと関連づけられた量子化係数の前記セットのうちの所定の1つを選択するための手段と;
    を備えている、
    デバイス。
  39. 量子化係数の前記セットのうちの前記所定の1つを出力するための手段、をさらに備えている請求項38に記載のデバイス。
  40. 量子化係数の前記セットのうちの前記所定の1つを受信するための手段と、
    量子化係数の前記セットのうちの前記所定の1つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の1つに関して前記CABACを実行するための手段と、
    前記ビットストリームを出力するための手段と、
    をさらに備えている請求項39に記載のデバイス。
  41. 前記コストを推定するための手段は、レート歪みモデルと関連づけられたラグランジュコスト関数を計算するための手段を備えている、請求項38に記載のデバイス。
  42. 量子化係数の前記セットのうちの前記選択されたものと関連づけられた特定コストは、前記複数のコストと関連づけられた最低数のビットを定義する、請求項41に記載のデバイス。
  43. 前記最低数のビットを示す値を保存するための手段、をさらに備え、そしてそれは、前記特定コストと関連づけられる、請求項42に記載のデバイス。
  44. 前記ラグランジュコスト関数は、量子化係数の前記セットにおいて前記量子化係数のそれぞれと関連づけられた個々の係数ラグランジュコストのセットを定義する、請求項41に記載のデバイス。
  45. ゼロ、フロア値、及びシーリング値に等しい前記量子化係数の値について、量子化係数の前記セットにおいて前記量子化係数と関連づけられた個々の係数ラグランジュコストの前記セットを計算するための手段、をさらに備える請求項44に記載のデバイス。
  46. 前記フロア値は、前記ビデオブロックの前記係数のうちの個々のものの絶対値と、量子化パラメータと、量子化マトリクスと、に基づいており、前記シーリング値は、前記フロア値に1足したものを備えている、請求項45に記載のデバイス。
  47. 前記量子化係数のうちの個々のものについては、
    前記量子化係数のうちの前記個々のものが前記シーリング値よりも前記フロア値に近い場合には、前記シーリング値に等しい値について、前記量子化係数のうちの前記個々のものと関連づけられた個々の係数ラグランジュコストの計算をスキップするための手段、
    をさらに備えている請求項45に記載のデバイス。
  48. 量子化係数の前記セットのうちの1つについての前記ビデオブロックの前記最後の非ゼロ係数に対応する前記ビデオブロックの前記係数のうちの前記特定のものが前記シーリング値よりも前記フロア値に近い値を定義する場合、そして前記フロア値がゼロに等しい場合には、量子化係数の前記セットのうちのその1つについての前記ビデオブロックをコード化することと関連づけられた特定コストを推定することをスキップするための手段、をさらに備えている請求項45に記載のデバイス。
  49. 前記ビデオブロックの前記係数の値を減らしながら、前記セットのうちの特定のものと関連づけられた特定のラグランジュコストを定義する加算が増加しはじめるとき、前記セットのうちの前記特定のものと関連づけられた前記複数のコストを推定することを終了するための手段、をさらに備えている請求項45に記載のデバイス。
  50. コンテキストベースの適応バイナリ算術符号化(CABAC)をサポートするビデオコーディングプロセスのためにビデオブロックの係数を量子化するように構成されたデバイスであって、前記デバイスは、コーディングユニットと送信機とを備えており、前記コーディングユニットは、量子化ユニットとCABACユニットとを備えており、前記量子化ユニットは、
    前記ビデオブロックのための量子化係数の複数のセットを計算し、なお、量子化係数の前記セットのそれぞれは、前記ビデオブロックの前記係数のうちの特定のものが前記ビデオブロックの最後の非ゼロ係数に対応するという仮定に基づいて定義される;
    前記CABACを介して前記ビデオブロックをコード化することと関連づけられた複数のコストを推定し、なお、前記推定されたコストは、量子化係数の前記セットのうちの異なるものにそれぞれ基づいている;
    最低コストと関連づけられた量子化係数の前記セットのうちの所定の1つを選択し;
    量子化係数の前記セットのうちの前記所定の1つを出力し;
    前記CABACユニットは、
    量子化係数の前記セットのうちの前記所定の1つを受信し、
    量子化係数の前記セットのうちの前記所定の1つをビットストリームへとエントロピーコード化するために、量子化係数の前記セットのうちの前記所定の1つに関して前記CABACを実行し、
    前記ビットストリームを出力し、
    前記送信機は、前記ビットストリームを送信する、
    デバイス。
  51. 前記デバイスは、無線通信デバイスを備える、請求項50に記載のデバイス。
  52. 前記デバイスは、前記送信機が前記ビットストリームを送信する前に、前記ビットストリームを変調するモジュレータを含む、請求項51に記載のデバイス。
JP2010542348A 2008-01-08 2009-01-08 Cabacコーダのためのレート歪みモデリングに基づいた量子化 Expired - Fee Related JP5290325B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US1983008P 2008-01-08 2008-01-08
US61/019,830 2008-01-08
US3045408P 2008-02-21 2008-02-21
US61/030,454 2008-02-21
US12/340,205 2008-12-19
US12/340,205 US8891615B2 (en) 2008-01-08 2008-12-19 Quantization based on rate-distortion modeling for CABAC coders
PCT/US2009/030465 WO2009089370A1 (en) 2008-01-08 2009-01-08 Quantization based on rate-distortion modeling for cabac coders

Publications (2)

Publication Number Publication Date
JP2011509642A true JP2011509642A (ja) 2011-03-24
JP5290325B2 JP5290325B2 (ja) 2013-09-18

Family

ID=40844521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010542348A Expired - Fee Related JP5290325B2 (ja) 2008-01-08 2009-01-08 Cabacコーダのためのレート歪みモデリングに基づいた量子化

Country Status (10)

Country Link
US (1) US8891615B2 (ja)
EP (2) EP2243296B1 (ja)
JP (1) JP5290325B2 (ja)
KR (1) KR101177737B1 (ja)
CN (1) CN101911702B (ja)
BR (1) BRPI0907209A2 (ja)
CA (1) CA2709711C (ja)
RU (1) RU2475999C2 (ja)
TW (1) TWI457002B (ja)
WO (1) WO2009089370A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014003698A (ja) * 2011-06-24 2014-01-09 Panasonic Corp 符号化復号装置
JP2014014124A (ja) * 2011-07-18 2014-01-23 Panasonic Corp 符号化復号装置
WO2014103182A1 (ja) * 2012-12-27 2014-07-03 日本電気株式会社 映像符号化装置、映像符号化方法および映像符号化プログラム
JP2014527358A (ja) * 2011-08-05 2014-10-09 クゥアルコム・インコーポレイテッド ビデオコーディングのための変換係数のコーディング
WO2014199551A1 (ja) * 2013-06-11 2014-12-18 日本電気株式会社 映像符号化装置、映像符号化方法および映像符号化プログラム
JP2015167381A (ja) * 2011-06-03 2015-09-24 クゥアルコム・インコーポレイテッドQualcomm Incorporated ビデオデータをコンテキスト適応型コーディングすること
JP2016134860A (ja) * 2015-01-21 2016-07-25 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
US9584819B2 (en) 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8891615B2 (en) 2008-01-08 2014-11-18 Qualcomm Incorporated Quantization based on rate-distortion modeling for CABAC coders
US9008171B2 (en) 2008-01-08 2015-04-14 Qualcomm Incorporated Two pass quantization for CABAC coders
KR101375668B1 (ko) * 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
US8902972B2 (en) 2008-04-11 2014-12-02 Qualcomm Incorporated Rate-distortion quantization for context-adaptive variable length coding (CAVLC)
US8218633B2 (en) * 2008-06-18 2012-07-10 Kiu Sha Management Limited Liability Company Bidirectionally decodable Wyner-Ziv video coding
KR20110027238A (ko) * 2009-09-10 2011-03-16 삼성전자주식회사 휴대용 단말기의 영상 데이터 처리 장치 및 방법
US20110125987A1 (en) * 2009-11-20 2011-05-26 Qualcomm Incorporated Dedicated Arithmetic Decoding Instruction
HUE051391T2 (hu) * 2010-04-13 2021-03-01 Ge Video Compression Llc Szignifikancia térképek és transzformációs együttható blokkok kódolása
EP2569944A1 (en) * 2010-05-12 2013-03-20 Thomson Licensing Methods and apparatus for unified significance map coding
KR101373814B1 (ko) * 2010-07-31 2014-03-18 엠앤케이홀딩스 주식회사 예측 블록 생성 장치
US9172967B2 (en) 2010-10-05 2015-10-27 Google Technology Holdings LLC Coding and decoding utilizing adaptive context model selection with zigzag scan
KR102586032B1 (ko) 2010-10-14 2023-10-10 인터디지털 브이씨 홀딩스 인코포레이티드 향상된 엔트로피 인코딩 및 디코딩을 위한 방법 및 장치
US8976861B2 (en) * 2010-12-03 2015-03-10 Qualcomm Incorporated Separately coding the position of a last significant coefficient of a video block in video coding
US9042440B2 (en) 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US8913662B2 (en) * 2011-01-06 2014-12-16 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding using CABAC
US8755620B2 (en) 2011-01-12 2014-06-17 Panasonic Corporation Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus for performing arithmetic coding and/or arithmetic decoding
US8687904B2 (en) * 2011-01-14 2014-04-01 Panasonic Corporation Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus which include arithmetic coding or arithmetic decoding
US8891617B2 (en) * 2011-01-18 2014-11-18 Google Inc. Method and system for processing video data
US10075706B2 (en) * 2011-01-19 2018-09-11 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
US8953690B2 (en) * 2011-02-16 2015-02-10 Google Technology Holdings LLC Method and system for processing video data
US10397577B2 (en) 2011-03-08 2019-08-27 Velos Media, Llc Inverse scan order for significance map coding of transform coefficients in video coding
US8861599B2 (en) 2011-03-08 2014-10-14 Sony Corporation Context reduction for last transform position coding
US20120230396A1 (en) * 2011-03-11 2012-09-13 Mitsubishi Electric Research Laboratories, Inc. Method for Embedding Decoding Information in Quantized Transform Coefficients
US9491469B2 (en) 2011-06-28 2016-11-08 Qualcomm Incorporated Coding of last significant transform coefficient
PL2728866T3 (pl) 2011-06-28 2019-05-31 Samsung Electronics Co Ltd Sposób dekodowania wideo z wykorzystaniem dekodowania arytmetycznego
US9661326B2 (en) * 2011-06-28 2017-05-23 Samsung Electronics Co., Ltd. Method and apparatus for entropy encoding/decoding
BR112014007494B1 (pt) * 2011-09-29 2022-05-31 Sharp Kabushiki Kaisha Dispositivo de decodificação de imagem, método de decodificação de imagem, e dispositivo de codificação de imagem
MX353235B (es) 2011-09-29 2018-01-08 Sharp Kk Star Dispositivo de decodificación de imágenes, método de decodificación de imágenes y dispositivo de codificación de imágenes.
AU2011236109B2 (en) * 2011-10-18 2015-02-19 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
US8964849B2 (en) 2011-11-01 2015-02-24 Blackberry Limited Multi-level significance maps for encoding and decoding
MX2013008943A (es) * 2011-11-07 2013-09-06 Panasonic Corp Metodo de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de codificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion y decodificacion de imagenes.
KR101672107B1 (ko) 2011-11-08 2016-11-02 구글 테크놀로지 홀딩스 엘엘씨 변환 계수들에 대한 이진 코드워드들을 결정하는 방법
CN103931197B (zh) 2011-11-08 2018-01-23 谷歌技术控股有限责任公司 确定用于变换系数的二进制码字的方法
US9247257B1 (en) 2011-11-30 2016-01-26 Google Inc. Segmentation based entropy encoding and decoding
EP2797321B1 (en) * 2011-12-21 2021-02-17 Sun Patent Trust Context selection for entropy coding of transform coefficients
US9191670B2 (en) * 2012-01-17 2015-11-17 Qualcomm Incorporated Throughput improvement for CABAC coefficient level coding
EP2786575A4 (en) * 2012-01-20 2016-08-03 Sony Corp REDUCTION OF CODING COMPLEXITY ON CARD OF IMPORTANCE
US9635358B2 (en) 2012-01-21 2017-04-25 Google Technology Holdings LLC Method of determining binary codewords for transform coefficients
CN103220509B (zh) * 2012-01-21 2017-12-15 中兴通讯股份有限公司 自适应控制算术编码bin数量的方法、编码器和解码器
EP2805497A1 (en) 2012-01-21 2014-11-26 Motorola Mobility LLC Method of determining binary codewords for transform coefficients
US20130195200A1 (en) * 2012-01-28 2013-08-01 Research In Motion Limited Methods and devices for context modeling to enable modular processing
US9479780B2 (en) * 2012-02-01 2016-10-25 Google Technology Holdings LLC Simplification of significance map coding
WO2013116849A1 (en) 2012-02-04 2013-08-08 General Instrument Corporation Devices and methods for context reduction in last significant coefficient position coding
US9237344B2 (en) * 2012-03-22 2016-01-12 Qualcomm Incorporated Deriving context for last position coding for video coding
CA2807382A1 (en) * 2012-04-16 2013-10-16 Research In Motion Limited Modified contexts for level coding of video data
US9774856B1 (en) 2012-07-02 2017-09-26 Google Inc. Adaptive stochastic entropy coding
US9509998B1 (en) 2013-04-04 2016-11-29 Google Inc. Conditional predictive multi-symbol run-length coding
US10264261B2 (en) * 2013-08-27 2019-04-16 Integrated Device Technology, Inc. Entropy encoding initialization for a block dependent upon an unencoded block
JP6197496B2 (ja) * 2013-08-30 2017-09-20 富士通株式会社 量子化装置、量子化方法および量子化プログラム
US9392288B2 (en) 2013-10-17 2016-07-12 Google Inc. Video coding using scatter-based scan tables
US9179151B2 (en) 2013-10-18 2015-11-03 Google Inc. Spatial proximity context entropy coding
US10313681B2 (en) * 2013-12-18 2019-06-04 Intel Corporation Techniques for rate-distortion optimization in video compression
US9432696B2 (en) 2014-03-17 2016-08-30 Qualcomm Incorporated Systems and methods for low complexity forward transforms using zeroed-out coefficients
US9516345B2 (en) 2014-03-17 2016-12-06 Qualcomm Incorporated Systems and methods for low complexity forward transforms using mesh-based calculations
US9948934B2 (en) * 2014-07-02 2018-04-17 Apple Inc. Estimating rate costs in video encoding operations using entropy encoding statistics
FR3024933A1 (fr) * 2014-08-12 2016-02-19 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
US9762912B2 (en) * 2015-01-16 2017-09-12 Microsoft Technology Licensing, Llc Gradual updating using transform coefficients for encoding and decoding
US9781424B2 (en) 2015-01-19 2017-10-03 Google Inc. Efficient context handling in arithmetic coding
US9916415B2 (en) * 2016-04-11 2018-03-13 Globalfoundries Inc. Integrated circuit performance modeling that includes substrate-generated signal distortions
CN108322749B (zh) * 2018-03-15 2021-03-16 北京数码视讯科技股份有限公司 Rdoq的系数优化方法、rdoq的加速方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03216075A (ja) * 1990-01-19 1991-09-24 Mitsubishi Electric Corp 変換符号化方式
JP2005260576A (ja) * 2004-03-11 2005-09-22 Toshiba Corp 画像符号化方法及び装置
JP2005348310A (ja) * 2004-06-07 2005-12-15 Nippon Telegr & Teleph Corp <Ntt> 動画像符号化方法,動画像符号化装置,動画像符号化プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2006121538A (ja) * 2004-10-25 2006-05-11 Hitachi Ltd 画像符号化装置、及び画像符号化方法
JP2006157881A (ja) * 2004-11-08 2006-06-15 Toshiba Corp 可変長符号化装置及びその方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2118880A1 (en) * 1994-03-11 1995-09-12 Kannan Ramchandran Jpeg/mpeg decoder-compatible optimized thresholding for image and video signal compression
CN1157080A (zh) * 1995-04-25 1997-08-13 菲利浦电子有限公司 用于编码视频图像的装置和方法
TW455821B (en) 1999-09-03 2001-09-21 Ind Tech Res Inst Signal process method and device
ES2730953T3 (es) 2002-04-26 2019-11-13 Ntt Docomo Inc Método de decodificación de señal, dispositivo de decodificación de señal, y programa de decodificación de señal
ATE532270T1 (de) 2004-07-14 2011-11-15 Slipstream Data Inc Verfahren, system und computerprogramm für die optimierung von datenkomprimierung
KR100612015B1 (ko) 2004-07-22 2006-08-11 삼성전자주식회사 컨텍스트 적응형 이진 산술 부호화 방법 및 그 장치
US20060098733A1 (en) 2004-11-08 2006-05-11 Kabushiki Kaisha Toshiba Variable-length coding device and method of the same
NO322043B1 (no) 2004-12-30 2006-08-07 Tandberg Telecom As Fremgangsmate for forenklet entropikoding
RU2336661C2 (ru) 2005-04-19 2008-10-20 Самсунг Электроникс Ко., Лтд. Способ и устройство адаптивного выбора контекстной модели для кодирования по энтропии
KR100746007B1 (ko) 2005-04-19 2007-08-06 삼성전자주식회사 엔트로피 코딩의 컨텍스트 모델을 적응적으로 선택하는방법 및 비디오 디코더
US8379721B2 (en) 2005-09-22 2013-02-19 Qualcomm Incorported Two pass rate control techniques for video coding using a min-max approach
SI2192783T1 (sl) 2006-01-09 2015-09-30 Matthias Narroschke Adaptivno kodiranje napake predikcije pri hibridnem video kodiranju
KR20070077059A (ko) 2006-01-19 2007-07-25 삼성전자주식회사 엔트로피 부호화/복호화 방법 및 장치
US8401082B2 (en) 2006-03-27 2013-03-19 Qualcomm Incorporated Methods and systems for refinement coefficient coding in video compression
CN100574434C (zh) * 2006-06-23 2009-12-23 深圳安凯微电子技术有限公司 一种图像压缩/解压缩方法和系统
US8582663B2 (en) 2006-08-08 2013-11-12 Core Wireless Licensing S.A.R.L. Method, device, and system for multiplexing of video streams
WO2008136828A1 (en) 2007-05-04 2008-11-13 Qualcomm Incorporated Video coding mode selection using estimated coding costs
US7957600B2 (en) * 2007-05-08 2011-06-07 Arris Group, Inc. Methods and systems for rate-distortion optimized quantization of transform blocks in block transform video coding
US8891615B2 (en) 2008-01-08 2014-11-18 Qualcomm Incorporated Quantization based on rate-distortion modeling for CABAC coders

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03216075A (ja) * 1990-01-19 1991-09-24 Mitsubishi Electric Corp 変換符号化方式
JP2005260576A (ja) * 2004-03-11 2005-09-22 Toshiba Corp 画像符号化方法及び装置
JP2005348310A (ja) * 2004-06-07 2005-12-15 Nippon Telegr & Teleph Corp <Ntt> 動画像符号化方法,動画像符号化装置,動画像符号化プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2006121538A (ja) * 2004-10-25 2006-05-11 Hitachi Ltd 画像符号化装置、及び画像符号化方法
JP2006157881A (ja) * 2004-11-08 2006-06-15 Toshiba Corp 可変長符号化装置及びその方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015167381A (ja) * 2011-06-03 2015-09-24 クゥアルコム・インコーポレイテッドQualcomm Incorporated ビデオデータをコンテキスト適応型コーディングすること
JP2014003698A (ja) * 2011-06-24 2014-01-09 Panasonic Corp 符号化復号装置
JP2014014124A (ja) * 2011-07-18 2014-01-23 Panasonic Corp 符号化復号装置
JP2014527358A (ja) * 2011-08-05 2014-10-09 クゥアルコム・インコーポレイテッド ビデオコーディングのための変換係数のコーディング
US9584819B2 (en) 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
JP5574072B1 (ja) * 2012-12-27 2014-08-20 日本電気株式会社 映像符号化装置、映像符号化方法および映像符号化プログラム
WO2014103182A1 (ja) * 2012-12-27 2014-07-03 日本電気株式会社 映像符号化装置、映像符号化方法および映像符号化プログラム
US10003804B2 (en) 2012-12-27 2018-06-19 Nec Corporation Video coding device using quantizing an orthogonal transform coefficient
WO2014199551A1 (ja) * 2013-06-11 2014-12-18 日本電気株式会社 映像符号化装置、映像符号化方法および映像符号化プログラム
KR20160006767A (ko) * 2013-06-11 2016-01-19 닛본 덴끼 가부시끼가이샤 영상 부호화 장치, 영상 부호화 방법, 및 영상 부호화 프로그램
KR101645911B1 (ko) 2013-06-11 2016-08-04 닛본 덴끼 가부시끼가이샤 영상 부호화 장치, 영상 부호화 방법, 및 영상 부호화 프로그램
US10045033B2 (en) 2013-06-11 2018-08-07 Nec Corporation Video coding device, video coding method, and video coding program
JP2016134860A (ja) * 2015-01-21 2016-07-25 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム

Also Published As

Publication number Publication date
CN101911702B (zh) 2012-07-25
JP5290325B2 (ja) 2013-09-18
TW201004354A (en) 2010-01-16
RU2475999C2 (ru) 2013-02-20
CA2709711C (en) 2013-05-14
BRPI0907209A2 (pt) 2015-07-14
WO2009089370A1 (en) 2009-07-16
KR20100102701A (ko) 2010-09-24
TWI457002B (zh) 2014-10-11
CA2709711A1 (en) 2009-07-16
RU2010133239A (ru) 2012-02-20
US20090175332A1 (en) 2009-07-09
US8891615B2 (en) 2014-11-18
EP2243296A1 (en) 2010-10-27
EP2824929A2 (en) 2015-01-14
EP2243296B1 (en) 2017-03-01
KR101177737B1 (ko) 2012-08-28
EP2824929A3 (en) 2015-06-10
CN101911702A (zh) 2010-12-08

Similar Documents

Publication Publication Date Title
JP5290325B2 (ja) Cabacコーダのためのレート歪みモデリングに基づいた量子化
JP5139542B2 (ja) Cabacコーダのための2パス量子化
KR101232420B1 (ko) 컨텍스트-적응형 가변 길이 코딩 (cavlc) 을 위한 레이트-왜곡 양자화
US8571104B2 (en) Adaptive coefficient scanning in video coding
TWI413416B (zh) 基於視訊寫碼中活動量度之濾波預測
JP5415546B2 (ja) ベクトル化エントロピーコーディングに基づく加重予測

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120703

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121002

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121010

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121203

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121227

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130605

R150 Certificate of patent or registration of utility model

Ref document number: 5290325

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees