【文献】
D. Bugdayci Sansli et al.,Dynamic Range Adjustment SEI Message,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,21st Meeting: Warsaw, PL,2015年 6月,JCTVC-U0098_r1,pp. 1-6
【文献】
A. Dsouza et al.,Adaptive Gamut Expansion for Chroma Components,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,23rd Meeting: San Diego, USA,2016年 2月,JCTVC-W0040,pp. 1-9
【文献】
E. Francois, C. Chevance and Y. Olivier,HDR CE2: CE6-4.6b report on usage of SEI for Test Model,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,23rd Meeting: San Diego, USA,2016年 2月,JCTVC-W0059r1,pp. 1-6
【文献】
Done Bugdayci Sansli et al.,HDR CE6: Test 4.1 Reshaper from m37064,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,23rd Meeting: San Diego, USA,2016年 2月,JCTVC-W0103_r1,pp. 1-11
(58)【調査した分野】(Int.Cl.,DB名)
前記情報が、前記レンジパラメータを決定するために使用される小数ビットの第1の数、前記スケールパラメータを決定するために使用される小数ビットの第2の数、および前記オフセットパラメータを決定するために使用される小数ビットの第3の数のうちの1つまたは複数をさらに示す、請求項1に記載の方法。
前記情報が、前記レンジパラメータを決定するために使用される小数ビットの第1の数、前記スケールパラメータを決定するために使用される小数ビットの第2の数、および前記オフセットパラメータを決定するために使用される小数ビットの第3の数のうちの1つまたは複数をさらに示す、請求項9に記載の装置。
前記情報が、前記レンジパラメータを決定するために使用される小数ビットの第1の数、前記スケールパラメータを決定するために使用される小数ビットの第2の数、および前記オフセットパラメータを決定するために使用される小数ビットの第3の数のうちの1つまたは複数をさらに示す、請求項18に記載の方法。
前記情報が、前記レンジパラメータを決定するために使用される小数ビットの第1の数、前記スケールパラメータを決定するために使用される小数ビットの第2の数、および前記オフセットパラメータを決定するために使用される小数ビットの第3の数のうちの1つまたは複数をさらに示す、請求項22に記載の装置。
【発明を実施するための形態】
【0019】
[0031] 本開示は、高ダイナミックレンジ(HDR)および広色域(WCG)表現をもつビデオデータの処理および/またはコーディングに関する。より詳細には、本開示の技法は、(たとえば、浮動小数点処理動作(floating point processing operation)とは対照的に)固定小数点処理動作(fixed point processing operation)を使用して、ビデオデータコンポーネント(video data component)のレンジ調整を実行するための技法を含む。本明細書で説明される技法およびデバイスは、HDRおよびWCGビデオデータを含む、ビデオデータをコーディングするために利用されるハイブリッドベースのビデオコーディングシステム(たとえば、H.265/HEVC、H.264/AVCなど)の圧縮効率を改善し得る。
【0020】
[0032] ハイブリッドベースのビデオコーディング規格を含むビデオコーディング規格は、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:Scalable Video Coding)拡張とマルチビュービデオコーディング(MVC:Multiview Video Coding)拡張とを含む、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264を含む。新しいビデオコーディング規格、すなわち、高効率ビデオコーディング(H.265とも呼ばれるHEVC)の設計が、ITU−Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG:Motion Picture Experts Group)とのジョイントコラボレーションチームオンビデオコーディング(JCT−VC:Joint Collaboration Team on Video Coding)によって確定された。HEVCワーキングドラフト10(WD10)と呼ばれるHEVCドラフト仕様、Brossら、「High efficiency video coding (HEVC) text specification draft 10 (for FDIS & Last Call)」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのジョイントコラボレーティブチームオンビデオコーディング(JCT−VC)、第12回会議、ジュネーブ、スイス、2013年1月14〜23日、JCTVC−L1003v34は、
http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zipから入手可能である。確定されたHEVC規格はHEVCバージョン1と呼ばれる。
【0021】
[0033] 不具合報告(defect report)、Wangら、「High efficiency video coding (HEVC) Defect Report」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのジョイントコラボレーティブチームオンビデオコーディング(JCT−VC)、第14回会議、ウィーン、オーストリア、2013年7月25日〜8月2日、JCTVC−N1003v1は、
http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zipから利用可能である。確定されたHEVC規格ドキュメントは、ITU-T H.265, Series H: Audiovisual and Multimedia Systems, Infrastructure of audiovisual services - Coding of moving video, High efficiency video coding、国際電気通信連合(ITU)の電気通信標準化部門、2013年4月として公開されており、確定されたHEVC規格の別のバージョンは、2014年10月に発行された。H.265/HEVC仕様テキストのコピーは、http://www.itu.int/rec/T-REC-H.265-201504-I/enからダウンロードされ得る。
【0022】
[0034]
図1は、本開示の技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。
図1に示されているように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを与えるソースデバイス12を含む。特に、ソースデバイス12は、コンピュータ可読媒体16を介して宛先デバイス14にビデオデータを与える。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス(set-top box)、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、ブロードキャスト受信機デバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。
【0023】
[0035] 宛先デバイス14は、コンピュータ可読媒体16を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が、符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤードまたはワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【0024】
[0036] 他の例では、コンピュータ可読媒体16は、ハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−ray(登録商標)ディスク、または他のコンピュータ可読媒体などの非一時的記憶媒体を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、たとえば、ネットワーク送信を介して、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを宛先デバイス14に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つまたは複数のコンピュータ可読媒体を含むことが理解されよう。
【0025】
[0037] いくつかの例では、符号化データは、出力インターフェース22からストレージデバイスに出力され得る。同様に、符号化データは、入力インターフェースによってストレージデバイスからアクセスされ得る。ストレージデバイスは、ハードドライブ、Blu−rayディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイスは、ソースデバイス12によって発生された符号化ビデオを記憶し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介してストレージデバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイス14に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。ストレージデバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【0026】
[0038] 本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0027】
[0039]
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオプリプロセッサユニット19およびビデオエンコーダ20を含むビデオ符号化ユニット21と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオポストプロセッサユニット31およびビデオデコーダ30を含むビデオ復号ユニット29と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオプリプロセッサユニット19および/またはビデオエンコーダ20、ならびに宛先デバイス14のビデオポストプロセッサユニット31および/またはビデオデコーダ30は、固定小数点実装を用いてHDRおよびWCGビデオデータのより効率的な圧縮を可能にするためにいくつかの色空間中でビデオデータに適用されるシグナリングおよび関係する動作を含む、本開示の技法を実装するように構成され得る。いくつかの例では、ビデオプリプロセッサユニット19はビデオエンコーダ20とは別個であり得る。他の例では、ビデオプリプロセッサユニット19はビデオエンコーダ20の一部であり得る。同様に、いくつかの例では、ビデオポストプロセッサユニット31はビデオデコーダ30とは別個であり得る。他の例では、ビデオポストプロセッサユニット31はビデオデコーダ30の一部であり得る。他の例では、ソースデバイスおよび宛先デバイスは他のコンポーネントまたは構成を含み得る。たとえば、ソースデバイス12は、外部カメラなど、外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
【0028】
[0040]
図1の図示されたシステム10は一例にすぎない。HDRおよびWCGビデオデータを処理するための技法は、任意のデジタルビデオ符号化および/またはビデオ復号デバイスによって実行され得る。さらに、本開示の技法はまた、ビデオプリプロセッサおよび/またはビデオポストプロセッサ(たとえば、ビデオプリプロセッサユニット19およびビデオポストプロセッサユニット31)によって実行され得る。概して、ビデオプリプロセッサは、符号化の前に(たとえば、HEVC符号化の前に)ビデオデータを処理するように構成された任意のデバイスであり得る。概して、ビデオポストプロセッサは、復号の後に(たとえば、HEVC復号の後に)ビデオデータを処理するように構成された任意のデバイスであり得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14への送信のためのコード化ビデオデータを発生するような、コーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々が、ビデオ符号化および復号コンポーネント、ならびに、ビデオプリプロセッサおよびビデオポストプロセッサ(たとえば、それぞれ、ビデオプリプロセッサユニット19およびビデオポストプロセッサユニット31)を含むように、実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。
【0029】
[0041] ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、前にキャプチャされたビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ発生ビデオとの組合せを発生し得る。いくつかの場合には、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、上述のように、本開示で説明される技法は、概してビデオコーディングおよびビデオ処理に適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。各場合において、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ発生ビデオは、ビデオ符号化ユニット21によって符号化され得る。符号化されたビデオ情報は、次いで、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
【0030】
[0042] 宛先デバイス14の入力インターフェース28はコンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20によって定義され、またビデオ復号ユニット29によって使用される、ブロックおよび他のコード化ユニット、たとえば、ピクチャグループ(GOP)の特性および/または処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。ディスプレイデバイス32は、復号ビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【0031】
[0043] 図示のように、ビデオプリプロセッサユニット19は、ビデオソース18からビデオデータを受信する。ビデオプリプロセッサユニット19は、ビデオデータを、ビデオエンコーダ20を用いて符号化するのに好適である形態にコンバートするために、ビデオデータを処理するように構成され得る。たとえば、ビデオプリプロセッサユニット19は、(たとえば、非線形伝達関数を使用する)ダイナミックレンジ圧縮、より圧縮したまたはロバストな色空間への色コンバージョン、および/あるいは浮動−整数表現コンバージョンを実行し得る。ビデオエンコーダ20は、ビデオプリプロセッサユニット19によって出力されたビデオデータに対してビデオ符号化を実行し得る。ビデオデコーダ30は、ビデオデータを復号するためにビデオエンコーダ20の逆を実行し得、ビデオポストプロセッサユニット31は、ビデオデータを表示に好適な形態にコンバートするために、ビデオプリプロセッサユニット19の逆を実行し得る。たとえば、ビデオポストプロセッサユニット31は、表示に好適なビデオデータを発生するために、整数−浮動コンバージョン、圧縮したまたはロバストな色空間からの色コンバージョン、および/またはダイナミックレンジ圧縮の逆を実行し得る。
【0032】
[0044] ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実行するために1つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイス中で複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
【0033】
[0045] ビデオプリプロセッサユニット19およびビデオポストプロセッサユニット31はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実行するために1つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。上記で説明されたように、ビデオプリプロセッサユニット19およびビデオポストプロセッサユニット31は、それぞれ、ビデオエンコーダ20およびビデオデコーダ30とは別個のデバイスである。他の例では、ビデオプリプロセッサユニット19は単一のデバイス中でビデオエンコーダ20と統合し得、逆ビデオポストプロセッサユニット31は単一のデバイス中でビデオデコーダ30と統合され得る。
【0034】
[0046] いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、ISO/IEC MPEG−4 Visual、およびそれのスケーラブルビデオコーディング(SVC)拡張と、マルチビュービデオコーディング(MVC)拡張と、MVCベースの3次元ビデオ(3DV)拡張とを含む、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264などのビデオ圧縮規格に従って動作する。いくつかの事例では、MVCベースの3DVに準拠する任意のビットストリームは、MVCプロファイル、たとえば、ステレオハイプロファイルに準拠するサブビットストリームを常に含んでいる。さらに、H.264/AVCへの3DVコーディング拡張、すなわちAVCベース3DVを発生するための取り組みが進行中である。ビデオコーディング規格の他の例としては、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、およびITU−T H.264、ISO/IEC Visualがある。他の例では、ビデオエンコーダ20およびビデオデコーダ30は、HEVC規格に従って動作するように構成され得る。
【0035】
[0047] HEVCおよび他のビデオコーディング規格では、ビデオシーケンスは一般に一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、S
L、S
Cb、およびS
Crと示される3つのサンプルアレイを含み得る。S
Lはルーマサンプルの2次元アレイ(すなわち、ブロック)である。S
CbはCbクロミナンスサンプルの2次元アレイである。S
CrはCrクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロームであり得、ルーマサンプルのアレイのみを含み得る。
【0036】
[0048] ビデオエンコーダ20は、コーディングツリーユニット(CTU:coding tree unit)のセットを発生し得る。CTUの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの2つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、CTUは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造(syntax structure)とを備え得る。コーディングツリーブロックはサンプルのN×Nブロックであり得る。CTUは「ツリーブロック」または「最大コーディングユニット」(LCU:largest coding unit)と呼ばれることもある。HEVCのCTUは、H.264/AVCなど、他のビデオコーディング規格のマクロブロックに広い意味で類似し得る。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含み得る。スライスは、ラスタ走査において連続的に順序付けられた整数個のCTUを含み得る。
【0037】
[0049] 本開示は、サンプルの1つまたは複数のブロックと、サンプルの1つまたは複数のブロックのサンプルをコーディングするために使用されるシンタックス構造とを指すために、「ビデオユニット(video unit)」または「ビデオブロック(video block)」という用語を使用し得る。例示的なタイプのビデオユニットは、HEVCにおけるCTU、CU、PU、変換ユニット(TU)、または他のビデオコーディング規格におけるマクロブロック、マクロブロックパーティションなどを含み得る。
【0038】
[0050] コード化CTUを発生するために、ビデオエンコーダ20は、コーディングツリーブロックをコーディングブロックに分割するためにCTUのコーディングツリーブロックに対して4分木区分を再帰的に実行し得、したがって「コーディングツリーユニット(coding tree unit)」という名称がある。コーディングブロックはサンプルのN×Nブロックである。CUは、ルーマサンプルアレイとCbサンプルアレイとCrサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの2つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、CUは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【0039】
[0051] ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックであり得る。CUの予測ユニット(PU)は、ピクチャのルーマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、予測ブロックサンプルを予測するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、PUは、単一の予測ブロックと、その予測ブロックサンプルを予測するために使用されるシンタックス構造とを備え得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロックのための予測ルーマブロック、予測Cbブロック、および予測Crブロックを発生し得る。
【0040】
[0052] ビデオエンコーダ20は、PUのための予測ブロックを発生するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ20がPUの予測ブロックを発生するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUに関連するピクチャの復号サンプルに基づいてPUの予測ブロックを発生し得る。
【0041】
[0053] ビデオエンコーダ20が、PUの予測ブロックを発生するためにインター予測を使用する場合、ビデオエンコーダ20は、PUに関連するピクチャ以外の1つまたは複数のピクチャの復号サンプルに基づいて、PUの予測ブロックを発生し得る。インター予測は、単方向インター予測(すなわち、単予測)または双方向インター予測(すなわち、双予測)であり得る。単予測または双予測を実行するために、ビデオエンコーダ20は、現在スライスに対して、第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを発生し得る。
【0042】
[0054] 参照ピクチャリストの各々は1つまたは複数の参照ピクチャを含み得る。単予測を使用するとき、ビデオエンコーダ20は、参照ピクチャ内の参照ロケーションを決定するために、RefPicList0とRefPicList1のいずれかまたは両方の中の参照ピクチャを探索し得る。さらに、単予測を使用するとき、ビデオエンコーダ20は、参照ロケーションに対応するサンプルに少なくとも部分的に基づいて、PUのための予測サンプルブロックを発生し得る。さらに、単予測を使用するとき、ビデオエンコーダ20は、PUの予測ブロックと参照ロケーションとの間の空間変位を示す単一の動きベクトルを発生し得る。PUの予測ブロックと参照ロケーションとの間の空間変位を示すために、動きベクトルは、PUの予測ブロックと参照ロケーションとの間の水平変位を指定する水平コンポーネントを含み得、PUの予測ブロックと参照ロケーションとの間の垂直変位を指定する垂直コンポーネントを含み得る。
【0043】
[0055] PUを符号化するために双予測を使用するとき、ビデオエンコーダ20は、RefPicList0中の参照ピクチャ中の第1の参照ロケーションと、RefPicList1中の参照ピクチャ中の第2の参照ロケーションとを決定し得る。ビデオエンコーダ20は、次いで、第1および第2の参照ロケーションに対応するサンプルに少なくとも部分的に基づいて、PUのための予測ブロックを発生し得る。さらに、PUを符号化するために双予測を使用するとき、ビデオエンコーダ20は、PUのサンプルブロックと第1の参照ロケーションとの間の空間変位を示す第1の動きと、PUの予測ブロックと第2の参照ロケーションとの間の空間変位を示す第2の動きとを発生し得る。
【0044】
[0056] ビデオエンコーダ20がCUの1つまたは複数のPUのための予測ルーマブロック、予測Cbブロック、および予測Crブロックを発生した後、ビデオエンコーダ20は、CUのためのルーマ残差ブロックを発生し得る。CUのルーマ残差ブロック中の各サンプルは、CUの予測ルーマブロックのうちの1つ中のルーマサンプルとCUの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。さらに、ビデオエンコーダ20はCUのためのCb残差ブロックを発生し得る。CUのCb残差ブロック中の各サンプルは、CUの予測Cbブロックのうちの1つ中のCbサンプルとCUの元のCbコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ20はCUのためのCr残差ブロックをも発生し得る。CUのCr残差ブロック中の各サンプルは、CUの予測Crブロックのうちの1つ中のCrサンプルとCUの元のCrコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【0045】
[0057] さらに、ビデオエンコーダ20は、CUのルーマ残差ブロックと、Cb残差ブロックと、Cr残差ブロックとを、1つまたは複数のルーマ変換ブロックと、Cb変換ブロックと、Cr変換ブロックとに分解するために4分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであり得る。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別個の色平面を有するピクチャでは、TUは、単一の変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連し得る。TUに関連するルーマ変換ブロックはCUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックはCUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックはCUのCr残差ブロックのサブブロックであり得る。
【0046】
[0058] ビデオエンコーダ20は、TUのためのルーマ係数ブロックを発生するために、TUのルーマ変換ブロックに1つまたは複数の変換を適用し得る。係数ブロックは変換係数の2次元アレイであり得る。変換係数はスカラー量であり得る。ビデオエンコーダ20は、TUのためのCb係数ブロックを発生するために、TUのCb変換ブロックに1つまたは複数の変換を適用し得る。ビデオエンコーダ20は、TUのためのCr係数ブロックを発生するために、TUのCr変換ブロックに1つまたは複数の変換を適用し得る。
【0047】
[0059] 係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロックまたはCr係数ブロック)を発生した後に、ビデオエンコーダ20は、係数ブロックを量子化し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。さらに、ビデオエンコーダ20は、変換係数を逆量子化し、ピクチャのCUのTUの変換ブロックを再構成するために変換係数に逆変換を適用し得る。ビデオエンコーダ20は、CUのコーディングブロックを再構成するためにCUのTUの再構成された変換ブロックとCUのPUの予測ブロックとを使用し得る。ピクチャの各CUのコーディングブロックを再構成することによって、ビデオエンコーダ20はピクチャを再構成し得る。ビデオエンコーダ20は、再構成されたピクチャを復号ピクチャバッファ(DPB:decoded picture buffer)に記憶し得る。ビデオエンコーダ20は、インター予測およびイントラ予測のためにDPB中の再構成されたピクチャを使用し得る。
【0048】
[0060] ビデオエンコーダ20が係数ブロックを量子化した後に、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC:Context-Adaptive Binary Arithmetic Coding)を実行し得る。ビデオエンコーダ20は、エントロピー符号化シンタックス要素をビットストリーム中に出力し得る。
【0049】
[0061] ビデオエンコーダ20は、コード化ピクチャと関連データとの表現を形成するビットのシーケンスを含むビットストリームを出力し得る。ビットストリームは、ネットワークアブストラクションレイヤ(NAL:network abstraction layer)ユニットのシーケンスを備え得る。NALユニットの各々はNALユニットヘッダを含み、ローバイトシーケンスペイロード(RBSP:raw byte sequence payload)をカプセル化する。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含み得る。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。いくつかの事例では、RBSPは0ビットを含む。
【0050】
[0062] 異なるタイプのNALユニットは、異なるタイプのRBSPをカプセル化し得る。たとえば、第1のタイプのNALユニットはピクチャパラメータセット(PPS:picture parameter set)のためのRBSPをカプセル化し得、第2のタイプのNALユニットはコード化スライスのためのRBSPをカプセル化し得、第3のタイプのNALユニットは補足エンハンスメント情報(SEI:Supplemental Enhancement Information)のためのRBSPをカプセル化し得、以下同様である。PPSは、0個またはそれ以上のコード化ピクチャ全体に適用されるシンタックス要素を含んでいることがあるシンタックス構造である。(パラメータセットおよびSEIメッセージのためのRBSPとは対照的に)ビデオコーディングデータのためのRBSPをカプセル化するNALユニットは、ビデオコーディングレイヤ(VCL:video coding layer)NALユニットと呼ばれることがある。コード化スライスをカプセル化するNALユニットは、本明細書ではコード化スライスNALユニットと呼ばれることがある。コード化スライスのためのRBSPは、スライスヘッダとスライスデータとを含み得る。
【0051】
[0063] ビデオデコーダ30はビットストリームを受信し得る。さらに、ビデオデコーダ30は、ビットストリームからシンタックス要素を復号するために、ビットストリームをパースし得る。ビデオデコーダ30は、ビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ20によって実行されるプロセスに相反し得る。たとえば、ビデオデコーダ30は、現在CUのPUのための予測ブロックを決定するためにPUの動きベクトルを使用し得る。ビデオデコーダ30は、PUのための予測ブロックを発生するためにPUの1つまたは複数の動きベクトルを使用し得る。
【0052】
[0064] さらに、ビデオデコーダ30は、現在CUのTUに関連する係数ブロックを逆量子化し得る。ビデオデコーダ30は、現在CUのTUに関連する変換ブロックを再構成するために、係数ブロックに対して逆変換を実行し得る。ビデオデコーダ30は、現在CUのPUのための予測サンプルブロックのサンプルを現在CUのTUの変換ブロックの対応するサンプルに加算することによって、現在CUのコーディングブロックを再構成し得る。ピクチャの各CUのためのコーディングブロックを再構成することによって、ビデオデコーダ30はピクチャを再構成し得る。ビデオデコーダ30は、出力のためにおよび/または他のピクチャを復号する際に使用するために、復号ピクチャを復号ピクチャバッファに記憶し得る。
【0053】
[0065] 補足エンハンスメント情報(SEI)メッセージ(supplemental enhancement information (SEI) message)は、一般に、デコーダ(たとえば、ビデオデコーダ30)によってビットストリームを復号するために必須でない情報を搬送するために、しばしばビデオビットストリーム中に含まれる。SEIメッセージ中に含まれている情報は、復号された出力の表示または処理を改善する際に有用であり得、たとえばそのような情報は、コンテンツの視認性を改善するためにデコーダ側エンティティによって使用され得る。適用規格に準拠するすべてのデバイスに品質の改善がもたらされ得るように、いくつかの適用規格が、ビットストリーム中のそのようなSEIメッセージの存在(たとえば、ETSI − TS 101 547−2、Digital Video Broadcasting (DVB) Plano-stereoscopic 3DTV; Part 2: Frame compatible plano-stereoscopic 3DTVで説明される、SEIメッセージがビデオのあらゆるフレームのために搬送される、フレーム互換平面立体視3DTVビデオフォーマット(frame-compatible plano-stereoscopic 3DTV video format)のためのフレームパッキングSEIメッセージの搬送、たとえば、3GPP(登録商標) TS 26.114 v13.0.0、3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; IP Multimedia Subsystem (IMS); Multimedia Telephony; Media handling and interaction (Release 13)で説明される、リカバリポイントSEIメッセージの処理、または、たとえば、ETSI−TS 101 154、Digital Video Broadcasting (DVB); Specification for the use of Video and Audio Coding in Broadcasting Applications based on the MPEG-2 Transport Streamで説明される、DVBにおけるパンスキャン走査矩形SEIメッセージ(pan-scan scan rectangle SEI message)の使用)を規定することがあることも可能である。
【0054】
[0066] トーンマッピング情報SEIメッセージは、ルーマサンプルまたはRGBコンポーネントサンプルの各々をマッピングするために使用される。tone_map_idの異なる値が異なる目的を定義するために使用され、それに応じて、トーンマップSEIメッセージのシンタックスも修正される。tone_map_idのための1の値は、SEIメッセージが、RGBサンプルを最小値(minimum value)および最大値(maximum value)にクリッピングする(clip)ことを可能にする。tone_map_idのための3の値は、ピボット点の形態のルックアップテーブルのシグナリングを可能にする。しかしながら、適用されたとき、同じ値が、すべてのRGBコンポーネントに適用されるか、またはルーマコンポーネントのみに適用される。
【0055】
[0067] ニー関数(knee function)SEIメッセージは、正規化された線形領域中の復号ピクチャのRGBコンポーネントのマッピングを示すために使用される。入力および出力最大ルミナンス値も示され、ルックアップテーブルが、入力ルミナンス値を出力ルミナンス値にマッピングする。同じルックアップテーブルが、すべての3つの色コンポーネント(color component)に適用される。
【0056】
[0068] HEVC規格において定義された色再マッピング情報(CRI)SEIメッセージは、1つの色空間中のピクチャを別の色空間にマッピングするために使用される情報を伝達するために使用される。一例では、CRI SEIメッセージのシンタックスは、3つの部分、すなわち、第1のルックアップテーブル(プリLUT)と、その後に続く色再マッピング係数を示す3×3行列と、その後に続く第2のルックアップテーブル(ポストLUT)とを含む。各色コンポーネント、たとえば、R、G、BまたはY、Cb、Crについて、独立したLUTが、プリLUTとポストLUTの両方のために定義される。CRI SEIメッセージはまた、colour_remap_idと呼ばれるシンタックス要素を含み、それの異なる値が、SEIメッセージの異なる目的を示すために使用され得る。
図2は、CRI SEIメッセージによって指定された色再マッピング情報プロセスの一般的な構造を示す。
【0057】
[0069] ダイナミックレンジ調整(DRA)SEIメッセージ。たとえば、D.Bugdayci Sansli、A.K.Ramasubramonian、D.Rusanovskyy、S.Lee、J.Sole、M.Karczewicz、Dynamic range adjustment SEI message、m36330、MPEG会議、ワルシャワ、ポーランド、2015年6月22〜26日で説明されるように、ダイナミックレンジ調整SEIメッセージは、ビデオコーディング規格の一部として採用されなかったが、SEIメッセージは、入力サンプルをマッピングするために、スケールおよびオフセット数の1つのセットのシグナリングを含む。SEIメッセージはまた、異なるコンポーネントのための異なるルックアップテーブルのシグナリングを可能にし、また、同じスケールおよびオフセットが2つ以上のコンポーネントのために使用されるべきであるとき、シグナリング最適化を可能にする。スケールおよびオフセット数は、固定長正確さでシグナリングされる。
【0058】
[0070] 次世代ビデオ適用例は、HDRおよびWCGをもつキャプチャされた風景を表すビデオデータを用いて動作することが予期される。利用されるダイナミックレンジおよび色域のパラメータは、ビデオコンテンツの2つの独立した属性であり、デジタルテレビジョンおよびマルチメディアサービスの目的のためのそれらの仕様は、いくつかの国際規格によって定義される。たとえば、ITU−R Rec.BT.709、「Parameter values for the HDTV standards for production and international programme exchange」、およびITU−R Rec.BT.2020、「Parameter values for ultra-high definition television systems for production and international programme exchange」は、それぞれ、標準色域を越えて拡張する標準ダイナミックレンジ(SDR)および色プライマリなど、HDTV(高精細度テレビジョン)およびUHDTV(超高精細度テレビジョン)のためのパラメータを定義する。Rec.BT.2100、「Image parameter values for high dynamic range television for use in production and international programme exchange」は、伝達関数と、広色域表現をサポートするプライマリを含む、HDRテレビジョン使用のための表現とを定義する。他のシステムにおいてダイナミックレンジおよび色域属性を指定する他の規格開発機関(SDO:standards developing organization)文献もあり、たとえば、DCI−P3色域はSMPTE−231−2(米国映画テレビ技術者協会(Society of Motion Picture and Television Engineers))において定義され、HDRのいくつかのパラメータはSMPTE−2084において定義される。ビデオデータのためのダイナミックレンジおよび色域の簡単な説明が以下で与えられる。
【0059】
[0071] ダイナミックレンジは、一般に、ビデオ信号の最大輝度(たとえば、ルミナンス)と最小輝度との間の比として定義される。ダイナミックレンジは、「fストップ」に関して測定され得、ここで、1つのfストップは、信号のダイナミックレンジの2倍に対応する。MPEGの定義では、16個よりも多いfストップをもつ輝度変動を起用するコンテンツは、HDRコンテンツと呼ばれる。いくつかの項では、10個のfストップと16個のfストップとの間のレベルは、中間ダイナミックレンジとして見なされるが、それは他の定義ではHDRと見なされる。本開示のいくつかの例では、HDRビデオコンテンツは、標準ダイナミックレンジ(たとえば、ITU−R Rec.BT.709によって指定されたビデオコンテンツ)をもつ旧来使用されるビデオコンテンツよりも高いダイナミックレンジを有する任意のビデオコンテンツであり得る。
【0060】
[0072] 人間の視覚系(HVS:human visual system)は、SDRコンテンツおよびHDRコンテンツよりもはるかに大きいダイナミックレンジを知覚することが可能である。しかしながら、HVSは、HVSのダイナミックレンジをいわゆる同時レンジに狭くするための適応機構を含む。同時レンジの幅は、現在の照明状況(たとえば、現在の輝度)に依存し得る。厳密なレンジは各個人およびディスプレイに基づいて変動し得るが、HDTVのSDR、UHDTVの予想されるHDRおよびHVSダイナミックレンジによって与えられるダイナミックレンジの可視化が
図3に示されている。
【0061】
[0073] 現在のビデオ適用例およびサービスは、ITU Rec.709によって規制され、約0.1〜100(しばしば「ニト(nit)」と呼ばれる)カンデラ(candela)(cd)毎m2の輝度(たとえば、ルミナンス)のレンジを一般にサポートするSDRを与え、10個未満のfストップをもたらす。いくつかの例示的な次世代ビデオサービスは、最高16個のfストップのダイナミックレンジを与えることが予想される。そのようなコンテンツのための詳細な仕様は現在開発中であるが、いくつかの初期パラメータは、SMPTE−2084およびITU−R Rec.2020において指定されている。
【0062】
[0074] HDR以外のより現実的なビデオエクスペリエンスのための別の態様は色次元である。色次元は一般に色域によって定義される。
図4は、SDR色域(BT.709色プライマリに基づく三角形100)、およびUHDTVのためのそのより広い色域(BT.2020色プライマリに基づく三角形102)を示す概念図である。
図4はまた、自然色の範囲を表す、(舌形のエリア104によって画定された)いわゆるスペクトル軌跡を示す。
図3によって示されているように、BT.709(三角形100)色プライマリからBT.2020(三角形102)色プライマリに移動することは、約70%より多くの色をもつUHDTVサービスを与えることを目的とする。D65は、BT.709および/またはBT.2020仕様のための例示的な白色を指定する。
【0063】
[0075] DCI−P3色空間、BT.709色空間、およびBT.2020色空間のための色域仕様の例が表1に示されている。
【0065】
[0076] 表1に見られるように、色域は、白色点のX値およびY値によって、ならびに原色(たとえば、赤(R)、緑(G)、および青(B))のx値およびy値によって定義され得る。x値およびy値は、CIE1931色空間によって定義されるように、色の色度(XおよびZ)および輝度(Y)から導出された正規化された値を表す。CIE1931色空間は、(たとえば、波長に関して)純粋な色と人間の眼がどのようにそのような色を知覚するかとの間のリンクを定義する。
【0066】
[0077] HDR/WCGビデオデータは、一般に、4:4:4クロマフォーマットおよび極めて広い色空間(たとえば、CIE XYZ)を用いて、コンポーネントごとに極めて高い精度で(浮動小数点さえ)獲得され、記憶される。この表現は高精度をターゲットにし、ほとんど数学的に可逆である。しかしながら、HDR/WCGビデオデータを記憶するためのそのようなフォーマットは、多くの冗長性を含み得、圧縮目的のために最適でないことがある。HVSベースの仮定を用いたより低い精度のフォーマットが、一般に、最先端のビデオ適用例のために利用される。
【0067】
[0078] 圧縮の目的のためのビデオデータフォーマットコンバージョンプロセスの一例は、
図5に示されているように、3つの主要なプロセスを含む。
図5の技法は、ソースデバイス12によって実行され得る。線形RGBデータ110は、HDR/WCGビデオデータであり得、浮動小数点表現で記憶され得る。線形RGBデータ110は、ダイナミックレンジ圧縮のために非線形伝達関数(TF)112を使用して圧縮され得る。伝達関数112は、任意の数の非線形伝達関数、たとえば、SMPTE−2084において定義されているPQ TFを使用して、線形RGBデータ110を圧縮し得る。いくつかの例では、色コンバージョンプロセス114は、ハイブリッドビデオエンコーダによる圧縮により好適であるより圧縮したまたはロバストな色空間(たとえば、YUVまたはYCrCb色空間)に、圧縮されたデータをコンバートする。このデータは、次いで、コンバートされたHDR’データ118を生成するために、浮動−整数表現量子化ユニット116を使用して量子化される。この例では、HDR’データ118は整数表現にある。HDR’データは、現在、ハイブリッドビデオエンコーダ(たとえば、HEVC技法を適用するビデオエンコーダ20)による圧縮により好適なフォーマットにある。
図5に示されているプロセスの順序は、一例として与えられ、他の適用例において異なり得る。たとえば、色コンバージョンはTFプロセスに先行し得る。さらに、追加の処理、たとえば、空間サブサンプリングが色コンポーネントに適用され得る。
【0068】
[0079] デコーダ側における逆コンバージョンは
図6に示されている。
図6の技法は、宛先デバイス14によって実行され得る。コンバートされたHDR’データ120は、ハイブリッドビデオデコーダ(たとえば、HEVC技法を適用するビデオデコーダ30)を使用してビデオデータを復号することを通して、宛先デバイス14において取得され得る。HDR’データ120は、次いで、逆量子化ユニット122によって逆量子化され得る。次いで、逆色コンバージョンプロセス124が、逆量子化されたHDR’データに適用され得る。逆色コンバージョンプロセス124は、色コンバージョンプロセス114の逆であり得る。たとえば、逆色コンバージョンプロセス124は、HDR’データをYCrCbフォーマットからRGBフォーマットにコンバートし得る。次に、逆伝達関数126が、線形RGBデータ128を再作成するために、伝達関数112によって圧縮されたダイナミックレンジを再加算するために、データに適用され得る。
【0069】
[0080]
図5に示されている技法は、次に、より詳細に説明される。概して、伝達関数は、量子化による誤差がルミナンス値のレンジに(ほぼ)わたって知覚的に均一になるように、データのダイナミックレンジを圧縮するためにデータ(たとえば、HDR/WCGビデオデータ)に適用される。そのような圧縮は、より少ないビットを用いてデータが表されることを可能にする。一例では、伝達関数は、1次元(1D)非線形関数であり得、たとえば、Rec.709におけるSDRのために指定されるように、エンドユーザ表示の電気光学伝達関数(EOTF)の逆を反映し得る。別の例では、伝達関数は、HVS知覚対輝度変化、たとえば、HDRのためのSMPTE−2084において指定されたPQ伝達関数を近似し得る。OETFの逆プロセスは、コードレベルをルミナンスにマッピングする、EOTF(電気光学伝達関数)である。
図7は、EOTFとして使用される非線形伝達関数のいくつかの例を示す。伝達関数はまた、各R、GおよびBコンポーネントに別個に適用され得る。
【0070】
[0081] 本開示のコンテキストでは、「信号値」または「色値」という用語は、画像要素のための(R、G、B、またはYなどの)特定の色コンポーネントの値に対応するルミナンスレベルについて説明するために使用され得る。信号値は、一般に、線形光源レベル(ルミナンス値)を表す。「コードレベル」または「デジタルコード値」という用語は、画像信号値のデジタル表現を指し得る。一般に、そのようなデジタル表現は非線形信号値を表す。EOTFは、ディスプレイデバイス(たとえば、ディスプレイデバイス32)に与えられた非線形信号値とディスプレイデバイスによって生成された線形色値との間の関係を表す。
【0071】
[0082] RGBが、一般に画像キャプチャセンサーによって生成されるデータのタイプであるので、RGBデータは、一般に、入力色空間として利用される。しかしながら、RGB色空間は、それのコンポーネントの間で高い冗長性を有し、圧縮した表現のために最適でない。より圧縮したおよびよりロバストな表現を達成するために、RGBコンポーネントは、一般に、圧縮により好適であるより無相関な色空間、たとえば、YCbCrにコンバートされる(たとえば、色変換が実行される)。YCbCr色空間は、異なる、あまり相関しないコンポーネントにおいて、ルミナンス(Y)および色情報(CrCb)の形態で輝度を分離する。このコンテキストでは、ロバストな表現は、条件付きビットレートにおいて圧縮されたとき、誤差耐性のより高いレベルを起用する色空間を指し得る。
【0072】
[0083] 色変換に続いて、ターゲット色空間中の入力データは、依然として、高ビット深度(たとえば浮動小数点正確さ)で表され得る。高ビット深度データは、たとえば、量子化プロセスを使用して、ターゲットビット深度にコンバートされ得る。いくつかの研究は、PQ伝達と組み合わせた10〜12ビット正確さが、丁度可知差(JND:Just-Noticeable Difference)を下回るひずみをもつ16個のfストップのHDRデータを与えるのに十分であることを示す。概して、JNDは、差が(たとえば、HVSによって)それとわかるようになるために、何か(たとえば、ビデオデータ)が変更しなければならない量である。10ビット正確さで表されたデータは、さらに、最先端のビデオコーディングソリューションのほとんどを用いてコーディングされ得る。この量子化は、不可逆コーディングの要素であり、コンバートされたデータにもたらされる不正確さの源である。
【0073】
[0084] 次世代HDR/WCGビデオ適用例は、HDRおよびCGの異なるパラメータにおいてキャプチャされたビデオデータを用いて動作することが予期される。異なる構成の例は、最高1000ニトの、または最高10,000ニトのピーク輝度をもつHDRビデオコンテンツのキャプチャであり得る。異なる色域の例としては、BT.709、BT.2020同様にSMPTE指定P3、または他のものがあり得る。
【0074】
[0085] また、将来利用されるべき、すべての他の現在使用されている色域を組み込む(またはほとんど組み込む)、単一の色空間、たとえば、ターゲット色コンテナが予期される。そのようなターゲット色コンテナの一例は、BT.2020である。単一のターゲット色コンテナのサポートは、低減された数の動作点(たとえば、色コンテナ、色空間、色コンバージョンアルゴリズムなどの数)および/または低減された数の必要とされるアルゴリズムがデコーダ(たとえば、ビデオデコーダ30)によってサポートされるべきであるので、HDR/WCGシステムの規格化、実装および展開を著しく簡略化することになる。
【0075】
[0086] そのようなシステムの一例では、ターゲット色コンテナ(たとえばBT.2020)とは異なるネイティブ色域(たとえばP3またはBT.709)を用いてキャプチャされたコンテンツは、処理より前に(たとえば、ビデオ符号化より前に)ターゲットコンテナにコンバートされ得る。以下は、そのようなコンバージョンのいくつかの例である。BT.709からBT.2020色コンテナへのRGBコンバージョン。
【0077】
P3からBT.2020色コンテナへのRGBコンバージョン。
【0079】
[0087] このコンバージョン中に、P3またはBT.709色域においてキャプチャされた信号の各コンポーネント(たとえば、RGB、YUV、YCrCbなど)によって占有される値レンジは、BT.2020表現において低減され得る。データが浮動小数点正確さで表されるので喪失はないが、色コンバージョン(たとえば、以下の式3に示されているRGBからYCrCBへのコンバージョン)および量子化(以下の式4中の例)と組み合わせられたとき、値レンジの縮小は、入力データのための増加された量子化誤差をもたらす。
【0082】
式(4)において、D
Y’は、量子化されたY’コンポーネントであり、D
Cbは、量子化されたCbであり、D
Crは、量子化されたCrコンポーネントである。<<という用語はビット単位右シフトを表す。BitDepth
Y、BitDepth
Cr、およびBitDepth
Cbはそれぞれ、量子化されたコンポーネントの所望のビット深度である。
【0083】
[0088] さらに、現実世界のコーディングシステムでは、低減されたダイナミックレンジを用いて信号をコーディングすることは、コード化クロマコンポーネントのための正確さの著しい喪失をもたらし得、コーディングアーティファクト、たとえば、色ミスマッチおよび/または色ブリーディングとして視聴者によって観測されることになる。
【0084】
[0089] 上記で説明された問題に対処するために、後続の技法が考慮され得る。1つの例示的な技法は、ネイティブ色空間におけるHDRコーディングを伴う。そのような技法では、HDRビデオコーディングシステムは、様々なタイプの現在知られている色域をサポートし、ビデオコーディング規格の拡張が将来の色域をサポートすることを可能にすることになる。このサポートは、異なる色コンバージョン変換、たとえばRGBからYCbCrへの、およびそれらの逆変換をサポートすることのみに限定されないことになり、また、色域の各々に調整された変換関数を指定することになる。ツールのそのような多様性のサポートは、複雑であり、費用がかかることになる。
【0085】
[0090] 別の例示的な技法は、色域アウェア(aware)ビデオコーデックを含む。そのような技法では、仮想ビデオエンコーダは、低減されたダイナミックレンジから生じるひずみを低減するために、入力信号のネイティブ色域を推定し、コーディングパラメータ(たとえば、コード化クロマコンポーネントのための量子化パラメータ)を調整するように構成される。しかしながら、そのような技法は、すべての入力データが整数点正確さにおいて一般的なコーデックに与えられるので、上記の式(4)中で行われる量子化により起こり得る正確さの喪失を復元することが可能でないであろう。
【0086】
[0091] 本開示は、色域コンバージョンによってHDR信号表現にもたらされるダイナミックレンジ変化を補償するために、ダイナミックレンジ調整(DRA)を実行するための技法、方法、および装置について説明する。ダイナミックレンジ調整は、色ミスマッチ、色ブリーディングなどを含む、色域コンバージョンによって引き起こされるひずみを防ぐ、および/または少なくするのを助け得る。本開示の1つまたは複数の例では、DRAは、(たとえば、ソースデバイス12による)エンコーダ側における量子化より前に、および(たとえば、宛先デバイス14による)デコーダ側における逆量子化の後に、ターゲット色空間、たとえば、YCbCrの各色コンポーネントの値に対して行われる。
【0087】
[0092]
図8は、本開示の技法に従って動作する例示的なHDR/WCGコンバージョン装置を示すブロック図である。
図8において、実線はデータフローを指定し、破線は制御信号を指定する。本開示の技法は、ソースデバイス12のビデオプリプロセッサユニット19によって実行され得る。上記で説明されたように、ビデオプリプロセッサユニット19は、ビデオエンコーダ20とは別個のデバイスであり得る。他の例では、ビデオプリプロセッサユニット19は、ビデオエンコーダ20と同じデバイスに組み込まれ得る。
【0088】
[0093]
図8に示されているように、RGBネイティブCGビデオデータ200が、ビデオプリプロセッサユニット19に入力される。ビデオプリプロセッサユニット19によるビデオ前処理のコンテキストでは、RGBネイティブCGビデオデータ200は、入力色コンテナによって定義される。入力色コンテナが、ビデオデータ200を表すために使用される色プライマリのセット(たとえば、BT.709、BT.2020、P3など)を指定する。本開示の一例では、ビデオプリプロセッサユニット19は、RGBネイティブCBビデオデータ200の色コンテナと色空間の両方を、HDR’データ216のためのターゲット色コンテナおよびターゲット色空間にコンバートするように構成され得る。入力色コンテナのように、ターゲット色コンテナが、HDR’データ216を表すために使用されるセットまたは色プライマリを指定し得る。本開示の一例では、RGBネイティブCBビデオデータ200は、HDR/WCGビデオであり得、BT.2020またはP3色コンテナ(または任意のWCG)を有し、RGB色空間中にあり得る。別の例では、RGBネイティブCBビデオデータ200は、SDRビデオであり得、BT.709色コンテナを有し得る。一例では、HDR’データ216のためのターゲット色コンテナは、HDR/WCGビデオ(たとえば、BT.2020色コンテナ)のために構成されていることがあり、ビデオ符号化のためにより最適な色空間(たとえば、YCrCb)を使用し得る。
【0089】
[0094] 本開示の一例では、CGコンバータ202が、RGBネイティブCGビデオデータ200の色コンテナを、入力色コンテナ(たとえば、第1の色コンテナ)からターゲット色コンテナ(たとえば、第2の色コンテナ)にコンバートするように構成され得る。一例として、CGコンバータ202は、RGBネイティブCGビデオデータ200を、BT.709色表現からBT.2020色表現にコンバートし得、それの例が以下に示されている。
【0090】
[0095] RGB BT.709サンプル(R
709、G
709、B
709)をRGB BT.2020サンプル(R
2020、G
2020、B
2020)にコンバートするためのプロセスは、適切なコンバージョン行列を使用して、最初にXYZ表現にコンバートし、その後にXYZからRGB BT.2020へのコンバージョンが続くことを伴う、2ステップコンバージョンを用いて実装され得る。
【0092】
[0096] XYZからR
2020G
2020B
2020(BT.2020)へのコンバージョン
【0094】
同様に、単一のステップおよび推奨方法は以下の通りである。
【0096】
[0097] CGコンバージョンの後の得られたビデオデータが、
図8中のRGBターゲットCGビデオデータ204として示されている。本開示の他の例では、入力データと出力HDR’データとのための色コンテナは同じであり得る。そのような例では、CGコンバータ202は、RGBネイティブCGビデオデータ200に対してコンバージョンを実行する必要はない。
【0097】
[0098] 次に、伝達関数ユニット206が、RGBターゲットCGビデオデータ204のダイナミックレンジを圧縮する。伝達関数ユニット206は、
図5を参照しながら上記で説明されたのと同じ様式でダイナミックレンジを圧縮するために、伝達関数を適用するように構成され得る。色コンバージョンユニット208が、RGBターゲットCG色データ204を、入力色コンテナの色空間(たとえば、RGB)からターゲット色コンテナの色空間(たとえば、YCrCb)にコンバートする。
図5を参照しながら上記で説明されたように、色コンバージョンユニット208は、ハイブリッドビデオエンコーダ(たとえば、ビデオエンコーダ20)による圧縮により好適であるより圧縮したまたはロバストな色空間(たとえば、YUVまたはYCrCb色空間)に、圧縮されたデータをコンバートする。
【0098】
[0099] 調整ユニット210が、DRAパラメータ推定ユニット212によって導出されたDRAパラメータに従って、色コンバートされたビデオデータのダイナミックレンジ調整(DRA)を実行するように構成される。概して、CGコンバータ202によるCGコンバージョンおよび伝達関数ユニット206によるダイナミックレンジ圧縮の後に、得られたビデオデータの実際の色値は、特定のターゲット色コンテナの色域のために割り振られたすべての利用可能なコードワード(たとえば、各色を表す特有のビットシーケンス)を使用しないことがある。すなわち、いくつかの状況では、入力色コンテナから出力色コンテナへのRGBネイティブCGビデオデータ200のコンバージョンは、得られた圧縮されたビデオデータがすべての可能な色表現を効率的に利用しないように、ビデオデータの色値(たとえば、CrおよびCb)を過度に圧縮し得る。上記で説明されたように、色のための値の低減されたレンジを用いて信号をコーディングすることは、コード化クロマコンポーネントのための正確さの著しい喪失をもたらし得、コーディングアーティファクト、たとえば、色ミスマッチおよび/または色ブリーディングとして視聴者によって観測されることになる。
【0099】
[0100] 調整ユニット210は、特定のターゲット色コンテナのために利用可能なコードワードを十分に利用するために、ダイナミックレンジ圧縮および色コンバージョンの後に、ビデオデータ、たとえば、RGBターゲットCGビデオデータ204の色コンポーネント(たとえば、YCrCb)にDRAパラメータを適用するように構成され得る。調整ユニット210は、ピクセルレベルにおいてビデオデータにDRAパラメータを適用し得る。概して、DRAパラメータは、ターゲット色コンテナのために利用可能なできるだけ多くのコードワードに実際のビデオデータを表すために使用されるコードワードを拡大する関数を定義する。
【0100】
[0101] 本開示の一例では、DRAパラメータは、ビデオデータのコンポーネントに適用されるスケールおよびオフセット値を含む。概して、ビデオデータの色コンポーネントの値レンジが低いほど、大きいスケーリングファクタが使用され得る。オフセットパラメータ(offset parameter)は、色コンポーネントの値の中心をターゲット色コンテナのための利用可能なコードワードの中心に置くために使用され得る。たとえば、ターゲット色コンテナが色コンポーネントごとに1024個のコードワードを含む場合、オフセット値は、中心コードワードがコードワード512(たとえば、最中間コードワード)に移動されるように選定され得る。他の例では、オフセットパラメータは、ターゲット色コンテナ中の全体的な表現が、コーディングアーテファクトをなくす際により効率的であるように、出力コードワードへの入力コードワードのより良いマッピングを与えるために使用され得る。
【0101】
[0102] 一例では、調整ユニット210は、以下のように、ターゲット色空間(たとえば、YCrCb)中のビデオデータにDRAパラメータを適用する。
【0103】
ここで、信号コンポーネントY’、Cb’およびCr’は、RGBからYCbCrへのコンバージョン(式3中の例)から生成された信号である。Y’、Cr’およびCr’は、ビデオデコーダ30によって復号されたビデオ信号でもあり得ることに留意されたい。Y’’、Cb’’、およびCr’’は、DRAパラメータが各色コンポーネントに適用された後のビデオ信号の色コンポーネントである。上記の例に見られるように、各色コンポーネントは、異なるスケールおよびオフセットパラメータに関係する。たとえば、scale1およびoffset1がY’コンポーネントのために使用され、scale2およびoffset2がCb’コンポーネントのために使用され、scale3およびoffset3がCr’コンポーネントのために使用される。これはただの一例であることを理解されたい。他の例では、同じスケールおよびオフセット値が、あらゆる色コンポーネントのために使用され得る。
【0104】
[0103] 他の例では、各色コンポーネントは、複数のスケールおよびオフセットパラメータに関連し得る。たとえば、CrまたはCb色コンポーネントのためのクロマ値の実際の分散は、コードワードの異なるパーティションまたはレンジについて異なり得る。一例として、中心コードワード(たとえば、コードワード512)の下にあるよりも、中心コードワードの上で使用されるより多くの特有のコードワードがあり得る。そのような例では、調整ユニット210は、中心コードワードを上回る(たとえば、中心コードワードよりも大きい値を有する)クロマ値のためにスケールおよびオフセットパラメータの1つのセットを適用し、中心コードワードを下回る(たとえば、中心コードワードよりも小さい値を有する)クロマ値のためにスケールおよびオフセットパラメータの異なるセットを適用するように構成され得る。
【0105】
[0104] 上記の例に見られるように、調整ユニット210は、線形関数としてスケールおよびオフセットDRAパラメータを適用する。したがって、調整ユニット210が、色コンバージョンユニット208による色コンバージョンの後にターゲット色空間中でDRAパラメータを適用することは必要でない。これは、色コンバージョンが、それ自体が線形プロセスであるからである。したがって、他の例では、調整ユニット210は、色コンバージョンプロセスの前にネイティブ色空間(たとえば、RGB)中のビデオデータにDRAパラメータを適用し得る。この例では、色コンバージョンユニット208は、調整ユニット210がDRAパラメータを適用した後に色コンバージョンを適用することになる。
【0106】
[0105] 本開示の別の例では、調整ユニット210は、以下のように、ターゲット色空間またはネイティブ色空間のいずれか中でDRAパラメータを適用し得る。
【0108】
この例では、パラメータscale1、scale2、scale3、offset1、offset2、およびoffset3は、上記で説明されたのと同じ意味を有する。パラメータoffsetYは、信号の輝度を反映するパラメータであり、Y’の平均値に等しくなり得る。他の例では、オフセットYと同様のオフセットパラメータが、入力および出力表現中の中心値のマッピングをより良く保存するために、Cb’およびCr’コンポーネントのために適用され得る。
【0109】
[0106] 本開示の別の例では、調整ユニット210は、ネイティブ色空間またはターゲット色空間以外の色空間中でDRAパラメータを適用するように構成され得る。概して、調整ユニット210は、以下のように、DRAパラメータを適用するように構成され得る。
【0111】
ここで、信号コンポーネントA、BおよびCは、ターゲット色空間とは異なる色空間、たとえば、RGBまたは中間色空間中の信号コンポーネントである。
【0112】
[0107] 本開示の他の例では、調整ユニット210は、DRAを実行するためにビデオに線形伝達関数を適用するように構成される。そのような伝達関数は、ダイナミックレンジを圧縮するために伝達関数ユニット206によって使用される伝達関数とは異なる。上記で定義されたスケールおよびオフセットという用語と同様に、調整ユニット210によって適用される伝達関数は、ターゲット色コンテナ中の利用可能なコードワードに色値を拡大し、色値をそれの中心に置くために使用され得る。DRAを実行するために伝達関数を適用することの一例が、以下に示されている。
【0114】
TF2という用語は、調整ユニット210によって適用される伝達関数を指定する。いくつかの例では、調整ユニット210は、コンポーネントの各々に異なる伝達関数を適用するように構成され得る。
【0115】
[0108] 本開示の別の例では、調整ユニット210は、単一のプロセスにおいて、色コンバージョンユニット208の色コンバージョンと一緒にDRAパラメータを適用するように構成され得る。すなわち、調整ユニット210と色コンバージョンユニット208との線形関数は組み合わせられ得る。f1およびf2が、RGBからYCbCrへの行列とDRAスケーリングファクタとの組合せである、組み合わせられた適用例の一例が、以下に示されている。
【0117】
[0109] 本開示の別の例では、DRAパラメータを適用した後に、調整ユニット210は、ビデオデータが、あるターゲット色コンテナのために指定されたコードワードのレンジ外に値を有するのを防ぐために、クリッピングプロセスを実行するように構成され得る。いくつかの状況では、調整ユニット210によって適用されるスケールおよびオフセットパラメータは、いくつかの色コンポーネント値が、許容可能なコードワードのレンジを超えることを引き起こし得る。この場合、調整ユニット210は、レンジを超えるコンポーネントの値をレンジ中の最大値にクリッピングするように構成され得る。
【0118】
[0110] 調整ユニット210によって適用されるDRAパラメータは、DRAパラメータ推定ユニット212によって決定され得る。DRAパラメータ推定ユニット212がDRAパラメータを更新する頻度および時間インスタンスは、フレキシブルである。たとえば、DRAパラメータ推定ユニット212は、時間レベルでDRAパラメータを更新し得る。すなわち、ピクチャのグループ(GOP)、または単一のピクチャ(フレーム)について、新しいDRAパラメータが決定され得る。この例では、RGBネイティブCGビデオデータ200は、GOPまたは単一のピクチャであり得る。他の例では、DRAパラメータ推定ユニット212は、空間レベルで、たとえば、スライスタイルにおいて、またはブロックレベルでDRAパラメータを更新し得る。このコンテキストでは、ビデオデータのブロックは、マクロブロック、コーディングツリーユニット(CTU)、コーディングユニット、またはブロックの任意の他のサイズおよび形状であり得る。ブロックは、正方形、矩形、または任意の他の形状であり得る。したがって、DRAパラメータは、より効率的な時間および空間予測ならびにコーディングのために使用され得る。
【0119】
[0111] 本開示の一例では、DRAパラメータ推定ユニット212は、RGBネイティブCGビデオデータ200のネイティブ色域とターゲット色コンテナの色域との対応に基づいてDRAパラメータを導出し得る。たとえば、DRAパラメータ推定ユニット212は、ネイティブ色域(たとえば、BT.709)およびターゲット色コンテナの色域(たとえば、BT.2020)を前提として、スケールおよびオフセット値を決定するためにあらかじめ定義されたルールのセットを使用し得る。
【0120】
[0112] たとえば、ネイティブ色域およびターゲット色コンテナが、xy空間中の色プライマリ座標および白色点座標の形態で定義されると仮定する。BT.709およびBT.2020のためのそのような情報の一例が、以下の表2に示されている。
【0122】
[0113] 一例では、BT.2020はターゲット色コンテナの色域であり、BT.709はネイティブ色コンテナの色域である。この例では、調整ユニット210は、YCbCrターゲット色空間にDRAパラメータを適用する。DRAパラメータ推定ユニット212は、以下のように、DRAパラメータを推定し、それを調整ユニット210にフォワーディングするように構成され得る。
【0124】
[0114] 別の例として、BT.2020がターゲット色域であり、P3がネイティブ色域であり、DRAがYCbCrターゲット色空間中で適用される場合、DRAパラメータ推定ユニット212は、次のようにDRAパラメータを推定するように構成され得る。
【0126】
[0115] 上記の例では、DRAパラメータ推定ユニット212は、あるネイティブ色域およびあるターゲット色域を前提として、使用すべきDRAパラメータを示すルックアップテーブルを調べることによって、上記のスケールおよびオフセット値を決定するように構成され得る。他の例では、DRAパラメータ推定ユニット212は、たとえば、表2に示されているように、ネイティブ色域およびターゲット色域のプライマリおよび白色空間値からDRAパラメータを計算するように構成され得る。
【0127】
[0116] たとえば、プライマリ座標(xXt、yXt)によって指定されたターゲット(T)色コンテナを考慮し、ここで、XはR、G、B色コンポーネントを示す。
【0129】
および、プライマリ座標(xXn、yXn)によって指定されたネイティブ(N)色域を考慮し、ここで、XはR、G、B色コンポーネントを示す。
【0131】
両方の色域のための白色点座標は、whiteP=(xW、yW)に等しい。DRAパラメータ推定ユニット212は、プライマリ座標〜白色点の間の距離の関数としてDRAのためのscale2およびscale3パラメータを導出し得る。そのような推定の一例が、以下に与えられる。
【0133】
[0117] いくつかの例では、DRAパラメータ推定ユニット212は、ネイティブ色域のあらかじめ定義されたプライマリ値からでなく、RGBネイティブCGビデオデータ200中の色値の実際の分散からprimeN中のプライマリ座標を決定することによってDRAパラメータを推定するように構成され得る。すなわち、DRAパラメータ推定ユニット212は、RGBネイティブCGビデオデータ200中に存在する実際の色を分析し、DRAパラメータを計算するために、上記で説明された関数におけるそのような分析から決定されたプライマリ色値および白色点を使用するように構成され得る。算出を容易にするために、上記で定義されたいくつかのパラメータの近似がDRAとして使用され得る。たとえば、scale3=2.1735はscale3=2に近似され得、これは、いくつかのアーキテクチャにおけるより容易な実装を可能にする。
【0134】
[0118] 本開示の他の例では、DRAパラメータ推定ユニット212は、ターゲット色コンテナの色域だけでなく、ターゲット色空間に基づいてDRAパラメータを決定するように構成され得る。コンポーネント値の値の実際の分散は色空間ごとに異なり得る。たとえば、クロマ値分散は、一定でないルミナンスを有するYCbCr色空間と比較して一定のルミナンスを有するYCbCr色空間について異なり得る。DRAパラメータ推定ユニット212は、DRAパラメータを決定するために異なる色空間の色分散を使用し得る。
【0135】
[0119] 本開示の他の例では、DRAパラメータ推定ユニット212は、ビデオデータを前処理および/または符号化することに関連するいくつかのコスト関数を最小限に抑えるように、DRAパラメータのための値を導出するように構成され得る。一例として、DRAパラメータ推定ユニット212は、量子化ユニット214によってもたらされる量子化誤差を最小限に抑えたDRAパラメータを推定するように構成され得る上記の(たとえば、式(4)を参照)。DRAパラメータ推定ユニット212は、適用されたDRAパラメータの異なるセットを有しているビデオデータに対して量子化誤差テストを実行することによって、そのような誤差を最小限に抑え得る。別の例では、DRAパラメータ推定ユニット212は、知覚的に、量子化ユニット214によってもたらされる量子化誤差を最小限に抑えるDRAパラメータを推定するように構成され得る。DRAパラメータ推定ユニット212は、適用されるDRAパラメータの異なるセットを有しているビデオデータに対する知覚的誤差テストに基づいて、そのような誤差を最小限に抑え得る。DRAパラメータ推定ユニット212は、次いで、最も低い量子化誤差を生成したDRAパラメータを選択し得る。
【0136】
[0120] 別の例では、DRAパラメータ推定ユニット212は、調整ユニット210によって実行されたDRAとビデオエンコーダ20によって実行されたビデオ符号化の両方に関連するコスト関数を最小限に抑えるDRAパラメータを選択し得る。たとえば、DRAパラメータ推定ユニット212は、DRAパラメータの複数の異なるセットを用いて、DRAを実行し、ビデオデータを符号化し得る。DRAパラメータ推定ユニット212は、次いで、DRAおよびビデオ符号化から生じるビットレート、ならびにこれらの2つの不可逆プロセスによってもたらされるひずみの重み付き和を形成することによって、DRAパラメータの各セットのためのコスト関数を計算し得る。DRAパラメータ推定ユニット212は、次いで、コスト関数を最小限に抑えるDRAパラメータのセットを選択し得る。
【0137】
[0121] DRAパラメータ推定のための上記の技法の各々では、DRAパラメータ推定ユニット212は、そのコンポーネントに関する情報を使用して、各コンポーネントのために別個にDRAパラメータを決定し得る。他の例では、DRAパラメータ推定ユニット212は、クロスコンポーネント情報(cross-component information)を使用してDRAパラメータを決定し得る。たとえば、Crコンポーネントのために導出されたDRAパラメータは、CbコンポーネントのためのDRAパラメータを導出するために使用され得る。
【0138】
[0122] DRAパラメータを導出することに加えて、DRAパラメータ推定ユニット212は、符号化ビットストリーム中でDRAパラメータをシグナリングするように構成され得る。DRAパラメータ推定ユニット212は、DRAパラメータを示す1つまたは複数のシンタックス要素を直接シグナリングし得るか、またはシグナリングのためにビデオエンコーダ20に1つまたは複数のシンタックス要素を与えるように構成され得る。パラメータのそのようなシンタックス要素は、ビデオデコーダ30および/またはビデオポストプロセッサユニット31が、それのネイティブ色コンテナ中のビデオデータを再構成するために、ビデオプリプロセッサユニット19のプロセスの逆を実行し得るように、ビットストリーム中でシグナリングされ得る。DRAパラメータをシグナリングするための例示的な技法は、以下で説明される。
【0139】
[0123] 一例では、DRAパラメータ推定ユニット212は、メタデータとして符号化ビデオビットストリーム中で、補足エンハンスメント情報(SEI)メッセージ中で、ビデオユーザビリティ情報(VUI)中で、ビデオパラメータセット(VPS)中で、シーケンスパラメータセット(SPS)中で、ピクチャパラメータセット中で、スライスヘッダ中で、CTUヘッダ中で、またはビデオデータのサイズ(たとえば、GOP、ピクチャ、ブロック、マクロブロック、CTUなど)のためのDRAパラメータを示すのに好適な任意の他のシンタックス構造中で1つまたは複数のシンタックス要素をシグナリングし得る。
【0140】
[0124] いくつかの例では、1つまたは複数のシンタックス要素は、DRAパラメータを明示的に示す。たとえば、1つまたは複数のシンタックス要素は、DRAのための様々なスケールおよびオフセット値であり得る。他の例では、1つまたは複数のシンタックス要素は、DRAのためのスケールおよびオフセット値を含むルックアップテーブルへの1つまたは複数のインデックス(index)であり得る。さらに別の例では、1つまたは複数のシンタックス要素は、DRAのために使用するための線形伝達関数を指定するルックアップテーブルへのインデックスであり得る。
【0141】
[0125] 他の例では、DRAパラメータは明示的にシグナリングされず、むしろ、ビデオプリプロセッサユニット19とビデオポストプロセッサユニット31の両方が、ビットストリーム識別可能な形態であるビデオデータの同じ情報および/または特性を使用する同じあらかじめ定義されたプロセスを使用してDRAパラメータを導出するように構成される。一例として、ビデオポストプロセッサユニット31は、符号化ビットストリーム中でビデオデータのネイティブ色コンテナならびに符号化ビデオデータのターゲット色コンテナを示すように構成され得る。ビデオポストプロセッサユニット31は、次いで、上記で定義されたのと同じプロセスを使用してそのような情報からDRAパラメータを導出するように構成され得る。いくつかの例では、ネイティブおよびターゲット色コンテナを識別する1つまたは複数のシンタックス要素は、シンタックス構造で供給される。そのようなシンタックス要素は明示的に色コンテナを示し得るか、またはルックアップテーブルへのインデックスであり得る。別の例では、ビデオプリプロセッサユニット19は、特定の色コンテナのための色プライマリおよび白色点のXY値を示す1つまたは複数のシンタックス要素をシグナリングするように構成され得る。別の例では、ビデオプリプロセッサユニット19は、DRAパラメータ推定ユニット212によって実行された分析に基づいて、ビデオデータ中の実際の色値の色プライマリおよび白色点(コンテンツプライマリおよびコンテンツ白色点)のXY値を示す1つまたは複数のシンタックス要素をシグナリングするように構成され得る。
【0142】
[0126] 一例として、コンテンツ中の色を含んでいる最も小さい色域の色プライマリがシグナリングされ得、ビデオデコーダ30および/またはビデオポストプロセッサユニット31において、DRAパラメータは、コンテナプライマリとコンテンツプライマリの両方を使用して導出される。一例では、コンテンツプライマリは、上記で説明されたように、R、GおよびBのためのxおよびyコンポーネントを使用してシグナリングされ得る。別の例では、コンテンツプライマリは、2つの知られているプライマリセット間の比としてシグナリングされ得る。たとえば、コンテンツプライマリは、(GおよびBコンポーネントのためのalfa
gおよびalfa
bの場合と同様の式を用いて)BT.709プライマリとBT.2020プライマリとの間の線形位置、x
r_content=alfa
r*x
r_bt709+(1−alfa
r)*x
r_bt2020としてシグナリングされ得、ここで、パラメータalfa
rは、2つの知られているプライマリセット間の比を指定する。いくつかの例では、シグナリングされたおよび/または導出されたDRAパラメータは、HDR/WCGビデオデータのコーディングのために利用される重み付け予測ベースの技法を可能にするために、ビデオエンコーダ20および/またはビデオデコーダ30によって使用され得る。
【0143】
[0127] 重み付け予測を利用するビデオコーディング方式では、現在コーディングされているピクチャScのサンプルが、重み(W
wp)およびオフセット(O
wp)を用いてとられた参照ピクチャSrの(単方向予測のための)サンプルから予測され、これは、予測サンプルSpを生じる。
【0145】
[0128] DRAを利用するいくつかの例では、参照ピクチャのサンプルと現在コーディングされているピクチャのサンプルとは、異なるパラメータ、すなわち現在ピクチャのための{scale1
cur,offset1
cur}および参照ピクチャのための{scale1
ref,offset1
ref}を採用するDRAを用いて処理され得る。そのような実施形態では、重み付け予測のパラメータは、たとえば、以下のように、DRAから導出され得る。
【0147】
[0129] 調整ユニット210がDRAパラメータを適用した後に、ビデオプリプロセッサユニット19は、次いで、量子化ユニット214を使用してビデオデータを量子化し得る。量子化ユニット214は、
図4に関して上記で説明されたのと同じ様式で動作し得る。量子化後に、ビデオデータは、次に、HDR’データ216のターゲットプライマリのターゲット色空間およびターゲット色域において調整される。HDR’データ216は、次いで、圧縮のためにビデオエンコーダ20に送られ得る。
【0148】
[0130]
図9は、本開示の技法による例示的なHDR/WCG逆コンバージョン装置を示すブロック図である。
図9に示されているように、ビデオポストプロセッサユニット31が、
図8のビデオプリプロセッサユニット19によって実行された技法の逆を適用するように構成され得る。他の例では、ビデオポストプロセッサユニット31の技法は、ビデオデコーダ30に組み込まれ、それによって実行され得る。
【0149】
[0131] 一例では、ビデオデコーダ30は、ビデオエンコーダ20によって符号化されたビデオデータを復号するように構成され得る。次いで、復号ビデオデータ(ターゲット色コンテナ中のHDR’データ316)は、ビデオポストプロセッサユニット31にフォワーディングされる。逆量子化ユニット314が、
図8の量子化ユニット214によって実行された量子化プロセスを反転させるために、HDR’データ316に対して逆量子化プロセスを実行する。
【0150】
[0132] ビデオデコーダ30はまた、
図8のDRAパラメータ推定ユニット212によって生成された1つまたは複数のシンタックス要素のうちのいずれかを復号し、それをビデオポストプロセッサユニット31のDRAパラメータ導出ユニット312に送るように構成され得る。DRAパラメータ導出ユニット312は、上記で説明されたように、1つまたは複数のシンタックス要素に基づいてDRAパラメータを決定するように構成され得る。いくつかの例では、1つまたは複数のシンタックス要素は、DRAパラメータを明示的に示す。他の例では、DRAパラメータ導出ユニット312は、
図8のDRAパラメータ推定ユニット212によって使用された同じ技法を使用してDRAパラメータを導出するように構成される。
【0151】
[0133] DRAパラメータ導出ユニット312によって導出されたパラメータは、逆調整ユニット310に送られる。逆調整ユニット310は、調整ユニット210によって実行された線形DRA調整の逆を実行するためにDRAパラメータを使用する。逆調整ユニット310は、調整ユニット210のための上記で説明された調整技法のいずれかの逆を適用し得る。さらに、調整ユニット210の場合と同様に、逆調整ユニット310は、逆色コンバージョンの前または後に逆DRAを適用し得る。したがって、逆調整ユニット310は、ターゲット色コンテナまたはネイティブ色コンテナ中のビデオデータに対してDRAパラメータを適用し得る。いくつかの例では、逆調整ユニット310は、逆量子化ユニット314の前に逆調整を適用するように配置され得る。
【0152】
[0134] 逆色コンバージョンユニット(inverse color conversion unit)308が、ターゲット色空間(たとえば、YCbCr)からネイティブ色空間(たとえば、RGB)にビデオデータをコンバートする。次いで、逆伝達関数306が、ビデオデータのダイナミックレンジを圧縮解除(uncompact)するために、伝達関数206によって適用された伝達関数の逆を適用する。いくつかの例では、彼得られたビデオデータ(RGBターゲットCG304)は、依然としてターゲット色域中にあるが、現在、ネイティブダイナミックレンジおよびネイティブ色空間中にある。次に、逆CGコンバータ302が、RGBネイティブCG300を再構成するために、ネイティブ色域にRGBターゲットCG304をコンバートする。
【0153】
[0135] いくつかの例では、追加の後処理技法が、ビデオポストプロセッサユニット31によって採用され得る。DRAを適用することは、ビデオを、それの実際のネイティブ色域の外側に置き得る。量子化ユニット214および逆量子化ユニット314によって実行される量子化ステップ、ならびに調整ユニット210および逆調整ユニット310によって実行されるアップサンプリングおよびダウンサンプリング技法は、ネイティブ色コンテナ中の得られた色値が、ネイティブ色域の外側になることの原因となり得る。ネイティブ色域(または、上記で説明されたように、シグナリングされた場合、実際の最も小さいコンテンツプライマリ)が知られているとき、DRAのための後処理として意図された色域に色値(たとえば、RGBまたはCbおよびCr)を変換するために、追加のプロセスが、RGBネイティブCGビデオデータ304に適用され得る。他の例では、そのような後処理は、量子化の後に、またはDRA適用の後に適用され得る。
【0154】
[0136] 上述のように、いくつかのSEIメッセージが、ビデオデータの様々な色コンポーネントのためのダイナミックレンジ調整情報に関する情報を伝達するために使用され得る。上記で説明されたおよび以下でより詳細に説明されるようなコンポーネントスケーリングSEIメッセージは、ビデオデータの様々な色コンポーネントのためのマッピング情報を示すために使用され得るスケールファクタ、オフセット、およびレンジ(たとえば、コードワード値のパーティション)のセットを伝達し得る。マッピング情報は、再構成されたHDRビデオデータの全体的な品質、または後方互換性が望まれるいくつかの場合には再構成されたSDRビデオデータの品質が改善されるように、あるいは表示能力のためにより好適な再構成された出力を製作するために、ビデオデコーダ30および/またはビデオポストプロセッサユニット31に、サンプル値(sample value)の異なるレンジをどのように拡大または縮小すべきかを示すために使用され得る。
【0155】
[0137] 以下の表3は、コンポーネントスケーリングSEIメッセージのシンタックス構造の一変形形態を与える。以下のシンタックス要素の名称が、以下の例で説明されるものとは異なるプレフィックス「hdr_recon_」を含んでいるが、シンタックス要素の名称がcomponent_scalingとしてプレフィックスされる場合、シンタックステーブルは場合によっては同じであることに留意されたい。
【0158】
[0139] 表3のSEIシンタックスのセマンティクスは、以下で提示される。
【0159】
[0140] マッピングプロセスは、区分線形関数マップ[c]()、c=0..hdr_recon_num_comps_minus1の場合に基づき、これは、以下のように、[0,1] における値xを値y=map[c](x)にマッピングする。
− 両端値を含む、0〜hdr_recon_num_ranges[c]−1のレンジ中のiの場合、以下が適用される。
− 値ScaleValue[c][i]は、シンタックス要素hdr_recon_scale_val[c][i]のセマンティクスにおいて説明されるように導出される。
− 値RangeValue[c][i]は、シンタックス要素hdr_recon_range_val[c][i]のセマンティクスにおいて説明されるように導出される。
− 両端値を含む、0〜hdr_recon_num_ranges[c]−1のレンジ中のiの場合、値InputRanges[c][i]およびOutputRanges[c][i]は、以下のように導出される。
− iが0に等しい場合、以下が適用される。
【0161】
− 他の場合(iが0に等しくない)、以下が適用される。
【0163】
− 両端値を含む、0〜hdr_recon_num_ranges[c]−1のレンジ中のiの場合、値OffsetValue[c][i]は、以下のように導出される。
【0165】
− パラメータy=map[c](x)は、以下のように導出される。
− xがOutputRanges[c]〔0〕よりも小さいかまたはそれに等しい場合、以下が適用される。
【0167】
− そうではなく、xがOutputRanges[c][hdr_recon_num_ranges[c]]よりも大きい場合、以下が適用される。
【0171】
[0141] コンポーネントスケーリング情報SEIメッセージ、およびコンポーネントのダイナミックレンジを調整するために適用可能である他のパラメータに関連するいくつかの問題が識別されている。特に、スケールおよびオフセット値、ならびにサンプル値(たとえば、RGB値、YCrCb値、YUV値、XYZ値など)のためのコードワードのレンジを導出するための浮動小数点数の使用に関係する問題が識別されている。たとえば、ビットストリーム中でシグナリングされるスケール値は、逆ダイナミックレンジ調整プロセスを実行するために、デコーダ側において、たとえば、ビデオポストプロセッサ31によって使用される。しかしながら、サンプル値のレンジを算出するためにおよびマッピングプロセスを算出するために、スケール値を使用するために、逆方向演算(reciprocal operation)が、ビデオポストプロセッサ31において実行される。コンポーネントスケーリングSEIメッセージのための前の例示的なセマンティクスは、サンプル値を用いて乗算されるべき逆数(たとえば、スケール値の逆数、またはスケール値および加算されたオフセット値の逆数)の使用を指定する。そのような逆方向演算においてもたらされる誤差は、逆数が、発生されたあらゆるサンプル値に適用されるので、順方向演算(forward operation)における潜在的誤差よりも有意になることになる。
【0172】
[0142] コンポーネントスケーリングSEIメッセージのセマンティクスは、サンプル値のレンジの導出プロセス、および浮動小数点演算に関する色コンポーネント(たとえば、サンプル値)のコードワードの各レンジに対するマッピングプロセス(たとえば、スケールおよびオフセット値の適用)を示す。これは、異なるコンピューティングシステムにおける様々な浮動小数点演算実装に基づく再構成されたHDR出力における差分をもたらすことがある。
【0173】
[0143] 本出願は、SEIシグナリングおよび処理を使用してコンポーネントスケーリング情報の通信を改善するためのいくつかの技法、またはH.265/HEVC、H.264/AVC、BDA、MPEGまたは他のものなど、ビデオコーディング規格において指定され得る他の同様のシグナリング技法について説明する。後続の態様のうちの1つまたは複数は、独立して、または、特定の例におけるこれらの態様のうちの他のものとの好適な組合せで適用され得ることを認識されたい。
【0174】
[0144] 概して、本開示は、ビデオエンコーダ20および/またはビデオプリプロセッサユニット19が、コンポーネントサンプル値(たとえば、色コンポーネント値)の1つまたは複数のサンプル値レンジのためのスケール値をシグナリングするように構成され得る技法について説明する。スケール値は、ビデオデコーダ30およびビデオポストプロセッサユニット31が、入力サンプル値を含んでいる特定のサンプル値レンジのために指定されたスケール値を入力サンプル値に乗算し、コンポーネントスケーリング情報の一部としてパラメータに基づいて算出されたオフセットを加算することによって、コンポーネントの入力サンプル値から出力サンプル値を取得するためのマッピングプロセスを実行するように構成され得るように指定される。
【0175】
[0145] 本開示の別の例では、色コンポーネントのコードワードのレンジのサイズおよび数を算出するために浮動小数点実装を使用するのではなく、ビデオエンコーダ20および/またはビデオプリプロセッサユニット19は、固定小数点算出実装を使用して、色コンポーネントのコードワードのレンジのサイズおよび数を導出するように構成され得る。たとえば、ビデオエンコーダ20および/またはビデオプリプロセッサユニット19は、ダイナミックレンジ調整マッピングプロセスのパラメータを決定および適用するために、所定の数の小数ビット(fractional bit)を使用するように構成され得る。小数ビットの数は、ダイナミックレンジ調整プロセスの各パラメータ(たとえば、各色コンポーネント(コードワード)のための値のレンジ、スケール値、およびオフセット値)について異なり得ることに留意されたい。
【0176】
[0146] たとえば、ビデオプリプロセッサユニット19は、色コンポーネントのためのコードワードのレンジのサイズおよび数を通信するために使用される任意のパラメータまたはシンタックス要素(たとえばhdr_recon_num_ranges[c])に対して整数演算を実行するように構成され得る。ビデオプリプロセッサユニット19は、使用される固定小数点実装におけるレンジのサイズおよび数の任意の計算の小数部分によって使用されるビット数を追跡するように構成され得る。ビデオプリプロセッサユニット19および/またはビデオエンコーダ20は、SEIメッセージ(たとえば、hdr_recon_offset_frac_bit_depth、hdr_recon_scale_frac_bit_depth)中の小数部分において使用されるビット数をシグナリングするように構成され得るか、または、小数部分において使用されるビット数は所定の値であり得る。ビデオデコーダ30は、小数部分におけるビット数を示すSEIメッセージ中のシンタックス要素を復号するように構成され得、ビデオポストプロセッサユニット31は、逆ダイナミックレンジ調整プロセスのパラメータのうちの1つまたは複数のための小数部分における同じビット数を使用して、逆ダイナミックレンジ調整を実行するように構成され得る。
【0177】
[0147] 本開示の一例では、マッピングプロセスのためのレンジおよび/または他のパラメータを決定するとき、ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、異なるパラメータのシグナリングされた小数ビット深度が異なるとき、パラメータのために実行された算出の正確さができるだけ保持されるように、そのようなパラメータを決定するように構成され得る。たとえば、ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、特定のパラメータを決定するために使用される任意の中間計算ステップにおける小数ビットの数を累算する(accumulate)ことによって、最小値に丸めることによりもたらされる誤差を保持するように構成され得る。ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、次いで、特定のパラメータの最終値を、特定のパラメータを決定および/または計算する最後のステップにおいて所望の小数正確さ(desired fractional accuracy)にするために、クリッピングプロセスを実行し得る。別の例では、パラメータのシグナリングされた小数ビット深度が同じであるとき、ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、中間ステップにおける小数ビットの数を累算し、パラメータの最終値を(1つまたは複数の)最後のステップにおいて所望の正確さにするために、クリッピングを実行するように構成され得る。
【0178】
[0148] 別の例では、ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、計算プロセスの1つまたは複数の中間ステップにおいてパラメータの値を、またはパラメータのために取得された値の小数部分が所定の値に低減されるようにパラメータの値をクリッピングおよび/またはトランケートする(truncate)ように構成され得る。すなわち、クリッピングを実行するためにパラメータのための最終値を決定するまで待つのではなく、ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、パラメータを決定するために実行される計算の中間値をクリッピングし得る。そのようなクリッピングまたはトランケーションは、SEIメッセージ中で示される小数ビットの数に基づき得る。別の例では、ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、動作/ステップがクリッピングなしに実行されると、小数ビットの累算された数が、ある所定の値、たとえば中間値を記憶するために使用されるレジスタのビット深度を超えることになると決定されたとき、特定の動作/ステップの前に特定のパラメータを計算するときに使用される中間値をクリッピングおよび/またはトランケートするように構成され得る。
【0179】
[0149] 本開示の別の例では、ビデオプリプロセッサユニット19および/またはビデオポストプロセッサユニット31は、色コンポーネントの固定表現のために定義された定義された最小値と最大値とに基づく所定のサンプル値レンジに従って、スケール、オフセットおよびレンジ値を導出するように構成され得る。たとえば、色コンポーネントの固定表現は、定義された値の複数のレンジ、たとえば、値の「標準」レンジ、値の「フル」レンジ、および「制限付き」レンジ値を有し得る。値の「フル」レンジは、値の「標準」レンジ(たとえば、YCbCr色空間の8ビット標準レンジ表現、Yコンポーネントは、両端値を含む、16〜235のレンジ中の値をとり得、CbおよびCrコンポーネントは、両端値を含む、16から240の間の値をとり得る)と比較して、特定のコンポーネントの最小値と最大値との間のより大きいスパンを有し得る(たとえば、YCbCr色空間の8ビットフルレンジ表現の場合、Y、Cb、およびCrコンポーネントは、両端値を含む、0〜255の激怒中の値をとることができる)。値の「制限付き」レンジは、値の「標準」レンジと比較して、特定のコンポーネントの最小値と最大値との間のより小さいスパンを有し得る(たとえば、YCbCr色空間の10ビット制限付きレンジ表現の場合、Y、Cb、およびCrコンポーネントは、両端値を含む、4〜1019のレンジ中の値をとり得る)。
【0180】
[0150] 一例では、ビデオエンコーダ20および/またはビデオプリプロセッサユニット19は、どんなサンプルレンジ(たとえばフル、制限付き、標準、または他のもの)が使用されるかに基づいて、ビデオデコーダ30および/またはビデオポストプロセッサユニット31に、サンプルの最小および最大許容値(たとえば、色コンポーネント値)を示すために(たとえば、SEIメッセージ中で)シンタックス要素をシグナリングするように構成され得る。別の例では、ビデオエンコーダ20および/またはビデオプリプロセッサユニット19は、どんなサンプルレンジ(たとえばフル、制限付き、標準)が使用されるかに基づいて、ビデオデコーダに、サンプルの最小および最大許容値を示す1つまたは複数のシンタックス値を(たとえば、SEIメッセージ中で)シグナリングするように構成され得る。ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、次いで、受信された最小値と受信された最大値とに基づいて逆ダイナミックレンジ調整プロセスのために許可されるコンポーネント値のレンジを決定し得る。
【0181】
[0151] 別の例では、ビデオエンコーダ20および/またはビデオプリプロセッサユニット19は、スケール値が符号付き(signed)であるのか符号なし(unsigned)であるのかを示すために、(たとえば、SEIメッセージ中で)フラグをシグナリングするように構成され得る。この例では、任意のSEIメッセージのパースプロセス(parsing process)は、フラグの値にかかわらず同じである。
【0182】
[0152] 後続のセクションは、前のセクションにおいて開示された例示的な技法を使用する実施形態のいくつかの例を含む。この実施形態では、コンポーネントスケーリング関数がルックアップテーブルとしてシグナリングされ、ルックアップテーブルを定義する点をシグナリングするために使用されるビット数もシグナリングされる。一例では、ルックアップは、区分線形マッピング関数を定義する。ルックアップテーブルのための点は、区分線形マッピングを定義する(x,y)座標に対応する。シグナリングされる明示的点を有しないサンプル値のために、値は隣接ピボット点に基づいて補間される。
【0183】
[0153] レンジおよび出力サンプル値の導出プロセスは、以下のように定義される。
【0184】
[0154] サンプルy=map[c](x)への、コンポーネントcからのサンプルxのマッピングは、以下のように指定される。
− DefaultPrecShiftの値を9に等しく設定する
− 変数minSampleValおよびmaxSampleValを、コンテンツのサンプルレンジによって定義された最小および最大サンプル値を示すものとする。
− 両端値を含む、0〜hdr_recon_num_ranges[c]−1のレンジ中のiの場合、変数ScaleValue[c][i]は、以下のように導出される。
【0186】
− 両端値を含む、0〜hdr_recon_num_ranges[c]−1のレンジ中のiの場合、変数RangeValue[c][i]は、以下のように導出される。
【0187】
− hdr_recon_equal_ranges_flag[c]が0に等しい場合、以下が適用される。
【0189】
− 他の場合(hdr_recon_equal_ranges_flag[c]が1に等しい)、以下が適用される。
【0191】
ここで、サンプルレンジが0〜1に正規化されたとき、InputDynamicRangeValueは1に等しい。
− 両端値を含む、0〜hdr_recon_num_ranges[c]のレンジ中のiの場合、変数InputRanges[c][i]およびOutputRanges[c][i]は、以下のように導出される。
【0192】
− iが0に等しい場合、以下が適用される。
【0195】
− 他の場合(iが0に等しくない)、以下が適用される。
【0198】
− 両端値を含む、0〜hdr_recon_num_ranges[c]−1のレンジ中のiの場合、パラメータOffsetValue[c][i]は、以下のように導出される。
【0200】
− パラメータy=map[c](x)は、以下のように導出される。
【0201】
− 変数bitDepthDeltaは、DefaultPrecShift+hdr_recon_offset_frac_bit_depth−BitDepthに等しく設定される
− (x<<bitDepthDelta)がOutputRanges[c]〔0〕よりも小さいかまたはそれに等しい場合、以下が適用される。
【0203】
− そうではなく、(x<<bitDepthDelta)がOutputRanges[c][hdr_recon_num_ranges[c]]よりも大きい場合、以下が適用される。
【0207】
代替的に、minSampleValおよびmaxSampleValに基づくサンプルレンジの調整は、OffsetValueに対して実行されず、むしろ以下のように、InputRangesおよびOutputRangesに対して実行される。
【0209】
[0155] 本開示は、SEIシグナリングおよび処理またはH.265/HEVC、H.264/AVC、BDA、MPEGまたは他のものなど、ビデオコーディング規格において指定されるまたは指定されることになる他の手段を使用してコンポーネントスケーリング情報の搬送を改善するためのいくつかの技法を与える。これらの技法のうちの1つまたは複数は、独立して、または、他のものとの組合せで適用され得る。さらに、ダイナミックレンジプロセスの固定小数点実装を実行するためのSEIメッセージ中の情報をシグナリングおよび/または使用するための上記で説明された技法は、情報をシグナリング/受信するための以下で説明されるシンタックス構造のうちの1つまたは複数を利用し得る。
【0210】
[0156] いくつかの例では、ビデオエンコーダ20は、各コンポーネントのために、本開示で説明されるように、ダイナミックレンジ調整を適用する前に、それを下回るすべてのコンポーネント値が第1のコンポーネント値にクリッピングされる第1の調整されていないコンポーネント値を決定する第1のオフセット値を含む、グローバルオフセット値を含む1つまたは複数のSEIメッセージをシグナリングし得る。デコーダ30は、そのようなSEIメッセージのうちの1つまたは複数を受信し、SEIメッセージ中の情報をパースおよび/または復号し、ならびにビデオポストプロセッサ31に情報を受け渡し得る。
【0211】
[0157] いくつかの例では、各コンポーネントのために、ビデオエンコーダ20は、第1のオフセット値がダイナミックレンジ調整の後にそれにマッピングされる調整された値を指定する、第2のオフセット値を含む1つまたは複数のSEIメッセージをシグナリングし得る。ビデオデコーダ30は、そのようなSEIメッセージを受信し、情報をパースおよび/または復号し、ビデオポストプロセッサ31にその情報を受け渡し得る。
【0212】
[0158] 別の例では、第1のグローバルオフセット値も第2のグローバルオフセット値も、SEIメッセージ中でシグナリングされない。代わりに、デコーダ30は、第1のグローバルオフセットおよび第2のグローバルオフセットの値が、デコーダ30がシーケンスごとに決定するかまたは外部手段によって受信するかのいずれかの一定値、所定の値、あるいはシグナリングされた値であると仮定する。別の例では、ビデオエンコーダ20はSEIメッセージ中で第1のグローバルオフセット値をシグナリングするが、第2のグローバルオフセット値はSEIメッセージ中でシグナリングされない。代わりに、ビデオデコーダ30は、それの値が、デコーダ30がシーケンスごとに決定するかまたは外部手段によって受信されたかのいずれかの一定値、所定の値、あるいはシグナリングされた値であると推論する。またさらなる例では、ビデオエンコーダ20はSEIメッセージ中で第2のグローバルオフセット値をシグナリングするが、第1のグローバルオフセット値はSEIメッセージ中でシグナリングされない。代わりに、ビデオデコーダ30は、第1のグローバルオフセット値が、デコーダ30がシーケンスごとに決定するかまたは外部手段によって受信されたかのいずれかの一定値、所定の値、あるいはシグナリングされた値であると推論する。
【0213】
[0159] いくつかの例では、ビデオエンコーダ20は、デコーダ30によって受信され、グローバルオフセット値とローカルスケールおよびオフセット値の両方、ならびに調整されていない値のレンジのパーティション、および調整された値のレンジのパーティションを含む、他のグローバルまたはローカルパラメータを導出するためにデコーダ30によって使用されるオフセット値をシグナリングし得る。
【0214】
[0160] いくつかの例では、ビデオエンコーダ20は、入力表現値(すなわち、コンポーネント値)のレンジがダイナミックレンジ調整中に分割されたパーティションの数を含む1つまたは複数のSEIメッセージをシグナリングし得る。一例では、パーティションの数は、2の累乗(すなわち1、2、4、8、16など)であるように制約され得、パーティションの数は、対数としてシグナリングされる(たとえば、8つのパーティションは3=log
28としてシグナリングされる)。ビデオデコーダ30は、そのようなSEIメッセージを受信し、情報をパースおよび/または復号し、ビデオポストプロセッサ31にその情報を受け渡し得る。
【0215】
[0161] いくつかの例では、クロマコンポーネントのためのパーティションの数は、ルーマコンポーネントのためのパーティションの数とは異なり得る。パーティションの数は、2+1の累乗であるように制約され、対数としてシグナリングされ、マイナス0に向けて丸め得る。このようにして、中間クロマをもつピクセルはそれら自体の値を有することができ、そのパーティションのサイズは他のパーティションよりも小さくなり得る。そのような例では、中間クロマは、中央値の周りのクロマの値(たとえば、クロマ値が、−0.5から0.5の間、または、10ビット表現において−512から511の間にわたるとき、0)を指し得る。2の累乗としてパーティションの数を制約することは、エンコーダ20が整数値のための実際の値よりも少ないビットで値の対数を表すことが可能であり得るので、エンコーダ20がビットを節約することを可能にし得る。2+1の累乗にパーティションの数を制約することは、少なくとも1つのパーティションが中間クロマ値に専用であり得ることを保証し得、いくつかの例では、中間クロマ値に対応するパーティションの幅は、残りよりも小さくなり得る。他の例では、そのようなパーティションは、他のパーティションのうちの1つまたは複数よりも大きくなり得る。
【0216】
[0162] いくつかの例では、デコーダ30は、グローバルオフセット値とローカルスケールおよびオフセット値の両方、ならびに調整されていないコンポーネント値のレンジのパーティションの実際のサイズ、および/または調整されたコンポーネント値のレンジのパーティションのサイズを含む、他のグローバルまたはローカルパラメータを導出するためにパーティションのシグナリングされた数を使用し得る。
【0217】
[0163] いくつかの例では、エンコーダ20は、各パーティションのために、入力コンポーネント値および対応するマッピングされた出力コンポーネント値のレンジを指定するローカルスケールおよびローカルオフセット値を含み得る1つまたは複数のSEIメッセージをシグナリングし得る。いくつかの例では、エンコーダ20は、スケールおよびオフセットをシグナリングするためにシンタックス要素によって使用されるビット数を含むSEIメッセージをシグナリングし得る。他の例では、エンコーダ20は、シンタックス要素におけるスケールおよびオフセットの小数部分を表すために使用されるビット数を示すSEIメッセージをシグナリングし得る。他の例では、エンコーダ20は、スケールパラメータ(scale parameter)の整数部分が符号付き表現中でシグナリングされることを示す1つまたは複数のSEIメッセージまたはシンタックス要素をシグナリングし得る。いくつかの例では、符号付き表現は2の補数である。他の例では、符号付き表現は符号付き絶対値(signed magnitude)表現である。ビデオデコーダ30は、そのようなSEIメッセージおよび/またはシンタックス要素を受信し、情報をパースおよび/または復号し、ビデオポストプロセッサ31にその情報を受け渡し得る。
【0218】
[0164] 他の例では、エンコーダ20は、最初に、調整されたコンポーネントまたは表現値のレンジを算出し、次いで、スケール値を使用して、調整されていない表現中の対応するレンジを算出するために、各オフセット値を連続的に使用し得る。たとえば、1つのオフセット値が使用されて、調整されたコンポーネントのために導出またはシグナリングされたグローバルオフセット値の値を使用して、調整されたコンポーネント中の第1のパーティションのレンジを算出し、続いて、スケール値および調整された表現の第1のパーティションのレンジを使用して、調整されていない表現の対応するパーティション中のレンジを導出し、調整された表現の第1のパーティションと調整されていない表現の対応するパーティションとのそれぞれのレンジを用いて、パーティションの境界を示す調整されたレンジの第1のパーティションと調整されていない表現の対応するパーティションとのために導出されたそれぞれの値を導出し得る。これに続いて、別のオフセット値が使用されて、前のステップにおいて導出された調整されたコンポーネント中の第1のパーティションの境界値を使用して、調整されたコンポーネント中の第2のパーティションのレンジを算出し、続いて、スケール値および調整された表現の第2のパーティションのレンジを使用して、調整されていない表現のレンジを導出し得、調整された表現の第2のパーティションと調整されていない表現の対応するパーティションとのそれぞれのレンジを用いて、それぞれの表現の境界を示す調整された表現および調整されていない表現中のパーティションのためのそれぞれの値が導出される。この方法は、すべてのレンジおよび境界が、調整された表現および調整されていない表現中のすべてのパーティションのために導出されるまで、繰り返される。別の例では、エンコーダ20は、最初に、調整されていないコンポーネントまたは表現値のレンジを算出し、次いで、スケール値を使用して、調整された表現中の対応するレンジを算出するために、各オフセット値を連続的に使用し得る。言い換えれば、スケールおよびオフセット値が適用されるコンポーネントまたは表現は、調整されていない表現と調整された表現との間でスワップされ得る。
【0219】
[0165] いくつかの例では、スケールおよびオフセット値をシグナリングするためにシンタックス要素によって使用されるビット数は、コンポーネントに依存し得る。他の例では、デフォルトビット数が定義され、これらの数が明示的にシグナリングされないときに使用される。
【0220】
[0166] いくつかの例では、エンコーダ20は、出力表現(すなわち、出力コンポーネント)のパーティションの長さが等しいかどうかを示すシンタックス要素をシグナリングし得る。そのような例では、エンコーダ20は、1つまたは複数のパーティションのためにオフセット値をシグナリングしないことがある。デコーダ30は、いくつかの例では、オフセット値が等しいと推論し得る。別の例では、デコーダ30は、パーティションが等しい長さのものであると仮定し得、そのように示すシンタックス要素を受信しないことがある。いくつかの例では、デコーダ30は、シグナリングされたシンタックス要素および表現のあらかじめ定義された総動的レンジから各パーティションのサイズを導出し得る。
【0221】
[0167] 他の例では、各パーティションのためのピボット点ならびに各パーティションのためのスケールおよびオフセット値をシグナリングするのではなく、ビデオエンコーダ20は、1つまたは複数またはすべてのパーティションのサイズとともに、各パーティションのための導関数またはスケール値を示す1つまたは複数のSEIメッセージをシグナリングし得る。この手法は、エンコーダ20が、各パーティションのためのローカルオフセット値をシグナリングすることを回避することを可能にし得る。代わりに、いくつかの例では、エンコーダ20は、1つまたは複数のSEIメッセージ中で、1つまたは複数のパーティションのためのパーティションサイズおよびスケール値(または導関数)をシグナリングすることが可能であり得る。(より高い正確さを必要とし得る)各パーティションまたは区分のためのローカルオフセット値は、デコーダ30によって決定または導出され得る。
【0222】
[0168] いくつかの例では、エンコーダ20は、いくつかのパーティションのためのオフセットおよびスケール値のためのいくつかのデフォルト値を指定するモード値を示す1つまたは複数のSEIメッセージをシグナリングし得る。ビデオデコーダ30は、そのようなSEIメッセージを受信し、情報をパースおよび/または復号し、ビデオポストプロセッサ31にその情報を受け渡し得る。
【0223】
[0169] いくつかの例では、エンコーダ20は、コンポーネントのサブセットの持続性が定義され得、コンポーネントのサブセットのコンポーネントスケール値が更新され得るように、SEIメッセージの持続性を定義する値を示す1つまたは複数のSEIメッセージをシグナリングし得る。SEIメッセージの持続性は、SEIのインスタンスにおいてシグナリングされた値が適用され得るピクチャを示す。いくつかの例では、SEIメッセージの持続性は、SEIメッセージの1つのインスタンスにおいてシグナリングされた値が、SEIメッセージが適用されるピクチャのすべてのコンポーネントに対応して適用され得るように定義される。他の例では、SEIメッセージの持続性は、SEIの1つのインスタンスにおいてシグナリングされた値が、コンポーネントのサブセットに対応して適用されるように示され得るように、定義され、ここにおいて、SEIのインスタンスにおける値が適用されないコンポーネントは、適用可能な値を有しないことがあるか、または、SEIメッセージの別のインスタンスにおいてシグナリングされる適用可能な値を有し得るかのいずれかである。ビデオデコーダ30は、そのようなSEIメッセージを受信し、情報をパースおよび/または復号し、ビデオポストプロセッサ31にその情報を受け渡し得る。
【0224】
[0170] いくつかの例では、エンコーダ20は、復号された出力に実行されるべき後処理ステップを示すシンタックス要素を含む1つまたは複数のSEIメッセージをシグナリングし得る。各シンタックス要素は、特定のプロセス(たとえばコンポーネントをスケーリングすること、色変換、アップサンプリング/ダウンサンプリングフィルタなど)に関連し得、シンタックス要素の各値は、プロセスに関連する特定のパラメータのセットが使用されることを指定し得る。いくつかの例では、プロセスに関連するパラメータは、ビットストリームの一部であるSEIメッセージを使用して、または他の手段を通して送信され得るメタデータとして、ビデオエンコーダ20によってシグナリングされる。ビデオデコーダ30は、そのようなSEIメッセージを受信し、情報をパースおよび/または復号し、ビデオポストプロセッサ31にその情報を受け渡し得る。
【0225】
[0171] いくつかの例では、エンコーダ20は、入力表現(すなわち、入力コンポーネント値)を出力表現(すなわち、出力コンポーネント値)にマッピングするための区分線形モデル関数を記述するおよび/またはそれを構築するために使用され得るシンタックス要素または1つまたは複数のSEIメッセージをシグナリングし得る。ビデオデコーダ30は、そのようなSEIメッセージを受信し、情報をパースおよび/または復号し、ビデオポストプロセッサ31にその情報を受け渡し得る。他の例では、あらかじめ定義された仮定が、入力表現を出力表現にマッピングするための区分線形モデル関数を記述するおよび/または構築するために使用され得る。
【0226】
[0172] いくつかの例では、エンコーダ20は、SEIメッセージ中でシグナリングされるスケールおよびオフセットパラメータが、第2のコンポーネントの異なる値の関数として第1のコンポーネントに適用されるべきスケールの変動を表すことを示す1つまたは複数のシンタックス要素を含み得る1つまたは複数のSEIメッセージをシグナリングし得る。
【0227】
[0173] いくつかの例では、エンコーダ20は、第2のコンポーネントの異なる値の関数として第1のコンポーネントに対してスケールとともに適用されるべきであるかまたは適用され得るオフセットパラメータを示す1つまたは複数のSEIメッセージをシグナリングし得る。いくつかの例では、エンコーダ20は、第2のコンポーネントの異なる値の関数として第1のコンポーネントに対してスケールとともに適用されるべきであるかまたは適用され得るオフセットパラメータを示す1つまたは複数の追加のシンタックス要素を含み得る1つまたは複数のSEIメッセージをシグナリングし得る。ビデオデコーダ30は、そのようなSEIメッセージを受信し、情報をパースおよび/または復号し、ビデオポストプロセッサ31にその情報を受け渡し得る。
【0228】
[0174] いくつかの例では、エンコーダ20は、デコーダ側で使用される電気光学伝達関数特性が電気光学伝達関数特性の第1のセットと同様であるとき、SEIメッセージシグナリングされたスケール、オフセット、および他のダイナミックレンジ調整パラメータが適用されるように、その電気光学伝達関数特性の第1のセットを示す第1のシンタックス要素を含む1つまたは複数のSEIメッセージをシグナリングし得る。
【0229】
[0175] 別の例では、エンコーダ20は、電気光学伝達関数特性の第1のセットまたは同様の特性をもつものがデコーダ30によって使用されるとき、(1つまたは複数の)SEIメッセージ中のシグナリングされたオフセット、スケールおよび他のダイナミックレンジパラメータが、HDR出力の最良の再構成のために適用されるべきであることを示す1つまたは複数のSEIメッセージをシグナリングし得る。ビデオデコーダ30は、そのようなSEIメッセージを受信し、情報をパースおよび/または復号し、ビデオポストプロセッサ31にその情報を受け渡し得る。
【0230】
[0176] 別の例では、エンコーダ20は、対応する逆電気光学伝達関数特性がデコーダ側において適用されるとき、光電子伝達関数特性の第1のセット、およびシグナリングされたスケール、オフセットならびに他のダイナミックレンジ調整パラメータが、デコーダ30によって適用されることを示す1つまたは複数のSEIメッセージをシグナリングし得る。ビデオデコーダ30は、そのようなSEIメッセージを受信し、情報をパースおよび/または復号し、ビデオポストプロセッサ31にその情報を受け渡し得る。
【0231】
[0177] 他の例では、エンコーダ20は、電気光学/光電子特性の異なるセットを示す2つ以上のSEIメッセージが存在し、現在ピクチャ適用可能であるとき、1つのSEIメッセージのみが適用されるような状況をシグナリングし得る。エンコーダは、異なるタイプのデコーダまたは異なる能力をもつデコーダを満たすために、電気光学/光電子特性の異なるセットをシグナリングし得る。たとえば、デコーダ側におけるいくつかのディスプレイは、適切な領域中のコード化コンポーネント値を線形光にコンバートするために、PT EOTFを適用し得るが、他のディスプレイ、たとえばレガシーディスプレイは、線形光にコンバートするためにガンマEOTFを適用し得る。エンコーダが送る特定の特性をもつ各SEIは、いくつかのタイプのディスプレイに適するかまたはそれに有益であり得、他のタイプのディスプレイに適さないかまたはそれに有益でないことがあり、たとえば、PQ EOTF特性をもつSEIメッセージが、コーディングされたビデオを線形光にコンバートするためにPQ EOTFを適用するディスプレイに好適であり得る。デコーダ30は、どのSEIメッセージが適用されるべきであるかを決定し、適用規格に基づいて、エンドユーザデバイスに基づいて、受信される信号に基づいて、または外部手段を通して受信された別の指示に基づいてそのような選定を行う。たとえば、デコーダ30は、現在ピクチャに適用される第1のSEIメッセージ中の第1のシンタックス要素が、SEIメッセージがPQ OETFの逆を用いて適用されるべきであることを示し、現在ピクチャに適用される第2のSEIメッセージ中の第1のシンタックス要素が、SEIメッセージが(BBC、またはPHなどの)別の伝達関数を用いて適用されるべきであることを示すと決定し得、デコーダ30またはエンドユーザデバイスは、デバイスがPQ EOTFを使用するので、第1のSEIメッセージ中のパラメータを適用することを選定し得る。いくつかの例では、デコーダが準拠する適用規格が、特性の特定のセットをもつSEIメッセージが使用されるべきであることを指定し得る。
【0232】
[0178] 他の例では、エンコーダ20は、伝達特性の複数のセットに対応するパラメータを搬送するSEIメッセージをシグナリングし得る。他の例では、エンコーダ20は、その目的で異なるSEIメッセージをシグナリングし得る。ビデオデコーダ30は、そのようなSEIメッセージを受信し、情報をパースおよび/または復号し、ビデオポストプロセッサ31にその情報を受け渡し得る
[0179] いくつかの例では、エンコーダ20は、SEIメッセージの適用可能性を示すシンタックス要素を含む1つまたは複数のSEIメッセージをシグナリングし得る。SEIメッセージの適用可能性は、限定はしないが、(1)スケールおよびオフセットが適用されるコンポーネント、(2)コンポーネントスケーリングが適用される位置、ならびに/または(3)追加のスケーリングパラメータがシグナリングされるかどうかを含み得る。
【0233】
[0180] 説明されたように、エンコーダ20は、スケールおよびオフセットが適用されるコンポーネントを示すシンタックス要素を含む1つまたは複数のSEIメッセージをシグナリングし得る。以下は、そのような適用例のいくつかの例を記載する。たとえば、シンタックス要素の1つの値は、第1のコンポーネントインデックスのためのシグナリングされたパラメータが、RGBコンポーネントに適用されるべきであることを示し得る。別の値は、第1のコンポーネントインデックスのためのシグナリングされたパラメータが、ルーマコンポーネントに適用されるべきであり、第2のインデックスおよび第3のインデックスのためのシグナリングされたパラメータが、CbおよびCrコンポーネントに適用されるべきであることを示し得る。別の値は、第1のコンポーネントインデックスのためのシグナリングされたパラメータが、R、GおよびBコンポーネントに適用されるべきであり、第2のインデックスおよび第3のインデックスのためのシグナリングされたパラメータが、CbおよびCrコンポーネントに適用されるべきであることを示し得る。別の値は、最初の3つのインデックスのためのシグナリングされたパラメータが、ルーマ、CbおよびCrコンポーネントに適用され、残りのインデックスに対応するシグナリングされたパラメータが、色補正のために適用されることを示し得る。ビデオデコーダ30は、そのようなSEIメッセージを受信し、情報をパースおよび/または復号し、ビデオポストプロセッサ31にその情報を受け渡し得る。
【0234】
[0181] また説明されたように、エンコーダ20は、コンポーネントスケーリングが適用される位置を示すシンタックス要素を含む1つまたは複数のSEIメッセージをシグナリングし得る。ビデオの復号の後に、およびビデオポストプロセッサ31中で、デコーダ側でいくつかのプロセスが行われる。SEIに関連するプロセスが適用されるべきである位置を示すシンタックス要素のシグナリング、言い換えれば、SEI中の情報を使用することに関連するプロセスの先行するまたは後続の動作のサブセットの指示は、ビデオを処理するために、ビデオデコーダ30またはビデオポストプロセッサ31にとって役立つことになる。たとえば、そのようなシンタックス要素は、たとえば、アップサンプリングの前または後にYCbCrコンポーネントにコンポーネントスケーリングが適用される位置を示し得る。別の例では、シンタックス要素は、コンポーネントスケーリングがデコーダ側でない量子化の前に適用されることを示し得る。ビデオデコーダ30は、そのようなSEIメッセージを受信し、情報をパースおよび/または復号し、ビデオポストプロセッサ31にその情報を受け渡し得る。
【0235】
[0182] また説明されたように、エンコーダ20は、たとえば色補正のために、スケーリングおよびパラメータの追加のセットがシグナリングされるかどうかを示すシンタックス要素を含む1つまたは複数のSEIメッセージをシグナリングし得る。パラメータの追加のセットは、特定の色域を適合させるために、色コンポーネントをマッピングするための色補正のために、または、VUI中のtransfer_characteristicsシンタックス要素によって示された伝達関数とは異なる伝達関数が適用されるとき、コンポーネント値の補正のために使用され得る。
【0236】
[0183] 他の例では、エンコーダ20は、上記の態様を示すために、異なるシンタックス要素、たとえば、SEIがどの(1つまたは複数の)コンポーネントに適用されるかを示す1つのシンタックス要素、SEIがSDR互換コンテンツのHDR互換に適用されるかどうかを示す1つのシンタックス要素、およびコンポーネントスケーリングSEIメッセージが適用されるべきである(1つまたは複数の)位置を示す1つのシンタックス要素をシグナリングし得る。
【0237】
[0184] コンポーネントスケーリングSEIメッセージパラメータが適用されるコンポーネントの数が2つ以上であるとき、エンコーダ20は、スケールおよびオフセットパラメータの適用がコンポーネントのインデックスに基づいて連続的に行われ得ることを示すシンタックス要素を含む1つまたは複数のSEIメッセージをシグナリングし得る。たとえば、第1のコンポーネントのスケールおよびオフセットパラメータに基づくマッピングが適用され得、次いで、たとえば、第2のコンポーネントのためにシグナリングされたスケールおよびオフセットを使用する第2のコンポーネントのマッピングが、第1のコンポーネントの値に依存し得る。いくつかの例では、これは、たとえば、第1のコンポーネントのマッピングされた値が使用されるべきであることを指定するシンタックス要素によってよって示される。ビデオデコーダ30は、そのようなSEIメッセージを受信し、情報をパースおよび/または復号し、ビデオポストプロセッサ31にその情報を受け渡し得る。
【0238】
[0185] 別の例では、ビデオエンコーダ20は、SEI後処理が適用されない場合でも、HDR10受信機が閲覧可能なHDRビデオを復号し、見せることができるように、1つまたは複数のSEIメッセージ中で、または、ビットストリーム中でシグナリングされる値を制約し得る。(1つまたは複数の)SEIメッセージは、そうあること(たとえば、ビットストリームがHDR10後方互換性があるビットストリームであること)を示すためのシンタックス要素を含み得る。
【0239】
[0186] このセクションは、本開示の1つまたは複数の態様によって開示される技法を使用するいくつかの例を含む。
例1
[0187] この例1では、コンポーネントスケーリング関数がルックアップテーブルとしてシグナリングされ、ルックアップテーブルを定義する点をシグナリングするために使用されるビット数もシグナリングされる。シグナリングされる明示的点を有しないサンプル値のために、値は隣接ピボット点に基づいて補間される。
【0241】
コンポーネントスケーリングSEIメッセージのセマンティクス
コンポーネントスケーリングSEIメッセージは、復号ピクチャの様々なコンポーネントに対してスケーリング動作を実行するための情報を与える。スケーリング動作が実行されるべきである色空間およびコンポーネントは、SEIメッセージ中でシグナリングされるシンタックス要素の値によって決定される。
comp_scale_idは、コンポーネントスケーリングSEIメッセージの目的を識別するために使用され得る識別番号を含んでいる。comp_scale_idの値は、両端値を含む、0〜2
32−2のレンジ中にあるものとする。comp_scale_idの値は、コンポーネントスケーリングSEIメッセージ色空間を指定する、または、コンポーネントスケーリングSEIメッセージが線形領域中で適用されるのか、非線形領域中で適用されるのかを指定するために使用され得る。
両端値を含む、0〜255の、および、両端値を含む、512〜2
31−1のcomp_scale_idの値は、適用によって決定されたように使用され得る。両端値を含む、256〜511の、および、両端値を含む、2
31〜2
32−2のcomp_scale_idの値は、ITU−T|ISO/IECによる将来の使用のために予約される。デコーダは、両端値を含む、256〜511のレンジ中の、または、両端値を含む、2
31〜2
32−2のレンジ中のcomp_scale_idの値を含んでいるすべてのコンポーネントスケール情報SEIメッセージを無視するものとし、ビットストリームは、そのような値を含んでいないものとする。
注1−comp_scale_idは、異なるディスプレイシナリオに好適であるコンポーネントスケーリングプロセスをサポートするために使用され得る。たとえば、comp_scale_idの異なる値は、スケーリングが適用される異なるディスプレイビット深度または異なる色空間に対応し得る。
代替的に、comp_scale_idはまた、スケーリングがいくつかのタイプのディスプレイまたはデコーダ、たとえばHDR、SDRへの互換性のために実行されるかどうかを識別するために使用され得る。
1に等しいcomp_scale_cancel_flagは、コンポーネントスケーリング情報SEIメッセージが、現在レイヤに適用される出力順序で前のコンポーネント情報SEIメッセージの持続性を消去することを示す。0に等しいcomp_scale_cancel_flagは、コンポーネントスケーリング情報が続くことを示す。
comp_scale_persistence_flagは、現在レイヤのためのコンポーネントスケーリング情報SEIメッセージの持続性を指定する。
0に等しいcomp_scale_persistence_flagは、コンポーネントスケーリング情報が現在復号ピクチャのみに適用されることを指定する。
picAを現在ピクチャとする。1に等しいcomp_scale_persistence_flagは、以下の条件のいずれかが真になるまで、コンポーネントスケーリング情報が出力順序で現在レイヤのために持続することを指定する。
− 現在レイヤの新しいCLVSが開始する。
− ビットストリームが終了する。
− comp_scale_idの同じ値をもち、現在レイヤに適用可能な、コンポーネントスケーリング情報SEIメッセージを含んでいるアクセスユニット中の現在レイヤ中のピクチャpicBが出力され、それについて、PicOrderCnt(picB)がPicOrderCnt(picA)よりも大きく、ここで、PicOrderCnt(picB)およびPicOrderCnt(picA)が、それぞれ、picBのためのピクチャ順序カウントのための復号プロセスの呼出しの直後のpicBおよびpicAのPicOrderCntVal値である。
comp_scale_num_comps_minus1+1は、コンポーネントスケーリング関数が指定されるコンポーネントの数を指定する。comp_scale_num_comps_minus1は、両端値を含む、0〜2のレンジ中にあるものとする。
comp_scale_num_comps_minus1が2よりも小さく、c番目のコンポーネントのコンポーネントスケーリングパラメータがシグナリングされないとき、(c−1)番目のコンポーネントのコンポーネントスケーリングパラメータに等しいと推論される。
代替的に、comp_scale_num_comps_minus1が2よりも小さく、c番目のコンポーネントのコンポーネントスケーリングパラメータがシグナリングされないとき、c番目のコンポーネントのコンポーネントスケーリングパラメータは、効果的にそのコンポーネントのスケーリングがないように、デフォルト値に等しいと推論される。
代替的に、コンポーネントスケーリングパラメータの推論は、SEIメッセージが適用される色空間に基づいて指定され得る。
− 色空間がYCbCrであり、comp_scale_num_comps_minus1が1に等しいとき、コンポーネントスケーリングパラメータはCbコンポーネントとCrコンポーネントの両方に適用される。
− 色空間がYCbCrであり、comp_scale_num_comps_minus1が2に等しいとき、第1および第2のコンポーネントスケーリングパラメータがCbおよびCrコンポーネントに適用される。
一代替形態では、異なる推論は、comp_scale_idの値に基づいてまたは明示的シンタックス要素に基づいて指定される。
代替的に、制約が以下のように加えられる。
comp_scale_num_comps_minus1の値が、CLVS内のcomp_scale_idの所与の値をもつすべてのコンポーネントスケーリングSEIメッセージについて同じであるとすることが、ビットストリームコンフォーマンスのための制約である。
comp_scale_input_bit_depth_minus8+8は、シンタックス要素comp_scale_input_point[c][i]をシグナリングするために使用されるビット数を指定する。comp_scale_input_bit_depth_minus8の値は、両端値を含む、0〜8のレンジ中にあるものとする。
コンポーネントスケーリングSEIメッセージがレンジ0.0〜1.0中の正規化された浮動小数点表現中にある入力に適用されるとき、SEIメッセージは、入力ビデオを、colour_remap_input_bit_depth_minus8+8に等しいビット深度をもつコンバートされたビデオ表現にコンバートするために実行される量子化動作の仮想結果を指す。
コンポーネントスケーリングSEIメッセージが、comp_scale_input_bit_depth_minus8+8に等しくないビット深度を有する入力に適用されるとき、SEIメッセージは、入力ビデオ表現を、colour_remap_input_bit_depth_minus8+8に等しいビット深度をもつコンバートされたビデオ表現にコンバートするために実行されるトランスコーディング動作の仮想結果を指す。
comp_scale_output_bit_depth_minus8+8は、シンタックス要素comp_scale_output_point[c][i]をシグナリングするために使用されるビット数を指定する。comp_scale_output_bit_depth_minus8の値は、両端値を含む、0〜8のレンジ中にあるものとする。
コンポーネントスケーリングSEIメッセージが浮動小数点表現中にある入力に適用されるとき、SEIメッセージは、コンポーネントスケーリングSEIメッセージの処理の後に取得されるcolour_remap_output_bit_depth_minus8+8に等しいビット深度をもつビデオ表現をレンジ0.0〜1.0中の浮動小数点表現にコンバートするために実行される逆量子化動作の仮想結果を指す。
代替的に、comp_scale_input_point[c][i]およびcomp_scale_output_point[c][i]をシグナリングするために使用されるビット数は、それぞれ、comp_scale_input_bit_depthおよびcomp_scale_output_bit_depthとして、または言い換えると、8を減算することなしにシグナリングされる。
comp_scale_num_points_minus1[c]+1は、コンポーネントスケーリング関数を定義するために使用されるピボット点の数を指定する。comp_scale_num_points_minus1[c]は、両端値を含む、0〜(1<<Min(comp_scale_input_bit_depth_minus8+8,comp_scale_output_bit_depth_minus8+8))−1のレンジ中にあるものとする。
comp_scale_input_point[c][i]は、入力ピクチャのc番目のコンポーネントのi番目のピボット点を指定する。comp_scale_input_point[c][i]の値は、両端値を含む、0〜(1<<comp_scale_input_bit_depth_minus8[c]+8)−1のレンジ中にあるものとする。comp_scale_input_point[c][i]の値は、両端値を含む、1〜comp_scale_points_minus1[c]のレンジ中のiの場合、comp_scale_input_point[c][i−1] の値よりも大きいかまたはそれに等しくなるものとする。
comp_scale_output_point[c][i]は、出力ピクチャのc番目のコンポーネントのi番目のピボット点を指定する。comp_scale_output_point[c][i]の値は、両端値を含む、1〜(1<<comp_scale_output_bit_depth_minus8[c]+8)−1のレンジ中にあるものとする。comp_scale_output_point[c][i]の値は、両端値を含む、1〜comp_scale_points_minus1[c]のレンジ中のiの場合、comp_scale_output_point[c][i−1] の値よりも大きいかまたはそれに等しくなるものとする。
入力および出力の両方のためのサンプル値が、それぞれ、両端値を含む、0〜(1<<comp_scale_input_bit_depth_minus8[c]+8)−1、および、両端値を含む、0〜(1<<comp_scale_output_bit_depth_minus8[c]+8)−1のレンジ中にある、入力信号表現xおよび出力信号表現yをマッピングするプロセスは、以下のように指定される。
【0243】
[0188] 一代替形態では、入力ピボット点comp_scale_input_point[c][i]および出力ピボット点comp_scale_output_point[c][i]は、隣接する値の差分、たとえば、delta_comp_scale_input_point[][]およびdelta_comp_scale_output_point[][]としてコーディングされ、シンタックス要素は、指数ゴロムコードを使用してコーディングされる。
別の代替形態では、入力および出力表現値をマッピングするプロセスは、限定はしないが、スプラインおよび3次補間を含む他の補間方法によって指定される。
【0244】
例2
[0189] この例2は、例1で説明されたSEIシンタックス構造と比較して異なるシンタックス構造を示す。このシンタックス構造では、マッピング関数は、ピボット点の代わりにスケールおよびオフセットに関して説明される。
【0246】
comp_scale_bit_depth_scale_valは、シンタックス要素comp_scale_val[c][i]をシグナリングするために使用されるビット数を指定する。comp_scale_bit_depth_scale_valの値は、両端値を含む、0〜24のレンジ中にあるものとする。
comp_scale_log2_denom_scale_valは、スケール値の底2の分母を指定する。comp_scale_log2_denom_scale_valの値は、両端値を含む、0〜16のレンジ中にあるものとする。
comp_scale_global_offset_input_val[c]+1は、コンポーネントスケーリング関数を定義するために使用される、それを下回るすべての入力表現値がCompScaleOffsetOutputVal[c]〔0〕にクリッピングされる入力サンプル値を指定する。comp_scale_num_points_minus1[c]は、両端値を含む、0〜(1<<comp_scale_input_bit_depth)−1のレンジ中にあるものとする。comp_scale_global_offset_input_val[c]を表すために使用されるビット数は、comp_scale_input_bit_depthである。
comp_scale_global_offset_output_val[c]+1は、comp_scale_global_offset_input_val[c]を下回るすべての入力表現値がクリッピングされるべきである出力サンプル値を指定する。comp_scale_num_points_minus1[c]は、両端値を含む、0〜(1<<comp_scale_output_bit_depth)−1のレンジ中にあるものとする。comp_scale_global_offset_output_val[c]を表すために使用されるビット数は、comp_scale_output_bit_depthである。
comp_scale_num_points_minus1[c]+1は、コンポーネントスケーリング関数を定義するために使用されるピボット点の数を指定する。comp_scale_num_points_minus1[c]は、両端値を含む、0〜(1<<Min(comp_scale_input_bit_depth,comp_scale_output_bit_depth)−1のレンジ中にあるものとする。
両方のためのサンプル値、入力表現が、両端値を含む、0〜(1<<comp_scale_input_bit_depth)−1のレンジ中にあり、出力表現が、両端値を含む、0〜(1<<comp_scale_output_bit_depth)−1のレンジ中にある入力信号表現xおよび出力信号表現yをマッピングするプロセスは、以下のように指定される。
【0248】
comp_scale_offset_val[c][i]は、c番目のコンポーネントのi番目のサンプル値領域のオフセット値を指定する。comp_scale_offset_val[c]を表すために使用されるビット数は、comp_scale_input_bit_depthに等しい。
comp_scale_val[c][i]は、c番目のコンポーネントのi番目のサンプル値領域点のスケール値を指定する。comp_scale_val[c]を表すために使用されるビット数は、comp_scale_bit_depth_scale_valに等しい。
両端値を含む、0〜comp_scale_num_points_minus1[c]のレンジ中のiの場合の変数CompScaleOffsetOutputVal[c][i]およびCompScaleOffsetInputVal[c][i]は、以下のように導出される。
【0250】
一代替形態では、comp_scale_offset_val[c][i]が、以下のように、0〜comp_scale_num_points_minus1[c]のレンジ中のiの場合の、CompScaleOffsetOutputVal[][i]を直接計算するために、およびCompScaleOffsetInputVal[][i]を間接的に計算するために使用される。
【0252】
一代替形態では、両端値を含む、0〜comp_scale_num_points_minus1[c]のレンジ中のiの場合のcomp_scale_offset_val[c][i]はシグナリングされず、comp_scale_offset_val[c][i]の値は、スケールが指定される、comp_scale_num_points_minus1[c]の等間隔に離間した間隔に基づいて導出される。両端値を含む、0〜comp_scale_num_points_minus1[c]−1のレンジ中のiの場合のcomp_scale_offset_val[c][i]の値は、以下のように導出される。
【0254】
別の代替形態では、0〜comp_scale_num_points_minus1[c]のレンジ中のiの場合のcomp_scale_offset_val[c][i]は、以下のように計算される。
【0256】
一代替形態では、comp_scale_num_points_minus1[c]をシグナリングする代わりに、ピボット点の数が、log2_comp_scale_num_points[c]を使用してシグナリングされ、ここで、(1<<log2_comp_scale_num_points[c])は、c番目のコンポーネントのためのピボット点の数を指定する。
代替的に、comp_scale_offset_val[c][]およびcomp_scale_val[c][]の各々は、浮動小数点数として、または指数および仮数をもつ2つのシンタックス要素としてシグナリングされる。
別の代替形態では、comp_scale_val[c][i]のシグナリングは、comp_scale_output_point[c][i]によって置き換えられる。
シンタックス要素の残りのセマンティクスは、例1で説明されたものと同様である。
例3
[0190] 例3で説明されるこの方法は、コンポーネントスケーリング関数が独立して更新されることを可能にされることを除いて、例2で説明された代替形態の方法と同様である。
【0258】
コンポーネントスケーリングSEIメッセージのセマンティクス
以下のシンタックス要素を除いて、セマンティクスは例2と同様である。
comp_scale_num_scale_regions[c]は、シンタックス要素comp_scale_val[c][i]がcのコンポーネントのためにシグナリングされる領域の数を指定する。comp_scale_num_scale_regions[c]は、両端値を含む、0〜(1<<comp_scale_input_bit_depth)−1のレンジ中にあるものとする。
0に等しいcomp_scale_persist_component_flag[c]は、c番目のコンポーネントのためのコンポーネントスケーリングパラメータが、SEIメッセージ中で明示的にシグナリングされることを指定する。1に等しいcomp_scale_persist_component_flag[c]は、c番目のコンポーネントのためのコンポーネントスケーリングパラメータが、SEIメッセージ中で明示的にシグナリングされず、それが、出力順序で、前のピクチャに適用されるコンポーネントスケーリングSEIメッセージのc番目のコンポーネントのコンポーネントスケーリングパラメータから持続することを指定する。
コンポーネントスケーリングSEIメッセージがIRAPアクセスユニット中に存在するとき、comp_scale_persist_component_flag[c]の値は、存在するとき、0に等しいものとすることが、ビットストリームコンフォーマンスの要件である。
代替的に、以下の条件が加えられる。
コンポーネントスケーリングSEIメッセージが、IRAPアクセスユニットでないアクセスユニット中に存在し、comp_scale_persist_component_flag[c]が1に等しいとき、両端値を含む、出力順序で現在ピクチャに先行し、復号順序で前のIRAPピクチャに出力順序で続く、少なくとも1つのピクチャがあり、その結果、その1つのピクチャが、1に等しいcomp_scale_persistence_flagをもつコンポーネントスケーリングSEIメッセージに関連することが、ビットストリームコンフォーマンスの要件である。
comp_scale_persistence_flagは、現在レイヤのためのコンポーネントスケーリング情報SEIメッセージの持続性を指定する。
0に等しいcomp_scale_persistence_flagは、コンポーネントスケーリング情報が現在復号ピクチャのみに適用されることを指定する。
picAを現在ピクチャとする1に等しいcomp_scale_persistence_flagは、以下の条件のいずれかが真になるまで、c番目のコンポーネントのコンポーネントスケーリング情報が出力順序で現在レイヤのために持続することを指定する。
− 現在レイヤの新しいCLVSが開始する。
− ビットストリームが終了する。
− comp_scale_idの同じ値および0に等しいcomp_scale_persist_component_flag[c]をもち、現在レイヤに適用可能な、コンポーネントスケーリング情報SEIメッセージを含んでいるアクセスユニット中の現在レイヤ中のピクチャpicBが出力され、それについて、PicOrderCnt(picB)がPicOrderCnt(picA)よりも大きく、ここで、PicOrderCnt(picB)およびPicOrderCnt(picA)が、それぞれ、picBのためのピクチャ順序カウントのための復号プロセスの呼出しの直後のpicBおよびpicAのPicOrderCntVal値である。
例4
[0191] この例4では、スケール領域をシグナリングするための異なる方法が開示される。
【0260】
コンポーネントスケーリングSEIメッセージセマンティクスの変更
シンタックス要素のセマンティクスは、以下を除いて、前の例で説明されたものと同様である。
comp_scale_offset_begin_val[c][i]は、スケール値comp_scale_val[c][i]が適用可能であるサンプル値レンジの開始を指定する。comp_scale_offset_begin_val[c]を表すために使用されるビット数は、comp_scale_input_bit_depthに等しい。
comp_scale_offset_end_val[c][i]は、スケール値comp_scale_val[c][i]が適用可能である例示的な値レンジの終了を指定する。comp_scale_offset_end_val[c]を表すために使用されるビット数は、comp_scale_input_bit_depthに等しい。
comp_scale_offset_begin_valおよびcomp_scale_offset_end_valによって明示的に指定されない領域のために、それらの領域のためのcomp_scale_value[c][i]は、0に等しいと推論される。
【0261】
[0192] 代替的に、comp_scale_offset_end_val[c][i]はシグナリングされず、代わりに、comp_scale_offset_end_val[c][i]とcomp_scale_offset_begin_val[c][i]との間の差分がシグナリングされ、デコーダ側において導出されたcomp_scale_offset_end_val[c][i]の値。
【0262】
[0193] 別の代替形態では、出力サンプルレンジがそれにスプリットされる領域の総数が指定され、スケール領域がそれのために明示的にシグナリングされる領域の数がシグナリングされる。
【0264】
comp_scale_tot_scale_regions[c]は、サンプル値がそれにスプリットされる等長サンプル値レンジの総数を指定する。comp_scale_tot_scale_regions[c]を表すために使用されるビット数は、comp_scale_input_bit_depthに等しい。
一代替形態では、comp_scale_tot_scale_regions[c]サンプル値レンジは、長さが正確に等しくないことがあるが、領域長さの整数正確さを説明することに極めてほぼ等しい。
comp_scale_region_idx[c][i]は、スケール値comp_scale_val[c][i]が適用されるサンプル値レンジのインデックスを指定する。シンタックス要素comp_scale_region_idx[c]の長さは、Ceil(Log2(comp_scale_tot_scale_regions[c]))ビットである。
代替形態
代替的に、クロマ中間の周りの領域(10ビットデータの場合511)は、より小さいサイズ、p.e.他の領域の半分のサイズを有する。
例5
【0266】
コンポーネントスケールSEIメッセージのセマンティクス
コンポーネントスケーリングSEIメッセージは、復号ピクチャの様々なコンポーネントに対してスケーリング動作を実行するための情報を与える。スケーリング動作が実行されるべきである色空間およびコンポーネントは、SEIメッセージ中でシグナリングされるシンタックス要素の値によって決定される。
comp_scale_idは、コンポーネントスケーリングSEIメッセージの目的を識別するために使用され得る識別番号を含んでいる。comp_scale_idの値は、両端値を含む、0〜2
32−2のレンジ中にあるものとする。comp_scale_idの値は、コンポーネントスケーリングSEIメッセージ色空間を指定する、または、コンポーネントスケーリングSEIメッセージが線形領域中で適用されるのか、非線形領域中で適用されるのかを指定するために使用され得る。
いくつかの例では、comp_scale_idは、HDR再構成プロセスの構成を指定することができる。いくつかの例では、comp_scale_idの特定の値は、3つのコンポーネントのためのスケーリングパラメータのシグナリングに関連し得る。R’,G’,B’色空間のサンプルに適用されるべき第1のコンポーネントのスケーリング、後続の2つのコンポーネントのパラメータは、CrおよびCbのスケーリングのために適用される。
また別のcomp_scale_id値の場合、hdr再構成プロセスは、3つのコンポーネントのためのパラメータを利用することができ、スケーリングは、ルーマ、CrおよびCb色コンポーネントのサンプルに適用される。
また別のcomp_scale_id値では、hdr再構成プロセスは、4つのコンポーネントのためのシグナリングを利用することができ、ルーマ、CrおよびCbスケーリングに適用されるべき4つのコンポーネントのうちの3つ、ならびに色補正のパラメータをもたらすための第4のコンポーネント。
いくつかの例では、comp_scale_id値のいくつかのレンジは、SDR後方互換がある構成において行われるHDR再構成に関連し得るが、comp_scale_id値の別のレンジは、後方互換性がない構成に行われるHDR再構成に関連し得る。
両端値を含む、0〜255の、および、両端値を含む、512〜2
31−1のcomp_scale_idの値は、適用によって決定されたように使用され得る。両端値を含む、256〜511の、および、両端値を含む、2
31〜2
32−2のcomp_scale_idの値は、ITU−T|ISO/IECによる将来の使用のために予約される。デコーダは、両端値を含む、256〜511のレンジ中の、または、両端値を含む、2
31〜2
32−2のレンジ中のcomp_scale_idの値を含んでいるすべてのコンポーネントスケール情報SEIメッセージを無視するものとし、ビットストリームは、そのような値を含んでいないものとする。
注1−comp_scale_idは、異なるディスプレイシナリオに好適であるコンポーネントスケーリングプロセスをサポートするために使用され得る。たとえば、comp_scale_idの異なる値は、スケーリングが適用される異なるディスプレイビット深度または異なる色空間に対応し得る。
代替的に、comp_scale_idはまた、スケーリングがいくつかのタイプのディスプレイまたはデコーダ、たとえばHDR、SDRへの互換性のために実行されるかどうかを識別するために使用され得る。
1に等しいcomp_scale_cancel_flagは、コンポーネントスケーリング情報SEIメッセージが、現在レイヤに適用される出力順序で前のコンポーネント情報SEIメッセージの持続性を消去することを示す。0に等しいcomp_scale_cancel_flagは、コンポーネントスケーリング情報が続くことを示す。
comp_scale_persistence_flagは、現在レイヤのためのコンポーネントスケーリング情報SEIメッセージの持続性を指定する。
0に等しいcomp_scale_persistence_flagは、コンポーネントスケーリング情報が現在復号ピクチャのみに適用されることを指定する。
picAを現在ピクチャとする。1に等しいcomp_scale_persistence_flagは、以下の条件のいずれかが真になるまで、コンポーネントスケーリング情報が出力順序で現在レイヤのために持続することを指定する。
− 現在レイヤの新しいCLVSが開始する。
− ビットストリームが終了する。
− comp_scale_idの同じ値をもち、現在レイヤに適用可能な、コンポーネントスケーリング情報SEIメッセージを含んでいるアクセスユニット中の現在レイヤ中のピクチャpicBが出力され、それについて、PicOrderCnt(picB)がPicOrderCnt(picA)よりも大きく、ここで、PicOrderCnt(picB)およびPicOrderCnt(picA)が、それぞれ、picBのためのピクチャ順序カウントのための復号プロセスの呼出しの直後のpicBおよびpicAのPicOrderCntVal値である。
comp_scale_scale_bit_depthは、シンタックス要素comp_scale_scale_val[c][i]をシグナリングするために使用されるビット数を指定する。comp_scale_scale_bit_depthの値は、両端値を含む、0〜15のレンジ中にあるものとする。
comp_scale_offset_bit_depthは、シンタックス要素comp_scale_global_offset_val[c]およびcomp_scale_offset_val[c][i]をシグナリングするために使用されるビット数を指定する。comp_scale_offset_bit_depthの値は、両端値を含む、0〜15のレンジ中にあるものとする。
comp_scale_scale_frac_bit_depthは、c番目のコンポーネントのi番目のパーティションのスケールパラメータの小数部分を示すために使用されるLSBの数を指定する。comp_scale_scale_frac_bit_depthの値は、両端値を含む、0〜15のレンジ中にあるものとする。comp_scale_scale_frac_bit_depthの値は、comp_scale_scale_bit_depthの値よりも小さいかまたはそれに等しいものとする。
comp_scale_offset_frac_bit_depthは、c番目のコンポーネントのi番目のパーティションのオフセットパラメータおよびc番目のコンポーネントのグローバルオフセットの小数部分を示すために使用されるLSBの数を指定する。comp_scale_offset_frac_bit_depthの値は、両端値を含む、0〜15のレンジ中にあるものとする。comp_scale_offset_frac_bit_depthの値は、comp_scale_offset_bit_depthの値よりも小さいかまたはそれに等しいものとする。
comp_scale_num_comps_minus1+1は、コンポーネントスケーリング関数が指定されるコンポーネントの数を指定する。comp_scale_num_comps_minus1は、両端値を含む、0〜2のレンジ中にあるものとする。
comp_scale_num_ranges[c]は、出力サンプルレンジがそれに区分されるレンジの数を指定する。comp_scale_num_ranges[c]の値は、両端値を含む、0〜63のレンジ中にあるものとする。。
1に等しいcomp_scale_equal_ranges_flag[c]は、その出力サンプルレンジが、comp_scale_num_ranges[c]のほぼ等しいパーティションに区分されることを示し、パーティション幅は明示的にシグナリングされない。0に等しいcomp_scale_equal_ranges_flag[c]は、出力サンプルレンジが、それのすべてが同じサイズのものであるとは限らないcomp_scale_num_ranges[c]パーティションに区分され得ることを示し、パーティション幅は明示的にシグナリングされる。
comp_scale_global_offset_val[c]は、c番目のコンポーネントのための有効な入力データレンジの最も小さい値をマッピングするために使用されるオフセット値を導出するために使用される。comp_scale_global_offset_val[c]の長さは、comp_scale_offset_bit_depthビットである。
comp_scale_scale_val[c][i]は、c番目のコンポーネントのi番目のパーティションのその幅を導出するために使用されるオフセット値を導出するために使用される。comp_scale_global_offset_val[c]の長さは、comp_scale_offset_bit_depthビットである。
変数CompScaleScaleVal[c][i]は以下のように導出される。
【0268】
comp_scale_offset_val[c][i]は、c番目のコンポーネントのi番目のパーティションのその幅を導出するために使用されるオフセット値を導出するために使用される。comp_scale_global_offset_val[c]の長さは、comp_scale_offset_bit_depthビットである。comp_scale_offset_val[c][i]がシグナリングされるとき、CompScaleOffsetVal[c][i]の値は以下のように導出される。
【0270】
代替的に、変数CompScaleScaleVal[c][i]およびCompScaleOffsetVal[c][i]は、以下のように導出される。
【0272】
comp_scale_equal_ranges_flag[c]が1に等しいとき、comp_scale_offset_val[c][i]はシグナリングされず、CompScaleOffsetVal[c][i]の値は以下のように導出される。
【0274】
0〜comp_scale_num_ranges[c]のレンジ中のiの場合の変数CompScaleOutputRanges[c][i]およびCompScaleOutputRanges[c][i]は、以下のように導出される。
【0276】
一代替形態では、CompScaleOutputRanges[][]およびCompScaleOutputRanges[][]の値は、以下のように導出される。
【0278】
両方のためのサンプル値、入力表現が、0〜1のレンジ中に正規化され、出力表現が、および0〜1のレンジ中にある、(整数点ならびに浮動小数点の両方をカバーするために使用され得る)入力信号表現xおよび出力信号表現yをマッピングするプロセスは、以下のように指定される。
【0280】
一代替形態では、CompScaleOutputRanges[c]〔0〕の値は、許容サンプル値レンジに基づいて設定される。代替的に、入力値valInを出力値valOutにマッピングするプロセスは、以下のように定義される。
【0282】
一代替形態では、m_offset2は、comp_scale_global_offset_val[c]÷(1<<comp_scale_offset_frac_bit_depth)に等しく、m_pAtfScale[c][i]は、CompScaleScaleVal[c][i]に等しく、m_pAtfDelta[i]は、c番目のコンポーネントのためのCompScaleOffsetVal[c][i]に等しく、pScaleおよびpOffsetは、m_AtfScaleおよびm_pAtfDeltaから導出されたスケールおよびオフセットパラメータである。逆演算はそれに応じて定義されることになる。
例6
いくつかの例では、たとえば例5における、上記で説明されたシグナリング方法のうちのいくつかは、後続の擬似コードに示されているように利用され得る。
m_atfNumberRangesは、マッピングされたデータのためのダイナミックレンジ区分の数を指定する、所与のcのためのシンタックス要素comp_scale_num_ranges[c]のための項である。
m_pAtfRangeInは、CompScaleInputRangesのための項であり、2つの連結されたパーティション、たとえば、iおよびi+1間の境界を指定する入力サンプル値を含むm_atfNumberRanges+1のアレイサイズである。
m_pAtfRangeOutは、CompScaleOutputRangesのための項であり、2つの連結されたパーティション、たとえばiおよびi+1間の境界を指定する出力サンプル値を含むm_atfNumberRanges+1のアレイサイズである。
m_pAtfScale2は、変数CompScaleScaleVal[c]のための項であり、各パーティションのためのスケール値を含むm_atfNumberRangesのアレイサイズである。
m_pAtfOffset2は、各パーティションのためのオフセット値を含むm_atfNumberRangesのアレイアレイサイズである。
m_offset2は、comp_scale_global_offset_valのための項である。
この例では、区分線形モデルのパラメータは、アルゴリズム1の場合のように決定された形態シンタックス要素であり得る。
アルゴリズム1:
【0284】
決定されると、区分線形モデルは、アルゴリズム2の場合のように出力サンプル値outValueを決定するために、入力サンプル値inValueに適用され得る。
アルゴリズム2:
【0286】
アルゴリズム3の場合のように行われるべき逆プロセス。
アルゴリズム3:
【0288】
[0194] いくつかの例では、2つの連結されたパーティションiおよびi+1間の境界サンプル値(m_pAtfRangeInまたはm_pAtfRangeOutのエントリ)は、アルゴリズム2およびアルゴリズム3に示されているように、iパーティションに属する代わりに、i+1に属するとして、別様に解釈され得る。
【0289】
[0195] いくつかの例では、アルゴリズム3に示されている逆プロセスは、m_pAtfScale2[j]による除算の代わりに、m_pAtfInverseScale2値による乗算を用いて実装され得る。そのような例では、m_pAtfScale2[j]の値は、事前にm_pAtfScale2[j]から決定される。
【0290】
[0196] いくつかの例では、m_pAtfInverseScale2[j]は、1/m_pAtfScale2[j]としてデコーダ側において決定される。
【0291】
[0197] いくつかの例では、m_pAtfInverseScale2[j]は、エンコーダ側において算出され、ビットストリームを通してシグナリングされ得る。そのような例では、アルゴリズム1、2および3において与えられた動作は、それに応じて調整される。
【0292】
[0198] 様々な例
[0199] いくつかの例では、提案されたシグナリング機構は、たとえばビデオコーディングシステムの圧縮効率を改善するために、入力信号のサンプルのための動的レンジ調整を可能にするために利用され得る区分関数をモデル化するために使用され得る。
【0293】
[0200] いくつかの例では、提案されたシグナリング機構は、OETFによって、たとえば、ST.2084のPQ TF、または他のものによって生成されたコードワード(R、G、Bサンプルの非線形表現)に適用され得る区分関数をモデル化するために使用され得る。
【0294】
[0201] いくつかの例では、提案されたシグナリング機構は、YCbCr色表現のサンプルに適用され得る区分関数をモデル化するために使用され得る。
【0295】
[0202] いくつかの例では、提案されたシグナリング機構は、SDR互換性をもつHDR/WCGソリューションに利用され得る区分関数をモデル化するために使用され得る。
【0296】
[0203] いくつかの例では、提案されたシグナリング機構は、浮動小数点表現中のサンプルに適用され得る区分関数をモデル化するために使用され得る。また別の例では、提案されたシグナリング機構および得られた関数は、整数表現、たとえば10ビットにおけるサンプルに適用され得る。
【0297】
[0204] いくつかの例では、提案されたシグナリング機構は、ルックアップテーブルの形態でサンプルに適用され得る区分関数をモデル化するために使用され得る。また別の例では、提案されたシグナリングは、乗算器の形態でサンプルに適用され得る関数をモデル化するために使用され得る。
組合せおよび拡張
[0205] 上記の例では、線形モデルは、各領域(すなわち、スケール+オフセット)のために仮定され、本開示の技法はまた、たとえば、2つの代わりに3つのパラメータを必要とする二次の多項式をもつ、より高次の多項式モデルのために適用可能であり得る。シグナリングおよびシンタックスは、このシナリオのために適切に拡張されることになる。
【0298】
[0206] 上記で説明された態様の組合せおよび本開示の技法の一部が可能である。
【0299】
[0207] ツールボックス組合せ:本開示で説明されるSEIの目標とやや同様の目標をターゲットにすることがあるいくつかのHDR方法がある。HDR方法のうちの2つ以上を適応するが、同時に、フレームごとに適用可能なSEI処理の数を限定するために、単一のSEI中にこれらの方法(のうちの1つまたは複数)を組み合わせることが提案される。提案されたシンタックス要素は、各インスタンスにおいて適用されるための特定の方法を示すことになる。たとえば、2つの可能な方法がSEIにある場合、シンタックス要素は使用されるべき1つを示すフラグであることになる。
例7
[0208] この例では、スケールパラメータのシグナリングは、負スケールが送信され得るように変更され、シグナリングされたスケールパラメータは、様々なコンポーネントの異なるレンジのために適用されるべきスケールの変数を示す。例5に関する変更は以下である。
【0301】
SEIメッセージのセマンティクスの変更
1に等しいcomp_scale_negative_scales_present_flagは、comp_scale_scale_val[c][i]から導出されたスケールパラメータの整数部分が符号付き整数として表されることを指定する。0に等しいcomp_scale_negative_scales_present_flagは、comp_scale_scale_val[c][i]から導出された整数部分スケールパラメータが符号なし整数として表されることを指定する。
【0302】
[0209] 一代替形態では、オフセットパラメータの別のセットは、第2のコンポーネントの値の関数として第1のコンポーネントに対してスケールとともに適用されるオフセットを定義するために使用されるcomp_scale_scale_valとともにシグナリングされる。
【0303】
[0210] 符号付き整数表現は、限定はしないが、2の補数表記法および符号付き絶対値表現(符号のための1ビットおよび整数部分中の残りのビット)を含む。下記の導出は、符号付き絶対値表現のために与えられる。導出は、符号付き表現の他の形態のために同様に定義され得る。
変数CompScaleScaleVal[c][i]は以下のように導出される。
【0305】
comp_scale_negative_scale_present_flagが1に等しいとき、comp_scale_scale_bit_depthの値が、comp_scale_scale_frac_bit_depthよりも大きいかまたはそれに等しいものとすることが、ビットストリームコンフォーマンスの要件である
comp_scale_dependent_component_idは、ビデオの様々なコンポーネントへのスケールおよびオフセットパラメータの適用を指定する。comp_scale_dependent_component_idが0に等しいとき、シンタックス要素comp_scale_global_offset_val[c]、comp_scale_scale_val[c][i]およびcomp_scale_offset_val[c][i]は、c番目のコンポーネントの入力および出力値のマッピングを識別するために使用される。comp_scale_dependent_component_idが0よりも大きいとき、comp_scale_dependent_component_id−1は、シンタックス要素comp_scale_global_offset_val[c]、comp_scale_scale_val[c][i]およびcomp_scale_offset_val[c][i]が、サンプルの(comp_scale_dependent_component_id−1)番目のコンポーネントの値の関数として、サンプルのc番目のコンポーネントに適用されるべきスケールパラメータのマッピングを指定するように、コンポーネントのインデックスを指定する。
セマンティクスの残りは、例5で説明されたものと同様である。
例8
[0211] この例では、ATFパラメータのビット深度はコンポーネントに依存する。各コンポーネントのために、シンタックス要素のビット深度は明示的に信号である。さらに、それらのシンタックス要素のためのデフォルトビット深度がある。ビット深度が明示的にシグナリングされないとき、デフォルト値が割り当てられる。フラグは、デフォルト値が適用されるのか、それらが明示的にシグナリングされるのかを示し得る。
【0306】
[0212] 下記の表はこれらの概念の一例を示す。ATFパラメータのシンタックス要素は、スケールhdr_recon_scale_val[][]およびレンジhdr_recon_range_val[][]である。対応するビット深度(整数および小数部分)を示すシンタックス要素は、後続の要素である。
【0308】
ここで、cはコンポーネントインデックスである。スケールおよびオフセット(レンジ)のためのデフォルトビット深度は、以下のように設定され得る。
【0310】
[0213] また、パラメータの正確さは、ATFパラメータおよび色調整パラメータについて異なり得る。また、デフォルト値は、コンポーネントごとに、および色調整パラメータについて異なり得る。この例では、デフォルト値は同じであると仮定される。
【0313】
例9
[0214] 新しいHDRソリューションの望ましいプロパティは、それが、HDR10のように、以前のHDRソリューションに後方互換性があることである。シンタックス要素は、そうであることを示し得る。これはビットストリームの特性を示し、HDRデコーダは、非ATFバージョンがすでに閲覧可能である場合、いくつかの状況下では、逆ATF処理に対して計算リソースを費やさないことを決定し得る。
【0314】
[0215] 一例では、hdr_recon_idシンタックス要素のいくつかの値は、HDR10後方互換性を示すために、またはどの程度まで後方互換性があるかを示すために予約される。
【0315】
[0216] 別の例では、フラグ(hdr_recon_hdr10_bc)がこの状況を示す。
【0316】
[0217] 一例では、シグナリングされたHDR10後方互換性は、ビットストリームが閲覧可能であることを示す。代替的に、それは、シグナリングされた値のいくつかの特定のプロパティ、たとえば、それらがこのプロパティを保証する値のレンジであることを示し得る。たとえば、制約は、スケールが0.9〜1.1の間であるということであり得る。
【0317】
[0218]
図10は、本開示の技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、ビデオプリプロセッサユニット19によって処理されたターゲット色コンテナ中のビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間冗長性を低減または除去するために時間予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースコーディングモードのいずれかを指し得る。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースコーディングモードのいずれかを指し得る。
【0318】
[0219]
図10に示されているように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。
図10の例では、ビデオエンコーダ20は、モード選択ユニット40と、ビデオデータメモリ41と、復号ピクチャバッファ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。モード選択ユニット40は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、パーティションユニット48とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含む。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するための(
図10に示されていない)デブロッキングフィルタも含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。(ループ中またはループ後の)追加のフィルタもデブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、(ループ内フィルタとして)加算器50の出力をフィルタ処理し得る。
【0319】
[0220] ビデオデータメモリ41は、ビデオエンコーダ20のコンポーネントによって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ41に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。復号ピクチャバッファ64は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ41および復号ピクチャバッファ64は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ41および復号ピクチャバッファ64は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ41は、ビデオエンコーダ20の他のコンポーネントとともにオンチップであるか、またはそれらのコンポーネントに対してオフチップであり得る。
【0320】
[0221] 符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間予測を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対する受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測処理ユニット46は、代替的に、空間予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ20は、たとえば、ビデオデータのブロックごとに適切なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
【0321】
[0222] その上、パーティションユニット48は、前のコーディングパスにおける前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、パーティションユニット48は、初めにフレームまたはスライスをLCUに区分し、レートひずみ分析(たとえば、レートひずみ最適化)に基づいてLCUの各々をサブCUに区分し得る。モード選択ユニット40は、さらに、サブCUへのLCUの区分を示す4分木データ構造を生成し得る。4分木のリーフノードCUは、1つまたは複数のPUと1つまたは複数のTUとを含み得る。
【0322】
[0223] モード選択ユニット40は、たとえば、エラー結果に基づいてコーディングモード、すなわち、イントラまたはインターのうちの1つを選択し得、残差ブロックデータを発生するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器50に与え、参照フレームとして使用するための符号化ブロックを再構成するために、得られたイントラコード化ブロックまたはインターコード化ブロックを加算器62に与える。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報など、シンタックス要素をエントロピー符号化ユニット56に与える。
【0323】
[0224] 動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別個に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを発生するプロセスである。動きベクトルは、たとえば、現在ピクチャ(または他のコード化ユニット)内でコーディングされている現在ブロックに対する参照ピクチャ(または他のコード化ユニット)内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロックにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、復号ピクチャバッファ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対して動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
【0324】
[0225] 動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの各々が、復号ピクチャバッファ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
【0325】
[0226] 動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは発生することを伴い得る。この場合も、動き推定ユニット42および動き補償ユニット44は、いくつかの例では、機能的に統合され得る。現在ビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいてそれを指す予測ブロックの位置を特定し得る。加算器50は、以下で説明されるように、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。概して、動き推定ユニット42はルーマコンポーネントに対して動き推定を実行し、動き補償ユニット44は、クロマコンポーネントとルーマコンポーネントの両方のためにルーマコンポーネントに基づいて計算された動きベクトルを使用する。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を発生し得る。
【0326】
[0227] イントラ予測処理ユニット46は、上記で説明されたように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測処理ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。
【0327】
[0228] たとえば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(またはエラー)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化ブロックのひずみおよびレートから比を計算し得る。
【0328】
[0229] ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に与え得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを送信ビットストリーム中に含み得る。
【0329】
[0230] ビデオエンコーダ20は、コーディングされている元のビデオブロックから、モード選択ユニット40からの予測データを減算することによって残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数のコンポーネントを表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを生成する。変換処理ユニット52は、DCTと概念的に同様である他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換も使用され得る。いずれの場合も、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを生成する。変換は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。
【0330】
[0231] 量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
【0331】
[0232] 量子化の後に、エントロピー符号化ユニット56は量子化された変換係数をエントロピーコーディングする。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピーコーディング技法を実行し得る。コンテキストベースエントロピーコーディングの場合、コンテキストは近隣ブロックに基づき得る。エントロピー符号化ユニット56によるエントロピーコーディングの後に、符号化ビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【0332】
[0233] 逆量子化ユニット58および逆変換処理ユニット60は、たとえば、参照ブロックとして後で使用するために、ピクセル領域中で残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット44は、残差ブロックを復号ピクチャバッファ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構成された残差ブロックに1つまたは複数の補間フィルタを適用し得る。加算器62は、復号ピクチャバッファ64に記憶するための再構成されたビデオブロックを生成するために、動き補償ユニット44によって生成された動き補償予測ブロックに再構成された残差ブロックを加算する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために、動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
【0333】
[0234]
図11は、本開示の技法を実装し得るビデオデコーダ30の一例を示すブロック図である。特に、ビデオデコーダ30は、上記で説明されたように、ビデオポストプロセッサユニット31によって次いで処理され得るターゲット色コンテナにビデオデータを復号し得る。
図11の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、ビデオデータメモリ71と、動き補償ユニット72と、イントラ予測処理ユニット74と、逆量子化ユニット76と、逆変換処理ユニット78と、復号ピクチャバッファ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(
図10)に関して説明された符号化パスに概して相反する復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを発生し得、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて予測データを発生し得る。
【0334】
[0235] ビデオデータメモリ71は、ビデオデコーダ30のコンポーネントによって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ71に記憶されるビデオデータは、たとえば、コンピュータ可読媒体16から、たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードまたはワイヤレスネットワーク通信を介して、あるいは物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ71は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB)を形成し得る。復号ピクチャバッファ82は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ71および復号ピクチャバッファ82は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM)、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ71および復号ピクチャバッファ82は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ71は、ビデオデコーダ30の他のコンポーネントとともにオンチップであるか、またはそれらのコンポーネントに対してオフチップであり得る。
【0335】
[0236] 復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、量子化された係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを発生するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルと他のシンタックス要素とを動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
【0336】
[0237] ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、イントラ予測処理ユニット74は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを発生し得る。ビデオフレームがインターコード化(すなわち、BまたはP)スライスとしてコーディングされるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、復号ピクチャバッファ82に記憶された参照ピクチャに基づいて、デフォルト構成技法を使用して、参照ピクチャリスト、リスト0およびリスト1を構成し得る。動き補償ユニット72は、動きベクトルと他のシンタックス要素とをパースすることによって現在ビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在ビデオブロックのための予測ブロックを生成するために、その予測情報を使用する。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)と、スライスのための参照ピクチャリストのうちの1つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
【0337】
[0238] 動き補償ユニット72はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット72は、参照ブロックのサブ整数ピクセルのための補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用し得る。
【0338】
[0239] 逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された量子化された変換係数を逆量子化(inverse quantize)、すなわち、量子化解除(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオデコーダ30によって計算される量子化パラメータQP
Yの使用を含み得る。逆変換処理ユニット78は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【0339】
[0240] 動き補償ユニット72が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックのための予測ブロックを発生した後に、ビデオデコーダ30は、逆変換処理ユニット78からの残差ブロックを動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器80は、この加算演算を実行する1つまたは複数のコンポーネントを表す。所望される場合、ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。ピクセル遷移を平滑化するか、または場合によってはビデオ品質を改善するために、(コーディングループ中またはコーディングループ後のいずれかの)他のループフィルタも使用され得る。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、後続の動き補償のために使用される参照ピクチャを記憶する復号ピクチャバッファ82に記憶される。復号ピクチャバッファ82はまた、
図1のディスプレイデバイス32などのディスプレイデバイス上での後の表示のための復号ビデオを記憶する。
【0340】
[0241]
図12は、本開示の1つの例示的なビデオ処理技法を示すフローチャートである。
図12の技法は、ビデオエンコーダ20および/またはビデオプリプロセッサユニット19によって実行され得る。
図12の例では、ソースデバイス12は、カメラを使用してビデオデータをキャプチャする(1200)ように構成され得る。ビデオエンコーダ20および/またはビデオプリプロセッサユニット19は、固定小数点算出を使用して、ビデオデータに対してダイナミックレンジ調整プロセスを実行する(1210)ように構成され得る。ビデオエンコーダ20および/またはビデオプリプロセッサユニット19は、固定小数点算出を使用して、ダイナミックレンジ調整プロセスに対して、逆ダイナミックレンジ調整プロセスを実行するためのパラメータをどのように決定すべきかを指定する情報を含んでいる1つまたは複数のシンタックス要素を発生する(1220)ようにさらに構成され得る。
【0341】
[0242] 一例では、ビデオエンコーダ20および/またはビデオプリプロセッサユニット19は、1つまたは複数の補足エンハンスメント情報(SEI)メッセージ中で1つまたは複数のシンタックス要素を発生することによって、1つまたは複数のシンタックス要素を発生するように構成され得る。一例では、パラメータは、レンジパラメータ、スケールパラメータ、またはオフセットパラメータのうちの1つまたは複数を備える。別の例では、情報は、レンジパラメータを決定するために使用される小数ビットの第1の数、スケールパラメータを決定するために使用される小数ビットの第2の数、およびオフセットパラメータを決定するために使用される小数ビットの第3の数のうちの1つまたは複数を示す。別の例では、情報は、ビデオデータの1つまたは複数の色コンポーネントのための最小値と最大値とを含む。別の例では、情報は、復号ビデオデータのサンプル値の所定のレンジ(predetermined range)に対するインデックスを含む。
【0342】
[0243]
図13は、本開示の別の例示的なビデオ処理技法を示すフローチャートである。
図13の技法は、ビデオデコーダ30および/またはビデオポストプロセッサユニット31によって実行され得る。本開示の一例では、ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、逆ダイナミックレンジ調整プロセスを実行するためのパラメータをどのように決定すべきかを指定する情報を含んでいる1つまたは複数のシンタックス要素を受信し(1300)、復号ビデオデータを受信する(1310)ように構成され得る。
【0343】
[0244] ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、受信された情報から逆ダイナミックレンジ調整プロセスのためのパラメータを決定し(1320)、受信された情報と決定されたパラメータとに従って、固定小数点算出を使用して、復号ビデオデータに対して逆ダイナミックレンジ調整プロセスを実行する(1330)ようにさらに構成され得る。宛先デバイス14は、復号ビデオデータに対して逆ダイナミックレンジ調整プロセスを実行した後に復号ビデオデータを表示する(display)(1340)ようにさらに構成され得る。
【0344】
[0245] 本開示の一例では、ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、1つまたは複数の補足エンハンスメント情報(SEI)メッセージ中で1つまたは複数のシンタックス要素を受信するように構成され得る。一例では、パラメータは、レンジパラメータ、スケールパラメータ、またはオフセットパラメータのうちの1つまたは複数を備える。別の例では、情報は、レンジパラメータを決定するために使用される小数ビットの第1の数、スケールパラメータを決定するために使用される小数ビットの第2の数、およびオフセットパラメータを決定するために使用される小数ビットの第3の数のうちの1つまたは複数を示す。
【0345】
[0246] 本開示の別の例では、ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、小数ビットの第1の数、小数ビットの第2の数、または小数ビットの第3の数のうちの少なくとも1つが互いに異なる場合、パラメータを決定するために使用される任意の中間計算プロセス(intermediate calculation process)中に任意の小数ビットを累算することによって、パラメータを決定し、所定の小数正確さ(predetermined fractional accuracy)に基づいて、パラメータを決定するための最終結果(final result)をクリッピングするように構成され得る。
【0346】
[0247] 本開示の別の例では、ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、パラメータを決定するために使用されるすべての中間計算プロセス中に所望の小数正確さを越える小数ビットをトランケートすることによってパラメータを決定するように構成され得る。
【0347】
[0248] 別の例では、情報は、復号ビデオデータの1つまたは複数の色コンポーネントのための最小値と最大値とを含み、ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、受信された最小値と受信された最大値とに基づいてパラメータを決定するように構成され得る。
【0348】
[0249] 別の例では、情報は、復号ビデオデータの1つまたは複数の色コンポーネントのためのサンプル値の所定のレンジに対するインデックスを含み、ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、受信されたインデックスに基づいて復号ビデオデータの1つまたは複数の色コンポーネントのための最小値と最大値とを決定し、決定された最小値と決定された最大値とに基づいてパラメータを決定するように構成され得る。
【0349】
[0250] 本開示の別の例では、ビデオデコーダ30および/またはビデオポストプロセッサユニット31は、パラメータが符号付きであるのか符号なしであるのかを示すシンタックス要素を受信し、SEIメッセージ中の情報に対してパースプロセスを実行するように構成され得、ここにおいて、パースプロセスは、シンタックス要素の値にかかわらず同じである。
【0350】
[0251] 本開示のいくつかの態様は、説明の目的でHEVC規格の拡張に関して説明された。ただし、本開示で説明された技法は、まだ開発されていない他の規格またはプロプライエタリビデオコーディングプロセスを含む、他のビデオコーディングプロセスのために有用であり得る。
【0351】
[0252] 本開示で説明されたビデオコーダは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指し得る。同様に、ビデオコーディングは、適用可能なとき、ビデオ符号化またはビデオ復号を指し得る。
【0352】
[0253] 上記例に応じて、本明細書で説明された技法のいずれかのいくつかの行為またはイベントが、異なるシーケンスで実行され得、全体的に追加、マージ、または除外され得る(たとえば、すべての説明された行為またはイベントが本技法の実施のために必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実行され得る。
【0353】
[0254] 1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベース処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0354】
[0255] 限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0355】
[0256] 命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または本明細書で説明された技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
【0356】
[0257] 本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々なコンポーネント、モジュール、またはユニットが説明されたが、それらのコンポーネント、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【0357】
[0258] 様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲内に入る。
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを処理する方法であって、前記方法が、
逆ダイナミックレンジ調整プロセスを実行するためのパラメータをどのように決定すべきかを指定する情報を含んでいる1つまたは複数のシンタックス要素を受信することと、 復号ビデオデータを受信することと、
受信された前記情報に従って、固定小数点算出を使用して、前記復号ビデオデータに対して前記逆ダイナミックレンジ調整プロセスを実行することと
を備える、方法。
[C2]
前記1つまたは複数のシンタックス要素を受信することが、1つまたは複数の補足エンハンスメント情報(SEI)メッセージ中で前記1つまたは複数のシンタックス要素を受信することを備え、ここにおいて、前記パラメータが、レンジパラメータ、スケールパラメータ、またはオフセットパラメータのうちの1つまたは複数を備える、C1に記載の方法。
[C3]
前記情報が、前記レンジパラメータを決定するために使用される小数ビットの第1の数、前記スケールパラメータを決定するために使用される小数ビットの第2の数、および前記オフセットパラメータを決定するために使用される小数ビットの第3の数のうちの1つまたは複数を示す、C2に記載の方法。
[C4]
小数ビットの前記第1の数と、小数ビットビットの前記第2の数と、小数ビットの前記第3の数とを使用して前記パラメータを決定すること
をさらに備える、C3に記載の方法。
[C5]
前記パラメータを決定することは、
小数ビットの前記第1の数、小数ビットの前記第2の数、または小数ビットの前記第3の数のうちの少なくとも1つが互いに異なる場合、前記パラメータを決定するために使用される任意の中間計算プロセス中に任意の小数ビットを累算することによって、前記パラメータを決定することと、
所定の小数正確さに基づいて、前記パラメータを決定するために最終結果をクリッピングすることと
をさらに備える、C4に記載の方法。
[C6]
前記パラメータを決定することが、
前記パラメータを決定するために使用されるすべての中間計算プロセス中に所望の小数正確さを越える任意の小数ビットをトランケートすることによって前記パラメータを決定すること
をさらに備える、C4に記載の方法。
[C7]
前記情報が、前記復号ビデオデータの1つまたは複数の色コンポーネントのための最小値と最大値とを含み、前記方法が、
前記受信された最小値と前記受信された最大値とに基づいて前記パラメータを決定すること
をさらに備える、C1に記載の方法。
[C8]
前記情報が、前記復号ビデオデータの1つまたは複数の色コンポーネントのためのサンプル値の所定のレンジに対するインデックスを含み、前記方法が、
前記受信されたインデックスに基づいて、前記復号ビデオデータの前記1つまたは複数の色コンポーネントのための最小値と最大値とを決定することと、
前記決定された最小値と前記決定された最大値とに基づいて前記パラメータを決定することと
をさらに備える、C1に記載の方法。
[C9]
前記パラメータが符号付きであるのか符号なしであるのかを示すシンタックス要素を受信することと、
前記SEIメッセージ中の前記情報に対してパースプロセスを実行することと、ここにおいて、前記パースプロセスが、前記シンタックス要素の値にかかわらず同じである、をさらに備える、C1に記載の方法。
[C10]
前記復号ビデオデータに対して前記逆ダイナミックレンジ調整プロセスを実行した後に前記復号ビデオデータを表示すること
をさらに備える、C1に記載の方法。
[C11]
ビデオデータを処理するように構成された装置であって、前記装置が、
復号ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサが、
逆ダイナミックレンジ調整プロセスを実行するためのパラメータをどのように決定すべきかを指定する情報を含んでいる1つまたは複数のシンタックス要素を受信することと、
前記復号ビデオデータを受信することと、
受信された前記情報に従って、固定小数点算出を使用して、前記復号ビデオデータに対して前記逆ダイナミックレンジ調整プロセスを実行することと
を行うように構成された、装置。
[C12]
前記1つまたは複数のプロセッサが、1つまたは複数の補足エンハンスメント情報(SEI)メッセージ中で前記1つまたは複数のシンタックス要素を受信することを行うようにさらに構成されたことを受信し、ここにおいて、前記パラメータが、レンジパラメータ、スケールパラメータ、またはオフセットパラメータのうちの1つまたは複数を備える、C11に記載の装置。
[C13]
前記情報が、前記レンジパラメータを決定するために使用される小数ビットの第1の数、前記スケールパラメータを決定するために使用される小数ビットの第2の数、および前記オフセットパラメータを決定するために使用される小数ビットの第3の数のうちの1つまたは複数を示す、C12に記載の装置。
[C14]
前記1つまたは複数のプロセッサが、
小数ビットの前記第1の数と、部分ビットの前記第2の数と、小数ビットの前記第3の数とを使用して前記パラメータを決定すること
を行うようにさらに構成された、C13に記載の装置。
[C15]
前記パラメータを決定するために、前記1つまたは複数のプロセッサは、
小数ビットの前記第1の数、小数ビットの前記第2の数、または小数ビットの前記第3の数のうちの少なくとも1つが互いに異なる場合、前記パラメータを決定するために使用される任意の中間計算プロセス中に任意の小数ビットを累算することによって、前記パラメータを決定することと、
所定の小数正確さに基づいて、前記パラメータを決定するための最終結果をクリッピングすることと
を行うようにさらに構成された、C14に記載の装置。
[C16]
前記パラメータを決定するために、前記1つまたは複数のプロセッサが、
前記パラメータを決定するために使用されるすべての中間計算プロセス中に所望の小数正確さを越える任意の小数ビットをトランケートすることによって前記パラメータを決定すること
を行うようにさらに構成された、C14に記載の装置。
[C17]
前記情報が、前記復号ビデオデータの1つまたは複数の色コンポーネントのための最小値と最大値とを含み、ここにおいて、前記1つまたは複数のプロセッサが、
前記受信された最小値と前記受信された最大値とに基づいて前記パラメータを決定すること
を行うようにさらに構成された、C11に記載の装置。
[C18]
前記情報が、前記復号ビデオデータの1つまたは複数の色コンポーネントのサンプル値の所定のレンジに対するインデックスを含み、ここにおいて、前記1つまたは複数のプロセッサが、
前記受信されたインデックスに基づいて、前記復号ビデオデータの前記1つまたは複数の色コンポーネントのための最小値と最大値とを決定することと、
前記決定された最小値と前記決定された最大値とに基づいて前記パラメータを決定することと
を行うようにさらに構成された、C11に記載の装置。
[C19]
前記1つまたは複数のプロセッサが、
前記パラメータが符号付きであるのか符号なしであるのかを示すシンタックス要素を受信することと、
前記SEIメッセージ中の前記情報に対してパースプロセスを実行することと、ここにおいて、前記パースプロセスが、前記シンタックス要素の値にかかわらず同じである、を行うようにさらに構成された、C11に記載の装置。
[C20]
前記装置は、
前記1つまたは複数のプロセッサが、前記復号ビデオデータに対して前記逆ダイナミックレンジ調整プロセスを実行した後に、前記復号ビデオデータを表示するように構成されたディスプレイ
をさらに備える、C11に記載の装置。
[C21]
前記装置が、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、C11に記載の装置。
[C22]
ビデオデータを処理するように構成された装置であって、前記装置が、
逆ダイナミックレンジ調整プロセスを実行するためのパラメータをどのように決定すべきかを指定する情報を含んでいる1つまたは複数のシンタックス要素を受信するための手段と、
復号ビデオデータを受信するための手段と、
受信された前記情報に従って、固定小数点算出を使用して、前記復号ビデオデータに対して前記逆ダイナミックレンジ調整プロセスを実行するための手段と
を備える、装置。
[C23]
前記1つまたは複数のシンタックス要素を受信するための前記手段が、1つまたは複数の補足エンハンスメント情報(SEI)メッセージ中で前記1つまたは複数のシンタックス要素を受信するための手段を備え、ここにおいて、前記パラメータが、レンジパラメータ、スケールパラメータ、またはオフセットパラメータのうちの1つまたは複数を備える、C22に記載の装置。
[C24]
前記情報が、前記レンジパラメータを決定するために使用される小数ビットの第1の数、前記スケールパラメータを決定するために使用される小数ビットの第2の数、および前記オフセットパラメータを決定するために使用される小数ビットの第3の数のうちの1つまたは複数を示す、C23に記載の装置。
[C25]
小数ビットの前記第1の数と、部分ビットの前記第2の数と、小数ビットの前記第3の数とを使用して前記パラメータを決定するための手段
をさらに備える、C24に記載の装置。
[C26]
前記パラメータを決定するための前記手段は、
小数ビットの前記第1の数、小数ビットの前記第2の数、または小数ビットの前記第3の数のうちの少なくとも1つが互いに異なる場合、前記パラメータを決定するために使用される任意の中間計算プロセス中に任意の小数ビットを累算することによって、前記パラメータを決定するための手段と、
所定の小数正確さに基づいて、前記パラメータを決定するための最終結果をクリッピングするための手段と
をさらに備える、C25に記載の装置。
[C27]
前記パラメータを決定するための前記手段が、
前記パラメータを決定するために使用されるすべての中間計算プロセス中に所望の小数正確さを越える任意の小数ビットをトランケートすることによって前記パラメータを決定するための手段
をさらに備える、C25に記載の装置。
[C28]
前記情報が、前記復号ビデオデータの1つまたは複数の色コンポーネントのための最小値と最大値とを含み、前記装置が、
前記受信された最小値と前記受信された最大値とに基づいて前記パラメータを決定するための手段
をさらに備える、C22に記載の装置。
[C29]
前記情報が、前記復号ビデオデータのサンプル値または1つまたは複数の色コンポーネントの所定のレンジに対するインデックスを含み、前記装置が、
前記受信されたインデックスに基づいて、前記復号ビデオデータの前記1つまたは複数の色コンポーネントのための最小値と最大値とを決定するための手段と、
前記決定された最小値と前記決定された最大値とに基づいて前記パラメータを決定するための手段と
をさらに備える、C22に記載の装置。
[C30]
前記パラメータが符号付きであるのか符号なしであるのかを示すシンタックス要素を受信するための手段と、
前記SEIメッセージ中の前記情報に対してパースプロセスを実行するための手段と、ここにおいて、前記パースプロセスが、前記シンタックス要素の値にかかわらず同じである、
をさらに備える、C22に記載の装置。
[C31]
前記復号ビデオデータに対して前記逆ダイナミックレンジ調整プロセスを実行した後に前記復号ビデオデータを表示するための手段
をさらに備える、C22に記載の装置。
[C32]
実行されたとき、ビデオデータを処理するように構成されたデバイスの1つまたは複数のプロセッサに、
逆ダイナミックレンジ調整プロセスを実行するためのパラメータをどのように決定すべきかを指定する情報を含んでいる1つまたは複数のシンタックス要素を受信することと、 前記復号ビデオデータを受信することと、
受信された前記情報に従って、固定小数点算出を使用して、前記復号ビデオデータに対して前記逆ダイナミックレンジ調整プロセスを実行することと
を行わせる命令を記憶するコンピュータ可読記憶媒体。
[C33]
前記命令が、前記1つまたは複数のプロセッサに、1つまたは複数の補足エンハンスメント情報(SEI)メッセージ中で前記1つまたは複数のシンタックス要素を受信することをさらに行わせ、ここにおいて、前記パラメータが、レンジパラメータ、スケールパラメータ、またはオフセットパラメータのうちの1つまたは複数を備える、C32に記載のコンピュータ可読記憶媒体。
[C34]
前記情報が、前記レンジパラメータを決定するために使用される小数ビットの第1の数、前記スケールパラメータを決定するために使用される小数ビットの第2の数、および前記オフセットパラメータを決定するために使用される小数ビットの第3の数のうちの1つまたは複数を示す、C33に記載のコンピュータ可読記憶媒体。
[C35]
前記命令が、前記1つまたは複数のプロセッサに、
小数ビットの前記第1の数と、部分ビットの前記第2の数と、小数ビットの前記第3の数とを使用して前記パラメータを決定すること
をさらに行わせる、C34に記載のコンピュータ可読記憶媒体。
[C36]
前記命令は、前記1つまたは複数のプロセッサに、
小数ビットの前記第1の数、小数ビットの前記第2の数、または小数ビットの前記第3の数のうちの少なくとも1つが互いに異なる場合、前記パラメータを決定するために使用される任意の中間計算プロセス中に任意の小数ビットを累算することによって、前記パラメータを決定することと、
所定の小数正確さに基づいて、前記パラメータを決定するための最終結果をクリッピングすることと
をさらに行わせる、C35に記載のコンピュータ可読記憶媒体。
[C37]
前記命令が、前記1つまたは複数のプロセッサに、
前記パラメータを決定するために使用されるすべての中間計算プロセス中に所望の小数正確さを越える任意の小数ビットをトランケートすることによって前記パラメータを決定すること
をさらに行わせる、C35に記載のコンピュータ可読記憶媒体。
[C38]
前記情報が、前記復号ビデオデータの1つまたは複数の色コンポーネントのための最小値と最大値とを含み、ここにおいて、前記命令が、前記1つまたは複数のプロセッサに、 前記受信された最小値と前記受信された最大値とに基づいて前記パラメータを決定すること
をさらに行わせる、C32に記載のコンピュータ可読記憶媒体。
[C39]
前記情報が、前記復号ビデオデータの1つまたは複数の色コンポーネントのサンプル値の所定のレンジに対するインデックスを含み、ここにおいて、前記命令が、前記1つまたは複数のプロセッサに、
前記受信されたインデックスに基づいて、前記復号ビデオデータの前記1つまたは複数の色コンポーネントのための最小値と最大値とを決定することと、
前記決定された最小値と前記決定された最大値とに基づいて前記パラメータを決定することと
をさらに行わせる、C32に記載のコンピュータ可読記憶媒体。
[C40]
前記命令が、前記1つまたは複数のプロセッサに、
前記パラメータが符号付きであるのか符号なしであるのかを示すシンタックス要素を受信することと、
前記SEIメッセージ中の前記情報に対してパースプロセスを実行することと、ここにおいて、前記パースプロセスが、前記シンタックス要素の値にかかわらず同じである、をさらに行わせる、C32に記載のコンピュータ可読記憶媒体。
[C41]
前記命令が、前記1つまたは複数のプロセッサに、
前記復号ビデオデータに対して前記逆ダイナミックレンジ調整プロセスを実行した後に前記復号ビデオデータを表示すること
をさらに行わせる、C32に記載のコンピュータ可読記憶媒体。
[C42]
ビデオデータを処理する方法であって、前記方法が、
固定小数点算出を使用してビデオデータに対してダイナミックレンジ調整プロセスを実行することと、
固定小数点算出を使用して、前記ダイナミックレンジ調整プロセスに対して、逆ダイナミックレンジ調整プロセスを実行するためのパラメータをどのように決定すべきかを指定する情報を含んでいる1つまたは複数のシンタックス要素を発生することと、
を備える、方法。
[C43]
前記1つまたは複数のシンタックス要素を発生することが、1つまたは複数の補足エンハンスメント情報(SEI)メッセージ中で前記1つまたは複数のシンタックス要素を発生することを備え、ここにおいて、前記パラメータが、レンジパラメータ、スケールパラメータ、またはオフセットパラメータのうちの1つまたは複数を備える、C42に記載の方法。
[C44]
前記情報が、前記レンジパラメータを決定するために使用される小数ビットの第1の数、前記スケールパラメータを決定するために使用される小数ビットの第2の数、および前記オフセットパラメータを決定するために使用される小数ビットの第3の数のうちの1つまたは複数を示す、C43に記載の方法。
[C45]
前記情報が、前記ビデオデータの1つまたは複数の色コンポーネントのための最小値と最大値とを含む、C42に記載の方法。
[C46]
前記情報が、前記復号ビデオデータのサンプル値の所定のレンジに対するインデックスを含む、C42に記載の方法。
[C47]
カメラを用いて前記ビデオデータをキャプチャすること
をさらに備える、C42に記載の方法。
[C48]
ビデオデータを処理するように構成された装置であって、前記装置が、
ビデオデータを記憶するように構成されたメモリと、
1つまたは複数のプロセッサと
を備え、前記1つまたは複数のプロセッサが、
固定小数点算出を使用して前記ビデオデータに対してダイナミックレンジ調整プロセスを実行することと、
固定小数点算出を使用して、前記ダイナミックレンジ調整プロセスに対して、逆ダイナミックレンジ調整プロセスを実行するためのパラメータをどのように決定すべきかを指定する情報を含んでいる1つまたは複数のシンタックス要素を発生することと、
を行うように構成された、装置。
[C49]
前記1つまたは複数のプロセッサが、1つまたは複数の補足エンハンスメント情報(SEI)メッセージ中で前記1つまたは複数のシンタックス要素を発生することを行うようにさらに構成され、ここにおいて、前記パラメータが、レンジパラメータ、スケールパラメータ、またはオフセットパラメータのうちの1つまたは複数を備える、C48に記載の装置。
[C50]
前記情報が、前記レンジパラメータを決定するために使用される小数ビットの第1の数、前記スケールパラメータを決定するために使用される小数ビットの第2の数、および前記オフセットパラメータを決定するために使用される小数ビットの第3の数のうちの1つまたは複数を示す、C49に記載の装置。
[C51]
前記情報が、前記ビデオデータの1つまたは複数の色コンポーネントのための最小値と最大値とを含む、C48に記載の装置。
[C52]
前記情報が、前記復号ビデオデータのサンプル値の所定のレンジに対するインデックスを含む、C48に記載の装置。
[C53]
前記装置が、
前記ビデオデータをキャプチャするように構成されたカメラ
をさらに備える、C48に記載の装置。
[C54]
前記装置が、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、C48に記載の装置。
[C55]
ビデオデータを処理するように構成された装置であって、前記装置が、
固定小数点算出を使用してビデオデータに対してダイナミックレンジ調整プロセスを実行するための手段と、
固定小数点算出を使用して、前記ダイナミックレンジ調整プロセスに対して、逆ダイナミックレンジ調整プロセスを実行するためのパラメータをどのように決定すべきかを指定する情報を含んでいる1つまたは複数のシンタックス要素を発生するための手段と
を備える、装置。
[C56]
実行されたとき、ビデオデータを処理するように構成されたデバイスの1つまたは複数のプロセッサに、
固定小数点算出を使用して前記ビデオデータに対してダイナミックレンジ調整プロセスを実行することと、
固定小数点算出を使用して、前記ダイナミックレンジ調整プロセスに対して、逆ダイナミックレンジ調整プロセスを実行するためのパラメータをどのように決定すべきかを指定する情報を含んでいる1つまたは複数のシンタックス要素を発生することと
を行わせる命令を記憶するコンピュータ可読記憶媒体。