[0006]本開示は、ビデオデータを記憶するための様々な技法に関する。具体的には、本開示は、パラメータセットと他のパラメータとをビデオファイル内にカプセル化するための技法を説明する。
[0007]本開示の一例では、コード化ビデオコンテンツを含むビデオファイルを生成する方法は、コード化ビデオコンテンツの複数のスライスを取得することと、ビデオコンテンツの複数のスライスと関連付けられる複数のパラメータセットを取得することと、ビデオストリームの1つ又は複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化することと、ビデオストリームの1つ又は複数のアクセス単位内に第1のタイプのパラメータセットをカプセル化することと、サンプル記述内に第2のタイプのパラメータセットをカプセル化することとを備え、サンプル記述は、ビデオストリームの1つ又は複数のアクセス単位内に記憶されたパラメータセットの数を特定するインジケータを含む。
[0008]本開示の一例では、コード化ビデオコンテンツを含むビデオファイルを生成する方法は、コード化ビデオコンテンツの複数のスライスを取得することと、ビデオコンテンツの複数のスライスと関連付けられる複数のパラメータセットを取得することと、ファイルトラックのサンプル記述内に複数のパラメータセットをカプセル化することとを備え、あるタイプのパラメータセットに対応するパラメータセットネットワーク抽象化レイヤ単位が、サンプル記述中の専用のアレイに含まれる。
[0009]本開示の一例では、コード化ビデオコンテンツを含むビデオファイルを生成する方法は、コード化ビデオコンテンツの複数のスライスを取得することと、ビデオストリームの複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化することと、ビデオストリームと関連付けられる複数のストリーム特性を取得することと、ファイルトラックのサンプル記述内にストリーム特性をカプセル化することとを備え、ストリーム特性は、ビデオストリームのフレームレートと空間解像度の少なくとも1つを含む。
[0010]本開示の一例では、コード化ビデオコンテンツを含むビデオファイルを生成する方法は、コード化ビデオコンテンツの複数のスライスを取得することと、ビデオストリームの複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化することであって、ビデオストリームが複数の時間レイヤを含む、カプセル化することと、ファイルトラックのサンプル記述内にインジケータをカプセル化することであって、インジケータがビデオストリームの時間レイヤの数を示す、カプセル化することとを備える。
[0011]本開示の一例では、コード化ビデオコンテンツを含むビデオファイルを生成する方法は、コード化ビデオコンテンツの複数のスライスを取得することと、ビデオストリームの複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化することであって、ビデオストリームが複数の時間レイヤを含む、カプセル化することと、ファイルトラック中の複数のサンプル内に複数のアクセス単位をカプセル化することであって、ファイルトラックが、時間レイヤに対するトラック中のサンプルの割当ての表現、ならびに、時間レイヤの各々に対する特性の記述を含む、カプセル化することとを備える。
[0012]本開示の別の例では、機器は、コード化ビデオコンテンツの複数のスライスを取得し、ビデオコンテンツの複数のスライスと関連付けられる複数のパラメータセットを取得し、ビデオストリームの1つ又は複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化し、ビデオストリームの1つ又は複数のアクセス単位内に第1のタイプのパラメータセットをカプセル化し、サンプル記述内に第2のタイプのパラメータセットをカプセル化するように構成される、ビデオファイル作成モジュールを備え、サンプル記述は、ビデオストリームの1つ又は複数のアクセス単位内に記憶されたパラメータセットの数を特定するインジケータを含む。
[0013]本開示の別の例では、機器は、コード化ビデオコンテンツの複数のスライスを取得し、ビデオコンテンツの複数のスライスと関連付けられる複数のパラメータセットを取得し、ファイルトラックのサンプル記述内に複数のパラメータセットをカプセル化するように構成される、ビデオファイル作成モジュールを備え、あるタイプのパラメータセットに対応するパラメータセットネットワーク抽象化レイヤユニットが、サンプル記述中の専用のアレイに含まれる。
[0014]本開示の別の例では、機器は、コード化ビデオコンテンツの複数のスライスを取得し、ビデオストリームの複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化し、ビデオストリームと関連付けられる複数のストリーム特性を取得し、ファイルトラックのサンプル記述内にストリーム特性をカプセル化するように構成される、ビデオファイル作成モジュールを備え、ストリーム特性は、ビデオストリームのフレームレートと空間解像度の少なくとも1つを含む。
[0015]本開示の別の例では、機器は、コード化ビデオコンテンツの複数のスライスを取得することと、ビデオストリームの複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化することであって、ビデオストリームが複数の時間レイヤを含む、カプセル化することと、ファイルトラックのサンプル記述内にインジケータをカプセル化することであって、インジケータがビデオストリームの時間レイヤの数を示す、カプセル化することとを行うように構成される、ビデオファイル作成モジュールを備える。
[0016]本開示の別の例では、機器は、コード化ビデオコンテンツの複数のスライスを取得することと、ビデオストリームの複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化することであって、ビデオストリームが複数の時間レイヤを含む、カプセル化することと、ファイルトラック中の複数のサンプル内に複数のアクセス単位をカプセル化することであって、ファイルトラックが、時間レイヤに対するトラック中のサンプルの割当ての表現、ならびに、時間レイヤの各々に対する特性の記述を含む、カプセル化することとを行うように構成される、ビデオファイル作成モジュールを備える。
[0017]本開示の別の例では、非一時的コンピュータ可読記憶媒体は、実行されると、ビデオ符号化機器の1つ又は複数のプロセッサに、コード化ビデオコンテンツの複数のスライスを取得させ、ビデオコンテンツの複数のスライスと関連付けられる複数のパラメータセットを取得させ、ビデオストリームの1つ又は複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化させ、ビデオストリームの1つ又は複数のアクセス単位内に第1のタイプのパラメータセットをカプセル化させ、サンプル記述内に第2のタイプのパラメータセットをカプセル化させる命令を記憶しており、サンプル記述は、ビデオストリームの1つ又は複数のアクセス単位内に記憶されたパラメータセットの数を特定するインジケータを含む。
[0018]本開示の別の例では、非一時的コンピュータ可読記憶媒体は、実行されると、ビデオ符号化機器の1つ又は複数のプロセッサに、コード化ビデオコンテンツの複数のスライスを取得させ、ビデオコンテンツの複数のスライスと関連付けられる複数のパラメータセットを取得させ、ファイルトラックのサンプル記述内に複数のパラメータセットをカプセル化させる命令を記憶しており、あるタイプのパラメータセットに対応するパラメータセットネットワーク抽象化レイヤユニットが、サンプル記述中の専用のアレイに含まれる。
[0019]本開示の別の例では、非一時的コンピュータ可読記憶媒体は、実行されると、ビデオ符号化機器の1つ又は複数のプロセッサに、コード化ビデオコンテンツの複数のスライスを取得させ、ビデオストリームの複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化させ、ビデオストリームと関連付けられる複数のストリーム特性を取得させ、ファイルトラックのサンプル記述内にストリーム特性をカプセル化させる命令を記憶しており、ストリーム特性は、ビデオストリームのフレームレートと空間解像度の少なくとも1つを含む。
[0020]本開示の別の例では、非一時的コンピュータ可読記憶媒体は、実行されると、ビデオ符号化機器の1つ又は複数のプロセッサに、コード化ビデオコンテンツの複数のスライスを取得することと、複数の時間レイヤを含むビデオストリームの複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化することと、ファイルトラックのサンプル記述内にビデオストリームの時間レイヤの数を示すインジケータをカプセル化することと、を行わせる命令を記憶している。
[0021]本開示の別の例では、非一時的コンピュータ可読記憶媒体は、実行されると、ビデオ符号化機器の1つ又は複数のプロセッサに、コード化ビデオコンテンツの複数のスライスを取得することと、複数の時間レイヤを含むビデオストリームの複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化することと、時間レイヤに対するトラック中のサンプルの割当ての表現、ならびに、時間レイヤの各々に対する特性の記述を含むファイルトラック中の複数のサンプル内に複数のアクセス単位をカプセル化することと、を行わせる命令を記憶している。
[0022]本開示の別の例では、コード化ビデオコンテンツを含むビデオファイルを生成するように構成される装置は、コード化ビデオコンテンツの複数のスライスを取得するための手段と、ビデオコンテンツの複数のスライスと関連付けられる複数のパラメータセットを取得するための手段と、ビデオストリームの1つ又は複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化するための手段と、ビデオストリームの1つ又は複数のアクセス単位内に第1のタイプのパラメータセットをカプセル化するための手段と、サンプル記述内に第2のタイプのパラメータセットをカプセル化するための手段とを備え、サンプル記述は、ビデオストリームの1つ又は複数のアクセス単位内に記憶されたパラメータセットの数を特定するインジケータを含む。
[0023]本開示の別の例では、コード化ビデオコンテンツを含むビデオファイルを生成するように構成される装置は、コード化ビデオコンテンツの複数のスライスを取得するための手段と、ビデオコンテンツの複数のスライスと関連付けられる複数のパラメータセットを取得するための手段と、ファイルトラックのサンプル記述内に複数のパラメータセットをカプセル化するための手段とを備え、あるタイプのパラメータセットに対応するパラメータセットネットワーク抽象化レイヤユニットが、サンプル記述中の専用のアレイに含まれる。
[0024]本開示の別の例では、コード化ビデオコンテンツを含むビデオファイルを生成するように構成される装置は、コード化ビデオコンテンツの複数のスライスを取得するための手段と、ビデオストリームの複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化するための手段と、ビデオストリームと関連付けられる複数のストリーム特性を取得するための手段と、ファイルトラックのサンプル記述内にストリーム特性をカプセル化するための手段とを備え、ストリーム特性は、ビデオストリームのフレームレートと空間解像度の少なくとも1つを含む。
[0025]本開示の別の例では、コード化ビデオコンテンツを含むビデオファイルを生成するように構成される装置は、コード化ビデオコンテンツの複数のスライスを取得するための手段と、複数の時間レイヤを含むビデオストリームの複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化するための手段と、ファイルトラックのサンプル記述内にビデオストリームの時間レイヤの数を示すインジケータをカプセル化するための手段と、を備える。
[0026]本開示の別の例では、コード化ビデオコンテンツを含むビデオファイルを生成するように構成される装置は、コード化ビデオコンテンツの複数のスライスを取得するための手段と、複数の時間レイヤを含むビデオストリームの複数のアクセス単位内にコード化ビデオコンテンツの複数のスライスをカプセル化するための手段と、時間レイヤに対するトラック中のサンプルの割当ての表現、ならびに、時間レイヤの各々に対する特性の記述を含むファイルトラック中の複数のサンプル内に複数のアクセス単位をカプセル化するための手段と、を備える。
[0027]本開示の別の例では、コード化ビデオコンテンツを含むビデオファイルを処理する方法は、複数のサンプルを含むファイルトラックを取得することと、ファイルトラック中のビデオストリームの複数のサンプルから複数のアクセス単位を逆カプセル化することと、複数のアクセス単位からコード化ビデオコンテンツの複数のスライスを逆カプセル化することと、複数のサンプルからビデオコンテンツの複数のスライスと関連付けられる複数のパラメータセットを逆カプセル化することとを備える。
[0028]本開示の別の例では、コード化ビデオコンテンツを含むビデオファイルを処理する方法は、コード化ビデオコンテンツの複数のスライスを含むファイルトラックを取得することと、ファイルトラックのサンプル記述からビデオの複数のスライスと関連付けられる複数のパラメータセットを逆カプセル化することと、を備え、あるタイプのパラメータセットに対応するパラメータセットネットワーク抽象化レイヤユニットがサンプル記述中の専用のアレイに含まれる。
[0029]本開示の別の例では、コード化ビデオコンテンツを含むビデオファイルを処理する方法は、ビデオストリームに含まれるコード化ビデオコンテンツの複数のスライスを含むファイルトラックを取得することと、ファイルトラックのサンプル記述からビデオストリームと関連付けられる複数のストリーム特性を取得することと、を備え、ストリーム特性がビデオストリームのフレームレートと空間解像度の少なくとも1つを含む。
[0030]本開示の別の例では、コード化ビデオコンテンツを含むビデオファイルを生成する方法は、複数の時間レイヤを含むビデオストリームの複数のアクセス単位からコード化ビデオコンテンツの複数のスライスを逆カプセル化することと、ファイルトラックのサンプル記述内のビデオストリームの時間レイヤの数を示すインジケータを取得することと、を備える。
[0031]本開示の別の例では、コード化ビデオコンテンツを含むビデオファイルを処理する方法は、時間レイヤに対するトラック中のサンプルの割当ての表現、ならびに、時間レイヤの各々に対する特性の記述を含むファイルトラック中の複数のサンプルから複数のアクセス単位を逆カプセル化することと、複数の時間レイヤを含むビデオストリームの複数のアクセス単位からコード化ビデオコンテンツの複数のスライスを逆カプセル化することと、を備える。
[0032]本開示の別の例では、機器は、複数のサンプルを含むファイルトラックを取得し、ファイルトラック中のビデオストリームの複数のサンプルから複数のアクセス単位を逆カプセル化し、複数のアクセス単位からコード化ビデオコンテンツの複数のスライスを逆カプセル化し、複数のサンプルからビデオコンテンツの複数のスライスと関連付けられる複数のパラメータセットを逆カプセル化するように構成される、プロセッサを備える。
[0033]本開示の別の例では、機器は、コード化ビデオコンテンツの複数のスライスを含むファイルトラックを取得することと、ファイルトラックのサンプル記述からビデオの複数のスライスと関連付けられる複数のパラメータセットを逆カプセル化することと、を行うように構成されプロセッサを備え、あるタイプのパラメータセットに対応するパラメータセットネットワーク抽象化レイヤユニットがサンプル記述中の専用のアレイに含まれる。
[0034]本開示の別の例では、機器は、ビデオストリームに含まれるコード化ビデオコンテンツの複数のスライスを含むファイルトラックを取得することと、ファイルトラックのサンプル記述からビデオストリームと関連付けられる複数のストリーム特性を取得することと、を行うように構成されるプロセッサを備え、ストリーム特性がビデオストリームのフレームレートと空間解像度の少なくとも1つを含む。
[0035]本開示の別の例では、機器は、複数の時間レイヤを含むビデオストリームの複数のアクセス単位からコード化ビデオコンテンツの複数のスライスを逆カプセル化することと、ファイルトラックのサンプル記述からビデオストリームの時間レイヤの数を示すインジケータを取得することと、を行うように構成されるプロセッサを備える。
[0036]本開示の別の例では、機器は、時間レイヤに対するトラック中のサンプルの割当ての表現、ならびに、時間レイヤの各々に対する特性の記述を含むファイルトラック中の複数のサンプルから複数のアクセス単位を逆カプセル化することと、複数の時間レイヤを含むビデオストリームの複数のアクセス単位からコード化ビデオコンテンツの複数のスライスを逆カプセル化することと、を行うように構成されるプロセッサを備える。
[0037]本開示の別の例では、非一時的コンピュータ可読記憶媒体は、実行されると、ビデオ符号化機器の1つ又は複数のプロセッサに、複数のサンプルを含むファイルトラックを取得させ、ファイルトラック中のビデオストリームの複数のサンプルから複数のアクセス単位を逆カプセル化させ、複数のアクセス単位からコード化ビデオコンテンツの複数のスライスを逆カプセル化させ、複数のサンプルからビデオコンテンツの複数のスライスと関連付けられる複数のパラメータセットを逆カプセル化させる、命令を記憶している。
[0038]本開示の別の例では、非一時的コンピュータ可読記憶媒体は、実行されると、ビデオ符号化機器の1つ又は複数のプロセッサに、コード化ビデオコンテンツの複数のスライスを含むファイルトラックを取得することと、ファイルトラックのサンプル記述からビデオの複数のスライスと関連付けられる複数のパラメータセットを逆カプセル化することと、を行わせる命令を記憶し、あるタイプのパラメータセットに対応するパラメータセットネットワーク抽象化レイヤユニットがサンプル記述中の専用のアレイに含まれる。
[0039]本開示の別の例では、非一時的コンピュータ可読記憶媒体は、実行されると、ビデオ符号化機器の1つ又は複数のプロセッサに、ビデオストリームに含まれるコード化ビデオコンテンツの複数のスライスを含むファイルトラックを取得することと、ファイルトラックのサンプル記述からビデオストリームと関連付けられる複数のストリーム特性を取得することと、を行わせる命令を記憶し、ストリーム特性がビデオストリームのフレームレートと空間解像度の少なくとも1つを含む。
[0040]本開示の別の例では、非一時的コンピュータ可読記憶媒体は、実行されると、ビデオ符号化機器の1つ又は複数のプロセッサに、複数の時間レイヤを含むビデオストリームの複数のアクセス単位からコード化ビデオコンテンツの複数のスライスを逆カプセル化することと、ファイルトラックのサンプル記述からビデオストリームの時間レイヤの数を示すインジケータを取得することと、を行わせる命令を記憶している。
[0041]本開示の別の例では、非一時的コンピュータ可読記憶媒体は、実行されると、ビデオ符号化機器の1つ又は複数のプロセッサに、時間レイヤに対するトラック中のサンプルの割当ての表現、ならびに、時間レイヤの各々に対する特性の記述を含むファイルトラック中の複数のサンプルから複数のアクセス単位を逆カプセル化することと、複数の時間レイヤを含むビデオストリームの複数のアクセス単位からコード化ビデオコンテンツの複数のスライスを逆カプセル化することと、を行わせる命令を記憶している。
[0042]別の例では、コード化ビデオコンテンツを含むビデオファイルを処理するように構成される装置は、複数のサンプルを含むファイルトラックを取得するための手段と、ファイルトラック中のビデオストリームの複数のサンプルから複数のアクセス単位を逆カプセル化するための手段と、複数のアクセス単位からコード化ビデオコンテンツの複数のスライスを逆カプセル化するための手段と、複数のサンプルからビデオコンテンツの複数のスライスと関連付けられる複数のパラメータセットを逆カプセル化するための手段とを備える。
[0043]別の例では、コード化ビデオコンテンツを含むビデオファイルを処理するように構成される装置は、コード化ビデオコンテンツの複数のスライスを含むファイルトラックを取得するための手段と、ファイルトラックのサンプル記述からビデオの複数のスライスと関連付けられる複数のパラメータセットを逆カプセル化するための手段と、を備え、あるタイプのパラメータセットに対応するパラメータセットネットワーク抽象化レイヤユニットがサンプル記述中の専用のアレイに含まれる。
[0044]別の例では、コード化ビデオコンテンツを含むビデオファイルを処理するように構成される装置は、ビデオストリームに含まれるコード化ビデオコンテンツの複数のスライスを含むファイルトラックを取得するための手段と、ファイルトラックのサンプル記述からビデオストリームと関連付けられ、ビデオストリームのフレームレートと空間解像度の少なくとも1つを含む複数のストリーム特性を取得するための手段と、を備える。
[0045]別の例では、コード化ビデオコンテンツを含むビデオファイルを処理するように構成される装置は、複数の時間レイヤを含むビデオストリームの複数のアクセス単位からコード化ビデオコンテンツの複数のスライスを逆カプセル化するための手段と、ファイルトラックのサンプル記述内の、ビデオストリームの時間レイヤの数を示すインジケータを取得するための手段と、を備える。
[0046]別の例では、コード化ビデオコンテンツを含むビデオファイルを処理するように構成される装置は、時間レイヤに対するトラック中のサンプルの割当ての表現、ならびに、時間レイヤの各々に対する特性の記述を含むファイルトラック中の複数のサンプルから複数のアクセス単位を逆カプセル化するための手段と、複数の時間レイヤを含むビデオストリームの複数のアクセス単位からコード化ビデオコンテンツの複数のスライスを逆カプセル化するための手段と、を備える。
[0047]1つ又は複数の例の詳細は、添付の図面及び以下の説明に記載されている。他の特徴、目的、及び利点は、その説明及び図面、ならびに特許請求の範囲から明らかになろう。
[0055]全般に、本開示は、ビデオを符号化することと、コード化ビデオコンテンツをファイルに記憶することとに関する。本開示は、例えば、ISOベースのメディアファイルフォーマット(ISOBMFF)に基づくファイルに、HEVCビデオ規格に従って符号化されたビデオコンテンツを記憶することを含む、ビデオコンテンツを記憶するための様々な技法を説明する。具体的には、本開示は、メディアファイル中のHEVCビデオコンテンツに含まれる、シーケンスパラメータセット(SPS)と、ピクチャパラメータセット(PPS)と、適応パラメータセット(APS)とをカプセル化するための技法を説明する。全てのパラメータセットがファイルの始めに知られていることが可能であり、何も更新される必要がない場合(即ち、幾つかの場合には、同じパラメータセットIDを有するパラメータセットが異なるコンテンツを含むように更新される)、パラメータセットはサンプル記述に含まれてよく、これは、帯域外のパラメータ送信を可能にする。全てのパラメータセットがファイルの始めにおいて知られていることが不可能であり、又は少なくとも1つが更新される必要がある場合、パラメータセットはストリームのサンプルに含まれてよく、又は代替的に、ストリームは複数のサブストリームへと分割されてよく、複数のサブストリームの各々に対して、パラメータセットが対応するサンプル記述に含まれ得る。パラメータセットがサンプル記述に含まれること、又は、サンプル記述が適用されるストリームのサンプルにパラメータセットが含まれることを可能にすることによって、パラメータセットを記憶するためだけに追加のトラックは必要とされず、ビデオファイル作成モジュールは、サンプル記述の数と、帯域外のパラメータセット送信の可能性とのトレードオフを自由にできる。
[0056]ビデオ符号化規格の例としては、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)拡張とを含む、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264がある。加えて、ITU−T Video Coding Experts Group(VCEG)とISO/IEC Motion Picture Experts Group(MPEG)とのJoint Collaboration Team on Video Coding(JCT−VC)によって開発されている新しいビデオ符号化規格、即ち、High Efficiency Video Coding(HEVC)がある。「HEVC Working Draft 5」又は「WD5」と呼ばれるHEVCの最近のワーキングドラフト(WD)は、文書JCTVC−G1103、Brossら、「WD5:Working Draft 5 of High efficiency video coding(HEVC)」、ITU−T SG16 WP3及びISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT−VC)、第7回会合:ジュネーブ、スイス、2012年11月に記載されている。更に、HEVCの別の最近のワーキングドラフト、Working Draft 7は、文書HCTVC−I1003、Brossら、「High Efficiency Video Coding(HEVC) Text Specification Draft 7」、ITU−T SG16 WP3及びISO/IEC JTC1/SC29/WG11のJoint Collaborative Team on Video Coding(JCT−VC)、第9回会合:ジュネーブ、スイス、2012年4月27日〜2012年5月7日に記載されている。HEVC規格は、HEVCの配信バージョン用の規格番号であることが意図された、ISO/IEC 23008−HEVCと呼ばれる場合もある。
[0057]特定のビデオ規格に従って符号化されたビデオコンテンツを記憶するためには、その特定のビデオ規格に対応するファイルフォーマット仕様が必要とされる。HEVCファイルフォーマットの最新のドラフトは、そのカプセル化フォーマットの基礎として、ISOBMFFを使用する。本明細書ではHEVCFFと呼ばれるHEVCファイルフォーマットの最新のドラフトは、ISO/IEC 14496−15 2010/Amd.1:2011(E)に従って定義され、各々の全体が参照によって組み込まれる、次の規範的な参照を含む。
(1) ISO/IEC 14496−1:2001,Information technology−Coding of audio−visual objects−Part1:Systems;
(2) ISO/IEC 23008−HEVC;及び
(3) ISO/IEC 14496−12,Information Technology−Coding of audio−visual objects−Part12:ISO based media file format(即ち、ISOBMFF)
[0058]ISO/IEC 14496−12は、ISO/IEC 15444−12と技術的に同一であることに留意されたい。ISOBMFFは、多くのビデオ符号化規格のカプセル化フォーマット及び多くのマルチメディアコンテナフォーマットの基礎として使用される。ISOBMFFに基づく他のファイルフォーマットの例には、例えば、MPEG−4ファイルフォーマット(ISO/IEC 14496−14)、3GPPファイルフォーマット(3GPP TS26.244)、及びAVCファイルフォーマット(ISO/IEC 14496−15)(即ち、AVCFF)がある。更に、本明細書で開示される技法は、HEVCに関する幾つかの例で説明され、特定のファイルフォーマットに言及することがあるが、それらの技法は、他のビデオ符号化規格及びファイルフォーマットに等しく適用可能であり得ることに留意されたい。
[0059]ISOBMFFに従って構成されたファイルは、ローカルメディアファイルの再生、リモートファイルの漸進的なダウンロード、Dynamic Adaptive Streaming over HTTP(DASH)のためのセグメント、ストリーミングされるべきコンテンツのためのコンテナ及びそのパケット化命令、及び受信されたリアルタイムメディアストリームの記録を含む、多くの目的のために使用され得る。一般に、ISOBMFFは、オーディオデータ及びビデオデータのような継続的なメディアデータが、メタデータとは独立に記憶されることを可能にする。一例では、メディアデータは、HEVCに従って符号化されたピクチャのグループを含み得る。メタデータは通常、メディアデータの部分が独立に復号可能であるように、表示情報とタイミング情報とを含む。
[0060]ISOBMFFは、メディアファイルを形成するための構成単位として基本的なシンタックス要素が使用される、オブジェクト指向ベースの方式を使用する。ISOBMFFでは、これらのシンタックス要素は「ボックス」と呼ばれる。しかしながら、ISOBMFFに基づく特定のファイルフォーマットは、「アトム」のような異なる用語を使用して、ボックスに言及することがある。更に、ISOBMFFに基づく特定のファイルフォーマットを説明するとき、限定されない方式で、しばしば特定の用語がISOBMFFの用語と交換可能に使用され得る。例えば、HEVCFFを説明するとき、「アクセス単位」という用語が、ISOBMFFにおける「サンプル」という用語に対応することがあり、アクセス単位はいずれの用語を使用しても表され得る。ISOBMFFでは、ボックスは、4文字のタイプと、ボックスのバイトカウントと、ペイロードとを含む。ボックスタイプは、特定のボックスと他のタイプのボックスとの論理的な関係を定義する。ボックスタイプはまた、その特定のボックスタイプに対してどのデータが必須であり、その特定のボックスタイプに対してどのデータが任意であるかを表し得る。ボックスは、ボックスのシーケンス又はグループの一部であってよく、サブボックスと呼ばれ得る他のボックスを含んでよい。
[0061]ISOBMFFでは、Movieボックス(「moov」)が、ファイル中に存在する継続的なメディアストリームのメタデータを含む。ファイル中に存在する継続的なメディアストリームのメタデータは更に、movieボックス中の更なるボックス内に封入され得る。継続的なメディアストリームは、ISOBMFFファイル中ではトラックとして表されてよく、トラックは、movieボックス内に封入され得るメタデータを参照する論理的な構造であり、メディアストリームはサンプルのシーケンスからなる。ISOBMFFでは、メディアストリームは、Media Dataボックス(「mdat」)及びそのサブボックスのような、ボックス内に封入され得る。更に、幾つかの例では、メディアストリームは、ISOBMFFファイルに直接記憶され得る。トラックに対するメディアコンテンツは、ビデオアクセス単位のようなサンプルのシーケンスからなる。サンプルのシーケンスは、ストリームと呼ばれ得る。ISOBMFFは、基本的なメディアストリームを含むメディアトラックを規定する。各トラックに対するメタデータは、サンプル記述エントリーのリストを含み、サンプル記述エントリーの各々が、トラック中で使用される符号化フォーマット又はカプセル化フォーマットと、そのフォーマットを処理するために必要な初期化データとを提供する。各サンプルは、トラックのサンプル記述エントリーの1つと関連付けられる。ISOBMFFに基づく幾つかのファイルタイプは、ヒントトラックも含む。ヒントトラックは、メディアコンテンツがネットワークを通じてストリーミングされるときに品質及び信頼性が向上するように、メディアコンテンツの再構築を支援する情報を含む。
[0062]ISOBMFFに従って記憶されたファイルと同様に、HEVCファイルは、メタデータを参照する一連の基本的なストリームを含み得る。HEVCFFでは、サンプルは、ISO/IEC 23008−HEVCにおいて定義されるように、アクセス単位と呼ばれ得る。HEVCFFでは、メタデータは、サンプル記述エントリーにも含まれ得る。HEVCFFはヒントを与えることを可能にし得るが、幾つかのファイルフォーマットにおいてヒントトラックが「Bフレーム」として参照するものは、実際には、ISO/IEC 23008−HEVCにおいて定義されるような、「使い捨て」のピクチャ又は非参照ピクチャであり得ることに留意されたい。更に、HEVCビデオコンテンツの記憶のために使用されるファイルフォーマットは、ISOBMFFの既存の機能を使用し得るが、パラメータセット、時間スケーラビリティ、及びランダムアクセス復元ポイントのような、特定のHEVCコード化ビデオコンテンツの特徴をサポートするための拡張も定義し得る。
[0063]パラメータセットという用語は、ISO/IEC 23008−HEVCにおいて定義されるような、シーケンスパラメータセット、ピクチャパラメータセット、又は適応パラメータセットを指し得るシーケンス及びピクチャパラメータセット機構は、コード化ブロックデータの送信から、まれに変化する情報の送信を切り離すことができる。HEVCによれば、コード化ブロックデータを含む各スライスは、復号パラメータを含むピクチャパラメータセットを参照し得る。更に、ピクチャパラメータセットは、シーケンスレベル復号パラメータ情報を含む、シーケンスパラメータセットを参照し得る。加えて、HEVCは、適応パラメータセットもサポートする。適応パラメータセットは、ピクチャパラメータセット中の符号化パラメータよりも頻繁に変化することが予想される復号パラメータを含み得る。適応パラメータセットは、必要な場合には、スライスによっても参照され得る。AVCは現在、適応パラメータセットをサポートしないことに留意されたい。
[0064]HEVCFFは、アクセス単位と時間スケーラビリティの様々な階層レベルとの関連付けを示すための構造化及びグルーピングの機構を含むことによって、時間スケーラビリティサンプルのグルーピングをサポートすることができる。時間スケーラビリティは一般に、コード化ビデオコンテンツが様々なフレームレート(例えば、30フレーム毎秒(fps)又は60fps)及び様々なビットレートで再生されることを可能にする。一例では、HEVCビデオトラックは、グルーピングタイプが「tscl」であるSampleToGroupBoxの0個又は1個のインスタンスを含み得る。このSampleToGroupBoxインスタンスは、時間レイヤに対するトラック中のサンプルの割当てを表し得る。グルーピングタイプが同じであるSampleGroupDescriptionBoxの付随するインスタンスは、存在する場合には、時間レイヤを表すサンプルグループエントリーTemporalLayerEntryを含み得る。従って、時間レイヤサンプルグループエントリーは、グループタイプ:「tscl」;コンテナ:SampleGroupDescriptionBox(「sgpd」);必須:いいえ、及び量:0個又は1個のサンプルとして、HEVCFFにおいて定義され得る。
[0065]幾つかの場合には、時間レイヤサンプルグループエントリーは、時間レイヤ中の全てのサンプルに対する時間レイヤ情報を定義することができる。時間レイヤは、非負の整数(non-negative integers)により番号を付けられてよく、各時間レイヤは、ISO/IEC 23008−HEVCにおいて定義されるような特定の値のtemporal_idと関連付けられ得る。一例では、0より大きいtemporal_id値と関連付けられる時間レイヤは、より小さいtemporal_id値と関連付けられる全ての時間レイヤに依存し得る。特定のtemporal_id値と関連付けられる時間レイヤ表現(時間レイヤの表現とも呼ばれ得る)は、その特定のtemporal_id値以上のtemporal_idと関連付けられる全ての時間レイヤからなり得る。
のために使用され得るシンタックス要素の例である。
[0067]上記の例示的な時間レイヤエントリーシンタックスでは、次のようにセマンティクスが定義され得る。
temporalLayerIdは、時間レイヤのIDを与え得る。幾つかの例では、このサンプルグループのメンバーである全てのサンプルに対して、ビデオ符号化レイヤ(VCL)ネットワーク抽象化レイヤ(NAL)単位(VCL NAL単位は以下で更に詳しく説明される)が、temporalLayerIdに等しい、ISO/IEC 23008−HEVCにおいて定義されるようなtemporal_idを有するべきである。
tlProfileIndicationは、temporalLayerIdによって特定される時間レイヤの表現に対して、ISO/IEC 23008−HEVCにおいて定義されるようなプロファイルコード(profile_idc)を含み得る。
tlProfileCompatibilityは、temporalLayerIdによって特定される時間レイヤの表現に対して、ISO/IEC 23008−HEVCにおいて定義されるような、SPS中のprofile_idcとlevel_idcとの間に存在するバイトと厳密に同一であると定義される、バイトであり得る。
LevelIndicationは、temporalLayerIdによって特定される時間レイヤの表現に対して、ISO/IEC 23008−10において定義されるようなレベルコード(level_idc)を含み得る。
tlMaxBitrateは、temporalLayerIdによって特定される時間レイヤの表現に対して、1秒の任意の時間枠にわたる最大のレートを、1000ビット毎秒単位で与え得る。
tlAvgBitRateは、temporalLayerIdによって特定される時間レイヤの表現に対して、平均のビットレートを1000ビット毎秒単位で与え得る。
1に等しいtlConstantFrameRateは、temporalLayerIdによって特定される時間レイヤの表現のフレームレートが一定であることを示し得る。値0は、temporalLayerIdによって特定される時間レイヤの表現のフレームレートが一定であることも一定ではないこともあることを示し得る。
tlAvgFrameRateは、temporalLayerIdによって特定される時間レイヤの表現に対して、平均のフレームレートをフレーム/(256秒)の単位で与え得る。
[0068]時間スケーラビリティサンプルのグルーピングに加えて、HEVCのワーキングドラフトは、「段階的復号リフレッシュ」又はランダムアクセス復元ポイントという概念も含む。ランダムアクセス復元ポイントは、復元ポイント補足強化情報(SEI:Supplemental Enhancement Information)メッセージを使用して、ビットストリーム中で信号伝達され得る。このメッセージは、ランダムアクセスの始めにおいて見出されることがあり、復元が完了する前に、SEIメッセージの位置においてアクセス単位に続いてどれだけのデータが復号されるべきかを示し得る。段階的復元の概念は、ISO/IEC 14496−12において定義されるようなタイプ「ロール」のサンプルグルーピングを使用することによって、HEVCFFにおいてサポートされる。「ロール距離」が正(即ち、ロール後)のみになるように制約されるように、グループメンバーシップは、SEIメッセージを含むサンプルを標識し得る。ロールグループがファイルフォーマット中のサンプルを数える方法は、距離がSEIメッセージにおいて表される方法と一致しないことがあることに留意されたい。従って、ストリームデコーダがロール前の始まりから復号を開始できるように、ストリーム内では、ロール前の始まりを標識することが必要であり得る。しかしながら、ファイル中では、ランダムアクセスを実行するとき、完全に復号され得る最も近い先行するフレーム(例えば、同期サンプル又はロール前の終わりのいずれか)に対して、決定論的な探索が望まれ得る。
[0069]図1は、ISOBMFF及び現在のHEVCFFに基づく、例示的なHEVCメディアファイルの構造を示す概念図である。図1の例示的なHEVCメディアファイル142は、ビデオデータストリームとメタデータとの論理的な関係を示すことが意図されていることに留意されたい。簡潔にするために、HEVCメディアファイル142の完全なカプセル化構造は示されていない。しかしながら、HEVCメディアファイル142は、HEVCFFに従って定義される、ボックス及びカプセル化の構造を利用し得る。図1に示される例では、HEVCメディアファイル142は、メタデータボックス144とビデオデータストリーム146A〜146Nとを含む。メタデータボックス144は、ISOBMFF「moov」ボックスと同様であってよく、ビデオデータストリーム146A〜146Nの各々に対するメタデータを含み得る。一例では、メタデータは、メタデータテーブル148A〜148N内に含まれ得る。メタデータテーブル148A〜148Nは、ビデオデータストリーム146A〜146Nに対応するサンプルエントリーを含み得る。メタデータテーブルの一例は、サンプルテーブルボックスである。ビデオデータストリーム146A〜146Nの各々は、メタデータテーブル148A〜148Nの1つ又は複数を参照し得る。
[0070]ビデオデータストリーム146A〜146Nは、ISOBMFFで表されるビデオトラック又はビジュアルトラックに対応し得る。従って、ビデオデータストリーム146A〜146Nは、よって、(1)HandlerBox中の「vide」というハンドラタイプと、(2)ビデオメディアヘッダ「vmhd」と、(3)VisualSampleEntryの派生物とを使用し得る。ビデオストリームは、HEVCメディアファイル142中の1つのビデオトラックによって表され得る。ビデオデータストリーム146A〜146Nの各々は、1つ又は複数のアクセス単位150A〜150Nを含み得る。HEVCメディアファイル142におけるアクセス単位150A〜150Nは、HEVCFFに従って定義され得る。アクセス単位150A〜150Nは、ISOBMFFのサンプルに対応し得る。アクセス単位150A〜150Nは、外部的にフレーミングされてよく、その外部フレーミングによって提供されるサイズを有してよい。幾つかの場合には、メタデータボックス144は、アクセス単位150A〜150Nのサイズを定義する情報を含み得る。アクセス単位150A〜150Nは、NAL(即ち、ネットワーク抽象化レイヤ)単位152A〜152Nのセットを含み得る。NAL単位152A〜152Nは、HEVCFFに従って定義され得る。
[0071]各NAL単位152A〜152Nは、NAL単位の長さをバイト単位で示す長さフィールドを含み得る。幾つかの例では、長さフィールドは、1バイト、2バイト、又は4バイトとなるように構成され得る。長さフィールドは、アクセス単位内でのNAL単位の簡単なスキャンを可能にする。NAL単位152A〜152Nは、ISO/IEC 23008−HEVCにおいて規定されるようなNAL単位データを含み得る。他のタイプのNAL単位に加えて、HEVCFFは、次のタイプのNAL単位、即ち、VCL NAL単位と呼ばれ得るビデオデータNAL単位、補足強化情報(SEI)NAL単位、及びアクセス単位(AU)デリミターNAL単位、並びに他のタイプのNAL単位を定義する。ISO/IEC 23008−HEVCにおける予備のNAL単位タイプは、今後定義を獲得する可能性があることに留意されたい。一部のファイルリーダは、NAL単位タイプの予備の値を伴うNAL単位がこれらのアレイに存在する場合、そのNAL単位を無視するように構成され得る。この「寛大な」挙動は、エラーが発生しないように設計され、今後の仕様においてこれらのアレイに対する後方互換性のある拡張の可能性を許容することに留意されたい。
[0072]VCL NAL単位は、単一のピクチャのための全てのコード化スライスNAL単位が、その復号時間及び合成時間がピクチャの復号時間及び合成時間であるアクセス単位内に含まれるように、フォーマットされ得る。更に、アクセス単位150A〜150Nは、少なくとも1つのビデオデータNAL単位を含むことを要求され得る。
[0073]ビデオデータストリーム146A〜146Nはまた、全てのSEI NAL単位が、その復号時間がSEIメッセージの実施される時間よりも前に存在するアクセス単位に含まれるように、フォーマットされ得る。アクセス単位150A〜150N内のSEIメッセージの順序は、ISO/IEC 23008−HEVCに従って定義されるようなものであり得る。更に、HEVCファイル142は、ピクチャのためのSEIメッセージがそのピクチャを含むアクセス単位に含まれることと、ピクチャのシーケンスに関連するSEIメッセージが、SEIメッセージに関連するシーケンスの最初のピクチャを含むアクセス単位に含まれることとを必要とし得る。アクセス単位デリミターNAL単位は、ISO/IEC 23008−HEVCに従って制約され得る。HEVCファイル142は、ビデオデータストリーム146A〜146Nの中の、かつ単一のアクセス単位内のNAL単位のシーケンスが、ISO/IEC 23008−HEVCにおいて規定されるような有効な復号順序で配置されることを必要とし得る。
[0074]図2は、NAL単位を含むHEVCアクセス単位の例を示す。図2に示されるように、アクセス単位150は、AUデリミターNAL単位と、SEI NAL単位と、2つのスライスNAL単位とを含む。更に、HEVCFFは、ISOMBFFで表されるサブサンプルの概念をサポートし得ることに留意されたい。サブサンプルは、サンプル内の1つ又は複数の連続的なNAL単位として、かつ、RefPicFlag及びVclNalUnitFlagというフィールドの同じ値を有するものとして、定義される。図2に示される例示的なアクセス単位150では、2つのスライスNAL単位がサブサンプルを形成し得る。HEVCストリームのために使用され得るサブサンプル情報ボックスの例は、ISO/IEC 14496−12のセクション8.7.7に記載されている。サブサンプルは、複数のNAL単位と、先行するNAL単位長さフィールドとを含み得る。サブサンプルが使用される場合、サブサンプル情報ボックスの存在は任意選択であり得る。しかしながら、HEVCFFによれば、サブサンプル情報ボックスがHEVCデータを含むトラック中に存在する場合、subsample_priorityフィールドは、ISO/IEC 14496−12におけるこのフィールドの仕様に従った値に設定されることが要求され得る。更に、廃棄可能フィールドは、このサンプルが依然として復号されることが可能であり、このサブサンプルが廃棄される(例えば、サブサンプルがSEI NAL単位からなる)場合にのみ、1に設定されることが要求され得る。予備フィールドは、次の例示的なシンタックスに従ってHEVCFFにおいて定義される。
[0075]上記の例示的なシンタックスでは、次のようにセマンティクスが定義され得る。0に等しいRefPicFlagは、サブサンプル中の全てのNAL単位が0に等しいnal_ref_flagを有することを示し得る。1に等しいRefPicFlagは、サブサンプル中の全てのNAL単位が1に等しいnal_ref_flagを有することを示し得る。
0に等しいVclNalUnitFlagは、サブサンプル中の全てのNAL単位が0に非VCL NAL単位であることを示し得る。値1は、サブサンプル中の全てのNAL単位がVCL NAL単位であることを示し得る。
[0076]再び図1を参照すると、HEVCメディアファイル142は、全てのタイミング情報がビデオデータストリーム146A〜146Nの外部にあるようにフォーマットされ得る。しかしながら、幾つかの例では、HEVCファイル142は、ビデオデータストリーム146A〜146Nにおける表示又は合成のタイムスタンプを定義する、ピクチャタイミングSEIメッセージを含んでよく、それは、ピクチャタイミングSEIメッセージがタイミング以外の情報を含むことがあり、適合性の確認のために必要とされ得るからである。HEVCメディアファイル142は、サンプルメタデータテーブル148A〜148Nに全てのタイミング情報を記憶することができる。メタデータテーブル148A〜148Nに記憶されたタイミング情報は、ビデオデータストリーム146A〜146Nにおいて提供される任意のタイミングを上書きすることができる。更に、HEVCメディアファイル142は、ストリーム内で提供されるタイミング情報がデコーダによって無視されるように構成されてよく、それは、そのタイミング情報が、HEVCメディアファイル142中の別の箇所で提供されるタイミング情報と矛盾することがあり、更に幾つかの場合には、ストリーム内で提供されるタイミング情報が正しくない、又は一貫性がないことがあるからである。圧縮後の編集、合成、又はファイルフォーマットレベルにおけるストリームの再タイミングが、ストリーム内に存在する任意の埋め込まれたタイミング情報を無効にし得る、又は一貫性のないものにし得るという事実により、タイミング情報の制約が課され得るということに留意されたい。
[0077]幾つかの例では、HEVCメディアファイル142は、アクセス単位150A〜150Nが復号の順序で記憶されるように構成され得る。従って、ピクチャの並べ替えが使用されず、復号時間(DTS)及び合成時間(CTS)が同じである場合、表示は復号の順序と同じであり、時間対サンプルの「stts」テーブルのみが使用される必要がある。Bピクチャだけではなく、任意の種類のピクチャがHEVCビデオにおいて並べ替えられ得ることに留意されたい。復号時間及び合成時間が異なる場合、合成時間対サンプルの「ctts」テーブルも、「stts」テーブルとともに使用され得る。幾つかの例では、アクセス単位は、アクセス単位に含まれるコード化ピクチャが瞬時復号リフレッシュ(IDR)ピクチャであることをアクセス単位中のVCL NAL単位が示す場合、同期サンプルであると見なされ得る。
[0078]幾つかの場合には、HEVCメディアファイル142は、ビデオデータストリーム146A〜146Nが開始コードを含むことが要求されないように、構成され得る。しかしながら、開始コードを使用してHEVCメディアファイル142のためのストリームを配信することを望むシステムは、開始コードを挿入するようにビデオストリーム146A〜146Nを再フォーマットすることによって、そのようにすることができる。更に、ビデオデータは当然、HEVCメディアファイル142において可変ビットレートとして表されてよく、必要であれば送信のために穴埋めされ得る。従って、HEVCメディアファイル142は、ビデオデータストリーム146A〜146NがフィラーデータNAL単位とフィラーデータSEIメッセージとを含むことを要求されないように、構成され得る。HEVCメディアファイル142が、フィラーデータNAL単位、開始コード、0バイトのシンタックス要素、及び/又はフィラーデータSEIメッセージを含まない場合、HEVCメディアファイル142のビットストリーム特性は、ISO/IEC 23008−HEVC、Annex Cにおいて規定されるようなConstnt Bit−Rate(CBR)モードで仮想参照デコーダ(HRD)を動作させるときに、HRDとの適合性に関して変化し得る。
[0079]HEVCFFと同様に、AVCFFは、規範的な参照としてISO/IEC 14496−1:2001も含み、AVCFFは、HEVCのワーキングドラフトとしてシステムインターフェース(ハイレベルシンタックスとも呼ばれる)の同様の設計を含む。従って、HEVCメディアファイル142の幾つかの部分は、AVCファイルと同様の方式でフォーマットされ得る。しかしながら、AVCFFの幾つかの態様は、HEVCコード化ビデオコンテンツの最適なフォーマットを実現しないことがある。
[0080]AVCFFの一態様は、パラメータセットがサンプル記述に含まれ得るか、別々のパラメータセットトラックに含まれ得るかのいずれかであるので、トラックの数又はサンプル記述の数が不必要に増加することがあるというものであり、トラックとサンプル記述の各々がビデオトラック中のビデオストリーム全体のサブセットに対応する。現在のHEVCFFは別々のパラメータセットトラックを許容しないことに留意されたい。
[0081]AVCFFの別の態様は、異なるタイプのパラメータセットが、サンプル記述に含まれるか別々のパラメータセットトラックに含まれるかにかかわらず、一緒にまとめられるというものである。従って、別々のパラメータトラックを使用しないAVCファイルでは、サンプル記述に何らかのタイプのパラメータを含めつつ、他のタイプのパラメータを除外することが不可能である。従って、この場合、SPSとPPSの両方がサンプル記述に記憶されるが、PPSはより頻繁に変化し得る。このように、PPSはSPSと独立に送信されることが可能ではない。
[0082]AVCFFの別の態様は、サンプル記述がSPSのためのアレイとPPSのための別のアレイとを含むというものである。AVCFFでは、これらのアレイは、宣言型SEIメッセージを含むSEI NAL単位を含むことも許容される。従って、ファイルパーサは、NAL単位がパラメータセットNAL単位かSEI NAL単位かを判定するために、SPSアレイ又はPPSアレイに含まれる各NAL単位のNAL単位ヘッダを確認しなければならないであろう。
[0083]AVCファイルフォーマットの別の態様は、トラック又はストリームの選択の目的で(例えば、ファイルベースの適応ストリーミングの用途で)重要である空間解像度及びフレームレートのようなストリーム特性がサンプル記述に記憶されることが許容されず、従って、AVCFF設計ではストリーム特性が便利に入手可能ではないというものである。
[0084]AVCファイルフォーマットの別の態様は、ストリームの特定の時間的サブセットの選択に重要である、プロファイル、レベル、及びフレームレートのような時間スケーラビリティ特性が、各々の時間レイヤ表現を欠いているというものである。
[0085]図3は、本開示で説明される技法を利用し得る例示的なビデオ符号化及び送信システムを示すブロック図である。1つの例示的なシステム10は、ビデオストリームのアクセス単位内にPPSをカプセル化するように構成されてよく、サンプル記述は、ビデオストリームの1つ又は複数のアクセス単位内に記憶されたPPSの数を特定するインジケータを含む。図3に示されるように、システム10は、宛先機器14によって後で復号されるべき符号化ビデオデータを生成する発信源機器12を含む。発信源機器12及び宛先機器14は、図1に関して説明されたHEVCメディアファイル142が発信源機器12において生成され宛先機器14に送信され得るように、構成され得る。発信源機器12及び宛先機器14は、デスクトップコンピュータ、ノートブック(即ち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォンなどの電話ハンドセット、所謂「スマート」パッド、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミング機器などを含む、広範囲にわたる機器のいずれかを備え得る。幾つかの場合には、発信源機器12及び宛先機器14は、ワイヤレス通信に対応し得る。
[0086]図3の例では、発信源機器12は、ビデオ発信源18と、ビデオエンコーダ20と、カプセル化ユニット21と、出力インターフェース22とを含む。ビデオ発信源18は、例えばビデオカメラなどの撮像装置、以前に撮影されたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、及び/又は発信源ビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどの発信源、又はそのような発信源の組合せを含み得る。撮影されたビデオ、以前に撮影されたビデオ、又はコンピュータにより生成されたビデオは、ビデオエンコーダ20によって符号化され得る。ビデオエンコーダ20は、HEVCなどのビデオ圧縮規格に従って動作することができ、HEVC Test Model(HM)に準拠し得る。更に、ビデオエンコーダ20は、本明細書で説明される他のビデオ規格に従って動作し得る。
[0087]HEVCに従うビデオ符号化の場合、ビデオフレームは符号化単位に区分され得る。符号化単位(CU)は一般に、ビデオ圧縮のために様々な符号化ツールが適用される基本単位として機能する画像領域を指す。CUは通常、Yとして示されるルミナンス成分と、U及びVとして示される2つのクロマ成分とを有する。ビデオサンプリングフォーマットに応じて、U成分及びV成分のサイズは、サンプル数に関して、Y成分のサイズと同じであるか、又はY成分のサイズとは異なっていてもよい。CUは、通常は正方形であり、例えば、AVCなどの他のビデオ符号化規格の下での所謂マクロブロックと同様であると見なされ得る。本出願では、例示のために、開発中のHEVC規格の現在提案されている態様の幾つかに従う符号化が説明される。しかしながら、本開示で説明される技法は、AVC又は他の規格に従って定義されるビデオ符号化プロセス、若しくはプロプライエタリビデオ符号化プロセスのような、他のビデオ符号化プロセスに有用であり得る。HEVCの規格化の取り組みは、HEVC Test Model(HM)と呼ばれるビデオ符号化機器のモデルに基づく。HMは、例えば、ITU−T H.264/AVCによる機器に勝るビデオ符号化機器の幾つかの能力を仮定する。例えば、AVCは9つのイントラ予測符号化モードを提供するが、HMは34個ものイントラ予測符号化モードを提供する。
[0088]ビデオシーケンスは通常、一連のビデオフレーム又はピクチャを含む。ピクチャグループ(GOP)は一般に、ビデオピクチャのうちの一連の1つ又は複数を備える。GOPは、GOP中に含まれる幾つかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つ又は複数のヘッダ中、又は他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は通常、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内の符号化ノードに対応する1つ又は複数のTU又はPUを含み得る。ビデオブロックは、サイズが固定されていても変化してもよく、指定された符号化規格に応じてサイズが異なることがある。
[0089]HMによれば、CUは、1つ又は複数の予測ユニット(PU)及び/又は1つ又は複数の変換単位(TU)を含み得る。ビットストリーム内のシンタックスデータは、画素の数に関して最大のCUである最大符号化単位(LCU)を定義することができる。全般に、CUは、CUがサイズの差異を有していないことを除いて、H.264のマクロブロックと同様の目的を有する。従って、CUはサブCUに分割され得る。全般に、本開示におけるCUへの言及は、ピクチャの最大符号化単位又はLCUのサブCUを指し得る。LCUはサブCUに分割されてよく、各サブCUは更にサブCUに分割されてよい。ビットストリームのシンタックスデータは、CU深度と呼ばれる、LCUが分割され得る最大回数を定義し得る。それに応じて、ビットストリームは最小符号化単位(SCU)も定義し得る。本開示ではまた、CU、PU、又はTUのいずれかを指すために「ブロック」又は「部分」という用語を使用する。全般に、「部分」は、ビデオフレームの任意のサブセットを指し得る。
[0090]LCUは4分木データ構造と関連付けられ得る。全般に、4分木データ構造はCUごとに1つのノードを含み、ルートノードはLCUに対応する。CUが4つのサブCUに分割された場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。4分木データ構造の各ノードは、対応するCUのシンタックスデータを与え得る。例えば、4分木のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含み得る。CUのシンタックス要素は、再帰的に定義されてよく、CUがサブCUに分割されるかどうかに依存し得る。CUが更に分割されない場合、そのCUはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的な分割が存在しなくても、リーフCUの4つのサブCUはリーフCUとも呼ばれる。例えば、16×16サイズのCUが更に分割されない場合、この16×16CUが決して分割されなくても、4つの8×8サブCUはリーフCUとも呼ばれる。
[0091]その上、リーフCUのTUもそれぞれの4分木データ構造と関連付けられ得る。即ち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。本開示では、LCUがどのように区分されるかを示す4分木をCU4分木と呼び、リーフCUがどのようにTUに区分されるかを示す4分木をTU4分木と呼ぶ。TU4分木のルートノードは全般にリーフCUに対応し、CU4分木のルートノードは全般にLCUに対応する。分割されないTU4分木のTUはリーフTUと呼ばれる。
[0092]リーフCUは、1つ又は複数の予測ユニット(PU)を含み得る。全般に、PUは、対応するCUの全部又は一部を表し、そのPU用の参照サンプルを取り出すためのデータを含み得る。例えば、PUがインターモード符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(例えば、1/4画素精度又は1/8画素精度)、動きベクトルが指す参照フレーム、及び/又は動きベクトルの参照リスト(例えば、リスト0又はリスト1)を記述し得る。PUを定義するリーフCUのデータはまた、例えば、CUを1つ又は複数のPUに区分することを記述し得る。区分モードは、CUが符号化されないか、イントラ予測モード符号化されるか、又はインター予測モード符号化されるかに応じて異なり得る。イントラ符号化の場合、PUは、以下で説明されるリーフ変換単位と同じように扱われ得る。
[0093]一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2N又はN×NのPUサイズでのイントラ予測をサポートし、2N×2N、2N×N、N×2N、又はN×Nの対称的なPUサイズでのインター予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、及びnR×2NのPUサイズでのインター予測のための非対称区分をサポートする。非対称区分では、CUの一方向は区分されないが、他の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、又は「Right」という表示によって示される。従って、例えば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUとで水平方向に区分された2N×2N CUを指す。
[0094]本開示では、「N×N(NxN)」及び「N×N(N by N)」は、垂直寸法及び水平寸法に関するビデオブロックの画素寸法、例えば、16×16(16x16)画素又は16×16(16 by 16)画素を指すために互換的に使用され得る。一般に、16×16ブロックは、垂直方向に16画素を有し(y=16)、水平方向に16画素を有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にN画素を有し、水平方向にN画素を有し、但し、Nは非負の整数値を表す。ブロック中の画素は行と列で構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数の画素を有する必要があるとは限らない。例えば、ブロックはN×M画素を備えてよく、但し、Mは必ずしもNに等しいとは限らない。
[0095]ブロック(例えば、ビデオデータの予測単位)を符号化するために、ブロックの予測子が最初に導出される。予測ブロックとも呼ばれる予測子は、イントラ(I)予測(即ち、空間的予測)又はインター(P又はB)予測(即ち時間的予測)のいずれかを通じて導出され得る。従って、幾つかの予測単位は、同じフレーム(又はスライス)中の隣接参照ブロック中の参照サンプルに対する空間的予測を使用してイントラ符号化(I)されてよく、他の予測単位は、前に符号化された他のフレーム(又はスライス)中の参照サンプルのブロックに対して単方向にインター符号化(P)されるか又は双方向にインター符号化(B)されてよい。各々の場合において、参照サンプルは、符号化されるべきブロックの予測ブロックを形成するために使用され得る。
[0096]予測ブロックの識別時に、元のビデオデータブロックとその予測ブロックとの間の差分が決定される。この差分は残差データと呼ばれることがあり、符号化されるべきブロック中の画素値と、コード化ブロックを表すように選択された予測ブロック中の画素値との間の画素差分を示す。より良好な圧縮を実現するために、予測残差データは、例えば、離散コサイン変換(DCT)、整数変換、カルーネン−レーベ(K−L)変換、又は別の変換を使用して変換され得る。
[0097]TUなどの変換ブロック中の残差データは、空間的画素領域に存在する画素差分値の2次元(2D)アレイで構成され得る。変換は、周波数領域などの変換領域において残差画素値を変換係数の2次元アレイに変換する。更なる圧縮のために、変換係数は、エントロピー符号化の前に量子化され得る。次いで、エントロピーコーダは、量子化変換係数に、コンテキスト適応型可変長符号化(CAVLC)、コンテキスト適応型バイナリ算術符号化(CABAC)、確率間隔区分エントロピー符号化(PIPE)などのエントロピー符号化を適用する。
[0098]量子化変換係数のブロックをエントロピー符号化するために、ブロック中の量子化変換係数の2次元(2D)アレイが、特定の走査順序に従って変換係数の順序付き1次元(1D)アレイ、即ちベクトルに再構成されるように、走査プロセスが通常実行される。次いで、変換係数のベクトルにエントロピー符号化が適用される。変換単位中の量子化変換係数の走査は、エントロピーコーダのために変換係数の2Dアレイをシリアル化する。有意な(即ち、0ではない)係数の位置を示すための有意性マップが生成され得る。走査は、有意な(即ち、0ではない)係数のレベルを走査するために、及び/又は有意な係数の符号を符号化するために適用され得る。
[0099]HEVCでは、有意な変換の位置情報(例えば、有意性マップ)は、走査順序内の最後の0ではない係数の位置を示すために、TUについて最初に符号化される。有意性マップ及びレベル情報(係数の絶対値と符号)は、逆方向走査順序で係数ごとに符号化される。
[0100]変換係数を生成するための任意の変換に続いて、ビデオエンコーダ20は、変換係数の量子化を実行することができる。量子化は、一般に、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化されて、更なる圧縮を提供するプロセスを指す。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減することができる。例えば、nビットの値は、量子化の間にmビットの値に丸められてよく、nはmより大きい。幾つかの例では、ビデオエンコーダ20は、事前に定義された走査順序を利用して量子化変換係数を走査し、エントロピー符号化され得るシリアル化ベクトルを生成することができる。他の例では、ビデオエンコーダ20は適応走査を実行し得る。
[0101]図4は、本開示で説明される技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラ符号化とインター符号化とを実行し得る。イントラ符号化は、空間的予測を利用して、所与のビデオフレーム又はピクチャ内のビデオの空間的冗長性を低減又は除去する。インター符号化は、時間的予測を利用して、ビデオシーケンスの隣接フレーム又はピクチャ内のビデオの時間的冗長性を低減又は除去する。イントラモード(Iモード)は、幾つかの空間ベースの圧縮モードのいずれかを指し得る。単方向予測(Pモード)又は双方向予測(Bモード)などのインターモードは、幾つかの時間ベースの圧縮モードのいずれかを指し得る。
[0102]図4の例では、ビデオエンコーダ20は、区分モジュール35と、予測モジュール41と、参照ピクチャメモリ64と、加算器50と、変換モジュール52と、量子化モジュール54と、エントロピー符号化モジュール56とを含む。予測モジュール41は、動き推定モジュール42と、動き補償モジュール44と、イントラ予測モジュール46とを含む。予測モジュール41は、区分モジュール35も含み得る。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化モジュール58と、逆変換モジュール60と、加算器62とを含む。ブロック境界をフィルタリングして、再構成されたビデオからブロック歪み(blockiness artifacts)を除去するために、デブロッキングフィルタ(図4に図示せず)も含まれ得る。必要な場合、デブロッキングフィルタは、通常、加算器62の出力をフィルタリングする。デブロッキングフィルタに加えて、(ループ内又はループ後の)追加のループフィルタも使用され得る。
[0103]図4に示されるように、ビデオエンコーダ20はビデオデータを受信し、区分モジュール35はデータをビデオブロックに区分することができる。この区分は、スライス、タイル、又は他のより大きな単位へのビデオデータの区分、及び、例えば、PU’並びにTU’を生成するためのLCU及びCUの残差4分木構造に従ったビデオブロックの区分を含み得る。区分モジュール35は、LCUのようなビデオデータのブロックを、CU、PU、及びTUのようなサブブロックに区分することができる。例えば、区分モジュール35は、以前の符号化パスにおける以前の区分方式の評価に基づいて、ビデオデータのブロックを区分することができる。例えば、区分モジュール35は最初に、フレーム又はスライスをLCUに区分し、区分モジュール41とともに、レート歪み分析(例えば、レート歪み最適化)に基づいてLCUの各々をサブCUに区分することができる。従って、区分モジュール35は図4では例示の目的で別々のブロックとして示されているが、特に、予測モジュール41によって実行されるレート歪み分析が、CUと、サブCUと、PUと、TUとを生成するためにLCUに適用される区分の態様を決定するために少なくとも一部使用され得る場合、区分モジュール35によって実行される区分機能は、予測モジュール41のモード選択及び予測機能と統合され得る。一般に、区分モジュール35とともに、予測モジュール41は、サブCUへのLCUの区分を示す4分木データ構造を生成することができる。4分木のリーフノードCUは、1つ又は複数のPUと1つ又は複数のTUとを含み得る。
[0104]区分モジュール35によって表されるような予測モジュール41は、本開示で説明されるように、他のビデオコンポーネントとは独立に、複数のビデオコンポーネントの1つのための区分方式を定義するための様々な技法を提供することができる。別の態様では、予測モジュール41は、ビデオブロックの1つ又は複数の特性に基づいて、他のビデオコンポーネントとは独立に、ビデオブロックの複数のビデオコンポーネントの少なくとも1つのための区分方式を定義するかどうかを判定することができる。幾つかの例では、特性は、ブロックサイズ、ピクチャタイプ、ブロック区分、又は動き情報の少なくとも1つを含み得る。
[0105]ビデオエンコーダ20は、一般に、符号化されるべきビデオスライス内のビデオブロックを符号化するコンポーネントを示す。スライスは、複数のビデオブロックに(及び、場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測モジュール41は、誤り結果(例えば、符号化レート及び歪みレベル)に基づいて、現在のビデオブロックのために、複数のイントラ符号化モードのうちの1つ、又は複数のインター符号化モードのうちの1つのような、複数の可能な符号化モードのうちの1つを選択し得る。予測モジュール41は、得られたイントラコード化ブロック又はインターコード化ブロックを、残差ブロックデータを生成するために加算器50に与え、参照ピクチャとして使用するための符号化ブロックを再構成するために加算器62に与え得る。
[0106]予測モジュール41内のイントラ予測モジュール46は、空間圧縮を行うために、符号化されるべき現在のブロックと同じフレーム又はスライス中の1つ又は複数の隣接ブロックに対する現在のビデオブロックのイントラ予測符号化を実行し得る。予測モジュール41内の動き推定モジュール42及び動き補償モジュール44は、1つ又は複数の参照ピクチャ中の1つ又は複数の予測ブロックに対する、現在のビデオブロックのインター予測符号化を実行して、時間圧縮を行うことができる。
[0107]イントラ予測ではなくインター予測が現在のビデオブロックのために選択された場合、動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを判定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスをPスライス、Bスライス又は一般化されたP/B(GPB)スライスとして指定し得る。動き推定モジュール42及び動き補償モジュール44は、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定モジュール42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、参照ピクチャ内の予測ブロックに対する現在のビデオフレーム又はピクチャ内のビデオブロックのPUの変位を示し得る。
[0108]インター符号化では、予測ブロックは、絶対値差分和(SAD)、差分2乗和(SSD)、又は他の差分尺度によって決定され得る画素差分に関して、符号化されるべきビデオブロックのPUに厳密に一致することがわかるブロックである。幾つかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数画素位置の値を計算し得る。例えば、ビデオエンコーダ20は、参照ピクチャの1/4画素位置、1/8画素位置、又は他の分数画素位置の値を補間し得る。従って、動き推定モジュール42は、フル画素位置と分数画素位置とに対する動き探索を実行し、分数画素精度で動きベクトルを出力し得る。
[0109]動き推定モジュール42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUの動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)又は第2の参照ピクチャリスト(リスト1)から選択されてよく、それらの参照ピクチャリストの各々は、参照ピクチャメモリ64に記憶された1つ又は複数の参照ピクチャを識別する。動き推定モジュール42は、計算された動きベクトルを、例えば他のシンタックス要素とともに、エントロピー符号化モジュール56と動き補償モジュール44とに送る。
[0110]動き補償モジュール44によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチ又は生成すること、場合によってはサブ画素精度への補間を実行することを伴い得る。現在のビデオブロックのPUの動きベクトルを受信すると、動き補償モジュール44は、参照ピクチャリストのうちの1つにおいて動きベクトルが指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、符号化されている現在のビデオブロックの画素値から予測ブロックの画素値を減算し、画素差分値を形成することによって残差ビデオブロックを形成する。画素差分値は、ブロックの残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実行する1つ又は複数のコンポーネントを表す。動き補償モジュール44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するための、ビデオブロック及びビデオスライスと関連付けられるシンタックス要素を生成することができる。
[0111]イントラ予測モジュール46は、上で説明されたように、動き推定モジュール42及び動き補償モジュール44によって実行されるインター予測の代替として、現在のブロックをイントラ予測することができる。具体的には、イントラ予測モジュール46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定することができる。幾つかの例では、イントラ予測モジュール46は、例えば、別々の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し予測ブロックを生成することができ、イントラ予測モジュール46(又は、幾つかの例では、モード選択モジュール40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。例えば、イントラ予測モジュール46は、様々なテストされたイントラ予測モードのためのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択し得る。レート歪み分析は、一般に、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み(又は誤差)の量、及び符号化ブロックを生成するために使用されるビットレート(即ち、ビット数)を決定する。イントラ予測モジュール46は、どのイントラ予測モードがブロックについて最良のレート歪み値を呈するかを判定するために、様々な符号化ブロックの歪み及びレートから比率を計算し得る。
[0112]いずれの場合も、あるブロックについてのイントラ予測モードを選択した後、イントラ予測モジュール46は、ブロックについて選択されたイントラ予測モードを示す情報をエントロピー符号化モジュール56に提供することができる。例えば、イントラ予測モジュール46は、1つ又は複数のシンタックス要素のような信号伝達を提供して、選択されたイントラモードを示すことができる。エントロピー符号化モジュール56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信ビットストリーム中に、複数のイントラ予測モードインデックステーブル及び複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、及び変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを含み得る。
[0113]予測モジュール41が現在のビデオブロックの予測ブロックを生成した後、ビデオエンコーダ20は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つ又は複数のTU中に含まれ、変換モジュール52に適用され得る。変換モジュール52は、離散コサイン変換(DCT)又は概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換モジュール52は、残差ビデオデータを画素領域から周波数領域などの変換領域に変換し得る。
[0114]変換モジュール52は、得られた変換係数を量子化モジュール54に送り得る。量子化モジュール54は、ビットレートを更に低減するために変換係数を量子化する。量子化プロセスは、係数の一部又は全てと関連付けられるビット深度を低減することができる。量子化の程度は、量子化パラメータを調整することによって修正され得る。幾つかの例では、量子化モジュール54は、次いで、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化モジュール56が走査を実行し得る。
[0115]量子化の後に、エントロピー符号化モジュール56は、量子化変換係数をエントロピー符号化する。例えば、エントロピー符号化モジュール56は、コンテキスト適応型可変長符号化(CAVLC)、コンテキスト適応型バイナリ算術符号化(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術符号化(SBAC)、確率間隔区分エントロピー(PIPE)符号化、あるいは別のエントロピー符号化方法又は技法を実行し得る。エントロピー符号化モジュール56によるエントロピー符号化の後に、符号化ビットストリームは、ビデオデコーダ30に送信されるか、あるいはビデオデコーダ30による後の送信又は取り出しのためにアーカイブされ得る。エントロピー符号化モジュール56はまた、符号化されている現在のビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
[0116]逆量子化モジュール58及び逆変換モジュール60は、それぞれ逆量子化及び逆変換を適用して、参照ピクチャの参照ブロックとして後で使用するために画素領域において残差ブロックを再構成する。動き補償モジュール44は、残差ブロックを参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つの予測ブロックに加算することによって、参照ブロックを計算し得る。動き補償モジュール44はまた、再構成された残差ブロックに1つ又は複数の補間フィルタを適用して、動き推定において使用するサブ整数画素値を計算し得る。加算器62は、再構成された残差ブロックを動き補償モジュール44によって生成された動き補償された予測ブロックに加算して、参照ピクチャメモリ64に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレーム又はピクチャ中のブロックをインター予測するために、動き推定モジュール42及び動き補償モジュール44よって参照ブロックとして使用され得る。
[0117]図4のビデオエンコーダ20は、HEVCコード化ビデオコンテンツを出力するように構成されるビデオエンコーダの例を表し、HEVCコード化ビデオコンテンツは、ビデオコンテンツ、パラメータセット、及びSEIメッセージのコード化サンプルを含み得る。上で説明されたように、図1に示されるHEVCメディアファイル142に関して、HEVCビデオ符号化規格とともに使用されるパラメータセットのタイプは、SPSと、PPSと、APSとを含む。各パラメータセットは識別子を有し、上で説明されたように、HEVC規格に従って符号化された各スライスは、パラメータセットの識別子を使用して、各スライスが符号化された対象のパラメータセットを参照することができる。
[0118]再び図3を参照すると、カプセル化モジュール21は、本明細書で説明される技法に従って、ビデオエンコーダ20から符号化ビデオコンテンツを受信し、ビデオファイルを生成することができる。一例では、カプセル化モジュール21は、HEVCコード化ビデオコンテンツを受信し、ISOBMFF及びHEVCFFの現在のバージョンに基づくファイルフォーマットを使用してビデオファイルを生成することができる。
[0119]図5は、例示的なカプセル化モジュール21のコンポーネントを示すブロック図である。図5の例では、カプセル化モジュール21は、ビデオ入力インターフェース70と、ビデオファイル作成モジュール72と、ビデオファイル出力インターフェース76とを含む。ビデオファイル作成モジュール70は、この例では、ネットワーク抽象化レイヤ(NAL)ユニットコンストラクタ74を含む。
[0120]ビデオ入力インターフェース70は、コード化ビデオコンテンツを受信することができる。ビデオ入力インターフェース70は、ビデオエンコーダ20からコード化ビデオコンテンツを受信することができ、又は、記憶装置から符号化ビデオコンテンツを取り出すことができる。コード化ビデオコンテンツは、HEVC規格に従って符号化されてよく、ビデオコンテンツと、パラメータセットと、SEIメッセージとのサンプルを含み得る。符号化ビデオコンテンツを受信すると、ビデオ入力インターフェース70は、ビデオファイルへの組立のために、コード化ビデオコンテンツをビデオファイル作成モジュール72に出力することができる。幾つかの例では、ビデオ入力インターフェース70は、コード化ビデオコンテンツがビデオファイル作成モジュール72に出力される前に、コード化ビデオコンテンツを編成又はバッファリンすることによって、ビデオファイルの組立を支援することができる。
[0121]一般に、ビデオファイル作成モジュール72は、受信されたコード化ビデオコンテンツを含むビデオファイルを生成することができる。一例では、ビデオファイル作成モジュール72は、図1に関して説明されたHEVCメディアファイル142のようなビデオファイルを作成することができる。ビデオファイル作成モジュール72は、それに起因する機能及び手順を実行するように構成されたハードウェア、ソフトウェア、及び/又はファームウェアを含む制御ユニットに対応し得る。制御ユニットは、一般に、カプセル化モジュール21に起因する機能を更に実行し得る。ビデオファイル作成モジュール72がソフトウェア及び/又はファームウェアで具現化される例では、カプセル化モジュール21は、ビデオファイル作成モジュール72のための命令を備えるコンピュータ可読媒体と、命令を実行するための処理ユニットとを含み得る。ビデオファイル作成モジュール72のサブモジュール(この例ではNAL単位コンストラクタ74)は、個々のハードウェアモジュール及び/又はソフトウェアモジュールとして実装されてよく、機能的に統合されてよく、又は追加のサブモジュールへと更に分割されてよい。ビデオファイル作成モジュール72は、例えば、1つ又は複数のマイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、又はそれらの任意の組合せのような、任意の好適な処理ユニット又は処理回路に対応し得る。ビデオファイル作成ユニット72は更に、NAL単位コンストラクタ74のための命令を記憶する非一時的コンピュータ可読媒体、ならびに、命令を実行するためのプロセッサを含み得る。
[0122]一例では、ビデオファイル作成モジュール72は、ファイルフォーマットに従って符号化ビデオデータを出力するように構成されてよく、ここで、パラメータセットは、サンプル記述に含まれるか、サンプル記述が適用されるストリームのサンプル又はアクセス単位に含まれるかのいずれかであり得る。一例では、あるタイプのパラメータセットがサンプル記述に含まれる場合、そのタイプのパラメータセットはサンプル自体の中には含まれないことがある。即ち、この特定の例では、特定のサンプル記述が適用されるビデオストリームに対して、特定のタイプのパラメータセットは、存在する場合、サンプル記述とサンプルのいずれかに記憶され得るが、両方に記憶されることはない。代替的な例では、あるタイプのパラメータセットは、サンプル記述と、サンプル記述が適用されるストリームのサンプルとの両方に含まれ得る。パラメータセットがサンプル記述とサンプル自体のいずれかに含まれることが許容される場合、サンプル記述に含まれるパラメータセットに加えてサンプルに含まれるパラメータセットがあるかどうかを示すための指示が、サンプル記述に含まれ得る。別の例では、ビデオファイル作成モジュール72は、ファイルフォーマットに従って符号化ビデオデータを出力するように構成されてよく、ここで、1つ以上の特定のタイプのパラメータセットが、サンプル記述と、サンプル記述が適用されるストリームのサンプルとの両方に含まれ得る。例えば、幾つかの例では、PPSがサンプル記述とサンプルの両方に含まれることをファイルフォーマットが許容し得るが、SPSはサンプル記述にのみ含まれることが許容され得る。更に、この例では、APSは、記憶されたサンプルであることのみが許容され得る。加えて、サンプル記述に含まれるパラメータセットに加えて、サンプルに含まれる特定のタイプのパラメータセットがあり得るかどうかを示すための指示が、サンプル記述に含まれ得る。
[0123]更に、ビデオファイル作成モジュール72は、HEVCビデオストリームデコーダ特有情報を含む各HEVCサンプル記述が特定のタイプのパラメータセットのグループを含み得るように、構成され得る。パラメータセットのグループは、コードブックとよく似たように機能し得る。各パラメータセットは識別子を有してよく、各コード化スライスはパラメータセット識別子を参照してよい。ファイルフォーマットによって定義されるように、パラメータセットの各構成は別々に表され得る。幾つかのファイルフォーマットによれば、パラメータセットは、異なるサンプル記述が使用されることを引き起こすことなく更新されることが不可能である。この場合、パラメータセットの更新を送ることを望むシステムは、適切なパラメータセットの更新を送るために、2つの構成を比較して、差を見出すことが必要であり得る。HEVCFFは通常、幾つかのパラメータセットが使用されパラメータセットの更新が望まれるとき、パラメータセットがストリームのサンプルに含まれることを推奨する。HEVCFFに準拠するデコーダは、HEVCFFに基づく別のファイルフォーマットによって別段に制約されない限り、サンプルに記憶されたパラメータセット、更には、サンプル記述エントリーに記憶されたパラメータセットの両方をサポートすることが要求され得る。
[0124]一例では、ビデオファイル作成モジュール72は、ファイルフォーマットに従って符号化ビデオデータを出力するように構成されてよく、ここで、異なるタイプのパラメータセットは、それらがサンプル記述に含まれる場合、又は、サンプル記述が適用されるストリームのサンプルに含まれる場合、一緒にまとめられない。この例では、サンプル記述又はサンプルに1つのタイプのパラメータセットを含めることは、他のタイプのパラメータセットがサンプル記述又はサンプルに含まれるかどうかとは無関係であり得る。別の例では、ビデオファイル作成モジュールは、ファイルフォーマットに従って符号化ビデオデータを出力するように構成されてよく、ここで、全てのタイプのパラメータセットのサブセットのみが、それらがサンプル記述に含まれるか、又はサンプル記述が適用されるストリームのサンプルに含まれるかに関して、一緒にまとめられる。例えば、SPS及びPPSは一緒にまとめられ得るが、サンプル記述又はサンプルにAPSを含めることは、サンプル記述又はサンプルにSPSとPPSとを含めることとは無関係であり得る。
[0125]一例では、ビデオファイル作成モジュール72は、ファイルフォーマットに従って符号化ビデオデータを出力するように構成されてよく、ここで、サンプル記述は各タイプのパラメータセットのアレイを含み、特定のタイプのパラメータセットのアレイはその特定のタイプのパラメータセットNAL単位のみを含み得る。加えて、サンプル記述はまた、宣言型SEIメッセージを含むSEI NAL単位のアレイを含み得る。従って、この場合、ファイルパーサは、NAL単位のタイプを判定するために、アレイに含まれる各NAL単位のNAL単位ヘッダを確認する必要はない。代替的な例では、ビデオファイル作成モジュール72は、ファイルフォーマットに従って符号化ビデオデータを出力するように構成されてよく、このとき、アレイはサンプル記述に含まれ、アレイは、任意のタイプのパラメータセット、ならびに、宣言型SEIメッセージを含むSEI NAL単位を含み得る。
[0126]一例では、ビデオファイル作成モジュール72は、ファイルフォーマットに従って符号化ビデオデータを出力するように構成されてよく、ここで、トラック又はストリームの選択の目的で(例えば、ファイルベースの適応ストリーミング用途で)重要な空間解像度及びフレームレートのようなストリーム特性がサンプル記述に含まれる。更に、別の例では、ビデオファイル作成モジュール72は、ファイルフォーマットに従って符号化ビデオデータを出力するように構成されてよく、ここで、サンプル記述はビット深度(即ち、ビデオエンコーダ20から出力されたピクチャの、異なる色成分に対しては同一である可能性も異なる可能性もある、ビット深度)を含む。トラック又はストリームの選択の目的で重要なストリーム特性をサンプル記述に含めることで、これらのストリーム特性の便利な入手が可能になり得る。別の例では、ビデオファイル作成モジュール72は、ファイルフォーマットに従って符号化ビデオデータを出力するように構成されてよく、ここで、サンプル記述は、ストリーム全体にわたって他のタイルから独立に復号可能な(HEVCにおいて定義されるような)タイルのセットについての情報、例えば、タイルのセットにより覆われる幾何学的領域を含む。
[0127]一例では、ビデオファイル作成モジュール72は、ファイルフォーマットに従って符号化ビデオデータを出力するように構成されてよく、ここで、ストリームの特定の時間的サブセットの選択に重要である、プロファイル、レベル、及びフレームレートのような時間スケーラビリティ特性が、時間スケーラビリティサンプルグルーピング機構を通じて、各時間レイヤ表現のために含まれる。
[0128]一例では、ビデオファイル作成モジュール72は、どれだけの時間レイヤがビデオストリームに含まれるかとは無関係に、1つのトラックにビデオストリーム全体を記憶するように構成され得る。代替的な例では、ビデオストリーム全体が2つ以上のトラックに記憶されてよく、各トラックは連続的な時間レイヤのサブセットを含む。ビデオストリーム全体が2つ以上のトラックに記憶される場合、0より大きくtIdとして示されるtemporal_idを最も下にある含まれる時間レイヤが有する各トラックを示すための、かつ、tId−1に等しいtemporal_idを伴うレイヤを含むトラックを示すための指示が、ファイル中に存在し得る。これらのトラックは、トラックA及びトラックBとそれぞれ示され得る。そのような指示は、トラックAに含まれるタイプ「tscl」のトラック参照であってよく、このトラック参照は、トラックAが従属するトラックBを参照する。トラックAのストリーム特性は、トラックAと、tID未満のtemporal_id値を伴う時間レイヤを集合的に含む全てのトラックとからなることを、これらの全ての時間レイヤがトラックAにも含まれるかのように、記述し得る。一例では、ビデオファイル作成モジュール72は、上で説明された例の任意のかつ全ての組合せを実行するように構成され得る。例えば、ビデオファイル作成モジュール72は、本明細書で説明されるファイルフォーマットの任意のかつ全ての組合せを含むファイルフォーマットに従って、符号化ビデオデータを出力するように構成され得る。
[0129]ビデオファイル作成モジュール72は、ファイル内に記憶されたデコーダ情報構成記録にデコーダ構成情報を含み得る。デコーダ情報は、HEVC規格によって定義されてよく、デコーダ構成記録は、HEVCFFで現在定義されているデコーダ構成記録に基づき得るが、本明細書で説明される例と矛盾しない追加の情報も含み得る。このように、上で説明されたビデオファイル作成モジュール72の例示的な構成の1つ又は複数は、デコーダ構成情報を定義するファイルフォーマットに従って実装され得る。デコーダ構成情報は、以下で更に説明されるように、デコーダ構成記録に含まれ得る。従って、一例では、上で説明されるようなサンプル記述は、デコーダ構成記録において具現化され得る。パラメータセット及びそのそれぞれの指示のようなメタデータは、デコーダ構成記録又はサンプル記述に含まれるものとして説明されるが、これは限定するものとして解釈されるべきではなく、ビデオファイル作成モジュール72の例示的な構成に関して上で説明されたメタデータは、ビデオファイル作成モジュール72によって生成されるファイルの他の部分に記憶されてよく、ビデオファイル作成モジュール72によって生成されるファイルの他の部分は、ビデオストリームとは別個である。
[0130]一例では、ビデオファイル作成モジュール72は、アクセス単位の含まれたNAL単位の長さを示すために各アクセス単位において使用される長さフィールドのサイズを含み得る、デコーダ構成記録を含むファイルを生成し得る。更に、一例では、ビデオファイル作成モジュール72によって生成されるデコーダ構成記録はまた、例えば、(1)パラメータセットがサンプル記述に記憶されるかアクセス単位内に記憶されるかの指示、(2)サンプル記述とストリームのアクセス単位内のいずれかに記憶されるパラメータセットの数、(3)パラメータセットNAL単位に関する情報、(4)宣言型SEI NAL単位に関する情報、及び/又は(5)空間解像度情報のような、パラメータセット及び宣言型SEI NAL単位に関する情報を含み得る。
[0131]例示的なデコーダ構成記録は、次の例示的なシンタックスに従って、ビデオファイル作成モジュール72によって生成され得る。以下のシンタックスは、上で説明された他の例示的なビデオファイル作成モジュール72に従って修正され得ることに留意されたい。
[0132]上記の例示的なシンタックスでは、次のようにセマンティクスが定義され得る。
ProfileIndicationは、この構成記録が適用されるストリームに対して、ISO/IEC 23008−HEVCにおいて定義されるようなプロファイルコード(profile_idc)を含み得る。
profileCompatibilityは、この構成記録が適用されるストリームに対して、ISO/IEC 23008−HEVCにおいて定義されるような、シーケンスパラメータセット(SPS)中のprofile_idcとlevel_idcとの間に存在するバイトと厳密に同一であると定義される、バイトであり得る。
LevelIndicationは、ISO/IEC 23008−10において定義されるような、レベルコード(level_idc)を含み得る。
chromaFormatは、この構成記録が適用されるストリームに対して、ISO/IEC 23008−HEVCにおけるchroma_format_idcパラメータによって定義されるような、chroma_formatインジケータを含み得る。
bitDepthLumaMinus8は、この構成記録が適用されるストリームに対して、ISO/IEC 23008−HEVCにおけるbit_depth_luma_minus8パラメータによって定義されるような、ルーマビット深度インジケータを含み得る。
bitDepthChromaMinus8は、この構成記録が適用されるストリームに対して、ISO/IEC 23008−HEVCにおけるbit_depth_chroma_minus8によって定義されるような、クロマビット深度インジケータを含み得る。
pictureWidthInLumaPixelsは、この構成記録が適用されるストリームに対して、復号ピクチャの幅をルーマ画素の単位で示し得る。
pictureHeightInLumaPixelsは、この構成記録が適用されるストリームに対して、復号ピクチャの高さをルーマ画素の単位で示し得る。
avgFrameRateは、この構成記録が適用されるストリームに対して、平均のフレームレートをフレーム/(256秒)の単位で与え得る。値0は、指定されていない平均フレームレートを示し得る。
1に等しいconstantFrameRateは、この構成記録が適用されるストリームのフレームレートが一定であることを示し得る。値2は、ストリーム中の各時間レイヤの表現のフレームレートが一定であることを示し得る。値0は、ストリームのフレームレートが一定であることも一定ではないこともあることを示し得る。
1より大きいnumTemporalLayersは、この構成記録が適用されるストリームが時間的にスケーラブルであり、含まれるレイヤの数がnumTemporalLayersに等しいことを示し得る。値1は、ストリームが時間的にスケーラブルではないことを示し得る。値0は、ストリームが時間的にスケーラブルであるかどうかが知られていないことを示し得る。
lengthSizeMinusOneプラス1は、この構成記録が適用されるストリーム中のHEVCビデオサンプルのNALUnitLengthフィールドのバイト単位の長さを示し得る。例えば、1バイトのサイズは、0という値によって示され得る。このフィールドの値は、1、2、又は4バイトによってそれぞれ符号化される長さに対応する、0、1、又は3のうちの1つであり得る。
numOfSequenceParameterSetsは、この構成記録が適用されるストリームを復号するために使用されるSPSの数を示し得る。一例では、値が0より大きい場合、SPSはストリームのサンプルに含まれるべきではない。一例では、値が0に等しい場合、ストリームのサンプルに少なくとも1つのSPSが含まれるべきである。
sequenceParameterSetLengthは、ISO/IEC 23008−HEVCにおいて定義されるように、SPS NAL単位のバイト単位の長さを示し得る。
sequenceParameterSetNALUnitは、ISO/IEC 23008−HEVCにおいて規定されるようなSPS NAL単位を含み得る。
numOfPictureParameterSetsは、この構成記録が適用されるストリームを復号するために使用される画素パラメータセットの数を示し得る。一例では、値が0より大きい場合、PPSはストリームのサンプルに含まれるべきではない。一例では、値が0に等しい場合、ストリームのサンプルに少なくとも1つのPPSが含まれるべきである。
pictureParameterSetLengthは、ISO/IEC 23008−HEVCにおいて定義されるように、PPS NAL単位のバイト単位の長さを示し得る。
pictureParameterSetNALUnitは、ISO/IEC 23008−HEVCにおいて規定されるようなPPS NAL単位を含み得る。
numOfAdaptationParameterSetsは、この構成記録が適用されるストリームを復号するために使用される適応パラメータセット(APS)の数を示し得る。一例では、値が0より大きい場合、APSはストリームのサンプルに含まれるべきではない。一例では、値が0に等しい場合、APSがストリームのサンプルに含まれることも含まれないこともある。
adaptaionParameterSetLengthは、ISO/IEC 23008−HEVCにおいて定義されるように、APS NAL単位のバイト単位の長さを示し得る。
adaptationParameterSetNalUnitは、ISO/IEC 23008−HEVCにおいて規定されるようなAPS NAL単位を含み得る。
numOfDeclarativeSeiNalUnitsは、この構成記録が適用されるストリームのための宣言型SEI NAL単位の数を示し得る。宣言型SEI NAL単位は、「宣言型」の性質のSEIメッセージ、即ち、ストリーム全体についての情報を与え得るSEIメッセージを含み得る。そのようなSEIの例は、ユーザデータSEIである。
declarativeSeiNalUnitLengthは、宣言型SEI NAL単位のバイト単位の長さを示し得る。
declarativeSeiNalUnitは、宣言型SEI NAL単位を含み得る。
numOfSequenceParameterSetExtは、AVC基本ストリームを復号するために使用されるシーケンスパラメータセット拡張の数を示し得る。
sequenceParameterSetExtLengthは、ISO/IEC 14496−10において定義されるような、SPS拡張NAL単位のバイト単位の長さを示し得る。
sequenceParameterSetExtNALUnitは、ISO/IEC 14496−10において規定されるような、SPS拡張NAL単位を含み得る。
[0133]上で説明された例示的なシンタックス及びセマンティクスに加えて、ビデオ作成モジュール72により使用されるファイルフォーマットは、デコーダ構成記録に関する追加の制約を含み得る。例えば、幾つかの場合には、ProfileIndication、LevelIndication、及びプロファイルの適合性を示すフラグの値が、デコーダ構成記録によって表されるストリームの全てのパラメータセットに対して有効でなければならない。更に、幾つかの場合には、level indicationは、含まれるパラメータセットにおいて示される最高のレベル以上のレベルの能力を示さなければならず、各々のプロファイル適合性フラグは、全ての含まれるパラメータセットがそのフラグを設定する場合にのみ設定され得る。更に、幾つかの場合には、profile indicationは、この構成記録と関連付けられるストリームが準拠するプロファイルを示さなければならない。更に、幾つかの場合には、シーケンスパラメータセットが異なるプロファイルによって標識され、関連するプロファイル適合フラグが全て0である場合、ストリームは、ストリーム全体が準拠するプロファイルがある場合にはそれがいずれのプロファイルであるかを判定するために、検査を必要とし得る。更に、ストリーム全体が検査されない場合、又はストリーム全体が準拠するプロファイルがないことが検査で明らかになる場合、ストリーム全体が、これらの規則が満たされ得る別々の構成記録を伴う2つ以上のサブストリームへと、分割されなければならない。
[0134]更に、幾つかの例では、クロマフォーマット及びビット深度、ならびにHEVCビデオ基本ストリームによって使用される他の重要なフォーマット情報についてのデコーダ構成記録において、明示的な指示が与えられ得る。各タイプのそのような情報は、単一のHEVC構成記録中の全てのパラメータセットが、存在する場合には同一であることが要求され得る。更に、幾つかの場合には、2つのシーケンスが任意のタイプのそのような情報において異なる場合、2つの異なるHEVC構成記録が必要であり得る。更に、2つのシーケンスが、それらのVUI情報における色空間の指示において異なる場合、2つの異なる構成記録も要求され得る。
[0135]更に、ビデオファイル作成モジュール72によって生成されるデコーダ構成記録は、外部でフレーミングされ得る。デコーダ構成記録が外部でフレーミングされる場合、デコーダ構成記録のサイズは、それを含む構造によって与えられ得る。デコーダ構成記録は、バージョンフィールドも含み得る。幾つかの場合には、このデコーダ構成記録に対する互換性のある拡張は、デコーダ構成記録を拡張することができ、構成バージョンコードを変化させない。幾つかの場合には、ファイルリーダは、ファイルリーダが理解するデータの定義を超えた、認識されないデータを無視する準備ができているべきである。
[0136]デコーダ構成記録器を生成することに加えて、ビデオファイル作成モジュール72は、特定の時間インスタンスについての全てのNAL単位を含むアクセス単位を組み立てるように更に構成され得る。図5を再び参照すると、NAL単位コンストラクタ74は、符号化ビデオデータを含むNAL単位を形成することができる。図1で説明されたHEVCメディアファイル142に関して上で説明されたように、NAL単位のタイプには、AUデリミターNAL単位、SEI NAL単位、及びスライスNAL単位があり得る。例示的なデコーダ記録シンタックス及びセマンティクスに関して更に説明されるように、NAL単位の追加のタイプには、SPS NAL単位、PPS NAL単位、APS NAL単位、及び宣言型SEI NAL単位があり得る。
[0137]一例では、NAL単位コンストラクタ74は、次のシンタックスに従って、デコーダ構成記録に基づいてNAL単位を定義するように構成され得る。
[0138]例示的なシンタックスでは、NALUnitLengthは、バイト単位でのNAL単位のサイズを示し得る。長さフィールドは、NALヘッダとRBSPペイロードの両方のサイズを含んでよく、長さフィールド自体を必ずしも含まない。更に、NALUnitは、単一のNAL単位を含み得る。NAL単位のシンタックスは、ISO/IEC 23008−HEVCで定義されてよく、NALヘッダと可変長のカプセル化されたバイトストリームペイロードとの両方を含み得る。
[0139]更に、幾つかの例では、ビデオファイル作成モジュール72は更に、ファイルフォーマットによって定義された制約に従って、NAL単位を含むアクセス単位を組み立てるように構成され得る。例えば、ある場合には、コード化ピクチャのために使用されるべきサンプル内にパラメータセットが記憶されることが許容される場合、そのピクチャを含むサンプルよりも前に、又はそのピクチャのサンプルにおいて、パラメータセットが送られなければならない。図1を参照すると、ピクチャがアクセス単位150B内に含まれる場合、この例示的な制約によれば、アクセス単位150Bとともに使用されるべきパラメータセットについて、パラメータセットは、メタデータボックス144、アクセス単位150A、又はアクセス単位150Bに記憶されなければならない。パラメータセットをビデオストリームのサンプル記述に記憶することは、パラメータセットを与えるための簡単かつ不変の方法を提供することに留意されたい。しかしながら、パラメータセットをサンプルに記憶することは、サンプル記述にパラメータセットを記憶することよりも複雑であることがあるが、パラメータセットの更新の場合及び追加のパラメータセットを追加する場合には、更なるダイナミズムを実現する。パラメータセットの更新は、特定のパラメータセットのコンテンツの存在を指すが、パラメータセットのIDは同じままである。
[0140]加えて、ビデオ作成モジュール72によって使用されるファイルフォーマットは、HEVCビジュアルサンプルエントリーとも呼ばれ得るHEVCビデオ基本ストリームにおいて、アクセス単位のフォーマットを定義することができる。一例では、アクセス単位のシンタックスは、HEVC基本ストリームのデコーダ特有構成を介して構成され得る。更に、一例では、1つ又は複数のアクセス単位と関連付けられるサンプル記述の名前及びフォーマットは次のように定義され得る。即ち、(1)「hvc1」又は「hvcC」として定義され得るボックスタイプ、(2)Sample Table Box(「stbl」)として定義され得るコンテナ、(3)必須のエントリーは「hvc1」サンプルエントリーを含み得る、及び(4)1つ又は複数のサンプルエントリーが存在することを許容するように量が定義され得る。更に、一例では、HEVCビジュアルサンプルエントリーは、以下で更に説明されるように、HEVC Configuration Boxを含むことが要求され得る。幾つかの例では、HEVC Configuration Boxは、上で説明されたように、HEVCデコーダ構成記録を含み得る。
[0141]任意選択のシンタックス要素MPEG4BitRateBoxは、HEVCビデオストリームのビットレート情報を信号伝達するために、HEVCビジュアルサンプルエントリー中に存在し得る。MPEG−4において使用される場合、Elementary Stream Descriptorへと挿入されるべき拡張記述子も存在し得る。幾つかの例では、異なる構成又はパラメータセットを使用するビデオのセクションを示すために、ISO Base Media File Format仕様によって許容されるように、複数のサンプル記述が使用され得る。
[0142]幾つかの例では、HEVCConfigurationBoxにおいて与えられた構成(プロファイルとレベルとを含む)のもとで動作するHEVCデコーダにより見られたときに、このサンプルエントリーが適用されるストリームが、適合性のある、かつ使用可能なHEVCストリームである場合にのみ、サンプルエントリーの名前「hvc1」が使用され得る。
[0143]一例では、ビデオファイル作成モジュール72は、次のシンタックスに従って、HEVCビジュアルサンプルエントリーを定義するように構成され得る。
[0144]更に、上で提供された例示的なシンタックスでは、基本クラスVisualSampleEntryにおいて定義されるようなCompressornameは、推奨されている「\013HEVC Coding」という値(\012は、バイト単位のストリングの長さで10である)とともに使用される圧縮器の名前を示し得る。シンタックス要素Compressornameは更に、HEVCFFに従って定義され得る。シンタックス要素configは、デコーダ構成記録に従って定義され得る。
[0145]ビデオファイル作成モジュール72は更に、NAL単位を含むアクセス単位を組み立てるように構成されてよく、幅フィールド及び長さフィールドがVisualSampleEntryに含まれる。一例では、VisualSampleEntryにおける幅フィールド及び高さフィールドは、そのエントリーによって表されるHEVCストリームの切り取られたピクチャの寸法(視覚的表示サイズ)を正確に記録しなければならない。一例では、幅フィールド及び高さフィールドは、パンスキャン(pan-scan)のような、SEIメッセージによって引き起こされるサイズの変化を何ら反映しない。幾つかの例では、パンスキャンのようなSEIメッセージの視覚的な処理は、任意選択かつ端末依存である。更に、幾つかの場合には、シーケンスの幅及び高さが変化すると、新たなサンプル記述が必要とされる。幾つかの例では、トラックヘッダ中の幅フィールド及び高さフィールドは、ビデオトラック中の1つ以上のVisualSampleEntry中の幅フィールド及び高さフィールドと同じではないことがある。ISO Base Media File Formatで規定されるように、正規化された視覚的表示が必要であり、全てのシーケンスが、表示のためのトラックの幅及び高さへと正規化され得る。
[0146]ビデオファイル作成ユニット72がビデオファイルを生成した後、ビデオファイル作成ユニット72は、ビデオファイルをビデオファイル出力インターフェース76に渡し得る。ビデオファイル出力インターフェース76は、例えば、発信源機器20の出力インターフェース22に、ビデオファイルを出力し得る。幾つかの例では、ビデオファイル出力インターフェース76は、ビデオファイルを発信源機器20(図示せず)の記憶媒体又は記憶媒体32に出力し得る。
[0147]図6は、ISOBMFF及び現在のHEVCFFに基づく、例示的なHEVCメディアファイルの構造を示す概念図である。HEVCメディアファイル242は、本開示の技法を使用したファイルフォーマットテキストの例を表し、(1)パラメータセットはサンプル記述とサンプル記述が適用されるストリームのサンプルのいずれかに含まれてよく、(2)異なるタイプのパラメータセットが、サンプル記述に含まれるか、又はサンプル記述が適用されるストリームのサンプルに含まれるかに関して、一緒にまとめられず、(3)サンプル記述が各タイプのパラメータセットのアレイを含み、特定のタイプのパラメータセットのアレイがその特定のタイプのパラメータセットNAL単位のみを含むことができ、サンプル記述が宣言型SEIメッセージを含むSEI NAL単位のアレイも含み、(4)ストリーム特性がサンプル記述に含まれる。図6の例示的なHEVCメディアファイル242は、ビデオデータストリームとメタデータとの論理的な関係を示すことが意図されていることに留意されたい。簡潔にするために、HEVCメディアファイル242の完全なカプセル化構造は示されていない。しかしながら、HEVCメディアファイル242は、HEVCFFに従って定義される、ボックス及びカプセル化の構造を利用し得る。HEVCメディアファイルは、上で説明された例示的なシンタックス及び制約に従って、ビデオファイル作成ユニット72によって生成され得る。
[0148]図6に示される例では、HEVCメディアファイル242は、メタデータボックス244とビデオデータストリーム246とを含む。メタデータボックス244は、ISOBMFF「moov」ボックスと同様であってよく、デコーダ構成記録250のようなビデオデータストリーム266のデータを含み得る。一例では、メタデータテーブルはサンプルテーブルボックスであってよい。メタデータボックス244とデコーダ構成記録250の両方が、サンプル記述の部分を形成し得る。一例では、デコーダ構成記録250は、上で説明された例示的なシンタックスを使用して生成されてよく、パラメータセット及びSEI NAL単位メッセージに関する情報を含み得る。更に、デコーダ構成記録はSYNTAX ELEMENTSを含む。SYNTAX ELEMENTSは、空間解像度のようなストリーム特性に関する情報を含み得る。一例では、デコーダ構成記録252は、SPSアレイ254とSEIアレイ258とを含み得る。SPSアレイ254は、SPS NAL単位255を含み得る。SPSアレイ258は、SEI NAL単位259を含み得る。
[0149]ビデオデータストリーム246は、HEVCFFで表されるビデオトラック又はビジュアルトラックに対応し得る。従って、ビデオデータストリーム246は、よって、(1)HandlerBox中の「vide」というハンドラタイプと、(2)ビデオメディアヘッダ「vmhd」と、(3)VisualSampleEntryの派生物とを使用し得る。ビデオデータストリーム246は、複数のアクセス単位260A〜260Nを含み得る。アクセス単位260A〜260Nは、上で説明された例示的なシンタックス及び制約に従って、ビデオファイル作成ユニット72によって生成され得る。図6に示されるように、アクセス単位260Aは、PPS NAL単位256AとVCL NAL単位256Bとを含み、アクセス単位260Nは、APS NAL単位256CとVCL NAL 256Dとを含む。一例では、ビデオデータストリーム246は、1つ又は複数の時間レイヤを含んでよく、メタデータボックス244は更に、ビデオデータストリーム246が1つ又は複数のトラックに分割されるかどうかの指示を含み得る。
[0150]このように、HEVCファイル242は、例示的なファイルを表し、(1)パラメータセットはサンプル記述及びサンプル記述が適用されるストリームのサンプルに含まれ、(2)異なるタイプのパラメータセットが、サンプル記述に含まれるか、又はサンプル記述が適用されるストリームのサンプルに含まれるかに関して、一緒にまとめられず、(3)サンプル記述が各タイプのパラメータセットのアレイを含み、サンプル記述が宣言型SEIメッセージを含むSEI NAL単位のアレイも含み、(4)ストリーム特性がサンプル記述に含まれる。
[0151]図3を再び参照すると、発信源機器12は、1つ又は複数のファイルフォーマットに従って符号化ビデオデータを出力するように構成されてよく、宛先機器14は、本明細書で説明されるフォーマットのような1つ又は複数のファイルフォーマットで、符号化ビデオデータを受信するように構成され得る。本明細書で説明されるビデオファイルは、発信源機器12の出力インターフェース22を介して、宛先機器14に直接送信され得る。ビデオファイルは、更に(又は代替的に)、復号及び/又は再生のための宛先機器14又は他の機器による後のアクセスのために記憶機器32に記憶され得る。
[0152]宛先機器14は、入力インターフェース28と、逆カプセル化モジュール29と、ビデオデコーダ30と、表示装置34とを含む。幾つかの場合、入力インターフェース28は、受信機及び/又はモデムを含み得る。宛先機器14の入力インターフェース28は、リンク16を通じて符号化ビデオデータを受信する。リンク16を通じて通信され、又は記憶機器32上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30のようなビデオデコーダが使用するための、ビデオエンコーダ20によって生成される種々のシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、又はファイルサーバ上に記憶される符号化ビデオデータとともに含まれ得る。幾つかの例では、そのようなシンタックス要素は、本開示で説明されるようなイントラ符号化モードを信号伝達する、シンタックス要素を含み得る。
[0153]表示装置34は、宛先機器14と一体化されるか、又はその外部にあり得る。幾つかの例では、宛先機器14は、一体型表示装置を含み、また、外部表示装置とインターフェースするように構成され得る。他の例では、宛先機器14は表示装置であり得る。一般に、表示装置34は、復号ビデオデータをユーザに対して表示し、液晶表示器(LCD)、プラズマ表示器、有機発光ダイオード(OLED)表示器、又は別のタイプの表示装置のような、種々の表示装置のいずれかを備え得る。
[0154]宛先機器14は、リンク16を介して復号されるべき符号化ビデオデータを受信することができる。リンク16は、発信源機器12から宛先機器14に符号化ビデオデータを移動することが可能な任意のタイプの媒体又は機器を備え得る。一例では、リンク16は、発信源機器12が、符号化ビデオデータをリアルタイムで宛先機器14に直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先機器14に送信され得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つ又は複数の物理伝送線路のような、任意のワイヤレス通信媒体又は有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークのような、パケットベースネットワークの一部を形成し得る。通信媒体は、発信源機器12から宛先機器14への通信を可能にするために有用であり得るルータ、スイッチ、基地局、又は任意の他の機器を含み得る。幾つかの場合には、出力インターフェース22は、変調器/復調器(モデム)及び/又は送信機を含み得る。
[0155]代替的に、符号化データは、出力インターフェース22から記憶機器32に出力され得る。同様に、符号化データは、入力インターフェース28によって記憶機器32からアクセスされ得る。記憶機器32は、ハードドライブ、ブルーレイ(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、又は符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体のような、種々の分散された又はローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。更なる一例では、記憶機器32は、発信源機器12によって生成された符号化ビデオを保持し得るファイルサーバ又は別の中間記憶機器に対応し得る。宛先機器14は、ストリーミング又はダウンロードを介して、記憶機器32から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先機器14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(例えば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続記憶(NAS)機器、又はローカルディスクドライブを含む。宛先機器14は、インターネット接続を含む、任意の標準のデータ接続を通じて符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(例えば、Wi−Fi(登録商標)接続)、有線接続(例えば、DSL、ケーブルモデムなど)、又は両方の組合せを含み得る。記憶機器32からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、又は両方の組合せであり得る。
[0156]本開示の技法は、必ずしもワイヤレス適用例又は設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、又は他の適用例のような、様々なマルチメディア適用例のいずれかをサポートするビデオ符号化に適用され得る。幾つかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、及び/又はビデオ電話などの適用例をサポートするために、一方向又は双方向のビデオ送信をサポートするように構成され得る。
[0157]図3には示されていないが、幾つかの態様では、ビデオエンコーダ20及びビデオデコーダ30は、各々オーディオエンコーダ及びデコーダと統合されてよく、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、又は他のハードウェア及びソフトウェアを含んでよい。適用可能な場合、幾つかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0158]ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアのような、種々の好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、機器は、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つ又は複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20及びビデオデコーダ30の各々は1つ又は複数のエンコーダ又はデコーダ中に含まれてよく、そのいずれも、それぞれの機器において複合エンコーダ/デコーダ(コーデック)の一部として統合されてよい。
[0159]ビデオデコーダ30が復号ビデオデータを出力し得るように、逆カプセル化モジュール29は、ビデオファイル解析ビデオファイルを受信するように構成され得る。幾つかの例では、逆カプセル化モジュール29は、カプセル化モジュール72と逆のプロセスを実行し得る。ビデオデコーダ30は、幾つかの例では、図4のビデオエンコーダ20に関して説明された符号化パスとは全般に逆の復号パスを実行し得る。
[0160]図7は、本開示の技法によるコード化ビデオコンテンツを含むビデオファイルを生成する方法の例を示すフローチャートである。図7で説明されるプロセスは、発信源機器20、カプセル化モジュール21、及び本明細書で説明されるビデオ作成モジュール72の任意の組合せを含み得る、ビデオ符号化機器によって実行され得る。ビデオ符号化機器は、コード化ビデオコンテンツのスライスを取得し得る(702)。コード化ビデオコンテンツは、HEVCに従って符号化された複数のスライスを含み得る。ビデオ符号化機器は、ビデオコンテンツのスライスと関連付けられるパラメータセットを取得し得る(704)。パラメータセットは、SPS、PPS、及び/又はAPSを含み得る。ビデオ符号化機器は、コード化ビデオコンテンツのスライスをアクセス単位内にカプセル化し得る(706)。アクセス単位は、本明細書で説明されたように定義される。ビデオ符号化機器は、パラメータセットをアクセス単位内にカプセル化し得る(708)。パラメータセットは、本明細書で説明された技法に従って、アクセス単位内にカプセル化され得る。ビデオ符号化機器は、パラメータセットをサンプル記述内にカプセル化し得る(710)。一例では、PPSは1つ又は複数のアクセス単位内にカプセル化され得るが、SPSはサンプル記述内にカプセル化される。ビデオ符号化機器が、ビデオファイルを出力する(712)。ビデオファイルは更に、ファイルフォーマットに基づいて生成されてよく、ファイルフォーマットは本明細書で説明された技法に基づく。
[0161]1つ又は複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つ又は複数の命令若しくはコードとしてコンピュータ可読媒体上に記憶されるか、又はコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、又は(2)信号若しくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コード及び/又はデータ構造を取り出すために1つ又は複数のコンピュータあるいは1つ又は複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0162]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROM又は他の光ディスク記憶機器、磁気ディスク記憶機器、又は他の磁気記憶機器、フラッシュメモリ、若しくは、命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。同様に、いかなる接続も適切にコンピュータ可読媒体と呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモート発信源から送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)及びブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0163]命令は、1つ又は複数のデジタル信号プロセッサ(DSP)などの1つ又は複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路又はディスクリート論理回路によって実行され得る。従って、本明細書で使用される「プロセッサ」という用語は、前述の構造、又は本明細書で説明される技法の実装に好適な他の構造のいずれかを指す。加えて、幾つかの態様では、本明細書で説明された機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内で与えられてよく、あるいは複合コーデックに組み込まれてよい。また、本技法は、1つ又は複数の回路又は論理要素中で十分に実装され得る。
[0164]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置において実装され得る。本開示では、開示される技法を実行するように構成された機器の機能的態様を強調するために、様々なコンポーネント、モジュール、又はユニットが説明されたが、それらのコンポーネント、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上で説明されたように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上で説明された1つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。
[0165]様々な例が説明されてきた。これら及び他の例は以下の特許請求の範囲内に入る。