JP5792381B2 - 最後の有意変換係数のコーディング - Google Patents

最後の有意変換係数のコーディング Download PDF

Info

Publication number
JP5792381B2
JP5792381B2 JP2014519020A JP2014519020A JP5792381B2 JP 5792381 B2 JP5792381 B2 JP 5792381B2 JP 2014519020 A JP2014519020 A JP 2014519020A JP 2014519020 A JP2014519020 A JP 2014519020A JP 5792381 B2 JP5792381 B2 JP 5792381B2
Authority
JP
Japan
Prior art keywords
transform coefficient
scan order
coefficient block
block
video
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.)
Expired - Fee Related
Application number
JP2014519020A
Other languages
English (en)
Other versions
JP2014523704A (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 JP2014523704A publication Critical patent/JP2014523704A/ja
Application granted granted Critical
Publication of JP5792381B2 publication Critical patent/JP5792381B2/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/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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

関連出願
関連出願の相互参照
本出願は、その内容全体が参照により本明細書に組み込まれる、2011年6月28日に出願された米国仮出願第61/502,269号、2011年6月30日に出願された米国仮出願第61/503,529号、2011年10月24日に出願された米国仮出願第61/550,775号、および2011年10月24日に出願された米国仮出願第61/550,784号の利益を主張する。
本開示は、ビデオデータを符号化および復号するための技法に関する。より詳細には、本開示は、ビデオデータ中の情報を表す有意変換係数の位置をシグナリングすることに関する。
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信および受信するために、MPEG−2、MPEG−4、ITU−T H.263またはITU−T H.264/MPEG−4、Part10、Advanced Video Coding(AVC)によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的予測および/または時間的予測を実行する。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスはブロックに区分され得る。各ブロックはさらに区分され得る。イントラコード化(I)フレームまたはスライス中のブロックは、隣接ブロックに対する空間的予測を使用して符号化される。インターコード化(PまたはB)フレームまたはスライス中のブロックは、同じフレームまたはスライス中の隣接ブロックに対する空間的予測、あるいは他の参照フレームに対する時間的予測を使用し得る。
本開示は、一般に、ビデオコーディング中に変換係数のブロック中の最後の有意係数(LSC:last significant coefficient)の位置をシグナリングするための技法に関する。たとえば、本技法は、変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに2次元(2D)変換係数ブロックのLSCが所与の順序位置で発生すると判断するビデオエンコーダを提供する。ビデオエンコーダは、変換係数ブロック中の所与の変換係数の座標を指定する座標インジケータを生成する。所与の変換係数は、変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに所与の順序位置で発生する。ビデオエンコーダは、エントロピー符号化演算を実行して、座標インジケータの符号化バージョンを生成する。ビデオエンコーダは、座標インジケータの符号化バージョンを出力し得る。
別の例では、座標インジケータを受信するビデオデコーダのための技法を提供する。ビデオデコーダは、座標インジケータをスキャンベースLSCインジケータに変換する。スキャンベースLSCインジケータは所与の順序位置を示す。ビデオデコーダは、仮定したスキャン順序に従って座標の所与の順序位置を出力するアルゴリズムを使用して、座標インジケータをスキャンベースLSCインジケータに変換し得る。仮定したスキャン順序は、実際のコーディングスキャン順序とは異なることがある。
一態様では、本開示では、ビデオデータを符号化するための方法について説明する。本方法は、変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに変換係数ブロックの最後の有意変換係数が所与の順序位置で発生すると判断することを備える。変換係数ブロックは、ビデオデータに関連する変換係数を備える。本方法はまた、変換係数ブロック中の所与の変換係数の座標を指定する座標インジケータを生成することを備える。所与の変換係数は、変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに所与の順序位置で発生する。本方法はまた、座標インジケータのエントロピー符号化バージョンを生成するために、座標インジケータに対してエントロピー符号化演算を実行することを備える。さらに、本方法は、座標インジケータのエントロピー符号化バージョンを出力することを備える。
別の態様では、本開示では、ビデオデータを復号するための方法について説明する。本方法は、変換係数ブロック中の所与の位置の座標を指定する座標インジケータを受信することを備える。所与の位置は、変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに所与の順序位置で発生する。変換係数ブロックの最後の有意変換係数は、変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに所与の順序位置で発生する。変換係数ブロックは、ビデオデータに関連する変換係数を備える。本方法はまた、座標インジケータを、所与の順序位置を指定するスキャンベースLSCインジケータに変換することを備える。
別の態様では、本開示では、変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに変換係数ブロックの最後の有意変換係数が所与の順序位置で発生すると判断するように構成される1つまたは複数のプロセッサを備えるビデオ符号化デバイスについて説明する。変換係数ブロックは変換係数を備える。1つまたは複数のプロセッサはまた、変換係数ブロック中の所与の変換係数の座標を指定する座標インジケータを生成するように構成される。所与の係数は、変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに所与の順序位置で発生する。さらに、1つまたは複数のプロセッサは、座標インジケータのエントロピー符号化バージョンを生成するために、座標インジケータに対してエントロピー符号化演算を実行するように構成される。1つまたは複数のプロセッサはまた、座標インジケータのエントロピー符号化バージョンを出力するように構成される。
別の態様では、本開示では、変換係数ブロック中の所与の位置の座標を指定する座標インジケータを受信するように構成される1つまたは複数のプロセッサを備えるビデオ復号デバイスについて説明する。所与の位置は、変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに所与の順序位置で発生する。変換係数ブロックの最後の有意変換係数は、変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに所与の順序位置で発生する。変換係数ブロックは変換係数を備える。1つまたは複数のプロセッサはまた、座標インジケータを、所与の順序位置を指定するスキャンベースLSCインジケータに変換するように構成される。
別の態様では、本開示では、変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに変換係数ブロックの最後の有意変換係数が所与の順序位置で発生すると判断するための手段であって、変換係数ブロックが変換係数を備える、判断するための手段を備えるビデオ符号化デバイスについて説明する。ビデオ符号化デバイスはまた、変換係数ブロック中の所与の変換係数の座標を指定する座標インジケータを生成するための手段を備える。所与の変換係数は、変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに所与の順序位置で発生する。ビデオ符号化デバイスはまた、座標インジケータのエントロピー符号化バージョンを生成するために、座標インジケータに対してエントロピーコーディング演算を実行するための手段を備える。さらに、ビデオ符号化デバイスは、座標インジケータのエントロピー符号化バージョンを出力するための手段を備える。
別の態様では、本開示では、変換係数ブロック中の所与の位置の座標を指定する座標インジケータを受信するための手段を備えるビデオ復号デバイスについて説明する。所与の位置は、変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに所与の順序位置で発生する。変換係数ブロックの最後の有意変換係数は、変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに所与の順序位置で発生し、変換係数ブロックは、変換係数を備える。ビデオ復号デバイスはまた、座標インジケータを、所与の順序位置を指定するスキャンベースLSCインジケータに変換するための手段を備える。
別の態様では、本開示では、変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに変換係数ブロックのLSCが所与の順序位置で発生すると判断することであって、変換係数ブロックが変換係数を備える、判断することを行うように1つまたは複数のプロセッサを構成する命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品について説明する。命令はまた、座標インジケータを生成することであって、座標インジケータが、変換係数ブロック中の所与の変換係数の座標を指定する、生成することを行うように1つまたは複数のプロセッサを構成する。所与の変換係数は、変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに所与の順序位置で発生する。命令はまた、座標インジケータのエントロピー符号化バージョンを生成するために、座標インジケータに対してエントロピーコーディング演算を実行することを行うように1つまたは複数のプロセッサを構成する。さらに、命令は、座標インジケータのエントロピー符号化バージョンを出力することを行うように1つまたは複数のプロセッサを構成する。
別の態様では、本開示では、2次元変換係数ブロック中の所与の位置の座標を指定するブロックベースLSCインジケータを受信することを行うように1つまたは複数のプロセッサを構成する命令を記憶したコンピュータ可読記憶媒体を備えるコンピュータプログラム製品について説明する。所与の位置は、変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに所与の順序位置で発生する。変換係数ブロックのLSCは、変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに所与の順序位置で発生する。変換係数ブロックは、ビデオデータの情報を表す変換係数を備える。さらに、命令は、座標インジケータを、所与の順序位置を指定するスキャンベースLSCインジケータに変換することを行うように1つまたは複数のプロセッサを構成する。
本開示の1つまたは複数の態様の詳細を添付の図面および以下の説明に記載する。本開示で説明する技法の他の特徴、目的、および利点は、これらの説明および図面、ならびに特許請求の範囲から明らかになろう。
例示的なビデオコーディングシステムを示すブロック図。 例示的な変換係数ブロックを示す概念図。 8×8変換係数ブロックのための例示的なジグザグスキャン順序、水平スキャン順序、垂直スキャン順序、逆対角スキャン順序、およびサブブロックスキャン順序を示す概念図。 図2の変換係数ブロックのための例示的な有意性マップの2次元表現を示す概念図。 本開示の技法を実装するように構成される例示的なビデオエンコーダを示すブロック図。 本開示の技法を実装するように構成される例示的なビデオデコーダを示すブロック図。 ビデオエンコーダによって実行される例示的な動作を示すフローチャート。 変換係数ブロックを復号する例示的な動作を示すフローチャート。 座標インジケータをスキャンベース最後の有意係数(LSC)インジケータに変換する例示的な非反復動作を示すフローチャート。 座標インジケータをスキャンベースLSCインジケータに変換する別の例示的な非反復動作を示すフローチャート。 座標インジケータを、マップデータ構造がアクセスされるスキャンベースLSCインジケータに変換する例示的な動作を示すフローチャート。 座標インジケータをスキャンベースLSCインジケータに変換する例示的な反復動作を示すフローチャート。 最後の有意係数を示す変換係数ブロックの概念図。
添付の図面は例を示している。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。本開示では、序数語(たとえば、「第1の」、「第2の」、「第3の」など)で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。そうではなく、そのような序数語は、同じまたは同様のタイプの異なる要素を指すのに使用されるにすぎない。
本明細書で説明するように、ビデオエンコーダはビデオデータを符号化する。ビデオデータを符号化することの一部として、ビデオエンコーダは2次元(2D)変換係数ブロックを生成し得る。ビデオエンコーダは、変換係数ブロックの最後の有意変換係数がコーディングスキャン順序に従って所与の順序位置で発生すると判断し得る。言い換えれば、変換係数ブロックの変換係数がコーディングスキャン順序に従って順序付けられた場合、最後の有意変換係数は所与の順序位置にあることになる。たとえば、ビデオエンコーダは、変換係数ブロックの最後の有意変換係数がコーディングスキャン順序に従ってn番目の位置で発生すると判断し得る。変換係数の順序位置は、所与のスキャン順序に従って変換係数ブロックをスキャンすることによって形成される変換係数のシーケンス中の変換係数の相対位置であり得る。変換係数が非ゼロである場合、変換係数は「重要」であり得る。
さらに、ビデオエンコーダは、変換係数ブロックの座標インジケータを生成し得る。座標インジケータは、変換係数ブロック中の所与の変換係数の座標を指定し得る。所与の変換係数は、仮定したスキャン順序に従って所与の順序位置で発生する。言い換えれば、変換係数ブロックの変換係数が仮定したスキャン順序に従って順序付けられた場合、所与の変換係数が所与の順序位置で発生する(および、座標インジケータによって示された座標を有する)ことになる。たとえば、最後の有意変換係数がコーディングスキャン順序に従ってn番目の位置で発生した場合、所与の変換係数は、仮定したスキャン順序に従ってn番目の位置で発生する。ビデオエンコーダは、次いで、仮定したスキャン順序を使用して導出される座標インジケータに対してエントロピー符号化演算を実行して、座標インジケータのエントロピー符号化バージョンを生成し得る。ビデオエンコーダは、座標インジケータのエントロピー符号化バージョンを出力し得る。
ビデオデコーダは、座標インジケータを受信し、座標インジケータをスキャンベースLSCインジケータに変換し得る。スキャンベースLSCインジケータは所与の順序位置を示し得る。たとえば、座標インジケータによって示された座標の変換係数が、仮定したスキャン順序に従ってn番目の位置で発生した場合、スキャンベースLSCインジケータはn番目の位置を示し得る。座標インジケータをスキャンベースLSCインジケータに変換した後に、ビデオデコーダはコーディングスキャン順序を判断し得る。いくつかの例では、ビデオデコーダは、スキャンベースLSCインジケータとコーディングスキャン順序とを使用してLSCの座標を判断する。ビデオデコーダは、LSCの座標を使用して、変換係数ブロックの有意性マップをエントロピー復号する際に使用するためのコンテキストモデルを選択し得る。ビデオデコーダはまた、変換係数ブロックのレベル情報に対してエントロピー復号演算を実行し得る。変換係数ブロックのレベル情報は、変換係数ブロックの有意変換係数の大きさと符号とを示し得る。その後、ビデオデコーダは、有意性マップとレベル情報とに基づいて変換係数ブロックを再構成し得る。
いくつかの前の提案では、ビデオエンコーダは、コーディングスキャン順序に従って変換係数ブロックのLSCを識別し、識別されたLSCの座標を示す座標インジケータを生成する。そのような提案では、ビデオデコーダは、座標インジケータをスキャンベースLSCインジケータに変換するより前にコーディングスキャン順序を判断する必要があり得る。コーディングスキャン順序を判断するために、ビデオデコーダは、ビットストリームから様々なデータ(たとえば、シンタックス要素)を抽出する必要があり得る。たとえば、ビデオデコーダは、ビットストリームからイントラ予測モードシンタックス要素またはスキャン順序インジケータを抽出する必要があり得る。その結果、そのようなシンタックス要素がビットストリームから抽出されるまで、ビデオデコーダは、座標インジケータを変換するのを待つことを強制されることがある。これにより、変換係数ブロックのためのパーシングプロセスが遅れることがあり、最終的に、ビデオデコーダ30の動作が遅れることになる。
図1は、本開示の技法を利用し得る例示的なビデオコーディングシステム10を示すブロック図である。本開示では、「ビデオコーディング」という用語は、ビデオ符号化およびビデオ復号を指すことがある。図1に示すように、ビデオコーディングシステム10は、ソースデバイス12と宛先デバイス14とを含み得る。ソースデバイス12は符号化ビデオデータを生成する。宛先デバイス14は符号化ビデオデータを復号し得る。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、携帯電話、電話ハンドセット、「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、車載コンピュータ、あるいはビデオデータを符号化および/または復号することが可能なタイプのコンピューティングデバイスを含む、広範囲にわたるデバイスのいずれかを備え得る。
宛先デバイス14は、チャネル16を介して符号化ビデオデータを受信し得る。チャネル16は、宛先デバイス14が符号化ビデオデータを受信し得る媒体を備え得る。一例では、チャネル16は、ソースデバイス12が、符号化ビデオデータを宛先デバイス14に直接リアルタイムで送信することを可能にする通信媒体を備え得る。ソースデバイス12または別のデバイスは、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調し得る。通信媒体は、無線周波数(RF:radio frequency)スペクトあるいは1つまたは複数の物理伝送線路など、ワイヤレスまたはワイヤード通信媒体を備え得る。チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。チャネル16は、ソースデバイス12から宛先デバイス14への符号化ビデオデータの通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
いくつかの例では、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。ただし、本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。そうではなく、本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、ソースデバイス12および宛先デバイス14は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
さらに、いくつかの例では、ソースデバイス12は、符号化ビデオデータをストレージシステム34に出力し得る。同様に、宛先デバイス14は、ストレージシステム34に記憶された符号化ビデオデータにアクセスし得る。様々な例では、ストレージシステム34は、様々な分散型またはローカルアクセス型データ記憶媒体を含み得る。データ記憶媒体の例示的なタイプとしては、限定はしないが、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、固体メモリユニット、揮発性もしくは不揮発性メモリ、または符号化ビデオデータの記憶に適した他のデジタル記憶媒体がある。
いくつかの例では、ストレージシステム34は、ソースデバイス12によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスを備え得る。宛先デバイス14は、ストリーミングまたはダウンロードを介してストレージシステム34から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能なサーバであり得る。例示的なファイルサーバとしては、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS:network attached storage)デバイス、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む標準のデータ接続を介して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。ストレージシステム34からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。いくつかの例では、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ビデオソース18は、ビデオエンコーダ20にビデオデータを与え得る。様々な例では、ビデオソース18は、ビデオデータを与えるための様々なタイプのデバイスおよび/またはシステムを備え得る。たとえば、ビデオソース18は、ビデオカメラなどのビデオキャプチャデバイスを備え得る。別の例では、ビデオソース18は、あらかじめキャプチャされたビデオを含んでいるビデオアーカイブを備え得る。さらに別の例では、ビデオソース18は、ビデオコンテンツプロバイダからビデオを受信するビデオフィードインターフェースを備え得る。さらに別の例では、ビデオソース18は、コンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムを備え得る。
以下で詳細に説明するように、ビデオエンコーダ20は、ビデオソース18によって与えられたビデオデータを符号化し得る。いくつかの例では、ソースデバイス12は、出力インターフェース22を介して宛先デバイス14に符号化ビデオデータを直接送信し得る。さらに、いくつかの例では、ストレージシステム34は、宛先デバイス14または他のデバイスによる後のアクセスのために符号化ビデオデータを記憶し得る。
本開示では、概して、ビデオエンコーダ20が、ある情報をビデオデコーダなどの別のデバイスに「シグナリング」することに言及し得る。ただし、ビデオエンコーダ20は、いくつかのシンタックス要素をビデオデータの様々な符号化部分に関連付けることによって情報をシグナリングし得ることを理解されたい。すなわち、ビデオエンコーダ20は、いくつかのシンタックス要素をビデオデータの様々な符号化部分のヘッダに記憶することによってデータを「シグナリング」し得る。場合によっては、そのようなシンタックス要素は、ビデオデコーダによって受信され、復号される前に、符号化され、記憶され(たとえば、ストレージシステム34に記憶され)得る。したがって、「シグナリング」という用語は、概して、圧縮ビデオデータを復号するのに使用されるシンタックスまたは他のデータの通信を指すことがある。そのような通信は、リアルタイムにまたはほぼリアルタイムに行われ得る。代替的に、そのような通信は、符号化時に媒体にシンタックス要素を記憶するときに行われるなど、ある時間期間にわたって行われ得、次いで、ビデオデコーダは、この媒体に記憶された後の任意の時間にそのシンタックス要素を取り出し得る。
図1の例では、宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。いくつかの例では、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、チャネル16および/またはストレージシステム34から符号化ビデオデータを受信する。ビデオデコーダ30は、入力インターフェース28によって受信された符号化ビデオデータを復号する。宛先デバイス14は、ディスプレイデバイス32上に表示するための復号ビデオデータをレンダリングし得る。
ディスプレイデバイス32は、宛先デバイス14と一体化され得るかまたはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み得、外部ディスプレイデバイスとインターフェースするようにも構成され得る。様々な例では、ディスプレイデバイス32は、様々なタイプのディスプレイデバイスを備え得る。たとえば、ディスプレイデバイス32は、液晶ディスプレイ(LCD:liquid crystal display)、プラズマディスプレイ、有機発光ダイオード(OLED:organic light emitting diode)ディスプレイ、または別のタイプのディスプレイデバイスを備え得る。
図1には示されていないが、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびデコーダと統合され得、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP:digital signal processor)、特定用途向け集積回路(ASIC:application specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)、ディスクリート論理、ハードウェア、またはそれらの任意の組合せなど、様々なタイプの回路を使用して実装され得る。いくつかの事例では、ビデオエンコーダ20およびビデオデコーダ30は、ソフトウェアを少なくとも部分的に使用して実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part 10,Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。規格に対する例示的な拡張としては、H.264/AVC規格に対するスケーラブルビデオコーディング(SVC:scalable video coding)拡張およびマルチビュービデオコーディング(MVC:Multiview Video Coding)拡張がある。本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としては、MPEG−2およびITU−T H.263がある。
上記で手短に説明したように、ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは1つまたは複数のピクチャを備え得る。ピクチャの各々は静止画像である。いくつかの事例では、ピクチャは「フレーム」と呼ばれることがある。ビデオエンコーダ20がビデオデータを符号化するとき、ビデオエンコーダ20はビットストリームを生成し得る。ビットストリームは、コード化ピクチャおよび関連データの表現を形成する一連のビットを含み得る。コード化ピクチャとは、ピクチャのコード化表現である。
ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータに対して符号化演算を実行し得る。ビデオエンコーダ20がビデオデータに対して符号化演算を実行すると、ビデオエンコーダ20は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、シーケンスパラメータセットと、ピクチャパラメータセットと、適応パラメータセットとを含み得る。シーケンスパラメータセットは、0個以上のピクチャシーケンスに適用可能なパラメータを含み得る。ピクチャパラメータセットは、0個以上のピクチャに適用可能なパラメータを含み得る。適応パラメータセット(APS:adaptation parameter set)も0個以上のピクチャに適用可能なパラメータを含み得るが、そのようなパラメータは、ピクチャパラメータセットのパラメータよりも頻繁に変化し得る。
コード化ピクチャを生成するために、ビデオエンコーダ20は、ピクチャを1つまたは複数の等しいサイズの重複しないビデオブロックに区分し得る。ビデオブロックの各々はツリーブロックに関連付けられ得る。ビデオブロックは、ビデオデータの2次元(2D)ブロックであり得る(たとえば、ピクセル)。いくつかの事例では、ツリーブロックは、最大コーディングユニット(LCU:largest coding unit)と呼ばれることもある。HEVCのツリーブロックは、H.264/AVCなど、従来の規格のマクロブロックに広い意味で類似し得る。ただし、ツリーブロックは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU:coding unit)を含み得る。
いくつかの例では、ビデオエンコーダ20は、ピクチャを複数のスライスに区分し得る。スライスの各々は整数個のCUを含み得る。いくつかの事例では、スライスは整数個のツリーブロックを備える。他の例では、スライスの境界はツリーブロック内にあり得る。スライスの境界がツリーブロック内にある場合、スライスは微細粒スライス(fine granular slice)と呼ばれることがある。いくつかの例では、ビデオエンコーダ20は、スライスのバイト単位のサイズに従って、または、スライス中のツリーブロックの数に従って、スライスを符号化し得る。
ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオエンコーダ20がスライスに対して符号化演算を実行すると、ビデオエンコーダ20は、スライスに関連する符号化データを生成し得る。スライスに関連する符号化データは、「コード化スライス」と呼ばれることがある。コード化スライスは、スライスヘッダとスライスデータとを含み得る。スライスデータは、一連の連続するコード化CUをコーディング順序で含み得る。スライスヘッダは、スライスの第1のまたはすべてのツリーブロックに関するデータ要素を含み得る。
コード化スライスを生成するために、ビデオエンコーダ20は、スライス中の各ツリーブロックに対して符号化演算を実行し得る。ビデオエンコーダ20がツリーブロックに対して符号化演算を実行すると、ビデオエンコーダ20はコード化ツリーブロックを生成し得る。コード化ツリーブロックは、ツリーブロックの符号化バージョンを表すデータを備え得る。
コード化ツリーブロックを生成するために、ビデオエンコーダ20は、ツリーブロックのビデオブロックに対して4分木区分を再帰的に実行して、ビデオブロックを漸進的により小さいビデオブロックに分割し得る。より小さいビデオブロックの各々は異なるCUに関連付けられ得る。たとえば、ビデオエンコーダ20は、ツリーブロックのビデオブロックを4つの等しいサイズのサブブロックに区分し、サブブロックのうち1つまたは複数を、4つの等しいサイズのサブサブブロックに区分し、以下同様に行い得る。ビットストリーム中の1つまたは複数のシンタックス要素は、ビデオエンコーダ20がツリーブロックのビデオブロックを区分し得る最大回数を示し得る。シンタックス要素はまた、最小コーディングユニット(SCU:smallest coding unit)を示し得る。CUのビデオブロックは形状が矩形であり得る。
ビデオエンコーダ20は、ツリーブロック中の各非区分化CUに対して符号化演算を実行し得る。非区分化CUは、そのビデオブロックが他のCUに関連するビデオブロックに区分されないCUであり得る。非区分化CUに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、CUのための1つまたは複数の予測ユニット(PU:prediction unit)を生成し得る。CUのPUの各々は、CUのビデオブロック内の異なるビデオブロックに関連付けられ得る。
ビデオエンコーダ20は、イントラ予測またはインター予測を使用して、CUのPUについての予測データを生成し得る。ビデオエンコーダ20がイントラ予測を使用してPUについての予測データを生成するとき、ビデオエンコーダ20は、PUを含んでいるピクチャの復号サンプルからPUについての予測データを導出し得る。ビデオエンコーダ20がインター予測を使用してPUについての予測データを生成するとき、ビデオエンコーダ20は、PUを含んでいるピクチャとは異なるピクチャの復号サンプルからPUについての予測データを導出し得る。PUについての予測データは、予測ビデオブロックと様々なシンタックス要素とを含み得る。
ビデオエンコーダ20がCUの各PUについての予測データを生成した後、ビデオエンコーダ20はCUについての残差データを生成し得る。CUについての残差データは、CUのPUのための予測ビデオブロック中のサンプルと、CUの元のビデオブロック中のサンプルとの間の差異を示し得る。
ビデオエンコーダ20は、4分木区分を使用して、非区分化CUの残差データを1つまたは複数の残差ビデオブロックに区分し得る。残差ビデオブロックの各々は、CUの異なる変換ユニット(TU:transform unit)に関連付けられ得る。ビデオエンコーダ20は、TUに関連する残差ビデオブロックに1つまたは複数の変換を適用し得る。変換係数ブロックは、TUに関連する残差ビデオブロックに変換を適用することから生じ得る。変換係数ブロックは、変換係数の2D行列であり得る。図2は、例示的な変換係数ブロックを示す概念図である。
ビデオエンコーダ20は、変換係数ブロック中の変換係数を量子化し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数ブロック中の変換係数を量子化し、さらに圧縮するプロセスを指す。量子化は、変換係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、nはmよりも大きい。
変換係数ブロックを量子化した後に、ビデオエンコーダ20は、変換係数ブロックに関連するシンタックス要素のセットを生成し得る。ビデオエンコーダ20は、次いで、これらのシンタックス要素の一部に対してエントロピー符号化演算を実行し得る。たとえば、ビデオエンコーダ20は、これらのシンタックス要素に対して、コンテキスト適応型可変長コーディング(CAVLC:context adaptive variable length coding)演算、コンテキスト適応型バイナリ算術コーディング(CABAC:context adaptive binary arithmetic coding)演算、シンタックスベースのコンテキスト適応型2値算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)演算、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング演算、または別のタイプのエントロピー符号化演算を実行し得る。ビデオエンコーダ20はまた、ビデオデータに関連する他のシンタックス要素に対してエントロピー符号化演算を実行し得る。
ビデオエンコーダ20が変換係数ブロックに関連するシンタックス要素を生成し、変換係数ブロックに対してエントロピー符号化を実行した後、ビデオエンコーダ20は、ビデオデータのためのビットストリーム中に得られたデータを含め得る。ビットストリームは、コード化ピクチャおよび関連データの表現を形成する一連のビットを含み得る。ビットストリームは、一連のネットワークアブストラクションレイヤ(NAL:network abstraction layer)ユニットを備え得る。NALユニットの各々は、NALユニット中のデータのタイプの指示と、データを含んでいるバイトとを含んでいるシンタックス構造であり得る。たとえば、NALユニットは、シーケンスパラメータセット、ピクチャパラメータセット、適応パラメータセット、コード化スライス、補足エンハンスメント情報、アクセスユニットデリミタ、フィラーデータ、または別のタイプのデータを表すデータを含み得る。NALユニットのデータは、エミュレーション防止ビットが点在しているローバイトシーケンスペイロード(RBSP:raw byte sequence payload)の形態であり得る。RBSPは、NALユニット内にカプセル化される整数個のバイトを含んでいるシンタックス構造であり得る。
ビデオエンコーダ20が変換係数ブロックに対してエントロピー符号化演算を実行するとき、ビデオエンコーダ20は、変換係数ブロック中に少なくとも1つの重要な(すなわち、非ゼロ)変換係数があるかどうかを判断し得る。変換係数ブロック中に少なくとも1つの重要な変換係数がある場合、ビデオエンコーダ20は、変換係数ブロックが少なくとも1つの重要な変換係数を含むことを示すようにコード化ブロックフラグ(CBF:coded block flag)を更新し得る。変換係数ブロック中に重要な変換係数がない場合、ビデオエンコーダ20は、変換係数ブロックがいかなる有意変換係数も含まないことを示すようにCBFを更新し得る。
変換係数ブロック中に少なくとも1つの有意変換係数がある場合、ビデオエンコーダ20は、変換係数ブロックの最後の有意係数(LSC:last significant coefficient)を識別し得る。変換係数ブロックのLSCは、変換係数ブロックの変換係数がコーディングスキャン順序に従って順序付けられたときに最後に発生する非ゼロ変換係数である。
ビデオエンコーダ20は、様々なコーディングスキャン順序に従って変換係数ブロックのLSCを識別し得る。たとえば、ビデオエンコーダ20は、ジグザグスキャン順序、水平スキャン順序、垂直スキャン順序、対角スキャン順序、またはサブブロックスキャン順序に従ってLSCを識別し得る。正スキャン順序は、変換係数ブロックのDC変換係数で開始する。DC変換係数は、変換係数ブロックの左上隅で発生する。逆(reverse)または逆(inverse)スキャン順序は、変換係数ブロックの右下隅で開始し得る。
いくつかの例では、変換係数ブロックがイントラ予測CUに関連付けられる場合、ビデオエンコーダ20は、CUに関連するイントラ予測モードに基づいてスキャン順序を選択し得る。さらに、いくつかの例では、ビデオエンコーダ20は、コーディング効率および/または主観的画質を最適化するために、スキャン順序の間で適応的に切り替わり得る。
図3は、例示的なスキャン順序を示す概念図である。図3のパート(a)は、例示的なジグザグスキャン順序を示している。図3のパート(b)は、例示的な水平スキャン順序を示している。図3のパート(c)は、例示的な垂直スキャン順序を示している。図3のパート(d)は、例示的な逆対角スキャン順序を示している。
図3のパート(e)は、例示的な対角サブブロックスキャン順序を示している。サブブロックスキャン順序では、ビデオエンコーダ20は、大きい変換係数ブロックをサブブロックに分割し得る。ビデオエンコーダ20は、次いで、第2のサブブロック中の変換係数の各々を処理する前に、第1のサブブロック内の変換係数の各々を処理し、以下同様に行い得る。図3の例では、ビデオエンコーダ20は、変換係数ブロックを4つの4×4サブブロックに区分している。他の例では、ビデオエンコーダ20は、変換係数ブロックを、他のサイズを有するサブブロックに区分し得る。図3では、サブブロックは破線矩形として示されている。サブブロックの各々について、ビデオエンコーダ20は、特定の順序でサブブロックの変換係数を処理し得る。図3の例では、ビデオエンコーダ20は、上/右対角順序で左上のサブブロック中の変換係数を処理し、次いで、上/右対角順序で左下のサブブロック中の変換係数を処理し、次いで、上/右対角順序で右上のサブブロック中の変換係数を処理し、最後に、上/右対角順序で右下のサブブロック中の変換係数を処理する。
他の例では、ビデオエンコーダ20は、変換係数ブロックを4×4サブブロック(または他のサブブロックサイズ)に区分し得る。そのような例では、ビデオエンコーダ20は、コーディングスキャン順序に従って4×4サブブロックの各々を処理し得る。
LSCを識別した後に、ビデオエンコーダ20は、LSCの順序位置を判断し得る。LSCの順序位置は、コーディングスキャン順序に従って変換係数ブロックの有意変換係数および非有意変換係数を順序付けることから生じる1Dベクトル中のLSCの位置を示し得る。たとえば、ビデオエンコーダ20は、コーディングスキャン順序に従って変換係数ブロックの変換係数を順序付けることから生じる1Dベクトル中のn番目の位置でLSCが発生すると判断し得る。言い換えれば、変換係数ブロックの変換係数がコーディングスキャン順序に従って順序付けられた場合、ビデオデコーダ20は、LSCがn番目の変換係数であると判断し得る。この例では、nは、5または10などの整数であり得る。
さらに、ビデオエンコーダ20は、置換係数(すなわち、変換係数ブロック中の所与の変換係数)を識別し得る。置換係数は、変換係数が仮定したスキャン順序に従って順序付けられるときにLSCの順序位置で発生する変換係数であり得る。たとえば、変換係数がコーディングスキャン順序に従って順序付けられるときにLSCが10番目の位置で発生する場合、置換係数は、変換係数が仮定したスキャン順序に従って順序付けられるときに10番目の位置で発生する。
置換係数を識別した後に、ビデオエンコーダ20は、置換係数の座標インジケータを生成し得る。置換係数の座標インジケータは、置換係数の変換係数ブロック内の座標を指定する。ビデオエンコーダ20は、LSCの座標インジケータの代わりに置換係数の座標インジケータをシグナリングし得、したがって、「置換係数」という名前がある。
置換係数は、実際には、仮定したスキャン順序に従う有意変換係数または最後の有意変換係数でないことがある。しかしながら、置換係数とLSCとが、仮定したスキャン順序とコーディングスキャン順序とに従って同じ順序位置で発生するので、ビデオエンコーダ20は、LSCの順序位置をシグナリングするために置換係数の座標インジケータを使用し得る。置換係数とLSCとが、仮定したスキャン順序とコーディングスキャン順序とに従って同じ順序位置で発生するので、ビデオデコーダ30は、コーディングスキャン順序を最初に判断することなしに、置換係数の座標に基づいてLSCの順序位置を判断することが可能であり得る。
いくつかの事例では、コーディングスキャン順序は仮定したスキャン順序と同じである。他の例では、コーディングスキャン順序は仮定したスキャン順序とは異なる。たとえば、コーディングスキャン順序は水平スキャン順序であり得、仮定したスキャン順序は対角スキャン順序であり得る。この例では、変換係数ブロックが8×8であり、LSCが水平(コーディング)スキャン順序に従って10番目の位置で発生する場合、ビデオエンコーダ20は、座標(0,3)を指定する座標インジケータを生成し得る。この例では、座標(0,3)での変換係数(すなわち、置換係数)が対角(仮定)スキャン順序に従って10番目の位置で発生するので、座標インジケータは座標(0,3)を指定する。他の例では、仮定したスキャン順序はサブブロックスキャン順序であり得、コーディングスキャン順序は、水平スキャン順序と、垂直スキャン順序と、対角スキャン順序と、ジグザグスキャン順序と、サブブロックスキャン順序との中から選択され得る。いくつかの事例では、仮定したスキャン順序は変換係数ブロックの左上隅で開始する。他の例では、仮定したスキャン順序は変換係数ブロックの右下隅で開始する。
コーディングスキャン順序と仮定したスキャン順序とは異なることがあるので、LSCの座標は置換係数の座標と同じであることも、同じでないこともある。したがって、LSCの座標は、座標インジケータによって示された座標と同じでないことがある。たとえば、コーディングスキャン順序は水平スキャン順序であり得、仮定したスキャン順序は垂直スキャン順序であり得、変換係数ブロックは8×8である。この例では、変換係数ブロックがコーディングスキャン順序に従ってスキャンされるとき、LSCは座標(0,4)にあり得る。したがって、LSCは、コーディングスキャン順序に従って5番目の位置にあり得る。この例では、座標(4,0)の変換係数は、仮定したスキャン順序に従って5番目の位置にある。したがって、この例では、座標インジケータは、座標(0,4)ではなく座標(4,0)を指定する。
ビデオエンコーダ20は、座標インジケータに対してCABAC符号化演算を実行し得る。いくつかの事例では、エントロピー符号化演算は、座標インジケータのx座標とy座標との間の統計的関係を活用することが可能であり得るので、座標インジケータに対してCABAC符号化演算を実行することは、対応するスキャンベースLSCインジケータに対してCABAC符号化演算を実行することよりも効率的であり得る。スキャンベースLSCインジケータは、スキャン順序に従って最後の有意変換係数の順序位置を示し得る。ビデオエンコーダ20は、符号化ビットストリームに座標インジケータのCABAC符号化バージョンを追加し得る。
さらに、ビデオエンコーダ20は、変換係数ブロックのための有意性マップとレベル情報とを生成し得る。有意性マップは、変換係数ブロック中の変換係数のうちのどれが有意であるかを示し得る。図4は、図2の変換係数ブロックのための例示的な有意性マップの2D表現を示す概念図である。変換係数ブロックについてのレベル情報は、変換係数ブロック中の有意変換係数の大きさと正/負符号とを示し得る。
レベル情報を生成するために、ビデオエンコーダ20は、コーディングスキャン順序に従って有意変換係数の大きさ(すなわち、絶対値)と有意変換係数の正/負符号とを順序付け得る。ビデオエンコーダ20は、座標インジケータと、有意性マップと、レベル情報とに対してエントロピー符号化演算を実行し得る。ビデオエンコーダ20は、ビットストリーム中に座標インジケータと、有意性マップと、レベル情報とのエントロピー符号化バージョンを含め得る。このようにして、ビデオエンコーダ20は、変換係数ブロックの座標インジケータと、有意性マップと、レベル情報とのエントロピー符号化バージョンを出力し得る。
ビデオエンコーダ20は、変換係数ブロックの有意性マップとレベル情報とを生成し、エントロピー符号化するために、変換係数ブロックに対して1つまたは複数のコーディングパスを実行し得る。コーディングパスの各々の中で、ビデオエンコーダ20は、逆スキャン順序に従って変換係数ブロックの変換係数をくまなくスキャンし得る。逆スキャン順序は、LSCを識別するために使用されたスキャン順序の逆であり得る。たとえば、ビデオエンコーダ20が正対角スキャン順序に従ってLSCを識別した場合、逆スキャン順は逆対角スキャン順序であり得る。
第1のコーディングパス中に処理された各変換係数について、ビデオエンコーダ20は、変換係数の順序位置がLSCの順序位置の前に発生するかどうかを判断し得る。変換係数の順序位置がLSCの順序位置の前に発生する場合、ビデオエンコーダ20は、その変換係数が有意であるかどうかを示すシンタックス要素(すなわち、有意性フラグ)を生成し、CABAC符号化し得る。変換係数がLSCの順序位置の前に発生しない場合、ビデオエンコーダ20は、その変換係数のための有意性フラグを生成せず、CABAC符号化しない。このようにして、ビデオエンコーダ20は、変換係数ブロックのための有意性マップを生成し、CABAC符号化し得る。有意性マップを生成し、CABAC符号化した後に、ビデオエンコーダ20は、ビットストリーム中に有意性マップのCABAC符号化バージョンを含め得る。
いくつかの事例では、LSCの位置と有意性マップのコンテンツとの間に統計的関係があり得る。したがって、ビデオエンコーダ20は、有意性マップの有意性フラグをCABAC符号化する際に使用するための1つまたは複数のコンテキストモデルを選択するためにLSCの位置を使用し得る。
第2のコーディングパス中に処理された各変換係数について、ビデオエンコーダ20は、変換係数が有意であるかどうかを判断し得る。変換係数が有意である場合、ビデオエンコーダ20は、その変換係数の絶対値が1よりも大きいかどうかを示すシンタックス要素(すなわち、1よりも大きいレベルフラグ)を生成し、CABAC符号化し得る。変換係数が有意でない場合、ビデオエンコーダ20は、その変換係数のための1よりも大きいレベルフラグを生成せず、CABAC符号化しない。1よりも大きいレベルフラグを生成し、CABAC符号化した後に、ビデオエンコーダ20は、ビットストリーム中に1よりも大きいレベルフラグのCABAC符号化バージョンを含め得る。
第3のコーディングパス中に、ビデオエンコーダ20は、変換係数の絶対値が2よりも大きいかどうかを示すシンタックス要素(すなわち、2よりも大きいレベルフラグ)を生成し、CABAC符号化し得る。2よりも大きいレベルフラグを生成し、CABAC符号化した後に、ビデオエンコーダ20は、ビットストリーム中に2よりも大きいレベルフラグのCABAC符号化バージョンを含め得る。
第4のコーディングパス中に処理された各変換係数について、ビデオエンコーダ20は、変換係数が有意であるかどうかを判断し得る。変換係数が有意である場合、ビデオエンコーダ20は、変換係数が正であるのか負であるのかを示すシンタックス要素(すなわち、符号フラグ)を生成し得る。変換係数が有意でない場合、ビデオエンコーダ20は、その変換係数のための符号フラグを生成しない。符号フラグを生成した後に、ビデオエンコーダ20は、ビットストリーム中に符号フラグを含め得る。
第5のコーディングパス中に処理された各変換係数について、ビデオエンコーダ20は、変換係数が有意であるかどうかを判断し得る。変換係数が有意である場合、ビデオエンコーダ20は、係数の剰余値(すなわち、レベル剰余要素)を生成し得る。ビデオエンコーダ20は、次いで、剰余値に対応するゴロムライスコード(Golomb-Rice code)を識別し得る。変換係数のためのゴロムライスコードを識別した後に、ビデオエンコーダ20は、ビットストリーム中にゴロムライスコードを含め得る。変換係数が有意でない場合、ビデオエンコーダ20は、その変換係数のためのレベル剰余要素を生成しない。
ビデオデコーダ30がビットストリームを受信すると、ビデオデコーダ30は、そのビットストリームに対してパース演算を実行し得る。パース演算は、ビットストリームからシンタックス要素を抽出する。ビデオデコーダ30は、ビットストリームから抽出されたシンタックス要素に基づいてビデオデータのビデオブロックを再構成する再構成演算を実行し得る。いくつかの事例では、ビデオデコーダ30は、パース演算と再構成演算とを並列して実行し得る。
パース演算を実行することの一部として、ビデオデコーダ30は、ビットストリーム中の様々なエントロピー符号化シンタックス要素に対してエントロピー復号演算を実行し得る。たとえば、ビデオデコーダ30は、エントロピー符号化座標インジケータ、有意性マップ、変換係数ブロックについてのレベル情報、およびビットストリーム中の他のシンタックス要素に対してエントロピー復号演算を実行し得る。他のシンタックス要素は、イントラモードパラメータ、動き情報などを含み得る。イントラモードパラメータはイントラ予測モードを示す。
ビデオデコーダ30が変換係数ブロックの座標インジケータをエントロピー復号した後、ビデオデコーダ30は、座標インジケータをスキャンベースLSCインジケータに変換し得る。変換係数が仮定したスキャン順序に従って1Dベクトルに順序付けられた場合、スキャンベースLSCインジケータは、座標インジケータによって示された座標における変換係数の1Dベクトル中の位置を示す。たとえば、仮定したスキャン順序は垂直スキャン順序であり得、座標インジケータは座標(4,0)を指定し得る。この例では、ビデオデコーダ30は、座標インジケータを、数5を示すスキャンベースLSCインジケータに変換し得る。
スキャンベースLSCインジケータは、LSCと置換係数の両方の順序位置を示す。座標インジケータは、置換係数の座標が仮定したスキャン順序に従ってn番目の順序位置で発生することを示し得る。置換係数が、仮定したスキャン順序に従ってn番目の位置で発生し、LSCが、コーディングスキャン順序に従ってn番目の位置で発生するので、仮定したスキャン順序がコーディングスキャン順序と異なるかどうかにかかわらず、スキャンベースLSCインジケータはn番目の位置を示す。
たとえば、変換係数ブロックは8×8であり得、仮定したスキャン順序は対角スキャン順序であり得、座標インジケータは座標(0,3)を指定し得る。この例では、座標(0,3)における変換係数は、対角スキャン順序に従って10番目の位置にあり得る。したがって、この例では、ビデオデコーダ30は、10番目の位置を示すスキャンベースLSCインジケータを生成し得る。ビデオエンコーダ20が座標インジケータをどのように生成するかにより、LSCはまた、コーディングスキャン順序に従って10番目の位置で発生する。
座標インジケータをスキャンベースLSCインジケータに変換した後に、ビデオデコーダ30はコーディングスキャン順序を判断し得る。コーディングスキャン順序を判断した後に、ビデオデコーダ30は、コーディングスキャン順序とスキャンベースLSCインジケータとに基づいてLSCの座標を判断し得る。ビデオデコーダ30は、次いで、LSCの座標および/またはスキャンベースLSCインジケータに基づいて、変換係数ブロックの有意性マップとレベル情報とをエントロピー復号し得る。たとえば、ビデオデコーダ30は、LSCの座標および/またはスキャンベースLSCインジケータに基づいて選択された1つまたは複数のCABACコンテキストを使用して有意性マップをCABAC復号し得る。その後、ビデオデコーダ30は、コーディングスキャン順序を使用して、変換係数ブロックのための有意性マップとレベル情報とに基づいて変換係数ブロックを再構成し得る。
本開示の技法によれば、ビデオエンコーダ20は、ビデオデータを符号化するための方法を実行し得る。本方法は、変換係数ブロックの最後の有意変換係数がコーディングスキャン順序に従って所与の順序位置で発生すると判断することを備え得る。本方法はまた、変換係数ブロック中の所与の変換係数の座標を指定する座標インジケータを生成することを備え得る。所与の変換係数は、仮定したスキャン順序に従って所与の順序位置で発生し得る。さらに、本方法は、座標インジケータのエントロピー符号化バージョンを生成するために、座標インジケータに対してエントロピーコーディング演算を実行することを備え得る。本方法はまた、座標インジケータのエントロピー符号化バージョンを出力することを備える。本開示の技法は、ビデオデコーダ30が、コーディングスキャン順序を判断するために必要とされるデータを抽出することなしに、座標インジケータを正しいスキャンベースLSCインジケータに変換することを可能にし得る。たとえば、ビデオデコーダ30は、ビデオエンコーダ20が仮定したスキャン順序を使用して座標インジケータを生成したと仮定し得る。さらに、ビデオデコーダ30は、座標インジケータによって示された位置の変換係数がコーディングスキャン順序と仮定したスキャン順序とに従って同じ順序位置を有すると仮定し得る。いくつかの例では、仮定したスキャン順序は、ビデオデコーダ30において事前構成され得る。他の例では、ビデオエンコーダ20は、ビデオデコーダ30に仮定したスキャン順序をシグナリングし得る。
したがって、ビデオデコーダ30は、実際のコーディングスキャン順序にかかわらず、LSCの正しい順序位置を示すスキャンベースLSCインジケータを生成し得る。スキャンベースLSCインジケータは、実際のコーディングスキャン順序にかかわらず正しい順序位置を示すので、ビデオデコーダ30は、スキャンベースLSCインジケータを判断するために、実際のコーディングスキャン順序を判断するために必要とされるデータを抽出する必要がないことがある。したがって、ビデオデコーダ30は、ビデオデコーダ30がコーディングスキャン順序を判断するデータを抽出するのを待つことなしに、スキャンベースLSCインジケータを生成することが可能であり得る。これにより、復号プロセスのスループットが増加し得る。
このようにして、ビデオデコーダ30は、ビデオデータを復号するための方法を実行し得る。本方法は、変換係数ブロック中の所与の位置の座標を指定する座標インジケータを受信することを備え得る。所与の位置は、仮定したスキャン順序に従って所与の順序位置で発生し得る。変換係数ブロックの最後の有意変換係数は、コーディングスキャン順序に従って所与の順序位置で発生する。変換係数ブロックは、ビデオデータに関連する変換係数を備え得る。本方法はまた、座標インジケータを、所与の順序位置を指定するスキャンベースLSCインジケータに変換することを備え得る。
図5は、本開示の技法を実装するように構成される例示的なビデオエンコーダ20を示すブロック図である。図5は、説明のために提供されるものであり、本開示で広く例示し説明する技法を限定するものと見なすべきではない。説明のために、本開示では、HEVCコーディングのコンテキストでビデオエンコーダ20について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
図5の例では、ビデオエンコーダ20は複数の機能構成要素を含む。ビデオエンコーダ20の機能構成要素は、モード選択モジュール40と、動き推定モジュール42と、動き補償モジュール44と、イントラ予測モジュール46と、残差生成モジュール50と、変換モジュール52と、量子化モジュール54と、エントロピー符号化モジュール56と、逆量子化モジュール58と、逆変換モジュール60と、再構成モジュール62と、復号ピクチャバッファ64とを含む。他の例では、ビデオエンコーダ20は、より多いか、より少ないか、または異なる機能構成要素を含み得る。たとえば、ビデオエンコーダ20は、ブロッキネスアーティファクトを除去するために再構成モジュール62の出力をフィルタリングするためのデブロッキングフィルタモジュールを含み得る。さらに、動き推定モジュール42と動き補償モジュール44とは、高度に統合され得るが、図5の例では、説明のために別個に表されている。
ビデオエンコーダ20はビデオデータを受信し得る。ビデオエンコーダ20は、様々なソースからビデオデータを受信し得る。たとえば、ビデオエンコーダ20は、ビデオソース18(図1)または別のソースからビデオデータを受信し得る。ビデオデータは、一連のピクチャを表し得る。ビデオデータを符号化するために、ビデオエンコーダ20は、ビデオデータ中のピクチャに対して符号化演算を実行し得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャ中の各スライスに対して符号化演算を実行し得る。スライスに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、スライス中の各ツリーブロックに対して符号化演算を実行し得る。
ツリーブロックに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ツリーブロックのビデオブロックを1つまたは複数のビデオブロックに区分し得る。ビデオブロックの各々は異なるCUに関連付けられ得る。いくつかの例では、CUのビデオブロックのサイズは、8×8ピクセルから、最大64×64ピクセル以上のツリーブロックのビデオブロックのサイズまで及び得る。本開示では、「N×N(NxN)」および「N×N(N by N)」は、垂直寸法および水平寸法に関するビデオブロックのピクセル寸法、たとえば、16×16(16x16)ピクセルまたは16×16(16 by 16)ピクセルを指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16ピクセルを有し(y=16)、水平方向に16ピクセルを有する(x=16)。同様に、N×Nブロックは、概して、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、Nは非負整数値を表す。変換係数ブロックの次元を示すために同様の表記法が使用され得る。
ツリーブロックに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ツリーブロックのための階層4分木データ構造を生成し得る。たとえば、ツリーブロックは、4分木データ構造のルートノードに対応し得る。ビデオエンコーダ20が、ツリーブロックのビデオブロックを4つのサブブロックに区分する場合、ルートノードは、4分木データ構造中に4つの子ノードを有する。子ノードは、サブブロックに関連するCUに対応する。ビデオエンコーダ20が、サブブロックのうちの1つを4つのサブサブブロックに区分する場合、そのサブブロックに関連するCUに対応するノードは4つの子ノードを有し、4つの子ノードは、そのサブサブブロックに関連するCUに対応し得る。
4分木データ構造の各ノードは、対応するCUに関連するシンタックス要素を含み得る。たとえば、4分木中のノードは、ノードに対応するCUのビデオブロックが4つのサブブロックに区分(すなわち、分割)されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUのビデオブロックがサブブロックに分割されるかどうかに依存し得る。ビデオブロックが区分されていないCUは、4分木データ構造におけるリーフノードに対応し得る。4分木データ構造におけるリーフノードは、「コーディングノード」と呼ばれることがある。ツリーブロックの符号化バージョンを表すデータは、ツリーブロックのための4分木データ構造に基づくデータを含み得る。
ビデオエンコーダ20は、ツリーブロックの各非区分化CUに対して符号化演算を実行し得る。ビデオエンコーダ20が非区分化CUに対して符号化演算を実行するとき、ビデオエンコーダ20は、非区分化CUの符号化表現を表すデータを生成する。
CUに対して符号化演算を実行することの一部として、モード選択モジュール40は、CUのビデオブロックをCUの1つまたは複数のPUの間で区分し得る。ビデオエンコーダ20およびビデオデコーダ30は様々なPUサイズをサポートし得る。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ20およびビデオデコーダ30は、2N×2NまたはN×NのPUサイズと、2N×2N、2N×N、N×2N、N×N、2N×nU、nL×2N、nR×2N、または同様の対称PUサイズでのインター予測とをサポートし得る。ビデオエンコーダ20およびビデオデコーダ30は、2N×nU、2N×nD、nL×2N、およびnR×2NというPUサイズのための非対称区分もサポートし得る。いくつかの例では、モード選択モジュール40は、CUのビデオブロックの辺と直角を成さない境界に沿ってCUのビデオブロックをCUのPUの間で区分するために、幾何学的区分を実行し得る。
動き推定モジュール42および動き補償モジュール44は、CUの各PUに対してインター予測を実行し得る。インター予測は時間圧縮を与え得る。PUに対してインター予測を実行することによって、動き推定モジュール42および動き補償モジュール44は、CUを含んでいるピクチャとは異なる参照ピクチャの復号サンプルに基づいて、PUについての予測データを生成し得る。PUについての予測データは、予測ビデオブロックと様々なシンタックス要素とを含み得る。
さらに、動き推定モジュール42がPUに関する動き推定演算を実行すると、動き推定モジュール42は、PUの1つまたは複数の動きベクトルを生成し得る。たとえば、スライスは、Iスライス、Pスライス、またはBスライスであり得る。動き推定モジュール42および動き補償モジュール44は、PUがIスライス中にあるのか、Pスライス中にあるのか、Bスライス中にあるのかに応じて、CUのPUに異なる演算を実行し得る。Iスライス中では、すべてのPUがイントラ予測される。したがって、PUがIスライス中にある場合、動き推定モジュール42および動き補償モジュール44は、PUに対してインター予測を実行しない。
PUがPスライス中にある場合、PUを含んでいるピクチャは、「リスト0」と呼ばれる参照ピクチャのリストに関連付けられる。リスト0中の参照ピクチャの各々は、復号順序で後続ピクチャのインター予測のために使用され得るサンプルを含んでいる。動き推定モジュール42が、Pスライス中のPUに関して動き推定演算を実行するとき、動き推定モジュール42は、PUのための参照ブロックを求めて、リスト0中の参照ピクチャを探索し得る。PUの参照ブロックは、PUのビデオブロック中のサンプルに最もぴったり対応するサンプルのセット、たとえば、サンプルのブロックであり得る。動き推定モジュール42は、参照ピクチャ中のサンプルのセットがPUのビデオブロック中のサンプルにどのくらいぴったり対応するかを判断するために、様々なメトリックを使用し得る。たとえば、動き推定モジュール42は、絶対値差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって、参照ピクチャ中のサンプルのセットがPUのビデオブロック中のサンプルにどのくらいぴったり対応するかを判断し得る。
Pスライス中のPUの参照ブロックを識別した後に、動き推定モジュール42は、参照ブロックを含んでいる、リスト0中の参照ピクチャを示す参照インデックスと、PUと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。様々な例では、動き推定モジュール42は、動きベクトルを様々な精度で生成し得る。たとえば、動き推定モジュール42は、1/4サンプル精度、1/8サンプル精度、または他の分数サンプル精度で動きベクトルを生成し得る。分数サンプル精度の場合、参照ブロック値は、参照ピクチャ中の整数位置サンプルから補間され得る。動き推定モジュール42は、PUについての動き情報をエントロピー符号化モジュール56と動き補償モジュール44とに出力し得る。PUについての動き情報は、参照インデックスとPUの動きベクトルとを含み得る。動き補償モジュール44は、PUの動き情報を使用して、PUの参照ブロックを識別し、取り出し得る。
PUがBスライス中にある場合、PUを含んでいるピクチャは、「リスト0」および「リスト1」と呼ばれる参照ピクチャの2つのリストに関連付けられ得る。リスト0およびリスト1中の参照ピクチャの各々は、復号順序で後続ピクチャのインター予測のために使用され得るサンプルを含んでいる。いくつかの例では、Bスライスを含んでいるピクチャは、リスト0とリスト1の組合せである、リストの組合せに関連付けられ得る。
さらに、PUがBスライス中にある場合、動き推定モジュール42は、PUのための単方向予測または双方向予測を実行し得る。動き推定モジュール42が、PUのための単方向予測を実行するとき、動き推定モジュール42は、PUのための参照ブロックを求めてリスト0またはリスト1の参照ピクチャを探索し得る。動き推定モジュール42は、次いで、参照ブロックを含んでいる、リスト0またはリスト1中の参照ピクチャを示す参照インデックスと、PUと参照ブロックとの間の空間変位を示す動きベクトルとを生成し得る。動き推定モジュール42は、PUについての動き情報をエントロピー符号化モジュール56と動き補償モジュール44とに出力し得る。PUについての動き情報は、参照インデックスと、予測方向インジケータと、PUの動きベクトルとを含み得る。予測方向インジケータは、参照インデックスが、リスト0中の参照ピクチャを示すのか、リスト1中の参照ピクチャを示すのかを示し得る。動き補償モジュール44は、PUの動き情報を使用して、PUの参照ブロックを識別し、取り出し得る。
動き推定モジュール42が、PUのための双方向予測を実行するとき、動き推定モジュール42は、PUのための参照ブロックを求めてリスト0中の参照ピクチャを探索し得、同じく、PUのための別の参照ブロックを求めてリスト1中の参照ピクチャを探索し得る。動き推定モジュール42は、次いで、参照ブロックを含んでいる、リスト0およびリスト1中の参照ピクチャを示す参照インデックスと、参照ブロックとPUとの間の空間変位を示す動きベクトルとを生成し得る。動き推定モジュール42は、PUの動き情報をエントロピー符号化モジュール56と動き補償モジュール44とに出力し得る。PUについての動き情報は、参照インデックスとPUの動きベクトルとを含み得る。動き補償モジュール44は、動き情報を使用して、PUの参照ブロックを識別し、取り出し得る。
CUに対して符号化演算を実行することの一部として、イントラ予測モジュール46は、CUのPUに対してイントラ予測を実行し得る。イントラ予測は空間圧縮を与え得る。イントラ予測モジュール46がPUに対してイントラ予測を実行するとき、イントラ予測モジュール46は、同じピクチャ中の他のPUの復号サンプルに基づいてPUについての予測データを生成し得る。PUについての予測データは、予測ビデオブロックと様々なシンタックス要素とを含み得る。イントラ予測モジュール46は、Iスライス、Pスライス、およびBスライス中のPUに対してイントラ予測を実行し得る。
PUに対してイントラ予測を実行するために、イントラ予測モジュール46は、複数のイントラ予測モードを使用して、PUについての予測データの複数のセットを生成し得る。イントラ予測モジュール46が、イントラ予測モードを使用して、PUについての予測データのセットを生成するとき、イントラ予測モジュール46は、イントラ予測モードに関連する方向に、PUのビデオブロックを超えて隣接PUのビデオブロックからサンプルを展開し得る。PU、CU、およびツリーブロックのための左から右、上から下の符号化順序を仮定すると、隣接PUは、PUの上、右上、左上、または左にあり得る。イントラ予測モジュール46は、PUのサイズに応じて、様々な数のイントラ予測モード、たとえば、33個の方向性イントラ予測モードを使用し得る。
イントラ予測モジュール46は、PUについての予測データのセットのうちの1つを選択し得る。イントラ予測モジュール46は、PUについての予測データのセットを様々な方法で選択し得る。たとえば、イントラ予測モジュール46は、予測データのセットのためのレート/ひずみメトリックを計算し、レート/ひずみメトリックが最も低い予測データのセットを選択することによって、PUについての予測データのセットを選択し得る。
モード選択モジュール40は、PUについての、動き補償モジュール42によって生成された予測データ、またはPUについての、イントラ予測モジュール46によって生成された予測データの中から、PUについての予測データを選択し得る。いくつかの例では、モード選択モジュール40は、予測データのセットのレート/ひずみメトリックに基づいて、PUについての予測データを選択する。
モード選択モジュール40がCUのPUについての予測データを選択した後、残差生成モジュール50は、CUのビデオブロックから、CUのPUの予測データの予測ビデオブロックを減算することによって、CUについての残差データを生成し得る。CUの残差データは、CUのビデオブロック中のサンプルの異なるサンプル構成要素に対応する2D残差ビデオブロックを含み得る。たとえば、残差データは、CUのPUの予測ビデオブロック中のルミナンスサンプルと、CUの元のビデオブロック中のルミナンスサンプルとの間の差に対応する残差ビデオブロックを含み得る。さらに、CUの残差データは、CUのPUの予測ビデオブロック中のクロミナンスサンプルと、CUの元のビデオブロック中のクロミナンスサンプルとの間の差に対応する残差ビデオブロックを含み得る。
モード選択モジュール40は、CUの残差ビデオブロックをサブブロックに区分するために4分木区分を実行し得る。各未分割残差ビデオブロックは、CUの異なるTUに関連付けられ得る。CUのTUに関連する残差ビデオブロックのサイズおよび位置は、CUのPUに関連するビデオブロックのサイズおよび位置に基づくことも、基づかないこともある。「残差4分木」(RQT:residual quad tree)として知られる4分木構造は、残差ビデオブロックの各々に関連するノードを含み得る。CUのTUは、RQTのリーフノードに対応し得る。
変換モジュール52は、TUに関連する残差ビデオブロックに1つまたは複数の変換を適用することによって、CUのTUごとに1つまたは複数の変換係数ブロックを生成し得る。変換係数ブロックの各々は、変換係数の2D行列であり得る。変換モジュール52は、TUに関連する残差ビデオブロックに様々な変換を適用し得る。たとえば、変換モジュール52は、TUに関連する残差ビデオブロックに離散コサイン変換(DCT:discrete cosine transform)、方向変換、または概念的に同様の変換を適用し得る。変換モジュール52が、TUのための変換係数ブロックを生成した後、量子化モジュール54は、変換係数ブロック中の変換係数を量子化し得る。
エントロピー符号化モジュール56は、量子化モジュール54から変換係数ブロックを受信し得る。エントロピー符号化モジュール56が変換係数ブロックを受信すると、エントロピーコーディングモジュール56は、変換係数ブロックおよび座標インジケータのための有意性マップを生成し得る。座標インジケータは、置換係数の変換係数ブロック中の座標を示し得る。変換係数ブロックのLSCがコーディングスキャン順序に従ってn番目の位置で発生すると仮定すると、置換係数は、仮定したスキャン順序に従ってn番目の位置で発生する。いくつかの例では、エントロピー符号化モジュール56は、有意性マップの一部として座標インジケータをエントロピー符号化し得る。エントロピー符号化モジュール56はまた、変換係数ブロックについてのレベル情報を生成し得る。上記で説明したように、変換係数ブロックについてのレベル情報は、変換係数ブロック中の有意変換係数の大きさと符号とを示し得る。
エントロピー符号化モジュール56は、座標インジケータと、有意性マップと、レベル情報とに対してエントロピー符号化演算を実行し得る。たとえば、エントロピー符号化モジュール56は、座標インジケータ、有意性マップ、および/またはレベル情報に対してCABAC演算、CAVLC演算、またはPIPE演算を実行し得る。さらに、エントロピーコーディングモジュール56は、動きベクトルまたは動きベクトル差分情報などの動きベクトル情報と、ビデオデコーダ30においてビデオデータを復号する際に有用な様々な他のシンタックス要素のいずれかとをエントロピー符号化し得る。
CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。CAVLCにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、比較的長いコードが劣勢シンボルに対応するように構築され得る。このようにして、CAVLCの使用は、送信されるべきシンボルごとに等長コードワードを使用するよりも、ビット節約を達成し得る。確率判断は、シンボルに割り当てられるコンテキストに基づき得る。
逆量子化モジュール58および逆変換モジュール60は、変換係数ブロックに、それぞれ、逆量子化および逆変換を適用して、変換係数ブロックから残差ビデオブロックを再構成し得る。再構成モジュール62は、動き補償モジュール44またはイントラ予測モジュール46によって生成された1つまたは複数の予測ビデオブロックのピクセル値に、再構成される残差ビデオブロックを追加して、復号ピクチャバッファ64に記憶するための再構成ビデオブロックを生成し得る。動き推定モジュール42および動き補償モジュール44は、再構成されるビデオブロックを含んでいる参照ピクチャを使用して、後続ピクチャのCUに対してインター予測を実行し得る。
図6は、本開示の技法を実装するように構成される例示的なビデオデコーダ30を示すブロック図である。図6は、説明のために提供されるものであり、本開示で広く例示し説明する技法を限定するものではない。説明のために、本開示では、HEVCコーディングのコンテキストでビデオデコーダ30について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
図6の例では、ビデオデコーダ30は、複数の機能構成要素を含む。ビデオデコーダ30の機能構成要素は、エントロピー復号モジュール70と、動き補償モジュール72と、イントラ予測モジュール74と、逆量子化モジュール76と、逆変換モジュール78と、再構成モジュール80と、復号ピクチャバッファ82とを含む。他の例では、ビデオデコーダ30は、より多いか、より少ないか、または異なる機能構成要素を含み得る。たとえば、ビデオデコーダ30は、ブロッキネスアーティファクトを除去するために再構成モジュール80の出力をフィルタリングするためのデブロッキングフィルタを含み得る。
ビデオデコーダ30は、符号化ビデオデータを備えるビットストリームを受信し得る。ビデオデコーダ30がビットストリームを受信すると、エントロピー復号モジュール70は、そのビットストリームに対してパース演算を実行し得る。パース演算は、ビットストリームからシンタックス要素を抽出し得る。パース演算を実行することの一部として、エントロピー復号モジュール70は、ビットストリーム中のエントロピー符号化されたシンタックス要素をエントロピー復号し得る。動き補償モジュール72と、イントラ予測モジュール74と、逆量子化モジュール76と、逆変換モジュール78と、再構成モジュール80とは、ビットストリームから抽出されるシンタックス要素に基づいて復号ビデオデータを生成する再構成演算を実行し得る。
ビットストリームから抽出されるシンタックス要素は、CUのTUに関連する変換係数ブロックの座標インジケータと、変換係数ブロックのための有意性マップと、変換係数ブロックについてのレベル情報とを表すデータを含み得る。座標インジケータは、置換係数の座標を示し得る。変換係数ブロックのLSCがコーディングスキャン順序に従ってn番目の位置で発生すると仮定すると、置換係数は、仮定したスキャン順序に従ってn番目の位置で発生する。上記で説明したように、有意性マップは、変換係数ブロック中の対応する変換係数が有意であるかどうかを示す値の1Dベクトルを備え得る。有意性マップ中の値は、コーディングスキャン順序に従って順序付けら得る。
ビデオデコーダ30がエントロピー符号化座標インジケータを受信すると、エントロピー復号モジュール70は、エントロピー符号化座標インジケータに対してエントロピー復号演算を実行し得る。さらに、エントロピー復号モジュール70は、座標インジケータをスキャンベースLSCインジケータに変換し得る。上記で説明したように、スキャンベースLSCインジケータは、座標インジケータ(すなわち、置換係数)によって示された座標における変換係数が仮定したスキャン順序に従ってn番目の位置で発生することを示し得る。エントロピー復号モジュール70は、ビデオデコーダ20が仮定したスキャン順序を使用して座標インジケータを生成したと仮定し得る。したがって、エントロピー復号モジュール70は、仮定したスキャン順序に従って変換係数ブロックの変換係数を順序付けることから生じる1Dベクトル中の座標インジケータによって示された変換係数の順序位置を判断することによって、座標インジケータをスキャンベースLSCインジケータに変換し得る。さらに、エントロピー復号モジュール70は、得られたスキャンベースLSCインジケータが、コーディングスキャン順序に従って変換係数ブロックのLSCの順序位置を示すと仮定し得る。
座標インジケータをスキャンベースLSCインジケータに効率的な方法で変換することが望ましいことがある。エントロピー復号モジュール70は、座標インジケータをスキャンベースLSCインジケータに変換するために様々な演算を実行し得る。たとえば、エントロピー復号モジュール70は、座標インジケータからスキャンベースLSCインジケータを導出する非反復アルゴリズムを実行し得る。以下で詳細に説明する図9および図10は、座標インジケータからスキャンベースLSCインジケータを導出し得る例示的な非反復アルゴリズムのフローチャートを示す。別の例では、エントロピー復号モジュール70は、座標インジケータをスキャンベースLSCインジケータにマッピングするデータ構造を記憶し得る。この例では、エントロピー復号モジュール70は、スキャンベースLSCインジケータを生成するために、このデータ構造にアクセスし得る。以下で詳細に説明する図11は、ビデオデコーダ30が、座標インジケータをスキャンベースLSCインジケータにマッピングするデータ構造にアクセスすることに少なくとも部分的によって、座標インジケータをスキャンベースLSCインジケータに変換する例示的な動作を示す。さらに別の例では、エントロピー復号モジュール70は、座標インジケータによって指定された座標を有する変換係数に達するまで、仮定したスキャン順序に従って変換係数ブロック中の位置をくまなくスキャンするループ動作を実行することによって、スキャンベースLSCインジケータを生成し得る。以下で詳細に説明する図12は、ビデオデコーダ30が、そのようなループ動作を実行することによって座標インジケータをスキャンベースLSCインジケータに変換する例示的な反復動作を示す。
いくつかの例では、エントロピー復号モジュール70は、異なる仮定したスキャン順序に基づいて異なる変換動作を使用し得る。たとえば、エントロピー復号モジュール70は、仮定したスキャン順序が水平スキャン順序であるとき、上記の非反復アルゴリズムを使用し得、エントロピー復号モジュール70は、仮定したスキャン順序が逆対角スキャン順序であるとき、上記のマッピングデータ構造を使用し得る。
座標インジケータをスキャンベースLSCインジケータに変換した後に、エントロピー復号モジュール70はコーディングスキャン順序を判断し得る。様々な例では、エントロピー復号モジュール70は、コーディングスキャン順序を様々な方法で判断し得る。たとえば、コーディングスキャン順序は、ビットストリーム中でシグナリングされ得るか、あるいは1つまたは複数のシンタックス要素またはパラメータからエントロピー復号モジュール70によって推論され得る。変換係数ブロックがイントラ予測PUに関連付けられる場合、スキャン順序は、イントラ予測PUのためのイントラ予測モードから推論され得る。いくつかの例では、エントロピー復号モジュール70は、CUに関連するビデオブロックのサイズまたは変換係数ブロックのサイズ、変換係数ブロックを生成するために適用される変換、CUのPUの区分モード、および/または他のデータに基づいてスキャン順序を判断し得る。
コーディングスキャン順序を判断した後に、エントロピー復号モジュール70は、コーディングスキャン順序とスキャンベースLSCインジケータとに基づいて、変換係数ブロックのLSCの座標を判断し得る。エントロピー復号モジュール70は、次いで、有意性マップをエントロピー復号し得る。いくつかの例では、エントロピー復号モジュール70は、LSCの座標に基づいて有意性マップをエントロピー復号し得る。他の例では、エントロピー復号モジュール70は、スキャンベースLSCインジケータに基づいて有意性マップをエントロピー復号し得る。たとえば、エントロピー復号モジュール70は、LSCの座標またはスキャンベースLSCインジケータに基づいてコンテキストモデルを選択し得る。この例では、エントロピー復号モジュール70は、CABACが有意性マップを復号するCABAC復号演算中に、選択されたコンテキストモデルを使用し得る。エントロピー復号モジュール70はまた、変換係数ブロックのレベル情報を復号するCABAC復号演算を実行し得る。いくつかの例では、エントロピー復号モジュール70は、LSCの座標またはスキャンベースLSCインジケータに基づいて選択される1つまたは複数のコンテキストモデルを使用して、レベル情報中のシンタックス要素をCABAC復号し得る。
有意性マップをエントロピー復号した後に、エントロピー復号モジュール70は、LSCの座標に基づいて有意性マップを再構成し得る。たとえば、ビットストリームは、コーディングスキャン順序でLSCの後に発生する変換係数の有意性を示す有意性フラグを含まないことがある。したがって、エントロピー復号モジュール70は、コーディングスキャン順序でLSCの座標の後に発生する座標を有する変換係数のための有意性フラグを合成することによって有意性マップを再構成し得る。
有意性マップを再構成し、レベル情報をエントロピー復号した後に、エントロピー復号モジュール70は、有意性マップとレベル情報とに基づいて変換係数ブロックを再構成し得る。ビットストリームは、コーディングスキャン順序でLSCの後に発生する変換係数についてのレベル情報を含まないことがある。したがって、エントロピー復号モジュール70は、コーディングスキャン順序でLSCの座標の後に発生する座標における0値変換係数を合成し得る。さらに、エントロピー復号モジュール70は、非有意係数を含んでいると有意性マップによって示された位置における0値変換係数を合成し得る。エントロピー復号モジュール70は、レベル情報と合成変換係数とによって示された変換係数を適宜に構成することによって変換係数ブロックを再構成し得る。変換係数ブロックは、概して、ビデオエンコーダ20の量子化モジュール54によって生成された変換係数ブロックに一致し得る。このようにして、エントロピー復号モジュール70は、LSCの座標に基づいて、変換係数ブロックの有意性マップおよび/またはレベル情報をエントロピー復号および/または再構成し得る。
エントロピー復号モジュール70が変換係数ブロックを再作成した後、逆量子化モジュール76は、変換係数ブロックを逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)し得る。逆量子化モジュール76は、HEVCのために提案された、またはH.264復号規格によって定義された逆量子化プロセスと同様の方法で変換係数ブロックを逆量子化し得る。逆量子化モジュール76は、量子化の程度を判断し、同様に、逆量子化モジュール76が適用すべき逆量子化の程度を判断するために、変換係数ブロックに関連するCUのためにビデオエンコーダ20によって計算された量子化パラメータQPYを使用し得る。
逆量子化モジュール76が変換係数ブロックを逆量子化した後、逆変換モジュール78は、変換係数ブロックに関連するTUのための残差ビデオブロックを生成し得る。逆変換モジュール78は、変換係数ブロックに1つまたは複数の逆変換を適用することに少なくとも部分的によって、TUのための残差ビデオブロックを生成し得る。たとえば、逆変換モジュール78は、変換係数ブロックに、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT:Karhunen-Loeve transform)、逆回転変換、逆方向変換、または別の逆変換を適用し得る。いくつかの例では、逆変換モジュール78は、ビットストリーム中でシグナリングされたデータに基づいて、変換係数ブロックに適用されるべき逆変換を判断し得る。そのような例では、逆変換モジュール78は、変換係数ブロックに関連するツリーブロックのための4分木のルートノードにおいてシグナリングされた変換に基づいて逆変換を判断し得る。他の例では、逆変換モジュール78は、ブロックサイズ、コーディングモードなど、1つまたは複数のコーディング特性から逆変換を推論し得る。いくつかの例では、逆変換モジュール78はカスケード逆変換を適用し得る。
CUのPUがインター予測を使用して符号化された場合、動き補償モジュール72は、動き補償を実行して、PUのための予測ビデオブロックを生成し得る。動き補償モジュール72は、PUについての動き情報を使用して、PUのための参照ブロックを識別し得る。PUの参照ブロックは、PUとは異なる時間ピクチャ中にあり得る。PUについての動き情報は、動きベクトルと、参照ピクチャインデックスと、予測方向とを含み得る。動き補償モジュール72は、PUのための参照ブロックを使用して、PUのための予測ビデオブロックを生成し得る。いくつかの例では、動き補償モジュール72は、PUに隣接するPUの動き情報に基づいて、PUについての動き情報を予測し得る。本開示では、ビデオエンコーダ20がインター予測を使用してPUの予測ビデオブロックを生成する場合、PUはインター予測PUである。
いくつかの例では、動き補償モジュール72は、補間フィルタに基づいて補間を実行することによって、PUの予測ビデオブロックを改善し得る。サブサンプル精度での動き補償のために使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償モジュール72は、PUの予測ビデオブロックの生成中にビデオエンコーダ20によって使用される同じ補間フィルタを使用して、参照ブロックのサブ整数サンプルの補間値を計算し得る。動き補償モジュール72は、受信したシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを判断し、その補間フィルタを使用して予測ビデオブロックを生成し得る。
PUがイントラ予測を使用して符号化された場合、イントラ予測モジュール74は、イントラ予測を実行して、PUのための予測ビデオブロックを生成し得る。たとえば、イントラ予測モジュール74は、ビットストリーム中のシンタックス要素に基づいてPUのためのイントラ予測モードを判断し得る。ビットストリームは、PUのイントラ予測モードを予測するためにイントラ予測モジュール74が使用し得るシンタックス要素を含み得る。
再構成モジュール80は、CUのビデオブロックを再構成するために、適用可能なとき、CUに関連する残差ビデオブロックおよびCUのPUの予測ビデオブロック、すなわち、イントラ予測データまたはインター予測データのいずれかを使用し得る。復号ピクチャバッファ82は、ビデオデータのピクチャのための復号サンプルを記憶し得る。復号ピクチャバッファ82は、その後の動き補償、イントラ予測、および図1のディスプレイデバイス32などのディスプレイデバイス上での提示のために、参照ピクチャを与え得る。たとえば、ビデオデコーダ30は、復号ピクチャバッファ82中のビデオブロックに基づいて、他のCUのPUに対してイントラ予測演算またはインター予測演算を実行し得る。
図7は、ビデオエンコーダ20によって実行される例示的な動作100を示すフローチャートである。エントロピー符号化モジュール56が動作100を開始した後、ビデオエンコーダ20は、(102において)変換係数ブロックのLSCが、コーディングスキャン順序に従って変換係数ブロックのn番目の位置で発生すると判断する。ビデオエンコーダ20は、次いで、(104において)変換係数ブロックの置換係数(すなわち、所与の変換係数)の座標を示す座標インジケータを生成する。置換係数は、仮定したスキャン順序に従って変換係数ブロックのn番目の位置で発生する。
座標インジケータを生成した後に、ビデオエンコーダ20は、(106において)座標インジケータに対してエントロピー符号化演算を実行する。ビデオエンコーダ20は、座標インジケータに対してエントロピー符号化演算を様々な方法で実行し得る。たとえば、いくつかの例では、ビデオエンコーダ20は、最初に、座標インジケータの各座標をバイナリコードに変換し得る。言い換えれば、ビデオエンコーダ20は、座標インジケータの座標を「2値化」し得る。x座標とy座標とを2値化した後に、ビデオエンコーダ20は、座標インジケータの2値化y座標を符号化するためのコンテキストモデルを選択し得る。いくつかの事例では、ビデオエンコーダ20は、座標インジケータのx座標に基づいて、2値化y座標を符号化するためのコンテキストモデルを選択し得る。ビデオエンコーダ20は、2値化y座標の1つまたは複数のビンを符号化するとき、選択されたコンテキストモデルを使用し得る。同様に、ビデオエンコーダ20は、座標インジケータのy座標に基づいて、座標インジケータの2値化x座標を符号化するためのコンテキストモデルを選択し得る。ビデオエンコーダ20は、2値化x座標の1つまたは複数のビンを符号化するとき、選択されたコンテキストモデルを使用し得る。
座標インジケータのx座標とy座標との間に統計的関係があり得る。たとえば、有意変換係数は、変換係数ブロックのDC変換係数の周りに集まる傾向がある。したがって、x座標がDC変換係数に比較的近接している場合、y座標もDC変換係数に比較的近接している可能性があり、その逆も同様である。x座標に基づいてy座標のためのコンテキストモデルを選択することによって、ビデオエンコーダ20は、y座標のためのコンテキストモデルをより正確に選択するためにこの統計的関係を活用することが可能であり得る。同様に、y座標に基づいてx座標のためのコンテキストモデルを選択することによって、ビデオエンコーダ20は、x座標のためのコンテキストモデルをより正確に選択するためにこの統計的関係を活用することが可能であり得る。
いくつかの例では、ビデオエンコーダ20は、x座標およびy座標のためのシンボルのエントロピー符号化演算をインターリーブし得る。たとえば、ビデオエンコーダ20は、最初に、2値化x座標の第1のビンのためのエントロピー符号化演算を実行し得る。x座標の第1のビンを符号化した後に、ビデオエンコーダ20は、y座標の第1のビンに対してエントロピー符号化演算を実行し得る。次いで、ビデオエンコーダ20は、2値化x座標の第2のビンに対してエントロピー符号化演算を実行し得る。ビデオエンコーダ20が2値化x座標および2値化y座標のビンの各々を符号化するまで、ビデオエンコーダ20は、x座標およびy座標のシンボルの符号化を継続し得る。
いくつかの例では、ビデオエンコーダ20は、スキャン順序を使用して変換係数ブロックから別の2D変換係数ブロックに変換係数をマッピングし得る。たとえば、他の2D変換係数ブロックは、8つの位置の幅であり得る。この例では、ビデオエンコーダ20は、スキャン順序によって判断された変換係数ブロックの第1の8つの変換係数を他の2D変換係数ブロックの第1の行にマッピングし、スキャン順序によって判断された変換係数ブロックの第2の8つの変換係数を他の2D変換係数ブロックの第2の行にマッピングし、以下同様に行い得る。この例では、ビデオエンコーダ20は、次いで、スキャン順序に従って他の2D変換係数ブロックの最後の有意変換係数を識別し、他の2D変換係数ブロックの最後の有意変換係数を示す座標インジケータを生成し得る。この例では、より低い行番号と変換係数が有意である確率との間に統計的関係が存在し得る。たとえば、変換係数が有意である確率は、高い行番号でよりも、低い行番号でより高くなり得る。ビデオエンコーダ20は、座標インジケータに対してエントロピー符号化演算を実行するとき、この統計的関係を活用し得る。たとえば、ビデオエンコーダ20は、最初に、y座標に対してエントロピー符号化演算を実行し、次いで、x座標に対してエントロピー符号化演算を実行し得る。ビデオエンコーダ20がx座標に対してエントロピー符号化演算を実行するとき、ビデオエンコーダ20は、y座標に基づいてコンテキストモデルを選択し得る。
さらに、ビデオエンコーダ20は、(108において)変換係数ブロックのための有意性マップを生成する。いくつかの例では、ビデオエンコーダ20は、有意性マップを生成し、並行して変換係数ブロックのLSCを識別し得る。ビデオエンコーダ20は、様々な方法で有意性マップを生成し得る。
たとえば、ビデオエンコーダ20は、有意性マップとして働く1Dベクトルを生成し得る。この例では、ビデオエンコーダ20は、変換係数ブロックを変換係数の1Dベクトルにマッピングするために逆スキャン順序を使用し得る。逆スキャン順序は、変換係数ブロックのレベル情報を生成するために使用されるスキャン順序の逆であり得る。LSCの位置と所与の変換係数が有意であるかどうかということとの間に統計的関係が存在し得るので、ビデオエンコーダ20は、2Dブロックから1Dベクトルに変換係数をマッピングするために逆スキャン順序を使用し得る。たとえば、ビデオエンコーダ20は、変換係数ブロックの最後の(たとえば、右下の)位置から進む場合、次の変換係数が有意である確率は、有意変換係数が観測されるまで、比較的低くなり得る。有意変換係数が観測された後、別の有意変換係数を観測する確率は、有意変換係数を観測する前よりもかなり高い。ビデオエンコーダ20は、有意性マップに対してエントロピー符号化演算を実行するときに使用すべきコンテキストモデルを選択するときにこの統計的関係を活用し得る。したがって、ビデオエンコーダ20は、有意性マップをより効率的に符号化することが可能であり得る。他の例では、ビデオエンコーダ20は、変換係数ブロックのための座標インジケータおよびレベル情報を生成するためにビデオエンコーダ20が使用するのと同じスキャン順序を使用して、変換係数ブロックのための有意性マップを生成し得る。ビデオエンコーダ20は、次いで、変換係数の1Dベクトルをくまなくスキャンし、有意性マップ中で変換係数が有意であるのかまたは有意でないのかを示し得る。
さらに、ビデオエンコーダ20は、(110において)有意性マップに対してエントロピー符号化演算を実行する。いくつかの例では、ビデオエンコーダ20は、ステップ108および110をインターリーブし得る。たとえば、ビデオエンコーダ20は、有意性マップの第1のビンを生成し、次いで、有意性マップの第1のビンをエントロピー符号化し得る。有意性マップの第1のビンをエントロピー符号化した後に、ビデオエンコーダ20は、有意性マップの第2のビンを生成し、有意性マップの第2のビンをエントロピー符号化し、以下同様に行い得る。
ビデオエンコーダ20は、有意性マップに対してエントロピー符号化演算を様々な方法で実行し得る。たとえば、ビデオエンコーダ20は、変換係数ブロックのLSCの位置に基づいてコンテキストモデルを選択し得る。LSCの位置と有意性マップの(逆スキャン順序で)次のビンの値との間に統計的関係があり得る。たとえば、ビデオエンコーダ20が逆スキャン順序を使用して有意性マップを生成し、変換係数ブロックのLSCが変換係数ブロックのDC変換係数から比較的離れている場合、有意性マップの次のビンが1である確率は、変換係数ブロックのLSCが変換係数ブロックのDC変換係数に比較的近い場合よりも比較的大きい。変換係数ブロックのLSCに基づいてコンテキストモデルを選択することによって、ビデオエンコーダ20は、有意性マップをエントロピー符号化するためのコンテキストモデルをより正確に選択するために、この統計的関係を活用することが可能であり得る。有意性マップのためのコンテキストモデルを選択した後に、ビデオエンコーダ20は、有意性マップの1つまたは複数のビンをエントロピー符号化するためにコンテキストモデルを使用し得る。有意性マップに対するエントロピー符号化演算中に、ビデオエンコーダ20は、有意性マップの後続のビンをエントロピー符号化するときにコンテキストモデルによって示される確率を調整し得る。
他の例では、ビデオエンコーダ20は、LSCと有意性マップとの間の統計的関係を他の方法で活用し得る。たとえば、LSCの順序位置は、スキャン順序に従ってLSCの位置を示す。この例では、ビデオエンコーダ20は、LSCの順序位置が所与のしきい値をよりも大きい場合は、所与のコンテキストモデルを使用して有意性マップを符号化し、LSCの順序位置が所与のしきい値よりも大きくない場合は、別のコンテキストモデルを使用して有意性マップを符号化し得る。異なるコンテキストモデルをこのようにして使用することはコーディング効率を改善し得る。
別の例では、ビデオエンコーダ20は、変換係数をグループ化することによってLSCと有意性マップとの間の統計的関係を活用し得る。たとえば、この例では、ビデオエンコーダ20は、3つの変換係数を一緒にグループ化し、得られたグループを単一の変換係数として符号化し得る。したがって、ビデオエンコーダ20は、一度に3つの変換係数を符号化し得る。グループ中の3つすべての変換係数が0である場合、ビデオエンコーダ20は、3つの変換係数を0として符号化し得る。そうでない場合、ビデオエンコーダ20は、1フラグを生成し得、3つの対応する変換係数のうちのどれが有意であるかを示すフラグを生成し得る。
いくつかの事例では、変換係数ブロックの有意変換係数のすべては、変換係数ブロックの左上隅の小さい領域内に位置し得る。たとえば、変換係数ブロックの有意変換係数のすべては、変換係数ブロックの左上隅の4x4領域内に位置し得る。そのような場合、座標インジケータを使用するよりもスキャンベースLSCインジケータを使用したほうが変換係数ブロックのLSCを示すために必要なビットがより少なくて済み得る。したがって、いくつかの例では、有意変換係数のすべてが領域内にあるとき、ビデオエンコーダ20は、座標インジケータの代わりにスキャンベースLSCインジケータを生成し得る。そのような例では、変換係数ブロックが領域外に1つまたは複数の有意変換係数を含む場合、ビデオエンコーダ20は座標インジケータを生成し得る。さらに、いくつかのそのような例では、ビデオエンコーダ20は、LSCが座標インジケータを使用して示されるのか、スキャンベースLSCインジケータを使用して示されるのかを示すために、ビットストリーム中にフラグを含め得る。
さらに、ビデオエンコーダ20は、(112において)変換係数ブロックについてのレベル情報を生成する。さらに、ビデオエンコーダ20は、(114において)レベル情報に対してエントロピー符号化演算を実行する。いくつかの例では、ビデオエンコーダ20は、ステップ112および114をインターリーブし得る。たとえば、ビデオエンコーダ20は、第1の変換係数のレベル情報を生成し、2値化し、次いで、第1の変換係数の2値化レベル情報をエントロピー符号化し得る。第1の変換係数の2値化レベル情報をエントロピー符号化した後に、ビデオエンコーダ20は、第2の変換係数のレベル情報を生成し、2値化し、次いで、第2の変換係数の2値化レベル情報をエントロピー符号化し、以下同様に行い得る。
いくつかの例では、各変換係数のレベル情報は、変換係数の大きさと符号とを含む。変換係数のレベル情報を生成するために、ビデオエンコーダ20は、変換係数ブロック中の変換係数をくまなくスキャンするためにコーディングスキャン順序を使用し得る。ビデオエンコーダ20が、変換係数中をスキャンする間に有意変換係数に遭遇すると、ビデオエンコーダ20は、有意変換係数の大きさ値と符号値とを2値化し、エントロピー符号化し得る。大きさ値は、有意変換係数の絶対値を示す。符号値は、有意変換係数の正/負符号を示す。
いくつかの例では、ビデオエンコーダ20が変換係数のレベル情報を2値化するとき、2値化レベル情報の第1のビンは、変換係数が有意であるかどうかを示し得る。したがって、そのような例では、ステップ108において有意性マップを生成することは、ステップ112においてレベル情報を生成することの一部であり得、ステップ110において有意性マップをエントロピー符号化することは、ステップ114においてレベル情報をエントロピー符号化することの一部であり得る。
図8は、変換係数ブロックを復号する例示的な動作130を示すフローチャートである。ビデオデコーダ30が動作130を開始した後、ビデオデコーダ30は、(132において)CUのTUに関連する変換係数ブロックの座標インジケータと、変換係数ブロックのための有意性マップと、変換係数ブロックについてのレベル情報とを表すデータを備えるビットストリームを受信する。符号化ビデオビットストリームは他の符号化情報を備え得る。
座標インジケータを表すデータを受信した後に、ビデオデコーダ30は、(134において)符号化座標インジケータをエントロピー復号するためにエントロピー復号演算を実行する。ビデオデコーダ30が座標インジケータを復号した後、ビデオデコーダ30は、(135において)変換動作を選択する。いくつかの例では、ビデオデコーダ30は、仮定したスキャン順序に基づいて変換動作を選択し得る。
ビデオデコーダ30は、次いで、(136において)選択された変換動作を使用して、座標インジケータをスキャンベースLSCインジケータに変換する。様々な例では、ビデオデコーダ30は、座標インジケータをスキャンベースLSCインジケータに様々な方法で変換し得る。たとえば、ビデオデコーダ30は、座標インジケータをスキャンベースLSCインジケータに変換するために、図9〜図12に示す例示的な動作を使用し得る。変換動作中に、ビデオデコーダ30は、スキャン順序が仮定したスキャン順序であると仮定し得る。他の例では、ビデオデコーダ30は、座標インジケータをスキャンベースLSCインジケータに変換するために、図9〜図12の例示的な動作のうちの1つまたは複数の組合せを実行し得る。さらに、さらに他の例では、ビデオデコーダ30は、係数インジケータをエントロピー復号した後に変換動作を選択しない。むしろ、いくつかのそのような例では、ビデオデコーダ30は単に、1つの特定の変換動作を実行するように構成され得る。
図8の例では、ビデオデコーダ30が座標インジケータをスキャンベースLSCインジケータに変換した後、ビデオデコーダ30は、(138において)コーディングスキャン順序を判断する。ビデオデコーダ30は、次いで、(140において)コーディングスキャン順序が仮定したスキャン順序と同じであるかどうかを判断する。コーディングスキャン順序が仮定したスキャン順序と同じでない場合(140の「いいえ」)、ビデオデコーダ30は、(142において)スキャンベースLSCインジケータとコーディングスキャン順序とに基づいてLSCの座標を判断する。コーディングスキャン順序が仮定したスキャン順序と同じである場合、受信した座標インジケータがLSCの座標をすでに示しているので、ビデオデコーダ30は、スキャンベースLSCインジケータに基づいてLSCの座標を判断する必要はない。
コーディングスキャン順序が仮定したスキャン順序と同じであると判断した後に(140の「はい」)、またはスキャンベースLSCインジケータに基づいてLSCの座標を判断した後に、ビデオデコーダ30は、(144において)LSCの座標またはスキャンベースLSCインジケータを使用して、変換係数ブロックのための有意性マップをエントロピー復号する。たとえば、ビデオデコーダ30は、LSCの座標に基づいて、有意性マップをCABAC復号するための1つまたは複数のCABACコンテキストを選択し得る。
他の例では、ビデオデコーダ30は、有意性マップを復号するためにスキャンベースLSCインジケータを使用し得る。たとえば、スキャンベースLSCインジケータは、復号されるべき有意変換係数を示すビンの数を示し得る。さらに、上記で説明したように、コーディングスキャン順序でLSCより前に発生する変換係数の数と、有意性マップのビンが1または0である確率との間に統計的関係があり得る。スキャンベースLSCインジケータは、スキャン順序でLSCより前に発生する変換係数の数を示す。したがって、ビデオデコーダ30は、スキャンベースLSCインジケータに基づいて、複数の利用可能なコンテキストモデルの中からコンテキストモデルを選択し得る。ビデオデコーダ30は、次いで、有意性マップの1つまたは複数のビンを復号するために選択されたコンテキストモデルを使用し得る。
ビデオデコーダ30が、変換係数ブロックのための有意性マップをエントロピー復号した後、ビデオデコーダ30は、(146において)変換係数ブロックについてのレベル情報に対してエントロピー復号演算を実行する。ビデオデコーダ30がレベル情報に対してエントロピー復号演算を実行するとき、ビデオデコーダ30は、スキャンベースLSCインジケータまたはLSCの座標に基づいて、レベル情報のCABAC復号シンタックス要素のための1つまたは複数のCABACコンテキストを選択し得る。さらに、ビデオデコーダ30は、(148において)変換係数ブロックの有意性マップとレベル情報とに基づいて係数ブロックを再構成する。
いくつかの例では、ビデオデコーダ30は、ステップ146および148をインターリーブし得る。たとえば、ビデオデコーダ30は、第1の有意変換係数についてのレベル情報をエントロピー復号し、次いで、有意性マップを使用して、第1の有意変換係数のレベル情報を変換係数ブロック中に挿入し得る。ビデオデコーダ30が、第1の有意変換係数についてのレベル情報を変換係数ブロック中に挿入した後、ビデオデコーダ30は、第2の有意変換係数のレベル情報をエントロピー復号し、有意性マップを使用して、第2の有意変換係数のレベル情報を変換係数ブロックに挿入し、以下同様に行い得る。
上記で説明したように、変換係数ブロックについてのレベル情報は、有意係数の大きさと符号とを示し得る。大きさは、変換係数ブロック中の有意変換係数の絶対値を指定する。符号は、変換係数ブロック中の有意変換係数の正/負符号を指定する。いくつかの例では、レベル情報は、変換係数ブロック内の非有意変換係数の大きさまたは符号を含まない。したがって、レベル情報は、大きさと符号とに対応する変換係数ブロックの位置を示す情報を含まないことがある。したがって、ビデオデコーダ30は、大きさ値と符号値とに対応する変換係数ブロック内の位置を判断するために有意性マップを使用し得る。たとえば、ビデオデコーダ30は、非有意変換係数に関連する変換係数ブロックの位置に「0」値を注入するために有意性マップを使用し得る。この例では、ビデオデコーダ30は、次いで、大きさを変換係数ブロックにマッピングするためにコーディングスキャン順序を使用し得る。
上記で説明したように、いくつかの例では、変換係数の2値化レベル情報の第1のビンは、変換係数が有意であるかどうかを示し得る。したがって、有意性マップは、変換係数の2値化レベル情報に統合され得る。そのような例では、ステップ138において有意性マップに対してエントロピー復号演算を実行することは、ステップ140においてレベル情報に対してエントロピー復号演算を実行することの一部であり得る。
図9は、変換係数ブロックの座標インジケータを変換係数ブロックのスキャンベースLSCインジケータに変換するための例示的な非反復動作150を示すフローチャートである。図9の例では、動作150は、仮定したスキャン順序がジグザグスキャン順序であると仮定する。ビデオデコーダ30が動作150を開始した後、ビデオデコーダ30は、(152において)対角数変数の値を判断する。ビデオデコーダ30は、座標インジケータのy座標と座標インジケータのx座標とを加算することによって、対角数変数の値を判断し得る。
次に、ビデオデコーダ30は、(154において)対角数変数が変換係数ブロックのブロック幅よりも大きいかどうかを判断する。対角数が変換係数ブロックのブロック幅よりも大きい場合(154の「はい」)、ビデオデコーダ30は、(156において)スキャンベースLSCインジケータの初期値を計算する。ビデオデコーダ30は、スキャンベースLSCインジケータの初期値を次のように計算し得る: ScanPositionLast=DiagNum*(DiagNum+1))>>1。式中、「ScanPositionLast」はスキャンベースLSCインジケータであり、「DiagNum」は対角数変数を表し、「>>」は右シフト演算を表す。
次に、ビデオデコーダ30は、(158において)対角数変数が奇数であるかどうかを判断する。いくつかの例では、ビデオデコーダ30は、対角数変数が奇数であるかどうかを次のように判断する: (DiagNum%2)==1。対角数変数が奇数であると判断したことに応答して(158の「はい」)、ビデオデコーダ30は、(160において)座標インジケータのy座標に基づいてスキャンベースLSCインジケータを再計算する。たとえば、ビデオデコーダ30は、スキャンベースLSCインジケータの初期値に座標インジケータのy座標を加算することによってスキャンベースLSCインジケータを再計算し得る。そうでない場合、対角数変数が奇数でないと判断したことに応答して(158の「いいえ」)、ビデオデコーダ30は、(162において)座標インジケータのx座標に基づいてスキャンベースLSCインジケータを再計算する。たとえば、ビデオデコーダ30は、スキャンベースLSCインジケータの初期値に座標インジケータのx座標を加算することによってスキャンベースLSCインジケータを再計算し得る。
対角数変数がブロック幅よりも大きくない場合(154の「いいえ」)、ビデオデコーダ30は、(164において)一時変数の値を計算する。ビデオデコーダ30は、一時変数の値を次のように計算し得る。(BlockWidth−1)<<1)−DiagNum。式中、「BlockWidth」は変換係数ブロックの幅を示し、「<<」は左シフト演算を表す。一時値を計算した後に、ビデオデコーダ30は、(166において)スキャンベースLSCインジケータの初期値を計算する。ビデオデコーダ30は、スキャンベースLSCインジケータの初期値を次のように計算し得る: MaxNumCoeffM1−((T*(T+1))>>1)。式中、「MaxNumCoeffM1」は、変換係数が有し得る変換係数の最大数であり、「T」は一時変数である。
ビデオデコーダ30は、次いで、(168において)一時変数が奇数であるかどうかを判断する。一時変数が奇数である場合(168の「はい」)、ビデオデコーダ30は、(170において)座標インジケータのy座標に基づいてスキャンベースLSCインジケータを再計算する。たとえば、ビデオデコーダ30は、スキャンベースLSCインジケータを次のように再計算し得る: ScanPositionLast=ScanPositionLast−BlockWidth+1+PositionLastY。式中、「ScanPositionLast」はスキャンベースLSCインジケータであり、「BlockWidth」は変換係数ブロックの幅であり、「PositionLastY」は座標インジケータのy座標である。
そうではなく、一時変数が奇数でない場合(168の「いいえ」)、ビデオデコーダ30は、(172において)座標インジケータのx座標に基づいてスキャンベースLSCインジケータを再計算する。たとえば、ビデオデコーダ30は、スキャンベースLSCインジケータを次のように再計算し得る: ScanPositionLast=ScanPositionLast−BlockWidth+1+PositionLastX。式中、「ScanPositionLast」はスキャンベースLSCインジケータであり、「BlockWidth」は変換係数ブロックの幅であり、「PositionLastX」は座標インジケータのx座標である。
以下の擬似コードは、座標インジケータによって指定された座標からスキャンベースLSCインジケータを導出する、図9の例による非反復アルゴリズムを表す。
Figure 0005792381
この擬似コードでは、「PositionLastY」および「PositionLastX」は、座標インジケータによって示されたx座標およびy座標であり(DC成分が座標(0,0)にあると仮定する)、「BlockWidth」は変換係数ブロックの幅であり、<<は左シフト演算であり、>>は右シフト演算であり、%は係数演算であり、「MaxNumCoeffM1」は、変換係数ブロックが有し得る変換係数の最大数(すなわち、BlockWidth*BlockHeight−1)である。
以下の擬似コードは、上記の擬似コードと同様であるが、右上から左下への対角スキャンが使用されるときに座標インジケータをスキャンベースLSCインジケータに変換する。
Figure 0005792381
以下の擬似コードは、上記の擬似コードと同様であるが、左下から右上への対角スキャンが使用されるときに座標インジケータをスキャンベースLSCインジケータに変換する。
Figure 0005792381
図10は、座標インジケータをスキャンベースLSCインジケータに変換する別の例示的な非反復動作200を示すフローチャートである。図10の例では、ビデオデコーダ30は、1Dアレイでメモリに変換係数ブロックを記憶し得る。この1Dアレイでは、変換係数ブロックの最上行中の変換係数の後に次の下位行中の変換係数が続き、その後に、次の下位行に関連する変換係数が続き、以下同様である。
ビデオデコーダ30が動作200を開始した後、ビデオデコーダ30は、(202において)座標インジケータによって示された座標に関連付けられる1Dアレイ中の位置を示す値にスキャンベースLSCインジケータを設定する。ビデオデコーダ30は、座標インジケータによって指定されたy座標に変換係数ブロックの幅を乗算し、次いで、座標インジケータによって指定されたx座標を加算することによって、1Dアレイ中の位置を判断し得る。スキャン順序が水平スキャン順序である場合、ビデオデコーダ30は、スキャンベースLSCインジケータを取得するためにいかなるさらなる処理も実行する必要がないことがある。
次に、ビデオデコーダ30は、(204において)仮定したスキャン順序がジグザグスキャン順序であるかどうかを判断する。仮定したスキャン順序がジグザグスキャン順序であると判断したことに応答して(204の「はい」)、ビデオデコーダ30は、(206において)座標インジケータのy座標(「uiPosLastY」)と座標インジケータのx座標(「uiPosLastX」)との和として対角数(「uID」)位置インジケータを計算する。次いで、ビデオデコーダ30は、(208において)対角数変が変換係数ブロックの幅(「uiWidth」)よりも小さいかどうかを判断する。
対角数が変換係数ブロックの幅よりも小さいと判断したことに応答して(208の「はい」)、ビデオデコーダ30は、(210において)対角数に基づいてスキャンベースLSCインジケータ(「uiScanPosLast」)の値を計算する。たとえば、ビデオデコーダ30は、スキャンベースLSCインジケータの初期値を次のように計算し得る。uiScanPosLast=uiD*(uiD+1))>>1。上式で、「uiScanPosLast」はスキャンベースLSCインジケータであり、「uiD」は対角数である。この例では、対角数が偶数である場合、ビデオデコーダ30は、次いで、スキャンベースLSCインジケータの初期値に座標インジケータのy座標を加算することによって、スキャンベースLSCインジケータの最終値を計算し得る。対角数が奇数である場合、ビデオデコーダ30は、スキャンベースLSCインジケータの初期値に座標インジケータのx座標を加算することによって、スキャンベースLSCインジケータの最終値を計算し得る。
そうでない場合、位置識別子が変換係数ブロックの幅よりも小さくないと判断することに応答して(208の「いいえ」)、ビデオデコーダ30は、(212において)一時値(「uiDI」)を計算する。ビデオデコーダ30は、一時値を次のように計算し得る。uiDI=((uiWidth−1)<<1)−uiD。上式で、「uiDI」は一時値であり、「uiWidth」は変換係数ブロックの幅であり、「uiD」は対角数である。一時値を計算した後に、ビデオデコーダ30は、(214において)一時値に基づいてスキャンベースLSCインジケータを計算する。
ビデオデコーダ30は、スキャンベースLSCインジケータの初期値を次のように計算し得る。uiScanPosLast=uiMaxNumCoeffM1−(uiDI*(uiDI+1)>>1)。上式で、「uiScanPosLast」はスキャンベースLSCインジケータであり、「uiMaxNumCoeffM1」は変換係数ブロックが有し得る変換係数の最大数であり、「uiDI」は一時値である。一時値が偶数である場合、ビデオデコーダ30は、スキャンベースLSCインジケータの初期値からuiWidth−1−uiPosLastYを減算することによってスキャンベースLSCインジケータの最終値を計算し得、上式で、「uiWidth」は変換係数ブロックの幅であり、「uiPosLastY」は座標インジケータのy座標である。一時値が奇数である場合、ビデオデコーダ30は、スキャンベースLSCインジケータの初期値からuiWidth−1−uiPosLastXを減算することによってスキャンベースLSCインジケータの最終値を計算し得、上式で、「uiWidth」は変換係数ブロックの幅であり、「uiPosLastX」は座標インジケータのx座標である。
仮定したスキャン順序がジグザグスキャン順序でないと判断したことに応答して(204の「いいえ」)、ビデオデコーダ30は、(216において)仮定したスキャン順序が垂直スキャン順序であるかどうかを判断する。仮定したスキャン順序が垂直スキャン順序であると判断したことに応答して(216の「はい」)、ビデオデコーダ30は、(218において)座標インジケータと変換係数ブロックのサイズとからスキャンベースLSCインジケータを計算する。たとえば、ビデオデコーダ30は、スキャンベースLSCインジケータをuiScanPosLast=uiPosLastY+(uiPosLastX<<uiLog2BlockSizeとして計算し得、上式で、uiScanPosLastはスキャンベースLSCインジケータであり、uiPosLastYは座標インジケータのy座標であり、uiPosLastXは座標インジケータのx座標であり、「uiLog2BlockSize」は変換係数ブロックのサイズの、底を2とする対数である。
以下のコードは、仮定したスキャン順序が図10の例による水平スキャン順序、垂直スキャン順序、またはジグザグスキャン順序であるときに座標インジケータをスキャンベースLSCインジケータに変換するための例示的なアルゴリズムを表す。変換係数ブロックのメモリ中のストレージが行型であると仮定する。
Figure 0005792381
ビデオデコーダ30は、(上記で説明したジグザグスキャンではなく)対角スキャン順序に関して同様の動作を実行し得る。そのような動作では、ビデオデコーダ30は、ステップ214におけるスキャンベースLSCインジケータをuiScanPosLast=uiMaxNumCoeffM1−(uiDI*(uiDI+1)>>1)−uiWidth+1+uiPosLastXとして計算し得、上式で、「uiScanPosLast」はスキャンベースLSCインジケータであり、「uiMaxNumCoeffM1」は、変換係数ブロックが有し得る変換係数の最大数であり、「uiDI」は一時値であり、「uiWidth」は変換係数ブロックの幅であり、「uiPosLastX」は座標インジケータのx座標である。以下のコードは、仮定したスキャン順序が対角スキャン順序であるときに座標インジケータをスキャンベースLSCインジケータに変換するための例示的なアルゴリズムを表す。
Figure 0005792381
図11は、座標インジケータをスキャンベースLSCインジケータに変換する別の例示的な動作250を示すフローチャートである。図11の例に示すように、ビデオデコーダ30は、(252において)ルックアップテーブルを記憶する。ルックアップテーブルは、仮定したスキャン順序に従って座標インジケータをスキャンベースLSCインジケータにマッピングする。たとえば、仮定したスキャン順序がジグザグスキャン順序である場合、ルックアップテーブルは、座標(1,1)をスキャンベースLSCインジケータ「5」にマッピングするエントリを含み得る。いくつかの例では、ビデオデコーダ30は、異なる仮定したスキャン順序のための、および異なる変換係数ブロックサイズのための異なるルックアップテーブルを記憶し得る。
ビデオデコーダ30がルックアップテーブルを記憶した後、ビデオデコーダ30は、(254において)座標インジケータを受信する。座標インジケータを受信した後に、ビデオデコーダ30は、(256において)ルックアップテーブルにアクセスして、座標インジケータに対応するスキャンベースLSCインジケータを取り出す。いくつかの例では、ビデオデコーダ30は、座標インジケータのx座標とy座標とに基づいて単一の値を生成する。たとえば、ビデオデコーダ30は、y座標に変換係数ブロックの幅を乗算し、次いで、x座標を加算することによって単一の値を生成し得る。そのような例では、ビデオデコーダ30は、ルックアップテーブルからスキャンベースLSCインジケータを取り出すために、インデックスとして単一の値を使用し得る。
ビデオデコーダ30は、座標インジケータをスキャンベースLSCインジケータに変換するために追加の演算を使用し得る。たとえば、ビデオデコーダ30は、仮定したスキャン順序がサブブロック対角スキャン順序であるとき、座標インジケータをスキャンベースLSCインジケータに変換するために、以下の擬似コードを使用し得る。このサブブロック対角スキャン順序では、ビデオデコーダ30は、右上から左下への対角順序でサブブロックを処理し、右上から左下への対角順序でサブブロックの各々の内で変換係数をスキャンする。
Figure 0005792381
上記の擬似コードでは、「uiWidth」は変換係数ブロックの幅を示し、「uiPosLastX」は座標インジケータのx座標を示し、「uiPosLastY」は座標インジケータのy座標を示し、「uiScanPosLast」はスキャンベースLSCインジケータを示す。「sX」は、座標インジケータによって示された座標を含んでいるサブブロックの左上の変換係数のx座標を示す。「sY」は、座標インジケータによって示された座標を含んでいるサブブロックの左上の変換係数のy座標を示す。上記の擬似コードは、最初に、座標インジケータによって示された座標を含んでいるサブブロックのスキャン順序(「uiScanPosLast」)を判断する演算を実行し、次いで、座標インジケータによって示された座標のサブブロック内のスキャン順序を判断する演算を実行するので、上記の擬似コードは、座標インジケータをスキャンベースLSCインジケータに変換する演算の組合せを表し得る。
図12は、座標インジケータをスキャンベースLSCインジケータに変換する例示的な反復動作300を示すフローチャートである。ビデオデコーダ30が動作300を開始した後、ビデオデコーダ30は、(302において)座標インジケータを受信する。ビデオデコーダ30は、次いで、(304において)仮定したスキャン順序に従って変換係数ブロックの第1の位置を示すように位置インジケータを設定する。たとえば、仮定したスキャン順序がDC変換構成要素で開始する場合、ビデオデコーダ30は、座標(0,0)の位置を示すように位置インジケータを設定し得る。さらに、ビデオデコーダ30は、(306において)スキャンベースLSCインジケータをゼロに初期化する。
ビデオデコーダ30は、次いで、(308において)位置インジケータによって示された位置が座標インジケータによって示された位置と同じであるかどうかを判断する。言い換えれば、ビデオデコーダ30は、示された位置が一致するかどうかを判断し得る。位置インジケータによって示された位置が座標インジケータによって示された位置と同じである場合、スキャンベースLSCインジケータは置換係数の順序位置を示す。ビデオデコーダ30は、位置インジケータによって示された位置が座標インジケータによって示された位置と同じであるかどうかを判断するために、(以下の擬似コードにおいてscan[...]によって示される)ルックアップテーブルを使用し得る。
位置インジケータによって示された位置が座標インジケータによって示された位置でないと判断したことに応答して(308の「いいえ」)、ビデオデコーダ30は、(310において)スキャンベースLSCインジケータを増分する。ビデオデコーダ30は、次いで、(312において)仮定したスキャン順序に従って位置インジケータによって示された位置を前進させる。たとえば、仮定したスキャン順序が水平スキャン順序であり、位置インジケータが位置(3,4)を現在示す場合、ビデオデコーダ30は、位置インジケータが位置(4,4)を示すように、位置インジケータによって示された位置を前進させ得る。
位置インジケータを前進させた後に、ビデオデコーダ30は、前進させた位置インジケータを用いてステップ308〜314を繰り返し得る。位置インジケータによって示された位置が座標インジケータによって示された位置である場合(308の「はい」)、ビデオデコーダ30は、動作300を終了する。
以下の擬似コードは、座標インジケータをスキャンベースLSCインジケータに変換する、図12の動作を表す。この擬似コードでは、ビデオデコーダ30は、対応するブロックベース位置が座標インジケータによって示された位置であるかどうかを判断するために各スキャン位置を検査する。現在のスキャン位置(「uiBlkPosLast」)が座標インジケータ(「uiBlkPos」)に等しくなるとき、ビデオデコーダ30は位置の検査を停止する。
Figure 0005792381
図13は、最後の有意変換係数を示す変換係数ブロック350の概念図である。図13の例では、各円は、変換係数ブロック350中の異なる変換係数を表す。図13の黒い円は有意変換係数に対応し、白い円は非有意変換係数に対応する。変換係数352は、対角スキャン順序による変換係数ブロック350の最後の有意変換係数である。図13は、対角スキャン順序を、円を通る矢印として表す。変換係数ブロック350の最上行が行0であり、最左列が列0であり、対角スキャン順序が仮定したスキャン順序であると仮定すると、変換係数352の座標インジケータは座標(2,1)を示す。変換係数352のスキャンベースLSCインジケータは数「7」であり得る。
実施形態によっては、本明細書で説明した方法のうちいずれかの、いくつかの作用またはイベントは、異なる順序で実行され得、追加、マージ、または完全に除外され得る(たとえば、すべての説明した作用またはイベントが、方法の実施のために必要であるとは限らない)ことを認識されたい。さらに、いくつかの実施形態では、行為またはイベントは、連続してではなくむしろ、同時に、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して実行され得る。
本明細書で開示した方法、システム、および装置と関連して説明した様々な例示的論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は認識されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課せられた設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
さらに、本明細書で開示する実施形態は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブル論理デバイス、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素などの電子デバイスまたは回路、あるいは本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
本明細書で開示する実施形態に関して説明した方法またはアルゴリズムのステップは、直接ハードウェアで実施され得るか、プロセッサによって実行されるソフトウェアモジュールで実施され得るか、またはその2つの組合せで実施され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサがその記憶媒体から情報を読み取り、その記憶媒体に情報を書き込み得るようにプロセッサに結合される。代替として、記憶媒体はプロセッサに一体化され得る。プロセッサおよび記憶媒体はASIC中に常駐し得る。ASICはユーザ端末内に常駐し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末中に個別構成要素として常駐し得る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを符号化するための方法であって、
変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに、前記変換係数ブロックの最後の有意変換係数が所与の順序位置で発生すると判断することと、ここで、前記変換係数ブロックは、前記ビデオデータに関連する変換係数を備える、
前記変換係数ブロック中の所与の変換係数の座標を指定する座標インジケータを生成することと、ここで、前記所与の変換係数は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに前記所与の順序位置で発生する、
前記座標インジケータのエントロピー符号化バージョンを生成するために、前記座標インジケータに対してエントロピー符号化演算を実行することと、
前記座標インジケータの前記エントロピー符号化バージョンを出力することと
を備える、方法。
[C2]
前記変換係数ブロックについてのレベル情報を生成するために前記コーディングスキャン順序を使用することと、
前記レベル情報のエントロピー符号化バージョンを生成するために前記レベル情報に対してエントロピーコーディング演算を実行することと、
前記レベル情報の前記エントロピー符号化バージョンを出力することと
をさらに備える、[C1]に記載の方法。
[C3]
前記仮定したスキャン順序は、前記変換係数ブロックの左上隅で開始する、
[C1]に記載の方法。
[C4]
コーディングユニット(CU)の予測ユニット(PU)についての予測ビデオブロックデータを生成するために前記PUに対してイントラ予測を実行することと、
前記予測ビデオブロックに基づいて残差データを生成する残差生成演算を実行することと、
前記変換係数ブロックを生成するために前記残差データの一部分に変換を適用することと、
前記変換係数ブロック中の変換係数を量子化することと
をさらに備える、[C1]に記載の方法。
[C5]
前記コーディングスキャン順序が前記仮定したスキャン順序とは異なる、[C1]に記載の方法。
[C6]
前記仮定したスキャン順序は、サブブロックスキャン順序であり、前記コーディングスキャン順序は、水平スキャン順序と、垂直スキャン順序と、対角スキャン順序と、ジグザグスキャン順序と、前記サブブロックスキャン順序との中から選択される、
[C1]に記載の方法。
[C7]
ビデオデータを復号するための方法であって、
変換係数ブロック中の所与の位置の座標を指定する座標インジケータを受信することと、ここで、前記所与の位置は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに所与の順序位置で発生し、前記変換係数ブロックの最後の有意変換係数は、前記変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに前記所与の順序位置で発生し、前記変換係数ブロックは、前記ビデオデータに関連する変換係数を備える、
前記座標インジケータを、前記所与の順序位置を指定するスキャンベース最後の有意係数(LSC)インジケータに変換することと
を備える、方法。
[C8]
前記変換係数ブロック中の対応する変換係数が有意であるかどうかを示す値を備える有意性マップの符号化バージョンを受信することと、ここで、前記有意性マップ中の前記値は、前記コーディングスキャン順序に従って順序付けられる、
前記有意性マップを復号するために前記スキャンベースLSCインジケータを使用することと
をさらに備える、[C7]に記載の方法。
[C9]
前記座標インジケータを前記スキャンベースLSCインジケータに変換した後に前記有意性マップは、復号される、
[C8]に記載の方法。
[C10]
前記有意性マップをエントロピー復号した後に、前記変換係数ブロックの前記有意性マップとレベル情報とに基づいて前記変換係数ブロックを再作成することをさらに備え、前記レベル情報は、前記変換係数ブロック中の有意変換係数の絶対値を含む、
[C8]に記載の方法。
[C11]
イントラ予測モードを判断することと、
前記イントラ予測モードに基づいて前記コーディングスキャン順序を判断することと、
前記有意性マップを復号した後におよび前記コーディングスキャン順序を判断した後に、前記有意性マップと、前記コーディングスキャン順序と、前記レベル情報とに基づいて前記変換係数ブロックを再作成することと、
前記変換係数ブロックを再作成した後に、前記変換係数ブロックを逆量子化することと、
前記変換係数ブロックを逆量子化した後に、前記変換係数ブロックに逆変換を適用することに少なくとも部分的によって残差データを生成することと、
予測ビデオブロックを生成するためにイントラ予測を実行することと、
前記残差データと前記予測ビデオブロックとを生成した後に、前記残差データと前記予測ビデオブロックとに基づいてビデオブロックを再構成することと
をさらに備える、[C10]に記載の方法。
[C12]
前記座標インジケータを変換することは、前記座標インジケータから前記スキャンベースLSCインジケータを導出する非反復アルゴリズムを実行することを備える、
[C7]に記載の方法。
[C13]
前記座標インジケータを変換することは、座標をスキャンベースLSCインジケータにマッピングするデータ構造にアクセスすることを備える、
[C7]に記載の方法。
[C14]
前記座標インジケータを変換することは、
前記座標を有する位置に達するまで前記仮定したスキャン順序に従って前記変換係数ブロック中の位置をくまなくスキャンするループ演算を実行することと、
前記座標を有する前記位置より前の、前記変換係数ブロックの位置ごとに前記スキャンベースLSCインジケータを増分することと
を備える、[C7]に記載の方法。
[C15]
前記コーディングスキャン順序が前記仮定したスキャン順序とは異なる、[C7]に記載の方法。
[C16]
前記仮定したスキャン順序は、サブブロックスキャン順序であり、前記コーディングスキャン順序は、水平スキャン順序と、垂直スキャン順序と、対角スキャン順序と、ジグザグスキャン順序と、前記サブブロックスキャン順序との中から選択される、
[C7]に記載の方法。
[C17]
前記コーディングスキャン順序を判断することと、
前記コーディングスキャン順序が前記仮定したスキャン順序と同じでないと判断したことに応答して、前記スキャンベースLSCインジケータを前記変換係数ブロックの前記最後の有意係数の座標に変換することと、
前記最後の有意変換の前記座標に基づいて、前記変換係数ブロックの有意性マップまたはレベル情報をエントロピー復号または再構成することと
をさらに備える、[C7]に記載の方法。
[C18]
変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに、前記変換係数ブロックの最後の有意変換係数が所与の順序位置で発生すると判断することと、ここで、前記変換係数ブロックは、変換係数を備える、
前記変換係数ブロック中の所与の変換係数の座標を指定する座標インジケータを生成することと、ここで、前記所与の係数は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに前記所与の順序位置で発生する、
前記座標インジケータのエントロピー符号化バージョンを生成するために、前記座標インジケータに対してエントロピー符号化演算を実行することと、
前記座標インジケータの前記エントロピー符号化バージョンを出力することと
を行うように構成される1つまたは複数のプロセッサを備える、ビデオ符号化デバイス。
[C19]
前記1つまたは複数のプロセッサは、
前記変換係数ブロックについてのレベル情報を生成するために前記コーディングスキャン順序を使用することと、
前記レベル情報のエントロピー符号化バージョンを生成するために前記レベル情報に対してエントロピーコーディング演算を実行することと、
前記レベル情報の前記エントロピー符号化バージョンを出力することと
を行うように構成される、[C18]に記載のビデオ符号化デバイス。
[C20]
前記仮定したスキャン順序は、前記変換係数ブロックの左上隅で開始する、
[C18]に記載のビデオ符号化デバイス。
[C21]
前記1つまたは複数のプロセッサは、
コーディングユニット(CU)の予測ユニット(PU)についての予測ビデオブロックを生成するために前記PUに対してイントラ予測を実行することと、
前記予測ビデオブロックに基づいて残差データを生成する残差生成演算を実行することと、
前記変換係数ブロックを生成するために前記残差データの一部分に変換を適用することと、
前記変換係数ブロック中の変換係数を量子化することと
を行うように構成される、[C18]に記載のビデオ符号化デバイス。
[C22]
前記コーディングスキャン順序は、前記仮定したスキャン順序とは異なる、
[C18]に記載のビデオ符号化デバイス。
[C23]
前記仮定したスキャン順序がサブブロックスキャン順序であり、前記コーディングスキャン順序は、水平スキャン順序と、垂直スキャン順序と、対角スキャン順序と、ジグザグスキャン順序と、前記サブブロックスキャン順序との中から選択される、
[C18]に記載のビデオ符号化デバイス。
[C24]
変換係数ブロック中の所与の位置の座標を指定する座標インジケータを受信することと、ここで、前記所与の位置は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに所与の順序位置で発生し、前記変換係数ブロックの最後の有意変換係数は、前記変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに、前記所与の順序位置で発生し、前記変換係数ブロックは、変換係数を備える、
前記座標インジケータを、前記所与の順序位置を指定するスキャンベースLSCインジケータに変換することと
を行うように構成される1つまたは複数のプロセッサを備える、ビデオ復号デバイス。
[C25]
前記1つまたは複数のプロセッサは、
有意性マップのエントロピー符号化バージョンを受信することと、ここで、前記有意性マップは、前記変換係数ブロック中の対応する変換係数が有意であるかどうかを示す値を備え、前記有意性マップ中の前記値は、前記コーディングスキャン順序に従って順序付けられる、
前記有意性マップを復号するために前記スキャンベースLSCインジケータを使用することと
を行うように構成される、[C24]に記載のビデオ復号デバイス。
[C26]
前記1つまたは複数のプロセッサは、前記座標インジケータを前記スキャンベースLSCインジケータに変換した後に前記有意性マップをエントロピー復号するように構成される、
[C25]に記載のビデオ復号デバイス。
[C27]
前記有意性マップをエントロピー復号した後に、前記1つまたは複数のプロセッサは、前記変換係数ブロックの前記有意性マップとレベル情報とに基づいて前記変換係数ブロックを再作成するように構成され、前記レベル情報は、前記変換係数ブロック中の有意変換係数の絶対値を含む、
[C25]に記載のビデオ復号デバイス。
[C28]
前記1つまたは複数のプロセッサは、
イントラ予測モードを判断することと、
前記イントラ予測モードに基づいて前記コーディングスキャン順序を判断することと、
前記有意性マップを復号した後におよび前記コーディングスキャン順序を判断した後に、前記有意性マップと、前記コーディングスキャン順序と、前記レベル情報とに基づいて前記変換係数ブロックを再作成することと、
前記変換係数ブロックを再作成した後に、前記変換係数ブロックを逆量子化することと、
前記変換係数ブロックを逆量子化した後に、前記変換係数ブロックに逆変換を適用することに少なくとも部分的によって残差データを生成することと、
予測ビデオブロックを生成するためにイントラ予測を実行することと、
前記残差データと前記予測ビデオブロックとを生成した後に、前記残差データと前記予測ビデオブロックとに基づいてビデオブロックを再構成することと
を行うように構成される、[C27]に記載のビデオ復号デバイス。
[C29]
前記1つまたは複数のプロセッサは、前記座標インジケータから前記スキャンベースLSCインジケータを導出する非反復アルゴリズムを実行することに少なくとも部分的によって、前記座標インジケータを変換するように構成される、
[C24]に記載のビデオ復号デバイス。
[C30]
前記1つまたは複数のプロセッサは、座標をスキャンベースLSCインジケータにマッピングするデータ構造にアクセスすることに少なくとも部分的によって、前記座標インジケータを前記スキャンベースLSCインジケータに変換するように構成される、
[C24]に記載のビデオ復号デバイス。
[C31]
前記1つまたは複数のプロセッサは、
前記座標を有する位置に達するまで前記仮定したスキャン順序に従って前記変換係数ブロック中の位置をくまなくスキャンするループ演算を実行することと、
前記座標を有する前記位置より前の、前記変換係数ブロックの位置ごとに前記スキャンベースLSCインジケータを増分することと
に少なくとも部分的によって、前記座標インジケータを前記スキャンベースLSCインジケータに変換することを行うように構成される、
[C24]に記載のビデオ復号デバイス。
[C32]
前記コーディングスキャン順序は、前記仮定したスキャン順序とは異なる、
[C24]に記載のビデオ復号デバイス。
[C33]
前記仮定したスキャン順序は、サブブロックスキャン順序であり、前記コーディングスキャン順序は、水平スキャン順序と、垂直スキャン順序と、対角スキャン順序と、ジグザグスキャン順序と、前記サブブロックスキャン順序との中から選択される、
[C24]に記載のビデオ復号デバイス。
[C34]
前記1つまたは複数のプロセッサは、
前記コーディングスキャン順序を判断することと、
前記コーディングスキャン順序が前記仮定したスキャン順序と同じでないと判断したことに応答して、前記スキャンベースLSCインジケータを前記変換係数ブロックの前記最後の有意係数の座標に変換することと、
前記最後の有意係数の前記座標に基づいて、前記変換係数ブロックの有意性マップをエントロピー復号または再構成することと
を行うように構成される、[C24]に記載のビデオ復号デバイス。
[C35]
変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに、前記変換係数ブロックの最後の有意変換係数が所与の順序位置で発生すると判断するための手段と、ここで、前記変換係数ブロックは、変換係数を備える、
前記変換係数ブロック中の所与の変換係数の座標を指定する座標インジケータを生成するための手段と、ここで、前記所与の変換係数は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに前記所与の順序位置で発生する、
前記座標インジケータのエントロピー符号化バージョンを生成するために、前記座標インジケータに対してエントロピーコーディング演算を実行するための手段と、
前記座標インジケータの前記エントロピー符号化バージョンを出力するための手段と
を備える、ビデオ符号化デバイス。
[C36]
前記コーディングスキャン順序は、前記仮定したスキャン順序とは異なる、
[C35]に記載のビデオ符号化デバイス。
[C37]
変換係数ブロック中の所与の位置の座標を指定する座標インジケータを受信するための手段と、ここで、前記所与の位置は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに所与の順序位置で発生し、前記変換係数ブロックの最後の有意変換係数は、前記変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに前記所与の順序位置で発生し、前記変換係数ブロックは、変換係数を備える、
前記座標インジケータを、前記所与の順序位置を指定するスキャンベースLSCインジケータに変換するための手段と
を備える、ビデオ復号デバイス。
[C38]
前記コーディングスキャン順序が前記仮定したスキャン順序とは異なる、
[C37]に記載のビデオ復号デバイス。
[C39]
変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに、前記変換係数ブロックの最後の有意係数(LSC)が所与の順序位置で発生すると判断することと、ここで、前記変換係数ブロックが変換係数を備える、
座標インジケータを生成することと、前記座標インジケータは、前記変換係数ブロック中の所与の変換係数の座標を指定し、前記所与の変換係数は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに前記所与の順序位置で発生する、
前記座標インジケータのエントロピー符号化バージョンを生成するために、前記座標インジケータに対してエントロピーコーディング演算を実行することと、
前記座標インジケータの前記エントロピー符号化バージョンを出力することと
を行うように1つまたは複数のプロセッサを構成する命令を記憶したコンピュータ可読記憶媒体を備える、
コンピュータプログラム製品。
[C40]
前記コーディングスキャン順序は、前記仮定したスキャン順序とは異なる、
[C39]に記載のコンピュータプログラム製品。
[C41]
2次元変換係数ブロック中の所与の位置の座標を指定するブロックベース最後の有意係数(LSC)インジケータを受信することと、ここで、前記所与の位置は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに、所与の順序位置で発生し、前記変換係数ブロックのLSCは、前記変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに前記所与の順序位置で発生し、前記変換係数ブロックは、前記ビデオデータの情報を表す変換係数を備える、
前記座標インジケータを、前記所与の順序位置を指定するスキャンベースLSCインジケータに変換することと
を行うように1つまたは複数のプロセッサを構成する命令を記憶したコンピュータ可読記憶媒体を備える、
コンピュータプログラム製品。
[C42]
前記コーディングスキャン順序は、前記仮定したスキャン順序とは異なる、
[C41]に記載のコンピュータプログラム製品。

Claims (34)

  1. ビデオデータを符号化するための方法であって、
    変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに、前記変換係数ブロックの最後の有意係数が所与の順序位置で発生すると判断することと、ここで、前記変換係数ブロックは、前記ビデオデータに関連する変換係数を備える、
    置換係数を識別することと、ここで、前記置換係数は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに前記最後の有意係数の順序位置と同じ順序位置で発生し、前記コーディングスキャン順序は、前記仮定したスキャン順序と異なる、
    前記置換係数の座標インジケータを生成することと、ここで、前記置換係数の前記座標インジケータは、前記置換係数の前記変換係数ブロック内の座標を指定し、前記コーディングスキャン順序にかかわらず前記最後の有意係数の前記所与の前記順序位置を示す、
    前記座標インジケータのエントロピー符号化バージョンを生成するために、前記座標インジケータに対してエントロピー符号化演算を実行することと、
    前記座標インジケータの前記エントロピー符号化バージョンを出力することと
    を備える、方法。
  2. 前記変換係数ブロックについてのレベル情報を生成するために前記コーディングスキャン順序を使用することと、
    前記レベル情報のエントロピー符号化バージョンを生成するために前記レベル情報に対してエントロピーコーディング演算を実行することと、
    前記レベル情報の前記エントロピー符号化バージョンを出力することと
    をさらに備える、請求項1に記載の方法。
  3. 前記仮定したスキャン順序は、前記変換係数ブロックの左上隅で開始する、
    請求項1に記載の方法。
  4. コーディングユニット(CU)の予測ユニット(PU)についての予測ビデオブロックを生成するために前記PUに対してイントラ予測を実行することと、
    前記予測ビデオブロックに基づいて残差データを生成する残差生成演算を実行することと、
    前記変換係数ブロックを生成するために前記残差データの一部分に変換を適用することと、
    前記変換係数ブロック中の変換係数を量子化することと
    をさらに備える、請求項1に記載の方法。
  5. 前記仮定したスキャン順序は、サブブロックスキャン順序であり、前記コーディングスキャン順序は、水平スキャン順序と、垂直スキャン順序と、対角スキャン順序と、ジグザグスキャン順序との中から選択される、
    請求項1に記載の方法。
  6. ビデオデータを復号するための方法であって、
    変換係数ブロック中の所与の位置の座標を指定する座標インジケータを受信することと、ここで、前記所与の位置は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに所与の順序位置で発生し、前記所与の順序位置は、前記変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときの最後の有意係数の順序位置と同じ順序位置で発生し、前記変換係数ブロックは、前記ビデオデータに関連する変換係数を備え、前記コーディングスキャン順序は、前記仮定したスキャン順序と異なる、
    前記座標インジケータを、前記所与の順序位置を指定するスキャンベース最後の有意係数(LSC)インジケータに変換することと
    を備え、前記座標インジケータは、前記コーディングスキャン順序にかかわらず前記最後の有意係数の順序位置を示す、方法。
  7. 前記変換係数ブロック中の対応する変換係数が有意であるかどうかを示す値を備える有意性マップの符号化バージョンを受信することと、ここで、前記有意性マップ中の前記値は、前記コーディングスキャン順序に従って順序付けられる、
    前記有意性マップを復号するために前記スキャンベースLSCインジケータを使用することと
    をさらに備える、請求項6に記載の方法。
  8. 前記座標インジケータを前記スキャンベースLSCインジケータに変換した後に前記有意性マップは、復号される、
    請求項7に記載の方法。
  9. 前記有意性マップをエントロピー復号した後に、前記変換係数ブロックの前記有意性マップとレベル情報とに基づいて前記変換係数ブロックを再作成することをさらに備え、前記レベル情報は、前記変換係数ブロック中の有意係数の絶対値を含む、
    請求項7に記載の方法。
  10. イントラ予測モードを判断することと、
    前記イントラ予測モードに基づいて前記コーディングスキャン順序を判断することと、
    前記有意性マップを復号した後におよび前記コーディングスキャン順序を判断した後に、前記有意性マップと、前記コーディングスキャン順序と、前記レベル情報とに基づいて前記変換係数ブロックを再作成することと、
    前記変換係数ブロックを再作成した後に、前記変換係数ブロックを逆量子化することと、
    前記変換係数ブロックを逆量子化した後に、前記変換係数ブロックに逆変換を適用することに少なくとも部分的によって残差データを生成することと、
    予測ビデオブロックを生成するためにイントラ予測を実行することと、
    前記残差データと前記予測ビデオブロックとを生成した後に、前記残差データと前記予測ビデオブロックとに基づいてビデオブロックを再構成することと
    をさらに備える、請求項9に記載の方法。
  11. 前記座標インジケータを変換することは、前記座標インジケータから前記スキャンベースLSCインジケータを導出する非反復アルゴリズムを実行することを備える、
    請求項6に記載の方法。
  12. 前記座標インジケータを変換することは、座標をスキャンベースLSCインジケータにマッピングするデータ構造にアクセスすることを備える、
    請求項6に記載の方法。
  13. 前記座標インジケータを変換することは、
    前記座標を有する位置に達するまで前記仮定したスキャン順序に従って前記変換係数ブロック中の位置をくまなくスキャンするループ演算を実行することと、
    前記座標を有する前記位置より前の、前記変換係数ブロックの位置ごとに前記スキャンベースLSCインジケータを増分することと
    を備える、請求項6に記載の方法。
  14. 前記仮定したスキャン順序は、サブブロックスキャン順序であり、前記コーディングスキャン順序は、水平スキャン順序と、垂直スキャン順序と、対角スキャン順序と、ジグザグスキャン順序との中から選択される、
    請求項6に記載の方法。
  15. 前記コーディングスキャン順序を判断することと、
    前記コーディングスキャン順序が前記仮定したスキャン順序と同じでないと判断したことに応答して、前記スキャンベースLSCインジケータを前記変換係数ブロックの前記最後の有意係数の座標に変換することと、
    前記最後の有意係数の前記座標に基づいて、前記変換係数ブロックの有意性マップまたはレベル情報をエントロピー復号または再構成することと
    をさらに備える、請求項6に記載の方法。
  16. ビデオデータを記憶するように構成されたメモリと、
    変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに、前記変換係数ブロックの最後の有意係数が所与の順序位置で発生すると判断することと、ここで、前記変換係数ブロックは、前記ビデオデータに関連する変換係数を備える、
    置換係数を識別することと、ここで、前記置換係数は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに前記最後の有意係数の順序位置と同じ順序位置で発生し、前記コーディングスキャン順序は、前記仮定したスキャン順序と異なる、
    前記置換係数の座標インジケータを生成することと、ここで、前記置換係数の前記座標インジケータは、前記置換係数の前記変換係数ブロック内の座標を指定し、前記コーディングスキャン順序にかかわらず前記最後の有意係数の前記所与の順序位置を示す、
    前記座標インジケータのエントロピー符号化バージョンを生成するために、前記座標インジケータに対してエントロピー符号化演算を実行することと、
    前記座標インジケータの前記エントロピー符号化バージョンを出力することと
    を行うように構成される1つまたは複数のプロセッサと、
    を備える、ビデオ符号化デバイス。
  17. 前記1つまたは複数のプロセッサは、
    前記変換係数ブロックについてのレベル情報を生成するために前記コーディングスキャン順序を使用することと、
    前記レベル情報のエントロピー符号化バージョンを生成するために前記レベル情報に対してエントロピーコーディング演算を実行することと、
    前記レベル情報の前記エントロピー符号化バージョンを出力することと
    を行うように構成される、請求項16に記載のビデオ符号化デバイス。
  18. 前記仮定したスキャン順序は、前記変換係数ブロックの左上隅で開始する、
    請求項16に記載のビデオ符号化デバイス。
  19. 前記1つまたは複数のプロセッサは、
    コーディングユニット(CU)の予測ユニット(PU)についての予測ビデオブロックを生成するために前記PUに対してイントラ予測を実行することと、
    前記予測ビデオブロックに基づいて残差データを生成する残差生成演算を実行することと、
    前記変換係数ブロックを生成するために前記残差データの一部分に変換を適用することと、
    前記変換係数ブロック中の変換係数を量子化することと
    を行うように構成される、請求項16に記載のビデオ符号化デバイス。
  20. 前記仮定したスキャン順序がサブブロックスキャン順序であり、前記コーディングスキャン順序は、水平スキャン順序と、垂直スキャン順序と、対角スキャン順序と、ジグザグスキャン順序との中から選択される、
    請求項16に記載のビデオ符号化デバイス。
  21. ビデオデータを記憶するように構成されたメモリと、
    前記ビデオデータに関連する変換係数ブロック中の所与の位置の座標を指定する座標インジケータを受信することと、ここで、前記所与の位置は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに所与の順序位置で発生し、前記所与の順序位置は、前記変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときの最後の有意係数の順序位置と同じ順序位置で発生し、前記変換係数ブロックは、変換係数を備え、前記コーディングスキャン順序は、前記仮定したスキャン順序と異なる、
    前記座標インジケータを、前記所与の順序位置を指定するスキャンベース最後の有意係数(LSC)インジケータに変換することと
    を行うように構成される1つまたは複数のプロセッサと、を備え、前記座標インジケータは、前記コーディングスキャン順序にかかわらず前記最後の前記有意係数の順序位置を示す、ビデオ復号デバイス。
  22. 前記1つまたは複数のプロセッサは、
    有意性マップのエントロピー符号化バージョンを受信することと、ここで、前記有意性マップは、前記変換係数ブロック中の対応する変換係数が有意であるかどうかを示す値を備え、前記有意性マップ中の前記値は、前記コーディングスキャン順序に従って順序付けられる、
    前記有意性マップをエントロピー復号するために前記スキャンベースLSCインジケータを使用することと
    を行うように構成される、請求項21に記載のビデオ復号デバイス。
  23. 前記1つまたは複数のプロセッサは、前記座標インジケータを前記スキャンベースLSCインジケータに変換した後に前記有意性マップをエントロピー復号するように構成される、
    請求項22に記載のビデオ復号デバイス。
  24. 前記有意性マップをエントロピー復号した後に、前記1つまたは複数のプロセッサは、前記変換係数ブロックの前記有意性マップとレベル情報とに基づいて前記変換係数ブロックを再作成するように構成され、前記レベル情報は、前記変換係数ブロック中の有意係数の絶対値を含む、
    請求項22に記載のビデオ復号デバイス。
  25. 前記1つまたは複数のプロセッサは、
    イントラ予測モードを判断することと、
    前記イントラ予測モードに基づいて前記コーディングスキャン順序を判断することと、
    前記有意性マップを復号した後におよび前記コーディングスキャン順序を判断した後に、前記有意性マップと、前記コーディングスキャン順序と、前記レベル情報とに基づいて前記変換係数ブロックを再作成することと、
    前記変換係数ブロックを再作成した後に、前記変換係数ブロックを逆量子化することと、
    前記変換係数ブロックを逆量子化した後に、前記変換係数ブロックに逆変換を適用することに少なくとも部分的によって残差データを生成することと、
    予測ビデオブロックを生成するためにイントラ予測を実行することと、
    前記残差データと前記予測ビデオブロックとを生成した後に、前記残差データと前記予測ビデオブロックとに基づいてビデオブロックを再構成することと
    を行うように構成される、請求項24に記載のビデオ復号デバイス。
  26. 前記1つまたは複数のプロセッサは、前記座標インジケータから前記スキャンベースLSCインジケータを導出する非反復アルゴリズムを実行することに少なくとも部分的によって、前記座標インジケータを変換するように構成される、
    請求項21に記載のビデオ復号デバイス。
  27. 前記1つまたは複数のプロセッサは、座標をスキャンベースLSCインジケータにマッピングするデータ構造にアクセスすることに少なくとも部分的によって、前記座標インジケータを前記スキャンベースLSCインジケータに変換するように構成される、
    請求項21に記載のビデオ復号デバイス。
  28. 前記1つまたは複数のプロセッサは、
    前記座標を有する位置に達するまで前記仮定したスキャン順序に従って前記変換係数ブロック中の位置をくまなくスキャンするループ演算を実行することと、
    前記座標を有する前記位置より前の、前記変換係数ブロックの位置ごとに前記スキャンベースLSCインジケータを増分することと
    に少なくとも部分的によって、前記座標インジケータを前記スキャンベースLSCインジケータに変換することを行うように構成される、
    請求項21に記載のビデオ復号デバイス。
  29. 前記仮定したスキャン順序は、サブブロックスキャン順序であり、前記コーディングスキャン順序は、水平スキャン順序と、垂直スキャン順序と、対角スキャン順序と、ジグザグスキャン順序との中から選択される、
    請求項21に記載のビデオ復号デバイス。
  30. 前記1つまたは複数のプロセッサは、
    前記コーディングスキャン順序を判断することと、
    前記コーディングスキャン順序が前記仮定したスキャン順序と同じでないと判断したことに応答して、前記スキャンベースLSCインジケータを前記変換係数ブロックの前記最後の有意係数の座標に変換することと、
    前記最後の有意係数の前記座標に基づいて、前記変換係数ブロックの有意性マップをエントロピー復号または再構成することと
    を行うように構成される、請求項21に記載のビデオ復号デバイス。
  31. 変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに、前記変換係数ブロックの最後の有意係数が所与の順序位置で発生すると判断するための手段と、ここで、前記変換係数ブロックは、変換係数を備える、
    置換係数を識別するための手段と、ここで、前記置換係数は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに前記最後の有意係数の順序位置と同じ順序位置で発生し、前記コーディングスキャン順序は、前記仮定したスキャン順序と異なる、
    前記置換係数の座標インジケータを生成するための手段と、ここで、前記置換係数の前記座標インジケータは、前記置換係数の前記変換係数ブロック内の座標を指定し、前記コーディングスキャン順序にかかわらず前記最後の有意係数の前記所与の順序位置を示す、
    前記座標インジケータのエントロピー符号化バージョンを生成するために、前記座標インジケータに対してエントロピーコーディング演算を実行するための手段と、
    前記座標インジケータの前記エントロピー符号化バージョンを出力するための手段と
    を備える、ビデオ符号化デバイス。
  32. 変換係数ブロック中の所与の位置の座標を指定する座標インジケータを受信するための手段と、ここで、前記所与の位置は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに所与の順序位置で発生し、前記所与の順序位置は、前記変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときの最後の有意係数の順序位置と同じ順序位置で発生し、前記変換係数ブロックは、変換係数を備え、前記コーディングスキャン順序は、前記仮定したスキャン順序と異なる、
    前記座標インジケータを、前記所与の順序位置を指定するスキャンベース最後の有意係数(LSC)インジケータに変換するための手段と
    を備え、前記座標インジケータは、前記コーディングスキャン順序にかかわらず前記最後の有意係数の前記順序位置を示す、ビデオ復号デバイス。
  33. 変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときに、前記変換係数ブロックの最後の有意係数(LSC)が所与の順序位置で発生すると判断することと、ここで、前記変換係数ブロックが変換係数を備える、
    置換係数を識別することと、ここで、前記置換係数は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに前記最後の有意係数の順序位置と同じ順序位置で発生し、前記コーディングスキャン順序は、前記仮定したスキャン順序と異なる、
    前記置換係数の座標インジケータを生成することと、ここで、前記置換係数の前記座標インジケータは、前記置換係数の前記変換係数ブロック内の座標を指定し、前記コーディングスキャン順序にかかわらず前記最後の有意係数の前記所与の順序位置を示す、
    前記座標インジケータのエントロピー符号化バージョンを生成するために、前記座標インジケータに対してエントロピーコーディング演算を実行することと、
    前記座標インジケータの前記エントロピー符号化バージョンを出力することと
    を行うように1つまたは複数のプロセッサを構成する命令を備える、
    コンピュータプログラム。
  34. 変換係数ブロック中の所与の位置の座標を指定するブロックベース最後の有意係数(LSC)インジケータを受信することと、ここで、前記所与の位置は、前記変換係数ブロックが仮定したスキャン順序に従ってスキャンされるときに、所与の順序位置で発生し、前記所与の順序位置は、前記変換係数ブロックがコーディングスキャン順序に従ってスキャンされるときの最後の有意係数の順序位置と同じ順序位置で発生し、前記変換係数ブロックは、変換係数を備え、前記コーディングスキャン順序は、前記仮定したスキャン順序と異なる、
    標インジケータを、前記所与の順序位置を指定するスキャンベースLSCインジケータに変換することと
    を行うように1つまたは複数のプロセッサを構成する命令を備え、前記座標インジケータは、前記コーディングスキャン順序にかかわらず前記最後の有意係数の前記順序位置を示す、
    コンピュータプログラム。
JP2014519020A 2011-06-28 2012-06-28 最後の有意変換係数のコーディング Expired - Fee Related JP5792381B2 (ja)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201161502269P 2011-06-28 2011-06-28
US61/502,269 2011-06-28
US201161503529P 2011-06-30 2011-06-30
US61/503,529 2011-06-30
US201161550784P 2011-10-24 2011-10-24
US201161550775P 2011-10-24 2011-10-24
US61/550,784 2011-10-24
US61/550,775 2011-10-24
US13/534,332 US9491469B2 (en) 2011-06-28 2012-06-27 Coding of last significant transform coefficient
US13/534,332 2012-06-27
PCT/US2012/044629 WO2013003581A1 (en) 2011-06-28 2012-06-28 Coding of last significant transform coefficient

Publications (2)

Publication Number Publication Date
JP2014523704A JP2014523704A (ja) 2014-09-11
JP5792381B2 true JP5792381B2 (ja) 2015-10-14

Family

ID=47390665

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014519020A Expired - Fee Related JP5792381B2 (ja) 2011-06-28 2012-06-28 最後の有意変換係数のコーディング
JP2014519021A Active JP5792382B2 (ja) 2011-06-28 2012-06-28 ビデオコーディングにおける最後の有意変換係数のスキャン順序での位置の導出

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014519021A Active JP5792382B2 (ja) 2011-06-28 2012-06-28 ビデオコーディングにおける最後の有意変換係数のスキャン順序での位置の導出

Country Status (9)

Country Link
US (2) US9167253B2 (ja)
EP (2) EP2727346A1 (ja)
JP (2) JP5792381B2 (ja)
KR (2) KR101650635B1 (ja)
CN (1) CN103621086B (ja)
BR (1) BR112013032702A2 (ja)
CA (1) CA2840618C (ja)
RU (1) RU2576590C2 (ja)
WO (2) WO2013003584A1 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9497472B2 (en) 2010-11-16 2016-11-15 Qualcomm Incorporated Parallel context calculation 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
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
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
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
US10499059B2 (en) 2011-03-08 2019-12-03 Velos Media, Llc Coding of transform coefficients for video coding
US9167253B2 (en) 2011-06-28 2015-10-20 Qualcomm Incorporated Derivation of the position in scan order of the last significant transform coefficient in video coding
US20130215970A1 (en) * 2011-12-20 2013-08-22 General Instrument Corporation Method and apparatus for last coefficient group position coding
US9491463B2 (en) 2012-04-14 2016-11-08 Qualcomm Incorporated Group flag in transform coefficient coding for video coding
US9313498B2 (en) 2012-04-16 2016-04-12 Qualcomm Incorporated Sign hiding techniques for quantized transform coefficients in video coding
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
GB2513111A (en) 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
US9445132B2 (en) 2013-09-09 2016-09-13 Qualcomm Incorporated Two level last significant coefficient (LSC) position coding
US9215464B2 (en) * 2013-09-19 2015-12-15 Blackberry Limited Coding position data for the last non-zero transform coefficient in a coefficient group
US9392288B2 (en) * 2013-10-17 2016-07-12 Google Inc. Video coding using scatter-based scan tables
KR102250088B1 (ko) * 2013-10-24 2021-05-10 삼성전자주식회사 비디오 스트림을 복호화하는 방법 및 장치
WO2015110011A1 (en) * 2014-01-24 2015-07-30 Mediatek Inc. Decoding apparatus capable of controlling repetition number of scan procedure based on at least one syntax element decoding result and related method
WO2015142556A2 (en) * 2014-03-16 2015-09-24 Vid Scale, Inc. Method and apparatus for the signaling of lossless video coding
US20150312568A1 (en) * 2014-03-17 2015-10-29 Nokia Technologies Oy Method and technical equipment for video encoding and decoding
CN104410863B (zh) * 2014-12-11 2017-07-11 上海兆芯集成电路有限公司 图像处理器以及图像处理方法
CN106331720B (zh) * 2015-06-17 2020-03-27 福州瑞芯微电子股份有限公司 一种视频解码相关信息存储方法和装置
KR20180040515A (ko) * 2015-09-10 2018-04-20 삼성전자주식회사 부호화 장치, 복호화 장치, 그 부호화 및 복호화 방법
WO2017057953A1 (ko) * 2015-09-30 2017-04-06 엘지전자 주식회사 비디오 코딩 시스템에서 레지듀얼 신호 코딩 방법 및 장치
EP4398578A2 (en) 2015-11-24 2024-07-10 Samsung Electronics Co., Ltd. Encoding sequence encoding method and device thereof, and decoding method and device thereof
US10958989B2 (en) * 2016-02-25 2021-03-23 Synamedia Limited Framework for embedding data in encoded video
CN114786009A (zh) 2016-03-16 2022-07-22 寰发股份有限公司 视频编码中限制块尺寸的视频数据处理方法与装置
US10630985B2 (en) 2016-05-27 2020-04-21 Samsung Electronics Co., Ltd. Method for scanning coding blocks inside a video frame by video codecs
EP3270594A1 (en) * 2016-07-15 2018-01-17 Thomson Licensing Method and apparatus for advanced cabac context adaptation for last coefficient coding
US10798375B2 (en) * 2016-11-01 2020-10-06 Samsung Electronics Co., Ltd. Encoding method and device therefor, and decoding method and device therefor
AU2018252853A1 (en) * 2017-04-13 2019-12-05 Lg Electronics Inc. Image encoding/decoding method and device therefor
WO2019027241A1 (ko) * 2017-07-31 2019-02-07 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
GB2570711B (en) * 2018-02-05 2023-04-05 Sony Corp Data encoding and decoding
US20210274182A1 (en) * 2018-07-02 2021-09-02 Interdigital Vc Holdings, Inc. Context-based binary arithmetic encoding and decoding
CN108965333B (zh) * 2018-08-30 2021-02-19 北京锐安科技有限公司 一种数据压缩、解压缩方法、***及电子设备
CN117651149A (zh) 2018-09-10 2024-03-05 华为技术有限公司 视频解码方法及视频解码器
KR102669450B1 (ko) * 2018-12-11 2024-05-28 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR102388807B1 (ko) * 2018-12-17 2022-04-20 엘지전자 주식회사 고주파 제로잉을 기반으로 변환 계수 스캔 순서를 결정하는 방법 및 장치
KR102456938B1 (ko) 2019-03-12 2022-10-20 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
EP3890319B1 (en) 2019-03-21 2024-06-26 Samsung Electronics Co., Ltd. Method and device for encoding video having block size set for each block shape, and method and device for decoding video
US11962757B2 (en) 2019-03-23 2024-04-16 Lg Electronics Inc. Residual signal encoding/decoding method and apparatus employing intra sub-partitions (ISP), and method for transmitting bitstream
CN113711600B (zh) * 2019-04-26 2024-06-21 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法和解码方法
WO2020263442A1 (en) * 2019-06-24 2020-12-30 Alibaba Group Holding Limited Transform-skip residual coding of video data
US11418790B2 (en) * 2019-06-28 2022-08-16 Qualcomm Incorporated Arithmetic coding with selective adaptation for video coding
CN117319649A (zh) 2019-08-20 2023-12-29 北京字节跳动网络技术有限公司 经变换跳过的块的残差编解码
WO2021036979A1 (en) * 2019-08-24 2021-03-04 Beijing Bytedance Network Technology Co., Ltd. Residual coefficients coding
CN112449192B (zh) * 2019-08-27 2022-09-16 杭州海康威视数字技术股份有限公司 解码方法、编码方法及装置
JP7441638B2 (ja) 2019-12-06 2024-03-01 日本放送協会 符号化装置、復号装置、及びプログラム

Family Cites Families (117)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1679903A (en) 1928-01-12 1928-08-07 Chase Appliance Corp Anticreeping device for railway rails
US5295203A (en) 1992-03-26 1994-03-15 General Instrument Corporation Method and apparatus for vector coding of video transform coefficients
JPH06205388A (ja) 1992-12-28 1994-07-22 Canon Inc 画像符号化装置
EP0607484B1 (en) 1993-01-20 1998-09-09 Samsung Electronics Co. Ltd. Method and device for encoding and decoding image data
EP1802141A2 (en) 1995-03-15 2007-06-27 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems
US5838825A (en) 1996-01-17 1998-11-17 Matsushita Electric Industrial Co., Ltd. Apparatus for decompressing image data which has been compressed using a linear transform
US5818877A (en) 1996-03-14 1998-10-06 The Regents Of The University Of California Method for reducing storage requirements for grouped data values
US6301304B1 (en) 1998-06-17 2001-10-09 Lsi Logic Corporation Architecture and method for inverse quantization of discrete cosine transform coefficients in MPEG decoders
US6553147B2 (en) 1998-10-05 2003-04-22 Sarnoff Corporation Apparatus and method for data partitioning to improving error resilience
JP3691393B2 (ja) 1998-11-04 2005-09-07 三菱電機株式会社 画像復号化装置、画像復号化方法及び画像符号化・復号化システム
EP1041826A1 (en) 1999-04-01 2000-10-04 Lucent Technologies Inc. Apparatus for coding data and apparatus for decoding block transform coefficients
US6775414B1 (en) 1999-11-19 2004-08-10 Ati International Srl Variable-length code decoder
US6680974B1 (en) 1999-12-02 2004-01-20 Lucent Technologies Inc. Methods and apparatus for context selection of block transform coefficients
US6650707B2 (en) 2001-03-02 2003-11-18 Industrial Technology Research Institute Transcoding apparatus and method
US20020122483A1 (en) 2001-03-02 2002-09-05 Matsushita Electric Industrial Co., Ltd. Encoding circuit and method
EP1391121B1 (en) 2001-03-23 2012-08-15 Nokia Corporation Variable length coding
US7113646B2 (en) 2001-06-29 2006-09-26 Equator Technologies, Inc. Decoding of predicted AC coefficient without division
US6856701B2 (en) 2001-09-14 2005-02-15 Nokia Corporation Method and system for context-based adaptive binary arithmetic coding
WO2003043346A1 (en) 2001-11-16 2003-05-22 Ntt Docomo, Inc. Image encoding method, image decoding method, image encoder, image decode, program, computer data signal, and image transmission system
US7190840B2 (en) 2002-01-07 2007-03-13 Hewlett-Packard Development Company, L.P. Transform coefficient compression using multiple scans
JP3866580B2 (ja) 2002-01-30 2007-01-10 日本電信電話株式会社 画像符号化装置、画像復号装置、画像符号化プログラム、画像復号プログラム及びそれらのプログラムを記録したコンピュータ読み取り可能な記録媒体
US7099387B2 (en) 2002-03-22 2006-08-29 Realnetorks, Inc. Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses
JP4090862B2 (ja) 2002-04-26 2008-05-28 松下電器産業株式会社 可変長符号化方法および可変長復号化方法
ES2277174T3 (es) 2002-05-02 2007-07-01 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Codificacion aritmetica de coeficientes de transformacion.
US7376280B2 (en) 2002-07-14 2008-05-20 Apple Inc Video encoding and decoding
US7483575B2 (en) 2002-10-25 2009-01-27 Sony Corporation Picture encoding apparatus and method, program and recording medium
US6646578B1 (en) 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
KR20060027831A (ko) 2003-06-30 2006-03-28 코닌클리케 필립스 일렉트로닉스 엔.브이. 신호를 비트 스트림으로 인코딩하는 방법
US20050036549A1 (en) 2003-08-12 2005-02-17 Yong He Method and apparatus for selection of scanning mode in dual pass encoding
US7688894B2 (en) 2003-09-07 2010-03-30 Microsoft Corporation Scan patterns for interlaced video content
US7379608B2 (en) 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
US7599435B2 (en) 2004-01-30 2009-10-06 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video frame encoding and decoding
US7522774B2 (en) 2004-03-10 2009-04-21 Sindhara Supermedia, Inc. Methods and apparatuses for compressing digital image data
US7505043B2 (en) * 2004-08-30 2009-03-17 Qualcomm Incorporated Cache efficient rasterization of graphics data
US20060078049A1 (en) 2004-10-13 2006-04-13 Nokia Corporation Method and system for entropy coding/decoding of a video bit stream for fine granularity scalability
JP4271134B2 (ja) 2004-12-10 2009-06-03 株式会社東芝 可変長符号化デコーダおよびデコード方法
NO322043B1 (no) 2004-12-30 2006-08-07 Tandberg Telecom As Fremgangsmate for forenklet entropikoding
US8311119B2 (en) 2004-12-31 2012-11-13 Microsoft Corporation Adaptive coefficient scan order
US7609904B2 (en) 2005-01-12 2009-10-27 Nec Laboratories America, Inc. Transform coding system and method
JP2006211304A (ja) 2005-01-28 2006-08-10 Matsushita Electric Ind Co Ltd 映像符号化装置、映像復号化装置、映像符号化方法、映像復号化方法、映像符号化プログラムおよび映像復号化プログラム
US20060227865A1 (en) 2005-03-29 2006-10-12 Bhaskar Sherigar Unified architecture for inverse scanning for plurality of scanning scheme
EP1768415A1 (en) 2005-09-27 2007-03-28 Matsushita Electric Industrial Co., Ltd. Adaptive scan order of DCT coefficients and its signaling
US8726940B2 (en) 2005-05-13 2014-05-20 Westcast, Inc. Fuel equalization system
US8599925B2 (en) 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
US20070071331A1 (en) 2005-09-24 2007-03-29 Xiteng Liu Image compression by economical quaternary reaching method
WO2007043583A1 (ja) 2005-10-11 2007-04-19 Matsushita Electric Industrial Co., Ltd. 画像符号化装置、画像復号化装置及びこれらの方法
US8200033B2 (en) 2005-11-30 2012-06-12 Koninklijke Philips Electronics N.V. Encoding method and apparatus applying coefficient reordering
KR100867995B1 (ko) 2006-01-07 2008-11-10 한국전자통신연구원 동영상 데이터 인코딩/디코딩 방법 및 그 장치
US7884742B2 (en) 2006-06-08 2011-02-08 Nvidia Corporation System and method for efficient compression of digital data
US8275045B2 (en) 2006-07-12 2012-09-25 Qualcomm Incorporated Video compression using adaptive variable length codes
US8942292B2 (en) 2006-10-13 2015-01-27 Qualcomm Incorporated Efficient significant coefficients coding in scalable video codecs
US8098735B2 (en) 2006-12-21 2012-01-17 Lsi Corporation Efficient 8×8 CABAC residual block decode
US7369066B1 (en) 2006-12-21 2008-05-06 Lsi Logic Corporation Efficient 8×8 CABAC residual block transcode system
EP2131596B1 (de) 2006-12-27 2012-08-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Kodieren eines Transformationskoeffizientenblockes
PL2123052T3 (pl) 2007-01-18 2011-05-31 Fraunhofer Ges Forschung Strumień danych wideo o skalowalnej jakości
KR101356733B1 (ko) 2007-03-07 2014-02-05 삼성전자주식회사 컨텍스트 기반 적응적 이진 산술 부호화, 복호화 방법 및장치
US9455739B2 (en) 2007-03-14 2016-09-27 Nippon Telegraph And Telephone Corporation Code amount estimating method and apparatus, and program and storage medium therefor
US7885473B2 (en) 2007-04-26 2011-02-08 Texas Instruments Incorporated Method of CABAC coefficient magnitude and sign decoding suitable for use on VLIW data processors
US7813567B2 (en) 2007-04-26 2010-10-12 Texas Instruments Incorporated Method of CABAC significance MAP decoding suitable for use on VLIW data processors
US8488668B2 (en) 2007-06-15 2013-07-16 Qualcomm Incorporated Adaptive coefficient scanning for video coding
US8571104B2 (en) 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
US7535387B1 (en) 2007-09-10 2009-05-19 Xilinx, Inc. Methods and systems for implementing context adaptive binary arithmetic coding
US8204327B2 (en) 2007-10-01 2012-06-19 Cisco Technology, Inc. Context adaptive hybrid variable length coding
US20090273796A1 (en) 2008-04-30 2009-11-05 Kodak Graphic Communications Canada Company Peeling imaged media from a substrate
KR101394153B1 (ko) 2007-12-11 2014-05-16 삼성전자주식회사 양자화 방법 및 장치, 역양자화 방법 및 장치
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
US8977064B2 (en) 2008-02-13 2015-03-10 Qualcomm Incorporated Rotational transcoding for JPEG or other coding standards
KR101375668B1 (ko) 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
EP2154894A1 (en) 2008-08-15 2010-02-17 Thomson Licensing Video coding with coding of the locations of significant coefficients in a block of coefficients
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
US7932843B2 (en) 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
EP2182732A1 (en) 2008-10-28 2010-05-05 Panasonic Corporation Switching between scans in image coding
RU2487473C2 (ru) 2008-12-03 2013-07-10 Нокиа Корпорейшн Переключение между режимами кодирования коэффициентов дискретного косинусного преобразования
US8004431B2 (en) 2008-12-09 2011-08-23 Qualcomm Incorporated Fast parsing of variable-to-fixed-length codes
US20110249755A1 (en) 2008-12-16 2011-10-13 Youji Shibahara Moving image coding method, moving image decoding method, moving image coding apparatus, moving image decoding apparatus, program, and integrated circuit
KR101834825B1 (ko) 2009-01-27 2018-03-06 톰슨 라이센싱 비디오 인코딩 및 디코딩에서 변환 선택을 위한 방법 및 장치
JP5004986B2 (ja) 2009-03-19 2012-08-22 キヤノン株式会社 スキャン変換装置及び画像符号化装置、並びにそれらの制御方法
JP5302769B2 (ja) 2009-05-14 2013-10-02 キヤノン株式会社 スキャン変換装置及び画像符号化装置及びそれらの制御方法
WO2010143853A2 (ko) 2009-06-07 2010-12-16 엘지전자 주식회사 비디오 신호의 디코딩 방법 및 장치
KR20100136890A (ko) 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
WO2011002914A1 (en) 2009-06-30 2011-01-06 Massachusetts Institute Of Technology System and method for providing high throughput entropy coding using syntax element partitioning
WO2011007478A1 (ja) 2009-07-17 2011-01-20 日本電気株式会社 ウェーブレット変換符号化/復号方法および装置
US8619866B2 (en) 2009-10-02 2013-12-31 Texas Instruments Incorporated Reducing memory bandwidth for processing digital image data
US8477845B2 (en) 2009-10-16 2013-07-02 Futurewei Technologies, Inc. Predictive adaptive scan ordering for video coding
KR101457894B1 (ko) 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
KR20110045949A (ko) 2009-10-28 2011-05-04 삼성전자주식회사 회전 변환을 이용한 영상 부호화, 복호화 방법 및 장치
TW201119407A (en) 2009-11-19 2011-06-01 Thomson Licensing Method for coding and method for reconstruction of a block of an image
US20120288003A1 (en) 2010-01-15 2012-11-15 Thomson Licensing Llc Video coding using compressive sensing
US8588536B2 (en) 2010-02-22 2013-11-19 Texas Instruments Incorporated Guaranteed-rate tiled image data compression
US20110243220A1 (en) 2010-04-05 2011-10-06 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image and method and apparatus for decoding image using adaptive coefficient scan order
US8929440B2 (en) 2010-04-09 2015-01-06 Sony Corporation QP adaptive coefficients scanning and application
CN114143553A (zh) 2010-04-13 2022-03-04 Ge视频压缩有限责任公司 显著性图和变换系数块的编码
RU2549157C1 (ru) 2010-04-23 2015-04-20 М энд К ХОЛДИНГС ИНК. Устройство для кодирования движущегося изображения
US9661338B2 (en) 2010-07-09 2017-05-23 Qualcomm Incorporated Coding syntax elements for adaptive scans of transform coefficients for video coding
SI3101901T1 (sl) 2010-07-09 2017-10-30 Samsung Electronics Co.,Ltd. Postopek entropijskega dekodiranja trasformnih koeficientov
US20120027081A1 (en) * 2010-07-30 2012-02-02 Cisco Technology Inc. Method, system, and computer readable medium for implementing run-level coding
US9154801B2 (en) 2010-09-30 2015-10-06 Texas Instruments Incorporated Method and apparatus for diagonal scan and simplified coding of transform coefficients
EP2628299B1 (en) 2010-10-14 2019-08-07 InterDigital VC Holdings, Inc. Method and apparatus for improved entropy encoding and decoding
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
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
US20120163472A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Efficiently coding scanning order information for a video 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
WO2012093969A1 (en) * 2011-01-07 2012-07-12 Agency For Science, Technology And Research Method and an apparatus for coding an image
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
US20120207400A1 (en) 2011-02-10 2012-08-16 Hisao Sasai Image coding method, image coding apparatus, image decoding method, image decoding apparatus, and image coding and decoding apparatus
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
US10499059B2 (en) 2011-03-08 2019-12-03 Velos Media, Llc Coding of transform coefficients for video coding
US8861599B2 (en) 2011-03-08 2014-10-14 Sony Corporation Context reduction for last transform position coding
CN102685503B (zh) 2011-03-10 2014-06-25 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
US8861593B2 (en) 2011-03-15 2014-10-14 Sony Corporation Context adaptation within video coding modules
US8446301B2 (en) * 2011-04-15 2013-05-21 Research In Motion Limited Methods and devices for coding and decoding the position of the last significant coefficient
US9167253B2 (en) 2011-06-28 2015-10-20 Qualcomm Incorporated Derivation of the position in scan order of the last significant transform coefficient in video coding
US9392301B2 (en) 2011-07-01 2016-07-12 Qualcomm Incorporated Context adaptive entropy coding for non-square blocks in video coding
CN107302364B (zh) 2012-01-20 2021-01-19 Ge视频压缩有限责任公司 从数据流解码具有变换系数级别的多个变换系数的装置

Also Published As

Publication number Publication date
US20130003835A1 (en) 2013-01-03
KR101617968B1 (ko) 2016-05-03
US9167253B2 (en) 2015-10-20
EP2727343A1 (en) 2014-05-07
KR101650635B1 (ko) 2016-08-23
US20130003834A1 (en) 2013-01-03
JP5792382B2 (ja) 2015-10-14
CA2840618A1 (en) 2013-01-03
WO2013003584A1 (en) 2013-01-03
WO2013003581A1 (en) 2013-01-03
CN103636213A (zh) 2014-03-12
BR112013032702A2 (pt) 2017-01-24
JP2014523704A (ja) 2014-09-11
KR20140029533A (ko) 2014-03-10
CA2840618C (en) 2017-09-05
RU2014102578A (ru) 2015-08-10
CN103621086A (zh) 2014-03-05
EP2727346A1 (en) 2014-05-07
KR20140028129A (ko) 2014-03-07
CN103621086B (zh) 2017-08-11
EP2727343B1 (en) 2016-12-14
US9491469B2 (en) 2016-11-08
RU2576590C2 (ru) 2016-03-10
JP2014521249A (ja) 2014-08-25

Similar Documents

Publication Publication Date Title
JP5792381B2 (ja) 最後の有意変換係数のコーディング
JP6022586B2 (ja) ビデオコーディングのための隣接するビデオユニットの利用可能性の検出
JP6162150B2 (ja) ビデオコーディング用の残差4分木(rqt)コーディング
TWI699110B (zh) 使用一全文自適應二進位算術寫碼設計來寫碼資料
JP5893747B2 (ja) コード化スライスnalユニット中のセグメントのパディング
JP5774780B2 (ja) ビデオコーディングにおけるイントラ予測のための境界画素のパディング
JP5770311B2 (ja) ビデオコーディングにおけるサブスライス
JP5932049B2 (ja) ビデオコード化のデブロッキングフィルタリングのための境界強度値の決定
JP6081499B2 (ja) 変換係数コーディングのためのコンテキスト導出における走査ベーススライディングウィンドウ
JP5955955B2 (ja) リーフレベルコード化単位のサブセットについての変換係数のシンタックス要素の信号伝達
TW201813386A (zh) 用於視訊寫碼之樹型寫碼
JP6553181B2 (ja) パレットモードコーディングのための方法
CN112514386B (zh) 网格编解码量化系数编解码
JP2019515580A (ja) イントラ予測モードのネイバーベースのシグナリング
WO2015031806A1 (en) Constrained intra prediction in video coding
JP2017525262A (ja) スクリーンコンテンツビデオデータの動きベクトル差分(mvd)およびイントラブロックコピーベクトル差分(bvd)コーディングのための方法
JP2017521964A (ja) サブブロックパレットモード
CN116016915B (zh) 变换与系数信令的方法和装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150406

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150805

R150 Certificate of patent or registration of utility model

Ref document number: 5792381

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees