JP6312704B2 - ビデオ・スプライシングを単純化する、バッファリング情報のためのシンタックス及びセマンティックス - Google Patents

ビデオ・スプライシングを単純化する、バッファリング情報のためのシンタックス及びセマンティックス Download PDF

Info

Publication number
JP6312704B2
JP6312704B2 JP2015551816A JP2015551816A JP6312704B2 JP 6312704 B2 JP6312704 B2 JP 6312704B2 JP 2015551816 A JP2015551816 A JP 2015551816A JP 2015551816 A JP2015551816 A JP 2015551816A JP 6312704 B2 JP6312704 B2 JP 6312704B2
Authority
JP
Japan
Prior art keywords
value
picture
cpbrd
sei message
current picture
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015551816A
Other languages
English (en)
Other versions
JP2016506698A (ja
JP2016506698A5 (ja
Inventor
ジェイ. サリヴァン,ゲイリー
ジェイ. サリヴァン,ゲイリー
チュー,リホア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2016506698A publication Critical patent/JP2016506698A/ja
Publication of JP2016506698A5 publication Critical patent/JP2016506698A5/ja
Application granted granted Critical
Publication of JP6312704B2 publication Critical patent/JP6312704B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/147Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Signal Processing For Recording (AREA)
  • User Interface Of Digital Computer (AREA)

Description

エンジニアは、デジタル・ビデオのビット・レートを低減させるために、圧縮(ソース符号化とも呼ばれる)を使用する。圧縮は、ビデオ情報をより低いビット・レート形式に変換することにより、ビデオ情報を記憶して伝送するコストを低減させる。伸張(復号化とも呼ばれる)は、圧縮形式からオリジナル情報のバージョンを再構築する。「コーデック」はエンコーダ/デコーダ・システムである。
ここ20年の間、ITU−T H.261規格、H.262(MPEG−2又はISO/IEC 13818−2)規格、H.263規格、及びH.264(MPEG−4 AVC又はISO/IEC 14496−10)規格、並びに、MPEG−1(ISO/IEC 11172−2)規格、MPEG−4 Visual(ISO/IEC 14496−2)規格、及びSMPTE 421M(VC−1)規格を含む様々なビデオ・コーデック規格が採用されてきた。より最近では、HEVC(ITU−T H.265又はISO/IEC 23008−2)規格を策定中である。ビデオ・コーデック規格は、通常、特定の機能が符号化及び復号化において使用されるときの、符号化ビデオ・ビットストリームのシンタックスのためのオプション、ビットストリームにおける詳細パラメータを定義している。多くの場合、ビデオ・コーデック規格はまた、デコーダが復号化において整合する結果を達成するために実行すべき復号化オペレーションに関する詳細を提供している。コーデック規格とは別に、様々なプロプライエタリ・コーデック・フォーマット(proprietary codec format)が、符号化ビデオ・ビットストリームのシンタックスのための他のオプション及び対応する復号化オペレーションを定義している。
符号化ビデオ・ビットストリームにおける1つのタイプのパラメータは、符号化ピクチャ・バッファ引き抜き遅延(「CPBRD(coded picture buffer removal delay)」)である。一般に、所与のピクチャのCPBRD値は、デコーダにおいて、そのピクチャに関連付けられた符号化データがバッファから引き抜かれることになる名目上の時間(nominal time)を規定する。ピクチャの符号化データが、正確な時間に引き抜かれる場合、オペレーションの通常モードに従うと、デコーダ・バッファは、オーバーフローしない(これは、符号化データの損失を生じさせることがある)、あるいは、アンダーフローしない(これは、「グリッチ(glitching)」又は連続的再生の他の中断をもたらす場合がある)。低遅延モードでは、アンダーフローは、いくつかの状況において許容されるが、(放送(broadcasting)のために通常使用されるような)非低遅延モードの下では、バッファ・アンダーフローは許容されない。従来から仮想リファレンス・デコーダ(「HRD(hypothetical reference decoder)」)又はビデオ・バッファリング確認器(「VBV(video buffering verifier)」と呼ばれているバッファ・モデルは、CPBRD値と、レート値、バッファ・サイズ値、及びバッファ・フルネス値又は(再生が開始する前の)初期バッファリング遅延値等の他のパラメータと、を使用して、復号化システムのバッファリング・リソース内でビットストリームを復号化できることを確認し、デコーダが復号化プロセスのオペレーションのタイミング及びステップを判定するのを助ける。
多くのコンテキストにおいて、異なるビデオ・シーケンスのビットストリームは、一緒にスプライシングされる。例えば、そのようなスプライシングを使用して、テレビ番組にコマーシャル又は一連のコマーシャルを挿入することができる、あるいは、異なるテレビ番組間を切り替えることができる。CPBRD値をシグナリングする既存の手法は、CPBRD値を調整してスプライシングを考慮するために、スプライシング中の面倒且つ潜在的に困難なオペレーションをもたらすことがある。別の問題は、2つのソース・ストリームが独立したHRD準拠のものであり得るが、スプライシング後、結果として生じるスプライシング・ストリームがHRD準拠のものであると保障されない、ことである。
要約すると、詳細な説明は、スプライシング・オペレーションを単純化する、符号化ピクチャ・バッファ引き抜き遅延(「CPBRD」)値のシンタックス及び/又はセマンティックスにおけるイノベーションを提供する。詳細には、このイノベーションは、所定のピクチャのCPBRD値をシグナリングする新たな方法により、スプライシング・オペレーションをサポートする。ここで、1つのビデオ・シーケンスのビットストリーム又はビットストリームの一部分が、別のビデオ・シーケンスの別のビットストリーム又は別のビットストリームの一部分に連結されるときに、そのようなCPBRD値を単に再使用することができる。
本明細書で説明するイノベーションの一態様に従うと、ビデオ・エンコーダ又は他のツールは、ビデオ・シーケンスの所与のピクチャのCPBRD値を設定する。所与のピクチャのCPBRD値は、復号化順で先行するピクチャがバッファリング期間付加拡張情報(「BP SEI(buffering period supplemental enhancement information)」)メッセージを有しているかどうかにかかわらず、その先行するピクチャの名目上の符号化ピクチャ・バッファ(「CPB」)引き抜き時間に対するインクリメント値(increment value)を示す。エンコーダ又は他のツールは、次いで、所与のピクチャのCPBRD値をシグナリングする。CPBRD値は、フラグがCPBRD値をどのように解釈するかを示す単一値手法(single-value approach)に従ってシグナリングされてもよいし、(別の解釈を有する)別のCPBRD値もシグナリングされる2値手法(two-value approach)に従ってシグナリングされてもよいし、フラグ及び差分値(delta value)を使用する2値手法に従ってシグナリングされてもよいし、あるいは、別の手法に従ってシグナリングされてもよい。
本明細書で説明するイノベーションの別の態様に従うと、ビデオ・デコーダ又は他のツールは、ビデオ・シーケンスの所与のピクチャのCPBRD値を受信する。所与のピクチャのCPBRD値は、復号化順で先行するピクチャがBP SEIメッセージを有しているかどうかにかかわらず、その先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値を示す。ビデオ・デコーダ又は他のツールは、次いで、所与のピクチャのCPBRD値を解析する。CPBRD値は、フラグがCPBRD値をどのように解釈するかを示す単一値手法に従ってシグナリングされてもよいし、(別の解釈を有する)別のCPBRD値もシグナリングされる2値手法に従ってシグナリングされてもよいし、フラグ及び差分値を使用する2値手法に従ってシグナリングされてもよいし、あるいは、別の手法に従ってシグナリングされてもよい。
本明細書で説明するイノベーションの別の態様に従うと、スプライシング・ツールは、第1ビデオ・シーケンスの第1ビットストリームの少なくとも一部分を受信するとともに、第2ビデオ・シーケンスの第2ビットストリームの少なくとも一部分を受信する。第2ビデオ・シーケンスの所与のピクチャのCPBRD値は、復号化順で先行するピクチャがBP SEIメッセージを有しているかどうかにかかわらず、その先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値を示す。スプライシング・ツールは、第2ビデオ・シーケンスの少なくとも一部分を、第1ビデオ・シーケンスの少なくとも一部分にスプライシングする。スプライシングの一部として、スプライシング・ツールは、所与のピクチャで始まる第2ビデオ・シーケンスの全て又は一部を、第1ビデオ・シーケンスの少なくとも一部に連結する。CPBRD値は、フラグがCPBRD値をどのように解釈するかを示す単一値手法に従ってシグナリングされてもよいし、(別の解釈を有する)別のCPBRD値もシグナリングされる2値手法に従ってシグナリングされてもよいし、フラグ及び差分値を使用する2値手法に従ってシグナリングされてもよいし、あるいは、別の手法に従ってシグナリングされてもよい。
符号化、復号化、又はスプライシングは、方法の一部として、方法を実行するよう適合されたコンピューティング・デバイスの一部として、又は、コンピューティング・デバイスに方法を実行させるコンピュータ実行可能命令を記憶した有体のコンピュータ読み取り可能媒体の一部として実施され得る。
本発明の前述の目的及び他の目的、特徴、並びに利点が、添付の図面を参照しながら進む以下の詳細な説明からより明らかになるであろう。
いくつかの説明する実施形態を実装することができる例示的なコンピューティング・システムの図。 いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。 いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。 いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダ・システムの図。 いくつかの説明する実施形態を協働して実装することができる例示的なデコーダ・システムの図。 いくつかの説明する実施形態を協働して実装することができる例示的なビデオ・エンコーダを示す図。 いくつかの説明する実施形態を協働して実装することができる例示的なビデオ・デコーダを示す図。 CPBRD値を調整する従来手法に従ったスプライシング・オペレーションを示す図。 CPBRD値をシグナリングする単一値手法のためのシンタックスを示すテーブル。 CPBRD値をシグナリングする単一値手法のためのシンタックスを示すテーブル。 2つのビットストリームがスプライシングされるときのバッファ・フルネスを示すチャート。 フラグ及び差分値を使用する、CPBRD値をシグナリングする2値手法のためのシンタックスを示すテーブル。 ビデオ・スプライシングを単純化する、符号化中にCPBRD値を設定するための一般化された技術を示すフローチャート。 単一値手法に従って、ビデオ・スプライシングを単純化する、符号化中にCPBRD値を設定するための例示的な技術を示すフローチャート。 復号化中にCPBRD値を処理するための一般化された技術を示すフローチャート。 単一値手法に従って、復号化中にCPBRD値を判定するための例示的な技術を示すフローチャート。 ビットストリームをスプライシングするための一般化された技術を示すフローチャート。 フラグ及び差分値を使用する2値手法に従って、ビデオ・スプライシングを単純化する、符号化中にCPBRD値を設定するための例示的な技術を示すフローチャート。 フラグ及び差分値を使用する2値手法に従って、復号化中にCPBRD値を判定するための例示的な技術を示すフローチャート。
詳細な説明は、符号化ピクチャ・バッファ引き抜き遅延(「CPBRD」)値のシンタックス及び/又はセマンティックスを調整することにより、スプライシング・オペレーションのサポートを向上させる様々な手法を提供する。多くの場合、これらの手法は、従来の手法の欠点を軽減させる。詳細には、詳細な説明は、HEVC規格又はH.264/AVC規格における複数のタイプの付加拡張情報(「SEI」)メッセージにおいてシグナリングされるCPBRD値のシンタックス及びセマンティックスのためのイノベーションを提供する。様々な例において、バッファリング期間SEI(「BP SEI」)メッセージ及び/又はピクチャ・タイミングSEI(「PT(picture timing) SEI」)メッセージのシンタックス及び/又はセマンティックスが、スプライシング・オペレーションを容易にするよう調整される。
本明細書で説明するオペレーションは、エンコーダ(例えば、ビデオ・エンコーダ)、デコーダ(例えば、ビデオ・デコーダ)、又はスプライシング・ツール(例えば、ビデオ・スプライシング・ツール)により実行されるものとして所々で説明されるが、多くの場合、このようなオペレーションは、代替的に、別のタイプのメディア処理ツールにより実行することができる。
本明細書で説明するイノベーションのいくつかは、HEVC規格に固有のシンタックス要素及びオペレーションを参照して示される。例えば、HEVC規格のドラフト・バージョンJCTVC−K1003(2012年10月10日〜19日に上海で開催された第11回会合の”High Efficiency Video Coding (HEVC) text specification draft 9”, JCTVC-K1003_d13)を参照する。本明細書で説明するイノベーションはまた、例えば、H.264/AVC規格といった他の規格又はフォーマットのためにも実装することができる。
より一般的に、本明細書で説明する例に対する様々な代替例が可能である。例えば、本明細書で説明する方法のいくつかは、例えば、説明する方法動作の順番を変えることにより、所定の方法動作を分けることにより、所定の方法動作を繰り返すことにより、又は所定の方法動作を省略することにより、変更することができる。開示する技術の様々な態様が、組み合わせることにより、又は別々に使用され得る。様々な実施形態が、説明するイノベーションのうちの1以上を使用する。本明細書で説明するイノベーションのいくつかは、背景技術において記した問題のうちの1以上に対処する。一般的に、所与の技術/ツールが、そのような問題の全てを解決するわけではない。
I.例示的なコンピューティング・システム
図1は、説明するイノベーションのいくつかを実装することができる適切なコンピューティング・システム(100)の一般化された例を示している。コンピューティング・システム(100)は、使用又は機能の範囲に関して限定を示唆するよう意図するものではない。というのは、このイノベーションは、多様な汎用コンピューティング・システム又は専用コンピューティング・システムにおいて実施することができるからである。
図1を参照すると、コンピューティング・システム(100)は、1以上の処理装置(110、115)及びメモリ(120、125)を含む。処理装置(110、115)はコンピュータ実行可能命令を実行する。処理装置は、汎用中央処理装置(「CPU」)、特定用途向け集積回路(「ASIC」)におけるプロセッサ、又は任意の他のタイプのプロセッサとすることができる。マルチ処理システムにおいて、複数の処理装置が、処理能力を増大させるために、コンピュータ実行可能命令を実行する。例えば、図1は、中央処理装置(110)に加えて、グラフィックス処理装置又は共処理装置(115)も示している。有体のメモリ(120、125)は、1以上の処理装置によりアクセス可能な、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)であってもよいし、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュ・メモリ等)であってもよいし、それら2つの何らかの組合せであってもよい。メモリ(120、125)は、1以上の処理装置による実行に適したコンピュータ実行可能命令の形態で、ビデオ・スプライシングを単純化する、CPBRD値のためのシンタックス及びセマンティックスによるビデオの符号化、復号化、及び/又はスプライシングのための1以上のイノベーションを実装するソフトウェア(180)を記憶する。
コンピューティング・システムは追加の特徴を有することができる。例えば、コンピューティング・システム(100)は、ストレージ(140)、1以上の入力デバイス(150)、1以上の出力デバイス(160)、及び1以上の通信コネクション(170)を含む。バス、コントローラ、又はネットワーク等の相互接続機構(図示せず)が、コンピューティング・システム(100)のコンポーネントを相互接続する。通常、オペレーティング・システム・ソフトウェア(図示せず)が、コンピューティング・システム(100)において実行される他のソフトウェアのための動作環境を提供し、コンピューティング・システム(100)のコンポーネントの動作を調整する。
有体のストレージ(140)は、取り外し可能であっても取り外し不可能であってもよく、磁気ディスク、磁気テープ若しくは磁気カセット、CD−ROM、DVD、又は、情報を記憶するために使用することができ、コンピューティング・システム(100)内でアクセスされ得る任意の他の媒体を含む。ストレージ(140)は、ビデオ・スプライシングを単純化する、CPBRD値のためのシンタックス及びセマンティックスによるビデオの符号化、復号化、及び/又はスプライシングのための1以上のイノベーションを実装するソフトウェア(180)の命令を記憶する。
1以上の入力デバイス(150)は、キーボード、マウス、ペン、若しくはトラックボール等のタッチ入力デバイス、音声入力デバイス、スキャニング・デバイス、又はコンピューティング・システム(100)に入力を提供する別のデバイスとすることができる。ビデオ符号化に関して、1以上の入力デバイス(150)は、カメラ、ビデオ・カード、TVチューナ・カード、若しくはアナログ形態あるいはデジタル形態でビデオ入力を受信する同様のデバイス、又はビデオ入力をコンピューティング・システム(100)に読み込むCD−ROMあるいはCD−RWとすることができる。1以上の出力デバイス(160)は、ディスプレイ、プリンタ、スピーカ、CDライタ、又はコンピューティング・システム(100)からの出力を提供する別のデバイスとすることができる。
1以上の通信コネクション(170)は、通信媒体を介した別のコンピューティング・エンティティへの通信を可能にする。通信媒体は、変調されたデータ信号により、コンピュータ実行可能命令、オーディオ入力、ビデオ入力、オーディオ出力、ビデオ出力、又は他のデータ等の情報を伝達する。変調されたデータ信号とは、信号内の情報を符号化するように設定又は変更された特性のうちの1以上を有する信号である。例えば、通信媒体は、電気信号、光信号、RF、又は他のキャリアを使用することができるが、これらに限定されるものではない。
イノベーションは、コンピュータ読み取り可能媒体の一般的なコンテキストにおいて説明することができる。コンピュータ読み取り可能媒体は、コンピューティング環境内でアクセスされ得る任意の利用可能な有体の媒体である。例えば、コンピューティング・システム(100)において、コンピュータ読み取り可能媒体は、メモリ(120、125)、ストレージ(140)、及びそれらの組合せを含むが、これらに限定されるものではない。
イノベーションは、コンピュータ実行可能命令の一般的なコンテキストにおいて説明することができる。コンピュータ実行可能命令は、例えば、プログラム・モジュールに含まれ、コンピューティング・システムにおいて、ターゲット実プロセッサ又は仮想プロセッサ上で実行される。一般に、プログラム・モジュールは、特定のタスクを実行する、あるいは特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造等を含む。プログラム・モジュールの機能は、様々な実施形態において、必要に応じて、組み合わされてもよいし、プログラム・モジュール間で分割されてもよい。プログラム・モジュールのコンピュータ実行可能命令は、ローカル・コンピューティング・システム又は分散コンピューティング・システム内で実行され得る。
「システム」及び「デバイス」という語は、本明細書において置き換え可能に使用される。文脈が別途明確に示さない限り、これらの語は、コンピューティング・システム又はコンピューティング・デバイスのタイプに関して、いかなる限定も示すものではない。一般に、コンピューティング・システム又はコンピューティング・デバイスは、ローカルであってもよいし、分散されてもよく、専用ハードウェア及び/又は汎用ハードウェアと、本明細書で説明する機能を実装するソフトウェアと、の任意の組合せを含み得る。
開示する方法は、開示する方法のいずれかを実行するよう構成された専用コンピューティング・ハードウェアを用いて実装することもできる。例えば、開示する方法は、開示する方法のいずれかを実行するよう特別に設計又は構成された集積回路(例えば、特定用途向け集積回路(「ASIC」)(例えば、ASICデジタル信号処理装置(「DSP」))、グラフィックス処理装置(「GPU」)、又はフィールド・プログラマブル・ゲート・アレイ(「FPGA」)等のプログラマブル・ロジック・デバイス(「PLD」)等)により実装することができる。
プレゼンテーションの目的上、詳細な説明では、コンピューティング・システムにおけるコンピュータ・オペレーションを説明するための「決定する」及び「使用する」のような語が使用される。これらの語は、コンピュータにより実行されるオペレーションの高レベル抽象表現であって、人間により実行される動作と混同すべきではない。これらの語に対応する実際のコンピュータ・オペレーションは、実装に応じて変化する。
II.例示的なネットワーク環境
図2a及び図2bは、ビデオ・エンコーダ(220)及びビデオ・デコーダ(270)を含む例示的なネットワーク環境(201、202)を示している。エンコーダ(220)及びデコーダ(270)は、適切な通信プロトコルを用いて、ネットワーク(250)を介して接続される。ネットワーク(250)は、インターネット又は別のコンピュータ・ネットワークを含み得る。
図2aに示されるネットワーク環境(201)において、各リアルタイム通信(「RTC」)ツール(210)は、双方向通信のためのエンコーダ(220)及びデコーダ(270)の両方を含む。所与のエンコーダ(220)は、SMPTE 421M規格、ISO/IEC 14496−10規格(H.264又はAVCとしても知られている)、HEVC規格(H.265としても知られている)、別の規格、又はプロプライエタリ・フォーマットに準拠する出力を生成することができ、対応するデコーダ(270)は、エンコーダ(220)から符号化データを受信することができる。双方向通信は、ビデオ会議、ビデオ通話、又は他の2パーティ若しくはマルチパーティの通信シナリオの一部であり得る。図2aのネットワーク環境(201)は、2つのリアルタイム通信ツール(210)を含むが、ネットワーク環境(201)は、マルチパーティ通信に参加する3以上のリアルタイム通信ツール(210)を含んでもよい。
リアルタイム通信ツール(210)は、エンコーダ(220)による符号化を管理する。図3は、リアルタイム通信ツール(210)に含まれ得る例示的なエンコーダ・システム(300)を示している。代替的に、リアルタイム通信ツール(210)は、別のエンコーダ・システムを使用してもよい。リアルタイム通信ツール(210)はまた、デコーダ(270)による復号化も管理する。図4は、リアルタイム通信ツール(210)に含まれ得る例示的なデコーダ・システム(400)を示している。代替的に、リアルタイム通信ツール(210)は、別のデコーダ・システムを使用してもよい。
図2bに示されるネットワーク環境(202)において、符号化ツール(212)は、デコーダ(270)を含む複数の再生ツール(214)に伝送するためのビデオを符号化するエンコーダ(220)を含む。一方向通信は、ビデオが符号化されて1つのロケーションから1以上の他のロケーションに送信される、ビデオ監視システム、ウェブ・カメラ・モニタリング・システム、リモート・デスクトップ会議プレゼンテーション、又は他のシナリオのために提供され得る。図2bのネットワーク環境(202)は、2つの再生ツール(214)を含むが、ネットワーク環境(202)は、それより多い又はそれより少ない再生ツール(214)を含んでもよい。一般に、再生ツール(214)は、再生ツール(214)が受信するビデオのストリームを判定するために、符号化ツール(212)と通信する。再生ツール(214)は、ストリームを受信し、適切な期間の間受信した符号化データをバッファし、復号化及び再生を開始する。
図3は、符号化ツール(212)に含まれ得る例示的なエンコーダ・システム(300)を示している。代替的に、符号化ツール(212)は、別のエンコーダ・システムを使用してもよい。符号化ツール(212)はまた、1以上の再生ツール(214)との接続を管理するためのサーバ・サイド・コントローラ・ロジックも含み得る。図4は、再生ツール(214)に含まれ得る例示的なデコーダ・システム(400)を示している。代替的に、再生ツール(214)は、別のデコーダ・システムを使用してもよい。再生ツール(214)はまた、符号化ツール(212)との接続を管理するためのクライアント・サイド・コントローラ・ロジックも含み得る。
図2aに示されるネットワーク環境(201)は、複数のエンコーダを有する複数のRTCツールを含み得る。図2bに示されるネットワーク環境(202)は、複数のエンコーダを有する複数の符号化ツールを含み得る。そのような複数のエンコーダは、スプライシング・ツールにより単一のビットストリームにスプライシングされる複数の出力ビットストリームを生成することができる。あるいは、1つのエンコーダが、スプライシング・ツールにより単一のビットストリームにスプライシングされる複数のビットストリームを生成してもよい。
III.例示的なエンコーダ・システム
図3は、いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダ・システム(300)のブロック図である。エンコーダ・システム(300)は、リアルタイム通信のための低レイテンシ符号化モード、トランスコーディング・モード、及びファイル又はストリームから再生のためのメディアを生成するためのより高いレイテンシの符号化モード等の複数の符号化モードのうちいずれかで動作することができる汎用符号化ツールであってもよいし、そのような1つの符号化モードのために適合された専用符号化ツールであってもよい。エンコーダ・システム(300)は、オペレーティング・システム・モジュールとして、アプリケーション・ライブラリの一部として、又はスタンドアロン・アプリケーションとして、実装することができる。概して、エンコーダ・システム(300)は、ビデオ・ソース(310)から、一連のソース・ビデオ・フレーム(311)を受信し、チャネル(390)への出力として符号化データを生成する。チャネルに出力される符号化データは、ピクチャのCPBRD値を示すシンタックス要素に加えて、CPBRD値がどのように解釈されるべきであるかを示すシンタックス要素も含み得る。
ビデオ・ソース(310)は、カメラ、チューナ・カード、記憶媒体、又は他のデジタル・ビデオ・ソースとすることができる。ビデオ・ソース(310)は、例えば、毎秒30フレームといったフレーム・レートで一連のビデオ・フレームを生成する。本明細書で使用されるとき、「フレーム」という語は、一般に、ソースの符号化された又は再構築された画像データを指す。プログレッシブ・スキャン・ビデオでは、フレームはプログレッシブ・スキャン・ビデオ・フレームである。インターレース・ビデオでは、例示的な実施形態において、インターレース・ビデオ・フレームは、符号化の前にインターレース解除される(de-interlaced)。代替的に、2つの相補的インターレース・ビデオ・フィールドが、単一のビデオ・フレームとして一緒に符号化されてもよいし、2つの別々に符号化されたフィールドとして符号化されてもよい。プログレッシブ・スキャン・ビデオ・フレーム又はインターレース・スキャン・ビデオ・フレームを示すかは別にして、「フレーム」又は「ピクチャ」という語は、単一の対でないビデオ・フィールド、相補的な一対のビデオ・フィールド、所与の時間におけるビデオ・オブジェクトを表すビデオ・オブジェクト・プレーン、又はより大きな画像における関心領域を示し得る。ビデオ・オブジェクト・プレーン又は領域は、シーンの複数のオブジェクト又は領域を含むより大きな画像の一部であり得る。
到着ソース・フレーム(311)は、複数のフレーム・バッファ記憶領域(321、322、...、32n)を含むソース・フレーム一時メモリ記憶領域(320)に記憶される。フレーム・バッファ(321、322等)は、ソース・フレーム記憶領域(320)内で1つのソース・フレームを保持する。ソース・フレーム(311)のうちの1以上がフレーム・バッファ(321、322等)に記憶された後、フレーム・セレクタ(330)が、ソース・フレーム記憶領域(320)から個々のソース・フレームを選択する。エンコーダ(340)への入力のためにフレーム・セレクタ(330)によりフレームが選択される順番は、ビデオ・ソース(310)によりフレームが生成される順番とは異なり得る。例えば、いくつかの後続のフレームをまず符号化することを可能とし、次いで、一時的に後方予測を容易にするために、いくつかのフレームの符号化は、遅延され得る。エンコーダ(340)の前に、エンコーダ・システム(300)は、符号化の前に選択されたフレーム(331)の前処理(例えば、フィルタリング)を実行するプリ・プロセッサ(図示せず)を含み得る。前処理はまた、プライマリ成分(例えば、ルマ)及びセカンダリ成分(例えば、赤色のクロマ差及び青色のクロマ差)への色空間変換と、符号化のための(例えば、クロマ成分の空間解像度を低減させる)再サンプリング処理と、を含み得る。
エンコーダ(340)は、符号化フレーム(341)を生成するために、選択されたフレーム(331)を符号化するとともに、メモリ管理制御操作(「MMCO」)信号(342)又は参照ピクチャ・セット(「RPS」)情報を生成する。現フレームが、符号化された最初のフレームではない場合、符号化プロセスを実行するとき、エンコーダ(340)は、復号化フレーム一時メモリ記憶領域(360)に記憶された1以上の以前に符号化/復号化されたフレーム(369)を使用することができる。そのような記憶された復号化フレーム(369)は、現ソース・フレーム(331)のコンテンツのフレーム間予測のための参照フレームとして使用される。MMCO/RPS情報(342)は、どの再構築フレームが参照フレームとして使用され得るかをデコーダに示すものであり、したがって、フレーム記憶領域に記憶されるべきである。
一般に、エンコーダ(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フォーマット、又は他のフォーマットであり得る。
例えば、エンコーダ(340)において、フレーム間符号化された予測フレームが、参照フレームからの予測の観点で表される。動き推定部が、1以上の参照フレーム(369)に関して、ソース・フレーム(331)のサンプルのセットの動きを推定する。サンプルのセットは、(例えば、H.264規格における)マクロブロック、サブマクロブロック、又はサブマクロブロック・パーティションであってもよいし、(例えば、HEVC規格における)符号化ツリー・ユニット又は予測ユニットであってもよい。一般に、本明細書で使用されるとき、「ブロック」という語は、サンプルのセットを示し、これは、単一の2次元(「2D」)アレイであってもよいし、複数の2Dアレイ(例えば、1つのアレイはルマ成分のためのものであり、2つのアレイはクロマ成分のためのものである)であってもよい。複数の参照フレームが使用される場合、複数の参照フレームは、異なる時間的方向からのものであってもよいし、同じ時間的方向からのものであってもよい。動き推定部は、エントロピ符号化される動きベクトル情報等の動き情報を出力する。動き補償部は、フレーム間予測のための動き補償予測値を決定するために、動きベクトルを参照フレームに適用する。エンコーダは、ブロックの動き補償予測値と対応するオリジナルの値との間の差(あれば)を決定する。このような予測残差値が、周波数変換、量子化、及びエントロピ符号化を用いて、さらに符号化される。例えば、エンコーダ(340)は、ピクチャ、スライス、及び/又はビデオの他の部分のためのルマ量子化パラメータ(「QP」)及びクロマQPの値を設定し、それに従って変換係数を量子化する。同様に、フレーム内予測では、エンコーダ(340)は、ブロックに関するイントラ予測値を決定し、予測残差値を決定し、(周波数変換、量子化、及びエントロピ符号化を用いて)予測残差値を符号化することができる。詳細には、エンコーダ(340)のエントロピ符号化部が、量子化された変換係数値に加えて、所定のサイド情報(例えば、動きベクトル情報、QP値、モード決定、パラメータ選択)も圧縮する。一般的なエントロピ符号化技術は、指数ゴロム符号化、ゴロム−ライス符号化、算術符号化、差分符号化、ハフマン符号化、ラン・レングス符号化、「V2V(variable-length-to-variable-length)」符号化、「V2F(variable-length-to-fixed-length)」符号化、「LZ(Lempel-Ziv)」符号化、辞書符号化、「PIPE(probability interval partitioning entropy)」符号化、及びこれらの組合せを含む。エントロピ符号化部は、様々な種類の情報のための様々な符号化技術を使用することができ、複数の技術を組み合わせて適用することができ(例えば、ゴロム−ライス符号化に続いて算術符号化を適用することにより)、特定の符号化技術における複数の符号テーブルの中から選択することができる。
符号化フレーム(341)及びMMCO/RPS情報(342)(又は、MMCO/RPS情報(342)と同等の情報、なぜならば、フレームの依存関係及び順序構造がエンコーダ(340)において既に知られているので)が、復号化プロセス・エミュレータ(350)により処理される。復号化プロセス・エミュレータ(350)は、例えば、動き推定及び動き補償においてエンコーダ(340)により使用される参照フレームを再構築する復号化タスク等のデコーダの機能の一部を実装している。MMCO/RPS情報(342)と整合する形で、復号化プロセス・エミュレータ(350)は、所与の符号化フレーム(341)が、符号化される後続フレームのフレーム間予測において参照フレームとして使用するために再構築されて記憶される必要があるかどうかを判定する。符号化フレーム(341)が記憶される必要がある場合、復号化プロセス・エミュレータ(350)は、符号化フレーム(341)を受信して対応する復号化フレーム(351)を生成するデコーダにより行われるであろう復号化プロセスをモデル化する。そうする場合、エンコーダ(340)が、復号化フレーム記憶領域(360)に記憶された1以上の復号化フレーム(369)を使用したとき、復号化プロセス・エミュレータ(350)は、復号化プロセスの一部として、記憶領域(360)から1以上の復号化フレーム(369)を使用する。
復号化フレーム一時メモリ記憶領域(360)は、複数のフレーム・バッファ記憶領域(361、362、...、36n)を含む。MMCO/RPS情報(342)と整合する形で、復号化プロセス・エミュレータ(350)は、参照フレームとして使用するためにエンコーダ(340)によりもはや必要とされなくなったフレームを有する任意のフレーム・バッファ(361、362等)を識別するために、記憶領域(360)のコンテンツを管理する。復号化プロセスをモデル化した後、復号化プロセス・エミュレータ(350)は、このように識別されるフレーム・バッファ(361、362等)に、新たに復号化されたフレーム(351)を記憶する。
エンコーダ(340)は、バッファ・フロー・モデル(例えば、仮想リファレンス・デコーダ(「HRD」)又はビデオ・バッファ確認器(「VBV」))の仕様に従って符号化されるピクチャのCPBRD値を設定する。このように、エンコーダ(340)は、復号化システムのバッファリング・リソース内でビットストリームを復号化できることを確実にするのに役立つように、ビットストリームのビット・レートにおける変動(fluctuation)に対する制約を適用する。エンコーダ(340)はまた、デコーダが復号化プロセスのオペレーションのタイミング及びステップを判定するのを助けるために、CPBRD値を設定する。
符号化フレーム(341)及びMMCO/RPS情報(342)(又は、MMCO/RPS情報(342)と同等の情報)はまた、一時符号化データ領域(370)にバッファされる。符号化データ領域(370)に収集される符号化データは、エレメンタリ符号化ビデオ・ビットストリームのシンタックスの一部として、1以上のピクチャの符号化データを含む。符号化データ領域(370)に収集される符号化データはまた、(例えば、1以上の付加拡張情報(「SEI」)メッセージ又はビデオ・ユーザビリティ情報(「VUI」)メッセージにおける1以上のパラメータとして、)符号化ビデオ・データに関連するメディア・メタデータを含み得る。そのようなメディア・メタデータは、(例えば、PT SEIメッセージ及びBP SEIメッセージの一部として、)ピクチャのCPBRD値を示すシンタックス要素に加えて、CPBRD値がどのように解釈されるべきであるかを示すシンタックス要素も含み得る。
一時符号化データ領域(370)からの収集されたデータ(371)は、チャネル・エンコーダ(380)により処理される。チャネル・エンコーダ(380)は、(例えば、ITU−T H.222.0|ISO/IEC 13818−1等のメディア・プログラム・ストリーム・フォーマット若しくはトランスポート・ストリーム・フォーマット、又はIETF RFC 3550等のインターネット・リアルタイム・トランスポート・プロトコル・フォーマットに従って)メディア・ストリームとして伝送又は記憶するために、収集されたデータをパケット化及び/又は多重化することができる。そのような場合、チャネル・エンコーダ(380)は、メディア伝送ストリームのシンタックスの一部として、シンタックス要素を付加することができる。そのようなシンタックスは、ピクチャのCPBRD値を示すシンタックス要素に加えて、CPBRD値がどのように解釈されるべきであるかを示すシンタックス要素も含み得る。あるいは、チャネル・エンコーダ(380)は、(例えば、ISO/IEC 14496−12等のメディア・コンテナ・フォーマットに従って)ファイルとして記憶するために、収集されたデータを編成することができる。そのような場合、チャネル・エンコーダ(380)は、メディア記憶ファイルのシンタックスの一部として、シンタックス要素を付加することができる。そのようなシンタックスは、ピクチャのCPBRD値を示すシンタックス要素に加えて、CPBRD値がどのように解釈されるべきであるかを示すシンタックス要素も含み得る。あるいは、より一般的に、チャネル・エンコーダ(380)は、1以上のメディア・システム多重化プロトコル又はトランスポート・プロトコルを実装することができる。そのような場合、チャネル・エンコーダ(380)は、1以上のプロトコルのシンタックスの一部として、シンタックス要素を付加することができる。再度、そのようなシンタックスは、ピクチャのCPBRD値を示すシンタックス要素に加えて、CPBRD値がどのように解釈されるべきであるかを示すシンタックス要素も含み得る。チャネル・エンコーダ(380)は、チャネル(390)への出力を提供する。チャネル(390)は、ストレージ、通信コネクション、又は出力のための別のチャネルを表す。チャネル・エンコーダ(380)又はチャネル(390)はまた、順方向誤り訂正(「FEC」)符号化及びアナログ信号変調等の他の要素(図示せず)を含んでもよい。
IV.例示的なデコーダ・システム
図4は、いくつかの説明する実施形態を協働して実装することができる例示的なデコーダ・システム(400)のブロック図である。デコーダ・システム(400)は、リアルタイム通信のための低レイテンシ復号化モード及びファイル又はストリームからのメディア再生のためのより高いレイテンシの復号化モード等の複数の復号化モードのうちいずれかで動作することができる汎用復号化ツールであってもよいし、そのような1つの復号化モードのために適合された専用復号化ツールであってもよい。デコーダ・システム(400)は、オペレーティング・システム・モジュールとして、アプリケーション・ライブラリの一部として、又はスタンドアロン・アプリケーションとして、実装することができる。概して、デコーダ・システム(400)は、チャネル(410)から符号化データを受信し、出力先(490)への出力として再構築フレームを生成する。符号化データは、ピクチャのCPBRD値を示すシンタックス要素に加えて、CPBRD値がどのように解釈されるべきであるかを示すシンタックス要素も含み得る。
デコーダ・システム(400)は、ストレージ、通信コネクション、又は入力としての符号化データのための別のチャネルを表し得るチャネル(410)を含む。チャネル(410)は、チャネル符号化された符号化データを生成する。チャネル・デコーダ(420)は、符号化データを処理することができる。例えば、チャネル・デコーダ(420)は、(例えば、ITU−T H.222.0|ISO/IEC 13818−1等のメディア・プログラム・ストリーム・フォーマット若しくはトランスポート・ストリーム・フォーマット、又はIETF RFC 3550等のインターネット・リアルタイム・トランスポート・プロトコル・フォーマットに従って)メディア・ストリームとして伝送又は記憶するために収集されたデータを脱パケット化及び/又は逆多重化する。そのような場合、チャネル・デコーダ(420)は、メディア伝送ストリームのシンタックスの一部として付加されたシンタックス要素を解析することができる。そのようなシンタックスは、ピクチャのCPBRD値を示すシンタックス要素に加えて、CPBRD値がどのように解釈されるべきであるかを示すシンタックス要素も含み得る。あるいは、チャネル・デコーダ(420)は、(例えば、ISO/IEC 14496−12等のメディア・コンテナ・フォーマットに従って)ファイルとして記憶するために収集された符号化ビデオ・データを分離する。そのような場合、チャネル・デコーダ(420)は、メディア記憶ファイルのシンタックスの一部として付加されたシンタックス要素を解析することができる。そのようなシンタックスは、ピクチャのCPBRD値を示すシンタックス要素に加えて、CPBRD値がどのように解釈されるべきであるかを示すシンタックス要素も含み得る。あるいは、より一般的に、チャネル・デコーダ(420)は、1以上のメディア・システム逆多重化プロトコル又はトランスポート・プロトコルを実装することができる。そのような場合、チャネル・デコーダ(420)は、1以上のプロトコルのシンタックスの一部として付加されたシンタックス要素を解析することができる。再度、そのようなシンタックスは、ピクチャのCPBRD値を示すシンタックス要素に加えて、CPBRD値がどのように解釈されるべきであるかを示すシンタックス要素も含み得る。チャネル(410)又はチャネル・デコーダ(420)はまた、FEC復号化及びアナログ信号復調等の他の要素(図示せず)を含んでもよい。
十分な量のデータが受信されるまで、チャネル・デコーダ(420)から出力される符号化データ(421)は、一時符号化データ領域(430)に記憶される。符号化データ(421)は、符号化フレーム(431)及びMMCO/RPS情報(432)を含む。符号化データ領域(430)内の符号化データ(421)は、エレメンタリ符号化ビデオ・ビットストリームのシンタックスの一部として、1以上のピクチャの符号化データを含む。符号化データ領域(430)内の符号化データ(421)はまた、(例えば、1以上のSEIメッセージ又はVUIメッセージにおける1以上のパラメータとして、)符号化ビデオ・データに関連するメディア・メタデータを含み得る。そのようなメディア・メタデータは、(例えば、PT SEIメッセージ及びBP SEIメッセージの一部として、)ピクチャのCPBRD値を示すシンタックス要素に加えて、CPBRD値がどのように解釈されるべきであるかを示すシンタックス要素も含み得る。
デコーダ(450)は、CPBRD値を使用して、復号化プロセス全体のオペレーションのタイミング及びステップを判定する。一般に、CPBRD値により示されるように、そのような符号化データ(421)がデコーダ(450)により使用されるまで、符号化データ領域(430)は、符号化データ(421)を一時的に記憶する。その時点で、符号化フレーム(431)及びMMCO/RPS情報(432)の符号化データが、符号化データ領域(430)からデコーダ(450)に伝送される。復号化が進むにつれ、新たな符号化データが、符号化データ領域(430)に追加され、符号化データ領域(430)に残っている最も古い符号化データが、デコーダ(450)に伝送される。
デコーダ(450)は、対応する復号化フレーム(451)を生成するために、符号化フレーム(431)を復号化する。必要に応じて、復号化プロセスを実行するとき、デコーダ(450)は、フレーム間予測のための参照フレームとして、1以上の以前に復号化されたフレーム(469)を使用することができる。デコーダ(450)は、復号化フレーム一時メモリ記憶領域(460)から、そのような以前に復号化されたフレーム(469)を読み出す。一般に、デコーダ(450)は、エントロピ復号化、フレーム内予測、動き補償フレーム間予測、逆量子化、逆周波数変換、及び逆周波数変換等の復号化タスクを実行する複数の復号化モジュールを含む。デコーダ(450)により実行される正確なオペレーションは、圧縮フォーマットに応じて変わり得る。
例えば、デコーダ(450)は、圧縮フレーム又は一連のフレームの符号化データを受信し、復号化フレーム(451)を含む出力を生成する。デコーダ(450)において、バッファは、圧縮フレームの符号化データを受け入れ、CPBRD値により名目的に示される適切な時間に、受け入れた符号化データをエントロピ復号化部に利用可能にする。エントロピ復号化部は、通常はエンコーダにおいて実行されたエントロピ符号化の逆を適用することにより、エントロピ符号化された量子化データに加えて、エントロピ符号化されたサイド情報もエントロピ復号化する。動き補償部は、再構築されているフレームのブロック(例えば、マクロブロック、サブマクロブロック、サブマクロブロック・パーティション、符号化ツリー・ユニット、予測ユニット、又は、符号化ツリー・ブロック、予測ブロック、若しくは他のブロック等のそれらの一部分)の動き補償予測を形成するために、動き情報を1以上の参照フレームに適用する。フレーム内予測モジュールは、隣接する以前に再構築されたサンプル値から、現ブロックのサンプル値を空間的に予測することができる。デコーダ(450)はまた、予測残差値を再構築する。逆量子化部は、エントロピ復号化されたデータを逆量子化する。例えば、デコーダ(450)は、ビットストリームにおけるシンタックス要素に基づいて、ピクチャ、スライス、及び/又はビデオの他の部分のためのルマQP及びクロマQPの値を設定し、それに従って変換係数を逆量子化する。逆周波数変換部は、量子化された周波数領域データを空間領域情報に変換する。フレーム間予測フレームに関して、デコーダ(450)は、再構築フレームを形成するために、再構築された予測残差値を動き補償予測と結合する。デコーダ(450)は、同様に、予測残差値を、フレーム内予測からの空間予測と結合することができる。適応デブロッキング・フィルタが、ビデオ・デコーダ(450)における動き補償ループ内に含まれ、復号化フレーム(451)内のブロック境界ロー及び/又はカラムにわたる不連続さを平滑化する。他のフィルタリング(デリンギング・フィルタリング、適応ループ・フィルタリング(「ALF」)、又はサンプル適応オフセット(「SAO」)フィルタリング等;図示せず)が、代替的に又は追加的に、ループ内フィルタリング・オペレーションとして適用されてもよい。
復号化フレーム一時メモリ記憶領域(460)は、複数のフレーム・バッファ記憶領域(461、462、...、46n)を含む。復号化フレーム記憶領域(460)はDPBの一例である。デコーダ(450)は、復号化フレーム(451)を記憶することができるフレーム・バッファ(461、462等)を識別するために、MMCO/RPS情報(432)を使用する。デコーダ(450)は、そのフレーム・バッファに復号化フレーム(451)を記憶する。
出力シーケンサ(480)は、(例えば、BP SEIメッセージ及びPT SEIメッセージ内の情報を使用して、)出力順で生成される次のフレームが復号化フレーム記憶領域(460)内で利用可能になるときを識別する。出力順で生成される次のフレーム(481)が、復号化フレーム記憶領域(460)内で利用可能になったとき、そのフレームが、出力シーケンサ(480)により読み出され、出力先(490)(例えば、ディスプレイ)に出力される。一般に、復号化フレーム記憶領域(460)から出力シーケンサ(480)によりフレームが出力される順番は、デコーダ(450)によりフレームが復号化される順番とは異なり得る。
V.例示的なビデオ・エンコーダ
図5は、いくつかの説明する実施形態を協働して実装することができる一般化されたビデオ・エンコーダ(500)のブロック図である。エンコーダ(500)は、現フレーム(505)を含む一連のビデオ・フレームを受信し、出力として符号化データ(595)を生成する。
エンコーダ(500)は、ブロックベースであり、実装に依存するブロック・フォーマットを使用する。ブロックは、例えば、周波数変換段階及びエントロピ符号化段階において等の様々な段階において、さらに分割され得る。例えば、フレームは、64x64ブロック、32x32ブロック、又は16x16ブロックに分割され得、今度は、それらのブロックが、符号化及び復号化のために、サンプル値のより小さなブロックに分割され得る。
エンコーダ・システム(500)は、フレーム間予測フレーム及びフレーム内符号化フレームを圧縮する。プレゼンテーションの目的上、図5は、フレーム内符号化のためのエンコーダ(500)を介した「イントラ・パス」と、フレーム間符号化のための「インター・パス」と、を示している。エンコーダ(500)のコンポーネントの多くが、フレーム内符号化及びフレーム間符号化の両方のために使用される。これらのコンポーネントにより実行される正確なオペレーションは、圧縮される情報のタイプに応じて変わり得る。
現フレーム(505)がフレーム間予測フレームである場合、動き推定部(510)は、1以上の参照フレームに関して、現フレーム(505)のブロック(例えば、マクロブロック、サブマクロブロック、サブマクロブロック・パーティション、符号化ツリー・ユニット、予測ユニット、又は、符号化ツリー・ブロック、予測ブロック、若しくは他のブロック等のそれらの一部分)の動きを推定する。フレーム・ストア(520)は、参照フレームとして使用するために、1以上の再構築された以前のフレーム(525)をバッファする。複数の参照フレームが使用される場合、複数の参照フレームは、異なる時間的方向からのものであってもよいし、同じ時間的方向からのものであってもよい。動き推定部(510)は、サイド情報として、差分動きベクトル情報等の動き情報(515)を出力する。
動き補償部(530)は、動き補償された現フレーム(535)を形成するとき、再構築された動きベクトルを、1以上の再構築された参照フレーム(525)に適用する。動き補償された現フレーム(535)のブロックとオリジナルの現フレーム(505)の対応する部分との間の差(あれば)が、ブロックの予測残差(545)である。オリジナルの現フレーム(505)により近い再構築フレームを得るために、現フレームの後の再構築の間に、再構築された予測残差値が、動き補償された現フレーム(535)に付加される。しかしながら、損失圧縮(lossy compression)では、それでも、いくつかの情報が、オリジナルの現フレーム(505)から失われる。イントラ・パスは、イントラ予測モジュール(図示せず)を含み得る。イントラ予測モジュールは、隣接する以前に再構築されたサンプル値から、現ブロックのサンプル値を空間的に予測する。
周波数変換部(560)は、空間領域ビデオ情報を周波数領域(すなわち、スペクトル変換)データに変換する。ブロックベースのビデオ・フレームに関して、周波数変換部(560)は、離散コサイン変換とその整数近似、又は別のタイプの前方ブロック変換(例えば、離散サイン変換とその整数近似)をサンプル値データ又は予測残差データのブロックに適用して、周波数変換係数のブロックを生成する。次いで、量子化部(570)は、変換係数を量子化する。例えば、量子化部(570)は、フレームごとに、スライスごとに、ブロックごとに、周波数固有の単位で、又は他の単位で変わる量子化ステップ・サイズで、デッドゾーン・スカラ量子化(dead-zone scalar quantization)を周波数領域データに適用する。
後続の動き推定/動き補償のために現フレームの再構築されたバージョンが必要とされる場合、逆量子化部(576)が、量子化された周波数係数データに対して逆量子化を実行する。逆周波数変換部(566)は、逆周波数変換を実行し、再構築された予測残差値又はサンプル値のブロックを生成する。フレーム間予測フレームに関して、エンコーダ(500)は、再構築フレーム(505)を形成するために、再構築された予測残差値(545)を動き補償予測(535)と結合する。(図5には示されていないが、イントラ・パスにおいては、エンコーダ(500)は、予測残差値を、イントラ予測からの空間予測と結合することができる。)フレーム・ストア(520)は、後続の動き補償予測において使用するために、再構築された現フレームをバッファする。
図5において、エンコーダ(500)における動き補償ループは、通常はフレーム・ストア(520)の前に、適応ループ内デブロック・フィルタ(510)を含む。エンコーダ(500)は、フレーム内の境界にわたる不連続さを適応的に平滑化するために、ループ内フィルタリングを再構築フレームに適用する。他のフィルタリング(デリンギング・フィルタリング、ALF、又はSAOフィルタリング等;図示せず)が、代替的に又は追加的に、ループ内フィルタリング・オペレーションとして適用されてもよい。
エントロピ符号化部(580)は、量子化部(570)の出力に加えて、動き情報(515)及び所定のサイド情報(例えば、QP値)も圧縮する。エントロピ符号化部(580)は、符号化データ(595)をバッファ(590)に供給し、バッファ(590)は、符号化データを出力ビットストリームに多重化する。
コントローラ(図示せず)は、エンコーダの様々なモジュールから入力を受信する。コントローラは、符号化中、中間結果を評価し、例えば、QP値を設定して、レート−歪み解析を実行する。コントローラは、他のモジュールと協働して、符号化中、符号化パラメータを設定及び変更する。コントローラは、バッファ・フロー・モデルに従って符号化されるピクチャのCPBRD値を設定することができる。このように、コントローラは、復号化システムのバッファリング・リソース内でビットストリームを復号化できることを確実にするのに役立つように、ビットストリームのビット・レートにおける変動に対する制約を適用する。コントローラはまた、デコーダが復号化プロセスのオペレーションのタイミング及びステップを判定するのを助けるために、CPBRD値を設定する。
実装及び所望の圧縮のタイプに応じて、エンコーダのモジュールを追加してもよいし、省略してもよいし、複数のモジュールに分割してもよいし、他のモジュールと結合してもよいし、且つ/あるいは同様のモジュールと置換してもよい。代替実施形態において、異なるモジュール及び/又はモジュールの他の構成を有するエンコーダは、説明した技術のうちの1以上を実行する。エンコーダの特定の実施形態は、通常、エンコーダ(500)の変形又は補完バージョンを使用する。エンコーダ(500)内のモジュール間の示された関係は、エンコーダ内の情報の一般的な流れを示すものである。他の関係は、簡潔さのため示されていない。
VI.例示的なビデオ・デコーダ
図6は、いくつかの説明する実施形態を協働して実装することができる一般化されたデコーダ(600)のブロック図である。デコーダ(600)は、圧縮フレーム又は一連のフレームの符号化データ(695)を受信し、再構築フレーム(605)を含む出力を生成する。プレゼンテーションの目的上、図6は、フレーム内復号化のためのデコーダ(600)を介した「イントラ・パス」と、フレーム間復号化のための「インター・パス」と、を示している。デコーダ(600)のコンポーネントの多くが、フレーム内復号化及びフレーム間復号化の両方のために使用される。これらのコンポーネントにより実行される正確なオペレーションは、伸張される情報のタイプに応じて変わり得る。
バッファ(690)は、圧縮フレームの符号化データ(695)を受け入れ、それぞれのフレームのCPBRD値により少なくとも部分的に示されるタイミングで、受け入れた符号化データを解析部/エントロピ復号化部(680)に利用可能にする。解析部/エントロピ復号化部(680)は、通常はエンコーダにおいて実行されたエントロピ符号化の逆を適用することにより、エントロピ符号化された量子化データに加えて、エントロピ符号化されたサイド情報もエントロピ復号化する。
動き補償部(630)は、再構築されているフレーム(605)のブロック(例えば、マクロブロック、サブマクロブロック、サブマクロブロック・パーティション、符号化ツリー・ユニット、予測ユニット、又は、符号化ツリー・ブロック、予測ブロック、若しくは他のブロック等のそれらの一部分)の動き補償予測(635)を形成するために、動き情報(615)を1以上の参照フレーム(625)に適用する。フレーム・ストア(620)は、参照フレームとして使用するために、1以上の以前に再構築されたフレームを記憶する。
イントラ・パスは、イントラ予測モジュール(図示せず)を含み得る。イントラ予測モジュールは、隣接する以前に再構築されたサンプル値から、現ブロックのサンプル値を空間的に予測する。インター・パスにおいて、デコーダ(600)は、予測残差値を再構築する。逆量子化部(670)は、エントロピ復号化されたデータを逆量子化する。例えば、デコーダ(600)は、ビットストリームにおけるシンタックス要素に基づいて、ピクチャ、スライス、及び/又は符号化ユニット等のビデオの他の部分のためのルマQP及びクロマQPの値を設定し、逆量子化部(670)は、それに従って変換係数を逆量子化する。
逆周波数変換部(660)は、再構築された周波数領域データを空間領域情報に変換する。例えば、逆周波数変換部(660)は、逆ブロック変換を周波数変換係数に適用して、サンプル値データ又は予測残差データを生成する。逆周波数変換は、逆離散コサイン変換とその整数近似、又は別のタイプの逆周波数変換(例えば、逆離散サイン変換とその整数近似)であり得る。
フレーム間予測フレームに関して、デコーダ(600)は、再構築フレーム(605)を形成するために、再構築された予測残差値(645)を動き補償予測(635)と結合する。(図6には示されていないが、イントラ・パスにおいては、デコーダ(600)は、予測残差値を、フレーム内予測からの空間予測と結合することができる。)デコーダ(600)における動き補償ループは、フレーム・ストア(620)の前又は後に、適応ループ内デブロック・フィルタ(610)を含む。デコーダ(600)は、フレーム内の境界にわたる不連続さを適応的に平滑化するために、ループ内フィルタリングを再構築フレームに適用する。他のフィルタリング(デリンギング・フィルタリング、ALF、又はSAOフィルタリング等;図示せず)が、代替的に又は追加的に、ループ内フィルタリング・オペレーションとして適用されてもよい。
図6において、デコーダ(600)はまた、後処理フィルタ(608)を含む。後処理フィルタ(608)は、デリンギング・フィルタリング、適応ウィナー・フィルタリング、フィルムグレイン再生フィルタリング、SAOフィルタリング、又は別の種類のフィルタリングを含み得る。
実装及び所望の伸張のタイプに応じて、デコーダのモジュールを追加してもよいし、省略してもよいし、複数のモジュールに分割してもよいし、他のモジュールと結合してもよいし、且つ/あるいは同様のモジュールと置換してもよい。代替実施形態において、異なるモジュール及び/又はモジュールの他の構成を有するデコーダは、説明した技術のうちの1以上を実行する。デコーダの特定の実施形態は、通常、デコーダ(600)の変形又は補完バージョンを使用する。デコーダ(600)内のモジュール間の示された関係は、デコーダ内の情報の一般的な流れを示すものである。他の関係は、簡潔さのため示されていない。
VII.スプライシングを単純化する、CPBRD値のシンタックス及びセマンティックス
このセクションは、符号化ピクチャ・バッファ引き抜き遅延(「CPBRD」)値のシンタックス及びセマンティックスのための様々なイノベーションを提供する。多くの場合、このイノベーションは、ビデオ・シーケンスのスプライシングを単純化する。HEVC規格及びH.264/AVC規格に従った付加拡張情報(「SEI」)メッセージにおいてシグナリングされるCPBRD値の様々な例が提供される。
A.イントロダクション
JCTVC−K1003等のHEVC規格のドラフト・バージョンにおいて、及びH.264/AVC規格において、ピクチャ・タイミングSEI(「PT SEI」)メッセージのためのシンタックス及びセマンティックスが規定されている。PT SEIメッセージは、符号化ピクチャ・バッファ引き抜き遅延(「CPBRD」)を示すシンタックス要素を含む。JCTVC−K1003において、このシンタックス要素は、au_cpb_removal_delay_minus1と名付けられており、これは、PT SEIメッセージにおいてシグナリングされる符号化整数値(coded integer value)に1を加えることにより解釈される。
一般に、初期バッファリング遅延(又は、代替的に、初期バッファ・フルネス)とともに、(通常は「現ピクチャ」と呼ばれる)所与のピクチャのCPBRD値は、そのピクチャに関連付けられた符号化データが符号化ピクチャ・バッファ(「CPB」)から引き抜かれることになる名目上の時間を規定している。CPBは、仮想デコーダ・バッファであり、デコーダは、これをリファレンスとして使用して、デコーダ・バッファを設計することができる。また、エンコーダは、仮想デコーダ・バッファに基づいて、準拠ビットストリーム(compliant bitstream)を生成することができる。HEVC規格のコンテキストにおいて、現ピクチャに関連付けられたデータのセットは、「アクセス・ユニット」である。CPBRD値は、HRD又はVBVと呼ばれ得るバッファ・モデルのコンテキストにおいて理解される。バッファ・モデルに従った仕様は、復号化システムのバッファリング・リソース内でビットストリームを復号化できることを確実にするのに役立ち、デコーダがピクチャのための復号化プロセス全体のオペレーションのタイミング及びステップを判定するのを助ける。
バッファリング期間SEI(「BP SEI」)メッセージが、符号化ビデオ・データ内に存在する場合、CPBRD値のタイミング・リファレンスは、後続のメッセージのためにリセットされる。JCTVC−K1003において、CPBRD値は、BP SEIメッセージを含んでいた、復号化順で先行するピクチャ(あれば)の名目上の引き抜き時間に対して、常に符号化される。エンコーダは、ビットストリームにおいて、ランダム・アクセス・ポイント(「RAP」)ピクチャ全てとともに、BP SEIメッセージを送信し得る。エンコーダはまた、RAPピクチャではない他のピクチャとともに、BP SEIメッセージを送信し得る。
ビデオ・スプライシング・ツールは、通常、ビットストリーム内のRAPピクチャの位置でスプライシング・オペレーションを実行する。RAPピクチャは、瞬間デコーダ・リフレッシュ(「IDR(instantaneous decoder refresh)」)ピクチャであり得る。RAPピクチャは、自身に関連付けられたBP SEIメッセージを有する。例えば、スプライシング・オペレーションを使用して、テレビ番組にコマーシャル又は一連のコマーシャルを挿入することができる、あるいは、異なるテレビ番組間を切り替えることができる。
HEVC RAPピクチャの設計は、ビットストリームのスプライシング・ポイントとしてのRAPピクチャの使用を可能にするよう、特に意図されている。しかしながら、JCTVC−K1003において、CPBRD値は、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対して、常に符号化される。このリファレンス・ポイントが理由で、ビットストリーム間をスプライシングするとき(あるいは、より長いビットストリームを形成するために、別々に符号化されたビットストリームをスムーズに連結するとき)、スプライシング・システムがCPBRD値の正確な値を判定するのは難しいことであり得る。
したがって、JCTVC−K1003におけるようなCPBRDのシンタックス及びセマンティックスのための手法では、スプライシング・オペレーションを実行してビットストリームAのピクチャを送信することからビットストリームBのピクチャを送信することに切り替わるために、スプライシング・ツールは、スプライス・ポイントにおけるピクチャのCPBRD値(すなわち、スプライス・ポイントにおけるピクチャに関連付けられたPT SEIメッセージ内のCPBRD値)を調整する。切り替わりが生じるスプライス・ポイントは、ビットストリームB内のRAPピクチャに対応する位置である。(スプライス・ポイントにおけるビットストリームB内のRAPピクチャはまた、自身に関連付けられたBP SEIメッセージを有し、BP SEIメッセージは、ビットストリームBからの復号化順で後続のピクチャのCPBRD値のリファレンス時間をリセットするので、ビットストリームB内の後続のピクチャのCPBRD値の調整は不必要である。)スプライシング・オペレーションを実現するために、スプライシング・ツールは、通常、以下のステップを実行する。しかしながら、これらのステップは、必ずしもこの順番で実行される必要はなく、いくつかの代替的変形が存在してもよい。
スプライシング・ツールは、ビットストリームB内の以前のBP SEIメッセージを有するピクチャの名目上の引き抜き時間に対する、ビットストリームB内のRAPピクチャのCPBRD値を発見して読み出す。このCPBRDの値は、DRAPBである。ビットストリームB内に先行するピクチャがなかった場合、DRAPBは、ローカル・フレーム・レートに基づいて(例えば、ビットストリームA内の最後のピクチャ又はビットストリームB内の最初のピクチャのpic_struct_present_flag、field_pic_flag、及びpic_structの値に基づいて指定され得るDeltaToDivisorに基づいて)、ある値に設定され得る。
スプライシング・ツールはまた、ビットストリームB内の以前のBP SEIメッセージを有するピクチャに対する遅延である、ビットストリームB内の復号化順でRAPピクチャに先行していた(ビットストリームB)のピクチャのCPBRD値を発見して読み出す。このCPBRDの値は、DPREVBである。ビットストリームB内に先行するピクチャがなかった場合、DPREVBは、0に設定される。
スプライシング・ツールはまた、ビットストリームA内の以前のBP SEIメッセージを有するピクチャに対する遅延である、ビットストリームA内の復号化順でスプライス・ポイントに先行する(ビットストリームA)の最後のピクチャのCPBRD値を発見して読み出す。このCPBRDの値は、DPREVAである。ビットストリームA内の復号化順でスプライス・ポイントに先行する(ビットストリームAの)最後のピクチャが、BP SEIメッセージを有するピクチャである場合、DPREVAは、0に設定される。
スプライシング・ツールは、次いで、スプライス・ポイントにおける、ビットストリームBからのRAPピクチャのCPBRD値を修正して、そのCPBRD値をDPREVA+(DRAPB−DPREVB)に設定すると、スプライス・ポイントにおける、ビットストリームBからのRAPピクチャのCPBRD値は、ビットストリームA内の以前のBP SEIメッセージを有するピクチャに対して表されるようになる。スプライシング・ツールは、この修正したRAPピクチャと、ビットストリームBからの後続のピクチャと、を、ビットストリームAから取得されたピクチャの後のスプライシング・ビットストリーム(spliced bitstream)にする。
所定の詳細、関連する他のオペレーション、及び潜在的複雑さは、この説明から省略されている。例えば、この説明は、リファレンス・クロック・チック値(reference clock tick value)が2つのビットストリーム間で異なる場合、又はRAPピクチャとBP SEIメッセージの位置とが一致しない場合には対処しない。
スプライシング・ツールは、上述した発見オペレーション及び読み出しオペレーションを実行する。というのは、CPBRDのシンタックス及びセマンティックのための従来の手法に従うと、CPBRD情報は、以前のBP SEIメッセージを有する、ビットストリーム内のピクチャを基準とするからである。スプライス・ポイントにおけるCPBRD値が、このリファレンス・ポイントに対して表されるように、スプライシング・ツールは、スプライシング・ビットストリーム内のCPBRD情報を調整する。CPBRD値を発見して読み出すオペレーションは、面倒で、実行するのに難しいものであり得、(例えば、暗号化又はバッファリング容量制約に起因して、)スプライシング・システムが容易にアクセスできないデータへのアクセスを要し得る。
図7は、2つの別々に符号化されたビットストリームA及びビットストリームBの連結を伴う単純化した状況の問題を示している。図7の一番上の部分は、スプライシング前の、ビットストリームAの3つのアクセス・ユニット(「AU」)と、ビットストリームBの2つのAUと、を示している。ビットストリームAに関して、CPBRD値は、ビットストリームAの第1AU(すなわち、AU0)の初期CPB引き抜き遅延に対する、第2AU及び第3AU(すなわち、AU1及びAU2)の引き抜き遅延を示すためにシグナリングされる。ビットストリームBに関して、CPBRD値は、ビットストリームBの第1AU(すなわち、AU0)の初期CPB引き抜き遅延に対する、第2AU(すなわち、AU1)の引き抜き遅延を示すためにシグナリングされる。値au_cbp_removal_delay(k)は、AUkのCPB引き抜き遅延を指す。ビットストリームBのAUが、ビットストリームAのAUの後にスプライシングされるとき、ビットストリームBの第1AU(AU0)のCPBRDが決定される。図7の一番下の部分は、単一のビットストリームにスプライシングした後の、ビットストリームA及びビットストリームBのAUを示している。AUのCPBRD値のいくつか(すなわち、ビットストリームAの第1AU(AU0)の初期CPB引き抜き遅延に対する、ビットストリームAの第2AU及び第3AU(AU1及びAU2)のCPBRD値、及び、ビットストリームBの第1AU(AU0)のCPB引き抜き遅延に対する、ビットストリームBの第2AU(AU1)のCPBRD値)は、スプライシング・ビットストリームにおいて変わらない。しかしながら、ビットストリームBの第1AU(スプライシング前はAU0であるが、スプライシング後は、AU3と番号が付けられる)のCPBRD値は、スプライシング・ビットストリームに関して、ビットストリームAの第1AU(AU0)の初期CPB引き抜き遅延に対する引き抜き遅延を表すように調整される。より複雑な例において(例えば、ビットストリームがより多くのAUを含む場合、及び/又はいくつかのAUが利用可能でない場合)、スプライシング・ビットストリームにおける第2シーケンスの第1AUのCPBRD値を決定することは、難しいことであり得る。
B.CPBRDのシンタックス及びセマンティックスを修正する一般的手法
このセクションは、CPBRDのシンタックス及びセマンティックスの以前の手法に対する様々な修正例を提供する。この修正例に従うと、(通常は「現ピクチャ」と呼ばれる)所与のピクチャが、自身に関連付けられたBP SEIメッセージを有する場合、エンコーダは、以下のことを示すシンタックス要素を送信することができる。
(a)以前の手法と同様に、BP SEIメッセージを有する、復号化順(ビットストリーム順とも呼ばれる)で現ピクチャに先行するピクチャの名目上のCPB引き抜き時間に対するCPBRD値(「アイテムa」);
(b)復号化順で現ピクチャに先行する最後の先行するピクチャがBP SEIメッセージを有しているかどうかにかかわらず、現ピクチャに先行するその最後のピクチャの名目上のCPB引き抜き時間に対するCPBRD値(「アイテムb」)(いくつかの変形例において、同じ又はより下位のテンポラル・サブレイヤ(temporal sub-layer)にある、現ピクチャに先行する最後のピクチャが考慮される;例えば、現ピクチャが、0に等しいTemporalIdを有する場合、先行するピクチャもまた、0に等しいTemporalIdを有する);及び
(c)(i)アイテムaにおいて指定される値が存在するかどうか(又は、常に存在する場合、その値が妥当であるかどうか)と、(ii)アイテムbにおいて指定される値が存在するかどうか(又は、常に存在する場合、その値が妥当であるかどうか)と、のインジケーション(「アイテムc」)。
アイテムcの2つのインジケーションは、3つの許容される組合せ(すなわち、アイテムaは妥当/アイテムbは妥当でない、アイテムaは妥当でない/アイテムbは妥当、又はアイテムa及びアイテムbの両方とも妥当)のうちの1つを示す単一のシンタックス要素に結合することができる。(代替的に、0の値が妥当な値ではあり得ない実施例において、アイテムcに関して、妥当性の欠如を示す1つの方法は、CPBRD値に対して0の値を使用することである。CPBRD値の両方とも妥当でないと示すことは禁止される。)
そのようなシンタックスを使用すると、スプライシング・ツールは、多くの場合において、そのスプライシング・オペレーションを単純化することができる。ビットストリームBのコンテンツが、アイテムbにおける決まりに従う場合、他の値を読み出すことは必要とされず、2つのビットストリームからのデータを単に一緒に連結することができる。ビットストリームBのコンテンツがまた、アイテムaにおける決まりに従うシンタックス要素を含む場合、アイテムaのCPBRDデータは、連結ビットストリームにおいて、妥当でないものとして、除去される、あるいはマーキングされる。
現ピクチャが、BP SEIメッセージを有していない場合、JCTVC−K1003におけるようなHEVC規格のシンタックス又は(H.264/AVC規格におけるような)同等のシンタックスを、変更することなく、使用することができる。
アイテムbの変形例として、シンタックスは、(上記で示したように、任意のテンポラル・サブレイヤではなく)同じテンポラル・サブレイヤ又はより下位のテンポラル・サブレイヤ内にある、復号化順で現ピクチャに先行する最後のピクチャの名目上のCPB引き抜き時間に対するCPBRDインクリメント値を指定することができる。この場合、CPBRD値は、任意のサブレイヤのまさに先行するピクチャではなく、同じ(又は、より下位の)テンポラル・サブレイヤ内の先行するピクチャに対して表される。これは、このスキームを、もしあればより上位のテンポラル・サブレイヤのピクチャの引き抜きに対してロバストにする。この変形例はまた、セクションC、セクションD、及びセクションEのそれぞれにおいて説明する単一値手法及び2値手法のために適用することができる。例えば、現ピクチャが、0に等しいTemporalIDを有する場合、CPBRD値は、0に等しいTemporalIdを有する先行するピクチャに対して表される。これは、0に等しいTemporalIdを有するピクチャのために、アイテムbの決まりに従うCPBRD値のみがシグナリングされる状況であり得る(例えば、0に等しいTemporalIdを有するピクチャのために、そのようなCPBRD値を有するSEIメッセージのみを使用することができる状態に起因して)。
C.フラグを用いる単一値手法
上述した修正例の単一値変形例において、いくつかのピクチャに関して、エンコーダは、アイテムa及びアイテムbの2つのCPBRD値のうちの1つとともに、シグナリングされるCPBRD値がアイテムa又はアイテムbの決まりに対応するかどうかのインジケーションを送信する。
図8及び図9は、(JCTVC−K1003におけるような)BP SEIメッセージのシンタックス及びセマンティックスが修正されており、(JCTVC−K1003におけるような)いくつかのPT SEIメッセージのセマンティックスが修正されているが、それらのシンタックスは変わっていない単一値手法の一実施例を示している。BP SEIメッセージ・シンタックスは、図8の例示的なシンタックス(800)に示されるように、concatenation_flagと呼ばれるフラグを含むよう修正される。concatenation_flagは、バイナリ値である。所与のピクチャ(現ピクチャ)が、BP SEIメッセージを有する場合、現ピクチャのPT SEIメッセージにおけるCPBRD値のセマンティックスは、そのピクチャのBP SEIメッセージにおけるconcatenation_flagの値に依存する。図9は、シンタックス要素au_cpb_removal_delay_minus1を含むPT SEIメッセージのシンタックス(900)を示している。concatenation_flagの値が0である場合、シンタックス要素au_cpb_removal_delay_minus1により示されるCPBRD値は、アイテムaの決まりに従って解釈される。一方、concatenation_flagの値が1である場合、au_cpb_removal_delay_minus1により示されるCPBRD値は、アイテムbの決まりに従って解釈される。
図8及び図9に示される他のシンタックス要素は、JCTVC−K1003において規定された意味を有する。
スプライシング・ビットストリームに関して、concatenation_flagが1である場合、BP SEIメッセージを有するピクチャnの名目上の引き抜き時間tr,n(n)は、遅延とともに、前のピクチャ(アクセス・ユニット)n−1の名目上の引き抜き時間tr,n(n−1)から計算することができる:
r,n(n)=tr,n(n−1)+t*(Max(au_cpb_removal_delay(n),Ceil((InitCpbRemovalDelay[SchedSelIdx]÷90000+taf(n−1)−tr,n(n−1))÷t)))
この式において、制約Ceil((InitCpbRemovalDelay[SchedSelIdx]÷90000+taf(n−1)−tr,n(n−1))÷t)は、遅延が、復号化がバッファ・アンダーフローなくスプライス・ポイント(ピクチャn)で始まる場合と少なくとも同じ長さであることを確実にする。tr,n(n−1)に付加される遅延は、ピクチャnのためにシグナリングされるCPBRD値と、制約により示されるスタートアップ遅延と、のうちの長い方に応じて設定される。
図10は、制約Ceil((InitCpbRemovalDelay[SchedSelIdx]÷90000+taf(n−1)−tr,n(n−1))÷t)がなぜ考慮されるかを示している。バッファリング期間SEIメッセージに関連付けられた各アクセス・ユニットn(n>0)について、値Δtg,90(n)は、Δtg,90(n)=90000*(tr,n(n)−taf(n−1))により定められる。ここで、tr,n(n)は、アクセス・ユニットn(図10においては、現在のバッファ期間の最初のアクセス・ユニット)の名目上の引き抜き時間であり、taf(n−1)は、アクセス・ユニットn−1(図10においては、前のバッファ期間の最後のアクセス・ユニット)の最終到着時間である。図10において、ストリーム1及びストリーム2が、一緒に連結されるとき、CPBRD値が使用される場合、アンダーフローが生じ得る。この制約を用いると、アンダーフローが回避される。なぜならば、連結後のストリーム2のバッファ・ステータスは、元のバッファ・ステータスと同じに保たれるからである。
D.フラグ及び差分値を用いる2値手法
上述した修正例のいくつかの2値変形例において、いくつかのピクチャに関して、エンコーダは、RAPピクチャのSEIメッセージにおいて、アイテムa及びアイテムbの2つのCPBRD値のうちの一方又は両方を送信することができる。
図11は、(JCTVC−K1003におけるような)BP SEIメッセージのシンタックス及びセマンティックスが修正されている2値手法の一実施例を示している。(JCTVC−K1003におけるような)PT SEIメッセージのシンタックスは変わっていない。図11の例示的なシンタックス(1100)に示されるように、BP SEIメッセージ・シンタックスは、concatenation_flagと、au_cpb_removal_delay_delta_minus1と呼ばれるシンタックス要素と、を含むよう修正される。au_cpb_removal_delay_delta_minus1は、CPBRD「差分」値(ここでは、差分値−1)を示し得る。
concatenation_flagシンタックス要素は、指定された制約が、もしあれば復号化順で先行するピクチャの(又は、いくつかの変形例では、例えば、現ピクチャのTemporalIdの値以下のTemporalIdを有する先行するピクチャをチェックすることにより、もしあれば同じ又はより下位のテンポラル・サブレイヤ内の先行するピクチャの)、au_cpb_removal_delay_delta_minus1の値と、au_cpb_removal_delay_minus1の値と、の間の関係に適用されるかどうかを示す。例えば、テンポラル・サブレイヤが考慮されるとき、現ピクチャが0に等しいTemporalIdを有する場合には、そのチェックは、0に等しいTemporalIdを有する先行するピクチャのためである。
au_cpb_removal_delay_delta_minus1シンタックス要素+1は、もしあればビットストリーム順(復号化順)で現ピクチャに先行する最後のピクチャの(又は、いくつかの変形例では、例えば、現ピクチャのTemporalIdの値以下のTemporalIdを有する先行するピクチャをチェックすることにより、もしあれば同じ又はより下位のテンポラル・サブレイヤ内のそのような最後のピクチャの)名目上のCPB引き抜き時間に対するCPB引き抜き遅延インクリメント値を指定する。例えば、テンポラル・サブレイヤが考慮されるとき、現ピクチャが0に等しいTemporalIdを有する場合には、そのチェックは、0に等しいTemporalIdを有する先行するピクチャのためである。
concatenation_flagが0に等しい場合、(現ピクチャのPT SEIメッセージのau_cpb_removal_delay_minus1シンタックス要素により決定される)CPBRD値は、アイテムaに従って解釈される。先行するピクチャが、BP SEIメッセージを有していない場合、アイテムaのCPBRD値は、(アイテムbに従ったCPBRD値)+(復号化順で現ピクチャに先行するピクチャの(いくつかの変形例では、適切なテンポラル・サブレイヤの先行するピクチャの)アイテムaのCPBRD値)に等しい。アイテムbのCPBRD値は、現ピクチャのアイテムaのCPBRD値と、先行するピクチャのアイテムaのCPBRD値と、の差である。このアイテムbの値は、シンタックス要素au_cpb_removal_delay_delta_minus1により示され、その値は、2つのアイテムaのCPBRD値間の差に対してチェックされ得る。この2つのアイテムaのCPBRD値は、アイテムaのCPBRD値及びアイテムbのCPBRD値が妥当であることを確認するために、現ピクチャ及び先行するピクチャのPT SEIメッセージにおいて送信される。別のアイテムaのCPBRD値が、現ピクチャのPT SEIメッセージにおいてシグナリングされる。すなわち、現ピクチャが、BP SEIメッセージを有しており、concatenation_flagが0に等しい場合、現ピクチャは、ビットストリーム内の最初のピクチャではなく、以下のことが、ビットストリーム・コンフォーマンスのために必要とされる。
(1)先行するピクチャ(又は、いくつかの変形例では、現ピクチャのTemporalIdの値以下であるTemporalIdを有する先行するピクチャ)が、BP SEIメッセージを有していない場合、現ピクチャのau_cpb_removal_delay_minus1は、(先行するピクチャの(いくつかの変形例では、現ピクチャのTemporalIdの値以下であるTemporalIdを有する先行するピクチャの)au_cpb_removal_delay_minus1)+au_cpb_removal_delay_delta_minus1+1に等しい。
(2)そうでなければ(先行するピクチャが、BP SEIメッセージを有する場合)、au_cpb_removal_delay_minus1は、au_cpb_removal_delay_delta_minus1に等しい。
これらの要件は、concatenation_flagが0に等しい場合、先行する条件が満たされ、先行するピクチャが、BP SEIメッセージを有していないと仮定すると、アイテムa及びアイテムbのインジケーションがともに妥当であり存在する、ことを意味する。この場合、現ピクチャのBP SEIメッセージは、(シンタックス要素au_cpb_removal_delay_delta_minus1により表される)アイテムbのCPBRD値を含み、現ピクチャのPT SEIメッセージは、(au_cpb_removal_delay_minus1により表される)アイテムaのCPBRD値を含む。一方、先行するピクチャが、BP SEIメッセージを有する(且つ、フラグがやはり0に等しい)場合、シンタックス要素au_cpb_removal_delay_delta_minus1及びシンタックス要素au_cpb_removal_delay_minus1はともに、アイテムaのCPBRD値を示す。
concatenation_flagが1に等しい場合、シンタックス要素au_cpb_removal_delay_delta_minus1及びシンタックス要素au_cpb_removal_delay_minus1の上述したビットストリーム・コンフォーマンス要件は、満たされる必要がない。フラグが1に等しい場合、CPBRDの計算は、BP SEIメッセージを有していた先行するピクチャを直接的に基準とするのではなく、ビットストリーム・スプライシングに適切であるよう変更される。現ピクチャが、BP SEIメッセージを有し、concatenation_flagが1に等しい場合、現ピクチャの(現ピクチャのPT SEIメッセージにおける)au_cpb_removal_delay_minus1シンタックス要素は無視される。したがって、concatenation_flagが1に等しい場合、(現ピクチャのBP SEIメッセージにおける)au_cpb_removal_delay_delta_minus1シンタックス要素により示されるアイテムbのインジケーションだけが妥当である。
CPBRD値の上述した解釈は、スプライシング・ポイントにおけるRAPピクチャのBP SEIメッセージにおけるconcatenation_flagの値を0から1に単に変えることにより、(適切に設計されたリファレンシング構造を使用する)ビットストリームをスプライシングすることを可能にする。
このスキームにおいて、アイテムbのインジケーションは、常に妥当であるので(いくつかの場合では、現ピクチャのアイテムaのCPBRD値に等しいことが必要とされ、他の場合では、現ピクチャのアイテムaのCPBRD値と前のピクチャのアイテムaのCPBRD値との差に等しいことが必要とされるが)、HRDタイミング情報の仕様は、常にアイテムbに基づき得る。さらに、concatenation_flagが0に等しい場合、デコーダは、等しいことの条件が満たされるか否かをチェックすることができる。満たされない場合、これは、何らかの問題が生じたこと(例えば、先行するピクチャが失われた、あるいは同じ又はより下位のテンポラル・サブレイヤにおける先行するピクチャが失われた)を示す。このピクチャが失われたことを検出すると、デコーダは、アイテムaのCPBRDデータを解釈し、アイテムbのデータを破棄することにより、正しいCPBRDタイミング情報をリカバーすることができる(というのは、そのデータから正しいCPBRDタイミングを計算することは、失われたピクチャのデータの使用を必要とするからである)。デコーダはまた、そのような損失が検出された場合、損失隠蔽手段(loss concealment measures)を呼び出すこともできる。
フラグ(例えば、concatenation_flag)及び差分値を用いるこのような2値手法において、BP SEIメッセージを有するピクチャnの名目上の引き抜き時間は、遅延とともに、前のピクチャ(アクセス・ユニット)nの名目上の引き抜き時間から計算することができる。例えば、アクセス・ユニットnが、HRDを初期化しないバッファリング期間の最初のアクセス・ユニットである場合、CPBからのアクセス・ユニットnの名目上の引き抜き時間tr,n(n)は、以下のように指定される。
現ピクチャが、1に等しいconcatenation_flagを有するBP SEIメッセージに関連付けられている場合、名目上の引き抜き時間tr,n(n)は、以下のように指定される。
r,n(n)=tr,n(n)+t*(Max((au_cpb_removal_delay_delta_minus1(n)+1),Ceil((InitCpbRemovalDelay[SchedSelIdx]÷90000+taf(n)−tr,n(n))÷t)))
ここで、tr,n(n)は、先行するピクチャの(いくつかの変形例では、現ピクチャのTemporalIdの値以下であるTemporalIdを有する先行するピクチャの)名目上の引き抜き時間であり、au_cpb_removal_delay_delta_minus1(n)は、アクセス・ユニットnに関連付けられたBP SEIメッセージにおけるau_cpb_removal_delay_delta_munus1の値である。制約Ceil((InitCpbRemovalDelay[SchedSelIdx]÷90000+taf(n)−tr,n(n))÷t)は、遅延が、復号化がバッファ・アンダーフローなくスプライス・ポイント(ピクチャn)で始まる場合と少なくとも同じ長さであることを確実にする。tr,n(n)に付加される遅延は、ピクチャnのためにシグナリングされるCPBRD値と、制約により示されるスタートアップ遅延と、のうちの長い方に応じて設定される。
そうでなければ(現ピクチャが、1に等しいconcatenation_flagを有するBP SEIメッセージに関連付けられていない場合)、名目上の引き抜き時間は、以下のように指定される。
r,n(n)=tr,n(n)+t*(au_cpb_removal_delay_minus1(n)+1)
ここで、tr,n(n)は、前のバッファリング期間の最初のアクセス・ユニットの名目上の引き抜き時間であり、au_cpb_removal_delay_minus1(n)は、アクセス・ユニットnに関連付けられたPT SEIメッセージにおけるau_cpb_removal_delay_minus1の値である。
連結フラグ(concatenation flag)及び差分値を用いる2値手法に関して、デコーダの複雑さに対する影響及びシンタックス・データの付加量は、最小限で済む。付加されるシンタックス要素(au_cpb_removal_delay_delta_minus1及び関連するconcatenation_flag)は、BP SEIメッセージを有するピクチャのために必要とされるだけであり、これはめったに生じない。スプライシング・オペレーションは、潜在的に格段に単純化される。この手法を用いると、単にスプライシング・ポイントにおけるRAPピクチャのBP SEIメッセージにおけるconcatenation_flagの値を1に設定することにより、ビットストリーム間をスプライシングすることが可能となり得る、あるいは、(適切に設計されたリファレンシング構造を使用する)別々に符号化されたビットストリームをスムーズに連結することが可能となり得る。同時に、concatenation_flagが0に等しい場合、指定された制約により、デコーダは、先行するピクチャ(又は、同じ又はより下位のテンポラル・サブレイヤ内の先行するピクチャ)の損失を検出する方法として、制約が満たされるかどうかをチェックすることが可能となる。
E.代替的なCPBRDのシンタックス及びセマンティックスの条件付き使用
いくつかの変形例では、代替的なCPBRDのシンタックス及びセマンティックスの使用又は不使用が、ビットストリームにおいてシグナリングされる。したがって、付加データ量が懸念される場合、追加のシンタックス要素が存在しない場合には従来の解釈(BP SEIメッセージを有する先行するピクチャに対するCPBRD値)が適用され、追加のシンタックス要素の存在が、より高いシンタックス・レベルにおけるフラグの必要条件とされ得る。
例えば、エンコーダは、単純化されるビデオ・スプライシング・オペレーションのためのサポートを伴うCPBRDのシンタックス及びセマンティックスが使用されるかどうかを示す、ビットストリーム内のシーケンス・パラメータ・セット(「SPS」)又は他のどこかにおけるオン/オフ値を設定することができる。オン/オフ値が、単純化されるビデオ・スプライシングのためのサポートがオフであることを示す場合、エンコーダは、以前の手法のように、従来のCPBRDのシンタックス及びセマンティックスを使用する。オン/オフ値が、単純化されるビデオ・スプライシングのためのサポートがオンであることを示す場合、エンコーダは、(例えば、本明細書で説明した新たな手法のうちの1つに従った、)単純化されるビデオ・スプライシング・オペレーションのためのサポートを伴うCPBRDのシンタックス及びセマンティックスを使用する。
対応するデコーダは、単純化されるビデオ・スプライシング・オペレーションのためのサポートを伴うCPBRDのシンタックス及びセマンティックスが使用されるかどうかを示す、ビットストリーム内のアクティブSPS又は他のどこかにおけるオン/オフ値を受信及び解析する。オン/オフ値が、単純化されるビデオ・スプライシングのためのサポートがオフであることを示す場合、デコーダは、以前の手法のように、従来のCPBRDのシンタックス及びセマンティックスを使用する。オン/オフ値が、単純化されるビデオ・スプライシングのためのサポートがオンであることを示す場合、デコーダは、(例えば、本明細書で説明した新たな手法のうちの1つに従った、)単純化されるビデオ・スプライシング・オペレーションのためのサポートを伴うCPBRDのシンタックス及びセマンティックスを使用する。
ビデオ・スプライシング・ツールは、スプライシング・オペレーションをどのように実行するかを決定するとき、オン/オフ・フラグを考慮することができる。オン/オフ値が設定されていない(オフである)場合、スプライシング・ツールは、以前の手法のように、CPBRD値の調整による従来のスプライシングを使用する。オン/オフ値が設定されている(オンである)場合、スプライシング・ツールは、本明細書で説明したように、単純化した連結オペレーションを使用する。
F.復号化ユニットの代替例
前述の例の多くにおいて、CPBRD値は、ピクチャのために設定又は決定される。そのようなピクチャはまた、プライマリ・ピクチャに対応するアクセス・ユニットと呼ばれ得る。
代替的に、CPBRD値は、復号化ユニットのために設定又は決定されてもよい。ここで、復号化ユニットは、プライマリ・ピクチャのアクセス・ユニットのサブセットである。例えば、復号化ユニットは、ピクチャのスライスであり得る。HRDは、アクセス・ユニットに対して機能してもよいし、(例えば、ピクチャのスライス又は他の部分等の)復号化ユニットに対して機能してもよい。一般に、復号化ユニットに関して、CPBRD値は、先行するピクチャの最後の復号化ユニットに対するものである。
本明細書で説明した技術及びツールは、アクセス・ユニット又は復号化ユニットに適用することができる。「ユニット」という語は、アクセス・ユニット又は復号化ユニットを意味し得る。ユニットのCPBRD値は、先行するピクチャに対して表される。アクセス・ユニットに関して、先行するアクセス・ユニットは、解釈に応じて、最後のアクセス・ユニットであってもよいし、同じテンポラル・サブレイヤ又はより下位のテンポラル・サブレイヤ内の最後のアクセス・ユニットであってもよいし、BP SEIメッセージを有する最後のアクセス・ユニットであってもよい。復号化ユニットに関して、そのような先行するアクセス・ユニットの最後の復号化ユニットが考慮される。
G.CPBRDのシンタックス及びセマンティックスを修正する技術
図12は、符号化中にCPBRD値を設定するための一般化された技術(1200)を示している。図3を参照して上述したもののようなビデオ・エンコーダ又は他のビデオ・エンコーダが、技術(1200)を実行する。
エンコーダは、ビデオ・シーケンスの所与のユニットのCPBRD値を設定する(1210)。例えば、所与のユニットは、BP SEIメッセージを有し、ランダム・アクセス・ピクチャとすることができるピクチャのアクセス・ユニットである。あるいは、所与のユニットは、そのようなピクチャの一部の復号化ユニットであってもよい。所与のユニットのCPBRD値は、復号化順で先行するピクチャがBP SEIメッセージを有しているかどうかにかかわらず、その先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値を示す。いくつかの実施例において、先行するピクチャは、復号化順で所与のユニット(又は、所与のユニットを含むピクチャ)の直前に先行するものである。代替的に、所与のユニットと同じテンポラル・サブレイヤ又はより下位のテンポラル・サブレイヤにおけるビデオ・シーケンスのピクチャのうち、先行するピクチャは、復号化順で所与のユニット(又は、所与のユニットを含むピクチャ)の直前に先行するものであってもよい。例えば、テンポラル・サブレイヤが考慮されるとき、現ピクチャが、0に等しいTemporalIdを有する場合、先行するピクチャは、0に等しいTemporalIdを有する先行するピクチャである。
エンコーダは、所与のユニットのCPBRD値をシグナリングする(1220)。例えば、CPBRD値は、符号化ピクチャのアクセス・ユニットに関連付けられたBP SEIメッセージ又はPT SEIメッセージ内に書き込まれる。
いくつかの変形例(例えば、2値手法)において、エンコーダは、異なる決まりに従って、所与のユニットの複数のCPBRD値を潜在的に設定する。例えば、復号化順で先行するピクチャがBP SEIメッセージを有しているかどうかにかかわらず、その先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値としてCPBRD値を設定する(1210)ことに加えて、エンコーダは、所与のユニットの別のCPBRD値を設定する。所与のユニットの別のCPBRD値は、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値を示す。エンコーダは、次いで、(例えば、所与のユニットのPT SEIメッセージにおいて)所与のユニットの別のCPBRD値をシグナリングする。エンコーダはまた、CPBRD値の各々が、それぞれ、存在するか存在しないかの1以上のインジケーションをシグナリングする(例えば、1以上のSEIメッセージ内に書き込む)こともできる。あるいは、エンコーダは、CPBRD値の各々が、それぞれ、妥当であるか妥当でないかの1以上のインジケーションをシグナリングする(例えば、1以上のSEIメッセージ内に書き込む)ことができる。
他の変形例(例えば、単一値手法)において、エンコーダは、所与のユニットのCPBRD値のタイプのインジケーションをシグナリングする(例えば、1以上のSEIメッセージ内に書き込む)。例えば、CPBRD値のタイプのインジケーションは、所与のユニット又は所与のユニットを含むピクチャのBP SEIメッセージにおいてシグナリングされる。CPBRD値のタイプのインジケーションは、所与のユニットのCPBRD値をどのように解釈するかを示し、これは、PT SEIメッセージにおいてシグナリングされ得る。例えば、エンコーダは、ビデオ・シーケンスの所与のユニットのCPBRD値のタイプのインジケーションをシグナリングし、次いで、所与のユニットのCPBRD値を設定する。CPBRD値の第1のタイプに関して、所与のユニットのCPBRD値は、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値を示す。CPBRD値の第2のタイプに関して、所与のユニットのCPBRD値は、復号化順で先行するピクチャがBP SEIメッセージを有しているかどうかにかかわらず、その先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値を示す。エンコーダは、次いで、所与のユニットのCPBRD値をシグナリングする。
さらに他の変形例(例えば、フラグ及び差分値を用いる2値手法)において、エンコーダは、所与のユニットのCPBRD値のタイプのインジケーションをシグナリングし(例えば、1以上のSEIメッセージ内に書き込み)、差分値を表す、所与のユニットのCPBRD値をシグナリングする。例えば、CPBRD値のタイプのインジケーション及びCPBRD値(差分値)は、所与のユニット又は所与のユニットを含むピクチャのBP SEIメッセージにおいてシグナリングされる。CPBRD値のタイプに応じて、現ピクチャのCPBRD値は、PT SEIメッセージにおいてシグナリングされ得る。例えば、エンコーダは、ビデオ・シーケンスの所与のユニットのCPBRD値のタイプのインジケーションをシグナリングし、所与のユニットのCPBRD値として、差分値を設定する。所与のユニットの差分値は、所与のユニットのCPBRD値と復号化順で先行するピクチャのCPBRD値との差を示す。エンコーダは、(例えば、BP SEIメッセージにおいて)所与のユニットのCPBRD値として、差分値をシグナリングする。エンコーダはまた、所与のユニットの別のCPBRD値を設定する。CPBRD値の第1のタイプに関して、別のCPBRD値は、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値を示す。CPBRD値の第2のタイプに関して、所与のユニットの別のCPBRD値は、妥当でない。エンコーダは、(例えば、PT SEIメッセージにおいて)所与のユニットの別のCPBRD値をシグナリングする。
エンコーダは、ユニット単位で(例えば、ピクチャ単位で)、技術(1200)を繰り返すことができる。単純さのため、図12は、技術(1200)が他の符号化プロセスとともにどのように機能するかを示してはいない。
図13は、CPBRD値がピクチャのために設定される場合の、単一値手法に従って、符号化中にCPBRD値を設定するための例示的な技術(1300)を示している。図3を参照して上述したもののようなビデオ・エンコーダ又は他のビデオ・エンコーダが、技術(1300)を実行する。
まず、エンコーダは、ビデオ・シーケンス内の現ピクチャを取得する(1310)。エンコーダは、現ピクチャがBP SEIメッセージを有しているかどうかをチェックする(1320)。現ピクチャがBP SEIメッセージを有していない場合、エンコーダは、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値として、PT SEIメッセージにおける現ピクチャのCPBRD値を設定する(1360)。
一方、現ピクチャが、BP SEIメッセージを有している場合、エンコーダは、現ピクチャのBP SEIメッセージにおける連結フラグ値を設定する(1330)。フラグの値に応じて(1340)、エンコーダは、現ピクチャのCPBRD値を、異なる態様で設定することができる。フラグが1に等しい場合、エンコーダは、復号化順で先行するピクチャがBP SEIメッセージを有しているかどうかにかかわらず、その先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値として、PT SEIメッセージにおける現ピクチャのCPBRD値を設定する(1350)。そうでなければ(フラグが0に等しい場合)、エンコーダは、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値として、PT SEIメッセージにおける現ピクチャのCPBRD値を設定する(1360)。
エンコーダは、終了かどうかをチェックし(1370)、終了でない場合、現ピクチャとして次のピクチャを続ける。単純さのため、図13は、技術(1300)が他の符号化プロセスとともにどのように機能するかを示してはいない。
図14は、復号化中にCPBRD値を処理するための一般化された技術(1400)を示している。図4を参照して上述したもののようなビデオ・デコーダ又は他のビデオ・デコーダが、技術(1400)を実行する。
デコーダは、ビデオ・シーケンスの所与のユニットのCPBRD値を受信する(1410)。例えば、所与のユニットは、BP SEIメッセージを有し、ランダム・アクセス・ピクチャとすることができるピクチャのアクセス・ユニットである。あるいは、所与のユニットは、そのようなピクチャの一部の復号化ユニットであってもよい。所与のユニットのCPBRD値は、復号化順で先行するピクチャがBP SEIメッセージを有しているかどうかにかかわらず、その先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値を示す。いくつかの実施例において、先行するピクチャは、復号化順で所与のユニット(又は、所与のユニットを含むピクチャ)の直前に先行するものである。代替的に、所与のユニットと同じテンポラル・サブレイヤ又はより下位のテンポラル・サブレイヤにおけるビデオ・シーケンスのピクチャのうち、先行するピクチャは、復号化順で所与のユニット(又は、所与のユニットを含むピクチャ)の直前に先行するものであってもよい。例えば、テンポラル・サブレイヤが考慮されるとき、現ピクチャが、0に等しいTemporalIdを有する場合、先行するピクチャは、0に等しいTemporalIdを有する先行するピクチャである。
デコーダは、所与のユニットのCPBRD値を解析する(1420)。例えば、符号化ピクチャのアクセス・ユニットに関連付けられたBP SEIメッセージ又はPT SEIメッセージからのCPBRD値が解析される。
いくつかの変形例(例えば、2値手法)において、デコーダは、異なる決まりに従って解釈されるべき、所与のユニットの複数のCPBRD値を潜在的に受信及び解析する。例えば、復号化順で先行するピクチャがBP SEIメッセージを有しているかどうかにかかわらず、その先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値として設定されたCPBRD値に加えて、デコーダは、所与のユニットの(例えば、所与のユニットのPT SEIメッセージからの)別のCPBRD値を受信及び解析する。所与のユニットの別のCPBRD値は、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値を示す。デコーダはまた、CPBRD値の各々が、それぞれ、存在するか存在しないかの1以上のインジケーションを受信及び解析することもできる。あるいは、デコーダは、CPBRD値の各々が、それぞれ、妥当であるか妥当でないかの1以上のインジケーションを受信及び解析することができる。
他の変形例(例えば、単一値手法)において、デコーダは、所与のユニットのCPBRD値のタイプのインジケーションを受信及び解析する。例えば、所与のユニット又は所与のユニットを含むピクチャのBP SEIメッセージからのCPBRD値のタイプのインジケーションが解析される。CPBRD値のタイプのインジケーションは、所与のユニットのCPBRD値をどのように解釈するかを示し、PT SEIメッセージからのCPBRD値が解析され得る。例えば、デコーダは、ビデオ・シーケンスの所与のユニットのCPBRD値のタイプのインジケーションを受信及び解析し、次いで、所与のユニットのCPBRD値を受信及び解析する。CPBRD値の第1のタイプに関して、所与のユニットのCPBRD値は、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値を示す。CPBRD値の第2のタイプに関して、所与のユニットのCPBRD値は、復号化順で先行するピクチャがBP SEIメッセージを有しているかどうかにかかわらず、その先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値を示す。
さらに他の変形例(例えば、フラグ及び差分値を用いる2値手法)において、デコーダは、所与のユニットのCPBRD値のタイプのインジケーションを受信及び解析し、差分値を表す、所与のユニットのCPBRD値を受信及び解析する。例えば、所与のユニット又は所与のユニットを含むピクチャのBP SEIメッセージからのCPBRD値のタイプのインジケーション及びCPBRD値(差分値)が解析される。CPBRD値のタイプに応じて、PT SEIメッセージからの所与のユニットのCPBRD値が解析され得る。例えば、デコーダは、ビデオ・シーケンスの所与のユニットのCPBRD値のタイプのインジケーションを受信及び解析し、(例えば、BP SEIメッセージからの)所与のユニットのCPBRD値としての差分値を受信及び解析する。所与のユニットの差分値は、所与のユニットのCPBRD値と復号化順で先行するピクチャのCPBRD値との差を示す。デコーダはまた、(例えば、PT SEIメッセージからの)所与のユニットの別のCPBRD値を受信及び解析する。妥当である場合、所与のユニットの別のCPBRD値は、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値を示す。
所与のユニットのCPBRD値を解析した後、デコーダは、CPBRD値を利用することができる。例えば、所与のユニットのCPBRD値に少なくとも部分的に基づいて、デコーダは、所与のユニットのCPBからの、名目上の引き抜き時間を計算することができる。
デコーダは、ユニット単位で(例えば、ピクチャ単位で)、技術(1400)を繰り返すことができる。単純さのため、図14は、技術(1400)が他の復号化プロセスとともにどのように機能するかを示してはいない。
図15は、CPBRD値がピクチャのために設定される場合の、単一値手法に従って、復号化中にCPBRD値を判定するための例示的な技術(1500)を示している。図4を参照して上述したもののようなビデオ・デコーダ又は他のビデオ・デコーダが、技術(1500)を実行する。
まず、デコーダは、ビデオ・シーケンス内の現ピクチャを取得する(1510)。デコーダは、現ピクチャがBP SEIメッセージを有しているかどうかをチェックする(1520)。現ピクチャがBP SEIメッセージを有していない場合、デコーダは、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値として、PT SEIメッセージにおける現ピクチャのCPBRD値を解釈する(1560)。
一方、現ピクチャが、BP SEIメッセージを有している場合、デコーダは、現ピクチャのBP SEIメッセージにおける連結フラグ値を取得する(1530)。フラグの値に応じて(1540)、デコーダは、現ピクチャのCPBRD値を、異なる態様で解釈することができる。フラグが1に等しい場合、デコーダは、復号化順で先行するピクチャがBP SEIメッセージを有しているかどうかにかかわらず、その先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値として、PT SEIメッセージにおける現ピクチャのCPBRD値を解釈する(1550)。そうでなければ(フラグが0に等しい場合)、デコーダは、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値として、PT SEIメッセージにおける現ピクチャのCPBRD値を解釈する(1560)。
デコーダは、終了かどうかをチェックし(1570)、終了でない場合、現ピクチャとして次のピクチャを続ける。単純さのため、図15は、技術(1500)が他の復号化プロセスとともにどのように機能するかを示してはいない。
図16は、ビットストリームをスプライシングするための一般化された技術(1600)を示している。ビデオ・スプライシング・ツールが、技術(1600)を実行する。
スプライシング・ツールは、第1ビデオ・シーケンスの第1ビットストリームを受信する(1610)とともに、第2ビデオ・シーケンスの第2ビットストリームを受信する(1620)。第2ビデオ・シーケンスの所与のユニットのCPBRD値は、復号化順で先行するピクチャがBP SEIメッセージを有しているかどうかにかかわらず、その先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値を示す。
スプライシング・ツールは、第2ビデオ・シーケンスの少なくとも一部分を、第1ビデオ・シーケンスにスプライシングする(1630)。スプライシングの一部として、スプライシング・ツールは、所与のユニット又は所与のユニットを含むピクチャで始まる第2ビデオ・シーケンスを、第1ビデオ・シーケンスに連結する。例えば、スプライシング・ツールは、所与のユニット又は所与のユニットを含むピクチャのBP SEIメッセージ(BP SEIメッセージは、所与のユニットのCPBRD値のタイプのインジケーションと、いくつかの変形例においては、所与のユニットの第1のCPBRD値と、を含む)と、PT SEIメッセージ(PT SEIメッセージは、所与のユニットのCPBRD値と、いくつかの変形例においては、所与のユニットの第2のCPBRD値と、を含む)と、を連結する。
いくつかの実施例において、所与のユニットの(例えば、PT SEIメッセージにおける)第2のCPBRD値は、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値を示す。この場合、スプライシングの一部として、スプライシング・ツールは、所与のユニットの他の第2のCPBRDを破棄してもよいし、妥当でないものとして、所与のユニットの他の第2のCPBRDをマーキングしてもよい。
図17は、CPBRD値がピクチャのために設定される場合の、フラグ及び差分値を用いる2値手法に従って、符号化中にCPBRD値を設定するための例示的な技術(1700)を示している。図3を参照して上述したもののようなビデオ・エンコーダ又は他のビデオ・エンコーダが、技術(1700)を実行する。
まず、エンコーダは、ビデオ・シーケンス内の現ピクチャを取得する(1710)。エンコーダは、現ピクチャがBP SEIメッセージを有しているかどうかをチェックする(1720)。現ピクチャがBP SEIメッセージを有していない場合、エンコーダは、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値として、PT SEIメッセージにおける現ピクチャのCPBRD値を設定する(1760)。
一方、現ピクチャが、BP SEIメッセージを有している場合、エンコーダは、現ピクチャのBP SEIメッセージにおける連結フラグ値を設定する(1730)。フラグの値に応じて(1740)、エンコーダは、現ピクチャのCPBRD値を、異なる態様で設定することができる。
フラグが1に等しい場合、エンコーダは、任意の値を有する、PT SEIメッセージにおける現ピクチャのCPBRD値を設定する(1750)。なぜならば、PT SEIメッセージにおける現ピクチャのCPBRD値は、無視されることになるからである。現ピクチャのBP SEIメッセージにおけるCPBRD値(差分値)が、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値として解釈されることになる。
そうでなければ(フラグが0に等しい場合)、エンコーダは、復号化順で先行するピクチャが、BP SEIメッセージを有しているかどうかをチェックする(1742)。復号化順で先行するピクチャが、BP SEIメッセージを有している場合、PT SEIメッセージにおける現ピクチャのCPBRD値が、(現ピクチャのBP SEIメッセージにおけるCPBRD値)+1に等しくなるように、エンコーダは、現ピクチャのBP SEIメッセージにおけるCPBRD値を設定する(1744)。そうでなければ(先行するピクチャが、BP SEIメッセージを有していない場合)、PT SEIメッセージにおける現ピクチャのCPBRD値が、(PT SEIメッセージにおける前のピクチャのCPBRD値)+(現ピクチャのBP SEIメッセージにおけるCPBRD値(差分値))+1に等しくなるように、エンコーダは、現ピクチャのBP SEIメッセージにおけるCPBRD値を設定する(1746)。エンコーダはまた、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値として、PT SEIメッセージにおける現ピクチャのCPBRD値を設定する(1760)。
エンコーダは、終了かどうかをチェックし(1770)、終了でない場合、現ピクチャとして次のピクチャを続ける。単純さのため、図17は、技術(1700)が他の符号化プロセスとともにどのように機能するかを示してはいない。
図18は、CPBRD値がピクチャのために設定される場合の、フラグ及び差分値を用いる2値手法に従って、復号化中にCPBRD値を判定するための例示的な技術(1800)を示している。図4を参照して上述したもののようなビデオ・デコーダ又は他のビデオ・デコーダが、技術(1800)を実行する。
まず、デコーダは、ビデオ・シーケンス内の現ピクチャを取得する(1810)。デコーダは、現ピクチャがBP SEIメッセージを有しているかどうかをチェックする(1820)。現ピクチャがBP SEIメッセージを有していない場合、デコーダは、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値として、PT SEIメッセージにおける現ピクチャのCPBRD値を解釈する(1860)。
一方、現ピクチャがBP SEIメッセージを有している場合、デコーダは、現ピクチャのBP SEIメッセージにおける連結フラグ値を取得する(1830)。フラグの値に応じて(1840)、デコーダは、現ピクチャのCPBRD値を、異なる態様で解釈することができる、あるいは、現ピクチャのCPBRD値を無視することさえできる。
フラグが1に等しい場合、デコーダは、PT SEIメッセージにおける現ピクチャのCPBRD値を無視する(1850)。現ピクチャのBP SEIメッセージにおけるCPBRD値(差分値)が、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値として解釈される。
そうでなければ(フラグが0に等しい場合)、デコーダは、先行するピクチャがBP SEIメッセージを有しているかどうかをチェックする(1842)。先行するピクチャがBP SEIメッセージを有している場合、デコーダは、PT SEIメッセージにおける現ピクチャのCPBRD値が、(現ピクチャのBP SEIメッセージにおけるCPBRD値)+1に等しいことを確認することができる(1844)。そうでなければ(先行するピクチャがBP SEIメッセージを有していない場合)、デコーダは、PT SEIメッセージにおける現ピクチャのCPBRD値が、(PT SEIメッセージにおける前のピクチャのCPBRD値)+(現ピクチャのBP SEIメッセージにおけるCPBRD値(差分値))+1に等しいことを確認することができる(1846)。デコーダはまた、BP SEIメッセージを有する、復号化順で先行するピクチャの名目上のCPB引き抜き時間に対するインクリメント値として、PT SEIメッセージにおける現ピクチャのCPBRD値を解釈する(1860)。
デコーダは、終了かどうかをチェックし(1870)、終了でない場合、現ピクチャとして次のピクチャを続ける。単純さのため、図18は、技術(1800)が他の復号化プロセスとともにどのように機能するかを示してはいない。
H.変形例及び代替例
詳細な説明は、SEIメッセージのためのシンタックス及びセマンティックスの多くの例を含む。場合によっては、これらの例は、一般に、H.264/AVC規格及び/又はHEVC規格において使用されるSEIメッセージの形に従う。より一般的に、「SEIメッセージ」又は「VUIメッセージ」という語は、シンタックス要素が、参照されるH.264/AVC規格又はHEVC規格において規定されるSEIシンタックス又はVUIシンタックスを用いてシグナリングされるか、符号化ビデオ・ビットストリーム内の他のシンタックスにおいてシグナリングされるか、あるいは何らかの他の手段によりシグナリングされるかにかかわらず、本明細書で説明した例示的なSEIメッセージ又はVUIメッセージの1以上のシンタックス構造において伝達される情報と同等の少なくとも何らかの情報を伝達する符号化ビデオ・データに関連付けられたシンタックス要素の任意のセットを示す。
開示した本発明の原理を適用することができる多くの可能な実施形態の観点から、例示した実施形態は、本発明の好ましい例に過ぎないことを認識すべきであり、本発明の範囲を限定するものとして解釈すべきではない。むしろ、本発明の範囲は、請求項により定められる。したがって、我々は、請求項の範囲及び主旨に含まれる全てを、我々の発明として特許請求する。

Claims (10)

  1. 方法を実行するよう適合されたコンピューティング・デバイスであって、前記方法は、
    ビデオ・シーケンスの現ピクチャの所与のアクセス・ユニットの符号化ピクチャ・バッファ引き抜き遅延(CPBRD)差分値を設定するステップであって、前記現ピクチャは、前記現ピクチャに関連付けられたバッファリング期間SEIメッセージを有する、ステップと、
    前記所与のアクセス・ユニットのフラグの値を設定するステップであって、
    前記フラグの前記値が第1の値である場合、前記所与のアクセス・ユニットのピクチャ・タイミングSEIメッセージにおけるCPBRD値は、復号化順で先行する第1の先行ピクチャの名目上の符号化ピクチャ・バッファ(CPB)引き抜き時間に対する、前記現ピクチャの名目上のCPB引き抜き時間を指定したインクリメント値を示し、前記第1の先行ピクチャは、前記第1の先行ピクチャに関連付けられたバッファリング期間SEIメッセージを有し、
    前記フラグの前記値が第2の値である場合、前記現ピクチャの前記名目上のCPB引き抜き時間は、復号化順で先行する第2の先行ピクチャの名目上のCPB引き抜き時間に対するインクリメント値として、前記CPBRD差分値により示される、
    ステップと、
    前記現ピクチャに関連付けられた前記バッファリング期間SEIメッセージにおいて、前記所与のアクセス・ユニットの前記CPBRD差分及び前記フラグの前記値をシグナリングするステップと、
    を含む、コンピューティング・デバイス。
  2. 記CPBRD差分値は、前記CPBRD差分値−1を表すシンタックス要素として、前記現ピクチャに関連付けられた前記バッファリング期間SEIメッセージにおいてシグナリングされる、請求項1記載のコンピューティング・デバイス。
  3. 前記現ピクチャは、ランダム・アクセス・ピクチャでる、請求項1記載のコンピューティング・デバイス。
  4. 前記方法は、
    前記所与のアクセス・ユニットの前記CPBRD値を設定するステップと、
    前記CPBRD値−1を表すシンタックス要素として、前記ピクチャ・タイミングSEIメッセージにおいて、前記所与のアクセス・ユニットの前記CPBRD値をシグナリングするステップと、
    をさらに含む、請求項1記載のコンピューティング・デバイス。
  5. コンピューティング・デバイスにおける方法であって、
    ビデオ・シーケンスの符号化されたビデオを受信するステップであって、
    前記ビデオ・シーケンスの現ピクチャの所与のアクセス・ユニットの符号化ピクチャ・バッファ引き抜き遅延(CPBRD)差分値を受信するステップであって、前記現ピクチャは、前記現ピクチャに関連付けられたバッファリング期間SEIメッセージを有する、ステップと、
    前記所与のアクセス・ユニットのフラグの値を受信するステップであって、
    前記フラグの前記値が第1の値である場合、前記所与のアクセス・ユニットのピクチャ・タイミングSEIメッセージにおけるCPBRD値は、復号化順で先行する第1の先行ピクチャの名目上の符号化ピクチャ・バッファ(CPB)引き抜き時間に対する、前記現ピクチャの名目上のCPB引き抜き時間を指定したインクリメント値を示し、前記第1の先行ピクチャは、前記第1の先行ピクチャに関連付けられたバッファリング期間SEIメッセージを有し、
    前記フラグの前記値が第2の値である場合、前記現ピクチャの前記名目上のCPB引き抜き時間は、復号化順で先行する第2の先行ピクチャの名目上のCPB引き抜き時間に対するインクリメント値として、前記CPBRD差分値により示される、
    ステップと、
    を含むステップと、
    前記符号化されたビデオを復号化するステップであって、
    前記現ピクチャに関連付けられた前記バッファリング期間SEIメッセージから、前記所与のアクセス・ユニットの前記CPBRD差分及び前記フラグの前記値を解析するステッ
    を含むステップと、
    を含む、方法。
  6. 前記CPBRD差分値は、前記CPBRD差分値−1を表すシンタックス要素として、前記現ピクチャに関連付けられた前記バッファリング期間SEIメッセージにおいてシグナリングされる、請求項5記載の方法。
  7. 前記現ピクチャは、ランダム・アクセス・ピクチャである、請求項5記載の方法。
  8. 前記符号化されたビデオを受信する前記ステップは、
    前記CPBRD値−1を表すシンタックス要素として、前記所与のアクセス・ユニットの前記ピクチャ・タイミングSEIメッセージにおいてシグナリングされた、前記所与のアクセス・ユニットの前記CPBRD値を受信するステップ
    をさらに含む、請求項5記載の方法。
  9. 前記所与のアクセス・ユニットの前記CPBRD値を、前記第2の先行ピクチャのCPBRD値と前記所与のアクセス・ユニットの前記CPBRD差分値とに基づく合計と比較することにより、データの損失を検出するステップ
    をさらに含む、請求項8記載の方法。
  10. コンピューティング・デバイスに方法を実行させるコンピュータ・プログラムであって、前記方法は、
    第1ビデオ・シーケンスの第1ビットストリームの少なくとも一部分を受信するステップと、
    現ピクチャを含む第2ビデオ・シーケンスの第2ビットストリームの少なくとも一部分を受信するステップであって、前記現ピクチャは、前記現ピクチャに関連付けられたバッファリング期間SEIメッセージを有し、前記バッファリング期間SEIメッセージは、
    前記現ピクチャの所与のアクセス・ユニットの符号化ピクチャ・バッファ引き抜き遅延(CPBRD)差分値と、
    前記所与のアクセス・ユニットのフラグの値であって、
    前記フラグの前記値が第1の値である場合、前記所与のアクセス・ユニットのピクチャ・タイミングSEIメッセージにおけるCPBRD値は、復号化順で先行する第1の先行ピクチャの名目上の符号化ピクチャ・バッファ(CPB)引き抜き時間に対する、前記現ピクチャの名目上のCPB引き抜き時間を指定したインクリメント値を示し、前記第1の先行ピクチャは、前記第1の先行ピクチャに関連付けられたバッファリング期間SEIメッセージを有し、
    前記フラグの前記値が第2の値である場合、前記現ピクチャの前記名目上のCPB引き抜き時間は、復号化順で先行する第2の先行ピクチャの名目上のCPB引き抜き時間に対するインクリメント値として、前記CPBRD差分値により示される、
    フラグの値と、
    を含む、ステップと、
    前記第2ビデオ・シーケンスの少なくとも一部を、前記第1ビデオ・シーケンスの少なくとも一部にスプライシングするステップであって、
    前記所与のアクセス・ユニットで始まる前記第2ビデオ・シーケンスの前記少なくとも一部を、前記第1ビデオ・シーケンスの前記少なくとも一部に連結するステップ
    を含むステップと、
    を含む、コンピュータ・プログラム。
JP2015551816A 2013-01-07 2014-01-07 ビデオ・スプライシングを単純化する、バッファリング情報のためのシンタックス及びセマンティックス Active JP6312704B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361749909P 2013-01-07 2013-01-07
US61/749,909 2013-01-07
US14/109,670 US9661341B2 (en) 2013-01-07 2013-12-17 Syntax and semantics for buffering information to simplify video splicing
US14/109,670 2013-12-17
PCT/US2014/010393 WO2014107691A1 (en) 2013-01-07 2014-01-07 Syntax and semantics for buffering information to simplify video splicing

Publications (3)

Publication Number Publication Date
JP2016506698A JP2016506698A (ja) 2016-03-03
JP2016506698A5 JP2016506698A5 (ja) 2017-02-09
JP6312704B2 true JP6312704B2 (ja) 2018-04-18

Family

ID=51060939

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015551816A Active JP6312704B2 (ja) 2013-01-07 2014-01-07 ビデオ・スプライシングを単純化する、バッファリング情報のためのシンタックス及びセマンティックス

Country Status (13)

Country Link
US (8) US9661341B2 (ja)
EP (1) EP2941880B1 (ja)
JP (1) JP6312704B2 (ja)
KR (1) KR102179360B1 (ja)
CN (1) CN105027570B (ja)
AR (1) AR094382A1 (ja)
AU (1) AU2014203924B2 (ja)
BR (1) BR122022001553B1 (ja)
CA (1) CA2897039C (ja)
MX (1) MX356482B (ja)
RU (1) RU2659748C2 (ja)
TW (1) TW201436526A (ja)
WO (1) WO2014107691A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6019824B2 (ja) * 2012-07-02 2016-11-02 富士通株式会社 動画像符号化装置及び動画像符号化方法ならびに動画像符号化用コンピュータプログラム
US10021394B2 (en) 2012-09-24 2018-07-10 Qualcomm Incorporated Hypothetical reference decoder parameters in video coding
US9661341B2 (en) 2013-01-07 2017-05-23 Microsoft Technology Licensing, Llc Syntax and semantics for buffering information to simplify video splicing
US9418469B1 (en) * 2013-07-19 2016-08-16 Outward, Inc. Generating video content
US10375406B2 (en) * 2014-03-07 2019-08-06 Sony Corporation Image encoding device and method, and image processing device and method for enabling bitstream concatenation
AU2014202682A1 (en) * 2014-05-16 2015-12-03 Canon Kabushiki Kaisha Method, apparatus and system for copying a block of video samples
US9955159B2 (en) * 2014-10-31 2018-04-24 Google Llc Multi-video decoding with input switching
US10116576B2 (en) * 2015-10-19 2018-10-30 Samsung Electronics Co., Ltd. Methods and apparatus for random access of HEVC bitstream for MMT
US10575007B2 (en) 2016-04-12 2020-02-25 Microsoft Technology Licensing, Llc Efficient decoding and rendering of blocks in a graphics pipeline
US10390071B2 (en) * 2016-04-16 2019-08-20 Ittiam Systems (P) Ltd. Content delivery edge storage optimized media delivery to adaptive bitrate (ABR) streaming clients
US10157480B2 (en) 2016-06-24 2018-12-18 Microsoft Technology Licensing, Llc Efficient decoding and rendering of inter-coded blocks in a graphics pipeline
CN107770565A (zh) * 2016-08-15 2018-03-06 联发科技股份有限公司 低延迟视频编码的装置与方法
US11197010B2 (en) 2016-10-07 2021-12-07 Microsoft Technology Licensing, Llc Browser-based video decoder using multiple CPU threads
US10326815B2 (en) * 2016-12-20 2019-06-18 LogMeln, Inc. Techniques for scalably sharing video through a streaming server
EP3864856A1 (en) * 2018-10-12 2021-08-18 Telefonaktiebolaget LM Ericsson (publ) A monitoring and surveillance system arranged for processing video data associated with a vehicle, as well as corresponding devices and method
CN109547708A (zh) * 2018-12-04 2019-03-29 中国航空工业集团公司西安航空计算技术研究所 一种合成视景图像处理系统
WO2020256048A1 (ja) * 2019-06-18 2020-12-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
CN114080804A (zh) * 2019-06-19 2022-02-22 夏普株式会社 用于在视频编码中发送信号通知解码图片缓冲器信息的系统和方法
JP7403245B2 (ja) * 2019-06-21 2023-12-22 キヤノン株式会社 画像復号装置、画像復号方法
CN114424572B (zh) * 2019-09-24 2023-08-22 华为技术有限公司 用于多层视频码流的dpb参数的指示
CN110996063A (zh) * 2019-12-16 2020-04-10 武汉武钢绿色城市技术发展有限公司 一种监控画面上电视墙的装置及系统
CN117834916A (zh) * 2020-05-22 2024-04-05 字节跳动有限公司 访问单元中图片信息的信令
KR20220144241A (ko) * 2021-04-19 2022-10-26 삼성전자주식회사 서버 및 그 제어 방법

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5982436A (en) 1997-03-28 1999-11-09 Philips Electronics North America Corp. Method for seamless splicing in a video encoder
EP1518403A4 (en) 2002-07-02 2009-03-18 Conexant Systems Inc HYPOTHETIC REFERENCE DECODER FOR COMPRESSED PICTURES AND VIDEO
US7532670B2 (en) * 2002-07-02 2009-05-12 Conexant Systems, Inc. Hypothetical reference decoder with low start-up delays for compressed image and video
US20050201471A1 (en) 2004-02-13 2005-09-15 Nokia Corporation Picture decoding method
US20060002479A1 (en) 2004-06-22 2006-01-05 Fernandes Felix C A Decoder for H.264/AVC video
MX2007012564A (es) * 2005-04-13 2007-11-15 Nokia Corp Codificacion, almacenamiento y senalizacion de informacion de escalabilidad.
JP4311570B2 (ja) * 2005-07-01 2009-08-12 株式会社ソニー・コンピュータエンタテインメント 再生装置、ビデオ復号装置および同期再生方法
US20100074340A1 (en) * 2007-01-08 2010-03-25 Thomson Licensing Methods and apparatus for video stream splicing
CN101064515B (zh) * 2007-04-18 2011-05-11 威盛电子股份有限公司 可增进译码效能的方法
US8335266B2 (en) 2007-06-29 2012-12-18 Cisco Technology, Inc. Expedited splicing of video streams
JP4577357B2 (ja) * 2007-12-27 2010-11-10 ソニー株式会社 符号化装置及び方法、並びにプログラム
WO2009152450A1 (en) * 2008-06-12 2009-12-17 Cisco Technology, Inc. Picture interdependencies signals in context of mmco to assist stream manipulation
US20100167689A1 (en) * 2008-07-07 2010-07-01 Hossein Alexander Sepehri-Nik Method and apparatus for determining whether a cellular phone chip is dormant
US20100130136A1 (en) * 2008-08-22 2010-05-27 Hossein Alexander Sepehri-Nik System and Method for Interpreting and Classifying Signals in Communications Systems
US9083976B2 (en) * 2008-09-05 2015-07-14 Freescale Semiconductor, Inc. Processing a video stream in real time based on binary information of the video stream
JP5131101B2 (ja) * 2008-09-09 2013-01-30 富士通株式会社 動画像編集装置および動画像編集プログラム
EP2356812B1 (en) * 2008-11-12 2015-06-10 Cisco Technology, Inc. Processing of a video program having plural processed representations of a single video signal for reconstruction and output
US8743906B2 (en) 2009-01-23 2014-06-03 Akamai Technologies, Inc. Scalable seamless digital video stream splicing
JP5332773B2 (ja) * 2009-03-18 2013-11-06 ソニー株式会社 画像処理装置および方法
US9532055B2 (en) * 2012-04-16 2016-12-27 Microsoft Technology Licensing, Llc Constraints and unit types to simplify video random access
US9661341B2 (en) 2013-01-07 2017-05-23 Microsoft Technology Licensing, Llc Syntax and semantics for buffering information to simplify video splicing
US11899560B2 (en) * 2022-04-27 2024-02-13 Microsoft Technology Licensing, Llc Automatic correctness validation of database management systems

Also Published As

Publication number Publication date
KR102179360B1 (ko) 2020-11-16
US20230017536A1 (en) 2023-01-19
CA2897039A1 (en) 2014-07-10
WO2014107691A1 (en) 2014-07-10
US20190289310A1 (en) 2019-09-19
RU2659748C2 (ru) 2018-07-03
EP2941880B1 (en) 2019-04-03
US11070832B2 (en) 2021-07-20
JP2016506698A (ja) 2016-03-03
US20140192893A1 (en) 2014-07-10
CN105027570A (zh) 2015-11-04
US11665361B2 (en) 2023-05-30
US11665362B2 (en) 2023-05-30
US20170257639A1 (en) 2017-09-07
BR112015016254A2 (pt) 2017-07-11
US20220394287A1 (en) 2022-12-08
TW201436526A (zh) 2014-09-16
US20210314594A1 (en) 2021-10-07
US10313698B2 (en) 2019-06-04
CN105027570B (zh) 2019-07-02
RU2015127083A (ru) 2017-01-16
CA2897039C (en) 2020-04-28
KR20150105431A (ko) 2015-09-16
BR122022001553B1 (pt) 2023-02-23
US11943463B2 (en) 2024-03-26
AU2014203924B2 (en) 2017-03-23
US20230262249A1 (en) 2023-08-17
US9661341B2 (en) 2017-05-23
AU2014203924A1 (en) 2015-07-16
EP2941880A1 (en) 2015-11-11
US11451813B2 (en) 2022-09-20
US11943464B2 (en) 2024-03-26
MX2015008797A (es) 2016-04-25
MX356482B (es) 2018-05-30
AR094382A1 (es) 2015-07-29
US20230254499A1 (en) 2023-08-10

Similar Documents

Publication Publication Date Title
US11943464B2 (en) Syntax and semantics for buffering information to simplify video splicing
US20220394307A1 (en) Reducing latency in video encoding and decoding
JP2017535167A (ja) 符号化領域の完了を示すシンタックス構造
BR112015016254B1 (pt) Método realizado por um dispositivo de computação, mídia legível por computador e dispositivo de computação

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161220

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180320

R150 Certificate of patent or registration of utility model

Ref document number: 6312704

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250