【文献】
LUTHRA, Ajay et al.,CALL FOR EVIDENCE (CFE) FOR HDR AND WCG VIDEO CODING,ISO/IEC JTC1/SC29/WG11 MPEG2014/N15083, Feburary 2015, Geneva, Switzerland,2015年 2月20日,pp. 22-34
【文献】
QUALCOMM,DYNAMIC RANGE ADJUSTMENT SEI TO ENABLE HIGH DYNAMIC RANGE VIDEO CODING WITH BACKWARD-COMPATIBLE CAPABILITY,ITU-T SG16 MEETING: COM16-C1027-E,ITU-T,2015年 9月29日,pp. 1-11
【文献】
D. Bugdayci Sansli et al.,Dynamic Range Adjustment SEI Message,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, [JCTVC-U0098],ITU-T,2015年 6月 9日,pp. 1-5
【文献】
Ajay Luthra et al.,CALL FOR EVIDENCE (CFE) FOR HDR AND WCG VIDEO CODING,111. MPEG MEETING; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11),2015年 2月20日,M36131,pp. 22-30
(58)【調査した分野】(Int.Cl.,DB名)
逆後処理する前記ステップが、前記第1の複数のコードワードを逆スケーリングおよび逆オフセットするステップを備え、逆前処理する前記ステップが、非短縮化する前記ステップから得られた非短縮化された前記第2の複数のコードワードを逆スケーリングおよび逆オフセットするステップを備える、請求項2に記載の方法。
前記第1の複数のコードワードを逆スケーリングおよび逆オフセットする前記ステップ、ならびに非短縮化する前記ステップから得られた非短縮化された前記第2の複数のコードワードを逆スケーリングおよび逆オフセットする前記ステップのうちの一方または両方のためのスケーリングおよびオフセットパラメータを、受信されたビットストリームまたは別個にシグナリングされたサイド情報から導出するステップ
をさらに備える、請求項3に記載の方法。
前記第1の複数のコードワードからのコードワードの第1のセットが、最小しきい値よりも小さいかまたは最大しきい値よりも大きい値を有する短縮カラー値を表すことを決定するステップと、
前記第1の複数のコードワードからのコードワードの第2のセットが、前記最小しきい値以上かつ前記最大しきい値以下の値を有する短縮カラー値を表すことを決定するステップとをさらに備え、
前記第1の複数のコードワードを逆後処理するステップが、
コードワードの前記第1のセットの、前記最小しきい値よりも小さいコードワードに第1のコードワードを割り当てるステップと、
コードワードの前記第1のセットの、前記最大しきい値よりも大きいコードワードに第2のコードワードを割り当てるステップと、
コードワードの前記第2のセットを逆スケーリングおよび逆オフセットするステップとを備える、
請求項2に記載の方法。
前記第1のコードワード、前記第2のコードワード、前記最大しきい値、もしくは前記最小しきい値を示す、ビットストリームからもしくは別個にシグナリングされるサイド情報から受信された情報に基づいて、前記第1のコードワード、前記第2のコードワード、前記最大しきい値、および前記最小しきい値のうちの1つもしくは複数を決定するステップ、または前記第1のコードワード、前記第2のコードワード、前記最大しきい値、もしくは前記最小しきい値を決定するための処理を適用するステップ
をさらに備える、請求項5に記載の方法。
前記第1の複数のコードワードからのコードワードの第1のセットが、前記第1のダイナミックレンジの第1の区分に属する値を有する短縮カラー値を表すことを決定するステップと、
前記第1の複数のコードワードからのコードワードの第2のセットが、前記第1のダイナミックレンジの第2の区分に属する値を有する短縮カラー値を表すことを決定するステップとをさらに備え、
前記第1の複数のコードワードを逆後処理するステップが、
スケーリングおよびオフセットパラメータの第1のセットを用いて、コードワードの前記第1のセットをスケーリングおよびオフセットするステップと、
スケーリングおよびオフセットパラメータの第2のセットを用いて、コードワードの前記第2のセットをスケーリングおよびオフセットするステップとを備える、
請求項2に記載の方法。
入力線形カラー値をスケーリングおよびオフセットする前記ステップ、ならびに短縮する前記ステップから得られた前記コードワードをスケーリングおよびオフセットするステップのうちの一方または両方のためのスケーリングおよびオフセットパラメータを、ビットストリームの中でまたはサイド情報としてシグナリングするステップ
をさらに備える、請求項9に記載の方法。
入力線形カラー値をスケーリングおよびオフセットするステップは、前記入力線形カラー値に基づいてスケーリングファクタおよびオフセットファクタを適応的に決定することを含み、前記コードワードをスケーリングおよびオフセットするステップは、利用可能なコードワード空間におけるコードワードの分布の広がりが大きくなるよう、前記コードワードに基づいてスケーリングファクタおよびオフセットファクタを適応的に決定することを含む、請求項9に記載の方法。
前記第1のコードワード、前記第2のコードワード、前記最大しきい値、または前記最小しきい値のうちの1つまたは複数を示す情報を、ビットストリームの中でまたはサイド情報としてシグナリングするステップ
をさらに備える、請求項12に記載の方法。
【発明を実施するための形態】
【0016】
本開示は、高ダイナミックレンジ(HDR)および広色域(WCG)表現を有する映像信号のコーディングの分野に関する。より詳細には、本開示の技法は、HDRおよびWCGビデオデータのより効率的な圧縮を可能にするためにいくつかの色空間におけるビデオデータに適用される、シグナリングおよび動作を含む。提案される技法は、HDRおよびWCGビデオデータをコーディングするために利用されるハイブリッドベースのビデオコーディングシステム(たとえば、HEVCベースのビデオコーダ)の圧縮効率を改善し得る。
【0017】
ハイブリッドベースのビデオコーディング規格を含むビデオコーディング規格は、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、ならびにそのスケーラブルビデオコーディング(SVC)拡張およびマルチビュービデオコーディング(MVC)拡張を含むITU-T H.264(ISO/IEC MPEG-4 AVCとも呼ばれる)を含む。新たなビデオコーディング規格すなわちHEVCの設計は、ITU-Tビデオコーディングエキスパートグループ(VCEG)とISO/IECモーションピクチャエキスパートグループ(MPEG)とのビデオコーディング共同研究部会(JCT-VC)によって確定された。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と呼ばれる。
【0018】
障害報告である、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月として公表されており、2014年10月に別のバージョンが公表された。
【0019】
図1は、本開示の技法を利用し得る例示的なビデオ符号化および復号システム10を示すブロック図である。
図1に示すように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを提供するソースデバイス12を含む。詳細には、ソースデバイス12は、コンピュータ可読媒体16を介して宛先デバイス14にビデオデータを提供する。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。
【0020】
宛先デバイス14は、コンピュータ可読媒体16を介して、復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動させることが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12がリアルタイムで宛先デバイス14へ符号化ビデオデータを直接送信することを可能にする通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され得、宛先デバイス14へ送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレスまたは有線の通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするのに有用であり得る任意の他の機器を含み得る。
【0021】
いくつかの例では、符号化データは、出力インターフェース22から記憶デバイスに出力され得る。同様に、符号化データは、入力インターフェースによって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの、様々な分散されたまたは局所的にアクセスされるデータ記憶媒体のうちのいずれかを含み得る。さらなる例では、記憶デバイスは、ソースデバイス12によって生成された符号化ビデオを記憶し得るファイルサーバまたは別の中間記憶デバイスに相当し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイスからの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶するとともにその符号化ビデオデータを宛先デバイス14へ送信することが可能な、任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化ビデオデータにアクセスし得る。これは、ワイヤレスチャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、またはファイルサーバ上に記憶された符号化ビデオデータにアクセスするのに適した両方の組合せを含み得る。記憶デバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
【0022】
本開示の技法は、必ずしもワイヤレスの適用例または設定に限定されるとは限らない。技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上へ符号化されるデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例などの、様々なマルチメディア適用例のうちのいずれかをサポートする際にビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオ放送、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向ビデオ送信をサポートするように構成され得る。
【0023】
図1の例では、ソースデバイス12は、ビデオソース18、ビデオプリプロセッサ19およびビデオエンコーダ20を含むビデオ符号化ユニット21、ならびに出力インターフェース22を含む。宛先デバイス14は、入力インターフェース28、ビデオデコーダ30およびビデオポストプロセッサ31を含むビデオ復号ユニット29、ならびにディスプレイデバイス32を含む。本開示によれば、ビデオプリプロセッサ19およびビデオポストプロセッサ31は、本開示で説明する例示的な技法を適用するように構成され得る。たとえば、ビデオプリプロセッサ19およびビデオポストプロセッサ31は、静的伝達関数を適用するように構成された静的伝達関数ユニットを含んでよいが、信号特性を適応させることができる前処理ユニットおよび後処理ユニットを有する。
【0024】
他の例では、ソースデバイスおよび宛先デバイスが、他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、統合されたディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースしてもよい。
【0025】
図1の図示したシステム10は一例にすぎない。ビデオデータを処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。一般に、本開示の技法はビデオ符号化デバイスによって実行されるが、技法はまた、通常は「コーデック」と呼ばれるビデオエンコーダ/デコーダによって実行され得る。説明しやすいように、本開示は、ビデオプリプロセッサ19およびビデオポストプロセッサ31が、ソースデバイス12および宛先デバイス14のうちのそれぞれのデバイスにおいて、本開示で説明する例示的な技法を実行することに関して説明される。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14への送信のためのコード化ビデオデータを生成するようなコーディングデバイスの例にすぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化構成要素および復号構成要素を含むように実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオ放送、またはビデオ電話のために、ビデオデバイス12と14との間で一方向または双方向のビデオ送信をサポートし得る。
【0026】
ソースデバイス12のビデオソース18は、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース18は、ソースビデオとしてコンピュータグラフィックスベースのデータ、またはライブビデオ、アーカイブされたビデオ、およびコンピュータ生成されたビデオの組合せを生成し得る。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ付き携帯電話を形成し得る。しかしながら、上述のように、本開示で説明する技法は、一般に、ビデオコーディングに適用可能であってよく、ワイヤレスおよび/または有線の適用例に適用されてもよい。各々の場合において、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオ符号化ユニット21によって符号化され得る。符号化ビデオ情報は、次いで、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
【0027】
コンピュータ可読媒体16は、ワイヤレスブロードキャストもしくは有線ネットワーク送信などの一時媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu-ray(登録商標)ディスク、もしくは他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)が、たとえば、ネットワーク送信を介して、ソースデバイス12から符号化ビデオデータを受信し得、符号化ビデオデータを宛先デバイス14に提供し得る。同様に、ディスクスタンピング設備などの、媒体製造設備のコンピューティングデバイスが、ソースデバイス12から符号化ビデオデータを受信し得、符号化ビデオデータを含むディスクを製造し得る。したがって、様々な例では、コンピュータ可読媒体16は、様々な形態の1つまたは複数のコンピュータ可読媒体を含むと理解され得る。
【0028】
宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオ符号化ユニット21のビデオエンコーダ20によって規定され、またビデオ復号ユニット29のビデオデコーダ30によって使用される、シンタックス情報を含んでよく、シンタックス情報は、ブロックおよび他のコード化ユニット、たとえばピクチャグループ(GOP)の特性および/または処理を記述するシンタックス要素を含む。ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのうちのいずれかを備え得る。
【0029】
図示したように、ビデオプリプロセッサ19は、ビデオソース18からビデオデータを受信する。ビデオプリプロセッサ19は、ビデオデータを処理して、ビデオエンコーダ20を用いて符号化するのに適切な形態に変換するように構成され得る。たとえば、ビデオプリプロセッサ19は、ダイナミックレンジ短縮(たとえば、非線形伝達関数を使用して)、よりコンパクトもしくはロバストな色空間への色変換、および/または浮動表現から整数表現への変換を実行し得る。ビデオエンコーダ20は、ビデオプリプロセッサ19によって出力されるビデオデータ上でビデオ符号化を実行し得る。ビデオデコーダ30は、ビデオエンコーダ20の逆を実行してビデオデータを復号し得、ビデオポストプロセッサ31は、ビデオプリプロセッサ19の逆を実行してビデオデータを表示にとって適切な形態に変換し得る。たとえば、ビデオポストプロセッサ31は、表示にとって適切なビデオデータを生成するために、整数からフローティングへの変換、コンパクトもしくはロバストな色空間からの色変換、および/またはダイナミックレンジ短縮の逆を実行し得る。
【0030】
ビデオ符号化ユニット21およびビデオ復号ユニット29は各々、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な固定機能およびプログラマブルの回路構成のうちのいずれかとして実装され得る。技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し得、1つまたは複数のプロセッサを使用してハードウェアで命令を実行して、本開示の技法を実行し得る。ビデオ符号化ユニット21およびビデオ復号ユニット29の各々は、1つまたは複数のエンコーダまたはデコーダの中に含まれてよく、そのいずれもが、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されてよい。
【0031】
ビデオプリプロセッサ19およびビデオエンコーダ20はビデオ符号化ユニット21内の別個のユニットであるものとして図示され、ビデオポストプロセッサ31およびビデオデコーダ30はビデオ復号ユニット29内の別個のユニットであるものとして図示されるが、本開示で説明する技法はそのように限定されない。ビデオプリプロセッサ19およびビデオエンコーダ20は、共通のデバイス(たとえば、同じ集積回路であるか、または同じチップもしくはチップパッケージ内に収容される)として形成されてよい。同様に、ビデオポストプロセッサ31およびビデオデコーダ30は、共通のデバイス(たとえば、同じ集積回路であるか、または同じチップもしくはチップパッケージ内に収容される)として形成されてよい。
【0032】
いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、そのスケーラブルビデオコーディング(SVC)拡張、マルチビュービデオコーディング(MVC)拡張、およびMVCベースの3次元ビデオ(3DV)拡張を含む、ISO/IEC MPEG-4 VisualおよびITU-T H.264(ISO/IEC MPEG-4 AVCとも呼ばれる)などのビデオ圧縮規格に従って動作する。いくつかの事例では、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は、ITU-T H.265、HEVC規格に従って動作するように構成され得る。
【0033】
HEVCおよび他のビデオコーディング規格では、ビデオシーケンスは、通常、一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、S
L、S
Cb、およびS
Crと示される3つのサンプルアレイを含み得る。S
Lは、ルーマサンプルの2次元アレイ(すなわち、ブロック)である。S
Cbは、Cbクロミナンスサンプルの2次元アレイである。S
Crは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書で「クロマ」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロームであってよく、ルーマサンプルのアレイしか含まないことがある。
【0034】
ビデオエンコーダ20は、コーディングツリーユニット(CTU)のセットを生成し得る。CTUの各々は、ルーマサンプルのコーディングツリーブロック、クロマサンプルの2つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。モノクロームピクチャ、または3つの別個のカラープレーンを有するピクチャでは、CTUは、単一のコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造を備え得る。コーディングツリーブロックは、サンプルのN×Nブロックであり得る。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)と呼ばれることもある。HEVCのCTUは、H.264/AVCなどの他のビデオコーディング規格のマクロブロックとおおまかに類似であり得る。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含み得る。スライスは、ラスタ走査において連続的に順序付けられた整数個のCTUを含み得る。
【0035】
本開示は、サンプルの1つまたは複数のブロックと、サンプルの1つまたは複数のブロックのサンプルをコーディングするために使用されるシンタックス構造とを指すために、「ビデオユニット」または「ビデオブロック」という用語を使用することがある。例示的なタイプのビデオユニットは、HEVCにおけるCTU、CU、PU、変換ユニット(TU)、または他のビデオコーディング規格におけるマクロブロック、マクロブロック区分などを含み得る。
【0036】
ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの長方形(すなわち、正方形または非正方形)のブロックであり得る。CUの予測ユニット(PU)は、ピクチャの、ルーマサンプルの予測ブロック、クロマサンプルの2つの対応する予測ブロック、および予測ブロックサンプルを予測するために使用されるシンタックス構造を備え得る。モノクロームピクチャ、または3つの別個のカラープレーンを有するピクチャでは、PUは、単一の予測ブロック、および予測ブロックサンプルを予測するために使用されるシンタックス構造を備え得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロックに関する、予測ルーマブロック、予測Cbブロック、および予測Crブロックを生成し得る。
【0037】
ビデオエンコーダ20は、PUに関する予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUに関連するピクチャの復号サンプルに基づいてPUの予測ブロックを生成し得る。
【0038】
ビデオエンコーダ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コーディングブロックの中の対応するサンプルとの間の差分を示し得る。
【0039】
さらに、ビデオエンコーダ20は、4分木区分を使用して、CUのルーマ残差ブロック、Cb残差ブロック、およびCr残差ブロックを、1つまたは複数のルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解し得る。変換ブロックは、同じ変換が適用されるサンプルの長方形ブロックであり得る。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用されるシンタックス構造を備え得る。モノクロームピクチャ、または3つの別個のカラープレーンを有するピクチャでは、TUは、単一の変換ブロック、および変換ブロックサンプルを変換するために使用されるシンタックス構造を備え得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連し得る。TUに関連するルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。
【0040】
ビデオエンコーダ20は、TUに関するルーマ係数ブロックを生成するために、TUのルーマ変換ブロックに1つまたは複数の変換を適用し得る。係数ブロックは、変換係数の2次元アレイであり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ20は、TUに関するCb係数ブロックを生成するために、TUのCb変換ブロックに1つまたは複数の変換を適用し得る。ビデオエンコーダ20は、TUに関するCr係数ブロックを生成するために、TUのCr変換ブロックに1つまたは複数の変換を適用し得る。
【0041】
係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化し得る。量子化とは、概して、変換係数を表すために使用されるデータの量をできる限り低減するために変換係数が量子化され、さらなる圧縮をもたらすプロセスを指す。さらに、ビデオエンコーダ20は、ピクチャのCUのTUの変換ブロックを再構成するために、変換係数を逆量子化し得、変換係数に逆変換を適用し得る。ビデオエンコーダ20は、CUのコーディングブロックを再構成するために、CUのTUの再構成された変換ブロックおよびCUのPUの予測ブロックを使用し得る。ピクチャの各CUのコーディングブロックを再構成することによって、ビデオエンコーダ20は、ピクチャを再構成し得る。ビデオエンコーダ20は、再構成されたピクチャを復号ピクチャバッファ(DPB)の中に記憶し得る。ビデオエンコーダ20は、DPBの中の再構成されたピクチャを、インター予測およびイントラ予測のために使用し得る。
【0042】
ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC)を実行し得る。ビデオエンコーダ20は、エントロピー符号化されたシンタックス要素をビットストリームの中に出力し得る。
【0043】
ビデオエンコーダ20は、コード化ピクチャの表現および関連するデータを形成するビットのシーケンスを含むビットストリームを出力し得る。ビットストリームは、ネットワークアブストラクションレイヤ(NAL)ユニットのシーケンスを備え得る。NALユニットの各々は、NALユニットヘッダを含み、ローバイトシーケンスペイロード(RBSP)をカプセル化する。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含み得る。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化されている整数個のバイトを含むシンタックス構造であり得る。いくつかの事例では、RBSPは0個のビットを含む。
【0044】
異なるタイプのNALユニットは、異なるタイプのRBSPをカプセル化し得る。たとえば、第1のタイプのNALユニットはピクチャパラメータセット(PPS)用のRBSPをカプセル化し得、第2のタイプのNALユニットはコード化スライス用のRBSPをカプセル化し得、第3のタイプのNALユニットは補足エンハンスメント情報(SEI)用のRBSPをカプセル化し得、以下同様である。PPSとは、0個以上のコード化ピクチャ全体に適用されるシンタックス要素を含み得るシンタックス構造である。(パラメータセット用およびSEIメッセージ用のRBSPではなく)ビデオコーディングデータ用のRBSPをカプセル化するNALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと呼ばれることがある。コード化スライスをカプセル化するNALユニットは、本明細書ではコード化スライスNALユニットと呼ばれることがある。コード化スライス用のRBSPは、スライスヘッダおよびスライスデータを含み得る。
【0045】
ビデオデコーダ30は、ビットストリームを受信し得る。加えて、ビデオデコーダ30は、ビットストリームからシンタックス要素を復号するために、ビットストリームを構文解析し得る。ビデオデコーダ30は、ビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ20によって実行されるプロセスと相反であり得る。たとえば、ビデオデコーダ30は、現在CUのPUに関する予測ブロックを決定するために、PUの動きベクトルを使用し得る。ビデオデコーダ30は、PUに関する予測ブロックを生成するために、PUの1つまたは複数の動きベクトルを使用し得る。
【0046】
加えて、ビデオデコーダ30は、現在CUのTUに関連する係数ブロックを逆量子化し得る。ビデオデコーダ30は、現在CUのTUに関連する変換ブロックを再構成するために、係数ブロックに対して逆変換を実行し得る。ビデオデコーダ30は、現在CUのPUに関する予測サンプルブロックのサンプルを、現在CUのTUの変換ブロックの対応するサンプルに加算することによって、現在CUのコーディングブロックを再構成し得る。ピクチャのCUごとにコーディングブロックを再構成することによって、ビデオデコーダ30はピクチャを再構成し得る。ビデオデコーダ30は、出力するために、および/または他のピクチャを復号する際に使用するために、復号ピクチャを復号ピクチャバッファの中に記憶し得る。
【0047】
次世代ビデオアプリケーションは、HDR(高ダイナミックレンジ)およびWCG(広色域)を有するキャプチャされた景色を表すビデオデータとともに動作すると予想される。利用されるダイナミックレンジおよび色域のパラメータは、ビデオコンテンツの2つの独立した属性であり、デジタルテレビジョンおよびマルチメディアサービスのためのそれらの仕様が、いくつかの国際規格によって規定されている。たとえば、ITU-R Rec.709は、標準ダイナミックレンジ(SDR)および標準色域などのHDTV(高精細度テレビジョン)用のパラメータを規定し、ITU-R Rec.2020は、HDRおよびWCGなどのUHDTV(超高精細度テレビジョン)パラメータを指定する。他のシステムにおけるダイナミックレンジおよび色域属性を指定する他の規格開発団体(SDO:standards developing organization)文書もあり、たとえば、P3色域がSMPTE(米国映画テレビ技術者協会)-231-2において規定されており、HDRのいくつかのパラメータがSMPTE-2084において規定されている。ビデオデータに関するダイナミックレンジおよび色域の簡潔な説明が以下で提供される。
【0048】
ダイナミックレンジは、通常、ビデオ信号の最小輝度と最大輝度との間の比として規定される。ダイナミックレンジはまた、「fストップ」の観点から測定されることがあり、ただし、1fストップが信号ダイナミックレンジの倍増に相当する。MPEGの規定では、HDRコンテンツとは、輝度変動が16fストップを越えることを特徴とするようなコンテンツである。いくつかの用語では、10fストップと16fストップの間のレベルは、中間ダイナミックレンジと見なされるが、それは他の規定ではHDRと見なされることがある。いくつかの例では、HDRビデオコンテンツは、標準ダイナミックレンジを有する従来使用されたビデオコンテンツ(たとえば、ITU-R Rec. BT.709によって指定されるビデオコンテンツ)よりも高いダイナミックレンジを有する任意のビデオコンテンツであり得る。同時に、人間の視覚系(HVS:human visual system)は、はるかに大きいダイナミックレンジを知覚することが可能である。しかしながら、HVSは、いわゆる同時レンジを狭める適応機構を含む。HDTVのSDR、予想されるUHDTVのHDR、およびHVSダイナミックレンジによって提供される、ダイナミックレンジの視覚化を
図2に示す。
【0049】
現在のビデオアプリケーションおよびサービスは、Rec.709によって規制されるとともにSDRを提供し、通常、0.1〜100カンデラ(cd)/m2(しばしば「ニト」と呼ばれる)付近の輝度(すなわち、ルミナンス)のレンジをサポートして、10fストップ未満へ導く。次世代ビデオサービスは、16fストップまでのダイナミックレンジを提供すると予想される。詳細な仕様は現在開発中であるが、いくつかの初期パラメータがSMPTE-2084およびRec.2020において指定されている。
【0050】
HDRのほかにもっと現実的なビデオエクスペリエンスのための別の態様はカラーディメンジョンであり、カラーディメンジョンは、従来、色域によって規定される。
図3は、SDR色域(BT.709カラーの赤色、緑色、および青色の原色に基づく三角形)、およびUHDTVのためのもっと広い色域(BT.2020カラーの赤色、緑色、および青色の原色に基づく三角形)を示す概念図である。
図3はまた、天然色の区域を表す、いわゆるスペクトル軌跡(舌型のエリアによって画定されている)を示す。
図3によって図示されるように、BT.709原色からBT.2020原色に移ることは、カラーが約70%増加したUHDTVサービスを提供することを目指している。D65は、所与の仕様(たとえば、BT.709仕様および/またはBT.2020仕様)にとっての白色を指定する。
【0051】
色域仕様のいくつかの例がTable 1(表1)に示される。
【0053】
Table 1(表1)でわかるように、色域は、白色点のX値およびY値によって、ならびに原色(たとえば、赤色(R)、緑色(G)、および青色(B))のX値およびY値によって規定され得る。X値およびY値は、CIE1931色空間によって規定されるように、カラーの色度(X)および輝度(Y)を表す。CIE1931色空間は、(たとえば、波長の観点からの)純粋色と人間の眼がそのようなカラーをどのように知覚するのかとの間のつながりを規定する。
【0054】
HDR/WCGは、通常、4:4:4クロマフォーマットおよび極めて広い色空間(たとえば、CIE1931 XYZ色空間)を用いて、成分ごとに極めて高い精度(さらには、浮動小数点)で収集および記憶される。この表現は、高い精度をターゲットにし、数学的に(ほとんど)ロスレスである。しかしながら、このフォーマット特徴は多くの冗長性を含むことがあり、圧縮目的にとって最適でない。HVSベースの想定を伴うもっと低い精度のフォーマットが、通常、最先端のビデオアプリケーションに対して利用される。
【0055】
圧縮のための一般のビデオデータフォーマット変換は、
図4に示すように3つの主要プロセスからなる。
図4の技法は、ビデオプリプロセッサ19によって実行され得る。線形RGBデータ110は、HDR/WCGビデオデータであってよく、浮動小数点表現で記憶され得る。線形RGBデータ110は、ダイナミックレンジ短縮のために非線形伝達関数(TF)を使用して短縮され得る。たとえば、ビデオプリプロセッサ19は、ダイナミックレンジ短縮のために非線形伝達関数を使用するように構成された伝達関数(TF)ユニット112を含み得る。
【0056】
TFユニット112の出力は、コードワードのセットであり得、ここで、各コードワードはカラー値(たとえば、照度レベル)の範囲を表す。ダイナミックレンジ短縮とは、線形RGBデータ110のダイナミックレンジが第1のダイナミックレンジ(たとえば、
図2に示すような人間の視覚範囲)であり得ることを意味する。得られたコードワードのダイナミックレンジは、第2のダイナミックレンジ(たとえば、
図2に示すようなHDR表示範囲)であり得る。したがって、コードワードは、線形RGBデータ110よりも小さいダイナミックレンジをキャプチャし、したがって、TFユニット112は、ダイナミックレンジ短縮を実行する。
【0057】
TFユニット112は、コードワードと入力カラー値との間のマッピングが等しく離間されない(たとえば、コードワードが非線形コードワードである)という意味で、非線形関数を実行する。非線形コードワードとは、入力カラー値の変化が、出力コードワードにおいて線形比例する変化としてではなくコードワードの非線形の変化として現れることを意味する。たとえば、カラー値が低い照度を表す場合、入力カラー値の小さい変化が、TFユニット112によって出力されるコードワードの小さい変化をもたらすことになる。しかしながら、カラー値が高い照度を表す場合、コードワードの小さい変化にとって、入力カラー値の比較的大きい変化が必要とされることになる。各コードワードによって表される照度の範囲は一定でない(たとえば、照度の第1の範囲に対して第1のコードワードが同じであり、照度の第2の範囲に対して第2のコードワードが同じであり、第1および第2の範囲が異なる)。以下で説明する
図7は、TFユニット112によって適用される伝達関数の特性を示す。
【0058】
より詳細に説明するように、技法は、コードワード空間をより良好に利用するために、TFユニット112が受信する線形RGBデータ110をスケーリングおよびオフセットし得、かつ/またはTFユニット112が出力するコードワードをスケーリングおよびオフセットし得る。TFユニット112は、任意の数の非線形伝達関数(たとえば、SMPTE-2084において規定されるようなPQ(知覚的量子化器) TF)を使用して、線形RGBデータ110(または、スケーリングおよびオフセットされたRGBデータ)を短縮し得る。
【0059】
いくつかの例では、色変換ユニット114は、短縮されたデータを、ビデオエンコーダ20による圧縮にとってもっと適切な、よりコンパクトまたはロバストな色空間に(たとえば、色変換ユニットを介してYUV色空間またはYCrCb色空間において)変換する。より詳細に説明するように、いくつかの例では、色変換ユニット114が色変換を実行する前に、技法は、TFユニット112によるTFの適用によって出力されるコードワードをスケーリングおよびオフセットし得る。色変換ユニット114は、これらのスケーリングおよびオフセットされたコードワードを受信し得る。いくつかの例では、いくつかのスケーリングおよびオフセットされたコードワードは、それぞれのしきい値よりも大きくてよく、または小さくてもよく、これらに対して技法はそれぞれのセットコードワードを割り当ててよい。
【0060】
このデータは、次いで、符号化されるべき、ビデオエンコーダ20へ送信されるビデオデータ(たとえば、HDRデータ118)を生成するために、浮動表現から整数表現への変換を使用して(たとえば、量子化ユニット116を介して)量子化される。この例では、HDRデータ118は整数表現である。HDRデータ118は、現在、ビデオエンコーダ20による圧縮にとってより適切なフォーマットであり得る。
図4に示すプロセスの順序が一例として与えられ、他の適用例において異なってよいことを理解されたい。たとえば、色変換がTFプロセスに先行してもよい。加えて、ビデオプリプロセッサ19は、もっと多くの処理(たとえば、空間的なサブサンプリング)をカラー成分に適用してもよい。
【0061】
したがって、
図4では、線形および浮動小数点表現における入力RGBデータ110の高ダイナミックレンジは、TFユニット112によって利用される非線形伝達関数、たとえば、SMPTE-2084において規定されるようなPQ TFを用いて短縮され、それに続いて圧縮にとってより適切なターゲット色空間、たとえば、YCbCrに(たとえば、色変換ユニット114によって)変換され、次いで、整数表現を得るために量子化される(たとえば、量子化ユニット116)。これらの要素の順序は一例として与えられ、実世界の適用例において異なってよく、たとえば、色変換がTFモジュール(たとえば、TFユニット112)に先行してもよい。TFユニット112が伝達関数を適用する前に、そのような空間的なサブサンプリングのような追加の処理がカラー成分に適用されてよい。
【0062】
デコーダ側における逆変換が
図5に示される。
図5の技法は、ビデオポストプロセッサ31によって実行され得る。たとえば、ビデオポストプロセッサ31はビデオデコーダ30からビデオデータ(たとえば、HDRデータ120)を受信し、逆量子化ユニット122がデータを逆量子化し得、逆色変換ユニット124が逆色変換を実行し、逆非線形伝達関数ユニット126が逆非線形伝達を実行して線形RGBデータ128を生成する。
【0063】
逆色変換ユニット124が実行する逆色変換プロセスは、色変換ユニット114が実行した色変換プロセスの逆であってよい。たとえば、逆色変換ユニット124は、YCrCbフォーマットからRGBフォーマットに戻してHDRデータを変換し得る。逆伝達関数ユニット126は、データに逆伝達関数を適用して、TFユニット112によって短縮されたダイナミックレンジを加減して、線形RGBデータ128を再作成し得る。
【0064】
本開示で説明する例示的な技法では、逆伝達関数ユニット126が逆伝達関数を実行する前に、ビデオポストプロセッサ31は、逆後処理を適用し得、逆伝達関数ユニット126が逆伝達関数を実行した後、逆前処理を適用し得る。たとえば、上記で説明したように、いくつかの例では、ビデオプリプロセッサ19は、TFユニット112の前に前処理(たとえば、スケーリングおよびオフセットすること)を適用してよく、TFユニット112の後に後処理(たとえば、スケーリングおよびオフセットすること)を適用してもよい。前処理および後処理を補償するために、ビデオポストプロセッサ31は、逆TFユニット126が逆伝達関数を実行する前に逆後処理を適用し得、逆TFユニット126が逆伝達関数を実行した後に逆前処理を適用し得る。前処理および後処理と逆後処理および逆前処理の両方を適用することは随意である。いくつかの例では、ビデオプリプロセッサ19は、前処理および後処理の両方でなく1つを適用してよく、そのような例の場合、ビデオポストプロセッサ31は、ビデオプリプロセッサ19によって適用された処理の逆を適用し得る。
【0065】
図5に示す例示的なビデオポストプロセッサ31が概略的に相反なものを実行するという理解とともに、
図4に示す例示的なビデオプリプロセッサ19がさらに詳細に説明される。そのダイナミックレンジを短縮し、限られた数のビットを用いてデータを表すことを可能にするために、伝達関数がデータ(たとえば、HDR/WCG RGBビデオデータ)に適用される。データを表すこれらの限られた数のビットは、コードワードと呼ばれる。この関数は、通常、Rec.709におけるSDRに対して指定されるようなエンドユーザディスプレイの電気光学伝達関数(EOTF:electro-optical transfer function)の逆を反映するか、またはHDR用のSMPTE-2084において指定されるPQ TF用のように、HVS知覚を輝度変化に近似させるかのいずれかである、1次元(1D)の非線形関数である。OETFの逆のプロセス(たとえば、ビデオポストプロセッサ31によって実行されるような)はEOTF(電気光学伝達関数)であり、これはコードレベルをルミナンスに戻してマッピングする。
図6は、非線形TFのいくつか例を示す。これらの伝達関数はまた、別個に各R、G、およびB成分に適用され得る。
【0066】
本開示のコンテキストでは、「信号値」または「カラー値」という用語は、画像要素に対する(R、G、B、またはYなどの)特定のカラー成分の値に対応するルミナンスレベルを説明するために使用され得る。信号値は、通常、線形の光レベル(ルミナンス値)を表す。「コードレベル」、「デジタルコード値」、または「コードワード」という用語は、画像信号値のデジタル表現を指すことがある。通常、そのようなデジタル表現は、非線形の信号値を表す。EOTFは、ディスプレイデバイス(たとえば、ディスプレイデバイス32)に提供される非線形信号値とディスプレイデバイスによって生成される線形カラー値との間の関係を表す。
【0067】
ST2084の仕様は、EOTF適用を以下のように規定した。TFが正規化線形R、G、B値に適用され、そのことはR'G'B'という非線形表現をもたらす。ST2084は、10000ニト(cd/m2)としてのピーク輝度に関連するNORM=10000による正規化を規定している。
【0069】
範囲0〜1に正規化されたx軸上の入力値(線形カラー値)およびy軸上の正規化された出力値(非線形カラー値)を用いて、PQ EOTFが
図7において可視化される。
図7における曲線から見られるように、入力信号のダイナミックレンジの1パーセント(低照度)が、出力信号のダイナミックレンジの50%に変換される。
【0070】
入力線形カラー値を表すために使用され得る有限数のコードワードがある。
図7は、PQ EOTFの場合、利用可能なコードワードのほぼ50%が低照度入力信号に専用であり、照度がより高い入力信号に対してより少数の利用可能なコードワードしか残さないことを示す。したがって、比較的照度が高い入力信号のわずかな変化は、これらのわずかな変化を表すのに不十分なコードワードしかないのでキャプチャされないことがある。しかしながら、照度が低い入力信号に対して不必要に多数の利用可能なコードワードがあり得、そのことは、比較的照度が低い入力信号のどんなにわずかな変化でさえ、異なるコードワードによって表され得ることを意味する。したがって、照度が低い入力信号にとって利用可能なコードワードの大きい分布と、照度が高い入力信号にとって利用可能なコードワードの比較的小さい分布とがあり得る。
【0071】
通常、EOTFは浮動小数点精度を有する関数として規定される。したがって、逆TF、すなわち、いわゆるOETFが適用される場合、この非線形性を有する信号に誤差が持ち込まれない。ST2084において指定される逆TF(OETF)は、逆PQ関数として規定される。
【0073】
浮動小数点精度を用いると、EOTFおよびOETFの逐次的な適用は、誤差のない完全な再構成をもたらす。しかしながら、この表現はストリーミングサービスまたはブロードキャスティングサービスにとって最適でない。非線形R'G'B'データの、ビット精度が一定のもっとコンパクトな表現が、以下で説明される。EOTFおよびOETFが現在極めて活発な研究の対象であり、いくつかのHDRビデオコーディングシステムにおいて利用されるTFがST2084とは異なる場合があることに留意されたい。
【0074】
HDRに対して、他の伝達関数も検討中である。例は、Philips TFまたはBBCハイブリッド「ログガンマ」TFを含む。BBCハイブリッド「ログガンマ」TFは、SDR後方互換性のためのRec709 TFに基づく。ダイナミックレンジを拡張するために、BBCハイブリッドは、より高い入力ルミナンスにおいてRec709曲線に第3の部分を追加する。曲線の新たな部分は対数関数である。
【0075】
Rec709において規定されるOETFは、
【0077】
であり、ただし、Lは画像のルミナンス0≦L≦1であり、Vは対応する電気信号である。Rec2020において、同じ式が次のように指定される。
【0079】
ただし、Eは、基準白色レベルによって正規化され、基準カメラカラーチャネルR、G、Bを用いて検出されることになる無条件の光強度に比例する電圧である。E'は、得られた非線形信号である。
10ビットシステムの場合、α=1.099およびβ=0.018である。
12ビットシステムの場合、α=1.0993およびβ=0.0181である。
【0080】
明示的に述べられないが、αおよびβは次の連立方程式に対する解である。
4.5β=αβ
0.45-(α-1)
4.5=0.45αβ
-0.55
【0081】
第1の式は、E=βにおける線形関数およびガンマ関数の値を同等に扱うことであり、第2の式は、やはりE=βにおける2つの関数の傾きである。
【0082】
ハイブリッド「ログガンマ」の追加の部分が以下に示され、
図27がOETFを示す。たとえば、
図27は、一例として、ハイブリッドログガンマ伝達関数および潜在的なターゲットレンジを示す。
【0084】
図27において、グラフの右下のボックスの中のそれぞれの凡例を一致させるために、それぞれの曲線がA、B、C、D、およびEを用いてマークされている。詳細には、Aは10ビットPQ-EOTFに対応し、Bは8ビットBT.709 EOTFに対応し、Cは10ビットBT.709 EOTFに対応し、Dは10ビットBBCハイブリッドログガンマEOTFに対応し、Eは12ビットPQ-EOTFに対応する。
【0085】
図28は、ニーポイント付近での放物線の勾配が調整可能である伝達関数を示す。
図28は、勾配調整例が5000[cd/m
2]の一例として図示されるにすぎない。しかしながら、勾配が調整可能な伝達関数の他の例が可能である。
【0086】
RGBデータは、通常、画像キャプチャリングセンサーによって生成されるので入力として利用される。しかしながら、この色空間は、その成分の間に大きい冗長性を有し、コンパクトな表現にとって最適でない。よりコンパクトかつよりロバストな表現を達成するために、RGB成分は、通常、圧縮にとってもっと適切な、さほど相関のない色空間、たとえば、YCbCrに変換される(すなわち、色変換が実行される)。この色空間は、ルミナンス情報およびカラー情報の形態の輝度を、異なる無相関成分に分離する。
【0087】
現代のビデオコーディングシステムの場合、一般に使用される色空間は、ITU-R BT.709またはITU-R BT.709において指定されるようなYCbCrである。BT.709規格におけるYCbCr色空間は、R'G'B'からY'CbCr(非定常ルミナンス表現)への以下の変換プロセスを指定する。
【0089】
上記のことはまた、Cb成分およびCr成分に関する除算を回避する以下の近似的な変換を使用して実施され得る。
・Y'=0.212600*R'+0.715200*G'+0.072200*B'
・Cb=-0.114572*R'-0.385428*G'+0.500000*B' (4)
・Cr=0.500000*R'-0.454153*G'-0.045847*B'
【0090】
ITU-R BT.2020規格は、R'G'B'からY'CbCr(非定常ルミナンス表現)への以下の変換プロセスを指定する。
【0092】
上記のことはまた、Cb成分およびCr成分に関する除算を回避する以下の近似的な変換を使用して実施され得る。
・Y'=0.262700*R'+0.678000*G'+0.059300*B'
・Cb=-0.139630*R'-0.360370*G'+0.500000*B' (6)
・Cr=0.500000*R'-0.459786*G'-0.040214*B'
【0093】
両方の色空間が正規化されたままであることに留意されたい。したがって、範囲0〜1の中に正規化された入力値に対して、得られた値は範囲0〜1にマッピングされる。概して、浮動小数点精度を伴って実施される色変換は、完全な再構成をもたらし、したがって、このプロセスはロスレスである。
【0094】
量子化および/または固定小数点変換の場合、上記で説明した段階を処理することは、通常、浮動小数点精度表現で実施され、したがって、それらはロスレスと見なされ得る。しかしながら、このタイプの精度は、民生用電子機器用途のほとんどにとって冗長かつ高価であると見なされ得る。そのようなサービスに対して、ターゲット色空間の中の入力データは、固定小数点精度のターゲットビット深度に変換される。いくつかの検討は、丁度可知差異未満のひずみしか有しない16fストップのHDRデータを提供するために、PQ TFと組み合わされた10〜12ビット精度が十分であることを示す。10ビット精度を用いて表されるデータは、最先端のビデオコーディング解決策のほとんどを用いてさらにコーディングされ得る。この変換プロセスは、信号量子化を含み、損失のあるコーディングの要素であり、変換されるデータに持ち込まれる不正確さの根源である。
【0095】
ターゲット色空間の中のコードワードに適用されるそのような量子化の一例、この例ではYCbCrが、以下に示される。浮動小数点精度で表される入力値YCbCrが、固定ビット深度の信号、すなわち、Y値に対するBitDepthYおよびクロマ値(Cb,Cr)に対するBitDepthCに変換される。
・D
Y'=Clip1
Y(Round((1<<(BitDepth
Y-8))*(219*Y'+16)))
・D
Cb=Clip1
C(Round((1<<(BitDepth
C-8))*(224*Cb+128))) (7)
・D
Cr=Clip1
C(Round((1<<(BitDepth
C-8))*(224*Cr+128)))
ただし、
Round(x)=Sign(x)*Floor(Abs(x)+0.5)、
Sign(x)=-1(x<0の場合)、0(x=0の場合)、1(x>0の場合)、
Floor(x)はx以下の最大の整数、
Abs(x)=x(x>=0の場合)、-x(x<0の場合)、
Clip1
Y(x)=Clip3(0,(1<<BitDepth
Y)-1,x)、
Clip1
C(x)=Clip3(0,(1<<BitDepth
C)-1,x)、
Clip3(x,y,z)=x(z<xの場合)、y(z>yの場合)、x(それ以外の場合)
である。
【0096】
いくつかの技法は、HDRおよびWCGビデオデータにとって好適でないことがある。PH、Phillips、およびBBCなどの、HDRビデオシステムのための現在公開されているEOTFのほとんどは、独立にR、G、およびB成分に適用され、HDRビデオの空間時間的な統計量または局所的な輝度レベルを考慮に入れない、静的でコンテンツに依存しない1D伝達関数である。HDRビデオコーディングシステムにおけるそのようなEOTF利用の観点から、そのような手法は、HDRビデオコンテンツの提供される視覚的品質にとって最適でないビット割振りにつながることになる。
【0097】
現在利用されるHDR処理パイプラインの第2の問題は、ターゲット色空間の中の非線形コードワードの、浮動小数点精度表現から表現への静的変換である。通常、コードワード空間は固定されており、時間的および空間的に変化するHDRコンテンツは、最適な表現を獲得しないことになる。後続するこのことは、これらの2つの問題におけるさらなる詳細を提供する。
【0098】
静的1D EOTFの非最適性に関して、ST2084において規定されるEOTFは、おそらく輝度の特定のレベル(cd/m2としての数値)における人間の視覚系(HVS)の知覚的感度に基づくPQ TFとして示される、静的でコンテンツに依存しない1D伝達関数を指定する。ほとんどの検討が輝度に対するHVS知覚的感度をcd/m2単位で規定するという事実にもかかわらず、PQ TFは、式1におけるように(たとえば、R'、G'、およびB'を決定するために)独立にカラー値R、G、およびBの各々に適用され、このRGBピクセルの輝度強度を利用しない。このことは、得られたR'G'B'の非線形性におけるHVS感度の近似にPQ TFの推定される不正確さをもたらし、たとえば、R'G'B'カラー値の組合せは、独立にR、G、B成分の各々に適用されたものと比較して別のPQ TF値に関連付けられているべき、異なるレベルの輝度をもたらし得る。
【0099】
その上、この設計意図に起因して、PQ TFは、2つのモードにおけるHVSの感度、すなわち、いわゆる夜間明所視ビジョンと暗所視(いわゆる、夜間)ビジョンとを組み合わせる。後者のビジョンはシーンの輝度が0.03cd/m2未満であるときに有効になり、色知覚の低減を犠牲にしてはるかに高い感度を特徴とする。高い感度を可能にするために、利用されるPQ TFは、
図7において反映されるように、より大量のコードワードを低い照度値に与える。そのようなコードワード分布は、ピクチャの輝度が低いHVSであり夜間ビジョンモードで動作することになる場合に最適であり得る。たとえば、そのようなコードワード分布は、輝度の軽微な変化にコードワードが敏感である場合に最適であり得る。しかしながら、典型的なHDRピクチャは、明るい景色と暗く雑音の多いフラグメントとを特徴とすることがあり、暗く雑音の多いフラグメントは、最も近くの明るいサンプルからマスクすることに起因して視覚的品質に影響を及ぼすことにならないが、現在の静的TFを用いたビットレートに大幅に寄与することになる。
【0100】
コードワード空間の非効率な利用に関して、浮動小数点精度で表される非線形コードワード(Y',Cb,Cr)の量子化、および式(7)に示すような固定数のビットを用いたそれらの表現(D
Y',D
Cb,D
Cr)は、HDRパイプラインの主要な圧縮ツールである。通常、量子化の前の入力信号のダイナミックレンジは1.0よりも小さく、Y成分に対して0〜1内の範囲、ならびにCbおよびCr成分に対して範囲-0.5〜0.5に属する。
【0101】
しかしながら、HDR信号の実際の分布はフレームごとに変化し、したがって、式(7)に示すような量子化は、最小の量子化誤差を与えないことになり、1.0に等しい予期される範囲に整合するようにHDR信号のダイナミックレンジを調整することによって改善され得る。
【0102】
上記で説明した問題に対処するために、以下の解決策が検討され得る。EOTFは、
図8に示すように、たとえば、フレームレベルで、コンテンツ特性次第で形状が変更される、動的なコンテンツ適応型伝達関数として規定され得る。
図8は、適応形状TFユニット112'を有するコンテンツ適応型HDR処理パイプライン(エンコーダ側)を示す。たとえば、
図8は、TFユニットによって利用される適応形状TF関数を含むビデオプリプロセッサ19の別の例を示す。
【0103】
図8の構成要素は、概して、
図4の構成要素に適合する。
図8の例では、
図4における例の参照番号と同じ参照番号を有する構成要素は同じである。ただし、
図4に示すようにTFユニット112が静的TFを適用する代わりに、
図8では適応型TFユニット112'は適応型TFを適用する。この例では、適応型TFユニット112'がデータ短縮を実行する方式は適応的であり、ビデオコンテンツに基づいて変化することができる。対応するビデオポストプロセッサ31が図示されないが、そのような例示的なビデオポストプロセッサ31は、
図5の逆伝達関数ユニット126の静的逆伝達関数ではなく適応型逆伝達関数を実行することになる。ビデオプリプロセッサ19は、TFユニット112'がTFを適応させるために使用するパラメータを示す情報を出力することになる。ビデオポストプロセッサ31は、それに従って適応型逆伝達関数を適応させるためにTFユニット112'によって使用されるパラメータを示すような情報を受信することになる。
【0104】
しかしながら、この技法は、伝達関数適合のパラメータの大規模なシグナリング、ならびにこの適応性をサポートする実装形態、たとえば、複数のルックアップテーブルまたは実施分岐を記憶することを必要とし得る。その上、PQ EOTFの非最適性のいくつかの態様は、3D伝達関数を通じて解決され得る。いくつかの実装形態にとって、またシグナリングコストにとって、そのような手法は、あまりに高価であり得る。
【0105】
本開示では、シグナリングとは、シンタックス要素、またはビデオデータを復号もしくは別の方法で再構成するために使用される他のビデオデータの出力を指す。シグナリングパラメータは、宛先デバイス14によって後で検索できるように記憶されてよく、または宛先デバイス14へ直接送信されてもよい。
【0106】
本開示は、静的固定伝達関数(TF)を採用するコンテンツ適応型HDRビデオシステムを説明する。本開示は、静的TFをパイプラインの中に保つが信号特性を固定処理フローに適応させることを説明する。このことは、TFによって処理されるべき信号またはTFの適用から得られた信号のいずれかの、適応処理によって達成され得る。いくつかの技法は、これらの適合メカニズムの両方を組み合わせてよい。デコーダ(たとえば、ビデオポストプロセッサ31)において、エンコーダ側(たとえば、ビデオプリプロセッサ19)において適用されるものとは逆の適応プロセスが適用されることになる。
【0107】
図9は、固定TFを用いたコンテンツ適応型HDR処理パイプライン(エンコーダ側)を示す概念図である。図示したように、ビデオプリプロセッサ19は、ダイナミックレンジ調整(DRA1)とも呼ばれる前処理ユニット134、TFユニット112、DRA2とも呼ばれる後処理ユニット138、色変換ユニット114、および量子化ユニット116を含む。
【0108】
図示の例では、ビデオプリプロセッサ19は、固定機能およびプログラマブルの回路構成として構成され得る。たとえば、ビデオプリプロセッサ19は、前処理ユニット134、TFユニット112、後処理ユニット138、色変換ユニット114、および量子化ユニット116を一緒または別個に形成する、トランジスタ、キャパシタ、インダクタ、受動素子および能動素子、算術論理ユニット(ALU:arithmetic logic unit)、初等関数ユニット(EFU:elementary function unit)などを含み得る。いくつかの例では、ビデオプリプロセッサ19は、前処理ユニット134、TFユニット112、後処理ユニット138、色変換ユニット114、および量子化ユニット116に、それらのそれぞれの機能を実行させる命令を実行するプログラマブルコアを含む。そのような例では、ビデオデータメモリ132またはいくつかの他のメモリが、ビデオプリプロセッサ19によって実行される命令を記憶し得る。
【0109】
図9では、理解しやすいように、ビデオデータメモリ132も図示される。たとえば、ビデオデータメモリ132は、ビデオプリプロセッサ19がビデオデータを受信する前に、ビデオデータを一時的に記憶し得る。別の例として、ビデオプリプロセッサ19が出力する任意のビデオデータは、ビデオデータメモリ132の中に一時的に記憶され得る(たとえば、ビデオエンコーダ20に出力される前にビデオデータメモリの中に記憶する)。ビデオデータメモリ132は、ビデオプリプロセッサ19の一部であってよく、またはビデオプリプロセッサ19の外部にあってもよい。
【0110】
ビデオデータメモリ132の中に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。ビデオデータメモリ132は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)などの様々なメモリデバイスのうちのいずれかによって形成され得る。様々な例では、ビデオデータメモリ132は、ビデオプリプロセッサ19の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってもよい。
【0111】
以下でより詳細に説明するように、前処理ユニット134(たとえば、DRA1)は、静的伝達関数ユニット112が静的伝達関数を適用する前に、線形RGBデータ110を前処理する。前処理の一部は、スケーリングおよびオフセットすること(たとえば、入力値にファクタを掛けてスケーリングし、値を加えてオフセットすること)を含む。いくつかの例では、前処理ユニット134は、ビデオコンテンツに基づいてビデオデータを前処理する(たとえば、スケーリングファクタおよびオフセットファクタがビデオコンテンツに基づく)。TFユニット112は、次いで、複数のコードワードを生成するために、スケーリングおよびオフセットされた入力値に伝達関数を適用する。この例では、TFユニット112は、生成される複数のコードワードが入力カラー値(たとえば、線形RGBデータ110)よりも小さいダイナミックレンジでカラーを表すように、入力値のダイナミックレンジを短縮する静的伝達関数を適用する。
【0112】
後処理ユニット136(たとえば、DRA2)は、TFユニット112によって生成されたコードワードに対して後処理機能を実行する。たとえば、TFユニット112の出力は、カラー値を表す非線形コードワードであり得る。後処理ユニット136はまた、TFユニット112によって出力されたコードワードをスケーリングおよびオフセットし得る。色変換ユニット114は、後処理ユニット138の出力に対して色変換(たとえば、RGBからYCrCbへの変換)を実行し、量子化ユニット116は、色変換ユニット114の出力に対して量子化を実行する。
【0113】
線形RGBデータ110を前処理することによって、前処理ユニット134は、線形RGBデータ110をスケーリングおよびオフセットするように構成され得、その結果、TFユニット112は静的伝達関数を適用するが、TFユニット112の入力は、TFユニット112の出力コードワードの中により大きい線形性があるように調整される。さらに、線形RGBデータ110を前処理することによって、前処理ユニット134は、ビデオコンテンツを使用して、空間時間的な統計量または局所的な輝度レベルを考慮に入れるスケーリングおよびオフセットパラメータを選択し得る。
【0114】
前処理ユニット134がスケーリングおよびオフセットパラメータを決定し得る様々な方法があり得る。一例として、前処理ユニット134は、ピクチャの中のカラーの各々のヒストグラムを決定(たとえば、赤色に関するヒストグラム、緑色に関するヒストグラム、および青色に関するヒストグラムを決定)し得る。ヒストグラムは、特定のカラーの何個のピクセルが特定の照度レベルであるのかを示す。前処理ユニット134が、TFユニット112が出力するコードワードの線形性を高めるようにカラー値をスケーリングおよびオフセットすることができるように、前処理ユニット134は、TFユニット112が適用すべき伝達関数の数理的表現を用いてプリプログラムされ得る。
【0115】
前処理ユニット134は、限定された範囲[hist_min〜hist_max]にわたる入力信号のヒストグラムを、入力信号の許容されるコードワード空間の全ダイナミックレンジ[0〜1]にわたって正規化し得る。前処理ユニット134は、カラー値の各々のヒストグラムを水平に伸張すること、ならびに伸張されたヒストグラムに基づいてオフセットおよびスケールを決定することによって、入力信号に適用されるべきスケーリングおよびオフセットパラメータを決定し得る。たとえば、オフセットおよびスケールを決定するための式は、次のようであってよい。
Offset1=-hist_min
Scale1=1/(hist_max-hist_min)
【0116】
前処理ユニット134は、Offset1およびScale1に関する式を使用してカラーの各々に対してオフセットおよびスケーリングパラメータを決定し得、より詳細に説明するようにoffset1およびscale1パラメータを適用してカラー値をスケーリングおよびオフセットし得る。前処理ユニット134が前処理のためのオフセットおよびスケーリングパラメータを決定する様々な他の方法があり得、上式は一例として提供される。
【0117】
後処理ユニット138がオフセットおよびスケーリングパラメータを決定することをカラーコードワードに適用することを除き、後処理ユニット138は、同様の方法でオフセットおよびスケーリングパラメータを決定し得る。たとえば、後処理ユニット138は、TFユニット112が出力するコードワードの各々のヒストグラムを決定し得る。後処理ユニット138は、限定された範囲[hist_min〜hist_max]にわたるコードワードのヒストグラムを、許容されるコードワード空間の全ダイナミックレンジ[0〜1]にわたって正規化し得る。後処理ユニット138は、カラー値の各々に対してコードワードの各々のヒストグラムを伸張すること、ならびに伸張されたヒストグラムに基づいてオフセットおよびスケールを決定することによって、コードワードに適用されるべきスケーリングおよびオフセットパラメータを決定し得る。たとえば、オフセットおよびスケールを決定するための式は、次のようであってよい。
Offset1=-hist_min
Scale1=1/(hist_max-hist_min)
【0118】
後処理ユニット138は、Offset2およびScale2に関する式を使用してカラーの各々に対してオフセットおよびスケーリングパラメータを決定し得、より詳細に説明するようにoffset2およびscale2パラメータを適用してコードワードをスケーリングおよびオフセットし得る。前処理ユニット138が後処理のためのオフセットおよびスケーリングパラメータを決定する様々な他の方法があり得、上式は一例として提供される。
【0119】
色変換ユニット114は後処理ユニット138に後続するものとして図示されるが、いくつかの例では、色変換ユニット114が最初にRGBからYCrCbにカラーを変換してよい。後処理ユニット138は、YCrCbコードワードに対して動作を実行し得る。ルーマ(Y)成分の場合、後処理ユニット138は、上記で説明したものと類似の技法を使用してスケーリングおよびオフセット値を決定し得る。以下のことは、クロマ成分用のスケールおよびオフセットを決定するための技法を説明する。
【0120】
後処理ユニット138は、入力ビデオ信号の測色および出力ビデオ信号のターゲット測色から、CbおよびCrカラー成分用のスケーリングおよびオフセットパラメータを決定し得る。たとえば、原色座標(xXt,yXt)(ただし、XはR、G、Bカラー成分に対して定められる)によって指定されるターゲット(T)カラーコンテナ、
【0122】
および原色座標(xXn,yXn)(ただし、XはR、G、Bカラー成分に対して定められる)によって指定されるネイティブ(N)色域、
【0125】
両方の色域に対する白色点座標は、whiteP=(xW,yW)に等しい。DRAパラメータ推定ユニット(たとえば、後処理ユニット138)は、原色座標から白色点までの間の距離の関数として、CbおよびCrカラー成分用のscale Cbおよびscale Crを導出し得る。そのような推定の一例は、以下のように与えられる。
rdT=sqrt((primeT(1,1)-whiteP(1,1))^2+(primeN(1,2)-whiteP(1,2))^2)
gdT=sqrt((primeT(2,1)-whiteP(1,1))^2+(primeN(2,2)-whiteP(1,2))^2)
bdT=sqrt((primeT(3,1)-whiteP(1,1))^2+(primeN(3,2)-whiteP(1,2))^2)
rdN=sqrt((primeN(1,1)-whiteP(1,1))^2+(primeN(1,2)-whiteP(1,2))^2)
gdN=sqrt((primeN(2,1)-whiteP(1,1))^2+(primeN(2,2)-whiteP(1,2))^2)
bdN=sqrt((primeN(3,1)-whiteP(1,1))^2+(primeN(3,2)-whiteP(1,2))^2)
scale Cb=bdT/bdN
scale Cr=sqrt((rdT/rdN)^2+(gdT/gdN)^2)
そのような実施形態のためのCbおよびCr offsetパラメータは0に等しく設定されてよく、すなわち、offset Cb=offset Cr=0である。
【0126】
いくつかの例では、色変換ユニット114は、前処理ユニット134が前処理を適用する前にRGBをYCrCbに変換し得る。そのような例の場合、前処理ユニット134は、後処理ユニット138に対して上記で説明したものと類似の動作をYCrCb値に対して実行し得、TFユニット112が伝達関数を適用する前の入力カラー値に対して予期し得る。
【0127】
前処理ユニット134は、入力カラー値に適用されたとき、TFユニット112が伝達関数を適用するときにTFユニット112の出力が線形コードワードである(たとえば、コードワードによって表されるカラー値の範囲が、カラーおよびコードワード空間にわたって相対的に同じである)ような出力をもたらすスケーリングおよびオフセットファクタを決定するために、ヒストグラムに基づいてスケーリングおよびオフセットファクタを決定し得る。いくつかの例では、後処理ユニット138は、TFユニット112が出力するコードワードにスケーリングおよびオフセットすることを適用し得る。後処理ユニット138は、利用可能なコードワードの範囲をより良好に利用するようにコードワードを修正し得る。たとえば、TFユニット112の出力は、コードワード空間全体を利用しないコードワードであってよい。コードワード空間にわたってコードワードを広げることによって、量子化ユニット116による信号対量子化雑音比が改善され得る。
【0128】
信号対量子化雑音比は、通常、最大公称信号強度と量子化誤差(量子化雑音とも呼ばれる)との間の関係を反映し、すなわち、SNR=E(x^2)/E(n^2)であり、ただし、E(x^2)は信号の電力であり、E(n^2)は量子化雑音の電力であり、ここで、^は指数演算を表し、Eはエネルギーであり、nは雑音である。
【0129】
信号xにスケーリングパラメータ>1.0を掛けることは、信号の電力の増大をもたらすことになり、したがって、改善された信号対量子化雑音比、すなわち、SNR2=E((scale*x)^2)/E(n^2)>SNRにつながることになる。
【0130】
ビデオエンコーダ20は、ビデオプリプロセッサ19の出力を受信し、ビデオプリプロセッサ19が出力するビデオデータを符号化し、後でビデオデコーダ30によって復号およびビデオポストプロセッサ31によって処理できるように符号化ビデオデータを出力する。いくつかの例では、ビデオエンコーダ20は、前処理ユニット134および後処理ユニット138のうちの一方または両方のためのスケーリングおよびオフセットファクタを示す情報を、符号化およびシグナリングし得る。いくつかの例では、スケーリングおよびオフセットファクタを示す情報を符号化およびシグナリングするのではなく、ビデオプリプロセッサ19は、ビデオポストプロセッサ31がスケーリングおよびオフセットファクタをそこから決定するヒストグラムなどの情報を出力し得る。ビデオデータが前処理ユニット134によって前処理または後処理ユニット138によって後処理された方式を示す、ビデオプリプロセッサ19が出力する情報は、適応型伝達関数(ATF)パラメータと呼ばれることがある。
【0131】
様々な例では、TFユニット112によって適用される伝達関数が静的である(たとえば、コンテンツ適応型でない)ことを理解されたい。しかしながら、TFユニット112に出力されるデータは(たとえば、前処理ユニット134によって)適応されてよく、かつ/またはTFユニット112が出力するデータは(たとえば、後処理ユニット138によって)適応されてよい。このようにして、ビデオプリプロセッサ19は、線形RGBデータ110のダイナミックレンジと比較して低減されたダイナミックレンジでのカラーを表すコードワードを出力し、ここで、出力コードワードはビデオコンテンツに基づく。したがって、TFユニット112への入力およびTFユニット112の出力を適応させることによって、前処理ユニット134と、TFユニット112と、後処理ユニット138との組合せは、適応型伝達関数を適用するように機能する。
【0132】
図10は、固定TFを用いたコンテンツ適応型HDR処理パイプライン(デコーダ側)を示す概念図である。図示したように、ビデオポストプロセッサ31は、逆量子化ユニット122、逆色変換ユニット124、逆後処理ユニット144、逆TFユニット126、および逆前処理ユニット142を含む。
【0133】
図示の例では、ビデオポストプロセッサ31は、固定機能およびプログラマブルの回路構成として構成され得る。たとえば、ビデオポストプロセッサ31は、逆量子化ユニット122、逆色変換ユニット124、逆後処理ユニット144、逆TFユニット126、および逆前処理ユニット142を一緒または別個に形成する、トランジスタ、キャパシタ、インダクタ、受動素子および能動素子、算術論理ユニット(ALU)、初等関数ユニット(EFU)などを含み得る。いくつかの例では、ビデオポストプロセッサ31は、逆量子化ユニット122、逆色変換ユニット124、逆後処理ユニット144、逆TFユニット126、および逆前処理ユニット142に、それらのそれぞれの機能を実行させる命令を実行するプログラマブルコアを含む。そのような例では、ビデオデータメモリ140またはいくつかの他のメモリが、ビデオポストプロセッサ31によって実行される命令を記憶し得る。
【0134】
図10では、理解しやすいように、ビデオデータメモリ140も図示される。たとえば、ビデオデータメモリ140は、ビデオポストプロセッサ31によって出力されるビデオデータを一時的に記憶し得る。別の例として、ビデオデコーダ30がビデオポストプロセッサ31に出力する任意のビデオデータは、ビデオデータメモリ140の中に一時的に記憶され得る(たとえば、ビデオポストプロセッサ31によって受信される前にビデオデータメモリの中に記憶する)。ビデオデータメモリ140は、ビデオポストプロセッサ31の一部であってよく、またはビデオポストプロセッサ31の外部にあってもよい。
【0135】
ビデオデータメモリ140の中に記憶されたビデオデータは、たとえば、ディスプレイデバイス32に出力され得る。ビデオデータメモリ140は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)などの様々なメモリデバイスのうちのいずれかによって形成され得る。様々な例では、ビデオデータメモリ140は、ビデオポストプロセッサ31の他の構成要素とともにオンチップであってよく、またはそれらの構成要素に対してオフチップであってもよい。
【0136】
ビデオポストプロセッサ31は、ビデオプリプロセッサ19の逆のプロセスを実行するように構成され得る。たとえば、ビデオデコーダ30は、ビデオポストプロセッサ31に復号ビデオデータを出力し、復号ビデオデータは、ビデオプリプロセッサ19がビデオエンコーダ20に出力したビデオデータと実質的に類似であり得る。加えて、ビデオデコーダ30は、ビデオプリプロセッサ19によって実行された前処理および後処理の逆を実行するために、適応型伝達関数(ATF)パラメータをビデオポストプロセッサ31に出力し得る。
【0137】
逆量子化ユニット122は、ビデオデコーダ30からビデオデータを受信し、量子化ユニット116の逆の動作を実行する。逆量子化ユニット122の出力は、量子化されていないビデオデータである。逆色変換ユニットは、色変換ユニット114の動作とは逆の動作を実行する。たとえば、色変換ユニット114がRGBカラーをYCrCbカラーに変換した場合、逆色変換ユニット124は、YCrCbカラーをRGBカラーに変換する。
【0138】
逆後処理ユニット144は、後処理ユニット138の逆の動作を実行し得る。逆後処理ユニット144は、第1のダイナミックレンジでのカラーを表すコードワードを受信し、第1のダイナミックレンジは、この場合、後処理ユニット138の出力と同じダイナミックレンジである。
【0139】
後処理ユニット138を用いて行われたようにスケーリングファクタを掛けるのではなく、逆後処理ユニット144は、後処理ユニット138がそれを用いて乗算したのと実質的に類似のスケーリングファクタで除算し得る。後処理ユニット138が、スケーリングされたコードワードからオフセットを減じた場合、逆後処理ユニット144は、逆スケーリングされたコードワードにオフセットを加え得る。逆後処理ユニット144の出力は、コードワード空間全体にわたって広げられないコードワードであってよい。いくつかの例では、逆後処理ユニット144は、ビデオプリプロセッサ19からスケーリングおよびオフセットパラメータ(たとえば、スケールおよびオフセットファクタ)を受信し得る。いくつかの例では、逆後処理ユニット144は、逆後処理ユニット144がスケーリングおよびオフセットファクタをそこから決定する情報を受信し得る。
【0140】
逆TFユニット126は、TFユニット112の逆の動作を実行する。たとえば、TFユニット112は、カラー値のダイナミックレンジと比較してより小さいダイナミックレンジを表すコードワードの中でカラー値を短縮した。逆TFユニット126は、より小さいダイナミックレンジからより大きいダイナミックレンジに戻してカラー値を拡張する。逆TFユニット126の出力は線形RGBデータであり得るが、元のRGBデータをもたらすために除去されることが必要ないくつかの前処理があり得る。
【0141】
逆前処理ユニット142は、逆TFユニット126の出力を受信し、前処理ユニット134によって適用された前処理の逆を実行する。逆後処理ユニット144は、第2のダイナミックレンジでのカラーを表すカラー値を受信し、第2のダイナミックレンジは、この場合、前処理ユニット134の出力と同じダイナミックレンジである。
【0142】
前処理ユニット134を用いて行われたようにスケーリングファクタを掛けるのではなく、逆前処理ユニット142は、前処理ユニット134がそれを用いて乗算した実質的に類似のスケーリングファクタで除算し得る。前処理ユニット134が、スケーリングされたカラー値からオフセットを減じた場合、逆前処理ユニット142は、逆スケーリングされたカラー値にオフセットを加えてよい。いくつかの例では、逆前処理ユニット142は、ビデオプリプロセッサ19からスケーリングおよびオフセットパラメータ(たとえば、スケーリングおよびオフセットファクタ)を受信し得る。いくつかの例では、逆前処理ユニット142は、逆前処理ユニット142が、スケーリングおよびオフセットファクタをそこから決定する情報(たとえば、ヒストグラム情報)を受信し得る。
【0143】
逆前処理ユニット142の出力は、線形RGBデータ128であり得る。線形RGBデータ128および線形RGBデータ110は、実質的に類似のはずである。ディスプレイデバイス32は、線形RGBデータ128を表示し得る。
【0144】
TFユニット112と同様に、逆TFユニット126が適用する逆伝達関数は、静的逆伝達関数である(たとえば、ビデオコンテンツに適応性を示さない)。しかしながら、逆TFユニット126に出力されるデータは(たとえば、逆後処理ユニット144によって)適応されてよく、かつ/または逆TFユニット126が出力するデータは(たとえば、逆前処理ユニット142によって)適応されてよい。このようにして、ビデオポストプロセッサ31は、後処理ユニット138の出力の低減されたダイナミックレンジと比較して、低減されたダイナミックレンジでないカラーを表すカラー値を出力する。したがって、逆TFユニット126への入力および逆TFユニット126の出力を適応させることによって、逆後処理ユニット144と、逆TFユニット126と、逆前処理ユニット142との組合せは、適応型逆伝達関数を適用するように機能する。
【0145】
前処理ユニット134と後処理ユニット138の両方が
図9に示されるが、本開示で説明する例示的な技法はそのように限定されない。いくつかの例では、ビデオプリプロセッサ19は、前処理ユニット134を含み得るが、後処理ユニット138を含まなくてもよい。いくつかの例では、ビデオプリプロセッサ19は、後処理ユニット138を含み得るが、前処理ユニット134を含まなくてもよい。
【0146】
したがって、
図9は、デバイスがビデオデータメモリ132およびビデオプリプロセッサ19を含む、コンテンツ適応型HDRシステムにおけるビデオ処理のためのデバイス(たとえば、ソースデバイス12)に関する例を示す。ビデオプリプロセッサ19は、固定機能もしくはプログラマブルの回路構成のうちの少なくとも1つ、または両方の組合せを備え、第1のダイナミックレンジでのカラー(たとえば、線形RGBデータ110)を表すビデオデータの複数のカラー値を受信するように構成される。ビデオプリプロセッサ19は、第2のダイナミックレンジでの短縮カラー値を表す複数のコードワードを生成するために、短縮されているビデオデータに適応性を示さない静的伝達関数を使用してカラー値を短縮するように構成されたTFユニット112を含む。第2のダイナミックレンジは、第1のダイナミックレンジよりもコンパクトである。
【0147】
ビデオプリプロセッサ19は、前処理ユニット134または後処理ユニット138のうちの少なくとも1つを含み得る。前処理ユニット134は、短縮されるカラー値を生成するための短縮の前に、カラー値を前処理するように構成される。後処理ユニット138は、カラー値の短縮から得られたコードワードを後処理するように構成される。ビデオプリプロセッサ19は、短縮カラー値(たとえば、後処理ユニット138がない例において)または後処理された短縮カラー値(たとえば、後処理ユニット138がビデオプリプロセッサ19の一部である例において)のうちの1つに基づくカラー値(たとえば、量子化ユニット116の出力)を出力するように構成され得る。
【0148】
また、逆後処理ユニット144と逆前処理ユニット142の両方が
図10に示されるが、本開示で説明する例示的な技法はそのように限定されない。いくつかの例では、ビデオポストプロセッサ31は、逆後処理ユニット144を含み得るが、逆前処理ユニット142を含まなくてもよい(たとえば、ビデオプリプロセッサ19が前処理ユニット134を含まない例において、ただし、技法はそのように限定されない)。いくつかの例では、ビデオポストプロセッサ31は、逆前処理ユニット142を含み得るが、逆後処理ユニット144を含まなくてもよい(たとえば、ビデオプリプロセッサ19が後処理ユニット138を含まない例において、ただし、技法はそのように限定されない)。
【0149】
したがって、
図10は、デバイスがビデオデータメモリ140およびビデオポストプロセッサ31を含む、コンテンツ適応型HDRシステムにおけるビデオ処理のためのデバイス(たとえば、宛先デバイス14)に関する例を示す。ビデオポストプロセッサ31は、固定機能もしくはプログラマブルの回路構成のうちの少なくとも1つ、または両方の組合せを備え、ビデオデータの短縮カラー値を表す第1の複数のコードワードを受信するように構成される。短縮カラー値は、第1のダイナミックレンジ(たとえば、ビデオプリプロセッサ19が出力するコードワードの短縮されたダイナミックレンジと実質的に類似のダイナミックレンジ)でのカラーを表す。ビデオポストプロセッサ31は、非短縮カラー値を生成するために、ビデオデータに適応性を示さない逆静的伝達関数を使用して、第1の複数のコードワードに基づいて第2の複数のコードワードを非短縮化するように構成された、逆TFユニット126を含む。非短縮カラー値は、第2のダイナミックレンジ(たとえば、線形RGBデータ110と実質的に類似のダイナミックレンジ)でのカラーを表す。第2の複数のコードワードは、逆後処理されている第1の複数のコードワード(たとえば、逆後処理ユニット144が含まれる例において)または第1の複数のコードワード(たとえば、逆後処理ユニット144が含まれない例において)からのコードワードのうちの1つである。
【0150】
ビデオポストプロセッサ31は、逆後処理ユニット144または逆前処理ユニット142のうちの少なくとも1つを含み得る。逆後処理ユニット144は、非短縮化された第2の複数のコードワードを生成するために、第1の複数のコードワードを逆後処理するように構成される。逆前処理ユニット142は、第2の複数のコードワードの非短縮化から得られた非短縮カラー値を逆前処理するように構成される。ビデオプリプロセッサ19は、非短縮カラー値(たとえば、逆前処理ユニット142が含まれない例では逆TFユニット126の出力)または逆前処理された非短縮カラー値(たとえば、逆前処理ユニット142の出力)を、表示のために出力するように構成され得る。
【0151】
図9および
図10は、固定(たとえば、静的)伝達関数から得られるアーティファクトを低減するための、コンテンツ適応型ダイナミックレンジ調整(DRA)のための例示的な技法を示す。しかしながら、TFユニット112が受信または出力するデータを前処理および/または後処理することによって、ならびに逆TFユニット126が受信または出力するデータを逆後処理および/または逆前処理することによって、例示的な技法は、依然として静的伝達関数を使用し得るが、やはりコンテンツ適応型DRAを達成し得る。
【0152】
本開示は、静的固定伝達関数(TF)を採用するコンテンツ適応型HDRビデオシステムを説明する。以下のことは、一緒に使用され得るかまたは別個に維持され得るいくつかの例を説明する。簡単のために、様々な並べ替えおよび組合せが可能であるという理解とともに、それらが別個に説明される。
【0153】
上記で説明したように、本開示で説明する技法は、(たとえば、符号化されるビデオコンテンツを生成するために)静的TFをパイプラインで利用するが、信号特性を固定処理フローに適応させる。このことは、TFユニット112によって(たとえば、前処理ユニット134を用いて)処理されるべき信号、またはTFユニット112による(たとえば、後処理ユニット138を用いた)TFの適用から得られた信号のいずれかの、適応処理によって達成され得る。
【0154】
一例では、前処理ユニット134は、TFユニット112が伝達関数を適用する前に、入力線形カラー値の線形(スケーリングおよびオフセット)前処理によって適応性を可能にし得る。前処理ユニット134に加えて、または前処理ユニット134の代わりに、後処理ユニット138は、TFユニット112が線形カラー値にTFを適用することから得られた非線形コードワードの線形(スケーリングおよびオフセット)後処理によって、適応性を可能にし得る。逆後処理ユニット144、逆TFユニット126、および逆前処理ユニット142は、それぞれ、後処理ユニット138、TFユニット112、および前処理ユニット134の逆を適用し得る。
【0155】
前処理ユニット134は、オフセットOffset1およびスケールScale1を適用することによって入力信号(たとえば、線形RGB110)に線形前処理を適用して、TF出力の好ましいコードワード分布(たとえば、各コードワードがルミナンスなどの入力カラー値のほぼ等しい範囲を表すような)を達成し得る。後処理ユニット138は、線形後処理をTFユニット112の出力に対して適用し得る。線形後処理は、パラメータScale2およびOffset2によって規定され、TFユニット112が伝達関数を適用した後、利用可能なコードワード空間(ダイナミックレンジ)の効率的な利用を可能にする。
【0156】
上記で説明した例では、前処理ユニット134は、前処理を線形RGBデータ110に対して適用する。ただし、本開示で説明する技法はそのように限定されない。RGBは、前処理ユニット134が前処理をそこで実行し得る、HDRの1つの色空間である。概して、前処理ユニット134は、TFユニット112が伝達関数を適用することに先行する、HDR処理フローの任意の色空間において(たとえば、図示の例における入力線形RGBにおいて、ただし、YCbCr色空間などの他の色空間も可能である)、前処理を実施し得る。
【0157】
逆前処理ユニット142も、任意の色空間において逆前処理を実行するように構成され得る。そのような例では、逆前処理ユニット142は、非線形カラー値(たとえば、非線形RGBデータ、ただし、YCbCrを含む他の色空間が可能である)を逆TFユニット126から受信し得る。
【0158】
上記の例は、後処理ユニット138がRGB色空間(たとえば、TFユニット112によって適用される伝達関数に起因する非線形RGB)において後処理を実行することを説明する。ただし、本開示で説明する技法はそのように限定されない。RGBは、後処理ユニット138が後処理をそこで実行し得る、HDRの1つの色空間である。概して、後処理ユニット138は、TFユニット112が伝達関数を適用することに後続する、HDR処理フローの任意の色空間において(たとえば、図示の例における非線形RGBにおいて、ただし、YCbCr色空間などの他の色空間も可能である)、後処理を実施し得る。
【0159】
逆後処理ユニット144も、任意の色空間において逆後処理を実行するように構成され得る。そのような例では、逆後処理ユニット144は、カラー値(たとえば、非線形短縮RGBデータ、ただし、YCbCrを含む他の色空間が可能である)をビデオデコーダ30から、場合によっては逆量子化の後に受信し得る。
【0160】
上記で説明したように、前処理ユニット134は、エンコーダ側にあり、より良好なパラメータ導出を引き起こすために、ヒストグラム分布入力などのHDR信号特性またはターゲット色空間(たとえば、線形RGBデータ110、または色変換ユニット114が線形RGBデータ110を受信しカラーをYCrCb値に変換する場合はYCrCb)から、あるいは補助色空間において、Scale1およびOffset1ファクタなどのパラメータを導出および適用し得る。後処理ユニット138も、TFユニット112の出力からScale2およびOffset2ファクタなどのパラメータを導出および適用し得る。
【0161】
前処理ユニット134および/または後処理ユニット138は、Scale1およびOffset1ファクタ、ならびに/または逆前処理ユニット142および逆後処理ユニット144が、それぞれ、前処理ユニット134および後処理ユニット138の動作の逆を実行するために利用するScale2およびOffset2ファクタを出力し得る。いくつかの例では、Scale1、Offset1、Scale2、および/またはOffset2ファクタを出力するのではなく、前処理ユニット134および後処理ユニット138は、逆前処理ユニット142および逆後処理ユニット144が同じプロセスを使用して逆プロセス用のScale1、Offset1、Scale2、および/またはOffset2を決定できるように、Scale1、Offset1、Scale2、および/またはOffset2を決定するために使用される情報を出力し得る。場合によっては、前処理ユニット134および後処理ユニット138は、1つまたは複数のScale1、Offset1、Scale2、および/またはOffset2を出力し得、他のScale1、Offset1、Scale2、および/またはOffset2を導出するために使用され得る情報を出力し得る。
【0162】
いくつかの例では、ビデオプリプロセッサ19は(たとえば、コントローラ回路を介して)、前処理ユニット134および/または後処理ユニット138の使用を選択的に可能にし得る。したがって、ビデオプリプロセッサ19は、前処理ユニット134および/または後処理ユニット138が有効化されているかどうかを示す情報を出力し得る。それに応答して、ビデオポストプロセッサ31は(たとえば、コントローラ回路を介して)、逆後処理ユニット144および/または逆前処理ユニット142の使用を選択的に可能にし得る。
【0163】
ビデオエンコーダ20が様々なパラメータを符号化および出力し得る様々な方法があり得る。たとえば、SEI(補足エンハンスメント情報)/VUI(ビデオ有用性情報)によるビットストリームを通じてパラメータを、もしくはサイド情報としてデコーダ側(たとえば、ビデオポストプロセッサ31)に提供されているパラメータを、または入力および出力色空間、利用される伝達関数などの他の識別からデコーダ側によって(たとえば、ビデオポストプロセッサ31によって)導出されるパラメータを、ビデオエンコーダ20はシグナリングし得、ビデオデコーダ30は受信し得る。
【0164】
以下のことは、本開示で説明する例示的な技法に従って適用され得る例示的な技法を説明する。これらの技法の各々は、別個にまたは任意の組合せで適用されてよい。また、これらの技法の各々は、さらに以下でより詳細に説明される。
【0165】
上記の例では、ビデオプリプロセッサ19は、様々な方法でパラメータ情報をシグナリングし得る。単に一例として、ビデオエンコーダ20は符号化ユニット(たとえば、エントロピー符号化ユニット)を含み、エントロピー符号化ユニットはシグナリングされるパラメータ情報を符号化し得る。同様に、ビデオデコーダ30は復号ユニット(たとえば、エントロピー復号ユニット)を含み、エントロピー復号ユニットはシグナリングされたパラメータ情報を復号し得、ビデオポストプロセッサ31はビデオデコーダ30からパラメータ情報を受信し得る。パラメータ情報がシグナリングおよび受信され得る様々な方法があり得、本開示で説明する技法はいかなる具体的な手法にも限定されない。また、上述のように、ビデオプリプロセッサ19は、すべての場合においてパラメータ情報をシグナリングする必要があるとは限らない。いくつかの例では、ビデオポストプロセッサ31は、必ずしもビデオプリプロセッサ19からパラメータ情報を受信することなく、パラメータ情報を導出し得る。
【0166】
以下は、単に例示のために使用される例示的な実装形態であり、限定的と見なされるべきでない。たとえば、本開示は、適用されるTF(たとえば、静的な、コンテンツ適応型でない)の前の入力線形カラー値の線形(スケールおよびオフセット)前処理によって、および/または線形カラー値に対して適用されるTFから得られた非線形コードワードの線形(スケールおよびオフセット)後処理によって、適応性を可能にすることを説明する。以下は、技法の実装形態のいくつかの非限定的な例である。
【0167】
提案される順方向ATF処理フローが
図11に示される。この例では、入力色空間、たとえば、RGBにおける線形信号成分sが、出力信号s1を生成するために前処理ユニット134によって前処理されている。TFユニット112は、s1としての値に伝達関数を適用し、そのことは出力コードワードS1をもたらす。以下のステップにおいて、S1としてのコードワードは、出力値S2を生成するために後処理ユニット138によって後処理されている。
【0168】
図12は、
図11に示すATF処理フローの逆である。たとえば、逆後処理ユニット144は、コードワードS2'に対して逆後処理を実行する。コードワードS2'は、コードワードS2と実質的に類似であり得る。逆後処理ユニット144による逆後処理の出力は、コードワードS1'である。コードワードS1'は、コードワードS1と類似であり得る。逆TFユニット126はコードワードS1'を受信し、逆TFユニット126の出力はs1'であり、s1'はカラー値を表しカラー値s1と類似である。逆前処理ユニット142は入力としてs1'を受信し、カラー値s'を出力する。カラー値s'は、カラー値sと実質的に類似である。
【0169】
説明しやすいように、様々なプロセスは
図11および
図12に示されていない。たとえば、色変換および量子化ならびにそれらのそれぞれの逆プロセスは、
図11および
図12に示されていない。
【0170】
以下のことは、前処理ユニット134および逆前処理ユニット142が実行し得る例示的な動作およびアルゴリズムを説明する。前処理ユニット134は、パラメータScale1およびOffset1によって規定される。前処理ユニット134は、入力信号特性を、TFユニット112によって適用される伝達関数のいくつかの特性に調整することをターゲットにする。そのような処理の例が
図13Aおよび
図13Bに示される。
図13Aは、PQT伝達関数が上に置かれたHDR信号の赤色カラー成分のヒストグラムを示し、可視化のために信号が異なるスケールで示されることに留意されたい。PQTFから得られる非線形信号のヒストグラムが
図13Bに示される(たとえば、TFユニット112が前処理ユニット134を使用せずにPQTFを適用した場合)。
【0171】
図示したように、(
図7と同じ)PQTFの曲線によって、PQTFは輝度が低いサンプルにより多くのコードワードをもたらし、たとえば、入力ダイナミックレンジの0〜1%が出力ダイナミックレンジの50%を用いて表されることを許容する。そのような分布は、いくつかのクラスの信号および/またはアプリケーションにとって最適でないことがある。
【0172】
線形前処理のために、前処理ユニット134は、オフセットOffset1およびスケールScale1を適用することによって線形前処理を入力信号sに適用して、TFユニット112からのTF出力の好ましいコードワード分布を達成し得る。
s1=Scale1*(s-Offset1) (8)
【0173】
式8によって生成された信号値s1は式1において利用され、式(3〜7)において指定されるHDR処理パイプラインが(たとえば、色変換ユニット114および量子化ユニット116によって)適用される。
【0174】
デコーダ側(たとえば、ビデオポストプロセッサ31)において、逆前処理ユニット142は、次のように前処理とは逆の動作を適用する。
【0176】
ただし、項s1'は、式2において指定されるように逆TFによって生成される線形カラー値を示す。言い換えれば、s1'は、逆TFユニット126によって適用される逆伝達関数の出力である。
【0177】
パラメータ(Scale1=0.1およびOffset1=0.0001)を用いたそのような前処理の効果が
図14に示される。
図14は、
図13Aとして図示した同じ入力から生成される。S1信号のコードワードが
図13Bに示す例と比較して利用可能なダイナミックレンジをより効率的に占有し、高い輝度値がはるかに大きいダイナミックレンジを占有するので(
図13Bにおけるヒストグラムピークと比較して
図14におけるヒストグラムS1の伸張されたピークを参照)、それらの表現がより正確であることが理解され得る。
【0178】
いくつかの例では、TFユニット112への入力は、両極性信号であってよい。両極性信号とは、前処理ユニット138が出力する値のうちのいくつかが負の値を示し、他方が正の値であることを意味する。両極性信号に対してさえTFユニット112による静的TF(また、逆TFユニット126を用いたそれの逆)の適用を可能にするために、TFユニット112は、前処理ユニット134の出力を調整し得、かつ/または伝達関数を適用した後の出力を調整し得る。たとえば、前処理ユニット134の出力が負の値である場合、TFユニット126は、前処理ユニット134の出力の絶対値に対して伝達関数を適用するとともにその結果をsign(s)関数の出力と乗算してよく、ただし、sは前処理ユニット134の出力であり、sign(s)=-1(s<0の場合)、0(s=0の場合)、1(s>0の場合)である。したがって、静的TFの適用を可能にするために、TFユニット112は、正の値で規定された関数を両極性信号に対して利用してよく、そのことは、両極性信号の符号のいくつかの特別な処置を暗示する。
【0179】
以下のことは、両極性信号処理を用いた伝達関数を説明する。いくつかの例では、技法は、両極性入力信号を処理できるように式(1)を修正し得る。
【0181】
この技法は、たとえば、信号の中程度に明るいレベルにとってより正確な表現が必要とされる場合、
図9のTFユニット112が、ダイナミックレンジの必要とされる領域にTFの所望の急勾配を割り振ることを許容し得る。パラメータscale=0.1およびoffset=0.1を用いたこの概念の可視化が
図15Aおよび
図15Bに示される。
【0182】
両極性信号に対する逆TFが、修正された式2のように、それに応じて規定されることになる。
【0184】
たとえば、
図10の逆TFユニット126は、入力コードワードが正である場合のための逆伝達関数を適用し得る。負である入力コードワードの場合、逆TFユニット126は、入力コードワードの絶対値を決定し得、入力コードワードの絶対値に逆伝達関数を適用し得る。TFユニット126は、その結果をsign()関数の出力と乗算し得、ここで、sign()関数への入力は逆TFユニット126が受信したコードワードである。
【0185】
以下のことは、後処理ユニット138および逆後処理ユニット144が実行し得る例示的な動作およびアルゴリズムを説明する。後処理ユニット138は、パラメータScale2およびOffset2によって規定され、TFがTFユニット112によって適用された後の利用可能なコードワード空間(ダイナミックレンジ)の効率的な利用を可能にする。そのような処理の例が以下で説明される。
【0186】
以下のことは、TFがTFユニット112によって適用された後のHDR信号の一例である。
図16Aは、TFユニット112によるTFの適用の後のHDR信号の赤色カラー成分のヒストグラムを示す。図示したように、信号のヒストグラムは全コードワード空間を占有せず、むしろこの例ではコードワードの60%だけが実際に利用される。そのような表現は、信号が浮動小数点精度で表されるまで問題でない。しかしながら、式7によって持ち込まれる量子化誤差を低減するために、未使用コードワードバジェット(codeword budget)がより効率的に利用され得る。
【0187】
後処理ユニット138は、TFユニット112によってTFを適用した後に生成されるコードワードSに、オフセットおよびスケーリングの線形演算を適用し得る。
S2=scale2*(S-offset2) (12)
【0188】
いくつかのフレームワークでは、後処理ユニット138(
図9)は、次のように、得られたS値を指定されたダイナミックレンジにクリッピングし得る
S2=min(maxValue,max(S2,minValue)) (13)
【0189】
この後処理に続いて、信号値S2が式(3)において利用され、式(3〜7)において指定されるHDR処理フローが続く。
【0190】
デコーダ側(たとえば、ビデオポストプロセッサ31)において、逆後処理ユニット144は、次のように実施される、後処理とは逆の動作を適用し得る。
【0192】
いくつかのフレームワークでは、逆後処理ユニット144は、次のように、得られたS値を指定されたダイナミックレンジにクリッピングし得る。
S'=min(maxValue,max(S',minValue)) (15)
ただし、項S2'は、復号された非線形カラー値を示す。
【0193】
パラメータ(scale=0.8およびoffset=0)を用いたそのような後処理の効果が
図16Bに示される。S2信号のコードワードが、利用可能なコードワード空間(ダイナミックレンジ)をより効率的に占有し、高い輝度値がはるかに大きいダイナミックレンジを占有するので(
図16Aにおけるヒストグラムピークと比較して
図16BにおけるヒストグラムS2の伸張されたピークを参照)、それらの表現がより正確であることが理解され得る。
【0194】
上記の例では、式(12)の動作を適用するのではなく、後処理ユニット138は、TFユニット112が適用する非線形伝達関数の代わりに線形伝達関数である第2の伝達関数を適用するものと見なされ得る。この第2の伝達関数を適用することは、入力コードワードをScale2と乗算しOffset2を加算することと等価であり得、逆後処理ユニット144は、このプロセスの逆を適用する。したがって、いくつかの例では、後処理ユニット138および逆後処理ユニット144(
図10)の技法は、追加の線形伝達関数TF2を通じて展開され得る。この追加の線形伝達関数TF2のパラメータは、たとえば、
図17A〜
図17Cに示すように、Scale2およびOffset2を通じて指定され得る。
【0195】
たとえば、
図17Aは、
図7(たとえば、TFユニット112が適用する静的伝達関数)と同じ伝達関数挙動を示す。
図17Bは、後処理ユニット138がTFユニット112の出力に適用する、Scale2=1およびOffset2=0を伴う伝達関数を示す。
図17Cは、後処理ユニット138がTFユニット112の出力に適用する、Scale2=1.5およびOffset2=-0.25を伴う伝達関数を示す。
【0196】
上記の例は、前処理ユニット134(DRA1)および/または後処理ユニット138(DRA2)、ならびに対応する逆前処理ユニット142および逆後処理ユニット144がある場合を説明する。いくつかの例では、後処理は、色変換の前ではなく色変換の後に(たとえば、ターゲット色空間において)実行され得る。たとえば、
図18に示すように、TFユニット112は色変換ユニット114に出力し、後処理ユニット150は色変換の後に後処理を適用する。同様に、
図19に示すように、逆後処理ユニット152は、逆色変換ユニット124が色変換を適用する前に、逆量子化ユニット122の出力に対して逆後処理を適用する。
図18および
図19において、前処理ユニット134および逆前処理ユニット142は簡単のために図示されず、他の例において含まれてよい。
【0197】
後処理ユニット150および逆後処理ユニット152は、後処理ユニット138および逆後処理ユニット144と同様に、ただし異なる色空間(たとえば、RGB色空間ではなくYCbCr色空間)において機能し得る。たとえば、後処理ユニット150および逆後処理ユニット152は、スケーリングおよびオフセットのために、Scale2およびOffset2パラメータを利用し得る。以下のことは、ターゲット色空間における後処理を説明する。
【0198】
いくつかのターゲット色空間(たとえば、BT709またはBT2020のYCbCr)を利用するいくつかのHDRシステムの場合、R、G、およびBとしての3つの成分に対して同一のパラメータを利用する後処理を用いると、後処理は、入力RGB色空間において適用するのではなく、出力色空間において適用され得る。
【0199】
たとえば、式3および式5において規定されるようなYCbCr色変換に関して、
【0201】
であり、ただし、変数a、b、c、d1、およびd2は色空間のパラメータであり、R'、G'、B'はEOTFを適用した後の入力色空間における非線形カラー値である。
【0202】
式12および式13において規定される後処理は、入力色空間において、すなわち、R'、G'、B'に適用され、結果としてR2'、G2'、B2'となる。
R2'=scale2*(R'-offset2)
G2'=scale2*(G'-offset2) (17)
B2'=scale2*(B'-offset2)
【0203】
式17において、R、G、およびB領域における後処理のパラメータが同一であると想定される。
【0204】
しかしながら、式16および式17において規定されるプロセスの線形性に起因して、後処理はターゲット色空間において実施され得る。
Y2'=scaleY*Y'-offsetY
Cb2=scaleB*Cb-offsetB (18)
Cr2=scaleR*Cr-offsetR
ここで、後処理ユニット150は、後処理のパラメータを次のように算出する。
【0206】
デコーダ側(たとえば、ビデオポストプロセッサ31)において、逆後処理ユニット152による後処理の逆の動作が次のように実施され得る。
【0208】
ただし、変数Y2'、Cb、およびCrは復号および逆量子化された成分であり、逆後処理のパラメータは式19において示すように算出される。
【0209】
BT2020において規定されるYCbCr色変換の場合、ターゲット色空間において実施される後処理のパラメータは、入力色空間における後処理のパラメータおよび色変換のパラメータから次のように導出される。
【0211】
いくつかの例では、入力色空間における後処理のパラメータから導出されたパラメータを用いてターゲット色空間において実施される式20は、次式20Aのように実施され得る。
【0213】
いくつかの例では、上の式20Aは、除算ではなく乗算を通じて実施され得る。
【0214】
非線形処理に対して、上記で説明した前処理技法および後処理技法に加えて、後処理ユニット138または150および逆後処理ユニット144または152は、コードワード利用をさらに改善するために、いくつかの非線形技法を利用し得る。ヒストグラム末尾処理の一例として、後処理ユニット138または150および逆後処理ユニット144または152は、指定された範囲の外部にあるサンプルに適用される、パラメータ区分的に指定される伝達関数を用いて、上記で規定した線形コードワード後処理を増補し得る。
【0215】
上記で指定されたHDR信号の処理フローは、通常、既定の範囲の中で動作する。
Range={minValue,MaxValue}
【0216】
正規化された信号および上の式の場合には、値は、
Range={0.0〜1.0}、
minValue=0.0 (22)、
maxValue=1.0
である。
【0217】
式12において提案される後処理(たとえば、後処理ユニット138によって実行されるような)は、Offset2およびScale2をコードワードS1に適用することを通じて、得られたS2値が指定された範囲境界をオーバーフローする状況につながり得る。データが指定された範囲の中にとどまることを確実にするために、たとえば、
図20A〜
図20Cに示すように、クリッピングの動作が式13における範囲{minValue〜maxValue}に適用され得る。
【0218】
図20Aは、S2のヒストグラムに関する範囲にクリッピングが適用された後処理を示す図である。
図20Bは、式10における後処理の後のS2のヒストグラムに関する範囲にクリッピングが適用された後処理を示す別の図である。
図20Cは、式11におけるクリッピングの後のS2のヒストグラムに関する範囲にクリッピングが適用された後処理を示す別の図である。
【0219】
図20Cに示すように、後処理の後にクリッピングを適用することは、指定された範囲の外部の情報の回復不可能な損失につながることになる。Scale2/Offset2を適用することによって限定されたコードワード空間の中でHDR信号を効率的に表しHVS知覚に対するTF想定を維持するために、後処理ユニット138または150は、コンテンツ適応型ヒストグラム末尾処理を許容するために、指定されたRangeの外部のコードワードをもたらすカラーサンプルの特別な処理を用いて、上記で規定されたコードワード後処理を増補し得る。
【0220】
後処理ユニット138または150は、範囲の外部に属する式12から得られるすべてのS2に対して、パラメータ区分的に指定される伝達関数を適用し得る。それらのサンプルの表現のパラメータは、指定された範囲に属するS2コードワードとは別個に、ビデオエンコーダ20によって符号化およびシグナリングされる。
【0221】
例示として、式22において指定されるように、式12から得られるコードワードS2をそれらの関係によって、サポートされるデータ範囲に分類するための動作が行われ得る。
S2
in=∀S2∈Range (23)
S2
low=∀S2≦minValue (24)
S2
high=∀S2≧maxValue (25)
ただし、S2
inサンプルはRange=[minValue〜maxValue]に属し、S2
lowは範囲の外部にあるサンプルのセットであるとともにminValue以下であり、S2
highは範囲の外部のサンプルであるとともにmaxValue以上である。
【0222】
技法は、S2
lowおよびS2
highの各々に対してコードワード値を個別に指定/決定/シグナリングすることによって、範囲の外部にあるS2
lowおよびS2
highとしてのカラー値に関する、式13におけるクリッピングの動作を置換し得、またはRangeの外部の情報を最適に表すコードワードのグループを用いて指定/決定/シグナリングし得る。
【0223】
以下は、サンプルS2
lowおよびS2
highに関するクリッピングを置換し得る例示的な決定プロセスの非限定的な例である。
a.S2
lowおよびS2
highの各々に対して平均値を決定する。
Smin=mean(S2
low) (26)
Smax=mean(S2
high)
b.S2
lowおよびS2
highの各々に対して中央値を決定する。
Smin=median(S2
low) (27)
Smax=median(S2
high)
c.S2
lowおよびS2
highの各々に対して、いくつかの基準の下でそれらのサンプルセットの各々を最適に表す値、たとえば、絶対差分(SAD)の最小和、平均2乗誤差(MSE)、またはレートひずみ最適化(RDO)コストを決定する。
Smin=fun(S2
low) (28)
Smax=fun(S2
high)
【0224】
そのような例では、各サンプル値S2
lowまたはS2
highは、式(13)に示すようなクリッピングされた値とではなく、それぞれ、式(26、27)において導出されるSminおよびSmax値と置換される。
【0226】
提案される非線形処理のパラメータは、S2
lowおよびS2
highの各々を表すコードワードである。これらのコードワードは、デコーダ側(たとえば、ビデオポストプロセッサ31)にシグナリングされ、再構成されたプロセスにおいて逆後処理ユニット144または152によって利用される。
【0228】
たとえば、パラメータ区分的処理の上記の例では、後処理ユニット138または150は、TFユニット112によるカラー値の短縮(たとえば、伝達関数の適用から得られるダイナミックレンジの短縮)から得られたコードワードをスケーリングおよびオフセット(たとえば、Scale2およびOffset2を適用)し得る。後処理ユニット138または150は、スケーリングおよびオフセットされたコードワードのセットが、最小しきい値よりも小さいかまたは最大しきい値よりも大きい値を有することを決定し得る。後処理ユニット138または150は、最小しきい値よりも小さい値を有するスケーリングおよびオフセットされたコードワードのセットに第1のコードワード(たとえば、Smin)を割り当ててよく、最大しきい値よりも大きい値を有するスケーリングまたはオフセットされたコードワードのセットに第2のコードワード(たとえば、Smax)を割り当ててよい。最小値と最大値との間にスケーリングおよびオフセットされたコードワードに対して、後処理ユニット138または150は、上記の例において説明したようなスケーリングおよびオフセットを適用し得る。
【0229】
逆後処理ユニット144または152(
図10または
図19)は、パラメータ区分的処理の逆を実行し得る。たとえば、逆後処理ユニット144または152は、ビデオデコーダ30から受信された複数のコードワードからのコードワードの第1のセットが、最小しきい値よりも小さいかまたは最大しきい値よりも大きい値を有する短縮カラー値(たとえば、ダイナミックレンジがTFユニット112による伝達関数の適用がもとで短縮されている場合)を表すことを決定し得る。逆後処理ユニット144または152は、複数のコードワードからのコードワードの第2のセットが、最小しきい値以上かつ最大しきい値以下の値を有する短縮カラー値を表すことを決定し得る。そのような例の場合、逆後処理ユニット144または152は、最小しきい値よりも小さいコードワードの第1のセットのコードワードに第1のコードワード(たとえば、Smin)を割り当ててよく、最大しきい値よりも大きいコードワードの第1のセットのコードワードに第2のコードワード(たとえば、Smax)を割り当ててよい。SminおよびSmaxの値は、ビデオプリプロセッサ19からビデオエンコーダ20を介してシグナリングされ得る。逆後処理ユニット144または152は、コードワードの第2のセット(たとえば、最小値よりも大きくかつ最大値よりも小さいもの)を、上記で説明したもののような例示的な技法を使用して逆スケーリングおよび逆オフセットし得る。
【0230】
上記の例では、スケーリングおよびオフセットパラメータを区分的に適用することが説明される。いくつかの例では、スケーリングおよびオフセットパラメータのそのような区分的適用は、前処理ユニット134および後処理ユニット138または152と逆後処理ユニット144または152および逆前処理ユニット142の両方に関して拡張され得る。
【0231】
たとえば、逆後処理ユニット144または152が受信するコードワードは、コードワードの第1のセットおよびコードワードの第2のセットを含み得る。コードワードの第1のセットは、ダイナミックレンジの第1の区分に属する値を有する短縮カラー値を表し、コードワードの第2のセットは、ダイナミックレンジの第2の区分に属する値を有する短縮カラー値を表す。そのような例では、逆後処理ユニット144または152は、スケーリングおよびオフセットパラメータの第1のセット(たとえば、第1のScale2および第1のOffset2)を用いて、コードワードの第1のセットをスケーリングおよびオフセットし得る。逆後処理ユニット144または152は、スケーリングおよびオフセットパラメータの第2のセット(たとえば、第2のScale2および第2のOffset2)を用いて、コードワードの第2のセットをスケーリングおよびオフセットし得る。
【0232】
別の例として、逆前処理ユニット142が受信するカラー値は、非短縮カラー値の第1のセットおよび非短縮カラー値の第2のセットを含み得る。非短縮カラー値の第1のセットは、ダイナミックレンジの第1の区分に属する値を有する非短縮カラー値を表し、非短縮カラー値の第2のセットは、ダイナミックレンジの第2の区分に属する値を有する非短縮カラー値を表す。そのような例では、逆前処理ユニット142は、スケーリングおよびオフセットパラメータの第1のセット(たとえば、第1のScale1および第1のOffset1)を用いて、カラー値の第1のセットをスケーリングおよびオフセットし得る。逆前処理ユニット142は、スケーリングおよびオフセットパラメータの第2のセット(たとえば、第2のScale1および第2のOffset1)を用いて、カラー値の第2のセットをスケーリングおよびオフセットし得る。
【0233】
同様に、前処理ユニット134は、カラー値の第1のセットがダイナミックレンジの第1の区分に属する値を有することを決定し得、カラー値の第2のセットがダイナミックレンジの第2の区分に属する値を有することを決定し得る。前処理ユニット134は、スケーリングおよびオフセットパラメータの第1のセット(たとえば、第1のScale1および第1のOffset1)を用いて、カラー値の第1のセットをスケーリングおよびオフセットし得る。前処理ユニット134は、スケーリングおよびオフセットパラメータの第2のセット(たとえば、第2のScale1および第2のOffset1)を用いて、カラー値の第2のセットをスケーリングおよびオフセットし得る。
【0234】
後処理ユニット138または152は、複数のコードワードからのコードワードの第1のセットがダイナミックレンジの第1の区分に属する値を有することを決定し得、複数のコードワードからのコードワードの第2のセットがダイナミックレンジの第2の区分に属する値を有することを決定し得る。後処理ユニット138または152は、スケーリングおよびオフセットパラメータの第1のセット(たとえば、第1のScale2および第1のOffset2)を用いて、コードワードの第1のセットをスケーリングおよびオフセットし得、スケーリングおよびオフセットパラメータの第2のセット(たとえば、第2のScale2および第2のOffset2)を用いて、コードワードの第2のセットをスケーリングおよびオフセットし得る。
【0235】
図21Aおよび
図21Bは、末尾処理を用いた後処理の後のコードワードのヒストグラムを示す図である。
図22は、静的TFを用いたコンテンツ適応型HDRパイプライン、エンコーダ側の別の例を示す概念図である。
図23は、静的TFを用いたコンテンツ適応型HDRパイプライン、デコーダ側の別の例を示す概念図である。
図22および
図23が、いくつかの例では、スケーリングおよびオフセットされた値が範囲の外側にある場合にSminおよびSmaxコードワードが出力されることを示し、いくつかの例では、値が範囲の外側にある場合にSmin'およびSmax'(その両方がSminおよびSmaxと類似である)が受信されたコードワードであることを示すことを除いて、
図22および
図23は
図11および
図12と実質的に同一である。
【0236】
上記の例では、最小値を下回るコードワードのために単一のコードワードが予約され、最大値よりも大きいコードワードのために単一のコードワードが予約される。いくつかの例では、指定されたRangeの外部でヒストグラム末尾に属するコードワードは、2つ以上の予約済みコードワードを用いて表され得る。
【0237】
後処理ユニット138は、コードワードSのダイナミックレンジの指定された領域に対していくつかの予約済みコードワードを決定およびシグナリングし得る。デコーダ側(たとえば、ビデオポストプロセッサ31)において、逆後処理ユニット144は、指定された領域に対する予約済みコードワードを決定し得る。技法は、予約済みコードワードの各々に関連する信号値S'を、デコーダにおいて決定、シグナリング、および適用し得る。
【0238】
図24は、カラー値を処理する2つの予約済みコードワードを用いたヒストグラムを示す図である。たとえば、S2
lowにおけるカラー値を処理する2つの予約済みコードワードを用いたこの例の可視化が
図24に示される。この例では、S2
lowコードワードは2つのサブレンジに分割され、ここで、各サブレンジは、それぞれ、コードワードSmin1およびSmin2を用いてコーディングされる。これらのコードワードの各々に関連する値は、式26〜28と類似のプロセスの中でエンコーダ側において(たとえば、ビデオプリプロセッサ19によって)決定され、デコーダ30にシグナリングされ、デコーダ側において(たとえば、ビデオポストプロセッサ31によって)式29を通じて適用される。
【0239】
いくつかの例では、技法は伝達関数の形態で実施され得る。伝達関数の非線形部、すなわち、所与の例におけるヒストグラム末尾処理は、デコーダ側において決定される、たとえば、デコーダ側においてシグナリングおよび適用される、値に関連している2つの予約済みコードワードを有する適応型伝達関数を用いてモデル化され得る。
【0240】
図25Aおよび25Bは、パラメータ適応型関数を示す図である。
図25Aは、Scale2=1.5およびOffset=-0.25としてモデル化された線形伝達関数(TF2)を示し、
図25Bは、Scale2=1.5およびOffset=-0.25としてパラメータ化非線形セグメントを用いてモデル化された線形伝達関数(TF2)を示す。非線形セグメントは、決定された2つのカラー値に関連するとともにデコーダにシグナリングされる値Smin1およびSmin2である2つのコードワードを用いてパラメータ化され、S2
highのコードワードはRangeのmaxValueにクリッピングされる。
【0241】
以下のことは、区分的線形伝達関数を用いた(たとえば、後処理ユニット138または150を用いた)後処理を説明する。後処理ユニット138または150は、
Range={r
i}、ただしi=0〜N (30)
となるようにSのコードワード空間を有限数のセグメントrに分割し得る。
【0242】
これらのセグメントr
iの各々に対して、後処理ユニット138または150は、独立した後処理パラメータScale2
iおよびOffset2
iを決定し、エンコーダ側およびデコーダ側においてScale2iおよびOffset2iパラメータをシグナリングかつコードワードSに適用して、出力S2を生成する。
Scales={Scale2i}、Offsets={Offset2i}、i=0〜N
【0243】
伝達関数の項において、例示的なアルゴリズムは次のようにモデル化され得る。
図26A〜
図26Cは、区分的線形伝達関数を用いた後処理を示す図である。
図26AはPQTFによって生成されるS信号のヒストグラムを示し、
図26Bは後処理のパラメータ区分的線形TFを示し、
図26Cは後処理のTFによって生成されるS2信号のヒストグラムを示す。
【0244】
図26AにおけるS信号のヒストグラムでは、ダイナミックレンジの導入されるセグメントが垂直グリッドとともに示される。わかるように、信号は、利用可能なコードワードのうちの約80%を占有しており、利用可能なコードワードのうちの20%は、式12および式13において提案されるように量子化誤差を低減するために利用され得る。同時に、ヒストグラムは、コードワードのかなりの部分がコードワード範囲としての0.6から0.8まで伸張する第4のセグメントにあることを示す。利用可能なコードワードバジェットは、この特有の第4のセグメントに対して量子化誤差を改善するために利用されてよく、他のセグメントに対する表現の精度を変化しないままにする。
【0245】
これらのr個のセグメント(N=5)に関するパラメータを後処理することは、次のように書かれ得る。
Scales2={1,1,1,2,1}、Offsets2={-0.1,-0.1,-0.1,-0.1,0.1}
これは
図26Bに示される区分的線形伝達関数をもたらすことになる。そのようなTFの適用から得られるS2信号のヒストグラムが
図26Cに示される。見られるように、ヒストグラムが左へシフトされてより多くのコードワードを占有し、第4のセグメントにあったピークが大きいダイナミックレンジに関して伸張され、したがって、表現のより高い精度をもたらすとともに量子化誤差を低減する。
【0246】
概して、この方式のパラメータは以下のものを含み得る。
a.ダイナミックレンジに対する区分の数
b.セグメントの各々の範囲
c.これらのセグメントの各々に対するスケールおよびオフセット
【0247】
適用
a.いくつかの例では、技法は、前処理技法、後処理技法、ならびに非線形処理技法を含み得る。いくつかの例では、技法は、指定された範囲内にあるサンプルに適用される、パラメータ区分的に指定された伝達関数を用いて、上記で規定された線形コードワード後処理を増補し得る。一例では、技法は、指定された範囲内の有限数のコードワードを、このパラメータ伝達関数を呼び出すサンプルの識別のために予約し得る。
b.いくつかの例では、前処理技法および後処理技法は、入力信号に適用されるスケールおよびオフセット、すなわち、Scale1およびOffset1ならびに/またはScale2およびOffset2として規定される。いくつかの例では、技法は、伝達関数の形態で実施される。
c.いくつかの例では、非線形処理は、指定されたRangeの外部に属するカラー値を規定するための単一のパラメータ、すなわち、minValueを下回るサンプルに対する1つのパラメータと、maxValueを上回るサンプルに対する別のパラメータとを含み得る。いくつかの例では、別個に規定された伝達関数が適用され得る。
d.いくつかの例では、ダイナミックレンジ調整(DRA)は、カラー成分ごとに独立に(独立したパラメータセット)、たとえば、R、G、B、またはYに対して独立に導かれる。いくつかの例では、すべてのカラー成分に対して単一の成分間パラメータセットが適用される。
e.いくつかの例では、パラメータは、ビデオシーケンス全体に対して決定され得る。いくつかの例では、パラメータは、時間的に適応され得るか、または空間時間適応的である。
f.いくつかの例では、提案される処理は、SDR互換性を有するHDRシステムにおいて利用され得る。そのようなシステムでは、使用中のいくつかの伝達関数を用いて、提案される技法は、たとえば、100ニトを上回るおよび/または0.01ニトを下回るHDR信号を表すコードワードに適用されることになり、処理されないコードワードとしての残部を残し、したがって、SDR互換性をもたらす。
【0248】
パラメータ導出
a.いくつかの例では、前処理および後処理のパラメータは独立に導出される。いくつかの例では、前処理および後処理のパラメータは一緒に導出される。
b.いくつかの例では、パラメータは、量子化誤差を最小化するプロセスから導出されるか、または費用関数を最小化することによって導出され、費用関数は、変換およびコーディングから得られるビットレート、ならびに損失のあるこれらの2つのプロセスによって持ち込まれるひずみの加重和によって形成される。
c.いくつかの例では、パラメータは、その成分に関する情報を使用して成分ごとに別個に決定され得、かつ/または成分間情報を使用することによって導出され得る。
d.いくつかの例では、適用の範囲などのパラメータは、伝達関数TFのタイプおよび特性から決定され得、たとえば、処理は、たとえば、100ニトを上回るHDR信号だけを表すコードワードに適用され得、SDR信号<=100を表すコードワードは変更されないままである。
e.いくつかの例では、範囲のパラメータは、サイド情報としてデコーダに提供され得、処理において利用されるTFに応じて適用され得る。
f.いくつかの例では、適用の範囲などのパラメータは、伝達関数TFのタイプおよび特性から決定され得、たとえば、遷移を特徴とするTFの場合、処理が適用されるダイナミックレンジを決定するために遷移(ニー(knee))の位置が利用され得る。
g.パラメータは、いくつかの予約済みコードワードの識別およびそれらの実際の値を含み得る。
h.パラメータは、予約済みコードワードに関連するプロセスの識別を含み得る。
i.パラメータは、決定された処理を適用するための、コードワード空間内のいくつかのサブレンジを含み得る。
j.パラメータは、決定された処理を適用するための、コードワード値サブレンジ識別を含み得る。
【0249】
パラメータシグナリング
a.いくつかの例では、パラメータは、エンコーダ側(たとえば、ビデオプリプロセッサ19)において推定され、ビットストリーム(メタデータ、SEIメッセージ、VUIなど)を通じてデコーダ(たとえば、ビデオポストプロセッサ31)にシグナリングされる。デコーダは、ビットストリームからパラメータを受信する。
b.いくつかの例では、パラメータは、指定されたプロセスを通じてエンコーダ側およびデコーダ側において、入力信号から、または入力信号および処理フローに関連する他の利用可能なパラメータから導出される。
c.いくつかの例では、パラメータは、明示的にシグナリングされ、デコーダ側においてDRAを実行するのに十分である。いくつかの例では、パラメータは、他の入力信号パラメータ、たとえば、入力色域およびターゲットカラーコンテナ(原色)のパラメータから導出される。
d.いくつかの例では、提案されるシステムのパラメータは、システムにおいて利用される伝達関数(TF)のパラメータとしてシグナリングされ得るか、または特定の伝達関数のためのサイド情報としてデコーダに提供され得る。
e.提案される方式のパラメータは、SEI/VUIによるビットストリームを通じてシグナリングされ得るか、もしくはサイド情報としてデコーダに提供され得るか、または入力および出力色空間、利用される伝達関数などの他の識別からデコーダによって導出され得る。
【0250】
図29は、コンテンツ適応型高ダイナミックレンジ(HDR)システムにおけるビデオ処理の例示的な方法を示すフローチャートである。
図29の例は、受信ビデオデータを表示のためのビデオデータに変換するためのビデオポストプロセッサ31に関して説明される。いくつかの例では、ビデオポストプロセッサ31は、処理が独立しているようにカラーごとに(赤色成分に対して1回、緑色成分に対して1回、青色成分に対して1回)例示的な技法を実行し得る。
【0251】
ビデオポストプロセッサ31は、ビデオデータの短縮カラー値を表す第1の複数のコードワードを受信し、ここで、短縮カラー値は第1のダイナミックレンジでのカラーを表す(200)。たとえば、ビットレート低減のために、ビデオプリプロセッサ19は、カラー値のダイナミックレンジを短縮していてよい。短縮の結果が、第1の複数のコードワードである。ビデオポストプロセッサ31は、ビデオデコーダ30から、またはビデオデータメモリ140を介して、第1の複数のコードワードを直接受信し得る。短縮カラー値は、RGBまたはYCrCbなどの特定の色空間の中にあってよい。短縮カラー値は、逆量子化ユニット122によって逆量子化され得る。
【0252】
逆後処理ユニット144または152は、第2の複数のコードワードを生成するために、コードワードの範囲を低減する逆後処理機能を適用し得る(202)。いくつかの例では、逆後処理ユニット144は、色変換された(たとえば、逆色変換ユニット124を介して色変換された)コードワードに対して逆後処理動作を適用し得る。いくつかの例では、逆後処理ユニット152は色変換の前に逆後処理を適用し得、逆色変換ユニット124は逆後処理ユニット152の出力を変換し得る。
【0253】
逆後処理ユニット144または152は、第1の複数のコードワードに対して逆スケーリングおよび逆オフセットを実行し得る。逆後処理ユニット144または152は、スケーリングおよびオフセットパラメータ(たとえば、Scale2およびOffset2)を受信し得る。いくつかの例では、逆後処理ユニット144または152は、逆後処理ユニット144または152がスケーリングおよびオフセットパラメータをそこから決定する情報を受信し得る。概して、逆後処理ユニット144または152は、コードワードの逆スケーリングおよび逆オフセットのためのスケーリングおよびオフセットパラメータを、受信されたビットストリームまたは別個にシグナリングされたサイド情報から導出し得る。スケーリングおよびオフセットパラメータをビットストリームの中で受信するとき、逆後処理ユニット144または152は、処理されるべきピクチャデータとともにスケーリングおよびオフセットパラメータを受信する。スケーリングおよびオフセットパラメータを別個にシグナリングされたサイド情報として受信するとき、逆後処理ユニット144または152は、処理されるべきいかなるピクチャデータも伴わずにスケーリングおよびオフセットパラメータを受信する(たとえば、任意のピクチャデータの前にスケーリングおよびオフセットパラメータを受信する)。
【0254】
いくつかの例では、コードワードのすべての値に対してスケーリングおよびオフセットを第1の複数のコードワードに適用する代わりに、逆後処理ユニット144または152は、区分的なスケーリングおよびオフセットを適用し得る。たとえば、逆後処理ユニット144または152は、第1の複数のコードワードからのコードワードの第1のセットが、最小しきい値よりも小さいかまたは最大しきい値よりも大きい値を有する短縮カラー値を表すことと、第1の複数のコードワードからのコードワードの第2のセットが、最大しきい値よりも小さくかつ最小しきい値よりも大きい値を有する短縮カラー値を表すこととを決定し得る。
【0255】
逆後処理ユニット144または152は、最小しきい値よりも小さい、コードワードの第1のセットのコードワードに、第1のコードワード(たとえば、Smin')を割り当ててよく、最大しきい値よりも大きい、コードワードの第1のセットのコードワードに、第2のコードワード(たとえば、Smax')を割り当ててよい。逆後処理ユニット144または152は、コードワードの第2のセットを(たとえば、Scale2およびOffset2に基づいて)逆スケーリングおよび逆オフセットし得る。1つの最小しきい値および1つの最大しきい値が説明されるが、いくつかの例では、しきい値の各々に対して予約済みコードワードを伴うそのような複数のしきい値があってもよい。逆後処理ユニット144または152は、Smin'、Smax'、もしくは予約済みコードワードを受信し得、これらのコードワードをどのように決定するのかについての情報を受信し得、またはこれらのコードワードはビデオデータメモリ140の中に事前記憶されてよい。
【0256】
逆TFユニット126は、逆後処理ユニット144から、または逆後処理ユニット152を使用する例における逆色変換ユニット124から、出力を受信する。しかしながら、いくつかの例では、逆後処理ユニット144または152は、有効化されていなくてよく、または利用可能でなくてよい。そのような例では、逆TFユニット126が、第1の複数のコードワードを受信する。
【0257】
逆TFユニット126は、非短縮カラー値を生成するために、ビデオデータに適応性を示さない逆静的伝達関数を使用して、第1の複数のコードワードに基づいて第2の複数のコードワードを非短縮化し得る(204)。非短縮カラー値は、第2のダイナミックレンジでのカラーを表す。第2の複数のコードワードは、逆後処理されている第1の複数のコードワード(たとえば、逆後処理ユニット144からの、または逆色変換の後の逆後処理ユニット152からの出力)または第1の複数のコードワード(たとえば、逆後処理ユニット144または152が無効化されているか、または利用可能でない場合)からのコードのうちの1つである。
【0258】
いくつかの例では、逆TFユニット126は、表示のための出力またはさらなる処理のために、非短縮カラー値を出力し得る(208)。しかしながら、いくつかの例では、ビデオプリプロセッサ19が短縮する前に前処理を適用した場合など、逆TFユニット126は、非短縮カラー値を逆前処理ユニット142に出力し得る。この場合、逆前処理ユニット142は、随意の動作206に関して以下で説明するように、表示または逆前処理された非短縮カラー値をさらに処理するために出力し得る。非短縮カラー値のダイナミックレンジは、逆TFユニット126が受信するコードワードのダイナミックレンジよりも大きくてよい。言い換えれば、逆TFユニット126は、より大きいダイナミックレンジを有する非短縮カラー値を生成するために、コードワードのダイナミックレンジを大きくする。
【0259】
いくつかの例では、逆前処理ユニット142は、非短縮カラー値に対して逆前処理を適用し得る(206)。逆前処理ユニット142は、スケーリングおよびオフセットパラメータ(たとえば、Scale1およびOffset1)を受信し得る。いくつかの例では、逆前処理ユニット142は、逆前処理ユニット142がスケーリングおよびオフセットパラメータをそこから決定する情報(たとえば、ピクチャの中のカラーのヒストグラム)を受信し得る。逆前処理ユニット142は、得られた逆前処理された非短縮カラー値を、表示またはさらなる処理のために出力する(208)。
【0260】
概して、逆前処理ユニット142は、コードワードの逆スケーリングおよび逆オフセットのためのスケーリングおよびオフセットパラメータを、受信されたビットストリームまたは別個にシグナリングされたサイド情報から導出し得る。スケーリングおよびオフセットパラメータをビットストリームの中で受信するとき、逆前処理ユニット142は、処理されるべきピクチャデータとともにスケーリングおよびオフセットパラメータを受信する。スケーリングおよびオフセットパラメータを別個にシグナリングされたサイド情報として受信するとき、逆前処理ユニット142は、処理されるべきいかなるピクチャデータも伴わずにスケーリングおよびオフセットパラメータを受信する(たとえば、任意のピクチャデータの前にスケーリングおよびオフセットパラメータを受信する)。
【0261】
上記で説明したように、ビデオポストプロセッサ31は、第2の複数のコードワードを生成するために第1の複数のコードワードを逆後処理すること、または非短縮カラー値に対して逆前処理することのうちの少なくとも1つを実行し得る。しかしながら、いくつかの例では、ビデオポストプロセッサ31は、第2の複数のコードワードを生成するために第1の複数のコードワードを(たとえば、逆後処理ユニット144または152を介して)逆後処理することと、逆前処理された非短縮カラー値を生成するために非短縮カラー値を(たとえば、逆前処理ユニット142を介して)逆前処理することの両方を実行し得る。
【0262】
図30は、コンテンツ適応型高ダイナミックレンジ(HDR)システムにおけるビデオ処理の別の例示的な方法を示すフローチャートである。
図30の例は、受信ビデオデータを送信のためのビデオデータに変換するためのビデオプリプロセッサ19に関して説明される。いくつかの例では、ビデオプリプロセッサ19は、処理が独立しているようにカラーごとに(赤色成分に対して1回、緑色成分に対して1回、青色成分に対して1回)例示的な技法を実行し得る。
【0263】
ビデオプリプロセッサ19は、第1のダイナミックレンジでのカラーを表すビデオデータの複数のカラー値を受信する(300)。たとえば、ビデオプリプロセッサ19は、ビデオデータメモリ132の中に記憶されたビデオデータを受信し得、ここで、そのようなデータはビデオソース18から受信される。カラー値は、RGB色空間の中にあってよいが、色変換ユニット114が処理の前にカラーをYCrCb色空間に変換することが可能である。
【0264】
前処理ユニット134は、前処理カラー値がTFユニット112によって処理されるときのようなカラー値に対して前処理を実行し得、得られたコードワードは各々、カラー値の範囲を近似的に表し、または照度が低いカラーがコードワードのはるかに大きい範囲によって表され、照度が高いカラーがコードワードの比較的小さい範囲によって表されるように、少なくとも重度に重み付けられない(302)。たとえば、前処理ユニット134は、(たとえば、Scale1およびOffset1を介して)スケーリングおよびオフセットし得る。前処理ユニット134は、ピクチャの中のカラー値のヒストグラムに基づいてスケーリングおよびオフセットパラメータを決定し得る(たとえば、入力線形カラー値に基づいてスケーリングファクタおよびオフセットファクタを適応的に決定し得る)。前処理ユニット134は、Scale1およびOffset1に関する値を出力し得るか、またはScale1およびOffset1に関する値を決定するために使用され得る情報を出力し得る。たとえば、ビデオプリプロセッサ19は、入力線形カラー値をスケーリングおよびオフセットするためのスケーリングおよびオフセットパラメータを、ビットストリームの中でまたはサイド情報としてビデオエンコーダ20にシグナリングさせ得る。
【0265】
TFユニット112は、カラー値を短縮するために、前処理ユニット134の出力を受信し得る。しかしながら、図示したように、いくつかの例では、前処理ユニット134は有効化されていなくてよく、または利用可能でなくてよい。そのような例では、TFユニット112は、前処理を伴わない複数のカラー値を受信し得る。
【0266】
TFユニット112は、短縮カラー値を表す複数のコードワードを生成するために、短縮されているビデオデータに適応性を示さない静的伝達関数を使用してカラー値を短縮し得、ここで、短縮カラー値は第2のダイナミックレンジでのカラーを表す(304)。TFユニット112は、カラー値のダイナミックレンジを低減し得、そのようなカラー値の送信を容易にし得る。
【0267】
いくつかの例では、TFユニット112は、コードワードによって表される短縮カラー値に基づくカラー値を出力し得る(308)。しかしながら、いくつかの例では、後処理ユニット138または150は、コードワード空間をより良好に使用する(たとえば、利用可能なコードワード空間の使用を高める)コードワードを生成するために、カラー値の短縮から得られたコードワードを後処理し得る(306)。後処理ユニット150は、後処理するために色変換ユニット114の出力を受信し得、色変換ユニット114は、TFユニット112の出力を受信する。後処理ユニット138または150は、Scale2を用いてスケーリングし得、Offset2を用いてオフセットし得る。たとえば、ビデオプリプロセッサ19は、コードワードのスケーリングおよびオフセットのためのスケーリングおよびオフセットパラメータを、ビットストリームの中でまたはサイド情報としてビデオエンコーダ20にシグナリングさせ得る。
【0268】
いくつかの例では、コードワードのすべての値に対してTFユニット112が出力する複数のコードワードにスケーリングおよびオフセットを適用する代わりに、後処理ユニット138または150は、区分的なスケーリングおよびオフセットを適用し得る。たとえば、後処理ユニット138または150は、スケーリングおよびオフセットされたコードワードのセットが、最小しきい値よりも小さくまたは最大しきい値よりも大きい値を有することを決定し得る。後処理ユニット138または150は、最小しきい値よりも小さい値を有するスケーリングおよびオフセットされたコードワードのセットに第1のコードワード(Smin)を割り当ててよく、最大しきい値よりも大きい値を有するスケーリングおよびオフセットされたコードワードのセットに第2のコードワード(Smax)を割り当ててよい。他のコードワードに対して、後処理ユニット138または150は、他のコードワードを(たとえば、Scale2およびOffset2に基づいて)スケーリングおよびオフセットし得る。1つの最小しきい値および1つの最大しきい値が説明されるが、いくつかの例では、しきい値の各々に対して予約済みコードワードを伴うそのような複数のしきい値があってもよい。後処理ユニット138または150は、Smin、Smax、もしくは予約済みコードワードに関する情報を出力し得、またはこれらのコードワードをどのように決定するのかについての情報を出力し得る。
【0269】
ビデオプリプロセッサ19は、短縮カラー値または後処理された短縮カラー値のうちの1つに基づくカラー値を出力し得る(308)。たとえば、後処理ユニット138または150が有効化されている場合、ビデオプリプロセッサ19は、後処理された短縮カラー値に基づくカラー値を出力し得る。後処理ユニット138または150が有効化されていないかまたは利用可能でない場合、ビデオプリプロセッサ19は、TFユニット112によって短縮されるような短縮カラー値に基づき後処理を伴わないカラー値を出力し得る。ただし、色変換ユニット114および量子化ユニット116は、出力する前にそれぞれの処理を実行してもよい。
【0270】
例に応じて、本明細書で説明した技法のうちのいずれかのいくつかの行為またはイベントが、異なるシーケンスで実行されてよく、追加されてよく、統合されてよく、または完全に除外されてよい(たとえば、説明したすべての行為またはイベントが技法の実施にとって必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて並行して実行されてよい。
【0271】
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信されてよく、ハードウェアベースの処理ユニットによって実行されてもよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に相当するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に相当し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コード、および/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0272】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得るとともにコンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0273】
命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路構成もしくは個別論理回路構成などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、または本明細書で説明した技法の実装に適した任意の他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/もしくはソフトウェアモジュール内で提供されることがあり、または複合コーデックに組み込まれることがある。また、技法は、1つまたは複数の回路または論理要素で完全に実装され得る。
【0274】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。様々な構成要素、モジュール、またはユニットは、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために本開示で説明されるが、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わせられてよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、上記で説明したような1つもしくは複数のプロセッサを含む相互動作可能なハードウェアユニットの集合によって提供されてよい。
【0275】
様々な例が説明されている。これらおよび他の例は、以下の特許請求の範囲内である。