JP2016523476A - リサンプリングプロセスにおける中間データのダイナミックレンジ制御 - Google Patents

リサンプリングプロセスにおける中間データのダイナミックレンジ制御 Download PDF

Info

Publication number
JP2016523476A
JP2016523476A JP2016517963A JP2016517963A JP2016523476A JP 2016523476 A JP2016523476 A JP 2016523476A JP 2016517963 A JP2016517963 A JP 2016517963A JP 2016517963 A JP2016517963 A JP 2016517963A JP 2016523476 A JP2016523476 A JP 2016523476A
Authority
JP
Japan
Prior art keywords
intermediate output
video
bits
video information
bit depth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016517963A
Other languages
English (en)
Other versions
JP2016523476A5 (ja
JP6479776B2 (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 JP2016523476A publication Critical patent/JP2016523476A/ja
Publication of JP2016523476A5 publication Critical patent/JP2016523476A5/ja
Application granted granted Critical
Publication of JP6479776B2 publication Critical patent/JP6479776B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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
    • 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
    • H04N19/615Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding using motion compensated temporal filtering [MCTF]
    • 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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission

Abstract

ある態様によるビデオ情報をコーディングするための装置は、メモリとプロセッサとを含む。メモリユニットは、ビデオ情報を記憶するように構成されている。本プロセッサは、参照レイヤビデオ情報を取得して、中間出力を生成するために、第1の次元において参照レイヤビデオ情報をアップサンプリングして、中間出力を所定のビット深度に制限して、第2の次元において制限された中間出力をアップサンプリングするように構成されており、第2の次元は第1の次元と直交している。

Description

[0001]本開示は、ビデオコーディングおよび圧縮の分野に関する。詳細には、本開示は、アドバンストビデオコーディング(AVC)のためのSVCを含むスケーラブルビデオコーディング(SVC)、ならびにスケーラブルHEVC(SHVC)とも呼ばれる高効率ビデオコーディング(HEVC)に関する。本開示は、MV−HEVCおよび3D−HEVCと呼ばれる、HEVCのマルチビュー拡張などの3Dビデオコーディングにも関する。様々な実施形態は、リサンプリングプロセスにおける中間データのダイナミックレンジ制御のためのシステムおよび方法に関する。
[0002]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4,Part 10,Advanced Video Coding(AVC)、現在開発中の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法など、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
[0003]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間的(イントラピクチャ)予測および/または時間的(インターピクチャ)予測を含む。ブロックベースのビデオコーディングの場合、ビデオスライス(たとえば、ビデオフレームまたはビデオフレームの一部分)が、ツリーブロック、コーディングユニット(CU)および/またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコーディングされた(I)スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコーディングされた(PまたはB)スライス中のビデオブロックは、同じピクチャ中の近隣ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
[0004]空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて、残差変換係数が得られ得、その残差変換係数は、次いで量子化され得る。量子化変換係数は、最初は2次元アレイで構成され、変換係数の1次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピーコーディングが適用され得る。
[0005]一般に、本開示は、スケーラブルビデオコーディング(SVC)に関連する技法を説明する。以下で説明する様々な技法は、リサンプリングプロセスにおける中間データのダイナミックレンジ制御のための方法およびデバイスを提供説明する。
[0006]ある態様によるビデオ情報をコーディングするための装置は、メモリとプロセッサとを含む。メモリユニットは、ビデオ情報を記憶するように構成されている。本プロセッサは、参照レイヤビデオ情報を取得して、中間出力を生成するために、第1の次元において参照レイヤビデオ情報をアップサンプリングして、中間出力を所定のビット深度に制限して、第2の次元において制限された中間出力をアップサンプリングするように構成されており、第2の次元は第1の次元と直交している。
[0007]1つまたは複数の例の詳細を、添付の図面および以下の説明に記載し、これは、本明細書で説明する本発明の概念の完全な範囲を限定するものではない。他の特徴、目的、および利点は、その説明および図面から、ならびに特許請求の範囲から明らかになろう。
[0008]図面全体にわたって、参照される要素間の対応を示すために参照番号が再使用される場合がある。図面は、本明細書に記載される例示的な実施形態を図示するために提供され、本開示の範囲を限定するものではない。
[0009]本開示で説明する態様に従って技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。 [0010]本開示で説明する態様に従って技法を実装し得るビデオエンコーダの一例を示すブロック図。 [0011]本開示で説明する態様に従って技法を実装し得るビデオエンコーダの一例を示すブロック図。 [0012]本開示で説明する態様に従って技法を実装し得るビデオデコーダの一例を示すブロック図。 [0013]本開示で説明する態様に従って技法を実装し得るビデオデコーダの一例を示すブロック図。 [0014]本開示の態様による、リサンプリングプロセスにおける中間データのダイナミックレンジ制御のための例示的な方法を示すフローチャート。 [0015]本開示の態様による、リサンプリングプロセスにおける中間データのダイナミックレンジ制御のための別の例示的な方法を示すフローチャート。
[0016]本開示で説明する技法は、概して、スケーラブルビデオコーディング(SHVC、SVC)およびマルチビュー/3Dビデオコーディング(たとえば、マルチビューコーディングプラス深度、MVC+D)に関係する。たとえば、本技法は、高効率ビデオコーディング(HEVC)のスケーラブルビデオコーディング(SHVCと呼ばれることがある、SVC)拡張に関係し、それとともにまたはそれの中で使用され得る。SHVC、SVC拡張では、ビデオ情報の複数のレイヤがあり得る。ビデオ情報の最下位レベルのレイヤは、ベースレイヤ(BL)または参照レイヤ(RL)の機能を果たすことができ、ビデオ情報の最上部のレイヤ(または、最上位レイヤ)は、エンハンスメントレイヤ(EL)の機能を果たすことができる。「エンハンストレイヤ」は「エンハンスメントレイヤ」と呼ばれることがあり、これらの用語は互換的に使用され得る。ベースレイヤは「参照レイヤ」と呼ばれることがあり、これらの用語は互換的に使用され得る。ベースレイヤとトップレイヤとの間のすべてのレイヤは、追加のELおよび/または参照レイヤの機能を果たすことができる。たとえば、所与のレイヤは、ベースレイヤまたは任意の介在エンハンスメントレイヤなどの、所与のレイヤの下の(たとえば、先行する)レイヤにとってELであり得る。さらに、所与のレイヤはまた、所与のレイヤの上の(たとえば、それに続く)1つまたは複数のエンハンスメントレイヤにとってRLの機能を果たすことができる。ベースレイヤ(たとえば、たとえばレイヤ識別子(ID)セットを有する、または「1」と等しい、最下位レイヤ)と、トップレイヤ(または、最上位レイヤ)との間の任意のレイヤは、所与のレイヤよりも上位のレイヤによるレイヤ間予測のための参照として使用することができ、また、所与のレイヤよりも下位のレイヤをレイヤ間予測のための参照として使用することができる。たとえば、所与のレイヤは、所与のレイヤよりも下位のレイヤをレイヤ間予測のための参照として使用して決定され得る。
[0017]簡単のために、BLおよびELのただ2つのレイヤに関して例を提示するが、以下で説明するアイデアおよび実施形態が複数のレイヤを用いる場合にも適用可能であることを十分理解されたい。さらに、説明を簡単にするために、「フレーム」または「ブロック」という用語をしばしば使用する。ただし、これらの用語は限定的なものではない。たとえば、以下で説明する技法は、限定はしないが、ピクセル、ブロック(たとえば、CU、PU、TU、マクロブロックなど)、スライス、フレーム、ピクチャなどを含む様々なビデオユニットのいずれかとともに使用され得る。
ビデオコーディング
[0018]ビデオコーディング規格は、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262またはISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、およびそれのスケーラブルビデオコーディング(SVC)拡張と、マルチビュービデオコーディング(MVC)拡張と、マルチビューコーディングプラス深度(MVC+D)と拡張とを含む、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264を含む。以下、HEVC WD10と呼ばれる、最新のHEVCのドラフト仕様書が、http://phenix.int−evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC−L1003−v34.zipから入手可能である。HEVCへのマルチビュー拡張、すなわちMV−HEVCもまた、JCT−3Vによって開発されている。以下、MV−HEVC WD3の最新のワーキングドラフト(WD)が、http://phenix.it−sudparis.eu/jct2/doc_end_user/documents/3_Geneva/wg11/JCT3V−C1004−v4.zipから入手可能である。HEVCへのスケーラブル拡張、すなわちSHVCもまた、JCT−VCによって開発されている。以下、SHVC WD1と呼ばれる、SHVCの最新のワーキングドラフト(WD)が、http://phenix.int−evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC−L1008−v1.zipから入手可能である。
[0019]SVCおよびSHVCでは、ビデオ情報は、複数のレイヤとして与えられ得る。最下位レベルにあるレイヤはちょうどベースレイヤ(BL)として働き、最上位レベルにあるレイヤはエンハンスメントレイヤ(EL)として働き得る。トップレイヤとボトムレイヤとの間にあるすべてのレイヤは、エンハンスメントレイヤと参照レイヤとの両方として働き得る。たとえば、中間にあるレイヤは、それの下のレイヤのためのELでよく、同時にそれの上のレイヤのためのRLであり得る。説明を簡単にするために、以下で説明する技法を示す際に、BLとELとの2つのレイヤがあると仮定することができる。しかしながら、本明細書において説明するすべての技法が、複数の(2つ以上の)レイヤを用いる場合にも適用可能である。
[0020]スケーラブルビデオコーディング(SVC)は、(信号対雑音比(SNR)とも呼ばれる)品質スケーラビリティ、空間スケーラビリティ、および/または時間スケーラビリティを実現するために使用され得る。たとえば、一実施形態では、参照レイヤ(たとえば、ベースレイヤ)は、第1の品質レベルでビデオを表示するのに十分なビデオ情報を含み、エンハンスメントレイヤは、参照レイヤと比べてさらなるビデオ情報を含み、その結果、参照レイヤおよびエンハンスメントレイヤは一緒に、第1の品質レベルよりも高い第2の品質レベル(たとえば、少ない雑音、大きい解像度、より良いフレームレートなど)でビデオを表示するのに十分なビデオ情報を含む。強調レイヤは、ベースレイヤとは異なる空間解像度を有し得る。たとえば、ELとBLとの間の空間アスペクト比は、1.0、1.5、2.0、または他の異なる比であり得る。言い換えれば、ELの空間アスペクトは、BLの空間アスペクトの1.0倍、1.5倍、または2.0倍に等しい場合がある。いくつかの例では、ELの倍率は、BLの倍率よりも大きい場合がある。たとえば、EL内のピクチャのサイズは、BL内のピクチャのサイズよりも大きい場合がある。このようにして、限定ではないが、ELの空間解像度がBLの空間解像度よりも大きいことは可能であり得る。
[0021]H.264のSVC拡張、またはH.265のSHVC拡張を参照するSVCでは(上述のように)、現在のブロックの予測は、SVCのために提供される異なるレイヤを使用して実行され得る。そのような予測は、レイヤ間予測と呼ばれる場合がある。レイヤ間予測方法は、レイヤ間冗長性を低減するためにSVCにおいて利用され得る。レイヤ間予測のいくつかの例としては、レイヤ間イントラ予測、レイヤ間動き予測、およびレイヤ間残差予測があり得る。レイヤ間イントラ予測は、ベースレイヤ中のコロケートブロックの再構成を使用してエンハンスメントレイヤ中の現在ブロックを予測する。レイヤ間動き予測は、エンハンスメントレイヤにおける動きを予測するために、ベースレイヤの動き情報(動きベクトルを含む)を使用する。レイヤ間残差予測は、ベースレイヤの残差を使用してエンハンスメントレイヤの残差を予測する。
概要
[0022]SHVCでは、参照レイヤ画像は、たとえば、エンハンスメントレイヤにおけるレイヤ間予測のために、リサンプリングされる必要がある場合がある。リサンプリングは、参照レイヤ画像から輝度サンプルにリサンプリングフィルタを適用することによって実行され得る。たとえば、nタップフィルタが適用され得る。リサンプリングプロセスは、2次元リサンプリングのための2つのステップで発生し得る。第1に、水平リサンプリングが実行されてよく、次いで垂直リサンプリングが実行され得る。たとえば、垂直リサンプリングは、水平リサンプリングプロセスからビデオ情報出力上に実行され得る。リサンプリングフィルタは、入力として輝度サンプルを受信することができ、水平リサンプリングプロセスは、入力輝度サンプルに基づいて中間出力を生成することができる。次いで、中間出力は、垂直リサンプリングステップのための入力として使用され得る。いくつかの状況では、水平リサンプリングプロセスは、中間出力が入力輝度サンプルよりも多くのビットを有する(たとえば、より大きいビット深度を有する)ように、入力輝度サンプルにさらなるビットを追加することができる。さらなるビットは、データ範囲を非常に大きくして、垂直リサンプリングステップの計算の複雑性に重大な影響を有するようにすることができる。たとえば、中間データのバッファは、データ範囲が高くなるにつれて比例して増加され得る。また、補間プロセス、特に乗算演算の複雑性は、入力データのビット深度に強く依存する場合がある。さらに、特定の所定の最大値を超えないビット深度を有する入力を必要とする特定の計算命令セットがある。たとえば、特定の16ビットの命令セットは、16ビットを有する(たとえば、16ビットのビット深度を有する)入力にのみ使用され得る。したがって、多段階リサンプリングプロセスの第1の段階の中間出力のビット深度を制限(たとえば、減少または限定)することが有利である。
[0023]これらおよび他の問題に対処するために、本開示に記載された技法は、初期リサンプリングプロセス(たとえば、水平リサンプリング)から中間出力のビット深度を指定されたビット数に制限することができる。いくつかの実施形態では、ビット深度を指定されたビット数に制限することは、中間出力を特定のビット数だけ右シフトすること(たとえば、右シフト動作「>>」を適用すること)によって実現され得る。中間出力を右シフトするビット数は、リサンプリングフィルタに入力された入力輝度サンプルのビット深度に基づいて決定され得る。たとえば、中間出力を16ビットに制限することができ、中間出力を右シフトするビット数は、入力輝度サンプルのビット深度から8ビットを減算することによって算出され得る。ビットシフト数は、入力輝度サンプルのビット数に基づいて動的に決定され得る。上述のように、初期リサンプリングプロセス(たとえば、水平リサンプリング)から中間出力に追加されたさらなるビットはデータ範囲を大きくして、次のリサンプリングプロセス(たとえば、垂直リサンプリング)の計算の複雑性に重大な影響を有するようにすることができる。このように中間出力を制限することによって、これらの課題および/または問題を軽減することができる。さらに、このように中間出力を制限することによって、より正確な結果をもたらして丸め誤差を減少させることができ、またコーディングデバイスおよびプロセスが特定のより効率的なコーディング命令セットを利用することを可能にすることができる。
[0024]いくつかの実施形態では、垂直リサンプリングプロセスからの出力もまた、同様の方法で制限され得る。特定の実施形態では、垂直リサンプリングプロセスは、水平リサンプリングプロセスの前に実行され得る。本技法は、3次元コーディングにも適用され得る。たとえば、x軸におけるリサンプリングからの中間出力が所定のビット深度に制限されてよく、y軸におけるリサンプリングからの中間出力も所定のビット深度に制限され得る。シフトするビット数は、入力輝度サンプルのビット深度、および/またはリサンプリングにおける前のステップからの中間出力のビット深度に基づき得る。一般的に、参照レイヤ画像は一般的にアップサンプリングされるが、いくつかの実施形態では、エンハンスメントレイヤ画像はダウンサンプリングされ得る。
[0025]添付の図面を参照しながら新規のシステム、装置、および方法の様々な態様について以下でより十分に説明する。ただし、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示する任意の特定の構造または機能に限定されるものと解釈すべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるように与えられる。本明細書の教示に基づいて、本開示の範囲は、本発明の他の態様とは無関係に実装されるにせよ、または本発明の他の態様と組み合わされるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。たとえば、本明細書に記載した態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本発明の範囲は、本明細書に記載の本発明の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示するどの態様も請求項の1つまたは複数の要素によって実施され得ることを理解されたい。
[0026]本明細書では特定の態様が記載されるが、これらの態様の多くの変形形態および置換は本開示の範囲内に入る。好ましい態様のいくつかの利益および利点が言及されるが、本開示の範囲は、特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能であるものとし、それらのいくつかを例として、図および好適な態様についての以下の説明において示す。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
ビデオコーディングシステム
[0027]図1は、本開示で説明する態様による技法を利用し得る例示的なビデオコーディングシステム10を示すブロック図である。本明細書で使用し説明する「ビデオコーダ」という用語は、総称的にビデオエンコーダとビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。
[0028]図1に示すように、ビデオコーディングシステム10は、ソースデバイス12と宛先デバイス14とを含む。ソースデバイス12は符号化ビデオデータを生成する。宛先デバイス14は、ソースデバイス12によって生成された符号化ビデオデータを復号し得る。ソースデバイス12は、コンピュータ可読記憶媒体または他の通信チャネルを含み得る通信チャネル16を介して宛先デバイス14にビデオデータを提供することができる。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータ、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスを含み得る。ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。
[0029]宛先デバイス14は、通信チャネル16を介して復号されるべき符号化ビデオデータを受信し得る。通信チャネル16は、ソースデバイス12から宛先デバイス14に符号化されたビデオデータを移動させることができるタイプの媒体またはデバイスを備え得る。たとえば、通信チャネル16は、ソースデバイス12が、符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路など、ワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または他の機器を含み得る。
[0030]いくつかの実施形態では、符号化データは、出力インターフェース22から記憶デバイスに出力され得る。そのような例では、チャネル16は、ソースデバイス12によって生成された符号化されたビデオデータを記憶する記憶デバイスまたはコンピュータ可読記憶媒体に対応し得る。たとえば、宛先デバイス14は、ディスクアクセスまたはカードアクセスを介してコンピュータ可読記憶媒体にアクセスし得る。同様に、符号化データは、入力インターフェース28によってコンピュータ可読記憶媒体からアクセスされ得る。コンピュータ可読記憶媒体は、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、またはビデオデータを記憶するための他のデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。コンピュータ可読記憶媒体は、ソースデバイス12によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介してコンピュータ可読記憶媒体から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能なタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む、標準のデータ接続を介して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。コンピュータ可読記憶媒体からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
[0031]本開示の技法は、ワイヤレス適用例または設定に加えて適用例または設定を適用することができる。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例をサポートするビデオコーディングに適用され得る。いくつかの実施形態では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0032]図1では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。ソースデバイス12のビデオエンコーダ20は、複数の規格または規格拡張に準拠するビデオデータを含むビットストリームをコーディングするための技法を適用するように構成され得る。他の実施形態では、ソースデバイスおよび宛先デバイスは他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなど、外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
[0033]ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、あらかじめキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。いくつかの実施形態では、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は、出力インターフェース22によって、上記で説明したコンピュータ可読記憶媒体を含み得る通信チャネル16に出力され得る。
[0034]コンピュータ可読記憶媒体は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、または他のコンピュータ可読媒体などの記憶媒体(たとえば、非一時的記憶媒体)を含み得る。ネットワークサーバ(図示せず)は、(たとえば、ネットワーク送信を介して)ソースデバイス12から符号化されたビデオデータを受信し、宛先デバイス14に符号化されたビデオデータを与え得る。ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、通信チャネル16は、様々な形態の1つまたは複数のコンピュータ可読記憶媒体を含むと理解され得る。
[0035]宛先デバイス14の入力インターフェース28は、通信チャネル16から情報を受信し得る。通信チャネル16の情報は、ビデオエンコーダ20によって定義され、ビデオデコーダ30によって使用され得る、ブロックおよび他のコード化ユニット、たとえば、GOPの特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを含み得る。
[0036]ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などのビデオコーディング規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part 10,Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格もしくは業界規格、またはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例としては、MPEG−2およびITU−T H.263がある。図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含んで、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理し得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0037]図1は例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間の任意のデータ通信を必ずしも含むとは限らないビデオコーディング設定(たとえば、ビデオ符号化、またはビデオ復号)に適用することができる。他の例では、データは、ローカルメモリから取り出されてもよく、ネットワークを介してストリーミングされてもよく、または同様の方法で取得されてもよい。符号化デバイスがデータを符号化してメモリに記憶してもよく、および/または復号デバイスがメモリからデータを取り出して復号してもよい。多くの例では、符号化および復号は、相互に通信しないデバイスによって実行されるが、単にデータをメモリに符号化して、および/またはメモリからデータを取り出して復号する。
[0038]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラー電話などのワイヤレス通信デバイスを備え得る。
[0039]JCT−VCは、HEVC規格およびその拡張の開発に取り組んでおり、バージョン1が完成されている。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは33個ものイントラ予測符号化モードを提供し得る。
[0040]概して、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット(LCU:largest coding unit)に分割され得ることを記載している。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大コーディングユニットであるLCUのサイズを定義し得る。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割され得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはツリーブロックに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。
[0041]4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。たとえば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。CUがさらに分割されない場合、そのCUはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的分割が存在しない場合でも、リーフCUの4つのサブCUをリーフCUとも呼ぶ。たとえば、16×16サイズのCUがさらに分割されない場合、この16×16CUが決して分割されなくても、4つの8×8サブCUをリーフCUとも呼ぶ。
[0042]CUは、CUがサイズの差異を有さないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、4つの子ノード(サブCUとも呼ばれる)に分割され得、各子ノードは、今度は親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コード化ビットストリームに関連するシンタックスデータは、最大CU深さと呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、また、コーディングノードの最小サイズを定義し得る。それに応じて、ビットストリームは最小コーディングユニット(SCU:smallest coding unit)をも定義し得る。本開示では、HEVCのコンテキストにおけるCU、PU、もしくはTU、または他の規格のコンテキストにおける同様のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそれのサブブロック)のいずれかを指すために「ブロック」という用語を使用する。
[0043]CUは、コーディングノードと、コーディングノードに関連する予測ユニット(PU:prediction unit)および変換ユニット(TU:transform unit)とを含む。CUのサイズは、コーディングノードのサイズに対応し、ならびに形状が方形でなければならない。CUのサイズは、8×8ピクセルから最大64×64以上のピクセルを有するツリーブロックのサイズまでに及び得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。CUに関連するシンタックスデータは、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモード符号化もしくはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかによって異なり得る。PUは、形状が非方形になるように区分され得る。CUに関連するシンタックスデータは、たとえば、4分木に従って、CUを1つまたは複数のTUに区分することも記述し得る。TUは、形状が方形または非方形(たとえば、矩形)であり得る。
[0044]HEVC規格は、CUごとに異なり得るTUに従う変換を可能にする。TUは、一般に、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。TUは、一般にPUと同じサイズであるかまたはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差クワッドツリー」(RQT:residual quad tree)として知られるクワッドツリー構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連するピクセル差分値は、量子化され得る変換係数を生成するために変換され得る。
[0045]リーフCUは、1つまたは複数の予測ユニット(PU)を含み得る。概して、PUは、対応するCUの全部または一部分に対応する空間的エリアを表し、そのPUの参照サンプルを取り出すためのデータを含み得る。その上、PUは、予測に関係するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUについてのデータは、PUに対応するTUについてのイントラ予測モードを記述するデータを含み得る残差4分木(RQT)中に含まれ得る。別の例として、PUがインターモード符号化されるとき、PUは、PUのための1つまたは複数の動きベクトルを定義するデータを含み得る。PUの動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述し得る。
[0046]1つまたは複数のPUを有するリーフCUはまた、1つまたは複数の変換ユニット(TU)を含み得る。変換ユニットは、上記で説明したように、(TU4分木構造とも呼ばれる)RQTを使用して指定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを示し得る。次いで、各変換ユニットは、さらに、さらなるサブTUに分割され得る。TUがさらに分割されないとき、そのTUはリーフTUと呼ばれることがある。概して、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは同じイントラ予測モードを共有する。すなわち、概して、リーフCUのすべてのTUの予測値を計算するために同じイントラ予測モードが適用される。イントラコーディングの場合、ビデオエンコーダ20は、イントラ予測モードを使用して各リーフTUの残差値をTUに対応するCUの一部と元のブロックとの間の差分として計算し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUはPUよりも大きくまたは小さくなり得る。イントラコーディングの場合、PUは、同じCUの対応するリーフTUとコロケートされ得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
[0047]さらに、リーフCUのTUはまた、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造に関連付けられ得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。TU4分木のルートノードは概してリーフCUに対応し、CU4分木のルートノードは概してツリーブロック(またはLCU)に対応する。分割されないRQTのTUはリーフTUと呼ばれる。概して、本開示では、特に明記しない限り、リーフCUおよびリーフTUに言及するためにそれぞれCUおよびTUという用語を使用する。
[0048]ビデオシーケンスは、一般に、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、概して、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に応じてサイズが異なり得る。
[0049]一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NのPUサイズでのイントラ予測をサポートし、2N×2N、2N×N、N×2N、またはN×Nの対称的なPUサイズでのインター予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための非対称区分をサポートする。非対称区分では、CUの一方向は区分されないが、他の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、または「Right」という表示によって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUとで水平方向に区分された2N×2N CUを指す。
[0050]本開示では、「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は非負整数値を表す。ブロック中のピクセルは行と列で構成され得る。さらに、ブロックは、必ずしも、水平方向に垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはN×Mピクセルを備え得、ただし、Mは必ずしもNに等しいとは限らない。
[0051]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、(ピクセル領域とも呼ばれる)空間領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え得、TUは、変換、たとえば、残差ビデオデータへの離散サイン変換(DST)、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、TUを変換して、CUの変換係数を生成し得る。
[0052]変換係数を生成するための任意の変換の後に、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、その最も広い通常の意味を有することが意図された広義の用語である。一実施形態では、量子化は、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、ただし、nはmよりも大きい。
[0053]量子化の後に、ビデオエンコーダは、変換係数を走査して、量子化変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、より高いエネルギー(したがってより低い周波数)の係数をアレイの前方に配置し、より低いエネルギー(したがってより高い周波数)の係数をアレイの後方に配置するように設計され得る。いくつかの例では、ビデオエンコーダ20は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20は適応型走査を実行し得る。量子化変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC:context-adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC:context-adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング、または別のエントロピー符号化方法に従って1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
[0054]CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非0であるか否かに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLCにおけるコードワードは、比較的短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0055]ビデオエンコーダ20は、さらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびGOPベースのシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダ中でビデオデコーダ30に送り得る。GOPシンタックスデータは、それぞれのGOP中のいくつかのフレームを記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用される符号化/予測モードを示し得る。
ビデオエンコーダ
[0056]図2Aは、本開示で説明する態様による技法を実装し得るビデオエンコーダの例を示すブロック図である。ビデオエンコーダ20は、HEVCのような、ビデオビットストリームの単一のレイヤを処理するように構成され得る。さらに、ビデオエンコーダ20は、これに限定されないが、図4〜図5に関連して上記および以下でより詳細に説明する、リサンプリングプロセスおよび関連プロセスにおける中間データのダイナミックレンジ制御のための方法を含む、本開示の技法のうちのいくつか、またはすべてを実行するように構成され得る。一例として、レイヤ間予測ユニット66(与えられる場合)は、本開示で説明する技法のいずれかまたはすべてを実行するように構成され得る。ただし、本開示の態様はそのように限定されない。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ20の様々な構成要素間で共有され得る。いくつかの例では、さらに、または代替で、プロセッサ(図示せず)は、本開示において説明する技法のいずれかまたはすべてを実行するように構成され得る。
[0057]説明のために、本開示は、HEVCコーディングの文脈でビデオエンコーダ20を説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。図2Aのエンコーダ20は、コーデックの単一のレイヤを示している。しかしながら、図2Bを参照してさらに説明するように、ビデオエンコーダ20のうちのいくつかまたはすべては、マルチレイヤコーデックによる処理のために複製され得る。
[0058]ビデオエンコーダ20は、ビデオスライス内のビデオブロックの(イントラコーディング、レイヤコーディング、またはレイヤ間コーディングといつか呼ばれる)イントラ予測、インター予測、およびレイヤ間予測を実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。レイヤ間コーディングは、同じビデオコーディングシーケンス内の異なるレイヤ内のビデオに基づく予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのいずれかを指し得る。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指し得る。
[0059]図2Aに示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信する。図2Aの例では、ビデオエンコーダ20は、モード選択ユニット40と、参照フレームメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。モード選択ユニット40は、今度は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、レイヤ間予測ユニット66と、パーティションユニット48とを含む。参照フレームメモリ64は、復号されたピクチャバッファを含み得る。復号されたピクチャバッファは、その通常の意味を有する、およびいくつかの実施形態では、参照フレームのビデオコーデックが管理するデータ構造を指す、広義の用語である。
[0060]ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図2Aに図示せず)も含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。また、デブロッキングフィルタに加えて追加のフィルタ(ループ内またはループ後)が使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、(ループ内フィルタとして)加算器50の出力をフィルタ処理し得る。
[0061]符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間的予測を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対して、受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、代替的に、空間的予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ20は、たとえば、ビデオデータのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
[0062]その上、パーティションユニット48は、前のコーディングパスにおける前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、パーティションユニット48は、初めにフレームまたはスライスをLCUに区分し、レートひずみ分析(たとえば、レートひずみ最適化など)に基づいてLCUの各々をサブCUに区分し得る。モード選択ユニット40は、LCUをサブCUに区分することを示す4分木データ構造をさらに生成し得る。4分木のリーフノードCUは、1つまたは複数のPUおよび1つまたは複数のTUを含み得る。
[0063]モード選択ユニット40は、たとえば、誤差結果に基づいてコーディングモード、すなわち、イントラ予測モード、インター予測モード、またはレイヤ間予測モードのうちの1つを選択し、残差ブロックデータを生成するために、得られたイントラコード化ブロック、インターコード化ブロック、またはレイヤ間コード化ブロックを加算器50に与え、参照フレームとして使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロック、インターコード化ブロック、またはレイヤ間コード化ブロックを加算器62に与え得る。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピー符号化ユニット56に与える。
[0064]動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム(または他のコード化ユニット)内でコーディングされている現在のブロックに対する参照フレーム(または他のコード化ユニット)内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、絶対値差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロックにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、参照フレームメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
[0065]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスにおけるビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、参照フレームメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0066]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することに関与し得る。いくつかの例では、動き推定ユニット42および動き補償ユニット44は機能的に統合され得る。現在のビデオブロックのPUについての動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいて指す予測ブロックの位置を特定し得る。加算器50は、以下で説明するように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。いくつかの実施形態では、動き推定ユニット42はルーマ成分に対して動き推定を実行し得、動き補償ユニット44は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用し得る。モード選択ユニット40は、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
[0067]イントラ予測ユニット46は、上記で説明したように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、現在ブロックをイントラ予測または計算し得る。特に、イントラ予測ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。
[0068]たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックのひずみおよびレートから比率を計算し得る。
[0069]ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信ビットストリーム中に、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを含み得る。
[0070]ビデオエンコーダ20はレイヤ間予測ユニット66を含み得る。レイヤ間予測ユニット66は、SVCにおいて利用可能である1つまたは複数の異なるレイヤ(たとえば、ベースレイヤまたは参照レイヤ)を使用して現在ブロック(たとえば、EL中の現在ブロック)を予測するように構成される。そのような予測はレイヤ間予測と呼ばれることがある。レイヤ間予測ユニット66は、レイヤ間冗長性を低減するために予測方法を利用し、それによって、コーディング効率を改善し、計算リソース要件を低減する。レイヤ間予測のいくつかの例としては、レイヤ間イントラ予測、レイヤ間動き予測、およびレイヤ間残差予測がある。レイヤ間イントラ予測は、ベースレイヤ中のコロケートブロックの再構成を使用してエンハンスメントレイヤ中の現在ブロックを予測する。レイヤ間動き予測は、ベースレイヤの動き情報を使用してエンハンスメントレイヤ中の動作を予測する。レイヤ間残差予測は、ベースレイヤの残差を使用してエンハンスメントレイヤの残差を予測する。ベースレイヤとエンハンスメントレイヤとが異なる空間解像度を有する場合、空間動きベクトルスケーリングおよび/または時間的スケーリング機能を使用するレイヤ間位置マッピングは、以下でより詳細に説明するように、レイヤ間予測ユニット66によって実行され得る。
[0071]ビデオエンコーダ20は、コーディングされている元のビデオブロックから、モード選択ユニット40からの予測データを減算することによって残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット52は、DCTと概念的に同様である他の変換を実行し得る。たとえば、離散サイン変換(DST)、ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。
[0072]変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成し得る。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
[0073]量子化の後、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースのエントロピーコーディングの場合、コンテキストは、隣接するブロックに基づき得る。エントロピーコーディングユニット56によるエントロピーコーディングの後、符号化されたビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信されるか、または後で送信するかまたは取り出すためにアーカイブされ得る。
[0074]逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照フレームメモリ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、参照フレームメモリ64に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
マルチレイヤビデオエンコーダ
[0075]図2Bは、本開示で説明する態様に従って技法を実装し得るマルチレイヤビデオエンコーダ21の例を示すブロック図である。ビデオエンコーダ21は、SHVCおよびマルチビューコーディングのような、マルチレイヤビデオフレームを処理するように構成され得る。さらに、ビデオエンコーダ21は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。
[0076]ビデオエンコーダ21は、ビデオエンコーダ20Aとビデオエンコーダ20Bとを含み、それらの各々は、図2Aのビデオエンコーダ20として構成され得、ビデオエンコーダ20に関して上記で説明した機能を実行し得る。さらに、参照番号の再利用によって示されるように、ビデオエンコーダ20Aと20Bとは、ビデオエンコーダ20としてシステムとサブシステムとのうちの少なくともいくつかを含み得る。ビデオエンコーダ21は、2つのビデオエンコーダ20Aと20Bとを含むものとして示されているが、ビデオエンコーダ21はそのように限定されず、任意の数のビデオエンコーダ20レイヤを含み得る。いくつかの実施形態では、ビデオエンコーダ21は、アクセスユニット内のピクチャまたはフレームごとにビデオエンコーダ20を含み得る。たとえば、5個のピクチャを含むアクセスユニットは、5個のエンコーダレイヤを含むビデオエンコーダによって処理されてもよく、符号化されてもよい。いくつかの実施形態では、ビデオエンコーダ21は、アクセスユニット内のフレームよりも多くのエンコーダレイヤを含み得る。いくつかのそのようなケースでは、ビデオエンコーダレイヤのうちのいくつかは、いくつかのアクセスユニットを処理する際に非アクティブであり得る。
[0077]ビデオエンコーダ20Aと20Bとに加えて、ビデオエンコーダ21はリサンプリングユニット90を含み得る。リサンプリングユニット90は、たとえばエンハンスメントレイヤを作成するために、場合によっては受信されたビデオフレームのベースレイヤをアップサンプリングし得る。リサンプリングユニット90は、受信されたフレームのベースレイヤに関連付けられる特定の情報をアップサンプリングし得るが、他の情報はアップサンプリングできない。たとえば、リサンプリングユニット90は、ベースレイヤの空間サイズまたはピクセル数をアップサンプリングし得るが、スライスの数またはピクチャオーダーカウントは一定のままでよい。場合によっては、リサンプリングユニット90は、受信されたビデオを処理しない場合があり、および/または任意であり得る。たとえば、場合によっては、モード選択ユニット40がアップサンプリングを実行し得る。いくつかの実施形態では、リサンプリングユニット90は、スライス境界ルールのセットおよび/またはラスタ走査ルールを順守するために、レイヤをアップサンプリングして、1つまたは複数のスライスを再編成、再定義、修正、または調整するように構成される。主に、ベースレイヤ、またはアクセスユニット内の下位層のアップサンプリングとして説明したが、場合によっては、リサンプリングユニット90はレイヤをダウンサンプリングし得る。たとえば、ビデオのストリーミング中に帯域幅が低減されている場合、フレームはアップサンプリングではなくダウンサンプリングされ得る。リサンプリングユニット90は、トリミングおよび/またはパディング操作も実行するようにさらに構成され得る。
[0078]リサンプリングユニット90は、下位層エンコーダ(たとえば、ビデオエンコーダ20A)の復号されたピクチャバッファ114からピクチャまたはフレーム(あるいは、ピクチャに関連付けられるピクチャ情報)を受信して、ピクチャ(または、受信されたピクチャ情報)をアップサンプリングするように構成され得る。次いで、このアップサンプリングされたピクチャは、下位層エンコーダと同じアクセスユニット内のピクチャを符号化するように構成された上位層エンコーダ(たとえば、ビデオエンコーダ20B)のモード選択ユニット40に提供され得る。場合によっては、上位層エンコーダは、下位層エンコーダから除去された1つのレイヤである。他の場合では、図2Bのレイヤ0ビデオエンコーダとレイヤ1エンコーダとの間に、1つまたは複数の上位層エンコーダがあり得る。
[0079]場合によっては、リサンプリングユニット90は、省略または迂回され得る。そのような場合、ビデオエンコーダ20Aの復号されたピクチャバッファ64からのピクチャは、直接、または少なくともリサンプリングユニット90、ビデオエンコーダ20Bのモード選択ユニット40に提供されることなしに提供され得る。たとえば、ビデオエンコーダ20Bに提供されたビデオデータ、およびビデオエンコーダ20Aの復号されたピクチャバッファ64からの参照ピクチャが、同じサイズまたは解像度である場合、参照ピクチャは、任意のリサンプリングなしにビデオエンコーダ20Bに提供され得る。
[0080]いくつかの実施形態では、ビデオエンコーダ21は、ビデオデータがビデオエンコーダ20Aに提供される前に、ダウンサンプリングユニット94を用いて下位層エンコーダに提供されるべきビデオデータをダウンサンプリングする。あるいは、ダウンサンプリングユニット94は、ビデオデータのアップサンプリングまたはダウンサンプリングが可能なリサンプリングユニット90であり得る。他の実施形態では、ダウンサンプリングユニット94は省略され得る。
[0081]図2Bに示されるように、ビデオエンコーダ21は、マルチプレクサ98、すなわちmuxをさらに含み得る。mux98は、組み合わされたビットストリームをビデオエンコーダ21から出力することができる。組み合わされたビットストリームは、ビデオエンコーダ20Aと20Bとの各々からビットストリームを取って、所与の時間にどのビットストリームが出力されるかをオルタネート(alternate)することによって作成され得る。場合によっては、2つ(または、2つ以上のビデオエンコーダレイヤの場合は、より多数)のビットストリームからのビットは、一度に1ビットが交互にオルタネートされるが、多くの場合、ビットストリームは異なるように組み合わせられる。たとえば、出力ビットストリームは、選択されたビットストリームを一度に1ブロックをオルタネートすることによって作成され得る。別の例では、出力ビットストリームは、ビデオエンコーダ20Aと20Bとの各々から非1:1比のブロックを出力することによって作成され得る。たとえば、2つのブロックは、ビデオエンコーダ20Aから出力されたブロックごとにビデオエンコーダ20Bから出力され得る。いくつかの実施形態では、mux98からの出力ストリームは事前にプログラムされ得る。他の実施形態では、mux98は、ソースデバイス12上のプロセッサからなどの、ビデオエンコーダ21の外部のシステムから受信された制御信号に基づいて、ビデオエンコーダ20A、20Bからのビットストリームを組み合わせることができる。制御信号は、ビデオソース18からのビデオの解像度またはビットレートに基づいて、チャネル16の帯域幅に基づいて、ユーザに関連付けられるサブスクリプション(たとえば、有料購読対、無料購読)に基づいて、あるいは、ビデオエンコーダ21から所望される解像度出力を決定するための他の任意の要因に基づいて生成され得る。
ビデオデコーダ
[0082]図3Aは、本開示で説明する態様による技法を実装し得るビデオデコーダの例を示すブロック図である。ビデオデコーダ30は、HEVCのような、ビデオビットストリームの単一のレイヤを処理するように構成され得る。さらに、ビデオデコーダ30は、これに限定されないが、図4〜図5に関連して上記および以下でより詳細に説明する、リサンプリングプロセスおよび関連プロセスにおける中間データのダイナミックレンジ制御のための方法を含む、本開示の技法のうちのいくつか、またはすべてを実行するように構成され得る。一例として、レイヤ間予測ユニット75は、本開示で説明する技法のいずれかまたはすべてを実行するように構成され得る。ただし、本開示の態様はそのように限定されない。いくつかの例では、本開示で説明する技法は、ビデオデコーダ30の様々な構成要素間で共有され得る。いくつかの例では、さらに、または代替で、プロセッサ(図示せず)は、本開示において説明する技法のいずれかまたはすべてを実行するように構成され得る。
[0083]説明のために、本開示は、HEVCコーディングの文脈でビデオデコーダ30を説明する。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。図3Aのデコーダ30は、コーデックの単一のレイヤを示している。しかしながら、図3Bを参照してさらに説明するように、ビデオデコーダ30のうちのいくつかまたはすべては、マルチレイヤコーデックによる処理のために複製され得る。
[0084]図3Aの例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、レイヤ間予測ユニット75と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームメモリ82と、加算器80とを含む。いくつかの実施形態では、動き補償ユニット72および/またはイントラ予測ユニット74はレイヤ間予測を実行するように構成され得、その場合、レイヤ間予測ユニット75は省略され得る。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2A)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを生成し得、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて予測データを生成し得る。参照フレームメモリ82は、復号されたピクチャバッファを含み得る。復号されたピクチャバッファは、その通常の意味を有する、およびいくつかの実施形態では、参照フレームのビデオコーデックが管理するデータ構造を指す、広義の用語である。
[0085]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、量子化係数、動きベクトルまたはイントラ予測モードインジケータ、および他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルツーと他の予測シンタックス要素とを動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
[0086]ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(たとえば、B、PまたはGPB)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照フレームメモリ82に記憶された参照ピクチャに基づいてデフォルト構成技法を用いて、参照フレームリスト、リスト0とリスト1とを構成し得る。動き補償ユニット72は、動きベクトルと他のシンタックス要素とをパースすることによって現在のビデオスライスのビデオブロックのための予測情報を決定し、その予測情報を使用して、復号されている現在のビデオブロックのための予測ブロックを生成する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
[0087]動き補償ユニット72はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
[0088]ビデオデコーダ30もレイヤ間予測ユニット75を含み得る。レイヤ間予測ユニット75は、SVCにおいて利用可能である1つまたは複数の異なるレイヤ(たとえば、ベースレイヤまたは参照レイヤ)を使用して現在ブロック(たとえば、EL中の現在ブロック)を予測するように構成される。そのような予測はレイヤ間予測と呼ばれることがある。レイヤ間予測ユニット75は、レイヤ間冗長性を低減するために予測方法を利用し、それによって、コーディング効率を改善し、計算リソース要件を低減する。レイヤ間予測のいくつかの例としては、レイヤ間イントラ予測、レイヤ間動き予測、およびレイヤ間残差予測がある。レイヤ間イントラ予測は、ベースレイヤ中のコロケートブロックの再構成を使用してエンハンスメントレイヤ中の現在ブロックを予測する。レイヤ間動き予測は、ベースレイヤの動き情報を使用してエンハンスメントレイヤ中の動作を予測する。レイヤ間残差予測は、ベースレイヤの残差を使用してエンハンスメントレイヤの残差を予測する。ベースレイヤとエンハンスメントレイヤとが異なる空間解像度を有する場合、空間動きベクトルスケーリングおよび/またはレイヤ間位置マッピングは、以下でより詳細に説明するように、時間的スケーリング機能を用いてレイヤ間予測ユニット75によって実行され得る。
[0089]逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された量子化変換係数を逆量子化(inverse quantize)、たとえば、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオデコーダ30によって計算される量子化パラメータQPYの使用を含み得る。
[0090]逆変換ユニット78は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば逆DCT、逆DST、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
[0091]動き補償ユニット72が、動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックのための予測ブロックを生成した後に、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを動き補償ユニット72によって生成された対応する予測ブロックに加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、他のループフィルタも(コーディングループ中またはコーディングループ後のいずれかで)使用され得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照フレームメモリ82に記憶される。参照フレームメモリ82はまた、図1のディスプレイデバイス32などのディスプレイデバイス上での後の表示のための、復号されたビデオを記憶する。
マルチレイヤデコーダ
[0092]図3Bは、本開示で説明する態様に従って技法を実装し得るマルチレイヤビデオデコーダ31の例を示すブロック図である。ビデオデコーダ31は、SHVCおよびマルチビューコーディングのような、マルチレイヤビデオフレームを処理するように構成され得る。さらに、ビデオデコーダ31は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。
[0093]ビデオデコーダ31は、ビデオデコーダ30Aとビデオデコーダ30Bとを含み、それらの各々は、図3Aのビデオデコーダ30として構成され得、ビデオデコーダ30に関して上記で説明した機能を実行し得る。さらに、参照番号の再利用によって示されるように、ビデオデコーダ30Aと30Bとは、ビデオデコーダ30としてシステムとサブシステムとのうちの少なくともいくつかを含み得る。ビデオデコーダ31は、2つのビデオデコーダ30Aと30Bとを含むものとして示されているが、ビデオデコーダ31はそのように限定されず、任意の数のビデオデコーダ30レイヤを含み得る。いくつかの実施形態では、ビデオデコーダ31は、アクセスユニット内のピクチャまたはフレームごとにビデオデコーダ30を含み得る。たとえば、5個のピクチャを含むアクセスユニットは、5個のデコーダレイヤを含むビデオデコーダによって処理されてもよく、復号されてもよい。いくつかの実施形態では、ビデオデコーダ31は、アクセスユニット内のフレームよりも多くのデコーダレイヤを含み得る。いくつかのそのようなケースでは、ビデオデコーダレイヤのうちのいくつかは、いくつかのアクセスユニットを処理する際に非アクティブであり得る。
[0094]ビデオデコーダ30Aと30Bとに加えて、ビデオデコーダ31はアップサンプリングユニット92を含み得る。いくつかの実施形態では、アップサンプリングユニット92は、フレームまたはアクセスユニットのための参照ピクチャリストに追加されるべきエンハンストレイヤを作成するために、受信されたビデオフレームのベースレイヤをアップサンプリングし得る。このエンハンストレイヤは、参照フレームメモリ82(たとえば、その復号されたピクチャバッファなど)に記憶され得る。いくつかの実施形態では、アップサンプリングユニット92は、図2Aのリサンプリングユニット90に関して説明する実施形態のうちのいくつかまたはすべてを含み得る。いくつかの実施形態では、アップサンプリングユニット92は、スライス境界ルールのセットおよび/またはラスタ走査ルールを順守するために、レイヤをアップサンプリングして、1つまたは複数のスライスを再編成、再定義、修正、または調整するように構成される。場合によっては、アップサンプリングユニット92は、受信されたビデオフレームのレイヤをアップサンプリングおよび/またはダウンサンプリングするように構成されたリサンプリングユニットであり得る。
[0095]アップサンプリングユニット92は、下位層デコーダ(たとえば、ビデオデコーダ30A)の復号されたピクチャバッファ82からピクチャまたはフレーム(あるいは、ピクチャに関連付けられるピクチャ情報)を受信して、ピクチャ(または、受信されたピクチャ情報)をアップサンプリングするように構成され得る。次いで、アップサンプリングされたピクチャは、下位層デコーダと同じアクセスユニット内のピクチャを復号するように構成された上位層デコーダ(たとえば、ビデオデコーダ30B)のモード選択ユニット71に提供され得る。場合によっては、上位層デコーダは、下位層デコーダから除去された1つのレイヤである。他の場合では、図3Bのレイヤ0デコーダとレイヤ1デコーダとの間に、1つまたは複数の上位層デコーダがあり得る。
[0096]場合によっては、アップサンプリングユニット92は、省略または迂回され得る。そのような場合、ビデオデコーダ30Aの復号されたピクチャバッファ82からのピクチャは、直接、または少なくともアップサンプリングユニット92、ビデオデコーダ30Bのモード選択ユニット71に提供されることなしに提供され得る。たとえば、ビデオデコーダ30Bに提供されたビデオデータ、およびビデオデコーダ30Aの復号されたピクチャバッファ82からの参照ピクチャが、同じサイズまたは解像度である場合、参照ピクチャは、アップサンプリングなしにビデオデコーダ30Bに提供され得る。さらに、いくつかの実施形態では、アップサンプリングユニット92は、ビデオデコーダ30Aの復号されたピクチャバッファ82から受信された参照ピクチャをアップサンプリングまたはダウンサンプリングするように構成されたリサンプリングユニット90であり得る。
[0097]図3Bに示されるように、ビデオデコーダ31は、デマルチプレクサ99、すなわちdemuxをさらに含み得る。demux99は、符号化されたビデオビットストリームを複数のビットストリームに分割することができ、demux99によって出力された各ビットストリームが、異なるビデオデコーダ30Aと30Bとに提供されている。複数のビットストリームは、ビットストリームを受信することによって作成され得、ビデオデコーダ30Aと30Bとの各々は、所与の時間にビットストリームの一部分を受信する。場合によっては、demux99で受信されたビットストリームからのビットは、ビデオデコーダの各々(たとえば、図3Bの例におけるビデオデコーダ30Aと30B)の間で一度に1ビットがオルタネートされ得るが、多くの場合、ビットストリームは異なるように分割される。たとえば、ビットストリームは、どのビデオデコーダがビットストリームを一度に1ブロック受信するかをオルタネートすることによって分割され得る。別の例では、ビットストリームは、ビデオデコーダ30Aと30Bとの各々へのブロックの非1:1比によって分割され得る。たとえば、2つのブロックは、ビデオデコーダ30Aに提供されたブロックごとにビデオデコーダ30Bに提供され得る。いくつかの実施形態では、demux99によるビットストリームの分割は事前にプログラムされ得る。他の実施形態では、demux99は、宛先デバイス14上のプロセッサからなどの、ビデオデコーダ31の外部のシステムから受信された制御信号に基づいて、ビットストリームを分割することができる。制御信号は、入力インターフェース28からのビデオの解像度またはビットレートに基づいて、チャネル16の帯域幅に基づいて、ユーザに関連付けられるサブスクリプション(たとえば、有料購読対、無料購読)に基づいて、あるいは、ビデオデコーダ31によって取得可能な解像度を決定するための他の任意の要因に基づいて生成され得る。
リサンプリングプロセスにおける中間データのダイナミックレンジ制御
[0098]SHVCでは、参照レイヤ画像は、たとえば、エンハンスメントレイヤにおけるレイヤ間予測のために、リサンプリングされる必要がある場合がある。リサンプリングは、参照レイヤ画像から輝度サンプルにリサンプリングフィルタを適用することによって実行され得る。たとえば、nタップフィルタが適用され得る。リサンプリングプロセスは、2次元(2D)リサンプリングのための2つのステップで発生し得る。たとえば、2D分離可能補間フィルタが適用され得る。第1に、輝度サンプルに水平リサンプリングが実行されてよく、次いで、輝度サンプルに垂直リサンプリングが実行され得る。たとえば、垂直リサンプリングは、水平リサンプリングプロセスからビデオ情報出力上に実行され得る。リサンプリングフィルタは、入力として輝度サンプルを受信することができ、水平リサンプリングプロセスは、入力輝度サンプルに基づいて中間出力を生成することができる。次いで、中間出力は、垂直リサンプリングステップのための入力として使用され得る。いくつかの状況では、水平リサンプリングプロセスは、中間出力が入力輝度サンプルよりも多くのビットを有する(たとえば、より大きいビット深度を有する)ように、入力輝度サンプルにさらなるビットを追加することができる。さらなるビットは、データ範囲を非常に大きくして、垂直リサンプリングステップの計算の複雑性に重大な影響を有するようにすることができる。たとえば、中間データのバッファは、データ範囲が高くなるにつれて比例して増加され得る。また、補間プロセス、特に乗算演算の複雑性は、入力データのビット深度に強く依存する場合がある。さらに、特定の所定の最大値を超えないビット深度を有する入力を必要とする特定の計算命令セットがある。たとえば、特定の16ビットの命令セットは、16ビットを有する(たとえば、16ビットのビット深度を有する)入力にのみ使用され得る。
[0099]フィルタ係数は6ビットの精度で量子化することができ、それは動き補償補間フィルタの精度と同じであり得る。SHVCの初期のバージョンの2D分離可能補間プロセスでは、第1の補間ステップの出力(たとえば、水平方向)は第2の補間ステップの入力(たとえば、垂直方向)として直接使用されていた。2次元補間ステップの間の中間データは、第1の補間ステップからさらなるビットが追加されるので、たとえば特定のビット数を超えて拡張することができる。たとえば、第1の補間ステップは8ビットを追加することができ、入力信号が8ビットを上回る場合、2次元補間ステップの間の中間データは16ビットを超える場合がある。これは、ソフトウェアソリューションだけでなくハードウェアにおけるリサンプリングフィルタの実装コストを増やすことがある。たとえば、単一命令複数データ(SIMD)命令のような命令レベル並列性が使用されている場合は特に、リサンプリングフィルタの計算の複雑性を増加させることがある。ほとんどの既存のCPUのSIMD命令は、8ビットまたは16ビットの精度で単一のデータを扱うことができる。したがって、水平リサンプリングプロセスからの中間出力のビット深度を制限する(たとえば、限定または減少)ことが有利である。
[0100]これらおよび他の問題に対処するために、本開示に記載された技法は、初期リサンプリングプロセス(たとえば、水平リサンプリング)から中間出力のビット深度を指定されたビット数に制限することができる。いくつかの実施形態では、ビット深度を指定されたビット数に制限することは、中間出力を特定のビット数だけ右シフトすること(たとえば、右シフト動作「>>」を適用すること)によって実現され得る。中間出力を右シフトするビット数は、リサンプリングフィルタへの入力輝度サンプルのビット深度に基づいて決定され得る。たとえば、中間出力を16ビットに制限することができ、中間出力を右シフトするビット数は、入力輝度サンプルのビット深度から8ビットを減算することによって算出され得る。ビットシフト数は、入力輝度サンプルのビット数に基づいて動的に決定され得る。このように中間出力を制限することによって、より正確な結果をもたらして丸め誤差を減少させることができ、またコーディングデバイスおよびプロセスが特定のより効率的なコーディング命令セットを利用することを可能にすることができる。
[0101]いくつかの実施形態では、垂直リサンプリングプロセスからの出力もまた、同様の方法で制限され得る。特定の実施形態では、垂直リサンプリングプロセスは、水平リサンプリングプロセスの前に実行され得る。本技法は、3ステップのプロセスの場合にも適用され得る。たとえば、3ステップのプロセスは、2D分離可能補間プロセスとカラーマッピングプロセスとを含むことができる。この場合、第1のステップからの中間出力は所定のビット深度に制限されてよく、第2のステップの中間出力もまた所定のビット深度に制限され得る。シフトするビット数は、入力輝度サンプルのビット深度、および/または前のステップからの中間出力のビット深度に基づき得る。一般的に、参照レイヤ画像はアップサンプリングされるが、いくつかの実施形態では、エンハンスメントレイヤ画像はダウンサンプリングされ得る。
[0102]本技法に関連する特定の詳細を以下で説明する。いくつかの実施形態では、輝度サンプルリサンプリングプロセス、または輝度サンプル補間プロセスは、入力として受信することができる。
・輝度参照サンプルアレイrlPicSampleL、および、
・現在の画像の左上の輝度サンプルに関連する輝度サンプル位置(xP,yP)
ここで、rlPicSampleLは参照レイヤ画像の輝度サンプルアレイを指し、(xP,yP)は処理されている現在のピクセルのサンプル位置を指す。入力に基づいて、プロセスは、リサンプリングプロセスによって生成された輝度サンプル値を指す、リサンプリングされた輝度サンプル値rsLumaSampleを出力として生成することができる。表1は、輝度リサンプリングプロセスのために使用され得る、p=0...15およびX=0...7である8タップフィルタ係数fL[p,X]の一例を指定する。
Figure 2016523476
[0103]SHVCワーキングドラフトの初期のバージョンでは、リサンプリングされた輝度サンプルの値rsLumaSampleは、以下の順序のステップを適用することによって導出され得る。
・n=0・・・7であるサンプル値tempArray[n]は、以下のように導出され得る。
Figure 2016523476
Figure 2016523476
Figure 2016523476
・リサンプリングされた輝度サンプル値rsLumaSampleは、以下のように導出され得る。
Figure 2016523476
Figure 2016523476
上式で、(xRef,yRef)は参照レイヤ画像内の配置された輝度サンプル整数ピクセル位置を表し、(xPhase,yPhase)は水平方向および垂直方向に補間されるべき端数サンプルの位相を表し、BitDepthYは現在の画像の輝度ビット深度を表す。
[0104]本技法の特定の態様によれば、リサンプリングされた輝度サンプルの値rsLumaSampleは、以下の順序のステップを適用することによって導出され得る。
・n=0・・・7であるサンプル値tempArray[n]は、以下のように導出され得る。
Figure 2016523476
Figure 2016523476
Figure 2016523476
上式で、shift1は、shift1=RefLayerBitDepthY−8として定義され、ここでRefLayerBitDepthYは参照レイヤ画像の輝度ビット深度を指す。
・リサンプリングされた輝度サンプル値rsLumaSampleは、以下のように導出され得る。
Figure 2016523476
上式で、shift2はshift2=12−(BitDepthY−8)=20−BitDepthYと定義され、オフセットはoffset=1<<(shift2−1)と定義され、ここでBitDepthYは現在の画像の輝度ビット深度を指す。shift2およびオフセットを上記のように定義することによって、リサンプリングされたluamサンプル値のデータ範囲は、現在の画像の輝度サンプルのデータ範囲と同じであり得る。
Figure 2016523476
上式で、(xRef,yRef)は参照レイヤ画像内の配置された輝度サンプル整数ピクセル位置を表し、(xPhase,yPhase)は水平方向および垂直方向に補間されるべき端数サンプルの位相を表す。
[0105]このように、本技法は、16ビット精度内で2D分離可能アップサンプリングフィルタの中間データのダイナミックレンジを制御することができる。第1のアップサンプリングステップ後の右シフトビットは、入力信号のビット深度によって決定され得る。例として16ビットが使用されるが、ビット精度に応じて任意のビット数が選択され得る。
[0106]本技法に関連する特定の詳細が、以下で図4および図5を参照して説明される。本開示を通じて使用される様々な用語は、それらの通常の意味を有する広義の用語である。さらに、いくつかの実施形態では、特定の用語は以下のビデオ概念に関連する。その用語が現在の標準(たとえば、HEVC)で使用される場合、画像はビデオ画像を指すことができる。
リサンプリングプロセスにおける中間データのダイナミックレンジ制御のための方法
[0107]図4は、本開示の態様による、リサンプリングプロセスにおける中間データのダイナミックレンジ制御のための例示的な方法を示すフローチャートである。プロセス400は、実施形態に応じて、エンコーダ(たとえば、図2A、図2B等に示されるエンコーダ)、デコーダ(たとえば、図3A、図3B等に示されるデコーダ)、または他の何らかの構成要素によって実行され得る。プロセス400のブロックは、図3Bのデコーダ31に関連して説明されているが、プロセス400は上述のエンコーダなどの他の構成要素によって実行され得る。デコーダ31のレイヤ1ビデオデコーダ30B、および/またはデコーダ31のレイヤ0デコーダ30Aは、実施形態に応じてプロセス400を実行することができる。図4に関連して説明されるすべての実施形態は別々に実装されてもよく、相互に組み合わせて実装されてもよい。プロセス400に関連する特定の詳細は上記で説明される。
[0108]プロセス400はブロック401から開始する。デコーダ31は、アップサンプリングされたビデオ情報に関連するビデオ情報を記憶するためのメモリ(たとえば、参照フレームメモリ82)を含み得る。
[0109]ブロック402で、デコーダ31がビデオ情報を取得する。たとえば、ビデオ情報は、アップサンプリングされている参照レイヤ画像の輝度サンプルを含み得る。輝度サンプルは、現在の画像の左上の輝度サンプルに関連し得る。
[0110]ブロック403で、デコーダ31が、中間出力を生成するために、第1の次元においてビデオ情報をアップサンプリングする。2Dリサンプリングにおいて、第1の次元は水平方向であり得る。
[0111]ブロック404で、デコーダ31が、中間出力を所定のビット深度に制限する。所定のビット深度は必要に応じて選択され得る。一実施形態では、所定のビット深度は16ビットであり得る。いくつかの実施形態では、デコーダ31が、ビデオ情報のビット深度を決定することと、ビデオ情報のビット深度に基づいて中間出力をシフトするビット数を決定することと、中間出力をビット数だけシフトすることとによって、中間出力を所定のビット深度に制限することができる。デコーダ31は、右シフト動作を使用して、中間出力をビット数だけシフトすることができる。一実施形態では、中間出力をシフトするビット数は、ビデオ情報のビット深度−8ビットとして定義され得る。
[0112]特定の実施形態では、デコーダ31は、ビット数に基づいて中間出力をシフトするかどうかを決定して、中間出力をシフトすると決定することに応答して、中間出力をビット数だけシフトする。
[0113]ブロック405で、デコーダ31が、第2の次元において制限された中間出力をアップサンプリングし、第2の次元は第1の次元と直交している。2Dリサンプリングにおいて、第2の次元は垂直方向であり得る。
[0114]特定の実施形態では、デコーダ31は、第2の中間出力を生成するために、制限された中間出力をアップサンプリングして、第2の中間出力を第2の所定のビット深度に制限する。たとえば、デコーダ31が、取得されたビデオ情報のアップサンプリングされたバージョンを生成するために、第2の中間出力を第2の所定のビット深度に制限することができる。一実施形態では、第2の所定のビット深度は、現在のエンハンスメントレイヤ画像のビット深度であり得る。いくつかの実施形態では、デコーダ31は、ビデオ情報のビット深度に基づいて、第2の中間出力をシフトする第2のビット数を決定することと、第2の中間出力を第2のビット数だけシフトすることとによって、第2の中間出力を第2の所定のビット深度に制限することができる。ビデオ情報は、実施形態に応じて、参照レイヤに関連してもよく、エンハンスメントレイヤに関連してもよい。たとえば、デコーダ31は、参照レイヤビデオ情報のビット深度に基づいて、第2の中間出力をシフトする第2のビット数を決定することができる。あるいは、デコーダ31は、エンハンスメントレイヤビデオ情報のビット深度に基づいて、第2の中間出力をシフトする第2のビット数を決定することができる。デコーダ31は、右シフト動作を使用して、第2の中間出力を第2のビット数だけシフトすることができる。一実施形態では、第2の中間出力をシフトする第2のビット数は、20ビット−エンハンスメントレイヤのビデオ情報のビット深度として定義され得る。
[0115]デコーダ31は、第1の次元においてビデオ情報をアップサンプリングして、第2の次元において制限された中間出力をアップサンプリングするためにリサンプリングフィルタを適用することができる。
[0116]特定の実施形態では、本技法は3Dビデオ情報に適用することができる。たとえば、デコーダ31が、第2の中間出力を生成するために、制限された中間出力をアップサンプリングして、第2の中間出力を第2の所定のビット深度に制限して、制限された第2の中間出力を第3の次元においてアップサンプリングすることができ、第3の次元は、第1の次元および第2の次元と直交している。デコーダ31が、第2の中間出力のビット深度を決定することによって、第2の中間出力を第2の所定のビット深度に制限して、第2の中間出力のビット深度に基づいて第2の中間出力をシフトするビット数を決定して、第2の中間出力をビット数だけシフトすることができる。プロセス400は、ブロック406において終了する。
[0117]プロセス400におけるブロックは実施形態に応じて追加および/または省略されてよく、プロセス400のブロックは実施形態に応じて異なる順序で実行されて得る。本開示においてリサンプリングに関連して説明される任意の特徴および/または実施形態は、別々に実装されてもよく、それらの任意の組合せで実装されてもよい。たとえば、図4に関連して説明される任意の特徴および/または実施形態は、図5に関連して説明される任意の特徴および/または実施形態との任意の組合せで実装されてもよく、その逆でもよい。
[0118]図5は、本開示の態様による、リサンプリングプロセスにおける中間データのダイナミックレンジ制御のための例示的な方法を示すフローチャートである。プロセス500は、実施形態に応じて、エンコーダ(たとえば、図2A、図2B等に示されるエンコーダ)、デコーダ(たとえば、図3A、図3B等に示されるデコーダ)、または他の何らかの構成要素によって実行され得る。プロセス500のブロックは、図3Bのデコーダ31に関連して説明されているが、プロセス500は上述のエンコーダなどの他の構成要素によって実行され得る。デコーダ31のレイヤ1ビデオデコーダ30B、および/またはデコーダ31のレイヤ0デコーダ30Aは、実施形態に応じてプロセス500を実行することができる。図5に関連して説明されるすべての実施形態は別々に実装されてもよく、相互に組み合わせて実装されてもよい。プロセス500に関連する特定の詳細は上記で、たとえば図4に関連して説明される。
[0119]プロセス500はブロック501から開始する。デコーダ31は、アップサンプリングされたビデオ情報に関連するビデオ情報を記憶するためのメモリ(たとえば、参照フレームメモリ82)を含み得る。
[0120]ブロック502で、デコーダ31がビデオ情報を取得する。たとえば、ビデオ情報は、アップサンプリングされている参照レイヤ画像の輝度サンプルを含み得る。輝度サンプルは、現在の画像の左上の輝度サンプルに関連し得る。
[0121]ブロック503で、デコーダ31が、中間出力を生成するために、第1の次元においてビデオ情報をアップサンプリングする。2Dリサンプリングにおいて、第1の次元は水平方向であり得る。
[0122]ブロック504で、デコーダ31が、ビデオ情報のビット深度に基づいて、中間出力をシフトするビット数を決定する。一実施形態では、シフトするビット数は、16ビット精度に基づき得る。たとえば、中間出力は、合計16ビットに限定され得るようにシフトされる。
[0123]ブロック505で、デコーダ31が、中間出力をビット数だけシフトする。デコーダ31は、右シフト動作を使用して、中間出力をビット数だけシフトすることができる。その結果、デコーダ31は、シフトされた中間出力を生成することができる。一実施形態では、中間出力をシフトするビット数は、ビデオ情報のビット深度−8ビットとして定義され得る。
[0124]ブロック506で、デコーダ31が、第1の次元と直交する第2の次元においてシフトされた中間出力をアップサンプリングする。2Dリサンプリングにおいて、第2の次元は垂直方向であり得る。プロセス500は、ブロック507において終了する。
[0125]プロセス500におけるブロックは実施形態に応じて追加および/または省略されてよく、プロセス500のブロックは実施形態に応じて異なる順序で実行され得る。本開示においてリサンプリングに関連して説明される任意の特徴および/または実施形態は、別々に実装されてもよく、それらの任意の組合せで実装されてもよい。たとえば、図5に関連して説明される任意の特徴および/または実施形態は、図4に関連して説明される任意の特徴および/または実施形態との任意の組合せで実装されてもよく、その逆でもよい。
用語
[00126]上記の開示は特定の実施形態を記載しているが、多くの変形形態が可能である。たとえば、上述されたように、上記の技法は3Dビデオコーディングに適用され得る。3Dビデオのいくつかの実施形態では、参照レイヤ(たとえば、ベースレイヤ)は、ビデオの第1のビューを表示するのに十分なビデオ情報を含み、エンハンスメントレイヤは、参照レイヤに比べてさらなるビデオ情報を含み、その結果、参照レイヤおよびエンハンスメントレイヤは一緒に、ビデオの第2のビューを表示するのに十分な情報を含む。これらの2つのビューは、立体的な画像を生成するために使用され得る。上記で説明されたように、本開示の態様に従って、エンハンスメントレイヤ内でビデオユニットを符号化または復号するとき、参照レイヤからの動き情報は、さらなる暗黙的な仮説を識別するために使用され得る。これにより、3Dビデオのビットストリームについてのより大きいコーディング効率が実現され得る。
[00127]例によっては、本明細書で説明された技法のうちいずれかの、いくつかの行為またはイベントは、異なるシーケンスで実行され得、追加、マージ、または完全に除外され得る(たとえば、すべての説明した作用またはイベントが、本技法の実施のために必要であるとは限らない)ことを認識されたい。さらに、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して、同時に実行され得る。
[00128]本明細書で開示される情報および信号は、多種多様な技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
[00129]本明細書で開示した実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、概してそれらの機能に関して上記で説明した。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈されるべきではない。
[00130]本明細書で説明した技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなど、様々なデバイスのいずれかにおいて実装され得る。モジュールまたは構成要素として説明した任意の特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、上記で説明した方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、フラッシュメモリ、磁気または光学データ記憶媒体など、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波など、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
[00131]プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価の集積回路もしくはディスクリート論理回路など、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明する技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPおよびマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明する技法の実装に好適な他の構造または装置のいずれかを指す。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアモジュールもしくはハードウェアモジュール内に提供され得、または複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。
[0132]本明細書に記載のコーディング技法は、例示的なビデオ符号化および復号システムにおける実施形態であり得る。システムは、後に宛先デバイスによって復号されるべき符号化されたビデオデータを提供するソースデバイスを含む。特に、ソースデバイスは、コンピュータ可読媒体を介してビデオデータを宛先デバイスに提供する。ソースデバイスおよび宛先デバイスは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオストリーミングデバイスなどを含む、広い範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイスおよび宛先デバイスはワイヤレス通信のために装備され得る。
[0133]宛先デバイスは、コンピュータ可読媒体を介して復号されるべき符号化されたビデオデータを受信することができる。コンピュータ可読媒体は、符号化されたビデオデータをソースから宛先デバイスに移動させることが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体は、ソースデバイス12が、符号化されたビデオデータをリアルタイムに宛先デバイスに直接伝送することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に応じて変調されて、宛先デバイスに伝送され得る。通信媒体は、無線周波数(RF)スペクトル、あるいは1つまたは複数の物理的伝送回線などの、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネット等のグローバルネットワークなどの、パケットベースのネットワークの一部を形成することができる。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイスから宛先デバイスへの通信を容易にするために有用であり得る他の何らかの装置を含み得る。
[0134]いくつかの例では、符号化されたデータが、出力インターフェースから記憶デバイスに出力され得る。同様に、符号化されたデータは、入力インターフェースによって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、ブルーレイディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化されたビデオデータを記憶するための他の何らかの適切なデジタル記憶媒体などの、様々な分散された、またはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる例では、記憶デバイスが、ソースデバイスによって生成された、符号化されたビデオを記憶することができるファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイスは、ストリーミングまたはダウンロードを介して、記憶デバイスから記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶して、その符号化されたビデオデータを宛先デバイスに伝送することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、ウェブサーバ(たとえば、ウェブサイト用の)、FTPサーバ、ネットワーク接続型記憶(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイスは、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化されたビデオデータにアクセスすることができる。これは、ファイルサーバに記憶された、符号化されたビデオデータにアクセスするために適したワイヤレスチャネル(たとえば、Wi−Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデム等)、または両方の組合せを含み得る。記憶デバイスからの符号化されたビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、またはそれらの組合せであり得る。
[0135]本開示の技法は、必ずしもワイヤレスアプリケーションまたは設定に限定されるとは限らない。本技法は、無線テレビ放送、ケーブルテレビ伝送、衛星テレビ伝送、動的適応型HTTPストリーミング(DASH)などのインターネットストリーミングビデオ伝送、データ記憶媒体に符号化されたデジタルビデオなどの、データ記憶媒体に記憶されたデジタルビデオの復号、または他のアプリケーションなどの、様々なマルチメディアアプリケーションのいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システムは、ビデオストリーミング、ビデオ再生、ビデオ放送、および/またはビデオ電話などのアプリケーションをサポートするために、一方向または双方向ビデオ伝送をサポートするように構成され得る。
[0136]一例では、ソースデバイスは、ビデオソースと、ビデオエンコーダと、出力インターフェースとを含む。宛先デバイスは、入力インターフェースと、ビデオエンコーダと、ディスプレイデバイスとを含み得る。ソースデバイスのビデオエンコーダは、本明細書に開示された技法を適用するように構成され得る。他の例では、ソースデバイスと宛先デバイスは、他の構成要素または配置を含み得る。たとえば、ソースデバイスは、外部カメラなどの外部のビデオソースからビデオデータを受信することができる。同様に、宛先デバイスは、一体型ディスプレイデバイスを含むのではなく、外部のディスプレイデバイスとインターフェースすることができる。
[0137]上記の例示的なシステムは、一例に過ぎない。ビデオデータを並列に処理するための技法は、任意のデジタルビデオ符号化および/または復号化デバイスによって実行され得る。本開示の技法は、一般的にビデオエンコーディングデバイスによって実行されるが、本技法はまた、典型的に「CODEC」と呼ばれるビデオエンコーダ/デコーダによって実行され得る。さらに、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイスと宛先デバイスは、ソースデバイスが、宛先デバイスに伝送するための符号化されたビデオデータを生成するようなコーディングデバイスの単なる例である。いくつかの例では、ソースデバイスと宛先デバイスは、デバイスのそれぞれがビデオ符号化および復号化構成要素を含むように、実質的に対称的に動作することができる。したがって、例示的なシステムは、たとえば、ビデオストリーミング、ビデオ再生、ビデオ放送、またはビデオ電話のための、ビデオデバイス間の一方向または双方向ビデオ伝送をサポートすることができる。
[0138]ビデオソースは、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどのビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソースは、ソースビデオとしてのコンピュータグラフィックベースのデータ、またはライブビデオと、アーカイブされたビデオと、コンピュータ生成ビデオとの組合せを生成することができる。場合によっては、ビデオソースがビデオカメラの場合、ソースデバイスと宛先デバイスは、いわゆるカメラ付き電話またはビデオ電話を形成することができる。しかしながら、上述のように、本開示に記載された技法は、一般的なビデオコーディングに適用可能でよく、ワイヤレスおよび/またはワイヤードアプリケーションに適用され得る。各場合において、キャプチャされた、事前にキャプチャされた、またはコンピュータで生成されたビデオは、ビデオエンコーダによって符号化され得る。次いで、符号化されたビデオ情報は、出力インターフェースによってコンピュータ可読媒体上に出力され得る。
[0139]上述のように、コンピュータ可読媒体は、ワイヤレスブロードキャストまたはワイヤードネットワーク伝送などの一時的媒体を含んでもよく、ハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含んでもよい。いくつかの例では、ネットワークサーバ(図示せず)が、ソースデバイスから符号化されたビデオデータを受信して、たとえばネットワーク伝送を介して、符号化されたビデオデータを宛先デバイスに提供することができる。同様に、ディスクスタンピング設備などの、媒体製造設備(medium production facility)のコンピューティングデバイスは、ソースデバイスから符号化されたビデオデータを受信して、符号化されたビデオデータを含むディスクを生成することができる。したがって、様々な例において、コンピュータ可読媒体は、様々な形態の1つまたは複数のコンピュータ可読媒体を含むものと理解され得る。
[0140]宛先デバイスの入力インターフェースは、コンピュータ可読媒体から情報を受信する。コンピュータ可読媒体の情報は、ビデオエンコーダによって定義され、ビデオデコーダによっても使用され得る、ブロックおよび他の符号化されたユニット、たとえば画像のグループ(GOP)の特性および/またはプロセスを記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイスは、復号されたビデオデータをユーザに表示して、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備え得る。本発明の様々な実施形態を説明してきた。これらおよび他の実施形態は、以下の特許請求の範囲内である。
[00141]本発明の様々な実施形態について説明した。これらおよび他の実施形態は、以下の特許請求の範囲内に入る。
[00141]本発明の様々な実施形態について説明した。これらおよび他の実施形態は、以下の特許請求の範囲内に入る。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオ情報をコーディングするように構成された装置であって、
ビデオ情報を記憶するように構成されたメモリと、
前記メモリに動作可能に結合され、
参照レイヤビデオ情報を取得して、
中間出力を生成するために、第1の次元において前記参照レイヤビデオ情報をアップサンプリングして、
前記中間出力を所定のビット深度に制限して、
第2の次元において前記制限された中間出力をアップサンプリングするように構成されたプロセッサとを備え、前記第2の次元が前記第1の次元と直交している、装置。
[C2]
前記プロセッサが、
前記参照レイヤビデオ情報のビット深度を決定することと、
前記参照レイヤビデオ情報の前記ビット深度に基づいて前記中間出力をシフトするビット数を決定することと、
前記ビット数に基づいて、前記中間出力をシフトするかどうかを決定することと、
前記中間出力をシフトすると決定することに応じて、前記中間出力を前記ビット数だけシフトすることとによって、前記中間出力を前記所定のビット深度に制限するように構成される、C1に記載の装置。
[C3]
前記プロセッサが、
前記参照レイヤビデオ情報のビット深度を決定することと、
前記参照レイヤビデオ情報の前記ビット深度に基づいて前記中間出力をシフトするビット数を決定することと、
前記中間出力を前記ビット数だけシフトすることとによって、前記中間出力を前記所定のビット深度に制限するように構成される、C1に記載の装置。
[C4]
前記プロセッサが、前記中間出力をシフトする前記ビット数を、前記参照レイヤビデオ情報の前記ビット深度マイナス8ビットとして決定するように構成される、C3に記載の装置。
[C5]
前記プロセッサが、右シフト動作を使用して、前記中間出力を前記ビット数だけシフトするように構成される、C3に記載の装置。
[C6]
前記第1の次元が水平次元であり、前記第2の次元が垂直次元である、C1に記載の装置。
[C7]
前記参照レイヤビデオ情報が輝度値を備える、C1に記載の装置。
[C8]
前記プロセッサが、前記参照レイヤビデオ情報にリサンプリングフィルタを適用することによって、前記第1の次元において前記参照レイヤビデオ情報をアップサンプリングして、前記第2の次元において前記制限された中間出力をアップサンプリングするように構成される、C1に記載の装置。
[C9]
前記所定のビット深度が16ビットである、C1に記載の装置。
[C10]
前記プロセッサが、
前記アップサンプリングされて、制限された中間出力から第2の中間出力を生成して、
前記第2の中間出力を第2の所定のビット深度に制限するようにさらに構成される、C1に記載の装置。
[C11]
前記プロセッサが、前記制限された第2の中間出力から前記取得された参照レイヤビデオ情報のアップサンプリングされたバージョンを生成するようにさらに構成される、C10に記載の装置。
[C12]
前記プロセッサが、
前記参照レイヤビデオ情報の前記ビット深度に基づいて、前記第2の中間出力をシフトする第2のビット数を決定することと、
前記第2の中間出力を前記第2のビット数だけシフトすることとによって、前記第2の中間出力を前記第2の所定のビット深度に制限するように構成される、C10に記載の装置。
[C13]
前記プロセッサが、
エンハンスメントレイヤビデオ情報の前記ビット深度に基づいて、前記第2の中間出力をシフトする第2のビット数を決定することと、
前記第2の中間出力を前記第2のビット数だけシフトすることとによって、前記第2の中間出力を前記第2の所定のビット深度に制限するように構成される、C10に記載の装置。
[C14]
前記プロセッサが、右シフト動作を使用して、前記第2の中間出力を前記第2のビット数だけシフトするように構成される、C13に記載の装置。
[C15]
前記プロセッサが、前記第2の中間出力をシフトする前記第2のビット数を、20ビットマイナス前記エンハンスメントレイヤビデオ情報の前記ビット深度として決定するようにさらに構成される、C13に記載の装置。
[C16]
前記装置が、デスクトップコンピュータ、ノートブックコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、電話ハンドセット、スマートフォン、スマートパッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、およびビデオストリーミングデバイスの1つまたは複数から構成されるグループから選択される、C1に記載の装置。
[C17]
ビデオ情報をコーディングする方法であって、
参照レイヤビデオ情報を取得することと、
中間出力を生成するために、第1の次元において前記参照レイヤビデオ情報をアップサンプリングすることと、
前記中間出力を所定のビット深度に制限することと、
第2の次元において前記制限された中間出力をアップサンプリングすることとを備え、前記第2の次元が前記第1の次元と直交している、方法。
[C18]
前記中間出力を前記所定のビット深度に制限する前記ことが、
前記参照レイヤビデオ情報のビット深度を決定することと、
前記参照レイヤビデオ情報の前記ビット深度に基づいて前記中間出力をシフトするビット数を決定することと、
前記ビット数に基づいて、前記中間出力をシフトするかどうかを決定することと、
前記中間出力をシフトすると決定することに応じて、前記中間出力を前記ビット数だけシフトすることとを備える、C17に記載の方法。
[C19]
前記中間出力を前記所定のビット深度に制限する前記ことが、
前記参照レイヤビデオ情報のビット深度を決定することと、
前記参照レイヤビデオ情報の前記ビット深度に基づいて前記中間出力をシフトするビット数を決定することと、
前記中間出力を前記ビット数だけシフトすることとを備える、C17に記載の方法。
[C20]
前記中間出力をシフトする前記ビット数が、前記参照レイヤビデオ情報の前記ビット深度マイナス8ビットとして決定される、C19に記載の方法。
[C21]
前記中間出力を前記ビット数だけシフトする前記ことが、右シフト動作を使用して実行される、C19に記載の方法。
[C22]
前記第1の次元が水平次元であり、前記第2の次元が垂直次元である、C17に記載の方法。
[C23]
前記参照レイヤビデオ情報が輝度値を備える、C17に記載の方法。
[C24]
前記第1の次元において前記参照レイヤビデオ情報をアップサンプリングする前記ことと、前記第2の次元において前記制限された中間出力をアップサンプリングする前記こととが、前記参照レイヤビデオ情報にリサンプリングフィルタを適用することによって実行される、C17に記載の方法。
[C25]
前記所定のビット深度が16ビットである、C17に記載の方法。
[C26]
前記アップサンプリングされて、制限された中間出力から第2の中間出力を生成することと、
前記第2の中間出力を第2の所定のビット深度に制限することとをさらに備える、C17に記載の方法。
[C27]
前記制限された第2の中間出力から前記取得された参照レイヤビデオ情報のアップサンプリングされたバージョン生成することをさらに備える、C26に記載の方法。
[C28]
前記第2の中間出力を前記第2の所定のビット深度に制限する前記ことが、
前記参照レイヤビデオ情報の前記ビット深度に基づいて、前記第2の中間出力をシフトする第2のビット数を決定することと、
前記第2の中間出力を前記第2のビット数だけシフトすることとを備える、C26に記載の方法。
[C29]
前記第2の中間出力を前記第2の所定のビット深度に制限する前記ことが、
エンハンスメントレイヤビデオ情報の前記ビット深度に基づいて、前記第2の中間出力をシフトする第2のビット数を決定することと、
前記第2の中間出力を前記第2のビット数だけシフトすることとを備える、C26に記載の方法。
[C30]
前記第2の中間出力を前記第2のビット数だけシフトする前記ことが、右シフト動作を使用して実行される、C29に記載の方法。
[C31]
前記第2の中間出力をシフトする前記第2のビット数が、20ビットマイナス前記エンハンスメントレイヤビデオ情報の前記ビット深度として決定される、C29に記載の方法。
[C32]
コンピュータハードウェアを備えるプロセッサ上で実行されると、前記プロセッサに、
ビデオ情報を記憶することと、
参照レイヤビデオ情報を取得することと、
中間出力を生成するために、第1の次元において前記参照レイヤビデオ情報をアップサンプリングすることと、
前記中間出力を所定のビット深度に制限することと、
第2の次元において前記制限された中間出力をアップサンプリングすることとを行わせる命令を備え、前記第2の次元が前記第1の次元と直交している、非一時的コンピュータ可読媒体。
[C33]
前記プロセッサに、
前記参照レイヤビデオ情報のビット深度を決定することと、
前記参照レイヤビデオ情報の前記ビット深度に基づいて前記中間出力をシフトするビット数を決定することと、
前記中間出力を前記ビット数だけシフトすることとによって、前記中間出力を前記所定のビット深度に制限させる命令をさらに備える、C32に記載のコンピュータ可読媒体。
[C34]
ビデオ情報をコーディングするように構成された装置であって、前記装置が、
ビデオ情報を記憶するための手段と、
参照レイヤビデオ情報を取得するための手段と、
中間出力を生成するために、第1の次元において前記参照レイヤビデオ情報をアップサンプリングするための手段と、
前記中間出力を所定のビット深度に制限するための手段と、
第2の次元において前記制限された中間出力をアップサンプリングするための手段とを備え、前記第2の次元が前記第1の次元と直交している、装置。
[C35]
前記中間出力を前記所定のビット深度に制限するための前記手段が、
前記参照レイヤビデオ情報のビット深度を決定することと、
前記参照レイヤビデオ情報の前記ビット深度に基づいて前記中間出力をシフトするビット数を決定することと、
前記中間出力を前記ビット数だけシフトすることとによって、前記中間出力を前記所定のビット深度に制限するように構成される、C34に記載の装置。

Claims (35)

  1. ビデオ情報をコーディングするように構成された装置であって、
    ビデオ情報を記憶するように構成されたメモリと、
    前記メモリに動作可能に結合され、
    参照レイヤビデオ情報を取得して、
    中間出力を生成するために、第1の次元において前記参照レイヤビデオ情報をアップサンプリングして、
    前記中間出力を所定のビット深度に制限して、
    第2の次元において前記制限された中間出力をアップサンプリングするように構成されたプロセッサとを備え、前記第2の次元が前記第1の次元と直交している、装置。
  2. 前記プロセッサが、
    前記参照レイヤビデオ情報のビット深度を決定することと、
    前記参照レイヤビデオ情報の前記ビット深度に基づいて前記中間出力をシフトするビット数を決定することと、
    前記ビット数に基づいて、前記中間出力をシフトするかどうかを決定することと、
    前記中間出力をシフトすると決定することに応じて、前記中間出力を前記ビット数だけシフトすることとによって、前記中間出力を前記所定のビット深度に制限するように構成される、請求項1に記載の装置。
  3. 前記プロセッサが、
    前記参照レイヤビデオ情報のビット深度を決定することと、
    前記参照レイヤビデオ情報の前記ビット深度に基づいて前記中間出力をシフトするビット数を決定することと、
    前記中間出力を前記ビット数だけシフトすることとによって、前記中間出力を前記所定のビット深度に制限するように構成される、請求項1に記載の装置。
  4. 前記プロセッサが、前記中間出力をシフトする前記ビット数を、前記参照レイヤビデオ情報の前記ビット深度マイナス8ビットとして決定するように構成される、請求項3に記載の装置。
  5. 前記プロセッサが、右シフト動作を使用して、前記中間出力を前記ビット数だけシフトするように構成される、請求項3に記載の装置。
  6. 前記第1の次元が水平次元であり、前記第2の次元が垂直次元である、請求項1に記載の装置。
  7. 前記参照レイヤビデオ情報が輝度値を備える、請求項1に記載の装置。
  8. 前記プロセッサが、前記参照レイヤビデオ情報にリサンプリングフィルタを適用することによって、前記第1の次元において前記参照レイヤビデオ情報をアップサンプリングして、前記第2の次元において前記制限された中間出力をアップサンプリングするように構成される、請求項1に記載の装置。
  9. 前記所定のビット深度が16ビットである、請求項1に記載の装置。
  10. 前記プロセッサが、
    前記アップサンプリングされて、制限された中間出力から第2の中間出力を生成して、
    前記第2の中間出力を第2の所定のビット深度に制限するようにさらに構成される、請求項1に記載の装置。
  11. 前記プロセッサが、前記制限された第2の中間出力から前記取得された参照レイヤビデオ情報のアップサンプリングされたバージョンを生成するようにさらに構成される、請求項10に記載の装置。
  12. 前記プロセッサが、
    前記参照レイヤビデオ情報の前記ビット深度に基づいて、前記第2の中間出力をシフトする第2のビット数を決定することと、
    前記第2の中間出力を前記第2のビット数だけシフトすることとによって、前記第2の中間出力を前記第2の所定のビット深度に制限するように構成される、請求項10に記載の装置。
  13. 前記プロセッサが、
    エンハンスメントレイヤビデオ情報の前記ビット深度に基づいて、前記第2の中間出力をシフトする第2のビット数を決定することと、
    前記第2の中間出力を前記第2のビット数だけシフトすることとによって、前記第2の中間出力を前記第2の所定のビット深度に制限するように構成される、請求項10に記載の装置。
  14. 前記プロセッサが、右シフト動作を使用して、前記第2の中間出力を前記第2のビット数だけシフトするように構成される、請求項13に記載の装置。
  15. 前記プロセッサが、前記第2の中間出力をシフトする前記第2のビット数を、20ビットマイナス前記エンハンスメントレイヤビデオ情報の前記ビット深度として決定するようにさらに構成される、請求項13に記載の装置。
  16. 前記装置が、デスクトップコンピュータ、ノートブックコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、電話ハンドセット、スマートフォン、スマートパッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、およびビデオストリーミングデバイスの1つまたは複数から構成されるグループから選択される、請求項1に記載の装置。
  17. ビデオ情報をコーディングする方法であって、
    参照レイヤビデオ情報を取得することと、
    中間出力を生成するために、第1の次元において前記参照レイヤビデオ情報をアップサンプリングすることと、
    前記中間出力を所定のビット深度に制限することと、
    第2の次元において前記制限された中間出力をアップサンプリングすることとを備え、前記第2の次元が前記第1の次元と直交している、方法。
  18. 前記中間出力を前記所定のビット深度に制限する前記ことが、
    前記参照レイヤビデオ情報のビット深度を決定することと、
    前記参照レイヤビデオ情報の前記ビット深度に基づいて前記中間出力をシフトするビット数を決定することと、
    前記ビット数に基づいて、前記中間出力をシフトするかどうかを決定することと、
    前記中間出力をシフトすると決定することに応じて、前記中間出力を前記ビット数だけシフトすることとを備える、請求項17に記載の方法。
  19. 前記中間出力を前記所定のビット深度に制限する前記ことが、
    前記参照レイヤビデオ情報のビット深度を決定することと、
    前記参照レイヤビデオ情報の前記ビット深度に基づいて前記中間出力をシフトするビット数を決定することと、
    前記中間出力を前記ビット数だけシフトすることとを備える、請求項17に記載の方法。
  20. 前記中間出力をシフトする前記ビット数が、前記参照レイヤビデオ情報の前記ビット深度マイナス8ビットとして決定される、請求項19に記載の方法。
  21. 前記中間出力を前記ビット数だけシフトする前記ことが、右シフト動作を使用して実行される、請求項19に記載の方法。
  22. 前記第1の次元が水平次元であり、前記第2の次元が垂直次元である、請求項17に記載の方法。
  23. 前記参照レイヤビデオ情報が輝度値を備える、請求項17に記載の方法。
  24. 前記第1の次元において前記参照レイヤビデオ情報をアップサンプリングする前記ことと、前記第2の次元において前記制限された中間出力をアップサンプリングする前記こととが、前記参照レイヤビデオ情報にリサンプリングフィルタを適用することによって実行される、請求項17に記載の方法。
  25. 前記所定のビット深度が16ビットである、請求項17に記載の方法。
  26. 前記アップサンプリングされて、制限された中間出力から第2の中間出力を生成することと、
    前記第2の中間出力を第2の所定のビット深度に制限することとをさらに備える、請求項17に記載の方法。
  27. 前記制限された第2の中間出力から前記取得された参照レイヤビデオ情報のアップサンプリングされたバージョン生成することをさらに備える、請求項26に記載の方法。
  28. 前記第2の中間出力を前記第2の所定のビット深度に制限する前記ことが、
    前記参照レイヤビデオ情報の前記ビット深度に基づいて、前記第2の中間出力をシフトする第2のビット数を決定することと、
    前記第2の中間出力を前記第2のビット数だけシフトすることとを備える、請求項26に記載の方法。
  29. 前記第2の中間出力を前記第2の所定のビット深度に制限する前記ことが、
    エンハンスメントレイヤビデオ情報の前記ビット深度に基づいて、前記第2の中間出力をシフトする第2のビット数を決定することと、
    前記第2の中間出力を前記第2のビット数だけシフトすることとを備える、請求項26に記載の方法。
  30. 前記第2の中間出力を前記第2のビット数だけシフトする前記ことが、右シフト動作を使用して実行される、請求項29に記載の方法。
  31. 前記第2の中間出力をシフトする前記第2のビット数が、20ビットマイナス前記エンハンスメントレイヤビデオ情報の前記ビット深度として決定される、請求項29に記載の方法。
  32. コンピュータハードウェアを備えるプロセッサ上で実行されると、前記プロセッサに、
    ビデオ情報を記憶することと、
    参照レイヤビデオ情報を取得することと、
    中間出力を生成するために、第1の次元において前記参照レイヤビデオ情報をアップサンプリングすることと、
    前記中間出力を所定のビット深度に制限することと、
    第2の次元において前記制限された中間出力をアップサンプリングすることとを行わせる命令を備え、前記第2の次元が前記第1の次元と直交している、非一時的コンピュータ可読媒体。
  33. 前記プロセッサに、
    前記参照レイヤビデオ情報のビット深度を決定することと、
    前記参照レイヤビデオ情報の前記ビット深度に基づいて前記中間出力をシフトするビット数を決定することと、
    前記中間出力を前記ビット数だけシフトすることとによって、前記中間出力を前記所定のビット深度に制限させる命令をさらに備える、請求項32に記載のコンピュータ可読媒体。
  34. ビデオ情報をコーディングするように構成された装置であって、前記装置が、
    ビデオ情報を記憶するための手段と、
    参照レイヤビデオ情報を取得するための手段と、
    中間出力を生成するために、第1の次元において前記参照レイヤビデオ情報をアップサンプリングするための手段と、
    前記中間出力を所定のビット深度に制限するための手段と、
    第2の次元において前記制限された中間出力をアップサンプリングするための手段とを備え、前記第2の次元が前記第1の次元と直交している、装置。
  35. 前記中間出力を前記所定のビット深度に制限するための前記手段が、
    前記参照レイヤビデオ情報のビット深度を決定することと、
    前記参照レイヤビデオ情報の前記ビット深度に基づいて前記中間出力をシフトするビット数を決定することと、
    前記中間出力を前記ビット数だけシフトすることとによって、前記中間出力を前記所定のビット深度に制限するように構成される、請求項34に記載の装置。
JP2016517963A 2013-06-07 2014-06-04 リサンプリングプロセスにおける中間データのダイナミックレンジ制御 Active JP6479776B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361832648P 2013-06-07 2013-06-07
US61/832,648 2013-06-07
US14/294,913 US9762920B2 (en) 2013-06-07 2014-06-03 Dynamic range control of intermediate data in resampling process
US14/294,913 2014-06-03
PCT/US2014/040909 WO2014197595A1 (en) 2013-06-07 2014-06-04 Dynamic range control of intermediate data in resampling process

Publications (3)

Publication Number Publication Date
JP2016523476A true JP2016523476A (ja) 2016-08-08
JP2016523476A5 JP2016523476A5 (ja) 2017-06-22
JP6479776B2 JP6479776B2 (ja) 2019-03-06

Family

ID=52005457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016517963A Active JP6479776B2 (ja) 2013-06-07 2014-06-04 リサンプリングプロセスにおける中間データのダイナミックレンジ制御

Country Status (7)

Country Link
US (1) US9762920B2 (ja)
EP (1) EP3005706A1 (ja)
JP (1) JP6479776B2 (ja)
KR (2) KR20160017045A (ja)
CN (1) CN105264895B (ja)
BR (1) BR112015030642B1 (ja)
WO (1) WO2014197595A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140138538A (ko) * 2013-05-24 2014-12-04 주식회사 케이티 복수의 레이어를 지원하는 비디오 코딩 방법 및 장치
KR20150026927A (ko) * 2013-09-03 2015-03-11 주식회사 케이티 스케일러블 비디오 신호 인코딩/디코딩 방법 및 장치
US10769818B2 (en) * 2017-04-09 2020-09-08 Intel Corporation Smart compression/decompression schemes for efficiency and superior results

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003339050A (ja) * 2002-04-10 2003-11-28 Microsoft Corp マルチステージ補間の丸め制御
JP2009522935A (ja) * 2006-01-06 2009-06-11 マイクロソフト コーポレーション 多重解像度ビデオ符号化および復号化のための再サンプリングおよび画像サイズ変更の演算
JP2010516199A (ja) * 2007-01-09 2010-05-13 クゥアルコム・インコーポレイテッド スケーラブルビデオコーディング用の適応アップサンプリング

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6331862B1 (en) * 1988-07-06 2001-12-18 Lg Philips Lcd Co., Ltd. Image expansion display and driver
US7110459B2 (en) * 2002-04-10 2006-09-19 Microsoft Corporation Approximate bicubic filter
US20050259729A1 (en) * 2004-05-21 2005-11-24 Shijun Sun Video coding with quality scalability
US8023569B2 (en) * 2005-12-15 2011-09-20 Sharp Laboratories Of America, Inc. Methods and systems for block-based residual upsampling
US8401091B2 (en) * 2006-01-09 2013-03-19 Lg Electronics Inc. Inter-layer prediction method for video signal
EP1933563A1 (en) * 2006-12-14 2008-06-18 Thomson Licensing Method and apparatus for encoding and/or decoding bit depth scalable video data using adaptive enhancement layer residual prediction
WO2008083521A1 (en) * 2007-01-10 2008-07-17 Thomson Licensing Video encoding method and video decoding method for enabling bit depth scalability
CN101822060B (zh) * 2007-10-19 2014-08-06 汤姆森许可贸易公司 组合的空间和比特深度可缩放性
CN102388611B (zh) * 2009-02-11 2015-08-19 汤姆森特许公司 使用色调映射和反色调映射的比特深度可分级视频编码和解码的方法和装置
US9100661B2 (en) * 2010-04-05 2015-08-04 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using dynamic-range transformation, and method and apparatus for decoding video by using dynamic-range transformation
JP5802666B2 (ja) * 2010-12-22 2015-10-28 パナソニック株式会社 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法
EP2661892B1 (en) * 2011-01-07 2022-05-18 Nokia Technologies Oy Motion prediction in video coding
US20120307889A1 (en) * 2011-06-01 2012-12-06 Sharp Laboratories Of America, Inc. Video decoder with dynamic range adjustments
TWI601419B (zh) * 2011-06-30 2017-10-01 三星電子股份有限公司 視訊解碼方法
EP2779646A4 (en) * 2011-11-07 2015-08-19 Samsung Electronics Co Ltd INVERSE TRANSFORM METHOD FOR REVERSE QUANTIFICATION DATA STRETCHING, REVERSE TRANSFORMATION DURING VIDEO DECODING STEP AND CORRESPONDING DEVICE

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003339050A (ja) * 2002-04-10 2003-11-28 Microsoft Corp マルチステージ補間の丸め制御
JP2009522935A (ja) * 2006-01-06 2009-06-11 マイクロソフト コーポレーション 多重解像度ビデオ符号化および復号化のための再サンプリングおよび画像サイズ変更の演算
JP2010516199A (ja) * 2007-01-09 2010-05-13 クゥアルコム・インコーポレイテッド スケーラブルビデオコーディング用の適応アップサンプリング

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MUHAMMED COBAN 5775 MOREHOUSE DRIVE SAN DIEGO, CA 92121, USA: "Luma/chroma interpolation precision[online]", JCTVC-F JCTVC-F585, JPN6018051982, 15 July 2011 (2011-07-15), ISSN: 0003950329 *
THOMAS WIEGAND (FRAUNHOFER HHI): "Suggested design of initial software model for scalable HEVC extension proposal by Fraunhofer HHI, V", JCTVC-K JCTVC-K0345R3, JPN6018051983, 18 October 2012 (2012-10-18), ISSN: 0003950330 *

Also Published As

Publication number Publication date
KR20200105977A (ko) 2020-09-09
BR112015030642B1 (pt) 2023-04-11
US9762920B2 (en) 2017-09-12
KR20160017045A (ko) 2016-02-15
KR102293104B1 (ko) 2021-08-23
CN105264895A (zh) 2016-01-20
EP3005706A1 (en) 2016-04-13
CN105264895B (zh) 2019-06-14
US20140362909A1 (en) 2014-12-11
JP6479776B2 (ja) 2019-03-06
WO2014197595A1 (en) 2014-12-11
BR112015030642A2 (pt) 2017-07-25

Similar Documents

Publication Publication Date Title
JP6297670B2 (ja) ハイレベルシンタックスのみのスケーラブルビデオコーディングのための、レイヤ間参照ピクチャ制限
JP6388929B2 (ja) マルチレイヤビデオコーディングにおけるレイヤ間予測タイプに関するビットストリーム制約を処理すること
JP6285020B2 (ja) コンポーネント間フィルタ処理
JP6141386B2 (ja) 深度範囲パラメータのシグナリング
JP6321139B2 (ja) Shvcにおいて再サンプリングプロセスを条件付きで呼び出すこと
JP6129969B2 (ja) スケーラブルビデオコード化における代替変換
JP6285018B2 (ja) スケーリングファクタを用いた再サンプリング
JP6400741B2 (ja) ネスティング補足エンハンスメント情報(sei)メッセージの拡張可能設計
JP6416203B2 (ja) レイヤ間ピクチャシグナリングおよび関連プロセス
JP6352314B2 (ja) 異なるアスペクト比を伴う空間スケーラビリティのためのレイヤ間の参照ピクチャの構築
JP6333942B2 (ja) ビデオ情報のスケーラブルコード化のための装置及び方法
JP6495268B2 (ja) パラメータセット内のビューidビット深度のシグナリング
JP6239612B2 (ja) スケーラブル映像コーディング及び3d映像コーディングに関する一般化された残差予測
JP6526574B2 (ja) レイヤ間シンタックス予測制御
JP6466349B2 (ja) スケーラブルビデオコーディングのための空間動きベクトルスケーリング
JP6356146B2 (ja) スケーラブル映像コーディングに関する層間基準ピクチャ生成
JP6479776B2 (ja) リサンプリングプロセスにおける中間データのダイナミックレンジ制御

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170511

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180703

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190206

R150 Certificate of patent or registration of utility model

Ref document number: 6479776

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250