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

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

▶ クゥアルコム・インコーポレイテッドの特許一覧

特許6800747改善されたRTPペイロードフォーマット設計
<>
  • 特許6800747-改善されたRTPペイロードフォーマット設計 図000003
  • 特許6800747-改善されたRTPペイロードフォーマット設計 図000004
  • 特許6800747-改善されたRTPペイロードフォーマット設計 図000005
  • 特許6800747-改善されたRTPペイロードフォーマット設計 図000006
  • 特許6800747-改善されたRTPペイロードフォーマット設計 図000007
  • 特許6800747-改善されたRTPペイロードフォーマット設計 図000008
  • 特許6800747-改善されたRTPペイロードフォーマット設計 図000009
  • 特許6800747-改善されたRTPペイロードフォーマット設計 図000010
  • 特許6800747-改善されたRTPペイロードフォーマット設計 図000011
  • 特許6800747-改善されたRTPペイロードフォーマット設計 図000012
  • 特許6800747-改善されたRTPペイロードフォーマット設計 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6800747
(24)【登録日】2020年11月27日
(45)【発行日】2020年12月16日
(54)【発明の名称】改善されたRTPペイロードフォーマット設計
(51)【国際特許分類】
   H04N 21/438 20110101AFI20201207BHJP
   H04L 12/70 20130101ALI20201207BHJP
   H04L 12/953 20130101ALI20201207BHJP
   H04N 19/70 20140101ALI20201207BHJP
【FI】
   H04N21/438
   H04L12/70 E
   H04L12/953
   H04N19/70
