JP2014523710A - ビデオ・コーディングにおける直交形状変換をスキャンするためのデバイスおよび方法 - Google Patents

ビデオ・コーディングにおける直交形状変換をスキャンするためのデバイスおよび方法 Download PDF

Info

Publication number
JP2014523710A
JP2014523710A JP2014519105A JP2014519105A JP2014523710A JP 2014523710 A JP2014523710 A JP 2014523710A JP 2014519105 A JP2014519105 A JP 2014519105A JP 2014519105 A JP2014519105 A JP 2014519105A JP 2014523710 A JP2014523710 A JP 2014523710A
Authority
JP
Japan
Prior art keywords
block
video
transform
coding
scan order
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.)
Pending
Application number
JP2014519105A
Other languages
English (en)
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.)
Motorola Mobility LLC
Original Assignee
Motorola Mobility LLC
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 Motorola Mobility LLC filed Critical Motorola Mobility LLC
Publication of JP2014523710A publication Critical patent/JP2014523710A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

波面スキャンを直交変換ブロックに適用可能にするデバイスおよび方法が、本明細書に記載される。このようなデバイスおよび方法は、変換係数の並行処理を可能にすることによって、エントロピー・コーディングの効率を高めることができる。一部の実施形態では、複数のピクチャを有するデジタル・ビデオ・シーケンスをコーディングするための方法が、複数のピクチャの少なくとも1つをブロックに分割する工程と、該ブロックの少なくとも1つに対し直交変換を実行して、1つまたは複数の変換係数を生成する工程と、1つまたは複数の変換係数に量子化を実行する工程と、1つまたは複数の変換係数を1度に1つ、コーディングスキャン順序に沿ってエンコードして、圧縮ビットストリームを生成する工程とを含む。コーディングスキャン順序は、順方向波面スキャン順序または逆方向波面スキャン順序を含むことができ、量子化により量子化変換係数を生成することができる。

Description

