特許第6843615号(P6843615)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クゥアルコム・インコーポレイテッドの特許一覧

<>
  • 特許6843615-適応インター色成分残差予測 図000018
  • 特許6843615-適応インター色成分残差予測 図000019
  • 特許6843615-適応インター色成分残差予測 図000020
  • 特許6843615-適応インター色成分残差予測 図000021
  • 特許6843615-適応インター色成分残差予測 図000022
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6843615
(24)【登録日】2021年2月26日
(45)【発行日】2021年3月17日
(54)【発明の名称】適応インター色成分残差予測
(51)【国際特許分類】
   H04N 19/124 20140101AFI20210308BHJP
   H04N 19/186 20140101ALI20210308BHJP
   H04N 19/50 20140101ALI20210308BHJP
【FI】
   H04N19/124
   H04N19/186
   H04N19/50
【請求項の数】7
【全頁数】48
(21)【出願番号】特願2016-526100(P2016-526100)
(86)(22)【出願日】2014年10月28日
(65)【公表番号】特表2016-535490(P2016-535490A)
(43)【公表日】2016年11月10日
(86)【国際出願番号】US2014062582
(87)【国際公開番号】WO2015065979
(87)【国際公開日】20150507
【審査請求日】2017年10月2日
(31)【優先権主張番号】61/896,580
(32)【優先日】2013年10月28日
(33)【優先権主張国】US
(31)【優先権主張番号】14/524,601
(32)【優先日】2014年10月27日
(33)【優先権主張国】US
【前置審査】
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100112807
【弁理士】
【氏名又は名称】岡田 貴志
(72)【発明者】
【氏名】キム、ウォ−シク
(72)【発明者】
【氏名】ジョシ、ラジャン・ラクスマン
(72)【発明者】
【氏名】プ、ウェイ
(72)【発明者】
【氏名】ソル・ロジャルス、ジョエル
(72)【発明者】
【氏名】チェン、ジャンレ
(72)【発明者】
【氏名】カークゼウィックズ、マルタ
【審査官】 鉢呂 健
(56)【参考文献】
【文献】 特表2013−505647(JP,A)
【文献】 国際公開第2011/118435(WO,A1)
【文献】 特表2010−505154(JP,A)
【文献】 T. Nguyen et al.,Non-RCE1/Non-RCE2/AHG5/AHG8: Adaptive Inter-Plane Prediction for RGB Content,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting: Incheon, KR, 18-26 Apr. 2013, [JCTVC-M0230],ITU-T,2013年 4月26日,JCTVC-M0230 (version 4),pp. 1-6
【文献】 Wei Pu, Woo-Shik Kim, Jianle Chen, Krishna Rapaka, Liwei Guo, Joel Sole, Marta Karczewicz,Non-RCE1: Inter Color Component Residual Prediction,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Vienna, AT, 25 July - 2 Aug. 2013, [JCTVC-N0266],2013年 7月30日,pp.1-7
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00−19/98
(57)【特許請求の範囲】
【請求項1】
ビデオデータを復号する方法であって、
ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、
ビデオデータの前記ブロックのための予測されたクロマ残差サンプルの第2のビット深度を決定することと、
前記ルーマ残差サンプルの前記第1のビット深度と、前記予測されたクロマ残差サンプルの前記第2のビット深度との間のビット深度差分を決定することと、
前記第1のビット深度が前記第2のビット深度よりも大きく、前記ビット深度差分が0よりも大きい場合、前記予測されたクロマ残差サンプルの前記第2のビット深度に一致するビット深度を有する、ビット深度調整されたルーマ残差サンプルを生成するために、前記ビット深度差分だけ前記ルーマ残差サンプルを右シフトすることによって、前記ルーマ残差サンプルを調整することと、
前記第1のビット深度が前記第2のビット深度未満であり、前記ビット深度差分が0未満である場合、前記予測されたクロマ残差サンプルの前記第2のビット深度に一致するビット深度を有する、ビット深度調整されたルーマ残差サンプルを生成するために、前記ビット深度差分だけ前記ルーマ残差サンプルを左シフトすることによって、前記ルーマ残差サンプルを調整することと、
前記ビット深度調整されたルーマ残差サンプルと前記予測されたクロマ残差サンプルとに基づいて、前記ビデオデータのブロックのためのクロマ残差サンプルを決定することと、
前記ルーマ残差サンプルと前記クロマ残差サンプルとに基づいて、前記ビデオデータのブロックを復号することと、
を備え、
前記クロマ残差サンプルを決定することは、
スケーリングされたルーマ残差サンプルを決定するために、前記ビット深度調整されたルーマ残差サンプルをスケールファクタで乗算することと、前記スケールファクタは、前記ビデオデータの前記ブロックのための前記ルーマ残差サンプルと、前記ビデオデータの前記ブロックのための前記クロマ残差サンプルとの間の相関を示し、
前記クロマ残差サンプルを決定するために、前記予測されたクロマ残差サンプルを、前記スケーリングされたルーマ残差サンプルに加算することと、
を備え、
前記ビット深度調整されたルーマ残差サンプルを生成するために、前記ルーマ残差サンプルを調整することは、
前記ビット深度調整されたルーマ残差サンプルを、前記ビット深度調整および前記スケーリングされたルーマ残差サンプルの値を飽和させることを回避するために予め定められた範囲内になるようにクリップすること、を備え、
前記範囲の最大値は変数の正値に基づき、前記範囲の最小値は前記変数の負値に基づく、方法。
【請求項2】
ビデオデータを符号化する方法であって、
ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、
ビデオデータの前記ブロックのためのクロマ残差サンプルの第2のビット深度を決定することと、
前記ルーマ残差サンプルの前記第1のビット深度と、前記クロマ残差サンプルの前記第2のビット深度との間のビット深度差分を決定することと、
前記第1のビット深度が前記第2のビット深度よりも大きく、前記ビット深度差分が0よりも大きい場合、前記クロマ残差サンプルの前記第2のビット深度に一致するビット深度を有する、ビット深度調整されたルーマ残差サンプルを生成するために、前記ビット深度差分だけ前記ルーマ残差サンプルを右シフトすることによって、前記ルーマ残差サンプルを調整することと、
前記第1のビット深度が前記第2のビット深度未満であり、前記ビット深度差分が0未満である場合、前記クロマ残差サンプルの前記第2のビット深度に一致するビット深度を有する、ビット深度調整されたルーマ残差サンプルを生成するために、前記ビット深度差分だけ前記ルーマ残差サンプルを左シフトすることによって、前記ルーマ残差サンプルを調整することと、
前記ビット深度調整されたルーマ残差サンプルと前記クロマ残差サンプルとに基づいて、前記ビデオデータのブロックのための予測されたクロマ残差サンプルを決定することと、
前記ルーマ残差サンプルと前記予測されたクロマ残差サンプルとに基づいて、前記ビデオデータのブロックを符号化することと
を備え、
前記予測されたクロマ残差サンプルを決定することは、
スケーリングされたルーマ残差サンプルを生成するために、前記ビット深度調整されたルーマ残差サンプルをスケールファクタで乗算することと、前記スケールファクタは、前記ビデオデータの前記ブロックのための前記ルーマ残差サンプルと、前記ビデオデータの前記ブロックのための前記クロマ残差サンプルとの間の相関を示し
前記予測されたクロマ残差サンプルを決定するために、前記スケーリングされたルーマ残差サンプルから、前記クロマ残差サンプルを減算することと、
を備え、
前記ビット深度調整されたルーマ残差サンプルを生成するために、前記ルーマ残差サンプルを調整することは、
前記ビット深度調整されたルーマ残差サンプルを、前記ビット深度調整および前記スケーリングされたルーマ残差サンプルの値を飽和させることを回避するために予め定められた範囲内になるようにクリップすること、を備え、前記範囲の最大値は変数の正値に基づき、前記範囲の最小値は前記変数の負値に基づく、方法。
【請求項3】
ビデオデータを復号するためのデバイスであって、前記デバイスは、
ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信している少なくとも1つのプロセッサと
を備え、前記少なくとも1つのプロセッサは、
前記メモリに記憶されるビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、
前記メモリに記憶されるビデオデータの前記ブロックのための予測されたクロマ残差サンプルの第2のビット深度を決定することと、
前記ルーマ残差サンプルの前記第1のビット深度と、前記予測されたクロマ残差サンプルの前記第2のビット深度との間のビット深度差分を決定することと、
前記第1のビット深度が前記第2のビット深度よりも大きく、前記ビット深度差分が0よりも大きい場合、前記予測されたクロマ残差サンプルの前記第2のビット深度に一致するビット深度を有する、ビット深度調整されたルーマ残差サンプルを生成するために、前記ビット深度差分だけ前記ルーマ残差サンプルを右シフトすることによって、前記ルーマ残差サンプルを調整することと、
前記第1のビット深度が前記第2のビット深度未満であり、前記ビット深度差分が0未満である場合、前記予測されたクロマ残差サンプルの前記第2のビット深度に一致するビット深度を有する、ビット深度調整されたルーマ残差サンプルを生成するために、前記ビット深度差分だけ前記ルーマ残差サンプルを左シフトすることによって、前記ルーマ残差サンプルを調整することと、
前記ビット深度調整されたルーマ残差サンプルと前記予測されたクロマ残差サンプルとに基づいて、前記ビデオデータのブロックのためのクロマ残差サンプルを決定することと、
前記ルーマ残差サンプルと前記クロマ残差サンプルとに基づいて、前記ビデオデータのブロックを復号することと、
を行うように構成され、
前記クロマ残差サンプルを決定するために、前記少なくとも1つのプロセッサは、
スケーリングされたルーマ残差サンプルを決定するために、前記ビット深度調整されたルーマ残差サンプルをスケールファクタで乗算することと、前記スケールファクタは、前記ビデオデータの前記ブロックのための前記ルーマ残差サンプルと、前記ビデオデータの前記ブロックのための前記クロマ残差サンプルとの間の相関を示し
前記クロマ残差サンプルを決定するために、前記予測されたクロマ残差サンプルを、前記スケーリングされたルーマ残差サンプルに加算することと、
を行うようにさらに構成され、
前記ビット深度調整されたルーマ残差サンプルを生成するために、前記ルーマ残差サンプルを調整することは、
前記ビット深度調整されたルーマ残差サンプルを、前記ビット深度調整および前記スケーリングされたルーマ残差サンプルの値を飽和させることを回避するために予め定められた範囲内になるようにクリップすること、を備え、前記範囲の最大値は変数の正値に基づき、前記範囲の最小値は前記変数の負値に基づく、デバイス。
【請求項4】
ビデオを符号化するためのデバイスであって、前記デバイスは、
ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信している少なくとも1つのプロセッサと
を備え、前記少なくとも1つのプロセッサは、
前記メモリに記憶されるビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、
前記メモリに記憶されるビデオデータの前記ブロックのためのクロマ残差サンプルの第2のビット深度を決定することと、
前記ルーマ残差サンプルの前記第1のビット深度と、前記クロマ残差サンプルの前記第2のビット深度との間のビット深度差分を決定することと、
前記第1のビット深度が前記第2のビット深度よりも大きく、前記ビット深度差分が0よりも大きい場合、前記クロマ残差サンプルの前記第2のビット深度に一致するビット深度を有する、ビット深度調整されたルーマ残差サンプルを生成するために、前記ビット深度差分だけ前記ルーマ残差サンプルを右シフトすることによって、前記ルーマ残差サンプルを調整することと、
前記第1のビット深度が前記第2のビット深度未満であり、前記ビット深度差分が0未満である場合、前記クロマ残差サンプルの前記第2のビット深度に一致するビット深度を有する、ビット深度調整されたルーマ残差サンプルを生成するために、前記ビット深度差分だけ前記ルーマ残差サンプルを左シフトすることによって前記ルーマ残差サンプルを調整することと、
前記ビット深度調整されたルーマ残差サンプルと前記クロマ残差サンプルとに基づいて、前記ビデオデータのブロックのための予測されたクロマ残差サンプルを決定することと、
前記ルーマ残差サンプルと前記予測されたクロマ残差サンプルとに基づいて、前記ビデオデータのブロックを符号化することと、
を行うように構成され、
前記予測されたクロマ残差サンプルを決定するために、前記少なくとも1つのプロセッサは、
スケーリングされたルーマ残差サンプルを生成するために、前記ビット深度調整されたルーマ残差サンプルをスケールファクタで乗算することと、前記スケールファクタは、前記ビデオデータの前記ブロックのための前記ルーマ残差サンプルと、前記ビデオデータの前記ブロックのための前記クロマ残差サンプルとの間の相関を示し、
前記予測されたクロマ残差サンプルを決定するために、前記スケーリングされたルーマ残差サンプルから、前記クロマ残差サンプルを減算することと、
を行うようにさらに構成され、
前記ビット深度調整されたルーマ残差サンプルを生成するために、前記ルーマ残差サンプルを調整することは、
前記ビット深度調整されたルーマ残差サンプルを、前記ビット深度調整および前記スケーリングされたルーマ残差サンプルの値を飽和させることを回避するために予め定められた範囲内になるようにクリップすること、を備え、前記範囲の最大値は変数の正値に基づき、前記範囲の最小値は前記変数の負値に基づく、デバイス。
【請求項5】
前記少なくとも1つのプロセッサは、前記ビット深度差分を復号するようにさらに構成される、請求項に記載のデバイス、または前記少なくとも1つのプロセッサは、前記ビット深度差分を符号化するようにさらに構成される、請求項4に記載のデバイス。
【請求項6】
前記少なくとも1つのプロセッサは、前記スケールファクタを復号するようにさらに構成される、請求項3に記載のデバイス、または前記少なくとも1つのプロセッサは、前記スケールファクタを符号化するようにさらに構成される、請求項4に記載のデバイス。
【請求項7】
実行されたとき、少なくとも1つのプロセッサに、請求項1−2のうちのいずれか一項に記載の方法を行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本出願は、その全体が参照により本明細書に組み込まれる、2013年10月28日に出願された米国仮特許出願第61/896,580号の優先権を主張する。
【0002】
[0002]本開示は、ビデオコーディングに関する。
【背景技術】
【0003】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、携帯電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4,Part10,アドバンストビデオコーディング(AVC:Advanced Video Coding)、高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって定義された規格、ならびにスケーラブルビデオコーディング(SVC)拡張、マルチビュービデオコーディング(MVC)拡張、およびレンジ拡張など、そのような規格の拡張に記載されているビデオコーディング技法など、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
【0004】
[0004]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間的(イントラピクチャ)予測および/または時間的(インターピクチャ)予測を含む。ブロックベースのビデオコーディングの場合、ビデオスライス(たとえば、ビデオフレームまたはビデオフレームの一部分)は、ツリーブロック、コーディングツリーユニット(CTU)、コーディングユニット(CU)および/またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ビデオブロックは、ルーマブロックとクロマブロックとを含み得る。ピクチャのイントラコード化(I)スライスでは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【0005】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。量子化された変換係数は、一層の圧縮を達成するためにコーディングされたエントロピーであり得る。
【発明の概要】
【0006】
[0006]概して、本開示は、異なるビット深度を有する成分をもつ色空間のためのインター色成分残差予測に関する技法について説明する。ビット深度は、色空間の特定の成分を表すために使用されるビット数である。ビデオコーダ(すなわち、ビデオエンコーダまたはビデオデコーダ)は、ルーマ残差サンプルのビット深度がクロマ残差サンプルのビット深度とは異なるとき、ビデオブロックのビット深度調整されたルーマ残差サンプルに少なくとも部分的に基づいて、ビデオブロックのクロマ残差サンプルを予測するために、本開示の技法を実施し得る。
【0007】
[0007]本開示の技法による一例では、ビデオデータを復号する方法は、ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、ビデオデータのブロックのための予測されたクロマ残差サンプルの第2のビット深度を決定することと、ビット深度調整されたルーマ残差サンプルを生成するために、第1のビット深度と第2のビット深度とに基づいて、ルーマ残差サンプルを調整することと、ビット深度調整されたルーマ残差サンプルと予測されたクロマ残差サンプルとに基づいて、ビデオデータのブロックのためのクロマ残差サンプルを決定することと、ルーマ残差サンプルとクロマ残差サンプルとに基づいて、ビデオデータのブロックを復号することとを備える。
【0008】
[0008]本開示の技法による別の例では、ビデオデータを符号化するための方法は、ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、ビデオデータのブロックのためのクロマ残差サンプルの第2のビット深度を決定することと、ビット深度調整されたルーマ残差サンプルを生成するために、第1のビット深度と第2のビット深度とに基づいて、ルーマ残差サンプルを調整することと、ビット深度調整されたルーマ残差サンプルとクロマ残差サンプルとに基づいて、ビデオデータのブロックのための予測されたクロマ残差サンプルを決定することと、ルーマ残差サンプルと予測されたクロマ残差サンプルとに基づいて、ビデオデータのブロックを符号化することとを備える。
【0009】
[0009]別の例では、本開示の技法は、ビデオデータを記憶するように構成されたメモリと、メモリと通信しており、ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、ビデオデータのブロックのための予測されたクロマ残差サンプルの第2のビット深度を決定することと、ビット深度調整されたルーマ残差サンプルを生成するために、第1のビット深度と第2のビット深度とに基づいて、ルーマ残差サンプルを調整することと、ビット深度調整されたルーマ残差サンプルと予測されたクロマ残差サンプルとに基づいて、ビデオデータのブロックのためのクロマ残差サンプルを決定することと、ルーマ残差サンプルとクロマ残差サンプルとに基づいて、ビデオデータのブロックを復号することとを行うように構成された、少なくとも1つのプロセッサとを備える、ビデオデコーダを対象とする。
【0010】
[0010]別の例では、本開示の技法によれば、ビデオを符号化するためのデバイスは、ビデオデータを記憶するように構成されたメモリと、メモリと通信しており、ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、ビデオデータのブロックのためのクロマ残差サンプルの第2のビット深度を決定することと、ビット深度調整されたルーマ残差サンプルを生成するために、第1のビット深度と第2のビット深度とに基づいて、ルーマ残差サンプルを調整することと、ビット深度調整されたルーマ残差サンプルとクロマ残差サンプルとに基づいて、ビデオデータのブロックのための予測されたクロマ残差サンプルを決定することと、ルーマ残差サンプルと予測されたクロマ残差サンプルとに基づいて、ビデオデータのブロックを符号化することとを行うように構成された、少なくとも1つのプロセッサとを備える。
【0011】
[0011]本開示の技法による別の例では、ビデオを復号するためのデバイスは、ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定するための手段と、ビデオデータのブロックのための予測されたクロマ残差サンプルの第2のビット深度を決定するための手段と、ビット深度調整されたルーマ残差サンプルを生成するために、第1のビット深度と第2のビット深度とに基づいて、ルーマ残差サンプルを調整するための手段と、ビット深度調整されたルーマ残差サンプルと予測されたクロマ残差サンプルとに基づいて、ビデオデータのブロックのためのクロマ残差サンプルを決定するための手段と、ルーマ残差サンプルとクロマ残差サンプルとに基づいて、ビデオデータのブロックを復号するための手段とを備える。
【0012】
[0012]本開示の技法による別の例では、非一時的コンピュータ可読記憶媒体は、実行されたとき、少なくとも1つのプロセッサに、ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、ビデオデータのブロックのための予測されたクロマ残差サンプルの第2のビット深度を決定することと、ビット深度調整されたルーマ残差サンプルを生成するために、第1のビット深度と第2のビット深度とに基づいて、ルーマ残差サンプルを調整することと、ビット深度調整されたルーマ残差サンプルと予測されたクロマ残差サンプルとに基づいて、ビデオデータのブロックのためのクロマ残差サンプルを決定することと、ルーマ残差サンプルとクロマ残差サンプルとに基づいて、ビデオデータのブロックを復号することとを行わせる、その上に記憶された命令を有する。
【0013】
[0013]添付の図面および以下の説明において、1つまたは複数の例の詳細について述べる。他の特徴、目的、および利点は、説明、および図面から、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0014】
図1】[0014]本開示の1つまたは複数の態様による、適応インター色成分残差予測のための技法を実施し得る例示的なビデオ符号化および復号システムを示すブロック図。
図2】[0015]本開示の1つまたは複数の態様による、適応インター色成分残差予測のための技法を実施し得るビデオエンコーダの一例を示すブロック図。
図3】[0016]本開示の1つまたは複数の態様による、適応インター色成分残差予測のための技法を実施し得るビデオデコーダの一例を示すブロック図。
図4】[0017]本開示の1つまたは複数の態様による、適応インター色成分残差予測を実施するためのプロセスの一例を示すフローチャート。
図5】[0018]本開示の1つまたは複数の態様による、適応インター色成分残差予測を実施するためのプロセスの別の例を示すフローチャート。
【発明を実施するための形態】
【0015】
[0019]ビデオコーダ(すなわちビデオエンコーダまたはデコーダ)は、ピクチャのシーケンスとして概して表されるビデオシーケンスをコーディングするように概して構成される。典型的に、ビデオコーダは、ピクチャのシーケンスの各々をコーディングするためにブロックベースのコーディング技法を使用する。ブロックベースのビデオコーディングの一部として、ビデオコーダは、ビデオシーケンスの各ピクチャをデータのブロックに分割する。ビデオコーダは、ブロックの各々を個々にコーディング(すなわち符号化または復号)する。ビデオデータのブロックを符号化することは、元のブロックのための1つまたは複数の予測ブロックと、元のブロックと1つまたは複数の予測ブロックとの間の差分に対応する残差ブロックとを生成することによって、データの元のブロックを符号化することを概して伴う。特に、ビデオデータの元のブロックは、「サンプル」の1つまたは複数のチャネルからなるピクセル値の行列を含み、予測ブロックは、その各々が予測サンプルから同じく作られる予測ピクセル値の行列を含む。残差ブロックの各サンプルは、予測ブロックのサンプルと、元のブロックの対応するサンプルとの間のピクセル値差分を示す。
【0016】
[0020]ビデオデータのブロックのための予測技法は、概して、イントラ予測およびインター予測としてカテゴリー分類される。イントラ予測(すなわち、空間的予測)は、同じピクチャ内の隣接する、前にコーディングされたブロックのピクセル値からブロックを予測することを概して伴う。インター予測は、前にコーディングされたピクチャ中の前にコーディングされたブロックのピクセル値からブロックを予測することを概して伴う。
【0017】
[0021]ビデオデータの各ブロックのピクセルは、「色表現」と呼ばれる、特定のフォーマットでの色をそれぞれ表す。異なるビデオコーディング規格は、ビデオデータのブロックのための異なる色表現を使用し得る。一例として、ジョイントコラボレーティブチームオンビデオコーディング(JCT−VC)によって開発中である高効率ビデオコーディング(HEVC)ビデオ規格のメインプロファイルは、ビデオデータのブロックのピクセルを表すためにYCbCr色表現を使用する。
【0018】
[0022]YCbCr色表現は、ビデオデータの各ピクセルが色情報の3つの成分またはチャネル、「Y」、「Cb」、および「Cr」によって表される色表現を概して指す。Yチャネルは、特定のピクセルのためのルミナンス(すなわち、光強度または輝度)データを表す。Cb成分およびCr成分は、それぞれ、青色差および赤色差クロミナンス、すなわち、「クロマ」成分である。Y成分とCb成分とCr成分との各々の間に強い無相関があり、これは、Y成分とCb成分とCr成分の各々の間で重複しているかまたは冗長であるデータがほとんどないことを意味するので、YCbCrはしばしば、圧縮されたビデオデータで色を表すために使用される。したがって、YCbCr色表現を使用してビデオデータをコーディングすると、多くの場合、良好な圧縮性能が提供される。
【0019】
[0023]さらに、多くのビデオコーディング技法は、色データの圧縮をさらに改善するために「クロマサブサンプリング」と呼ばれる技法を利用する。YCbCr色表現を有するビデオデータのクロマサブサンプリングは、パターンに従ってクロマ成分を選択的に省略することによって、コード化ビデオビットストリーム中でシグナリングされるクロマ値の数を低減する。クロマサブサンプリングされたビデオデータのブロックでは、概して、ブロックのピクセルごとにルーマ値がある。しかしながら、Cb成分およびCr成分は、クロマ成分がルーマ成分に対してサブサンプリングされるように、ブロックのピクセルのうちのいくつかについてのみシグナリングされ得る。
【0020】
[0024]ビデオコーダ(ビデオエンコーダまたはビデオデコーダを指し得る)は、ピクセルについてCb成分とCr成分とを補間し、ここで、Cb値とCr値とは、ピクセルのクロマサブサンプリングされたブロックについて明示的にシグナリングされない。クロマサブサンプリングは、より均一であるピクセルのブロック中にひずみをもたらすことなしにクロミナンスデータの量を低減するためにうまく動作する。クロマサブサンプリングは、大幅に異なるクロマ値を有するビデオデータを表すためにあまりうまく動作せず、それらの場合、大量のひずみをもたらし得る。
【0021】
[0025]HEVC規格への拡張であるHEVCレンジ拡張は、(「色フォーマット」とも呼ばれる)追加の色表現について、ならびに増加した色ビット深度についてHEVCへのサポートを追加する。HEVCレンジ拡張の1つの最近のドラフトは、「HEVC Range Extension text specification:Draft 7」、「第17回会合:バレンシア、スペイン、2014年3月27日〜4月4日、JCTVC−Q1005_v7、242 pp.」であり、http://phenix.int−evry.fr/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC−Q1005−v9.zipから入手可能である、色ビット深度は、色表現の各成分を表すために使用されるビット数である。他の色フォーマットのためのサポートは、ビデオデータのRGBソース、ならびに他の色表現を有するビデオデータを符号化および復号することと、HEVCメインプロファイルとは異なるクロマサブサンプリングパターンを使用することとのためのサポートを含み得る。「HEVC Working Draft 10」または「WD10」と呼ばれるHEVC規格の最近のドラフトは、文書JCTVC−L1003v34、Brossら、「High efficiency video coding (HEVC) text specification draft 10(FDIS & Last Callに対して)」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのジョイントコラボレーティブチームオンビデオコーディング(JCT−VC)、第12回会合:ジュネーブ、スイス、2013年1月14〜23日に記載されており、この文書は、http://phenix.int−evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC−L1003−v34.zipからダウンロード可能である。
【0022】
[0026]上述のように、HEVCメインプロファイルは、色表現(色フォーマットとも呼ばれる)のルーマ成分と、2つのクロマ成分との間の概して強い色無相関のために、YCbCrを使用する。しかしながら、いくつかの場合、Y成分とCb成分とCr成分との間に相関が依然としてあり得る。色表現の成分間の相関は、クロス色成分相関またはインター色成分相関と呼ばれることがある。
【0023】
[0027]ビデオコーダは、異なる成分(たとえば、ルーマ成分のサンプル)の値に基づいて、ある成分(たとえば、クロマ成分のサンプル)の値を予測するように構成され得る。第2の成分に基づいて第1の成分からのサンプルを予測するプロセスは、「インター色成分予測」と呼ばれる。ビデオコーダは、第1の成分と第2の成分との間の相関に基づいて、第1の成分の値を予測し得る。
【0024】
[0028]たとえば、いくつかの例では、ビデオエンコーダは、ビット深度調整されたルーマ残差サンプルのブロックを決定するために、ルーマ残差サンプルを増加または減少させることによって、ルーマ残差サンプルのブロックを調整し得る。ビデオエンコーダは、次いで、ビット深度調整されたルーマ残差サンプルとクロマ残差サンプルとに基づいて、クロマ残差サンプルの予測ブロックを決定し得る。ビデオエンコーダは、次いで、予測されたクロマ残差サンプルとルーマ残差サンプルとに基づいて基づいて、ビデオデータのブロックを符号化し得る。
【0025】
[0029]ビデオデコーダは、概して逆のプロセスを実施し得る。ビデオデコーダは、ルーマ残差サンプルを調整し得、ビット深度調整されたルーマ残差サンプルと予測されたクロマ残差サンプルとに基づいて、クロマ残差サンプルを決定し得る。ビデオデコーダは、次いで、クロマ残差サンプルとルーマ残差サンプルとに基づいて、ビデオブロックを復号し得る。
【0026】
[0030]ビデオコーダは、特定の数のビットを使用して、各色成分を表し得る。ビデオコーダが色チャネルを表すために使用するビット数は、色チャネルの「ビット深度」と呼ばれる。場合によっては、ルーマ(Y)チャネルは、クロマチャネルの一方または両方よりも大きいビット深度(ビット数)を有し得る。場合によっては、クロマチャネルの一方または両方は、ルーマチャネルよりも大きいビット深度を有し得る。しかしながら、異なるビット深度を有する成分間でインター色成分残差予測を実施することは、不正確な予測を生じ得る。本開示の技法は、成分が異なるビット深度を有するときにインター成分予測の精度を改善することを対象とする。
【0027】
[0031]HEVCビデオコーディング規格は、ビデオデータのブロックを定義するツリー様の構造を定義している。本開示の技法は、HEVCのツリー様の構造の様々な異なる構成要素に適用され得る。HEVCでは、ビデオコーダは、ツリー構造に基づいて、(「フレーム」とも呼ばれる)コード化ピクチャをブロックに区分する。そのようなブロックはツリーブロックと呼ばれることがある。いくつかの事例では、ツリーブロックは最大コーディングユニット(LCU)と呼ばれることもある。HEVCのツリーブロックは、H.264/AVCなど、以前のビデオコーディング規格のマクロブロックにほぼ類似し得る。ただし、いくつかのビデオコーディング規格のマクロブロックとは異なり、ツリーブロックは一定のサイズ(たとえば一定数のピクセル)に限定されない。ツリーブロックは1つまたは複数のコーディングユニット(CU)を含み得、CUはサブコーディングユニット(サブCU)に再帰的に分割され得る。
【0028】
[0032]各CUは、1つまたは複数の変換ユニット(TU)を含み得る。各TUは、変換された残差データを含み得る。さらに、各CUは1つまたは複数の予測ユニット(PU)を含み得る。PUは、CUの予測モードに関係する情報を含む。本開示の技法は、ビデオデータのLCU、CU、サブCU、PU、TU、マクロブロック、マクロブロックパーティション、サブマクロブロック、または他のタイプのブロックのうちの1つまたは複数など、ブロックに適用し得る。
【0029】
[0033]ビデオ符号化および復号中に、ビデオコーダは、インター予測またはイントラ予測を使用して、ビデオデータの予測ブロックを決定し得る。ビデオデータの予測ブロックに基づいて、ビデオコーダは、たとえば、エンコーダ側で、予測ブロックと元のビデオブロックの対応するサンプルとの間の差分を含み得る、ビデオデータの残差ブロックを決定し得る。デコーダ側で、ビデオデータの残差ブロックは、予測ブロックと、表示のために出力される最終的なビデオブロックの対応するサンプルとの間の差分を含む。具体的には、ビデオデータの残差ブロックは、ビデオデータの元のブロックを再構成するために、予測ブロックに加算され得る。
【0030】
[0034]ビデオ復号中に、ビデオデコーダは、複号されるべき現在ブロックと同様である予測ブロックを決定し得る。PUは、ルーマサンプルとクロマサンプルとの予測ブロックをさらに備え得る、予測ブロックを含み得る。ビデオデコーダはまた、コード化ビデオビットストリーム中で、変換されたルーマ残差ブロックおよびクロマ残差ブロックなど、ビデオデータの変換された残差ブロックを備えるTUを受信し得る。具体的には、TUは、残差データを表す変換係数を含み得る。ビデオデコーダは、データの残差ブロックを再生するために、変換係数への逆変換を適用し得る。上記で説明されたように、ビデオデータの残差ブロックは、デコーダが表示のために出力するブロックと、予測ブロックとの間の差分を表す。出力のためのブロックを再構成するために、ビデオデコーダは、逆変換されたTUサンプルを対応するPUサンプルと合成し得る。
【0031】
[0035]ビデオコーダは、ビデオコーダがルーマ残差ブロックとクロマ残差ブロックとを取得するために、変換係数の任意のブロックをパースおよび逆変換することを終了した後、本開示の技法を実施し得る。本開示では、ルーマ残差サンプルのブロックは、
resY
と示される。ルーマ残差サンプルのブロックは、ルーマ残差ブロックのための変換係数の対応するブロックを逆変換することによって、ビデオデコーダによって取得され得る。ビデオデコーダは、ルーマブロックを再構成するために、ルーマ残差サンプルのこのブロックを使用し得る。たとえば、ビデオデコーダは、ルーマピクセルサンプルのブロックを再構成するために、ルーマ残差サンプルによって与えられるピクセル差分値を、対応する予測ルーマピクセルサンプルと合成し得る。
【0032】
[0036]ビデオデコーダは同様に、クロマ残差ブロックのための変換係数の対応するブロックを逆変換することによって、クロマ残差サンプルのブロックを取得し得る。クロマ残差サンプルのブロックは、
resC
と示される。
【0033】
[0037]ビデオデコーダは、クロマブロックを再構成するために、クロマ残差サンプルを使用し得る。たとえば、ビデオデコーダは、クロマピクセルサンプルのブロックを再構成するために、クロマ残差サンプルによって与えられるピクセル差分値を、対応する予測クロマピクセルサンプルと合成し得る。
【0034】
[0038]本開示はまた、次のように示される、予測されたクロマ残差サンプルのブロックの概念を導入する。
【0035】
resC’
[0039]予測されたクロマ残差サンプルは、たとえば、以下に記載されるように、クロマ残差サンプルと、たとえば、ルーマ残差サンプルに対するスケールファクタを用いてスケーリングされるバージョンなど、ルーマ残差サンプルのあるバージョンとの間の差分を表す、残差サンプルを含み得る。
【0036】
[0040]概して、本開示の技法に従って構成されたビデオエンコーダは、予測されたクロマ残差サンプルを決定および符号化し得る。予測されたクロマ残差サンプルを符号化することは、クロマ残差サンプルを符号化することと比較して、より良いビットストリームコーディング効率を提供し得る。
【0037】
[0041]予測されたクロマ残差サンプルを決定するために、ビデオエンコーダは、ルーマ残差サンプルのブロックをスケーリングおよび/または調整し得る。ルーマサンプルをスケーリングするために、ビデオエンコーダは、いくつかの例では、ルーマ残差サンプルのブロックとクロマ残差サンプルのブロックとの間の相関を示す、スケールファクタを決定し得る。ルーマ残差サンプルを調整するために、ビデオエンコーダは、ルーマ残差サンプルのビット深度とクロマ残差サンプルのビット深度とに基づいて、ルーマ残差サンプルを調整し得る。
【0038】
[0042]いくつかの例では、ビデオエンコーダは、最初に、スケーリングされたルーマ残差を生成するために、スケールファクタをルーマ残差サンプルのブロックで乗算し得る。ビデオエンコーダは、次いで、ビット深度調整されたルーマ残差サンプルを生成するために、クロマサンプルのビット深度とルーマサンプルのビット深度とに基づいて、スケーリングされたルーマ残差サンプルを調整し得る。いくつかの他の例では、ビデオエンコーダは、最初に、ビット深度調整されたルーマ残差サンプルを生成するために、ルーマ残差サンプルを調整し、次いで、ビット深度調整されたルーマ残差サンプルをスケールファクタで乗算することによって、ビット深度調整されたルーマサンプルをスケーリングし得る。
【0039】
[0043]いくつかの例では、ビデオエンコーダはまた、スケーリングされたルーマ残差サンプルとクロマ残差サンプルとのビット深度が異なるか否かを決定し得る。ビット深度間に差分がない場合、ビデオエンコーダは、ルーマ残差サンプルの値を調整しなくてよい。
【0040】
[0044]ルーマビット深度およびクロマビット深度が異なる場合、ビデオエンコーダは、ビット深度調整されたルーマ残差サンプルを生成するために、ルーマ残差サンプルの値を調整し(すなわち、増加または減少させ)得る。ビデオエンコーダは、ルーマ残差サンプルの第1のビット深度とクロマ残差サンプルの第2のビット深度とに基づいて、ルーマ残差サンプルの値を増加または減少させ得る。たとえば、ビデオエンコーダは、ルーマ残差サンプルの第1のビット深度とクロマ残差サンプルの第2のビット深度との間のビット深度差分に基づいて、ルーマ残差サンプルの値を調整し得る。いくつかの例では、ビット深度調整されたルーマ残差サンプルを生成するために、ビデオエンコーダは、クロマ残差サンプルのビット深度に一致するように、ルーマ残差サンプルの値を調整し得る。
【0041】
[0045]ビデオエンコーダがビット深度調整されたルーマ残差サンプルを生成すると、ビデオエンコーダは、予測されたクロマ残差サンプルを決定し得る。ビデオエンコーダは、クロマ残差サンプルと対応するビット深度調整されたルーマ残差サンプルとの間の差分を決定することによって、予測されたクロマ残差サンプルを計算し得る。ビデオエンコーダは、次いで、予測されたクロマ残差サンプルと(スケーリングされていない、および調整されていない)ルーマ残差サンプルとを変換、量子化、および符号化(たとえば、エントロピー符号化)し得る。ビデオエンコーダはまた、ルーマ残差サンプルに適用されたスケールファクタ(あれば)を量子化およびエントロピー符号化し得る。
【0042】
[0046]本開示の技法に従って構成されたビデオデコーダは、概して逆のプロセスを実施し得る。一例として、ビデオデコーダは、ルーマ残差サンプルのブロックと、予測されたクロマサンプルの対応するブロックとを受信し得る。ビデオデコーダは、2つの受信されたサンプルのブロックを復号するために、ルーマ残差サンプルのブロックと予測されたクロマ残差サンプルのブロックとを逆量子化および逆変換し得る。ビデオデコーダは、ビット深度調整されたルーマ残差サンプルを決定するために、復号されたルーマ残差サンプルをスケーリングおよび/または調整し得る。
【0043】
[0047]いくつかの例では、ビデオデコーダは、ビデオデコーダが符号化ビデオビットストリーム内で受信し得る、スケールファクタに基づいて、ルーマ残差サンプルをスケーリングし得る。ビデオデコーダは、ビット深度調整されたルーマ残差サンプルを生成するために、ルーマ残差サンプルの第1のビット深度に基づいて、および予測されたクロマ残差サンプルの第2のビット深度として、ルーマ残差サンプルを調整し得る。ビット深度調整は、予測されたクロマ残差サンプルのビット深度に一致する、ビット深度調整されたルーマ残差サンプルを生成し得る。
【0044】
[0048]いくつかの例では、ビデオデコーダは、スケーリングされたルーマ残差サンプルを生成するために、ルーマ残差サンプルをスケーリングし、次いで、ビット深度調整されたルーマ残差サンプルを生成するために、スケーリングされたルーマ残差サンプルを調整し得る。いくつかの例では、ビデオデコーダは、ビット深度調整されたルーマサンプルを生成するために、予測ルーマ残差サンプルを調整し得る。ビデオデコーダは、次いで、スケーリングされたルーマ残差サンプルを生成するために、ビット深度調整されたルーマ残差サンプルをスケーリングし得る。ビット深度間に差分がない場合、ビデオデコーダは、ルーマ残差サンプルのビット深度を調整しなくてよい。
【0045】
[0049]ビデオデコーダは、次いで、ビット深度調整されたルーマ残差サンプルと予測されたクロマ残差サンプルとに基づいて、ビデオデータのブロックのためのクロマ残差サンプルのブロックを決定し得る。たとえば、ビデオデコーダは、クロマ残差サンプルを形成するために、ビット深度調整されたルーマ残差サンプルを予測されたクロマ残差サンプルと合成し得る。ビデオデコーダは、次いで、サンプルの再構成されたブロックを形成するために、ルーマおよびクロマサンプルの対応する予測および残差ブロックを合成することによって、元のブロックを再構成する。
【0046】
[0050]ビット深度調整されたルーマ残差サンプルを生成することと、ビット深度調整されたルーマ残差サンプルに基づいてクロマ残差サンプルを決定することとに関して、上記で説明されたプロセスは、両方のクロマ成分(CbおよびCr)に適用され得る。また、ブロックのためのクロマ成分(すなわち、CbおよびCr)は、様々な例において異なるビット深度を有し得る。
【0047】
[0051]図1は、本開示の1つまたは複数の態様による、インター成分残差予測のための技法を実施し得る例示的なビデオ符号化および復号システムを示すブロック図である。図1に示されているように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを与えるソースデバイス12を含む。具体的には、ソースデバイス12は、コンピュータ可読媒体16を介してビデオデータを宛先デバイス14に与える。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14はワイヤレス通信のために装備され得る。
【0048】
[0052]本開示の1つまたは複数の例によれば、ソースデバイス12のビデオエンコーダ20は、ビデオデータのブロックのためのルーマ残差サンプルのブロックを決定することと、ビデオデータのブロックのためのクロマ残差サンプルの第2のビット深度を決定することとを行うように構成され得る。ビデオエンコーダ20は、ビット深度調整されたルーマ残差サンプルを生成するために、第1のビット深度と第2のビット深度とに基づいて、ルーマ残差サンプルを調整することと、ビット深度調整されたルーマ残差サンプルとクロマ残差サンプルとに基づいて、ビデオデータのブロックのための予測されたクロマ残差サンプルを決定することと、ルーマ残差サンプルと予測されたクロマ残差サンプルとに基づいて、ビデオデータのブロックを符号化することとを行うようにさらに構成され得る。
【0049】
[0053]逆の方法で、ビデオデコーダ30は、ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、ビデオデータのブロックのための予測されたクロマ残差サンプルの第2のビット深度を決定することとを行うように構成され得る。ビデオデコーダ30は、ビット深度調整されたルーマ残差サンプルを生成するために、第1のビット深度と第2のビット深度とに基づいて、ルーマ残差サンプルを調整することと、ビット深度調整されたルーマ残差サンプルと予測されたクロマ残差サンプルとに基づいて、ビデオデータのブロックのためのクロマ残差サンプルを決定することと、ルーマ残差サンプルとクロマ残差サンプルとに基づいて、ビデオデータのブロックを復号することとを行うようにさらに構成され得る。
【0050】
[0054]ソースデバイス12は、コンピュータ可読媒体16を介してビデオデータを宛先デバイス14に与える。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14はワイヤレス通信のために装備され得る。
【0051】
[0055]宛先デバイス14は、コンピュータ可読媒体16を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が、符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。コンピュータ可読媒体16は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−ray(登録商標)ディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、ソースデバイス12から符号化ビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化ビデオデータを宛先デバイス14に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
【0052】
[0056]いくつかの例では、出力インターフェース22は、記憶デバイスに符号化データを出力し得る。同様に、入力インターフェース28は、記憶デバイスからの符号化データにアクセスし得る。記憶デバイスは、ハードドライブ、Blu−rayディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、記憶デバイスは、ソースデバイス12によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、(たとえば、ストリーミングまたはダウンロードを介して)記憶デバイスからの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な、任意のタイプのサーバであり得る。例示的なファイルサーバとしては、ウェブサーバ(たとえば、ウェブサイト用の)、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、ハイパーテキスト転送プロトコル(HTTP)ストリーミングサーバ、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む、標準のデータ接続を介して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶されている符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。記憶デバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【0053】
[0057]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために一方向または双方向のビデオ送信をサポートするように構成され得る。
【0054】
[0058]図1のシステム10は一例にすぎない。インター色成分残差予測のための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実施され得る。「コーデック」と呼ばれるビデオエンコーダ/デコーダは、概して、本開示の技法のうちの1つまたは複数を実施し得る。その上、ビデオプリプロセッサは、本開示の技法を実施し得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が、宛先デバイス14に送信するためのコード化ビデオデータを生成するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのために、ビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。
【0055】
[0059]ソースデバイス12のビデオソース18は、ビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなど、ビデオキャプチャデバイスを含み得る。いくつかの例では、ビデオソース18は、ソースビデオとしてコンピュータグラフィックスベースのデータ、または、ライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成する。場合によっては、ビデオソース18はビデオカメラであり得る。いくつかの例では、ビデオソース18はビデオカメラであり得る。いくつかの例では、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンであり得る。しかしながら、上述のように、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータで生成されたビデオは、ビデオエンコーダ20によって符号化され得る。出力インターフェース22は、コンピュータ可読媒体16上にhe符号化ビデオ情報を出力し得る。
【0056】
[0060]コンピュータ可読媒体16は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−rayディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、ソースデバイス12から符号化ビデオデータを受信し、たとえば、ネットワーク送信を介して、その符号化ビデオデータを宛先デバイス14に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
【0057】
[0061]図1の例において、宛先デバイス14の入力インターフェース28は、情報をコンピュータ可読媒体16から受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20により定義された、ブロックおよび他のコーディングユニット、たとえば、GOPの特性および/または処理を記述するシンタックス要素を含むシンタックス情報を含み得る。ディスプレイデバイス32は復号ビデオデータをユーザに表示する。ディスプレイデバイス32は、陰極線管(CRT)ディスプレイ、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【0058】
[0062]ビデオエンコーダ20およびビデオデコーダ30は、ジョイントコラボレーティブチームオンビデオコーディング(JCT−VC)によって開発された、高効率ビデオコーディング(HEVC)規格、ならびにHEVCレンジ拡張など、ビデオコーディング規格に従って動作し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4、Part10、アドバンストビデオコーディング(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例には、MPEG−2およびITU−T H.263がある。
【0059】
[0063]図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0060】
[0064]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアあるいはそれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装され得る。本開示の技法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実施するための1つまたは複数のプロセッサを使用して、ハードウェアで命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれもが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
【0061】
[0065]ビデオシーケンスは、通常、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、概して、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOPに含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、通常、ビデオデータを符号化するために、CU中、および個々のビデオスライス内に含まれるサンプルのビデオブロックに作用する。
【0062】
[0066]HEVC規格は、ビデオフレームまたはピクチャがツリーブロック(すなわち、最大コーディングユニット(LCU)または「コーディングツリーユニット」(CTU))のシーケンスに分割され得ることを指定している。ツリーブロックはルーマおよび/またはクロマサンプルを含み得る。ビットストリーム内のシンタックスデータは、ピクセルの数に関して最大コーディングユニットであるLCUのサイズを定義し得る。いくつかの例では、CTUの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの2つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、CTUは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。コーディングツリーブロックはサンプルのN×Nブロックであり得る。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。スライスは、いくつかの連続するツリーブロックをコーディング順序(たとえば、ラスタ走査順序)で含む。
【0063】
[0067]各ツリーブロックは、4分木に従って1つまたは複数のコーディングユニット(CU)に分割され得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはツリーブロックに対応する。CUが4つのサブCUに分割される場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。
【0064】
[0068]4分木データ構造の各ノードは、対応するCUのシンタックスデータを提供し得る。たとえば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存し得る。CUがさらに分割されない場合、CUは、リーフCUと呼ばれる。
【0065】
[0069]ビデオエンコーダ20は、CTUのコーディングツリーブロックに対して4分木区分を再帰的に実施して、コーディングツリーブロックをコーディングブロックに分割し得、したがって「コーディングツリーユニット」という名称がある。コーディングブロックはサンプルのN×Nのブロックであり得る。いくつかの例では、CUは、ルーマサンプルアレイとCbサンプルアレイとCrサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの2つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備える。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、CUは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【0066】
[0070]CUは、CUがサイズの差異を有さないことを除いて、H.264規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、4つの子ノード(サブCUとも呼ばれる)に分割され得、各子ノードは、次に親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードと呼ばれる、最後の分割されていない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コード化ビットストリームに関連するシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、また、コーディングノードの最小サイズを定義し得る。それに応じて、ビットストリームは最小コーディングユニット(SCU)をも定義し得る。本開示では、HEVCのコンテキストにおける1つまたは複数の予測ユニット(PU)または変換ユニット(TU)を、あるいは他の規格のコンテキストにおける同様のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそれのサブブロック)をさらに含み得る、CUのいずれかを指すために、「ブロック」という用語を使用する。
【0067】
[0071]CUは、1つまたは複数の予測ユニット(PU)と、1つまたは複数の変換ユニット(TU)とを含む。CU対応のサイズは、形状が正方形または矩形であり得る。CUのサイズは、8×8ピクセルから最大64×64以上のピクセルを有するツリーブロックのサイズまで及び得る。CUに関連するシンタックスデータは、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモード符号化またはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかの間で異なり得る。CUは、CUのPUの形状が非正方形になり得るように区分され得る。CUに関連するシンタックスデータはまた、たとえば、4分木に従ってCUを1つまたは複数のTUに区分することを記述し得る。
【0068】
[0072]ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックであり得る。CUのPUは、ピクチャのルーマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、予測ブロックサンプルを予測するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、PUは、単一の予測ブロックと、予測ブロックサンプルを予測するために使用されるシンタックス構造とを備え得る。
【0069】
[0073]変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであり得る。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、それらの変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、YCbCr色空間を用いてフォーマットされるCUでは、CUの各TUは、ルーマ変換ブロックと、Cb変換ブロックと、Cr変換ブロックとを有し得る。TUのルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、TUは、単一の変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。TUは、形状が正方形または非正方形(たとえば、矩形)であり得る。言い換えれば、TUに対応する変換ブロックは、形状が正方形または非正方形であり得る。
【0070】
[0074]HEVC規格は、異なるCUに対して異なり得る、TUに従う変換を可能にする。TUは、通常、区分されたLCUのために定義された、所与のCU内のPUのサイズに基づいてサイズ決定されるが、これは常にそうであるとは限らない。TUは、通常、PUと同じサイズであるか、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT)として知られる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連するピクセル差分値は、変換係数を生成するために変換され、その変換係数は量子化され得る。
【0071】
[0075]概して、PUは、対応するCUのすべてまたは一部分に対応する空間エリアを表し、そのPUの参照サンプルを取り出すためのデータを含み得る。その上、PUは、予測に関係するデータを含む。いくつかの例では、PUは、イントラモードまたはインターモードを使用して符号化され得る。別の例として、PUがインターモード符号化されるとき、PUは、PUのための1つまたは複数の動きベクトルを定義するデータを含み得る。PUのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルについての解像度(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述し得る。
【0072】
[0076]上記のように、1つまたは複数のPUを有するリーフCUはまた、1つまたは複数のTUを含み得る。TUは、上記で説明したように、RQT(TU4分木構造とも呼ばれる)を使用して指定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを示し得る。次いで、各TUユニットは、さらなるサブTUにさらに分割され得る。TUがさらに分割されないとき、そのTUはリーフTUと呼ばれることがある。概して、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは同じイントラ予測モードを共有する。すなわち、概して、リーフCUのすべてのTUの予測値を計算するために同じイントラ予測モードが適用される。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフTUの残差値を、TUに対応するCUの一部と元のブロックとの間の差分として計算し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUは、PUよりも大きくまたは小さくなり得る。イントラコーディングの場合、PUは、同じCUの対応するリーフTUとコロケートされ得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
【0073】
[0077]その上、リーフCUのTUはまた、RQTと呼ばれるそれぞれの4分木データ構造に関連付けられ得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。TU4分木のルートノードは概してリーフCUに対応し、CU4分木のルートノードは概してツリーブロックに対応する。分割されないRQTのTUはリーフTUと呼ばれる。概して、本開示では、別段に記載されていない限り、リーフCUおよびリーフTUを指すためにそれぞれCUおよびTUという用語を使用する。
【0074】
[0078]PUとTUの両方は、当該ブロックに関連する色空間のチャネルの各々に対応するサンプルの1つまたは複数のブロックを含んでいる(すなわち、対応する)ことがある。PUのブロックは予測ブロックのサンプルを含み得、TUのブロックは、元のブロックと予測ブロックとの間の差分に対応する残差サンプルを含むブロック得る。
【0075】
[0079]一例として、HEVCは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HEVCは、2N×2NまたはN×NのPUサイズでのイントラ予測、および2N×2N、2N×N、N×2N、またはN×Nの対称なPUサイズでのインター予測をサポートする。HEVCはまた、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を指す。
【0076】
[0080]本開示では、「N×N」および「N by N」は、垂直および水平の寸法の観点からビデオブロックのピクセル寸法を指すために、たとえば、16×16ピクセルまたは16by16ピクセルのように、互換的に使用され得る。概して、16×16ブロックは、垂直方向に16ピクセル(y=16)、および水平方向に16ピクセル(x=16)を有する。同様に、N×Nブロックは、概して、垂直方向にNピクセル、および水平方向にNピクセルを有し、ここで、Nは非負整数値を表す。ブロック中のピクセルは行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要があるとは限らない。たとえば、ブロックはNxMピクセルを備え得、ここで、Mは、必ずしもNに等しいとは限らない。
【0077】
[0081](本明細書の他の場所で説明された)動き補償、イントラ予測、および/またはインター予測中に、ビデオエンコーダ20およびビデオデコーダ30は、インター色成分残差予測を実施するように構成され得る。インター成分残差予測中に、ビデオエンコーダ20は、現在ブロックの残差サンプルを予測するために使用される予測残差ブロックを決定し得る。予測ブロックは、クロマ残差サンプルのブロック、またはルーマ残差サンプルのブロックを備え得る。ビデオエンコーダ20は、第1の成分(たとえば、ルーマ)のサンプルと第2の成分(たとえば、クロマ、CbまたはCr)のサンプルとの間の相関に基づいて、第2の異なる成分の残差サンプルを予測するために、第1の成分の残差サンプルを利用し得る。ビデオエンコーダ20またはビデオデコーダ30は、クロマ成分のサンプルを決定するとき、元のルーマ残差信号または再構成されたルーマ残差信号のいずれかを利用し得る。
【0078】
[0082]インター成分予測を実施するとき、ビデオエンコーダ20またはビデオデコーダ30は、ビット深度調整されたルーマ残差サンプルを生成するために、ルーマ残差サンプルのビット深度とクロマ残差サンプルのビット深度とに基づいて、ルーマ残差サンプルを調整し得る。いくつかの例では、ビデオエンコーダ20またはビデオデコーダ30は、クロマ残差サンプルのビット深度に一致するように、ルーマ残差サンプルを調整し得る。ビデオエンコーダ20またはビデオデコーダ30は、いくつかの例では、少なくとも1つの算術シフト演算を使用して、ルーマ残差サンプルを調整し得る。
【0079】
[0083]調整プロセスの一例として、スケーリングされたルーマ残差サンプルのビット深度が、クロマ残差サンプルのビット深度未満である場合、ビデオエンコーダ20またはビデオデコーダ30は、ルーマ残差サンプル残差サンプルの値を増加させ得る。ビデオエンコーダ20またはビデオデコーダ30は、ビット深度調整されたルーマ残差サンプルを生成するために、ルーマ残差サンプルのビット深度を増加させ得る。スケーリングされたルーマ残差サンプルのビット深度が、クロマ残差サンプルのビット深度よりも大きい場合、ビデオエンコーダ20またはビデオデコーダ30は、ルーマ残差サンプルの値を減少させ得る。クロマ残差サンプルとルーマ残差サンプルとのビット深度が等しい場合、ビデオエンコーダ20は、ルーマ残差サンプルの値を増加または減少させなくてよい。
【0080】
[0084]ビデオエンコーダ20またはビデオデコーダ30はまた、ルーマ残差サンプルを調整する前または後、ルーマ残差サンプルをスケーリングし得る。ルーマ残差サンプルをスケーリングするために、ビデオエンコーダ20は、ビデオデータのブロックのためのルーマ残差サンプルと、ビデオデータのブロックのためのクロマ残差サンプルとの間の相関に基づいて、スケールファクタ(α)を決定し得る。いくつかの例では、ビデオエンコーダ20は、スケールファクタを符号化し得、ビデオデコーダ30は、符号化ビデオビットストリーム内でスケールファクタを受信し得る。ビデオエンコーダ20またはビデオデコーダ30は、スケーリングされたルーマ残差サンプルを生成するために、ルーマ残差サンプルまたはビット深度調整されたルーマ残差サンプルを、スケールファクタで乗算する。ビデオエンコーダ20またはビデオデコーダ30が、ルーマ残差サンプルをスケーリングおよび/またはビット深度調整すると、ビデオエンコーダ20またはビデオデコーダ30は、ビット深度調整および/またはスケーリングされたルーマ残差サンプルに基づいて、クロマ残差サンプルを決定し得る。
【0081】
[0085]場合によっては、ビデオエンコーダ20またはビデオデコーダ30は、ルーマ残差サンプルのビット深度をスケーリングおよび/または調整するとき、ビット深度調整および/またはスケーリングされたルーマ残差サンプルの値を飽和させることがある。ルーマ残差値を飽和させることを回避するために、ビデオエンコーダ20は、範囲内に、ビット深度調整および/またはスケーリングされたルーマ残差サンプルの値をクリップし得る。範囲の最大値および最小値は、いくつかの例では、変数に基づき得る。一例として、ビデオエンコーダ20またはビデオデコーダ30は、次の式に従って、ビット深度調整および/またはスケーリングされたルーマ残差サンプルの値をクリップし得る。
【0082】
[−maxResy’’,(maxResY’−1)]
ただし、maxResY’は、ビット深度調整および/またはスケーリングされたルーマ残差サンプルの所望の範囲の正の範囲境界と負の範囲境界とを示す変数である。
【0083】
[0086]場合によっては、ビット深度と呼ばれる、ルーマ残差サンプルの各々とクロマ残差サンプルのチャネルとを表すために使用されるビット数は、等しくないことがある。本開示の技法によれば、これらの場合、ビデオエンコーダ20またはビデオデコーダ30は、ビット深度調整されたルーマ残差サンプルを生成するために、ルーマ残差サンプルの値を調整し(すなわち、増加または減少させ)得る。ビデオエンコーダ20およびビデオデコーダ30は、ルーマ残差サンプルとクロマ残差サンプルとのビット深度に基づいて、ルーマ残差サンプルの値を調整し得る。たとえば、ビデオエンコーダ20またはビデオデコーダ30は、いくつかの例では、クロマ残差サンプルのビット深度に一致するように、ルーマ残差サンプルのビット深度を調整し得る。ビット深度調整されたルーマ残差サンプルを生成するために、ルーマ残差サンプルを調整した後、ビデオエンコーダ20およびビデオデコーダ30は、いくつかの例では、スケールファクタに基づいて、ビット深度調整されたルーマ残差サンプルをスケーリングし得る。
【0084】
[0087]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、式(1)に従って、クロマ残差ビット深度とスケーリングされたルーマ残差ビット深度との間の差分を計算し得る。
【0085】
【数1】
【0086】
式(1)では、delta_bit_depthは、スケーリングされたルーマ残差サンプルのビット深度(bitDepth_luma)と、クロマ残差サンプルのビット深度(bitDepth_chroma)との間の、ビット単位の差分である。
【0087】
[0088]delta_bit_depth>0であるとき(すなわち、ルーマビット深度がクロマビット深度よりも大きいとき)の一例では、ビデオエンコーダ20またはビデオデコーダ30は、式(2)に従って、ルーマ残差サンプルのビット深度を低減することによって、ビット深度調整されたルーマ残差サンプルを生成するために、ルーマ残差サンプルのビット深度を調整し得る。
【0088】
【数2】
【0089】
式(2)では、resYはルーマ残差サンプルのブロックであり、resY’はビット深度調整されたルーマ残差サンプルのブロックであり、「>>」は算術右シフト演算を表す。変数resYは、元のルーマ残差信号または再構成されたルーマ残差信号を表し得る。sign(x)は、xが正値である場合に1に等しく、xが負値である場合に−1に等しい関数である。変数「offset」は、ビデオエンコーダ20が丸めを容易にするために使用し得るオフセット変数である。いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、offsetが0以上であるという制約を受けて、2(delta_bit_depth-1)に等しいオフセットを設定し得る。式(2)の演算2(delta_bit_depth-1)は、丸め演算を表し得る。一例では、ビデオエンコーダ20またはビデオデコーダ30は、0に等しいオフセットを設定し得る。
【0090】
[0089]delta_bit_depth<0であるときの場合には、ビデオエンコーダ20およびビデオデコーダ30は、resY’を生成するために、delta_bit_depthに基づいて、スケーリングされた残差サンプルの値を減少させ得る。一例では、ビデオエンコーダ20またはビデオデコーダ30は、式(3)に従って、resY’、ビット深度調整されたルーマ残差サンプルのブロックを計算し得る。
【0091】
【数3】
【0092】
ただし、「<<」は算術左シフト演算を表す。
【0093】
[0090]resY’の値を飽和させる可能性があり得る。一例では、resY’の値が範囲[−maxResY’,(maxResY’−1)]にクリップされ、ただし、maxResY’はresY’の所望の範囲を示す。
【0094】
[0091]ビデオエンコーダ20またはビデオデコーダ30が、ビット深度調整されたルーマ残差サンプルを決定した後、ビデオエンコーダ20およびビデオデコーダ30は、スケーリングされたルーマ残差サンプルを生成するために、ビット深度調整されたルーマ残差サンプルをスケーリングし得る。いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、以下の式(4)に従って、ルーマ残差サンプルを調整し得る。
【0095】
【数4】
【0096】
式(4)では、resY’’はスケーリングされたルーマ残差サンプルを表し、αはスケールファクタであり、resY’はビット深度調整されたルーマ残差サンプルを表す。
【0097】
[0092]上記の例では、ビデオエンコーダ20およびビデオデコーダ30は、たとえば、式(3)および(4)に従って、ルーマ残差サンプルのビット深度とクロマ残差サンプルのビット深度とに基づいて、ルーマ残差サンプルを調整し、次いで、ビット深度調整されたルーマ残差サンプルをスケーリングし得る。いくつかの追加の例では、ビデオエンコーダ20およびビデオデコーダ30は、最初に、式(5)に従って、ビット深度をスケーリングし得る。
【0098】
【数5】
【0099】
ただし、resYはルーマ残差サンプルを表し、αはスケールファクタであり、resY’はスケーリングされたルーマ残差サンプルを表す。スケーリングされたルーマ残差サンプルを生成するために、ルーマ残差サンプルをスケーリングすることに続いて、ビデオエンコーダ20およびビデオデコーダ30は、次いで、これらの例ではresY’’と呼ばれる、ビット深度調整されたルーマ残差サンプルを生成するために、ルーマ残差サンプルを調整し得る。いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、ルーマ残差サンプルのビット深度とクロマ残差サンプルのビット深度とに基づいて、少なくとも1回、スケーリングされたルーマ残差サンプルを算術シフトすることによって、スケーリングされたルーマ残差サンプルを調整し得る。
【0100】
[0093]ビデオエンコーダ20がresY’’を決定した後、ビデオエンコーダ20は、クロマ残差サンプルの予測されたブロック、resC’を生成するために、resCと呼ばれる、クロマ残差サンプルの対応するブロックから、(スケーリングおよび/またはビット深度調整されたルーマ残差サンプルを表し得る)resY’’を減算し得る。式(6)は、resC’を決定するプロセスについてさらに記述する。
【0101】
【数6】
【0102】
[0094]ビデオエンコーダ20は、ルーマ残差サンプルの(スケーリングされていない、および調整されていない)ブロックを変換、量子化、およびエントロピー符号化し得る。ビデオエンコーダ20はまた、予測されたクロマ残差サンプルのブロックを変換、量子化、およびエントロピー符号化し得る。
【0103】
[0095]本開示の技法による概して逆の方法で、ビデオデコーダ30は、ビデオデータのブロックのためのルーマ残差サンプルと予測されたクロマ残差サンプルとを受信および復号し得る。いくつかの例では、ビデオデコーダ30は、スケールファクタを受信および復号し得る。受信された値の各々は、逆量子化および逆変換され得る。ビデオデコーダ30は、スケールファクタ、ルーマ残差サンプル、および/または予測されたクロマ残差サンプルを逆量子化および逆変換し得る。
【0104】
[0096]いくつかの例では、ビデオデコーダ30は、ビット深度調整されたルーマ残差サンプルを生成するために、少なくとも1つの算術シフト演算を使用して、ルーマ残差サンプルを調整し得る。ビデオデコーダ30は、次いで、たとえば、上記の式(4)に従って、ビット深度調整されたルーマ残差サンプルをスケーリングし得る。いくつかの他の例では、ビデオデコーダ30は、最初に、上記の式(5)において記述されたように、スケーリングされたルーマ残差サンプルのブロック、resY’を生成するために、スケールファクタをルーマ残差サンプルのブロックで乗算し、次いで、ビット深度調整されたルーマ残差サンプルを生成するために、少なくとも1つの算術シフト演算を使用して、ルーマ残差サンプルを調整し得る。
【0105】
[0097]ビデオエンコーダ30は、クロマ残差サンプルの最終的なまたは更新されたブロックを生成するために、スケーリングおよび/またはビット深度調整されたルーマ残差サンプルのブロックを、予測されたクロマ残差サンプルのブロックと合成し得る。式(7)は、ビデオデコーダ30が、スケーリングおよび/またはビット深度調整されたルーマ残差サンプルのブロックと、予測されたクロマ残差サンプルのブロックとに基づいて、クロマ残差サンプルのブロックを決定し得る、プロセスについて記述する。
【0106】
【数7】
【0107】
式7では、resC’’’は、クロマ残差サンプルのブロックを表す。変数resC’’は、予測されたクロマ残差サンプルの逆量子化および逆変換されたブロックを表し、resY’’は、ルーマ残差サンプルのスケーリングおよび/またはビット深度調整されたブロックである。
【0108】
[0098]いくつかの例では、スケーリングされたルーマ残差サンプルのブロックを調整(すなわち、右または左シフト)するのではなく、ビデオエンコーダ20またはデコーダ30は、スケールファクタを調整し得る。たとえば、スケールファクタは、次の可能な値{−1,−0.5,−0.25,−0.125,0,0.125,0.25,0.5,または1}のうちの1つを有し得る。ビデオエンコーダ20またはビデオデコーダ30は、式(1)に関して上記で定義されたような、delta_bit_depth変数の値に基づいて、スケールファクタの値をスケーリングし(すなわち、増加または減少させ)得る。
【0109】
[0099]いくつかの例では、ビデオエンコーダ20またはビデオデコーダ30は、α’と呼ばれる、αの調整された値を計算し得る。delta_bit_depthが0よりも大きい場合、ビデオエンコーダ20またはビデオデコーダ30は、式(8)に従ってα’を計算し得る。
【0110】
【数8】
【0111】
[0100]delta_bit_depthが0未満である場合、ビデオエンコーダ20またはビデオデコーダ30は、式(9)に従ってα’を計算し得る。
【0112】
【数9】
【0113】
[0101]ビデオデコーダ30およびビデオエンコーダ20は、次いで、上記で説明されたように、スケーリングおよび/またはビット深度調整されたルーマ残差サンプルを計算し得るが、ビデオエンコーダ20およびビデオデコーダ30は、ルーマ残差サンプルをスケーリングするために、αの代わりに調整されたスケールファクタα’を使用し得る。
【0114】
[0102]いくつかの例では、ビデオエンコーダ20またはビデオデコーダ30は、少なくとも1つの算術シフト演算を使用することによって、ルーマ残差サンプルを調整およびスケーリングし得る。一例では、ビデオエンコーダ20またはビデオデコーダ30は、(α*resY)>0の場合、式(10)に従ってresY’を計算し得る。
【0115】
【数10】
【0116】
[0103]別の例では、ビデオエンコーダ20およびビデオデコーダ30は、(α*resY)<0の場合、式(11)に従って、ビット深度調整および/またはスケーリングされたルーマ残差サンプルを計算し得る。
【0117】
【数11】
【0118】
様々な例10および11では、αは、いくつかの例では、{−8,−4,−2,−1,0,1,2,4,8}の値を有し得る。
【0119】
[0104]いくつかの例では、ビデオエンコーダ20またはビデオデコーダ30は、Nと呼ばれるシフティング変数に基づいて、ビット深度調整されたルーマ残差サンプル(たとえば、resY’)を生成するために、ルーマ残差サンプルを調整し得る。シフティング変数Nは、ビット深度差分に依存し得る。ビデオエンコーダ20またはビデオデコーダ30は、式(12)に従ってNを計算し得る。
【0120】
【数12】
【0121】
[0105]Nが0に等しい場合、ビデオエンコーダ20またはビデオデコーダ30は、ルーマ残差サンプルまたはスケーリングされたルーマ残差サンプルを調整することなく、ビット深度調整および/またはスケーリングされたルーマ残差サンプルを計算し得る。Nが0よりも大きい場合、ビデオエンコーダ20またはビデオデコーダ30は、式(13)に従ってresY’を計算し得る。
【0122】
【数13】
【0123】
ただし、sign(x)は、xが正値である場合に1に等しく、xが負値である場合に−1に等しく、ただし、式(2)に関して上記で説明されたように、offsetは2(N-1)に等しい。offsetは、いくつかの例では、0に等しくなり得る。
【0124】
[0106]N<0の場合、ビデオエンコーダ20およびビデオデコーダ30は、式(14)に従って、ビット深度調整および/またはスケーリングされたルーマ残差サンプルを計算し得る。
【0125】
【数14】
【0126】
[0107]ビット深度調整および/またはスケーリングされたルーマ残差サンプルの値を飽和させる可能性があり得る。一例では、ビデオエンコーダ20またはビデオデコーダ30は、ビット深度調整および/またはスケーリングされたルーマ残差サンプルの値を範囲[−maxResY’,(maxResY’−1)]にクリップすることができ、ただし、maxResY’は、resY’の所望の範囲を示す。resYは、元のルーマ残差信号または再構成されたルーマ残差信号であり得る。次いで、ビデオエンコーダ20またはビデオデコーダ30は、式(15)に従って、ルーマ残差サンプルのブロックに基づいて、予測されたクロマ残差サンプルを決定し得る。
【0127】
【数15】
【0128】
ビデオエンコーダ20は、resC’を変換、量子化、およびエントロピー符号化し得る。
【0129】
[0108]デコーダ側では、ビデオデコーダ30は、ビット深度調整および/またはスケーリングされたルーマ残差サンプルを生成するために実施されたものと同じ演算を実施し得るが、再構成されたルーマ残差信号のみを使用する。ビデオデコーダ30は、式(16)に従って、再構成されたクロマ信号を生成し得る。
【0130】
【数16】
【0131】
ただし、resC’’は、クロマの逆量子化および逆変換された信号である。
【0132】
[0109]いくつかの例では、ビデオエンコーダ20は、ルーマ残差サンプルとクロマ残差サンプルとのビット深度における差分を示す値をシグナリングするように構成され得る。逆の方法で、ビデオデコーダ30は、ルーマ残差サンプルとクロマ残差サンプルとのビット深度における差分を示す値を復号するように構成され得る。ビデオエンコーダ20およびビデオデコーダ30は、いくつかの例では、ビット深度差分を示す値が0に等しい場合でも、その値をコーディングし得る。いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、ビット深度差分を示す値が0に等しくない場合のみ、その値をコーディングし得る。
【0133】
[0110]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、スケーリングおよび/またはビット深度調整されたルーマ残差サンプルを生成するために、ルーマ残差サンプルの値を増加または減少させるために、シフティング演算を使用しなくてよい。いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、ルーマ残差サンプルを調整するために、シフティング演算を使用するのではなく、スケールファクタを使用し、スケールファクタを乗算し得る。
【0134】
[0111]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、元のまたは再構成されたルーマ残差値の値を、スケーリングおよび/またはビット深度調整されたルーマ残差値にマッピングすることによって、ルーマ残差サンプルを調整するために、あらかじめ定義されたマップを使用し得る。ビデオエンコーダ20は、ビデオデコーダ30が復号し得るマップをシグナリングし得、または、マップはあらかじめ定義され得る。マップは、1つまたは複数のエントリを有し得る。
【0135】
[0112]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後に、ビデオエンコーダ20またはビデオデコーダ30は、CUのTUのための残差データを計算し得る。PUは、空間領域(ピクセル領域とも呼ばれる)において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え得、TUは、変換、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20またはビデオデコーダ30は、CUのための残差データを含むTUを形成し、次いで、TUを変換して、CUの変換係数を生成し得る。言い換えれば、ビデオエンコーダ20は、TUのための変換係数ブロックを生成するために、TUの変換ブロックに変換を適用し得る。ビデオデコーダ30は、TUのための変換ブロックを再構成するために、TUの変換係数ブロックに逆変換を適用し得る。
【0136】
[0113]変換係数を生成するための(もしあれば)変換の適用の後に、ビデオエンコーダ20またはビデオデコーダ30は、変換係数の量子化を実施し得る。言い換えれば、ビデオエンコーダ20は、変換係数ブロックの変換係数を量子化し得る。ビデオデコーダ30は、変換係数ブロックの変換係数を逆量子化し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ得、ここで、nはmよりも大きい。逆量子化(inverse quantization)(すなわち、逆量子化(dequantization))は、係数の一部または全部のビット深度を増加させ得る。
【0137】
[0114]量子化の後に、ビデオエンコーダ20は、変換係数を走査して、量子化変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、アレイの前部により高いエネルギー(したがって、より低い周波数)係数を配置し、アレイの後部により低いエネルギー(したがって、より高い周波数)係数を配置するように設計され得る。いくつかの例では、ビデオエンコーダ20またはビデオデコーダ30は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20またはビデオデコーダ30は適応走査を実施し得る。量子化変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20またはビデオデコーダ30は、たとえば、コンテキスト適応型バイナリ算術コーディング(CABAC:context-adaptive binary arithmetic coding)、コンテキスト適応型可変長コーディング(CAVLC:context-adaptive variable length coding)、、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディングまたは別のエントロピーコーディング方法に従って1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデコーダ30によるビデオデータの復号での使用のために、符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
【0138】
[0115]CABACを実施するために、ビデオエンコーダ20は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの隣接値が非0であるか否かに関係し得る。CAVLCを実施するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。可変長コーディング(VLC)におけるコードワードは、比較的短いコードが優勢シンボルに対応する一方で、より長いコードが劣勢シンボルに対応するように構成され得る。このように、VLCの使用は、たとえば、送信されるべき各シンボルに対して等長のコードワードを使用するよりもビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
【0139】
[0116]ビデオエンコーダ20はさらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびGOPベースのシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダ中で、ビデオデコーダ30に送り得る。GOPシンタックスデータは、それぞれのGOPの中のいくつかのフレームを記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用された符号化/予測モードを示し得る。
【0140】
[0117]図2は、本開示の1つまたは複数の態様による、適応インター色成分残差予測のための技法を実施し得るビデオエンコーダの一例を示すブロック図である。図2の例では、ビデオエンコーダ20は、ビデオデータメモリ41と、モード選択ユニット40と、復号ピクチャバッファ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。モード選択ユニット40は、今度は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、パーティションユニット48とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。ブロック境界をフィルタして、再構成されたビデオからブロッキネスアーティファクトを除去するために、デブロッキングフィルタ(図2に示さず)も含まれ得る。所望される場合、デブロッキングフィルタは、通常、加算器62の出力をフィルタ処理することになる。デブロッキングフィルタに加えて、(ループ内またはループ後の)追加のフィルタも使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、(ループ内フィルタとして)加算器50の出力をフィルタ処理し得る。いくつかの例では、デブロッキングフィルタは、上記で説明されたように、インター色成分予測のために、ルーマサンプルのフィルタ処理されたブロックを生成するために使用され得る。
【0141】
[0118]ビデオデータメモリ41は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ41に記憶されたビデオデータは、たとえば、ビデオソース18から取得され得る。復号ピクチャバッファ64は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用するための、参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ41および復号ピクチャバッファ116は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)など、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ41および復号ピクチャバッファ64は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ41は、ビデオエンコーダ20の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【0142】
[0119]符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。このようにして、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信し得る。
【0143】
[0120]動き推定ユニット42および動き補償ユニット44は、時間的予測を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実施する。イントラ予測ユニット46は、代替的に、空間的予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する受信されたビデオブロックのイントラ予測コーディングを実施し得る。ビデオエンコーダ20は、たとえば、ビデオデータの各ブロックについて適切なコーディングモードを選択するために、複数のコーディングパスを実施し得る。
【0144】
[0121]加算器50は、コーディングされている現在ビデオブロックのピクセル値からの予測ブロックのピクセル値の間の差分を決定することによって残差ビデオブロックを形成し得る。いくつかの例では、加算器50は、残差ブロックを決定すること、決定しないこと、または符号化することを行い得る。
【0145】
[0122]パーティションユニット48は、以前のコーディングパスにおける以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、パーティションユニット48は、レートひずみ分析(たとえば、レートひずみ最適化)に基づいて、最初にフレームまたはスライスをLCUに区分し、LCUの各々をサブCUに区分し得る。モード選択ユニット40は、LCUのサブCUへの区分を示す4分木データ構造をさらに生成し得る。4分木のリーフノードCUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。
【0146】
[0123]モード選択ユニット40は、たとえば、誤差結果に基づいて、コーディングモード、イントラまたはインターのうちの1つを選択し得、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器50に与え得る。加算器50は残差ブロックデータを生成し得る。たとえば、加算器50は、残差ブロックデータの各サンプルが、現在CUのコーディングブロック中のサンプルと、現在CUのPUの予測ブロックの対応するサンプルとの間の差分に等しくなるように、現在CUの残差ブロックデータを生成し得る。加算器62は、参照フレームとして使用するために符号化ブロック(すなわち、コーディングブロック)を再構成し得る。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報など、シンタックス要素をエントロピー符号化ユニット56に与える。
【0147】
[0124]動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット42によって実施される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在フレーム内でコーディングされている現在ブロック(または、他のコーディングユニット)に対する、参照フレーム内の予測ブロック(または、他のコード化ユニット)に対する、現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。言い換えれば、動きベクトルは、PUの予測ブロックと、参照ピクチャ中の対応する予測ブロックとの間の変位を示し得る。予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロック(すなわち、予測ブロック)にぴったり一致することがわかるブロックである。
【0148】
[0125]いくつかの例では、ビデオエンコーダ20は、復号ピクチャバッファ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。言い換えれば、ビデオエンコーダ20は、PUの予測ブロック中のサンプルを生成するために、1つまたは複数の参照ピクチャのサンプルに1つまたは複数の補間フィルタを使用適用し得る。いくつかの例では、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数のピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、完全ピクセル位置と分数ピクセル位置とに関して動き探索を実施し、分数ピクセル精度で動きベクトルを出力し得る。
【0149】
[0126]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUについての動きベクトルを計算し得る。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、復号ピクチャバッファ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42が動きベクトルを計算した場合、動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送り得る。
【0150】
[0127]動き補償ユニット44は動き補償を実施することができる。動き補償は、動き推定ユニット42によってPUについて決定された1つまたは複数の動きベクトルに基づいて、PUのための1つまたは複数の予測ブロックを生成またはフェッチすることを伴い得る。この場合も、動き推定ユニット42と動き補償ユニット44は、いくつかの例では機能的に統合され得る。現在ビデオブロックのPUについての動きベクトルを受信すると、動き補償ユニット44は、その動きベクトルに基づいて参照ピクチャリストのうちの1つのピクチャから予測ブロックの位置を特定し得る。概して、動き推定ユニット42はルーマ成分に対して動き推定を実施し、動き補償ユニット44は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【0151】
[0128]イントラ予測ユニット46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって実施されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、使用するのに適切なイントラ予測モードを、テストされたモードから選択し得る。
【0152】
[0129]たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードについて、レートひずみ分析を使用してレートひずみ値を計算し、テストされたイントラ予測モード間で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化されたブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化されたブロックのひずみおよびレートから比を計算し得る。
【0153】
[0130]ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット46は、ブロックについて選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に与え得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルと複数の修正されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)とを含み得る送信されるビットストリーム構成データ中に、様々なブロックの符号化コンテキストの定義と、コンテキストの各々に使用すべき最確イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示とを含み得る。
【0154】
[0131]いくつかの例では、イントラ予測ユニット46および/または動き補償ユニット44は、式(2)に従って、ルーマ残差サンプルとクロマ残差サンプルとのビット深度における差分を決定するように構成され得る。クロマ残差サンプルのビット深度とルーマ残差サンプルのビット深度とに基づいて、イントラ予測ユニット46および/または動き補償ユニット44は、ビット深度調整されたルーマ残差サンプルを生成するために、ルーマ残差サンプルを調整し得る。イントラ予測ユニット46および/または動き補償ユニット44は、様々な例における式(2)〜(3)および(10)〜(14)に従って、ルーマ残差サンプルまたはスケーリングされたルーマ残差サンプルを調整し得る。
【0155】
[0132]イントラ予測ユニット46および/または動き補償ユニット44は、いくつかの例では、ビデオデータのブロックのためのルーマ残差サンプルと、ビデオデータのブロックのためのクロマ残差サンプルとの間の関係を示すスケールファクタを決定し得る。イントラ予測ユニット46および/または動き補償ユニット44は、スケールファクタに基づいて、スケーリングされたルーマ残差サンプルを計算し得る。イントラ予測ユニット46および/または動き補償ユニット44は、ルーマ残差ブロックと、スケールファクタと、クロマ残差サンプルとに基づいて、予測されたクロマ残差サンプルのブロックを決定し得る。
【0156】
[0133]様々な代替例では、イントラ予測ユニット46および/または動き補償ユニット44は、式(8)〜(9)において記述されたように、計算されたビット深度差分に基づいて、スケールファクタを調整し得る。イントラ予測ユニット46および/または動き補償ユニット44はまた、式(12)〜(14)において記述されたように、シフティング変数Nに基づいて、ルーマ残差サンプルを計算し得る。
【0157】
[0134]いくつかの例では、イントラ予測ユニット46および/または動き補償ユニット44は、ルックアップテーブル(LUT)を使用して、ルーマ残差サンプルを調整するように構成され得る。LUTの出力は、ビット深度調整されたルーマ残差サンプルであり得る。様々な例では、LUTはあらかじめ定義され得、または、イントラ予測ユニット46および/もしくは動き補償ユニット44が、LUTを適応的に決定し得る。
【0158】
[0135]ビデオエンコーダ20は、モード選択ユニット40からの予測データ(たとえば、予測ブロック)と、コーディングされている元のビデオブロック(たとえば、コーディングブロック)からのデータとの間の差分を決定することによって、残差ビデオブロックを形成し得る。加算器50は、この差分演算を実施する1つまたは複数の構成要素を表す。変換処理ユニット52は、残差ブロックに変換を適用して、残差変換係数値を備えるビデオブロック(すなわち、変換係数ブロック)を生成し得る。たとえば、変換処理ユニット52は、残差係数値を生成するために離散コサイン変換(DCT)または概念的に同様の変換を適用し得る。変換処理ユニット52は、DCTと概念的に同様である他の変換を実施し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実施し得る。代替的に、エントロピー符号化ユニット56が走査を実施し得る。
【0159】
[0136]ビデオエンコーダ20は、コード化ビデオビットストリーム中で様々なパラメータセットを符号化し得る。そのようなパラメータセットは、1つまたは複数のピクチャに共通であるシンタックス要素を含み得るピクチャパラメータセット(PPS)と、ピクチャの1つまたは複数のシーケンスに共通であるシンタックス要素を含み得るシーケンスパラメータセットとを含み得る。
【0160】
[0137]量子化の後に、エントロピー符号化ユニット56は、量子化変換係数をエントロピーコーディングする。言い換えれば、エントロピー符号化ユニット56は、量子化変換係数を表すシンタックス要素をエントロピー符号化し得る。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型バイナリ算術コーディング(CABAC)、コンテキスト適応型可変長コーディング(CAVLC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーコーディング技法を実施し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット56によるエントロピーコーディングの後に、ビデオデコーダ30は、符号化されたビットストリームを、別のデバイス(たとえば、ビデオデコーダ30)に送信するか、あるいは後で送信するかまたは取り出すためにアーカイブし得る。
【0161】
[0138]量子化変換係数をエントロピーコーディングすることに加えて、エントロピー符号化ユニット56は、スケールファクタをエントロピー符号化するように構成され得る。様々な例では、エントロピー符号化ユニット56は、CABACコーダのバイパスモードで固定長コードとして、スケールファクタ(α)値をシグナリングするように構成され得る。
【0162】
[0139]いくつかの例では、エントロピー符号化ユニット56は、少なくとも1つのスケールファクタを少なくとも1つの調整されたスケールファクタにマッピングする、LUTをシグナリングするように構成され得る。いくつかの例では、エントロピー符号化ユニット56は、クロマ残差サンプルとルーマ残差サンプルとの間のビット深度差分を示す値をエントロピー符号化し得る。
【0163】
[0140]逆量子化ユニット58および逆変換ユニット60は、たとえば参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。たとえば、逆量子化ユニット58は変換係数ブロックを逆量子化し得る。逆変換ユニット60は、逆量子化された変換係数ブロックに逆変換を適用することによってTUの変換ブロックを再構成し得る。加算器62は、再構築された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、復号ピクチャバッファ64に記憶するための再構築されたビデオブロックを生成する。動き推定ユニット42および動き補償ユニット44は、後続のビデオフレーム中のブロックをインターコーディング(すなわち、インター予測)するために、再構築されたビデオブロックを参照ブロックとして使用し得る。動き補償ユニット44はまた、動き推定での使用のためにサブ整数ピクセル値を計算するために、1つまたは複数の補間フィルタを再構築された残差ブロックに適用し得る。
【0164】
[0141]動き推定ユニット42は、インター予測されるPUについて1つまたは複数のピクセル値を予測するためにビデオエンコーダ20が使用し得る1つまたは複数の参照ピクチャを決定し得る。動き推定ユニット42は、各参照ピクチャをLTRPまたは短期参照ピクチャとしてシグナリングし得る。動き推定ユニット42は、ピクチャが参照のために使用されないとマークされるまで、参照ピクチャを復号ピクチャバッファ64に記憶し得る。ビデオエンコーダ20のモード選択ユニット40は、1つまたは複数の参照ピクチャについての識別情報を含む様々なシンタックス要素を符号化し得る。
【0165】
[0142]このようにして、図2におけるビデオエンコーダ20は、ビデオデータのブロックのためのルーマ残差サンプルのブロックを決定することと、ビデオデータのブロックのためのクロマ残差サンプルの第2のビット深度を決定することとを行うように構成された、ビデオエンコーダの一例を表す。ビデオエンコーダ20は、ビット深度調整されたルーマ残差サンプルを生成するために、第1のビット深度と第2のビット深度とに基づいて、ルーマ残差サンプルを調整することと、ビット深度調整されたルーマ残差サンプルとクロマ残差サンプルとに基づいて、ビデオデータのブロックのための予測されたクロマ残差サンプルを決定することと、ルーマ残差サンプルと予測されたクロマ残差サンプルとに基づいて、ビデオデータのブロックを符号化することとを行うようにさらに構成され得る。
【0166】
[0143]図3は、本開示の1つまたは複数の態様による、適応インター色成分残差予測のための技法を実施し得るビデオデコーダの一例を示すブロック図である。図3の例では、ビデオデコーダ30は、ビデオデータメモリ69と、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、復号ピクチャバッファ82と、加算器80とを含む。いくつかの例では、ビデオデコーダ30は、ビデオエンコーダ20(図2)に関して説明された符号化パスとは概して逆の復号パスを実施し得る。
【0167】
[0144]ビデオデータメモリ69は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ69に記憶されたビデオデータは、たとえば、コンピュータ可読媒体16から、たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードもしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ69は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB)を形成し得る。復号ピクチャバッファ82は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを複号する際に使用するための、参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ69および復号ピクチャバッファ82は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)など、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ69および復号ピクチャバッファ82は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ69は、ビデオデコーダ30の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【0168】
[0145]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から符号化ビデオスライスのビデオブロックならびに関連するシンタックス要素および/またはシンタックスデータを表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、ビットストリームをエントロピー復号して、量子化係数、動きベクトルまたはイントラ予測モードインジケータ、および他のシンタックス要素を生成する。エントロピー復号ユニット70は、動きベクトルと他のシンタックス要素とを動き補償ユニット72に転送し得る。
【0169】
[0146]エントロピー復号ユニット70は、本開示で説明されるようなインター色成分残差予測において使用するための1つまたは複数のスケールファクタα値を含み得る、CUについてのシンタックスデータを受信し得る。ビデオデコーダ30は、いくつかの例では、スケールファクタを復号するように構成され得る。いくつかの例では、復号ユニットは、上記で説明されたようなシフティング値Nを復号するように構成され得る。
【0170】
[0147]いくつかの例では、エントロピー復号ユニット70は、少なくとも1つのエントリを含んでいるLUTを復号するように構成され得る。各エントリは、スケールファクタを調整されたスケールファクタにマッピングし得る。エントロピー復号ユニット70はまた、クロマ残差サンプルのビット深度とルーマ残差サンプルのビット深度とにおける差分を示す値を復号するようにも構成され得る。
【0171】
[0148]スケールファクタα値とシフティング値とを受信することに加えて、エントロピー複号ユニット70は、様々なパラメータセット中で追加のシンタックス要素を復号およびパースし得る。そのようなパラメータセットは、1つまたは複数のピクチャに共通であるシンタックス要素を含み得るPPSと、ピクチャの1つまたは複数のシーケンスに共通であるシンタックス要素を含み得るSPSとを含み得る。
【0172】
[0149]ビデオデコーダ30は、復号ピクチャバッファ82に記憶された参照ピクチャに基づいて、(たとえば、デフォルトの構成技法を使用して)参照ピクチャリスト、リスト0およびリスト1を構成し得る。ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、現在ビデオスライスのビデオブロックについての予測データを生成し得る。イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの以前に復号されたブロックからのデータとに基づいて予測データを生成し得る。ビデオデコーダ30がビデオフレームのスライスをインターコード化(すなわち、B、PまたはGPB)スライスとしてコーディングするとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成し得る。動き補償ユニット72は、参照ピクチャリストのうちの1つ内の参照ピクチャのうち1つから予測ブロックを生じ得る。
【0173】
[0150]動き補償ユニット72は、現在ビデオスライスのビデオブロックについての予測情報を決定するために動きベクトルおよび/またはシンタックス要素を使用し得る。いくつかの例では、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測情報を生成し得る。動き補償ユニット72は、予測情報を使用して、復号されている現在ビデオブロックのための予測ブロックを生成し得る。たとえば、動き補償ユニット72は、現在ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、BスライスまたはPスライススライス)と、スライスの参照ピクチャリストのうちの1つまたは複数についての構成情報と、現在ビデオスライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【0174】
[0151]PUの動きベクトルがサブピクセル精度を有するとき、動き補償ユニット72は、PUの予測ブロックを生成するために参照ピクチャのサンプルに1つまたは複数の補間フィルタを適用し得る。言い換えれば、動き補償ユニット72は、補間フィルタに基づいて補間を実施することもでき得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20が使用したのと同じ補間フィルタを使用して参照ブロックのサブ整数ピクセルのための補間値を計算し得る。このようにして、いくつかの例では、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用される補間フィルタを決定し得、その補間フィルタを使用して予測ブロックを生成し得る。
【0175】
[0152]逆量子化ユニット76は、ビットストリーム内で供給され、エントロピー復号ユニット70によって復号された量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化ユニット76はまた、適応インター色成分残差予測に関する1つまたは複数のパラメータを逆量子化し得る。これらのパラメータは、スケールファクタ(α)、および/または、いくつかの例ではシフティングスケールファクタNを含み得る。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、量子化パラメータQPYの使用を含み得る。ビデオデコーダ30は、ビデオスライス中の各ビデオブロックについて量子化パラメータQPYを計算し得る。
【0176】
[0153]逆変換ユニット78は、逆量子化された変換係数ブロックを受信し得る。現在ブロックについて変換がスキップされる場合、逆変換ユニット78は、逆量子化された残差ブロックを受信し得る。逆変換ユニット78は、逆変換を使用して、受信されたブロックを変換し得る。いくつかの例では、ピクセル領域中に残差ブロック(たとえば、変換ブロック)を生成するための、変換係数への逆変換(たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセス)。逆変換ユニット78は、「再構成された残差信号」と呼ばれる信号を出力し得る。
【0177】
[0154]ビデオデコーダ30はまた、シンタックス要素または他の情報に基づいて現在ブロックがイントラ予測されていることを決定し得る。現在ビデオブロックがイントラ予測されている場合、イントラ予測ユニット74は現在ブロックを復号し得る。イントラ予測ユニット74は、現在ブロックと同じピクチャから隣接する予測ブロックを決定し得る。イントラ予測ユニット74は、予測ブロックに基づいて変換係数ブロックおよび/または残差ブロックを生成し得る。
【0178】
[0155]動き補償ユニット72またはイントラ予測ユニット74が、動きベクトルおよび他のシンタックス要素に基づいて現在ビデオブロックのための変換係数ブロックおよび/または残差ブロックを生成した後に、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを、動き補償ユニット72によって生成された対応する予測ブロックと合成することによって、復号ビデオブロックを形成する。加算器80は、この加算演算を実施する1つまたは複数の構成要素を表す。所望される場合、ブロッキネスアーティファクトを除去するために復号ブロックをフィルタ処理するデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、(コーディングループ内またはコーディングループ後のいずれかの)他のループフィルタも使用され得る。復号ピクチャバッファ82は、復号ビデオブロックを所与のフレームまたはピクチャに記憶し、ビデオデコーダ30は、それを後続の動き補償のために使用し得る。復号ピクチャバッファ82はまた、図1のディスプレイデバイス32などのディスプレイデバイス上に後で提示するために復号ビデオを記憶し得る。
【0179】
[0156]動き補償ユニット72および/またはイントラ予測ユニット74は、ルーマ残差ブロックと、スケールファクタと、予測されたクロマ残差サンプルとに基づいて、クロマ残差サンプルのブロックを決定し得る。動き補償ユニット72および/またはイントラ予測ユニット74は、たとえば、式(2)〜(3)および(8)〜(14)に関して上記で説明されたように、ビット深度調整されたルーマ残差サンプルを生成するために、いくつかの例では、少なくとも1つの算術シフト演算を使用することによって、ルーマ残差サンプルを調整し得る。いくつかの例では、動き補償ユニット72および/またはイントラ予測ユニット74は、ルーマ残差サンプルのビット深度と予測されたクロマ残差サンプルのビット深度とにおける差分を計算するように構成され得る。
【0180】
[0157]動き補償ユニット72および/またはイントラ予測ユニット74は、スケールファクタαに基づいて、スケールされたルーマ残差サンプルを生成するために、ビット深度調整されたルーマ残差サンプルをスケーリングし得る。動き補償ユニット72および/またはイントラ予測ユニット74は、一例として、式(7)において記述されたように、クロマ残差サンプルとスケーリングされたルーマ残差サンプルとに基づいて、予測されたクロマ残差サンプルを決定し得る。
【0181】
[0158]いくつかの例では、動き補償ユニット72および/またはイントラ予測ユニット74は、マップとも呼ばれるLUTに基づいて、ビット深度調整されたルーマ残差信号を決定し得る。動き補償ユニット72および/またはイントラ予測ユニット74は、いくつかの例では、LUTをあらかじめ定義するか、または生成し得る。
【0182】
[0159]ビデオデコーダ30が、再構成されたビデオを生成すると、ビデオデコーダ30は、いくつかの例では、再構成されたビデオブロックを(たとえば、表示または記憶のために)復号ビデオとして出力し得る。このようにして、ビデオデコーダ30は、ビデオデータのブロックのためのルーマ残差サンプルを決定することと、ビデオデータのブロックのためのクロマ残差サンプルを決定することとを行うように構成された、ビデオデコーダの一例を表す。
【0183】
[0160]上記で説明したように、インター予測中に、動き補償ユニット72は、復号されている現在ブロックのための予測ビデオブロックを形成するためにビデオデコーダ30が使用し得る1つまたは複数の参照ピクチャを決定し得る。動き補償ユニット72は、参照ピクチャが長期参照のためにマークされたかまたは短期参照のためにマークされたかを示すコード化ビデオビットストリームのシンタックス要素に基づいて、参照ピクチャが長期参照ピクチャであるのか、または短期参照ピクチャであるのかを決定し得る。動き補償ユニット72は、参照ピクチャが参照のために使用されないとマークされるまで、参照ピクチャを復号ピクチャバッファ82に記憶し得る。
【0184】
[0161]本開示の技法によれば、ビデオデコーダ30は、ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、ビデオデータのブロックのための予測されたクロマ残差サンプルの第2のビット深度を決定することとを行うように構成された、ビデオデコーダの一例を表す。ビデオデコーダ30は、ビット深度調整されたルーマ残差サンプルを生成するために、第1のビット深度と第2のビット深度とに基づいて、ルーマ残差サンプルを調整することと、ビット深度調整されたルーマ残差サンプルと予測されたクロマ残差サンプルとに基づいて、ビデオデータのブロックのためのクロマ残差サンプルを決定することと、ルーマ残差サンプルとクロマ残差サンプルとに基づいて、ビデオデータのブロックを復号することとを行うようにさらに構成され得る。
【0185】
[0162]図4は、本開示の1つまたは複数の態様による、適応インター色成分残差予測を実施するためのプロセスの一例を示すフローチャートである。説明のためにのみ、図4の方法は、図1および図2のビデオエンコーダ20に対応するビデオエンコーダなど、ビデオエンコーダによって実施され得る。
【0186】
[0163]図4の方法では、ビデオエンコーダ20の動き補償ユニット44は、ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定すること(180)と、ビデオデータのブロックのためのクロマ残差サンプルの第2のビット深度を決定すること(182)とを行い得る。動き補償ユニット44および/またはイントラ予測ユニット46は、ビット深度調整されたルーマ残差サンプルを生成するために、第1のビット深度と第2のビット深度とに基づいて、ルーマ残差サンプルを調整すること(184)と、ビット深度調整されたルーマ残差サンプルとクロマ残差サンプルとに基づいて、ビデオデータのブロックのための予測されたクロマ残差サンプルを決定すること(186)とを行い得る。量子化ユニット54およびエントロピー符号化ユニット56は、ルーマ残差サンプルと予測されたクロマ残差サンプルとに基づいて、ビデオデータのブロックを符号化する(188)ようにさらに構成され得る。
【0187】
[0164]図5は、本開示の1つまたは複数の態様による、適応インター色成分残差予測を実施するためのプロセスの別の例を示すフローチャートである。説明のためにのみ、図5の方法は、図1および図3のビデオデコーダ30に対応するビデオエンコーダなど、ビデオデコーダによって実施され得る。
【0188】
[0165]図5の方法では、ビデオデコーダ30は、ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定すること(200)と、ビデオデータのブロックのための予測されたクロマ残差サンプルの第2のビット深度を決定すること(202)とを行い得る。ビデオデコーダ30の動き補償ユニット72および/またはイントラ予測ユニット74は、ビット深度調整されたルーマ残差サンプルを生成するために、第1のビット深度と第2のビット深度とに基づいて、ルーマ残差サンプルを調整すること(204)と、ビット深度調整されたルーマ残差サンプルと予測されたクロマ残差サンプルとに基づいて、ビデオデータのブロックのためのクロマ残差サンプルを決定すること(206)とを行うようにさらに構成され得る。ビデオデコーダ30の動き補償ユニット72および/またはイントラ予測ユニット74は、ルーマ残差サンプルとクロマ残差サンプルとに基づいて、ビデオデータのブロックを復号(208)し得る。
【0189】
[0166]例に応じて、本明細書で説明する技法のいずれかのいくつかの動作または事象は、異なるシーケンスで実施され得、追加、結合、または完全に除外され得ることが、認識されるべきである(たとえば、説明するすべての動作または事象が、本技法の実施のために必要であるとは限らない)。その上、いくつかの例では、動作または事象は、たとえば、マルチスレッド処理、割込み処理、または多数のプロセッサを介して、連続的ではなく同時に実施され得る。
【0190】
[0167]1つまたは複数の例において、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、それらの機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるかまたはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を支援する任意の媒体を含む、データ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技術の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0191】
[0168]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなるconもコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、一方、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0192】
[0169]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価な集積回路もしくはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な任意の他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で完全に実装され得る。
【0193】
[0170]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。様々な構成要素、モジュール、またはユニットについて、開示する技術を実施するように構成されたデバイスの機能的態様を強調するために本開示で説明したが、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされるか、または相互動作ハードウェアユニットの集合によって提供され得る。
【0194】
[0171]様々な例について説明した。これらおよび他の例は、以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを復号する方法であって、
ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、
前記ビデオデータのブロックのための予測されたクロマ残差サンプルの第2のビット深度を決定することと、
ビット深度調整されたルーマ残差サンプルを生成するために、前記第1のビット深度と前記第2のビット深度とに基づいて、前記ルーマ残差サンプルを調整することと、
前記ビット深度調整されたルーマ残差サンプルと前記予測されたクロマ残差サンプルとに基づいて、前記ビデオデータのブロックのためのクロマ残差サンプルを決定することと、
前記ルーマ残差サンプルと前記クロマ残差サンプルとに基づいて、前記ビデオデータのブロックを復号することとを備える方法。
[C2]
前記第1のビット深度は前記第2のビット深度とは異なり、ここにおいて、前記ルーマ残差サンプルを調整することは、前記予測されたクロマ残差サンプルの前記第2のビット深度に一致するように、前記ルーマ残差サンプルを調整することを備える、C1に記載の方法。
[C3]
前記ルーマ残差サンプルを調整することは、前記第1のビット深度と前記第2のビット深度とに基づいて、前記ルーマ残差サンプルに少なくとも1つのシフト演算を実施することを備える、C1に記載の方法。
[C4]
前記方法は、前記ルーマ残差サンプルの前記第1のビット深度と、前記予測されたクロマ残差サンプルの前記第2のビット深度との間のビット深度差分を決定することをさらに備え、ここにおいて、前記ルーマ残差サンプルを調整することは、前記ビット深度差分に基づいて、前記ルーマ残差サンプルにシフト演算を実施することを備える、C1に記載の方法。
[C5]
前記ルーマ残差サンプルに前記シフト演算を実施することは、前記ビット深度差分に基づいて、前記ルーマ残差サンプルを算術シフトすることを備える、C4に記載の方法。
[C6]
前記ビット深度差分を決定することは、前記ビット深度差分を復号することを備える、C4に記載の方法。
[C7]
前記第1のビット深度が前記第2のビット深度よりも大きいことと、前記ビット深度差分が0よりも大きいこととに基づいて、前記ルーマ残差サンプルを調整することは、前記ビット深度差分だけ前記ルーマ残差サンプルを右シフトすることを備える、C4に記載の方法。
[C8]
前記第1のビット深度が前記第2のビット深度未満であることと、前記ビット深度差分が0未満であることとに基づいて、前記ルーマ残差サンプルを調整することは、前記ビット深度差分だけ前記ルーマ残差サンプルを左シフトすることを備える、C4に記載の方法。
[C9]
前記ビット深度差分が0に等しいことに基づいて、前記ルーマ残差サンプルを調整することは、前記ビデオデータのブロックのための前記ルーマ残差サンプルを調整しないことを備える、C4に記載の方法。
[C10]
前記ビット深度調整されたルーマ残差サンプルを生成するために、前記ルーマ残差サンプルを調整することは、
範囲内になるように、前記ビット深度調整されたルーマ残差サンプルをクリップすること、ここにおいて、前記範囲の最大値は変数の正値に基づき、ここにおいて、前記範囲の最小値は前記変数の負値に基づく
を備える、C1に記載の方法。
[C11]
前記クロマ残差サンプルを決定することは、
前記クロマ残差サンプルを決定するために、前記予測されたクロマ残差サンプルを、前記ビット深度調整されたルーマ残差サンプルに加算することを備える、C1に記載の方法。
[C12]
前記クロマ残差サンプルを決定することは、
スケーリングされたルーマ残差サンプルを決定するために、前記ビット深度調整されたルーマ残差サンプルをスケールファクタで乗算することと、
前記クロマ残差サンプルを決定するために、前記予測されたクロマ残差サンプルを、前記スケーリングされたルーマ残差サンプルに加算することと
を備える、C1に記載の方法。
[C13]
前記スケールファクタを復号することをさらに備える、C12に記載の方法。
[C14]
ビデオデータを符号化する方法であって、
ビデオデータの1つのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、
前記ビデオデータの前記ブロックのためのクロマ残差サンプルの第2のビット深度を決定することと、
ビット深度調整されたルーマ残差サンプルを生成するために、前記第1のビット深度と前記第2のビット深度とに基づいて、前記ルーマ残差サンプルを調整することと、
前記ビット深度調整されたルーマ残差サンプルと前記クロマ残差サンプルとに基づいて、前記ビデオデータのブロックのための予測されたクロマ残差サンプルを決定することと、
前記ルーマ残差サンプルと前記予測されたクロマ残差サンプルとに基づいて、前記ビデオデータのブロックを符号化することとを備える方法。
[C15]
前記第1のビット深度は前記第2のビット深度とは異なり、ここにおいて、前記ルーマ残差サンプルを調整することは、前記クロマ残差サンプルの前記第2のビット深度に一致するように、前記ルーマ残差サンプルを調整することを備える、C14に記載の方法。
[C16]
前記ルーマ残差サンプルを調整することは、前記第1のビット深度と前記第2のビット深度とに基づいて、前記ルーマ残差サンプルに少なくとも1つのシフト演算を実施することを備える、C14に記載の方法。
[C17]
前記方法は、前記ルーマ残差サンプルの前記第1のビット深度と、前記クロマ残差サンプルの前記第2のビット深度との間のビット深度差分を決定することをさらに備え、ここにおいて、前記ルーマ残差サンプルを調整することは、前記ビット深度差分に基づいて、前記ルーマ残差サンプルにシフト演算を実施することを備える、C14に記載の方法。
[C18]
前記ルーマ残差サンプルに前記シフト演算を実施することは、前記ビット深度差分に基づいて、前記ルーマ残差サンプルを算術シフトすることを備える、C17に記載の方法。
[C19]
前記ビット深度差分を符号化することをさらに備える、C17に記載の方法。
[C20]
前記第1のビット深度が前記第2のビット深度よりも大きいことと、前記ビット深度差分が0よりも大きいこととに基づいて、前記ルーマ残差サンプルを調整することは、前記ビット深度差分だけ前記ルーマ残差サンプルを右シフトすることを備える、C17に記載の方法。
[C21]
前記第1のビット深度が前記第2のビット深度未満であることと、前記ビット深度差分が0未満であることとに基づいて、前記ルーマ残差サンプルを調整することは、前記ビット深度差分だけ前記ルーマ残差サンプルを左シフトすることを備える、C17に記載の方法。
[C22]
前記ビット深度差分が0に等しいことに基づいて、前記ルーマ残差サンプルを調整することは、前記ビデオデータのブロックのための前記ルーマ残差サンプルを調整しないことを備える、C17に記載の方法。
[C23]
前記ビット深度調整されたルーマ残差サンプルを生成するために、前記ルーマ残差サンプルを調整することは、
範囲内になるように、前記スケーリングされたルーマ残差サンプルをクリップすること、ここにおいて、前記範囲の最大値は変数の正値に基づき、ここにおいて、前記範囲の最小値は前記変数の負値に基づく
を備える、C14に記載の方法。
[C24]
前記予測されたクロマ残差サンプルを決定することは、
前記予測されたクロマ残差サンプルを決定するために、前記ビット深度調整されたルーマ残差サンプルから、前記クロマ残差サンプルを減算することを備える、C14に記載の方法。
[C25]
前記予測されたクロマ残差サンプルを決定することは、
スケーリングされたルーマ残差サンプルを生成するために、前記ビット深度調整されたルーマ残差サンプルをスケールファクタで乗算することと、
前記予測されたクロマ残差サンプルを決定するために、前記ビット深度調整されたルーマ残差サンプルから、前記クロマ残差サンプルを減算することと
をさらに備える、C14に記載の方法。
[C26]
前記スケールファクタを符号化することをさらに備える、C25に記載の方法。
[C27]
ビデオデータを復号するためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しており、
ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、
前記ビデオデータのブロックのための予測されたクロマ残差サンプルの第2のビット深度を決定することと、
ビット深度調整されたルーマ残差サンプルを生成するために、前記第1のビット深度と前記第2のビット深度とに基づいて、前記ルーマ残差サンプルを調整することと、
前記ビット深度調整されたルーマ残差サンプルと前記予測されたクロマ残差サンプルとに基づいて、前記ビデオデータのブロックのためのクロマ残差サンプルを決定することと、
前記ルーマ残差サンプルと前記クロマ残差サンプルとに基づいて、前記ビデオデータのブロックを復号することとを行うように構成された少なくとも1つのプロセッサとを備えるデバイス。
[C28]
前記第1のビット深度は前記第2のビット深度とは異なり、ここにおいて、前記ルーマ残差サンプルを調整するために、前記少なくとも1つのプロセッサは、前記予測されたクロマ残差サンプルの前記第2のビット深度に一致するように、前記ルーマ残差サンプルを調整するように構成される、C27に記載のデバイス。
[C29]
前記ルーマ残差サンプルを調整するために、前記少なくとも1つのプロセッサは、前記第1のビット深度と前記第2のビット深度とに基づいて、前記ルーマ残差サンプルに少なくとも1つのシフト演算を実施するように構成される、C27に記載のデバイス。
[C30]
前記少なくとも1つのプロセッサは、前記ルーマ残差サンプルの前記第1のビット深度と、前記予測されたクロマ残差サンプルの前記第2のビット深度との間のビット深度差分を決定するようにさらに構成され、ここにおいて、前記ルーマ残差サンプルを調整するために、前記少なくとも1つのプロセッサは、前記ビット深度差分に基づいて、前記ルーマ残差サンプルにシフト演算を実施するように構成される、C27に記載のデバイス。
[C31]
前記ルーマ残差サンプルに前記シフト演算を実施するために、前記少なくとも1つのプロセッサは、前記ビット深度差分に基づいて、前記ルーマ残差サンプルを算術シフトするようにさらに構成される、C30に記載のデバイス。
[C32]
前記ビット深度差分を決定するために、前記少なくとも1つのプロセッサは、前記ビット深度差分を復号するように構成される、C30に記載のデバイス。
[C33]
前記第1のビット深度が前記第2のビット深度よりも大きいことと、前記ビット深度差分が0よりも大きいこととに基づいて、前記ルーマ残差サンプルを調整するために、前記少なくとも1つのプロセッサは、前記ビット深度差分だけ前記ルーマ残差サンプルを右シフトするように構成される、C30に記載のデバイス。
[C34]
前記第1のビット深度が前記第2のビット深度未満であることと、前記ビット深度差分が0未満であることとに基づいて、前記ルーマ残差サンプルを調整するために、前記少なくとも1つのプロセッサは、前記ビット深度差分だけ前記ルーマ残差サンプルを左シフトするように構成される、C30に記載のデバイス。
[C35]
前記ビット深度差分が0に等しいことに基づいて、前記ルーマ残差サンプルを調整するために、前記少なくとも1つのプロセッサは、前記ビデオデータのブロックのための前記ルーマ残差サンプルを調整しないように構成される、C30に記載のデバイス。
[C36]
前記ビット深度調整されたルーマ残差サンプルを生成するために、前記ルーマ残差サンプルを調整するために、前記少なくとも1つのプロセッサは、
範囲内になるように、前記ビット深度調整されたルーマ残差サンプルをクリップすること、ここにおいて、前記範囲の最大値は変数の正値に基づき、ここにおいて、前記範囲の最小値は前記変数の負値に基づく
を行うように構成される、C27に記載のデバイス。
[C37]
前記クロマ残差サンプルを決定するために、前記少なくとも1つのプロセッサは、
前記クロマ残差サンプルを決定するために、前記予測されたクロマ残差サンプルを、前記ビット深度調整されたルーマ残差サンプルに加算することを行うように構成される、C27に記載のデバイス。
[C38]
前記クロマ残差サンプルを決定するために、前記少なくとも1つのプロセッサは、
スケーリングされたルーマ残差サンプルを決定するために、前記ビット深度調整されたルーマ残差サンプルをスケールファクタで乗算することと、
前記クロマ残差サンプルを決定するために、前記予測されたクロマ残差サンプルを、前記スケーリングされたルーマ残差サンプルに加算することと
を行うようにさらに構成される、C27に記載のデバイス。
[C39]
前記少なくとも1つのプロセッサは、前記スケールファクタを復号するようにさらに構成される、C38に記載のデバイス。
[C40]
ビデオを符号化するためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信しており、
ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、
前記ビデオデータのブロックのためのクロマ残差サンプルの第2のビット深度を決定することと、
ビット深度調整されたルーマ残差サンプルを生成するために、前記第1のビット深度と前記第2のビット深度とに基づいて、前記ルーマ残差サンプルを調整することと、
前記ビット深度調整されたルーマ残差サンプルと前記クロマ残差サンプルとに基づいて、前記ビデオデータのブロックのための予測されたクロマ残差サンプルを決定することと、
前記ルーマ残差サンプルと前記予測されたクロマ残差サンプルとに基づいて、前記ビデオデータのブロックを符号化することとを行うように構成された少なくとも1つのプロセッサとを備えるデバイス。
[C41]
前記第1のビット深度は前記第2のビット深度とは異なり、ここにおいて、前記ルーマ残差サンプルを調整するために、前記少なくとも1つのプロセッサは、前記クロマ残差サンプルの前記第2のビット深度に一致するように、前記ルーマ残差サンプルを調整するように構成される、C40に記載のデバイス。
[C42]
前記ルーマ残差サンプルを調整するために、前記少なくとも1つのプロセッサは、前記第1のビット深度と前記第2のビット深度とに基づいて、前記ルーマ残差サンプルに少なくとも1つのシフト演算を実施することのために構成される、C40に記載のデバイス。
[C43]
前記少なくとも1つのプロセッサは、前記ルーマ残差サンプルの前記第1のビット深度と、前記クロマ残差サンプルの前記第2のビット深度との間のビット深度差分を決定するようにさらに構成され、ここにおいて、前記ルーマ残差サンプルを調整するために、前記少なくとも1つのプロセッサは、前記ビット深度差分に基づいて、前記ルーマ残差サンプルにシフト演算を実施するように構成される、C40に記載のデバイス。
[C44]
前記ルーマ残差サンプルに前記シフト演算を実施するために、前記少なくとも1つのプロセッサは、前記ビット深度差分に基づいて、前記ルーマ残差サンプルを算術シフトするようにさらに構成される、C43に記載のデバイス。
[C45]
前記少なくとも1つのプロセッサは、前記ビット深度差分を符号化するようにさらに構成される、C43に記載のデバイス。
[C46]
前記第1のビット深度が前記第2のビット深度よりも大きいことと、前記ビット深度差分が0よりも大きいこととに基づいて、前記ルーマ残差サンプルを調整するために、前記少なくとも1つのプロセッサは、前記ビット深度差分だけ前記ルーマ残差サンプルを右シフトするように構成される、C43に記載のデバイス。
[C47]
前記第1のビット深度が前記第2のビット深度未満であることと、前記ビット深度差分が0未満であることとに基づいて、前記ルーマ残差サンプルを調整するために、前記少なくとも1つのプロセッサは、前記ビット深度差分だけ前記ルーマ残差サンプルを左シフトするように構成される、C43に記載のデバイス。
[C48]
前記ビット深度差分が0に等しいことに基づいて、前記ルーマ残差サンプルを調整するために、前記少なくとも1つのプロセッサは、前記ビデオデータのブロックのための前記ルーマ残差サンプルを調整しないように構成される、C43に記載のデバイス。
[C49]
前記ビット深度調整されたルーマ残差サンプルを生成するために、前記ルーマ残差サンプルを調整するために、前記少なくとも1つのプロセスまたは、
範囲内になるように、前記スケーリングされたルーマ残差サンプルをクリップすること、ここにおいて、前記範囲の最大値は変数の正値に基づき、ここにおいて、前記範囲の最小値は前記変数の負値に基づく
を行うように構成される、C40に記載のデバイス。
[C50]
前記予測されたクロマ残差サンプルを決定するために、前記少なくとも1つのプロセッサは、
前記予測されたクロマ残差サンプルを決定するために、前記ビット深度調整されたルーマ残差サンプルから、前記クロマ残差サンプルを減算することを行うように構成される、C40に記載のデバイス。
[C51]
前記予測されたクロマ残差サンプルを決定するために、前記少なくとも1つのプロセッサは、
スケーリングされたルーマ残差サンプルを生成するために、前記ビット深度調整されたルーマ残差サンプルをスケールファクタで乗算することと、
前記予測されたクロマ残差サンプルを決定するために、前記ビット深度調整されたルーマ残差サンプルから、前記クロマ残差サンプルを減算することと
を行うようにさらに構成される、C40に記載のデバイス。
[C52]
前記少なくとも1つのプロセッサは、前記スケールファクタを符号化するようにさらに構成される、C51に記載の方法。
[C53]
ビデオデータを復号するためのデバイスであって、
ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定するための手段と、
前記ビデオデータのブロックのための予測されたクロマ残差サンプルの第2のビット深度を決定するための手段と、
ビット深度調整されたルーマ残差サンプルを生成するために、前記第1のビット深度と前記第2のビット深度とに基づいて、前記ルーマ残差サンプルを調整するための手段と、
前記ビット深度調整されたルーマ残差サンプルと前記予測されたクロマ残差サンプルとに基づいて、前記ビデオデータのブロックのためのクロマ残差サンプルを決定するための手段と、
前記ルーマ残差サンプルと前記クロマ残差サンプルとに基づいて、前記ビデオデータのブロックを復号するための手段とを備えるデバイス。
[C54]
前記第1のビット深度は前記第2のビット深度とは異なり、ここにおいて、前記ルーマ残差サンプルを調整するための前記手段は、前記予測されたクロマ残差サンプルの前記第2のビット深度に一致するように、前記ルーマ残差サンプルを調整するための手段を備える、C53に記載のデバイス。
[C55]
前記ルーマ残差サンプルを調整するための前記手段は、前記第1のビット深度と前記第2のビット深度とに基づいて、前記ルーマ残差サンプルに少なくとも1つのシフト演算を実施するための手段を備える、C53に記載の方法。
[C56]
前記デバイスは、前記ルーマ残差サンプルの前記第1のビット深度と、前記予測されたクロマ残差サンプルの前記第2のビット深度との間のビット深度差分を決定するための手段をさらに備え、ここにおいて、前記ルーマ残差サンプルを調整するための前記手段は、前記ビット深度差分に基づいて、前記ルーマ残差サンプルにシフト演算を実施するための手段を備える、C53に記載のデバイス。
[C57]
前記第1のビット深度が前記第2のビット深度よりも大きいことと、前記ビット深度差分が0よりも大きいこととに基づいて、前記ルーマ残差サンプルを調整するための前記手段は、前記ビット深度差分だけ前記ルーマ残差サンプルを右シフトするための手段を備える、C56に記載のデバイス。
[C58]
前記第1のビット深度が前記第2のビット深度未満であることと、前記ビット深度差分が0未満であることとに基づいて、前記ルーマ残差サンプルを調整するための前記手段は、前記ビット深度差分だけ前記ルーマ残差サンプルを左シフトするための手段を備える、C56に記載のデバイス。
[C59]
前記クロマ残差サンプルを決定するための前記手段は、
前記クロマ残差サンプルを決定するために、前記予測されたクロマ残差サンプルを、前記ビット深度調整されたルーマ残差サンプルへの前記ルーマ残差サンプルに加算するための手段を備える、C53に記載のデバイス。
[C60]
前記クロマ残差サンプルを決定するための前記手段は、
スケーリングされたルーマ残差サンプルを決定するために、前記ビット深度調整されたルーマ残差サンプルをスケールファクタで乗算するための手段と、
前記クロマ残差サンプルを決定するために、前記予測されたクロマ残差サンプルを、前記スケーリングされたルーマ残差サンプルに加算するための手段と
をさらに備える、C53に記載のデバイス。
[C61]
実行されたとき、少なくとも1つのプロセッサに、
ビデオデータのブロックのためのルーマ残差サンプルの第1のビット深度を決定することと、
前記ビデオデータのブロックのための予測されたクロマ残差サンプルの第2のビット深度を決定することと、
ビット深度調整されたルーマ残差サンプルを生成するために、前記第1のビット深度と前記第2のビット深度とに基づいて、前記ルーマ残差サンプルを調整することと、
前記ビット深度調整されたルーマ残差サンプルと前記予測されたクロマ残差サンプルとに基づいて、前記ビデオデータのブロックのためのクロマ残差サンプルを決定することと、
前記ルーマ残差サンプルと前記クロマ残差サンプルとに基づいて、前記ビデオデータのブロックを復号することとを行わせる命令を記憶した非一時的コンピュータ可読記憶媒体。
[C62]
前記第1のビット深度は前記第2のビット深度とは異なり、ここにおいて、前記ルーマ残差サンプルを調整することを、前記少なくとも1つのプロセスに行わせる前記命令は、前記少なくとも1つのプロセッサに、前記予測されたクロマ残差サンプルの前記第2のビット深度に一致するように、前記ルーマ残差サンプルを調整することをさらに行わせる、C61に記載の非一時的コンピュータ可読記憶媒体。
[C63]
前記ルーマ残差サンプルを調整することを、前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、前記第1のビット深度と前記第2のビット深度とに基づいて、前記ルーマ残差サンプルに少なくとも1つのシフト演算を実施することを行わせる、C61に記載の非一時的コンピュータ可読記憶媒体。
[C64]
前記非一時的コンピュータ可読記憶媒体は、前記少なくとも1つのプロセッサに、前記ルーマ残差サンプルの前記第1のビット深度と、前記予測されたクロマ残差サンプルの前記第2のビット深度との間のビット深度差分を決定することを行わせる命令をさらに備え、ここにおいて、前記ルーマ残差サンプルを調整することを、前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、前記ビット深度差分に基づいて、前記ルーマ残差サンプルにシフト演算を実施することをさらに行わせる、C61に記載の非一時的コンピュータ可読記憶媒体。
[C65]
前記第1のビット深度が前記第2のビット深度よりも大きいことと、前記ビット深度差分が0よりも大きいこととに基づいて、前記ルーマ残差サンプルを調整することを、前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、前記ビット深度差分だけ前記ルーマ残差サンプルを右シフトすることをさらに行わせる、C64に記載の非一時的コンピュータ可読記憶媒体。
[C66]
前記第1のビット深度が前記第2のビット深度未満であることと、前記ビット深度差分が0未満であることとに基づいて、前記ルーマ残差サンプルを調整することを、前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、前記ビット深度差分だけ前記ルーマ残差サンプルを左シフトすることをさらに行わせる、C64に記載の非一時的コンピュータ可読記憶媒体。
[C67]
前記クロマ残差サンプルを決定することを、前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、
前記クロマ残差サンプルを決定するために、前記予測されたクロマ残差サンプルを、前記ビット深度調整されたルーマ残差サンプルへの前記ルーマ残差サンプルに加算することをさらに行わせる、C61に記載の非一時的コンピュータ可読記憶媒体。
[C68]
前記クロマ残差サンプルを決定することを、前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、
スケーリングされたルーマ残差サンプルを決定するために、前記ビット深度調整されたルーマ残差サンプルをスケールファクタで乗算することと、
前記クロマ残差サンプルを決定するために、前記予測されたクロマ残差サンプルを、前記スケーリングされたルーマ残差サンプルに加算することと
をさらに行わせる、C61に記載の非一時的コンピュータ可読記憶媒体。
図1
図2
図3
図4
図5