[0019] ISO/IEC JTC1/SC29/WG11(MPEG)によって開発されたエッセンシャルビデオコーディング(EVC)規格は、効率的で低複雑度のビデオコーディングソリューションを提供する。EVCエレメンタリストリームは、ネットワークアブストラクションレイヤ(NAL)ユニットとして構造化される。ISOベースメディアファイルフォーマット(ISOBMFF)におけるNALユニットの記憶は、他のNAL構造化ビデオフォーマット(たとえば、高効率ビデオコーディング(HEVC)および/または汎用ビデオコーディング(VVC:Versatile Video Coding)規格)と同様の原理に従う。
[0020] EVCエレメンタリストリームの記憶は、2つの部分、すなわち、エレメンタリストリームにおいてグローバルに使用される静的情報と、サンプルごとに変化し得る動的情報とに再分割され得る。シーケンスパラメータセット(SPS:sequence parameter set)およびピクチャパラメータセット(PPS:picture parameter set)は、めったに変化しない情報の一部であり得、静的であると見なされ得る。パラメータセット(parameter set)がストリーム中で変化することが予想されるかどうかを示すために、フラグのセットが使用され得る。そのような場合、パラメータセットが変化するサンプルを示すサンプルグルーピングが定義される。
[0021] 適応パラメータセット(APS:Adaptation Parameter Set)は、サンプルごとのベースで変化し得る動的情報であり得る。APSは、適応ループフィルタ(ALF:Adaptive Loop Filter)情報を搬送するために使用される。ALFの存在は、フラグを通してシグナリングされ、APS情報を搬送するサンプルは、同じサンプルグループに属し得る。
[0022] ボックスは、4文字コード化ボックスタイプと、ボックスのバイト数と、ペイロードとを含む、ISOBMFFにおける基本的なシンタックス構造を指し得る。ISOBMFFファイルは、ボックスのシーケンスを含み、ボックスは他のボックスを含んでよい。ムービーボックス(「moov」)は、各々がファイル中にトラックとして表される、ファイル中に存在する連続的メディアストリームのためのメタデータを含んでいる。
[0023] トラックに対するメタデータは、トラックボックス(「trak」)に封入され得るが、トラックのメディアコンテンツは、メディアデータボックス(「mdat」)に封入されるか、または別のファイルに直接封入されるかのいずれかであり得る。トラックに対するメディアコンテンツは、オーディオまたはビデオアクセスユニットなどのサンプルのシーケンスを含む。アクセスユニットは、概して、共通の時間インスタンスのためのコード化メディア(たとえば、ピクチャ)データを含むデータのユニットである。サンプルは、本明細書で説明するビデオコーディング仕様など、特定の仕様によって定義されたアクセスユニットである。サンプルエントリは、対応するサンプルの記述を提供し得る。
[0024] ISOBMFFは、次のタイプのトラック、すなわち、エレメンタリメディアストリームを含んでいるメディアトラックと、メディア送信命令を含むかまたは受信パケットストリームを表すかのいずれかであるヒントトラックと、時間同期されたメタデータを備えるタイムドメタデータトラックとを規定する。
[0025] 本開示は、構成レコードに関連付けられたビットストリームを復号するために必要とされるツールを識別する情報を含むツールセット指示シンタックス要素を含むビデオデータのビットストリームのための構成レコードについて説明する。本開示はまた、たとえば、キー値ペア(key value pair)を含むHTTP送信に、多目的インターネットメール拡張(MIME:multipurpose internet mail extensions)タイプパラメータ(type parameter)を含めるための技法について説明する。キーは、MIMEタイプがビデオ復号ツールを識別することを示し得、その値は、ビットストリームを復号するために必要とされるツールを識別し得る。一般に、ツールがメディアストリームのための少なくとも1つのパラメータセットにおいて有効にされた場合、そのツールは必要であると見なされ得る。そのようなツールセット指示シンタックス要素とMIMEタイプとを使用することによって、本開示の技法は、ビデオ処理デバイスのビデオデコーダがファイルの大部分をパースする(parse)必要なしにファイルを復号することができるかどうかをビデオ処理デバイスが決定することを有利に可能にし得る。
[0026] 図1は、本開示の技法を実施し得る例示的なビデオ符号化および復号システム100を示すブロック図である。本開示の技法は、概して、ビデオデータをコーディング(符号化および/または復号)することを対象とする。概して、ビデオデータは、ビデオを処理するための何らかのデータを含む。したがって、ビデオデータは、生の符号化されていないビデオ、符号化されたビデオ、復号された(たとえば、再構築された)ビデオ、およびシグナリングデータなどのビデオメタデータを含み得る。
[0027] 図1に示されているように、システム100は、この例では、宛先デバイス116によって復号および表示されるべき符号化ビデオデータを提供するソースデバイス102を含む。特に、ソースデバイス102は、コンピュータ可読媒体110を介して宛先デバイス116にビデオデータを提供する。ソースデバイス102と宛先デバイス116とは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、などを含む、広範囲のデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイス102と宛先デバイス116とは、ワイヤレス通信のために装備され得、したがって、ワイヤレス通信デバイスと呼ばれることがある。
[0028] 図1の例では、ソースデバイス102は、ビデオソース104と、メモリ106と、ビデオエンコーダ200と、出力インターフェース108とを含む。宛先デバイス116は、入力インターフェース122と、ビデオデコーダ300と、メモリ120と、ディスプレイデバイス118とを含む。本開示によれば、ソースデバイス102および宛先デバイス116は、ファイルフォーマットに基づくビデオコーディング規格(たとえば、ISOベースメディアファイルフォーマット(ISOBMFF)に基づくエッセンシャルビデオコーディング(EVC)エレメンタリビットストリーム)に準拠するビットストリームの記憶および配信のための技法を適用するように構成され得る。本開示はまた、メディアプロファイル(たとえば、共通メディアアプリケーションフォーマット(EVCのためのCMAFメディアプロファイル))について説明し、動的適応ストリーミングオーバーHTTP(DASH)を使用する配信について説明し、暗号化要件について説明し、ビデオエンコーダ200およびビデオデコーダ300によって利用され得る多目的インターネットメール拡張(MIME)タイプとともに使用されるべきコーデックパラメータについて説明する。したがって、ソースデバイス102は、ビデオ符号化および送信を実行するように構成されたクライアントデバイスの一例を表すが、宛先デバイス116は、符号化されたビデオを受信および復号するように構成された宛先デバイスの一例を表す。他の例では、ソースデバイスと宛先デバイスとは、他の構成要素または配置を含み得る。たとえば、ソースデバイス102は、外部カメラなどの外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス116は、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
[0029] 図1に示されているシステム100は一例にすぎない。概して、任意のデジタルビデオ符号化および/または復号デバイスは、ファイルフォーマットに基づくビデオコーディング規格に準拠するビットストリーム(たとえば、ISOBMFFに基づくEVCエレメンタリビットストリーム)の記憶および配信のための技法を実行し得る。本開示はまた、メディアプロファイル(たとえば、EVCのためのCMAFメディアプロファイル)について説明し、DASHを使用した配信について説明し、暗号化要件について説明し、ビデオエンコーダ200およびビデオデコーダ300によって利用され得るMIMEタイプとともに使用されるべきコーデックパラメータについて説明する。ソースデバイス102と宛先デバイス116とは、ソースデバイス102が宛先デバイス116への送信のためにコード化ビデオデータを生成するようなコーディングデバイスの例にすぎない。本開示では、データのコーディング(符号化および/または復号)を実施するデバイスとして「コーディング」デバイスに言及する。したがって、ビデオエンコーダ200とビデオデコーダ300とは、コーディングデバイス、特に、それぞれビデオエンコーダとビデオデコーダとの例を表す。いくつかの例では、ソースデバイス102および宛先デバイス116は、ソースデバイス102および宛先デバイス116の各々がビデオ符号化構成要素およびビデオ復号構成要素を含むように、実質的に対称的に動作し得る。したがって、システム100は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ソースデバイス102と宛先デバイス116との間の一方向または双方向ビデオ送信をサポートし得る。
[0030] 概して、ビデオソース104は、ビデオデータ(すなわち、生の符号化されていないビデオデータ)のソースを表し、ビデオデータの連続的な一連のピクチャ(「フレーム」とも呼ばれる)をビデオエンコーダ200に提供し、ビデオエンコーダ200は、ピクチャのためにデータを符号化する。ソースデバイス102のビデオソース104は、ビデオカメラ、前にキャプチャされた生のビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなど、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース104は、ソースビデオとして、コンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成されたビデオとの組合せを生成し得る。各場合において、ビデオエンコーダ200は、キャプチャされたビデオデータ、プリキャプチャされたビデオデータ、またはコンピュータ生成されたビデオデータを符号化する。ビデオエンコーダ200は、ピクチャを、(「表示順序」と呼ばれることがある)受信順序から、コーディングのためのコーディング順序に並べ替え得る。ビデオエンコーダ200は、符号化ビデオデータを含むビットストリームを生成し得る。ソースデバイス102は、次いで、たとえば、宛先デバイス116の入力インターフェース122による受信および/または取出しのために、出力インターフェース108を介して符号化ビデオデータをコンピュータ可読媒体110上に出力し得る。
[0031] ソースデバイス102のメモリ106と、宛先デバイス116のメモリ120とは、汎用メモリを表す。いくつかの例では、メモリ106、120は、生のビデオデータ、たとえば、ビデオソース104からの生のビデオ、およびビデオデコーダ300からの生の復号ビデオデータを記憶し得る。追加または代替として、メモリ106、120は、たとえば、それぞれ、ビデオエンコーダ200とビデオデコーダ300とによって実行可能なソフトウェア命令を記憶し得る。メモリ106およびメモリ120は、この例ではビデオエンコーダ200およびビデオデコーダ300とは別個に示されているが、ビデオエンコーダ200およびビデオデコーダ300は、機能的に同様のまたは等価な目的で内部メモリをも含み得ることを理解されたい。さらに、メモリ106、120は、符号化ビデオデータ、たとえば、ビデオエンコーダ200からの出力、およびビデオデコーダ300への入力を記憶し得る。いくつかの例では、メモリ106、120の部分は、たとえば、生の復号および/または符号化ビデオデータを記憶するために、1つまたは複数のビデオバッファとして割り振られ得る。
[0032] コンピュータ可読媒体110は、ソースデバイス102から宛先デバイス116に符号化ビデオデータを移送することが可能な任意のタイプの媒体またはデバイスを表し得る。一例では、コンピュータ可読媒体110は、ソースデバイス102が、たとえば、無線周波数ネットワークまたはコンピュータベースのネットワークを介して、符号化ビデオデータを宛先デバイス116にリアルタイムで直接送信することを可能にするための通信媒体を表す。ワイヤレス通信プロトコルなどの通信規格に従って、出力インターフェース108は、符号化ビデオデータを含む送信信号を変調し得、入力インターフェース122は、受信された送信信号を復調し得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス102から宛先デバイス116への通信を容易にするために有用であり得る任意の他の機器を含み得る。
[0033] いくつかの例では、ソースデバイス102は、出力インターフェース108から記憶デバイス112に符号化データを出力し得る。同様に、宛先デバイス116は、入力インターフェース122を介して記憶デバイス112から符号化データにアクセスし得る。記憶デバイス112は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。
[0034] いくつかの例では、ソースデバイス102は、ソースデバイス102によって生成された符号化ビデオを記憶し得るファイルサーバ114または別の中間記憶デバイスに符号化ビデオデータを出力し得る。宛先デバイス116は、ストリーミングまたはダウンロードを介して、ファイルサーバ114から、記憶されたビデオデータにアクセスし得る。ファイルサーバ114は、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス116に送信することが可能な任意のタイプのサーバデバイスであり得る。ファイルサーバ114は、(たとえば、ウェブサイトのための)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、コンテンツ配信ネットワークデバイス、またはネットワーク接続ストレージ(NAS)デバイスを表し得る。宛先デバイス116は、インターネット接続を含む任意の標準的なデータ接続を通してファイルサーバ114から符号化ビデオデータにアクセスし得る。これは、ファイルサーバ114に記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi-Fi(登録商標)接続)、ワイヤード接続(たとえば、デジタル加入者回線(DSL)、ケーブルモデムなど)、またはその両方の組合せを含み得る。ファイルサーバ114および入力インターフェース122は、ストリーミング送信プロトコル、ダウンロード送信プロトコル、またはそれらの組合せに従って動作するように構成され得る。
[0035] 出力インターフェース108と入力インターフェース122とは、ワイヤレス送信機/受信機、モデム、ワイヤードネットワーキング構成要素(たとえば、イーサネット(登録商標)カード)、様々なIEEE802.11規格のいずれかに従って動作するワイヤレス通信構成要素、または他の物理的構成要素を表し得る。出力インターフェース108と入力インターフェース122とがワイヤレス構成要素を備える例では、出力インターフェース108と入力インターフェース122とは、4G、4G-LTE(登録商標)(ロングタームエボリューション)、LTEアドバンスト、5Gなど、セルラー通信規格に従って、符号化ビデオデータなどのデータを転送するように構成され得る。出力インターフェース108がワイヤレス送信機を備えるいくつかの例では、出力インターフェース108と入力インターフェース122とは、IEEE802.11仕様、IEEE802.15仕様(たとえば、ZigBee(登録商標))、Bluetooth(登録商標)規格など、他のワイヤレス規格に従って、符号化ビデオデータなどのデータを転送するように構成され得る。いくつかの例では、ソースデバイス102および/または宛先デバイス116は、それぞれのシステムオンチップ(SoC)デバイスを含み得る。たとえば、ソースデバイス102は、ビデオエンコーダ200および/または出力インターフェース108に帰属する機能を実施するためのSoCデバイスを含み得、宛先デバイス116は、ビデオデコーダ300および/または入力インターフェース122に帰属する機能を実施するためのSoCデバイスを含み得る。
[0036] 本開示の技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。
[0037] 宛先デバイス116の入力インターフェース122は、コンピュータ可読媒体110(たとえば、通信媒体、記憶デバイス112、ファイルサーバ114など)から符号化ビデオビットストリームを受信する。符号化ビデオビットストリームは、ビデオブロックまたは他のコード化ユニット(たとえば、スライス、ピクチャ、ピクチャのグループ、シーケンスなど)の特性および/または処理を記述する値を有するシンタックス要素など、ビデオデコーダ300によっても使用される、ビデオエンコーダ200によって定義されるシグナリング情報を含み得る。ディスプレイデバイス118は、復号ビデオデータの復号ピクチャをユーザに表示する。ディスプレイデバイス118は、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを表し得る。
[0038] 図1には示されていないが、いくつかの例では、ビデオエンコーダ200とビデオデコーダ300とは各々、オーディオエンコーダおよび/またはオーディオデコーダと統合され得、共通のデータストリーム中にオーディオとビデオの両方を含む多重化ストリームをハンドリングするために、適切なMUX-DEMUXユニット、あるいは他のハードウェアおよび/またはソフトウェアを含み得る。適用可能な場合、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0039] ビデオエンコーダ200とビデオデコーダ300とは各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダおよび/またはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実施するために1つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ200とビデオデコーダ300との各々は、1つまたは複数のエンコーダまたはデコーダに含まれ得、それらのいずれかが、それぞれのデバイス中の複合エンコーダ/デコーダ(CODEC)の一部として統合され得る。ビデオエンコーダ200および/またはビデオデコーダ300を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラー電話機などのワイヤレス通信デバイスを備え得る。
[0040] ビデオエンコーダ200とビデオデコーダ300とは、ジョイント探査テストモデル(JEM:Joint Exploration Test Model)、または汎用ビデオコーディング(VVC:Versatile Video Coding)とも呼ばれるITU-T H.266など、他のプロプライエタリまたは業界規格に従って動作し得る。VVC規格の最近のドラフトは、Brossら、「Versatile Video Coding (Draft 7)」、ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のジョイントビデオエキスパートチーム(JVET)、第16回会合、ジュネーブ、スイス、2019年10月1~11日、JVET-P2001-v14(以下、「VVCドラフト7」)に記載されている。ビデオエンコーダ200およびビデオデコーダ300は、ISO/IEC JTC1/SC29/WG11(MPEG)によって開発されたEVC規格に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。
[0041] 概して、ビデオエンコーダ200とビデオデコーダ300とは、ピクチャのブロックベースのコーディングを実施し得る。「ブロック」という用語は、概して、処理されるべき(たとえば、符号化されるべき、復号されるべき、あるいは符号化および/または復号プロセスにおいて他の方法で使用されるべき)データを含む構造を指す。たとえば、ブロックは、ルミナンスおよび/またはクロミナンスデータのサンプルの2次元行列を含み得る。概して、ビデオエンコーダ200とビデオデコーダ300とは、YUV(たとえば、Y、Cb、Cr)フォーマットで表されるビデオデータをコーディングし得る。すなわち、ピクチャのサンプルのために赤色、緑色、および青色(RGB)データをコーディングするのではなく、ビデオエンコーダ200とビデオデコーダ300とは、ルミナンス成分とクロミナンス成分とをコーディングし得、ここで、クロミナンス成分は、赤色相と青色相の両方のクロミナンス成分を含み得る。いくつかの例では、ビデオエンコーダ200は、符号化より前に、受信されたRGBフォーマットのデータをYUV表現にコンバートし、ビデオデコーダ300は、YUV表現をRGBフォーマットにコンバートする。代替的に、前処理および後処理ユニット(図示せず)が、これらのコンバージョンを実施し得る。
[0042] 本開示は、概して、ピクチャのデータを符号化または復号するプロセスを含むように、ピクチャのコーディング(たとえば、符号化および復号)に言及することがある。同様に、本開示は、ブロックについてのデータを符号化または復号するプロセス、たとえば、予測および/または残差コーディングを含むように、ピクチャのブロックのコーディングに言及することがある。符号化ビデオビットストリームは、概して、コーディング決定(たとえば、コーディングモード)とブロックへのピクチャの区分とを表すシンタックス要素についての一連の値を含む。したがって、ピクチャまたはブロックをコーディングすることへの言及は、概して、ピクチャまたはブロックを形成するシンタックス要素についての値をコーディングすることとして理解されるべきである。
[0043] 各種のビデオコーディング規格は、コーディングユニット(CU)、予測ユニット(PU)、および変換ユニット(TU)と呼ばれることがある様々なブロックを定義する。(ビデオエンコーダ200などの)ビデオコーダは、クワッドツリー構造に従ってコーディングツリーユニット(CTU)をCUに区分する。すなわち、ビデオコーダは、CTUとCUとを4つの等しい重複しない正方形に区分し、クワッドツリーの各ノードは、0個または4つのいずれかの子ノードを有する。子ノードのないノードは、「リーフノード」と呼ばれることがあり、そのようなリーフノードのCUは、1つまたは複数のPUおよび/または1つまたは複数のTUを含み得る。ビデオコーダは、PUとTUとをさらに区分し得る。たとえば、残差クワッドツリー(RQT)は、TUの区分を表し、PUはインター予測データを表すが、TUは残差データを表す。イントラ予測されるCUは、イントラモード指示などのイントラ予測情報を含む。
[0044] 別の例として、ビデオエンコーダ200およびビデオデコーダ300は、JEM、VVC、EVC、または任意の他のそのような規格に従って動作するように構成され得る。(ビデオエンコーダ200などの)ビデオコーダは、ピクチャを複数のコーディングツリーユニット(CTU)に区分する。ビデオエンコーダ200は、クワッドツリーバイナリツリー(QTBT)構造またはマルチタイプツリー(MTT)構造など、ツリー構造に従ってCTUを区分し得る。QTBT構造は、CUとPUとTUとの間の分離など、複数の区分タイプの概念を除去する。QTBT構造は、2つのレベル、すなわち、クワッドツリー区分に従って区分される第1のレベルと、バイナリツリー区分に従って区分される第2のレベルとを含む。QTBT構造のルートノードは、CTUに対応する。バイナリツリーのリーフノードは、コーディングユニット(CU)に対応する。
[0045] MTT区分構造では、ブロックは、クワッドツリー(QT)区分と、バイナリツリー(BT)区分と、1つまたは複数のタイプのトリプルツリー(TT)(ターナリツリー(TT)とも呼ばれる)区分とを使用して区分され得る。トリプルツリーまたはターナリツリー区分は、ブロックが3つのサブブロックにスプリットされる区分である。いくつかの例では、トリプルツリーまたはターナリツリー区分は、中心を通して元のブロックを分割することなしにブロックを3つのサブブロックに分割する。MTTにおける区分タイプ(たとえば、QT、BT、およびTT)は、対称的または非対称的であり得る。
[0046] いくつかの例では、ビデオエンコーダ200とビデオデコーダ300とは、ルミナンス成分とクロミナンス成分との各々を表すために単一のQTBTまたはMTT構造を使用し得、他の例では、ビデオエンコーダ200とビデオデコーダ300とは、ルミナンス成分のための1つのQTBT/MTT構造、および両方のクロミナンス成分のための別のQTBT/MTT構造(またはそれぞれのクロミナンス成分のための2つのQTBT/MTT構造)など、2つまたはそれ以上のQTBTまたはMTT構造を使用し得る。
[0047] ビデオエンコーダ200とビデオデコーダ300とは、クワッドツリー区分、QTBT区分、MTT区分、または他の区分構造を使用するように構成され得る。説明の目的で、本開示の技法の説明はQTBT区分に関して提示される。しかしながら、本開示の技法は、クワッドツリー区分、または同様に他のタイプの区分を使用するように構成されたビデオコーダにも適用され得ることを理解されたい。
[0048] ブロック(たとえば、CTUまたはCU)は、ピクチャ中で様々な方法でグループ化され得る。一例として、ブリックは、ピクチャ中の特定のタイル内のCTU行の矩形領域を指し得る。タイルは、ピクチャ中の特定のタイル列および特定のタイル行内のCTUの矩形領域であり得る。タイル列は、ピクチャの高さに等しい高さと、(たとえば、ピクチャパラメータセット中などの)シンタックス要素によって指定された幅とを有するCTUの矩形領域を指す。タイル行は、(たとえば、ピクチャパラメータセット中などの)シンタックス要素によって指定された高さと、ピクチャの幅に等しい幅とを有するCTUの矩形領域を指す。
[0049] いくつかの例では、タイルは複数のブリックに区分され得、それらの各々は、タイル内に1つまたは複数のCTU行を含み得る。複数のブリックに区分されないタイルもブリックと呼ばれることがある。しかしながら、タイルの真のサブセットであるブリックは、タイルと呼ばれないことがある。
[0050] ピクチャ中のブリックはまた、スライス中に配置され得る。スライスは、もっぱら単一のネットワークアブストラクションレイヤ(NAL)ユニット中に含まれていることがあるピクチャの整数個のブリックであり得る。いくつかの例では、スライスは、いくつかの完全なタイル、または1つのタイルの完全なブリックの連続シーケンスのみのいずれかを含む。
[0051] 本開示は、垂直寸法と水平寸法とに関して(CUまたは他のビデオブロックなどの)ブロックのサンプル寸法を指すために、「N×N(NxN)」および「N×N(N by N)」、たとえば、16×16サンプル(16x16 samples)または16×16サンプル(16 by 16 samples)を互換的に使用し得る。概して、16×16のCUは、垂直方向に16個のサンプルを有し(y=16)、水平方向に16個のサンプルを有する(x=16)。同様に、N×NのCUは、概して、垂直方向にN個のサンプルを有し、水平方向にN個のサンプルを有し、ここで、Nは非負整数値を表す。CU中のサンプルは、行と列とに配置され得る。その上、CUは、必ずしも、水平方向において垂直方向と同じ数のサンプルを有する必要があるとは限らない。たとえば、CUはN×Mサンプルを備え得、ここで、Mは必ずしもNに等しいとは限らない。
[0052] ビデオエンコーダ200は、予測および/または残差情報、ならびに他の情報を表すCUのためにビデオデータを符号化する。予測情報は、CUについて予測ブロックを形成するためにCUがどのように予測されるべきかを示す。残差情報は、概して、符号化より前のCUのサンプルと予測ブロックとの間のサンプルごとの差分を表す。
[0053] CUを予測するために、ビデオエンコーダ200は、概して、インター予測またはイントラ予測を通してCUについて予測ブロックを形成し得る。インター予測は、概して、前にコーディングされたピクチャのデータからCUを予測することを指すが、イントラ予測は、概して、同じピクチャの前にコーディングされたデータからCUを予測することを指す。インター予測を実施するために、ビデオエンコーダ200は、1つまたは複数の動きベクトルを使用して予測ブロックを生成し得る。ビデオエンコーダ200は、概して、たとえば、CUと参照ブロックとの間の差分に関して、CUにぴったり一致する参照ブロックを識別するために動き探索を実施し得る。ビデオエンコーダ200は、参照ブロックが現在CUにぴったり一致するかどうかを決定するために、絶対差分和(SAD)、2乗差分和(SSD)、平均絶対差(MAD)、平均2乗差(MSD)、または他のそのような差分計算を使用して差分メトリックを計算し得る。いくつかの例では、ビデオエンコーダ200は、単方向予測または双方向予測を使用して現在CUを予測し得る。
[0054] ビデオコーディング規格はまた、インター予測モードと見なされ得るアフィン動き補償モードを提供する。アフィン動き補償モードでは、ビデオエンコーダ200は、ズームインまたはアウト、回転、パースペクティブの動き、あるいは他の変則の動きタイプなど、非並進の動きを表す2つまたはそれ以上の動きベクトルを決定し得る。
[0055] イントラ予測を実施するために、ビデオエンコーダ200は、予測ブロックを生成するようにイントラ予測モードを選択し得る。たとえば、ビデオエンコーダ200は、様々な方向性モード、ならびに平面モードおよびDCモードを含む、67個またはいくつかの他の数のイントラ予測モードを利用し得る。概して、ビデオエンコーダ200は、現在ブロック(たとえば、CUのブロック)のサンプルをそれから予測すべき、現在ブロックに対する隣接サンプルを記述するイントラ予測モードを選択する。そのようなサンプルは、ビデオエンコーダ200がラスタ走査順序で(左から右に、上から下に)CTUとCUとをコーディングすると仮定すると、概して、現在ブロックと同じピクチャ中の現在ブロックの上、左上、または左にあり得る。
[0056] ビデオエンコーダ200は、現在ブロックについて予測モードを表すデータを符号化する。たとえば、インター予測モードでは、ビデオエンコーダ200は、様々な利用可能なインター予測モードのうちのどれが使用されるか、ならびに対応するモードのための動き情報を表すデータを符号化し得る。たとえば、単方向または双方向インター予測では、ビデオエンコーダ200は、高度動きベクトル予測(AMVP)またはマージモードを使用して動きベクトルを符号化し得る。ビデオエンコーダ200は、アフィン動き補償モードのための動きベクトルを符号化するために、同様のモードを使用し得る。
[0057] ブロックのイントラ予測またはインター予測などの予測に続いて、ビデオエンコーダ200は、ブロックについて残差データを計算し得る。残差ブロックなどの残差データは、ブロックと、対応する予測モードを使用して形成された、ブロックについての予測ブロックとの間の、サンプルごとの差分を表す。ビデオエンコーダ200は、サンプル領域ではなく変換領域中に変換データを生成するために、残差ブロックに1つまたは複数の変換を適用し得る。たとえば、ビデオエンコーダ200は、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換を残差ビデオデータに適用し得る。さらに、ビデオエンコーダ200は、第1の変換に続いて、モード依存非分離可能2次変換(MDNSST:mode-dependent non-separable secondary transform)、信号依存変換、カルーネンレーベ変換(KLT)などの2次変換を適用し得る。ビデオエンコーダ200は、1つまたは複数の変換の適用に続いて変換係数を生成する。
[0058] 上述のように、変換係数を生成するための任意の変換に続いて、ビデオエンコーダ200は、変換係数の量子化を実施し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスを実施することによって、ビデオエンコーダ200は、変換係数の一部または全部に関連付けられたビット深度を低減し得る。たとえば、ビデオエンコーダ200は、量子化中にnビット値をmビット値に丸めることがあり、ここで、nはmよりも大きい。いくつかの例では、量子化を実施するために、ビデオエンコーダ200は、量子化されるべき値のビット単位右シフトを実施し得る。
[0059] 量子化に続いて、ビデオエンコーダ200は、変換係数を走査して、量子化された変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、より高いエネルギー(したがって、より低い頻度)の変換係数をベクトルの前方に配置し、より低いエネルギー(したがって、より高い頻度)の変換係数をベクトルの後方に配置するように設計され得る。いくつかの例では、ビデオエンコーダ200は、あらかじめ定義された走査順序を利用して、量子化された変換係数を走査してシリアル化ベクトルを生成し、次いで、ベクトルの量子化された変換係数をエントロピー符号化し得る。他の例では、ビデオエンコーダ200は適応型走査を実施し得る。量子化された変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ200は、たとえば、コンテキスト適応型バイナリ算術コーディング(CABAC)に従って、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ200はまた、ビデオデータを復号する際のビデオデコーダ300による使用のために、符号化ビデオデータに関連付けられたメタデータを記述するシンタックス要素についての値をエントロピー符号化し得る。
[0060] CABACを実施するために、ビデオエンコーダ200は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの隣接値が0値であるか否かに関係し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0061] ビデオエンコーダ200は、さらに、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびシーケンスベースのシンタックスデータなどのシンタックスデータを、たとえば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、あるいはシーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、またはビデオパラメータセット(VPS)などの他のシンタックスデータ中で、ビデオデコーダ300に対して生成し得る。ビデオデコーダ300は、対応するビデオデータをどのように復号すべきかを決定するために、そのようなシンタックスデータを同様に復号し得る。
[0062] このようにして、ビデオエンコーダ200は、符号化ビデオデータ、たとえば、ブロック(たとえば、CU)へのピクチャの区分ならびにブロックのための予測および/または残差情報を記述するシンタックス要素を含むビットストリームを生成し得る。最終的に、ビデオデコーダ300は、ビットストリームを受信し、符号化ビデオデータを復号し得る。
[0063] 概して、ビデオデコーダ300は、ビットストリームの符号化ビデオデータを復号するために、ビデオエンコーダ200によって実施されたものの逆プロセスを実施する。たとえば、ビデオデコーダ300は、ビデオエンコーダ200のCABAC符号化プロセスと逆ではあるが、それと実質的に同様の様式でCABACを使用してビットストリームのシンタックス要素についての値を復号し得る。シンタックス要素は、CTUのCUを定義するために、ピクチャのCTUへの区分情報と、QTBT構造などの対応する区分構造に従う、各CTUの区分とを定義し得る。シンタックス要素は、ビデオデータのブロック(たとえば、CU)についての予測および残差情報をさらに定義し得る。
[0064] 残差情報は、たとえば、量子化された変換係数によって表され得る。ビデオデコーダ300は、ブロックのための残差ブロックを再生するために、ブロックの量子化された変換係数を逆量子化し、逆変換し得る。ビデオデコーダ300は、ブロックのための予測ブロックを形成するために、シグナリングされた予測モード(イントラまたはインター予測)と、関連する予測情報(たとえば、インター予測のための動き情報)とを使用する。ビデオデコーダ300は、次いで、元のブロックを再生するために(サンプルごとに)予測ブロックと残差ブロックとを組み合わせ得る。ビデオデコーダ300は、ブロックの境界に沿って視覚的アーティファクトを低減するためにデブロッキングプロセスを実施することなど、追加の処理を実施し得る。
[0065] 本開示は、概して、シンタックス要素など、ある情報を「シグナリング」することに言及することがある。「シグナリング(signaling)」という用語は、概して、符号化ビデオデータを復号するために使用されるシンタックス要素および/または他のデータについての値の通信を指し得る。すなわち、ビデオエンコーダ200は、ビットストリームにおいてシンタックス要素についての値をシグナリングし得る。概して、シグナリングは、ビットストリームにおいて値を生成することを指す。上述のように、ソースデバイス102は、実質的にリアルタイムでビットストリームを宛先デバイス116に移送するか、または、宛先デバイス116による後の取出しのためにシンタックス要素を記憶デバイス112に記憶するときに行われ得るように、非リアルタイムでビットストリームを宛先デバイス116に移送し得る。
[0066] 以下は、EVCの例示的な技法について説明する。いくつかの例では、EVC技法は、VVCおよび/またはHEVCの技法(たとえば、ブロックベースのコーディング技法など)と同様であり得る。
[0067] EVCサンプルは、ISO/IEC23094-1の節3.1:情報技術-ジェネラルビデオコーディング-Part1:エッセンシャルビデオコーディングに定義されているアクセスユニットを含んでいる。EVCでは、ビットストリームがEVCに準拠するための正規順序が存在し得、いくつかの制限が存在し得る。正規ストリームフォーマットは、ISO/IEC14496-15:情報技術-オーディオビジュアルオブジェクトのコーディング-Part15:アドバンストビデオコーディング(AVC)ファイルフォーマット、セクション4.3.2における一般的な条件に加えて、以下の条件を満たすEVCエレメンタリストリームである。すなわち、
a.アクセスユニットデリミタNALユニット:アクセスユニットデリミタNALユニットによって従われる制約は、ISO/IEC23094-1において定義されている。
b.SPSおよびPPS:ピクチャ中で使用されるべきSPSまたはPPSは、そのピクチャを含んでいるサンプルの前に、またはそのピクチャのためのサンプル中で送られ得る(および、いくつかの例では、送られなければならない)。少なくとも、0に等しいidを有するSPSおよびPPSは、EVCエレメンタリストリームを含んでいるトラックのサンプルエントリに記憶され得る。
c.APS:スライス中で使用されるべきAPSは、そのスライスを含んでいるVCL NALユニットより前に送られ得る(いくつかの例では、送られなければならない)。APSは、サンプルエントリおよび/またはサンプルに記憶され得る。
d.SEIメッセージ:宣言的性質のSEIメッセージは、サンプルエントリに記憶されてよく、そのようなSEIメッセージをサンプルから除去することについての規定はない。
e.フィラーデータ:ビデオデータは、当然、ファイルフォーマットにおいて可変ビットレートとして表され、必要に応じて送信のために充填されるものとする。
[0068] フィラーデータNALユニット、スタートコード、SEIメッセージ、またはフィラーデータSEIメッセージの除去または追加は、ISO/IEC23094-1、付属書類Cに指定されているように、固定ビットレート(CBR)モードで仮想参照デコーダ(HRD)を動作させるとき、HRDとの適合性に関してビットストリーム特性を変更することができる。
[0069] 以下は、EVCデコーダ構成レコードおよび記述である。ビデオデコーダ300は、いくつかの例では、EVCデコーダ構成に従って構成され得る。EVCデコーダ構成の記述についての説明の一部として、以下は、ISO/IEC23094-1ビデオコンテンツのためのデコーダ構成情報を指定する。
[0070] このレコードは、バージョンフィールドを含んでいる。ファイルフォーマットパーサ(たとえば、リーダー)は、バージョン番号が認識されない場合、このレコードまたはそれが適用されるストリームを復号することを試みなくてよい(たとえば、試みるべきでない)。
[0071] このレコードに対する互換性がある拡張は、それを拡張してよく、構成バージョンコードを変更しなくてよい。リーダーは、リーダーがパースするように構成されたデータの定義を超えて認識されていないデータを無視し得る。
[0072] profile_idc、level_idc、toolset_idc、chroma_format_idc、pic_width_in_luma_samples、pic_height_in_luma_samples、bit_depth_luma_minus8、およびbit_depth_chroma_minus8に関する値は、ストリームが復号されるときにアクティブ化されるすべてのパラメータセット(「すべてのパラメータセット」と呼ばれる)について有効であり得る(いくつかの例では、有効であるものとする)。詳細には、以下の制限が適用され得る。すなわち、
a.プロファイル指示profile_idcは、この構成レコードに関連付けられたストリームが準拠するプロファイルを示し得る(たとえば、示すものとする)。SPSが異なるプロファイルでマーキングされている場合、ストリームは、もしあれば、ストリーム全体が、どのプロファイルに準拠するかを決定するための検査を必要とし得る。ストリーム全体が検査されない場合、または、ストリーム全体が準拠するプロファイルが存在しないことを検査が明らかにする場合、ストリーム全体は、これらの規則が満たされ得る別個の構成レコードを有する2つ以上のサブストリームに分割され得る(たとえば、分割されるものとする)。
b.レベル指示level_idcは、この構成レコードのすべてのパラメータセットにおいて示される最高レベルに等しいかまたはそれよりも大きい能力のレベルを示し得る(たとえば、示すものとする)。
c.pic_width_in_luma_samplesおよびpic_height_in_luma_samplesは、この構成レコードのすべてのパラメータセットの最高値を含み得る(たとえば、含むものとする)。
d.ツールセット指示toolset_idcは、この構成レコードに関連付けられたストリームを復号するために必要とされるすべてのツールをシグナリングし得る(たとえば、シグナリングするものとする)。ツールフラグは、ISO/IEC23094-1の(以下に再現される)表A.6において提供されるような適合要件に準拠し得(たとえば、準拠すべきであり)、SPSにおいてシグナリングされるtoolset_idcフィールドと同一であり得る(たとえば、同一であるものとする)。
e.すべてのパラメータセットにおけるchroma_format_idcの値は、同一であり得る(たとえば、同一であるものとする)。
f.すべてのパラメータセットにおけるbit_depth_luma_minus8の値は、同一であり得る(たとえば、同一であるものとする)。
g.すべてのパラメータセットにおけるbit_depth_chroma_minus8の値は、同一であり得る(たとえば、同一であるものとする)。
[0073] 明示的指示が、EVCビデオエレメンタリストリームによって使用されるクロマフォーマットおよびビット深度についてEVCデコーダ構成レコード内で提供される。そのような情報の各タイプは、存在する場合、単一のEVC構成レコード内で、すべてのパラメータセットにおいて同一であり得る(たとえば、同一であるものとする)。2つのシーケンスがそのような情報の任意のタイプにおいて異なる場合、2つの異なるEVCサンプルエントリが使用され得る(たとえば、使用されるものとする)。
[0074] 初期化NALユニットを搬送するためのアレイのセットが存在する。NALユニットタイプは、SPS、PPS、APS、およびSEI NALユニットのみを示すように制限され得る。ISO/IEC23094-1および本明細書において予約されたNALユニットタイプが定義され得、認識されていないNALユニットタイプを有するNALユニットは無視され得る。この「許容度のある(tolerant)」挙動(たとえば、認識されていないNALユニットタイプの無視)は、エラーが生じないように設計され得、将来の仕様におけるこれらのアレイへの後方互換性がある拡張の可能性を許容する。
[0075] 長さフィールドは、サンプルエントリに記憶されている場合、その含まれているNALユニットの長さおよびパラメータセットを示すために各サンプルにおいて使用され得る。いくつかの例では、アレイは、SPS、PPS、APS、SEIの順序である。
[0076] ISO/IEC23094-1の表A.6は、次の通りである。
[0077] 以下は、ビデオエンコーダ200およびビデオデコーダ300によって使用されるシンタックス(syntax)について説明する。
aligned(8) class EVCDecoderConfigurationRecord{
unsigned int(8) configurationVersion=1;
unsigned int(8) profile_idc;
unsigned int(8) level_idc;
unsigned int(32) toolset_idc;
unsigned int(2) chroma_format_idc;
unsigned int(3) bit_depth_luma_minus8;
unsigned int(3) bit_depth_chroma_minus8;
unsigned int(32) pic_width_in_luma_samples;
unsigned int(32) pic_height_in_luma_samples;
unsidned int(5) reserved=’00000’b;
unsigned int(1) sps_in_stream;
unsigned int(1) pps_in_stream;
unsigned int(1) aps_in_stream;
unsigned int(8) numOfArrays;
for(j=0;j<numOfArrays;j++){
bit(2) reserved=’00’b;
unsigned int(6) NAL_unit_type;
unsigned int(16) numNalus;
for(i=0;i<numNalus;i++){
unsigned int(16) nalUnitLength;
bit(8*nalUnitLength)nalUnit;
}
}
}
[0078] 以下の説明は、上記のシンタックスにおける用語を定義するためのセマンティクス(semantics)を示す。シンタックス要素profile_idc、level_idc、toolset_idc、chroma_format_idc、toolset_idc、bit_depth_luma_minus8、およびbit_depth_chroma_minus8は、構成レコードのすべてのパラメータセットのためのPPS中のフィールドに関する適合値を含んでいる。表記法「(32)」は、シンタックス要素toolset_idcが32ビットであることを示す。これらの32ビットは、各々が特定のツールに対応する1ビットフラグを含み得、または、いくつかの事例では、32ビットのうちの複数のビットは、たとえば、ツールの組合せもしくはツールのセットからのツールの選択に対応し得る。
[0079] シンタックス要素pic_width_in_luma_samplesおよびpic_height_in_luma_samplesは、sps_in_streamフィールドの値が「0」であるとき、この構成レコードのすべてのSPS中のフィールドについて最大値を含んでいる。これらのシンタックス要素は、sps_in_streamフィールドの値が「1」であるとき、この構成レコードのすべてのSPSおよびストリーム中のすべてのSPS中のフィールドについて最大値を含み得る。値「0」は、sps_in_streamフィールドの値が「0」であるとき、このレコード内のすべてのパラメータセットについてのSPS中のこれらのフィールドの最大値が、このフィールドを通して示されない場合、または、sps_in_streamフィールドの値が「1」であるとき、ストリーム中のSPS中のこれらのフィールドの値が、このレコード内のフィールドの最大値よりも大きい値を有する場合に、使用され得る(たとえば、使用されるものとする)。
[0080] シンタックス要素sps_in_streamは、ストリームが、この構成レコードのNALユニットのアレイに含まれない追加のSPSを含み得ることを示す。シンタックス要素pps_in_streamは、ストリームが、この構成レコードのNALユニットのアレイに含まれない追加のPPSを含み得ることを示す。シンタックス要素aps_in_streamは、ストリームが、この構成レコードのNALユニットのアレイに含まれない追加のAPSを含み得ることを示す。
[0081] シンタックス要素numArraysは、示されたタイプのNALユニットのアレイの数を示す。シンタックス要素NAL_unit_typeは、後続のアレイ中のNALユニットのタイプ(そのタイプのすべてであり得る(たとえば、そうであるものとする))を示す。NAL_unit_typeは、ISO/IEC23094-1において定義されている値をとり、SPS、PPS、APS、またはSEI NALユニットを示す値のうちの1つをとるように制限され得る。
[0082] シンタックス要素numNalusは、この構成レコードが適用されるストリームのための構成レコードに含まれる、示されたタイプのNALユニットの数を示す。シンタックス要素nalUnitLengthは、NALユニットのバイト単位の長さを示す。シンタックス要素nalUnitは、ISO/IEC23094-1において指定されている、SPS、PPS、APS、またはSEI NALユニットを含んでいる。
[0083] ISOベースメディアファイルフォーマットおよびその拡張によるビデオファイルは、データを「ボックス」と呼ばれる一連のオブジェクトに記憶する。以下は、EVCビデオストリーム定義、ならびにサンプルエントリ名およびフォーマットを含む、ISOベースメディアファイルフォーマットについて説明する。
a.サンプルエントリおよびボックスタイプ:「evc1」、「evcC」
b.コンテナ:サンプルテーブルボックス(「stb1」)
c.必須:「evc1」サンプルエントリは必須である。
d.量:1つまたは複数のサンプルエントリが存在し得る。
[0084] EVC視覚サンプルエントリは、以下で定義されるように、EVC構成ボックス(configuration box)を含み得る(たとえば、含むものとする)。これは、EVCDecoderConfigurationRecordを含む。
[0085] 任意のBitRateBoxは、EVCビデオストリームのビットレート情報をシグナリングするために、EVC視覚サンプルエントリ中に存在し得る。
[0086] 様々な構成またはパラメータセットを使用するビデオのセクションを示すために、ISOベースメディアファイルフォーマット仕様によって許可されているように、複数のサンプルエントリが使用され得る。
[0087] サンプルエントリ名が「evc1」であるとき、このサンプルエントリが適用されるストリームは、EVCConfigurationBox中に与えられた構成(プロファイル、レベル、およびツールセットを含む)の下で動作するEVCデコーダ(たとえば、ビデオデコーダ300)によって見られる、準拠EVCストリームであり得る(たとえば、そのようになるものとする)。
[0088] 「evc1」サンプルエントリは、サンプルエントリおよびストリーム中のパラメータセットの両方の記憶を可能にする。sps_in_stream、pps_in_stream、およびaps_in_streamは、0に設定された場合、対応するタイプのNALユニットのアレイが完了していることを示す。
[0089] 以下は、ファイルフォーマットのための構成ボックス(configuration box)に関するシンタックスの例示的なセットである。
class EVCConfigurationBox extends Box(’evcC’){
EVCDecoderConfigurationRecord()EVCConfig;
}
class EVCSampleEntry() extends VisualSampleEntry(’evc1’){
EVCConfigurationBox config;
MPEG4ExtensionDescriptorsBox();//optional
}
[0090] 以下は、上記で説明されたシンタックスのためのセマンティクスの例示的なセットである。
[0091] ベースクラスVisualSampleEntry内のCompressornameは、推奨される値「\012EVC Coding」とともに使用される圧縮器の名前を示す(\012は10であり、バイト単位のストリングの長さである)。EVCDecoderConfigurationRecordは、セクション5.3.3(たとえば、限定はしないが、ISO/IEC23904-1などである可能性がある)において定義される。
[0092] 以下は、パラメータセットについて説明する。概要として、0に等しいidを有する少なくとも初期SPSおよびPPSは、サンプルエントリ中で搬送され得る(たとえば、搬送されるものとする)。sps_in_streamおよび/またはpps_in_streamが「1」に設定される場合、追加のSPSおよび/またはPPSがストリーム中に帯域内で存在し得る。
[0093] パラメータセットを搬送するサンプルは、そのパラメータセットのタイプに対応するサンプルグループに属し得る(たとえば、属するものとする)。3つのサンプルgroup_type「pss1」が本明細書において定義される。さらなるグルーピングタイプパラメータが、SPSと、PPSと、APSとを区別するために使用され、ここにおいて、「sps1」は、SPSを搬送するサンプルのサンプルグループを識別し、「pps1」は、PPSを搬送するサンプルのサンプルグループを識別し、「aps1」は、APSを搬送するサンプルのサンプルグループを識別する。
[0094] 以下は、定義を含むパラメータセットサンプルグループエントリについて説明する。
a.グループタイプ: 「pss1」
b.コンテナ: サンプルグループ記述ボックス(「sgpd」)
c.必須: いいえ
d.量: 0個以上
[0095] パラメータセットサンプルグループは、タイプSPS、PPS、またはAPSのパラメータセットを含んでいるサンプルを識別する。grouping_type_parameterはさらに、パラメータセットのタイプを識別し、「sps1」、「pps1」、または「aps1」の値をとることができる。
[0096] 以下は、パラメータセットサンプルグループエントリのためのいくつかのシンタックスについて説明する。
class PSSSampleEntry() extends VisualSampleGroupEntry (’pss1’)
{
}
[0097] 以下は、同期サンプルについて説明する。「evc1」トラック中の同期サンプルは、サンプル中の0に等しいnuh_temporal_idを有するコード化ピクチャが瞬時復号リフレッシュ(IDR:Instantaneous Decoding Refresh)ピクチャであることを示すVCL NALユニットを含み得る(たとえば、含むものとする)。
[0098] 表1は、EVC VCL NALユニットタイプと、ISOBMFF同期サンプルステータスと、ISOBMFFで文書化されたSAPタイプとの間のマッピングを示す。
[0099]
[0100] 以下は、EVCのためのサブサンプルの定義である。EVCストリーム中のSubSampleInformationBox(ISO/IEC14496-12の8.7.7)の使用のために、サブサンプルは、以下で指定されるサブサンプル情報ボックスのフラグフィールドの値に基づいて定義される。このボックスの存在は随意であるが、EVCデータを含んでいるトラック中に存在する場合、ボックス中の「codec_specific_parameters」フィールドは、ここで定義されるセマンティクスを有し得る(たとえば、有するものとする)。
[0101] フラグは、次のように、このボックス中で与えられるサブサンプル情報のタイプを指定する。
a.0:NALユニットベースのサブサンプル:サブサンプルは、1つまたは複数の連続するNALユニットを含んでいる。
b.1:タイルベースのサブサンプル:サブサンプルは、1つのタイルのすべてのCTUを有するVCL NALユニットを、もしあれば、任意の関連する非VCL NALユニットとともに含んでいる。
c.2:スライスベースのサブサンプル:サブサンプルは、1つのスライス(すなわち、1つのVCL NALユニット)と、もしあれば、関連する非VCL NALユニットとを含んでいる。
d.フラグの他の値が予約されている。
[0102] subsample_priorityフィールドは、ISO/IEC14496-12におけるこのフィールドの仕様に従って、ある値に設定され得る(たとえば、設定されるものとする)。
[0103] 廃棄可能フィールドは、このサブサンプルが廃棄される(たとえば、サブサンプルがSEI NALユニットからなる)場合、このサンプルが依然として復号可能である場合にのみ、1に設定され得る(たとえば、設定されるものとする)。
[0104] NALユニットの最初のバイトがサブサンプルに含まれるとき、先行する長さフィールドも同じサブサンプルに含まれ得る(たとえば、含まれるものとする)。
[0105] SubSampleInformationBoxのcodec_specific_parametersフィールドは、次のようにEVCのために定義される。
if(flags==1){
unsigned int(16)tile_col_idx;
unsigned int(16)tile_row_idx;
}
[0106] タイルに基づくサブサンプルに関するtile_col_idx、このパラメータは、このサブサンプルのタイルを含んでいるタイル列の0ベースのインデックスを示す。
[0107] タイルに基づくサブサンプルに関するtile_row_idx、このパラメータは、このサブサンプルのタイルを含んでいるタイル行の0ベースのインデックスを示す。
[0108] 以下は、CMAFメディアプロファイルについて説明する。ISO/IEC23000-19共通メディアアプリケーションフォーマット(CMAF)は、たとえば、暗号化ファイルの適応ストリーミングまたは配信のために、ISO/IEC14496-12に加えたISOBMFFファイルに対する構造的制約を定義する。これらの構造的制約への適合性は、FileTypeBox中のCMAF定義構造的ブランドの存在によってシグナリングされる。
[0109] ISO BMFFトラックがブランド「cevc」を使用する場合、それはCMAF EVCトラックと呼ばれ、EVCのためのCMAFメディアプロファイルを定義する以下の制約が適用される。
a.それは、ISO/IEC23094-1の節6.3において定義される「evc1」サンプルエントリを使用し得る(たとえば、使用するものとする)。
b.トラックは、ISO/IEC23000-19、節7における一般的なCMAFトラック制約に準拠し得る(たとえば、準拠するものとする)。
c.トラックは、ISO/IEC23000-19、節9における一般的なCMAFビデオトラック制約に準拠し得る(たとえば、準拠するものとする)。
[0110] EVCメディアがCMAFスイッチングセット内で提供される場合、
a.CMAFスイッチングセット内のすべてのCMAFトラックは、CMAF EVCトラックに準拠し得る(たとえば、準拠するものとする)。
b.CMAFスイッチングセットは、ISO/IEC23000-19、節7における一般的なCMAFスイッチングセット制約に準拠し得る(たとえば、準拠するものとする)。
c.ISO/IEC23000-19、節9において定義されている一般的なCMAFビデオトラックスイッチングセット制約。
[0111] これらの要件に従うCMAFスイッチングセットは、CMAF EVCメディアプロファイル「cevc」として定義される。CMAF EVCトラックおよびCMAF EVCスイッチングセットの暗号化は、それぞれ、ISO/IEC23001-7、節10.1および10.4において指定されているように、「cenc」AES-CTR方式または「cbcs」AES-CBCサブサンプルパターン暗号化方式のいずれかを使用して、ISO/IEC23000-19、節8に準拠し得る(たとえば、準拠するものとする)。
[0112] さらに、共通暗号化の「cbcs」モードのうち、ISO/IEC23001-7の節9.6において定義されているパターン暗号化が使用され、次いで、10のパターンブロック長および1:9の暗号化スキップパターンが、(たとえば、ISO/IEC23001-7の節10.4において説明されるように)適用され得る(たとえば、適用されるものとする)。
[0113] 以下は、DASH配信へのマッピングについて説明する。EVC符号化メディアが、適応セット中のDASHメディアプレゼンテーションにおいて提供される場合、適応セットは、ISO/IEC23009-1において定義されているCMAFに関するDASHプロファイルに準拠し得る(たとえば、準拠するものとする)。以下のパラメータが、適応セットレベルおよびセット上に存在し得る(たとえば、存在するものとする)。
a.@codecsは、付属書類Aに従って設定される。
b.@mimeTypeは、「video/mp4 profiles=’cevc’」に適合するように設定される。
[0114] 以下は、MIMEタイプ「codes」パラメータのサブパラメータについての説明である。DASHおよび他のアプリケーションは、ISO BMFFメディアトラックのためのIETF RFC6381において指定されたCodecsパラメータに関する定義された値を必要とする。EVCコーデックのためのcodecsパラメータストリングは、次の通りである。すなわち、<sample entry 4CC>.<key1><value1>.<key2><value2>.….<keyN><valueN>
[0115] キーは、4CCとして定義される。キーの初期セットおよび関連する値ペアは、表2において定義されている。追加のキーは、4CCとして指定され得る。いくつかの例では、キーはISO/IEC23091-2と整合される。
[0116] 特定のキーが提供されない場合、指定されたデフォルト値が適用されるか、または告知されない場合(n/a)、キーの値は未知である。
[0117] たとえば、codecs=”evc1.vprf3.vlev51.vtoo03FF.vbit20.vcss420.vcpr09.vtrc16.vmac09.vsar01”は、(0、0)ルーマサンプルとコロケートされた4:2:0クロマサブサンプリングと、制限されたツールセットと、ITU-R BT.2100カラープライマリと、ITU-R BT.2100PQ伝達特性と、ITU-R BT.2100YCbCrカラーマトリクスと、サンプルアスペクト比1:1とを有する、EVCメインプロファイル、レベル5.1を表す。evc1サンプルエントリが認識される場合、表2中のすべてのキーが認識され得る(たとえば、認識されなければならない)。キーが認識されない場合、キー値ペアは無視される。いくつかの例では、他のキー、たとえば、2CCのみが定義され得る。
[0118] 「vtoo」およびtoolset_idcのキー値ペアは、デコーダ構成レコード内のtoolset_idcシンタックス要素と同じ情報を伝達するが、この情報をビデオ処理デバイスに公開する異なる方法を表す。
[0119] 上記で説明された技法によれば、宛先デバイス116は、ビデオデータのビットストリームを復号するための構成レコードを受信するように構成され得、ここにおいて、ビットストリームのための構成レコードは、構成レコードに関連付けられたビットストリームを復号するために必要とされるツールをビデオ復号ツールのセットから識別する情報を含むツールセット指示シンタックス要素を含み、ツールセット指示シンタックス要素に基づいて、構成レコードに関連付けられたビットストリームを取り出すべきかどうかを決定し、構成レコードに関連付けられたビットストリームを取り出す決定に基づいて、ビットストリームを取り出し、復号のためにビットストリームをビデオデコーダに出力する。宛先デバイス116は、追加または代替として、キー値ペアを含むMIMEタイプパラメータを受信し得、ここにおいて、キーは、MIMEタイプがビデオ復号ツールを識別することを示し、値は、ビデオ復号ツールから、ビットストリームを復号するために必要とされるツールを識別する。ビデオデータのビットストリームは、1つまたは複数のパラメータセットを含み得、ビットストリームを復号するために必要とされる構成レコードにおいて識別されたツールの各々は、1つまたは複数のパラメータセットのうちの少なくとも1つにおいて有効にされ得る。
[0120] ツールセット指示シンタックス要素は、ファイルフォーマット情報(file format information)の構成ボックス中でシグナリングされる。構成レコードに関連付けられたビットストリームを復号するために必要とされるツールを識別する情報を含むツールセット指示シンタックス要素は、構成レコードに関連付けられたビットストリームを復号するために必要とされるすべてのツールを識別し得る。ツールセット指示シンタックス要素は、符号なし32ビット整数値(unsigned 32-bit integer value)であり得、符号なし32ビット整数値の各ビットは、ビットストリームを復号するための一意のツールに対応する。
[0121] 構成レコードは、エッセンシャルEVC規格に従ってフォーマットされ得る。ビットストリームのための構成レコードは、ツールセット指示シンタックス要素の前に、プロファイルシンタックス要素(profile syntax element)および/またはレベルシンタックス要素(level syntax element)を含み得る。ビットストリームのための構成レコードは、ツールセット指示シンタックス要素の後にクロマフォーマットシンタックス要素(chroma format syntax element)を含み得る。
[0122] 図2Aおよび図2Bは、例示的なクワッドツリーバイナリツリー(QTBT)構造130と、対応するコーディングツリーユニット(CTU)132とを示す概念図である。実線はクワッドツリースプリッティングを表し、点線はバイナリツリースプリッティングを示す。バイナリツリーの各スプリット(すなわち、非リーフ)ノードでは、どのスプリッティングタイプ(すなわち、水平または垂直)が使用されるかを示すために1つのフラグがシグナリングされ、ここで、この例では、0は水平スプリッティングを示し、1は垂直スプリッティングを示す。クワッドツリースプリッティングでは、クワッドツリーノードが、ブロックを、等しいサイズをもつ4つのサブブロックに水平および垂直にスプリットするので、スプリッティングタイプを示す必要がない。したがって、QTBT構造130の領域ツリーレベル(すなわち、実線)についての(スプリッティング情報などの)シンタックス要素と、QTBT構造130の予測ツリーレベル(すなわち、破線)についての(スプリッティング情報などの)シンタックス要素とを、ビデオエンコーダ200は符号化し得、ビデオデコーダ300は復号し得る。QTBT構造130の端末リーフノードによって表されるCUについての、予測および変換データなどのビデオデータを、ビデオエンコーダ200は符号化し得、ビデオデコーダ300は復号し得る。
[0123] 概して、図2BのCTU132は、第1および第2のレベルにおいてQTBT構造130のノードに対応するブロックのサイズを定義するパラメータに関連付けられ得る。これらのパラメータは、(サンプル中のCTU132のサイズを表す)CTUサイズと、最小クワッドツリーサイズ(最小許容クワッドツリーリーフノードサイズを表すMinQTSize)と、最大バイナリツリーサイズ(最大許容バイナリツリールートノードサイズを表すMaxBTSize)と、最大バイナリツリー深度(最大許容バイナリツリー深度を表すMaxBTDepth)と、最小バイナリツリーサイズ(最小許容バイナリツリーリーフノードサイズを表すMinBTSize)とを含み得る。
[0124] CTUに対応するQTBT構造のルートノードは、QTBT構造の第1のレベルにおいて4つの子ノードを有し得、それらの各々は、クワッドツリー区分に従って区分され得る。すなわち、第1のレベルのノードは、(子ノードを有しない)リーフノードであるか、または4つの子ノードを有するかのいずれかである。QTBT構造130の例は、分岐のために実線を有する親ノードと子ノードとを含むようなノードを表す。第1のレベルのノードが最大許容バイナリツリールートノードサイズ(MaxBTSize)よりも大きくない場合、ノードは、それぞれのバイナリツリーによってさらに区分され得る。1つのノードのバイナリツリースプリッティングは、スプリットから生じるノードが最小許容バイナリツリーリーフノードサイズ(MinBTSize)または最大許容バイナリツリー深度(MaxBTDepth)に達するまで反復され得る。QTBT構造130の例は、分岐のために破線を有するようなノードを表す。バイナリツリーリーフノードはコーディングユニット(CU)と呼ばれ、CUは、さらなる区分なしに予測(たとえば、ピクチャ内またはピクチャ間予測)および変換のために使用される。上記で説明されたように、CUは「ビデオブロック」または「ブロック」と呼ばれることもある。
[0125] QTBT区分構造の一例では、CTUサイズは、128×128(ルーマサンプルおよび2つの対応する64×64クロマサンプル)として設定され、MinQTSizeは16×16として設定され、MaxBTSizeは64×64として設定され、(幅と高さの両方について)MinBTSizeは4として設定され、MaxBTDepthは4として設定される。クワッドツリー区分は、クワッドツリーリーフノードを生成するために、最初にCTUに適用される。クワッドツリーリーフノードは、16×16(すなわち、MinQTSize)から128×128(すなわち、CTUサイズ)までのサイズを有し得る。リーフクワッドツリーノードが128×128である場合、リーフクワッドツリーノードは、サイズがMaxBTSize(すなわち、この例では、64×64)を超えるので、バイナリツリーによってさらにスプリットされない。他の場合、リーフクワッドツリーノードは、バイナリツリーによってさらに区分される。したがって、クワッドツリーリーフノードはまた、バイナリツリーのためのルートノードであり、0としてのバイナリツリー深度を有する。バイナリツリー深度がMaxBTDepth(この例では4)に達したとき、さらなるスプリッティングは許可されない。バイナリツリーノードがMinBTSize(この例では4)に等しい幅を有するとき、それは、さらなる水平スプリッティングが許可されないことを暗示する。同様に、MinBTSizeに等しい高さを有するバイナリツリーノードは、さらなる垂直分割がそのバイナリツリーノードのために許可されないことを暗示する。上述のように、バイナリツリーのリーフノードは、CUと呼ばれ、さらなる区分なしに予測および変換に従ってさらに処理される。
[0126] 図3は、本開示の技法を実施し得る例示的なビデオエンコーダ200を示すブロック図である。図3は、説明の目的で提供されており、本開示において広く例示され、説明される技法を限定するものと見なされるべきではない。説明の目的で、本開示は、JEMと、EVCと、VVC(開発中のITU-T H.266)と、HEVC(ITU-T H.265)との技法によるビデオエンコーダ200について説明する。しかしながら、本開示の技法は、他のビデオコーディング規格に構成されたビデオ符号化デバイスによって実行され得る。
[0127] 図3の例では、ビデオエンコーダ200は、ビデオデータメモリ230と、モード選択ユニット202と、残差生成ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、フィルタユニット216と、復号ピクチャバッファ(DPB)218と、エントロピー符号化ユニット220とを含む。ビデオデータメモリ230と、モード選択ユニット202と、残差生成ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、フィルタユニット216と、DPB218と、エントロピー符号化ユニット220とのいずれかまたはすべては、1つまたは複数のプロセッサにおいてまたは処理回路において実装され得る。たとえば、ビデオエンコーダ200のユニットは、1つまたは複数の回路または論理要素として、ハードウェア回路の一部として、あるいはFPGAのプロセッサ、ASICの一部として実装され得る。その上、ビデオエンコーダ200は、これらおよび他の機能を実施するための追加または代替のプロセッサまたは処理回路を含み得る。
[0128] ビデオデータメモリ230は、ビデオエンコーダ200の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオエンコーダ200は、たとえば、ビデオソース104(図1)から、ビデオデータメモリ230に記憶されるビデオデータを受信し得る。DPB218は、ビデオエンコーダ200による後続のビデオデータの予測において使用するための参照ビデオデータを記憶する参照ピクチャメモリとして働き得る。ビデオデータメモリ230とDPB218とは、同期ダイナミックランダムアクセスメモリ(DRAM)(SDRAM)を含むDRAM、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ230とDPB218とは、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ230は、図示のように、ビデオエンコーダ200の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0129] 本開示では、ビデオデータメモリ230への言及は、特にそのように説明されない限り、ビデオエンコーダ200の内部のメモリに限定されるものとして解釈されるべきではなく、または特にそのように説明されない限り、ビデオエンコーダ200の外部のメモリに限定されるものとして解釈されるべきではない。そうではなく、ビデオデータメモリ230への言及は、ビデオエンコーダ200が符号化のために受信するビデオデータ(たとえば、符号化されるべきである現在ブロックのためのビデオデータ)を記憶する参照メモリとして理解されるべきである。図1のメモリ106はまた、ビデオエンコーダ200の様々なユニットからの出力の一時的記憶を提供し得る。
[0130] 図3の様々なユニットは、ビデオエンコーダ200によって実施される動作を理解するのを支援するために示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装され得る。固定機能回路は、特定の機能を提供する回路を指し、実施され得る動作に関してプリセットされる。プログラマブル回路は、様々なタスクを実施するように、および実施され得る動作においてフレキシブルな機能を提供するようにプログラムされ得る回路を指す。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義される様式でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、(たとえば、パラメータを受信するかまたはパラメータを出力するために)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは、概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は、別個の回路ブロック(固定機能またはプログラマブル)であり得、いくつかの例では、ユニットのうちの1つまたは複数は、集積回路であり得る。
[0131] ビデオエンコーダ200は、算術論理ユニット(ALU)、基本機能ユニット(EFU)、デジタル回路、アナログ回路、および/またはプログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオエンコーダ200の動作が、プログラマブル回路によって実行されるソフトウェアを使用して実施される例では、メモリ106(図1)は、ビデオエンコーダ200が受信し、実行するソフトウェアの命令(たとえば、オブジェクトコード)を記憶し得るか、またはビデオエンコーダ200内の別のメモリ(図示せず)が、そのような命令を記憶し得る。
[0132] ビデオデータメモリ230は、受信されたビデオデータを記憶するように構成される。ビデオエンコーダ200は、ビデオデータメモリ230からビデオデータのピクチャを取り出し、ビデオデータを残差生成ユニット204とモード選択ユニット202とに提供し得る。ビデオデータメモリ230中のビデオデータは、符号化されるべきである生のビデオデータであり得る。
[0133] モード選択ユニット202は、動き推定ユニット222と、動き補償ユニット224と、イントラ予測ユニット226とを含む。モード選択ユニット202は、他の予測モードに従ってビデオ予測を実施するための追加の機能ユニットを含み得る。例として、モード選択ユニット202は、パレットユニット、(動き推定ユニット222および/または動き補償ユニット224の一部であり得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含み得る。
[0134] モード選択ユニット202は、概して、符号化パラメータの組合せと、そのような組合せについての得られたレートひずみ値とをテストするために、複数の符号化パスを協調させる。符号化パラメータは、CUへのCTUの区分、CUのための予測モード、CUの残差データのための変換タイプ、CUの残差データのための量子化パラメータなどを含み得る。モード選択ユニット202は、他のテストされた組合せよりも良好であるレートひずみ値を有する符号化パラメータの組合せを最終的に選択し得る。
[0135] ビデオエンコーダ200は、ビデオデータメモリ230から取り出されたピクチャを一連のCTUに区分し、スライス内の1つまたは複数のCTUをカプセル化し得る。モード選択ユニット202は、上記で説明されたQTBT構造またはクワッドツリー構造など、ツリー構造に従ってピクチャのCTUを区分し得る。上記で説明されたように、ビデオエンコーダ200は、ツリー構造に従ってCTUを区分することから1つまたは複数のCUを形成し得る。そのようなCUは、概して「ビデオブロック」または「ブロック」と呼ばれることもある。
[0136] 概して、モード選択ユニット202はまた、現在ブロック(たとえば、現在CU、またはPUとTUとの重複する部分)のための予測ブロックを生成するように、それの構成要素(たとえば、動き推定ユニット222、動き補償ユニット224、およびイントラ予測ユニット226)を制御する。現在ブロックのインター予測のために、動き推定ユニット222は、1つまたは複数の参照ピクチャ(たとえば、DPB218に記憶された1つまたは複数の前にコーディングされたピクチャ)中で1つまたは複数のぴったり一致する参照ブロックを識別するために動き探索を実施し得る。特に、動き推定ユニット222は、たとえば、絶対差分和(SAD)、2乗差分和(SSD)、平均絶対差(MAD)、平均2乗差(MSD)などに従って、現在ブロックに対して潜在的参照ブロックがどのくらい類似しているかを表す値を計算し得る。動き推定ユニット222は、概して、現在ブロックと考慮されている参照ブロックとの間のサンプルごとの差分を使用してこれらの計算を実施し得る。動き推定ユニット222は、現在ブロックに最もぴったり一致する参照ブロックを示す、これらの計算から得られた最も低い値を有する参照ブロックを識別し得る。
[0137] 動き推定ユニット222は、現在ピクチャ中の現在ブロックの位置に対して参照ピクチャ中の参照ブロックの位置を定義する1つまたは複数の動きベクトル(MV)を形成し得る。動き推定ユニット222は、次いで、動きベクトルを動き補償ユニット224に提供し得る。たとえば、単方向インター予測では、動き推定ユニット222は、単一の動きベクトルを提供し得るが、双方向インター予測では、動き推定ユニット222は、2つの動きベクトルを提供し得る。動き補償ユニット224は、次いで、動きベクトルを使用して予測ブロックを生成し得る。たとえば、動き補償ユニット224は、動きベクトルを使用して参照ブロックのデータを取り出し得る。別の例として、動きベクトルが部分サンプル精度を有する場合、動き補償ユニット224は、1つまたは複数の補間フィルタに従って予測ブロックについての値を補間し得る。その上、双方向インター予測では、動き補償ユニット224は、それぞれの動きベクトルによって識別された2つの参照ブロックについてデータを取り出し、たとえば、サンプルごとの平均化または重み付き平均化を通して、取り出されたデータを組み合わせ得る。
[0138] 別の例として、イントラ予測、またはイントラ予測コーディングのために、イントラ予測ユニット226は、現在ブロックに隣接しているサンプルから予測ブロックを生成し得る。たとえば、方向性モードでは、イントラ予測ユニット226は、概して、予測ブロックを生成するために、隣接サンプルの値を数学的に組み合わせ、現在ブロックにわたって定義された方向にこれらの計算された値をポピュレートし得る。別の例として、DCモードでは、イントラ予測ユニット226は、現在ブロックに対する隣接サンプルの平均を計算し、予測ブロックの各サンプルについてこの得られた平均を含むように予測ブロックを生成し得る。
[0139] モード選択ユニット202は、予測ブロックを残差生成ユニット204に提供する。残差生成ユニット204は、ビデオデータメモリ230から現在ブロックの生の符号化されていないバージョンを受信し、モード選択ユニット202から予測ブロックを受信する。残差生成ユニット204は、現在ブロックと予測ブロックとの間のサンプルごとの差分を計算する。得られたサンプルごとの差分は、現在ブロックのための残差ブロックを定義する。いくつかの例では、残差生成ユニット204はまた、残差差分パルスコード変調(RDPCM)を使用して残差ブロックを生成するために、残差ブロック中のサンプル値間の差分を決定し得る。いくつかの例では、残差生成ユニット204は、バイナリ減算を実施する1つまたは複数の減算器回路を使用して形成され得る。
[0140] モード選択ユニット202がCUをPUに区分する例では、各PUは、ルーマ予測ユニットと、対応するクロマ予測ユニットとに関連付けられ得る。ビデオエンコーダ200とビデオデコーダ300とは、様々なサイズを有するPUをサポートし得る。上記で示されたように、CUのサイズは、CUのルーマコーディングブロックのサイズを指し得、PUのサイズは、PUのルーマ予測ユニットのサイズを指し得る。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ200は、イントラ予測のための2N×2NまたはN×NのPUサイズと、インター予測のための2N×2N、2N×N、N×2N、N×N、または同様のものの対称PUサイズとをサポートし得る。ビデオエンコーダ200とビデオデコーダ300とはまた、インター予測のための2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズの非対称区分をサポートし得る。
[0141] モード選択ユニット202がCUをPUにさらに区分しない例では、各CUは、ルーマコーディングブロックと、対応するクロマコーディングブロックとに関連付けられ得る。上記のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指し得る。ビデオエンコーダ200とビデオデコーダ300とは、2N×2N、2N×N、またはN×2NのCUサイズをサポートし得る。
[0142] いくつかの例として、イントラブロックコピーモードコーディング、アフィンモードコーディング、および線形モデル(LM)モードコーディングなどの他のビデオコーディング技法では、モード選択ユニット202は、コーディング技法に関連付けられたそれぞれのユニットを介して、符号化されている現在ブロックのための予測ブロックを生成する。パレットモードコーディングなど、いくつかの例では、モード選択ユニット202は、予測ブロックを生成せず、代わりに、選択されたパレットに基づいてブロックを再構築すべき様式を示すシンタックス要素を生成し得る。そのようなモードでは、モード選択ユニット202は、符号化されるべきこれらのシンタックス要素をエントロピー符号化ユニット220に提供し得る。
[0143] 上記で説明されたように、残差生成ユニット204は、現在ブロックのためのビデオデータと、対応する予測ブロックとを受信する。残差生成ユニット204は、次いで、現在ブロックのための残差ブロックを生成する。残差ブロックを生成するために、残差生成ユニット204は、予測ブロックと現在ブロックとの間のサンプルごとの差分を計算する。
[0144] 変換処理ユニット206は、(本明細書では「変換係数ブロック」と呼ばれる)変換係数のブロックを生成するために、残差ブロックに1つまたは複数の変換を適用する。変換処理ユニット206は、変換係数ブロックを形成するために、残差ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット206は、離散コサイン変換(DCT)、方向性変換、カルーネンレーベ変換(KLT)、または概念的に同様の変換を残差ブロックに適用し得る。いくつかの例では、変換処理ユニット206は、残差ブロックに複数の変換、たとえば、回転変換などの1次変換および2次変換を実施し得る。いくつかの例では、変換処理ユニット206は、残差ブロックに変換を適用しない。
[0145] 量子化ユニット208は、量子化された変換係数ブロックを生成するために、変換係数ブロック中の変換係数を量子化し得る。量子化ユニット208は、現在ブロックに関連付けられた量子化パラメータ(QP)値に従って変換係数ブロックの変換係数を量子化し得る。ビデオエンコーダ200は(たとえば、モード選択ユニット202を介して)、CUに関連付けられたQP値を調整することによって、現在ブロックに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。量子化は、情報の損失をもたらし得、したがって、量子化された変換係数は、変換処理ユニット206によって生成された元の変換係数よりも低い精度を有し得る。
[0146] 逆量子化ユニット210および逆変換処理ユニット212は、変換係数ブロックから残差ブロックを再構築するために、それぞれ、量子化された変換係数ブロックに逆量子化および逆変換を適用し得る。再構築ユニット214は、再構築された残差ブロックと、モード選択ユニット202によって生成された予測ブロックとに基づいて、(潜在的にある程度のひずみを伴うが)現在ブロックに対応する再構築されたブロックを生成し得る。たとえば、再構築ユニット214は、再構築されたブロックを生成するために、モード選択ユニット202によって生成された予測ブロックからの対応するサンプルに、再構築された残差ブロックのサンプルを加算し得る。
[0147] フィルタユニット216は、再構築されたブロックに対して1つまたは複数のフィルタ演算を実施し得る。たとえば、フィルタユニット216は、CUのエッジに沿ってブロッキネスアーティファクトを低減するためのデブロッキング動作を実施し得る。フィルタユニット216の動作は、いくつかの例では、スキップされ得る。
[0148] ビデオエンコーダ200は、再構築されたブロックをDPB218に記憶する。たとえば、フィルタユニット216の動作が必要とされない例では、再構築ユニット214は、再構築されたブロックをDPB218に記憶し得る。フィルタユニット216の動作が必要とされる例では、フィルタユニット216は、フィルタ処理された再構築されたブロックをDPB218に記憶し得る。動き推定ユニット222と動き補償ユニット224とは、後で符号化されるピクチャのブロックをインター予測するために、再構築(および潜在的にフィルタ処理)されたブロックから形成された参照ピクチャをDPB218から取り出し得る。さらに、イントラ予測ユニット226は、現在ピクチャ中の他のブロックをイントラ予測するために、現在ピクチャのDPB218中の再構築されたブロックを使用し得る。
[0149] 概して、エントロピー符号化ユニット220は、ビデオエンコーダ200の他の機能構成要素から受信されたシンタックス要素をエントロピー符号化し得る。たとえば、エントロピー符号化ユニット220は、量子化ユニット208からの量子化された変換係数ブロックをエントロピー符号化し得る。別の例として、エントロピー符号化ユニット220は、モード選択ユニット202からの予測シンタックス要素(たとえば、インター予測のための動き情報、またはイントラ予測のためのイントラモード情報)をエントロピー符号化し得る。エントロピー符号化ユニット220は、エントロピー符号化データを生成するために、ビデオデータの別の例であるシンタックス要素に対して1つまたは複数のエントロピー符号化動作を実施し得る。たとえば、エントロピー符号化ユニット220は、コンテキスト適応型可変長コーディング(CAVLC)動作、CABAC動作、可変対可変(V2V)長コーディング動作、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)動作、確率間隔区分エントロピー(PIPE)コーディング動作、指数ゴロム符号化動作、または別のタイプのエントロピー符号化動作をデータに対して実施し得る。いくつかの例では、エントロピー符号化ユニット220は、シンタックス要素がエントロピー符号化されないバイパスモードで動作し得る。
[0150] ビデオエンコーダ200は、スライスまたはピクチャのブロックを再構築するために必要とされるエントロピー符号化シンタックス要素を含むビットストリームを出力し得る。特に、エントロピー符号化ユニット220がビットストリームを出力し得る。
[0151] 上記で説明された動作は、ブロックに関して説明される。そのような説明は、ルーマコーディングブロックおよび/またはクロマコーディングブロックのための動作であるものとして理解されるべきである。上記で説明されたように、いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、CUのルーマ成分およびクロマ成分である。いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、PUのルーマ成分およびクロマ成分である。
[0152] いくつかの例では、ルーマコーディングブロックに関して実施される動作は、クロマコーディングブロックのために繰り返される必要はない。一例として、ルーマコーディングブロックのための動きベクトル(MV)と参照ピクチャとを識別するための動作は、クロマブロックのためのMVと参照ピクチャとを識別するために繰り返される必要はない。むしろ、ルーマコーディングブロックのためのMVは、クロマブロックのためのMVを決定するためにスケーリングされ得、参照ピクチャは同じであり得る。別の例として、イントラ予測プロセスは、ルーマコーディングブロックおよびクロマコーディングブロックについて同じであり得る。
[0153] ビデオエンコーダ200は、ビデオデータを記憶するように構成されたメモリと、回路内に実装され、本開示で説明する1つまたは複数の例示的な技法を実施するように構成された1つまたは複数の処理ユニットとを含む、ビデオデータを符号化するように構成されたデバイスの一例を表す。
[0154] いくつかの例では、ソースデバイスは、ビデオエンコーダ200からの出力を受信し、ビットストリームを復号するための情報を含むエッセンシャルビデオコーディング(EVC)規格に従ってビデオエンコーダ200によって符号化されたビデオデータをカプセル化する(encapsulate)ビットストリームのための構成レコードを決定(たとえば、生成)するように構成され得る。構成レコードは、ツールセット指示シンタックス要素(たとえば、toolset_idc)を含み得る。構成レコードは、ファイルフォーマットレベル(file format level data)で、たとえば、ファイルフォーマットレベルデータとして、または、ビデオコーディングレイヤ(VCL:video coding layer)レベル符号化メディアデータ(level encoded media data)をカプセル化するレベルで提供され得る。たとえば、本明細書で説明されるように、構成レコードは、メディアファイル中の構成ボックス中に含まれ得、ここにおいて、構成ボックスは、実際の符号化メディアデータを含むムービーフラグメントボックスまたは他のボックスとは別個である。いくつかの例では、ツールセット指示シンタックス要素は、構成レコードに関連付けられたビットストリームを復号するために必要とされるすべてのツールの情報を含み得る。ツールセット指示シンタックス要素は、シーケンスパラメータセット(SPS)中でシグナリングされる別のtoolset_idcフィールドに適合するツールを示し得る。
[0155] いくつかの例では、ツールセット指示シンタックス要素は、コード化パラメータの一部であるサンプルエントリ中のファイルを再生するために必要とされるツールを含むものと見なされ得る。ツールセット指示シンタックス要素を有効にするために、MIMEタイプにおけるコード化パラメータのためのコーディング方式が利用され得る。
[0156] 図4は、本開示の技法を実施し得る例示的なビデオデコーダ300を示すブロック図である。図4は、説明の目的で提供されており、本開示において広く例示され、説明される技法を限定するものではない。説明の目的で、本開示は、JEMと、EVCと、VVC(開発中のITU-T H.266)と、HEVC(ITU-T H.265)との技法によるビデオデコーダ300について説明する。しかしながら、本開示の技法は、他のビデオコーディング規格に構成されたビデオコーディングデバイスによって実施され得る。
[0157] 図4の例では、ビデオデコーダ300は、コード化ピクチャバッファ(CPB)メモリ320と、エントロピー復号ユニット302と、予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312と、復号ピクチャバッファ(DPB)314とを含む。CPBメモリ320と、エントロピー復号ユニット302と、予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312と、DPB314とのいずれかまたはすべては、1つまたは複数のプロセッサにおいてまたは処理回路において実装され得る。たとえば、ビデオデコーダ300のユニットは、1つまたは複数の回路または論理要素として、ハードウェア回路の一部として、あるいはFPGAのプロセッサ、ASICの一部として実装され得る。その上、ビデオデコーダ300は、これらおよび他の機能を実施するための追加または代替のプロセッサまたは処理回路を含み得る。
[0158] 予測処理ユニット304は、動き補償ユニット316と、イントラ予測ユニット318とを含む。予測処理ユニット304は、他の予測モードに従って予測を実施するための追加のユニットを含み得る。例として、予測処理ユニット304は、パレットユニット、(動き補償ユニット316の一部を形成し得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含み得る。他の例では、ビデオデコーダ300は、より多数の、より少数の、または異なる機能構成要素を含み得る。
[0159] CPBメモリ320は、ビデオデコーダ300の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。CPBメモリ320に記憶されるビデオデータは、たとえば、コンピュータ可読媒体110(図1)から取得され得る。CPBメモリ320は、符号化ビデオビットストリームからの符号化ビデオデータ(たとえば、シンタックス要素)を記憶するCPBを含み得る。また、CPBメモリ320は、ビデオデコーダ300の様々なユニットからの出力を表す一時データなど、コード化ピクチャのシンタックス要素以外のビデオデータを記憶し得る。DPB314は、概して、ビデオデコーダ300が符号化ビデオビットストリームの後続のデータまたはピクチャを復号するときに出力しおよび/または参照ビデオデータとして使用し得る復号ピクチャを記憶する。CPBメモリ320とDPB314とは、SDRAMを含むDRAM、MRAM、RRAM、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。CPBメモリ320とDPB314とは、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、CPBメモリ320は、ビデオデコーダ300の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0160] 追加または代替として、いくつかの例では、ビデオデコーダ300は、メモリ120(図1)からコード化ビデオデータを取り出し得る。すなわち、メモリ120は、CPBメモリ320とともに上記で説明されたようにデータを記憶し得る。同様に、メモリ120は、ビデオデコーダ300の機能の一部または全部が、ビデオデコーダ300の処理回路によって実行されるべきソフトウェアにおいて実装されたとき、ビデオデコーダ300によって実行されるべき命令を記憶し得る。
[0161] 図4に示されている様々なユニットは、ビデオデコーダ300によって実施される動作を理解するのを支援するために示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装され得る。図3と同様に、固定機能回路は、特定の機能を提供する回路を指し、実施され得る動作に関してプリセットされる。プログラマブル回路は、様々なタスクを実施するように、および実施され得る動作においてフレキシブルな機能を提供するようにプログラムされ得る回路を指す。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義される様式でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、(たとえば、パラメータを受信するかまたはパラメータを出力するために)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは、概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は、別個の回路ブロック(固定機能またはプログラマブル)であり得、いくつかの例では、ユニットのうちの1つまたは複数は、集積回路であり得る。
[0162] ビデオデコーダ300は、ALU、EFU、デジタル回路、アナログ回路、および/またはプログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオデコーダ300の動作が、プログラマブル回路上で実行するソフトウェアによって実施される例では、オンチップまたはオフチップメモリは、ビデオデコーダ300が受信し、実行するソフトウェアの命令(たとえば、オブジェクトコード)を記憶し得る。
[0163] エントロピー復号ユニット302は、CPBから符号化ビデオデータを受信し、シンタックス要素を再生するためにビデオデータをエントロピー復号し得る。予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312とは、ビットストリームから抽出されたシンタックス要素に基づいて復号ビデオデータを生成し得る。
[0164] 概して、ビデオデコーダ300は、ブロックごとにピクチャを再構築する。ビデオデコーダ300は、各ブロックに対して個々に再構築動作を実施し得る(ここで、現在再構築されているブロック、すなわち、現在復号されているブロックは、「現在ブロック」と呼ばれることがある)。
[0165] エントロピー復号ユニット302は、量子化された変換係数ブロックの量子化された変換係数を定義するシンタックス要素、ならびに量子化パラメータ(QP)および/または(1つまたは複数の)変換モード指示などの変換情報をエントロピー復号し得る。逆量子化ユニット306は、量子化の程度と、同様に、逆量子化ユニット306が適用すべき逆量子化の程度とを決定するために、量子化された変換係数ブロックに関連付けられたQPを使用し得る。逆量子化ユニット306は、量子化された変換係数を逆量子化するために、たとえば、ビット単位の左シフト演算を実施し得る。逆量子化ユニット306は、それにより、変換係数を含む変換係数ブロックを形成し得る。
[0166] 逆量子化ユニット306が変換係数ブロックを形成した後に、逆変換処理ユニット308は、現在ブロックに関連付けられた残差ブロックを生成するために、変換係数ブロックに1つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット308は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、または別の逆変換を変換係数ブロックに適用し得る。
[0167] さらに、予測処理ユニット304は、エントロピー復号ユニット302によってエントロピー復号された予測情報シンタックス要素に従って予測ブロックを生成する。たとえば、予測情報シンタックス要素が、現在ブロックがインター予測されることを示す場合、動き補償ユニット316は、予測ブロックを生成し得る。この場合、予測情報シンタックス要素は、参照ブロックをそれから取り出すべきDPB314中の参照ピクチャ、ならびに現在ピクチャ中の現在ブロックのロケーションに対する参照ピクチャ中の参照ブロックのロケーションを識別する動きベクトルを示し得る。動き補償ユニット316は、概して、動き補償ユニット224(図3)に関して説明されたものと実質的に同様である様式で、インター予測プロセスを実施し得る。
[0168] 別の例として、予測情報シンタックス要素が、現在ブロックがイントラ予測されることを示す場合、イントラ予測ユニット318は、予測情報シンタックス要素によって示されるイントラ予測モードに従って予測ブロックを生成し得る。この場合も、イントラ予測ユニット318は、概して、イントラ予測ユニット226(図3)に関して説明されたものと実質的に同様である様式で、イントラ予測プロセスを実施し得る。イントラ予測ユニット318は、DPB314から、現在ブロックに対する隣接サンプルのデータを取り出し得る。
[0169] 再構築ユニット310は、予測ブロックと残差ブロックとを使用して現在ブロックを再構築し得る。たとえば、再構築ユニット310は、現在ブロックを再構築するために、予測ブロックの対応するサンプルに残差ブロックのサンプルを加算し得る。
[0170] フィルタユニット312は、再構築されたブロックに対して1つまたは複数のフィルタ演算を実施し得る。たとえば、フィルタユニット312は、再構築されたブロックのエッジに沿ってブロッキネスアーティファクトを低減するためのデブロッキング動作を実施し得る。フィルタユニット312の動作は、必ずしもすべての例において実施されるとは限らない。
[0171] ビデオデコーダ300は、再構築されたブロックをDPB314に記憶し得る。たとえば、フィルタユニット312の動作が実施されない例では、再構築ユニット310は、再構築されたブロックをDPB314に記憶し得る。フィルタユニット312の動作が実施される例では、フィルタユニット312は、フィルタ処理された再構築されたブロックをDPB314に記憶し得る。上記で説明されたように、DPB314は、イントラ予測のための現在ピクチャのサンプル、および後続の動き補償のための前に復号されたピクチャなど、参照情報を、予測処理ユニット304に提供し得る。その上、ビデオデコーダ300は、DPB314からの復号ピクチャ(たとえば、復号ビデオ)を、図1のディスプレイデバイス118などのディスプレイデバイス上での後続の提示のために、出力し得る。
[0172] このようにして、ビデオデコーダ300は、ビデオデータを記憶するように構成されたメモリと、回路内に実装され、本開示において説明される例示的な技法を実行するように構成された1つまたは複数の処理ユニットとを含む、ビデオ復号デバイスの一例を表す。
[0173] いくつかの例では、クライアントデバイスは、エッセンシャルビデオコーディング(EVC)規格に従ってビデオデータのビットストリームを復号するための構成レコードを受信するように構成され得る。構成レコードは、ツールセット指示シンタックス要素(たとえば、toolset_idc)を含み得る。いくつかの例では、ツールセット指示シンタックス要素は、構成レコードに関連付けられたビットストリームを復号するために必要とされるすべてのツールの情報を含み得る。構成レコードのツールセット指示シンタックス要素は、シーケンスパラメータセット(SPS)中でシグナリングされるツールセット指示シンタックス要素に一致し得る。ツールセット指示シンタックス要素に基づいて、クライアントデバイスは、構成レコードに関連付けられたビットストリームを取り出すべきかどうかを決定し得る。構成レコードに関連付けられたビットストリームを取り出す決定に基づいて、クライアントデバイスは、ビットストリームを取り出し、復号のためにビットストリームをビデオデコーダ300に出力し得る。
[0174] いくつかの例では、ツールセット指示シンタックス要素は、コード化パラメータの一部であるサンプルエントリ中のファイルを再生するために必要とされるツールを含むものと見なされ得る。ツールセット指示シンタックス要素を有効にするために、MIMEタイプにおけるコード化パラメータのためのコーディング方式が利用され得る。
[0175] 図5は、本開示の1つまたは複数の技法による、ファイル500の例示的な構造を示す概念図である。図5の例では、ファイル500は、ムービーボックス502と、複数のメディアデータボックス504とを含む。図5の例では同じファイルの中にあるものとして示されるが、他の例では、ムービーボックス502およびメディアデータボックス504は別のファイルの中にあり得る。上記のように、ボックスは、一意のタイプ識別子および長さによって定義されるオブジェクト指向ビルディングブロックであり得る。たとえば、ボックスは、4文字のコーディングされたボックスタイプと、ボックスのバイトカウントと、ペイロードとを含む、ISOBMFFにおける基本的なシンタックス構造であり得る。
[0176] ムービーボックス502は、ファイル500のトラックのためのメタデータを含み得る。ファイル500の各トラックは、メディアデータの連続的なストリームを備え得る。メディアデータボックス504の各々は、1つまたは複数のサンプル505を含み得る。サンプル505の各々は、オーディオまたはビデオアクセスユニットを備え得る。各アクセスユニットは、マルチビューコーディングまたはスケーラブルビデオコーディングのための複数のコード化ピクチャを備え得る。たとえば、アクセスユニットは、各レイヤのための1つまたは複数のコード化ピクチャを含み得る。
[0177] さらに、図5の例では、ムービーボックス502はトラックボックス506を含む。トラックボックス506は、ファイル500のトラックのためのメタデータを封入し得る。他の例では、ムービーボックス502は、ファイル500の異なるトラックのために複数のトラックボックスを含み得る。トラックボックス506は、トラック参照ボックス508とメディアボックス510とを含む。トラック参照ボックス508は、トラック参照タイプボックス509を含み得る。トラック参照タイプボックス509は、タイプ(たとえば、「tbas」)と、別のトラックを識別するトラック識別子とに関連付けられ得る。本開示の第6の技法によれば、タイルトラックのトラック参照ボックスは、タイプ識別子「tbas」に関連付けられたトラック参照タイプボックスを含んでも含まなくてもよい。
[0178] メディアボックス510は、トラック内のメディアデータに関する情報を宣言するすべてのオブジェクトを含み得る。メディアボックス510は、メディア情報ボックス512を含む。メディア情報ボックス512は、トラックのメディアの特性情報を宣言するすべてのオブジェクトを含み得る。メディア情報ボックス512は、サンプルテーブルボックス514を含む。サンプルテーブルボックス514は、サンプル固有のメタデータを指定し得る。
[0179] 図5の例では、サンプルテーブルボックス514はサンプル記述ボックス516を含み、サンプル記述ボックス516は、サンプルエントリ518を含む。サンプルエントリ518は、上記で説明したように、ツールセット指示シンタックス要素を含み得る、EVCデコーダ構成520を含む。他の例では、サンプルテーブルボックス514は、サンプル記述ボックス516およびサンプルエントリ518に加えて、他のボックスを含み得る。図5には示されていないが、サンプルエントリ518は、デコーダ構成レコードを含み得る。上記でより詳細に説明したように、本開示は、サンプルエントリ518などのサンプルエントリ中に新しいタイプの重要な情報を含めるための技法について説明する。
[0180] 図6は、例示的なマルチメディアコンテンツ620の要素を示す概念図である。図6の例では、マルチメディアコンテンツ620は、MPD622と、複数の表現624A~624N(表現624)とを含む。表現624Aは、任意のヘッダデータ626と、セグメント628A~628N(セグメント628)とを含むが、表現624Nは、任意のヘッダデータ630と、セグメント632A~632N(セグメント632)とを含む。文字Nは、便宜上、表現624の各々中の最後のムービーフラグメントを指定するために使用される。いくつかの例では、表現624間で異なる数のムービーフラグメントが存在し得る。
[0181] MPD622は、表現624とは別のデータ構造を備え得る。概して、MPD422は、コーディング特性およびレンダリング特性、適応セット、MPD422が対応するプロファイル、テキストタイプ情報、カメラアングル情報、レーティング情報、トリックモード情報(たとえば、時間サブシーケンスを含む表現を示す情報)、および/または(たとえば、再生中のメディアコンテンツ中へのターゲット広告挿入のための)リモート期間を取り出すための情報などの、表現424の特性を全体的に記述するデータを含み得る。
[0182] ヘッダデータ626は、存在するとき、セグメント628の特性、たとえば、ランダムアクセスポイント(RAP、ストリームアクセスポイント(SAP)とも呼ばれる)の時間ロケーションを記述することができ、セグメント628のランダムアクセスポイントは、ランダムアクセスポイント、セグメント628内のランダムアクセスポイントへのバイトオフセット、セグメント628のユニフォームリソースロケータ(URL)、またはセグメント628の他の態様を含む。ヘッダデータ630は、存在するとき、セグメント632に関する同様の特性を記述し得る。追加または代替として、そのような特性は、MPD622内に完全に含まれ得る。
[0183] セグメント628、632は、1つまたは複数のコード化ビデオサンプルを含み、コード化ビデオサンプルの各々は、ビデオデータのフレームまたはスライスを含み得る。セグメント628のコード化ビデオサンプルの各々は、同様の特性、たとえば、高さ、幅、および帯域幅の要件を有し得る。そのような特性はMPD622のデータによって記述され得るが、そのようなデータは図6の例に示されていない。MPD622は、本開示で説明されるシグナリングされた情報のいずれかまたはすべてに加えて、3GPP(登録商標)仕様によって説明される特性を含み得る。
[0184] セグメント628、632の各々は、一意のユニフォームリソースロケータ(URL)に関連付けられ得る。したがって、セグメント628、632の各々は、DASHなどのストリーミングネットワークプロトコルを使用して独立して取出し可能であり得る。このようにして、宛先デバイスは、セグメント628または632を取り出すためにHTTP GET要求を使用し得る。いくつかの例では、宛先デバイスは、セグメント628または632の特定のバイト範囲を取り出すためにHTTP部分GET要求を使用し得る。
[0185] 図7は、例示的なビデオファイル750の要素を示すブロック図である。ビデオファイル750は、セグメントをカプセル化すると言われることがある。上記で説明したように、ISOベースメディアファイルフォーマットおよびその拡張によるビデオファイルは、データを「ボックス」と呼ばれる一連のオブジェクトに記憶する。図7の例では、ビデオファイル750は、ファイルタイプ(FTYP)ボックス752と、ムービー(MOOV)ボックス754と、セグメントインデックス(sidx)ボックス762と、ムービーフラグメント(MOOF)ボックス764と、ムービーフラグメントランダムアクセス(MFRA)ボックス766とを含む。図7はビデオファイルの一例を表しているが、他のメディアファイルは、ISOベースメディアファイルフォーマットおよびその拡張に従って、ビデオファイル750のデータと同様に構造化された他のタイプのメディアデータ(たとえば、オーディオデータ、タイムドテキストデータなど)を含み得ることを理解されたい。
[0186] FTYPボックス752は、概して、ビデオファイル750のためのファイルタイプを記述する。ファイルタイプボックス752は、ビデオファイル750の最良の使用法を記述する仕様を識別するデータを含み得る。ファイルタイプボックス752は、代替的に、MOOVボックス754、ムービーフラグメントボックス764、および/またはMFRAボックス766の前に配置され得る。
[0187] いくつかの例では、ビデオファイル750などのセグメントは、FTYPボックス752の前にMPD更新ボックス(図示せず)を含み得る。MPD更新ボックスは、MPDを更新するための情報とともに、ビデオファイル750を含む表現に対応するMPDが更新されるべきであることを示す情報を含み得る。たとえば、MPD更新ボックスは、MPDを更新するために使用されるリソースのためのURIまたはURLを提供し得る。別の例として、MPD更新ボックスは、MPDを更新するためのデータを含み得る。いくつかの例では、MPD更新ボックスは、ビデオファイル750のセグメントタイプ(STYP)ボックス(図示せず)の直後にくることができ、ここにおいて、STYPボックスは、ビデオファイル750のセグメントタイプを定義し得る。
[0188] MOOVボックス754は、図7の例では、ムービーヘッダ(MVHD)ボックス756と、トラック(TRAK)ボックス758と、1つまたは複数のムービー拡張(MVEX)ボックス760とを含む。概して、MVHDボックス756は、ビデオファイル750の一般的特性を記述し得る。たとえば、MVHDボックス756は、ビデオファイル750が最初に生成されたとき、ビデオファイル750が最後に変更されたときを記述するデータ、ビデオファイル750の時間軸、ビデオファイル750の再生の持続時間、またはビデオファイル750を一般に記述する他のデータを含み得る。
[0189] TRAKボックス758は、ビデオファイル750のトラックについてのデータを含み得る。TRAKボックス758は、TRAKボックス758に対応するトラックの特性を記述するトラックヘッダ(TKHD)ボックスを含み得る。いくつかの例では、TRAKボックス758はコード化ビデオピクチャを含み得るが、他の例では、トラックのコード化ビデオピクチャは、TRAKボックス758および/またはsidxボックス762のデータによって参照され得るムービーフラグメント764中に含まれ得る。
[0190] いくつかの例では、ビデオファイル750は、2つ以上のトラックを含み得る。したがって、MOOVボックス754は、ビデオファイル750中のトラックの数に等しいいくつかのTRAKボックスを含み得る。TRAKボックス758は、ビデオファイル750の対応するトラックの特性を記述し得る。たとえば、TRAKボックス758は、対応するトラックについての時間および/または空間情報を記述し得る。パラメータセットトラックがビデオファイル750などのビデオファイル中に含まれるとき、MOOVボックス754のTRAKボックス758と同様のTRAKボックスは、パラメータセットトラックの特性を記述し得る。シーケンスレベルSEIメッセージの存在は、パラメータセットトラックを記述するTRAKボックス内のパラメータセットトラックにおいてシグナリングされ得る。
[0191] MVEXボックス760は、たとえば、もしあれば、MOOVボックス754内に含まれるビデオデータに加えて、ビデオファイル750がムービーフラグメント764を含むことをシグナリングするように、対応するムービーフラグメント764の特性を記述し得る。ビデオデータをストリーミングするコンテキストでは、コード化ビデオピクチャは、MOOVボックス754ではなくムービーフラグメント764中に含まれ得る。したがって、すべてのコード化ビデオサンプルは、MOOVボックス754ではなくムービーフラグメント764中に含まれ得る。
[0192] MOOVボックス754は、ビデオファイル750中のムービーフラグメント764の数に等しいいくつかのMVEXボックス760を含み得る。MVEXボックス760の各々は、ムービーフラグメント764のうちの対応する1つの特性を記述し得る。たとえば、各MVEXボックスは、ムービーフラグメント764のうちの対応する1つについての持続時間を記述するムービー拡張ヘッダボックス(MEHD)ボックスを含み得る。
[0193] シーケンスデータセットは、実際のコード化ビデオデータを含まないビデオサンプルに記憶され得る。ビデオサンプルは、概して、特定の時間インスタンスにおけるコード化ピクチャの表現である、アクセスユニットに対応し得る。AVCのコンテキストでは、コード化ピクチャは、アクセスユニットのすべてのピクセルを構成するための情報を含んでいる1つまたは複数のVCL NALユニットと、SEIメッセージなどの他の関連する非VCL NALユニットとを含む。したがって、シーケンスレベルSEIメッセージを含み得るシーケンスデータセットは、ムービーフラグメント764のうちの1つに含まれ得る。シーケンスデータセットおよび/またはシーケンスレベルSEIメッセージの存在は、ムービーフラグメント764のうちの1つに対応するMVEXボックス760のうちの1つ内のムービーフラグメント764のうちの1つ中に存在するものとしてシグナリングされ得る。
[0194] SIDXボックス762は、ビデオファイル750の任意の要素である。すなわち、3GPPファイルフォーマット、または他のそのようなファイルフォーマットに準拠するビデオファイルは、必ずしもSIDXボックス762を含むとは限らない。3GPPファイルフォーマットの例によれば、SIDXボックスは、セグメント(たとえば、ビデオファイル750内に含まれるセグメント)のサブセグメントを識別するために使用され得る。3GPPファイルフォーマットは、サブセグメントを、「対応するメディアデータボックスと、ムービーフラグメントボックスによって参照されるデータを含むメディアデータボックスとをもつ、1つまたは複数の連続するムービーフラグメントボックスの自己完結型セットは、そのムービーフラグメントボックスに続き、同じトラックに関する情報を含む次のムービーフラグメントボックスに先行しなければならない」と定義する。3GPPファイルフォーマットはまた、SIDXボックスが、「ボックスによって文書化される(サブ)セグメントのサブセグメントへの参照のシーケンスを含む。参照されたサブセグメントは、プレゼンテーション時間において連続する。同様に、セグメントインデックスボックスによって参照されるバイトは、常にセグメント内で連続する。参照されたサイズは、参照された材料中のバイト数のカウントを与える」ことを示している。
[0195] SIDXボックス762は、概して、ビデオファイル750中に含まれるセグメントの1つまたは複数のサブセグメントを表す情報を提供する。たとえば、そのような情報は、サブセグメントが開始および/または終了する再生時間、サブセグメントのバイトオフセット、サブセグメントがストリームアクセスポイント(SAP)を含む(たとえば、それで開始する)かどうか、SAPのタイプ(たとえば、SAPが瞬時デコーダリフレッシュ(IDR)ピクチャであるか、クリーンランダムアクセス(CRA)ピクチャであるか、切断リンクアクセス(BLA)ピクチャであるかどうかなど)、サブセグメント中の(再生時間および/またはバイトオフセットに関する)SAPの位置などを含み得る。
[0196] ムービーフラグメント764は、1つまたは複数のコード化ビデオピクチャを含み得る。いくつかの例では、ムービーフラグメント764は、1つまたは複数のピクチャグループ(GOP)を含み得、GOPの各々は、いくつかのコード化ビデオピクチャ、たとえばフレームまたはピクチャを含み得る。さらに、上記で説明したように、ムービーフラグメント764は、いくつかの例では、シーケンスデータセットを含み得る。ムービーフラグメント764の各々は、ムービーフラグメントヘッダボックス(MFHD、図7に図示せず)を含み得る。MFHDボックスは、ムービーフラグメントのシーケンス番号などの、対応するムービーフラグメントの特性を記述し得る。ムービーフラグメント764は、ビデオファイル750中のシーケンス番号の順に含まれ得る。
[0197] MFRAボックス766は、ビデオファイル750のムービーフラグメント764内のランダムアクセスポイントを記述し得る。これは、ビデオファイル750によってカプセル化されたセグメント内の特定の時間ロケーション(すなわち、再生時間)へのシークを実施することなどの、トリックモードを実施するのを支援し得る。MFRAボックス766は、概して随意であり、いくつかの例では、ビデオファイル中に含まれる必要がない。同様に、クライアントデバイスは、ビデオファイル750のビデオデータを正しく復号し表示するために、必ずしもMFRAボックス766を参照する必要がない。MFRAボックス766は、ビデオファイル750のトラックの数に等しいか、またはいくつかの例では、ビデオファイル750のメディアトラック(たとえば、非ヒントトラック)の数に等しい、いくつかのトラックフラグメントランダムアクセス(TFRA)ボックス(図示せず)を含み得る。
[0198] いくつかの例では、ムービーフラグメント764は、IDRピクチャなど、1つまたは複数のストリームアクセスポイント(SAP)を含み得る。同様に、MFRAボックス766は、SAPのビデオファイル750内のロケーションの指示を与え得る。したがって、ビデオファイル750のSAPからビデオファイル750の時間サブシーケンスが形成され得る。時間サブシーケンスはまた、SAPに従属するPフレームおよび/またはBフレームなどの、他のピクチャを含み得る。時間サブシーケンスのフレームおよび/またはスライスは、サブシーケンスの他のフレーム/スライスに依存する時間サブシーケンスのフレーム/スライスが適切に復号され得るように、セグメント内に構成され得る。たとえば、データの階層構成において、他のデータの予測のために使用されるデータも時間サブシーケンス中に含まれ得る。
[0199] ビデオファイル750は、この例では、サンプル記述ボックス768も含んでいる。特に、サンプル記述ボックス768は、この例では、TRAKボックス758内に含まれる。図7の例では、サンプル記述ボックス768は、コーデックに従って符号化されたビデオデータを含まない。
[0200] 例示的なサンプル記述ボックス768は、次のように定義され得る。すなわち、
サンプルエントリおよびボックスタイプ:「hvc2」、「hev2」、「lhv1」、「lhe1」、「lhvC」
・コンテナ:サンプル記述ボックス(「stsd」)
・必須:「hvc1」、「hev1」、「hvc2」、「hev2」、「lhv1」、または「lhe1」サンプルエントリは必須である。
・量:1つまたは複数のサンプルエントリが存在し得る。
[0201] サンプル記述ボックス768に関するこの例示的な定義では、サンプルエントリ名が「lhv1」であるとき、array_completenessのデフォルトおよび必須値は、すべてのタイプのパラメータセットのアレイについて4であり、すべての他のアレイについて0である。サンプルエントリ名が「lhe1」であるとき、array_completenessのデフォルト値は、すべてのアレイについて0である。
[0202] 図8は、本開示の技法による、ビデオデータを処理するための例示的な方法を示すフローチャートである。図1の宛先デバイス116に関して説明されるが、他のデバイスが、図8の方法と同様の方法を実行するように構成され得ることを理解されたい。
[0203] 宛先デバイス116は、ビデオデータのビットストリームを復号するための構成レコードを受信するように構成され得る(800)。ビットストリームのための構成レコードは、ビデオ復号ツールのセットから、構成レコードに関連付けられたビットストリームを復号するために必要とされるツールを識別する情報を含むツールセット指示シンタックス要素を含み得る。構成レコード内のツールセット指示シンタックス要素に基づいて、宛先デバイス116は、構成レコードに関連付けられたビットストリームを取り出すべきかどうかを決定し得る(802)。宛先デバイス116は、次いで、ビットストリームを取り出し得る(804)。宛先デバイス116は、復号のためにビデオデコーダにビットストリームを出力し得る(806)。宛先デバイス116は、追加または代替として、キー値ペアを含むMIMEタイプパラメータを受信し得、ここにおいて、キーは、MIMEタイプがビデオ復号ツールを識別することを示し、値は、ビデオ復号ツールから、ビットストリームを復号するために必要とされるツールを識別する。ビデオデータのビットストリームは、1つまたは複数のパラメータセットを含み得、ビットストリームを復号するために必要とされる構成レコードにおいて識別されたツールの各々は、1つまたは複数のパラメータセットのうちの少なくとも1つにおいて有効にされ得る。
[0204] ツールセット指示シンタックス要素は、ファイルフォーマット情報の構成ボックス中でシグナリングされる。構成レコードに関連付けられたビットストリームを復号するために必要とされるツールを識別する情報を含むツールセット指示シンタックス要素は、構成レコードに関連付けられたビットストリームを復号するために必要とされるすべてのツールを識別し得る。ツールセット指示シンタックス要素は、符号なし32ビット整数値であり得、符号なし32ビット整数値の各ビットは、ビットストリームを復号するための一意のツールに対応する。
[0205] 構成レコードは、エッセンシャルEVC規格に従ってフォーマットされ得る。ビットストリームのための構成レコードは、ツールセット指示シンタックス要素の前に、プロファイルシンタックス要素および/またはレベルシンタックス要素を含み得る。ビットストリームのための構成レコードは、ツールセット指示シンタックス要素の後にクロマフォーマットシンタックス要素を含み得る。
[0206] 上記例に応じて、本明細書で説明された技法のいずれかのいくつかの行為またはイベントは、異なるシーケンスで実施され得、追加、マージ、または完全に除外され得る(たとえば、すべての説明された行為またはイベントが本技法の実践のために必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実施され得る。
[0207] 以下の条項は、上記で説明したシステムおよび技法の例示的な実装形態を表す。
[0208] 条項1.ビデオストリームまたはビデオファイルを処理する方法であって、方法は、ビデオデータのビットストリームを復号するための構成レコードを受信することと、ここにおいて、ビットストリームのための構成レコードは、ビデオ復号ツールのセットから、構成レコードに関連付けられたビットストリームを復号するために必要とされるツールを識別する情報を含むツールセット指示シンタックス要素を含む、ツールセット指示シンタックス要素に基づいて、構成レコードに関連付けられたビットストリームを取り出すべきかどうかを決定することと、構成レコードに関連付けられたビットストリームを取り出す決定に基づいて、ビットストリームを取り出し、復号のためにビットストリームをビデオデコーダに出力することとを備える、方法。
[0209] 条項2.キー値ペアを含む多目的インターネットメール拡張(MIME)タイプパラメータを受信することをさらに備え、ここにおいて、キーは、MIMEタイプがビデオ復号ツールを識別することを示し、値は、ビデオ復号ツールから、ビットストリームを復号するために必要とされるツールを識別する、条項1に記載の方法。
[0210] 条項3.ビデオデータのビットストリームは、1つまたは複数のパラメータセットを備え、ビットストリームを復号するために必要とされる構成レコードにおいて識別されたツールの各々は、1つまたは複数のパラメータセットのうちの少なくとも1つにおいて有効にされる、条項1または2に記載の方法。
[0211] 条項4.構成レコードに関連付けられたビットストリームを復号するために必要とされるツールを識別する情報を含むツールセット指示シンタックス要素は、構成レコードに関連付けられたビットストリームを復号するために必要とされるすべてのツールを識別する、条項1から3のいずれかに記載の方法。
[0212] 条項5.構成レコードは、エッセンシャルビデオコーディング(EVC)規格に従ってフォーマットされる、条項1から4のいずれかに記載の方法。
[0213] 条項6.ツールセット指示シンタックス要素は、ファイルフォーマット情報の構成ボックス中でシグナリングされる、条項1から5のいずれかに記載の方法。
[0214] 条項7.ツールセット指示シンタックス要素は、符号なし32ビット整数値を備える、条項1から6のいずれかに記載の方法。
[0215] 条項8.符号なし32ビット整数値のビット(bit)は各々、ビットストリームを復号するための一意のツールに対応する、条項7に記載の方法。
[0216] 条項9.ビットストリームのための構成レコードは、ツールセット指示シンタックス要素の前にプロファイルシンタックス要素を含む、条項1から8のいずれかに記載の方法。
[0217] 条項10.ビットストリームのための構成レコードは、ツールセット指示シンタックス要素の前にレベルシンタックス要素を含む、条項1から9のいずれかに記載の方法。
[0218] 条項11.ビットストリームのための構成レコードは、ツールセット指示シンタックス要素の後にクロマフォーマットシンタックス要素を含む、条項1から10のいずれかに記載の方法。
[0219] 条項12.構成レコードは、ビデオデータのビットストリーム中のビデオコーディングレイヤ(VCL)レベル符号化メディアデータをカプセル化するファイルフォーマットレベルデータを備え、ここにおいて、VCLレベル符号化メディアデータは、1つまたは複数のパラメータセットを含み、ビットストリームを復号するために必要とされる構成レコードにおいて識別されたツールの各々は、1つまたは複数のパラメータセットのうちの少なくとも1つにおいて有効にされる、条項1から11のいずれかに記載の方法。
[0220] 条項13.ビデオデータを処理するためのデバイスであって、デバイスは、メモリと、回路内に実装され、メモリに結合され、ビデオデータのビットストリームを復号するための構成レコードを受信することと、ここにおいて、ビットストリームのための構成レコードは、ビデオ復号ツールのセットから、構成レコードに関連付けられたビットストリームを復号するために必要とされるツールを識別する情報を含むツールセット指示シンタックス要素を含む、ツールセット指示シンタックス要素に基づいて、構成レコードに関連付けられたビットストリームを取り出すべきかどうかを決定することと、構成レコードに関連付けられたビットストリームを取り出す決定に基づいて、ビットストリームを取り出し、復号のためにビットストリームをビデオデコーダに出力することとを行うように構成された、1つまたは複数のプロセッサとを備える、デバイス。
[0221] 条項14.1つまたは複数のプロセッサは、キー値ペアを含む多目的インターネットメール拡張(MIME)タイプパラメータを受信するようにさらに構成され、ここにおいて、キーは、MIMEタイプがビデオ復号ツールを識別することを示し、値は、ビデオ復号ツールから、ビットストリームを復号するために必要とされるツールを識別する、条項13に記載のデバイス。
[0222] 条項15.ビデオデータのビットストリームは、1つまたは複数のパラメータセットを備え、ビットストリームを復号するために必要とされる構成レコードにおいて識別されたツールの各々は、1つまたは複数のパラメータセットのうちの少なくとも1つにおいて有効にされる、条項13または14に記載のデバイス。
[0223] 条項16.構成レコードに関連付けられたビットストリームを復号するために必要とされるツールを識別する情報を含むツールセット指示シンタックス要素は、構成レコードに関連付けられたビットストリームを復号するために必要とされるすべてのツールを識別する、条項13から15のいずれかに記載のデバイス。
[0224] 条項17.構成レコードは、エッセンシャルビデオコーディング(EVC)規格に従ってフォーマットされる、条項13から16のいずれかに記載のデバイス。
[0225] 条項18.ツールセット指示シンタックス要素は、ファイルフォーマット情報の構成ボックス中でシグナリングされる、条項13から17のいずれかに記載のデバイス。
[0226] 条項19.ツールセット指示シンタックス要素は、符号なし32ビット整数値を備える、条項13から15のいずれかに記載のデバイス。
[0227] 条項20.符号なし32ビット整数値のビットは各々、ビットストリームを復号するための一意のツールに対応する、条項19に記載のデバイス。
[0228] 条項21.ビットストリームのための構成レコードは、ツールセット指示シンタックス要素の前にプロファイルシンタックス要素を含む、条項13から20のいずれかに記載のデバイス。
[0229] 条項22.ビットストリームのための構成レコードは、ツールセット指示シンタックス要素の前にレベルシンタックス要素を含む、条項13から21のいずれかに記載のデバイス。
[0230] 条項23.ビットストリームのための構成レコードは、ツールセット指示シンタックス要素の後にクロマフォーマットシンタックス要素を含む、条項13から22のいずれかに記載のデバイス。
[0231] 条項24.構成レコードは、ビデオデータのビットストリーム中のビデオコーディングレイヤ(VCL)レベル符号化メディアデータをカプセル化するファイルフォーマットレベルデータを備え、ここにおいて、VCLレベル符号化メディアデータは、1つまたは複数のパラメータセットを含み、ビットストリームを復号するために必要とされる構成レコードにおいて識別されたツールの各々は、1つまたは複数のパラメータセットのうちの少なくとも1つにおいて有効にされる、条項13から23のいずれかに記載のデバイス。
[0232] 条項25.命令を記憶するコンピュータ可読記憶媒体であって、命令は、1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、 ビデオデータのビットストリームを復号するための構成レコードを受信することと、ここにおいて、ビットストリームのための構成レコードは、ビデオ復号ツールのセットから、構成レコードに関連付けられたビットストリームを復号するために必要とされるツールを識別する情報を含むツールセット指示シンタックス要素を含む、ツールセット指示シンタックス要素に基づいて、構成レコードに関連付けられたビットストリームを取り出すべきかどうかを決定することと、構成レコードに関連付けられたビットストリームを取り出す決定に基づいて、ビットストリームを取り出し、復号のためにビットストリームをビデオデコーダに出力することとを行わせる、コンピュータ可読記憶媒体。
[0233] 条項26.命令は、1つまたは複数のプロセッサに、キー値ペアを含む多目的インターネットメール拡張(MIME)タイプパラメータを受信させ、ここにおいて、キーは、MIMEタイプがビデオ復号ツールを識別することを示し、値は、ビデオ復号ツールから、ビットストリームを復号するために必要とされるツールを識別する、条項25に記載のコンピュータ可読記憶媒体。
[0234] 条項27.ビデオデータのビットストリームは、1つまたは複数のパラメータセットを備え、ビットストリームを復号するために必要とされる構成レコードにおいて識別されたツールの各々は、1つまたは複数のパラメータセットのうちの少なくとも1つにおいて有効にされる、条項25または26に記載のコンピュータ可読記憶媒体。
[0235] 条項28.構成レコードに関連付けられたビットストリームを復号するために必要とされるツールを識別する情報を含むツールセット指示シンタックス要素は、構成レコードに関連付けられたビットストリームを復号するために必要とされるすべてのツールを識別する、条項25から27のいずれかに記載のコンピュータ可読記憶媒体。
[0236] 条項29.構成レコードは、ビデオデータのビットストリーム中のビデオコーディングレイヤ(VCL)レベル符号化メディアデータをカプセル化するファイルフォーマットレベルデータを備え、ここにおいて、VCLレベル符号化メディアデータは、1つまたは複数のパラメータセットを含み、ビットストリームを復号するために必要とされる構成レコードにおいて識別されたツールの各々は、1つまたは複数のパラメータセットのうちの少なくとも1つにおいて有効にされる、条項25から28のいずれかに記載のコンピュータ可読記憶媒体。
[0237] 条項30.ビデオストリームまたはビデオファイルを処理するための装置であって、ビデオデータのビットストリームを復号するための構成レコードを受信するための手段と、ここにおいて、ビットストリームのための構成レコードは、ビデオ復号ツールのセットから、構成レコードに関連付けられたビットストリームを復号するために必要とされるツールを識別する情報を含むツールセット指示シンタックス要素を含む、構成レコードに関連付けられたビットストリームを取り出すべきかどうかを決定するための手段と、構成レコードに関連付けられたビットストリームを取り出す決定に基づいてビットストリームを取り出すための手段と、復号のためにビットストリームをビデオデコーダに出力するための手段とを備える、装置。
[0238] 条項31.ビデオデータを処理する方法であって、エッセンシャルビデオコーディング(EVC)規格に従ってビデオデータのビットストリームを復号するための構成レコードを受信することと、ここにおいて、ビットストリームのための構成レコードは、構成レコードに関連付けられたビットストリームを復号するために必要とされるすべてのツールの情報を含むツールセット指示シンタックス要素を含む、ツールセット指示シンタックス要素に基づいて、構成レコードに関連付けられたビットストリームを取り出すべきかどうかを決定するステップと、構成レコードに関連付けられたビットストリームを取り出す決定に基づいて、ビットストリームを取り出し、復号のためにビットストリームをビデオデコーダに出力することとを備える、方法。
[0239] 条項32.ビデオデータを処理する方法であって、エッセンシャルビデオコーディング(EVC)規格に従ってビデオエンコーダによって生成されたビデオデータのビットストリームのための構成レコードを決定することと、ここにおいて、ビットストリームのための構成レコードは、ビットストリームを復号するための情報を含み、構成レコードは、構成レコードに関連付けられたビットストリームを復号するために必要とされるすべてのツールの情報を含むツールセット指示シンタックス要素を含む、構成レコードをシグナリングすることとを備える、方法。
[0240] 条項33.ツールセット指示シンタックス要素は、ファイルフォーマット情報の構成ボックス中でシグナリングされる、条項31または32に記載の方法。
[0241] 条項34.ビデオデータを処理するためのデバイスであって、条項1から3のいずれか1つまたは組合せに記載された方法を実行するように構成された処理回路を備える、デバイス。
[0242] 条項35.ビデオデータを記憶するためのメモリをさらに備える、条項34に記載のデバイス。
[0243] 条項36.復号ビデオデータを表示するように構成されたディスプレイをさらに備える、条項34および35のいずれかに記載のデバイス。
[0244] 条項37.デバイスが、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、条項34から36のいずれかに記載のデバイス。
[0245] 条項38.実行されたとき、1つまたは複数のプロセッサに、条項31から33のいずれかに記載の方法を実行させる命令を記憶したコンピュータ可読記憶媒体。
[0246] 条項39.ビデオデータを処理するためのデバイスであって、条項31から33のいずれかに記載の方法を実行するための手段を備えるデバイス。
[0247] 1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0248] 限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu-rayディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0249] 命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは他の等価な集積またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」および「処理回路」という用語は、上記の構造、または本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に提供されるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素において十分に実装され得る。
[0250] 本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって提供され得る。
[0251] 様々な例が説明された。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1] ビデオストリームまたはビデオファイルを処理する方法であって、
ビデオデータのビットストリームを復号するための構成レコードを受信することと、ここにおいて、前記ビットストリームのための前記構成レコードは、ビデオ復号ツールのセットから、前記構成レコードに関連付けられた前記ビットストリームを復号するために必要とされるツールを識別する情報を含むツールセット指示シンタックス要素を含む、
前記ツールセット指示シンタックス要素に基づいて、前記構成レコードに関連付けられた前記ビットストリームを取り出すべきかどうかを決定することと、
前記構成レコードに関連付けられた前記ビットストリームを取り出す前記決定に基づいて、前記ビットストリームを取り出し、復号のために前記ビットストリームをビデオデコーダに出力することと
を備える、方法。
[C2] キー値ペアを含む多目的インターネットメール拡張(MIME)タイプパラメータを受信すること
をさらに備え、
ここにおいて、前記キーは、前記MIMEタイプが前記ビデオ復号ツールを識別することを示し、前記値は、前記ビデオ復号ツールから、前記ビットストリームを復号するために必要とされる前記ツールを識別する、C1に記載の方法。
[C3] ビデオデータの前記ビットストリームは、1つまたは複数のパラメータセットを備え、前記ビットストリームを復号するために必要とされる前記構成レコードにおいて識別された前記ツールの各々は、前記1つまたは複数のパラメータセットのうちの少なくとも1つにおいて有効にされる、C1に記載の方法。
[C4] 前記構成レコードに関連付けられた前記ビットストリームを復号するために必要とされる前記ツールを識別する情報を含む前記ツールセット指示シンタックス要素は、前記構成レコードに関連付けられた前記ビットストリームを復号するために必要とされるすべてのツールを識別する、C1に記載の方法。
[C5] 前記構成レコードは、エッセンシャルビデオコーディング(EVC)規格に従ってフォーマットされる、C1に記載の方法。
[C6] 前記ツールセット指示シンタックス要素は、ファイルフォーマット情報の構成ボックス中でシグナリングされる、C1に記載の方法。
[C7] 前記ツールセット指示シンタックス要素は、符号なし32ビット整数値を備える、C1に記載の方法。
[C8] 前記符号なし32ビット整数値のビットは各々、前記ビットストリームを復号するための一意のツールに対応する、C7に記載の方法。
[C9] 前記ビットストリームのための前記構成レコードは、前記ツールセット指示シンタックス要素の前にプロファイルシンタックス要素を含む、C1に記載の方法。
[C10] 前記ビットストリームのための前記構成レコードは、前記ツールセット指示シンタックス要素の前にレベルシンタックス要素を含む、C1に記載の方法。
[C11] 前記ビットストリームのための前記構成レコードは、前記ツールセット指示シンタックス要素の後にクロマフォーマットシンタックス要素を含む、C1に記載の方法。
[C12] 前記構成レコードは、前記ビデオデータの前記ビットストリーム中のビデオコーディングレイヤ(VCL)レベル符号化メディアデータをカプセル化するファイルフォーマットレベルデータを備え、ここにおいて、前記VCLレベル符号化メディアデータは、1つまたは複数のパラメータセットを含み、前記ビットストリームを復号するために必要とされる前記構成レコードにおいて識別された前記ツールの各々は、前記1つまたは複数のパラメータセットのうちの少なくとも1つにおいて有効にされる、C1に記載の方法。
[C13] ビデオデータを処理するためのデバイスであって、
メモリと、
回路内に実装され、前記メモリに結合され、
ビデオデータのビットストリームを復号するための構成レコードを受信することと、ここにおいて、前記ビットストリームのための前記構成レコードは、ビデオ復号ツールのセットから、前記構成レコードに関連付けられた前記ビットストリームを復号するために必要とされるツールを識別する情報を含むツールセット指示シンタックス要素を含む、 前記ツールセット指示シンタックス要素に基づいて、前記構成レコードに関連付けられた前記ビットストリームを取り出すべきかどうかを決定することと、
前記構成レコードに関連付けられた前記ビットストリームを取り出す前記決定に基づいて、前記ビットストリームを取り出し、復号のために前記ビットストリームをビデオデコーダに出力することと
を行うように構成された、1つまたは複数のプロセッサと
を備える、デバイス。
[C14] 前記1つまたは複数のプロセッサは、
キー値ペアを含む多目的インターネットメール拡張(MIME)タイプパラメータを受信する
ようにさらに構成され、
ここにおいて、前記キーは、前記MIMEタイプが前記ビデオ復号ツールを識別することを示し、前記値は、前記ビデオ復号ツールから、前記ビットストリームを復号するために必要とされる前記ツールを識別する、C13に記載のデバイス。
[C15] ビデオデータの前記ビットストリームは、1つまたは複数のパラメータセットを備え、前記ビットストリームを復号するために必要とされる前記構成レコードにおいて識別された前記ツールの各々は、前記1つまたは複数のパラメータセットのうちの少なくとも1つにおいて有効にされる、C13に記載のデバイス。
[C16] 前記構成レコードに関連付けられた前記ビットストリームを復号するために必要とされる前記ツールを識別する情報を含む前記ツールセット指示シンタックス要素は、前記構成レコードに関連付けられた前記ビットストリームを復号するために必要とされるすべてのツールを識別する、C13に記載のデバイス。
[C17] 前記構成レコードは、エッセンシャルビデオコーディング(EVC)規格に従ってフォーマットされる、C13に記載のデバイス。
[C18] 前記ツールセット指示シンタックス要素は、ファイルフォーマット情報の構成ボックス中でシグナリングされる、C13に記載のデバイス。
[C19] 前記ツールセット指示シンタックス要素は、符号なし32ビット整数値を備える、C13に記載のデバイス。
[C20] 前記符号なし32ビット整数値のビットは各々、前記ビットストリームを復号するための一意のツールに対応する、C19に記載のデバイス。
[C21] 前記ビットストリームのための前記構成レコードは、前記ツールセット指示シンタックス要素の前にプロファイルシンタックス要素を含む、C13に記載のデバイス。
[C22] 前記ビットストリームのための前記構成レコードは、前記ツールセット指示シンタックス要素の前にレベルシンタックス要素を含む、C13に記載のデバイス。
[C23] 前記ビットストリームのための前記構成レコードは、前記ツールセット指示シンタックス要素の後にクロマフォーマットシンタックス要素を含む、C13に記載のデバイス。
[C24] 前記構成レコードは、前記ビデオデータの前記ビットストリーム中のビデオコーディングレイヤ(VCL)レベル符号化メディアデータをカプセル化するファイルフォーマットレベルデータを備え、ここにおいて、前記VCLレベル符号化メディアデータは、1つまたは複数のパラメータセットを含み、前記ビットストリームを復号するために必要とされる前記構成レコードにおいて識別された前記ツールの各々は、前記1つまたは複数のパラメータセットのうちの少なくとも1つにおいて有効にされる、C13に記載のデバイス。
[C25] 命令を記憶するコンピュータ可読記憶媒体であって、前記命令は、1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに、
ビデオデータのビットストリームを復号するための構成レコードを受信することと、ここにおいて、前記ビットストリームのための前記構成レコードは、ビデオ復号ツールのセットから、前記構成レコードに関連付けられた前記ビットストリームを復号するために必要とされるツールを識別する情報を含むツールセット指示シンタックス要素を含む、
前記ツールセット指示シンタックス要素に基づいて、前記構成レコードに関連付けられた前記ビットストリームを取り出すべきかどうかを決定することと、
前記構成レコードに関連付けられた前記ビットストリームを取り出す前記決定に基づいて、前記ビットストリームを取り出し、復号のために前記ビットストリームをビデオデコーダに出力することと
を行わせる、コンピュータ可読記憶媒体。
[C26] 前記命令は、前記1つまたは複数のプロセッサに、
キー値ペアを含む多目的インターネットメール拡張(MIME)タイプパラメータを受信させ、ここにおいて、前記キーは、前記MIMEタイプが前記ビデオ復号ツールを識別することを示し、前記値は、前記ビデオ復号ツールから、前記ビットストリームを復号するために必要とされる前記ツールを識別する、
C25に記載のコンピュータ可読記憶媒体。
[C27] ビデオデータの前記ビットストリームは、1つまたは複数のパラメータセットを備え、前記ビットストリームを復号するために必要とされる前記構成レコードにおいて識別された前記ツールの各々は、前記1つまたは複数のパラメータセットのうちの少なくとも1つにおいて有効にされる、C25に記載のコンピュータ可読記憶媒体。
[C28] 前記構成レコードに関連付けられた前記ビットストリームを復号するために必要とされる前記ツールを識別する情報を含む前記ツールセット指示シンタックス要素は、前記構成レコードに関連付けられた前記ビットストリームを復号するために必要とされるすべてのツールを識別する、C25に記載のコンピュータ可読記憶媒体。
[C29] 前記構成レコードは、前記ビデオデータの前記ビットストリーム中のビデオコーディングレイヤ(VCL)レベル符号化メディアデータをカプセル化するファイルフォーマットレベルデータを備え、ここにおいて、前記VCLレベル符号化メディアデータは、1つまたは複数のパラメータセットを含み、前記ビットストリームを復号するために必要とされる前記構成レコードにおいて識別された前記ツールの各々は、前記1つまたは複数のパラメータセットのうちの少なくとも1つにおいて有効にされる、C25に記載のコンピュータ可読記憶媒体。
[C30] ビデオストリームまたはビデオファイルを処理するための装置であって、前記装置は、 ビデオデータのビットストリームを復号するための構成レコードを受信するための手段と、ここにおいて、前記ビットストリームのための前記構成レコードは、ビデオ復号ツールのセットから、前記構成レコードに関連付けられた前記ビットストリームを復号するために必要とされるツールを識別する情報を含むツールセット指示シンタックス要素を含む、
前記ツールセット指示シンタックス要素に基づいて、前記構成レコードに関連付けられた前記ビットストリームを取り出すべきかどうかを決定するための手段と、
前記構成レコードに関連付けられた前記ビットストリームを取り出す前記決定に基づいて前記ビットストリームを取り出すための手段と、
復号のために前記ビットストリームをビデオデコーダに出力するための手段と
を備える、装置。