(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022125298
(43)【公開日】2022-08-26
(54)【発明の名称】信頼性レベル及び混合コンテンツ情報を含む付加拡張情報
(51)【国際特許分類】
H04N 19/70 20140101AFI20220819BHJP
【FI】
H04N19/70
【審査請求】有
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2022110031
(22)【出願日】2022-07-07
(62)【分割の表示】P 2020051841の分割
【原出願日】2013-09-23
(31)【優先権主張番号】61/708,041
(32)【優先日】2012-09-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】61/777,913
(32)【優先日】2013-03-12
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】13/859,626
(32)【優先日】2013-04-09
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】スリヴァン,ゲイリー ジェイ.
(72)【発明者】
【氏名】ウ-,ヨンジュン
(57)【要約】
【課題】ビットストリームにおいて付加拡張情報を使用及び提供するための技術を提供すること。
【解決手段】特定の実施形態において、SEIメッセージは、ピクチャ・ソース・データ(例えば、関連ピクチャがプログレッシブ・スキャン・ピクチャであるか又はインタレース・スキャン・ピクチャであるかを示すデータ、及び/又は、関連ピクチャが複製ピクチャであるかどうかを示すデータ)を含む。SEIメッセージはまた、このピクチャ・ソース・データの正確性におけるエンコーダの相対的信頼性の信頼性レベルを明示し得る。デコーダは、信頼性レベル・インジケーションを使用して、デコーダがピクチャをプログレッシブ又はインタレースとして独立に識別すべきかどうか、及び/又は、複製ピクチャを識別すべきかどうかを判定することができる、あるいは、SEI内のピクチャ・ソース・スキャニング情報をありのままに有効なものとして受け取ることができる。
【選択図】
図5
【特許請求の範囲】
【請求項1】
ビデオエンコーダを実装するコンピュータシステムにおいて、
ビデオコンテンツを符号化し、符号化データを生成することであって、前記ビデオコンテンツを符号化することは、前記ビデオコンテンツのソース表示に対する複数の可能なオプションの1つと、前記ビデオコンテンツのソース表示の信頼度とを示す複数のシンタックスエレメントを設定することを含み、前記複数の可能なオプションは、
(1)前記ビデオコンテンツのスキャンタイプがプログレッシブであり、前記ビデオコンテンツのスキャンタイプに従うことが推奨される、
(2)前記ビデオコンテンツのスキャンタイプがインターレースであり、前記ビデオコンテンツのスキャンタイプに従うことが推奨される、
(3)前記ビデオコンテンツのスキャンタイプが不明である、及び
(4)前記ビデオコンテンツのスキャンタイプは、前記ビデオコンテンツの一部ではプログレッシブであり、前記ビデオコンテンツの一部ではインターレースであり、前記ビデオコンテンツのスキャンタイプに従うことが推奨される、ことである、符号化することと、
ビットストリームの少なくとも一部として前記符号化データを出力することであって、前記符号化データは前記複数の可能なオプションの1つを示す前記複数のシンタックスエレメントをシンタックス構造に含む、出力することとを含む方法。
【請求項2】
前記複数のシンタックスエレメントは前記ビデオコンテンツのスキャンタイプがプログレッシブであるかを示すフラグを含む、請求項1に記載の方法。
【請求項3】
前記複数のシンタックスエレメントは、前記ビデオコンテンツのスキャンタイプが、前記ビデオコンテンツの一部ではプログレッシブであり、前記ビデオコンテンツの一部ではインターレースであるかを示すフラグを含む、請求項1に記載の方法。
【請求項4】
前記複数のシンタックスエレメントは、前記ビデオコンテンツのソース表示の信頼度を示すシンタックスエレメントを含む、請求項1に記載の方法。
【請求項5】
前記シンタックス構造はビデオ利用情報である、請求項1に記載の方法。
【請求項6】
前記シンタックス構造は付加拡張情報メッセージである、請求項1に記載の方法。
【請求項7】
一以上の処理部とメモリとを有し、請求項1乃至6いずれか一項に記載の方法を実行するように構成されたコンピュータシステム。
【請求項8】
プログラムされると、一以上の処理部に請求項1乃至6いずれか一項に記載の方法を実行させるコンピュータ実行可能命令を格納した一以上のコンピュータ可読媒体。
【請求項9】
ビデオデコーダを実装するコンピューティングシステムにおいて、
ビットストリームの少なくとも一部の符号化データを受信することであって、前記符号化データは、ビデオコンテンツのソース表示の複数の可能なオプションの1つと、前記ビデオコンテンツのソース表示の信頼度とを示す複数のシンタックスエレメントを、シンタックス構造で含み、前記複数の可能なオプションは、
(1)前記ビデオコンテンツのスキャンタイプがプログレッシブであり、前記ビデオコンテンツのスキャンタイプに従うことが推奨される、
(2)前記ビデオコンテンツのスキャンタイプがインターレースであり、前記ビデオコンテンツのスキャンタイプに従うことが推奨される、
(3)前記ビデオコンテンツのスキャンタイプが不明である、及び
(4)前記ビデオコンテンツのスキャンタイプは、前記ビデオコンテンツの一部ではプログレッシブであり、前記ビデオコンテンツの一部ではインターレースであり、前記ビデオコンテンツのスキャンタイプに従うことが推奨される、ことである、符号化することと、
前記符号化データを復号して、前記ビデオコンテンツを再構成することであって、前記符号化データを復号することは、前記複数の可能なオプションの1つを示す前記複数のシンタックスエレメントを解析することを含む、復号することとを含む方法。
【請求項10】
前記複数のシンタックスエレメントは前記ビデオコンテンツのスキャンタイプがプログレッシブであるかを示すフラグを含む、請求項9に記載の方法。
【請求項11】
前記複数のシンタックスエレメントは、前記ビデオコンテンツのスキャンタイプが、前記ビデオコンテンツの一部ではプログレッシブであり、前記ビデオコンテンツの一部ではインターレースであるかを示すフラグを含む、請求項9に記載の方法。
【請求項12】
前記複数のシンタックスエレメントは、前記ビデオコンテンツのソース表示の信頼度を示すシンタックスエレメントを含む、請求項9に記載の方法。
【請求項13】
前記シンタックス構造はビデオ利用情報である、請求項9に記載の方法。
【請求項14】
前記シンタックス構造は付加拡張情報メッセージである、請求項9に記載の方法。
【請求項15】
一以上の処理部とメモリとを有し、請求項9乃至14いずれか一項に記載の方法を実行するように構成されたコンピュータシステム。
【請求項16】
プログラムされると、一以上の処理部に請求項9乃至14いずれか一項に記載の方法を実行させるコンピュータ実行可能命令を格納した一以上のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、ビデオ符号化及びビデオ復号化に関し、詳細には、ビットストリームにおいて付加拡張情報を使用及び提供するためのツール及び技術に関する。
【背景技術】
【0002】
エンジニアは、デジタル・ビデオのビット・レートを低減させるために、圧縮(ソース符号化とも呼ばれる)を使用する。圧縮は、ビデオ情報をより低いビット・レート形式に変換することにより、ビデオ情報を記憶して伝送するコストを低減させる。伸張(復号化とも呼ばれる)は、圧縮形式からオリジナル情報のバージョンを再構築する。「コーデック」はエンコーダ/デコーダ・システムである。
【0003】
ここ20年の間、H.261規格、H.262(MPEG-2又はISO/IEC 13818-2)規格、H.263規格、及びH.264(AVC又はISO/IEC 14496-10)規格、並びに、MPEG-1(ISO/IEC 11172-2)規格、MPEG-4 Visual(ISO/IEC 14496-2)規格、及びSMPTE 421M(VC-1)規格を含む様々なビデオ・コーデック規格が採用されてきた。より最近では、HEVC(H.265)規格を策定中である。ビデオ・コーデック規格は、通常、特定の機能が符号化及び復号化において使用されるときの、符号化ビデオ・ビットストリームのシンタックスのためのオプション、ビットストリームにおける詳細パラメータを定義している。多くの場合、ビデオ・コーデック規格はまた、デコーダが復号化において正しい結果を達成するために実行すべき復号化オペレーションに関する詳細を提供している。
【発明の概要】
【0004】
とりわけ、詳細な説明は、付加拡張情報(SEI)を有するビットストリームのためのイノベーションを提供する。特定の実施形態において、SEIメッセージは、ピクチャ・ソース・データ(例えば、関連未圧縮ピクチャがプログレッシブ・スキャン・ピクチャ又はインタレース・スキャン・ピクチャであるかを示すデータ、及び/又は関連ピクチャが複製ピクチャであるかどうかを示すデータ)を含み、SEIメッセージはまた、このピクチャ・ソース・データのフォーマットの正確性におけるエンコーダの相対的信頼性の信頼性レベルを明示し得る。デコーダは、信頼性レベル・インジケーションを使用して、デコーダがピクチャをプログレッシブ又はインタレースとして独立に識別すべきかどうか、及び/又は示される複製ピクチャを識別すべきかどうかを判定することができる。
【0005】
所定の実施例において、SEIメッセージはまた、関連ピクチャが混合データ(例えば、インタレース・データとプログレッシブ・データとの混合)を含むかどうかを示すためのインジケータを含む。そのようなイノベーションは、符号化ビットストリーム又はビットストリーム部分をどのように処理するかを柔軟に決定するビデオ復号化システムの能力を向上させるのに役立ち得る。
【0006】
本発明の前述の目的及び他の目的、特徴、並びに利点が、添付の図面を参照しながら進む以下の詳細な説明からより明らかになるであろう。
【図面の簡単な説明】
【0007】
【
図1】いくつかの説明する実施形態を実装することができる例示的なコンピューティング・システムの図。
【
図2a】いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。
【
図2b】いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。
【
図3】いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダ・システムの図。
【
図4】いくつかの説明する実施形態を協働して実装することができる例示的なデコーダ・システムの図。
【
図5】開示する技術の実施形態に従った、付加拡張情報を使用するための第1の例示的な方法のフローチャート。
【
図6】開示する技術の実施形態に従った、付加拡張情報を使用するための第1の例示的な方法のフローチャート。
【発明を実施するための形態】
【0008】
詳細な説明は、付加拡張情報(SEI)を有するビットストリームを符号化及び復号化するためのイノベーションを提供する。詳細には、詳細な説明は、ピクチャがプログレッシブ・スキャン・ピクチャ又はインタレース・スキャン・ピクチャであるかを示す、SEIメッセージ内のシンタックス要素又はフラグの正確性における信頼性を示す信頼性レベル・インジケータをピクチャのSEIメッセージが含む実施形態を説明する。いくつかの実施形態において、1以上のシンタックス要素は組み合わされて、1以上の関連ピクチャが、プログレッシブ・スキャンであるか、インタレース・スキャンであるか、あるいは未知のソースのものであるかを明示することができる。所定の実施形態において、SEIメッセージは、関連ピクチャがデータの混合を含むかどうか、及び/又は関連ピクチャが複製ピクチャであるかどうかを示すためのフラグをさらに含む。
【0009】
本明細書で説明するイノベーションのいくつかは、HEVC規格に固有のシンタックス要素及びオペレーションを参照して示される。例えば、HEVC規格の所定のドラフト・バージョン、すなわち、HEVC規格のドラフト・バージョンJCTVC-I1003(2012年7月にストックホルムで開催された第10回会合の”High efficiency video coding (HEVC) text specification draft 8”, JCTVC-I1003_d8)、及びHEVC規格のドラフト・バージョンJCTVC-L1003(2013年1月14日~23日にスイスのジュネーブで開催された第12回会合の”High efficiency video coding (HEVC) text specification draft 10”, JCTVC-L1003_v34)を参照する。本明細書で説明するイノベーションは、他の規格又はフォーマットのためにも実装され得る。
【0010】
より一般的に、本明細書で説明する例に対する様々な代替例が可能である。例えば、本明細書で説明する方法のいくつかは、説明する方法動作の順番を変えることにより、所定の方法動作を分けることにより、所定の方法動作を繰り返すことにより、又は所定の方法動作を省略することにより、変更することができる。開示する技術の様々な態様が、組み合わせることにより、又は別々に使用され得る。様々な実施形態が、説明するイノベーションのうちの1以上を使用する。本明細書で説明するイノベーションのいくつかは、背景技術において記した問題のうちの1以上に対処する。一般的に、所与の技術/ツールが、そのような問題の全てを解決するわけではない。
【0011】
I.例示的なコンピューティング・システム
図1は、説明するイノベーションのいくつかを実装することができる適切なコンピューティング・システム(100)の一般化された例を示している。コンピューティング・システム(100)は、使用又は機能の範囲に関して限定を示唆するよう意図するものではない。というのは、このイノベーションは、多様な汎用コンピューティング・システム又は専用コンピューティング・システムにおいて実施することができるからである。
【0012】
図1を参照すると、コンピューティング・システム(100)は、1以上の処理装置(110、115)及びメモリ(120、125)を含む。
図1において、この最も基本的な構成(130)は破線内に含まれる。処理装置(110、115)はコンピュータ実行可能命令を実行する。処理装置は、汎用中央処理装置(CPU)、特定用途向け集積回路(ASIC)におけるプロセッサ、又は任意の他のタイプのプロセッサとすることができる。マルチ処理システムにおいて、複数の処理装置が、処理能力を増大させるために、コンピュータ実行可能命令を実行する。例えば、
図1は、中央処理装置(110)に加えて、グラフィックス処理装置又は共処理装置(115)も示している。有体のメモリ(120、125)は、1以上の処理装置によりアクセス可能な、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)であってもよいし、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュ・メモリ等)であってもよいし、それら2つの何らかの組合せであってもよい。メモリ(120、125)は、1以上の処理装置による実行に適したコンピュータ実行可能命令の形態で、ピクチャ・ソース・タイプ、信頼性レベル、及び関連ピクチャがデータ・タイプの混合を含むかどうか(セクションV参照)を示すデータを有するSEIメッセージを伴うピクチャを符号化又は復号化するための1以上のイノベーションを実装するソフトウェア(180)を記憶する。
【0013】
コンピューティング・システムは追加の特徴を有することができる。例えば、コンピューティング・システム(100)は、ストレージ(140)、1以上の入力デバイス(150)、1以上の出力デバイス(160)、及び1以上の通信コネクション(170)を含む。バス、コントローラ、又はネットワーク等の相互接続機構(図示せず)が、コンピューティング・システム(100)のコンポーネントを相互接続する。通常、オペレーティング・システム・ソフトウェア(図示せず)が、コンピューティング・システム(100)において実行される他のソフトウェアのための動作環境を提供し、コンピューティング・システム(100)のコンポーネントの動作を調整する。
【0014】
有体のストレージ(140)は、取り外し可能であっても取り外し不可能であってもよく、磁気ディスク、磁気テープ若しくは磁気カセット、CD-ROM、DVD、又は、情報を非一時的に記憶するために使用することができ、コンピューティング・システム(100)内でアクセスされ得る任意の他の媒体を含む。ストレージ(140)は、ピクチャ・ソース・タイプ、信頼性レベル、及び関連ピクチャがデータ・タイプの混合を含むかどうか(セクションV参照)を示すデータを有するSEIメッセージを伴うピクチャを符号化又は復号化するための1以上のイノベーションを実装するソフトウェア(180)の命令を記憶する。
【0015】
1以上の入力デバイス(150)は、キーボード、マウス、ペン、若しくはトラックボール等のタッチ入力デバイス、音声入力デバイス、スキャニング・デバイス、又はコンピューティング・システム(100)に入力を提供する別のデバイスとすることができる。ビデオ符号化に関して、1以上の入力デバイス(150)は、カメラ、ビデオ・カード、TVチューナ・カード、若しくはアナログ形態あるいはデジタル形態でビデオ入力を受信する同様のデバイス、又はビデオ・サンプルをコンピューティング・システム(100)に読み込むCD-ROMあるいはCD-RWとすることができる。1以上の出力デバイス(160)は、ディスプレイ、プリンタ、スピーカ、CDライタ、又はコンピューティング・システム(100)からの出力を提供する別のデバイスとすることができる。
【0016】
1以上の通信コネクション(170)は、通信媒体を介した別のコンピューティング・エンティティへの通信を可能にする。通信媒体は、変調されたデータ信号により、コンピュータ実行可能命令、オーディオ入力、ビデオ入力、オーディオ出力、ビデオ出力、又は他のデータ等の情報を伝達する。変調されたデータ信号とは、信号内の情報を符号化するように設定又は変更された特性の1以上を有する信号である。例えば、通信媒体は、電気信号、光信号、RF、赤外線、又は他のキャリアを使用することができるが、これらに限定されるものではない。
【0017】
イノベーションは、コンピュータ読み取り可能媒体の一般的なコンテキストにおいて説明することができる。コンピュータ読み取り可能媒体は、コンピューティング環境内でアクセスされ得る任意の利用可能な有体の媒体である。例えば、有体のコンピュータ読み取り可能媒体は、メモリ(120、125)、ストレージ(140)、及びそれらの組合せを含むが、これらに限定されるものではない。しかしながら、有体のコンピュータ読み取り可能媒体は、一時的な伝搬信号を含まない。
【0018】
イノベーションは、コンピュータ実行可能命令の一般的なコンテキストにおいて説明することができる。コンピュータ実行可能命令は、例えば、プログラム・モジュールに含まれ、コンピューティング・システムにおいて、ターゲット実プロセッサ又は仮想プロセッサ上で実行される。一般に、プログラム・モジュールは、特定のタスクを実行する、あるいは特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造等を含む。プログラム・モジュールの機能は、様々な実施形態において、必要に応じて、組み合わされてもよいし、プログラム・モジュール間で分割されてもよい。プログラム・モジュールのコンピュータ実行可能命令は、ローカル・コンピューティング・システム又は分散コンピューティング・システム内で実行され得る。
【0019】
「システム」及び「デバイス」という語は、本明細書において置き換え可能に使用される。文脈が別途明確に示さない限り、これらの語は、コンピューティング・システム又はコンピューティング・デバイスのタイプに関して、いかなる限定も示すものではない。一般に、コンピューティング・システム又はコンピューティング・デバイスは、ローカルであってもよいし、分散されてもよく、専用ハードウェア及び/又は汎用ハードウェアと、本明細書で説明する機能を実装するソフトウェアとの任意の組合せを含み得る。
【0020】
開示する方法は、開示する方法のいずれかを実行するよう構成された専用コンピューティング・ハードウェアを用いて実装することもできる。例えば、開示する方法は、開示する方法のいずれかを実行するよう特別に設計又は構成された集積回路(例えば、特定用途向け集積回路(「ASIC」)(ASICデジタル信号処理装置(「DSP」)、グラフィックス処理装置(「GPU」)、又はフィールド・プログラマブル・ゲート・アレイ(「FPGA」)等のプログラマブル・ロジック・デバイス(「PLD」)等)により実装することができる。
【0021】
プレゼンテーションの目的上、詳細な説明では、コンピューティング・システムにおけるコンピュータ・オペレーションを説明するための「決定する」及び「使用する」のような語が使用される。これらの語は、コンピュータにより実行されるオペレーションの高レベル抽象表現であって、人間により実行される動作と混同すべきではない。これらの語に対応する実際のコンピュータ・オペレーションは、実装に応じて変化する。
【0022】
II.例示的なネットワーク環境
図2a及び
図2bは、ビデオ・エンコーダ(220)及びビデオ・デコーダ(270)を含む例示的なネットワーク環境(201、202)を示している。エンコーダ(220)及びデコーダ(270)は、適切な通信プロトコルを用いて、ネットワーク(250)を介して接続される。ネットワーク(250)は、インターネット又は別のコンピュータ・ネットワークを含み得る。
【0023】
図2aに示されるネットワーク環境(201)において、各リアルタイム通信(「RTC」)ツール(210)は、双方向通信のためのエンコーダ(220)及びデコーダ(270)の両方を含む。所与のエンコーダ(220)は、SMPTE 421M規格、ISO-IEC 14496-10規格(H.264又はAVCとしても知られている)、HEVC規格、別の規格、又はプロプライエタリ・フォーマットに準拠する出力を生成することができ、対応するデコーダ(270)は、エンコーダ(220)から符号化データを受信することができる。双方向通信は、ビデオ会議、ビデオ通話、又は他の2パーティの通信シナリオの一部であり得る。
図2aのネットワーク環境(201)は、2つのリアルタイム通信ツール(210)を含むが、ネットワーク環境(201)は、マルチパーティ通信に参加する3以上のリアルタイム通信ツール(210)を含んでもよい。
【0024】
リアルタイム通信ツール(210)は、エンコーダ(220)による符号化を管理する。
図3は、リアルタイム通信ツール(210)に含まれ得る例示的なエンコーダ・システム(300)を示している。代替的に、リアルタイム通信ツール(210)は、別のエンコーダ・システムを使用してもよい。リアルタイム通信ツール(210)はまた、デコーダ(270)による復号化も管理する。
図4は、リアルタイム通信ツール(210)に含まれ得る例示的なデコーダ・システム(400)を示している。代替的に、リアルタイム通信ツール(210)は、別のデコーダ・システムを使用してもよい。
【0025】
図2bに示されるネットワーク環境(202)において、符号化ツール(212)は、デコーダ(270)を含む複数の再生ツール(214)に伝送するためのビデオを符号化するエンコーダ(220)を含む。一方向通信は、ビデオが符号化されて1つのロケーションから1以上の他のロケーションに送信される、ビデオ監視システム、ウェブ・カメラ・モニタリング・システム、リモート・デスクトップ会議プレゼンテーション、又は他のシナリオのために提供され得る。
図2bのネットワーク環境(202)は、2つの再生ツール(214)を含むが、ネットワーク環境(202)は、それより多い又はそれより少ない再生ツール(214)を含んでもよい。一般に、再生ツール(214)は、再生ツール(214)が受信するビデオのストリームを判定するために、符号化ツール(212)と通信する。再生ツール(214)は、ストリームを受信し、適切な期間の間受信した符号化データをバッファし、復号化及び再生を開始する。
【0026】
図3は、符号化ツール(212)に含まれ得る例示的なエンコーダ・システム(300)を示している。代替的に、符号化ツール(212)は、別のエンコーダ・システムを使用してもよい。符号化ツール(212)はまた、1以上の再生ツール(214)との接続を管理するためのサーバ・サイド・コントローラ・ロジックも含み得る。
図4は、再生ツール(214)に含まれ得る例示的なデコーダ・システム(400)を示している。代替的に、再生ツール(214)は、別のデコーダ・システムを使用してもよい。再生ツール(214)はまた、符号化ツール(212)との接続を管理するためのクライアント・サイド・コントローラ・ロジックも含み得る。
【0027】
III.例示的なエンコーダ・システム
図3は、いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダ・システム(300)のブロック図である。エンコーダ・システム(300)は、リアルタイム通信のための低レイテンシ符号化モード、トランスコーディング・モード、及びファイル又はストリームからのメディア再生のための通常の符号化モード等の複数の符号化モードのうちいずれかで動作することができる汎用符号化ツールであってもよいし、そのような1つの符号化モードのために適合された専用符号化ツールであってもよい。エンコーダ・システム(300)は、オペレーティング・システム・モジュールとして、アプリケーション・ライブラリの一部として、及び/又はスタンドアロン・アプリケーションとして、実装することができる。概して、エンコーダ・システム(300)は、ビデオ・ソース(310)から一連のソース・ビデオ・フレーム(311)を受信し、チャネル(390)への出力として符号化データを生成する。チャネルに出力される符号化データは、セクションVで説明するシンタックス要素及び/又はフラグを含む付加拡張情報(「SEI」)メッセージを含み得る。
【0028】
ビデオ・ソース(310)は、カメラ、チューナ・カード、記憶媒体、又は他のデジタル・ビデオ・ソースとすることができる。ビデオ・ソース(310)は、例えば、毎秒30フレームといったフレーム・レートで一連のビデオ・フレームを生成する。本明細書で使用されるとき、「フレーム」という語は、一般に、ソースの符号化された又は再構築されたイメージ・データを指す。プログレッシブ・ビデオでは、フレームはプログレッシブ・ビデオ・フレームである。インタレース・ビデオでは、例示的な実施形態において、インタレース・ビデオ・フレームは、符号化の前にデインタレースされる(de-interlaced)。代替的に、インタレース・ビデオでは、2つの相補的インタレース・ビデオ・フィールドが、インタレース・ビデオ・フレーム又は別々のフィールドとして符号化されてもよい。プログレッシブ・ビデオ・フレームを示すかは別にして、「フレーム」という語は、単一の対でないビデオ・フィールド、相補的な一対のビデオ・フィールド、所与の時間におけるビデオ・オブジェクトを表すビデオ・オブジェクト・プレーン、又はより大きなイメージにおける関心領域を示し得る。ビデオ・オブジェクト・プレーン又は領域は、シーンの複数のオブジェクト又は領域を含むより大きなイメージの一部であり得る。
【0029】
到着ソース・フレーム(311)は、複数のフレーム・バッファ記憶領域(321、322、...、32n)を含むソース・フレーム一時メモリ記憶領域(320)に記憶される。フレーム・バッファ(321、322等)は、ソース・フレーム記憶領域(320)内で1つのソース・フレームを保持する。ソース・フレーム(311)のうちの1以上がフレーム・バッファ(321、322等)に記憶された後、フレーム・セレクタ(330)が、ソース・フレーム記憶領域(320)から個々のソース・フレームを定期的に選択する。エンコーダ(340)への入力のためにフレーム・セレクタ(330)によりフレームが選択される順番は、ビデオ・ソース(310)によりフレームが生成される順番とは異なり得る。例えば、一時的に後方予測を容易にするために、あるフレームが前になる場合がある。エンコーダ(340)の前に、エンコーダ・システム(300)は、符号化の前に選択されたフレーム(331)の前処理(例えば、フィルタリング)を実行するプリ・プロセッサ(図示せず)を含み得る。
【0030】
エンコーダ(340)は、符号化フレーム(341)を生成するために、選択されたフレーム(331)を符号化するとともに、メモリ管理制御操作(MMCO)信号(342)又は参照ピクチャ・セット(RPS)情報を生成する。現フレームが、符号化された最初のフレームではない場合、符号化プロセスを実行するとき、エンコーダ(340)は、復号化フレーム一時メモリ記憶領域(360)に記憶された1以上の以前に符号化/復号化されたフレーム(369)を使用することができる。そのような記憶された復号化フレーム(369)は、現ソース・フレーム(331)のコンテンツのフレーム間予測のための参照フレームとして使用される。一般に、エンコーダ(340)は、動き推定及び動き補償、周波数変換、量子化、並びにエントロピ符号化等の符号化タスクを実行する複数の符号化モジュールを含む。エンコーダ(340)により実行される正確なオペレーションは、圧縮フォーマットに応じて変わり得る。出力される符号化データのフォーマットは、Windows(登録商標) Media Videoフォーマット、VC-1フォーマット、MPEG-xフォーマット(例えば、MPEG-1、MPEG-2、又はMPEG-4)、H.26xフォーマット(例えば、H.261、H.262、H.263、H.264)、HEVCフォーマット、又は他のフォーマットであり得る。
【0031】
例えば、エンコーダ(340)において、インター符号化された予測フレームが、参照フレームからの予測の観点で表される。動き推定部が、1以上の参照フレーム(369)に関して、ソース・フレーム(341)のサンプルのマクロブロック、ブロック又は他のセットの動きを推定する。複数の参照フレームが使用される場合、複数の参照フレームは、異なる時間的方向からのものであってもよいし、同じ時間的方向からのものであってもよい。動き推定部は、エントロピ符号化される動きベクトル情報等の動き情報を出力する。動き補償部は、動き補償予測値を決定するために、動きベクトルを参照フレームに適用する。エンコーダは、ブロックの動き補償予測値と対応するオリジナルの値との間の差(あれば)を決定する。このような予測残差値が、周波数変換、量子化、及びエントロピ符号化を用いて、さらに符号化される。同様に、イントラ予測では、エンコーダ(340)は、ブロックに関するイントラ予測値を決定し、予測残差値を決定し、予測残差値を符号化することができる。具体的には、エンコーダ(340)のエントロピ符号化部が、量子化された変換係数値に加えて、所定のサイド情報(例えば、動きベクトル情報、量子化パラメータ値、モード決定、パラメータ選択)も圧縮する。一般的なエントロピ符号化技術は、指数ゴロム符号化、算術符号化、差分符号化、ハフマン符号化、ラン・レングス符号化、V2V(variable-length-to-variable-length)符号化、V2F(variable-length-to-fixed-length)符号化、LZ符号化、辞書符号化、PIPE(probability interval partitioning entropy coding)符号化、及びこれらの組合せを含む。エントロピ符号化部は、様々な種類の情報のための様々な符号化技術を使用することができ、特定の符号化技術における複数の符号テーブルの中から選択することができる。
【0032】
符号化フレーム(341)及びMMCO/RPS情報(342)が、復号化プロセス・エミュレータ(350)により処理される。復号化プロセス・エミュレータ(350)は、例えば、動き推定及び動き補償においてエンコーダ(340)により使用される参照フレームを再構築する復号化タスク等のデコーダの機能の一部を実装している。復号化プロセス・エミュレータ(350)は、所与の符号化フレーム(341)が、符号化される後続フレームのフレーム間予測において参照フレームとして使用するために再構築されて記憶される必要があるかどうかを判定するために、MMCO/RPS情報(342)を使用する。MMCO/RPS情報(342)により、符号化フレーム(341)が記憶される必要があると示される場合、復号化プロセス・エミュレータ(350)は、符号化フレーム(341)を受信して対応する復号化フレーム(351)を生成するデコーダにより行われるであろう復号化プロセスを模擬する。そうする場合、エンコーダ(340)が、復号化フレーム記憶領域(360)に記憶された1以上の復号化フレーム(369)を使用したとき、復号化プロセス・エミュレータ(350)は、復号化プロセスの一部として、記憶領域(360)から1以上の復号化フレーム(369)を使用する。
【0033】
復号化フレーム一時メモリ記憶領域(360)は、複数のフレーム・バッファ記憶領域(361、362、...、36n)を含む。復号化プロセス・エミュレータ(350)は、参照フレームとして使用するためにエンコーダ(340)によりもはや必要とされなくなったフレームを有する任意のフレーム・バッファ(361、362等)を識別するために、MMCO/RPS情報(342)を使用して、記憶領域(360)のコンテンツを管理する。復号化プロセスを模擬した後、復号化プロセス・エミュレータ(350)は、このように識別されるフレーム・バッファ(361、362等)に、新たに復号化されたフレーム(351)を記憶する。
【0034】
符号化フレーム(341)及びMMCO/RPS情報(342)はまた、一時符号化データ領域(370)にバッファされる。符号化データ領域(370)に収集される符号化データは、(例えば、1以上の付加拡張情報(「SEI」)メッセージ又はビデオ・ユーザビリティ情報(「VUI」)メッセージにおける1以上のパラメータとして、)符号化ビデオ・データに関連するメディア・メタデータを含み得る。SEIメッセージは、セクションVで説明するシンタックス要素及び/又はフラグを含み得る。
【0035】
一時符号化データ領域(370)からの収集されたデータ(371)は、チャネル・エンコーダ(380)により処理される。チャネル・エンコーダ(380)は、(例えば、ISO/IEC 14496-12等のメディア・コンテナ・フォーマットに従って)メディア・ストリームとして伝送するために、収集されたデータをパケット化することができる。そのような場合、チャネル・エンコーダ(380)は、メディア伝送ストリームのシンタックスの一部として、シンタックス要素を付加することができる。あるいは、チャネル・エンコーダ(380)は、(例えば、ISO/IEC 14496-12等のメディア・コンテナ・フォーマットに従って)ファイルとして記憶するために、収集されたデータを編成することができる。そのような場合、チャネル・エンコーダ(380)は、メディア記憶ファイルのシンタックスの一部として、シンタックス要素を付加することができる。あるいは、より一般的に、チャネル・エンコーダ(380)は、1以上のメディア・システム多重化プロトコル又は伝送プロトコルを実装することができる。そのような場合、チャネル・エンコーダ(380)は、1以上のプロトコルのシンタックスの一部として、シンタックス要素を付加することができる。チャネル・エンコーダ(380)は、チャネル(390)への出力を提供する。チャネル(390)は、ストレージ、通信コネクション、又は出力のための別のチャネルを表す。
【0036】
IV.例示的なデコーダ・システム
図4は、いくつかの説明する実施形態を協働して実装することができる例示的なデコーダ・システム(400)のブロック図である。デコーダ・システム(400)は、リアルタイム通信のための低レイテンシ復号化モード及びファイル又はストリームからのメディア再生のための通常の復号化モード等の複数の復号化モードのうちいずれかで動作することができる汎用復号化ツールであってもよいし、そのような1つの符号化モードのために適合された専用復号化ツールであってもよい。デコーダ・システム(400)は、オペレーティング・システム・モジュールとして、アプリケーション・ライブラリの一部として、又はスタンドアロン・アプリケーションとして、実装することができる。概して、デコーダ・システム(400)は、チャネル(410)から符号化データを受信し、出力先(490)への出力として再構築フレームを生成する。符号化データは、セクションVで説明するシンタックス要素及び/又はフラグを含む付加拡張情報(「SEI」)メッセージを含み得る。
【0037】
デコーダ・システム(400)は、ストレージ、通信コネクション、又は入力としての符号化データのための別のチャネルを表し得るチャネル(410)を含む。チャネル(410)は、チャネル符号化された符号化データを生成する。チャネル・デコーダ(420)は、符号化データを処理することができる。例えば、チャネル・デコーダ(420)は、(例えば、ISO/IEC 14496-12等のメディア・コンテナ・フォーマットに従って)メディア・ストリームとして伝送するために収集されたデータを脱パケット化する。そのような場合、チャネル・デコーダ(420)は、メディア伝送ストリームのシンタックスの一部として付加されたシンタックス要素を解析することができる。あるいは、チャネル・デコーダ(420)は、(例えば、ISO/IEC 14496-12等のメディア・コンテナ・フォーマットに従って)ファイルとして記憶するために収集された符号化ビデオ・データを分離する。そのような場合、チャネル・デコーダ(420)は、メディア記憶ファイルのシンタックスの一部として付加されたシンタックス要素を解析することができる。あるいは、より一般的に、チャネル・デコーダ(420)は、1以上のメディア・システム逆多重化プロトコル又は伝送プロトコルを実装することができる。そのような場合、チャネル・デコーダ(420)は、1以上のプロトコルのシンタックスの一部として付加されたシンタックス要素を解析することができる。
【0038】
十分な量のデータが受信されるまで、チャネル・デコーダ(420)から出力される符号化データ(421)は、一時符号化データ領域(430)に記憶される。符号化データ(421)は、符号化フレーム(431)及びMMCO/RPS情報(432)を含む。符号化データ領域(430)内の符号化データ(421)は、(例えば、1以上のSEIメッセージ又はVUIメッセージにおける1以上のパラメータとして、)符号化ビデオ・データに関連するメディア・メタデータを含み得る。SEIメッセージは、セクションVで説明するシンタックス要素及び/又はフラグを含み得る。一般に、そのような符号化データ(421)がデコーダ(450)により使用されるまで、符号化データ領域(430)は、符号化データ(421)を一時的に記憶する。その時点で、符号化フレーム(431)及びMMCO/RPS情報(432)の符号化データが、符号化データ領域(430)からデコーダ(450)に伝送される。復号化が進むにつれ、新たな符号化データが、符号化データ領域(430)に追加され、符号化データ領域(430)に残っている最も古い符号化データが、デコーダ(450)に伝送される。
【0039】
デコーダ(450)は、対応する復号化フレーム(451)を生成するために、符号化フレーム(431)を定期的に復号化する。必要に応じて、復号化プロセスを実行するとき、デコーダ(450)は、フレーム間予測のための参照フレームとして、1以上の以前に復号化されたフレーム(469)を使用することができる。デコーダ(450)は、復号化フレーム一時メモリ記憶領域(460)から、そのような以前に復号化されたフレーム(469)を読み出す。一般に、デコーダ(450)は、エントロピ復号化、逆量子化、逆周波数変換、及び動き補償等の復号化タスクを実行する複数の復号化モジュールを含む。デコーダ(450)により実行される正確なオペレーションは、圧縮フォーマットに応じて変わり得る。
【0040】
例えば、デコーダ(450)は、圧縮フレーム又は一連のフレームの符号化データを受信し、復号化フレーム(451)を含む出力を生成する。デコーダ(450)において、バッファは、圧縮フレームの符号化データを受け入れ、受け入れた符号化データをエントロピ復号化部に利用可能にする。エントロピ復号化部は、通常はエンコーダにおいて実行されたエントロピ符号化の逆を適用することにより、エントロピ符号化された量子化データに加えて、エントロピ符号化されたサイド情報もエントロピ復号化する。セクションVは、デコーダ450により復号化され得る、セクションVで説明するシンタックス要素及び/又はフラグを含むSEIメッセージを有する符号化データの例を説明する。動き補償部は、再構築されているフレームのサブ・ブロック、ブロック、及び/又はマクロブロック(一般に、ブロック)の動き補償予測を形成するために、動き情報を1以上の参照フレームに適用する。イントラ予測モジュールは、隣接する以前に再構築されたサンプル値から、現ブロックのサンプル値を空間的に予測することができる。デコーダ(450)はまた、予測残差を再構築する。逆量子化部は、エントロピ復号化されたデータを逆量子化する。逆周波数変換部は、量子化された周波数領域データを空間領域情報に変換する。予測フレームに関して、デコーダ(450)は、再構築フレームを形成するために、再構築された予測残差を動き補償予測と結合する。デコーダ(450)は、同様に、予測残差を、イントラ予測からの空間予測と結合することができる。ビデオ・デコーダ(450)における動き補償ループは、適応デブロッキング・フィルタを含み、適応デブロッキング・フィルタは、復号化フレーム(451)内のブロック境界ロー及び/又はカラムにわたる不連続さを平滑化する。
【0041】
復号化フレーム一時メモリ記憶領域(460)は、複数のフレーム・バッファ記憶領域(461、462、...、46n)を含む。復号化フレーム記憶領域(460)はDPBの一例である。デコーダ(450)は、復号化フレーム(451)を記憶することができるフレーム・バッファ(461、462等)を識別するために、MMCO/RPS情報(432)を使用する。デコーダ(450)は、そのフレーム・バッファに復号化フレーム(451)を記憶する。
【0042】
出力シーケンサ(480)は、出力順で生成される次のフレームが復号化フレーム記憶領域(460)内で利用可能になるときを識別するために、MMCO/RPS情報(432)を使用する。出力順で生成される次のフレーム(481)が、復号化フレーム記憶領域(460)内で利用可能になったとき、そのフレームが、出力シーケンサ(480)により読み出され、出力先(490)(例えば、ディスプレイ)に出力される。一般に、復号化フレーム記憶領域(460)から出力シーケンサ(480)によりフレームが出力される順番は、デコーダ(450)によりフレームが復号化される順番とは異なり得る。
【0043】
V.ビデオ・フレームのタイプ・インジケーション情報及び混合特性の信頼性レベルを示すための例示的な実施形態
このセクションは、ピクチャ・ソース・データのエンコーダ信頼性レベルを示すための情報(例えば、シンタックス要素、フラグ、又はそれらの拡張)を有するビットストリームを符号化及び/又は復号化するためのいくつかの変形例を説明する。詳細には、このセクションは、SEIメッセージが、メッセージ内のピクチャ・ソース・データの信頼性の程度のインジケーション(例えば、SEIメッセージ内のprogressive_source_flag、mixed_characteristics_flag、及び/又はduplicate_flag(又は、任意の均等のフラグ又はシンタックス要素)の正確性における信頼性レベル)を含む例を提供する。いくつかのエンコーダは、ピクチャ・ソース・データの正確な値を確実には決定することができない場合があるので、そのような追加情報は有用である。ピクチャ・ソース・データにおける信頼性の程度を明示するインジケータを追加することは、デコーダが、受信したピクチャ・データをどのように最良に使用及び提示するかを決定するのに役立ち得る。さらに、エンコーダはまた、混合されたプログレッシブ/インタレース特性を有するビデオ・コンテンツに遭遇する場合がある。所定の実施例において、コンテンツが完全なインタレース・ソース特性又は完全なプログレッシブ・ソース特性を示すのではなく、コンテンツが混合特性を有することを示す追加のシンタックス要素又はフラグが含まれ得る。上述したエンコーダ又はデコーダのいずれも、開示する符号化技術及び復号化技術を使用するよう適合され得る。
【0044】
HEVC規格のドラフト8(2012年7月にストックホルムで開催された第10回会合の”High efficiency video coding (HEVC) text specification draft 8”, JCTVC-I1003_d8)に従うと、「フィールド・インジケーション」SEIメッセージには、ピクチャ・ソースの特性を記述するために使用される2つのシンタックス要素が存在する:それらは、progressive_source_flag及びduplicate_flagである。progressive_source_flag値が「1」であることは、関連ピクチャのスキャン・タイプがプログレッシブとして解釈されるべきであることを示し、progressive_source_flag値が「0」であることは、関連ピクチャのスキャン・タイプがインタレースとして解釈されるべきであることを示す。フィールド・インジケーションSEIメッセージが存在しない場合、progressive_source_flagの値は、「1」に等しいと推定される。他の実施例では、これらの値は逆になる。
【0045】
さらに、duplicate_flag値が「1」であることは、現ピクチャが、出力順において以前のピクチャの複製であることを示し、duplicate_flag値が「0」であることは、現ピクチャが複製ピクチャでないことを示す。他の実施例では、これらの値は逆になる。
【0046】
しかしながら、いくつかのアプリケーション・シナリオにおいて、HEVC符号化システムは、progressive_source_flagシンタックス要素及び/又はduplicate_flagシンタックス要素の正しい値を決定するための十分な情報を有さない場合がある。例えば、符号化システムは、入力ビデオ・データとして単にフィールド又はフレームを受信するだけの場合があり、エンコーダにソース・コンテンツ特性の深い解析を実行させることができない、計算能力、メモリ容量、又は遅延特性における限界を有する場合がある。さらに、いくつかの符号化システムは、未圧縮ピクチャからの情報に対して制限的なアクセスしか有さない場合がある。したがって、符号化システムがソースの真の特性を決定するのは難しいことであり得る。また、ソース・コンテンツが混合特性を示し得ることも可能である。例えば、ソース・コンテンツは、インタレース・コンテンツとプログレッシブ・コンテンツとの混合であり得る。プログレッシブ・スキャン・ビデオに適用されるフィールドベースのテキスト・オーバレイ又はグラフィックス・オーバレイは、混合特性を有するコンテンツの一例である。
【0047】
これらの問題に対処するために、開示する技術の実施形態は、コンテンツがインタレースであるか、あるいはプログレッシブであるかのインジケーションにおいてエンコーダが有する信頼性の程度を示すことができるエンコードを含む。デコーダ又はディスプレイ・サブシステムは、示された信頼性の程度を使用して、デインタレース処理等の後続の処理を制御することができる、あるいは、エンコーダにより示される特性に依存するのではなく、自身でソース・ビデオ特性を検出すべきかどうかを制御することができる。さらに、いくつかの実施例において、エンコーダは、符号化コンテンツが混合特性を有するかどうかを示すことができる。混合されたプログレッシブ-インタレース・コンテンツのこのインジケーションをデコーダが使用して、符号化ビットストリームを適切に処理することができる。
【0048】
所定の実施形態において、SEIメッセージ(例えば、ピクチャに付随するSEIメッセージ)は、ソース・インジケーションの信頼性レベルを示すためのフラグ又はシンタックス要素(例えば、コンテンツがインタレース・データであるか、あるいはプログレッシブ・データであるかのエンコーダのソース・インジケーション及び/又はエンコーダの複製ピクチャ・インジケーションの正確性を示す値)を含む。
【0049】
HEVC規格のドラフト8のコンテキストにおいて、例えば、フィールド・インジケーションSEIメッセージは、ソース・ビデオ特性を示すフィールド・インジケーション情報のシンタックス要素の信頼性レベルを示すためのシンタックス要素を含み得る。具体的には、progressive_source_flag及び/又はduplicate_flagの信頼性レベルである。さらに、所定の実施例において、フィールド・インジケーションSEIメッセージはまた、符号化コンテンツが混合特性(例えば、混合されたプログレッシブ及びインタレース・コンテンツ)を含むか否かを示すためのフラグを含む。
【0050】
1つの特定の実施例において、field_indicationSEIメッセージのシンタックスは、以下のとおりである。
【表1】
【0051】
上記で示した例示的なシンタックスにおいて、「mixed_characteristics_flag」シンタックス要素及び「confidence_level」シンタックス要素に注目すべきである。
【0052】
1つの例示的な実施例において、mixed_characteristics_flagが「1」に等しいことは、ビデオ・コンテンツが混合されたプログレッシブ及びインタレース・スキャン特性を有することを示す。そのような混合特性ビデオは、例えば、フィールドベースのグラフィックスが他のプログレッシブ・スキャン・ビデオ・コンテンツをオーバレイするときに生成され得る。mixed_characteristics_flagが「0」に等しいことは、ビデオ・コンテンツが混合特性を有さないことを示す。他の実施例では、mixed_characteristics_flagの値は、上述した値とは逆になる。
【0053】
confidence_levelシンタックス要素は、1ビットのシンタックス要素であってもよいし、2ビットのシンタックス要素であってもよいし、3ビット以上のシンタックス要素であってもよい。所定の実施形態において、confidence_levelシンタックス要素は、2ビットのシンタックス要素である。1つの特定の実施例において、例えば、confidence_levelシンタックス要素が「3」に等しいことは、progressive_source_flag、source_scan_type、mixed_characteristics_flag、又はduplicate_flagのうちの1以上が正しく、デコーダは確信をもってこの情報に依存してよいという高い程度の確実性を示す。confidence_levelシンタックス要素が「2」に等しいことは、これらのシンタックス要素のうちの1以上が正しく、コンテンツ特性のさらなる解析を行うためにデコーダにおいて十分な能力が利用可能でない場合、この情報を有効なものとして受け取ることが後続のプロセス(例えば、後続のデコーダ・プロセス)のために推奨されるという合理的な程度の信頼性を示す。confidence_levelシンタックス要素が「1」に等しいことは、実行可能であればコンテンツ特性のさらなる解析が行われるべきであることを示す。confidence_levelシンタックス要素が「0」に等しいことは、後続のプロセスがこれらのシンタックス要素の正確性に依存すべきではないことを示す。
【0054】
これら4つの例示的なレベルは例に過ぎず、任意の他の数のレベルが使用されてもよいことを理解すべきである。例えば、所定の実施形態において、2ビットの信頼性レベル・シンタックス要素を使用して、3つのレベルの信頼性にフラグを付けることができる。それら3つのレベルは、デコーダがソース・インジケーション情報を使用する(使用すべき)高確実性のレベル、デコーダが復号化中に正確にソース情報を検出できない場合、デコーダがこの情報を有効なものとして受け取るべき中確実性のレベル、及びデコーダがソース・インジケーション情報の検出を自身で実行すべき低確実性のレベル又は確実性がないレベルである。
【0055】
さらに、所定の実施形態において、複数のconfidence_levelシンタックス要素が使用される。例えば、progressive_source_flag、mixed_characteristics_flag、又はduplicate_flagに対して別々のconfidence_levelシンタックス要素が存在し得る。
【0056】
上述したように、開示する技術の実施形態は、付加拡張情報(SEI)メッセージに含まれるデータの正確性の信頼性レベルを示す情報をSEIメッセージに追加することを含む。例えば、特定の実施例において、開示する技術は、HEVC規格におけるピクチャ・レベルSEIメッセージに対する拡張を含む。さらに、いくつかの実施形態は、追加的に又は代替的に、ビデオ・コンテンツのソース特性を説明するためのフラグ(例えば、ビデオが混合特性を含むことを示すためのフラグ)を含む。信頼性レベル・シンタックス要素及びソース特性シンタックス要素は、例えば、エンコーダが、ビデオ・コンテンツのオリジン(origin)のスキャン・フォーマットに関して制限された情報、制限された解析リソース、及び/又は未圧縮ピクチャに対する制限されたアクセスしか有さないシナリオにおいて有用であり得る。
【0057】
いくつかの例において、デコーダ・システムは、制限された計算能力しか有さない、未圧縮ピクチャに対する制限されたアクセスしか有さない、あるいはデコーダが復号化ビデオを解析すること又は示された信頼性レベル情報に応答するためにカスタマイズされるように符号化ビデオを処理することを困難にするあるいは不可能にする何らかの他の制限を有する。そのような状況において、デコーダは、自身でコンテンツ特性を導出することができない場合がある。したがって、所定の実施形態において、デコーダ・システムは、符号化ビットストリームにおいて、フィールド・インジケーション又はピクチャ・タイミング情報を、「ありのままに」有効なものとして受け取る。すなわち、所定の実施例において、デコーダは、confidence_levelシンタックス要素を使用せず、信頼性レベルに関わらずSEIメッセージ内の情報に従う。
【0058】
mixed_characteristics_flag及びconfidence_levelインジケーション・シンタックス要素は、開示する技術の所定の実施形態において、互いに別々に実装され得ることを理解すべきである。mixed_characteristics_flagなしにconfidence_levelインジケーション・シンタックス要素が使用される場合、confidence_levelインジケーションのセマンティックスは、通常、そのセマンティックスにおいて、mixed_characteristics_flagのいかなる言及も有さないであろう。
【0059】
より最近では、HEVC規格のドラフト10(2013年1月にスイスのジュネーブで開催された第12回会合の”High efficiency video coding (HEVC) text specification draft 10”, JCTVC-L1003_v34)に従うと、ソース・タイプ情報は、異なるフラグを用いて伝達される。詳細には、ドラフト10に従うと、ピクチャ・ソース情報は、「ピクチャ・タイミング」SEIメッセージに含まれる。詳細には、ピクチャ・タイミングSEIメッセージは、source_scan_typeシンタックス要素及びduplicate_flagシンタックス要素を含むピクチャ・レベルSEIメッセージである。さらに、ドラフト10において、source_scan_type値が「1」に等しいことは、関連ピクチャのソース・スキャン・タイプがプログレッシブとして解釈されるべきであることを示し、source_scan_type値が「0」に等しいことは、関連ピクチャのソース・スキャン・タイプがインタレースとして解釈されるべきであることを示す。さらに、source_scan_type値が「2」に等しいことは、関連ピクチャのソース・スキャン・タイプが未知である、あるいは指定されていないことを示すのに対し、「3」に等しいsource_scan_typeは、将来の使用のために予約されており、値「2」に等しいものとしてデコーダにより解釈される。
【0060】
特定の実施例において、source_scan_typeの値は、プロファイル、ティア、及び/又はレベル情報(例えば、プロファイル、ティア、又はレベルSEIメッセージ)に存在する2つのシンタックス要素から決定される。それらは、general_progressive_source_flag及びgeneral_interlaced_source_flagである。さらに、source_scan_typeシンタックス要素は、必ずしも存在するわけではなく、そのような場合、general_progressive_source_flag及びgeneral_interlaced_source_flagを使用して、ソース・タイプを決定することができる。
【0061】
1つの例示的な実施例において、general_progressive_source_flag及びgeneral_interlaced_source_flagは次のように解釈される。general_progressive_source_flagが「1」に等しく、general_interlaced_source_flagが「0」に等しい場合、関連する符号化ビデオ・セグメントにおけるピクチャのソース・スキャン・タイプは、プログレッシブとして解釈されるべきである。この場合、1つの特定の実施例において、source_scan_typeの値は、存在するときには「1」に等しく、存在しないときには「1」に等しいと推定されるべきである。general_progressive_source_flagが「0」に等しく、general_interlaced_source_flagが「1」に等しい場合、関連する符号化ビデオ・セグメントにおけるピクチャのソース・スキャン・タイプは、インタレースとして解釈されるべきである。この場合、1つの特定の実施例において、source_scan_typeの値は、存在するときには「0」に等しく、存在しないときには「0」に等しいと推定されるべきである。general_progressive_source_flagが「0」に等しく、general_interlaced_source_flagが「0」に等しい場合、関連する符号化ビデオ・セグメントにおけるピクチャのソース・スキャン・タイプは、未知のものとして又は指定されていないものとして解釈されるべきである。この場合、1つの特定の実施例において、source_scan_typeの値は、存在するときには「2」に等しく、存在しないときには「2」に等しいと推定されるべきである。general_progressive_source_flagが「1」に等しく、general_interlaced_source_flagが「1」に等しい場合、関連する符号化ビデオ・セグメントにおける各ピクチャのソース・スキャン・タイプは、シンタックス要素(例えば、ピクチャ・タイミングSEIメッセージ内のsource_scan_type)を用いて、ピクチャ・レベルで独立して示される。これらの値は、例示の目的に過ぎず、プログレッシブ・ピクチャ、インタレース・ピクチャ、又は未知のスキャン・ソースを有するピクチャをシグナリングするために、異なる値又は値の組合せが使用されてもよいことを理解すべきである。
【0062】
general_progressive_source_flag及びgeneral_interlaced_source_flagは、上述したprogressive_source_flag及びconfidence_levelシンタックス要素と同様に機能する。詳細には、progressive_source_flag及びconfidence_levelシンタックス要素の集合的オペレーションと同様に、general_progressive_source_flag及びgeneral_interlaced_source_flagは組み合わされて、1以上のピクチャがプログレッシブ又はインタレースであるかを識別し、その判定に関連する信頼性レベルを識別するよう機能する。例えば、general_progressive_source_flag及びgeneral_interlaced_source_flagが、「1」及び「0」である(又は、「0」及び「1」である)とき、それらのシンタックス要素は、ピクチャがプログレッシブである(又は、インタレースである)ことを示す。さらに、このインジケーションは、高レベルの信頼性を有する。しかしながら、ピクチャ・タイプにおいて低レベルの信頼性が存在する場合には、general_progressive_source_flag及びgeneral_interlaced_source_flagはそれぞれ、「0」の値を有し、これは、ソース・スキャン・タイプが未知であることを示す。したがって、general_progressive_source_flag及びgeneral_interlaced_source_flagは、わずかに異なるフォーマットを用いるだけで、上記で紹介したconfidence_levelシンタックス要素及びprogressive_source_flagと同じ質又は特徴を有する情報を提供する。
【0063】
HEVC規格のドラフト10はまた、duplicate_flagシンタックス要素を含む。説明する特定の実施例において、duplicate_flag値が「1」であることは、現ピクチャが出力順において以前のピクチャの複製であると示されることを示すのに対し、duplicate_flag値が「0」であることは、現ピクチャが出力順において以前のピクチャの複製であると示されないことを示す。
【0064】
HEVC規格のドラフト10のコンテキストにおいて、ピクチャ・タイミングSEIメッセージは、(上述したように)ピクチャがプログレッシブであるか、インタレースであるか、あるいは未知のものであるかを示すためのsource_scan_typeシンタックス要素を含み得る。ピクチャ・タイミングSEIメッセージはまた、duplicate_flagを含み得る。
【0065】
1つの特定の実施例において、ピクチャ・タイミングSEIメッセージ(pic_timingSEIメッセージとも呼ばれる)のシンタックスは以下の通りである。
【表2】
【0066】
さらに、ドラフトHEVC規格には現在存在しないが、所定の実施例において、ピクチャ・タイミングSEIメッセージはまた、符号化コンテンツが混合特性(例えば、混合されたプログレッシブ及びインタレース・コンテンツ)を含むか否かを示すためのフラグを含み得る。例えば、1つの例示的な実施例において、mixed_characteristics_flagを使用して、ピクチャが混合されたプログレッシブ及びインタレース・スキャン特性を有するかどうかを示すことができる。例えば、mixed_characteristics_flagが「1」に等しいことは、ビデオ・コンテンツが混合されたプログレッシブ及びインタレース・スキャン特性を有することを示す。そのような混合特性ビデオは、例えば、フィールドベースのグラフィックスが他のプログレッシブ・スキャン・ビデオ・コンテンツをオーバレイするときに生成され得る。mixed_characteristics_flagが「0」に等しいことは、ビデオ・コンテンツが混合特性を有さないことを示す。他の実施例では、mixed_characteristics_flagの値は、上述した値とは逆になる。
【0067】
さらに、general_progressive_source_flag、general_interlaced_source_flag、及び/又はsouce_scan_typeシンタックス要素とともに、別々の信頼性レベル・シンタックス要素が作成及び使用され得る。例えば、信頼性レベル・シンタックス要素を使用して、general_progressive_source_flag及びgeneral_interlaced_source_flagにより示される情報の信頼性を示すことができる。信頼性レベル・シンタックス要素は、任意の数のレベルを有することができる。例えば、シンタックス要素は、1ビットのシンタックス要素であってもよいし、2ビットのシンタックス要素であってもよいし、3ビット以上のシンタックス要素であってもよい。さらに、所定の実施形態において、複数のconfidence_levelシンタックス要素が使用される。例えば、souce_scan_type要素、mixed_characteristics_flag、又はduplicate_flagに対して、別々のconfidence_levelシンタックス要素が存在し得る。
【0068】
図5は、開示する技術の実施形態に従った一般化された符号化方法のフローチャート500である。例示する方法は、コンピューティング・ハードウェア(例えば、コンピュータ・プロセッサ又は集積回路)を用いて実行され得る。例えば、この方法は、
図1に示したようなコンピューティング・ハードウェアにより実行され得る。さらに、この方法はまた、1以上のコンピュータ読み取り可能記憶媒体(例えば、有体のコンピュータ読み取り可能記憶媒体)に記憶されたコンピュータ実行可能命令として実装され得る。
【0069】
510において、ビットストリーム又はビットストリーム部分の1以上のピクチャが符号化される。例示する実施形態において、1以上のピクチャは、1以上のピクチャのソース・スキャン・タイプを示すために使用される1以上のシンタックス要素とともに符号化される。1以上のシンタックス要素は、例えば、SEIメッセージに含まれ得る。さらに、シンタックス要素は、ピクチャ固有のものであってもよいし、2以上のピクチャの特性を識別してもよい。例示する実施形態において、シンタックス要素は、符号化ピクチャの次の状態のうちの1以上を示す:(a)1以上のピクチャがインタレース・スキャン・タイプであることを示す状態、(b)1以上のピクチャがプログレッシブ・スキャン・タイプであることを示す状態、及び(c)1以上のピクチャが未知のソース・スキャン・タイプであることを示す状態。
【0070】
512において、符号化されたビットストリーム又はビットストリーム部分が出力される(例えば、不揮発性コンピュータ読み取り可能媒体に記憶される、且つ/あるいは送信される)。
【0071】
特定の実施例において、1以上のシンタックス要素は、1以上のピクチャがインタレース・スキャン・タイプであるかどうかを示す第1のフラグと、1以上のピクチャがプログレッシブ・スキャン・タイプであるかどうかを示す第2のフラグと、を含む。他の実施例において、1以上のシンタックス要素は、単一のシンタックス要素を含む。さらに、いくつかの実施例において、1以上のシンタックス要素は、1以上のピクチャがプログレッシブ・スキャン・タイプであるか否かを示す1ビット以上の第1のシンタックス要素(ソース・インジケータ)と、第1のフラグの値の信頼性レベルを示す1ビット以上の第2のシンタックス要素(信頼性レベル)と、を含む。そのような実施例において、信頼性レベル・シンタックス要素は、2以上の信頼性レベルを示すことができる。例えば、信頼性レベル・シンタックス要素は、4つの信頼性レベルを含み得る。第1は、ソース・インジケータが正確であることをシグナリングする信頼性レベルである。第2は、ソース・インジケータが正確である可能性が高いことをシグナリングする信頼性レベルである。第3は、ソース・インジケータが正確でない可能性が高いことを示す信頼性レベルである。第4は、ソース・インジケータが正確でないことを示す信頼性レベルである。
【0072】
いくつかの実施例において、符号化する前記の動作は、1以上のピクチャが複製ピクチャであるかどうかを示す複製ピクチャ・フラグ及び/又は1以上のピクチャがビデオ・タイプの混合を含むかどうかを示す混合データ・フラグを符号化することをさらに含み得る。
【0073】
図6は、開示する技術の実施形態に従った一般化された復号化方法のフローチャート600である。例示する方法は、コンピューティング・ハードウェア(例えば、コンピュータ・プロセッサ又は集積回路)を用いて実行され得る。例えば、この方法は、
図1に示したようなコンピューティング・ハードウェアにより実行され得る、あるいは、1以上のコンピュータ読み取り可能記憶媒体(例えば、有体のコンピュータ読み取り可能記憶媒体)に記憶されたコンピュータ実行可能命令として実装され得る。
【0074】
610において、ビットストリーム又はビットストリーム部分の1以上のピクチャが受信される(例えば、さらなる処理のために、ロード、バッファ、又は準備される)。例示する実施形態において、ビットストリーム又はビットストリーム部分は、1以上のピクチャのピクチャ・ソース・スキャン・タイプを示すために使用される1以上のシンタックス要素をさらに含む。シンタックス要素は、ピクチャ固有のものであってもよいし、2以上のピクチャの特性を識別してもよい。例示する実施形態において、シンタックス要素は、1以上の復号化ピクチャの次の状態のうちの1以上を示す:(a)1以上のピクチャがインタレース・スキャン・タイプであることを示す状態、(b)1以上のピクチャがプログレッシブ・スキャン・タイプであることを示す状態、及び(c)1以上のピクチャが未知のソース・スキャン・タイプであることを示す状態。
【0075】
612において、1以上のピクチャが、(例えば、上記で開示した復号化、本明細書で説明したドラフトHEVC規格で記述されている復号化、又は任意の他の周知の復号化技術のいずれかを用いて)復号化される。
【0076】
614において、復号化された1以上のピクチャが、1以上のシンタックス要素により識別されたソース・スキャン・タイプに従って処理される。例えば、いくつかの実施形態において、1以上のピクチャが、識別されたスキャン・タイプに従って表示され得る(例えば、インタレース・スキャン・ビデオ又はプログレッシブ・スキャン・ビデオが表示され得る)。他の実施形態において、復号化された1以上のピクチャが、後の表示のために処理され得る。例えば、例示する方法を実装するデコーダ・デバイスは、インタレースとしてシグナリングされるピクチャをデインタレースし、次いで、結果として生じるビデオをトランスコード、記憶、及び/又は送信することができる(例えば、ビデオを記憶する、あるいはビデオを表示する別のデバイス又はモジュールにビデオを送信することができる)。1以上のシンタックス要素が低レベルの信頼性を示す、あるいはスキャン・タイプが未知であることを示す状況において、処理は、スキャン・タイプを決定するために1以上のピクチャを解析することを含み得る。
【0077】
特定の実施例において、1以上のシンタックス要素は、1以上のピクチャがインタレース・スキャン・タイプであるかどうかを示す第1のフラグと、1以上のピクチャがプログレッシブ・スキャン・タイプであるかどうかを示す第2のフラグと、を含む。他の実施例において、1以上のシンタックス要素は、単一のシンタックス要素を含む。さらに、いくつかの実施例において、1以上のシンタックス要素は、1以上のピクチャがプログレッシブ・スキャンであるか否かを示す1ビット以上の第1のシンタックス要素(ソース・インジケータ)と、第1のフラグの値の信頼性レベルを示す1ビット以上の第2のシンタックス要素(信頼性レベル)と、を含む。そのような実施例において、信頼性レベル・シンタックス要素は、2以上の信頼性レベルを示すことができる。例えば、信頼性レベル・シンタックス要素は、4つの信頼性レベルを含み得る。第1は、ソース・インジケータが正確であることをシグナリングする信頼性レベルである。第2は、ソース・インジケータが正確である可能性が高いことをシグナリングする信頼性レベルである。第3は、ソース・インジケータが正確でない可能性が高いことを示す信頼性レベルである。第4は、ソース・インジケータが正確でないことを示す信頼性レベルである。
【0078】
いくつかの実施例において、復号化する前記の動作は、1以上のピクチャが複製ピクチャであるかどうかを示す複製ピクチャ・フラグ及び/又は1以上のピクチャがビデオ・タイプの混合を含むかどうかを示す混合データ・フラグを復号化することをさらに含み得る。
【0079】
開示した本発明の原理を適用することができる多くの可能な実施形態の観点から、例示した実施形態は、本発明の好ましい例に過ぎないことを認識すべきであり、本発明の範囲を限定するものとして解釈すべきではない。むしろ、本発明の範囲は、請求項及びその均等の構成により定められる。したがって、我々は、請求項及びその均等の構成の範囲及び精神に含まれる全てを、我々の発明として特許請求する。
【0080】
以上の実施形態に関して次の付記を記す。
(付記1) エンコーダ・デバイスにより実行される方法であって、
ビットストリーム又はビットストリーム部分におけるピクチャのシーケンスを符号化する符号化ステップであって、
前記符号化ステップは、前記ビットストリーム又は前記ビットストリーム部分における、前記ピクチャのシーケンスのソース・スキャン・タイプを識別するためのシンタックス要素を符号化することを含み、
前記シンタックス要素は、集合的に、前記シーケンスにおける前記ピクチャがインタレース・スキャン・タイプであることを示す状態、前記シーケンスにおける前記ピクチャがプログレッシブ・スキャン・タイプであることを示す状態、前記シーケンスにおける前記ピクチャが未知のソース・スキャン・タイプであることを示す状態、及び、ソース・スキャン・タイプが、ピクチャ・タイミングSEIメッセージ内のピクチャ・レベル・シンタックス要素により、前記シーケンスの各ピクチャにおいて独立して示されることを示す状態、という利用可能な状態のうちの1つを示し、
前記シンタックス要素は、1以上のピクチャがインタレース・スキャン・タイプであるかどうかを示す第1のフラグと、前記第1のフラグとは異なり前記第1のフラグとは別個のシンタックス要素である第2のフラグであって、前記1以上のピクチャがプログレッシブ・スキャン・タイプであるかどうかを示す第2のフラグと、を含む、
符号化ステップと、
前記ビットストリーム又は前記ビットストリーム部分を出力するステップと、
を含む、方法。
(付記2) 前記符号化ステップは、前記ピクチャのうちの1以上が複製ピクチャであるかどうかを示す複製ピクチャ・フラグを符号化することをさらに含む、付記1記載の方法。
(付記3) 前記符号化ステップは、前記ピクチャのうちの1以上がビデオ・タイプの混合を含むかどうかを示す混合データ・フラグを符号化することをさらに含む、付記1記載の方法。
(付記4) デコーダ・デバイスにより実行される方法であって、
ビットストリーム又はビットストリーム部分におけるピクチャのシーケンスを受信する受信ステップであって、
前記ビットストリーム又は前記ビットストリーム部分は、前記ピクチャのシーケンスのソース・スキャン・タイプを識別するためのシンタックス要素をさらに含み、
前記シンタックス要素は、集合的に、前記シーケンスにおける前記ピクチャがインタレース・スキャン・タイプであることを示す状態、前記シーケンスにおける前記ピクチャがプログレッシブ・スキャン・タイプであることを示す状態、前記シーケンスにおける前記ピクチャが未知のソース・スキャン・タイプであることを示す状態、及び、ソース・スキャン・タイプが、ピクチャ・タイミングSEIメッセージ内のピクチャ・レベル・シンタックス要素により、前記シーケンスの各ピクチャにおいて独立して示されることを示す状態、という利用可能な状態のうちの1つを示し、
前記シンタックス要素は、1以上のピクチャがインタレース・スキャン・タイプであるかどうかを示す第1のフラグと、前記第1のフラグとは異なり前記第1のフラグとは別個のシンタックス要素である第2のフラグであって、前記1以上のピクチャがプログレッシブ・スキャン・タイプであるかどうかを示す第2のフラグと、を含む、
受信ステップと、
前記1以上のピクチャを復号化するステップと、
1以上のシンタックス要素において識別されたソース・スキャン・タイプに従って、前記の復号化された1以上のピクチャを処理するステップと、
を含む、方法。
(付記5) 前記ビットストリーム又は前記ビットストリーム部分は、前記ピクチャのうちの1以上が複製ピクチャであるかどうかを示す複製ピクチャ・フラグをさらに含む、付記4記載の方法。
(付記6) 前記ビットストリーム又は前記ビットストリーム部分は、前記ピクチャのうちの1以上がビデオ・タイプの混合を含むかどうかを示す混合データ・フラグをさらに含む、付記4記載の方法。
(付記7) コンピュータ実行可能命令を記憶した有体のコンピュータ読み取り可能媒体であって、前記コンピュータ実行可能命令は、コンピューティング・デバイスに方法を実行させ、前記方法は、
ビットストリーム又はビットストリーム部分におけるピクチャを符号化する符号化ステップであって、
前記符号化ステップは、前記ビットストリーム又は前記ビットストリーム部分における、ソース・インジケータと、エンコーダにより割り当てられた別個の信頼性レベル・インジケータと、を含むメッセージを符号化することを含み、
前記ソース・インジケータは、前記ピクチャがインタレース・スキャン・ピクチャとして符号化されているか又はプログレッシブ・スキャン・ピクチャとして符号化されているかを示し、
前記信頼性レベル・インジケータは、前記ソース・インジケータが正確であることの確実性のレベルを示す、
符号化ステップと、
前記ビットストリーム又は前記ビットストリーム部分を出力するステップと、
を含む、有体のコンピュータ読み取り可能媒体。
(付記8) 前記メッセージは、前記ピクチャが複製ピクチャであるかどうかを示す複製ピクチャ・フラグと、前記ピクチャがビデオ・タイプの混合を含むかどうかを示す混合データ・フラグと、のうちの1以上をさらに含む、付記7記載の有体のコンピュータ読み取り可能媒体。
(付記9) 前記信頼性レベル・インジケータは、2以上の信頼性レベルを含む、付記7記載の有体のコンピュータ読み取り可能媒体。
(付記10) 前記信頼性レベル・インジケータは、4つの信頼性レベルを含み、前記4つの信頼性レベルのうちの第1の信頼性レベルは、前記ソース・インジケータが正確であることをシグナリングし、前記4つの信頼性レベルのうちの第2の信頼性レベルは、前記ソース・インジケータが正確である可能性が高いことをシグナリングし、前記4つの信頼性レベルのうちの第3の信頼性レベルは、前記ソース・インジケータが正確でない可能性が高いことを示し、前記4つの信頼性レベルのうちの第4の信頼性レベルは、前記ソース・インジケータが正確でないことを示す、付記9記載の有体のコンピュータ読み取り可能媒体。
(付記11) コンピュータ実行可能命令を記憶した有体のコンピュータ読み取り可能媒体であって、前記コンピュータ実行可能命令は、コンピューティング・デバイスに方法を実行させ、前記方法は、
ピクチャについての符号化されたデータを含むビットストリーム又はビットストリーム部分を受信する受信ステップであって、
前記符号化されたデータは、前記ピクチャがインタレース・スキャン・ピクチャであるか又はプログレッシブ・スキャン・ピクチャであるかを示すソース・フォーマット・インジケータと、前記ソース・フォーマット・インジケータが正確であることの確実性のレベルを示す、エンコーダにより割り当てられた別個の信頼性レベル・インジケータと、を含むメッセージを含む、
受信ステップと、
前記ピクチャを復号化するステップと、
前記メッセージにより示されるソース・フォーマットに従って、前記ピクチャを処理するステップと、
を含む、有体のコンピュータ読み取り可能媒体。
(付記12) 前記メッセージは、前記ピクチャが複製ピクチャであるかどうかを示す複製ピクチャ・フラグと、前記ピクチャがビデオ・タイプの混合を含むかどうかを示す混合データ・フラグと、のうちの1以上をさらに含む、付記11記載の有体のコンピュータ読み取り可能媒体。
(付記13) 前記信頼性レベル・インジケータは、2以上の信頼性レベルを含む、付記11記載の有体のコンピュータ読み取り可能媒体。
(付記14) 前記信頼性レベル・インジケータは、4つの信頼性レベルを含み、前記4つの信頼性レベルのうちの第1の信頼性レベルは、前記ソース・フォーマット・インジケータが正確であることをシグナリングし、前記4つの信頼性レベルのうちの第2の信頼性レベルは、前記ソース・フォーマット・インジケータが正確である可能性が高いことをシグナリングし、前記4つの信頼性レベルのうちの第3の信頼性レベルは、前記ソース・フォーマット・インジケータが正確でない可能性が高いことを示し、前記4つの信頼性レベルのうちの第4の信頼性レベルは、前記ソース・フォーマット・インジケータが正確でないことを示す、付記13記載の有体のコンピュータ読み取り可能媒体。