(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022170709
(43)【公開日】2022-11-10
(54)【発明の名称】外部ストリーム表現プロパティ
(51)【国際特許分類】
H04N 21/84 20110101AFI20221102BHJP
H04N 19/85 20140101ALI20221102BHJP
【FI】
H04N21/84
H04N19/85
【審査請求】有
【請求項の数】11
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022070077
(22)【出願日】2022-04-21
(31)【優先権主張番号】63/180834
(32)【優先日】2021-04-28
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】521388058
【氏名又は名称】レモン インコーポレイテッド
【氏名又は名称原語表記】Lemon Inc.
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】イェ-クイ ワン
【テーマコード(参考)】
5C159
5C164
【Fターム(参考)】
5C159RB09
5C159RC11
5C159UA02
5C159UA05
5C164MB13P
5C164MB44S
5C164SB01S
5C164UB01S
(57)【要約】
【課題】ビデオデータを処理するためのメカニズムを開示する。
【解決手段】DASH(Dynamic Adaptive Streaming over Hypertext Transfer Protocol)表現のエッセンシャルプロパティ(EssentialProperty)を決定する。EssentialPropertyは、表現が外部ストリーム表現(ESR)であることを示す。ESRに基づいて、ビジュアルメディアデータとメディアプレゼンテーションとの間の変換を実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ビデオデータを処理するための方法であって、
DASH(Dynamic Adaptive Streaming over Hypertext Transfer Protocol)表現のエッセンシャルプロパティ(EssentialProperty)を決定するステップであって、前記EssentialPropertyは、前記表現が外部ストリーム表現(ESR)であることを示す、ステップと、
前記ESRに基づいて、ビジュアルメディアデータとメディアプレゼンテーションとの間の変換を実行するステップと、
を含む、方法。
【請求項2】
前記EssentialPropertyは、前記表現が、それ自身によって消費又は再生されてはならないことを更に示す、
請求項1に記載の方法。
【請求項3】
DASHアダプテーションセットのEssentialPropertyを決定するステップを更に含み、前記EssentialPropertyは、前記アダプテーションセット内の各表現がESRであることを示す、
請求項1に記載の方法。
【請求項4】
前記EssentialPropertyは、「urn:mpeg:dash:adaptation-set-external-stream:202X」のスキーム識別子ユニフォームリソース識別子(@schemeIdUri)を含み、ここでXは数字である、
請求項1に記載の方法。
【請求項5】
前記EssentialPropertyは、メインストリーミング表現の識別子(@id)値のリストを指定する値(@value属性)を有する、
請求項3に記載の方法。
【請求項6】
DASHアダプテーションセットの外部ストリームアダプテーションセットフラグ(@esasflag)属性を決定するステップを更に含み、前記@esasflag属性は、ESRである前記アダプテーションセット内の各表現を指定するように真に等しい、
請求項1に記載の方法。
【請求項7】
役割要素が前記アダプテーションセットに含まれ、前記役割要素は、前記@esasflag属性が真に等しいときに、補助に等しい値(@value)属性を含む、
請求項6に記載の方法。
【請求項8】
前記変換は、前記ビジュアルメディアデータをメディアデータファイルにエンコーディングすることを含む、
請求項1乃至7のいずれか一項に記載の方法。
【請求項9】
前記変換は、前記ビジュアルメディアデータをメディアデータファイルからデコーディングすることを含む、
請求項1乃至7のいずれか一項に記載の方法。
【請求項10】
ビデオデータを処理するための装置であって、
プロセッサと、
命令を有する非一時的メモリと、を備え、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
DASH(Dynamic Adaptive Streaming over Hypertext Transfer Protocol)表現のエッセンシャルプロパティ(EssentialProperty)を決定させ、前記EssentialPropertyは、前記表現が外部ストリーム表現(ESR)であることを示し、
前記ESRに基づいて、ビジュアルメディアデータとメディアプレゼンテーションとの間の変換を実行させる、
装置。
【請求項11】
ビデオコーディングデバイスによる使用のためのコンピュータプログラム製品を含む非一時的コンピュータ読取可能媒体であって、前記コンピュータプログラム製品は、プロセッサによって実行されると、前記ビデオコーディングデバイスに、
DASH(Dynamic Adaptive Streaming over Hypertext Transfer Protocol)表現のエッセンシャルプロパティ(EssentialProperty)を決定させ、前記EssentialPropertyは、前記表現が外部ストリーム表現(ESR)であることを示し、
前記ESRに基づいて、ビジュアルメディアデータとメディアプレゼンテーションとの間の変換を実行させる、
ように、当該非一時的コンピュータ読取可能媒体の上に記憶されるコンピュータ実行可能命令を含む、
非一時的コンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
パリ条約に基づく適用可能な特許法及び/又は規則の下、本出願は、2021年4月28日に出願された米国仮特許出願第63/180,834号の優先権及び利益を適時に主張する。法の下にあるすべての目的のために、前述の出願の開示全体は、参照によって本出願の開示の一部として組み込まれる。
【0002】
[技術分野]
本特許文書は、ファイル形式のデジタルオーディオビデオメディア情報の生成、保存及び消費に関する。
【背景技術】
【0003】
デジタルビデオは、インターネット及び他のデジタル通信ネットワークにおいて使用される最大の帯域幅を占める。ビデオを受信及び表示することができる接続されたユーザデバイスの数が増加するにつれて、デジタルビデオ使用のための帯域幅需要は増加し続ける可能性が高い。
【発明の概要】
【0004】
第1態様は、DASH(Dynamic Adaptive Streaming over Hypertext transfer protocol)表現のエッセンシャルプロパティ(EssentialProperty)を決定するステップであって、EssentialPropertyは、表現が外部ストリーム表現(ESR:external stream representation)であることを示すステップと、ESRに基づいてビジュアルメディアデータとメディアプレゼンテーションとの間の変換を実行するステップと、を含む、ビデオデータを処理するための方法に関する。
【0005】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、表現がそれ自身によって消費(consume)又は再生されてはならないことをEssentialPropertyが更に示すことを提供する。
【0006】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、DASHアダプテーションセットのEssentialPropertyを決定することを提供し、EssentialPropertyは、アダプテーションセット内の各表現がESRであることを示す。
【0007】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、EssentialPropertyが、「urn:mpeg:dash:adaptation-set-external-stream:202X」のスキーム識別子ユニフォームリソース識別子(@schemeIdUri)を含むことを提供し、ここで、Xは数字である。
【0008】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、EssentialPropertyが、メインストリーミング表現の識別子(@id)値のリストを指定する値(@value属性)を有することを提供する。
【0009】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、DASHアダプテーションセットの外部ストリームアダプテーションセットフラグ(@esasflag)属性を決定することを提供し、@esasflag属性は、ESRであるアダプテーションセット内の各表現を指定するように真(true)に等しい。
【0010】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、役割要素(role element)がアダプテーションセットに含まれることを提供し、役割要素は、@esasflag属性が真であるときに、補助(supplementary)に等しい値(@value)属性を含む。
【0011】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、変換が、ビジュアルメディアデータをメディアデータファイルにエンコーディングすることを含むことを提供する。
【0012】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、変換が、ビジュアルメディアデータをメディアデータファイルからデコーディングすることを含むことを提供する。
【0013】
第2態様は、プロセッサと、その上に命令を有する非一時的メモリとを備えるビデオデータを処理するための装置に関し、命令は、プロセッサによって実行されると、該プロセッサに:DASH(Dynamic Adaptive Streaming over Hypertext transfer protocol)表現のエッセンシャルプロパティ(EssentialProperty)を決定させ、EssentialPropertyは、表現が外部ストリーム表現(ESR:external stream representation)であること示し;ESRに基づいて、ビジュアルメディアデータとメディアプレゼンテーションとの間の変換を実行させる。
【0014】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、表現がそれ自身によって消費又は再生されてはならないことをEssentialPropertyが更に示すことを提供する。
【0015】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、DASHアダプテーションセットのEssentialPropertyを決定することを提供し、EssentialPropertyは、アダプテーションセット内の各表現がESRであることを示す。
【0016】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、EssentialPropertyが、「urn:mpeg:dash:adaptation-set-external-stream:202X」のスキーム識別子ユニフォームリソース識別子(@schemeIdUri)を含むことを提供し、ここで、Xは数字である。
【0017】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、EssentialPropertyが、メインストリーミング表現の識別子(@id)値のリストを指定する値(@value属性)を有することを提供する。
【0018】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、DASHアダプテーションセットの外部ストリームアダプテーションセットフラグ(@esasflag)属性を決定することを提供し、@esasflag属性は、ESRであるアダプテーションセット内の各表現を指定するように真に等しい。
【0019】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、役割要素がアダプテーションセットに含まれることを提供し、役割要素は、@esasflag属性が真であるときに、補助に等しい値(@value)属性を含む。
【0020】
第3態様は、ビデオコーディングデバイスによる使用のためのコンピュータプログラム製品を含む非一時的コンピュータ読取可能媒体に関し、コンピュータプログラム製品は、プロセッサによって実行されると、ビデオコーディングデバイスに:DASH(Dynamic Adaptive Streaming over Hypertext transfer protocol)表現のエッセンシャルプロパティ(EssentialProperty)を決定させ、EssentialPropertyは、表現が外部ストリーム表現(ESR:external stream representation)であること示し;ESRに基づいて、ビジュアルメディアデータとメディアプレゼンテーションとの間の変換を実行させるように、非一時的コンピュータ読取可能媒体上に記憶されたコンピュータ実行可能命令を含む。
【0021】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、表現がそれ自身によって消費又は再生されてはならないことをEssentialPropertyが更に示すことを提供する。
【0022】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、DASHアダプテーションセットのEssentialPropertyを決定することを提供し、EssentialPropertyは、アダプテーションセット内の各表現がESRであることを示す。
【0023】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、EssentialPropertyが、「urn:mpeg:dash:adaptation-set-external-stream:202X」のスキーム識別子ユニフォームリソース識別子(@schemeIdUri)を含むことを提供し、ここで、Xは数字である。
【0024】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、EssentialPropertyが、メインストリーミング表現の識別子(@id)値のリストを指定する値(@value属性)を有することを提供する。
【0025】
任意に、前述の態様のいずれかにおいて、当該態様の別の実装は、DASHアダプテーションセットの外部ストリームアダプテーションセットフラグ(@esasflag)属性を決定することを提供し、@esasflag属性は、ESRであるアダプテーションセット内の各表現を指定するように真に等しい。
【0026】
明確性のために、前述の実施形態のいずれか1つを、他の前述の実施形態のいずれか1つ以上と組み合わせて、本開示の範囲内の新たな実施形態を作成してもよい。
【0027】
これら及び他の特徴は、添付の図面及び特許請求の範囲と併せて用いられる以下の詳細な説明から、より明確に理解されるであろう。
【図面の簡単な説明】
【0028】
本開示のより完全な理解のために、ここで、添付の図面及び詳細な説明に関連して用いられる、以下の簡単な説明を参照する。ここで、同様の参照番号は同様の部分を表す。
【0029】
【
図1】例示のDASH(Dynamic Adaptive Streaming over Hypertext transfer protocol)メディアファイルを示す概略図である。
【0030】
【
図2】例示のビデオ処理システムを示すブロック図である。
【0031】
【0032】
【
図4】ビデオ処理の例示的方法のフローチャートである。
【0033】
【
図5】例示のビデオコーディングシステムを示すブロック図である。
【0034】
【0035】
【0036】
【発明を実施するための形態】
【0037】
最初に、1つ以上の実施形態の例示的実装が以下に提供されるが、開示されるシステム及び/又は方法は、現在公知であるか、まだ開発されていないかにかかわらず、任意の数の技術を使用して実装され得ることを理解されたい。本開示は、本明細書で例示及び説明される例示的設計及び実装を含む、以下で例示される例示的実装、図面及び技術に決して限定されるべきではないが、添付の特許請求の範囲内で、それらの均等物の全範囲とともに修正されてよい。
【0038】
本特許文書は、ビデオストリーミングに関する。特に、本文書は、外部ストリーム表現のプロパティのシグナリングに関する。そのようなプロパティは、メインストリーム表現内の拡張依存ランダムアクセスポイント(EDRAP:extended dependent random access point)ピクチャで始まるセグメントからランダムアクセスするために必要とされ得る。本明細書で説明されるアイディアは、メディアストリーミングシステム、DASH(Dynamic Adaptive Streaming over Hypertext transfer protocol)規格に基づくそのようなシステム及び関連する拡張のために、個々に又は様々な組合せで適用され得る。
【0039】
ビデオコーディング規格は、主に国際電気通信連合(ITU)電気通信標準化部門(ITU-T)及びISO/国際電気標準会議(IEC)規格の開発を通して発展してきた。ITU-Tは、H.261及びH.263を生み出し、ISO/IECは、Motion Picture Experts Group(MPEG)-1及びMPEG-4 Visualを生み出し、両組織は共同で、H.262/MPEG-2 Video及びH.264/MPEG-4 Advanced Video Coding(AVC)及びH.265/High Efficiency Video Coding(HEVC)規格を生み出した。H.262から、ビデオコーディング規格は、時間的予測と変換コーディングが利用されるハイブリッドビデオコーディング構造に基づいている。HEVCを越える更なるビデオコーディング技術を探求するために、Joint Video Exploration Team(JVET)が、Video Coding Experts Group(VCEG)とMPEGによって共同で設立された。JVETによって多くの方式が採用され、Joint Exploration Model(JEM)と名付けられた参照ソフトウェア(Reference software)に入れられている。JVETは後に、Versatile Video Coding(VVC)プロジェクトが正式に始まったときに、Joint Video Experts Team(JVET)と改称された。VVCは、HEVCと比較して50%のビットレート低減を目標とするコーディング規格である。VVCはJVETによって確定された。
【0040】
ITU-T H.266|ISO/IEC 23090-3としても知られるVVC規格と、ITU-T H.274|ISO/IEC 23002-7としても知られる関連するVersatile Supplemental Enhancement Information(VSEI)規格は、テレビ放送、ビデオ会議、記憶媒体からの再生、アダプティブビットレートストリーミング、ビデオ領域抽出、複数のコーディングされたビデオビットストリームからのコンテンツの合成及びマージ、マルチビュービデオ、スケーラブルレイヤードコーディング及びビューポートアダプティブ360°没入型メディアのような、広範な用途における使用のために設計されている。Essential Video Coding(EVC)規格(ISO/IEC 23094-1)は、MPEGによって開発された別のビデオコーディング規格である。
【0041】
ファイルフォーマット規格が以下で議論される。メディアストリーミングアプリケーションは、典型的に、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)及びハイパーテキスト転送プロトコル(HTTP)転送方式に基づいており、典型的に、ISOBMFFのようなファイルフォーマットに依拠する。そのようなストリーミングシステムの1つが、DASH(dynamic adaptive streaming over HTTP)である。ビデオを、AVC及び/又はHEVCのようなビデオフォーマットでエンコーディングすることができる。エンコーディングされたビデオを、ISOBMFFトラックにカプセル化することができ、DASH表現及びセグメントに含めることができる。プロファイル、層(tier)及びレベル、並びに多くの他のもののようなビデオビットストリームに関する重要な情報は、コンテンツ選択の目的のために、ファイルフォーマットレベルのメタデータとして及び/又はDASHメディアプレゼンテーション記述(MPD:media presentation description)において公開されることがある。例えばそのような情報は、ストリーミングセッションの開始時の初期化とストリーミングセッション中のストリームアダプテーションの両方のために適切なメディアセグメントの選択に使用される可能性がある。
【0042】
同様に、国際標準化機構(ISO)ベースメディアファイルフォーマット(ISOBMFF)を有する画像フォーマットを使用するとき、AVC画像ファイルフォーマット及びHEVC画像ファイルフォーマットのような、画像フォーマットに特有のファイルフォーマット仕様が用いられてよい。VVCビデオファイルフォーマットは、ISOBMFFに基づくVVCビデオコンテンツの記憶のためのファイルフォーマットであり、MPEGが開発中である。また、VVC画像ファイルフォーマットは、ISOBMFFに基づく、VVCを使用してコーディングされた画像コンテンツの記憶のためのファイルフォーマットであり、やはりMPEGが開発中である。
【0043】
ここで、DASHについて議論する。DASHでは、マルチメディアコンテンツのビデオ及び/又はオーディオデータに対して複数の表現(representation)が存在し得る。異なる表現は、ビデオコーディング規格の異なるプロファイル又はレベル、異なるビットレート、異なる空間解像度等のような、異なるコーディング特性に対応し得る。そのような表現のマニフェストは、メディアプレゼンテーション記述(MPD:Media Presentation Description)データ構造において定義されてよい。メディアプレゼンテーションは、DASHストリーミングクライアントデバイスにアクセス可能なデータの構造化されたコレクションに対応し得る。DASHストリーミングクライアントデバイスは、クライアントデバイスのユーザにストリーミングサービスを提供するために、メディアデータ情報を要求してダウンロードし得る。メディアプレゼンテーションは、MPDデータ構造において記述されてよく、該MPDデータ構造はMPDの更新を含んでよい。
【0044】
メディアプレゼンテーションは、1つ以上の期間(period)のシーケンスを含んでよい。各期間は、次の期間の開始まで、あるいは最後の期間の場合はメディアのプレゼンテーションの最後までわたり得る。各期間は、同じメディアコンテンツについて1つ又は複数の表現を含んでよい。表現は、オーディオ、ビデオ、タイムテキスト(timed text)又は他のそのようなデータの複数の代替的なエンコーディングされたバージョンのうちの1つであってよい。表現は、エンコーディングタイプによって、例えばビットレート、解像度、ビデオデータとビットレートに対するコーデック、言語、及び/又はオーディオデータに対するコーデックによって異なり得る。表現という用語は、マルチメディアコンテンツの特定の期間に対応し、かつ特定の方法でエンコーディングされた、エンコーディングされたオーディオ又はビデオデータのセクションを指すために使用され得る。
【0045】
特定の期間の表現は、該表現が属するアダプテーションセットを示すMPD内の属性によって示されるグループに割り当てられてよい。同じアダプテーションセット内の表現は、一般に互いに代替物(alternatives)であると考えられる。したがって、クライアントデバイスは、例えば帯域幅適応を実行するために、これらの表現の間を動的かつシームレスに切り替えることができる。例えば特定の期間のビデオデータの各表現は、表現のうちのいずれかが、対応する期間のマルチメディアコンテンツのビデオデータ又はオーディオデータのようなメディアデータをデコーディングして提示するために選択され得るように、同じアダプテーションセットに割り当てられてよい。1つの期間内のメディアコンテンツは、存在する場合、グループ0からの1つの表現、又はいくつかの例では、各非ゼログループからの多くても1つの表現の組合せ、のいずれかによって表現されてよい。期間の各表現についてのタイミングデータは、期間の開始時間に関連して表されてよい。
【0046】
表現は1つ以上のセグメントを含んでよい。各表現は初期化セグメントを含んでよく、あるいは表現の各セグメントは自己初期化(self-initializing)であってもよい。存在するとき、初期化セグメントは、表現にアクセスするための初期化情報を含んでよい。一般に、初期化セグメントはメディアデータを含まない。セグメントは、ユニフォームリソースロケータ(URL)、ユニフォームリソース名(URN)又はユニフォームリソース識別子(URI)のような識別子によって一意に参照され得る。MPDは各セグメントの識別子を提供し得る。いくつかの例において、MPDはまた、range属性の形態でバイト範囲を提供してもよく、これは、URL、URN又はURIによってアクセス可能なファイル内のセグメントのデータに対応し得る。
【0047】
異なるタイプのメディアデータについて実質的に同時に取り出すために、異なる表現が選択されてよい。例えばクライアントデバイスは、セグメントを取り出すためのオーディオ表現、ビデオ表現及びタイムテキスト表現を選択してよい。いくつかの例では、クライアントデバイスは、帯域幅適応を実行するために特定のアダプテーションセットを選択してよい。例えばクライアントデバイスは、ビデオ表現を含むアダプテーションセット、オーディオ表現を含むアダプテーションセット及び/又はタイムテキストを含むアダプテーションセットを選択してよい。一例では、クライアントデバイスは、ビデオのような特定のタイプのメディアについてアダプテーションセットを選択し、オーディオ及び/又はタイムテキストのような他のタイプのメディアについて表現を直接選択してもよい。
【0048】
例示のDASHストリーミングプロシージャを以下のステップによって示すことができる。クライアントはMPDを取得する。クライアントは、次いで、ダウンリンク帯域幅を推定し、推定されたダウンリンク帯域幅、コーデック、デコーディング能力、ディスプレイサイズ、オーディオ言語設定等に従って、ビデオ表現及びオーディオ表現を選択する。メディアプレゼンテーションの最後に到達するまで、クライアントは、選択された表現のメディアセグメントを要求し、ストリーミングコンテンツをユーザに提示する。クライアントはダウンリンク帯域幅を推定し続ける。帯域幅が、例えば低くなるか又は高くなることによって、著しく変化すると、クライアントは、新たに推定された帯域幅に適合するよう異なるビデオ表現を選択し、更新されたダウンリンク帯域幅でセグメントをダウンロードし続ける。
【0049】
ここで、EDRAPピクチャについて、ビデオコーディング及びストリーミングに基づいて議論する。補助強化情報(SEI:supplemental enhancement information)メッセージを使用するEDRAPピクチャのシグナリングは、VSEI仕様に採用されている。ISOBMFFのための外部ストリームトラック(EST:external stream track)設計及び/又はDASHのための外部ストリーム表現(ESR:external stream representation)設計が、EDRAPベースのビデオストリーミングをサポートするために使用され得る。ESR設計は、以下で説明されるように動作する。
【0050】
例示の設計では、ESRの定義は以下の通りである。外部エレメンタリストリームは、外部ピクチャを有するアクセスユニットを含むエレメンタリストリームである。外部ピクチャは、ESR内の外部エレメンタリストリーム内にあるピクチャであって、MSR内のある特定のEDRAPピクチャからランダムにアクセスするとき、MSR内のエレメンタリストリームのデコーディングの際にインター予測参照のために必要とされる。ESRは、外部エレメンタリストリームを含んでいる表現である。メインストリーム表現(MSR:Main Stream Representation)は、ビデオエレメンタリストリームを含んでいる表現である。ランダムアクセスは、デコーディング順でより早い段階のエレメンタリストリーム内のいずれのピクチャもデコーディングすることなく、特定のピクチャから開始するエレメンタリストリームのデコーディングである。
【0051】
AdaptationSet要素の意味の例は、以下のように説明される。
【表1】
【0052】
例示の拡張可能マークアップ言語(XML)構文を以下に記載する。
【表2】
【0053】
以下は、開示される技術的解決策によって解決される例示の技術課題である。いくつかのESR設計は、ESRに関連付けられるメインストリーミング表現(MSR)内のEDRAPピクチャからのランダムアクセスのみをサポートする。ESRは、MSRなしにクライアント又はプレイヤによって消費されるべきではない。しかしながら、レガシーDASHクライアント及び/又はプレイヤは、属性外部ストリームアダプテーションセットフラグ(@esasFlag)を認識しないことがあり、対応する属性を無視することがあり、再生のためにESRを選択することがあり、その結果、エラーとなる。
【0054】
本明細書で開示されているのは、上記に列挙された課題の1つ以上に対処するためのメカニズムである。上記のように、ESRは、MSRとともにデコーディングされて再生されるべきである。しかしながら、ある特定のデバイスは、表現がESRであることを認識しないことがあり、MSRなしでESRをデコーディングしようとすることがあり、エラーを経験することがある。本開示は、レガシーデバイスにESRの存在を警告するための様々なメカニズムを含む。例えばESRは、表現がESRであり、単独で消費されるべきではないことを示すエッセンシャルプロパティ(EssentialProperty)を含んでよい。一例において、ESRを含んでいるアダプテーションセットは、該アダプテーションセット内の各ESRを示すEssentialPropertyを含んでよい。一例において、ESRは、EssentialProperty内のスキーム識別子ユニフォームリソース識別子(@schemeIdUri)によって示される。@schemeIdUriは、各ESRを示すように「urn:mpeg:dash:adaption-set-external-stream:202X」に設定されてよく、ここで、Xは「1」、「2」、「3」等のような数字である。一例において、EssentialPropertyはまた、アダプテーションセット内のMSRの識別子(@id)値のリストを指定する値(@value属性)も含んでよい。別の例では、アダプテーションセットの@esasflag属性は、ESRであるアダプテーションセット内の各表現を指定するように真(true)に等しく設定され得る。更なる例では、役割要素をアダプテーションセットに含めることができる。さらに、@esasflag属性が真に等しいとき、役割要素は、補助(supplementary)に等しい値(@value)属性を含んでよい。
【0055】
図1は、例示的なDASHメディアファイル100を示す概略図である。DASHメディアファイル100は、メディアプレゼンテーション記述(MPD)のようなマニフェストによって記述されてよい。クライアント及び/又はデコーダは、エンコーダから及び/又は中間サーバからMPDを取得することができる。クライアントは、次いで、MPD内の構文要素に基づいてDASHメディアファイル100からコンテンツを要求することができる。
【0056】
メディアファイル100は、1つ以上のアダプテーションセット110及び111を含む。アダプテーションセット110及び/又は111は、交換可能な表現のセットである。表現は、メディアコンテンツのバージョンを含む。ビデオに適用されるとき、各表現は、異なる解像度、フレームレート等で同じビデオコンテンツを含んでよい。したがって、クライアントは、利用可能なネットワーク帯域幅における変化に応じて、異なる表現を動的に要求することができる。異なるアダプテーションセット110は、ビデオ、オーディオ及びクローズドキャプション(close captioning)のような異なるメディアタイプを含んでよい。さらに、異なるアダプテーションセット110は、異なるピクチャサイズでコーディングされた、したがって異なるクライアント画面用にサイジングされたビデオを含んでよい。したがって、アダプテーションセット110及び/又は111は、クライアントによって交換可能に使用され得る表現のセットであり、表現はメディアコンテンツのバージョンである。
【0057】
本例では、表現は、1つ以上のMSR112と1つ以上のESR114を含む。MSR112は、ビデオエレメンタリストリームを含む表現である。ビデオエレメンタリストリームは、ビデオコンテンツの完全なセットである。ESR114は、外部エレメンタリストリームを含む表現であり、外部エレメンタリストリームは、拡張依存ランダムアクセスポイント(EDRAP)ピクチャを含むストリームである。EDRAPピクチャは、ランダムアクセスに使用することができるピクチャであり、ストリーム内の最初のピクチャ以外のユーザ選択された位置でビデオを開始することをサポートする。したがって、図示される構成では、クライアントは、アダプテーションセット110内のESR114からのセグメントと、アダプテーションセット111内の対応するMSR112からのセグメントとを取得することによって、ランダムアクセスを実行する。クライアントは、次いで、ESR114からのEDRAPピクチャを使用して、ユーザへの表示のためにMSR112からのセグメントのデコーディングを開始することができる。ESR114は、レガシークライアントによって機能的にサポートされていないことがある。例えばレガシークライアントは、第2アダプテーションセット111からMSR112セグメントを取得することなく、第1アダプテーションセット110からのESR114セグメントを要求してデコーディングすることがある。この結果、レガシークライアントは、意図されたビデオストリームの代わりに、ESR114からの単一のピクチャをデコーディングして表示することになる。
【0058】
本開示は、対応するMSR112もデコーディングしなければESR114をデコーディングすることができないことをレガシークライアントに示すようシグナリングすることを含むことにより、この問題に対処する。一例では、これを、エッセンシャルプロパティ(EssentialProperty)126によって示すことができる。EssentialProperty126は、MPDに含まれる構文である。一例では、EssentialProperty126は、各ESR114を記述する構文に含まれ、別の表現も参照せずには、対応するESR114をデコーディングすることができないことを示す。別の例では、EssentialProperty126を、アダプテーションセット110に関連付けられる構文に含めることができる。この例では、EssentialProperty126は、アダプテーションセット110内の表現の各々がESR114であり、したがって、アダプテーションセット110内の表現のいずれも、別の表現も参照せずにはデコーディングすることができないことを示す。一例では、EssentialProperty126は、「urn:mpeg:dash:adaptation-set-external-stream:202X」に設定されたスキーム識別子ユニフォームリソース識別子(@schemeIdUri)を含んでよく、ここでXは、「1」、「2」、「3」等のような数字である。これは、アダプテーションセット110がESR114の外部ストリームを含むことを示し得る。一例では、EssentialProperty126内の@schemeIdUriは、ESR114に対応するMSR112の識別子(@id)値のリストを指定する値(@value属性)も含み得る。
【0059】
別の例では、外部ストリームアダプテーションセットフラグ(@esasflag)属性124が、アダプテーションセット110に関連付けられる構文に含まれる。@esasflag属性124は、アダプテーションセット110内の各表現がESR114であり、したがって、別の表現も参照せずにはデコーディングすることができないことを指定するように、真(true)に設定されることができる。別の例では、役割要素(role element)122を、アダプテーションセット110の構文内に含めることができる。役割要素122は、@esasflag属性が真に等しいときに、補助(supplementary)に等しい値(@value)属性を含むことができる。これは、アダプテーションセット110が補助アダプテーションセット110であり、したがって、ESR114を含むことを示す。
【0060】
上記の問題及び他の問題を解決するために、以下に要約されるような方法を開示する。項目は、一般的な概念を説明するための例と考えられるべきであり、狭義に解釈されるべきではない。さらに、これらの項目を個々に適用することができ、あるいは任意の方法で組み合わせることができる。
【0061】
例1
【0062】
一例において、「urn:mpeg:dash:adaptation-set-external-stream:202X」のスキーム識別子URI(@schemeIdUri)を有するエッセンシャルプロパティ(EssentialProperty)が指定され、ここで、Xは「1」、「2」、「3」等のような数字である。表現内のこのEssentialPropertyの存在は、表現がESRであり、それ自身によって消費又は再生されてはならないことを示す。さらに、アダプテーションセット内のこのEssentialPropertyの存在は、アダプテーションセット内の各表現がESRであり、それ自身によって消費又は再生されてはならないことを示す。
【0063】
例2
【0064】
一例において、「urn:mpeg:dash:adaptation-set-external-stream:202X」のスキーム識別子URI(@schemeIdUri)を有し、Xが「1」、「2」、「3」等のような数字であるEssentialPropertyは、該EssentialPropertyを含んでいるアダプテーションセット内の表現に関連付けられるメインストリーミング表現の識別子(@id)値のリストを指定する値(@value)属性を有するように更に指定される。@value属性内のi番目の@id値は、EssentialPropertyを含んでいるアダプテーションセット内のi番目の表現に対応する。
【0065】
例3
【0066】
別の例では、ルールは、@esasFlag属性の値が、アダプテーションセット内の各表現がESRであり、それ自身によって消費又は再生されてはならないことを指定するよう、真に等しいことを指定する。
【0067】
例4
【0068】
別の例では、ルールは、真に等しい@esasFlag属性を有する各アダプテーションセットについて、補助に等しい@value属性を有する役割要素が存在することを要求することがある。
【0069】
図2は、本明細書で開示される様々な技術が実装され得る例示のビデオ処理システム4000を示すブロック図である。様々な実装は、システム4000の構成要素の一部又はすべてを含んでよい。システム4000は、ビデオコンテンツを受け取るための入力4002を含んでもよい。ビデオコンテンツは、生又は非圧縮フォーマットで、例えば8又は10ビットの多成分ピクセル値で受け取られてよく、あるいは圧縮された又はエンコーディングされたフォーマットであってもよい。入力4002は、ネットワークインタフェース、周辺バスインタフェース又はストレージインタフェースを表してよい。ネットワークインタフェースの例は、Ethernet(登録商標)、受動光ネットワーク(PON)等のような有線インタフェースと、Wi-Fi又はセルラインタフェースのような無線インタフェースを含む。
【0070】
システム4000は、本文書で説明される様々なコーディング又はエンコーディング方法を実装し得るコーディング構成要素4004を含んでよい。コーディング構成要素4004は、入力4002からコーディング構成要素4004の出力へのビデオの平均ビットレートを低減して、ビデオのコーディングされた表現を生成し得る。コーディング技術は、したがって、時々、ビデオ圧縮又はビデオトランスコーディング技術と呼ばれることがある。コーディング構成要素4004の出力は、構成要素4006によって表されるように、記憶されるか又は接続された通信を介して伝送されてよい。入力4002で受け取られたビデオの記憶又は通信されたビットストリーム(又はコーディングされた)表現は、ディスプレイインタフェース4010に送信されるピクセル値又は表示可能なビデオを生成するために、構成要素4008によって使用されてよい。ビットストリーム表現からユーザ視聴可能ビデオを生成するプロセスは、時々、ビデオ復元(decompression)と呼ばれることがある。さらに、ある特定のビデオ処理操作は、「コーディング」操作又はツールと称されるが、コーディングツール又は操作はエンコーダで使用され、コーディングの結果を反対にする、対応するデコーディングツール又は操作は、デコーダで実行されることになることが認識されよう。
【0071】
周辺バスインタフェース又はディスプレイインタフェースの例は、ユニバーサルシリアルバス(USB)又は高精細度マルチメディアインタフェース(HDMI(登録商標))又はディスプレイポート等を含んでよい。ストレージインタフェースの例は、SATA(serial advanced technology attachment)、PCI、IDEインタフェース等を含む。本文書で説明される技術は、携帯電話、ラップトップ、スマートフォン、あるいはデジタルデータ処理及び/又はビデオ表示を実行することができる他のデバイスのような様々な電子デバイスにおいて具現化されてよい。
【0072】
図3は、例示のビデオ処理装置4100のブロック図である。装置4100は、本明細書で説明される方法の1つ以上を実装するために使用されてよい。装置4100は、スマートフォン、タブレット、コンピュータ、IoT(Internet of Things)受信機等において具現化されてよい。装置4100は、1つ以上のプロセッサ4102、1つ以上のメモリ4104及びビデオ処理回路4106を含んでよい。プロセッサ4102は、本文書で説明される1つ以上の方法を実装するよう構成されてよい。メモリ(複数のメモリ)4104は、本明細書で説明される方法及び技術を実装するために使用されるデータ及びコードを記憶するために使用されてよい。ビデオ処理回路4106は、ハードウェア回路において、本文書で説明されるいくつかの技術を実装するために使用されてよい。いくつかの実施形態では、ビデオ処理回路4106は、プロセッサ4102、例えばグラフィクスコプロセッサに少なくとも部分的に含まれてもよい。
【0073】
図4は、ビデオ処理の例示的方法4200のフローチャートである。方法4200は、ステップ4202において、DASH(Dynamic Adaptive Streaming over Hypertext transfer protocol)表現のEssentialPropertyを決定することを含む。一例では、EssentialPropertyは、表現がESRであることを示す。したがって、EssentialPropertyは、表現がそれ自身によって消費又は再生されてはならず、代わりにMSRとともに消費及び/又は再生されるべきであることを更に示す。別の例では、DASHアダプテーションセットのEssentialPropertyも決定されてよい。アダプテーションセット内のEssentialPropertyは、ESRであるアダプテーションセット内の各表現を示し得る。EssentialPropertyは、アダプテーションセット内に、各ESR内に又はその両方に含まれることがある。一例では、EssentialPropertyは、「urn:mpeg:dash:adaptation-set-external-stream:202X」(ただし、Xは「1」、「2」、「3」等のような数字である)に設定された@schemeIdUriを含み、これは、1つ以上のESRの存在を示す。一例では、EssentialPropertyは、対応するMSRの@id値を指定する@value属性を有する。別の例では、DASHアダプテーションセットの@esasflag属性も決定されてよい。この例では、@esasflag属性は、ESRであるアダプテーションセット内の各表現を指定するように真に等しい。一例では、役割要素がアダプテーションセットに含まれる。役割要素は、@esasflag属性が真に等しいとき、補助に等しい@value属性を含む。
【0074】
ステップ4204において、ESRに基づいて、ビジュアルメディアデータとメディアプレゼンテーションの間の変換が実行される。方法4200がエンコーダ上で実行されるとき、変換は、ビジュアルメディアデータからメディアプレゼンテーションを生成することを含む。変換は、MSRとESRの両方の存在を決定することと、ESRが1つ以上のMSRとともに消費されるべきであることを示すように構文要素をコーディングすることを含む。方法4200がデコーダ上で実行されるとき、変換は、アダプテーションセット及び/又は表現を解析してデコーディングすることと、ESRの存在を決定することと、対応するMSRとともにESRをデコーディングして、ビジュアルメディアデータを取得することを含む。
【0075】
方法4200は、ビデオエンコーダ4400、ビデオデコーダ4500及び/又はエンコーダ4600のように、プロセッサとその上に命令を有する非一時的メモリとを含むビデオデータを処理するための装置において実装されることが可能であることに留意されたい。そのような場合、命令は、プロセッサによって実行されると、該プロセッサに方法4200を実行させる。さらに、方法4200は、ビデオコーディングデバイスによる使用のためのコンピュータプログラム製品を含む非一時的コンピュータ読取可能媒体によって実行されることが可能である。コンピュータプログラム製品は、プロセッサによって実行されると、ビデオコーディングデバイスに方法4200を実行させるように、非一時的コンピュータ読取可能媒体上に記憶されるコンピュータ実行可能命令を含む。
【0076】
図5は、本開示の技術を利用し得る例示のビデオコーディングシステム4300を示すブロック図である。ビデオコーディングシステム4300は、ソースデバイス4310と宛先デバイス4320を含んでよい。ソースデバイス4310は、エンコーディングされたビデオデータを生成し、ビデオエンコーディングデバイスと称されてよい。宛先デバイス4320は、ソースデバイス4310によって生成された、エンコーディングされたビデオデータをデコーディングしてよく、ビデオデコーディングデバイスと称されてよい。
【0077】
ソースデバイス4310は、ビデオソース4312、ビデオエンコーダ4314及び入力/出力(I/O)インタフェース4316を含んでよい。ビデオソース4312は、ビデオキャプチャデバイス、ビデオコンテンツプロバイダからビデオデータを受け取るインタフェース及び/又はビデオデータを生成するためのコンピュータグラフィクスシステム又はそのようなソースの組合せのようなソースを含んでよい。ビデオデータは、1つ以上のピクチャを含んでよい。ビデオエンコーダ4314は、ビデオソース4312からのビデオデータをエンコーディングして、ビットストリームを生成する。ビットストリームは、ビデオデータのコーディングされた表現を形成するビットのシーケンスを含んでよい。ビットストリームは、コーディングされたピクチャ及び関連付けられるデータを含んでよい。コーディングされたピクチャは、ピクチャのコーディングされた表現である。関連付けられるデータは、シーケンスパラメータセット、ピクチャパラメータセット及び他の構文構造を含んでよい。I/Oインタフェース4316は、変調器/復調器(モデム)及び/又はトランスミッタを含んでよい。エンコーディングされたビデオデータは、I/Oインタフェース4316を介してネットワーク4330を通して宛先デバイス4320に直接伝送されてよい。エンコーディングされたビデオデータはまた、宛先デバイス4320によるアクセスのために、記憶媒体/サーバ4340上に記憶されてもよい。
【0078】
宛先デバイス4320は、I/Oインタフェース4326、ビデオデコーダ4324及びディスプレイデバイス4322を含んでよい。I/Oインタフェース4326は、受信機及び/又はモデムを含んでよい。I/Oインタフェース4326は、ソースデバイス4310又は記憶媒体/サーバ4340から、エンコーディングされたビデオデータを取得してよい。ビデオデコーダ4324は、エンコーディングされたビデオデータをデコーディングしてよい。ディスプレイデバイス4322は、デコーディングされたビデオデータをユーザに表示してよい。ディスプレイデバイス4322は、宛先デバイス4320と統合されてよく、あるいは宛先デバイス4320の外部であってよく、外部ディスプレイデバイスとインタフェースするよう構成され得る。
【0079】
ビデオエンコーダ4314及びビデオデコーダ4324は、HEVC(High Efficiency Video Coding)規格、VVM(Versatile Video Coding)規格並びに他の現在の及び/又は更なる規格のようなビデオ圧縮規格に従って動作し得る。
【0080】
図6は、ビデオエンコーダ4400の例を示すブロック図であり、ビデオエンコーダ4400は、
図5に示されるシステム4300内のビデオエンコーダ4314であってもよい。ビデオエンコーダ4400は、本開示の技術のいずれか又はすべてを実行するよう構成されてよい。ビデオエンコーダ4400は、複数の機能構成要素を含む。本開示で説明される技術は、ビデオエンコーダ4400の様々な構成要素の間で共有され得る。いくつかの例において、プロセッサは、本開示で説明される技術のいずれか又はすべてを実行するよう構成されてよい。
【0081】
ビデオエンコーダ4400の機能構成要素は、分割ユニット4401、モード選択ユニット4403を含み得る予測ユニット4402、動き推定ユニット4404、動き補償ユニット4405、イントラ予測ユニット4406、残差生成ユニット4407、変換処理ユニット4408、量子化ユニット4409、逆量子化ユニット4410、逆変換ユニット4411、再構成ユニット4412、バッファ4413及びエントロピーエンコーディングユニット4414を含んでよい。
【0082】
他の例では、ビデオエンコーダ4400は、より多くの、より少ない又は異なる機能構成要素を含んでもよい。一例では、予測ユニット4402は、イントラブロックコピー(IBC:intra block copy)ユニットを含んでよい。IBCユニットは、IBCモードで予測を実行してよく、IBCモードでは、少なくとも1つの参照ピクチャは、現在のビデオブロックが配置されるピクチャである。
【0083】
さらに、動き推定ユニット4404及び動き補償ユニット4405のようないくつかの構成要素が高度に統合されてもよいが、ビデオエンコーダ4400の例では、説明の目的のために別個に表されている。
【0084】
分割ユニット4401は、ピクチャを1つ以上のビデオブロックに分割してよい。ビデオエンコーダ4400及びビデオデコーダ4500は、様々なビデオブロックサイズをサポートし得る。
【0085】
モード選択ユニット4403は、例えばエラー結果に基づいて、コーディングモード、すなわち、イントラ又はインターのうちの1つを選択し、結果として得られるイントラ又はインターコーディングされたブロックを、残差ブロックデータを生成するために残差生成ユニット4407に、そして参照ピクチャとして使用するためのエンコーディングされたブロックを再構成するために再構成ユニット4412に提供してよい。いくつかの例において、モード選択ユニット4403は、予測がイントラ予測信号とインター予測信号に基づく、イントラ及びインター予測の組合せ(CCIP)モードを選択してもよい。モード選択ユニット4403はまた、インター予測の場合、ブロックについて動きベクトルの解像度(例えばサブピクセル又は整数ピクセル精度)を選択してもよい。
【0086】
現在のビデオブロックにおいてインター予測を実行するために、動き推定ユニット4404は、バッファ4413からの1つ以上の参照フレームを現在のビデオブロックと比較することによって、現在のビデオブロックの動き情報を生成し得る。動き補償ユニット4405は、動き情報と、現在のビデオブロックに関連付けられるピクチャ以外の、バッファ4413からのピクチャのデコーディングされたサンプルとに基づいて、現在のビデオブロックについての予測ビデオブロックを決定し得る。
【0087】
動き推定ユニット4404及び動き補償ユニット4405は、例えば現在のビデオブロックがIスライス内にあるか、Pスライス内にあるか又はBスライス内にあるかに応じて、現在のビデオブロックについて異なる操作を実行してもよい。
【0088】
いくつかの例では、動き推定ユニット4404は、現在のビデオブロックについて、単一方向予測を実行してよく、動き推定ユニット4404は、現在のビデオブロックの参照ビデオブロックについて、リスト0又はリスト1の参照ピクチャを検索してよい。次に、動き推定ユニット4404は、参照ビデオブロックを含むリスト0又はリスト1内の参照ピクチャを示す参照インデックスと、現在のビデオブロックと参照ビデオブロックとの間の空間変位を示す動きベクトルを生成してもよい。動き推定ユニット4404は、現在のビデオブロックの動き情報として、参照インデックス、予測方向インジケータ及び動きベクトルを出力してよい。動き補償ユニット4405は、現在のビデオブロックの動き情報によって示される参照ビデオブロックに基づいて、現在のブロックの予測ビデオブロックを生成してよい。
【0089】
他の例では、動き推定ユニット4404は、現在のビデオブロックについて、双方向予測を実行してよく、動き推定ユニット4404は、現在のビデオブロックの参照ビデオブロックについて、リスト0内の参照ピクチャを検索してよく、また、現在のビデオブロックの別の参照ビデオブロックについて、リスト1内の参照ピクチャを検索してもよい。動き推定ユニット4404は、次いで、参照ビデオブロックを含んでいるリスト0及びリスト1内の参照ピクチャを示す参照インデックスと、参照ビデオブロックと現在のビデオブロックとの間の空間変位を示す動きベクトルを生成し得る。動き推定ユニット4404は、現在のビデオブロックの動き情報として、現在のビデオブロックの参照インデックスと動きベクトルを出力してよい。動き補償ユニット4405は、現在のビデオブロックの動き情報によって示される参照ビデオブロックに基づいて、現在のビデオブロックの予測ビデオブロックを生成し得る。
【0090】
いくつかの例では、動き推定ユニット4404は、デコーダのデコーディング処理のために、動き情報の完全なセットを出力してよい。いくつかの例では、動き推定ユニット4404は、現在のビデオについての動き情報の完全なセットを出力しないことがある。むしろ、動き推定ユニット4404は、別のビデオブロックの動き情報に関連して、現在のビデオブロックの動き情報をシグナリングしてもよい。例えば動き推定ユニット4404は、現在のビデオブロックの動き情報が、隣接するビデオブロックの動き情報と十分に類似していると判断することがある。
【0091】
一例では、動き推定ユニット4404は、現在のビデオブロックに関連付けられる構文構造において、現在のビデオブロックが別のビデオブロックと同じ動き情報を有することをビデオデコーダ4500に示す値を示してよい。
【0092】
別の例では、動き推定ユニット4404は、現在のビデオブロックに関連付けられる構文構造において、別のビデオブロックと動きベクトル差(MVD:motion vector difference)を識別してよい。動きベクトル差は、現在のビデオブロックの動きベクトルと、示されたビデオブロックの動きベクトルとの間の差を示す。ビデオデコーダ4500は、示されたビデオブロックの動きベクトルと、動きベクトル差を使用して、現在のビデオブロックの動きベクトルを決定してよい。
【0093】
上記で議論したように、ビデオエンコーダ4400は、動きベクトルを予測的にシグナリングし得る。ビデオエンコーダ4400によって実装され得る予測シグナリング技術の2つの例は、高度動きベクトル予測(AMVP:advanced motion vector prediction)とマージモードシグナリングを含む。
【0094】
イントラ予測ユニット4406は、現在のビデオブロックに対してイントラ予測を実行してよい。イントラ予測ユニット4406が現在のビデオブロックに対してイントラ予測を実行するとき、イントラ予測ユニット4406は、同じピクチャ内の他のビデオブロックのデコーディングされたサンプルに基づいて、現在のビデオブロックについて予測データを生成し得る。現在のビデオブロックについての予測データは、予測ビデオブロック及び様々な構文要素を含んでよい。
【0095】
残差生成ユニット4407は、現在のビデオブロックから、現在のビデオブロックの予測ビデオブロックを減算することによって、現在のビデオブロックについての残差データを生成し得る。現在のビデオブロックの残差データは、現在のビデオブロック内のサンプルの異なるサンプル構成要素に対応する残差ビデオブロックを含んでよい。
【0096】
他の例では、例えばスキップモードにおいて、現在のビデオブロックについて、現在のビデオブロックのための残差データが存在しないことがあり、残差生成ユニット4407は減算操作を実行しなくてよい。
【0097】
変換処理ユニット4408は、現在のビデオブロックに関連付けられる残差ビデオブロックに1つ以上の変換を適用することによって、現在のビデオブロックについて1つ以上の変換係数ビデオブロックを生成してよい。
【0098】
変換処理ユニット4408が、現在のビデオブロックに関連付けられる変換係数ビデオブロックを生成した後、量子化ユニット4409は、現在のビデオブロックに関連付けられる1つ以上の量子化パラメータ(QP:quantization parameter)値に基づいて、現在のビデオブロックに関連付けられる変換係数ビデオブロックを量子化してよい。
【0099】
逆量子化ユニット4410及び逆変換ユニット4411は、それぞれ、変換係数ビデオブロックに逆量子化及び逆変換を適用して、変換係数ビデオブロックから残差ビデオブロックを再構成してよい。再構成ユニット4412は、再構成された残差ビデオブロックを、予測ユニット4402によって生成された1つ以上の予測ビデオブロックからの対応するサンプルに追加して、バッファ4413内への記憶のために、現在のブロックに関連付けられる再構成ビデオブロックを生成してよい。
【0100】
再構成ユニット4412がビデオブロックを再構成した後、ループフィルタリング操作が実行され、ビデオブロックにおけるビデオブロッキングアーチファクトを低減し得る。
【0101】
エントロピーエンコーディングユニット4414は、ビデオエンコーダ4400の他の機能構成要素からデータを受け取ってよい。エントロピーエンコーディングユニット4414がデータを受け取ると、エントロピーエンコーディングユニット4414は、1つ以上のエントロピーエンコーディング操作を実行して、エントロピーエンコーディングされたデータを生成し、エントロピーエンコーディングされたデータを含むビットストリームを出力してよい。
【0102】
図7は、ビデオデコーダ4500の例を示すブロック図であり、ビデオデコーダ4500は、
図5に図示されるシステム4300内のビデオデコーダ4324であってもよい。ビデオデコーダ4500は、本開示の技術のいずれか又はすべてを実行するように構成されてよい。図示される例では、ビデオデコーダ4500は、複数の機能構成要素を含む。本開示で説明される技術は、ビデオデコーダ4500の様々な構成要素の間で共有されてよい。いくつかの例において、プロセッサは、本開示で説明される技術のいずれか又はすべてを実行するように構成されてよい。
【0103】
図示される例では、ビデオデコーダ4500は、エントロピーデコーディングユニット4501、動き補償ユニット4502、イントラ予測ユニット4503、逆量子化ユニット4504、逆変換ユニット4505、再構成ユニット4506及びバッファ4507を含む。ビデオデコーダ4500は、いくつかの例において、ビデオエンコーダ4400に関して説明されたエンコーディングパスと概ね逆のデコーディングパスを実行してよい。
【0104】
エントロピーデコーディングユニット4501は、エンコーディングされたビットストリームを取り出してよい。エンコーディングされたビットストリームは、エントロピーコーディングされたビデオデータ(例えばビデオデータのエンコーディングされたブロック)を含み得る。エントロピーデコーディングユニット4501は、エントロピーコーディングされたビデオデータをデコーディングしてよく、エントロピーデコーディングされたビデオデータから、動き補償ユニット4502は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス及び他の動き情報を含む動き情報を決定してよい。動き補償ユニット4502は、例えばAMVP及びマージモードを実行することによって、そのような情報を決定してよい。
【0105】
動き補償ユニット4502は、動き補償されたブロックを生成してよく、場合によっては、補間フィルタに基づいて補間を実行してもよい。サブピクセル精度で使用される補間フィルタのための識別子が、構文要素に含まれてもよい。
【0106】
動き補償ユニット4502は、ビデオブロックのエンコーディング中にビデオエンコーダ4400によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数ピクセルについての補間値を計算してよい。動き補償ユニット4502は、受け取った構文情報に従ってビデオエンコーダ4400によって使用される補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成してよい。
【0107】
動き補償ユニット4502は、エンコーディングされたビデオシーケンスのフレーム及び/又はスライスをエンコーディングするために使用されるブロックのサイズを決定するための構文情報、エンコーディングされたビデオシーケンスのピクチャの各マクロブロックがどのように分割されるかを記述する分割情報、各分割がどのようにエンコーディングされるかを示すモード、各インターコーディングされたブロックについての1つ以上の参照フレーム(及び参照フレームリスト)、及びエンコーディングされたビデオシーケンスをデコーディングするための他の情報、のうちのいくつかを使用してもよい。
【0108】
イントラ予測ユニット4503は、例えばビットストリームで受け取られるイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成してよい。逆量子化ユニット4504は、ビットストリームで提供され、かつエントロピーデコーディングユニット4501によってデコーディングされた、量子化されたビデオブロック係数を逆量子化する、すなわち、脱量子化(de-quantize)する。逆変換ユニット4505は逆変換を適用する。
【0109】
再構成ユニット4506は、残差ブロックを、動き補償ユニット4502又はイントラ予測ユニット4503によって生成された対応する予測ブロックと合算して、デコーディングされたブロックを形成してよい。所望であれば、ブロック性アーチファクトを除去するために、デブロッキングフィルタも適用して、デコーディングされたブロックをフィルタリングしてもよい。デコーディングされたビデオブロックは、その後バッファ4507に記憶され、バッファ4507は、後続の動き補償/イントラ予測のための参照ブロックを提供し、ディスプレイデバイス上での提示のために、デコーディングされたビデオも生成する。
【0110】
図8は、例示のエンコーダ4600の概略図である。エンコーダ4600は、VVCの技術を実装するのに適している。エンコーダ4600は、3つのインループフィルタ、すなわち、デブロッキングフィルタ(DF:deblocking filter)4602、サンプルアダプティブオフセット(SAO:sample adaptive offset)4604及びアダプティブループフィルタ(ALF:adaptive loop filter)4606を含む。予め定義されたフィルタを使用するDF4602とは異なり、SAO4604及びALF4606は、それぞれ、オフセット及びフィルタ係数をシグナリングするコーディングされたサイド情報を用いて、オフセットを加えることによって及び有限インパルス応答(FIR:finite impulse response)フィルタを適用することによって、現在のピクチャの元のサンプルを利用して、元のサンプルと再構成されたサンプルとの間の平均二乗誤差を低減する。ALF4606は、各ピクチャの最終処理段階に配置され、前の段階によって生成されたアーチファクトを捕捉して修復しようとするツールと見なすことができる。
【0111】
エンコーダ4600は、入力ビデオを受け取るように構成される、イントラ予測構成要素4608と動き推定/補償(ME/MC)構成要素4610を更に含む。イントラ予測構成要素4608は、イントラ予測を実行するように構成され、一方、ME/MC構成要素4610は、参照ピクチャバッファ4612から取得される参照ピクチャを利用して、インター予測を実行するように構成される。インター予測又はイントラ予測からの残差ブロックは、変換(T)構成要素4614及び量子化(Q)構成要素4616に供給されて、量子化された残差変換係数を生成し、量子化された残差変換係数は、エントロピーコーディング構成要素4618に供給される。エントロピーコーディング構成要素4618は、予測結果及び量子化された変換係数をエントロピーコーディングし、これを、ビデオデコーダ(図示せず)に向けて伝送する。量子化構成要素4616から出力される量子化構成要素は、逆量子化(IQ)構成要素4620、逆変換(IT)構成要素4622及び再構成(REC)構成要素4624に供給されてよい。REC構成要素4624は、画像が参照ピクチャバッファ4612に記憶される前に、フィルタリングのために、これらの画像をDF4602、SAO4604及びALF4606に出力することができる。
【0112】
次に、いくつかの例で好ましい解決策のリストを示す。
【0113】
以下の解決策は、本明細書で議論される技術の例を示す。
【0114】
1.メディアデータを処理する方法(例えば
図4に示される方法4200)であって、ルールに従って、ビジュアルメディア情報と、該ビジュアルメディア情報のデジタル表現との間の変換を実行するステップを含み、ここで、デジタル表現は、該デジタル表現におけるビジュアルメディア情報のストリームについて、所定のタイプの構文要素を含み、ルールは、ビジュアルメディア情報のストリームがそれ自身によって消費又は再生されないことに応答して、構文要素がデジタル表現に含まれ、予め指定された値を有することを指定する、方法。
【0115】
2.解決策1の方法において、構文要素は、所定のタイプのエッセンシャルタイプの構文要素を含む。
【0116】
3.解決策1-2の方法において、構文要素は、ビジュアルメディア情報のストリームに関連付けられるアダプテーションセットに含まれる。
【0117】
4.解決策1-3のいずれかの方法において、ルールは、リストがデジタル表現に含まれることを指定し、リストのi番目のエントリは、ビジュアルメディア情報のi番目の表現を示す。
【0118】
5.解決策1の方法において、構文要素はフラグであり、ルールは、ビジュアルメディア情報のストリームがそれ自身によって消費又は再生されないことに応答して、予め指定された値が論理真であることを指定する。
【0119】
6.解決策1の方法において、構文要素は、ビジュアルメディア情報のストリームの役割を示し、ルールは、ビジュアルメディア情報のストリームがそれ自身によって消費又は再生されないことに応答して、ビジュアルメディア情報のストリームが補助タイプであることを示すように構文要素を設定することを指定する。
【0120】
7.ビジュアルメディア情報のデジタル表現を取得するステップであって、デジタル表現は、解決策1-6のいずれかに記載の方法に従って生成される、ステップと、デジタル表現をストリーミングするステップとを含む、メディアデータを処理する方法。
【0121】
8.ビジュアルメディア情報のデジタル表現を受け取るステップであって、デジタル表現は、解決策1-6のいずれかに記載の方法に従って生成される、ステップと、デジタル表現からビジュアルメディア情報を生成するステップとを含む、メディアデータを処理する方法。
【0122】
9.解決策1-8のいずれかの方法において、変換は、ビジュアルメディアデータのビットストリーム表現を生成することと、フォーマットルールに従ってビットストリーム表現をファイルに保存することを含む。
【0123】
10.解決策1-8のいずれかの方法において、変換は、フォーマットルールに従ってファイルを解析してビジュアルメディアデータを回復することを含む。
【0124】
11.解決策1-10のうちの1つ以上に記載される方法を実装するよう構成されるプロセッサを含む、ビデオデコーディング装置。
【0125】
12.解決策1-10のうちの1つ以上に記載される方法を実装するよう構成されるプロセッサを含む、ビデオエンコーディング装置。
【0126】
13.コンピュータコードを記憶したコンピュータプログラム製品であって、コードは、プロセッサによって実行されると、プロセッサに、解決策1-10のいずれかに記載される方法を実装させる。
【0127】
14.解決策1-10のいずれかに従って生成されるファイルフォーマットにビットストリーム表現が準拠するコンピュータ読取可能媒体。
【0128】
15.本文書で説明される方法、装置又はシステム。
【0129】
本明細書で説明される解決策において、エンコーダは、フォーマットルールに従ってコーディングされた表現を生成することによって、フォーマットルールに準拠し得る。本明細書で説明される解決策において、デコーダは、フォーマットルールを使用し、フォーマットルールに従って構文要素の存在及び不存在の知識によりコーディングされた表現内の構文要素を解析して、デコーディングされたビデオを生成することができる。
【0130】
本文書において、「ビデオ処理」という用語は、ビデオエンコーディング、ビデオデコーディング、ビデオ圧縮又はビデオ復元を指してよい。例えばビデオ圧縮アルゴリズムは、ビデオのピクセル表現から対応するビットストリーム表現への又はその逆への変換の間に適用されてよい。現在のビデオブロックのビットストリーム表現は、例えば構文によって定義されるように、同一場所に配置(co-located)されるか又はビットストリーム内の異なる場所に広がるビットに対応し得る。例えばマクロブロックは、変換されてコーディングされたエラー残差値に関して、またビットストリーム内のヘッダ及び他のフィールド内のビットも使用して、エンコーディングされてよい。さらに、変換中に、デコーダは、上記の解決策に記載されるように、決定に基づいて、いくつかのフィールドが存在し得るか又は不存在であり得ることの知識により、ビットストリームを解析し得る。同様に、エンコーダは、ある特定の構文フィールドが含まれるべきか又は含まれないべきかを決定し、それに応じて、その構文フィールドを含めるか又はコーディングされた表現から除外することによって、コーディングされた表現を生成してよい。
【0131】
本文書で説明される、開示される又は他の解決策、例、実施形態、モジュール及び機能的操作を、デジタル電子回路において、あるいは本文書で開示される構造及びそれらの構造的均等物を含むコンピュータソフトウェア、ファームウェア又はハードウェア又はそれらの1つ以上の組合せで実装することができる。開示される及び他の実施形態を、1つ以上のコンピュータプログラム製品として、すなわち、データ処理装置による実行のため又はデータ処理装置の動作を制御するために、コンピュータ読取可能媒体上にエンコーディングされるコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。コンピュータ読取可能媒体は、機械読取可能記憶装置、機械読取可能記憶基板、メモリデバイス、機械読取可能伝搬信号に影響を与える物質の組成物又は1つ以上のそれらの組合せとすることができる。「データ処理装置」という用語は、例としてプログラマブルプロセッサ、コンピュータ又は複数のプロセッサ又はコンピュータを含む、データを処理するためのすべての装置、デバイス及び機械を包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を生成するコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム又はそれらの1つ以上の組合せを構成するコードを含むことができる。伝搬信号は、適切な受信機装置への伝送のために情報をエンコーディングするように生成される、人工的に生成される信号、例えば機械生成される電気信号、光学信号又は電磁信号である。
【0132】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト又はコードとしても知られる)は、コンパイル又は解釈された言語を含め、任意の形態のプログラミング言語で書くことができ、スタンドアロンプログラムとして又はモジュールとして、構成要素、サブルーチン又はコンピューティング環境における使用に適した他のユニットを含む、任意の形態で展開されることができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応しない。プログラムは、他のプログラム又はデータを保持するファイルの一部分(例えばマークアップ言語文書に記憶される1つ以上のスクリプト)内に、問題のプログラム専用の単一ファイル内に、あるいは複数の協調ファイル(例えば1つ以上のモジュール、サブプログラム又はコードの一部分を記憶するファイル)内に記憶されることができる。コンピュータプログラムは、1つのコンピュータ上で、あるいは1箇所に配置されるか又は複数箇所にわたって分散されて通信ネットワークによって相互接続される複数のコンピュータ上で実行されるよう展開されることができる。
【0133】
本文書で説明されるプロセス及び論理フローを、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行し、入力データに対して操作をして出力を生成することによって機能を実行することができる。また、プロセス及び論理フローを、特殊目的論理回路によって、例えばFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)によって実行することもでき、また、そのような特殊目的論理回路として装置を実装することもできる。
【0134】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用及び専用マイクロプロセッサの両方及び任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、読取専用メモリ又はランダムアクセスメモリ又はその両方から命令及びデータを受け取ることになる。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令及びデータを記憶するための1つ以上のメモリデバイスである。一般に、コンピュータはまた、例えば磁気、光磁気ディスク又は光ディスクのようにデータを記憶するための1つ以上の大容量ストレージデバイスを含むか、データをそのような1つ以上の大容量ストレージデバイスから受け取るか又はデータをそのような1つ以上の大容量ストレージデバイスへ転送するか又はその両方のために動作可能に結合されることになる。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令及びデータを記憶するのに適したコンピュータ読取可能媒体は、例として半導体メモリデバイス、例えば消去可能なプログラマブル読取専用メモリ(EPROM)、電気的消去可能なプログラマブル読取専用メモリ(EEPROM)及びフラッシュメモリデバイス;磁気ディスク、例えば内部ハードディスク又は取外可能ディスク;光磁気ディスク;及びコンパクトディスク読取専用メモリ(CD ROM)及びデジタル多用途ディスク読取専用メモリ(DVD-ROM)ディスクを含む、不揮発性メモリ、媒体及びメモリデバイスのすべての形態を含む。プロセッサ及びメモリは、特殊目的論理回路によって補足されるか又は特殊目的論理回路に組み込まれることができる。
【0135】
本特許文書には多くの詳細が含まれているが、これらは、いずれかの主題の範囲又は特許請求され得るものに対する限定として解釈されるべきではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。本特許文書において別個の実施形態の文脈で説明される特定の特徴を、単一の実施形態において組み合わせて実装することもできる。反対に、単一の実施形態の文脈において説明される様々な特徴を、複数の実施形態において別々に又は任意の適切な副次的組合せで実装することもできる。さらに、特徴は、特定の組合せにおいて作用するものとして上述され、最初にそのように特許請求されることもあるが、特許請求される組合せからの1つ以上の特徴が、場合によってが、その組合せから削除される可能性があり、特許請求される組合せは、副次的組合せ又は副次的組合せのバリエーションに向けられてもよい。
【0136】
同様に、図面では動作が特定の順序で示されているが、これは、所望の結果を達成するために、そのような動作を示される特定の順序で又は逐次に実行すること、あるいはすべての図示される動作を実行することを要求するものとして理解されるべきではない。さらに、本特許文書で説明される実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を要求するものとして理解されるべきではない。
【0137】
わずかな実装及び例のみが説明されているが、本特許文書で説明され、例示されていることに基づいて、他の実装、拡張及びバリエーションを成すことができる。
【0138】
第1構成要素は、第1構成要素と第2構成要素との間の線、トレース又は別の媒体を除き、介在する構成要素が存在しないときは、第2構成要素に直接結合される。第1構成要素は、第1構成要素と第2構成要素との間に、線、トレース又は別の媒体以外に介在する構成要素が存在するときは、第2構成要素に間接的に結合される。「結合される」という用語又はその変形は、直接結合と間接的結合の両方を含む。「約」という用語の使用は、特段の記載がない限り、後続の数字の±10%を含む範囲を意味する。
【0139】
本開示においていくつかの実施形態が提供されているが、開示されたシステム及び方法は、本開示の精神又は範囲から逸脱することなく、多くの他の特定の形態で具現化される可能性があることを理解されたい。本実施例は、例示的なものであって、限定的なものではないと考えられ、その意図は、本明細書で与えられる詳細に限定されない。例えば様々な要素又は構成要素が、別のシステムに組み合わされるか又は統合されてよく、あるいはある特定の特徴が省略されるか、実装されなくてよい。
【0140】
加えて、様々な実施形態において個別又は別個に説明され、図示された技術、システム、サブシステム及び方法は、本開示の範囲から逸脱することなく、他のシステム、モジュール、技術又は方法と組み合わされるか又は統合されてよい。結合されるものとして示され又は議論される他のアイテムは、直接的に接続されてよく、あるいは電気的、機械的又は他の方法で、いくつかのインタフェース、デバイス又は中間構成要素を介して間接的に結合又は通信されてよい。変更、置換及び代替の他の例は、当業者によって確認可能であり、本明細書に開示される精神及び範囲から逸脱することなく成し得ることができる。
【外国語明細書】