JP5185436B2 - コンテキスト適応型可変長符号化(cavlc)のためのレート歪み量子化 - Google Patents

コンテキスト適応型可変長符号化(cavlc)のためのレート歪み量子化 Download PDF

Info

Publication number
JP5185436B2
JP5185436B2 JP2011504214A JP2011504214A JP5185436B2 JP 5185436 B2 JP5185436 B2 JP 5185436B2 JP 2011504214 A JP2011504214 A JP 2011504214A JP 2011504214 A JP2011504214 A JP 2011504214A JP 5185436 B2 JP5185436 B2 JP 5185436B2
Authority
JP
Japan
Prior art keywords
coefficient
quantization
coefficients
candidate
level
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
JP2011504214A
Other languages
English (en)
Other versions
JP2011517911A (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 JP2011517911A publication Critical patent/JP2011517911A/ja
Application granted granted Critical
Publication of JP5185436B2 publication Critical patent/JP5185436B2/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/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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers

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)

Description

関連出願
本出願は、コンテンツ全体が参照により本明細書に組み込まれる、2008年4月11日に出願された米国仮出願61/044,232号の利益を主張する。
本開示はデジタルビデオ符号化に関し、さらに詳細にはビデオ符号化のための量子化技法に関する。
デジタルビデオ機能は、デジタルテレビ、デジタルダイレクトブロードキャストシステム、無線ブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、ビデオゲーム機器、ビデオゲームコンソール、携帯無線電話または衛星無線電話、および同様のものを含む広範囲のデバイスに組み込まれうる。デジタルビデオデバイスは、より効率的にデジタルビデオ情報を送受信するために、MPEG-2、MPEG-4、またはITU-T H.264/MPEG-4 Part 10 アドバンスドビデオ符号化(Advanced Video Coding:AVC)などのビデオ圧縮技法を実施する。ビデオ圧縮技法は、ビデオシーケンスに内在する冗長性を削減または除去するために、空間予測(spatial prediction)および時間予測(temporal prediction)を実行する。
イントラ符号化(intra-coding)は、ビデオフレーム、ビデオフレームのスライス、ピクチャのグループ、または別の定義されるビデオブロックのユニットを備える所与の符号化ユニット内のビデオブロック間の空間的冗長性を削減または除去するために空間予測に依存する。対照的に、インター符号化(inter-coding)は、ビデオシーケンスの連続符号化ユニットのビデオブロック間の時間的冗長性を削減または除去するために時間予測に依存する。イントラ符号化の場合、ビデオ符号器は、同一の符号化ユニット内の別のデータに基づいてデータを圧縮するために空間予測を実行する。インター符号化の場合、ビデオ符号器は、2個以上の隣接符号化ユニットの対応するビデオブロックの動きを追跡するために、動き推定(motion estimation)および動き補償(motion compensation)を実行する。
符号化されたビデオブロックは、予測ブロック、および、符号化されているブロックと予測ブロックとの間の差を示すデータの残差ブロックを作成または識別するために使用される予測情報によって表される。インター符号化の場合、データの予測ブロックを識別するために1つ以上の動きベクトルが使用され、イントラ符号化の場合、予測ブロックを生成するために予測モードが使用される。イントラ符号化およびインター符号化の両方は、符号化に使用される異なるブロックサイズおよび/または予測技法を定義する幾つかの異なる予測モードを定義する。付加的なタイプのシンタックスエレメントは、また、符号化プロセスにおいて使用される符号化技法またはパラメータを制御あるいは定義するために、符号化されたビデオデータの一部として含まれる。
ブロックベースの予測符号化の後、ビデオ符号器は、残差ブロックの通信に関連付けられたビットレートをさらに削減すために、変換、量子化、およびエントロピー符号化プロセスを適用する。変換技法は、離散コサイン変換(discrete cosine transform)、または概念的に類似したプロセスを備える。あるいは、ウェーブレット変換(wavelet transform)、整数変換(integer transform)、または別のタイプ変換が使用される。離散コサイン変換(DCT)プロセスにおいて、例として、変換プロセスは、ピクセル値のセットを変換係数(transform coefficients)に変換し、変換係数は周波数ドメインにおけるピクセル値のエネルギーを表す。量子化は、変換係数に適用され、一般に、任意の所与の変換係数に関連付けられたビット数を限定するプロセスを含む。エントロピー符号化は、量子化された変換係数のシーケンスをまとめて圧縮する1つ以上のプロセスを備える。
コンテキスト適応型可変長符号化(context-adaptive variable length coding:CAVLC)は、ITU-T H.264/ MPEG-4第10部AVC(International Telecommunication Union Standardization Sector Motion Pictures Expert Group-4 Part 10 Advanced Video Coding:以降「H.264/ MPEG-4 Part 10 AVC標準」)などの幾つかの符号化標準において現在サポートされるエントロピー符号化技法の1つのタイプである。H.264/MPEG-4第10部AVC標準において定義されるようなCAVLCに従って、符号器は、係数ベクトルを表す複数のシンタックスエレメントを符号化する。シンタックスエレメントは、係数ベクトル内の全ての係数、係数ベクトル内のいくつかの後端の係数、後端の係数の各々の符号、後端の係数以外の非ゼロ係数の大きさ(またはレベル)、全ての実行(run)の合計(すなわち、最後の非ゼロ係数の前のトータル実行数)、および各非ゼロ係数前のゼロの実行時間を含む。CAVLCは、符号器が係数ベクトルの特定の特徴に基づいてシンタックスエレメントを符号化する際に使用するVLC符号化テーブルを適応して選択するという点で適応型である。
一般に、本開示は、レートおよび歪みの所望のバランスを達成することができる方法でビデオブロック係数の量子化のための技法を記述する。記述される技法は、最小符号化コスト(lowest coding cost)に帰着する個別係数に対する量子化レベルを選択するために、各個別係数に関連付けられた複数の量子化レベルを分析する。CAVLCは各係数を個別に符号化しないため、技法は、以前に量子化された係数に対して選択された量子化レベル、および係数ベクトルの後の係数に対して推定される(または予測される)量子化レベルに基づいて、個別係数に関連付けられた候補量子化レベルの各々に対する符号化コストを計算する。各係数に対する量子化レベルは、レート歪みモデル(rate-distortion model)を最小化する量子化された係数のセットを獲得するために、計算された符号化コストに基づいて選択される。
ある例において、本開示は、ビデオ符号化プロセスにおいてビデオブロック係数の少なくとも一部を量子化するための方法を提供する。方法は、ビデオブロック係数の各部分について、それぞれの係数に関連付けられた複数の候補量子化レベルに対する符号化コストを決定することと、量子化された係数のセットを獲得するために、符号化コストに基づいて各係数に対して複数の候補量子化レベルの1つを選択することとを含む。
別の例において、本開示は、ビデオ符号化プロセスにおいてビデオブロック係数の少なくとも一部を量子化するための装置を提供する。装置は、ビデオブロック係数の各部分について、それぞれの係数に関連づけられた複数の候補量子化レベルに対する符号化コストを決定し、量子化された係数のセットを獲得するために符号化コストに基づいて各係数に対する複数の候補量子化レベルの1つを選択する量子化ユニットを含む。
別の例において、装置は、ビデオ符号化プロセスにおいて、ビデオブロック係数の少なくとも一部を量子化する。装置は、ビデオブロック係数の各部分について、それぞれの係数に関連付けられた複数の候補量子化レベルに対する符号化コストを決定するための手段と、量子化された係数のセットを獲得するために符号化コストに基づいて各係数に対する複数の候補量子化レベルの1つを選択するための手段とを備える。
本開示に記述される技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせに実施されうる。ソフトウェアに実施される場合、ソフトウェアは、マイクロプロセッサ、特定用途向けIC(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはデジタル信号プロセッサ(DSP)などの1つ以上のプロセッサで実行される。この技法を実行するソフトウェアは、初めにコンピュータ読み取り可能媒体に記憶され、プロセッサにおいてロードおよび実行される。
従って、本開示は、また、実行されることでデバイスに、ビデオ符号化プロセスにおいてビデオブロック係数の少なくとも一部を量子化させる命令を備えるコンピュータ読み取り可能媒体を企図する。命令は、デバイスに、ビデオブロック係数の各部分について、それぞれの係数に関連付けられた複数の候補量子化レベルに対する符号化コストを決定させ、量子化係数のセットを獲得するために符号化コストに基づいて各係数に対する複数の候補量子化レベルの1つを選択させる。
本開示の1つ以上の態様の詳細は、添付図および以下の記述において示される。本開示に記述される技法の他の特徴、目的、および利点は、説明および図面から、また、請求項から明白となろう。
図1は、本開示の1つ以上の技法を実施するビデオ符号化および復号システムを示す例示的なブロック図である。 図2は、本開示と一致するビデオ符号器の例を示すブロック図である。 図3は、4x4のビデオブロックのジグザグ走査を示す概念図である。 図4は、本開示と一致する量子化トレリスを示すブロック図である。 図5は、本開示と一致する技法を示すフロー図である。 図6は、本開示と一致する技法を示すフロー図である。 図7は、本開示と一致する技法を示すフロー図である。 図8は、本開示と一致する技法を示すフロー図である。
発明の詳細な説明
図1は、本開示の技法を実施する例示的なビデオ符号化および復号システム10を示すブロック図である。図1に示されるように、システム10は、通信チャネル16を介して符号化されたビデオを目的デバイス(destination device)14に送信するソースデバイス12を含む。ソースデバイス12および目的デバイス14は、広帯域の有線または無線デバイスのいずれかを備える。幾つかの場合において、ソースデバイス12および目的デバイス14は、無線ハンドセット(いわゆる、携帯または衛星無線電話機)、または通信チャネル16を通してビデオ情報を通信することができる任意の無線デバイスなどの無線通信デバイスを備える。本開示の技法は、無線のアプリケーションまたは設定との関連で本開示全体に記述されるが、そのように限定されるべきではない。この技法は、また、有線のアプリケーションまたは設定にも利用される。
図1の例において、ソースデバイス12は、ビデオソース20、ビデオ符号器22、変調器/復調器(モデム)23、および送信機24を含む。目的デバイス14は、受信機26、モデム27、ビデオ復号器28、およびディスプレイデバイス30を含む。本開示に従って、ソースデバイス12のビデオ符号器22は、本開示に記述される量子化技法を適用するように構成される。このように、ソースデバイス12は、所望のレベルの量子化を達成し、それにより符号化プロセスを改善する。
一般に、ソースデバイス12は、目的デバイス14への送信のための符号化されたビデオデータを生成する。しかし、幾つかの場合において、デバイス12、14は実質的に対称的な方法で動作する。例えば、デバイス12、14の各々は、送信および受信コンポーネントと同様に、ビデオ符号化および復号コンポーネントを含む。それゆえ、システム10は、例えば、ビデオストリーミング、ビデオプレイバック、ビデオブロードキャスト、またはビデオ電話などのために、デバイス12と14との間で一方向または両方向のビデオ送信をサポートすることができる。
ソースデバイス12のビデオソース20は、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、またはビデオコンテンツプロバイダから(例えば衛星を介して)のビデオフィードなどのビデオキャプチャデバイスを含む。さらなる代替として、ビデオソース20は、ソースビデオ、または、ライブビデオ、アーカイブビデオ、コンピュータ作成ビデオの組み合わせとしてのコンピュータグラフィックベースのデータを生成する。幾つかの場合において、ビデオソース20がビデオカメラであるとすると、ソースデバイス12および目的デバイス14は、いわゆるカメラ電話またはビデオ電話を形成する。それぞれの場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ作成ビデオは、ビデオ符号器22によって符号化される。次に、符号化されたビデオ情報は、例えば、符号分割多元接続(CDMA)のような通信標準または別の通信標準に従ってモデム23によって変調され、送信機24を介して目的デバイス14に送信される。モデム23は、種々のミキサー、フィルタ、増幅器、または信号変調のために設計される別のコンポーネントを含む。送信機24は、増幅器、フィルタ、および1つ以上のアンテナを含む、データを送信するために設計される回路を含む。
目的デバイス14の受信機26は、チャネル16を通して情報を受信し、モデム27は情報を復調する。ビデオ復号器28は、ビデオシーケンスを復元するために、符号化されたビデオデータを復号する。ディスプレイデバイス30は、復号されたビデオデータをユーザに表示し、それは、陰極線管、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスといった様々なディスプレイデバイスのいずれかを含む。
図1の例において、通信チャンネル16は、無線周波数(RF)スペクトルまたは1つ以上の物理的送信ライン、または無線および有線メディアの任意の組み合わせなど、任意の無線または有線の通信メディアを備える。通信チャンネル16は、ローカルエリアネットワーク、広域ネットワーク、またはインターネットのようなグローバルネットワークなどのパケットベースのネットワークの一部を形成する。通信チャンネル16は、一般に、ソースデバイス12から目的デバイス14にビデオデータを送信するための任意の適切な通信メディアまたは異なる通信メディアの集まりを表わす。
ビデオ符号器22およびビデオ復号器28は、H.264/MPEG-4第10部AVC標準のようなビデオ圧縮標準に従って動作する。ITU-T H.264/MPEG-4第10部AVC標準は、JVT(Joint Video Team)として知られる共同体の成果物として、ITU-TのVCEG(Video Coding Experts Group)とMPEG(Moving Picture Experts Group)とによって公式化された。幾つかの態様において、本開示に記述される技法は、全体的にH.264標準に合致するデバイスに適用される。
ビデオ符号器22およびビデオ復号器28は、各々、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向けIC(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせとして実施されうる。ビデオ符号器22およびビデオ復号器28の各々は、1つ以上の符号器あるいは復号器に含まれ、そのどちらか一方は、複合型符号器/復号器の(コーデック)の一部として、それぞれのモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバ、または同様のものに一体化されうる。
ビデオシーケンスは典型的に一連のビデオフレームを含む。ビデオ符号器22は、ビデオデータを符号化するために個々のビデオフレーム内のビデオブロック上で動作する。ビデオブロックは固定または可変サイズを有し、特定の符号化標準に従ってサイズが異なる。各ビデオフレームは、個々に復号可能なビデオフレームのユニットである一連のスライスを含む。各スライスは、一連のマクロブロックを含み、それはサブブロックに配列される。例として、H.264標準は、様々なブロックサイズ(ルーマ成分(luma component)の場合、16×16、8×8または4x4、およびクロマ成分(chroma component)の場合、8×8など)におけるイントラ予測に加えて、様々なブロックサイズ(ルーマ成分の場合、16×16、16×8、8×16、8×8、8×4、4×8、4×4、およびクロマ成分の場合、対応するスケールサイズなど)におけるインター予測をサポートする。より小さいビデオブロックは、より良い解像度を提供することができ、高レベルの詳細を含むビデオフレームの位置に対して使用される。一般に、マクロブロック(MB)および様々なサブブロックは、ビデオブロックであると考えられる。
ビデオブロックは、ピクセルデータのブロック、または、例えば、離散コサイン変換(DCT)または別の変換プロセスといった変換プロセスの結果として生じる変換係数(transformation coefficients)のブロックを備える。本開示で使用されるような「係数」という用語は、一般的に変換係数を指すが、代替的に、ピクセル値のような別のタイプの係数あるいは値、または別のタイプの係数を指す。本開示の量子化技法は、典型的に、変換されたビデオブロックの変換係数(時々、残差変換係数(residual transform coefficients)と呼ばれる)に適用される。
ビデオブロックを符号化するために、ビデオ符号器22は、予測ブロックを生成するためにイントラ予測またはインター予測を実行する。ビデオ符号器22は、残差ブロックを生成するために、符号化されるべきオリジナルのビデオブロックから予測ブロックを引く。従って、残差ブロックは、符号化されているブロックと予測ブロックとの間の差を示す。ビデオ符号器22は、ブロックの変換係数を生成するために、残差ブロック上で変換を実行する。イントラまたはインターベースの予測符号化および変換技法に続いて、ビデオ符号器22は量子化を実行する。量子化は、より詳細に以下に議論されるが、一般に、係数を表わすために使用されるデータの量をできる限り削減するように係数が量子化されるプロセスを指す。量子化に続いて、エントロピー符号化が、CAVLCのようなエントロピー符号化方法論に従って実行される。ビデオ符号器22によって実行される符号化プロセスの各ステップのさらなる詳細は、図2に関して以下により詳しく記述されるであろう。
本開示は、レートと歪みとの所望のバランスを達成することができる方法で、ビデオブロック係数を量子化するための技法を提供する。換言すると、技法は、通信レートのための所与のビットバジェットで所望のレベルの品質を達成するために、符号化プロセスの量子化ステップを改善する。本開示の技法によると、ビデオ符号器22は、ブロック係数の少なくとも一部について、最低符号化コストを有する個別係数に対する量子化レベルを選択するために、複数の量子化レベルを分析する。
ある例において、ビデオ符号器22は、例えば、レート歪みモデルに関連付けられたラグランジュコスト関数(Lagrange cost function)を使用して、連続して個別係数に関連付けられた候補量子化レベルの各々に対する符号化コストを計算する。CAVLCが各係数を個々に符号化しないため、ビデオ符号器22は、係数ベクトルの他の係数全ての量子化レベルに基づいて、個別係数に関連付けられた候補量子化レベルの各々に対する符号化コストを計算する。現在と前の係数の量子化レベルは知られている;現在の係数の量子化レベルは候補量子化レベルの1つと等しく、前の係数の量子化レベルは以前に選択されている。現在の係数の後の量子化レベルの係数は未知であるため、以下に詳細に記述されるように推定される。ビデオ符号器22は、現在分析されている個別係数に対して、最低符号化コストを有する候補量子化レベルを選択する。ビデオ符号器22は、ブロックの全ての係数に対して上に記述された方法で量子化レベルを選択する。このアプローチはワンパスまたは単一パスアプローチと呼ばれる。
あるいは、ビデオ符号器22は、個別係数に関連付けられた候補量子化レベルの各々に対して1つ以上の符号化コスト(または複数の符号化コスト)を計算する。複数の符号化コストは、前の係数に関連付けられた、以前に選択された量子化レベルの生存パス、および後の係数に対する将来(後)の量子化レベルの推定に基づいて計算される。図2および4に関して以下にさらに詳細に記述されるように、生存パスは、ブロック内の前の係数についての量子化決定のシーケンスを表わす。ビデオ符号器22は、単一の生存パスが存在するまで、ブロックの全ての係数に対して、上に記述された方法で量子化レベルを選択し続ける。単一の生存パスは、ブロック中の全ての係数についての量子化決定のシーケンスを表わす。
本開示の量子化技法は、ビデオ符号器22が通信レートのための所与のビットバジェットで所望のレベルの品質を達成することを可能にする。本開示の技法に従って、ビデオ符号器22は、係数単位でレート歪みモデルを実施し、所望のレベルの量子化を達成することができる。対照的に、従来の量子化技法は、係数単位に対立するものとしてブロック単位でレート歪みモデルを実施する。換言すると、従来の量子化技法は、単に、全ブロックに対する符号化コストを計算する際に、各係数に対して単一の量子化レベルを分析するのみである。そのような技法は、量子化された係数または量子化レベルを選択することにおいて、本開示の技法ほど効果的ではなく、そのため、歪みメトリクは、最大目標符号化ビットレート制約に従って最小化され、または等価的に、符号化ビットレートは、最大許容歪み制約に従って最小化される。
図2は、本開示と一致するビデオブロック係数の量子化を実行するレート歪み(RD)量子化ユニット40を含むビデオ符号器50の例を示すブロック図である。例えば、ビデオ符号器50はソースデバイス12のビデオ符号器22に相当する。ビデオ符号器50は、ビデオフレーム内のブロックのイントラ符号化およびインター符号化を実行する。イントラ符号化は、所与のビデオフレーム内のビデオにおける空間的冗長性を削減または除去するために、空間予測に依存する。インター符号化は、ビデオシーケンスの隣接フレーム内のビデオにおける時間的冗長性を削減または除去するために、時間予測に依存する。インター符号化について、ビデオ符号器50は、2つ以上の隣接フレーム間のマッチングビデオブロックの動きを追跡するために動き推定を実行する。イントラモード(I-モード)は空間ベースの圧縮モードを指し、予測(P-モード)または双方向(B-モード)などのインターモードは時間ベースの圧縮モードを指す。
図2の例において、ビデオ符号器50は、予測ユニット32、参照フレーム記憶装置34、変換ユニット38、RD量子化ユニット40、逆量子化ユニット42、逆変換ユニット44、およびCAVLC符号化ユニット46を含む。非ブロック化フィルタ(deblocking filter)(図示されない)は、また、ブロックノイズアーティファクトを除去する目的でブロック境界をフィルタするために含まれる。ビデオ符号器50は、また、加算器48および加算器51を含む。
図2に示されるように、ビデオ符号器50は、符号化されるべきビデオフレームの現在のビデオブロックまたはビデオフレームのスライスを受信する。予測ユニット32は、予測ブロックを生成するために予測符号化技法を実行する。予測ユニット32は、イントラ予測ユニットおよび/またはインター予測ユニットを表す。インター符号化の場合、予測ユニット32は、予測ブロックを定義するために、符号化されるべき現在のビデオブロックと1つ以上の参照ビデオフレームまたはスライス内の様々なブロックとを比較する。イントラ符号化の場合、予測ユニット32は、同一の符号化されたユニット(例えば、ビデオフレームまたはスライス)内の隣接データに基づいて予測ブロックを生成する。
インター符号化の場合、予測ユニット32は、各々が参照フレーム内のブロックを指す1つ以上の動きベクトルを識別する動き推定(motion estimation)、および、その動きベクトルに基づいて予測ブロックを生成する動き補償ユニットを備える。そのため、動き推定は、動きを推定する動きベクトルを生成するプロセスであると考えられる。例えば、動きベクトルは、現在のフレーム内で符号化されている現在のブロックに関して参照フレーム内の予測ブロックの転位(displacement) を示す。参照フレームは、一時的に、現在のビデオブロックが属するビデオフレームまたはスライスの前または後に配置される。動き補償は、動き推定によって決定される動きベクトルに基づいて予測ブロックを取得または生成するプロセスであると考えられる。
述べられたように、イントラ符号化の場合、予測ユニット32は、同一の符号化されたユニット内の隣接データに基づいて予測ブロックを生成する。1つ以上のイントラ予測モードは、どのようにイントラ予測ブロックが定義されうるかを定義する。H.264/MPEG-4第10部AVC標準に従って、例えば、予測ユニット32は、9つの可能なイントラ予測モード:垂直予測モード、水平予測モード、DC予測モード、対角左下予測モード、対角右下予測モード、垂直右予測モード、水平下向き予測モード、垂直左予測モード、および水平上向き予測モードのうちの1つを使用して、4×4または8×8の予測ブロックを生成する。あるいは、予測ユニット32は、H.264/MPEG-4第10部AVC標準に定義される4つの可能なイントラ予測モード:垂直予測モード、水平予測モード、DC予測モード、および平面予測モードのうちの1つを使用して、16×16の予測ブロックを生成する。
ビデオ符号器50は、符号化されるべきオリジナルのビデオブロックから、予測ユニット32によってつくり出された予測ビデオブロックを差し引くことにより、残差ビデオブロック(「RESID BLOCK」とラベル付けされる)を形成する。加算器48は、残差ブロックを獲得するために、この減算動作を実行する。変換ユニット38は、残差変換係数のビデオブロックをつくり出すために残差ブロックに離散コサイン変換(DCT)などの変換を適用する。変換ユニット38は、8×8(N=8)または4×4(N=4)のブロックベースで変換を適用する。しかし、変換ユニット38は、概念的にDCTに類似する、H.264標準によって定義される別の変換を実行しうる。ウェーブレット変換、整数変換、サブバンド変換、または別のタイプの変換も、また、使用されうる。いかなる場合においても、変換ユニット38は残差ブロックに変換を適用し、残差変換係数のブロックをつくり出す。変換は残差情報をピクセルドメインから周波数ドメインに変換する。
RD量子化ユニット40(本明細書において「量子化ユニット40」とも呼ばれる)は、ビットレートをさらに減らすために、残差変換係数を量子化する。特に、量子化ユニット40は、通信レートのための所与のビットバジェットで所望のレベルの品質を達成するために、より詳しく以下に記述される1つ以上の量子化技法を実行する。このように、量子化ユニット40はレート歪みモデル(rate-distortion model)を実施し、例えば、所与のレートまたはビットバジェットに対して所望のビット数を達成する、所望の量子化レベルを達成することができる。
予測シンタックス(例えば、動きベクトル、予測モード、または別の制御情報)と共に、量子化された変換係数はエレメントの完全に符号化されたシーケンスを形成する。CAVLC符号化ユニット46は、それらの表現に必要なビット数をさらに減らすように、量子化された変換係数および予測シンタックスをエントロピー符号化する。CAVLC符号化ユニット46によるエントロピー符号化に続いて、符号化されたビデオは別のデバイスに送信され、もしくは、後の送信または検索のために保管される。
量子化された係数は、また、逆量子化ユニット(inverse quantization unit)42に提供される。逆量子化ユニット42および逆変換ユニット(inverse transform unit)44は、参照ブロックとして使用する目的で、ピクセルドメインの中の残差ブロックを復元(「RECON RESID」とラベル付けされる)するために、それぞれ、逆量子化および逆変換を適用する。加算器51は、参照フレーム記憶装置34への記憶の目的で、復元されたビデオブロックをつくり出すために、予測ユニット32によってつくり出された予測ブロックに、逆変換ユニット44によって出力された復元された残差ブロックを加える。参照フレーム記憶装置34に記憶された復元されたビデオブロックは、後のビデオフレーム内のブロックをインター符号化するため、または同一のフレーム内のブロックをイントラ符号化するために、参照ブロックとして予測ユニット32によって使用される。
予測誤差または残差ブロックE(x、y)、すなわち、符号化されるべきブロックI(x、y)と予測ブロックP(x、y)との間の差は、変換基底関数fij(x、y)の加重和として表わされる。
Figure 0005185436
ここで、xおよびyは、ビデオブロック内の所与の係数の位置を定義し、cijは重み係数であり、それは、時々、予測誤差係数または残差変換係数と呼ばれる。残差変換係数または重みcijは、続いて以下のように量子化される:
Figure 0005185436
ここで、lijは量子化された係数またはレベルであり、Q(cij,QP)は、量子化パラメータQPでcijを量子化する関数である。関数Q(cij、QP)は、量子化ステップサイズを定義する量子化行列内のQPおよび位置(i、j)に従って導かれる値でcijを割る。量子化動作は情報の損失を持ち込む。しかし、量子化された係数は少数のビットで表わされ、それによって、送信帯域幅、記憶スペースおよび処理リソースを保存する。圧縮のレベル(情報の損失)は、一般的に、QPの値を調整することによって制御される。
復号器側で、現在のフレームのブロックは、最初にビデオ符号器50と同じ方法で予測ブロックを構成し、予測ブロック、復号予測誤差または残差ブロックに加えることによって獲得される。予測誤差または残差ブロックは符号化されたビットストリームをエントロピー復号することで獲得され、逆量子化および逆変換動作を適用する。逆量子化(inverse quantizationまたはde-quantization)は、例えば式
Figure 0005185436
に従って、逆量子化係数rijを獲得するために実行される。ここで、Q-1(lij、QP)は、量子化パラメータQPでlijを逆量子化する関数を表わす。関数Q(lij、QP)は、lijに、量子化ステップサイズを定義する逆量子化行列内のQPおよび位置(i、j)に従って導かれる値を掛けかけ合わせる。逆変換動作は復元された残差ブロックまたは復元された予測誤差を獲得するために実行され、それは復元されたブロックR(x、y)とオリジナルのブロックI(x、y)との間の差を表わす。ある例において、残差ブロックまたは予測誤差
Figure 0005185436
の復元されたバージョンは、逆量子化係数rijに下記の関数を適用することによって獲得される:
Figure 0005185436
ここで
Figure 0005185436
は逆変換基底関数である。
一般的に、ビデオコーデック内の変換係数の量子化は、通常、均一復元量子化器(uniform-reconstruction quantizer:URQ)に基づく。データを量子化するための分類規則は符号器によって定義される。量子化の一例は、いわゆるデッドゾーンプラスユニフォーム閾値量子化(dead-zone plus uniform threshold quantization:DZ-UTQ)アプローチである。以下の式は、そのようなデッドゾーン量子化器を定義する。ここでf0は0≦f0≦0.5のデッドゾーンパラメータ表す。
Figure 0005185436
ここで、lijは、量子化レベルまたは量子化係数値に相当し、sgn(N)は、実数Nの符号を抽出する符号関数(signum function)であり、
Figure 0005185436
は、M以下の最大整数を戻す床関数(floor function)である。
概念的に、復元された値またはレベルlijに対応する逆量子化された係数値rijは、対応するQPとlijとを乗算することによって導かれる:
Figure 0005185436
式(5)および(6)は、対応する基底関数の正規化のための異なるスケール係数が簡素化のために無視されることから、H.264/MPEG-4第10部AVC標準に現時点で特定されるものの数学的な簡略版を表わす。
H.264/MPEG-4第10部AVC標準において、量子化は次の式に従って実行される:
Figure 0005185436
ここでi, j=0,…,3であり、Qは量子化ステップサイズの量子化行列を表し、%はモジューラ分割(modular division)を表し、fは、イントラ符号化フレームの場合に215+QP/6/3に等しく、インター符号化フレームの場合に215+QP/6/6と等しい。係数の逆量子化は次の式に従って実行される:
Figure 0005185436
ここでi,j=0,…,3であり、rijは、ビデオブロック中の位置(i、j)での逆量子化係数値を表わし、Rは逆量子化ステップサイズを表わす。例えば、Rは式(3)のQ−1に等価である。幾つかの実施形態において、QPのQおよびRに関連付けられた値は、あらかじめ計算および記憶される。
所与のブロック内の残差変換係数は、ジグザグ走査または別の走査順序を使用して、順序づけられ(走査され)、それは、一次元の順序づけられた係数ベクトルに帰着する。ジグザグ走査のような走査方法は、また、それが、ブロックによって定義される二次元のパターンから一次元の直列係数を生み出すという点で、直列化(serialization)とも呼ばれる。4×4ブロックに対する例示的なジグザグ走査が図3に表される。図3に示されるそのようなジグザグ走査の走査順序は、ビデオブロック56を通る矢印を辿る。特に、係数C1−C16は走査順序でラベル付けされ、図3に示される数値は、連続する一次元ベクトル内の係数の位置を示し、係数の実際の値を表わさない。図7に例証されるジグザグ走査の結果は、一次元の係数ベクトルXである。ここで、
Figure 0005185436
であり、C1-C16は、係数の二次元アレイ内の係数の位置を表わす。
ジグザグ走査は、一般的に、二次元(2D)変換の適用後、ほとんどのエネルギーを有する変換係数(すなわち、より高い値の係数)が低周波数変換関数に対応し、図3に描写されるように、ブロックの左上方に配置されることを推定する。それゆえに、ジグザグ走査を通してつくり出される係数ベクトルにおいて、より高い大きさの係数が、一次元の順序付けられた係数ベクトルの最初の方に現れる可能性が最も高い。量子化後、低エネルギー係数のほとんどは0に等しい。
本開示の技法は、任意の特定の走査順序または走査技法に制限されない。例えば、本開示で使用される走査順序は、図3に示されるジグザグ走査順序である。あるいは、本開示で使用される走査順序は、水平走査、垂直走査、あるいは他の走査技法といった別の走査順序である。幾つかの場合において、走査順序は、以前に走査されたブロックのコンテンツに基づいて、または現在のビデオブロックを符号化するために使用される同一の符号化モードに対応する、以前に走査されたブロックに基づいて適応する。ある実施形態において、係数は、それらの量子化前の値(例えば、残差変換係数値)の大きさに基づいて配列される。例えば、結果として得られる係数ベクトルは、最小の大きさを有する係数が係数ベクトルの最初に現われるように配列される。この基準に従って順序付けられた係数は、ciと表されるであろう。ここで、i=1,...,M(Mは4×4ブロックの場合16に等しく、8×8ブロックの場合64に等しい)である。
CAVLCは、量子化された係数をエントロピー符号化するための1つの方法である。H.264/MPEG-4第10部AVC標準に定義されるようにCAVLCに従って、CAVLC符号化ユニット46は、係数ベクトル内の全ての係数、係数ベクトル内のいくつかの後端の係数、後端の係数の各々の符号、後端の係数以外の非ゼロ係数の大きさ(またはレベル)、全ての実行の合計(すなわち、最後の非ゼロ係数の前の全ての実行)、および、各非ゼロ係数の前のゼロの実行時間を符号化する。
各ブロックの変換係数について、歪みメトリクが最大目標符号化ビットレート制約(maximum target coding-bit-rate constraint)に従って最小化され、または等価的に、符号化ビットレートが最大許容歪み制約(maximum allowable distortion constraint)に従って最小化されるように、量子化された係数または量子化レベルを見つけることが望まれる。このように、トータル符号化ビットバジェットRbudgetに従って、予測誤差E(x, y)と予測誤差の復元バージョン・(x, y)との間の歪みメトリクDを最小化することが望まれる:
Figure 0005185436
歪みメトリクDは、平均二乗誤差(MSE)歪み、アクティビティ加重MSE、または別の歪みメトリクである。
いわゆる「難しい」制約閾値問題は、ラグランジュ乗算器λを通してレートと歪みを「組み合わせる」ことで、それを「容易な」等価的非制約問題に変換することにより解決することができる。非制約閾値問題は、以下の式のように表されるトータルラグランジュコストJ(λ)を最小化する係数レベルの決定(固定λに対する)になる。
Figure 0005185436
従って、
Figure 0005185436
は、レートおよび歪みをまとめて最小化するレート歪みモデルを形成する。
H.264に合致する符号器の場合、所与のブロックに対する二乗復元誤差
Figure 0005185436
は、二乗量子化誤差
Figure 0005185436
に比例する。
H.264標準で使用される変換が直交であるため、ラグランジュコストJ(λ)は次のように計算される:
Figure 0005185436
ここで、j(λ, cij, lij)は、レベルlijに量子化される時の係数cijのラグランジュコストである:
Figure 0005185436
量子化誤差err(cij, lij)は、(rij-cij2に比例する:
Figure 0005185436
量子化行列および逆量子化行列QおよびQ−1(またはR)の場合のように、標準化行列の値N(QP,i,j)は、ブロック(iおよびjによって指定される)中の位置およびQPの値にのみ依存する。量子化値lijを符号化するために要求されるビットの数bits(lij)は、例えば、上に簡単に記述されたCAVLCアルゴリズムでlijを符号化することによって計算される。
非ゼロ係数の少なくとも1つの部分について、RD量子化ユニット40は1つ以上の候補量子化レベルを分析する。RD量子化ユニット40は、例示の目的のために、3つの候補量子化レベルを分析するとして以下に記述されるであろう。しかし、RD量子化ユニット40は、任意の数の候補量子化レベルを分析することができる。従って、本開示の技法は3つの候補量子化レベルに制限されるべきではない。ある例において、RD量子化ユニット40は、以下の3つの候補量子化レベルを分析する:
Figure 0005185436
Figure 0005185436
Figure 0005185436
ここで、
Figure 0005185436
は、係数に対する最大量子化レベルを表す。別の例において、RD量子化ユニット40は、以下の3つの候補量子化レベルを分析する:
Figure 0005185436
、1、および
Figure 0005185436
最大量子化レベル、
Figure 0005185436
は、4×4ブロックの場合に以下のように計算される。
Figure 0005185436
ある態様において、RD量子化ユニット40は、複数の候補量子化レベルから各個別係数の量子化レベルを選択するために、上に簡単に記述された単一のパスアプローチを使用する。RD量子化ユニット40は、個別係数に関連付けられた候補量子化レベルの全てに対して符号化コストを計算し、現在分析されている個別係数に対する量子化レベルとして最小符号化コストを有する候補量子化レベルを選択する。RD量子化ユニット40は、量子化レベルが係数ベクトルの各個別係数に対して選択されるまでこのプロセスを連続的に実行する。
各個別係数が3つの候補量子化レベル(例えば、0、
Figure 0005185436
および
Figure 0005185436
または、0、1、および
Figure 0005185436
)に関連付けられる上に記述された例において、RD量子化ユニット40は、個別係数に対する3つの符号化コストを計算する。3つの符号化コストの各々は、可能性のある候補量子化レベルの異なる1つに対応する。RD量子化ユニット40は、式(10)または(13)のラグランジュコスト関数に従ってコストを計算する。RD量子化ユニット40は、符号化コストを削減およびしばしば最小化する量子化された係数(またはレベル)のセットを選択するために、ベクトルの個別係数の各々に対して上に記述された量子化技法を連続的に実行する。
CAVLCは、幾つかの係数と関係する情報を単一のシンタックスエレメントに符号化する。例えば、H.264標準に定義されるようなシンタックスエレメント「トークン係数(coeff token)」は、量子化されたベクトル中の非ゼロ係数を全て符号化する。そのように、CAVLCは各係数を個別に符号化しない。従って、CAVLCが量子化された係数のベクトルを符号化するために使用するビット数を決定するために、ベクトルの各係数は、コストを計算するために知られなければならない。現在の係数の量子化レベルは分析されている候補量子化レベルの1つと等しく、そのため知られている。係数ベクトル内の現在の係数の前の係数の量子化レベルも、また、それらが以前に選択されているため知られている。しかし、係数ベクトル内の現在の係数の後の係数の量子化レベルはまだ選択されておらず、そのため容易に知られない。
しかし、RD量子化ユニット40は、これらの後の係数の量子化レベルについての推定を計算することができる。ある例において、RD量子化ユニット40は、上の式(15)によって定義されるように、後の係数の量子化レベルを
Figure 0005185436
に等しくなるように設定する。別の例において、RD量子化ユニット40は、以下のように、量子化前の値
Figure 0005185436
を計算する:
Figure 0005185436
ここで、fは、イントラフレームの場合に215+QP/6/3に等しく、インターフレームの場合に215+QP/6/6に等しい。係数統計に基づくfに対する別の値も、また、使用される。
別の態様において、RD量子化ユニット40は、係数の符号化コストを縮小および多くの場合に最小化する量子化された係数(またはレベル)のセットを選択するために、マルチパスアプローチを使用する。このアプローチにおいて、RD量子化ユニット40は、個別係数に関連付けられた各候補量子化レベルに対する複数の符号化コストを計算する。換言すると、各個別係数は、複数の候補量子化レベルに関連付けられ、各候補量子化レベルは複数の符号化コストに関連付けられる。量子化レベルは、レート歪み関数を最小化する量子化レベルの組み合わせを識別することによって選択される。
例として、RD量子化ユニット40は、図4に例証されるように、量子化トレリス60を使用して、レート歪み関数を最小化するためにマルチパスアプローチを実施する。量子化トレリス60は、各ステージが係数ベクトルの個別係数に対応するj個のステージを有する。例えば、4×4ブロックの場合にj=16である。j個のステージの各々は、各々がステージに関連付けられた個別係数の候補量子化レベルに対応する3つの黒丸によって表わされる3つの状態を有する。図4に示される例において、各ステージの3状態(円)は、候補量子化レベル0、
Figure 0005185436
および
Figure 0005185436
を表す。あるいは、各ステージの3つの状態(円)は、0、1、および
Figure 0005185436
などの他の候補量子化レベルを表す。さらに、上に記述されるように、各ステージは、より多くの状態またはより少ない状態(例えば、2つの候補量子化レベル、または4つ以上の候補量子化レベル)を含む。
量子化トレリス60を通るパスは、ブロック内の全ての係数(すなわち、量子化された係数(またはレベル)のセット)についての量子化決定のシーケンスを表わす。RD量子化ユニット40は、量子化トレリス60を通る生存パスを見つけるためにビタビアルゴリズム(Viterbi’s algorithm)を使用する。ビタビアルゴリズムは、観察されたイベントのシーケンスに帰着する隠れ状態(またはビタビパス)の最も起こりうるシーケンスを見つけるための動的プログラミングアルゴリズムである。ビタビアルゴリズムは多数の仮定を作る。第1に、観察されたイベントおよび隠れイベントの両方はシーケンスに存在しなければならない。このシーケンスはしばしば時間に対応する。第2に、これら2つのシーケンスは整列される必要があり、観察されたイベントの例は、隠れイベントの1つの例に厳密に対応する必要がある。第3に、最も起こりうる隠れシーケンスを特定のポイントtまで計算することは、ポイントtでの観察されたイベントおよびポイントt-1での最も起こりうるシーケンスのみに依存しなければならない。
量子化トレリス60の各ステージにおいて、RD量子化ユニット40は、例えば、式( )または(13)のラグランジュコスト関数に従って、現在までの個別係数への各生存パスに基づく各候補量子化レベル、および後の係数の推定される量子化レベルに対してコストを計算する。現在のステージおよび生存パスの各々に沿った過去のステージの係数について、RD量子化ユニット40は量子化レベル情報を有する。将来のステージ(つまり後の係数)の量子化レベルは、式(15)および(16)をそれぞれ使用して計算される、予測される量子化レベル
Figure 0005185436
または
Figure 0005185436
もしくは別の推定または予測される量子化レベルを割り当てられる。
例えば、係数C2に対応する量子化トレリス60の第2のステージで、RD量子化ユニット40は、係数C1およびC2に関連付けられた候補量子化レベルの各組み合わせに対して符号化コストを計算する。候補量子化レベル0、
Figure 0005185436
、および
Figure 0005185436
を例として使用し、RD量子化ユニット40は、係数C2に関連付けられた各候補量子化レベルに対する3つの符号化コストを計算する。係数C2に関連付けられた候補量子化レベル0について、RD量子化ユニット40は量子化レベルl1=0、l2=0および、予測/推定される量子化レベル
Figure 0005185436
または
Figure 0005185436
にそれぞれ等しいl3からljを使用して、第1の符号化コストを計算し(ここで、l1、l2、l3 、...、ljはそれぞれC1、C2、C3、...、Cjに関連づけられた、選択された候補および/または予測される量子化レベルである)、量子化レベル
Figure 0005185436
、l2=0、および、予測/推定される量子化レベルにそれぞれ等しいl3からljを使用して第2の符号化コストを計算し、量子化レベル
Figure 0005185436
、l2=0、および、予測/推定される量子化レベルにそれぞれ等しいl3からljを使用して、第3の符号化コストを計算する。RD量子化レベル40は、係数C2に関連付けられた係数量子化レベル0のための生存パスとして、計算された最小符号化コストを有するパスを選択する。
同様に、RD量子化ユニット40は、l1=0、
Figure 0005185436
および、
Figure 0005185436
をそれぞれ使用して係数C2に関連付けられた候補量子化レベル
Figure 0005185436
およびそれぞれの予測される量子化レベルに等しいl3からljに対して、第1、第2および第3の符号化コストを計算する。RD量子化ユニット40は、C2に関連付けられた係数量子化レベル
Figure 0005185436
のための生存パスとして、計算された最小符号化コストを有するパスを選択する。RD量子化ユニット40は、また、l1=0、
Figure 0005185436
、および
Figure 0005185436
をそれぞれ使用して係数C2に関連付けられた候補量子化レベル
Figure 0005185436
、および予測される量子化レベルにそれぞれ等しいl3からljに対する第1、第2、および第3の符号化コストを計算する。RD量子化ユニット40は、係数C2に関連付けられた係数量子化レベル
Figure 0005185436
のための生存パスとして、計算された最小符号化コストを有するパスを選択する。例示の目的のために、係数C2に関連付けられた量子化レベル0のための生存パスが
Figure 0005185436
を含むパスであり、係数C2に関連付けられた量子化レベル
Figure 0005185436
のための生存パスは、
Figure 0005185436
を含むパスであり、および係数C2に関連付けられた量子化レベル
Figure 0005185436
のための生存パスはl1=0を含むパスであると仮定する。生存パスは図4の量子化トレリス60に点線で示される。
係数C2のための生存パスの選択後、RD量子化ユニット40は、係数ベクトルの次(後)の係数(例えば図4の例におけるC3)に関連付けられた量子化レベルを決定する。RD量子化ユニット40は、生存パスおよび後の係数の予測/推定される量子化レベルを使用して、係数C3に関連付けられた各候補量子化レベルに対する複数の符号化コストを計算する。計算されたコストに基づいて、RD量子化ユニット40は、計算された符号化コストに基づいて各候補係数に関連付けられた生存パスを選択する。図4に示される例において、係数C3に関連付けられた量子化レベル0のための生存パスは、量子化レベルのC1、C2およびC3に対してそれぞれ
Figure 0005185436
、0、および0であり、係数C3に関連付けられた量子化レベル
Figure 0005185436
のための生存パスは、量子化レベルC1、C2およびC3に対してそれぞれ0、
Figure 0005185436
および
Figure 0005185436
であり、C3に関連付けられた量子化レベル
Figure 0005185436
のための生存パスは、量子化レベルC1、C2およびC3に対してそれぞれ0、
Figure 0005185436
、および
Figure 0005185436
である。
RD量子化ユニット40は、係数ベクトルの最後の係数(例えばCj)まで量子化レベルの生存パスを選択し続ける。RD量子化ユニット40は、最小符号化コストを有する最後の係数に関連付けられた単一の量子化レベルを選択し、それは、ブロック内の全ての係数についての量子化決定のシーケンスを表わす量子化トレリス60を通る生存パスに対応する。この技法は上に記述された単一のパス技法よりも多くの計算的リソースを要求するが、結果はより正確である。
量子化プロセスを加速するために、量子化ユニット40は1つ以上の加速技法を実施する。例えば、量子化された係数の個別係数について、量子化された係数の個別係数が量子化レベル1よりも量子化レベル0に近い場合、量子化ユニット40は、さらなる分析を行わずに量子化レベル0に関連係数を量子化する。換言すると、個別係数は、トレリス中の量子化レベル0に対応する1つの状態のみを有し、量子化ユニット40は、個別係数に関連付けられた候補量子化レベルに関連付けられた符号化コストの計算を省く。これら、または別の技法は、符号化されたビデオ品質の多少の劣化が多少あったとしても、量子化プロセスを加速するために使用される。
図5は、本開示のある量子化技法に従って量子化を実行するビデオ符号器の例示的な動作を示すフロー図である。ビデオ符号器は、例えば、図2のビデオ符号器50を備える。ビデオ符号器50のRD量子化ユニット40はビデオブロック係数を獲得する(70)。ビデオブロック係数は、ピクセル差異値のブロックを獲得するために、予測ユニット32によって生成される予測ビデオブロックを、符号化されるべきオリジナルのビデオブロックから引き、ブロックの変換係数を獲得するために、ピクセル差異値のブロックにDCTなどの変換動作を適用することによって形成される。
RD量子化ユニット40または別のコンポーネントは、係数の一次元ベクトル(すなわち係数ベクトル)を獲得するために、ビデオブロック係数を走査する(71)。RD量子化ユニット40は、図3に関して記述されるようなジグザグ走査、または別の走査順序を使用して、ビデオブロック係数を走査する。別の例として、RD量子化ユニット40は、大きさの関数として係数を配列するために係数ベクトルの係数を走査する。この走査技法の結果は、最小の大きさを有する係数が係数ベクトルの最初の方に現われるように、係数ベクトルの中の配列されているビデオブロックの係数に帰着する。
RD量子化ユニット40は、分析すべき係数ベクトルの係数のうちの1つを選択する(72)。RD量子化ユニット40は、順次的にベクトルの最初の係数で開始し、ベクトルの最後の係数で終了する係数を選択する。従って、選択される最初の係数は係数C1であろう。別の例として、RD量子化ユニット40は、順次的にベクトルの最後の係数で開始し、ベクトルの最初の係数で終了する係数を選択する。RD量子化ユニット40は、選択された係数に対して複数の候補量子化レベルを計算する(73)。ある例において、RD量子化ユニットは、選択された係数に対する3つの候補量子化レベルを計算する。上に記述されるように、RD量子化ユニット40は、3つの候補量子化レベル
Figure 0005185436

Figure 0005185436
および
Figure 0005185436
を計算する。
ここで、
Figure 0005185436
である。別の例において、RD量子化ユニット40は3つの候補量子化レベル
Figure 0005185436
、1、および
Figure 0005185436
を計算する。この技法は3つの候補量子化レベルとの関連で記述されるが、本開示の量子化技法は特定の数の候補量子化レベルに制限されるべきでない。換言すると、RD量子化ユニット40は、2つのレベルあるいは4つ以上のレベルを含む、選択された係数に関連付けられた任意の数の候補量子化レベルを計算する。3つの候補量子化レベルについての本明細書の議論は単に例示的である。
RD量子化ユニット40は、選択された係数に関連付けられた候補量子化レベルの各々に対する符号化コストを計算する(74)。RD量子化ユニット40は、式(10)または(13)のラグランジュコスト関数に従ってコストを計算する。CAVLCが各係数を個別に符号化しないため、ベクトルの各係数の量子化レベルは、CAVLCが係数ベクトルを符号化するために使用するビットの数(式(10)のR、または式(13)のbits(lij))を決定するために、知られなければならない。現在および前の係数の量子化レベルは知られている;現在の係数の量子化レベルは候補量子化レベルのうちの1つと等しく、前の係数の量子化レベルは以前に選択されている。現在の係数の後の係数の量子化レベルは、RD量子化ユニット40がそれらの係数をまだ分析していないため、知られていないが、それらのコストは式(15)または(16)に従って予測または推定される。
RD量子化ユニット40は、分析されている、個別に選択された係数に対する量子化レベルとして、最小符号化コストを有する候補量子化レベルを選択する(75)。RD量子化ユニット40は、まだ量子化されていない係数ベクトルに、残余係数があるか否かを決定する(76)。係数ベクトルに残余係数がある場合(ブロック76の「YES」ブランチ)、RD量子化ユニット40は、ブロック72−75に関して上に記述されたように、係数に対する量子化レベルを選択する。RD量子化ユニット40は、量子化される必要がある係数が係数ベクトルからなくなるまで、それを継続する。この方法において、RD量子化ユニット40は、量子化レベルが係数ベクトルの個別係数の各々に対して選択されるまで、連続的に量子化を実行する。そのような量子化技法は、ビデオ符号器50がブロックに対する符号化コストを削減および多くの場合に最小化する量子化係数(またはレベル)のセットを選択することを可能にする。
残余の変換係数がない場合、すなわち、係数ベクトルの全ての係数が量子化される場合(ブロック76の「NO」ブランチ)、CAVLC符号化ユニット46は、符号化されたビデオブロックを生成するために、予測シンタックス(例えば、動きベクトル、予測モード、または別の制御情報)と共に、量子化された変換係数をエントロピー符号化する(77)。CAVLC符号化ユニット46によるエントロピー符号化に続き、ビデオ符号器40は符号化されたビデオブロックを別のデバイスに送信し、または、符号化されたビデオブロックを後の送信または検索のために記憶/保管する(78)。
図6は、さらに詳細に、候補量子化レベルに対する符号化コストを計算するRD量子化ユニット40の例示的な動作を示すフロー図である。図6に示されるプロセスは、図5に示されるプロセスのブロック74に対応し、または別のコンテンツ内の符号化コストの計算に対応する。図6に示されるように、RD量子化ユニット40は個別係数に関連付けられた候補量子化レベルの1つを選択する(80)。RD量子化ユニット81は、係数ベクトル内の以前に量子化された係数のいずれかの量子化レベルを獲得する(81)。任意の以前に量子化された係数の量子化レベルはメモリまたは他の記憶装置内に記憶される。
RD量子化ユニット40は、後の係数(例えば、まだ量子化されていない係数)に対する予測(または推定)される量子化レベルを獲得する(82)。RD量子化ユニット40は、例えば、以下の式の1つに従って予測または推定される量子化レベルを計算する。
Figure 0005185436
Figure 0005185436
しかし、RD量子化ユニット40は、係数ベクトルの後の係数の量子化レベルに対して別の推定を使用する。
RD量子化ユニット40は、レート歪みモデルに関連付けられたラグランジュコスト関数を使用して、選択された候補量子化レベルの符号化コストを計算する(83)。ある例において、RD量子化ユニット40は、式(10)または(13)のラグランジュコスト関数を使用して、選択された候補量子化レベルに対する符号化コストを計算する。RD量子化ユニット40は、以前に量子化された係数に関連付けられた獲得された量子化レベル、選択された候補量子化レベル、まだ量子化されていない後の係数の予測(または推定)される量子化レベルに基づいて、選択された候補量子化レベルに対する符号化コストを計算する。CAVLCが各係数を個別に符号化しないため、ビット数(式(10)のRまたは式(13)のbits(l ij ))は、いつベクトルの各係数の量子化レベルが知られるかにのみ基づいて決定され、コストは予測/推定される量子化レベルを使用して計算される。
RD量子化ユニット40は、符号化コストが計算される必要がある候補量子化レベルがさらにあるか否かを決定する(84)。残余候補量子化レベルがある場合(図6のブロック84の「YES」ブランチ)、RD量子化ユニット40は次の候補量子化レベルを選択し、図6のブロック80−83に関して上に記述されるように、次の候補量子化レベルに関連付けられた符号化コストを計算する。RD量子化ユニット40は、符号化コストを計算するための、個別係数に関連付けられた候補量子化レベルが存在しなくなるまで(図6のブロック84の「NO」ブランチ)それを継続する。その地点で、プロセスは図5のブロック75に戻る。
図7は、本開示の別の量子化技法に従って量子化を実行するビデオ符号器の例示的な動作を示すフロー図である。ビデオ符号器は、例えば、図2のビデオ符号器50を備える。ビデオ符号器50のRD量子化ユニット40はビデオブロック係数を獲得する(90)。ビデオブロック係数は、ピクセル差異値のブロックを獲得するために、符号化されるべきオリジナルのビデオブロックから予測ユニット32によって生成される予測ブロックを引き、次に、変換係数のブロックを獲得するために、ピクセル差異値のブロックにDCTなどの変換動作を適用することによって形成される。
RD量子化ユニット40または他のコンポーネントは、係数の一次元ベクトル(つまり係数ベクトル)を獲得するために、ビデオブロックの係数を走査する(91)。RD量子化ユニット40は、図3に関して記述されるようなジグザグ走査または別の走査順序を使用して、ビデオブロック係数を走査する。別の例として、RD量子化ユニット40は、大きさの関数として係数を配列するために、係数ベクトルの係数を走査する。この走査技法の結果は、最小の大きさを有する係数が係数ベクトルの最初の方に現われるように係数ベクトルの中の配列されているビデオブロック係数に帰着する。
RD量子化ユニット40は、分析すべき係数ベクトルの係数の1つを選択する(92)。RD量子化ユニット40は、順次的にベクトルの最初の係数で開始し、ベクトルの最後の係数で終了する係数を選択する。従って、選択される最初の係数は係数C1であろう。別の例として、RD量子化ユニット40は、順次的にベクトルの最後の係数で開始し、ベクトルの最初の係数で終了する係数を選択する。RD量子化ユニット40は、選択された係数に対して複数の候補量子化レベルを計算する(93)。ある例において、RD量子化ユニットは、選択された係数に対して3つの候補量子化レベルを計算する。上に記述されるように、RD量子化ユニット40は、3つの候補量子化レベル
Figure 0005185436

Figure 0005185436
および
Figure 0005185436
を計算する。ここで、
Figure 0005185436
である。別の例において、RD量子化ユニット40は、3つの候補量子化レベル
Figure 0005185436
、1、および
Figure 0005185436
を計算する。この技法は3つの候補量子化レベルとの関連で記述されるが、本開示の量子化技法は、特定の数の候補量子化レベルに制限されるべきでない。換言すると、RD量子化ユニット40は、2つのレベルあるいは4つ以上のレベルを含む、選択された係数に関連した任意の数の候補量子化レベルを計算する。
RD量子化ユニット40は、選択された係数に関連付けられた候補量子化レベルの各々に対する複数の符号化コストを計算する(94)。換言すると、各個別係数は、複数の候補量子化レベルに関連付けられ、候補量子化レベルの各々は複数の符号化コストに関連付けられる。複数の符号化コストは、前の係数の以前に選択された量子化レベルに関連付けられた生存パス、さらには後の係数に対する予測または推定される量子化レベルに基づいて計算される。上に記述されるように、生存パスは、ベクトル内の前の係数のために行われる量子化決定のシーケンスを表わす。
RD量子化ユニット40は、候補量子化レベルの各々に対して最小符号化コストを有する生存パスを選択する(95)。そのため、選択された係数は、各生存パスが個別係数に関連付けられた候補量子化レベルの1つに関連付けられる3つの生存パスに対応する。ある例として、RD量子化ユニット40は、候補係数に対する符号化コストを計算し、図4に関して詳細に例証および記述されるように、量子化トレリス60に従って係数の各々に関連付けられた生存パスを選択する。
RD量子化ユニット40は、まだ量子化されていない係数が係数ベクトルに存在するか否かを決定する(96)。係数ベクトルに残余係数がある場合(ブロック96の「YES」ブランチ)、RD量子化ユニット40は、ブロック92−95に関して上に記述されるように後の係数に対する量子化レベルの各々のための生存パスを選択する。
残余変換係数が存在しない場合、すなわち、係数ベクトルの全ての係数が量子化される場合(ブロック96の「NO」ブランチ)、RD量子化ユニット40は、単一の生存パス、すなわち、最小符号化コストを有する、ベクトルの最後の係数に関連付けられた3つの生存パスの1つを選択する(97)。そのような量子化技法は、ビデオ符号器50が、ブロックに対する符号化コストを削減および多くの場合に最小化する量子化係数(またはレベル)のセットを選択することを可能にする。
CAVLC符号化ユニット46は、符号化されたビデオブロックを生成するために、予測シンタックス(例えば、動きベクトル、予測モード、または別の制御情報)と共に量子化変換係数をエントロピー符号化する(98)。CAVLC符号化ユニット46によるエントロピー符号化に続いて、ビデオ符号器40は、符号化されたビデオブロックを別のデバイスに送信し、または、符号化されたデオブロックを、後の送信または検索のために記憶/保管する(99)。
図8は、量子化係数の品質を実質的に犠牲にせずに量子化プロセスを加速するために使用される例示的な技法を示すフロー図である。図8に記述された加速技法は、ワンパス量子化プロセスに最も適用可能であり、また、マルチパス量子化プロセスにも有益である。図8に示されるように、RD量子化ユニット40は、個々の量子化された係数が次に高い候補量子化レベルよりも量子化レベル0に近いか否かを決定する(100)。候補量子化レベルが0、1、および
Figure 0005185436
である例において、例えば、RD量子化ユニット40は、個々の量子化された係数が候補量子化レベル1よりも候補量子化レベル0に近いか否かを決定する。
個々の量子化された係数が次に高い候補量子化レベルよりも量子化レベル0に近い場合(例えば、量子化レベル0)(100の「YES」ブランチ)、RD量子化ユニット40は、各量子化レベルに関連付けられた個別係数符号化コストの計算を省き、代わりとして、さらなる分析なしに量子化レベル0を選択する(102)。この場合、RD量子化ユニット40は、個々の量子化された係数に関連付けられた個別係数符号化コストが量子化レベル0で最小化されるであろうことを仮定する。従って、この場合、RD量子化ユニット40は、候補量子化レベルの各々に関連付けられた符号化コストの計算に関連付けられた不必要な計算を回避する。個別量子化係数が次に高い候補量子化レベルよりも量子化レベル0に近くない場合(例えば量子化レベル1)(100の「NO」ブランチ)、RD量子化ユニット40は、個別係数に関連付けられた候補量子化レベルに関連付けられた符号化コストの計算を省かない。
本開示の技法は、無線ハンドセットおよび集積回路(IC)またはICのセット(すなわちチップセット)を含む種々様々なデバイスまたは装置に組み込まれる。任意のコンポーネント、モジュール、またはユニットは、機能的な態様を強調するために提供および記述されており、異なるハードウェアユニット、コンポーネントまたはモジュールによる実現化を必ずしも要求しない。
従って、本明細書に記述された技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意のコンビネーションで実施されうる。モジュールまたはコンポーネントとして記述される任意の特徴は共に集積論理回路に、または独立した装置ではあるが相互動作可能な論理デバイスとして別々に実施されうる。ソフトウェアに実施された場合、その技法は、実行された時、上に記述された1つ以上の方法を実行する命令を備えるコンピュータ読み取り可能媒体によって少なくとも一部分を実現化される。コンピュータ読み取り可能データ記憶媒体は、包装材料を含むコンピュータプログラム製品の一部を形成する。コンピュータ読み取り可能媒体は、同期ダイナミックランダムアクセスメモリ(SDRAM)読み取り専用用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能PROM(EEPROM)、フラッシュメモリ(FLASHメモリ)、磁気または光学データ記憶メディア、および同様のものなどのランダムアクセスメモリ(RAM)を備える。さらに、または代替で、技法は、コンピュータによってアクセス、読み取り、および/または実行可能な命令またはデータ構造の形でコードを伝達または通信するコンピュータ読み取り可能通信媒体によって少なくとも一部分を実現化される。
コードは、1つ以上のデジタル信号プロセッサ(DSP)、特定用途向けIC(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または別の同等の統合または個別の論理回路などの1つ以上のプロセッサによって実行される。従って、「プロセッサ」という用語は、本明細書に使用されるように、前述された構造、または、本明細書に記述された技法の実施に適当な任意の別の構造のいずれかを指す。加えて、幾つかの態様において、本明細書に記述された機能性は、符号化および復号のために構成された、または、複合型ビデオ符号器/復号器(CODEC)に組み込まれる専用ソフトウェアモジュールまたはハードウェアモジュール内に提供される。さらに、技法は、1つ以上の回路または論理エレメントにおいて完全に実施されうる。
本開示の様々な態様が記述されている。これらおよび別の態様は、以下の請求項の範囲内である。

Claims (46)

  1. ビデオ符号化プロセスにおいて、ビデオブロックの係数の少なくとも一部を量子化するための方法であって、
    前記ビデオブロックの前記係数の一部の各々について、それぞれの係数に関連付けられた複数の候補量子化レベルに対する符号化コストを決定すること、ここで、前記それぞれの係数に関連付けられた各候補量子化レベルに対する符号化コストは、後の非量子化係数の予測される量子化レベルに少なくとも一部もとづき、前記後の非量子化係数の前記予測される量子化レベルは、後の非量子化係数の係数値に少なくとも一部もとづく、と;
    量子化された係数のセットを獲得するために、前記符号化コストに基づいて前記係数の各々に対する前記複数の候補量子化レベルの1つを選択することと;
    を備える方法。
  2. 前記複数の候補量子化レベルの1つを選択することは、前記それぞれの係数について、最小符号化コストと一致する前記複数の量子化レベルの1つを選択することを備える;
    請求項1の方法。
  3. 前記符号化コストを決定することは、前の係数に関連付けられた生存パス、現在の係数に関連付けられた前記それぞれの候補量子化レベル、および後の非量子化係数予測される量子化レベルに基づいて、前記それぞれの係数に関連付けられた前記候補量子化レベルの各々に対する複数の符号化コストを計算することを備え、なお、前記生存パスは前記ブロック内の前記現在の係数の前の係数に対する量子化決定のシーケンスを表す;
    前記複数の候補量子化レベルの1つを選択することは、最低符号化コストに対応する前記現在の係数に関連付けられた前記候補量子化レベルの各々のための生存パスを選択することを備える;
    請求項1の方法。
  4. 前記ビデオブロックの最後の係数について、前記最後の係数と関連付けられた前記候補量子化レベルの前記複数の生存パスから最低符号化コストを有する前記生存パスの1つを選択することをさらに備える、請求項3の方法。
  5. 前記符号化コストを決定することは、レート歪みモデルに関連付けられたラグランジュコスト関数を使用して、符号化コストを計算することを備える、請求項1の方法。
  6. 前記ビデオブロック、量子化パラメータ、および量子化行列のそれぞれの個別係数の絶対値に基づいて、前記それぞれの個別係数の前記複数の候補量子化レベルの少なくとも1つを計算することをさらに備える、請求項1の方法。
  7. 前記複数の候補量子化レベルは量子化レベル0を含む、請求項6の方法。
  8. 前記量子化係数の現在の係数が量子化レベル1よりも前記量子化レベル0に近い場合に、前記複数の候補量子化レベルに対する符号化コストの決定を省くことをさらに備える、請求項7の方法。
  9. 前記量子化された係数のセットをビットストリームにエントロピー符号化するために、前記量子化された係数のセット上で、コンテキスト適応型可変長符号化(CAVLC)を実行することと;
    前記符号化されたビットストリームを出力することと;
    をさらに備える、請求項1の方法。
  10. ビデオ符号化プロセスにおいて、ビデオブロックの係数の少なくとも一部を量子化するための装置であって、前記装置は:
    前記ビデオブロックの前記係数の一部の各々について、それぞれの係数に関連付けられた複数の候補量子化レベルに対する符号化コストを決定する、ここで、前記それぞれの係数に関連付けられた各候補量子化レベルに対する符号化コストは、後の非量子化係数の予測される量子化レベルに少なくとも一部もとづき、前記後の非量子化係数の前記予測される量子化レベルは、後の非量子化係数の係数値に少なくとも一部もとづくおよび、
    量子化された係数のセットを獲得するために、前記符号化コストに基づいて、前記係数の各々に対する前記複数の候補量子化レベルの1つを選択する;
    量子化ユニットを備える。
  11. 前記量子化ユニットは、
    前記それぞれの係数について、最小符号化コストに一致する前記複数の候補量子化レベルの1つを選択する;
    請求項10の装置。
  12. 前記量子化ユニットは:
    前の係数に関連付けられた生存パス、現在の係数に関連付けられた前記それぞれの候補量子化レベル、および後の非量子化係数予測される量子化レベルに基づいて、前記それぞれの係数に関連付けられた前記候補量子化レベルの各々に対する複数の符号化コストを計算し、なお、前記生存パスは、前記ブロック内の前記現在の係数の前の係数についての量子化決定のシーケンスを表す;
    最小符号化コストに対応する前記現在の係数に関連付けられた前記候補量子化レベルの各々のための生存パスを選択する;
    請求項10の装置。
  13. 前記量子化ユニットは、前記ビデオブロックの最後の係数について、前記最後の係数に関連付けられた前記候補量子化レベルの前記複数の生存パスから最小符号化コストを有する前記生存パスの1つを選択する、請求項12の装置。
  14. 前記量子化ユニットは、レート歪みモデルに関連付けられたラグランジュコスト関数を使用して、符号化コストを計算する、請求項10の装置。
  15. 前記量子化ユニットは、前記ビデオブロック、量子化パラメータ、および量子化行列のそれぞれの個別係数の絶対値に基づいて、前記それぞれの個別係数の前記複数の候補量子化レベルの少なくとも1つを計算する、請求項10の装置。
  16. 前記複数の候補量子化レベルは量子化レベル0を含む、請求項15の装置。
  17. 前記量子化ユニットは、前記量子化された係数の現在の係数が量子化レベル1よりも前記量子化レベル0に近い場合に、前記複数の候補量子化レベルに対する符号化コストの決定を省く、請求項16の装置。
  18. 前記量子化された係数のセットをビットストリームにエントロピー符号化するために、前記量子化された係数のセット上でコンテキスト適応型可変長符号化(CAVLC)を実行するエントロピー符号化器と;
    前記符号化されたビットストリームを送信するための送信器と;
    をさらに備える、請求項10の装置。
  19. 前記装置は無線通信デバイスに組み込まれる、請求項10の装置。
  20. 前記装置は集積回路を備える、請求項10の装置。
  21. 実行されることで、ビデオ符号化プロセスにおいて、デバイスに、ビデオブロック係数の少なくとも一部を量子化させる命令を記憶するコンピュータ読み取り可能媒体であって、
    前記命令は、前記デバイスに:
    前記ビデオブロックの前記係数の一部の各々について、それぞれの係数に関連づけられた複数の候補量子化レベルに対する符号化コストを決定させる、ここで、前記それぞれの係数に関連付けられた各候補量子化レベルに対する符号化コストは、後の非量子化係数の予測される量子化レベルに少なくとも一部もとづき、前記後の非量子化係数の前記予測される量子化レベルは、後の非量子化係数の係数値に少なくとも一部もとづくおよび、
    量子化された係数のセットを獲得するために、前記符号化コストに基づいて、前記係数の各々に対して前記複数の候補量子化レベルの1つを選択させる;
    コンピュータ読み取り可能媒体。
  22. 前記デバイスに前記複数の候補量子化レベルの1つを選択させる命令は、前記それぞれの係数について、前記デバイスに最小符号化コストに一致する前記複数の候補量子化レベルの1つを選択させる命令を備える;
    請求項21のコンピュータ読み取り可能媒体。
  23. 前記デバイスに前記符号化コストを決定させる命令は、前の係数に関連付けられた生存パス、現在の係数に関連付けられた前記それぞれの候補量子化レベル、および後の非量子化係数予測される量子化レベルに基づいて、前記デバイスに、前記それぞれの係数に関連付けられた前記候補量子化レベルの各々に対する複数の符号化コストを計算させる命令を備え、なお、前記生存パスは前記ブロック内の前記現在の係数の前の係数に対する量子化決定のシーケンスを表す;
    前記デバイスに前記複数の候補量子化レベルの1つを選択させる命令は、前記デバイスに最小符号化コストに対応する前記現在の係数に関連付けられた前記候補量子化レベルの各々のための生存パスを選択させる命令を備える;
    請求項21のコンピュータ読み取り可能媒体。
  24. 前記ビデオブロックの最後の係数について、前記デバイスに、前記最後の係数に関連付けられた前記候補量子化レベルの前記複数の生存パスから最低符号化コストを有する前記生存パスの1つを選択させる命令をさらに備える、請求項23のコンピュータ読み取り可能媒体。
  25. 前記デバイスに前記符号化コストを決定させる命令はレート歪みモデルに関連づけられたラグランジュコスト関数を使用して、前記デバイスに符号化コストを計算させる命令を備える、請求項21のコンピュータ読み取り可能媒体。
  26. 前記ビデオブロック、量子化パラメータ、および量子化行列のそれぞれの個別係数の絶対値に基づいて、前記デバイスに、前記それぞれの個別係数の前記複数の候補量子化レベルの少なくとも1つを計算させる命令をさらに備える、請求項21のコンピュータ読み取り可能媒体
  27. 前記複数の候補量子化レベルは量子化レベル0を含む、請求項26のコンピュータ読み取り可能媒体。
  28. 前記量子化係数の現在の係数が量子化レベル1よりも前記量子化レベル0に近い場合に、前記デバイスに前記複数の候補量子化レベルに対する符号化コストの決定を省かせる命令をさらに備える、請求項27のコンピュータ読み取り可能媒体。
  29. 前記デバイスに:
    前記量子化された係数のセットをビットストリームにエントロピー符号化するために、前記量子化された係数のセット上でコンテキスト適応型可変長符号化(CAVLC)を実行させ;
    前記符号化されたビットストリームを出力させる;
    命令をさらに備える、請求項21のコンピュータ読み取り可能媒体。
  30. ビデオ符号化プロセスにおいて、ビデオブロックの係数の少なくとも一部を量子化するためのデバイスであって、前記デバイスは:
    前記ビデオブロックの前記係数の一部の各々について、それぞれの係数に関連付けられた複数の候補量子化レベルに対する符号化コストを決定するための手段、ここで、前記それぞれの係数に関連付けられた各候補量子化レベルに対する符号化コストは、後の非量子化係数の予測される量子化レベルに少なくとも一部もとづき、前記後の非量子化係数の前記予測される量子化レベルは、後の非量子化係数の係数値に少なくとも一部もとづく、と;
    量子化された係数のセットを獲得するために、前記符号化コストに基づいて、前記係数の各々に対する前記複数の候補量子化レベルの1つを選択するための手段と;
    を備える。
  31. 前記選択する手段は、前記それぞれの係数について、最小符号化コストに一致する前記複数の候補量子化レベルの1つを選択する;
    請求項30のデバイス。
  32. 前記決定する手段は、前の係数に関連付けられた生存パス、現在の係数に関連付けられた前記それぞれの候補量子化レベル、および後の非量子化係数予測される量子化レベルに基づいて、前記それぞれの係数に関連付けられた前記候補量子化レベルの各々に対する複数の符号化コストを計算し、なお前記生存パスは、前記ブロック内の前記現在の係数の前の係数に対する量子化決定のシーケンスを表す;
    前記選択する手段は、最小符号化コストに対応する前記現在の係数に関連付けられた前記候補量子化レベルの各々に対する生存パスを選択する;
    請求項30のデバイス。
  33. 前記選択する手段は、前記ビデオブロックの最後の係数について、前記最後の係数に関連付けられた前記候補量子化レベルの前記複数の生存パスから、最小符号化コストを有する前記生存パスの1つを選択する、請求項32のデバイス。
  34. 前記決定する手段は、レート歪みモデルに関連付けられたラグランジュコスト関数を使用して、符号化コストを計算する、請求項30のデバイス。
  35. 前記ビデオブロック、量子化パラメータ、量子化行列のそれぞれの個別係数の絶対値に基づいて、前記それぞれの個別係数の前記複数の候補量子化レベルの少なくとも1つを計算する手段をさらに備える、請求項30のデバイス。
  36. 前記複数の候補量子化レベルは量子化レベル0を含む、請求項35のデバイス。
  37. 前記量子化された係数の現在の係数が量子化レベル1よりも前記量子化レベル0に近い場合に、前記複数の候補量子化レベルに対する符号化コストの決定を省くための手段をさらに備える、請求項36のデバイス。
  38. 前記量子化された係数のセットをビットストリームにエントロピー符号化するために、前記量子化された係数のセット上でコンテキスト適応型可変長符号化(CAVLC)を実行する手段と;
    前記符号化されたビットストリームを出力する手段と;
    をさらに備える、請求項30のデバイス。
  39. 前記後の非量子化係数の前記予測される量子化レベルは、推定される最大量子化レベルに少なくとも一部基づく、請求項1の方法。
  40. 前記後の非量子化係数の前記予測される量子化レベルは、係数統計に少なくとも一部基づく、請求項1の方法。
  41. 前記後の非量子化係数の前記予測される量子化レベルは、推定される最大量子化レベルに少なくとも一部基づく、請求項10の装置。
  42. 前記後の非量子化係数の前記予測される量子化レベルは、係数統計に少なくとも一部基づく、請求項10の装置。
  43. 前記後の非量子化係数の前記予測される量子化レベルは、推定される最大量子化レベルに少なくとも一部基づく、請求項21のコンピュータ読み取り可能媒体。
  44. 前記後の非量子化係数の前記予測される量子化レベルは、係数統計に少なくとも一部基づく、請求項21のコンピュータ読み取り可能媒体。
  45. 前記後の非量子化係数の前記予測される量子化レベルは、推定される最大量子化レベルに少なくとも一部基づく、請求項30のデバイス。
  46. 前記後の非量子化係数の前記予測される量子化レベルは、係数統計に少なくとも一部基づく、請求項30のデバイス。
JP2011504214A 2008-04-11 2009-04-10 コンテキスト適応型可変長符号化(cavlc)のためのレート歪み量子化 Active JP5185436B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US4423208P 2008-04-11 2008-04-11
US61/044,232 2008-04-11
US12/338,838 US8902972B2 (en) 2008-04-11 2008-12-18 Rate-distortion quantization for context-adaptive variable length coding (CAVLC)
US12/338,838 2008-12-18
PCT/US2009/040258 WO2009126919A1 (en) 2008-04-11 2009-04-10 Rate-distortion quantization for context-adaptive variable length coding (cavlc)

Publications (2)

Publication Number Publication Date
JP2011517911A JP2011517911A (ja) 2011-06-16
JP5185436B2 true JP5185436B2 (ja) 2013-04-17

Family

ID=40678903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011504214A Active JP5185436B2 (ja) 2008-04-11 2009-04-10 コンテキスト適応型可変長符号化(cavlc)のためのレート歪み量子化

Country Status (10)

Country Link
US (1) US8902972B2 (ja)
EP (1) EP2277315A1 (ja)
JP (1) JP5185436B2 (ja)
KR (1) KR101232420B1 (ja)
CN (2) CN102017633B (ja)
BR (1) BRPI0909007A2 (ja)
CA (1) CA2720697A1 (ja)
RU (1) RU2480940C2 (ja)
TW (1) TW201004357A (ja)
WO (1) WO2009126919A1 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8902972B2 (en) * 2008-04-11 2014-12-02 Qualcomm Incorporated Rate-distortion quantization for context-adaptive variable length coding (CAVLC)
KR20100079037A (ko) * 2008-12-30 2010-07-08 삼성전자주식회사 비디오 영상 부호화 방법 및 장치
KR101260157B1 (ko) * 2009-02-13 2013-05-06 리서치 인 모션 리미티드 인트라코딩된 이미지 또는 프레임에 대한 인루프 디블로킹
US20100208804A1 (en) * 2009-02-13 2010-08-19 Xiang Yu Modified entropy encoding for images and videos
EP2396770B1 (en) * 2009-02-13 2016-04-20 BlackBerry Limited Adaptive quantization with balanced pixel-domain distortion distribution in image processing
KR101344627B1 (ko) * 2009-03-13 2013-12-26 닛본 덴끼 가부시끼가이샤 화상 식별자 추출 장치
JP2011041037A (ja) * 2009-08-12 2011-02-24 Sony Corp 画像処理装置および方法
WO2011031692A2 (en) * 2009-09-10 2011-03-17 Dolby Laboratories Licensing Corporation Speedup techniques for rate distortion optimized quantization
JP5423469B2 (ja) * 2010-02-23 2014-02-19 沖電気工業株式会社 量子化装置、プログラム及び方法、並びに、動画像符号化装置
KR101418104B1 (ko) * 2010-03-08 2014-07-16 에스케이 텔레콤주식회사 움직임 벡터 해상도 조합을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
CN108777797B (zh) 2010-04-13 2021-01-29 Ge视频压缩有限责任公司 解码变换系数块的装置、方法、存储介质及相应编码装置
GB2481856A (en) * 2010-07-09 2012-01-11 British Broadcasting Corp Picture coding using weighted predictions in the transform domain
US9497472B2 (en) 2010-11-16 2016-11-15 Qualcomm Incorporated Parallel context calculation 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
US9049444B2 (en) 2010-12-22 2015-06-02 Qualcomm Incorporated Mode dependent scanning of coefficients of a block of video data
JP2012156867A (ja) * 2011-01-27 2012-08-16 Toshiba Corp 逆離散コサイン変換装置、復号装置、及び画像処理装置
US8442338B2 (en) * 2011-02-28 2013-05-14 Sony Corporation Visually optimized quantization
WO2012172779A1 (en) * 2011-06-13 2012-12-20 Panasonic Corporation Method and apparatus for encoding and decoding video using intra prediction mode dependent adaptive quantization matrix
US9756360B2 (en) 2011-07-19 2017-09-05 Qualcomm Incorporated Coefficient scanning in video coding
US9253508B2 (en) * 2011-11-04 2016-02-02 Futurewei Technologies, Inc. Differential pulse code modulation intra prediction for high efficiency video coding
GB201119175D0 (en) * 2011-11-07 2011-12-21 Sony Corp Context adaptive data encoding
GB2501115B (en) * 2012-04-13 2015-02-18 Canon Kk Methods for segmenting and encoding an image, and corresponding devices
US9491475B2 (en) * 2012-03-29 2016-11-08 Magnum Semiconductor, Inc. Apparatuses and methods for providing quantized coefficients for video encoding
US10230956B2 (en) * 2012-09-26 2019-03-12 Integrated Device Technology, Inc. Apparatuses and methods for optimizing rate-distortion of syntax elements
US10277907B2 (en) 2012-10-25 2019-04-30 Integrated Device Technology, Inc. Rate-distortion optimizers and optimization techniques including joint optimization of multiple color components
US9392286B2 (en) * 2013-03-15 2016-07-12 Magnum Semiconductor, Inc. Apparatuses and methods for providing quantized coefficients for video encoding
US9565440B2 (en) * 2013-06-25 2017-02-07 Vixs Systems Inc. Quantization parameter adjustment based on sum of variance and estimated picture encoding cost
US20150085922A1 (en) * 2013-09-25 2015-03-26 Magnum Semiconductor, Inc. Apparatuses and methods for reducing rate and distortion costs during encoding by modulating a lagrangian parameter
US10356405B2 (en) 2013-11-04 2019-07-16 Integrated Device Technology, Inc. Methods and apparatuses for multi-pass adaptive quantization
US9794575B2 (en) 2013-12-18 2017-10-17 Magnum Semiconductor, Inc. Apparatuses and methods for optimizing rate-distortion costs in video encoding
EP2980793A1 (en) 2014-07-28 2016-02-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder, decoder, system and methods for encoding and decoding
KR102338980B1 (ko) 2015-03-23 2021-12-13 삼성전자주식회사 플리커를 제거하기 위해 양자화 계수를 조절할 수 있은 인코더와 이를 포함하는 장치
US20170064298A1 (en) * 2015-09-02 2017-03-02 Blackberry Limited Video coding with delayed reconstruction
CA3013317A1 (en) * 2016-02-08 2017-08-17 Sharp Kabushiki Kaisha Systems and methods for transform coefficient coding
US11451840B2 (en) * 2018-06-18 2022-09-20 Qualcomm Incorporated Trellis coded quantization coefficient coding

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3234830B2 (ja) 1997-02-08 2001-12-04 松下電器産業株式会社 デコード方法
EP1397006B1 (en) * 1997-02-08 2009-07-22 Panasonic Corporation Quantization matrix for still and moving picture coding
US6118822A (en) 1997-12-01 2000-09-12 Conexant Systems, Inc. Adaptive entropy coding in adaptive quantization framework for video signal coding systems and processes
KR100311473B1 (ko) 1999-01-20 2001-11-02 구자홍 트렐리스 기반의 적응적 양자화기에서 최적경로 추적 방법
US6535647B1 (en) 1999-03-25 2003-03-18 General Dynamics Decision Systems, Inc. Image encoder method
US6909746B2 (en) * 2001-03-30 2005-06-21 Koninklijke Philips Electronics N.V. Fast robust data compression method and system
US20050015248A1 (en) * 2001-11-22 2005-01-20 Shinya Kadono Variable length coding method and variable length decoding method
CN1620816A (zh) 2002-01-22 2005-05-25 诺基亚有限公司 图像/视频编码器和/或解码器中的编码变换系数
US7099387B2 (en) * 2002-03-22 2006-08-29 Realnetorks, Inc. Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses
US6795584B2 (en) * 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
CN100353768C (zh) 2003-11-26 2007-12-05 联发科技股份有限公司 在视频压缩系统中进行运动估测的方法及相关装置
CN101032081B (zh) * 2004-07-14 2010-05-26 喷流数据有限公司 用于数据压缩优化的方法和系统
CA2572818C (en) * 2004-07-14 2013-08-27 Slipstream Data Inc. Method, system and computer program product for optimization of data compression
US8379721B2 (en) 2005-09-22 2013-02-19 Qualcomm Incorported Two pass rate control techniques for video coding using a min-max approach
KR100753282B1 (ko) 2005-12-28 2007-08-29 엘지전자 주식회사 Cavlc 디코딩을 위한 vlc 테이블 선택방법 및 그cavlc 디코딩방법
ES2648093T3 (es) 2006-01-09 2017-12-28 Matthias Narroschke Codificación adaptativa de un error de predicción en la codificación de vídeo híbrida
US8005140B2 (en) * 2006-03-17 2011-08-23 Research In Motion Limited Soft decision and iterative video coding for MPEG and H.264
US8184712B2 (en) 2006-04-30 2012-05-22 Hewlett-Packard Development Company, L.P. Robust and efficient compression/decompression providing for adjustable division of computational complexity between encoding/compression and decoding/decompression
JP4660433B2 (ja) 2006-06-29 2011-03-30 株式会社東芝 符号化回路、復号回路、エンコーダ回路、デコーダ回路、cabac処理方法
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
US8902972B2 (en) * 2008-04-11 2014-12-02 Qualcomm Incorporated Rate-distortion quantization for context-adaptive variable length coding (CAVLC)

Also Published As

Publication number Publication date
CN103179395B (zh) 2016-03-09
BRPI0909007A2 (pt) 2019-09-24
RU2010145912A (ru) 2012-05-20
CN102017633B (zh) 2013-08-14
KR101232420B1 (ko) 2013-02-12
JP2011517911A (ja) 2011-06-16
WO2009126919A1 (en) 2009-10-15
US20090257489A1 (en) 2009-10-15
RU2480940C2 (ru) 2013-04-27
KR20100133007A (ko) 2010-12-20
CN102017633A (zh) 2011-04-13
TW201004357A (en) 2010-01-16
EP2277315A1 (en) 2011-01-26
CN103179395A (zh) 2013-06-26
US8902972B2 (en) 2014-12-02
CA2720697A1 (en) 2009-10-15

Similar Documents

Publication Publication Date Title
JP5185436B2 (ja) コンテキスト適応型可変長符号化(cavlc)のためのレート歪み量子化
CA2709711C (en) Quantization based on rate-distortion modeling for cabac coders
KR101187238B1 (ko) Cabac 코더의 2-패스 양자화
KR101888333B1 (ko) 연성 디블록킹 필터링을 이용한 부호화/복호화 방법 및 장치
EP2704442B1 (en) Template matching for video coding
KR101323546B1 (ko) 비디오 코딩시 액티비티 메트릭들에 기초한 필터 예측
Tu et al. Rate-distortion estimation for H. 264/AVC coders

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120717

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121114

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130117

R150 Certificate of patent or registration of utility model

Ref document number: 5185436

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160125

Year of fee payment: 3

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