本開示は、一般にビデオ・コーディングの分野に関し、より詳細には、エントロピー・コーディングにおいて直交形状変換をスキャンするためのシステム、デバイス、および方法に関する。
デジタル・ビデオ機能を、デジタル・テレビ、デジタル直接放送システム、無線放送システム、携帯情報端末(PDA)、ラップトップまたはデスクトップ・コンピュータ、タブレット・コンピュータ、電子書籍端末、デジタル・カメラ、デジタル記録デバイス、デジタル・メディア・プレーヤ、ビデオ・ゲーム・デバイス、ビデオ・ゲーム・コンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ会議デバイス、ビデオ・ストリーミング・デバイス等を含む広範囲のデバイスに組み込むことができる。デジタル・ビデオ・デバイスは、MPEG−2、MPEG−4、ITU−TH.263、ITU−TH.264/MPEG−4、Part 10、AVC(Advanced Video Coding)、現在開発中のHEVC(High Efficiency Video Coding)、およびこのような規格の拡張規格により定義された規格に記載された技術等のビデオ圧縮技術を実施する。ビデオ・デバイスは、このようなビデオ圧縮技術を実施することによって、より効率的にデジタル・ビデオ情報を送信、受信、エンコード(符号化)、デコード(復号化)、および/または記憶することができる。
ビデオ圧縮技術は、空間(たとえば、イントラピクチャ)予測および/または時間(たとえば、インターピクチャ)予測を実行して、ビデオ・シーケンスに固有の冗長性を減少させ、または除去する。ブロックベースのビデオ・コーディングについて、ビデオ・スライス(たとえば、ビデオ・フレームまたはビデオ・フレームの一部)をビデオ・ブロックに区画することができ、このビデオ・ブロックを、木ブロック、コーディング・ユニット(CU)、および/またはコーディングノードと呼ぶこともできる。ピクチャのイントラコーディング(I)スライスのビデオ・ブロックは、同一ピクチャにおける隣接ブロック内の基準サンプルに対する空間予測を使用してエンコードされ得る。ピクチャのインターコーディング(PまたはB)スライスにおけるビデオ・ブロックは、同一ピクチャにおける隣接ブロックの基準サンプルに対する空間予測、または他の基準ピクチャの基準サンプルに対する時間予測を使用することができる。ピクチャをフレームと呼ぶこともでき、基準ピクチャを基準フレームと呼ぶこともできる。
空間または時間予測は、コーディングするブロックに対する予測ブロックを生じさせることができる。残差データは、コーディングするオリジナル・ブロックと予測ブロックとの画素差を表すことができる。インターコーディングブロックを、予測ブロックを形成する基準サンプルのブロックを指す動きベクトルと、コーディングブロックと予測ブロックとの差を示す残差データとによってエンコードすることができる。イントラコーディングブロックを、イントラコーディングモードおよび残差データによってエンコードすることができる。さらなる圧縮について、残差データを画素領域から変換領域に変換して、残差変換係数を生じさせることができ、次いで残差変換係数を量子化することができる。変換係数の1次元ベクトルを生じさせるために、最初に2次元配列に配置された量子化変換係数をスキャンすることができ、エントロピー・コーディングを適用してさらなる圧縮を達成することができる。
本開示は、エントロピー・コーディングのための効率を提供する新しいデバイスおよび方法を検討する。
したがって、本明細書では、波面スキャンを直交変換ブロックに適用可能にするデバイスおよび方法が提供される。このようなデバイスおよび方法は、変換係数の並行処理を可能にすることによって、エントロピー・コーディングの効率を高めることができる。
一部の実施形態では、複数のピクチャを有するデジタル・ビデオ・シーケンスをコーディングするための方法が、複数のピクチャの少なくとも1つをブロックに分割する工程と、該ブロックの少なくとも1つに対し直交変換を実行して、1つまたは複数の変換係数を生成する工程と、1つまたは複数の変換係数に量子化を実行する工程と、1つまたは複数の変換係数を1度に1つ、コーディングスキャン順序に沿ってエンコードして、圧縮ビットストリームを生成する工程とを含む。コーディングスキャン順序は、順方向波面スキャン順序または逆方向波面スキャン順序を含むことができ、量子化により量子化変換係数を生成することができる。
一部の実施形態では、複数のピクチャを有するデジタル・ビデオ・シーケンスをコーディングするための装置が、複数のピクチャの少なくとも1つをブロックに分割し、ブロックの少なくとも1つに対し直交変換を実行して、1つまたは複数の変換係数を生成し、1つまたは複数の変換係数に量子化を実行し、1つまたは複数の変換係数を1度に1つ、コーディングスキャン順序に沿ってエンコードして、圧縮ビットストリームを生成するように構成されたビデオ・コーダを備える。コーディングスキャン順序は、順方向波面スキャン順序または逆方向波面スキャン順序を含むことができ、量子化により量子化変換係数を生成することができる。
他の実施形態では、圧縮ビットストリームを処理するための方法が、圧縮ビットストリームを受信する工程と、圧縮ビットストリームを処理して、直交変換の1つまたは複数の変換係数を生成する工程とを含む。1つまたは複数の変換係数を、1度に1つ、直交変換のコーディングスキャン順序に沿って生成することができ、コーディングスキャン順序は、順方向波面スキャン順序または逆方向波面スキャン順序を含むことができる。
さらに他の実施形態では、圧縮ビットストリームを処理するための装置が、圧縮ビットストリームを受信し、圧縮ビットストリームを処理して、直交変換の1つまたは複数の変換係数を生成するように構成されたビデオ・デコーダを備える。1つまたは複数の変換係数を、1度に1つ、直交変換のコーディングスキャン順序に沿って生成することができ、コーディングスキャン順序は、順方向波面スキャン順序または逆方向波面スキャン順序を含むことができる。
構造および作用に関する本開示の詳細は、添付図面を検討することにより部分的に理解することができる。図中、同一の参照符号は同一の部品を示す。図面は必ずしも一定の縮尺ではなく、本発明の原理を示す部分を強調する。
画像の空間および時間サンプリングを示すブロック図。 1実施形態による、ビデオ・データの直交ブロックのスキャニングを効率的に実行するための技術を実施可能な、ビデオエンコードおよびデコードシステムの例を示すブロック図。 1実施形態による、ピクチャがブロック(LCU)に分割される一例を示す図。 1実施形態による、CUに分割されたLCUの一例を示す図。 1実施形態による、図4のLCU区画の4分木表示の図。 1実施形態による、CUごとのPUへの考えられる4つの区画を示す図。 1実施形態による、CU区画および関連する一組のTUの例を示す図。 1実施形態による、図7の例におけるCU内のTUの4分木表示を示す図。 ビデオ・データおよび対応する有意係数位置情報および最後の有意係数位置情報のブロックの例を示す概念図。 ビデオ・データおよび対応する有意係数位置情報および最後の有意係数位置情報のブロックの例を示す概念図。 ビデオ・データおよび対応する有意係数位置情報および最後の有意係数位置情報のブロックの例を示す概念図。 ジグザグ・スキャニング順序を使用してスキャンされたビデオ・データのブロックの例を示す概念図。 ジグザグ・スキャニング順序を使用してスキャンされたビデオ・データのブロックのさらなる例を示す概念図。 方形波面スキャンの例を示す図。 1実施形態による波面スキャン方向の例を示す図。 1実施形態による波面スキャン方向の例を示す図。 1実施形態による波面スキャン方向の例を示す図。 1実施形態による波面スキャン方向の例を示す図。 1実施形態による、全順方向直交形状波面スキャン(左下から右上へ45°)の一例を示す図。 1実施形態による、全逆方向直交形状波面スキャン(左下から右上へ45°)の一例を示す図。 1実施形態による、全順方向直交形状波面スキャン(右上から左下へ−135°)の一例を示す図。 1実施形態による、全逆方向直交形状波面スキャン(右上から左下へ−135°)の一例を示す図。 1実施形態による、最後の非ゼロ量子化変換係数までの部分順方向直交形状波面スキャン(左下から右上へ45°)の一例を示す図。 1実施形態による、最後の非ゼロ量子化変換係数から始まる部分逆方向直交形状波面スキャン(左下から右上へ45°)の一例を示す図。 1実施形態による、最後の非ゼロ量子化変換係数までの部分順方向直交形状波面スキャン(右上から左下へ−135°)の一例を示す図。 1実施形態による、最後の非ゼロ量子化変換係数から始まる部分逆方向直交形状波面スキャン(右上から左下へ−135°)の一例を示す図。 1実施形態による、ビデオ・データの直交ブロックのスキャニングを効率的に実行するための技術を実施可能なビデオ・エンコーダの例を示すブロック図。 1実施形態による、ビデオ・データの直交ブロックのエンコードスキャン情報を効率的にデコードするための技術を実施可能なビデオ・デコーダの例を示すブロック図。
本開示の技術は、一部の例において、CABAC(context adaptive entropy coding)、PIPE(probability interval partitioning entropy coding)、または別の状況適応エントロピー・コーディング方法を含む任意の状況適応エントロピー・コーディング方法と共に使用することができる。本開示においては、例示の目的でCABACについて説明するが、本開示に広く記載された技術に関する限定はない。また、一般に、たとえば、ビデオ・データに加えて、他のタイプのデータのコーディングに本技術を適用することができる。
本開示において、「コーディング」という用語は、エンコーダで行われるエンコードまたはデコーダで行われるデコードを指す。同様に、コーダという用語は、エンコーダ、デコーダ、または複合エンコーダ/デコーダ(コーデック)を指す。コーダ、エンコーダ、デコーダおよびコーデックという用語はすべて、本開示に一致するビデオ・データのコーディング(エンコードおよび/またはデコード)のために設計された特定の機械を指す。
本説明を、一部の用語およびデジタル画像圧縮の分野で公知の技術の非常に簡潔な概要から始める。この概要は、公知の技術を詳細に教示することを意図したものではない。当業者は、テキストや関連する規格にさらなる詳細を見つける方法を知っている。
実際の視覚シーンは、時間的に変化する3次元空間にレイアウトされた複数のオブジェクトからなる。色、テクスチャ、照度、位置等のオブジェクト特性は、連続して変化する。デジタル・ビデオは、実際のシーンの空間および時間サンプル表示である。デジタル・ビデオは、周期的な時間間隔で、シーンの2次元映像をセンサにキャプチャすることによって得られる。空間サンプリングは、センサ出力に重畳されるサンプリング・グリッドと一致する点を取ることによって行われる。画素(ピクセル)またはサンプルと呼ばれる各点が、輝度および色を記述する色空間領域からの1組の値によって、対応するセンサ位置の特徴を表す。所与の時間指数における画素2次元配列が、フレームと呼ばれる。図1は、視覚シーンの空間時間サンプリングを示す。
ビデオエンコードシステムは、ビデオ・データの冗長性を除去することにより、たとえば、再現忠実度に悪影響を与えることなく破棄可能なそれらの要素を除去することにより、圧縮を達成する。ビデオ信号が時間および空間で行われるため、大半のビデオエンコードシステムは、これらの信号に存在する時間および空間冗長性を利用する。典型的には、連続するフレーム間に高い時間相関がある。これは、互いに近くにある画素についての空間領域にも当てはまる。したがって、これらの空間時間相関を慎重に利用することにより、高い圧縮ゲインが達成される。
図2は、本開示の技術に一致した、ビデオ・データの直交ブロックの波面スキャニングを効率的に実行するための技術を実施可能な、ビデオエンコードおよびデコードシステム10の例を示すブロック図である。図2に示すように、システム10は、エンコードビデオを宛先デバイス14に通信チャネル16を介して送信するソース・デバイス12を備える。ソース・デバイス12および宛先デバイス14は、広範囲のデバイスのいずれかを含むことができる。場合によっては、ソース・デバイス12および宛先デバイス14は、無線ハンドセット、いわゆるセルラーもしくは衛星無線電話、またはビデオ情報を通信チャネル16(この場合は無線)によって通信可能な任意の無線デバイス等の、無線通信デバイスを含むことができる。
本開示の技術は、必ずしも無線の適用または設定に限定されないことを理解されたい。これらの技術は、一般に、無線テレビ放送、ケーブル・テレビ放送、衛星テレビ放送、ストリーミング・インターネット・ビデオ放送、記憶媒体上にエンコードされ、もしくは記憶媒体から読み出されデコードされたエンコードデジタル・ビデオを含む、エンコードまたはデコードが実行される任意の状況、または他の状況に適用可能である。したがって、通信チャネル16は必要なく、本開示の技術は、エンコードが適用される設定またはデコードが適用される設定に、エンコードデバイスおよびデコードデバイス間のデータ通信なしで、適用可能である。
図2の例では、ソース・デバイス12が、ビデオ・ソース18、ビデオ・エンコーダ20、変調器/復調器(モデム)22、および送信器24を備える。宛先デバイス14は、受信器26、モデム28、ビデオ・デコーダ30、および表示デバイス32を備える。本開示によれば、ソース・デバイス12のビデオ・エンコーダ20および/または宛先デバイス14のビデオ・デコーダ30を、ビデオ・データの直交ブロックの波面スキャニングを実行するための技術を適用するように構成することができる。他の例では、ソース・デバイスおよび宛先デバイスが、他の部品および配置を含むことができる。たとえば、ソース・デバイス12は、外部カメラ等の外部ビデオ・ソース18からビデオ・データを受信することができる。同様に、宛先デバイス14は、一体型表示デバイスを備えるのではなく、外部表示デバイスと接続することができる。
図2の図示したシステム10は、一例にすぎない。ビデオ・データの直交ブロックの波面スキャニングを効率的に実行するための技術を、任意のデジタル・ビデオエンコードおよび/またはデコードデバイスによって実行することができる。一般に、本開示の技術はビデオエンコードデバイスにより実行されるが、典型的には「コーデック(CODEC)」と呼ばれるビデオ・エンコーダ/デコーダにより、技術を実行することもできる。さらに、本開示の技術を、ビデオ・プリプロセッサによって実行してもよい。ソース・デバイス12および宛先デバイス14は、ソース・デバイス12が宛先デバイス14へ送信するためのコーディングビデオ・データを生成する、このようなコーディングデバイスの例にすぎない。一部の例では、デバイス12、14は、デバイス12、14のそれぞれがビデオエンコードおよびデコード部品を備えるように、ほぼ対称に動作することができる。これにより、システム10は、たとえば、ビデオ・ストリーミング、ビデオ再生、ビデオ放送、またはビデオ電話のための、ビデオ・デバイス12、14間の一方向または双方向ビデオ放送を支持することができる。
ソース・デバイス12のビデオ・ソース18は、ビデオ・カメラ、先にキャプチャされたビデオを含むビデオ・アーカイブ、および/またはビデオ・コンテンツ・プロバイダからのビデオ・フィード等のビデオ・キャプチャ・デバイスを備えることができる。さらなる代替例として、ビデオ・ソース18は、コンピュータ・グラフィック・ベースのデータを、ソース・ビデオとして、またはライブ・ビデオ、アーカイブ・ビデオ、およびコンピュータ生成ビデオの組合せとして生成することができる。場合によっては、ビデオ・ソース18がビデオ・カメラであれば、ソース・デバイス12および宛先デバイス14がいわゆるカメラ電話またはビデオ電話を形成することができる。しかしながら、前述したように、本開示に記載された技術は、一般にビデオ・コーディングに適用可能とすることができ、無線および/または有線用途に適用することができる。それぞれの場合に、キャプチャされ、プリキャプチャされ、またはコンピュータ生成されたビデオを、ビデオ・エンコーダ20によりエンコードすることができる。次いで、エンコードビデオ情報を通信規格に従ってモデム22により変調し、送信器24を介して宛先デバイス14に送信することができる。モデム22は、様々なミキサ、フィルタ、増幅器、またはその他の信号変調用に設計された部品を備えることができる。送信器24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データ送信用に設計された回路を備えることができる。
宛先デバイス14の受信器26、たとえば、デコーダは、チャネル16により情報を受信し、モデム28は情報を復調する。再び、前述したビデオエンコード方法は、本明細書に記載された技術の1つまたは複数を実施して、ビデオ・データの直交ブロックの波面スキャニングを効率的に実行することができる。チャネル16により通信される情報は、ビデオ・エンコーダ20により定義されるシンタックス情報を含むことができ、このシンタックス情報は、ビデオ・デコーダ30によっても使用され、ビデオ・データのブロック(たとえば、マクロブロックもしくはエンコードユニット)の特徴および/または処理を記述するシンタックス要素、たとえば、ブロックのスキャニング順序情報、およびその他の情報を含む。表示デバイス32は、デコードビデオ・データをユーザに表示し、ブラウン管(CRT)、液晶ディスプレイ(LCD)、プラズマ・ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプの表示デバイス等の種々の表示デバイスのいずれかを含むことができる。
図2の例では、通信チャネル16が、無線周波数(RF)スペクトラム、または1つまたは複数の物理伝送ライン、または無線および有線媒体の組合せ等の任意の無線または有線通信媒体を備えることができる。通信チャネル16は、ローカル・エリア・ネットワーク、広域ネットワーク、またはインターネット等のグローバル・ネットワーク等のパケットベース・ネットワークの一部を形成することができる。通信チャネル16は、一般に、有線または無線媒体の任意の適切な組合せを含む、ソース・デバイス12から宛先デバイス14へビデオ・データを送信するための任意の適切な通信媒体、または異なる通信媒体の集合体を表す。通信チャネル16は、ルータ、スイッチ、ベース・ステーション、またはソース・デバイス12から宛先デバイス14への通信を促進させるのに有用であり得るその他の機器を備えることができる。他の例では、エンコードデバイスまたはデコードデバイスが、このようなデバイス間の通信なしで、本開示の技術を実施することができる。たとえば、エンコードデバイスは、本開示の技術に一致する、エンコードビットストリームをエンコードし、記憶することができる。あるいは、デコードデバイスは、エンコードビットストリームを受信し、または読み出し、本開示の技術に一致するビットストリームをデコードすることができる。
ビデオ・エンコーダ20およびビデオ・デコーダ30は、ITU−TH.264規格あるいはMPEG−4、Part 10、AVC(Advanced Video Coding)とも呼ばれるビデオ圧縮規格によって動作することができる。しかしながら、本開示の技術は、いかなる特定のコーディング規格にも限定されない。他の例は、MPEG−2、ITU−TH.263、および現在開発中のHEVC(High Efficeincy Video Coding)を含む。一般に、本開示の技術はHEVCに関して説明されるが、これらの技術を他のビデオ・コーディング規格と共に使用してもよいことを理解されたい。図2には示されていないが、一部の態様では、ビデオ・エンコーダ20およびビデオ・デコーダ30が、それぞれオーディオ・エンコーダおよびデコーダと一体化されていてもよく、共通のデータ・ストリームまたは別のデータ・ストリームにおいて音声と映像の両方のエンコードを処理するための適切なMUX−DEMUXユニットまたは他のハードウェアおよびソフトウェアを備えていてもよい。適用可能であれば、MUX−DEMUXユニットが、ITUH.223マルチプレクサ・プロトコル、またはユーザ・データグラム・プロトコル(UDP)等の他のプロトコルに適合することができる。
ビデオ・エンコーダ20およびビデオ・デコーダ30は、それぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、個別論理、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せ等の種々の適切なエンコーダおよびデコーダ回路のいずれかとして実施することができる。ビデオ・エンコーダ20およびビデオ・デコーダ30のそれぞれが、1つまたは複数のエンコーダまたはデコーダに含まれていてもよく、これらのいずれかが、それぞれのカメラ、コンピュータ、モバイル・デバイス、加入者デバイス、放送デバイス、セットトップ・ボックス、サーバ等に、複合エンコーダ/デコーダ(コーデック)の一部として組み込まれていてもよい。
ビデオ・シーケンスは、典型的には、一連のビデオ・フレームを含む。ピクチャ(GOP)のグループは、一般に、一連の1つまたは複数のビデオ・フレームを含む。GOPは、GOPのヘッダ、GOPの1つまたは複数のフレームのヘッダ、または他の場所に、GOPに含まれる多数のフレームを記述するシンタックス・データを含むことができる。各フレームは、それぞれのフレームについてのエンコードモードを記述するフレーム・シンタックス・データを含むことができる。ビデオ・エンコーダ、たとえば、ビデオ・エンコーダ20は、典型的には、ビデオ・データをエンコードするために、個々のビデオ・フレーム内のビデオ・ブロックで動作する。ITU−TH.264規格によれば、ビデオ・ブロックが、マクロブロックまたはマクロブロックの区画に対応することができる。他の規格、たとえば、以下でさらに詳細に説明するHEVCによれば、図3に示すように、ビデオ・ブロックは、コーディング・ユニット(たとえば、最大コーディング・ユニット(LCU))、またはコーディング・ユニットの区画に対応することができる。ビデオ・ブロックは、一定の、または異なるサイズを有することができ、かつ特定のコーディング規格に従ってサイズが異なっていてもよく、たとえば、(LCUサイズに応じて)HEVCについて128×128画素または64×64画素または32×32画素または16×16画素とすることができる。各ビデオ・フレームは、複数のスライス、たとえば、ビデオ・フレームの部分を含むことができる。各スライスは、複数のビデオ・ブロックを含むことができ、これらのビデオ・ブロックは区画に配置され、サブブロックとも呼ばれ得る。
特定のコーディング規格に応じて、ビデオ・ブロックを、16×16、8×8、4×4、2×2等の種々の「N×N」サブブロック・サイズに区画することができる。処理の規則性のためにサブブロッキングを使用することができる。本開示では、「N×N」および「N掛けるN」を同義で使用して、ブロックの画素寸法を垂直寸法および水平寸法に関して、たとえば、16×16画素または16掛ける16画素のように示すことができる。一般に、16×16ブロックは、垂直方向に16画素(y=16)および水平方向に16画素(x=16)を有する。同様に、N×Nブロックは、一般に垂直方向にN画素および水平方向にN画素を有し、Nは非負の整数値を示す。ブロック内の画素を行と列に配置することができる。さらに、ブロックは、必ずしも垂直方向と同一数の画素を水平方向に有する必要はない。たとえば、ブロックは、N×M画素を含むことができ、Mは必ずしもNに等しくない。一例として、ITU−TH.264規格では、16掛ける16画素のサイズのブロックをマクロブロックと呼ぶことができ、16掛ける16画素よりも小さいブロックを16掛ける16マクロブロックの区画と呼ぶことができる。HEVC等の他の規格では、より一般的には、ブロックを、サイズに対して、たとえば、それぞれが一定のサイズではなく異なるサイズを有するコーディング・ユニットおよびその区画として定義することができる。
ビデオ・ブロックは、たとえば、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換等の変換を、所与のビデオ・ブロックについての残差データに適用するのに続いて、画素領域の画素データのブロック、または変換領域の変換係数のブロックを含むことができ、残差データが、ブロックについてのビデオ・データとブロックについて生成された予測データとの画素差を表す。場合によっては、ビデオ・ブロックが、変換領域の量子化変換係数のブロックを含むことができ、所与のビデオ・ブロックについての残差データへの変換の適用に続いて、これにより生じる変換係数も量子化される。
量子化により、信号が取ることのできる値の範囲が減少するため、信号をより少ないビットで表すことができる。一部の実施形態では、外部境界条件を使用して、修正された1つまたは複数の変換係数を生成する。たとえば、変換係数が非ゼロ値であるか、ちょうどゼロであるかを判定する際に、より低い範囲または値を使用することができる。ビデオエンコードにおいて、量子化は損失を導入する工程であるため、ビットレートと再構成品質とのバランスを確立することができる。
ブロック区画は、ブロックベースのビデオ・コーディング技術において重要な目的を果たす。ビデオ・データをコーディングするためにより小さいブロックを使用すると、高い詳細度を有するビデオ・フレームの位置についてのデータをより良好に予測することができ、したがって、結果として生じる、残差データとして表されるエラー(たとえば、ソース・ビデオ・データからの予測データの偏差)を減少させることができる。一般に、予測は、種々の寸法のサンプル・ブロック間の相関をモデリングすることにより、ビデオ・シーケンスの空間または時間冗長性を利用して、実信号と予測信号とのわずかな差のみをエンコードする必要があるようにする。現在のブロックについての予測が、すでにエンコードされたサンプルから生成される。しかしながら、このような技術は、残差データを減少させる可能性はあるが、より小さいブロックがビデオ・フレームに対してどのように区画されるかを示すさらなるシンタックス情報を必要とし、コーディングビデオ・ビットレートを増加させ得る。したがって、一部の技術では、ブロック区画が、残差データの望ましい減少と、結果として生じる、さらなるシンタックス情報によるコーディングビデオ・データのビットレートの増加とのバランスに依存し得る。
一般に、ブロックおよびその種々の区画(たとえば、サブブロック)は、ビデオ・ブロックと考えられる。加えて、スライスは、複数のビデオ・ブロック(たとえば、マクロブロックまたはエンコードユニット)、および/またはサブブロック(マクロブロックまたはサブエンコードユニット)と考えられる。各スライスは、ビデオ・フレームの、独立して復号可能なユニットであってもよい。あるいは、フレーム自体が復号可能ユニットであってもよく、またはフレームの他の部分を復号可能ユニットとして定義してもよい。さらに、シーケンスとも呼ばれるGOPを復号可能ユニットとして定義してもよい。
前述したように、現在HEVC(High Efficiency Video Coding)と呼ばれる新しいビデオ・コーディング規格の策定が、現在進行中である。新たなHEVC規格をH.265と呼ぶこともできる。規格化の試みは、HEVC試験モデル(HM)と呼ばれるビデオ・コーディングデバイスのモデルに基づく。HMは、たとえば、ITU−TH.264/AVCによるデバイスを超えるビデオ・コーディングデバイスの複数の機能を推定している。たとえば、H.264は9個のイントラ予測エンコードモードを提供するが、HMは、たとえば、ブロックのサイズがイントラ予測コーディングされることに基づいて、35個ものイントラ予測エンコードモードを提供する。
一般に、イントラ予測エンコードにおいて、フレームの隣接ブロック間に、高レベルの空間相関が存在する。結果として、ブロックを、隣接するエンコードされ再構成されたブロックから予測することができ、イントラ予測を生じさせる。一部の実施形態では、現在のブロックの上および左に位置する先にエンコードされたサンプルの加重平均により、予測を形成することができる。エンコーダは、オリジナルと予測との差を最小限にするモードを選択することができ、この選択を制御データで伝える。
HMは、コーディング・ユニット(CU)としてのビデオ・データのブロックを指す。CUは、種々のコーディングツールが圧縮のために適用される基本単位として機能する画像領域を指すことができる。H.264では、CUはマクロブロックとも呼ばれる。ビットストリーム内のシンタックス・データが、画素数に関して最大CUである最大コーディング・ユニット(LCU)を定義することができる。一般に、CUは、CUにサイズの区別がないことを除いて、H.264のマクロブロックと同様の目的を有する。したがって、図4に示すように、CUを区画し、サブCUに「分割」することができる。
LCUがどのように区画されるかを示す図5に示されるように、LCUを4分木データ構造に関連させることができる。すなわち、ノードがさらにサブノードに分割される場合、4分木の各ノードにビット「1」が割り当てられ、そうでない場合にはビット「0」が割り当てられる。たとえば、図4のLCU区画を、図5に示す4分木で表すことができる。バイナリ・データ10100の4分木表示をコーディングして、オーバヘッドとして送信することができる。
一般に、4分木データ構造は、LCUのCUごとに1つのノードを含み、ここでは根ノードがLCUに対応し、他のノードがLCUのサブCUに対応する。所与のCUが4つのサブCUに分割された場合、分割CUに対応する4分木のノードは、それぞれサブCUの1つに対応する4つの子ノードを含む。4分木データ構造の各ノードが、対応するCUのためのシンタックス情報を提供することができる。たとえば、4分木のノードは、ノードに対応するCUが4つのサブCUに分割されるか否かを示す、CUの分割フラグを有することができる。所与のCUについてのシンタックス情報は、再帰的に定義され得、CUがサブCUに分割されるか否かに依存し得る。
分割されないCU(たとえば、所与の4分木の終端または「葉」ノードに対応するCU)は、1つまたは複数の予測ユニット(PU)を含むことができる。一般に、PUは、対応するCUの全部または一部を表し、CUの予測を実行する目的でPUの基準サンプルを読み出すためのデータを含む。たとえば、CUがイントラモードエンコードされているときには、PUが、PUのイントラ予測モードを記述するデータを含むことができる。別の例として、CUがインターモードエンコードされているときには、PUが、PUの動きベクトルを定義するデータを含むことができる。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4画素精度または1/8画素精度)、動きベクトルが指す基準フレーム、および/または動きベクトルの基準リスト(たとえば、リスト0またはリスト1)を記述することができる。CUの1つまたは複数のPUを定義するCUのデータは、たとえば、CUの1つまたは複数のPUへの区画を記述することもできる。区画モードは、CUが、コーディングされていないか、イントラ予測モードエンコードされているか、インター予測モードエンコードされているかによって異なっていてもよい。CUごとの4つの考えられる区画を示す例が、図6に示される。
現在のHEVC規格では、PUごとに、水平、垂直、45度斜め、135度斜め、DC等を含む35個の空間予測方向またはモードがある。一般に、シンタックスを使用してPUごとの空間予測を示す。
一般に、インター予測エンコードでは、ビデオ・シーケンスはフレーム間の高い時間相関を有し、現在のフレームのブロックを、基準フレームとして知られる先のフレームの領域によって正確に記述することができる。インター予測は、先にエンコードされ再構成された基準フレームを使用して、ブロックベースの動き推定および補償技術を使用した予測を展開させる。
また、1つまたは複数のPUを有するCUは、図7に示すように、1つまたは複数の変換ユニット(TU)を含むこともできる。前述したように、1つまたは複数のPUを使用するCUの予測に続いて、ビデオ・エンコーダは、1つまたは複数のPUに対応するCUの各部分について1つまたは複数の残差ブロックを算出することができる。残差ブロックは、CUについてのビデオ・データと1つまたは複数のPUについての予測データとの画素差を表すことができる。1組の残差値を変換、スキャン、および量子化して、1組の量子化変換係数を定義することができる。図8に示すように、TUは、CUを参照して前述した4分木データ構造とほぼ同様の変換係数についての区画情報を示す区画データ構造を定義することができる。
他のビデオ・コーディング規格と同様に、HEVCは、残差データにブロック変換を適用して、ブロック内の画素の相関を失わせ、ブロック・エネルギーを下位変換係数に圧縮する。しかしながら、単一の4×4または8×8変換をマクロブロックに適用する規格とは異なり、HEVCは、異なるサイズの1組のブロック変換を単一のCUに適用することができる。CUに適用される1組のブロック変換は、その関連TUによって表される。したがって、TUは必ずしもPUのサイズに限定されず、たとえば、TUは同一のCUについて対応するPUよりも大きいか、または小さくてもよいことを理解されたい。一部の例では、TUの最大サイズが、対応するCUのサイズに対応していてもよい。一般に、TUは、何のブロック変換をCU区画に適用すべきであるかを示し、ここでは各ブロック変換の範囲が各TUの位置およびサイズによって定義される。特定のCUに関連するTUの構成が、種々の基準に基づいて異なっていてもよい。
一例では、CUに対応する残差サンプルを、「残差4分木」(RQT)として知られる4分木構造を使用して、より小さいユニットに細分化することができる。図8に示すように、RQT表示11000をコーディングして、オーバヘッドとして送信することができる。この場合、RQTの葉ノードをTUと呼ぶことができ、このTUについて、対応する残差サンプルを変換し量子化することができる。
予測データおよび残差データを生成するためのイントラ予測またはインター予測エンコード、および変換係数を生成するための任意の変換(H.264/AVCで使用される4×4もしくは8×8整数変換、または離散コサイン変換(DCT)等)に続いて、変換係数の量子化を実行することができる。一般に、量子化は、たとえば、高精度変換係数を考えられる値の有限数に変換することにより、変換係数を量子化して、係数を表すために使用されるデータの量を場合によって減少させる方法を指す。量子化方法は、係数の一部または全部に関連するビット深さを減少させることができる。たとえば、量子化中に、nビット値を切り捨てによってmビット値に丸めることができ、ここでnはmよりも大きい。理解されるように、量子化は損失の多い操作であり、量子化による損失は、一般に、回復することができない。
量子化に続いて、量子化データ(たとえば、量子化変換係数)のエントロピー・コーディングを実行することができる。エントロピー・コーディングは、ビデオ・データの直交ブロックのスキャニングを効率的に実行することに関して本開示の技術に適合することができ、かつCAVLC(context adaptive variable length coding)、CABAC、PIPE、もしくは別のエントロピー・コーディング方法等の他のエントロピー・コーディング技術を使用することもできる。たとえば、量子化変換係数の大きさおよび対応する記号(たとえば、「+1」または「−1」)で表される係数値を、エントロピー・コーディング技術を使用してエンコードすることができる。
前述した予測、変換、および量子化を、特定のコーディング規格に応じて、ビデオ・データの任意のブロック、たとえば、CUのPUおよび/もしくはTU、またはマクロブロックに対して実行することができることに注目されたい。したがって、ビデオ・データの直交ブロックのスキャニングを効率的に実行することに関する本開示の技術を、ビデオ・データの任意の直交ブロック、たとえば、マクロブロックまたはCUのTUを含む量子化変換係数の任意の直交ブロックに適用することができる。さらに、ビデオ・データのブロック(たとえば、マクロブロック、またはCUのTU)は、対応するビデオ・データの輝度成分(Y)、第1のクロミナンス成分(U)、および第2のクロミナンス成分(V)のそれぞれを含むことができる。このようにして、本開示の技術を、ビデオ・データの所与の直交ブロックのY、U、およびV成分のそれぞれについて実行することができる。
前述したようにビデオ・データのブロックをエンコードするために、所与のブロック内の有意係数の位置に関する情報を生成し、エンコードすることもできる。続いて、前述したように、有意係数の値をエンコードすることができる。H.264/AVCおよび新たなHEVC規格では、状況適応エントロピー・コーディング方法、たとえばCABAC方法を使用するときに、ビデオ・データのブロック内の有意係数の位置を、有意係数の値をエンコードする前にエンコードすることができる。ブロック内のすべての有意係数の位置をエンコードする方法は、有意性マップ(SM)エンコードと呼ぶこともできる。以下でより詳細に説明する図9A〜9Cは、量子化変換係数および対応するSMデータのの4×4ブロックの例を示す概念図である。量子化変換係数および対応するSMデータの4×4ブロックは、本開示の技術として、単に例の目的で示されたものであり、一般に、ビデオ・データの直交ブロックのスキャニングを効率的に実行することに関することを理解されたい。
典型的なSMエンコード手順は、以下のように説明することができる。ビデオ・データの所与のブロックについて、ブロック内に少なくとも1つ有意係数がある場合にのみ、SMをエンコードすることができる。ビデオ・データの所与のブロック内の有意係数の存在を、ビデオ・データの画素領域に関連する1組のブロック(輝度およびクロミナンス・ブロック)についてコーディングされたバイナリ値である、コーディングブロック・パターンで(たとえば、シンタックス要素「coded_block_pattern」またはCBPを使用して)示すことができる。CBPの各ビットはコーディングブロック・フラグ(たとえば、シンタックス要素「coded_block_flag」に対応する)と呼ばれ、対応するブロック内に少なくとも1つの有意係数があるか否かを示すために使用される。言い換えると、コーディングブロック・フラグは、変換係数の単一のブロック内に有意係数があるか否かを示す1ビット・シンボルであり、CBPは、1組の関連するビデオ・データ・ブロックのための1組のコーディングブロック・フラグである。
コーディングブロック・フラグが、対応するブロック内に有意係数がないことを示す(たとえば、フラグが「0」である)場合、ブロックについてさらなる情報をエンコードすることができない。しかしながら、コーディングブロック・フラグが、対応するブロック内に少なくとも1つの有意係数が存在することを示す(たとえば、フラグが「1」である)場合、ブロックに関連する係数スキャニング順序をたどることにより、SMをブロックについてエンコードすることができる。一部の実施形態では、有意係数は非ゼロの量子化変換係数を含むことができる。スキャン順序は、ブロック内の各係数の有意性がSMエンコードの一部としてエンコードされる順序を定義することができる。一部の実施形態では、有意係数が非ゼロの量子化変換係数を含むことができる。言い換えると、スキャニングは、係数の2次元ブロックを1次元表示に直列化して、係数の有意性を判定することができる。
異なるスキャニング順序、たとえばジグザグが、従来使用されている。以下でより詳細に説明する図10は、ビデオ・データの8×8ブロックに対して従来使用されている種々のスキャニング順序の一部の例を示す。ビデオ・データの8×8ブロックは、本開示の技術として、単に例の目的で示されたものであり、一般に、ビデオ・データの直交ブロックのスキャニングを効率的に実行することに関することを理解されたい。
少なくとも1つの有意係数が所与のブロック内に存在することを示すコーディングブロック・フラグ、およびブロックについてのスキャニング順序を与えられると、ブロックについてのSMを以下のようにエンコードすることができる。量子化変換係数の2次元ブロックを、スキャニング順序を使用して、最初に1次元配列にマッピングすることができる。配列内の各係数について、スキャニング順序に従って、1ビット有意係数フラグ(たとえば、シンタックス要素「significant_coeff_flag」に対応する)をエンコードすることができる。すなわち、配列内の各位置にバイナリ値が割り当てられ、バイナリ値は、対応する係数が有意である場合に「1」に設定され、対応する係数が非有意である(たとえばゼロである)場合に「0」に設定され得る。
所与の有意係数フラグが、対応する係数が有意であることを示す「1」である場合、さらなる1ビットの最後の有意係数フラグ(たとえば、シンタックス要素「last_significant_coeff_flag」に対応する)をエンコードすることもでき、対応する係数が、配列内(たとえば、スキャニング順序が与えられたブロック内)の最後の有意係数であるか否かを示すことができる。すなわち、対応する係数が配列内の最後の有意係数である場合には、各最後の有意係数フラグを「1」に、そうでない場合には「0」に設定することができる。このようにして最後の配列位置に到達し、SMエンコード方法が、「1」である最後の有意係数フラグによって終わらない場合には、配列の最後の係数(および、これによりスキャン順序が与えられたブロック)を有意であると推測することができ、最後の有意係数フラグを最後の配列位置についてエンコードすることができない。
図9B、9Cは、図9Aに示すブロックについてのSMデータに対応する、1組の有意係数フラグおよび最後の有意係数フラグそれぞれの例を、配列形式ではなくマップで示した概念図である。前述したように、他の例では、有意係数フラグおよび最後の有意係数フラグを、異なる値に設定することができる(たとえば、有意係数フラグを、対応する係数が有意である場合には「0」に、非有意である場合には「1」に設定することができ、最後の有意係数フラグを、対応する係数が最後の有意係数である場合には「0」に、最後の有意係数でない場合には「1」に設定することができる)ことに注目されたい。
前述したように、SMがエンコードされた後、ブロック内の各有意係数の値(たとえば、シンタックス要素「coeff_abs_level_minus1」および「coeff_sign_flag」のそれぞれにより示される各有意係数の大きさおよび記号)をエンコードすることもできる。
図9A〜9Cは、ビデオ・データのブロックおよび対応する有意係数位置情報および最後の有意係数位置情報のブロックの例を示す概念図である。
図9Aに示すように、ビデオ・データのブロック、たとえば、マクロブロック、またはCUのTUは、量子化変換係数を含むことができる。たとえば、図9Aに示すように、ブロック400は、前述した予測、変換、および量子化技術を使用して生成した量子化変換係数を含むことができる。本例について、ブロック400が2N×2Nのサイズを有し、Nが2であると仮定する。したがって、ブロック400は4×4のサイズを有し、図9Aに示すように16個の量子化変換係数を含む。以下でより詳細に説明する図10に示すように、ブロック400に関連するスキャニング順序がジグザグ・スキャニング順序であるとさらに仮定する。本例では、ジグザグ・スキャニング順序によるブロック400内の最後の有意係数が、ブロック400内の位置406にある、「1」である量子化変換係数である。
図9Bは、有意係数フラグ・データ、たとえば、前述したマップまたはブロック形式で表される有意係数フラグの例を示す。図9Bの例では、ブロック402が、図9Aに示すブロック400に対応することができる。言い換えると、ブロック402の有意係数フラグは、ブロック400の量子化変換係数に対応することができる。図9Bに示すように、「1」であるブロック402の有意係数フラグは、ブロック400の有意係数に対応する。同様に、「0」であるブロック402の有意係数フラグは、ブロック400のゼロまたは非有意係数に対応する。本例では、ジグザグ・スキャニング順序によるブロック400内の最後の有意係数に対応するブロック402の有意係数フラグが、ブロック402内の位置408に位置する、「1」である有意係数フラグである。
図9Cは、最後の有意係数フラグ・データ、たとえば、前述したマップまたはブロック形式で表される最後の有意係数フラグの例を示す。図9Cの例では、ブロック404が、図9Aおよび図9Bに示すブロック400およびブロック402にそれぞれ対応することができる。言い換えると、ブロック404の最後の有意係数フラグが、ブロック400の量子化変換係数、およびブロック402の有意係数フラグに対応することができる。図9Cに示すように、ジグザグ・スキャニング順序によれば、ブロック404内の位置410に位置する、「1」であるブロック404の最後の有意係数フラグは、「1」であるブロック400の最後の有意係数およびブロック402の有意係数フラグの最後の1つに対応する。いずれの場合にも、ブロック402の有意係数フラグおよびブロック404の最後の有意係数フラグを、まとめてブロック400についてのSMデータと呼ぶことができる。
前述したように、図9Bに示すブロック402に表されるように、ブロックに関連するスキャニング順序を使用して、ブロックについての有意係数フラグを、2次元ブロック表示から1次元配列に直列化することにより、ビデオ・データのブロックについての有意係数位置情報を示すことができる。図9A、9Bに示すブロック400〜402の例では、再びジグザグ・スキャニング順序を想定し、ブロック402の有意係数フラグ1次元配列に直列化することにより、ブロック400についての有意係数位置情報を示すことができる。すなわち、ブロック400の有意係数位置情報を、ジグザグ・スキャニング順序により、ブロック402の有意係数フラグのシーケンスを生成することによって示すことができる。
本例では、生成したシーケンスが、ジグザグ・スキャニング順序によるブロック402の最初の6個の有意係数フラグを表す値「111111」に対応することができる。ジグザグ・スキャニング順序の最初のブロック位置(たとえば、DC位置または最上部左端角)から始まり、ジグザグ・スキャニング順序によるブロック400の最後の有意係数に対応するブロック位置(たとえば、「1」であるブロック404の最後の有意係数フラグに対応する)で終わる、ブロック400内のブロック位置の範囲に対応する有意係数フラグを、生成したシーケンスが含むことができることに注目されたい。
前述したように、図9Cに示すブロック404に表されるように、ブロックに関連するスキャニング順序を使用して、ブロックについての最後の有意係数フラグを、2次元ブロック表示から1次元配列に直列化することにより、ブロックについての最後の有意係数位置情報を示すことができる。図9A〜9Cに示すブロック400〜404の例では、再びジグザグ・スキャニング順序を想定し、ブロック404の最後の有意係数フラグを1次元配列に直列化することによって、ブロック400についての最後の有意係数位置情報を示すことができる。すなわち、ジグザグ・スキャニング順序により、ブロック404の最後の有意係数フラグのシーケンスを生成することによって、ブロック400についての最後の有意係数位置情報を示すことができる。本例では、生成したシーケンスが、ジグザグ・スキャニング順序によるブロック404の最初の6個の最後の有意係数フラグを表す値「000001」に対応することができる。
図10は、従来のジグザグ・スキャニング順序を使用してスキャンされたビデオ・データのブロックの例を示す概念図である。図10に示すように、ビデオ・データの8×8ブロック、たとえば、マクロブロック、またはCUのTUが、円で示される対応するブロック位置内の64個の量子化変換係数を含むことができる。たとえば、ブロック500が、前述した予測、変換、および量子化技術を使用して生成した64個の量子化変換係数を含むことができ、再び、ここでは各対応するブロック位置が円で示される。本例について、ブロック500が2N×2Nサイズを有し、Nが4であると仮定する。したがって、ブロック500は、8×8のサイズを有する。
図10に示すように、ブロック500に関連するスキャニング順序は、従来のジグザグ・スキャニング順序である。ジグザグ・スキャニング順序は、図10に矢印で示すように、ブロック500の量子化変換係数を斜めにスキャンする。
図11は、ジグザグ・スキャニング順序を使用してスキャンされたビデオ・データのブロックのさらなる例を示す概念図である。図11に示すように、ブロック600が、矢印で示すように、かつ図10を参照して前述したように、ジグザグ・スキャニング順序により0〜15に順序付けされた16個のブロック位置を含むことができる。16個のブロック位置のそれぞれが、図9Aを参照して前述したように、量子化変換係数を含むことができる。図11に示すように、ジグザグ・スキャニング順序によるブロック600内の第1および第2の位置は、位置「0」および「1」に対応し、それぞれ共通位置606および共通位置608と呼ぶことができる。一部の例では、共通位置606、608の1つまたは複数が、別のスキャニング順序によるビデオ・データの別のブロック内の第1および第2のブロック位置に一致することができる。
図10および11で前述し図示したように、ビデオ・データのブロックは、ジグザグ・パターンを使用してスキャンされ、これにより各ブロック位置が斜めにスキャンされ、次いで、対角線の端部に到達すると、スキャンが方向を変え、第2の対角線の端部に到達するまで続けられる。第2の対角線の端部に到達したときに、スキャンは再び方向を変える等する。このジグザグ・スキャンはビデオ・データの各ブロックをキャプチャするが、各ブロックが前のブロックのスキャンが終わるのを待たなければならないため、完全スキャンはいくぶん遅くなる。たとえば、ブロック612は、ブロック610がスキャンされるのを待たなければならず、ブロック610はブロック608がスキャンされるのを待たなければならず、ブロック608はブロック606がスキャンされるのを待たなければならない。結果として、ブロック600内のすべてのブロックをスキャンする時間は、少なくとも個々のブロック606、608、610等をスキャンするのにかかる時間の合計となる。したがって、後に続く各ブロックについては前のブロックへの依存性がある。その結果、ジグザグ・スキャンを使用する、データの並行処理または並行データ収集は不可能である。
図12に示すように、方形波面スキャンまたは固定斜めスキャンがHEVCに導入されている。本願明細書に援用する、ヴィ ズィー(V.Sze)およびエム ブダガヴィ(M.Budagavi)、「CE11:Parallelization of HHI_TRANSFORM_CODING(Fixed Diagonal Scan from C227)」、JCTVC−F129、July 2011を参照されたい。従来のジグザグ・スキャンを使用するのではなく、たとえば、CABACを使用するときに、すべてのスキャン・ラインが同一の斜めスキャン方向を有する。このスキャンの利点は、先にデコードされたデータ・ブロックまたはビンへの依存性がなくなることである。これまで、図12に示すように、波面スキャンは方形ブロックのみに限定されている。
前述したように、HEVCの利点の1つは、ビデオ・ブロックが、コーディング・ユニット、たとえば、LCU、またはコーディング・ユニットの区画に対応することができ、サイズによって限定されないことである。これが望ましいのは、図1に示すように、フレームがしばしば直交形状であるか、または垂直方向にN画素、水平方向にM画素あり、NおよびMが等しくない非負の整数値を有するN×Mを特徴とするからである。たとえば、さらに図1を参照すると、Nは8であり、Mは12である。
一般に、フレームが直交であると、その区画またはサブブロックも直交になる可能性がある。HEVCでは直交PUを使用することができ、これは、一般に、直交PUが直交オブジェクトについてより良好な予測を有するためである。同様に、直交変換を直交または方形予測残差のより良好な圧縮のために使用することができる。したがって、並行データ収集を使用可能な直交サブブロックについての効果的なスキャニング・パターンが望ましい。
さらに、HEVCのより高いコーディング効率を達成するために、直交変換が最近提案されている。このより高いコーディング効率のための1つの考えられる説明は、直交変換が残差コーディングのより多くの選択肢を与えることができることである。たとえば、エンコーダが、所与のまたは所定の基準に従って、方形変換を使用すべきか、直交変換を使用すべきかを適応的に選択して、より高い圧縮効率を達成可能にすることができる。たとえば、本願明細書に援用する、ワイ ユエン(Y.Yuan)、エックス ジュヨン(X.Zheng)、エックス プオン(X.Peng)、ジェイ シュイ(J.Xu)、エル リウ(L.Liu)、ワイ ワーン(Y.Wang)、エックス ツァオ(X.Cao)、シー ライ(C.Lai)、ジェイ ジュヨン(J.Zheng)、ワイ ホーァ(Y.He)、およびエイチ ユイ(H.Yu)、「CE2:Non−Square Quadtree Transformfor symmetric motion partitions」、JCTVC−F410、July 2011、ワイ ユエン(Y.Yuan)、エックス ジュヨン(X.Zheng)、エックス プオン(X.Peng)、ジェイ シュイ(J.Xu)、ワイ ケー キム(I.−K Kim)、エル リウ(L.Liu)、ワイ ワーン(Y.Wang)、エックス ツァオ(X.Cao)、シー ライ(C.Lai)、ジェイ ジュヨン(J.Zheng)、ワイ ホーァ(Y.He)、およびエイチ ユイ(H.Yu)、「CE2:Non−Square Quadtree Transform for symmetric and asymmetric motion partitions」、JCTVC−F412、July 2011、ならびにエル グオ(L.Guo)、ジェイ ソール(J.Sole)、アール ジョシ(R.Joshi)、ピー チェン(P.Chen)、エックス ワーン(X.Wang)、およびエム カルツェウィッツ(M.Karczewicz)、「Non−Square Transform for 2NxN and Nx2N Motion Partitions」、JCTVC−F563、July 2011を参照されたい。
結果として、すべてのスキャン・ラインが同一のスキャン方向である直交変換のための波面スキャンを使用することが提案される。波面スキャンのスキャン方向は、任意の角度θとすることができる。図13A〜13Dは、θが0°、45°、−90°および−135°の場合の直交ブロックまたはサブブロックの効果的なスキャニングを可能にする、このような例のスキャン・パターンを示す。
直交形状波面スキャンの4つの特定の変化は以下のように示される。図14は、各スキャン・ライン上の量子化変換係数が左下から右上へ処理される、45°のスキャン方向の全順方向直交形状波面スキャンの例を示す。図15は、各スキャン・ライン上の量子化変換係数が左下から右上へ処理される、45°のスキャン方向の全逆方向直交形状波面スキャン・パターンの例を示す。図16は、各スキャン・ライン上の量子化変換係数が右上から左下へ処理される、−135°のスキャン方向の全順方向直交形状波面スキャンの例を示す。図17は、各スキャン・ライン上の量子化変換係数が右上から左下へ処理される、−135°のスキャン方向の全逆方向直交形状波面スキャンの例を示す。
図14〜17を検討すると、各スキャン・ラインが比較的独立し、たとえば、前のスキャン・ラインからの依存性が小さいことが明らかであろう。比較的小さいものであり得るが、いくらかの遅れがあることを理解されたい。このような遅れは、各ライン間の依存性が小さいことによるものであり得るが、しかしながら、遅れは、他のスキャン、たとえばジグザグと比べると小さいものであり得る。結果として、各ラインをほぼ同時にスキャンすることができ、このことは、データ・ブロック・データを処理するのに必要な全時間が、単一のスキャン・ラインを、たとえば、いくらかの遅れを伴ってスキャンするのにかかる時間の長さの関数であり得ることを意味する。しかしながら、第1のスキャン・ラインのスキャン開始後に第2のスキャン・ラインのスキャンを開始して、第2のラインのブロックにすぐ隣接または近接するブロックが、第1のスキャン・ラインですでにスキャンされているようにすることが望ましくあり得るため、制限があり得る。たとえば、順方向スキャン、たとえば、波面またはジグザグについては、すぐ右の位置の状況モデリングのために使用可能であるため、左隣を最初にデコードすることが望ましくあり得る。同様に、逆方向スキャンについては、すぐ右の位置の状況モデリングのために使用可能であるため、右隣を最初にデコードすることが望ましくあり得る。複数のラインをほぼ同時に、たとえばいくらか並行してスキャンすることにより、エントロピーエンコードにおいてより高い読み取り速度を達成することができることを理解されたい。加えて、少なくとも一部には、スキャンされたデータの並行処理によって、計算複雑性効率を高めることができる。
一般に、TU内の高周波変換係数は、DCまたは低周波変換係数よりも小さいエネルギーを有する。一般に、たとえば、変換係数についての高周波および低周波数は、相対概念である。高周波数は、より急速に変化する周波数成分を意味し、低周波数は、よりゆっくりと変化する周波数成分を意味する。すなわち、変換(たとえばDCT)後のビデオ圧縮において、DCは左上位置(0、0位置)の成分である。低周波数は左上角の成分であり、高周波数は右下角の成分である。
別の方法で説明すると、離散信号処理(DSP)において、空間領域のN×Mサンプルのブロックが、しばしば変換領域のN×M係数のブロックに変換される。各変換係数は、ブロックについてのある周波数でのエネルギーを表す。自然ビデオ・ピクチャのブロックは、しばしば、低周波数のエネルギーをより多く、高周波数のエネルギーをより少なく有する。このため、自然ビデオ・ピクチャのブロックについて、大きい低周波係数および小さい高周波係数がしばしば見られる。
したがって、詳細に前述したように、量子化後に多くの高周波係数が0になる。十分に設計されたエントロピー・コードは、しばしば、この量子化変換係数の特徴を利用する。一部の実施形態では、最後の非ゼロの量子化変換係数が、順方向スキャンの意味で特定されると想定することができる。これは、図9の説明で前述した有意係数フラグを使用して達成することができる。
順方向スキャンを使用する場合、最後の非ゼロの量子化係数が生成されると、スキャン・パスに沿ったさらなるコーディングは必要なくなる。一方、逆方向または後方向スキャンを使用する場合、コーディングが最後の非ゼロの係数から始まり得る。特定の(順方向または後方向)スキャンについて最後の非ゼロの係数の位置情報を、異なる方法を使用してコーディングすることができる。たとえば、last_significant_coeff_flat等のフラグを使用して、非ゼロの係数が最後か否かを示すことができる。あるいは、本願明細書に援用する、ジェイ ソール(J.Sole)、アール ジョシ(R.Joshi)、エム カルツェウィッツ(M.Karczewicz)、「CE11:Parallel Context Processing for the significance map in high coding efficiency」、JCTVC−E338、March 2011に記載されているように、最後の非ゼロの係数の座標、last_significant_coeff_xおよびlast_significant_coeff_yをコーディングすることができる。
最後の非ゼロの量子化変換係数で終わる、または始まる直交形状波面スキャンの4つの特定の変化は、以下のように表される。図18は、各スキャン・ライン上の量子化変換係数が左下から右上へ処理される、45°のスキャン方向の部分順方向直交形状波面スキャンの例を示す。本例では、方法は、最後の非ゼロの量子化変換係数で停止する。図19は、各スキャン・ライン上の量子化変換係数が左下から右上へ処理される、45°のスキャン方向の部分逆方向直交形状波面スキャン・パターンの例を示す。本例では、方法が最後の非ゼロの量子化変換係数から始まる。図20は、各スキャン・ライン上の量子化変換係数が右上から左下へ処理される、−135°のスキャン方向の部分順方向直交形状波面スキャンの例を示す。本例では、方法が、最後の非ゼロの量子化変換係数で停止する。図21は、各スキャン・ライン上の量子化変換係数が右上から左下へ処理される、−135°のスキャン方向の部分逆方向直交形状波面スキャンの例を示す。本例では、方法が、最後の非ゼロの量子化変換係数から始まる。
図14〜17および18〜21の比較により、主な差は、図18〜21が最後の非ゼロの量子化変換係数までスキャンするのみであるか、または最後の非ゼロの量子化変換係数でスキャニングを開始するかであることが明らかになる。結果として、図18〜21は、一般に、スキャンしコーディングする係数がより少なく、図14〜17にわたって高い効率(たとえば、ビット保存)を提供することを理解されたい。
異なるサイズの直交ブロックにおけるスキャン指数と係数の座標とのマッピングを示すテーブル1〜12が、以下に示される。他の例では、ブロックが、テーブル1〜12に挙げたブロックのサイズよりも小さいかまたは大きいサイズを有することができ、より多いまたは少ない量子化変換係数および対応するブロック位置を有することができる。このような例では、ブロックに関連するスキャニング順序が、図14〜17および18〜21の直交ブロックの例に示すものとほぼ同様の方法で、ブロックの量子化変換係数をスキャンすることができ、たとえば、ブロックを、前述したスキャニング順序のいずれかに従ってスキャンすることができる。
全8×2波面スキャン・パターンの例
全2×8波面スキャン・パターンの例
全8×4波面スキャン・パターンの例
全4×8波面スキャン・パターンの例
全16×4波面スキャン・パターンの例
全4×16波面スキャン・パターンの例
全16×8波面スキャン・パターンの例
全8×16波面スキャン・パターンの例
全32×8波面スキャン・パターンの例
全8×32波面スキャン・パターンの例
全32×16波面スキャン・パターンの例
全16×32波面スキャン・パターンの例
このようにして、本開示の技術により、ビデオ・エンコーダ20および/またはビデオ・デコーダ30は、他の方法を使用するときよりも効率的に、直交ブロックの波面スキャンを実行することができるようになる。このようにして、本開示の技術を使用したとき、並行処理機能に対応するかなりの時間節約があり得る。
ビデオ・エンコーダ20およびビデオ・デコーダ30は、それぞれ、可能な場合には、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、離散論理回路、ソフトウェア、ハードウェア、ファームウェア、またはこれらの組合せ等の種々の適切なエンコーダまたはデコーダ回路のいずれかとして実施され得る。ビデオ・エンコーダ20およびビデオ・デコーダ30のそれぞれは、複合ビデオ・エンコーダ/デコーダ(コーデック)の一部として組み込み可能な1つまたは複数のエンコーダまたはデコーダに含まれてもよい。ビデオ・エンコーダ20および/またはビデオ・デコーダ30を備えた装置は、集積回路、マイクロプロセッサ、および/または携帯電話等の無線通信デバイスを含むことができる。
図22は、本開示の技術に一致する、ビデオ・データの直交ブロックのスキャニングを効率的に実行するための技術を実施可能なビデオ・エンコーダ20の例を示すブロック図である。ビデオ・エンコーダ20は、マクロブロック、CU、および区画またはそのサブ区画を含む、ビデオ・フレーム内のブロックのイントラおよびインターコーディングを実行することができる。イントラコーディングは空間予測に依拠して、所与のビデオ・フレーム内のビデオの空間冗長性を低減させ、または除去する。インターコーディングは時間予測に依拠して、ビデオ・シーケンスの隣接するフレーム内のビデオの時間冗長性を低減させ、または除去する。イントラモード(Iモード)は、複数の空間ベース圧縮モード、および1方向予測(Pモード)または双方向予測(Bモード)等のインターモードのいずれかを指すことができ、複数の時間ベース圧縮モードを指すことができる。
図22に示すように、ビデオ・エンコーダ20は、エンコードするビデオ・フレーム内のビデオ・データの現在のブロックを受信する。図22の例では、ビデオ・エンコーダ20が、動き補償ユニット44、動き推定ユニット42、メモリ64、アナログ加算器50、変換モジュール52、量子化ユニット54、およびエントロピーエンコードユニット56を備える。ビデオ・ブロック再構成のために、ビデオ・エンコーダ20は、逆量子化ユニット58、逆変換モジュール60、およびアナログ加算器62をさらに備える。ブロック解除フィルタまたは適応ループ・フィルタ(図22には示されていない)を備えて、たとえば、ブロック境界を平滑化し、入力ピクチャと出力ピクチャとのコーディング歪みを最小限にするために、ブロック境界をフィルタリングして、再構成されたビデオからブロック性アーチファクトを除去することもできる。希望に応じて、ブロック解除フィルタは、典型的には、アナログ加算器62の出力をフィルタリングする。
エンコード方法中に、ビデオ・エンコーダ20が、コーディングするビデオ・フレームまたはスライスを受信する。フレームまたはスライスを複数のビデオ・ブロックに分割することができる。動き推定ユニット42および動き補償ユニット44は、1つまたは複数の基準フレームの1つまたは複数のブロックに対して所与の受信ビデオ・ブロックのインター予測コーディングを実行して、時間圧縮を施すことができる。イントラ予測モジュール46は、コーディングするブロックと同一のフレームまたはスライスの1つまたは複数の隣接ブロックに対して所与の受信ビデオ・ブロックのイントラ予測コーディングを実行して、空間圧縮を施すことができる。
モード選択ユニット40は、コーディングの結果(たとえば、結果として生じるコーディング速度および歪みのレベル)に基づき、かつコーディングされている所与の受信ブロックを含むフレームまたはスライスのフレームまたはスライス・タイプに基づき、コーディングモード、たとえば、1つのモードまたは複数のイントラもしくはインターコーディングモードの1つを選択することができ、結果として生じるイントラまたはインターコーディングブロックを、アナログ加算器50に供給して残差ブロック・データを生成し、アナログ加算器62に供給して、基準フレームまたは基準スライスで使用するエンコードブロックを再構成することができる。一般に、イントラ予測は、隣接する、先にコーディングされたブロックに対して現在のブロックを予測することを含み、インター予測は、現在のブロックを時間予測する動き推定および動き補償を含む。一部の実施形態では、再構成されたピクチャが基準ピクチャである場合、これらのピクチャが、さらなる時間予測のために基準バッファ(図示せず)またはメモリ64に記憶される。
動き推定ユニット42および動き補償ユニット44は、ビデオ・エンコーダ20のインター予測要素を表す。動き推定ユニット42および動き補償ユニット44は、高度に一体化されていてもよいが、概念的な目的で別個に図示されている。動き推定は、ビデオ・ブロックの動きを推定する、動きベクトルを生成する方法である。動きベクトルは、たとえば、現在のフレーム(または他のコーディング・ユニット)内でコーディングされている現在のブロックに対する、予測基準フレーム(または他のコーディング・ユニット)内の予測ブロックの変位を示すことができる。予測ブロックは、絶対差の和(SAD)、平方差の和(SSD)、または他の差の測定基準によって判定され得る画素差に関して、コーディングするブロックに厳密に一致すると認められるブロックである。動きベクトルは、ブロックの区画の変位を示すこともできる。動き補償は、動き推定によって判定される動きベクトルに基づいて、予測ブロックをフェッチし、または生成することを含み得る。再び、動き推定ユニット42および動き補償ユニット44は、一部の例では、機能的に一体化されていてもよい。
動き推定ユニット42は、ビデオ・ブロックをメモリ64内の基準フレームのビデオ・ブロックと比較することによって、インターコーディングフレームのビデオ・ブロックについて動きベクトルを算出することができる。動き補償ユニット44は、基準フレーム、たとえば、Iフレーム、Bフレーム、またはPフレームのサブ整数画素を、この比較の目的で内挿することもできる。
動き推定ユニット42は、メモリ64からの1つまたは複数の基準フレームのブロックを、現在のフレーム、たとえば、PフレームまたはBフレームのエンコードするブロックと比較することができる。一部の実施形態では、PおよびBフレームを、基準ピクチャまたはフレームとして使用可能な一般的なBピクチャに統合することができる。メモリ64内の基準フレームがサブ整数画素の値を有するとき、動き推定ユニット42によって算出された動きベクトルは、基準フレームのサブ整数画素位置を指すことができる。動き推定ユニット42および/または動き補償ユニット44は、サブ整数画素位置の値がメモリ64に記憶されていない場合に、メモリ64に記憶された基準フレームのサブ整数画素位置の値を算出するように構成され得る。動き推定ユニット42は、算出された動きベクトルをエントロピーエンコードユニット56および動き補償ユニット44に送信することができる。動きベクトルにより特定された基準フレーム・ブロックを、インター予測ブロック、またはより一般的には、予測ブロックと呼ぶことができる。動き補償ユニット44は、予測ブロックに基づいて予測データを算出することができる。
イントラ予測モジュール46は、前述したような動き推定ユニット42および動き補償ユニット44により実行されるインター予測の代わりとして、現在のブロックをイントラ予測することができる。特に、イントラ予測モジュール46は、現在のブロックをエンコードするために使用するイントラ予測モードを判定することができる。一部の例では、イントラ予測モジュール46は、たとえば、別個のエンコードパス中に、種々のイントラ予測モードを使用して現在のブロックをエンコードすることができ、イントラ予測モジュール46(または、一部の例ではモード選択ユニット40)は、使用する適切なイントラ予測モードを試験済みモードから選択することができる。たとえば、イントラ予測モジュール46は、種々の試験済みイントラ予測モードについての速度−歪み分析を使用して速度−歪み値を算出し、試験済みモードの中から最良の速度−歪み特徴を有するイントラ予測モードを選択する。速度−歪み分析は、一般に、エンコードブロックと、エンコードされてエンコードブロックを生成する、オリジナルのエンコードされていないブロックとの歪み(またはエラー)の量、ならびにエンコードブロックを生成するために使用されるビットレート(すなわちビット数)を判定する。イントラ予測モジュール46は、種々のエンコードブロックについての歪みおよび速度から割合を算出して、どのイントラ予測モードが、ブロックについての最良の速度−歪み値を呈するかを判定することができる。
たとえば、イントラ予測またはインター予測を使用して現在のブロックを予測した後、ビデオ・エンコーダ20は、動き補償ユニット44またはイントラ予測モジュール46により算出された予測データを、コーディングされているオリジナルのビデオ・ブロックから減算することにより、残差ビデオ・ブロックを形成することができる。アナログ加算器50は、この減算動作を実行可能な1つまたは複数の部品を表す。変換モジュール52は、離散コサイン変換(DCT)または概念的に同様の変換等の変換を残差ブロックに適用して、残差変換係数値を含むビデオ・ブロックを生成することができる。変換モジュール52は、DCTと概念的に同様のH.264規格により定義された変換等の他の変換を実行することができる。ウェーブレット変換、整数変換、サブバンド変換、または他のタイプの変換を使用することもできる。いずれの場合にも、変換モジュール52は、残差ブロックに変換を適用して、残差変換係数のブロックを生成することができる。変換は、残差情報を画素領域から、周波数領域等の変換領域へ変換する。量子化ユニット54は、残差変換係数を量子化して、ビットレートをさらに低下させる。量子化方法は、係数の一部または全部に関連するビット深さを減少させることができる。量子化パラメータを調節することにより、量子化の度合いを修正することができる。
量子化に続いて、エントロピーエンコードユニット56は、量子化変換係数をエントロピーエンコードすることができ、これはCAVLC、CABAC、PIPE、または別のエントロピー・コーディング技術を含み得る。エントロピーエンコードユニット56によるエントロピー・コーディングに続いて、エンコードビデオを別のデバイスに送信することができ、または後で送信または読み出しを行うためにアーカイブすることができる。
場合によっては、ビデオ・エンコーダ20のエントロピーエンコードユニット56または別のユニットを、前述したエントロピー・コーディング量子化変換係数に加えて、他のコーディング機能を実行するように構成することができる。たとえば、エントロピーエンコードユニット56は、ブロックについての(たとえば、マクロブロック、CU、もしくはLCU)ヘッダ情報、またはブロックを含むビデオ・フレームを、エンコードビデオ・ビットストリームで送信するための適切なシンタックス要素によって構成することができる。この開示は、他の方法を使用するときよりも効率的に直交ブロック情報のスキャニングを実行可能な技術を説明する。
たとえば、ビデオ・エンコーダ20のエントロピーエンコードユニット56を、ビデオ・データのあるブロック(たとえば、1つまたは複数のマクロブロック、またはCUのTU)をエンコードするように構成することができる。本開示の技術によれば、一例として、エントロピーエンコードユニット56を、特定のスキャン・タイプおよび特定の状況モデル選択方式を使用して、現在のTUのための有意性マップをエンコードするように構成することができる。エントロピーエンコードについてのさらなる詳細が、本願明細書に援用する、2012年7月16日提出の米国特許出願第13/550,493号、「CONTEXT MODELING TECHNIQUES FOR TRANSFORM COEFFICIENT LEVEL CODING」からわかる。
逆量子化ユニット58および逆変換モジュール60は、それぞれ逆量子化および逆変換を適用して、たとえば、基準ブロックとして後で使用するために、画素領域の残差ブロックを再構成する。動き補償ユニット44は、残差ブロックをメモリ64のフレームの1つの予測ブロックに加算することにより、基準ブロックを算出することができる。また、動き補償ユニット44は、1つまたは複数の内挿フィルタを再構成された残差ブロックに適用して、動き推定で使用するためのサブ整数画素値を算出することができる。アナログ加算器62は、再構成された残差ブロックを、動き補償ユニット44により生成された動き補償予測ブロックに加算して、メモリ64に記憶させるための、再構成されたビデオ・ブロックを生成する。再構成されたビデオ・ブロックを、動き推定ユニット42および動き補償ユニット44により、次のビデオ・フレームのブロックをインターコーディングするための基準ブロックとして使用することができる。
図23は、本開示の技術に一致する、ビデオ・データの直交ブロックについてのエンコードスキャニング情報を効率的にデコードするための技術を実施可能なビデオ・デコーダ30の例を示すブロック図である。図23の例では、ビデオ・デコーダ30が、エントロピーデコードユニット70、動き補償ユニット72、イントラ予測モジュール74、逆量子化ユニット76、逆変換モジュール78、メモリ82、およびアナログ加算器80を備える。ビデオ・デコーダ30は、一部の例では、ビデオ・エンコーダ20(図22)に関して説明したエンコードパスと一般に逆であるデコードパスを実行することができる。動き補償ユニット72は、エントロピーデコードユニット70から受信した動きベクトルに基づいて予測データを生成することができる。
たとえば、ビデオ・デコーダ30を、エンコードビデオ・データ(たとえば、1つまたは複数のマクロブロック、またはCUのTU)をビデオ・エンコーダ20から受信するように構成することができる。エントロピーデコードユニット70を、特定のスキャン・タイプおよび特定の状況モデル選択方式を使用して、現在のTUについての有意性マップをデコードするように構成することができる。エントロピーデコードについてのさらなる詳細が、本願明細書に援用する、2012年7月16日提出の米国特許出願第13/550,493号、「CONTEXT MODELING TECHNIQUES FOR TRANSFORM COEFFICIENT LEVEL CODING」からわかる。
このようにして、本開示の技術により、エントロピーデコードユニット70は、他の方法を使用するときよりも効率的に、直交ブロックについてのスキャニング情報をデコードすることができる。このようにして、本開示の技術を使用したとき、並行処理機能に対応するかなりの時間節約があり得る。
動き補償ユニット72は、ビットストリームで受信された動きベクトルを使用して、メモリ82内の基準フレームの予測ブロックを特定することができる。イントラ予測モジュール74は、ビットストリームで受信されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成する。
イントラ予測モジュール74は、エンコードブロックについてのイントラ予測モードの表示を使用して、たとえば、隣接する、先にデコードされたブロックの画素を用いてエンコードブロックをイントラ予測することができる。ブロックがインター予測モードエンコードされる例については、エンコードブロックについての動き補償予測データを読み出すために、動き補償ユニット72が動きベクトルを定義する情報を受信する。いずれの場合にも、動き補償ユニット72またはイントラ予測モジュール74が、予測ブロックを定義する情報をアナログ加算器80に提供することができる。
逆量子化ユニット76は、ビットストリームに設けられ、エントロピーデコードユニット70によりデコードされた量子化ブロック係数を逆量子化、たとえば、非量子化する。逆量子化方法は、たとえば、H.264デコード規格により定義され、HEVC試験モデルにより実行される従来の方法を含むことができる。逆量子化方法は、各ブロックについてのビデオ・エンコーダ20により算出された量子化パラメータQPyの使用を含んで、量子化の程度、および同様に、適用可能な逆量子化の程度を判定することができる。
逆変換モジュール78は、画素領域に残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換方法を変換係数に適用する。動き補償ユニット72は、内挿フィルタに基づく内挿を場合によって実行する動き補償ブロックを生成する。サブ画素精度による動き推定に使用する内挿フィルタの識別子が、シンタックス要素に含まれていてもよい。動き補償ユニット72は、ビデオ・ブロックのエンコード中にビデオ・エンコーダ20により使用される内挿フィルタを使用して、基準ブロックのサブ整数画素の内挿値を算出することができる。動き補償ユニット72は、受信したシンタックス情報によって、ビデオ・エンコーダ20により使用される内挿フィルタを判定し、内挿フィルタを使用して予測ブロックを生成することができる。
動き補償ユニット72は、エンコードビデオ・シーケンスの1つまたは複数のフレームをエンコードするために使用されるブロックのサイズを判定するための、エンコードブロックについてのシンタックス情報、エンコードビデオ・シーケンスのフレームまたはスライスの各ブロックがどのように区画されるかを説明する区画情報、各区画がどのようにエンコードされるかを示すモード、各インターエンコードブロックまたは区画についての1つまたは複数の基準フレーム(および基準フレーム・リスト)、およびエンコードビデオ・シーケンスをデコードするための他の情報の一部を使用する。また、イントラ予測モジュール74は、エンコードブロックについてのシンタックス情報を使用して、たとえば、前述したように、隣接する、先にデコードされたブロックの画素を用いて、エンコードブロックをイントラ予測する。
アナログ加算器80は、残差ブロックを、動き補償ユニット72またはイントラ予測モジュール74により生成した対応する予測ブロックと合計して、デコードブロックを形成する。望ましい場合には、ブロック性アーチファクトを除去するために、ブロック解除フィルタを適用してデコードブロックをフィルタリングしてもよい。次いで、デコードビデオ・ブロックはメモリ82に記憶され、次の動き補償のための基準ブロックを提供し、また、表示デバイス(図22の表示デバイス32等)へ表示するためのデコードビデオを生成する。
開示された実施形態の前記説明は、当業者が本発明を製造または使用することを可能にするために提示されたものである。これらの実施形態に対する種々の変更が当業者には容易に明らかであり、本発明の精神または範囲から逸脱することなく、本明細書に記載された一般的原理を他の実施形態に適用することができる。したがって、本明細書に提示された説明および図面は、本発明の例示的な実施形態を示し、したがって、本発明により広く考慮される主題を代表するものであることを理解されたい。さらに、本発明の範囲は他の実施形態を完全に包含し、したがって、本発明の範囲は、添付の特許請求の範囲以外の何物によっても限定されないことをさらに理解されたい。

