特許第6240157号(P6240157)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シャープ株式会社の特許一覧

特許6240157メッセージを送り、ビットストリームをバッファリングするための電子デバイス
<>
  • 特許6240157-メッセージを送り、ビットストリームをバッファリングするための電子デバイス 図000004
  • 特許6240157-メッセージを送り、ビットストリームをバッファリングするための電子デバイス 図000005
  • 特許6240157-メッセージを送り、ビットストリームをバッファリングするための電子デバイス 図000006
  • 特許6240157-メッセージを送り、ビットストリームをバッファリングするための電子デバイス 図000007
  • 特許6240157-メッセージを送り、ビットストリームをバッファリングするための電子デバイス 図000008
  • 特許6240157-メッセージを送り、ビットストリームをバッファリングするための電子デバイス 図000009
  • 特許6240157-メッセージを送り、ビットストリームをバッファリングするための電子デバイス 図000010
  • 特許6240157-メッセージを送り、ビットストリームをバッファリングするための電子デバイス 図000011
  • 特許6240157-メッセージを送り、ビットストリームをバッファリングするための電子デバイス 図000012
  • 特許6240157-メッセージを送り、ビットストリームをバッファリングするための電子デバイス 図000013
  • 特許6240157-メッセージを送り、ビットストリームをバッファリングするための電子デバイス 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6240157
(24)【登録日】2017年11月10日
(45)【発行日】2017年11月29日
(54)【発明の名称】メッセージを送り、ビットストリームをバッファリングするための電子デバイス
(51)【国際特許分類】
   H04N 19/426 20140101AFI20171120BHJP
   H04N 19/70 20140101ALI20171120BHJP
【FI】
   H04N19/426
   H04N19/70