【請求項の数】14
【全頁数】36
(21)【出願番号】特願2016-505609(P2016-505609)
(86)(22)【出願日】2014年3月28日
(65)【公表番号】特表2016-519887(P2016-519887A)
(43)【公表日】2016年7月7日
(86)【国際出願番号】US2014032235
(87)【国際公開番号】WO2014160971
(87)【国際公開日】20141002
【審査請求日】2017年2月28日
【審判番号】不服2019-7650(P2019-7650/J1)
【審判請求日】2019年6月10日
(31)【優先権主張番号】61/806,705
(32)【優先日】2013年3月29日
(33)【優先権主張国】US
(31)【優先権主張番号】14/228,139
(32)【優先日】2014年3月27日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100112807
【弁理士】
【氏名又は名称】岡田 貴志
(72)【発明者】
【氏名】ワン、イェ−クイ
【合議体】
【審判長】 清水 正一
【審判官】 川崎 優
【審判官】 樫本 剛
(56)【参考文献】
【文献】 T.Schierl,et al.,RTP Payload Format for High Efficiency Video Coding draft−schierl−payload−rtp−h265−01.txt,Audio/Video Payload WG Internet Draft October 22, 2012
【文献】 Y.−K.Wang,et al.,RTP Payload Format for H.264 Video, Internet Engineering Task Force(IETF) Request for Comments:6184, May 2011
【文献】 S.Wenger,et al., RTP Payload Format for Scalable Video Coding, Internet Engineering Task Force(IETF) Request for Comments:6190, May 2011
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98,21/00-858,H04L 12/70-955
(57)【特許請求の範囲】
【請求項1】
ビデオデータを処理する方法であって、
第1のネットワークアブストラクションレイヤ(NAL)ユニットを備える第1のリアルタイムトランスポートプロトコル(RTP)パケットを受信することと、前記第1のRTPパケットは、RTPヘッダとペイロードとを含み、前記ペイロードは、RTPパケットの相対的重要度を示すTID値を備えるペイロードヘッダを含み、より重要なNALユニットは、より重要でないNALユニットよりも、送信ロスに対してより良く保護され、 前記RTPパケットに関する送信モードを示す送信モードパラメータを受信することと、
第1のパラメータが第1の値に等しいかどうかを決定することと、ここにおいて、前記第1のパラメータは、受信順序においてパケット化解除バッファ内の前記第1のNALユニットに先行し、復号順序において前記第1のNALユニットに後続する、NALユニットの最大数を指定し、
前記第1のRTPパケットに関する前記送信モードがシングルセッション送信モードであることおよび前記第1のパラメータが前記第1の値に等しいことに応答して、前記第1のNALユニットの送信順序に基づいて前記第1のNALユニットに関する復号順序番号を決定することと、
を備える、方法。
【請求項2】
前記復号順序番号が、送信順序番号に等しい、請求項1に記載の方法。
【請求項3】
第2のNALユニットを備える第2のRTPパケットを受信することと、
前記第2のNALユニットに関する復号順序番号が前記第1のNALユニットに関する前記復号順序番号に等しいことに応答して、前記第1のNALユニットを復号する前に前記第2のNALユニットを復号することと、
をさらに備える、請求項1に記載の方法。
【請求項4】
前記RTPパケットが、単一のNALユニットパケットを備える、請求項1に記載の方法。
【請求項5】
ビデオデータを処理する方法であって、
第1のネットワークアブストラクションレイヤ(NAL)ユニットを備える第1のリアルタイムトランスポートプロトコル(RTP)パケットを生成することと、前記第1のRTPパケットは、RTPヘッダとペイロードとを含み、前記ペイロードは、RTPパケットの相対的重要度を示すTID値を備えるペイロードヘッダを含み、より重要なNALユニットは、より重要でないNALユニットよりも、送信ロスに対してより良く保護され、
前記RTPパケットに関する送信モードを示す送信モードパラメータを送信することと、
第1のパラメータが第1の値に等しいかどうかを決定することと、ここにおいて、前記第1のパラメータは、受信順序においてパケット化解除バッファ内の前記第1のNALユニットに先行し、復号順序において前記第1のNALユニットに後続する、NALユニットの最大数を指定し、
前記第1のRTPパケットに関する送信モードがシングルセッション送信モードであることおよび第1のパラメータが第1の値に等しいことに応答して、前記第1のNALユニットに関する復号順序に基づいて前記第1のNALユニットに関する送信順序を設定することと、
を備える、方法。
【請求項6】
前記第1の値が0に等しい、請求項1または請求項に記載の方法。
【請求項7】
前記最大数が32767に等しい、請求項1または請求項に記載の方法。
【請求項8】
前記RTPパケットが、単一のNALユニットパケットを備える、請求項に記載の方法。
【請求項9】
ビデオデータを処理するためのデバイスであって、装置が、
メモリと、
リアルタイムトランスポートプロトコル(RTP)パケットのために構成された受信機と、
第1のネットワークアブストラクションレイヤ(NAL)ユニットを備える第1のリアルタイムトランスポートプロトコル(RTP)パケットを受信することと、前記第1のRTPパケットは、RTPヘッダとペイロードとを含み、前記ペイロードは、RTPパケットの相対的重要度を示すTID値を備えるペイロードヘッダを含み、より重要なNALユニットは、より重要でないNALユニットよりも、送信ロスに対してより良く保護され、
前記RTPパケットに関する送信モードを示す送信モードパラメータを受信することと、
第1のパラメータが第1の値に等しいかどうかを決定することと、ここにおいて、前記第1のパラメータは、受信順序においてパケット化解除バッファ内の前記第1のNALユニットに先行し、復号順序において前記第1のNALユニットに後続する、NALユニットの最大数を指定し、
前記第1のRTPパケットに関する送信モードがシングルセッション送信モードであることおよび第1のパラメータが第1の値に等しいことに応答して、前記第1のNALユニットの送信順序に基づいて前記第1のNALユニットに関する復号順序番号を決定することと、
を行うように構成された1つまたは複数のプロセッサと、
を備える、デバイス。
【請求項10】
前記第1の値が0に等しい、請求項に記載のデバイス。
【請求項11】
前記最大数が32767に等しい、請求項に記載のデバイス。
【請求項12】
前記復号順序番号が、送信順序番号に等しい、請求項に記載のデバイス。
【請求項13】
前記デバイスが、
集積回路と、
マイクロプロセッサと、
ビデオコーダを備えるワイヤレス通信デバイスと、
のうちの少なくとも1つを備える、請求項に記載のデバイス。
【請求項14】
命令を記憶するコンピュータ可読記憶媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、請求項1乃至のいずれか1項に従う方法を行わせる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本出願は、内容全体が参照により本明細書に組み込まれる、2013年3月29日に出願された米国仮出願第61/806,705号の利益を主張する。
【0002】
[0002]本開示は、ビデオデータの処理に関する。
【背景技術】
【0003】
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、携帯電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、Part 10、アドバンストビデオコーディング(AVC:Advanced Video Coding)、現在開発中の高効率ビデオコーディング(HEVC)規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
【0004】
[0004]ビデオ圧縮技法は、ビデオシーケンス内で固有の冗長性を低減または除去するための空間的(イントラピクチャ)予測および/または時間的(インターピクチャ)予測を実行する。ブロックベースのビデオコーディングの場合、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部分)が、ツリーブロック、コーディングユニット(CU)および/またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコーディングされた(I)スライス内のビデオブロックは、同じピクチャにおける隣接ブロック(neighboring blocks)内の参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス内のビデオブロックは、同じピクチャの中の隣接ブロック内の参照サンプルに対する空間的予測、または他の参照ピクチャの中の参照サンプルに対する時間的予測を使用することができる。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【0005】
[0005]空間的予測または時間的予測は、コーディングされるべきブロックの予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコーディングされたブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトル、およびコーディングされたブロックと予測ブロックとの間の差分を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差変換係数をもたらすことができ、その残差変換係数が、次いで量子化され得る。最初に2次元アレイで構成される量子化変換係数は、変換係数の1次元ベクトルを生成するために走査されてよく、なお一層の圧縮を達成するためにエントロピーコーディングが適用されてよい。
【発明の概要】
【0006】
[0006]概して、本開示では、ビデオデータを処理するための技法について説明する。詳細には、本開示では、改善されたリアルタイムトランスポートプロトコル(RTP:real-time transport protocol)ペイロードフォーマット設計について説明する。
【0007】
[0007]一例では、ビデオデータを処理する方法は、第1のネットワークアブストラクションレイヤ(NAL)ユニットを備える第1のリアルタイムトランスポートプロトコル(RTP)パケットを受信することと、第1のRTPパケットに関する送信モードがシングルセッション送信モードであることおよび第1のパラメータが第1の値に等しいことに応答して、第1のNALユニットの送信順序に基づいて第1のNALユニットに関する復号順序番号を決定することと、を含む。
【0008】
[0008]別の例では、ビデオデータを処理するためのデバイスは、メモリと;リアルタイムトランスポートプロトコル(RTP)パケットのために構成される受信機と;第1のネットワークアブストラクションレイヤ(NAL)ユニットを備える第1のリアルタイムトランスポートプロトコル(RTP)パケットを受信することと、第1のRTPパケットに関する送信モードがシングルセッション送信モードであることおよび第1のパラメータが第1の値に等しいことに応答して、第1のNALユニットの送信順序に基づいて第1のNALユニットに関する復号順序番号を決定することと、を行うように構成された1つまたは複数のプロセッサと、含む。
【0009】
[0009]別の例では、コンピュータ可読記憶媒体は命令を記憶し、命令は、1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、第1のネットワークアブストラクションレイヤ(NAL)ユニットを備える第1のリアルタイムトランスポートプロトコル(RTP)パケットを受信することと、第1のRTPパケットに関する送信モードがシングルセッション送信モードであることおよび第1のパラメータが第1の値に等しいことに応答して、第1のNALユニットの送信順序に基づいて第1のNALユニットに関する復号順序番号を決定することと、を行わせる。
【0010】
[0010]別の例では、ビデオデータを処理するための装置は、第1のネットワークアブストラクションレイヤ(NAL)ユニットを備える第1のリアルタイムトランスポートプロトコル(RTP)パケットを受信するための手段と、第1のRTPパケットに関する送信モードがシングルセッション送信モードであることおよび第1のパラメータが第1の値に等しいことに応答して、第1のNALユニットの送信順序に基づいて第1のNALユニットに関する復号順序番号を決定するための手段と、を含む。
【0011】
[0011]別の例では、ビデオデータを処理する方法は、第1のネットワークアブストラクションレイヤ(NAL)ユニットを備える第1のリアルタイムトランスポートプロトコル(RTP)パケットを生成することと、第1のRTPパケットに関する送信モードがシングルセッション送信モードであることおよび第1のパラメータが第1の値に等しいことに応答して、第1のNALユニットに関する復号順序に基づいて第1のNALユニットに関する送信順序を設定することと、を含む。
【0012】
[0012]1つまたは複数の例の詳細が、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、その説明および図面から、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0013】
図1】[0013]本開示で説明される技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
図2】[0014]アグリゲーションパケット構造の視覚表現を示す図。
図3】[0015]本開示で説明される技法を実装し得る例示的なビデオエンコーダを示すブロック図。
図4】[0016]本開示で説明される技法を実装し得る例示的なビデオデコーダを示すブロック図。
図5】[0017]ネットワークの一部を形成するデバイスの例示的なセットを示すブロック図。
図6】[0018]本開示の技法によるNALユニットをパケット化解除する(depacketizing)例示的な方法を示す図。
図7】[0019]本開示の技法によるNALユニットをパケット化する例示的な方法を示す図。
図8】[0020]本開示の技法によるNALユニットをパケット化解除する例示的な方法を示す図。
図9】[0021]本開示の技法によるNALユニットをパケット化する例示的な方法を示す図。
図10】[0022]本開示の技法によるNALユニットをパケット化解除する例示的な方法を示す図。
図11】[0023]本開示の技法によるNALユニットをパケット化する例示的な方法を示す図。
【発明を実施するための形態】
【0014】
[0024]本開示は、符号化されたビデオデータをRTPを介してトランスポートするためのリアルタイムトランスポートプロトコル(RTP)ペイロードフォーマットの改善された設計に関する様々な技法を導入する。RTPは、2013年3月29日現在、http://www.ietf.org/rfc/rfc3550.txtから入手可能であり、その全体が参照により本明細書に組み込まれる、IETF RFC 3550において規定されたトランスポートプロトコルである。IETF RFC 3550によれば、RTPは、インタラクティブなオーディオおよびビデオなど、リアルタイム特性を有するデータに関するエンドツーエンド配信サービスを提供することを意図して開発された。RTPによってトランスポートされるデータは、RTPパケット内にパケット化される。RTPパケットは、RTPヘッダとペイロードデータとを含むデータパケットである。RTPパケットのペイロードデータは、符号化されたビデオデータであり得る。符号化されたビデオデータは、たとえば、1つまたは複数のネットワークアブストラクションレイヤ(NAL)ユニットの形式であり得る。
【0015】
[0025]ビデオコーデックによって符号化されたビデオデータをRTPを介してトランスポートするために、ビデオコーデックに関するRTPペイロードフォーマットが規定される必要があることがある。たとえば、RFC 6184(2013年3月29日現在、http://www.ietf.org/rfc/rfc6184.txtにおいて入手可能)は、H.264ビデオに関するRTPペイロードフォーマットを規定し、RFC 6190(2013年3月29日現在、http://www.ietf.org/rfc/rfc6190.txtにおいて入手可能)は、SVCビデオに関するRTPペイロードフォーマットを規定し、それらの両方は、その全体が参照により本明細書に組み込まれる。HEVCビデオに関するRTPペイロードフォーマットの最近のドラフトは、2013年3月29日現在、http://tools.ietf.org/html/draft−schierl−payload−rtp−h265−01から入手可能であり、その全体が参照により本明細書に組み込まれる。これらの様々な規格は、コーディングされたビデオデータ(たとえば、コーディングされたNALユニット)が、どのようにしてRTPパケット内にパケット化されるかを記載する。
【0016】
[0026]HEVC規格によれば、NALユニットは、後続すべきデータのタイプのインジケーション(indication)を含んでいるシンタックス構造として、および、エミュレーション防止バイトを用いて必要に応じて点在させられた(interspersed)未加工バイトシーケンスペイロード(RBSP:raw byte sequence payload)の形式でそのデータを含んでいるバイトとして定義される。VCL NALユニットは、ビデオコーディングレイヤデータを含む一方で、非VCL NALユニットは、ビデオコーディングレイヤデータについてのいくつかの他のデータを含み得る。HEVCによれば、アクセスユニットは、指定された分類ルールに従って互いに関連し、復号順序で連続しており、およびちょうど1つのコード化ピクチャを含んでいる、NALユニットのセットとして定義される。コード化ピクチャのVCL NALユニットを含むことに加えて、アクセスユニットはまた、非VCL NALユニットを含み得る。アクセスユニットの復号は常に、復号されたピクチャをもたらす。RTPパケットは、NALユニットをトランスポートするために使用されるパケットである。
【0017】
[0027]RFC 6184およびRFC 6190におけるRTPペイロードフォーマットの設計ならびにHEVCに関する既存のドラフトRTPペイロードフォーマットは、いくつかの潜在的な問題または欠点に関連する。一例として、複数のパケット化モードが規定され、多くのタイプのパケットが規定されており、使用すべきパケット化モードおよびパケットタイプを選択することを潜在的に困難にしている。別の例として、1つのアクセスユニットのネットワークアブストラクションレイヤ(NAL)ユニットをインタリーブすることは、RFC 6184およびRFC 6190において定義されるマルチタイムアグリゲーションパケット(MTAP)を使用することによってのみ可能である。しかしながら、唯一のアクセスユニットのNALユニットが1つのRTPパケットにアグリゲートされるとき、それらのすべては、同じタイムスタンプを有する。したがって、単にRTPパケットのRTPタイムスタンプに依存することは十分ではあるが、RFC 6184およびRFC 6190によって要求される追加の時間情報を送ることは、潜在的に帯域幅を浪費する。1つのアクセスユニットのNALユニットをインタリーブすることは、異なるパケット内で1つのピクチャのインタリーブされたコード化スライスのトランスポートを可能にし、したがって、1つのパケットが失われたとき、受信された隣接するスライスが、より良い隠蔽のために利用され得る。
【0018】
[0028]上記で紹介した潜在的な問題および欠点に対処するために、本開示は、改善されたRTPペイロードフォーマット設計のためにいくつかの技法を導入する。一技法によれば、パケット化モードは区別されず(is not differentiated)、それによって、インタリーブされないパケット化とインタリーブされたパケット化の両方が可能であり、シングルセッション送信とマルチセッション送信の両方が可能であり、統合されたパケット化解除プロセスが、パケットペイロード内でシグナリングされる随意の情報から導出され得る、NALユニットの絶対的な復号順序番号の値に基づいて規定される。
【0019】
[0029]別の技法によれば、アグリゲーションパケットの設計は、冗長な時間情報を送ることを要求することなく、1つのアクセスユニットのNALユニットをインタリーブすることを可能にする。本開示で説明するアグリゲーションパケットは、複数の小さいスライスがトランスポートされているとき、ビデオコーディングを改善し得る。本開示の技法に従ってNALユニットをインタリーブすることを可能にすることは、全体的な再構成画像の品質を改善し得る。たとえば、アグリゲーションパケットがインタリーブされたNALユニットを含み、1つのアグリゲーションパケットが失われた場合、インタリーブされたNALユニットは、隣接するビデオブロックの代わりにビデオブロックの分散したグループに対応する可能性がある。エラー隠蔽技法は、一般的に、より小さいエリアのロスに対してより有効であり、したがって、隣接するビデオブロックのグループのロスを隠蔽することに比較して、ビデオブロックの分散したグループのロスを隠蔽することが、より効果的であり得る。
【0020】
[0030]図1は、本開示で説明される技法とともに使用され得る例示的なビデオ処理システム10を示すブロック図である。システム10は、たとえば、本開示で説明されるRTP技法を使用してビデオデータを生成し、処理し、送信することができる。図1に示されるように、システム10は、宛先デバイス14によって後で復号されるべき符号化されたビデオデータを生成するソースデバイス12を含む。符号化ビデオデータは、メディアアウェアネットワーク要素(MANE:media aware network element)29によってソースデバイス12から宛先デバイス14にルーティングされ(be routed)得る。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。
【0021】
[0031]システム10は、異なるビデオコーディング規格、プロプライエタリ規格もしくは技法、またはマルチビューコーディングの任意の他の方法に従って動作し得る。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262またはISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、およびそのスケーラブルビデオコーディング(SVC:Scalable Video Coding)拡張とマルチビュービデオコーディング(MVC:Multiview Video Coding)拡張とを含む(ISO/IEC MPEG−4 AVCとしても知られている)ITU−T H.264などを含むビデオ圧縮規格に従って動作し得る。MVC拡張の最近の公的に入手可能な共同ドラフトは、「Advanced video coding for generic audiovisual services」、ITU−TレコメンデーションH.264、2010年3月に記載されている。MVC拡張のさらに最近の公的に入手可能な共同ドラフトは、「Advanced video coding for generic audiovisual services」、ITU−TレコメンデーションH.264、2011年6月に記載されている。MVC拡張の現在の共同ドラフトは、2012年1月時点で承認されている。
【0022】
[0032]さらに、ITU−Tビデオコーディングエキスパーツグループ(VCEG)とISO/IECモーションピクチャエキスパーツグループ(MPEG)とのビデオコーディングにおける共同研究部会(JCT−VC)によって現在開発中の新しいビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)規格がある。HEVC WD9と呼ばれる、HEVCの最近のワーキングドラフト(WD)が、2013年3月15日現在、http://phenix.int−evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC−K1003−v10.zipから入手可能である。説明の目的で、ビデオエンコーダ20およびビデオデコーダ30については、HEVC規格またはH.264規格およびそのような規格の拡張のコンテキストにおいて説明される。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例には、MPEG−2およびITU−T H.263がある。On2 VP6/VP7/VP8と呼ばれるものなど、プロプライエタリなコーディング技法もまた、本明細書で説明される技法のうちの1つまたは複数を実施し得る。本開示の技法は、HEVCおよびその他のものを含むいくつかのビデオコーディング規格に、潜在的に適用可能である。
【0023】
[0033]宛先デバイス14は、リンク16を介して、復号されるべき符号化されたビデオデータを受信し得る。リンク16は、符号化されたビデオデータをソースデバイス12から宛先デバイス14に移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク16は、ソースデバイス12が、符号化されたビデオデータをリアルタイムで宛先デバイス14に直接送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ソースデバイス12から宛先デバイス14への通信を可能にするために有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。リンク16は、ソースデバイス12から宛先デバイス14にビデオデータをルーティングする、MANE 27などの1つまたは複数のMANEを含み得る。
【0024】
[0034]代替的に、符号化されたデータは、出力インターフェース22からストレージデバイス25に出力され得る。同様に、符号化されたデータは、入力インターフェースによってストレージデバイス25からアクセスされ得る。ストレージデバイス25は、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性のメモリ、あるいは符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体のような、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス25は、ソースデバイス12によって生成された符号化されたビデオを保持し得る、ファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイス25から記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス14に送信することができる任意のタイプのサーバであり得る。例示的なファイルサーバとしては、(たとえば、ウェブサイト用の)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含むいずれかの標準データ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバ上に記憶された符号化されたビデオデータにアクセスするのに適している、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含むことができる。ストレージデバイス25からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。ストレージデバイス25から取り出されたビデオデータは、MANE 27などの1つまたは複数のMANEを使用して宛先デバイス14にルーティングされ得る。
【0025】
[0035]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえば、インターネットを介したストリーミングビデオ送信、データ記憶媒体上に記憶するためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の用途のような、種々のマルチメディア用途のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0026】
[0036]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、パケッタイザ21と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、たとえばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、またはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き携帯電話またはビデオ電話を形成し得る。ただし、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。
【0027】
[0037]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信され得る。符号化されたビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのためにストレージデバイス25上に記憶され得る。
【0028】
[0038]宛先デバイス14は、入力インターフェース28と、デパケッタイザ29と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信され、またはストレージデバイス25上に提供された符号化されたビデオデータは、ビデオデータを復号する際にビデオデコーダ30などのビデオデコーダが使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信され、記憶媒体上に記憶される符号化されたビデオデータとともに含まれ得、またはファイルサーバに記憶され得る。
【0029】
[0039]ディスプレイデバイス32は、宛先デバイス14と一体化されること、またはその外部に存在することがある。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含むことができ、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号されたビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【0030】
[0040]図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含んでもよい。適用可能な場合、いくつかの例では、MUX−DEMUXユニットはITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠することができる。
【0031】
[0041]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの様々な適切なエンコーダ回路のいずれかとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれてよく、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されてよい。
【0032】
[0042]JCT−VCは、HEVC規格の開発について作業中である。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づく。HMは、たとえば、ITU−T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを提供するが、HMは33個ものイントラ予測符号化モードを提供し得る。
【0033】
[0043]概して、HMの作業モデルは、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方のブロックを含む一連のツリーブロックまたは最大コーディングユニット(LCU)に分割され得ることを記述する。ツリーブロックは、H.264規格のマクロブロックと同様の目的を有する。スライスは、コーディング順序でいくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分され得る。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割され得る。たとえば、4分木のルートノードとしてのツリーブロックは、4つの子ノードに分割される場合があり、各子ノードは、次に、親ノードとなり、別の4つの子ノードに分割される場合がある。4分木のリーフノードとしての最終的な分割されていない子ノードは、コーディングノード、すなわち、コード化ビデオブロックを備える。コード化ビットストリームに関連付けられるシンタックスデータは、ツリーブロックが分割され得る最大回数を定義し得、コーディングノードの最小サイズをも定義し得る。ツリーブロックの分割は、ルーマドメイン内で発生し得、場合によってはリーフノードのさらなるサブサンプリングを用いて、クロマドメイン内で模倣され得る。
【0034】
[0044]CUは、コーディングノードと、コーディングノードに関連する予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が正方形でなければならない。CUのサイズは、8×8ピクセルから最大64×64以上のピクセルをもつツリーブロックのサイズまでに及び得る。各CUは、1つまたは複数のPUと、1つまたは複数のTUとを含み得る。CUに関連するシンタックスデータは、たとえば、CUを1つまたは複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモード符号化もしくはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかによって異なり得る。PUは、形状が非正方形になるように区分され得る。CUに関連するシンタックスデータは、たとえば、4分木に従って、CUを1つまたは複数のTUに区分することも記述し得る。TUは、形状が正方形または非正方形であり得る。
【0035】
[0045]HEVC規格は、CUごとに異なり得るTUに従った変換を可能にする。TUは、一般に、区分されたLCUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、常にそうであるとは限らない。TUは、通常、PUと同じサイズであるか、またはPUよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは変換ユニット(TU)と呼ばれることがある。TUに関連するピクセル差分値は、変換されて変換係数が生成され得、その変換係数は量子化され得る。
【0036】
[0046]概して、PUは、予測処理に関係するデータを含む。たとえば、PUがイントラモード符号化されるとき、PUは、PUについてのイントラ予測モードを記述するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、PUのための動きベクトルを定義するデータを含み得る。PUのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルについての分解能(たとえば、1/4ピクセル精度もしくは1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトル用の参照ピクチャリスト(たとえば、リスト0、リスト1、もしくはリストC)を記述することができる。
【0037】
[0047]概して、TUは、変換プロセスと量子化プロセスとのために使用される。1つまたは複数のPUを有する所与のCUは、1つまたは複数の変換ユニット(TU)を含む場合もある。予測の後に、ビデオエンコーダ20は、PUに対応する残差値を計算し得る。残差値は、エントロピーコーディングのためのシリアル化変換係数を生成するために、TUを使用して変換係数に変換され、量子化され、走査され得るピクセル差分値を備える。本開示は、一般に、CUのコーディングノードを指すために「ビデオブロック」という用語を使用する。いくつかの特定の場合において、本開示は、コーディングノードとPUとTUとを含む、ツリーブロック、すなわち、LCUまたはCUを指すために「ビデオブロック」という用語を使用する場合もある。
【0038】
[0048]ビデオシーケンスは、通常、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、一般に、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャのうちの1つまたは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、通常、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックはCU内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有し得、指定のコーディング規格に従ってサイズが異なり得る。
【0039】
[0049]一例として、HMは、様々なPUサイズでの予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HMは、2N×2NまたはN×NのPUサイズでのイントラ予測をサポートし、2N×2N、2N×N、N×2N、またはN×Nの対称的なPUサイズでのインター予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための非対称区分をサポートする。非対称区分では、CUの一方向は区分されないが、他の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」、または「Right」という表示とによって示される。したがって、たとえば、「2N×nU」は、上部の2N×0.5NのPUおよび下部の2N×1.5NのPUで水平方向に区分された2N×2NのCUを指す。
【0040】
[0050]本開示では、たとえば16×16ピクセルまたは16かける16ピクセルなど、「N×N」および「NかけるN(N by N)」は、垂直および水平の次元に関して、ビデオブロックのピクセルの次元を示すために交換可能に使用され得る。一般的に、16×16ブロックは、垂直方向に16個のピクセルを有し(y=16)、水平方向に16個のピクセルを有する(x=16)。同様に、N×Nブロックは、一般に、垂直方向にNピクセルを有し、水平方向にNピクセルを有し、Nは非負整数値を表す。ブロック内のピクセルは行と列に構成され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数のピクセルを有する必要はない。たとえば、ブロックはN×Mピクセルを備えてよく、この場合に、Mは必ずしもNに等しいとは限らない。
【0041】
[0051]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングの後に、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、(ピクセル領域とも呼ばれる)空間領域においてピクセルデータを備え得、TUは、変換、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、CU用の変換係数を生成するために、TUを変換することができる。
【0042】
[0052]変換係数を生成するための任意の変換の後に、ビデオエンコーダ20は、変換係数の量子化を実施し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、量子化中にnビット値がmビット値に切り捨てられ(be rounded down)てよく、ただし、nはmよりも大きい。
【0043】
[0053]いくつかの例では、ビデオエンコーダ20は、あらかじめ定義された走査順序を利用して、量子化された変換係数を走査し、エントロピー符号化され得るシリアライズされたベクトルを生成し得る。他の例では、ビデオエンコーダ20は適応走査を実施し得る。量子化された変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
【0044】
[0054]CABACを実行するために、ビデオエンコーダ20は、送信されるべきシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、たとえば、シンボルの隣接値が0ではないかどうかに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルの可変長コードを選択し得る。VLCにおけるコードワードは、比較的短いコードがより確からしいシンボル(more probable symbols)に対応し、より長いコードがより確からしくないシンボル(less probable symbols)に対応するように構成され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づくことができる。
【0045】
[0055]本開示で説明する技法は、独立してまたは共同で適用され得る。これらの技法の態様は、パケッタイザ21およびデパケッタイザ29によって実行され得る。いくつかの例では、パケッタイザ21は、RTP送信者または単に送信者と呼ばれることがあり、一方、デパケッタイザ29は、RTP受信者または単に受信者と呼ばれることがある。これらの技法の態様は、次のように要約される。
− フラグメントユニット(FU)内でトランスポートされるコード化タイルの第1のコーディングツリーユニット(CTU)の第1のアドレスのシグナリング
タイルID(または2つのタイルID値の差分(delta))は、FUペイロードの前にFU構造内でシグナリングされる。このシグナリングは、タイル内の第1のCTUのタイル走査におけるCTUアドレス(ならびにラスタ走査(raster scan)におけるアドレス)を指定するかまたは示す。
代替として、FU内でトランスポートされるコード化タイル内の第1のCTUのタイル走査におけるCTUアドレス(または2つのそのような値の差分)が、FUペイロードの前にFU構造内でシグナリングされる。
代替として、FU内でトランスポートされるコード化タイル内の第1のCTUのラスタ走査におけるCTUアドレス(または2つのそのような値の差分)が、FUペイロードの前にFU構造内でシグナリングされる。
代替として、シグナリング(上記の形式のいずれかにおいて)は、シグナリングの存在を示すインジケーション(たとえば、メディアタイプパラメータ)が存在するときだけ存在する。そのようなメディアタイプパラメータは、単に、上記のシグナリングの存在を示し得るか、またはタイルの使用を示し得る(およびタイルが使用されないことを示される場合は、上記のシグナリングは存在しない)。
− タイルが複数のFU内でトランスポートされるとき、
フラグメント化されたタイルの開始を示すためにFUヘッダ内のSフラグを使用/追加する。
・これを用いて、タイル内の第1のCTUのCTUアドレスを導出するための上記の任意のシグナリングの存在は、Sフラグが0に等しいことが(さらに)要件とされる。
フラグメント化されたタイルの終了を示すためにFUヘッダ内のEフラグを使用/追加する。
− パケット内のすべてのNALユニットが従属スライスセグメントを含むかどうかを示すために、RTPパケットペイロードヘッダ内のフラグを使用/追加する。
代替として、RTPパケットヘッダ内の2ビットが、以下のうちの1つを示す。
・パケット内のすべてのNALユニットは、従属スライスセグメントである。
・パケット内のNALユニットのうちの少なくとも1つは従属スライスセグメントであり、そのセグメントに対して対応する独立スライスセグメントは、同じパケット内にない。
・パケット内のNALユニットのうちの少なくとも1つは、独立スライスセグメントである。
・パケット内のすべてのNALユニットは、独立スライスセグメントである。
唯一のNALユニットを含むパケットにおいて、NALユニットが従属スライスセグメントを含むかどうかを示すために、1ビットだけが必要とされる。
代替として、シグナリング(上記の形式のいずれかにおいて)は、シグナリングの存在を示すインジケーション(たとえば、メディアタイプパラメータ)が存在するときだけ存在する。そのようなメディアタイプパラメータは、単に、上記のシグナリングの存在を示し得るか、または従属スライスセグメントの使用を示し得る(および従属スライスセグメントが使用されないことを示される場合は、上記のシグナリングは存在しない)。
【0046】
[0056]ペイロード構造の態様が、次に説明される。これらのペイロード構造が、パケッタイザ21によって生成され得、デパケッタイザ29によって解析され得る。RTPパケットのペイロードの第1の2バイトが、ペイロードヘッダを定義し得る。ペイロードヘッダは、ペイロード構造のタイプに関わりなく、HEVC NALユニットヘッダ(HEVC WD 10のセクション7.3.1.2に規定されるシンタックス要素forbidden_zero_bit、nal_unit_type、nuh_layer_id、およびnuh_temporal_id_plus1に対応する、F、Type、LayerId、およびTID)と同じフィールドから成り得る。
【0047】
[0057]RTPパケットペイロード構造の3つの異なるタイプが指定される。受信機は、ペイロードヘッダ内のTypeフィールドを介してRTPパケットペイロードのタイプを識別し得る。受信機は、ビデオデコーダを含むデバイスのデパケッタイザであってよく、またはMANEもしくは他のネットワークエンティティの一部を形成してもよい。3つの異なるペイロード構造は、以下のとおりである。
シングルNALユニットパケット:ペイロード内にシングルNALユニットを含み、NALユニットのNALユニットヘッダもまた、ペイロードヘッダとして働く。シングルNALユニットパケットは、tx−modeが「MST」に等しいか、またはsprop−depack−buf−nalusが0より大きいときに使用されてはならない。
アグリゲーションパケット(AP):1つのアクセスユニット内に1つまたは複数のNALユニットを含む。以下を参照。
フラグメンテーションユニット(FU):シングルNALユニットのサブセットを含む。以下を参照。
【0048】
[0058]パケッタイザ21およびデパケッタイザ29によってサポートされる送信モードが、次に説明される。本開示の技法は、シングルRTPセッションまたはマルチプルRTPセッションを介するHEVCビットストリームの送信を可能にし得る。概念および作動原理はRFC6190と一致し、類似の、しかし潜在的により簡素な設計に従う(follows)。唯一のRTPセッションがHEVCビットストリームの送信に使用される場合、送信モードは、シングルセッション送信(SST)と呼ばれ、そうでない(2つ以上のRTPセッションがHEVCビットストリームの送信に使用される)場合、送信モードは、マルチセッション送信(MST)と呼ばれる。
【0049】
[0059]SSTは、ポイントツーポイントユニキャストのシナリオに対して使用されるべきであり、一方、MSTは、帯域幅利用効率を改善するために異なる受信機が同じHEVCビットストリームの異なる動作ポイントを要求する、ポイントツーマルチポイントマルチキャストのシナリオに対して使用されるべきである。
【0050】
[0060]tx−modeが「SST」に等しい場合、SSTが使用されなければならない。そうでない(tx−modeが「MST」に等しい)場合、MSTが使用されなければならない。
【0051】
[0061]次に、復号順序番号の態様が、説明される。各NALユニットに対して、変数AbsDonが導出され、NALユニット復号順序を示す復号順序番号を表す。
【0052】
[0062]NALユニットnを、RTPセッション内の送信順序におけるn番目のNALユニットとする。
【0053】
[0063]tx−modeが「SST」に等しく、sprop−depack−buf−nalusが0に等しい場合、NALユニットnに対するAbsDonの値であるAbsDon[n]は、nに等しいとして導出される。
【0054】
[0064]そうでない(tx−modeが「MST」に等しいか、またはsprop−depack−buf−nalusが0より大きい)場合、AbsDon[n]は次のように導出され、ここでDON[n]は、NALユニットnに対する変数DONの値である:
− nが0に等しい(すなわち、NALユニットnは送信順序におけるまさに最初のNALユニットである)場合、AbsDon[0]はDON[0]に等しく設定される。
− そうでない(nは0より大きい)場合、AbsDon[n]の導出に対して下記が適用される:
【数1】
【0055】
[0065]任意の2つのNALユニットmおよびnに対して、下記が適用される:
− AbsDon[m]より大きいAbsDon[n]は、NALユニット復号順序において、NALユニットnがNALユニットmに続くことを示す。
− AbsDon[n]がAbsDon[m]に等しいとき、2つのNALユニットのNALユニット復号順序は、いずれの順序であってもよい。
− AbsDon[m]より小さいAbsDon[n]は、復号順序において、NALユニットnがNALユニットmに先行することを示す。
【0056】
[0066]NALユニット復号順序において2つの連続するNALユニットがAbsDonの異なる値を有するとき、復号順序において第2のNALユニットに対するAbsDonの値は、第1のNALユニットに対するAbsDonの値より大きくなければならず、2つのAbsDonの値の間の絶対差分は、1以上であり得る。
【0057】
[0067]アグリゲーションパケット(AP)が、次に説明される。図2は、アグリゲーションパケット構造の視覚表現を示す。アグリゲーションパケット120は、ペイロードデータ124に後続されるペイロードヘッダ122(PayloadHdrで示される)を含む。ペイロードデータは、1つまたは複数のアグリゲーションユニットを含み、図2においてアグリゲーションパケット0〜Nとして示される。各アグリゲーションユニットは、NALユニットを含み得る。たとえば、アグリゲーションユニット0はNALユニット0を含み、アグリゲーションユニット1はNALユニット1を含み、アグリゲーションユニットNはNALユニットNを含む。図2はまた、Fビットと、TYPEフィールドと、Rフィールド(時々、LayerIdフィールドとも呼ばれる)と、TIDフィールドとを含む、ペイロードヘッダの最初の16ビットを示す。
【0058】
[0068]APは、しばしば数オクテットのサイズにすぎない大半の非VCL NALユニットなど、小さいNALユニットに対するパケット化オーバーヘッドの低減を可能にするために導入された。APは、1つのアクセスユニット内のNALユニットをアグリゲートする。AP内で搬送されるべき各NALユニットは、アグリゲーションユニット内にカプセル化される。1つのAP内にアグリゲートされたNALユニットは、NALユニット復号順序にある。APは、1つまたは複数のアグリゲーションユニットに後続されるペイロードヘッダ(PayloadHdrとして示される)から成ることができる。
【0059】
[0069]ペイロードヘッダ内のフィールドは、次のように設定される。アグリゲートされたNALユニットの各々のFビットがゼロに等しい場合、Fビットは0に等しくなければならず、そうでない場合は、Fビットは1に等しくなければならない。Typeフィールドは、48に等しくなければならない。LayerIdの値は、すべてのアグリゲートされたNALユニットのLayerIdの最小の値に等しくなければならない。TIDの値は、すべてのアグリゲートされたNALユニットのTIDの最小の値でなければならない。
【0060】
[0070]APは、必要なだけ多くのアグリゲーションユニットを搬送し得るが、AP内のデータの総量は、明確にIPパケット内にフィットしなければならず、サイズは、IPレイヤフラグメンテーションを回避するために、得られたIPパケットがMTUサイズより小さいように選択されるべきである。APは、FUを含んではならない。APは、ネストされてはならず(MUST NOT be nested)、すなわち、APは、別のAPを含んではならない。
【0061】
[0071]AP内の第1のアグリゲーションユニットは、(ネットワークバイト順における)16ビットの符号なしのサイズ情報に後続される(ネットワークバイト順における)随意の16ビットDONLフィールドから成り得、符号なしのサイズ情報は、(これらの2オクテットを除くがNALユニットヘッダを含む)NALユニットのサイズをバイトで示し、NALユニットヘッダを含むNALユニット自体に後続される。
【0062】
[0072]DONLフィールドは、存在するとき、アグリゲートされたNALユニットの復号順序番号の16の最下位ビットの値を指定する。
【0063】
[0073]tx−modeが「MST」に等しいか、またはsprop−depack−buf−nalusが0より大きい場合、DONLフィールドは、AP内の第1のアグリゲーションユニットであるアグリゲーションユニット内に存在しなければならず、アグリゲートされたNALユニットに対する変数DONは、DONLフィールドの値に等しいとして導出される。そうでない(tx−modeが「SST」に等しく、sprop−depack−buf−nalusが0に等しい)場合、DONLフィールドは、AP内の第1のアグリゲーションユニットであるアグリゲーションユニット内に存在してはならない。
【0064】
[0074]AP内の第1のアグリゲーションユニットでないアグリゲーションユニットは、(ネットワークバイト順において)16ビットの符号なしのサイズ情報に後続される随意の8ビットDONDフィールドから成り得、符号なしのサイズ情報は、(これらの2オクテットを除くがNALユニットヘッダを含む)NALユニットのサイズをバイトで示し、NALユニットヘッダを含むNALユニット自体に後続される。
【0065】
[0075]存在するとき、DONDフィールド+1は、現在のアグリゲートされたNALユニットの復号順序番号の値と、同じAP内の先行するアグリゲートされたNALユニットの復号順序番号の値との間の差分を指定し得る。NALユニットがRTPパケット内に現れる順序でNALユニットが復号される必要があるペイロード構造とは対照的に、本開示で説明するDONDおよびDONLのパラメータの使用は、指定されるべき特定の復号順序を可能にし得る。
【0066】
[0076]tx−modeが「MST」に等しいか、またはsprop−depack−buf−nalusが0より大きい場合、DONDフィールドは、AP内の第1のアグリゲーションユニットではないアグリゲーションユニット内に存在しなければならず、アグリゲートされたNALユニットに対する変数DONは、同じAP内の先行するアグリゲートされたNALユニットのDON+DONDフィールド+1の値が65536を法とする数)(the DON of the preceding aggregated NAL unit in the same AP plus the value of the DOND field plus 1 modulo 65536)と等しいとして導出される。そうでない(tx−modeが「SST」に等しく、sprop−depack−buf−nalusが0に等しい)場合、DONDフィールドは、AP内の第1のアグリゲーションユニットではないアグリゲーションユニット内に存在してはならない。
【0067】
[0077]代替として、DONDフィールドは、異なる長さ、たとえば4ビットであってよい。別の代替として、2つの第1ではないアグリゲーションユニットは、DOND値をシグナリングするために、各アグリゲーションユニットに対する4ビットで、1つの8ビットフィールドを共有する。さらに別の代替として、DONDフィールドの長さは、メディアタイプパラメータによってシグナリングされ、そのパラメータの値が0に等しいことは、DONDフィールドが存在しないことを意味する。
【0068】
[0078]フラグメンテーションユニット(FU)が、次に説明される。フラグメンテーションユニット(FU)は、シングルNALユニットを複数のRTPパケットにフラグメント化することを可能にするために導入される。NALユニットのフラグメントは、そのNALユニットの連続するオクテットの整数から成ることができる。同じNALユニットのフラグメントは、昇順のRTP連続番号で連続した順番で送られなければならない(同じRTPパケットストリーム内の他のRTPパケットが、最初のフラグメントと最後のフラグメントとの間で送られることはない)。
【0069】
[0079]NALユニットがフラグメント化され、FU内で伝達されるとき、そのNALユニットは、フラグメント化されたNALユニットと呼ばれる。APは、フラグメント化されてはならない。FUは、ネストされてはならず、すなわち、FUは、別のFUを含んではならない。
【0070】
[0080]FUを搬送するRTPパケットのRTPタイムスタンプは、フラグメント化されたNALユニットのNALU−時間に設定される。
【0071】
[0081]FUは、ペイロードヘッダ(PayloadHdrとして示される)と、1オクテットのFUヘッダと、随意の16ビットDONLフィールド(ネットワークバイト順における)と、FUペイロードとから成り得る。
【0072】
[0082]ペイロードヘッダ内のフィールドは、次のように設定される。Typeフィールドは、49に等しくなければならない。フィールドF、LayerId、およびTIDは、それぞれ、フラグメント化されたNALユニットのフィールドF、LayerId、およびTIDに等しくなければならない。
【0073】
[0083]FUヘッダは、Sビット、Eビット、および6ビットTypeフィールドから成ることができる。
この例では、FUヘッダフィールドのセマンティクスは以下のとおりである:
S:1ビット
1に設定されるとき、Sビットは、フラグメント化されたNALユニットの開始を示し、すなわち、FUペイロードの第1のバイトは、同じく、フラグメント化されたNALユニットのペイロードの第1のバイトである。FUペイロードがフラグメント化されたNALユニットペイロードの開始でないとき、Sビットはゼロに設定されなければならない。
E:1ビット
1に設定されるとき、Eビットは、フラグメント化されたNALユニットの終了を示し、すなわち、ペイロードの最後のバイトは、同じく、フラグメント化されたNALユニットの最後のバイトである。FUペイロードがフラグメント化されたNALユニットの最後のフラグメントでないとき、Eビットはゼロに設定されなければならない。
Type:6ビット
フィールドTypeは、フラグメント化されたNALユニットのフィールドTypeに等しくなければならない。
【0074】
[0084]DONLフィールドは、存在するとき、フラグメント化されたNALユニットの復号順序番号の16の最下位ビットの値を指定することができる。
【0075】
[0085]tx−modeが「MST」に等しいかまたはsprop−depack−buf−nalusが0より大きく、Sビットが1に等しい場合、DONLフィールドは、FU内に存在しなければならず、フラグメント化されたNALユニットに対する変数DONは、DONLフィールドの値に等しいとして導出される。そうでない(tx−modeが「SST」に等しく、sprop−depack−buf−nalusが0に等しいか、またはSビットが0に等しい)場合、DONLフィールドは、FU内に存在してはならない。
【0076】
[0086]フラグメント化されないNALユニットは、1つのFU内で送信されてはならず、すなわち、開始ビットおよび終了ビットは、いずれも、同じFUヘッダ内で1に設定されてはならない。
【0077】
[0087]1に等しいSビットを有するFUで開始し、1に等しいEビットを有するFUで終了する連続したFUのFUペイロードが順次連結される場合、フラグメント化されたNALユニットのペイロードが再構成され得るように、FUペイロードは、フラグメント化されたNALユニットのペイロードのフラグメントから成ることができる。フラグメント化されたNALユニットのNALユニットヘッダは、それ自体、FUペイロードに含まれるのではなく、フラグメント化されたNALユニットのNALユニットヘッダの情報が、FUのFUペイロードヘッダのF、LayerId、およびTIDのフィールド、ならびにFUのFUヘッダのTypeフィールドの中に伝達される。FUペイロードは、任意の数のオクテットを有し得、および空であり得る。
【0078】
[0088]FUが失われた場合、受信機内のデコーダが、不完全なNALユニットを適切に取り扱うように準備されていることが知られていない場合、受信機は、同じフラグメント化されたNALユニットに対応する、送信順におけるすべての後続のフラグメンテーションユニットを破棄すべきである。
【0079】
[0089]エンドポイントまたはMANEにおける受信機は、NALユニットのフラグメントnが受信されない場合でも、NALユニットの最初のn−1個のフラグメントを1つの(不完全な)NALユニットにアグリゲートすることができる。この場合、NALユニットのforbidden_zero_bitは、シンタックス違反(syntax violation)を示すために1に設定されなければならない。
【0080】
[0090]パケット化のルールが、次に説明される。以下のパケット化ルールが適用される:
− RTPセッションに対してtx−modeが「MST」に等しいか、またはsprop−depack−buf−nalusが0より大きい場合、RTPセッション内で搬送されるNALユニットの送信順序は、NALユニット復号順序と異なってよい。そうでない(RTPセッションに対してtx−modeが「SST」に等しく、sprop−depack−buf−nalusが0に等しい)場合、RTPセッション内で搬送されるNALユニットの送信順序は、NALユニット復号順序と同じでなければならない。
− tx−modeが「MST」に等しいか、またはsprop−depack−buf−nalusが0より大であるとき、シングルNALユニットのパケットは使用され得ない。この場合、APは、シングルNALユニットを1つのRTPパケット内にカプセル化するために使用され得る。
− 小さいNALユニットに対する不要なパケットオーバーヘッドを回避するために、小さいサイズのNALユニットは、1つまたは複数の他のNALユニットとともにアグリゲーションパケット内にカプセル化されるべきである。たとえば、アクセスユニットデリミタ、パラメータセット、またはSEI NALユニットなどの非VCL NALユニットは、一般的に、小さい。
− 非VCL NALユニットは、一般的に、関連するVCL NALユニットが利用可能でなくては無意味であるので、非VCL NALユニットの各々は、その関連するVCL NALユニットとともにアグリゲーションパケット内にカプセル化されるべきである。
− TID値は、RTPパケットの相対的重要度を示す。TIDのより低い値が、より高い重要度を示す。より重要なNALユニットは、より重要でないNALユニットよりも、送信ロスに対してより良く保護され得る。
【0081】
[0091]パケット化解除プロセスが、次に説明される。パケット化解除の一般的な概念は、NALユニットが存在する場合、RTPセッションおよびすべての従属するRTPセッション内のRTPパケットからNALユニットを取り出すこと、および、それらをNALユニット復号順序でデコーダに送ることである。
【0082】
[0092]パケット化解除プロセスは、実装依存(implementation dependent)である。したがって、以下の説明は、適切な実装形態の一例と見なされるべきである。同じ入力に対する出力が、以下で説明するプロセスと同じである限り、他の方式が、同様に使用され得る。出力は、NALユニットのセットおよびそれらの順序が、両方とも等しいことと同じ意味である。説明されるアルゴリズムに対する最適化が可能である。
【0083】
[0093]バッファ管理に対するすべての通常のRTPメカニズムが適用される。詳細には、複製されたまたは古い(outdated)RTPパケット(RTP連続番号およびRTPタイムスタンプによって示される)が削除される。復号に対する正確な時間を決定するために、適切なストリーム間の同期を可能にするために可能性がある意図的な遅延などの要因が考慮されなければならない(be factored in)。
【0084】
[0094]両端値を含む0〜47の範囲内の(in the range of 0 to 47, inclusive)NALユニットタイプ値を有するNALユニットだけが、デコーダに送られ得る。両端値を含む48〜63の範囲内のNALユニットタイプ値を有するNALユニットのような構造(NAL-unit-like structures)は、デコーダに送られてはならない。
【0085】
[0095]受信機は、適用可能であるとき、NALユニットを送信順序からNALユニット復号順序に並べ替えて、MSTにおけるNALユニット復号順序を復元するために、送信遅延ジッタ(transmission delay jitter)を補償するために使用される受信機バッファを含む。このセクションでは、受信機動作が、送信遅延ジッタがないものと仮定して説明される。送信遅延ジッタの補償のためにも使用される実際的な受信機バッファとの相違を生じさせるために、受信機バッファは、この後、このセクションにおいてパケット化解除バッファと呼ばれる。受信機はまた、送信遅延ジッタに備えるべきであり、すなわち、送信遅延ジッタバッファリングおよびパケット化解除バッファリングのために個別のバッファを確保すること、または送信遅延ジッタとパケット化解除の両方のための受信機バッファを使用することのいずれかを行うべきである。その上、受信機は、たとえば、復号および再生を開始する前の追加の初期バッファリングによって、バッファリング動作において送信遅延ジッタを考慮に入れるべきである。
【0086】
[0096]受信機には、初期バッファリングとプレイ中のバッファリングとの2つのバッファリング状態がある。初期バッファリングは、受信が初期化されるときに開始する。初期バッファリングの後、復号および再生が開始され、プレイ中のバッファリングモードが使用される。
【0087】
[0097]受信機は、着呼パケットを受信順に受信機バッファに記憶し、各セッションのRTPパケット内のNALユニットをRTP連続番号順に再多重化バッファに送る。CS−DON値が、再多重化バッファ内の各NALユニットに対して計算され、記憶される。
【0088】
[0098]バッファリング状態とは関係なく、受信機は、着信NALユニットを受信順にパケット化解除バッファに記憶する。シングルNALユニットパケット、AP、およびFU内で搬送されるNALユニットは、個別にパケット化解除バッファに記憶され、AbsDonの値が、各NALユニットに対して計算され、記憶される。
【0089】
[0099]初期バッファリングは、条件A(パケット化解除バッファ内のNALユニットの数が最高のRTPセッションのsprop−depack−buf−nalusの値より大きい)が真になるまで続く。初期バッファリングの後、条件Aが真になるとすぐに、条件Aが偽になるまで、以下の動作が繰返し適用される:AbsDonの最小の値を有するパケット化解除バッファ内のNALユニットが、パケット化解除バッファから削除されてデコーダに送られる。
【0090】
[0100]NALユニットが、それ以上パケット化解除バッファに流入しないとき、パケット化解除バッファに残されたすべてのNALユニットが、そのバッファから削除され、AbsDon値が増加する順番にデコーダに送られる。
【0091】
[0101]メディアタイプ登録(Media type registration)が、次に説明される。HEVCコーデックに対するメディアサブタイプが、IETFツリーから割り振られる。
受信機は、すべての指定されていないパラメータを無視しなければならない。
メディアタイプ名:ビデオ
メディアサブタイプ名:H265
要求されるパラメータ:なし
オプションのパラメータ:
tx−mode:
このパラメータは、送信モードがSSTまたはMSTのいずれであるかを示す。このパラメータは、1つの特定のセッション内のすべてのパケットに適用されるメディアタイプパラメータであり得る。言い換えれば、その値は、そのセッションのすべてのパケットに対して固定され得る。
tx−modeの値は、「MST」または「SST」のいずれかに等しくなければならない。存在しないとき、tx−modeの値は、「SST」に等しくなると推論される。
値が「MST」に等しい場合、MSTが使用されていなければならない。そうでない(値が「SST」に等しい)場合、SSTが使用されていなければならない。
tx−modeの値は、MSTにおけるすべてのRTPセッションに対して「MST」に等しくなければならない。
sprop−depack−buf−nalus:
このパラメータは、受信順序におけるパケット化解除バッファ内のNALユニットに先行し、復号順序におけるNALユニットに続く、NALユニットの最大数を指定し得る。このパラメータは、1つの特定のセッション内のすべてのパケットに適用されるメディアタイプパラメータであり得る。言い換えれば、その値は、そのセッションのすべてのパケットに対して固定され得る。
sprop−depack−buf−nalusの値は、両端値を含む0〜32767の範囲内の整数でなければならない。
存在しないとき、sprop−depack−buf−nalusの値は、0に等しくなると推論される。
RTPセッションが1つまたは複数の他のRTPセッションに依存するとき(この場合には、tx−modeは「MST」に等しくなければならない)、sprop−depack−buf−nalusの値は、0より大きくなければならない。
sprop−depack−buf−bytes:
このパラメータは、パケット化解除バッファの要求されるサイズをバイトの単位でシグナリングする。パラメータの値は、セクション6で指定されるパケット化解除バッファの最大バッファ占有(バイトの単位で)以上でなければならない。
sprop−depack−buf−bytesの値は、両端値を含む0〜4294967295の範囲内の整数でなければならない。
depack−buf−cap:
このパラメータは、受信機実装形態の能力をシグナリングし、NALユニット復号順序を再構成するために利用可能な、受信機が有するバイトの単位におけるパケット化解除バッファ空間の量を示す。受信機は、sprop−depack−buf−bytesパラメータの値が、このパラメータ以下である任意のストリームを取り扱うことができる。
存在しないとき、depack−buf−reqの値は0に等しくなると推論される。depack−buf−capの値は、両端値を含む0〜4294967295の範囲内の整数でなければならない。
【0092】
[0102]図3は、本開示で説明する技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングとインターコーディングとを実施することができる。イントラコーディングは、空間的予測に依存し、所与のビデオフレームまたはピクチャ内のビデオの空間的冗長性を低減または除去する。インターコーディングは、時間的予測に依存し、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオの時間的冗長性を低減または除去する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指す場合がある。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指す場合がある。
【0093】
[0103]図3の例では、ビデオエンコーダ20は、区分ユニット35と、予測処理ユニット41と、フィルタユニット63と、ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測処理ユニット46とを含む。ビデオブロックの再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62とを含む。フィルタユニット63は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表すように意図されている。図3では、フィルタユニット63はループ内フィルタであるとして示されているが、他の構成では、フィルタユニット63はポストループフィルタとして実装され得る。図3はまた、ビデオエンコーダ20によって生成された符号化ビデオデータに対して追加の処理を実行し得る後処理デバイス57を示す。ある事例では、本開示の技法は、ビデオエンコーダ20によって実装され得る。しかしながら、他の事例では、本開示の技法は後処理デバイス57によって実装され得る。たとえば、ある事例では、図1のパケッタイザ21に関して説明された技法は、後処理デバイス57のパケッタイザによって実行され得る。
【0094】
[0104]図3に示されているように、ビデオエンコーダ20はビデオデータを受信し、区分ユニット35はデータをビデオブロックに区分する。この区分は、たとえば、LCUおよびCUの4分木構造に従って、スライス、タイル、または他のより大きいユニットへの区分、ならびにビデオブロック区分をも含み得る。ビデオエンコーダ20は、一般に、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(および、場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、誤差結果(たとえばコーディングレートおよびひずみのレベル)に基づいて現在のビデオブロックについて、複数のイントラコーディングモードの1つ、または複数のインターコーディングモードの1つなど、複数の可能なコーディングモードの1つを選択することができる。予測処理ユニット41は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に与え、参照ピクチャとして使用するための符号化ブロックを再構成するために加算器62に与え得る。
【0095】
[0105]予測処理ユニット41内のイントラ予測処理ユニット46は、空間圧縮を行うために、コーディングされるべき現在ブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して現在ビデオブロックのイントラ予測コーディングを実行し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対する現在のビデオブロックのインター予測コーディングを実行する。
【0096】
[0106]動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスをPスライス、BスライスまたはGPBスライスに指定し得る。動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット42によって実施される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。
【0097】
[0107]予測ブロックは、絶対値差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実施し、分数ピクセル精度で動きベクトルを出力し得る。
【0098】
[0108]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスにおけるビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択されてよく、それらの参照ピクチャリストの各々は、ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
【0099】
[0109]動き補償ユニット44によって実行される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実行することを伴い得る。現在ビデオブロックのPUについての動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいて指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマとクロマの両方の差分成分を含み得る。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するための、ビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【0100】
[0110]イントラ予測処理ユニット46は、前述のように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在のブロックをイントラ予測し得る。特に、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用するようにイントラ予測モードを決定することができる。いくつかの例では、イントラ予測処理ユニット46は、たとえば、別個の符号化パス中において、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択することができる。たとえば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードのためのレートひずみ分析を使用してレートひずみ値を計算し、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化されたブロックと、符号化されたブロックを生成するために符号化された元の符号化されていないブロックとの間のひずみ(または誤差)の量、ならびに符号化されたブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を呈するかを決定するために、様々な符号化されたブロックのひずみおよびレートから比率を計算し得る。
【0101】
[0111]いずれかの場合においても、ブロックのためのイントラ予測モードを選択した後に、イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に与え得る。エントロピー符号化ユニット56は、本開示の技法に従って選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、送信ビットストリーム中に、複数のイントラ予測モードインデックステーブルおよび複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および変更されたイントラ予測モードインデックステーブルのインジケーションとを含み得る、構成データを含み得る。
【0102】
[0112]予測処理ユニット41が、インター予測またはイントラ予測のいずれかを介して、現在のビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ20は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
【0103】
[0113]変換処理ユニット52は、得られた変換係数を量子化ユニット54に送ることができる。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列の走査を実行することができる。代替的に、エントロピー符号化ユニット56が走査を実行してよい。
【0104】
[0114]量子化の後、エントロピー符号化ユニット56は、量子化された変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングまたは別のエントロピー符号化方法または技法を実行し得る。エントロピー符号化ユニット56によるエントロピー符号化の後に、符号化ビットストリームは、ビデオデコーダ30に送信され得るか、またはビデオデコーダ30が後で送信するかもしくは取り出すためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コード化されている現在のビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【0105】
[0115]逆量子化ユニット58および逆変換処理ユニット60は、参照ピクチャの参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット44は、残差ブロックを参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構成された残差ブロックに1つまたは複数の補間フィルタを適用し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、ピクチャメモリ64に記憶するための参照ブロックを生成する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
【0106】
[0116]図4は、本開示で説明する技法を実装し得る例示的なネットワークエンティティ79とビデオデコーダ30とを示すブロック図である。図4の例では、ビデオデコーダ30は、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換処理ユニット88と、加算器90と、フィルタユニット91と、ピクチャメモリ92とを含む。予測処理ユニット81は、動き補償ユニット82と、イントラ予測処理ユニット84とを含む。ビデオデコーダ30は、いくつかの例では、図3のビデオエンコーダ20に関して説明された符号化パスとは概して逆の復号パスを実行し得る。
【0107】
[0117]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化されたビデオスライスのビデオブロックと、関連付けられるシンタックス要素とを表す符号化されたビデオビットストリームを受信する。ビデオデコーダ30は、ネットワークエンティティ79から符号化されたビデオビットストリームを受信することができる。ネットワークエンティティ79は、たとえば、上記で説明した技法のうちの1つまたは複数を実装するように構成されたサーバ、MANE、ビデオエディタ/スプライサ(splicer)、または他のそのようなデバイスであり得る。ネットワークエンティティ79は、ビデオエンコーダ20を含むことも、含まないこともある。上記で説明したように、本開示で説明する技法のいくつかは、ネットワークエンティティ79が符号化ビデオビットストリームをビデオデコーダ30に送信するより前にネットワークエンティティ79によって実装され得る。いくつかのビデオ復号システムでは、ネットワークエンティティ79およびビデオデコーダ30は別個のデバイスの一部であり得るが、他の事例では、ネットワークエンティティ79に関して説明する機能は、ビデオデコーダ30を備える同じデバイスによって実行され得る。図1は、宛先デバイス14の一部としてデパケッタイザ29を示すが、デパケッタイザ29に関して上記で説明した技法は、同じく、ネットワークエンティティ79内のデパケッタイザによって実行されてもよい。
【0108】
[0118]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化されたビデオスライスのビデオブロックと、関連付けられるシンタックス要素とを表す符号化されたビデオビットストリームを受信する。ビデオブロックは、たとえば、図1のMANE 27または図4のネットワークエンティティ79など、1つまたは複数のMANEを介してビデオエンコーダ20からビデオデコーダ30にルーティングされ得る。ビデオデコーダ30のエントロピー復号ユニット80は、量子化された係数と、動きベクトルと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルと他のシンタックス要素とを予測処理ユニット81に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受信し得る。
【0109】
[0119]ビデオスライスがイントラコード化(I)スライスとしてコーディングされたとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(すなわち、B、PまたはGPB)スライスとしてコーディングされたとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストの1つの中の参照ピクチャのうち1つから生成され得る。ビデオデコーダ30は、ピクチャメモリ92に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構成し得る。
【0110】
[0120]動き補償ユニット82は、動きベクトルと他のシンタックス要素とを解析することによって現在のビデオスライスのビデオブロックについての予測情報を決定し、復号されている現在のビデオブロックのための予測ブロックを生成するために予測情報を使用する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコーディングビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用する。
【0111】
[0121]動き補償ユニット82はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット82は、参照ブロックのサブ整数ピクセルのための補間された値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、その補間フィルタを使用して予測ブロックを生成し得る。
【0112】
[0122]逆量子化ユニット86は、ビットストリーム中で与えられ、エントロピー復号ユニット80によって復号された量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ20によって計算される量子化パラメータの使用を含み得る。逆変換処理ユニット88は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【0113】
[0123]動き補償ユニット82が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号されたビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数の構成要素を表す。所望される場合、ピクセル遷移を平滑化するために、または場合によってはビデオ品質を改善するために、(コーディングループ内またはコーディングループ後のいずれかの)ループフィルタも使用され得る。フィルタユニット91は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなど、1つまたは複数のループフィルタを表すように意図されている。図4では、フィルタユニット91はループ内フィルタであるとして示されているが、他の構成では、フィルタユニット91はポストループフィルタとして実装され得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶するピクチャメモリ92に記憶される。ピクチャメモリ92はまた、図1のディスプレイデバイス32などのディスプレイデバイス上での後の提示のために、復号されたビデオを記憶する。
【0114】
[0124]図5は、ネットワーク150の一部を形成するデバイスの例示的なセットを示すブロック図である。この例では、ネットワーク150は、ルーティングデバイス154A、154B(ルーティングデバイス154)と、トランスコーディングデバイス156とを含む。ルーティングデバイス154およびトランスコーディングデバイス156は、ネットワーク150の一部を形成し得る少数のデバイスを表すことが意図される。スイッチ、ハブ、ゲートウェイ、ファイアウォール、ブリッジ、および他のそのようなデバイスなどの他のネットワークデバイスも、ネットワーク150内に含まれ得る。その上、サーバデバイス152とクライアントデバイス158との間にネットワーク経路に沿って追加のネットワークデバイスが提供され得る。いくつかの例では、サーバデバイス152はソースデバイス12(図1)に対応し得る一方、クライアントデバイス158は宛先デバイス14(図1)に対応し得る。ルーティングデバイス154は、たとえば、メディアデータをルーティングするように構成されたMANEであり得る。
【0115】
[0125]概して、ルーティングデバイス154は、ネットワーク150を介してネットワークデータを交換するための1つまたは複数のルーティングプロトコルを実装する。概して、ルーティングデバイス154は、ネットワーク150を介したルートを発見するためにルーティングプロトコルを実行する。そのようなルーティングプロトコルを実行することによって、ルーティングデバイス154Bは、それ自体からルーティングデバイス154Aを介してサーバデバイス152へ至るネットワークルートを発見し得る。図5の様々なデバイスは、本開示の技法を実装し得、本開示の技法に従ってRTPデータを処理するように構成され得るデバイスの例を表す。
【0116】
[0126]図6は、本開示の技法によるビデオデータを処理する方法の一例を示す。図6の技法は、たとえば、宛先デバイス14などのデバイスによって実行され得、より詳細には、宛先デバイス14のデパケッタイザ29によって実行され得る。デパケッタイザ29は、RTPプロトコルに従って第1のアグリゲーションパケットを受信する(160)。第1のアグリゲーションパケットは、たとえば、ペイロードヘッダと1つまたは複数のアグリゲーションユニットとを含み得る。デパケッタイザ29は、第1のパラメータに関する値を決定するために第1のアグリゲーションユニットを解析し得る(162)。第1のパラメータは、たとえば、上記で説明したDONLパラメータに対応し得、復号順序番号を指定し得る。デパケッタイザ29は、第2のパラメータに関する値を決定するために第2のアグリゲーションユニットを解析し得る(164)。第2のアグリゲーションユニットは、第1のアグリゲーションユニットに後続し得、第2のパラメータは、たとえば、上記で説明したDONDパラメータに対応し得る。第1のパラメータおよび第2のパラメータに基づいて、デパケッタイザ29は、第2のアグリゲーションユニットに対する復号順序を決定する。
【0117】
[0127]図7は、本開示の技法によるビデオデータを処理する方法の一例を示す。図7の技法は、たとえば、ソースデバイス12などのデバイスによって実行され得、より詳細には、ソースデバイス12のパケッタイザ21によって実行され得る。パケッタイザ21は、1つまたは複数のNALユニットを受信し、RTPプロトコルに従って1つまたは複数のNALユニットを第1のアグリゲーションパケット内にパケット化する(170)。第1のアグリゲーションパケットは、たとえば、ペイロードヘッダと1つまたは複数のアグリゲーションユニットとを含み得る。パケッタイザ21は、第1のアグリゲーションユニット内に含まれるNALユニットに関する復号順序番号に基づいて、第1のアグリゲーションユニットの第1のパラメータに関する値を設定する(172)。第1のパラメータは、たとえば、上記で説明したDONLパラメータに対応し得、復号順序番号を指定し得る。第1のパラメータは、たとえば、復号順序番号の最下位ビットの数の値を指定し得る。第2のアグリゲーションユニット内に含まれるNALユニットに関する復号順序と第1のアグリゲーションユニット内に含まれるNALユニットに関する復号順序番号との間の差分に基づいて、パケッタイザ21は、第2のアグリゲーションユニットの第2のパラメータに関する値を設定し得る(174)。第2のアグリゲーションユニットは、第1のアグリゲーションユニットに後続し得、第2のパラメータは、たとえば、上記で説明したDONDパラメータに対応し得る。第2のパラメータは、たとえば、第1のパラメータと復号順序番号との間の差分を識別し得る。
【0118】
[0128]図8は、本開示の技法によるビデオデータを処理する方法の一例を示す。図8の技法は、たとえば、宛先デバイス14などのデバイスによって実行され得、より詳細には、宛先デバイス14のデパケッタイザ29によって実行され得る。デパケッタイザ29は、フラグメント化されたNALユニットのサブセットを含む第1のフラグメンテーションユニットを受信する(180)。デパケッタイザ29は、第1のフラグメンテーションユニットがフラグメント化されたNALユニットの開始を含むかどうかを決定するために、フラグメンテーションユニットの開始ビットを解析する(182)。開始ビットは、たとえば、上記で説明したSビットであり得る。第1のフラグメンテーションユニットがフラグメント化されたNALユニットの開始を含むことと、第1のフラグメンテーションユニットに関する送信モードがマルチセッション送信モードであることおよび第1のパラメータが第1の値より大きいことの一方または両方とに応答して、デパケッタイザ29は、フラグメント化されたNALユニットに関する復号順序を決定するために第2のパラメータを解析する。第1のパラメータは、たとえば、上記で説明したsprop−depack−buf−nalusパラメータであり得、第1の値はゼロであり得る。第2のパラメータは、たとえば、上記で説明したDONLパラメータであり得る。宛先デバイス14は、決定された復号順序に基づいてフラグメント化されたNALユニットを復号し得る(186)。
【0119】
[0129]図9は、本開示の技法によるビデオデータを処理する方法の一例を示す。図9の技法は、たとえば、ソースデバイス12などのデバイスによって実行され得、より詳細には、ソースデバイス12のパケッタイザ21によって実行され得る。パケッタイザ21は、フラグメント化されたNALユニットのサブセットを備える第1のフラグメンテーションユニットを生成する(190)。第1のフラグメンテーションユニットは、たとえば、フラグメント化されたNALユニットの開始を含む。パケッタイザ21は、第1のフラグメンテーションユニットがフラグメント化されたNALユニットの開始を含むことを示すために、フラグメンテーションユニットの開始ビットを設定する(192)。開始ビットは、たとえば、上記で説明したSビットであり得る。第1のフラグメンテーションユニットがフラグメント化されたNALユニットの開始を含むことと、第1のフラグメンテーションユニットに関する送信モードがマルチセッション送信モードであることおよび第1のパラメータが第1の値より大きいことの一方または両方とに応答して。パケッタイザ21は、フラグメント化されたNALユニットに関する復号順序を示すために、第2のパラメータを設定する。第1のパラメータは、たとえば、上記で説明したsprop−depack−buf−nalusパラメータであり得、第1の値はゼロであり得る。第2のパラメータは、たとえば、上記で説明したDONLパラメータであり得る。パケッタイザ21は、フラグメント化されたNALユニットを送信し得る(196)。第1のパラメータは、たとえば、受信順序におけるパケット化解除バッファ内の第1のNALユニットに先行し、復号順序における第1のNALユニットに後続するNALユニットの最大数を指定し得、第2のパラメータは、復号順序番号の最下位ビットの数の値を指定し得る。
【0120】
[0130]図10は、本開示の技法によるビデオデータを処理する方法の一例を示す。図8の技法は、たとえば、宛先デバイス14などのデバイスによって実行され得、より詳細には、宛先デバイス14のデパケッタイザ29によって実行され得る。デパケッタイザ29は、第1のNAユニットを備える第1のRTPパケットを受信する(200)。第1のRTPパケットに関する送信モードがシングルセッション送信モードであることおよび第1のパラメータが第1の値に等しいことに応答して、デパケッタイザ29は、第1のNALユニットの送信順序に基づいて第1のNALユニットに関する復号順序番号を決定する(202)。第1のパラメータは、たとえば、上記で説明したsprop−depack−buf−nalusパラメータであり得、その値はゼロに等しくてよい。
【0121】
[0131]図11は、本開示の技法によるビデオデータを処理する方法の一例を示す。図9の技法は、たとえば、ソースデバイス12などのデバイスによって実行され得、より詳細には、ソースデバイス12のパケッタイザ21によって実行され得る。第1のNA)ユニットを備えるRT)パケットを生成するパケッタイザ21(210)。第1のRTPパケットに関する送信モードがシングルセッション送信モードであることおよび第1のパラメータが第1の値に等しいことに応答して、第1のNALユニットに関する復号順序に基づいて第1のNALユニットに関する送信順序を設定すること(212)。第1のパラメータは、たとえば、上記で説明したsprop−depack−buf−nalusパラメータであり得る。
【0122】
[0132]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実現され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されてよく、あるいは、コンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を支援する任意の媒体を含む、データ記憶媒体または通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法を実装するための命令、コードおよび/またはデータ構造を取り出すために、1つもしくは複数のコンピュータ、または1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含む場合がある。
【0123】
[0133]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時の媒体を含まないが、代わりに非一時の有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−ray(登録商標)ディスク(disc)を含み、この場合、ディスク(disk)は、通常、データを磁気的に再生し、一方、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【0124】
[0134]命令は、1つもしくは複数のデジタルシグナルプロセッサ(DSP)などの1つもしくは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路もしくはディスクリート論理回路によって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書で説明された技法の実施に適した任意の他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に設けられる場合があるか、または複合コーデックに組み込まれる場合がある。また、本技法は、1つまたは複数の回路または論理要素に完全に実装され得る。
【0125】
[0135]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置の中に実装される場合がある。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、前述のように、適切なソフトウェアおよび/またはファームウェアとともに、様々なユニットがコーデックハードウェアユニットにおいて組み合わせられ得るか、または前述のような1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合体によって設けられ得る。
【0126】
[0136]種々の例が記載された。これらおよび他の例は、以下の特許請求の範囲内にある。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]ビデオデータを処理する方法であって、
第1のネットワークアブストラクションレイヤ(NAL)ユニットを備える第1のリアルタイムトランスポートプロトコル(RTP)パケットを受信することと、
前記第1のRTPパケットに関する送信モードがシングルセッション送信モードであることおよび第1のパラメータが第1の値に等しいことに応答して、前記第1のNALユニットの送信順序に基づいて前記第1のNALユニットに関する復号順序番号を決定することと、
を備える、方法。
[C2]前記第1のパラメータが、受信順序におけるパケット化解除バッファ内の前記第1のNALユニットに先行し、復号順序における前記第1のNALユニットに後続する、NALユニットの最大数を指定する、C1に記載の方法。
[C3]前記第1の値が0に等しい、C2に記載の方法。
[C4]前記最大数が32767に等しい、C2に記載の方法。
[C5]前記復号順序番号が、送信順序番号に等しい、C1に記載の方法。
[C6]第2のNALユニットを備える第2のRTPパケットを受信することと、
前記第2のRTPパケットに関する送信モードがマルチセッション送信モードであることに応答して、および前記第2のNALユニットが送信順序における第1のNALユニットであることに応答して、前記第2のNALユニットが復号順序において最初であることを決定することと、
をさらに備える、C1に記載の方法。
[C7]第2のNALユニットを備える第2のRTPパケットを受信することと、
前記第2のNALユニットに関する復号順序番号が前記第1のNALユニットに関する前記復号順序番号に等しいことに応答して、前記第1のNALユニットを復号する前に前記第2のNALユニットを復号することと、
をさらに備える、C1に記載の方法。
[C8]前記RTPパケットが、単一のNALユニットパケットを備える、C1に記載の方法。
[C9]ビデオデータを処理するためのデバイスであって、装置が、
メモリと、
リアルタイムトランスポートプロトコル(RTP)パケットのために構成された受信機と、
第1のネットワークアブストラクションレイヤ(NAL)ユニットを備える第1のリアルタイムトランスポートプロトコル(RTP)パケットを受信することと、
前記第1のRTPパケットに関する送信モードがシングルセッション送信モードであることおよび第1のパラメータが第1の値に等しいことに応答して、前記第1のNALユニットの送信順序に基づいて前記第1のNALユニットに関する復号順序番号を決定することと、
を行うように構成された1つまたは複数のプロセッサと、
を備える、デバイス。
[C10]前記第1のパラメータが、受信順序におけるパケット化解除バッファ内の前記第1のNALユニットに先行し、復号順序における前記第1のNALユニットに後続する、NALユニットの最大数を指定する、C9に記載のデバイス。
[C11]前記第1の値が0に等しい、C10に記載のデバイス。
[C12]前記最大数が32767に等しい、C10に記載のデバイス。
[C13]前記復号順序番号が、送信順序番号に等しい、C9に記載のデバイス。
[C14]前記1つまたは複数のプロセッサが、
第2のNALユニットを備える第2のRTPパケットを受信することと、
前記第2のRTPパケットに関する送信モードがマルチセッション送信モードであることに応答して、および前記第2のNALユニットが送信順序における第1のNALユニットであることに応答して、前記第2のNALユニットが復号順序において最初であることを決定することと、
を行うようにさらに構成される、C9に記載のデバイス。
[C15]前記1つまたは複数のプロセッサが、
第2のNALユニットを備える第2のRTPパケットを受信することと、
前記第2のNALユニットに関する復号順序番号が前記第1のNALユニットに関する前記復号順序番号に等しいことに応答して、前記第1のNALユニットを復号する前に前記第2のNALユニットを復号することと、
を行うようにさらに構成される、C9に記載のデバイス。
[C16]前記RTPパケットが、単一のNALユニットパケットを備える、C9に記載のデバイス。
[C17]前記デバイスが、
集積回路と、
マイクロプロセッサと、
ビデオコーダを備えるワイヤレス通信デバイスと、
のうちの少なくとも1つを備える、C9に記載のデバイス。
[C18]命令を記憶するコンピュータ可読記憶媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
第1のネットワークアブストラクションレイヤ(NAL)ユニットを備える第1のリアルタイムトランスポートプロトコル(RTP)パケットを受信することと、
前記第1のRTPパケットに関する送信モードがシングルセッション送信モードであることおよび第1のパラメータが第1の値に等しいことに応答して、前記第1のNALユニットの送信順序に基づいて前記第1のNALユニットに関する復号順序番号を決定することと、
を行わせる、コンピュータ可読記憶媒体。
[C19]前記第1のパラメータが、受信順序におけるパケット化解除バッファ内の前記第1のNALユニットに先行し、復号順序における前記第1のNALユニットに後続する、NALユニットの最大数を指定する、C18に記載のコンピュータ可読記憶媒体。
[C20]前記第1の値が0に等しい、C19に記載のコンピュータ可読記憶媒体。
[C21]前記最大数が32767に等しい、C19に記載のコンピュータ可読記憶媒体。
[C22]前記復号順序番号が、送信順序番号に等しい、C18に記載のコンピュータ可読記憶媒体。
[C23]前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
第2のNALユニットを備える第2のRTPパケットを受信することと、
前記第2のRTPパケットに関する送信モードがマルチセッション送信モードであることに応答して、および前記第2のNALユニットが送信順序における第1のNALユニットであることに応答して、前記第2のNALユニットが復号順序において最初であることを決定することと、
を行わせるさらなる命令を記憶する、C18に記載のコンピュータ可読記憶媒体。
[C24]前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
第2のNALユニットを備える第2のRTPパケットを受信することと、
前記第2のNALユニットに関する復号順序番号が前記第1のNALユニットに関する前記復号順序番号に等しいことに応答して、前記第1のNALユニットを復号する前に前記第2のNALユニットを復号することと、
を行わせるさらなる命令を記憶する、C18に記載のコンピュータ可読記憶媒体。
[C25]前記RTPパケットが、単一のNALユニットパケットを備える、C18に記載のコンピュータ可読記憶媒体。
[C26]ビデオデータを処理する方法であって、
第1のネットワークアブストラクションレイヤ(NAL)ユニットを備える第1のリアルタイムトランスポートプロトコル(RTP)パケットを生成することと、
前記第1のRTPパケットに関する送信モードがシングルセッション送信モードであることおよび第1のパラメータが第1の値に等しいことに応答して、前記第1のNALユニットに関する復号順序に基づいて前記第1のNALユニットに関する送信順序を設定することと、
を備える、方法。
[C27]前記第1のパラメータが、受信順序におけるパケット化解除バッファ内の前記第1のNALユニットに先行し、復号順序における前記第1のNALユニットに後続する、NALユニットの最大数を指定する、C26に記載の方法。
[C28]前記第1の値が0に等しい、C27に記載の方法。
[C29]前記最大数が32767に等しい、C27に記載の方法。
[C30]前記RTPパケットが、単一のNALユニットパケットを備える、C26に記載の方法。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11