Claims (20)

  1. 複数のピクチャを有するデジタル・ビデオ・シーケンスをコーディングするための方法であって、
    (a)該複数のピクチャの少なくとも1つをブロックに分割する工程と、
    (b)該ブロックの少なくとも1つに対し直交変換を実行して、1つまたは複数の変換係数を生成する工程と、
    (c)該1つまたは複数の変換係数に量子化を実行する工程と、
    (d)該1つまたは複数の変換係数を1度に1つ、コーディングスキャン順序に沿ってエンコードして、圧縮ビットストリームを生成する工程とを備え、
    該コーディングスキャン順序が、順方向波面スキャン順序または逆方向波面スキャン順序を含み、
    該量子化により量子化変換係数を生成する方法。
  2. 工程(a)の前記ブロックをより小さいサブブロックに分割する工程をさらに備える、請求項1に記載の方法。
  3. 前記順方向波面スキャン順序が、第1の非ゼロの変換係数またはDC係数においてスキャニングを開始するように構成される、請求項1に記載の方法。
  4. 前記逆方向波面スキャン順序が、最後の非ゼロの変換係数においてスキャニングを開始するように構成される、請求項1に記載の方法。
  5. 前記直交変換が、128×128画素よりも小さいブロックに適用される、請求項1に記載の方法。
  6. 前記1つまたは複数の変換係数が、変換係数の複数のラインがあるように1つの変換ブロックにより表され、
    前記方法は、変換係数の少なくとも2つのラインを並行してエンコードする工程をさらに備える、請求項1に記載の方法。
  7. 前記エンコードする工程が、単一の方向に実行される、請求項6に記載の方法。
  8. プロセッサと、該プロセッサに連結されたメモリとを有するコンピュータで実施され、工程(a)〜(d)の少なくとも一部が該プロセッサを使用して実行される、請求項1に記載の方法。
  9. 複数のピクチャを有するデジタル・ビデオ・シーケンスをコーディングするための装置であって、
    該複数のピクチャの少なくとも1つをブロックに分割し、
    該ブロックの少なくとも1つに対し直交変換を実行して、1つまたは複数の変換係数を生成し、
    該1つまたは複数の変換係数に量子化を実行し、
    該1つまたは複数の変換係数を1度に1つ、コーディングスキャン順序に沿ってエンコードして、圧縮ビットストリームを生成するように構成されたビデオ・コーダを備え、
    該コーディングスキャン順序が、順方向波面スキャン順序または逆方向波面スキャン順序を含み、
    該量子化により量子化変換係数を生成する装置。
  10. 集積回路、
    マイクロプロセッサ、および
    前記ビデオ・コーダを備えた無線通信デバイスの少なくとも1つを備える、請求項9に記載の装置。
  11. 前記1つまたは複数の変換係数が、変換係数の複数のラインがあるように1つの変換ブロックにより表され、
    前記装置は、変換係数の少なくとも2つのラインを同時にエンコードするために並行して動作するように構成された複数のマイクロプロセッサをさらに備える、請求項9に記載の装置。
  12. 前記順方向波面スキャン順序が、第1の非ゼロの変換係数またはDC係数でスキャニングを開始するように構成される、請求項9に記載の装置。
  13. 前記逆方向波面スキャン順序が、最後の非ゼロの変換係数でスキャニングを開始するように構成される、請求項9に記載の装置。
  14. 圧縮ビットストリームを処理するための方法であって、
    (a)該圧縮ビットストリームを受信する工程と、
    (b)該圧縮ビットストリームを処理して、直交変換の1つまたは複数の変換係数を生成する工程とを備え、
    該1つまたは複数の変換係数を、1度に1つ、該直交変換のコーディングスキャン順序に沿って生成し、
    該コーディングスキャン順序が、順方向波面スキャン順序または逆方向波面スキャン順序を含む方法。
  15. (c)該1つまたは複数の変換係数に量子化を実行する工程をさらに備える、請求項14に記載の方法。
  16. (d)該1つまたは複数の変換係数で逆直交変換を実行する工程をさらに備える、請求項14に記載の方法。
  17. 圧縮ビットストリームを処理するための装置であって、
    該圧縮ビットストリームを受信し、
    該圧縮ビットストリームを処理して、直交変換の1つまたは複数の変換係数を生成するように構成されたビデオ・デコーダを備え、
    該1つまたは複数の変換係数を、1度に1つ、該直交変換のコーディングスキャン順序に沿って生成し、
    該コーディングスキャン順序が、順方向波面スキャン順序または逆方向波面スキャン順序を含む装置。
  18. 集積回路、
    マイクロプロセッサ、および
    前記ビデオ・デコーダを備えた無線通信デバイスの少なくとも1つからなる、請求項17に記載の装置。
  19. 前記順方向波面スキャン順序が、第1の非ゼロの変換係数またはDC係数においてスキャニングを開始するように構成される、請求項17に記載の装置。
  20. 前記逆方向波面スキャン順序が、最後の非ゼロの変換係数においてスキャニングを開始するように構成される、請求項17に記載の装置。