【請求項の数】1
【全頁数】32
(21)【出願番号】特願2015-505078(P2015-505078)
(86)(22)【出願日】2013年4月12日
(65)【公表番号】特表2015-516752(P2015-516752A)
(43)【公表日】2015年6月11日
(86)【国際出願番号】JP2013002531
(87)【国際公開番号】WO2013153829
(87)【国際公開日】20131017
【審査請求日】2016年3月25日
(31)【優先権主張番号】13/447,095
(32)【優先日】2012年4月13日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】000005049
【氏名又は名称】シャープ株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】特許業務法人HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】デシュパンダ サーチン ジー.
【審査官】 堀井 啓明
(56)【参考文献】
【文献】 Ye-Kui Wang,Ying Chen,Marta Karczewicz,On bitstreams starting with CRA pictures,Joint Collaborative Team on Video Coding(JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 8th Meeting:San Jose,CA,USA,1-10 February,2012,米国,JCTVC,2012年 1月21日,JCTVC-H0496,P.1-P.6,URL,http://phenix.it-sudparis.eu/jct/index.php
【文献】 Benjamin Bross Fraunhofer HHI,High efficiency video coding (HEVC) text specification draft 6[online], JCTVC-I JCTVC-H1003,インターネット<URL:http://phenix.it-sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I0277-v4.zip>
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00−19/98
(57)【特許請求の範囲】
【請求項1】
電子デバイスによってバッファリング期間付加拡張情報(SEI)メッセージを送るための方法であって、
第1の初期符号化ピクチャバッファ(CPB除去遅延パラメータを生成することと
第2の初期符号化ピクチャバッファ(CPB除去遅延パラメータが存在するかどうかを示すフラグを生成することと
前記フラグが前記第2の初期CPB除去遅延パラメータの存在を示す場合、前記第2の初期CPB除去遅延パラメータを生成することと、
前記バッファリング期間付加拡張情報(SEI)メッセージを送ることと、を含み、
前記第1の初期CPB除去遅延パラメータは、initial_cpb_removal_delay[SchedSelIdx]、及びinitial_cpb_removal_delay_offset[SchedSelIdx]であり、当該SchedSelIdxは、第1のインデックス変数であり、
前記第2の初期CPB除去遅延パラメータは、initial_cra_cpb_removal_delay[SchedSelIdx]、及びinitial_cra_cpb_removal_delay_offset[SchedSelIdx]であり、当該SchedSelIdxは、第2のインデックス変数であり、
初期除去遅延変数は、条件のセットが満たされている場合、第2の初期CPB除去遅延パラメータに設定され、当該初期除去遅延変数は、前記条件のセットが満たされない場合、第1の初期CPB除去遅延パラメータに設定され、
前記条件のセットは、
第1のアクセスユニットがIスライスだけを含むことと、
リーディングピクチャが存在しないことと、
前記フラグが1に等しいことと、を含み、
前記SEIメッセージは、前記第1の初期CPB除去遅延パラメータを含む、
前記方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に電子デバイスに関する。より具体的には、本開示は、メッセージを送り、ビットストリームをバッファリングするための電子デバイスに関する。
【背景技術】
【0002】
電子デバイスは、消費者ニーズを満たし、可搬性と便利さとを改善するためにより小さく、より強力になった。消費者は、電子デバイスに依存するようになり、機能性の増加を期待するようになった。電子デバイスのいくつかの例は、デスクトップコンピュータ、ラップトップコンピュータ、セルラーフォン、スマートフォン、メディアプレーヤ、集積回路などを含む。
【0003】
いくつかの電子デバイスは、デジタルメディアを処理して表示するために用いられる。例えば、ポータブル電子デバイスは、今や消費者がいるほとんどどの場所でもデジタルメディアを用いることを可能にする。そのうえ、いくつかの電子デバイスは、消費者が用いて楽しむためのデジタルメディア・コンテンツのダウンロードまたはストリーミングを提供することができる。
【0004】
デジタルメディアの人気の高まりは、いくつかの問題を提起した。例えば、高品質デジタルメディアを記憶、送信および迅速に再生するために効率的に表現することは、いくつかの課題を提起する。この考察から気付きうるように、デジタルメディアを性能向上によりさらに効率的に表現するシステムおよび方法が有益であろう。
【発明の概要】
【発明が解決しようとする課題】
【0005】
デジタルメディアを表現するためのさらに効率的な技術を提供することが望ましい。
【課題を解決するための手段】
【0006】
本発明の態様は、メッセージを送るための電子デバイスを提供し、電子デバイスは、
プロセッサ;
プロセッサと電子通信を行うメモリ;
メモリに記憶された命令を備え、命令は、
(a)第1のピクチャがランダムアクセスピクチャであるかどうかを判定し;
(b)第1のピクチャがランダムアクセスピクチャである場合に、リーディングピクチャが存在するかどうかを判定し;
(c)リーディングピクチャが存在する場合に、ランダムアクセスピクチャを開始するための初期符号化ピクチャバッファ(CPB:Coded Picture Buffer)除去遅延パラメータが存在するかどうかを示すフラグと、ランダムアクセスピクチャを開始するための初期CPB除去遅延パラメータとを含んだメッセージを生成して;
(d)メッセージを送るために実行可能である。
【0007】
本発明の別の態様は、ビットストリームをバッファリングするための電子デバイスを提供し、電子デバイスは、
プロセッサ;
プロセッサと電子通信を行うメモリ;
メモリに記憶された命令を備え、命令は、
(a)メッセージを受信し;
(b)第1のアクセスユニットがランダムアクセスピクチャを示すアクセスユニットであるか、リーディングピクチャが存在しないか、およびフラグが、ランダムアクセスピクチャを開始するための初期符号化ピクチャバッファ(CPB)除去遅延パラメータがメッセージに存在することを示すかどうかを判定し;
(c)第1のアクセスユニットを除去して;
(d)第1のアクセスユニットを復号するために実行可能である。
【0008】
本発明の別の態様は、電子デバイスによってメッセージを送るための方法を提供し、方法は、
第1のピクチャがランダムアクセスピクチャであるかどうかを判定するステップ;
第1のピクチャがランダムアクセスピクチャである場合に、リーディングピクチャが存在するかどうかを判定するステップ;
リーディングピクチャが存在する場合に、ランダムアクセスピクチャを開始するための初期符号化ピクチャバッファ(CPB)除去遅延パラメータが存在するかどうかを示すフラグと、ランダムアクセスピクチャを開始するための初期CPB除去遅延パラメータとを含んだメッセージを生成するステップ;ならびに
メッセージを送るステップを含む。
【0009】
本発明の別の態様は、電子デバイスによってビットストリームをバッファリングするための方法を提供し、方法は、
メッセージを受信するステップ;
第1のアクセスユニットがランダムアクセスピクチャを示すアクセスユニットであるか、リーディングピクチャが存在しないか、およびフラグが、ランダムアクセスピクチャを開始するための初期符号化ピクチャバッファ(CPB)除去遅延パラメータが存在することを示すかどうかを判定するステップ;
第1のアクセスユニットを除去するステップ;ならびに
第1のアクセスユニットを復号するステップを含む。
【発明の効果】
【0010】
本発明の前述および他の目的、特徴、ならびに利点は、本発明の以下の詳細な記載を添付図面と併せて考察したときにさらに容易に理解されるであろう。
【図面の簡単な説明】
【0011】
図1】メッセージを送り、ビットストリームをバッファリングするためのシステムおよび方法が実装された1つ以上の電子デバイスの例を示すブロックダイアグラムである。
図2】メッセージを送るための方法の一構成を示すフローダイアグラムである。
図3】メッセージを送るための方法のより具体的な構成を示すフローダイアグラムである。
図4】ビットストリームをバッファリングするための方法の一構成を示すフローダイアグラムである。
図5】ビットストリームをバッファリングするための方法のより具体的な構成を示すフローダイアグラムである。
図6】電子デバイス上のエンコーダの一構成を示すブロックダイアグラムである。
図7】電子デバイス上のデコーダの一構成を示すブロックダイアグラムである。
図8】送信用電子デバイスに利用される様々なコンポーネントを示す。
図9】受信用電子デバイスに利用される様々なコンポーネントを示すブロックダイアグラムである。
図10】メッセージを送るためのシステムおよび方法が実装された電子デバイスの一構成を示すブロックダイアグラムである。
図11】ビットストリームをバッファリングするためのシステムおよび方法が実装された電子デバイスの一構成を示すブロックダイアグラムである。
【発明を実施するための形態】
【0012】
メッセージを送るための電子デバイスが記載される。電子デバイスは、プロセッサ、およびプロセッサと電子通信を行うメモリに記憶された命令を含む。電子デバイスは、第1のピクチャがクリーンランダムアクセス(CRA:clean random access)ピクチャであるかどうかを判定する。電子デバイスは、第1のピクチャがCRAピクチャである場合に、リーディングピクチャが存在するかどうかも判定する。加えて、電子デバイスは、リーディングピクチャが存在する場合に、CRAリーディングピクチャ破棄フラグと、初期CRA符号化ピクチャバッファ(CPB)除去遅延パラメータとを含んだメッセージを生成する。電子デバイスは、さらにメッセージを送る。メッセージは、バッファリング期間付加拡張情報(SEI:Supplemental enhancement Information)メッセージとするとよい。初期CRA CPB除去遅延パラメータは、ランダムアクセスピクチャを開始するための初期CPB除去遅延パラメータとして参照される。CRAリーディングピクチャ破棄フラグは、ランダムアクセスピクチャを開始するための初期CPB除去遅延パラメータがメッセージに存在するか否かを示すフラグとして参照される。
【0013】
初期CRA CPB除去遅延パラメータは、initial_cra_cpb_removal_delay[SchedSelIdx]である。SchedSelIdxは、インデックス変数である。
【0014】
電子デバイスは、リーディングピクチャが存在する場合に、初期CRA CPB除去遅延オフセット・パラメータも生成する。初期CRA CPB除去遅延オフセット・パラメータは、initial_cra_cpb_removal_delay_offset[SchedSelIdx]である。SchedSelIdxは、インデックス変数である。
【0015】
第1のピクチャがCRAピクチャであるかどうかを判定するステップは、第1のピクチャがIスライスだけを含むかどうかを判定することを含む。リーディングピクチャが存在するかどうかを判定するステップは、あるピクチャが復号順ではCRAピクチャの後に続き、出力順ではCRAピクチャに先行するかどうかを判定することを含む。
【0016】
ビットストリームをバッファリングするための電子デバイスも記載される。電子デバイスは、プロセッサ、およびプロセッサと電子通信を行うメモリに記憶された命令を含む。電子デバイスは、メッセージを受信する。電子デバイスは、また、第1のアクセスユニットがクリーンランダムアクセス(CRA)アクセスユニットであるか、リーディングピクチャが存在しないか、およびCRAリーディングピクチャ破棄フラグが破棄を示すかどうかを判定する。電子デバイスは、さらに、第1のアクセスユニットを除去する。加えて、電子デバイスは、第1のアクセスユニットを復号する。メッセージは、バッファリング期間付加拡張情報(SEI:Supplemental enhancement Information)メッセージとするとよい。メッセージを受信するステップは、CRA破棄フラグ、初期CRA符号化ピクチャバッファ(CPB)除去遅延パラメータ、および初期CRA CPB除去遅延オフセット・パラメータを受信することを含む。
【0017】
第1のアクセスユニットがCRAアクセスユニットであり、リーディングピクチャが存在せず、かつCRAリーディングピクチャ破棄フラグが破棄を示す場合には、初期除去遅延変数は、また、初期CRA符号化ピクチャバッファ(CPB)除去遅延パラメータに設定される。第1のアクセスユニットを除去するステップは、初期CRA CPB除去遅延パラメータに基づく。
【0018】
初期CRA CPB除去遅延パラメータは、initial_cra_cpb_removal_delay[SchedSelIdx]である。SchedSelIdxは、インデックス変数である。
【0019】
第1のアクセスユニットがCRAアクセスユニットであり、リーディングピクチャが存在せず、かつCRAリーディングピクチャ破棄フラグが破棄を示す場合には、電子デバイスは、また、CRA CPB除去遅延パラメータに基づいて除去時刻を決定する。第1のアクセスユニットがCRAアクセスユニットであるかどうかを判定するステップは、第1のアクセスユニットに対応するすべてのネットワークアクセス層(NAL:Network Access Layer)ユニット・タイプがCRAピクチャの符号化スライスを示すかどうかを判定することを含む。第1のアクセスユニットがCRAアクセスユニットであり、リーディングピクチャが存在せず、かつCRAリーディングピクチャ破棄フラグが破棄を示す場合には、電子デバイスは、初期CRA符号化ピクチャバッファ(CPB)除去遅延パラメータに基づいてビットストリーム到着時刻を決定する。
【0020】
電子デバイスによってメッセージを送るための方法も記載される。方法は、第1のピクチャがクリーンランダムアクセス(CRA)ピクチャであるかどうかを判定するステップを含む。方法は、第1のピクチャがCRAピクチャである場合に、リーディングピクチャが存在するかどうかを判定するステップを含む。方法は、リーディングピクチャが存在する場合に、CRA破棄フラグと、初期CRA符号化ピクチャバッファ(CPB)除去遅延パラメータとを含んだメッセージを生成するステップをさらに含む。加えて、方法は、メッセージを送るステップを含む。
【0021】
電子デバイスによってビットストリームをバッファリングするための方法も記載される。方法は、メッセージを受信するステップを含む。方法は、第1のアクセスユニットがクリーンランダムアクセス(CRA)アクセスユニットであるか、リーディングピクチャが存在しないか、およびCRAリーディングピクチャ破棄フラグが破棄を示すかどうかを判定するステップも含む。方法は、第1のアクセスユニットを除去するステップをさらに含む。加えて、方法は、第1のアクセスユニットを復号するステップを含む。
【0022】
本明細書に開示されるシステムおよび方法は、メッセージを送り、ビットストリームをバッファリングするための電子デバイスを記載する。例えば、本明細書に開示されるシステムおよび方法は、クリーンランダムアクセス(CRA)ピクチャで始まるビットストリームのためのバッファリングを記載する。いくつかの構成において、本明細書に開示されるシステムおよび方法は、CRAピクチャで始まるビットストリームのための仮想参照デコーダ(HRD:Hypothetical Reference Decoder)バッファリングを記載する。例として、本明細書に開示されるシステムおよび方法は、リーディングピクチャが存在するときに、バッファリング期間付加拡張情報(SEI)メッセージ、およびCRAピクチャで始まるビットストリームのためのHRDに対する修正を記載する。本明細書に開示されるシステムおよび方法(例えば、HRD修正)は、ランダムアクセスポイントでCRAピクチャのプレイバックを開始するときに初期バッファリング待ち時間を短縮する利益を提供する。ランダムアクセスポイントとは、ビットストリームを復号するステップが、現ピクチャおよび出力順に前記現ピクチャに続くすべてのピクチャを復号するためにランダムアクセスポイントに先行するビットストリーム中のいかなるポイントへのアクセスも必要としない、データストリーム(例えば、ビットストリーム)における任意のポイントである。また、本明細書に開示されるシステムおよび方法は、CRAピクチャの後の1つ以上のリーディングピクチャを破棄するときに、HRDがアンダーフローしないであろうという利益を提供する。
【0023】
HRDに関連して用語「仮想」が用いられるが、HRDが物理的に実装されてもよいことに留意すべきである。例えば、実際のデコーダの実装を記載するために「HRD」が用いられてもよい。いくつかの構成では、ビットストリームが高効率ビデオ符号化(HEVC:High Efficiency Video Coding)仕様に適合するかどうかを判定するためにHRDが実装される。例として、HRDは、タイプIのビットストリームおよびタイプIIのビットストリームがHEVC仕様に適合するかどうかを判定するために用いられる。タイプIのビットストリームは、ビデオ符号化層(VCL:Video Coding Layer)、ネットワークアクセス層(NAL:Network Access Layer)ユニットおよびフィラー・データNALユニットだけを含む。タイプIIのビットストリームは、さらに他のNALユニットおよびシンタックス要素を含んでもよい。
【0024】
ビデオ符号化に関する共同作業チーム(JCTVC:Joint Collaborative Team on Video Coding)の文書JCTVC−H0496は、CRAピクチャで始まるビットストリームを提案する。この機能性が高効率ビデオ符号化(HEVC)委員会草案(JCTVC−H1003)に取り入れられた。
【0025】
本明細書に開示されるシステムおよび方法に従って修正されたシンタックスおよびセマンティクスの一例が次のように表(1)に示される。本明細書に開示されるシステムおよび方法による修正は、太字で示される。
【0026】
【表1】
【0027】
本明細書に開示されるシステムおよび方法によるバッファリング期間SEIメッセージのセマンティクスに関する例が次のように示される。特に、修正されたシンタックス要素のセマンティクスに関する追加の詳細が次のように示される。1に等しい「cra_leadingpict_discard_flag」は、「initial_cra_cpb_removal_delay[SchedSelIdx]」および「initial_cra_cpb_removal_delay_offset[SchedSelIdx]」のシンタックス要素の存在を示す。0に等しい「cra_leadingpict_discard_flag」は、「initial_cra_cpb_removal_delay[SchedSelIdx]」および「initial_cra_cpb_removal_delay_offset[SchedSelIdx]」のシンタックス要素がないことを示す。関連付けられた、または対応するピクチャがCRAピクチャではないときに、このフラグが1であることはない。
【0028】
initial_cra_cpb_removal_delay[SchedSelIdx]は、開始CRAピクチャに関連するリーディングピクチャを含んだアクセスユニットが破棄されたときに、開始CRAピクチャにおけるHRD初期化後の第1のバッファリング期間に関して、バッファリング期間SEIメッセージに関連するアクセスユニットと関連付けられた符号化データの第1のビットのCPBへの到着の時刻と、同じアクセスユニットと関連付けられた符号化データのCPBからの除去の時刻との間の遅延をSchedSelIdx番目の符号化ピクチャバッファ(CPB)について指定する。このシンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビット単位の長さを有する。いくつかの構成において、このシンタックス要素は、90キロヘルツ(kHz)クロックを単位とする。
【0029】
「initial_cra_cpb_removal_delay[SchedSelIdx]」は、0に等しくなくてもよい。そのうえ、これは、90kHzクロック単位でCPBサイズと時間的に等価な90000(CpbSize[SchedSelIdx]/**BitRate[SchedSelIdx]を超えることはない。
【0030】
「initial_cra_cpb_removal_delay_offset[SchedSelIdx]」は、開始CRAピクチャに関連するリーディングピクチャを含んだアクセスユニットが破棄されたときに、CRAピクチャで始まるビットストリームに関して、符号化されたアクセスユニットのCPBへの初期配信時刻をSchedSelIdx番目のCPBについて指定するために、cpb_removal_delayと組み合わせて用いられる。いくつかの構成において、「initial_cra_cpb_removal_delay_offset[SchedSelIdx]」は、90kHzクロックを単位とする。「initial_cra_cpb_removal_delay_offset[SchedSelIdx]」シンタックス要素は、その長さがビット単位でinitial_cpb_removal_delay_length_minus1+1によって与えられる固定長符号である。このシンタックス要素は、デコーダによって用いられることはなく、配信スケジューラ(例えば、JCTVC−H1003の付属書で指定された仮想ストリーム・スケジューラ(HSS:Hypothetical Stream Scheduler)にのみ必要とされる。符号化されたビデオシーケンス全体にわたって、「initial_cra_cpb_removal_delay[SchedSelIdx]」と「initial_cra_cpb_removal_delay_offset[SchedSelIdx]」との合計は、SchedSelIdxの値ごとに一定である。SchedSelIdxは、インデックス変数である。payloadSizeは、データのバイトを指す。
【0031】
seq_parameter_set_idは、シーケンスのHRD属性を含むシーケンスパラメータセットを指定する。seq_parameter_set_idの値は、バッファリング期間SEIメッセージに関連するプライマリ符号化ピクチャによって参照される、ピクチャパラメータセットにおけるseq_parameter_set_idの値に等しい。seq_parameter_set_idの値は、両端値を含めて、0から31までの範囲内にある。
【0032】
initial_cpb_removal_delay[SchedSelIdx]は、HRD初期化後の第1のバッファリング期間に関して、バッファリング期間SEIメッセージに関連するアクセスユニットと関連付けられた符号化データの第1のビットのCPBへの到着の時刻と、同じアクセスユニットと関連付けられた符号化データのCPBからの除去の時刻との間の遅延をSchedSelIdx番目のCPBについて指定する。このシンタックス要素は、initial_cpb_removal_delay_length_minus1+1によって与えられるビット単位の長さを有する。これは、90kHzクロックを単位とする。
【0033】
initial_cpb_removal_delay[SchedSelIdx]は、0に等しくなくてもよく、90kHzクロック単位でCPBサイズと時間的に等価な90000(CpbSize[SchedSelIdx]/BitRate[SchedSelIdx])を超えることはない。
【0034】
initial_cpb_removal_delay_offset[SchedSelIdx]は、符号化されたアクセスユニットのCPBへの初期配信時刻をSchedSelIdx番目のCPBについて指定するために、cpb_removal_delayと組み合わせて用いられる。initial_cpb_removal_delay_offset[SchedSelIdx]は、90kHzクロックを単位とする。initial_cpb_removal_delay_offset[SchedSelIdx]シンタックス要素は、その長さがビット単位でinitial_cpb_removal_delay_length_minus1+1によって与えられる固定長符号である。このシンタックス要素は、デコーダによって用いられることはなく、HEVC仕様書の付属書Cで指定された配信スケジューラ(HSS)にのみ必要とされる。符号化されたビデオシーケンス全体にわたって、initial_cpb_removal_delay[SchedSelIdx]とinitial_cpb_removal_delay_offset[SchedSelIdx]との合計は、SchedSelIdxの値ごとに一定である。
【0035】
cpb_cnt_minus1+1は、ビットストリームにおける代わりのCPB仕様の数を指定する。cpb_cnt_minus1の値は、両端値を含めて、0から31までの範囲内にある。low_delay_hrd_flagが1に等しいとき、cpb_cnt_minus1は0に等しい。cpb_cnt_minus1が存在しないときには、それが0に等しいと推測してよい。
【0036】
1に等しいnal_hrd_parameters_present_flagは、(タイプIIのビットストリームの適合性に係わる)NAL HRDパラメータが存在することを指定する。0に等しいnal_hrd_parameters_present_flagは、NAL HRDパラメータが存在しないことを指定する。留意すべきは、nal_hrd_parameters_present_flagが0に等しいときには、HEVC仕様書には指定されない何らかの手段による、NALシーケンスHRDパラメータ情報を含むNAL HRDパラメータならびにすべてのバッファリング期間およびピクチャ・タイミングSEIメッセージの供給なしには、ビットストリームの適合性を検証できないことである。
【0037】
nal_hrd_parameters_present_flagが1に等しいときには、(例えば、HEVC明細書のE.1.2およびE.2.2節からの)NAL HRDパラメータがフラグのすぐ後に続く。変数NalHrdBpPresentFlagは、次のように導出される。次のいずれかが真であれば、NalHrdBpPresentFlagの値は、1に等しく設定される、すなわち、nal_hrd_parameters_present_flagがビットストリーム中に存在して1に等しいか、または、NAL HRD動作のためのバッファリング期間がバッファリング期間SEIメッセージのビットストリーム中に存在する必要性が、HEVC仕様書には指定されない何らかの手段によるその適用によって決定される場合に、1に等しく設定される。そうでない場合には、NalHrdBpPresentFlagの値は、0に等しく設定される。
【0038】
1に等しいvcl_hrd_parameters_present_flagは、(すべてのビットストリームの適合性に係わる)VCL HRDパラメータが存在することを指定する。0に等しいvcl_hrd_parameters_present_flagは、VCL HRDパラメータが存在しないことを指定する。留意すべきは、vcl_hrd_parameters_present_flagが0に等しいときには、HEVC仕様書には指定されない何らかの手段による、VCL HRDパラメータならびにすべてのバッファリング期間およびピクチャ・タイミングSEIメッセージの供給なしには、ビットストリームの適合性を検証できないことである。vcl_hrd_parameters_present_flagが1に等しいときには、(例えば、HEVC明細書のE.1.2およびE.2.2節からの)VCL HRDパラメータがフラグのすぐ後に続く。
【0039】
変数VclHrdBpPresentFlagは、次のように導出される。次のいずれかが真であれば、VclHrdBpPresentFlagの値は、1に等しく設定される、すなわち、vcl_hrd_parameters_present_flagがビットストリーム中に存在して1に等しいか、または、VCL HARD動作のためのバッファリング期間がバッファリング期間SEIメッセージのビットストリーム中に存在する必要性が、HEVC仕様書には指定されない何らかの手段によるその適用によって決定される場合に、1に等しく設定される。そうでない場合には、VclHrdBpPresentFlagの値は、0に等しく設定される。
【0040】
本明細書に開示されるシステムおよび方法によるCPBの動作に関する例が次のように示される。次に示される仕様は、存在するCPBパラメータの各セットに独立して適用され、かつHEVC仕様によるタイプIおよびタイプIIの両方の適合性に適用される。
【0041】
ビットストリーム到着のタイミング(例えば、1つ以上のビットストリーム到着時刻)は、次のように決定される。バッファリング期間SEIメッセージのいずれか1つにおいてHRDが初期化される。初期化前に、CPBは空であってもよい。初期化後に、後続のバッファリング期間SEIメッセージによってHRDが再初期化されることはないことに留意すべきである。
【0042】
CPBを初期化するバッファリング期間SEIメッセージと関連付けられたアクセスユニットは、アクセスユニット0と呼ばれる。すべての他のアクセスユニットは、アクセスユニットnと呼ばれ、復号順に次のアクセスユニットではnが1つインクリメントされる。
【0043】
第1のアクセスユニットがCRAアクセスユニットであり、リーディングピクチャが存在せず、cra_leadingpict_discard_flagが1に等しい場合、use_initial_cpb_removal_delay[SchedSelIdx]は、initial_cra_cpb_removal_delay[SchedSelIdx]の値に設定される。そうでない場合には、use_initial_cpb_removal_delay[SchedSelIdx]の値は、initial_cpb_removal_delay[SchedSelIdx]の値に設定される。
【0044】
アクセスユニットnの第1のビットがCPBに入り始める時刻は、初期到着時刻tai(n)と呼ばれる。アクセスユニットの初期到着時刻は、次のように導出される。アクセスユニットがアクセスユニット0である場合、tai(0)=0である。そうではない(例えば、アクセスユニットがアクセスユニットn、n>0である)場合には、以下が適用される。cbr_flag[SchedSelIdx]が1に等しい場合、アクセスユニットnに関する初期到着時刻は、アクセスユニットn−1の(以下に示されるように導出される)最終到着時刻に等しい(例えば、tai(n)=taf(n−1))。
【0045】
そうではなく、cbr_flag[SchedSelIdx]が0に等しく、アクセスユニットnが後続のバッファリング期間の第1のアクセスユニットではない場合には、アクセスユニットnに関する初期到着時刻は、tai(n)=Max(taf(n−1),tai,earliest(n))によって導出される。いくつかの構成において、tai,earliest(n)は、次のように示され、tai,earliest(n)=tr,n(n)−(use_initial_cpb_removal_delay[SchedSelIdx]+use_initial_cpb_removal_delay_offset[SchedSelIdx])/90000、tr,n(n)は、(例えば、JCTVC−H1003のC.2.2節に指定されるような)アクセスユニットnのCPBからの名目上の除去時刻であり、use_initial_cpb_removal_delay[SchedSelIdx]およびuse_initial_cpb_removal_delay_offset[SchedSelIdx]は、前のバッファリング期間SEIメッセージに基づいて上記のように指定される。
【0046】
そうではない(例えば、cbr_flag[SchedSelIdx]が0に等しく、後続のアクセスユニットnが後続のバッファリング期間の第1のアクセスユニットである)場合には、アクセスユニットnに関する初期到着時刻は、tai(n)=tr,n(n)−(use_initial_cpb_removal_delay[SchedSelIdx]/90000)によって導出される。この場合、use_initial_cpb_removal_delay[SchedSelIdx]は、アクセスユニットnと関連付けられたバッファリング期間SEIメッセージに基づいて上記のように指定される。
【0047】
アクセスユニットnに関する最終到着時刻は、taf(n)=tai(n)+b(n)/BitRate[SchedSelIdx]によって導出される。この場合、b(n)は、タイプIの適合性ではタイプIのビットストリームのビット、またはタイプIIの適合性ではタイプIIのビットストリームのビットをカウントしたビット単位でのアクセスユニットnのサイズである。
【0048】
SchedSelIdx、BitRate[SchedSelIdx]、およびCpbSize[SchedSelIdx]の値は、次のように制約される。アクセスユニットnおよびアクセスユニットn−1が異なる符号化ビデオシーケンスの部分であり、2つの符号化ビデオシーケンスのアクティブなシーケンスパラメータセットの内容が異なる場合、HSSは、アクセスユニットnを含んだ符号化ビデオシーケンスに与えられたSchedSelIdxの値のうちからSchedSelIdxの値SchedSelIdx1を選択し、それによって、(アクセスユニットn−1を含む)2つの符号化ビデオシーケンスのうちの2番目には、アクセスユニットn−1を含んだ符号化ビデオシーケンスに用いられていたSchedSelIdxの値SchedSelIdx0に対するBitRate[SchedSelIdx0]またはCpbSize[SchedSelIdx0]の値とは異なる、BitRate[SchedSelIdx1]またはCpbSize[SchedSelIdx1]をもたらす。そうでない場合には、HSSは、SchedSelIdx、BitRate[SchedSelIdx]およびCpbSize[SchedSelIdx]の前値を用いて動作し続ける。
【0049】
HSSが前のアクセスユニットのものとは異なるBitRate[SchedSelIdx]またはCpbSize[SchedSelIdx]の値を選択するときには、以下が適用される。変数BitRate[SchedSelIdx]は、時刻tai(n)において有効になる。変数CpbSize[SchedSelIdx]は、次のように有効になる。CpbSize[SchedSelIdx]の新しい値が古いCPBサイズを超える場合には、時刻tai(n)において新しい値が有効になる。そうでない場合には、時刻tr(n)においてCpbSize[SchedSelIdx]の新しい値が有効になる。
【0050】
いくつかの構成において、符号化されたピクチャの除去のタイミングは、次のように実装される。符号化されたピクチャの名目上のCPB除去時刻およびCPB除去時刻は、前の符号化されたピクチャがCPBから除去された直後に、またはアクセスユニット0に関しては、HRDが初期化されたときに決定される(例えば、算出される)と考えてよい。
【0051】
第1のアクセスユニットがCRAアクセスユニットであり、リーディングピクチャが存在せず、cra_leadingpict_discard_flagが1に等しい場合には、アクセスユニット0に関して、アクセスユニットのCPBからの名目上の除去時刻は、tr,n(0)=initial_cra_cpb_removal_delay[SchedSelIdx]/90000によって指定される。そうでない場合には、アクセスユニット0に関して、アクセスユニットのCPBからの名目上の除去時刻は、tr,n(0)=initial_cpb_removal_delay[SchedSelIdx]/90000によって指定される。
【0052】
HRDを初期化しないバッファリング期間の第1のアクセスユニットに関しては、アクセスユニットのCPBからの名目上の除去時刻は、tr,n(n)=tr,n(n)+tcpb_removal_delay(n)によって指定される。この場合、tr,n(n)は、前のバッファリング期間の第1のピクチャの名目上の除去時刻であり、cpb_removal_delay(n)は、アクセスユニットnと関連付けられたピクチャ・タイミングSEIメッセージにおいて指定される。
【0053】
アクセスユニットnがバッファリング期間の第1のアクセスユニットであるときには、nは、アクセスユニットnの除去時刻tr,n(n)においてnに等しく設定される。バッファリング期間の第1のアクセスユニットではないアクセスユニットnの名目上の除去時刻tr,n(n)は、tr,n(n)=tr,n(n)+tcpb_removal_delay(n)によって与えられる。
【0054】
アクセスユニットnの除去時刻は、次のように指定される。low_delay_hrd_flagが0に等しいか、またはtr,n(n)≧taf(n)である場合、アクセスユニットnの除去時刻は、t(n)=tr,n(n)によって指定される。そうではない(例えば、low_delay_hrd_flagが1に等しく、かつtr,n(n)<taf(n)である)場合には、アクセスユニットnの除去時刻は、t(n)=tr,n(n)+tCeil((taf(n)−tr,n(n))/t)によって指定される。後者の場合は、アクセスユニットnのサイズb(n)が大き過ぎて、名目上の除去時刻における除去を妨げることを示すことに留意すべきである。
【0055】
いくつかの構成において、それぞれのテストに関して、次の条件がすべて満たされなければならないことがビットストリームの適合性の必要条件である。delta tg,90(n)=90000(tr,n(n)−taf(n−1))によって指定されるdelta tg,90(n)をもつ、バッファリング期間SEIメッセージと関連付けられた、n>0のアクセスユニットnごとに、use_initial_cpb_removal_delay[SchedSelIdx]の値は、次のように制約されるものとする。cbr_flag[SchedSelIdx]が0に等しい場合には、use_initial_cpb_removal_delay[SchedSelIdx]≦Ceil(delta tg,90(n))である。そうではない(cbr_flag[SchedSelIdx]が1に等しい)場合には、Floor(delta tg,90(n))≦use_initial_cpb_removal_delay[SchedSelIdx]≦Ceil(delta tg,90(n))である。留意すべきは、各ピクチャの除去時刻におけるCPBの正確なビット数が、HRDを初期化するためにどのバッファリング期間SEIメッセージを選択するかに依存することである。エンコーダは、これを考慮に入れて、HRDはいずれのバッファリング期間SEIメッセージでも初期化できるため、HRDを初期化するためにどのバッファリング期間メッセージを選択するかに関わらず、確実にすべての指定された制約条件に従うようにする。
【0056】
先に示されたように、本明細書に開示されるシステムおよび方法は、リーディングピクチャが存在するときにCRAピクチャで始まるビットストリームのためのバッファリング期間SEIメッセージを修正するシンタックスおよびセマンティクスを提供する。いくつかの構成において、本明細書に開示されるシステムおよび方法は、HEVC仕様に適用される。
【0057】
便宜上、本明細書に開示されるシステムおよび方法に適用されるいくつかの定義は、次のように与えられる。ランダムアクセスポイントとは、ビットストリームを復号するステップが、現ピクチャおよび出力順に前記現ピクチャに続くすべてのピクチャを復号するためにランダムアクセスポイントに先行するビットストリーム中のいかなるポイントへのアクセスも必要としない、データストリーム(例えば、ビットストリーム)における任意のポイントである。
【0058】
バッファリング期間は、バッファリング期間SEIメッセージの2つのインスタンス間における復号順のアクセスユニットのセットとして指定される。付加拡張情報(SEI)は、符号化されたピクチャのサンプルをVCL NALユニットから復号するために必要ではない情報を含む。SEIメッセージは、復号、表示または他の目的に関する手順を補助する。しかしながら、SEIメッセージは、復号処理によって輝度または色差サンプルを構築するために必須ではない。出力順がHEVC仕様に適合するように(例えば、HEVC仕様書の付属書Cが適合性に関する仕様を含む)この情報を処理するために、デコーダを適合させる必要はない。いくつかのSEIメッセージ情報は、ビットストリームの適合性をチェックするため、および出力タイミングをデコーダに適合させるために必要とされる。
【0059】
バッファリング期間SEIメッセージとは、バッファリング期間に関するSEIメッセージである。このメッセージは、ビットストリームの到着タイミングおよび符号化されたピクチャの除去タイミングを定義するシンタックスおよびセマンティックスを定義する。
【0060】
ピクチャパラメータセット(PPS:picture Parameter Set)とは、各スライスヘッダに見出されるpic_parameter_set_idシンタックス要素によって決定されるような、ゼロまたはそれ以上の符号化されたピクチャ全体に適用されるシンタックス要素を含んだシンタックス構造である。pic_parameter_set_idは、スライスヘッダにおいて参照されるピクチャパラメータセットを識別する。pic_parameter_set_idの値は、両端値を含めて、0から255までの範囲内にある。
【0061】
符号化ピクチャバッファ(CPB)とは、仮想参照デコーダ(HRD)において指定された復号順に複数のアクセスユニットを含む先入れ先出しバッファである。アクセスユニットとは、復号順に連続しており、ただ1つの符号化されたピクチャを含む、複数のネットワークアクセス層(NAL)ユニットのセットである。符号化されたピクチャの複数の符号化スライスNALユニットに加えて、アクセスユニットは、符号化されたピクチャのスライスを含んでいない他のNALユニットも含んでよい。アクセスユニットを復号するステップは、復号されたピクチャを常にもたらす。NALユニットとは、後に続くデータのタイプの指標と、必要に応じてエミュレーション防止バイトが点在したロー・バイト・シーケンス・ペイロードの形態でそのデータを含んだ、複数のバイトとを含むシンタックス構造である。
【0062】
次に図面を参照して様々な構成が記載される。図面中、同様の参照番号は、機能的に類似した要素を示す。本明細書において図面に一般的に記載され、説明されるシステムおよび方法は、多種多様に異なった構成に配置され、設計されてもよい。従って、図面に表現されるような、いくつかの構成の以下のさらに詳細な記載は、特許請求の範囲を限定するものではなく、システムおよび方法を単に代表するに過ぎない。
【0063】
図1は、メッセージを送り、ビットストリームをバッファリングするためのシステムおよび方法が実装された1つ以上の電子デバイス102の例を示すブロックダイアグラムである。この例では、電子デバイスA102aおよび電子デバイスB102bが示される。しかしながら、留意すべきは、電子デバイスA102aおよび電子デバイスB102bについて記載される特徴および機能性の1つ以上がいくつかの構成では単一の電子デバイスに組み合わされてもよいことである。
【0064】
電子デバイスA102aは、エンコーダ104を含む。エンコーダ104は、メッセージ生成モジュール108を含む。電子デバイスA102a内に含まれるそれぞれの要素(例えば、エンコーダ104およびメッセージ生成モジュール108)は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよい。
【0065】
電子デバイスA102aは、1つ以上の入力ピクチャ106を取得する。いくつかの構成において、入力ピクチャ(単数または複数)106は、イメージセンサを用いて電子デバイスA102a上に取り込まれてもよく、メモリから読み出されてもよく、および/または別の電子デバイスから受信されてもよい。
【0066】
エンコーダ104は、符号化データを作り出すために入力ピクチャ(単数または複数)106を符号化する。例えば、エンコーダ104は、一連の入力ピクチャ106(例えば、ビデオ)を符号化する。一構成において、エンコーダ104は、HEVCエンコーダとするとよい。符号化データは、デジタルデータ(例えば、ビットストリーム114の一部)である。エンコーダ104は、入力信号に基づいてオーバーヘッド・シグナリングを生成する。
【0067】
メッセージ生成モジュール108は、1つ以上のメッセージを生成する。例えば、メッセージ生成モジュール108は、1つ以上のSEIメッセージまたは他のメッセージを生成する。電子デバイス102(例えば、エンコーダ104)は、第1のピクチャ(例えば、符号化されたピクチャ)がCRAピクチャであるか、および第1のピクチャがCRAピクチャである場合に、リーディングピクチャが存在するかどうかを判定する。第1のピクチャがCRAピクチャであり、かつリーディングピクチャが存在する場合には、メッセージ生成モジュール108は、CRAリーディングピクチャ破棄フラグ(例えば、cra_leadingpict_discard_flag)、初期CRA CPB除去遅延パラメータ(例えば、initial_cra_cpb_removal_delay[SchedSelIdx])、および初期CRA CPB除去遅延オフセット・パラメータ(例えば、initial_cra_cpb_removal_delay_offset[SchedSelIdx])の1つ以上を含む、メッセージ(例えば、バッファリング期間SEIメッセージまたは他のメッセージ)を生成する。例えば、メッセージ生成モジュール108は、下の図2および図3に関連して記載される手順の1つ以上を行う。いくつかの構成において、電子デバイスA102aは、ビットストリーム114の一部としてメッセージを電子デバイスB102bへ送る。いくつかの構成において、電子デバイスA102aは、別の送信110によってメッセージを電子デバイスB102bへ送ってもよい。例えば、別の送信は、ビットストリーム114の一部でなくてもよい。例として、バッファリング期間SEIメッセージまたは他のメッセージは、何らかの帯域外メカニズムを用いて送られる。留意すべきは、いくつかの構成において、他のメッセージが上記のバッファリング期間SEIメッセージの特徴の1つ以上を含みうることである。そのうえ、他のメッセージは、1つ以上の態様において、上記のSEIメッセージと同様に利用できる。
【0068】
エンコーダ104(および、例えば、メッセージ生成モジュール108)は、ビットストリーム114を作り出す。ビットストリーム114は、入力ピクチャ(単数または複数)106に基づく符号化ピクチャ・データを含む。いくつかの構成において、ビットストリーム114は、オーバーヘッド・データ、例えば、バッファリング期間SEIメッセージまたは他のメッセージ、スライスヘッダ(単数または複数)、PPS(単数または複数)なども含む。追加の入力ピクチャ106が符号化されるときに、ビットストリーム114は、1つ以上の符号化されたピクチャを含む。例として、ビットストリーム114は、対応するオーバーヘッド・データ(例えば、バッファリング期間SEIメッセージまたは他のメッセージ)をもつ1つ以上の符号化されたピクチャを含む。
【0069】
ビットストリーム114は、デコーダ112へ供給される。一例において、ビットストリーム114は、有線または無線リンクを用いて電子デバイスB102bへ送信される。いくつかの場合に、これは、ネットワーク、例えば、インターネットまたはローカルエリアネットワーク(LAN:Local Area Network)を通じてなされる。図1に示されるように、デコーダ112は、電子デバイスA102a上のエンコーダ104とは別に電子デバイスB102b上に実装される。しかしながら、留意すべきは、エンコーダ104およびデコーダ112がいくつかの構成において同じ電子デバイス上に実装されてもよいことである。例として、エンコーダ104およびデコーダ112が同じ電子デバイス上に実装される実施形態において、ビットストリーム114は、バスを通じてデコーダ112へ供給されてもよく、またはデコーダ112による読み出しのためにメモリに記憶されてもよい。
【0070】
デコーダ112は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよい。一構成において、デコーダ112は、HEVCデコーダとするとよい。デコーダ112は、ビットストリーム114を受信する(例えば、取得する)。デコーダ112は、ビットストリーム114に基づいて1つ以上の復号されたピクチャ118を生成する。復号されたピクチャ(単数または複数)118は、表示される、再生される、メモリに記憶される、および/または別のデバイスへ送信されるなどである。
【0071】
デコーダ112は、CPB120を含む。CPB120は、符号化されたピクチャを一時的に記憶する。例えば、CPB120は、符号化されたピクチャを除去時刻まで記憶する。本明細書に開示されるシステムおよび方法に従って、(例えば、ビットストリーム・データの)到着時刻および(例えば、符号化されたピクチャの)除去時間の1つ以上は、メッセージ(例えば、バッファリング期間SEIメッセージまたは他のメッセージ)に基づいてデコーダ112により決定される。
【0072】
デコーダ112は、メッセージ(例えば、バッファリング期間SEIメッセージまたは他のメッセージ)を受信する。デコーダは、また、第1のアクセスユニットがCRAアクセスユニットであるか、リーディングピクチャが存在しないか、およびCRAリーディングピクチャ破棄フラグが破棄を示すかどうかを判定する。第1のアクセスユニットがCRAアクセスユニットであり、リーディングピクチャが存在せず、かつCRAリーディングピクチャ破棄フラグが破棄を示す場合には、デコーダは、初期除去遅延変数を初期CRA CPB除去遅延パラメータに設定し、このCRA CPB除去遅延パラメータに基づいて第1のアクセスユニット(例えば、符号化されたピクチャ)をCPBから除去する。例として、CPB120は、下の図4および図5に関連して記載される手順の1つ以上を行う。
【0073】
上記のHRDは、図1に示されるデコーダ112の一例である。このように、電子デバイス102は、いくつかの構成において、上記のHRDおよびCPBに従って動作する。
【0074】
留意すべきは、電子デバイス(単数または複数)102に含まれる要素またはその部分の1つ以上がハードウェアで実装されてもよいことである。例えば、これらの要素またはその部分の1つ以上は、チップ、回路素子またはハードウェア・コンポーネントなどとして実装されてもよい。留意すべきは、本明細書に記載される機能または方法の1つ以上がハードウェアで実装されてもよく、および/またはハードウェアを用いて行われてもよいことである。例えば、本明細書に記載される方法の1つ以上は、チップセット、特定用途向け集積回路(ASIC:Application−Specific Integrated Circuit)、大規模集積回路(LSI:Large−Scale Integrated circuit)または集積回路などで実装されてもよく、および/またはそれらを用いて実現されてもよい。
【0075】
図2は、メッセージを送るための方法200の一構成を示すフローダイアグラムである。電子デバイス102(例えば、電子デバイスA102a)は、第1のピクチャがCRAピクチャであるかどうかを判定する(ステップ202)。例えば、エンコーダ104は、入力ピクチャ106をCRAピクチャとして符号化する。いくつかの構成において、CRAピクチャは、イントラ予測だけを用いて復号される符号化されたピクチャである。例えば、CRAピクチャは、各スライスが4に等しいnal_unit_type(例えば、ネットワーク抽象化層ユニット・タイプ)を有する、1つ以上のIスライス(例えば、ただ1つ)を含む。復号順でも出力順でもCRAピクチャの後に続くすべての符号化されたピクチャは、復号順または出力順のいずれかでCRAピクチャに先行する任意のピクチャからのインター予測を用いることができない。そのうえ、復号順でCRAピクチャに先行する任意のピクチャは、出力順でもCRAピクチャに先行しうる。それゆえに、エンコーダ104が入力ピクチャ106をCRAピクチャとして符号化する場合(例えば、符号化されたピクチャがIスライスだけを含む場合)、電子デバイス102は、第1のピクチャがCRAピクチャであると判定する(ステップ202)。そうでない場合には、電子デバイス102は、第1のピクチャがCRAピクチャではないと判定する(ステップ202)。
【0076】
留意すべきは、CRAピクチャがビットストリーム114中のランダムアクセスポイントで生じうることである。ランダムアクセスポイントとは、ビットストリームを復号するステップが、現ピクチャおよび出力順に前記現ピクチャに続くすべてのピクチャを復号するためにランダムアクセスポイントに先行するビットストリーム中のいかなるポイントへのアクセスも必要としない、データストリーム(例えば、ビットストリーム)における任意のポイントである。
【0077】
電子デバイス102は、第1のピクチャがCRAピクチャである場合に、リーディングピクチャが存在するかどうかを判定する(ステップ204)。リーディングピクチャとは、復号順ではCRAピクチャの後に続き、出力順ではCRAピクチャに先行するピクチャである。例えば、あるピクチャが復号順ではCRAピクチャの後に続き、出力順(例えば、デコーダ112から出力される順序)ではCRAピクチャに先行するようにエンコーダ104によって指定されている場合にリーディングピクチャが存在する。
【0078】
リーディングピクチャが存在するかどうかを判定するステップ204は、1つ以上の手法に従って達成される。一手法において、電子デバイス102は、第1のピクチャがCRAピクチャであり、かつ復号順ではCRAピクチャの後に続き、出力順ではCRAピクチャに先行するように(例えば、エンコーダ104によって)指定された別のピクチャが存在する場合に、リーディングピクチャが存在すると判定する(ステップ204)。いくつかの構成において、電子デバイス102は、リーディングピクチャが存在するかどうかを判定するために、CRAピクチャおよび1つ以上の他のピクチャに対応するデータを読み取る。例として、電子デバイス102は、CRAピクチャおよび1つ以上の他のピクチャの復号順ならびに出力順を指定するデータを読み取る。例えば、出力順を決定するために、ピクチャオーダカウント(POC:Picture Order Count)が利用される。復号順は、ビットストリーム114中にシンタックス要素が現れる順序に基づいて決定される。いくつかの構成において、復号されたピクチャが復号ピクチャバッファから出力されることになる場合には、出力順は、復号されたピクチャが復号ピクチャバッファから出力される順序として定義される。ピクチャの出力順は、ピクチャが出力されることになるかどうかに係わらず、POC値によって指定される。いくつかの構成において、復号順は、復号処理においてシンタックス要素が処理される順序として定義される。あるピクチャが復号順ではCRAピクチャの後に続くように指定され、出力順ではCRAピクチャに先行するように指示されるという条件が満たされている場合、電子デバイス102は、リーディングピクチャが存在すると判定する(ステップ204)。
【0079】
電子デバイス102は、リーディングピクチャが存在する場合に、CRAリーディングピクチャ破棄フラグと初期CRA CPB除去遅延パラメータとを含んだメッセージ(例えば、バッファリング期間SEIメッセージまたは他のメッセージ)を生成する(ステップ206)。例えば、電子デバイス102は、cra_leadingpict_discard_flagおよびinitial_cra_cpb_removal_delay[SchedSelIdx]を含むメッセージを生成する(ステップ206)。いくつかの構成において、メッセージは、CRA CPB除去遅延オフセット・パラメータも含む。例として、電子デバイス102は、上の表(1)に示されるような、バッファリング期間SEIメッセージを生成する(ステップ206)。
【0080】
電子デバイス102は、メッセージ(例えば、バッファリング期間SEIメッセージまたはメッセージ)を送る(ステップ208)。例えば、電子デバイス102は、無線伝送、有線伝送、デバイスバス、ネットワークなどのうちの1つ以上を通じてメッセージを送信する。例として、電子デバイスA102aは、メッセージを電子デバイスB102bへ送信する。メッセージは、例えば、ビットストリーム114の一部であってもよい。いくつかの構成において、電子デバイスA102aは、(ビットストリーム114の一部ではない)別の送信110でメッセージを電子デバイスB102bへ送る(ステップ208)。例として、メッセージは、何らかの帯域外メカニズムを用いて送られる。
【0081】
図3は、メッセージを送るための方法300のより具体的な構成を示すフローダイアグラムである。電子デバイス102(例えば、電子デバイスA102a)は、第1のピクチャがCRAピクチャであるかどうかを判定する(ステップ302)。この判定は、上の図2に関連して記載されたように達成される。
【0082】
電子デバイス102は、第1のピクチャがCRAピクチャである場合に、リーディングピクチャが存在するかどうかを判定する(ステップ304)。この判定は、上の図2に関連して記載されたように達成される。
【0083】
電子デバイス102は、リーディングピクチャが存在する場合に、CRAリーディングピクチャ破棄フラグ、初期CRA CPB除去遅延パラメータ、および初期CRA CPB除去遅延オフセット・パラメータを含んだバッファリング期間SEIメッセージを生成する(ステップ306)。例えば、電子デバイス102は、cra_leadingpict_discard_flag、initial_cra_cpb_removal_delay[SchedSelIdx]、およびinitial_cra_cpb_removal_delay_offset[SchedSelIdx]を含むバッファリング期間SEIメッセージを生成する(ステップ306)。例として、電子デバイス102は、上の表(1)に示されるような、バッファリング期間SEIメッセージを生成する(ステップ306)。
【0084】
電子デバイス102は、バッファリング期間SEIメッセージを送る(ステップ308)。例えば、電子デバイス102は、無線伝送、有線伝送、デバイスバス、ネットワークなどのうちの1つ以上を通じてバッファリング期間SEIメッセージを送信する。例として、電子デバイスA102aは、バッファリング期間SEIメッセージを電子デバイスB102bへ送信する。バッファリング期間SEIメッセージは、例えば、ビットストリーム114の一部であってもよい。
【0085】
図4は、ビットストリームをバッファリングするための方法400の一構成を示すフローダイアグラムである。電子デバイス102(例えば、電子デバイスB102b)は、メッセージ(例えば、バッファリング期間SEIメッセージまたは他のメッセージ)を受信する(ステップ402)。例えば、電子デバイス102は、無線伝送、有線伝送、デバイスバス、ネットワークなどのうちの1つ以上を通じてメッセージを受信する(ステップ402)。例として、電子デバイスB102bは、メッセージを電子デバイスA102aから受信する(ステップ402)。メッセージは、例えば、ビットストリーム114の一部であってもよい。別の例では、電子デバイスB102bは、(例えば、ビットストリーム114の一部ではない)別の送信110でメッセージを電子デバイスA102aから受信する。例として、バッファリング期間SEIメッセージは、何らかの帯域外メカニズムを用いて受信される。いくつかの構成において、メッセージは、CRAリーディングピクチャ破棄フラグ、初期CRA CPB除去遅延パラメータ、および初期CRA CPB除去遅延オフセット・パラメータのうちの1つ以上を含む。従って、メッセージを受信するステップ402は、CRAリーディングピクチャ破棄フラグ、初期CRA CPB除去遅延パラメータ、および初期CRA CPB除去遅延オフセット・パラメータのうちの1つ以上を受信することを含む。
【0086】
電子デバイス102は、第1のアクセスユニットがCRAアクセスユニットであるか、1つ以上のリーディングピクチャが存在しないか、およびCRAリーディングピクチャ破棄フラグが破棄を示すかどうかを判定する(ステップ404)。アクセスユニットは、符号化されたピクチャを含む1つ以上のNALユニットのセットである。ビットストリーム114は、1つ以上のアクセスユニットを含みうる。いくつかの構成において、電子デバイス102は、第1のアクセスユニットに対応するNALユニット・タイプ・パラメータ(例えば、nal_unit_type)に基づいて、第1のアクセスユニットがCRAアクセスユニットであるかどうかを判定する(ステップ404)。例えば、nal_unit_type4は、CRAピクチャの符号化スライスを示す。この場合、第1のアクセスユニットに対応するNALユニット・タイプ(例えば、nal_unit_types)の1つ以上(例えば、すべて)がCRAピクチャの符号化スライスを示せば(例えば、4に等しければ)、電子デバイスは、アクセスユニットがCRAアクセスユニットであると判定する。そうでない場合には、電子デバイス102は、第1のアクセスユニットがCRAアクセスユニットではないと判定する。
【0087】
電子デバイス102は、いずれかのリーディングピクチャが存在するかどうかを判定する。例えば、電子デバイス102は、ビットストリーム114の一部分にいずれかのリーディングピクチャ(単数または複数)が含まれるかどうかを判定する。上記のように、リーディングピクチャは、復号順ではCRAピクチャの後に続き、出力順ではCRAピクチャに先行するピクチャである。例えば、あるピクチャが復号順ではCRAピクチャの後に続き、出力順(例えば、デコーダ112から出力される順序)ではCRAピクチャに先行するようにエンコーダ104によって指定されている場合にリーディングピクチャが存在する。
【0088】
リーディングピクチャが存在するかどうかを判定するステップは、1つ以上の手法に従って達成される。一手法において、電子デバイス102は、(第1のアクセスユニットにおける)あるピクチャがCRAピクチャであり、かつ復号順ではCRAピクチャの後に続き、出力順ではCRAピクチャに先行するように(例えば、エンコーダ104によって)指定された別のピクチャが存在する場合に、リーディングピクチャが存在すると判定する。いくつかの構成において、電子デバイス102は、リーディングピクチャが存在するかどうかを判定するために、CRAピクチャおよび1つ以上の他のピクチャに対応するデータを読み取る。例えば、電子デバイス102は、CRAピクチャおよび1つ以上の他のピクチャの復号順ならびに出力順を指定するデータを読み取る。一例において、電子デバイス102は、ビットストリーム114中の指標を受信する。別の例では、電子デバイス102は、ピクチャに関するPOC値を決定し、それを対応するCRAピクチャのPOC値と比較することによって、リーディングピクチャが存在するかどうかを判定する。あるピクチャが復号順ではCRAピクチャの後に続くように指示され、出力順にはCRAピクチャに先行するように指示されるという条件が満たされている場合、電子デバイス102は、リーディングピクチャが存在すると判定する。しかしながら、判定基準の1つ以上が満たされない場合には、電子デバイス102は、リーディングピクチャ(単数または複数)が何も存在しないと判定する。
【0089】
電子デバイス102は、CRAリーディングピクチャ破棄フラグが破棄を示すかどうかを判定する。例えば、電子デバイス102は、SEIメッセージにおけるCRAリーディングピクチャ破棄フラグが破棄を示すかどうかを判定するために、メッセージを読み取る。例として、cra_leadingpict_discard_flagが1の値を有する場合には、電子デバイス102は、CRAリーディングピクチャ破棄フラグが破棄を示すと判定する。しかしながら、cra_leadingpict_discard_flagが0の値を有する場合には、電子デバイス102は、CRAリーディングピクチャ破棄フラグが破棄を示さないと判定する。
【0090】
第1のアクセスユニットがCRAアクセスユニットであり、リーディングピクチャが何も存在せず、かつCRAリーディングピクチャ破棄フラグが破棄を示す場合には、電子デバイス102は、初期除去遅延変数を初期CRA CPB除去遅延パラメータに設定する(ステップ406)。この場合、例えば、電子デバイス102は、use_initial_cpb_removal_delay[SchedSelIdx]をinitial_cra_cpb_removal_delay[SchedSelIdx]の値に設定する。
【0091】
いくつかの構成において、電子デバイス102(例えば、デコーダ112)は、初期CRA CPB除去遅延パラメータおよび初期CRA CPB除去遅延オフセット・パラメータのうちの1つ以上に基づいてビットストリーム到着時刻を決定する。例えば、第1のアクセスユニットがCRAアクセスユニットであり、リーディングピクチャが何も存在せず、かつCRAピクチャ破棄フラグが破棄を示す場合、ビットストリーム到着時刻は、次のように決定される。
【0092】
上記のように、CPB120を初期化するアクセスユニットの後のアクセスユニット(例えば、n>0)に関して、cbr_flag[SchedSelIdx]が0であり、かつアクセスユニット(例えば、n)が後続のバッファリング期間の第1のアクセスユニットではない場合、電子デバイス102は、tai,earliest(n)に基づいて、ビットストリーム到着時刻tai(n)を決定する。tai,earliest(n)は、初期除去遅延変数(例えば、use_initial_cpb_removal_delay[SchedSelIdx])および初期除去遅延オフセット変数(例えば、use_initial_cpb_removal_delay_offset)に基づいて決定される。上記と同様に、初期除去遅延変数は、初期CRA CPB除去遅延パラメータ(例えば、initial_cra_cpb_removal_delay[SchedSelIdx]に設定される(ステップ406)。それゆえに、ビットストリーム到着時刻を決定するステップは、初期CRA CPB除去遅延パラメータに基づくことができる。いくつかの構成において、初期除去遅延オフセット変数(例えば、use_initial_cpb_removal_delay_offset[SchedSelIdx])も、初期CRA CPB除去遅延オフセット・パラメータ(例えば、initial_cra_cpb_removal_delay_offset[SchedSelIdx])に設定される。従って、ビットストリーム到着時刻を決定するステップは、追加的に初期CRA CPB除去遅延オフセット・パラメータに基づくことができる。
【0093】
上記のように、CPB120を初期化するアクセスユニットの後のアクセスユニット(例えば、n>0)に関しては、cbr_flag[SchedSelIdx]が0であり、かつアクセスユニット(例えば、n)が後続のバッファリング期間の第1のアクセスユニットである場合、電子デバイス102は、初期除去遅延変数(例えば、use_initial_cpb_removal_delay[SchedSelIdx])に基づいてビットストリーム到着時刻tai(n)を決定する。上記と同様に、初期除去遅延変数は、初期CRA CPB除去遅延パラメータ(例えば、initial_cra_cpb_removal_delay[SchedSelIdx]に設定される(ステップ406)。それゆえに、ビットストリーム到着時刻を決定するステップは、初期CRA CPB除去遅延パラメータに基づくことができる。
【0094】
第1のアクセスユニットがCRAアクセスユニットであり、リーディングピクチャが何も存在せず、かつCRAリーディングピクチャ破棄フラグが破棄を示す場合には、電子デバイス102は、初期CRA CPB除去遅延パラメータに基づいて第1のアクセスユニットを除去する(ステップ408)。例えば、電子デバイス102は、初期CRA CPB除去遅延パラメータ(例えば、initial_cra_cpb_removal_delay[SchedSelIdx])に基づいて第1のアクセスユニットに関する除去時刻を決定する。除去時刻に達したときに、電子デバイス102は、例として、第1のアクセスユニットをCPBから除去する。
【0095】
電子デバイス102は、第1のアクセスユニットを復号する(ステップ410)。例えば、電子デバイス102は、第1のアクセスユニットに含まれる符号化されたピクチャを復号する(ステップ410)。いくつかの構成において、電子デバイス102は、第1のアクセスユニットを除去して(ステップ408)、除去の際にそれを復号する(ステップ410)。例えば、各アクセスユニットと関連付けられたデータは、CPB除去時刻に除去され、瞬時復号処理により瞬時に復号される。留意すべきは、用語「瞬時」およびその変形が任意の時間間隔がないことを必ずしも示さないことである。例えば、「瞬時」処理がいくらかの時間を占めてもよい。
【0096】
第1のアクセスユニットがCRAアクセスユニットではないか、第1のアクセスユニットがCRAアクセスユニットであり、かつリーディングピクチャが存在するか、またはCRAリーディングピクチャ破棄フラグが破棄を示さない場合には、電子デバイス102は、初期除去遅延変数を初期CPB除去遅延パラメータに設定する(ステップ412)。この場合、例えば、電子デバイス102は、use_initial_cpb_removal_delay[SchedSelIdx]をinitial_cpb_removal_delay[SchedSelIdx]の値に設定する。
【0097】
第1のアクセスユニットがCRAアクセスユニットではないか、第1のアクセスユニットがCRAアクセスユニットであり、かつリーディングピクチャが存在するか、またはCRAリーディングピクチャ破棄フラグが破棄を示さない場合には、電子デバイス102は、初期CPB除去遅延パラメータに基づいて第1のアクセスユニットを除去する(ステップ414)。例えば、電子デバイス102は、初期CPB除去遅延パラメータ(例えば、initial_cpb_removal_delay[SchedSelIdx])に基づいて、第1のアクセスユニットに関する除去時刻を決定する。除去時刻に達したときに、電子デバイス102は、例として、第1のアクセスユニットをCPBから除去する。
【0098】
電子デバイス102は、第1のアクセスユニットを復号する(ステップ416)。例えば、電子デバイス102は、第1のアクセスユニットに含まれる符号化されたピクチャを復号する(ステップ416)。例えば、各アクセスユニットと関連付けられたデータは、CPB除去時刻に除去され、瞬時復号処理により瞬時に復号される。
【0099】
図5は、ビットストリームをバッファリングするための方法500のより具体的な構成を示すフローダイアグラムである。電子デバイス102(例えば、電子デバイスB102b)は、バッファリング期間SEIメッセージを受信する(ステップ502)。これは、例えば、図4に関連して上記のように達成される。
【0100】
電子デバイス102は、第1のアクセスユニットがCRAアクセスユニットであるか、1つ以上のリーディングピクチャが存在しないか、およびCRAリーディングピクチャ破棄フラグが破棄を示すかどうかを判定する(ステップ504)。これは、例えば、図4に関連して上記のように達成される。
【0101】
第1のアクセスユニットがCRAアクセスユニットであり、リーディングピクチャが何も存在せず、かつCRAリーディングピクチャ破棄フラグが破棄を示す場合には、電子デバイス102は、初期除去遅延変数を初期CRA CPB除去遅延パラメータに設定する(ステップ506)。この場合、例えば、電子デバイス102は、use_initial_cpb_removal_delay[SchedSelIdx]をinitial_cra_cpb_removal_delay[SchedSelIdx]の値に設定する。
【0102】
いくつかの構成において、電子デバイス102は、初期CRA CPB除去遅延パラメータおよび初期CRA CPB除去遅延オフセット・パラメータのうちの1つ以上に基づいて、ビットストリーム到着時刻を決定する。これは、例えば、上の図4に関連して上記のようになされる。
【0103】
第1のアクセスユニットがCRAアクセスユニットであり、リーディングピクチャが何も存在せず、かつCRAリーディングピクチャ破棄フラグが破棄を示す場合には、電子デバイス102は、初期CRA CPB除去遅延パラメータに基づいて除去時刻(例えば、tr,n)を決定する(ステップ508)。これは、initial_cra_cpb_removal_delay[SchedSelIdx]/90000に関連して上記のように達成される。
【0104】
第1のアクセスユニットがCRAアクセスユニットであり、リーディングピクチャが何も存在せず、かつCRAリーディングピクチャ破棄フラグが破棄を示す場合には、電子デバイス102は、初期CRA CPB除去遅延パラメータに基づいて第1のアクセスユニットを除去する(ステップ510)。例えば、電子デバイス102は、上記のように初期CRA CPB除去遅延パラメータ(例えば、initial_cra_cpb_removal_delay[SchedSelIdx])に基づいて、第1のアクセスユニットに関する除去時刻(例えば、tr,n)を決定する(ステップ508)。除去時刻(例えば、tr,n)に達したときに、電子デバイス102は、例として、第1のアクセスユニットをCPBから除去する(ステップ510)。
【0105】
電子デバイス102は、第1のアクセスユニットを復号する(ステップ512)。例えば、電子デバイス102は、第1のアクセスユニットに含まれる符号化されたピクチャを復号する(ステップ512)。例えば、各アクセスユニットと関連付けられたデータは、CPB除去時刻に除去され、瞬時復号処理により瞬時に復号される。
【0106】
第1のアクセスユニットがCRAアクセスユニットではないか、第1のアクセスユニットがCRAアクセスユニットであり、かつリーディングピクチャが存在するか、またはCRAリーディングピクチャ破棄フラグが破棄を示さない場合には、電子デバイス102は、初期除去遅延変数を初期CPB除去遅延パラメータに設定する(ステップ514)。この場合、例えば、電子デバイス102は、use_initial_cpb_removal_delay[SchedSelIdx]をinitial_cpb_removal_delay[SchedSelIdx]の値に設定する。
【0107】
第1のアクセスユニットがCRAアクセスユニットではないか、第1のアクセスユニットがCRAアクセスユニットであり、かつリーディングピクチャが存在するか、またはCRAリーディングピクチャ破棄フラグが破棄を示さない場合には、電子デバイス102は、初期CPB除去遅延パラメータに基づいて除去時刻(例えば、tr,n)を決定する(ステップ516)。これは、initial_cpb_removal_delay[SchedSelIdx]/90000と関連して上記のように達成される。
【0108】
第1のアクセスユニットがCRAアクセスユニットではないか、第1のアクセスユニットがCRAアクセスユニットであり、かつリーディングピクチャが存在するか、またはCRAリーディングピクチャ破棄フラグが破棄を示さない場合には、電子デバイス102は、初期CPB除去遅延パラメータに基づいて第1のアクセスユニットを除去する(ステップ518)。例えば、電子デバイス102は、上記のように初期CPB除去遅延パラメータ(例えば、initial_cpb_removal_delay[SchedSelIdx])に基づいて第1のアクセスユニットに関する除去時刻(例えば、tr,n)を決定する(ステップ516)。除去時刻(例えば、tr,n)に達したときに、電子デバイス102は、例として、第1のアクセスユニットをCPBから除去する(ステップ518)。
【0109】
電子デバイス102は、第1のアクセスユニットを復号する(ステップ520)。例えば、電子デバイス102は、第1のアクセスユニットに含まれる符号化されたピクチャを復号する(ステップ520)。例えば、各アクセスユニットと関連付けられたデータは、CPB除去時刻に除去され、瞬時復号処理により瞬時に復号される。
【0110】
図6は、電子デバイス602上のエンコーダ604の一構成を示すブロックダイアグラムである。留意すべきは、電子デバイス602内に含まれるとして示される要素の1つ以上がハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよいことである。例えば、電子デバイス602は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよいエンコーダ604を含む。例として、エンコーダ604は、回路、集積回路、特定用途向け集積回路(ASIC)、実行可能な命令をもつメモリと電子通信を行うプロセッサ、ファームウェア、フィールドプログラマブルゲートアレイ(FPGA:field−programmable gate array)など、またはそれらの組み合わせとして実装されてもよい。いくつかの構成において、エンコーダ604は、HEVCコーダとするとよい。
【0111】
電子デバイス602は、ソース622を含む。ソース622は、ピクチャ、または1つ以上の入力ピクチャ606としての画像データ(例えば、ビデオ)をエンコーダ604へ供給する。ソース622の例は、イメージセンサ、メモリ、通信インターフェース、ネットワークインターフェース、無線受信機、ポートなどを含む。
【0112】
1つ以上の入力ピクチャ606がフレーム内予測モジュールおよび再構成バッファ624へ供給される。入力ピクチャ606は、また、動き推定および動き補償モジュール646へ、そして減算モジュール628へも供給される。
【0113】
フレーム内予測モジュールおよび再構成バッファ624は、1つ以上の入力ピクチャ606および再構成データ660に基づいて、イントラモード情報640およびイントラ信号626を生成する。動き推定および動き補償モジュール646は、1つ以上の入力ピクチャ606および参照ピクチャバッファ676信号678に基づいて、インターモード情報648およびインター信号644を生成する。いくつかの構成において、参照ピクチャバッファ676は、参照ピクチャバッファ676に1つ以上の参照ピクチャからのデータを含む。
【0114】
エンコーダ604は、モードに従ってイントラ信号626とインター信号644との間で選択を行う。イントラ信号626は、ピクチャ内の空間的特性をイントラ符号化モードで活用するために用いられる。インター信号644は、ピクチャ間の時間的特性をインター符号化モードで活用するために用いられる。イントラ符号化モードにある間には、イントラ信号626が減算モジュール628へ供給され、イントラモード情報640がエントロピー符号化モジュール642へ供給される。インター符号化モードにある間には、インター信号644が減算モジュール628へ供給され、インターモード情報648がエントロピー符号化モジュール642へ供給される。
【0115】
減算モジュール628では、予測残差630を作り出すために、(モードに依存して)イントラ信号626か、またはインター信号644のいずれかが入力ピクチャ606から減算される。予測残差630は、変換モジュール632へ供給される。変換モジュール632は、予測残差630を圧縮して、量子化モジュール636へ供給される変換信号634を作り出す。量子化モジュール636は、変換信号634を量子化して、変換および量子化された係数(TQC:transformed and quantized coefficient)638を作り出す。
【0116】
TQC638は、エントロピー符号化モジュール642および逆量子化モジュール650へ供給される。逆量子化モジュール650は、TQC638に対して逆量子化を行い、逆変換モジュール654へ供給される逆量子化された信号652を作り出す。逆変換モジュール654は、逆量子化された信号652を展開して、再構成モジュール658へ供給される展開された信号656を作り出す。
【0117】
再構成モジュール658は、展開された信号656に基づいて再構成されたデータ660を作り出す。例えば、再構成モジュール658は、ピクチャを再構成(修正)する。再構成されたデータ660は、デブロッキングフィルタ662へ、ならびにイントラ予測モジュールおよび再構成バッファ624へ供給される。デブロッキングフィルタ662は、再構成されたデータ660に基づいてフィルタされた信号664を作り出す。
【0118】
フィルタされた信号664は、サンプル適応オフセット(SAO:sample adaptive offset)モジュール666へ供給される。SAOモジュール666は、エントロピー符号化モジュール642へ供給されるSAO情報668、および適応ループフィルタ(ALF:adaptive loop filter)672へ供給されるSAO信号670を作り出す。ALF672は、参照ピクチャバッファ676へ供給されるALF信号674を作り出す。ALF信号674は、参照ピクチャとして用いることができる1つ以上のピクチャからのデータを含む。
【0119】
エントロピー符号化モジュール642は、TQC638を符号化して、ビットストリームA614a(例えば、符号化ピクチャ・データ)を作り出す。例えば、エントロピー符号化モジュール642は、コンテキスト適応型可変長符号化(CAVLC:Context−Adaptive Variable Length Coding)またはコンテキスト適応型2値算術符号化(CABAC:Context−Adaptive Binary Arithmetic Coding)を用いてTQC638を符号化する。特に、エントロピー符号化モジュール642は、イントラモード情報640、インターモード情報648およびSAO情報668のうちの1つ以上に基づいてTQC638を符号化する。ビットストリームA614a(例えば、符号化ピクチャ・データ)は、メッセージ生成モジュール608へ供給される。メッセージ生成モジュール608は、図1に関連して記載されたメッセージ生成モジュール108と同様に構成される。加えて、または代わりに、メッセージ生成モジュール608は、図2および図3に関連して記載された手順の1つ以上を行う。
【0120】
例えば、メッセージ生成モジュール608は、(例えば、ビットストリームA614aにおける)第1のピクチャがCRAピクチャであり、かつリーディングピクチャが存在する場合に、CRAリーディングピクチャ破棄フラグ、初期CRA CPB除去遅延パラメータおよび初期CRA CPB除去遅延オフセット・パラメータのうちの1つ以上を含んだメッセージ(例えば、バッファリング期間SEIメッセージまたは他のメッセージ)を生成する。いくつかの構成では、メッセージがビットストリームA614aに挿入されて、ビットストリームB614bを作り出す。従って、メッセージは、例えば、ビットストリームA614a全体が生成された後に(例えば、ビットストリームB614bの大部分が生成された後に)生成される。他の構成では、メッセージは、ビットストリームA614aには挿入されない(その場合、ビットストリームB614bはビットストリームA614aと同じである)が、別の送信610で供給されてもよい。
【0121】
いくつかの構成において、電子デバイス602は、ビットストリーム614を別の電子デバイスへ送る。例えば、ビットストリーム614は、通信インターフェース、ネットワークインターフェース、無線送信機、ポートなどへ供給される。例として、ビットストリーム614は、LAN、インターネット、セルラーフォン基地局などを通じて別の電子デバイスへ送信される。加えて、または代わりに、ビットストリーム614は、電子デバイス602上のメモリまたは他のコンポーネントに記憶されてもよい。
【0122】
図7は、電子デバイス702上のデコーダ712の一構成を示すブロックダイアグラムを示す。デコーダ712は、電子デバイス702に含まれてもよい。例えば、デコーダ712は、HEVCデコーダとするとよい。デコーダ712、およびデコーダ712に含まれるとして示される要素の1つ以上は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよい。デコーダ712は、復号のためにビットストリーム714(例えば、ビットストリーム714に含まれる1つ以上の符号化されたピクチャおよびオーバーヘッド・データ)を受信する。いくつかの構成では、受信したビットストリーム714が受信したオーバーヘッド・データ、例えば、メッセージ(例えば、バッファ期間SEIメッセージまたは他のメッセージ)、スライスヘッダ、PPSなどを含む。いくつかの構成では、デコーダ712が別の送信710を追加的に受信する。別の送信710がメッセージ(例えば、バッファ期間SEIメッセージまたは他のメッセージ)を含んでもよい。例えば、バッファ期間SEIメッセージまたは他のメッセージがビットストリーム714のかわりに別の送信710で受信されてもよい。しかしながら、別の送信710は、随意的であり、いくつかの構成では利用できないことに留意すべきである。
【0123】
デコーダ712は、CPB720を含む。CPB720は、上の図1に関連して記載されたCPB120と同様に構成される。加えて、または代わりに、デコーダ712は、図4および図5に関連して記載された手順の1つ以上を行う。例えば、デコーダ712は、メッセージ(例えば、バッファリング期間SEIメッセージまたは他のメッセージ)を受信する。加えて、デコーダ712は、第1のアクセスユニットがCRAアクセスユニットであり、リーディングピクチャは存在せず、かつCRAリーディングピクチャ破棄フラグが破棄を示す場合に、初期除去遅延変数を初期CRA CPB除去遅延パラメータに設定するステップ、および初期CRA CPB除去遅延パラメータに基づいて第1のアクセスユニットを除去するステップのうちの1つ以上を行う。ビットストリームが1つ以上のアクセスユニットを含んでもよく、これらのアクセスユニットが符号化ピクチャ・データおよびオーバーヘッド・データのうちの1つ以上を含んでもよいことに留意すべきである。
【0124】
符号化ピクチャバッファ(CPB)720は、符号化ピクチャ・データをエントロピー復号モジュール701へ供給する。符号化ピクチャ・データは、エントロピー復号モジュール701によりエントロピー復号され、それによって動き情報信号703、ならびに量子化、スケーリングおよび/または変換された係数705が作り出される。
【0125】
動き情報信号703は、フレーム間予測信号782を作り出す動き補償モジュール780において、フレームメモリ709からの参照フレーム信号798の一部分と結合される。量子化、デスケーリングおよび/または変換された係数705は、逆モジュール707により逆量子化、逆スケーリングおよび逆変換され、それによって復号された残差信号784を作り出す。復号された残差信号784は、予測信号792に加算されて結合信号786を作り出す。予測信号792とは、動き補償モジュール780によって作り出されたフレーム間予測信号782、またはフレーム内予測モジュール788によって作り出されたフレーム内予測信号790のいずれかから選択された信号である。いくつかの構成において、この信号選択は、ビットストリーム714に基づくことができる(例えば、ビットストリーム714によって制御できる)。
【0126】
フレーム内予測信号790は、(例えば、現フレームにおける)結合信号786から予め復号された情報から予測される。結合信号786は、また、デブロッキングフィルタ794によってフィルタされる。結果的に得られるフィルタされた信号796は、フレームメモリ709に書き込まれる。結果的に得られるフィルタされた信号796は、復号されたピクチャを含む。フレームメモリ709は、復号されたピクチャ718を供給する。
【0127】
図8は、送信用電子デバイス802に利用される様々なコンポーネントを示す。本明細書に記載される電子デバイス102、602、702の1つ以上は、図8に示される送信用電子デバイス802に従って実装される。
【0128】
送信用電子デバイス802は、電子デバイス802の動作を制御するプロセッサ817を含む。プロセッサ817は、CPUとも呼ばれる。メモリ811は、リードオンリーメモリ(ROM:read−only memory)、ランダムアクセスメモリ(RAM:random access memory)の両方または情報を記憶する任意のタイプのデバイスを含み、命令813a(例えば、実行可能な命令)およびデータ815aをプロセッサ817へ供給する。メモリ811の一部分は、不揮発性ランダムアクセスメモリ(NVRAM:non−volatile random access memory)も含んでよい。メモリ811は、プロセッサ817と電子通信を行う。
【0129】
命令813bおよびデータ815bは、プロセッサ817にも存在する。プロセッサ817に読み込まれた命令813bおよび/またはデータ815bは、プロセッサ817による実行または処理のために読み込まれた、メモリ811からの命令813aおよび/またはデータ815aも含んでよい。命令813bは、本明細書に開示されるシステムおよび方法を実装するためにプロセッサ817によって実行される。例えば、命令813bは、上記の方法200、300、400、500の1つ以上を行うために実行可能である。
【0130】
送信用電子デバイス802は、他の電子デバイス(例えば、受信用電子デバイス)と通信するための1つ以上の通信インターフェース819を含む。通信インターフェース819は、有線通信技術、無線通信技術、または両方に基づいてもよい。通信インターフェース819の例は、シリアルポート、パラレルポート、ユニバーサルシリアルバス(USB:Universal Serial Bus)、イーサネットアダプタ、IEEE1394バスインターフェース、小型計算機システムインターフェース(SCSI:small computer system interface)バスインターフェース、赤外線(IR:infrared)通信ポート、Bluetooth無線通信アダプタ、第3世代パートナーシップ・プロジェクト(3GPP:3rd Generation Patnership Project)仕様などによる無線トランシーバなどを含む。
【0131】
送信用電子デバイス802は、1つ以上の出力デバイス823および1つ以上の入力デバイス821を含む。出力デバイス823の例は、スピーカ、プリンタなどを含む。送信用電子デバイス802に含まれる出力デバイスの1つのタイプは、表示デバイス825である。本明細書に開示される構成とともに用いられる表示デバイス825は、任意の適切な画像投影技術、例えば、陰極線管(CRT:cathode ray tube)、液晶表示(LCD:liquid crystal display)、発光ダイオード(LED:light−emitting diode)、気体プラズマ、エレクトロルミネセンスなどを利用する。表示コントローラ827は、メモリ811に記憶されたデータを、ディスプレイ825上に示されるテキスト、グラフィックス、および/または動画に(適宜)変換するために提供される。入力デバイス821の例は、キーボード、マウス、マイクロフォン、リモートコントロールデバイス、ボタン、ジョイスティック、トラックボール、タッチパッド、タッチスクリーン、ライトペンなどを含む。
【0132】
送信用電子デバイス802の様々なコンポーネントは、データバスに加えて、電力バス、制御信号バスおよびステータス信号バスを含むバスシステム829によって結合される。しかしながら、明確にするために、図8では様々なバスがバスシステム829として示される。図8に示される送信用電子デバイス802は、具体的なコンポーネントのリスティングではなく、機能ブロックダイアグラムである。
【0133】
図9は、受信用電子デバイス902に利用される様々なコンポーネントを示すブロックダイアグラムである。本明細書に記載される電子デバイス102、602、702の1つ以上は、図9に示される受信用電子デバイス902に従って実装される。
【0134】
受信用電子デバイス902は、電子デバイス902の動作を制御するプロセッサ917を含む。プロセッサ917は、CPUとも呼ばれる。メモリ911は、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)の両方または情報を記憶する任意のタイプのデバイスを含み、命令913a(例えば、実行可能な命令)およびデータ915aをプロセッサ917へ供給する。メモリ911の一部分は、不揮発性ランダムアクセスメモリ(NVRAM)も含んでよい。メモリ911は、プロセッサ917と電子通信を行う。
【0135】
命令913bおよびデータ915bは、プロセッサ917にも存在する。プロセッサ917に読み込まれた命令913bおよび/またはデータ915bは、プロセッサ917による実行または処理のために読み込まれた、メモリ911からの命令913aおよび/またはデータ915aも含んでよい。命令913bは、本明細書に開示されるシステムおよび方法を実装するためにプロセッサ917によって実行される。例えば、命令913bは、上記の方法200、300、400、500の1つ以上を行うために実行可能である。
【0136】
受信用電子デバイス902は、他の電子デバイス(例えば、送信用電子デバイス)と通信するための1つ以上の通信インターフェース919を含む。通信インターフェース919は、有線通信技術、無線通信技術、または両方に基づいてもよい。通信インターフェース919の例は、シリアルポート、パラレルポート、ユニバーサルシリアルバス(USB)、イーサネットアダプタ、IEEE1394バスインターフェース、小型計算機システムインターフェース(SCSI)バスインターフェース、赤外線(IR)通信ポート、Bluetooth無線通信アダプタ、第3世代パートナーシップ・プロジェクト(3GPP)仕様による無線トランシーバなどを含む。
【0137】
受信用電子デバイス902は、1つ以上の出力デバイス923および1つ以上の入力デバイス921を含む。出力デバイス923の例は、スピーカ、プリンタなどを含む。電子デバイス902に含まれる出力デバイスの1つのタイプは、表示デバイス925である。本明細書に開示される構成とともに用いられる表示デバイス925は、任意の適切な画像投影技術、例えば、陰極線管(CRT)、液晶表示(LCD)、発光ダイオード(LED)、気体プラズマ、エレクトロルミネセンスなどを利用する。表示コントローラ927は、メモリ911に記憶されたデータを、ディスプレイ925上に示されるテキスト、グラフィックス、および/または動画へ(適宜)変換するために提供される。入力デバイス921の例は、キーボード、マウス、マイクロフォン、リモートコントロールデバイス、ボタン、ジョイスティック、トラックボール、タッチパッド、タッチスクリーン、ライトペンなどを含む。
【0138】
受信用電子デバイス902の様々なコンポーネントは、データバスに加えて、電力バス、制御信号バスおよびステータス信号バスを含むバスシステム929によって結合される。しかしながら、明確にするために、図9では様々なバスがバスシステム929として示される。図9に示される受信用電子デバイス902は、具体的なコンポーネントのリスティングではなく、機能ブロックダイアグラムである。
【0139】
図10は、メッセージを送るためのシステムおよび方法が実装された電子デバイス1002の一構成を示すブロックダイアグラムである。電子デバイス1002は、符号化手段1031および送信手段1033を含む。符号化手段1031および送信手段1033は、上の図1図2図3図6および図8の1つ以上に関連して記載された機能の1つ以上を行うように構成される。例えば、符号化手段1031および送信手段1033は、ビットストリーム1014を生成する。上の図8は、図10の具体的な装置構造の一例を示す。図1図2図3図6および図8の機能の1つ以上を実現するために、他の様々な構造が実装されてもよい。例えば、DSPがソフトウェアによって実現されてもよい。
【0140】
図11は、ビットストリーム1114をバッファリングするためのシステムおよび方法が実装された電子デバイス1102の一構成を示すブロックダイアグラムである。電子デバイス1102は、受信手段1135および復号手段1137を含む。受信手段1135および復号手段1137は、上の図1図4図5図7および図9の1つ以上に関連して記載された機能の1つ以上を行うように構成される。例えば、受信手段1135および復号手段1137は、ビットストリーム1114を受信する。上の図9は、図11の具体的な装置構造の一例を示す。図1図4図5図7および図9の1つ以上の機能を実現するために、他の様々な構造が実装されてもよい。例えば、DSPがソフトウェアによって実現されてもよい。
【0141】
用語「コンピュータ可読媒体」は、コンピュータまたはプロセッサによってアクセスできる任意の利用可能な媒体を指す。用語「コンピュータ可読媒体」は、本明細書では、非一時的かつ有形のコンピュータおよび/またはプロセッサ可読媒体を示す。限定ではなく、例として、コンピュータ可読またはプロセッサ可読媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスク記憶、磁気ディスク記憶もしくは他の磁気記憶デバイス、あるいは命令の形態の所望のプログラムコードまたはデータ構造を運ぶか、または記憶するために使用できて、コンピュータまたはプロセッサによってアクセスできる任意の他の媒体を備える。ディスク(disk)およびディスク(disc)は、本明細書では、コンパクトディスク(CD:compact disc)、レーザディスク(laser disc)、光ディスク(optical disc)、デジタルバーサタイルディスク(DVD:digital versatile disc)、フロッピーディスク(floppy disk)およびBlu−ray(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、磁気的にデータを再生し、一方でディスク(disc)は、レーザを用いて光学的にデータを再生する。
【0142】
留意すべきは、本明細書に記載される方法の1つ以上がハードウェアで実装されてもよく、および/またはハードウェアを用いて行われてもよいことである。例えば、本明細書に記載される方法または手法の1つ以上は、チップセット、ASIC、大規模集積回路(LSI)または集積回路などで実装されてもよく、および/またはそれらを用いて実現されてもよい。
【0143】
本明細書に開示されるそれぞれの方法は、記載される方法を達成するための1つ以上のステップまたは動作を備える。本方法のステップおよび/または動作は、特許請求の範囲から逸脱することなく、相互に交換されてもよく、および/または単一のステップに組み合わされてもよい。言い換えれば、記載される方法の適切な操作のためにステップまたは動作の特定の順序が必要とされない限り、特定のステップおよび/または動作の順序および/または使用は、特許請求の範囲から逸脱することなく、修正されてもよい。
【0144】
理解すべきは、特許請求の範囲が先に示された通りの構成および構成要素には限定されないことである。特許請求の範囲から逸脱することなく、本明細書に記載される配置、操作、ならびにシステム、方法、および装置の詳細に様々な修正、変更および変形がなされてもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11