JP2014519105A 2011-07-22 2012-07-23 ビデオ・コーディングにおける直交形状変換をスキャンするためのデバイスおよび方法 Pending JP2014523710A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161511014P 2011-07-22 2011-07-22
US61/511,014 2011-07-22
US13/556,044 2012-07-23
PCT/US2012/047888 WO2013016298A1 (en) 2011-07-22 2012-07-23 Device and methods for scanning rectangular-shaped transforms in video coding
US13/556,044 US20130028329A1 (en) 2011-07-22 2012-07-23 Device and methods for scanning rectangular-shaped transforms in video coding

Publications (1)

Publication Number Publication Date
JP2014523710A true JP2014523710A (ja) 2014-09-11

Family

ID=47597218

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014519105A Pending JP2014523710A (ja) 2011-07-22 2012-07-23 ビデオ・コーディングにおける直交形状変換をスキャンするためのデバイスおよび方法

Country Status (6)

Country Link
US (1) US20130028329A1 (ja)
EP (1) EP2735154A1 (ja)
JP (1) JP2014523710A (ja)
KR (1) KR101600615B1 (ja)
CN (1) CN103918263A (ja)
WO (1) WO2013016298A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101885382B1 (ko) * 2009-07-06 2018-08-03 톰슨 라이센싱 공간적으로 변하는 잔류물 코딩을 위한 방법 및 장치
WO2013096671A1 (en) 2011-12-20 2013-06-27 General Instrument Corporation Method and apparatus for efficient transform unit encoding
US9491463B2 (en) * 2012-04-14 2016-11-08 Qualcomm Incorporated Group flag in transform coefficient coding for video coding
US9344742B2 (en) * 2012-08-10 2016-05-17 Google Inc. Transform-domain intra prediction
US20140133574A1 (en) * 2012-11-13 2014-05-15 Mediatek Inc. Method and Apparatus for Sign Data Hiding of Video and Image Data
US9955163B2 (en) * 2013-06-17 2018-04-24 Google Llc Two pass quantization of video data
CN106134192B (zh) * 2014-03-25 2020-08-11 株式会社索思未来 图像解码装置、图像解码方法及集成电路
EP4072141A1 (en) * 2016-03-24 2022-10-12 Intellectual Discovery Co., Ltd. Method and apparatus for encoding/decoding video signal
US10931947B2 (en) * 2016-05-04 2021-02-23 Sharp Kabushiki Kaisha Systems and methods for coding transform data
CN117412042A (zh) * 2016-07-13 2024-01-16 韩国电子通信研究院 图像编码/解码方法和装置
US10834402B2 (en) * 2017-01-20 2020-11-10 Nec Corporation Quantization device, method, and recording medium for parallel processing transform coefficients
BR122021018343B1 (pt) * 2017-04-13 2022-10-25 Lg Electronics Inc Método para reconstruir uma imagem incluindo um bloco não quadrado, método para codificar uma imagem e mídia de armazenamento digital legível por computador
CN116132673A (zh) * 2017-12-13 2023-05-16 三星电子株式会社 视频解码方法及其装置以及视频编码方法及其装置
CN111727606B (zh) * 2018-01-02 2023-04-11 三星电子株式会社 视频解码方法及其装置和视频编码方法及其装置
WO2019191981A1 (zh) * 2018-04-04 2019-10-10 深圳市大疆创新科技有限公司 编码装置和系统
CN114390280B (zh) * 2018-11-12 2023-08-18 Lg电子株式会社 图像解码方法、图像编码方法和数据发送方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07123269A (ja) * 1993-10-22 1995-05-12 Fuji Xerox Co Ltd 画像信号の符号化装置
US5500678A (en) * 1994-03-18 1996-03-19 At&T Corp. Optimized scanning of transform coefficients in video coding
EP0750428B1 (en) * 1995-06-22 2004-03-31 Canon Kabushiki Kaisha Image processing apparatus and method
JP4086520B2 (ja) * 2001-03-19 2008-05-14 株式会社リコー 多値画像の符号化及び復号化方法並びに装置
KR100925968B1 (ko) * 2001-12-17 2009-11-09 마이크로소프트 코포레이션 컴퓨터 시스템에서 비디오 시퀀스의 복수의 비디오 화상을 처리하는 방법, 시스템 및 컴퓨터 판독가능 매체
US6795584B2 (en) * 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
WO2007063472A2 (en) * 2005-11-30 2007-06-07 Koninklijke Philips Electronics N.V. Encoding method and apparatus applying coefficient reordering
KR100772390B1 (ko) * 2006-01-23 2007-11-01 삼성전자주식회사 방향 보간 방법 및 그 장치와, 그 보간 방법이 적용된부호화 및 복호화 방법과 그 장치 및 복호화 장치
EP2055108B1 (en) * 2006-08-25 2011-04-20 Thomson Licensing Methods and apparatus for reduced resolution partitioning
KR101487436B1 (ko) * 2008-09-03 2015-01-29 에스케이 텔레콤주식회사 선택적 부호화를 이용한 영상 부호화/복호화 장치 및 방법
KR101369161B1 (ko) * 2008-09-05 2014-03-05 에스케이 텔레콤주식회사 예측 방향 전환 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
CA2742390C (en) * 2008-10-03 2015-05-12 Qualcomm Incorporated Video coding using transforms bigger than 4x4 and 8x8
TWI382770B (zh) * 2008-12-11 2013-01-11 Univ Nat Taiwan 視訊影像傳輸中遇到封包遺失時的有效選取方法
CN104717505B (zh) * 2009-04-08 2019-01-11 夏普株式会社 运动图像编码装置以及运动图像解码装置
US9313526B2 (en) * 2010-02-19 2016-04-12 Skype Data compression for video
RS56512B1 (sr) * 2010-04-13 2018-02-28 Ge Video Compression Llc Kodiranje mapa značaja i blokova koeficijenata transformacije
US20120163457A1 (en) * 2010-12-28 2012-06-28 Viktor Wahadaniah Moving picture decoding method, moving picture coding method, moving picture decoding apparatus, moving picture coding apparatus, and moving picture coding and decoding apparatus
SG191869A1 (en) * 2011-01-07 2013-08-30 Agency Science Tech & Res Method and an apparatus for coding an image
US20130083856A1 (en) * 2011-06-29 2013-04-04 Qualcomm Incorporated Contexts for coefficient level coding in video compression
US9807426B2 (en) * 2011-07-01 2017-10-31 Qualcomm Incorporated Applying non-square transforms to video data
US9756360B2 (en) * 2011-07-19 2017-09-05 Qualcomm Incorporated Coefficient scanning in video coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SOLE,J. ET AL: "CE11: Unified scans for the significance map and coefficient level coding in high efficiency[online]", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 JCTVC, JPN6014048436, 15 July 2011 (2011-07-15), ISSN: 0002940418 *
SZE,V. ET AL: "Parallelization of HHI_TRANSFORM_CODING", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 JCTVC, JPN6014048434, 4 October 2010 (2010-10-04), ISSN: 0002940417 *

Also Published As

Publication number Publication date
EP2735154A1 (en) 2014-05-28
WO2013016298A1 (en) 2013-01-31
US20130028329A1 (en) 2013-01-31
CN103918263A (zh) 2014-07-09
KR20140025590A (ko) 2014-03-04
KR101600615B1 (ko) 2016-03-14

Similar Documents

Publication Publication Date Title
EP2647204B1 (en) Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
JP5868995B2 (ja) ビデオ符号化におけるビデオブロックの最後尾有意係数の位置の個別符号化
KR101528085B1 (ko) 조인트 콘텍스트 모델을 사용한 계수들의 엔트로피 코딩
KR101600615B1 (ko) 비디오 코딩에서 직사각형 변환을 스캐닝하기 위한 장치 및 방법
EP2656608B1 (en) Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
EP2622577B1 (en) Video coding using intra-prediction

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141118

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150526