JP5837217B2 - 複数の符号化ピクチャ区画を含むネットワーク抽象化レイヤユニットによるビデオコーディング - Google Patents

複数の符号化ピクチャ区画を含むネットワーク抽象化レイヤユニットによるビデオコーディング Download PDF

Info

Publication number
JP5837217B2
JP5837217B2 JP2014540122A JP2014540122A JP5837217B2 JP 5837217 B2 JP5837217 B2 JP 5837217B2 JP 2014540122 A JP2014540122 A JP 2014540122A JP 2014540122 A JP2014540122 A JP 2014540122A JP 5837217 B2 JP5837217 B2 JP 5837217B2
Authority
JP
Japan
Prior art keywords
syntax element
offset
coded
syntax elements
nal unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014540122A
Other languages
English (en)
Other versions
JP2014535223A (ja
Inventor
ワン、イェ—クイ
ワン、イェ―クイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2014535223A publication Critical patent/JP2014535223A/ja
Application granted granted Critical
Publication of JP5837217B2 publication Critical patent/JP5837217B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本出願は、2011年11月4日出願の米国仮特許出願第61/555932号および2011年11月8日出願の米国仮特許第61/557259号の優先権を主張し、両出願の全内容が参考として本明細書に援用される。
本開示はビデオコーディング(すなわちビデオデータの符号化および/または復号)に関する。
デジタルテレビ、デジタル衛星放送システム、ワイヤレス放送システム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子書籍リーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレイヤー、ビデオゲームデバイス、ビデゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ電話会議デバイス、ビデオストリーミングデバイスなどを含む様々なデバイスに、デジタルビデオ機能を組み込むことができる。デジタルビデオデバイスは、MPEG−2、MEPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、パート10、アドバンストビデオコーディング(AVC)、現在策定中の高効率ビデオコーディング(HEVC)標準、およびこれらの標準の拡張版によって規定される標準に記載されているものなどのビデオ圧縮技術を実装する。ビデオデバイスは、このようなビデオ圧縮技術を実装することにより、デジタルビデオ情報の送信、受信、符号化、復号および/または格納をより効率的に行うことができる。
ビデオ圧縮技術は、空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を行って、ビデオシーケンスに固有の冗長性を低減または除去する。ブロックベースのビデオコーディングの場合、ビデオスライス(すなわちビデオフレームまたはビデオフレームの一部)をビデオブロックに区画化することができ、ビデオブロックはツリーブロック、コーディングユニット(CU)および/またはコーディングノードとも呼ばれることがある。ピクチャのイントラコード化(I)スライス内のビデオブロックは、同じピクチャ内の隣接ブロック内の参照サンプルを基準にして空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス内のビデオブロックは、同じピクチャ内の隣接ブロック内の参照サンプルを基準にした空間予測、または他の参照ピクチャ内の参照サンプルを基準にした時間予測を使用することができる。ピクチャはフレームとも呼ばれることがあり、参照ピクチャは参照フレームとも呼ばれることがある。
空間または時間予測の結果、コーディングするブロックの予測ブロックが得られる。残差データは、コーディングする元のブロックと予測ブロックとの間の画素差を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの差を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらに圧縮するために、残差データは画素領域から変換領域に変換可能であり、その結果、残差係数が得られ、この残差係数は量子化され得る。量子化された係数は、最初は2次元配列に配列されており、係数の1次元ベクトルを生成するためにスキャンされ、エントロピーコーディングを適用してさらなる圧縮が実現され得る。
一般に、ビデオエンコーダは、エントロピー符号化された第1の構文要素を表す可変長値と、エントロピー符号化された第2の構文要素を表す可変長値と、オフセット構文要素を表す固定長値とを含むビットストリームを生成する。各オフセット構文要素の長さは、第1の構文要素に基づいて判断可能である。一連のオフセット構文要素中のオフセット構文要素の数は、第2の構文要素に基づいて判断可能である。ネットワーク抽象化レイヤ(network abstraction layer:NAL)ユニット内の複数の符号化ピクチャ区画の位置は、オフセット構文要素に基づいて判断可能である。ビデオデコーダがビットストリームを受信し、第1および第2の構文要素をエントロピー復号し、第1および第2の構文要素を使用してオフセット構文要素を構文解析する。ビデオデコーダはオフセット構文要素を使用して、NALユニット内での符号化ピクチャ区画の位置を判断する。ビデオデコーダは、これらの符号化画素区画を復号する。
一態様では、本開示は第1の構文要素と、第2の構文要素と、一連のオフセット構文要素とのエントロピー符号化を備える方法について記載する。各オフセット構文要素の長さは、第1の構文要素に基づいて判断可能である。一連のオフセット構文要素内のオフセット構文要素の数は、第2の構文要素に基づいて判断可能である。NALユニット内の複数の符号化ピクチャ区画の位置は、オフセット構文要素に基づいて判断可能である。この方法は、エントロピー符号化された第1の構文要素を表す可変長値と、エントロピー符号化された第2の構文要素を表す可変長値と、オフセット構文要素を表す固定長値とを含むビットストリームの生成も備える。
他の態様では、本開示は、第1の構文要素と、第2の構文要素と、一連のオフセット構文要素とをエントロピー符号化するように構成された1つまたは複数のプロセッサを備えるコンピューティングデバイスについて記載する。各オフセット構文要素の長さは、第1の構文要素に基づいて判断可能である。一連のオフセット構文要素中のオフセット構文要素の数は、第2の構文要素に基づいて判断可能である。NALユニット内の複数の符号化ピクチャ区画の位置は、オフセット構文要素に基づいて判断可能である。1つまたは複数のプロセッサは、エントロピー符号化された第1の構文要素を表す可変長値と、エントロピー符号化された第2の構文要素を表す可変長値と、オフセット構文要素を表す固定長値とを含むビットストリームを生成するようにも構成される。
他の態様では、本開示は、第1の構文要素と、第2の構文要素と、一連のオフセット構文要素とをエントロピー符号化するための手段を備えるコンピューティングデバイスについて記載する。各オフセット構文要素の長さは、第1の構文要素に基づいて判断可能である。一連のオフセット構文要素内のオフセット構文要素の数は、第2の構文要素に基づいて判断可能である。NALユニット内の複数の符号化ピクチャ区画の位置は、オフセット構文要素に基づいて判断可能である。このコンピューティングデバイスは、エントロピー符号化された第1の構文要素を表す可変長値と、エントロピー符号化された第2の構文要素を表す可変長値と、オフセット構文要素を表す固定長値とを含むビットストリームを生成するための手段も備える。
他の態様では、本開示は、コンピューティングデバイスの1つまたは複数のプロセッサによって実行されると、コンピューティングデバイスを、第1の構文要素と、第2の構文要素と、一連のオフセット構文要素とをエントロピー符号化するように構成する命令を記憶するコンピュータ可読記憶媒体について記載する。各オフセット構文要素の長さは、第1の構文要素に基づいて判断可能である。一連のオフセット構文要素内のオフセット構文要素の数は、第2の構文要素に基づいて判断可能である。NALユニット内の複数の符号化ピクチャ区画の位置は、オフセット構文要素に基づいて判断可能である。さらに、命令は、コンピューティングデバイスを、エントロピー符号化された第1の構文要素を表す可変長値と、エントロピー符号化された第2の構文要素を表す可変長値と、オフセット構文要素を表す固定長値とを含むビットストリームを生成するように構成する。
他の態様では、本開示は、ビデオデータを復号する方法を記載する。この方法は、第1の構文要素を表すエントロピー符号化された可変長値と、第2の構文要素を表すエントロピー符号化された可変長値と、一連のオフセット構文要素とを含むビットストリームを受信することを備える。また、この方法は、第1の構文要素と第2の構文要素とをエントロピー復号することも備える。さらに、この方法は、第1の構文要素に基づいて各オフセット構文要素の長さを判断することを備える。またこの方法は、第2の構文要素に基づいて一連のオフセット構文要素内のオフセット構文要素の数を判断することも備える。さらにこの方法は、各オフセット構文要素の長さと一連のオフセット構文要素内のオフセット構文要素の数とに少なくとも部分的に基づいて、オフセット構文要素を構文解析することを備える。さらにこの方法は、オフセット構文要素に基づいて、NALユニット内の複数の符号化ピクチャ区画の位置を求めることを備える。またこの方法は、符号化ピクチャ区画を復号することを備える。
他の態様では、本開示は、第1の構文要素を表すエントロピー符号化された可変長値と、第2の構文要素を表すエントロピー符号化された可変長値と、一連のオフセット構文要素とを含むビットストリームを受信するように構成された1つまたは複数のプロセッサを備えるコンピューティングデバイスについて記載する。1つまたは複数のプロセッサは、第1の構文要素と第2の構文要素とをエントロピー復号するようにも構成される。1つまたは複数のプロセッサは、第1の構文要素に基づいて各オフセット構文要素の長さを判断するようにも構成される。さらに、1つまたは複数のプロセッサは、第2の構文要素に基づいて、一連のオフセット構文要素内のオフセット構文要素の数を判断するように構成される。1つまたは複数のプロセッサは、各オフセット構文要素の長さと一連のオフセット構文要素内のオフセット構文要素の数とに少なくとも部分的に基づいて、オフセット構文要素を構文解析するようにも構成される。さらに、1つまたは複数のプロセッサは、オフセット構文要素に基づいてNALユニット内の複数の符号化ピクチャ区画の位置を判断するように構成される。1つまたは複数のプロセッサは、符号化ピクチャ区画を復号するようにも構成される。
他の態様では、本開示は、第1の構文要素を表すエントロピー符号化された可変長値と、第2の構文要素を表すエントロピー符号化された可変長値と、一連のオフセット構文要素とを含むビットストリームを受信するための手段を備えるコンピューティングデバイスについて記載する。このコンピューティングデバイスは、第1の構文要素と第2の構文要素とをエントロピー復号するための手段も備える。さらに、このコンピューティングデバイスは、第1の構文要素に基づいて各オフセット構文要素の長さを判断するための手段も備える。コンピューティングデバイスは、第2の構文要素に基づいて一連のオフセット構文要素内のオフセット構文要素の数を判断するための手段も備える。さらに、コンピューティングデバイスは、各オフセット構文要素の長さと一連のオフセット構文要素内のオフセット構文要素の数とに少なくとも部分的に基づいて、オフセット構文要素を構文解析するための手段を備える。さらに、コンピューティングデバイスは、オフセット構文要素に基づいて、NALユニット内の複数の符号化ピクチャ区画の位置を求めるための手段も備える。コンピューティングデバイスは、符号化ピクチャ区画を復号するための手段も備える。
他の態様では、本開示は、コンピューティングデバイスの1つまたは複数のプロセッサによって実行されると、第1の構文要素を表すエントロピー符号化された可変長値と、第2の構文要素を表すエントロピー符号化された可変長値と、一連のオフセット構文要素とを含むビットストリームを受信するようにコンピューティングデバイスを構成する命令を記憶するコンピュータ可読記憶媒体について記載する。さらに命令は、コンピューティングデバイスに第1の構文要素と第2の構文要素とをエントロピー復号させる。また命令は、第1の構文要素に基づいて各オフセット構文要素の長さを判断するようにコンピューティングデバイスを構成する。さらに命令は、コンピューティングデバイスに第2の構文要素に基づいて一連のオフセット構文要素内のオフセット構文要素の数を判断させる。さらに、命令はコンピューティングデバイスに、各オフセット構文要素の長さと一連のオフセット構文要素内のオフセット構文要素の数とに少なくとも部分的に基づいてオフセット構文要素を構文解析させる。また命令は、コンピューティングデバイスに、オフセット構文要素に基づいてNALユニット内の複数の符号化ピクチャ区画の位置を判断させる。さらに命令は、コンピューティングデバイスに符号化ピクチャ区画を復号させる。
本開示の1つまたは複数の例の詳細を添付図面と以下の説明とに記載する。その他の特徴、目的および利点は、以下の説明、図面および特許請求の範囲から明らかになるであろう。
本開示に記載の技術を使用可能な例示のビデオコーディングシステムを示すブロック図。 本開示に記載の技術を実装可能な例示のビデオエンコーダを示すブロック図。 本開示に記載の技術を実装可能な例示のビデオデコーダを示すブロック図。 本開示の1つまたは複数の技術によるビデオエンコーダの例示の動作を示すフローチャート。 本開示の1つまたは複数の技術によるビデオデコーダの例示の動作を示すフローチャート。 本開示の1つまたは複数の技術による、バイト整列スライスヘッダーを有するコード化スライスNALユニットを生成するためのビデオエンコーダの例示の動作を示すフローチャート。 本開示の1つまたは複数の技術による、バイト整列スライスヘッダーを生成するビデオエンコーダの例示の動作を示すフローチャート。 本開示の1つまたは複数の技術による、ビデオデコーダがバイト整列スライスヘッダーを有するコード化スライスNALユニットを受信するビデオデコーダの例示の動作を示すフローチャート。 波面並列処理を示す概念図。 ピクチャを複数のタイルに区画化する場合の例示のコーディング順序を示す概念図。 本開示の1つまたは複数の態様による、NALユニット内の符号化ピクチャ区画のオフセットに関連付けられた構文要素を表す可変長値を含むビットストリームを生成する、ビデオエンコーダの例示の動作を示すフローチャート。 本開示の1つまたは複数の態様による、NALユニット内の符号化ピクチャ区画のオフセットに関連付けられた構文要素を表す可変長値を含むビットストリームによって表されたビデオデータを復号するビデオデコーダの例示の動作を示すフローチャート。
ピクチャは複数のツリーブロックを含む。ツリーブロックは、ピクチャ内の2次元画素ブロックに関連付けられる。ビデオエンコーダがピクチャを複数のピクチャ区画に分割する。例えば、ビデオエンコーダは、ピクチャをエントロピースライス、タイル、または波面並列処理(wavefront parallel processing:WPP)波に分割することができる。言い換えると、本開示では「ピクチャ区画」という用語を使用してエントロピースライス、タイル、またはWPP波を一般的に指す場合がある。ピクチャ区画は、ピクチャのツリーブロックの重なり合わないサブセットに関連付けられる。例えば、ピクチャの各ツリーブロックは、ピクチャ区画のうちの厳密に1つと関連付けられ得る。ビデオエンコーダは、スライスに関連付けられた1つまたは複数の符号化ピクチャ区画を含むコード化スライスネットワーク抽象化レイヤ(NAL)ユニットを生成することができる。
ある例では、ビデオデコーダが、スライスの符号化ピクチャ区画を並列して復号することができる。スライスの符号化ピクチャ区画を並列して復号するために、ビデオエンコーダは、コード化スライスNALユニット内で符号化ピクチャ区画の入口点を通知してもよい。符号化ピクチャ区画の入口点は、符号化ピクチャ区画の第1のビットの位置とすることができる。ビデオデコーダは、符号化ピクチャ区画の入口点を判断することができるため、ビデオデコーダは、並列復号のためにデコーダの異なる処理コアに異なる符号化ピクチャ区画を割り当てることが可能であってもよい。
タイルの入口点を通知するために、ビデオエンコーダは一連のオフセット構文要素を生成することができる。オフセット構文要素のそれぞれは、タイル中のバイト数を示すことができる。さらに、ビデオエンコーダは、2つの追加構文要素を生成してもよい。スライス内のタイルの数は、第1の追加構文要素に基づいて判断され得る。各オフセット構文要素内で使用されるビットの数は、第2の追加構文要素に基づいて判断され得る。既存の実装では、追加構文要素のそれぞれは常に5ビットの符号なし整数を使用するビットストリームで表される。
追加構文要素を常に5ビットの符号なし整数として表すことで、ビットストリーム中のビットの数が無用に増える可能性がある。さらに、追加構文要素を常に5ビットの符号なし整数で表すことにより、オフセット構文要素の数が32個に制限される可能性がある。本開示の1つまたは複数の技術によると、ビデオエンコーダがこれらの追加構文要素をエントロピー符号化することができる(例えば、ue(v)、左ビットが最初の符号なし整数0次指数ゴロムコード化(Exp−Golulmnb)構文要素を使用することができる)。ビデオエンコーダが追加構文要素をエントロピー符号化するため、追加構文要素は可変長ビット列を使用するビットストリームで表される。多くの場合、これらの可変長ビット列は、5ビットより少ない符号なし整数を使用して追加構文要素を表すことができる。さらに、これらの追加構文要素のエントロピーコーディングにより、ビデオエンコーダは32個を超えるオフセット構文要素を通知することができる。
場合によっては、特定のビデオデコーダを、符号化ピクチャ区画を並列して復号するように構成しなくてもよい。すなわち、ビデオデコーダによっては、並列処理に関して異なる機能を有してもよい。そのような場合、符号化ピクチャ区画の入口点を通知するために使用するビットはビデオデコーダにとっては用途がない。
本開示の技術によれば、ビデオエンコーダは、ビデオデータの複数の符号化ピクチャ区画を含むVCL NALユニットを生成することができる。さらに、ビデオエンコーダは、NALユニット内の符号化ピクチャ区画の入口点を示す補助強化情報(Supplemental Enhancement Information:SEI)メッセージを生成してもよい。説明の便宜上、本開示ではコード化スライスNALユニット内の符号化ピクチャ区画の入口点を示すSEIメッセージを「入口点SEIメッセージ」と呼ぶことがある。入口点SEIメッセージは、例えば、SEI型を有する非VCL NALユニットなど、非VCL NALユニットで提供し得る。
特定のビデオデコーダの構成を示すデータを使用してメディアアウェアネットワーク要素(media−aware network element:MANE)を構成してもよい。このようなデータに基づいて、ビデオデコーダが符号化ピクチャ区画を並列して復号するように構成されている場合にのみ、入り口的SEIメッセージをビデオデコーダに送信するようにMANEを構成することができる。このMANEはビデオデコーダが使用するように構成されていないデータは送信しないため、帯域幅を節約することができる。さらに、入口点がSEIメッセージで通知されるため、コード化スライスNALユニットがコード化ピクチャ区画の位置を示すデータを含んでいるか否かにかかわらず、コード化スライスNALユニットで通知する必要がない場合がある。これは、コード化スライスNALユニット内のビット数を削減する効果があり、それによって帯域幅がさらに節約される。
添付図面に、いくつか例を示す。添付図面において参照番号で示す要素は、以下の説明で同様の参照番号で示す要素に対応する。本開示では、序数語(例えば「第1」、「第2」、「第3」など)で始まる名称を有する要素は、それらの要素に特定の順序があることを必ずしも意味しない。そのような序数語は、同じかまたは同様の種類の、異なる要素を指すために使用するに過ぎない。
図1は、本開示の技術を使用することができる例示のビデオコーディングシステム10を示すブロック図である。本明細書では、「ビデオコーダ」という用語はビデオエンコーダとビデオデコーダの両方を総称するために使用する。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化またはビデオ復号の総称である場合がある。
図1に示すようにビデオコーディングシステム10は、送信元デバイス12と送信先デバイス14とを含む。送信元デバイス12は符号化ビデオデータを生成する。したがって、送信元デバイス12をビデオ符号化デバイスまたはビデオ符号化装置と呼ぶこともある。送信先デバイス14は送信元デバイス12によって生成された符号化ビデオデータを復号することができる。したがって、送信先デバイス14をビデオ復号デバイスまたはビデオ復号装置と呼ぶこともある。送信元デバイス12と送信先デバイス14とは、ビデオコーディングデバイスまたはビデオコーディング装置の一例とすることができる。
送信元デバイス12と送信先デバイス14は、デスクトップコンピュータ、モバイルコンピューティングデバイス、ノートブック(例えばラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビ、カメラ、表示デバイス、デジタルメディアプレイヤー、ビデオゲーム機、車載コンピュータなど、様々なデバイスからなり得る。
送信先デバイス14は、チャネル16を介して送信元デバイス12から符号化ビデオデータを受け取ることができる。チャネル16は、送信元デバイス12から送信先デバイス14に符号化ビデオデータを移動することが可能な種類の媒体またはデバイスを備え得る。一例では、チャネル16は、送信デバイス12が符号化ビデオデータを送信先デバイス14にリアルタイムで直接送信することができるようにする、1つまたは複数の通信媒体を備え得る。この例では、送信元デバイス12は、ワイヤレス通信プロトコルなどの通信標準に従って符号化ビデオデータを変調することができ、変調されたビデオデータを送信先デバイス14に送信することができる。1つまたは複数の通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線などの、ワイヤレスおよび/または有線通信媒体を含み得る。1つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク(例えばインターネット)などのパケット式ネットワークの一部を形成することができる。1つまたは複数の通信媒体は、ルータ、交換機、基地局、または、送信元デバイス12から送信先デバイス14への通信を容易にするその他の機器を含み得る。
他の例では、チャネル16は、送信元デバイス12によって生成された符号化ビデオデータを記憶する記憶媒体を含み得る。この例では、送信先デバイス14はディスクアクセスまたはカードアクセスによって記憶媒体にアクセスすることができる。記憶媒体は、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、または符号化ビデオデータを記憶するためのその他の適切なデジタル記憶媒体など、様々なローカルアクセスデータ記憶媒体を含み得る。
他の例では、チャネル16は、送信元デバイス12によって生成された符号化ビデオを記憶するファイルサーバまたはその他の中間記憶デバイスを含み得る。この例では、送信先デバイス14は、ストリーミングまたはダウンロードにより、ファイルサーバまたはその他の中間記憶デバイスで記憶された符号化ビデオデータにアクセスすることができる。ファイルサーバは、符号化ビデオデータを記憶し、送信先デバイス14に符号化ビデオデータを送信することができる種類のサーバとすることができる。ファイルサーバの例としては、(例えばウェブサイトのための)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)、およびローカルディスクドライブがある。
送信先デバイス14は、インターネット接続などの標準データ接続を介して符号化ビデオデータにアクセス可能である。データ接続の種類の例としては、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した、ワイヤレスチャネル(例えばWiFi(登録商標)接続)、有線接続(例えばDSL、ケーブルモデムなど)、または両者の組み合わせなどがある。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両者の組み合わせとすることができる。
本開示の技術は、ワイヤレス用途または環境には限定されない。本開示の技術は、無線テレビ放送、ケーブルテレビ送信、衛星テレビ送信、例えばインターネットを介したストリーミングビデオ送信など、様々なマルチメディア用途、ビデオデータをデータ記憶媒体に記憶するための符号化、データ記憶媒体に記憶されたビデオデータの復号、またはその他の用途をサポートするビデオコーディングに適用可能である。ある例では、ビデオコーディングシステム10は、一方向または双方向ビデオ送信に対応してビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/またはテレビ電話などの用途をサポートするように構成され得る。
図1の例では、送信元デバイス12はビデオ源18,ビデオエンコーダ20,および出力インターフェース22を含む。ある例では、出力インターフェース22は変調器/復調器(モデム)および/または送信器を含み得る。ビデオ源18は、ビデオキャプチャーデバイス、例えばビデオカメラ、過去にキャプチャされたビデオデータを収めるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および/またはビデオデータを生成するためのコンピュータグラフィクスシステム、またはこのようなビデオデータ源の組み合わせを含み得る。
ビデオエンコーダ20は、ビデオ源18からのビデオデータを符号化することができる。ある例では、送信元デバイス12は、出力インターフェース22を介して送信先デバイス14に符号化ビデオデータを直接送信することができる。符号化ビデオデータは、送信先デバイス14が復号および/または再生のために後でアクセスするように、記憶媒体またはファイルサーバに記憶することもできる。
図1の例では、送信先デバイス14は入力インターフェース28と、ビデオデコーダ30と、表示デバイス32とを含む。ある例では、入力インターフェース28は、受信器および/またはモデムを含み得る。送信先デバイス14の入力インターフェース28は、チャネル16を介して符号化ビデオデータを受信することができる。表示デバイス32は、送信先デバイス14に組み込まれていても外部にあってもよい。一般に、表示デバイス32は復号ビデオデータを表示する。表示デバイス32は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、またはその他の種類の表示デバイスを備え得る。
ビデオエンコーダ20とビデオデコーダ30とは、現在策定中の高効率ビデオコーディング(HEVC)標準などのビデオ圧縮標準に従って動作することができ、HEVCテストモデル(HM)に準拠し得る。「HEVC草案4」または「WD4」と呼ばれる公開予定のHEVC標準の最近の草案は、ブロス(Bross)らの「WD4:Working Draft4 of HIgh−Efficiency Video Coding(高効率ビデオコーディング草案4)」(ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のビデオコーディング共同チーム(JCT−VC)、第6回会議:イタリア、トリノ2001年7月)に記載されており、これは2012年9月27日の時点でhttp://phenix.int−evry.fr/jct/doc_end_user/documents/6_Torino/wg11/JCTVC−F803−v3.zipからダウンロード可能であり、その全内容が参考として本明細書に援用される。
あるいは、ビデオエンコーダ20とビデオデコーダ30とは、ITU−T H.261、ISO/IEC MPEG−1ビジュアル、ITU−T H.262またはISO/IEC MPEG−2ビジュアル、ITU−T H.263、ISO/IEC MPEG−4ビジュアルおよびITU−T H.264(ISO/IEC MPEG−4 AVCとも呼ばれる)、そのスケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張版などを含む、その他の企業標準または業界標準に従って動作することもできる。ただし、本開示の技術はいかなる特定のコーディング標準または技術にも限定されない。
さらに、図1は一例に過ぎず、本開示の技術は符号化デバイスと復号デバイスとの間でのデータ通信を必ずしも含まないビデオコーディング環境(例えばビデオ符号化またはビデオ復号)にも適用可能である。その他の例では、データはローカルメモリから取り出される、ネットワークを介してストリーミングされる、などが可能である。符号化デバイスはデータを符号化してメモリに格納してもよく、または、復号デバイスはメモリからデータを読み出して復号してもよく、あるいはその両方であってもよい。多くの例では、互いに通信せずデータを単にメモリに対して符号化、および/または、メモリから取り出して復号するデバイスによって符号化と復号が行われる。
ビデオエンコーダ20とビデオデコーダ30とはそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理素子、ハードウェア、またはこれらの任意の組み合わせなど、様々な適切な回路のいずれかとして実装され得る。本技術の一部をソフトウェアで実装する場合、デバイスはそのソフトウェアのための命令を、適切な非一時的コンピュータ可読記憶媒体に記憶することができ、1つまたは複数のプロセッサを使用してハードウェアで命令を実行して本開示の技術を実行することができる。以上(ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組み合わせなどを含む)のいずれも、1つまたは複数のプロセッサであると見なされ得る。ビデオエンコーダ20とビデオデコーダ30のそれぞれは、1つまたは複数のエンコーダまたはデコーダに含まれてもよく、両者のいずれかがそれぞれのデバイスの複合エンコーダ/デコーダ(CODEC)の一部として組み込まれてもよい。
本開示では、ビデオエンコーダ20が特定の情報をビデオデコーダ30などの他のデバイスに「通知する」と一般的にいう場合がある。しかし、ビデオエンコーダ20は特定の構文要素をビデオデータの様々な符号化部分と関連付けることによって情報を通知してもよいことを理解すべきである。すなわち、ビデオエンコーダ20は、特定の構文要素をビデオデータの様々な符号化部分に格納することにより、データを「通知」することができる。場合によっては、このような構文要素は、ビデオデコーダ30によって受信され復号される前に符号化し(例えば記憶システムに)格納され得る。したがって、「通知」という用語は、圧縮ビデオデータを復号するために使用される構文要素および/またはその他のデータの通信を総称することがある。そのような通信は、リアルタイムまたはほぼリアルタイムで行われてもよい。あるいは、そのような通信は、符号化時に構文要素を符号化ビットストリームの形でコンピュータ可読記憶媒体に記憶し、その媒体に記憶された後の任意の時点で復号デバイスによって読み出される場合などのように、ある期間にわたって行われてもよい。
上記で簡単に述べたようにビデオエンコーダ20はビデオデータを符号化する。ビデオデータは1つまたは複数のピクチャを備え得る。各ピクチャはビデオの一部を形成する静止画像であってよい。場合によっては、ピクチャをビデオ「フレーム」と呼ぶことがある。ビデオエンコーダ20は、ビデオデータのコード化表現を形成するビット列を含むビットストリームを生成することができる。ビットストリームはコード化ピクチャとそれに関連付けられたデータとを含み得る。コード化ピクチャはピクチャのコード化表現である。
ビットストリームを生成するために、ビデオエンコーダ20は一連のコード化ピクチャとそれに関連付けられたデータとを生成することができる。コード化ピクチャはビデオデータ内のピクチャの符号化表現である。関連付けられたデータは、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、アダプテーションパラメータセット(APS)、およびその他の構文構造体を含み得る。SPSは、ゼロまたはそれ以上のピクチャシーケンスに適用可能なパラメータを含み得る。PPSは、ゼロまたはそれ以上のピクチャに適用可能なパラメータを含み得る。APSは、ゼロまたはそれ以上のピクチャに適用可能なパラメータを含み得る。APS内のパラメータは、PPS内のパラメータよりも変化する可能性が高い。
ピクチャの符号化表現を生成するために、ビデオエンコーダ20はピクチャを複数のツリーブロックに区画化することができる。場合によっては、ツリーブロックを最大コーディングユニット(LCU)または「コーディングツリーブロック」と呼ぶことがある。ツリーブロックは、H.264/AVCなど、以前の標準のマクロブロックに大まかに類似し得る。しかし、ツリーブロックは、必ずしも特定の大きさには限定されず、1つまたは複数のコーディングユニット(CU)を含み得る。
ツリーブロックのそれぞれは、ピクチャ内の等しい大きさの異なる画素ブロックに関連付けられ得る。各画素は、輝度(Y)サンプルと、Cbクロミナンスサンプルと、Crクロミナンスサンプルとを備え得る。したがって各ツリーブロックは、ピクチャの輝度(Y)サンプルのブロックと、Cbクロミナンスサンプルのブロックと、Crクロミナンスサンプルのブロックとに関連付けられ得る。説明の便宜上、本開示では、画素の2次元配列を画素ブロックと呼び、サンプルの2次元配列をサンプルブロックと呼ぶことがある。ビデオエンコーダ20は、四分木区画化を使用して、ツリーブロックに関連付けられた画素ブロックをCUに関連付けられた画素ブロックに区画化することができ、したがって「ツリーブロック」と称される。
ビデオエンコーダ20は、ピクチャを複数のスライスに区画化することができる。各スライスは、整数個のツリーブロックを含み得る。ピクチャの符号化の一部として、ビデオエンコーダ20はピクチャの各スライスの符号化表現、(すなわちコード化スライス)を生成することができる。コード化スライスを生成するために、ビデオエンコーダ20はスライスの各ツリーブロックを符号化して、スライスの各ツリーブロックの符号化表現(すなわちコード化ツリーブロック)を生成する。
コード化ツリーブロックを生成するために、ビデオエンコーダ20は、ツリーブロックに関連付けられた画素ブロックに対して再帰的に四分木区画化を行って、画素ブロックを漸進的に縮小する画素ブロックに分割する。このより小さい画素ブロックのそれぞれはCUに関連付けられ得る。区画化されたCUは、その画素ブロックが他のCUに関連付けられた画素ブロックに区画化されたCUとすることができる。区画化されていないCUは、その画素ブロックが他のCUに関連付けられた画素ブロックに区画化されていないCUとすることができる。
ビデオエンコーダ20は、区画化されていない各CUについて1つまたは複数の予測ユニット(PU)を生成することができる。CUの各PUは、そのCUの画素ブロック内の異なる画素ブロックに関連付けられ得る。ビデオエンコーダ20は、CUの各PUについて予測画素ブロックを生成することができる。PUの予測画素ブロックは、画素のブロックであってよい。
ビデオエンコーダ20は、イントラ予測またはインター予測を使用してPUの予測画素ブロックを生成することができる。ビデオエンコーダ20がイントラ予測を使用してPUの予測画素ブロックを生成する場合、ビデオエンコーダ20はPUに関連付けられたピクチャの復号画素に基づいてPUの予測画素ブロックを生成することができる。ビデオエンコーダ20がインター予測を使用してPUの予測画素ブロックを生成する場合、ビデオエンコーダ20はPUに関連付けられたピクチャ以外の1つまたは複数のピクチャの復号画素に基づいて、PUの予測画素ブロックを生成することができる。
ビデオエンコーダ20は、CUのPUの予測画素ブロックに基づいてそのCUの残差画素ブロックを生成することができる。CUの残差画素ブロックは、CUのPUのための予測画素ブロック内のサンプルとCUの元の画素ブロック内の対応するサンプルとの差を示すことができる。
さらに、非区画化CUの符号化の一部として、ビデオエンコーダ20はCUの残差画素ブロックに対して再帰的四分木区画化を行って、CUの残差画素ブロックをCUの変換ユニット(TU)に関連付けられた1つまたは複数のより小さい残差画素ブロックに区画化することができる。このようにして、CUの各TUが輝度(Y)サンプルの残差サンプルブロックと、クロミナンス(CrまたはCb)サンプルの2つの残差サンプルブロックとに関連付けられ得る。
ビデオコーダ20は、TUに関連付けられた残差サンプルブロックに1つまたは複数の変換を適用して、TUに関連付けられた係数ブロック(すなわち係数のブロック)を生成することができる。概念上は、係数ブロックは係数の2次元行列とすることができる。ビデオエンコーダ20は、係数ブロックに対して量子化処理を行うことができる。量子化とは、係数を量子化して係数を表すために使用されるデータの量をできるだけ削減することにより、さらなる圧縮を実現する処理を一般的に指す。
ビデオエンコーダ20は、量子化係数ブロック内の係数を表す構文要素のセットを生成することができる。ビデオエンコーダ20は、コンテキスト適応型2値算術コーディング(Context Adaptive Binary Arithmetic Coding:CABAC)演算などのエントロピー符号化演算を、これらの構文要素の少なくとも一部に適用してもよい。エントロピー符号化演算の実行の一部として、ビデオエンコーダ20はコーディングコンテキストを選択してもよい。CABACの場合、コーディングコンテキストは0値のビンと1値のビンの確率を示すことができる。コンテキスト適応型可変長コーディング(context−adaptive variable length coding:CAVLC)の場合、コーディングコンテキストは1組の可変長コードとすることができる。ビデオエンコーダ20はコーディングコンテキストを使用して1つまたは複数の構文要素を符号化することができる。
ビデオエンコーダ20によって生成されたビットストリームは、一連のネットワーク抽象化レイヤ(NAL)ユニットを含み得る。各NALユニットは、NALユニット内のデータのタイプを示す標識およびデータを含むバイトを含む構文構造とすることができる。例えば、NALユニットはSPS、PPS、コード化スライス、補助強化情報(supplemental enhanced information:SEI)、アクセスユニットデリミタ、フィラーデータ、またはその他のタイプのデータを表すデータを含み得る。NALユニット内のデータは様々な構文構造を含み得る。コード化スライスNALユニットは、コード化スライスを含むNALユニットである。「VCL NALユニット」は、コード化スライスNALユニットと、VCL NALユニットに分類されるnal_unit_typeの予約値を有するNALユニットのサブセットとの総称である。
SEI NALユニットは、SEIメッセージを含むNALユニットである。SEIメッセージは、誤り耐性、タイミング、出力などに有用となり得る情報を含む。ただし、SEIメッセージは復号処理では必要ない。言い換えると、ビデオデコーダは、SEIメッセージ内の情報を使用せずにビデオデータをデコード可能とすることができる。したがって、H.264/AVCまたはHEVCなどのビデオコーディング標準の環境ではSEIメッセージは標準的ではなく(すなわち有用な情報ではなく)、準拠するビデオデコーダはビットストリーム中に存在するSEIメッセージを単純に廃棄してもかまわないという意味で任意的である。さらに、ビデオデータに関連付けられたSEIメッセージを送信しなくても、ビデオデコーダはビデオデータを復号することができる。
ビデオエンコーダ20は、ピクチャを複数のピクチャ区画に分割することができる。ピクチャ区画は、ピクチャのツリーブロックの重なり合わないサブセットに関連付けることができる。ビデオエンコーダ20は様々な方法でピクチャを複数のピクチャ区画に分割することができる。以下に述べるように、ビデオエンコーダ20は、ピクチャを複数のエントロピースライス、複数のタイル、または複数の波面並列処理(WPP)波に分割することができる。本開示では、「ピクチャ区画」という用語を使用してエントロピースライス、タイルおよびWPP波を総称的に指すことがある。
上述のように、ビデオエンコーダ20はピクチャを複数のエントロピースライスに分割することができる。エントロピースライスを軽量スライス、短いスライスヘッダーの付いたスライス、または短いスライスとも呼ぶことがある。エントロピースライスは、通常のスライスのCUのサブセットを含み得る。ある例では、ビデオエンコーダ20は、エントロピースライスのうちのCUを、エントロピースライスのいずれも上限よりも多くのビン(例えばエントロピーコード化ビン)を含まないように区画化してもよい。場合によっては、単一のコード化スライスNALユニットがスライスの複数のエントロピースライスを含み得る。他の例では、各エントロピースライスが別個のNALユニットに含まれてもよい。
エントロピースライスの境界を越えるピクチャ内予測が許容される。例えば、ビデオコーダが特定のPUについてイントラ予測を行う場合、ビデオコーダは、隣接するPUが特定のPUとは異なるエントロピースライス内にある場合であっても、その隣接PU内のサンプルを使用することができる。この例では、ビデオコーダは、隣接するPUが特定のPUとは異なるスライス内にある場合、その隣接PUのサンプルを使用することができなくてもよい。
しかし、ビデオコーダ−が特定のPUに関連付けられたデータのエントロピーコーディングを行うとき、ビデオコーダは、特定のPUと隣接PUとが同じエントロピースライス内にある場合にのみ、隣接PUに関連付けられた情報に基づいてコーディングコンテキストを選択することが許容される。この制約のため、ビデオコーダは、1つのスライスの複数のエントロピースライスに対してエントロピーコーディング(すなわちエントロピー符号化または復号)動作を並列して行うことが可能であってもよい。ただし、ビデオデコーダ30は、1つのスライスの複数のエントロピースライスの画素ブロックを並列して再構築することはできない。
ある例では、ビデオエンコーダ20はピクチャを1つまたは複数のタイルに分割することができる。各タイルは、ピクチャ内の整数個のツリーブロックを備え得る。ビデオエンコーダ20は、2つ以上の垂直方向のタイル境界と2つ以上の水平方向のタイル境界を画定することによって、ピクチャをタイルに分割してもよい。ピクチャの垂直方向の各辺は、垂直タイル境界とみなすことができる。現在のピクチャの水平方向の各辺は、水平タイル境界とみなすことができる。例えば、ピクチャについてビデオエンコーダ20が4つの垂直タイル境界と3つの水平タイル境界を画定する場合、現在のピクチャは6つのタイルに分割される。
ビデオエンコーダ20またはビデオデコーダ30などのビデオコーダは、ラスタースキャン順に従ってピクチャのタイルをコーディングすることができる。さらに、ビデオコーダは、タイル内の各ツリーブロックをラスタースキャン順に従ってコーディングすることができる。このようにして、ビデオコーダは、ピクチャの所与のタイルの各ツリーブロックを、ピクチャの他のタイルのいずれのツリーブロックのコーディングよりも前にコーディングすることができる。したがって、ピクチャが複数のタイルに区画化されている場合にビデオコーダがピクチャのツリーブロックをコーディングする順序は、ピクチャが複数のタイルに区画化されていない場合とは異なり得る。
場合によっては、ビデオコーダは、特定のCUと空間的に隣接するCUとが同じタイルに属しており、その特定のCUと空間的に隣接するCUとが同じスライスに属している限り、その空間的に隣接するCUに関連付けられた情報を使用してその特定のCUに対してイントラ予測を行うことができる。空間的に隣接するCUは、特定のCUに関連付けられた画素ブロックに隣接する画素ブロックに関連付けられたCUとすることができる。場合によっては、ビデオコーダは、特定のCUと空間的に隣接するCUとが同じタイル内にある限り、その空間的に隣接するCUに関連付けられた情報を使用して、その特定のCUの構文要素をCABAC符号化するためのコンテキストを選択してもよい。これらの制約のために、ビデオコーダは複数のタイルのツリーブロックを並列してコーディング可能であってもよい。
例えば、画素値予測、動き予測、コーディングモード予測、およびエントロピーコーディングコンテキスト予測を含む、タイル境界を越えるピクチャ内予測は、フラグtile_boundary_independence_idcによって制御することができる。このフラグが1の場合、タイル境界を越えるピクチャ内予測は許容されない。それ以外の場合、ピクチャ境界またはスライス境界でもあるタイル境界を除き、タイル境界を越えるピクチャ内予測が許容される。ピクチャ内予測が許容されない場合、タイルの機能は、ピクチャ内にタイルがない場合、または同様に、ピクチャ内にタイルが1つしかない場合と比較して、ツリーブロックのスキャン順序を変更することであってもよい。ピクチャ内予測が許容される場合、ツリーブロックのスキャン順序の変更のほかに、タイルは、並列コーディング(符号化および/または復号)に使用可能な独立区画化も提供することができる。
ピクチャ内予測がタイル境界を越えて許容されるか否かにかかわらす、ビデオエンコーダ20は、単一のNALユニット中の単一のエントロピースライス内に複数の符号化タイルを含めてもよい。この場合、タイル境界を越えるピクチャ内予測が許容される場合でも、タイル境界を越えるエントロピーコーディングコンテキスト予測は許容されない。さらに、NALユニットが1つのエントロピースライスしか含むことができず、エントロピースライスが1つのタイルのCUしか含まない例では、コード化タイルが別々のNALユニット内にあるため、エントロピースライスの各符号化タイルの入口点を通知する必要がない場合もある。
他の例では、ビデオコーダは波面並列処理(WPP)を使用してピクチャをコーディングすることができる。ビデオコーダがWPPを使用してピクチャをコーディングする場合、ビデオコーダはピクチャのツリーブロックを複数の「WPP波」に分割することができる。各WPP波は、ピクチャ内のツリーブロックの異なる行に対応し得る。ビデオコーダがWPPを使用してピクチャをコーディングする場合、ビデオコーダはツリーブロックの最上行からコーディングを開始してもよい。ビデオコーダが最上行の2つ以上のツリーブロックをコーディングした後、ビデオコーダはツリーブロックの上から2番目の行のコーディングをツリーブロックの最上行のコーディングと並列して開始することができる。ビデオコーダが上から2行目の2つ以上のツリーブロックをコーディングした後、ビデオコーダはツリーブロックの上から3番目の行のコーディングを、ツリーブロックの上の行のコーディングと並行して開始することができる。このパターンをピクチャ内のツリーブロックの各行を下って続けることができる。
ビデオコーダがWPPを使用してピクチャをコーディングする場合、ビデオコーダは現在のツリーブロック外部の空間的に隣接するCUが現在のツリーブロックの左、左上、上、または右上にある限り、その隣接CUに関連付けられた情報を使用して現在のツリーブロック内の特定のCUに対するイントラ予測を行うことができる。現在のツリーブロックが最上行以外の行の左端のツリーブロックである場合、ビデオコーダはすぐ上の行の2番目のツリーブロックに関連付けられた情報を使用して、現在のツリーブロックの構文要素をCABAC符号化するためのコンテキストを選択してもよい。一方、現在のツリーブロックが行の左端のツリーブロックではない場合は、ビデオコーダは現在のツリーブロックの左のツリーブロックに関連付けられた情報を使用して、現在のツリーブロックの構文要素をCABAC符号化するためのコンテキストを選択してよい。このようにして、ビデオコーダはすぐ上の行の2つ以上のツリーブロックの符号化の後、すぐ上の行のCABACの状態に基づいて行のCABACの状態を初期化することができる。
ある例では、ビデオコーダがWPPを使用してピクチャをコーディングする場合、ピクチャのタイル境界はピクチャの水平方向と垂直方向の境界のみである。したがって、ピクチャの唯一のタイルは、ピクチャと同じ大きさである。ビデオコーダは、そのピクチャ、したがってピクチャの単一のタイルを、複数のWPP波に分割することができる。
前述のように、ビデオコーダ20はスライスの符号化表現を含むコード化スライスNALユニットを生成することができる。このスライスは、整数個の連続コード化ツリーブロックに関連付けることができる。コード化スライスNALユニットは、スライスヘッダーとスライスデータとを含み得る。スライスデータはスライスに関連付けられた各ツリーブロックの符号化表現を含み得る。
ビデオエンコーダ20は、ツリーブロックが属するピクチャ区画に従ってツリーブロックの符号化表現がスライスデータ内でグループ化されるように、コード化スライスNALユニットを生成することができる。例えば、コード化スライスNALユニットは、第1のピクチャ区画に関連付けられた各コード化ツリーブロックと、その後の第2のピクチャ区画に関連付けられた各コード化ツリーブロックと、その後の第3のピクチャ区画に関連付けられた各コード化ツリーブロックと、という具合にツリーブロックを含み得る。
説明の便宜上、本開示では「符号化ピクチャ区画」、「コード化サブスライス」、「コード化サブストーム」という用語を使用して、単一のピクチャ区画(例えばエントロピースライス、タイル、またはWPP波)に関連付けられたコード化スライスNALユニット内のコード化ツリーブロックのグループを指す。ただし、ピクチャ区画が複数のスライス内のツリーブロックを含み得る状況もあり得るものと理解すべきである。以下で説明する図10に、タイルが複数のスライスに属するツリーブロックを含み、スライスが複数のタイルに属するツリーブロックを含む例を示す。
ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信することができる。ビットストリームは、ビデオエンコーダ20によって符号化されたビデオデータのコード化表現を含み得る。ビデオデコーダ30は、ビットストリームに対し解析動作を実行することができる。ビデオデコーダ30は、解析動作の実行の一部として、ビットストリームから構文要素を抽出してもよい。ビデオデコーダ30は、ビットストリームからの構文要素の抽出の一部として、ビットストリーム内のデータに対してエントロピー復号(例えばCABAC復号)動作を行ってもよい。ビデオデコーダ30は、ビットストリームから抽出した構文要素に基づいてビデオデータのピクチャを再構築することができる。構文要素に基づいてビデオデータを再構築する処理は、概ね、それらの構文要素を生成するためにビデオエンコーダ20によって行われた処理の逆であり得る。
ビデオデコーダ30は、CUに関連付けられた構文要素に基づいて、CUのPUのための予測画素ブロックを生成することができる。さらに、ビデオデコーダ30は、CUのTUに関連付けられた係数ブロックを逆量子化することができる。ビデオデコーダ30は、係数ブロックに逆変換を行ってCUのTUに関連付けられた残差画素ブロックを再構築することができる。ビデオデコーダ30は、予測画素ブロックと残差画素ブロックとに基づいてCUの画素ブロックを再構築することができる。このようにして、ビデオデコーダ30は、ビットストリーム内の構文要素に基づいてCUの画素ブロックを再構築し得る。
前述のように、ビデオデコーダ30のある種の実装は、異なるピクチャ区画の画素ブロックを並列して復号可能な場合がある。例えば、コード化スライスNALユニットが第1の符号化画素区画と第2の符号化画素区画とを含む場合、ビデオデコーダ30は、第1の符号化画素区画の画素ブロックと第2の符号化画素区画の画素ブロックとを並列して復号可能な場合がある。
ビデオデコーダ30は、コード化スライスNALユニットをメモリに格納し得る。メモリはバイトアドレス指定可能とすることができる。ビデオデコーダ30はコード化スライスNALユニットをバイトアドレス指定可能メモリに格納するため、符号化画素区画の始点がバイト内にある場合、ビデオデコーダ30は符号化画素区画の始点に関連付けられたメモリアドレスを示すことができない場合がある。したがって、符号化画素区画の1つまたは複数がバイト内で始まる場合、ビデオデコーダ30は、符号化画素区画を並列して復号することができない場合がある。あるいは、ビデオデコーダ30は、ビット単位メモリアドレス指定、またはバイト単位とビット単位とのアドレス指定を使用して、符号化画素区画の並列復号を可能にしてもよいが、実装と計算が複雑化する。
この問題に対処するために、ビデオエンコーダ20は、コード化スライスNAL内の各符号化画素区画がバイト整列されるようにコード化スライスNALユニットを生成する。すなわち、コード化スライスNALユニット内の各符号化画素区画はバイト境界から開始し得る。符号化画素区画がバイト整列される場合、符号化画素区画の先頭ビットはメモリ内のアドレス指定可能バイトの先頭ビットであり、符号化画素区画の最後のビットはメモリ内のアドレス指定可能バイトの最後のビットである。したがって、メモリ内の各バイトアドレス指定記憶場所にとっては、記憶場所は複数の符号化画素区画に関連付けられたビットを格納しない。
さらに、ビデオデコーダ30が符号化画素区画を並列して復号する場合、ビデオデコーダ30は異なる処理コアに異なる符号化画素区画を割り当てることができる。これらの処理コアは、符号化画素区画を並列して復号することができる。さらに、処理コアはメモリに対してスライスヘッダーを要求してもよい。メモリはこれに応答して処理コアにスライスヘッダーを送る。このようにして、各処理コアは、符号化画素区画の復号時にスライスヘッダーを使用することができてもよい。しかし、スライスヘッダーがバイト整列されていない場合、メモリはスライスヘッダー内にない何らかの情報も送らずにスライスヘッダーを処理コアに送ることができないことがある。例えば、スライスヘッダーがバイト整列されていない場合、ビデオデコーダ30は、スライスヘッダーがバイト整列されるようにスライスヘッダーをトランスコーディングすることも考えられる。スライスヘッダーをトランスコーディングすると、ビデオデコーダ30が複雑化する可能性があり、処理コアを、トランスコードされたスライスヘッダーを処理するように構成する必要が生じる可能性がある。
各符号化画素区画がバイト整列されたコード化スライスNALユニットを生成するために、ビデオエンコーダ20は、スライスヘッダーがバイト境界で終わるようにコード化スライスNALユニットのスライスヘッダーにパディングしてもよい。すなわち、スライスヘッダーの最後のビットはメモリ内のアドレス指定可能バイトの最後のビットとすることができる。コード化スライスNALユニットのスライスヘッダーのパディングは、スライスヘッダーがバイト整列されるまでスライスヘッダーの後ろにビットを追加することを含み得る。
このようにして、ビデオエンコーダ20は、各符号化画素区画がビデオデータ中のピクチャ内の異なる1組のコーディングユニットに関連付けられた、複数の符号化画素区画を生成することができる。さらに、ビデオエンコーダ20は、スライスヘッダーをバイト境界に整列させる1つまたは複数のパディングビットを含むスライスヘッダーと複数の符号化画素区画とを含むNALユニットを生成し得る。同様に、ビデオデコーダ30は、NALユニットを受信することができる。NALユニットは、スライスヘッダーとビデオデータの複数の符号化画素区画とを含み得る。スライスヘッダーは、スライスヘッダーをバイト境界に整列させる1つまたは複数のパディングビットを含み得る。ビデオデコーダ30は、2つ以上の符号化画素区画を並列して復号してよい。
符号化画素区画を並列して復号するために、ビデオデコーダ30は、並列して実行される異なる復号スレッドに符号化画素区画を割り当てることができる。復号スレッドは異なる処理コア上で実行され得る。符号化画素区画を異なる復号スレッドに割り当てるために、ビデオデコーダ30は各符号化画素区画の先頭に関連付けられたメモリアドレスを判断する必要がある場合がある。
ビデオデコーダ30が各符号化画素区画の先頭に関連付けられたメモリアドレスを判断できるようにするため、コード化スライスNALユニットのスライスヘッダーは入口点オフセットを含み得る。ある例では、入口点オフセットは、他の点を基準にした符号化画素区画のメモリアドレスのオフセットを示す。ある例では、オフセットはコード化スライスNALユニットの先頭を基準としてもよい。例えば、コード化スライスNALユニットのスライスヘッダー中の入口点オフセットは、特定の符号化画素区画が、コード化スライスNALユニットの312番目バイトから始まることを示してもよい。他の例では、コード化スライスNALユニット内の符号化画素区画の入口点オフセットは、コード化スライスNALユニット内の先行符号化画素区画の第1のビットを基準としてもよい。例えば、入口点オフセットはコード化スライスNALユニット内の特定の符号化画素区画が、コード化スライスNALユニット内の先行符号化画素区画の124バイト後から開始することを示してもよい。さらに、ある例では、入口点オフセットは、符号化画素区画の長さをビット数またはバイト数で示してもよい。
本開示の1つまたは複数の技術によると、入口点オフセットを示すオフセット構文要素に加えて、ビデオエンコーダ20はスライスヘッダー内に2つの追加構文要素を含めることができる。スライス中のタイルの数は追加構文要素の最初の追加構文要素に基づいて決定してもよい。各オフセット構文要素中のビットの数は、追加構文要素の第2の構文要素に基づいて判断し得る。本開示の技術によると、ビデオエンコーダ20は、追加構文要素をエントロピー符号化(例えば指数ゴロム符号化)してもよい。ビデオエンコーダ20が追加構文要素をエントロピー符号化するため、追加構文要素は可変長ビット列を使用したビットストリームで表される。可変長ビット列を使用して追加構文要素を表すことにより、固定長ビット列を使用して追加構文要素を表す場合よりも少ないビットを含むビットストリームとなるとともに、ビデオエンコーダ20は例えば5ビットを使用する固定長コーディングによって可能なよりも多くのオフセット構文要素を通知することができる。
このようにして、ビデオエンコーダ20は、第1の構文要素と、第2の構文要素と、一連のオフセット構文要素とをエントロピー符号化することができる。各構文要素の長さは第1の構文要素に基づいて判断可能としてもよい。一連のオフセット構文要素中のオフセット構文要素の数は、第2の構文要素に基づいて判断可能としてもよい。NALユニット内の複数の符号化画素区画の位置はオフセット構文要素に基づいて判断可能としてもよい。さらにビデオエンコーダ20は、エントロピー符号化された第1の構文要素を表す可変長値と、エントロピー符号化された第2の構文要素を表す可変長値と、オフセット構文要素を表す固定長値とを含むビットストリームを生成することができる。
ビデオデコーダ30は、第1の追加構文要素を表す可変長値と、第2の追加構文要素を表すエントロピー符号化可変長値と、一連のオフセット構文要素とを含むビットストリームを受信することができる。ビデオデコーダ30は、第1と第2の追加構文要素をエントロピー復号することができる。さらに、ビデオデコーダ30は、第1の構文要素に基づいて、オフセット構文要素のそれぞれの長さを判断することができ、第2の構文要素に基づいて、一連のオフセット構文要素中のオフセット構文要素の数を判断することができる。ビデオデコーダ30は、オフセット構文要素のそれぞれの長さと一連のオフセット構文要素中のオフセット構文要素の数とに少なくとも部分的に基づいて、ビットストリーム内のオフセット構文要素を構文解析することができる。次にビデオデコーダ30は、オフセット構文要素に少なくとも部分的に基づいて、NALユニット内の複数の符号化画素区画の位置を判断することができる。
さらに、コード化スライスNALユニットのスライスヘッダー内の入口点オフセットを示す代わりに(またはそれに加えて)、コード化スライスNALユニットのスライスデータが入口点マーカを含んでもよい。入口点マーカは、入口点マーカに固有のビットパターンを指定し得る。入口点マーカは、スライスデータの第1の符号化画素区画のほか、各符号化画素区画の直前のスライスデータ内にあってもよい。ビデオデコーダ30は、スライスデータをスキャンし、入口点マーカを識別することによって、各符号化画素区画の先頭に関連付けられたメモリアドレスを判断することができる。
ビデオデコーダ30を複数の符号化画素区画を並列して復号するように構成する場合、スライスヘッダー内に入口点、またはスライスデータ内に入口点マーカを含めることは有用である。しかし、ビデオデコーダによっては、複数の符号化画素区画を並列して復号するように構成されない場合がある。複数の符号化画素区画を並列して復号するように構成されていないビデオデコーダが必要とするハードウェアは、複数の符号化画素区画を並列して復号するように構成されたビデオデコーダ30が必要とするハードウェアよりも単純である。より単純なハードウェアは、より低コストであり、エネルギー消費がより少ないと考えられる。
ビデオデコーダ30が複数の符号化画素区画を並列して復号するように構成されていない場合、ビデオデコーダ30は入口点オフセットも入口点マーカも使用しない。したがって、ビデオデコーダ30が複数の符号化画素区画を並列して復号するように構成されていない場合、ビデオデコーダ30が受信したビットストリームへの入口点オフセットおよび/または入口点マーカを含めるとビットストリーム中のビットの数を無用に増やすことになる可能性がある。
本開示の1つまたは複数の技術によると、ビデオエンコーダ20は、ビデオエンコーダ20がコード化スライスNALユニットに入口点オフセットおよび/または入口点マーカを含めないように構成してもよい。その代わりに、ビデオエンコーダ20は、コード化スライスNALユニット内の符号化画素区画の入口点を示すSEIメッセージを生成してもよい。例えば、ビデオエンコーダ20は、コード化スライスNALユニット内の符号化ピクチャ区画のための入口点オフセットを含むSEIメッセージを生成してもよい。言い換えると、SEIメッセージはコード化NALユニット内の符号化ピクチャ区画のバイトオフセットを指定することによって入口点を示すことができる。
図2は、本開示の技術を実装するように構成された例示のビデオエンコーダ20を示すブロック図である。図2は説明のために示すものであり、本開示で大まかに例示し、説明する技術を限定するものとみなすべきではない。説明のために、本開示ではビデオエンコーダ20について、HEVCコーディングの文脈で説明する。しかし、本開示の技術は他のコーディング標準または方法にも適用可能である。
図2の例では、ビデオエンコーダ20は複数の機能構成要素を含む。ビデオエンコーダ20の機能構成要素は、予測処理ユニット100と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換処理ユニット110と、再構築ユニット112と、フィルターユニット113と、復号ピクチャバッファ114と、エントロピー符号化ユニット116とを含む。予測処理ユニット100は、インター予測処理ユニット121とイントラ予測処理ユニット126とを含む。インター予測処理ユニット121は、動き推定ユニット122と動き補償ユニット124とを含む。他の例では、ビデオエンコーダ20の機能構成要素の数はこれより多くても少なくてもよく、異なる機能構成要素を含んでもよい。さらに、動き推定ユニット122と動き補償ユニット124とは高度に統合されていてもよいが、図2の例では説明のために別々に表されている。
ビデオエンコーダ20はビデオデータを受信することができる。ビデオエンコーダ20はビデオデータを様々な発信源から受信することができる。例えば、ビデオエンコーダ20はビデオ源18(図1)またはその他の発信源からビデオデータを受信してもよい。ビデオデータは一連のピクチャを表す。ビデオデータを符号化するために、ビデオエンコーダ20はピクチャの各スライスを符号化してもよい。スライスの符号化の一部として、ビデオエンコーダ20はスライス内の各ツリーブロックを符号化してもよい。
ビデオエンコーダ20は、ラスタースキャン順に従ってスライス内のツリーブロックを符号化することができる。言い換えると、ビデオエンコーダ20は、スライス内のツリーブロックの最上行を左から右に進み、次にツリーブロックの次の行を左から右に進み、このようにしてビデオエンコーダ20がスライス内の各ツリーブロックを符号化し終わるまで進む順序で、スライスのツリーブロックを符号化することができる。
ラスタースキャン順に従ってツリーブロックを符号化した結果、特定の1つのツリーブロックの上と左のツリーブロックが符号化されているが、その特定のツリーブロックの下と右のツリーブロックはまだ符号化されていないと考えられる。したがって、ビデオエンコーダ20は、特定のツリーブロックを符号化するときに、特定のツリーブロックの上と左のツリーブロックを符号化することによって生成された情報にアクセスすることができると考えられる。しかし、ビデオエンコーダ20は特定のツリーブロックを符号化するときに特定のツリーブロックの下と右のツリーブロックを符号化することによって生成される情報にアクセスすることができないと考えられる。
ツリーブロックの符号化の一部として、予測処理ユニット100は、ツリーブロックに関連付けられた画素ブロックに対して四分木区画化を行って画素ブロックを漸進的に縮小する画素ブロックに分割することができる。より小さい画素ブロックをCUに関連付けてもよい。例えば、予測処理ユニット100は、ツリーブロックの各画素ブロックを等しい大きさの4つのサブブロックに区画化し、サブブロックのうちの1つまたは複数のサブブロックを大きさの等しい4つのサブブロックに分割するという具合に分割してもよい。
CUに関連付けられる画素ブロックの大きさは、8×8画素から最大64×64サンプル以上のサンプルを含むツリーブロックに関連付けられた画素ブロックのサイズまでの範囲とすることができる。本開示では、「N×N」と「N掛けるN」とを区別なく使用して例えば、16×16画素または16掛ける16画素のように画素ブロックの画素寸法を垂直方向および水平方向の寸法で表す。一般に、16×16画素ブロックは、垂直方向に16画素(y=16)と水平方向に16画素(x=16)とを有する。同様に、N×Nブロックは一般に、垂直方向にN画素と水平方向にN画素を有し、Nは負でない整数値を表す。
ビデオエンコーダ20は、ツリーブロックのCUを符号化してCUの符号化表現(すなわちコード化CU)を生成することができる。ビデオエンコーダ20は、zスキャン順序に従ってツリーブロックのCUを符号化してもよい。言い換えると、ビデオエンコーダ20は、左上のCUと、右上のCUと、左下のCUと、右下のCUとをこの順序で符号化してもよい。ビデオエンコーダ20が区画化されたCUを符号化するとき、ビデオエンコーダ20は特定のCUの画素ブロックのサブブロックに関連付けられたCUをzスキャン順に従って符号化することができる。言い換えると、ビデオエンコーダ20は左上のサブブロックに関連付けられたCUと、右上のサブブロックに関連付けられたCUと、左下のサブブロックに関連付けられたCUと、右下のサブブロックに関連付けられたCUとをこの順序で符号化することができる。
zスキャン順に従ってツリーブロックのCUを符号化した結果、特定のCUの上、左上、右上、左、および左下の各CUが符号化されている可能性がある。その特定のCUの下または右のCUはまだ符号化されていない可能性がある。したがって、ビデオエンコーダ20は、その特定のCUを符号化するときにその特定のCUに隣接する他のいくつかのCUを符号化することによって生成される情報にアクセスすることができる可能性がある。しかし、その特定のCUを符号化するときにその特定のCUに隣接する他のCUを符号化することによって生成される情報にはアクセスすることができない可能性がある。
CUの符号化の一部として、予測処理ユニット100は、CUの1つまたは複数のPUのうちのCUの画素ブロックを区画化してもよい。ビデオエンコーダ20とビデオデコーダ30とは様々なPUサイズに対応することができる。特定のCUのサイズを2N×2Nと仮定すると、ビデオエンコーダ20とビデオデコーダ30とは、イントラ予測の場合は2N×2NまたはN×NのPUサイズに対応することができ、インター予測の場合は2N×2N、2×N、N×2N、N×N、または同様のPUサイズに対応することができる。ビデオエンコーダ20とビデオデコーダ30とは、インター予測について2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズの非対称区画化にも対応可能である。
インター予測処理ユニット121は、CUの各PUに対してインター予測を行うことができる。インター予測により時間的圧縮を実現することができる。インター予測処理ユニット121は、PUのために予測データを生成してもよい。PUの予測データは、そのPUに対応する予測サンプルブロックと、そのPUのための動き情報とを含み得る。動き推定ユニット122は、PUのための動き情報を生成することができる。場合よっては、動き推定ユニット122はマージモードまたは高度動き予測ベクトル(advanced motion vector prediction:AMVP)モードを使用してPUの動き情報を通知してもよい。動き補償ユニット124は、PUに関連付けられたピクチャ以外の1つまたは複数のピクチャ(すなわち参照ピクチャ)の画素に基づいてPUの予測画素ブロックを生成することができる。
スライスは、Iスライス、Pスライス、またはBスライスとすることができる。動き推定ユニット122と動き補償ユニット124とは、PUがIスライス、Pスライス、またはBスライスのいずれにあるかに応じて、CUのPUについて異なる操作を行ってもよい。Iスライスでは、すべてのPUがイントラ予測される。したがって、PUがIスライス内にある場合、動き推定ユニット122と動き補償ユニット124とはそのPUに対してはインター予測を行わない。
PUがPスライス内にある場合、そのPUを含むピクチャは、「リスト0」と呼ぶ参照ピクチャのリストに関連付けられる。ある例では、リスト0にリストされている各参照ピクチャは表示順でピクチャの前に現れる。リスト0内の参照ピクチャのそれぞれを、他のピクチャのインター予測に使用することができる。動き推定ユニット122は、リスト0内の参照ピクチャでPスライス内のPUのための参照ブロックを検索することができる。PUの参照ブロックは、PUの画素ブロックに最も密接に対応する画素ブロックであってよい。動き推定ユニット122は様々な測定基準を使用して、参照ピクチャ内の画素ブロックがPUの画素ブロックにどれだけ密接に対応しているかを判断することができる。例えば、動き推定ユニット122は、絶対差の和(SAD)、平方差の和(SSD)、またはその他の差測定基準によって、参照ピクチャ内の画素ブロックがPUの画素オブロックにどれだけ密接に対応しているかを判断することができる。
動き推定ユニット122は、Pスライス内のPUの参照ブロックと、そのPUと参照ブロックとの間の空間的変位を示す動きベクトルとを含むリスト0内の参照ピクチャを示す参照ピクチャインデックスを生成してもよい。動き推定ユニット122は、様々な精度の動きベクトルを生成することができる。例えば、動き推定ユニット122は4分の1画素精度、8分の1画素精度、またはその他の分数画素精度の動きベクトルを生成することができる。分数画素精度の場合、参照ピクチャ内の整数位置画素値から参照ブロック値が補間され得る。動き推定ユニット122は、参照ピクチャインデックスと動きベクトルとをPUの動き情報として出力してもよい。動き補償ユニット124は、PUの動き情報に関連付けられた参照ブロックに基づいてPUの予測サンプルブロックを生成することができる。
PUがBスライス内にある場合、PUを含むピクチャを「リスト0」および「リスト1」と呼ぶ参照ピクチャの2つのリストに関連付けることができる。ある例では、リスト1にリストされる各参照ピクチャは、表示順で現在のピクチャの後に現れる。さらに、PUがBスライス内にある場合、動き推定ユニット122はPUのために一方向インター予測または双方向インター予測を行ってもよい。PUのために一方向インター予測を行うには、動き推定ユニット122はリスト0またはリスト1の参照ピクチャでPUの参照ブロックを検索してもよい。動き推定ユニット122は、参照ブロックを含む参照ピクチャのリスト0またはリスト1内での位置を示す参照ピクチャインデックスと、PUと参照ブロックとの間の空間的変位を示す動きベクトルとを生成することができる。
PUの双方向インター予測を行うために、動き推定ユニット122はリスト0内の参照ピクチャでもPUの参照ブロックを検索することができ、リスト1内の参照ピクチャでPUの他の参照ブロックを検索することができる。動き推定ユニット122は、これらの参照ブロックを含む参照ピクチャの、リスト0およびリスト1内での位置を示す参照ピクチャインデックスを生成してもよい。さらに、動き推定ユニット122は、参照ブロックとPUとの間の空間的変位を示す動きベクトルを生成することができる。PUの動き情報は、PUの参照ピクチャインデックスと動きベクトルとを含み得る。動き補償ユニット124は、PUの動き情報によって示される参照ブロックに基づいて、PUの予測サンプルブロックを生成することができる。
CUに対する符号化演算の実行の一部として、イントラ予測処理ユニット126はCUのPUについてイントラ予測を行ってもよい。イントラ予測により空間的圧縮を実現し得る。イントラ予測処理ユニット126は、PUと同じピクチャ内の復号サンプルに基づいてPUのための予測データを生成することができる。PUのための予測データは、PUのための予測サンプルブロックと様々な構文要素とを含み得る。イントラ予測処理ユニット126は、Iスライス内と、Pスライス内と、Bスライス内のPUについてイントラ予測を行ってもよい。
PUについてイントラ予測を行うために、イントラ予測処理ユニット126は複数のイントラ予測モードを使用して、PUの複数組の予測データを生成することができる。イントラ予測モードを使用してPUの1組の予測データを生成するために、イントラ予測処理ユニット126は、そのイントラ予測モードに関連付けられた方向および/または傾きで、隣接PUのサンプルブロックからサンプルをPUのサンプルブロック全体にわたって拡張して適用することができる。PU、CUおよびツリーブロックの左から右、上から下の符号化順序を仮定すると、隣接PUはそのPUの上、右上、左上、または左にあり得る。イントラ予測処理ユニット126は様々な数のイントラ予測モード、例えば33方向のイントラ予測モードを使用することができる。ある例では、イントラ予測モードの数はPUのサイズに依存し得る。
予測処理ユニット100は、PUのためにインター予測処理ユニット121によって生成された予測データ、またはPUのためにイントラ予測処理ユニット126によって生成された予測データの中からCUのPUのための予測データを選択してもよい。ある例では、予測処理ユニット100は、これらの組の予測データのレート/歪み測定基準に基づいてCUのPUのために予測データを選択する。
予測処理ユニット100は、四分木区画化を行ってCUの残差画素ブロックをサブブロックに区画化してもよい。分割されない各残差画素ブロックをCUの異なるTUに関連付けてもよい。CUのTUに関連付けられた残差画素ブロックのサイズと位置は、CUのPUの画素ブロックのサイズと位置とに基づいていてもいなくてもよい。「残差四分木」(residual quad−tree:RQT)と呼ばれる四分木構造は、各残差画素ブロックに関連付けられたノードを含み得る。CUのTUはRQTのリーフノードに対応し得る。
TUの残差画素ブロックの画素はYサンプルと、Cbサンプルと、Crサンプルとを含むため、各TUはYサンプルのサンプルブロックと、Cbサンプルのサンプルブロックと、Crサンプルのサンプルブロックとに関連付けられ得る。残差生成ユニット102は、CUのサンプルブロックの対応するサンプルからCUのPUの予測サンプルブロックを減算することによって、CUのための残差サンプルブロックを生成することができる。
変換処理ユニット104は、TUに関連付けられた残差サンプルブロックに1つまたは複数の変換を適用することにより、CUの各TUについて係数ブロックを生成することができる。各係数ブロックは係数の2次元行列とすることができる。変換処理ユニット104は、TUに関連付けられた残差サンプルブロックに様々な変換を適用し得る。例えば、変換処理ユニット104は、離散コサイン変換(DCT)、方向性変換、または概念的に類似した変換をTUに関連付けられた残差サンプルブロックに適用し得る。
量子化ユニット106は、TUに関連付けられた係数ブロック内の係数を量子化する。この量子化処理によって、係数のうちの一部または全部に付随するビット深度を低減することができる。例えば、量子化時にnビットの係数はmビットの係数に端数切り捨てされ得る。ここで、nはmより大きい。量子化ユニット106はCUに関連付けられた量子化パラメータ(QP)値に基づいてCUのTUに関連付けられた係数ブロックを量子化してもよい。ビデオエンコーダ20は、CUに関連付けられるQP値を調整することにより、CUに関連付けられた係数ブロックに適用される量子化の程度を調整することができる。
ビデオエンコーダ20は、様々な方法でCUにQP値を関連付けることができる。例えば、ビデオエンコーダ20は、CUに関連付けられたツリーブロックについてレート歪み分析を行ってもよい。レート歪み分析では、ビデオエンコーダ20は、異なるQP値を使用してツリーブロックを複数回符号化することによって、ツリーブロックの複数のコード化表現を生成してもよい。ビデオエンコーダ20は、ビットレートと歪み測度とが最も低いツリーブロックのコード化表現のCUに特定のQP値が関連付けられるとき、その特定のQP値がCUに関連付けられることを通知してもよい。
逆量子化ユニット108と逆変換処理ユニット110とは、係数ブロックにそれぞれ逆量子化と逆変換とを適用して係数ブロックから残差サンプルブロックを再構築することができる。再構築ユニット112は、再構築された残差サンプルブロックを、予測処理ユニット100によって生成された1つまたは複数の予測サンプルブロックからの対応するサンプルに加えて、TUに関連付けられた再構築残差サンプルブロックを生成する。ビデオエンコーダ20は、このようにしてCUの各TUについてサンプルブロックを再構築することによりCUのサンプルブロックを再構築することができる。
フィルターユニット113が、CUに関連付けられたサンプルブロック内のブロッキングアーチファクトを低減するデブロック操作を行ってもよい。フィルターユニット113が再構築されたサンプルブロックに対して1つまたは複数のデブロック操作を行った後、復号ピクチャバッファ114が再構築サンプルブロックを格納してもよい。動き推定ユニット122と動き補償ユニット124とが、再構築サンプルブロックを含む参照ピクチャを使用して後続のピクチャのPUについてインター予測を行ってもよい。さらに、イントラ予測処理ユニット126が復号ピクチャバッファ114内の再構築サンプルブロックを使用してCUと同じピクチャ内の他のPUについてイントラ予測を行ってもよい。
エントロピー符号化ユニット116は、ビデオエンコーダ20の他の機能構成要素からデータを受け取ることができる。例えば、エントロピー符号化ユニット116は、量子化ユニット106から係数ブロックを受け取り、予測処理ユニット100から構文要素を受け取ることができる。エントロピー符号化ユニット116は、このデータに1つまたは複数のエントロピー符号化演算を行ってエントロピーコード化データを生成することができる。例えば、ビデオエンコーダ20は、データに対して、コンテキスト適応型可変長コーディング(context−adaptive variable length coding:CAVLC)演算、CABAC演算、可変−可変(variable−to−variable:V2V)長コーディング演算、構文ベースのコンテキスト適応型2値算術コーディング(syntax−based context−adaptive binary arithmetic coding:SBAC)演算、確率区間区画化エントロピー(Probability Interval Partitioning Entropy:PIPE)コーディング演算、指数ゴロムコーディング、またはその他の種類のエントロピー符号化演算を行ってもよい。エントロピー符号化ユニット116は、このエントロピー符号化データを含むビットストリームを出力することができる。
データに対するエントロピー符号化演算の実行の一部として、エントロピー符号化ユニット116はコンテキストモデルを選択してもよい。エントロピー符号化ユニット116がCABAC演算を行う場合、コンテキストモデルは特定のビンが特定の値を有する確率の推定値を示すことができる。CABACの文脈では、「ビン」という用語を使用して構文要素の2値化表現の1ビットを指すことがある。
前述のように、ビデオエンコーダ20はビデオデータの符号化表現を含むビットストリームを生成することができる。ビデオデータの符号化表現は、複数のNALユニットを含み得る。NALユニットは、スライスのコード化表現を含むコード化スライスNALユニットを含み得る。スライスは複数のピクチャ区画(例えばエントロピースライス、タイル、またはWWP波)に関連付けられたツリーブロックを含み得るため、コード化スライスNALユニットは複数の符号化ピクチャ区画を含み得る。前述のように、符号化ピクチャ区画は単一のピクチャ区画に関連付けられた、コード化スライスNALユニット内のコード化ツリーブロックのグループとすることができる。
各コード化スライスNALユニットは、スライスヘッダーとスライスデータとを含み得る。コード化スライスNALユニットのスライスデータは、スライス内の各ツリーブロックのコード化表現を含み得る。場合によっては、スライスのツリーブロックは異なるピクチャ区画に関連付けられ得る。したがって、単一のコード化スライスNALユニットのスライスデータが、複数のピクチャ区画に関連付けられた符号化ツリーブロックを含み得る。前述のように、「符号化画素区画」および「コード化サブスライス」という用語を使用して、単一ピクチャ区画に関連付けられたコード化スライスNALユニット内のコード化ツリーブロックのグループを指すことがある。
ビデオデコーダ30を、複数の符号化ピクチャ区画を並列して構文解析または復号するように構成してもよい。複数の符号化ピクチャ区画の同時構文解析または同時復号を容易にするため、各符号化ピクチャ区画はバイト整列され得る。すなわち、符号化ピクチャ区画の先頭のビットがメモリ内のアドレス指定可能バイトの先頭のビットになり、符号化ピクチャ区画の最後のビットがメモリ内のアドレス指定可能バイトの最後のビットになる。
コード化スライスNALユニットのスライスデータ内の符号化ピクチャ区画が確実にバイト整列されるようにするため、本開示の技術により、コード化スライスNALユニットのスライスヘッダーはバイト境界で終結してもよい。場合によっては、スライスヘッダーの先頭と最後の両方がバイト整列されてもよい。例えば、ビデオエンコーダ20は、複数の符号化バイト整列エントロピースライス、タイル、またはWWP波(すなわち符号化ピクチャ区画)内のツリーブロックを含むスライスのバイト整列スライスヘッダーを持つコード化スライスNALを生成してもよい。
ある例では、ビデオエンコーダ20は、SPS、PPS、またはAPSなどのパラメータセットにフラグ(例えばslice_header_byte_aligned_flag)を含めてもよい。フラグが1の場合、パラメータセットを参照する各コード化スライスNALユニットのスライスヘッダーがバイト整列される。このような例では、フラグが0の場合、パラメータセットを参照する各コード化スライスNALユニットのスライスヘッダーはバイト整列される場合とされない場合がある。他の例では、このフラグの意味を逆にしてもよい。他の例では、コード化スライスNALユニットのスライスヘッダーは常にバイト整列される。これは、上記のフラグが存在しないのと等しく、フラグの値が常に1であると推定されるのと等しい。
このようにして、ビデオエンコーダ20はパラメータセットを含むNALユニットを生成することができ、ビデオデコーダ30はそれを受信することができる。異なる例では、パラメータセットはSPS、PPS、またはAPSであってもよい。パラメータセットは、そのパラメータセットを参照するスライスヘッダーがバイト整列されているか否を示す構文要素を含み得る。
ビデオエンコーダ20がバイト整列スライスヘッダーを生成する例では、スライスヘッダーは様々な構文規則に準拠し得る。例えば、ビデオエンコーダ20は、以下の表1に示す例示の構文規則に準拠したスライスヘッダーを生成してもよい。
Figure 0005837217
説明の便宜上、表1の例示の構文規則では既存の構文要素を省略している。表1の例示の構文規則で、bit_equal_to_one構文要素は、値1を有するビットである。byte_aligned()関数は、スライスヘッダーがバイト整列されているか否かを示す値を返す。
さらに、本開示の技術によると、ビットストリームは、コード化スライスNALユニット内のコード化ピクチャ区画の入口点を示す1つまたは複数のSEIメッセージを含み得る。説明の便宜上、本開示ではコード化スライスNALユニット内の符号化ピクチャ区画の入口点を示すSEIメッセージを「入口点SEIメッセージ」と呼ぶことがある。
ある例では、SEIメッセージは、SEIメッセージのペイロードのタイプを指定するpayloadType構文要素を含む。そのようなある例では、入口点SEIメッセージのpayloadType構文要素は、他のタイプのSEIメッセージのpayloadType構文要素とは異なり得る。したがって、入口点SEIメッセージは、入口点SEIメッセージが、コード化スライスNALユニット内の符号化ピクチャ区画の入口点を示すSEIメッセージのタイプに属することを示す構文要素を含み得る。
ビットストリームは、入口点SEIメッセージを含むSEI NALユニットを含み得る。ある例では、SEI NALユニット内の入口点SEIメッセージは、そのSEI NALユニットの直後のコード化スライスNALユニットに適用され得る。したがって、ビデオデコーダ30は、ビットストリーム内で複数の符号化ピクチャ区画を含むNALユニットの直前のSEI NALユニットに少なくとも部分的に基づいて、SEIメッセージが複数の符号化ピクチャ区画を含むNALユニットに適用可能であると判断することができる。説明の便宜上、SEIメッセージが適用され得るコード化スライスNALユニットを、本開示では入口点SEIメッセージのコード化スライスNALユニットと呼ぶ。
ある例では、SEIメッセージはSEIメッセージが適用可能なユニットを示すレベルがSEIメッセージに関連付けられる。入口点SEIメッセージは、入口点SEIメッセージを含むSEI NALユニットに続くコード化スライスNALユニットに適用可能としてもよい。あるいは、入口点SEIメッセージは、入口点SEIメッセージを含むSEI NALユニットに続くコード化スライスNALユニットに含まれるコード化スライスに適用可能としてもよい。したがって、入口点SEIメッセージは、NALユニットレベルSEIメッセージまたはスライスレベルSEIメッセージであり得る。
さらに、ある例では、コード化スライスNALユニットがピクチャの最初のビデオコーディングレイヤ(VCL)NALユニットである場合、コード化スライスNALユニットに適用可能な入口点SEIメッセージを含むSEI NALユニットは、10であるNALユニットタイプを有してもよい。一方、コード化スライスNALユニットがピクチャの最初のVCL NALユニットでない場合、コード化スライスNALユニットに適用可能な入口点SEIメッセージを含むSEI NALユニットは、11であるNALユニットタイプを有してもよい。「VCL NALユニット」は、VCL NALユニットに分類されるnal_unit_typeの予約値を有するコード化スライスNALユニットおよびNALユニットのサブセットを指す総称である。VCL NALユニットではないタイプのNALユニットを、非VCL NALユニットと呼ぶ場合がある。非VCL NALユニットのタイプの例としては、SPS NALユニット、PPS NALユニット、SEI NALユニットなどがある。nal_unit_typeは、NALユニットのNALユニットタイプを指定する、NALユニットのヘッダー内の構文要素である。
ビデオエンコーダ20は様々な構文規則を有する入口点SEIメッセージを生成することができる。例えば、ビデオエンコーダ20は、以下の表2に示す構文規則を有する入口点SEIメッセージを生成してもよい。
Figure 0005837217
表2の例示の構文規則において、offset_len_minus10構文要素に10を加えた値によって、substream_offset[i]構文要素の長さをビット数で指定する。このようにして、オフセット構文要素のそれぞれの長さは、offset_len_minus10構文要素の値に10を加えた値に等しい。さらに、表2の例示の構文規則において、num_offsets_minus1構文要素に1を加えた値によって、入口点SEIメッセージ内のsubstream_offset[i]構文要素の数を指定する。
表2の例示の構文規則において、substream_offset[i]構文要素は、i番目のオフセットをバイト数で指定する。入口点SEIメッセージのコード化スライスNALユニットは、符号化ピクチャ区画インデックス値0、1、2...、num_offsets_minus1+1を有する、num_offsets_minus1プラス2個の符号化ピクチャ区画からなり得る。符号化ピクチャ区画0は、入口点SEIメッセージのコード化スライスNALユニットのバイト0からsubstream_offset[0]−1までからなり得る。kが1からnum_offsets_minus1+1までの範囲である符号化ピクチャ区画kは、入口点SEIメッセージのコード化スライスNALユニットのバイトsubstream_offet[k−1]からsubstream_offset[k]−1までからなり得る。
このようにして、ビデオエンコーダ20は、それに基づいてオフセット構文要素のビット数で表された長さを判断可能な構文要素を通知することができる。さらに、ビデオエンコーダ20は、それに基づいて一連のオフセット構文要素内のオフセット構文要素の数を判断可能な構文要素を通知することができる。さらに、ビデオエンコーダ20は、一連のオフセット構文要素内のオフセット構文要素が、NALユニット内の符号化画素区画のバイトオフセットを示す、一連のオフセット構文要素を通知することができる。同様に、ビデオデコーダ30は、一連のオフセット構文要素のビット数で表した長さを指定する構文要素をビットストリームで受信することができる。ビデオデコーダ30は一連のオフセット構文要素内のオフセット構文要素の数を指定する構文要素もビットストリームで受信することができる。さらに、ビデオデコーダ30は、一連のオフセット構文要素内のオフセット構文要素がNALユニット内の符号化ピクチャ区画のバイトオフセットを示す、一連のオフセット構文要素をビットストリームで受信することができる。
表2の例示の構文規則とは別の例示の構文規則では、substream_offset[i]の長さは、1バイトと2バイトと3バイトと4バイトとのうちの1つである。substream_offset[i]の長さは、1バイトと、2バイトと、3バイトと、4バイトとにそれぞれ対応する値0、1、2または3を有する構文要素によって示すことができる。このような例では、表2のoffset_len_minus10構文要素をこの構文要素に置き換えることができる。さらに、入口点SEIメッセージのその他の様々な例示の構文規則において、表2のoffset_len_minus10構文要素がoffset_len_minus8構文要素に置き換えられsubstream_offset[i]構文要素の最小の長さは8ビットである。
前述のように、複数のピクチャ区画(例えば、エントロピースライス、コード化タイル、または波面波)にわたるピクチャ内予測が許容され得る。したがって、1つの符号化ピクチャ区画の復号は、他の符号化ピクチャ区画の復号に依存し得る。ある例では、符号化ピクチャ区画が異なるNALユニットにカプセル化され、それらのNALユニットは異なるパケット、例えばリアルタイムトランスポートプロトコル(RTP)パケットにカプセル化される。異なるNALユニットが依存符号化ピクチャ区画を含み得るため、これらのNALユニットうちの1つの損失によって、ビデオデコーダ30は他のNALユニット内の符号化区画を復号することができなくなる可能性がある。したがって、1つのパケットに複数のNALユニットを含めると有利になり得る。ある種の従来のCODECでは、パケタイザーが、コード化スライスNALユニットのNALユニットヘッダー内の情報から、コード化スライスNALユニットが符号化ピクチャ区画を含むことを判断することができない場合がある。そのようなCODECでは、コード化スライスNALユニットが符号化ピクチャ区画を含むことを示す情報がコード化スライスNALユニットのスライスヘッダー内にのみ存在することがある。コード化スライスNALユニットのスライスヘッダーはエントロピー符号化される。したがって、コード化スライスNALユニットがコード化ピクチャ区画を含むことを判断するには、パケタイザーがコード化スライスNALユニットのスライスヘッダーをエントロピー復号する必要がある場合があり、それによってパケタイザーが複雑化する。
パケタイザーの複雑さを低減するために、ピクチャ区画境界を越えたピクチャ内予測が可能な単一の符号化ピクチャ区画を含むNALユニットに、異なるNALユニットタイプを割り振ってもよい。さらに、異なる適用範囲を有する情報を含むSEI NALユニットに異なるユニットタイプを割り振ってもよい。
ビデオエンコーダ20は様々な方法でNALユニットのタイプを示すことができる。例えば、ビデオエンコーダ20は、NALユニットのNALユニットヘッダーに「nal_unit_type」構文要素を含めてそのNALユニットのタイプを示してもよい。ある例では、「nal_unit_type」構文要素は6ビットとすることができる。このような例では、「nal_unit_type」構文要素によって指定される値は0から63までの範囲であってもよい。本開示では、範囲は別に記載のない限り範囲の両端を含むものとする。「nal_unit_type」構文要素が0、または48から63までの範囲であるNALユニットは、復号処理に影響を与えないものとしてもよい。「nal_unit_type」構文要素が0、または48から63までの範囲であるNALユニットは、アプリケーションによって決まる使い方をしてもよい。「nal_unit_type」構文要素が0、または48から63までの範囲であるNALユニットには復号処理が指定されない。異なるアプリケーションが「nal_unit_type」構文要素が0、または48から63までの範囲であるNALユニットを異なる目的に使用してもよい。したがって、異なる適用範囲を有する情報を含むSEI nalユニットに異なるNALユニットタイプが割り当てられる。他の例では、HEVC WD4の場合のように、「nal_unit_type」構文要素は5ビットであってもよい。「nal_unit_type」構文要素が5ビットである例では、「nal_unit_type」構文要素の値の範囲は0から31までであってもよい。
以下に示す表3に、「nal_unit_type」構文要素の値と、NALユニットの内容およびNALユニットのローバイトシーケンスペイロード(Raw Byte Sequence Payload:RBSP)構文構造と、NALユニットタイプクラスとの関係の一例を示す。
Figure 0005837217
表3の例において、1から6までの範囲の「nal_unit_type」構文要素を有するNALユニットはコード化スライスNALユニットである。NALユニットが、特定のピクチャのスライスまたはサブスライスに関連付けられたデータを含み、そのNALユニットの「nal_unit_type」構文要素が5または6である場合、「nal_unit_type」構文要素が1から4であるNALユニットはその特定のピクチャに関連付けられたデータを含み得ない。NALユニットが特定のピクチャのスライスまたはサブスライスに関連付けられたデータを含み、そのNALユニットの「nal_unit_type」構文要素が5または6である場合、ピクチャは、インスタンテイニアスデコーダリフレッシュ(Instantaneous Decoder Refresh:IDR)ピクチャであり得る。表3に示すように、コード化サブスライスを含むNALユニットと、コード化サブスライスを含まないコード化スライスNALユニットは、同じ構文に準拠するRBSPを含み得る。
NALユニットが「nal_unit_type」構文要素2、4、または6を有する場合、そのNALユニットはサブスライスを含む。例えば、NALユニットが「lightweight_slice_flag」1(すなわち軽量スライス)を有するスライスに関連付けられたデータを含む場合、そのNALユニットは値2、4、または6の「nal_unit_type」構文要素を有することができる。説明の便宜上、本開示では「nal_unit_type」が2、4、または6のNALユニットをサブスライスNALユニットと呼ぶ。したがって、コード化サブスライスを含むNALユニットは、コード化サブスライスを含まないコード化スライスNALユニットとは異なるNALユニットタイプに属し得る。例えば、コード化サブスライスを含むNALユニットは、コード化サブスライスを含まないコード化スライスNALユニットのタイプ構文要素によって指定される数値とは異なる数値を指定するタイプ構文要素を含み得る。復号時、ビデオデコーダ30は、サブスライス内のピクチャ内予測を行うために他のスライスまたはサブスライスからのデータを必要とする場合がある。
NALユニットが、10または11の「nal_unit_type」構文要素を有する場合、そのNALユニットはSEI NALユニットである。「nal_unit_type」構文要素が10のSEI NALユニットは、1つまたは複数のコード化ピクチャ全体に適用可能なSEIメッセージを含み得る。「nal_unit_type」構文要素が10のSEI NALユニットは、コード化ピクチャの最初のVCL NALユニットに先行することができる。
「nal_unit_type」構文要素が11のSEI NALユニットを本開示ではサブピクチャSEI NALユニットと呼ぶことがある。サブピクチャSEI NALunitは、コード化ピクチャの1つまたは複数の連続するVCL NALユニットのリストに適用可能なSEIメッセージを含むことができる。このリストは、コード化ピクチャのすべてのVCL NALユニットの真のサブセットを含むことができ、コード化ピクチャの最初のVCL NALユニットを含まない。サブピクチャSEI NALユニットは、サブピクチャSEI NALユニットに含まれるSEIメッセージが適用されるVCL NALユニットのリストの最初のVCL NALユニットに先行することができる。
他の例では、「nal_unit_type」構文要素の値は表3に示すものとは異なる意味を持っていてもよい。例えば、他の例では、イントラスライス(すなわちIスライス)とインタースライス(すなわちPスライスおよびBスライス)は、異なるNALユニットタイプを有し得る。言い換えると、Iスライスについては「nal_unit_type」構文要素の第1の値があり、PスライスとBスライスについては「nal_unit_type」構文要素の第2の値があり得る。他の例では、Iスライスについては「nal_unit_type」構文要素の第1の値があり、Pスライスについては「nal_unit_type」構文要素の第2の値があり、Bスライスについては「nal_unit_type」構文要素の第3の値があってもよい。さらに他の例では、短いスライス(すなわち「lightweight_slice_header」構文要素が1のスライス)を表すデータを含むNALユニットとフルスライス(すなわち「lightweight_slice_header」構文要素が0であるスライス)を表すデータを含むNALユニットについて、「nal_unit_type」構文要素の異なる値があってもよい。
表3に代わる他の例では、SEIメッセージがいくつかのレベルに分類されていてもよい。各レベルは「nal_unit_type」構文要素の異なる値に関連付けることができる。SEIメッセージのレベルには次のものが含まれ得る。
1)シーケンスレベル:1つまたは複数のコード化ビデオシーケンス全体に適用可能。
2)サブシーケンスレベル:複数のコード化ピクチャだが1未満のコード化ビデオシーケンスに適用可能。
3)ピクチャレベル:1つのアクセスユニット内のすべてのVCL NALユニットに適用可能。
4)サブピクチャレベル:アクセスユニット内のすべてのVCL NALユニットの真のサブセットに適用可能。例えば、サブピクチャレベルのSEIメッセージは、ある対象領域をカバーするVCL NALユニット、H.264/AVC標準のAnnex Gで定義されているレイヤ表現のVCL NALユニット、H.264/AVC標準のAnnex Hで定義されているビューコンポーネントのVCL NALユニット、またはH.264/AVC標準によって定義されている冗長コード化ピクチャのVCL NALユニットに適用可能とすることができる。
ビットストリームを一連のアクセスユニットに分割することができる。各アクセスユニットは、1つのコード化ピクチャと、0以上の非VCL NALユニットとを含み得る。ビットストリームの先頭のアクセスユニットは、ビットストリームの先頭のNALユニットから始まる。コード化ピクチャの最後のVCL NALユニットの後にある以下に示すNALユニットのうちのいずれかの最初のNALユニットは、新しいアクセスユニットの開始を指定することができる。
・アクセスユニットデリミタNALユニット(ある場合)
・シーケンスパラメータセットNALユニット(ある場合)
・ピクチャパラメータセットNALユニット(ある場合)
・アダプテーションパラメータセットNALユニット(ある場合)
・「nal_unit_type」が10のSEI NALユニット(ある場合)
・「nal_unit_type」が14から29までの範囲のNALユニット(ある場合)
・コード化ピクチャの最初のVCL NALユニット(常に存在する)
ビデオエンコーダ20とビデオデコーダ30とは、アクセスユニット内のコード化ピクチャと非VCL NALユニットの順序に関する以下の制約に従い得る。
・アクセスユニットデリミタNALユニットがある場合、アクセスユニットデリミタNALは先頭NALユニットである。いずれのアクセスユニット内でもアクセスユニットデリミタNALは1つしかあり得ない。
・SEI NALユニットの「nal_unit_type」構文要素が10の場合、そのSEI NALユニットはコード化ピクチャの先頭VCL NALユニットに先立つ。
・SEI NALユニットの「nal_unit_type」構文要素が11の場合、そのSEI NALユニットはコード化ピクチャの先頭VCL NALユニットの後に続き、SEI NALユニットが適用される先頭VCL NALユニットに先立つ。したがってそのSEI NALユニットはコード化ピクチャの最後のVCL NALユニットに先立つ。
・SEI NALユニットがバッファリング期間SEIメッセージを含む場合、そのSEI NALユニットは「nal_unit_type」構文要素10を有することができ、バッファリング期間SEIメッセージはアクセスユニット内の先頭SEI NALユニットの先頭SEIメッセージペイロードである。
・「nal_unit_type」構文要素が0、11、13、または、30から63までの範囲にあるNALユニットは、コード化ピクチャの先頭VCL NALユニットに先立たない。SPS NALユニット、PPS NALユニット、またはAPS NALユニットは、アクセスユニット内に存在してもよいが、そのアクセスユニット内の一次符号化ピクチャの最後のVCL NALユニットの後に続き得ない。
このようにして、ビデオエンコーダ20はビデオデータを符号化する方法を実装することができる。この方法は、複数のNALユニットを生成することを備え得る。この方法は、NALユニットのNALユニットタイプに基づいてコード化サブスライスを含むNALユニットのサブセットを識別することも含み得る。さらに、この方法は、NALユニットのサブセットを含むパケットを生成することを含み得る。同様に、ビデオデコーダ30は、各NALユニットがコード化サブスライスを含み、各NALユニットが、そのNALユニットがコード化サブスライス(すなわち符号化ピクチャ区画)を含むNALユニットのタイプに属することを示すタイプ標識を含む、複数のNALユニットを含むパケットを受信することを備えるビデオデータの復号方法を実装することができる。このビデオデータ復号方法は、サブスライスを復号することも含み得る。
他の例では、ビデオエンコーダ20は、複数のサブスライスに関連付けられたデータを含む単一のNALユニットを生成してもよい。例えば、ビデオエンコーダ20は複数の軽量スライスに関連付けられたデータを含む単一のコード化スライスNALユニットを生成してもよい。このような例では、NALユニット内の軽量スライスはバイト整列されてよく、ビデオエンコーダ20はサブスライスのうちの先頭のサブスライスに関連付けられたデータのほか、各サブスライスに関連付けられたデータのバイトオフセットを通知してもよい。ビデオデコーダ30は、バイトオフセットを使用して、復号のために異なる処理コアに対して異なるサブスライスを割り振ることができる。このようにして、ビデオデコーダ30はサブスライスに関連付けられたデータを並列して復号することができる。しかし、ビデオデコーダ30がサブスライスを並列して復号しない場合、ビデオデコーダ30はバイトオフセットを無視してもよい。したがって、ビデオデコーダ30がサブスライスを並列して復号しない場合は、バイトオフセットを送るのは非効率的な場合がある。
ある例では、タイルを使用して段階的復号リフレッシュ(gradual decoding refresh:GDR)を実現してもよい。例えば、ビデオエンコーダ20はピクチャシーケンス内の各ピクチャを同じ方法でタイルに区画化してもよい。例えば、ビデオエンコーダ20は同じ9本の垂直タイル境界を使用して各ピクチャを8個のタイルに区画化してもよい。この例では、左端のタイルがタイル0、左から2番目のタイルがタイル1という具合になってもよい。各ピクチャは少なくとも1つのPスライスを含む。したがって、シーケンス内の各ピクチャの少なくとも一部が少なくとも1つの他のピクチャに依存する。シーケンスの先頭ピクチャ(すなわちピクチャ0)内では、タイル0内のツリーブロックがすべてイントラコーディングされ、先頭ピクチャの残りのすべてのタイル内のツリーブロックがインターコーディングされる。シーケンスの2番目のピクチャ(すなわちピクチャ1)内では、タイル1内のツリーブロックがすべてイントラコーディングされ、2番目のピクチャの残りのすべてのタイル内のツリーブロックがインターコーディングされる。このパターンがシーケンス内の全ピクチャに対して続いてもよい。言い換えると、ピクチャのシーケンスのピクチャN内で、0からシーケンス内のピクチャの数から1を引いた数までの範囲の任意の値Nについて、タイルN/8内のすべてのツリーブロックがイントラコーディングされ、他のすべてのタイル内のツリーブロックがインターコーディングされる。前文中の「/」は剰余除算(すなわちモジュロ演算子)を示す。復号がそのピクチャから開始する場合、次の7個のピクチャのほかすべてのピクチャが完全に復号されるという点で、N/8が0であるインデックス値を持つ各ピクチャをランダムアクセス点として使用することができる。他の例では、他の数のタイルを使用してもよい。例えば、ビデオエンコーダ20は1つのピクチャにつき2つのタイルのみを使用するGDRを実装してもよい。
ランダムアクセスとは、コード化ビットストリームを、ビデオストリーム内の任意のピクチャから、特に先頭のコード化ピクチャではないコード化ピクチャから復号することを指す。復号がpicPから開始するときに、復号順と出力順の両方においてコード化ピクチャpicQの後続のすべてのコード化ピクチャを正しく復号することができる場合、コード化ピクチャpicPはランダムアクセス点(RAP)である。picQはpicPと同じであってもなくてもよい。RAPは、IDRピクチャでも非IDRピクチャでもよい。復号順でIDRピクチャの後続のすべてのコード化ピクチャを、復号順でIDRピクチャに先行する任意のピクチャからインター予測なしに復号することができる。非IDRピクチャはIDRピクチャではない任意のピクチャである。
非IDRランダムアクセス点は、以下の条件が真であるコード化ピクチャである。
・非IDRランダムアクセス点(picR)はIDRピクチャではない。
・picRのピクチャ順カウント(POR)をrPocとし、picAを復号順と出力順の両方において同じコード化ビデオシーケンス内のpicRの後続ピクチャとし、picAのPOCをaPocとする。picRでランダムアクセスを行った場合(すなわちpicRから復号を開始した場合)、同じコード化ビデオシーケンス内にあり、出力順でpicAの後にあるすべてのピクチャを正しく復号することができる。
非IDR RAPは、ランダムアクセスをその非IDR RAPで行ったときに、非IDR RAPと同じコード化ビデオシーケンス内にあって出力順でその非IDR RAPの後にあるすべてのピクチャを正しく復号することができる場合に、クリーンなランダムアクセス(CRA)ピクチャである。これが真でない場合、その非IDR RAPを段階的復号リフレッシュ(GDR)ピクチャと呼ぶことができる。
GDRシーケンス内の各ピクチャはそれ自体のPPSを有することができる。各PPSはタイル境界を指定する。言い換えると、タイル境界を示す構文要素がGDRシーケンス上の各ピクチャのPPSにおいて複製され得る。これはビットの浪費となる可能性があり、インバンドPPS更新が必要になり得、それによって誤り耐性問題が生じる可能性がある。
ある例では、ビデオエンコーダ20は、ピクチャが2つのタイルしか含まないタイル境界の変更を可能にしてもよい。例えば、ビデオエンコーダ20はピクチャのシーケンス内の各ピクチャを1対のタイルに区画化してもよい。この場合、ビデオエンコーダ20は、ピクチャ境界にはない単一の垂直方向または水平方向のタイル境界を持つピクチャのみのタイル境界の変更を可能にし得る。タイル境界をピクチャからピクチャに移動することができる。例えば、タイル境界が垂直の場合、タイル境界は左から右または右から左に移動可能である。タイル境界が水平の場合、タイル境界は上方または下方に移動可能である。
タイル境界の移動は様々な方法で通知することができる。例えば、ビデオエンコーダ20は、シーケンス内のピクチャからピクチャへのタイル境界の移動を示す1つまたは複数の構文要素を生成してもよい。このような構文要素は、様々な構文構造内に配置可能である。例えば、ビデオエンコーダ20は、境界の移動と位置とを示す構文要素の少なくとも一部を含むパラメータセットを生成してもよい。この例では、パラメータセットはSPS、PPS、APS、またはその他のタイプのパラメータセットとすることができる。この種のある例では、タイル境界の移動と位置とが、SPSおよび/またはPPS内の構文要素と組み合わせて示されてもよい。他の例では、タイル境界の移動と位置とは、APSまたはスライスヘッダー内の1つまたは複数の構文要素によってのみ示される。他の例では、ビデオエンコーダ20は、境界の移動と位置とを示す1つまたは複数の構文要素を含むスライスヘッダーを生成してもよい。
他の例では、SPS内の構文要素とスライスヘッダーとで境界の移動と位置とを示す。表4にこの例におけるSPS RBSPの構文規則を示す。表5にスライスヘッダーの構文規則を示す。表4のSPS RBSPにおける構文要素と表5のスライスヘッダーとが組み合わさってタイル境界の移動を通知する。
Figure 0005837217
Figure 0005837217
表4において、「dynamic_tile_boundary_flag」構文要素は、タイル境界が動的に変化するか否かを示す。例えば、「dynamic_tile_boundary_flag」構文要素が1の場合、タイル境界は動的に変化し得る。「dynamic_tile_boundary_flag」が0の場合、タイル境界は動的に変化しない。「num_tile_columns_minus1」構文要素と「num_tile_rows_minus1」構文要素との和が1でない場合、「dynamic_tile_boundary_flag」構文要素は1にはなり得ない。「dynamic_tile_boundary_flag」構文要素が存在しない場合、ビデオデコーダ30は「dynamic_tile_boundary_flag」構文要素が0であると推論し得る。1つの垂直方向のタイルまたは2つの水平方向のタイルしかない場合にのみ、「dynamic_tile_boundary_flag」構文要素は1となり得る。
さらに、表4の「tile_boundary_change_direction_flag」構文要素により、タイル境界の移動の方向を指定することができる。例えば、「tile_boundary_change_direction_flag」構文要素が0で、タイル境界が垂直の場合、タイル境界は、左から右に1つのピクチャから次のピクチャへと移動し得る。「tile_boundary_change_direction_flag」構文要素が1で、タイル境界が水平の場合、タイル境界は右から左に1つのピクチャから次のピクチャへと移動し得る。「tile_boundary_change_direction_flag」構文要素が0で、タイル境界が水平の場合、タイル境界は上から下に移動し得る。「tile_boundary_change_direction_flag」構文要素が1で、タイル境界が水平の場合、タイル境界は下から上に移動し得る。
表4の「tile_boundary_change_rate_minus1」構文要素は、タイル境界が1つのピクチャから次のピクチャに移動するツリーブロックの行または列の数を指定する。例えば、タイル境界が垂直の場合、「tile_boundary_change_rate_minus1」構文要素は、タイル境界が1つのピクチャから次のピクチャに移動するツリーブロックの列の数を示し得る。タイル境界が水平の場合、「tile_boundary_change_rate_minus1」構文要素は、タイル境界が1つのピクチャから次のピクチャに移動するツリーブロックの行の数を示し得る。行数または列数は、「tile_boundary_change_rate_minus1」構文要素に1を加えた数とすることができる。例えば、変数「TileBoundaryChangeRate」の値は、「tile_boundary_change_rate_minus1」構文要素に1を加えることによって導き出すことができる。説明の便宜上、「tile_boundary_change_rate_minus1」構文要素をレート構文要素と呼ぶことがある。
ビデオデコーダ30は、表5の「tile_boundary_change_cycle」構文要素を使用してタイル境界の位置を導き出すことができる。説明の便宜上、「tile_boundary_change_cycle」構文要素を周期構文要素と呼ぶことがある。周期構文要素は、シーケンス内のピクチャに関連付けられた周期を示し得る。タイル境界が垂直の場合、「tile_boundary_change_cycle」構文要素は以下の式で示されるビット数によって表すことができる。
Figure 0005837217
上式で、Ceil(...)は上限関数、Log2(...)は2を底とした対数関数、PicWidthInLcus」はLCU(すなわちツリーブロック)内のピクチャの幅である。さらに、タイル境界が垂直の場合、「tile_boundary_change_cycle」構文要素は、0から以下の式で示される値までの範囲の値をとり得る。
Figure 0005837217
タイル境界が水平の場合、「tile_boundary_change_cycle」要素は、以下の式によって示されるビット数で表すことができる。
Figure 0005837217
上式で、「PicheightInLcus」はLCU(すなわちツリーブロック)内のピクチャの高さである。さらに、タイル境界が水平の場合、「tile_boundary_change_cycle」構文要素は0から以下の式で示される値までの範囲の値をとり得る。
Figure 0005837217
タイル境界が垂直の場合(すなわち「num_tile_columns_minus1」構文要素が1の場合)、ビデオデコーダ30は、タイル境界の位置を以下のようにして導き出すことができる。「tile_boundary_change_direction_flag」構文要素が0の場合、左のタイルのツリーブロックにおける幅は「tile_boundary_change_cycle」*「TileBoundaryChangeRate」に等しい。「TileBoundaryChangeRate」変数は「tile_boundary_change_rate_minus1」構文要素に1を加えた値に等しい。一方、「tile_bondary_change_direction_flag」構文要素が1の場合、右のタイルのツリーブロックにおける幅は「tile_boundary_change_cycle」*「TileBoundaryChageRate」に等しい。
タイル境界が水平の場合(すなわち「num_tile_rows_minus1」構文要素が1の場合)、ビデオデコーダ30は、タイル境界の位置を以下のようにして導き出すことができる。「tile_boundary_change_direction_flag」構文要素が0の場合、上のタイルのツリーブロックにおける高さは「tile_boundary_change_cycle」*「TileBoundaryChangeRate」に等しい。「tile_boundary_change_direction_flag」構文要素が1の場合、下のタイルのツリーブロックにおける高さは「tile_boundary_change_cycle」*「TileBoundaryChangeRate」に等しい。
表5で、変数「IdrPicFlag」は以下のように指定される。
Figure 0005837217
言い換えると、スライスヘッダーを含むNALユニットの「nal_unit_type」構文要素の値が5または6の場合、「IdrPicFlag」変数の値は1である。
他の例において、表6にピクチャパラメータセットRBSPの例示の構文規則を示す。PPS RBSPの構文要素と表5のスライスヘッダーとが組み合わさって、タイル境界の移動と位置とを通知することができる。
Figure 0005837217
表6の「dynamic_tile_boundary_flag」構文要素と、「tile_boundary_change_direction_flag」構文要素と、「tile_boundary_change_rate_minus1」構文要素とは、表4の対応する要素と同じ意味を有し得る。表4、表5、および表6のその他の構文要素は、前掲のJCTVC文書JCTVC−F335またはHEVC WD4で定義されている意味を有する。ある例では、ビデオエンコーダ20とビデオデコーダ30とは、表4の構文規則に加えて、またはその代わりに、表6の構文規則を使用してもよい。
このようにして、ビデオエンコーダ20はビデオデータを符号化する方法を実行することができる。ビデオデータの符号化方法は、シーケンス内の各ピクチャをタイル境界によって分けられた1対のタイルに区画化することを備え得る。この符号化方法は、シーケンス内のピクチャからピクチャへのタイル境界の移動を示す1つまたは複数の構文要素を生成することも備え得る。同様に、ビデオデコーダ30は、ビデオデータを復号する方法を実行することができる。この復号方法は、ピクチャのシーケンス内のピクチャからピクチャへのタイル境界の移動を示す1つまたは複数の構文要素を、ビデオデータのビットストリームで受信することを備え得る。この復号方法は、ピクチャのそれぞれについて、構文要素に基づいてタイル境界の位置を判断することも備え得る。
図3は、本開示の技術を実装するように構成された例示のビデオデコーダ30を示すブロック図である。図3は、説明のために示すものであって、本技術を本開示で大まかに例示し、説明する通りに限定するものではない。説明のために、本開示ではビデオデコーダ30についてHEVCコーディングの文脈で説明する。しかし、本開示の技術は他のコーディング標準または方法にも適用可能である。
図3の例では、ビデオデコーダ30は複数の機能構成要素を含む。ビデオデコーダ30の機能構成要素は、エントロピー復号ユニット150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構築ユニット158と、フィルターユニット159と、復号ピクチャバッファ160とを含む。予測処理ユニット152は、動き補償ユニット162とイントラ予測処理ユニット164とを含む。他の例では、ビデオデコーダ30の機能構成要素の数はこれより多くても少なくてもよく、異なる機能構成要素を含んでもよい。
ビデオデコーダ30は、複数の構文要素を備えるビットストリームを受信することができる。エントロピー復号ユニット150は、ビットストリームを構文解析してビットストリームから構文要素を抽出することができる。ビットストリームの構文解析の一部として、エントロピー復号ユニット150はビットストリーム内のエントロピー符号化された構文要素をエントロピー復号することができる。予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構築ユニット158と、フィルターユニット159とは、ビットストリームから抽出された構文要素に基づいて復号ビデオデータを生成することができる。
ビットストリームは、一連のNALユニットを備え得る。ビットストリームのNALユニットは、SPS NALユニット、PPS NALユニット、SEI NALユニットなどを含み得る。ビットストリームの構文解析の一部として、エントロピー復号ユニット150は、SPS NalユニットからSPS、PPS NALユニットからPPS、SEIユニットからSEIメッセージ、というように抽出して復号することができる。
さらに、ビットストリームのNALユニットは、コード化スライスNALユニットを含み得る。ビットストリームの構文解析の一部として、エントロピー復号ユニット150はコード化スライスNALユニットからコード化スライスを抽出してエントロピー復号することができる。コード化スライスのそれぞれはスライスヘッダーとスライスデータとを含み得る。スライスヘッダーはスライスに関する構文要素を含み得る。スライスヘッダー内の構文要素は、スライスを含むピクチャに関連付けられたPPSを識別する構文要素を含み得る。エントロピー復号ユニット150は、コード化スライスヘッダー内の構文要素についてCABAC復号演算などのエントロピー復号演算を行ってスライスヘッダーを復元することができる。
コード化スライスNALユニットからのスライスデータの抽出の一部として、エントロピー復号ユニット150はスライスデータ内のコード化CUから構文要素を抽出することができる。抽出される構文要素は、係数ブロックに関連付けられた構文要素を含み得る。エントロピー復号ユニット150は、これらの構文要素の一部に対してCABAC復号演算を行ってもよい。
構文要素に対するCABAC復号の実行の一部として、エントロピー復号ユニット150はコーディングコンテキストを識別することができる。エントロピー復号ユニット150は、1つの区間を上部部分区間と下部部分区間とに分割することができる。部分区間の一方には値0が関連付けられてもよく、他方の部分区間には値1が関連付けられてもよい。部分区間の幅は、関連付けられた値について識別されたコーディングコンテキストによって示される確率に比例し得る。符号化値が下部部分区間内にある場合、エントロピー復号ユニット150は下部部分区間に関連付けられた値を有するビンを復号することができる。符号化値が上部部分区間内にある場合、エントロピー復号ユニット150は上部部分区間に関連付けられた値を有するビンを復号することができる。構文要素の次のビンを復号するために、エントロピー復号ユニット150はこれらのステップを、符号化値を含む部分区間である間隔で繰り返すことができる。エントロピー復号ユニット150が次のビンについてこれらのステップを繰り返すとき、エントロピー復号ユニット150は、識別されたコーディングコンテキストと復号ビンとによって示される確率に基づいて修正された確率を使用してもよい。エントロピー復号ユニット150はこれらのビンを逆2値化して構文要素を復元してもよい。
さらに、ビデオデコーダ30は非区画化CUに対して再構築演算を行うことができる。非区画化CUに対して再構築演算を行うために、ビデオデコーダ30はCUの各TUに対して再構築演算を行うことができる。CUの各TUについて再構築演算を行うことによって、ビデオデコーダ30はCUに関連付けられた残差画素ブロックを再構築することができる。
CUのTUに対する再構築操作の実行の一部として、逆量子化ユニット154がTUに関連付けられた係数ブロックを逆量子化、すなわち逆2値化することができる。逆量子化ユニット154は、TUのCUに関連付けられたQP値を使用して量子化の程度を判断することができ、同様に、逆量子化ユニット154が適用する逆量子化の程度を判断することができる。
逆量子化ユニット154が係数ブロックを逆量子化した後、逆変換処理ユニット156が、TUに関連付けられた残差サンプルブロックを生成するために係数ブロックに1つまたは複数の逆変換を適用することができる。例えば、逆変換処理ユニット156は、係数ブロックに対して、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向性変換、またはその他の逆変換を適用してもよい。
PUがスキップモードで符号化されている場合、またはPUの動き情報がマージモードを使用して符号化されている場合、動き補償ユニット162はそのPUのマージ候補リストを生成してもよい。動き補償ユニットはマージ候補リスト内の選択されたマージ候補を識別することができる。動き補償ユニット162は、選択されたマージ候補によって示される動き情報に関連付けられた1つまたは複数の参照ブロックに基づいてPUのための予測サンプルブロックを生成することができる。
PUの動き情報がAMVPモードを使用して符号化されている場合、動き補償ユニット162はリスト0MV予測子候補リストおよび/またはリスト1MV予測子候補リストを生成してもよい。動き補償ユニット162は、選択されたリスト0MV予測子候補および/または選択されたリスト1MV予測子候補を判断することができる。次に、動き補償ユニット162は、リスト0動きベクトル差(MVD)、リスト1MVD、選択されたリスト0MV予測子候補によって指定されるリスト0動きベクトル、および/または選択されたリスト1MV予測子候補によって指定されるリスト1動きベクトルに基づいて、PUのためのリスト1動きベクトル、および/または、PUのためのリスト0動きベクトルを判断することができる。動き補償ユニット162は、リスト0動きベクトルとリスト0参照ピクチャインデックスおよび/またはリスト1動きベクトルとリスト1参照ピクチャインデックスに関連付けられた参照ブロックに基づいて、PUの予測サンプルブロックを生成することができる。
ある例では、動き補償ユニット162は補間フィルターに基づいて補間を行うことによってPUの予測サンプルブロックを精緻化してもよい。サブピクセル精度での動き補償に使用する補間フィルターの識別子を構文要素に含め得る。動き補償ユニット162は、参照ブロックのサブ整数サンプルの補間値を計算するためにPUの予測サンプルブロックの生成時にビデオエンコーダ20が使用したのと同じ補間フィルターを使用することができる。動き補償ユニット162は、ビデオエンコーダ20が使用した補間フィルターを受信構文情報に従って判断し、その補間フィルターを使用して予測サンプルブロックを生成することができる。
PUがイントラ予測を使用して符号化されている場合、イントラ予測処理ユニット164はイントラ予測を行ってPUの予測サンプルブロックを生成することができる。例えば、イントラ予測処理ユニット164は、ビットストリーム内の構文要素に基づいてPUのイントラ予測モードを判断することができる。イントラ予測処理ユニット164は、イントラ予測モードを使用して、空間的に隣接するPUのサンプルブロックに基づいてPUの予測データ(例えば予測サンプル)を生成してもよい。
再構築ユニット158は、CUのTUに関連付けられた残差サンプルブロックと、CUのPUの予測サンプルブロック、すなわち適宜にイントラ予測データまたはインター予測データ、とを使用して、CUのサンプルブロックを再構築することができる。具体的には、再構築ユニット158は残差サンプルブロックのサンプルを、予測サンプルブロックの対応するサンプルに加えてCUのサンプルブロックを再構築することができる。
フィルターユニット159は、デブロッキング操作を行ってCUに付随するブロッキングアーチファクトを低減することができる。ビデオデコーダ30はCUのサンプルブロックを復号ピクチャバッファ160に格納してもよい。復号ピクチャバッファ160は、後で行われる動き補償と、イントラ予測と、図1の表示デバイス32などの表示デバイス上への表示とのために参照ピクチャを提供することができる。例えば、ビデオデコーダ30は、復号ピクチャバッファ160内のサンプルブロックに基づいて、他のCUのPUについてイントラ予測またはインター予測を行うことができる。
図4は、本開示の1つまたは複数の技術による、ビデオエンコーダ20の例示の動作200を示すフローチャートである。図4の例では、ビデオエンコーダ20はビデオデータのスライスのピクチャ区画(例えばタイル、波、エントロピースライスなど)を符号化することができる(202)。スライスは複数のコーディングユニットを含み得る。ビデオエンコーダ20はピクチャ区画を符号化することにより符号化ピクチャ区画を生成する。ビデオエンコーダ20は、スライスの符号化ピクチャ区画を含むコード化スライスNALユニットを生成することができる(204)。
さらに、ビデオエンコーダ20はコード化ピクチャ区画の入口点を示すSEIメッセージを生成することができる(206)。すなわち、SEIメッセージはコード化ピクチャ区画のコード化スライスNALユニット内での位置を示すことができる。SEIメッセージは前述の形式を有し得る。例えば、ビデオエンコーダ20はSEIメッセージを含むSEI NALユニットを生成してもよい。
ビデオエンコーダ20は、コード化スライスNALユニットとSEIメッセージとを含むビットストリームを出力することができる(208)。このビットストリームは、ビデオデータの符号化表現を含む。ビデオエンコーダ20は様々な方法でビットストリームを出力することができる。例えば、ビデオエンコーダ20は、ビットストリームをインターネットなどの通信ネットワークで送信してもよい。他の例では、ビデオエンコーダ20はビットストリームをハードディスクドライブまたはメモリなどのコンピュータ可読記憶媒体に出力してもよい。
図5は、本開示の1つまたは複数の技術によるビデオデコーダ30の例示の動作250を示すフローチャートである。図5の例では、ビデオデコーダ30は複数のコード化ピクチャ区画を含むコード化スライスNALユニットを受信することができる(252)。さらに、ビデオデコーダ30は、コード化スライスNALユニット内の符号化ピクチャ区画の入口点を示すSEIメッセージを、例えば非VCL NALユニットで受信することができる(254)。ビデオデコーダ30は様々な方法でコード化スライスNALユニットとSEIメッセージとを受信することができる。例えば、ビデオデコーダ30は、インターネットなどの通信ネットワークを介してリモートサーバからコード化スライスNALユニットとSEIメッセージとを受信してもよい。他の例では、ビデオデコーダ30は、ハードディスクドライブまたはメモリなどのコンピュータ可読記憶媒体からコード化スライスNALユニットとSEIメッセージとを受信してもよい。
ビデオデコーダ30は、SEIメッセージで示される入口点に少なくとも部分的に基づいて、コード化スライスNALユニット内での符号化ピクチャ区画の位置を判断することができる(256)。例えば、SEIメッセージは、特定の符号化ピクチャ区画がコード化スライスNALユニットのスライスデータの256番目のバイトから始まることを示し得る。ビデオデコーダ30は符号化ピクチャ区画を復号することができる(258)。ある例では、ビデオデコーダ30は、符号化ピクチャ区画の2つ以上の区画を並列して復号することができる。
ビデオデコーダ30は符号化ピクチャ区画の復号画素ブロックを出力することができる(260)。ある例では、ビデオデコーダ30は復号画素ブロックを表示デバイス32に表示するために出力する。他の例ではビデオデコーダ30は、復号画素ブロックをビデオエンコーダに出力してもよい。この例では、ビデオエンコーダはその復号画素ブロックをビデオトランスコーディング動作の一部として再符号化してもよい。
図6は、本開示の1つまたは複数の技術による、バイト整列スライスヘッダーを有するコード化スライスNALユニットを生成するためのビデオエンコーダ20の例示の動作280を示すフローチャートである。図6の例では、ビデオエンコーダ20は複数の符号化ピクチャ区画を生成することができる(282)。符号化ピクチャ区画のそれぞれはビデオデータ中のピクチャ内の異なる1組のCUに関連付けられている。さらに、ビデオエンコーダ20はスライスヘッダーおよび複数の符号化ピクチャ区画を含むNALユニットを生成することができる(284)。スライスヘッダーは、スライスヘッダーをバイト境界に整列させる1つまたは複数のパディングビットを含み得る。
図7は、本開示の1つまたは複数の技術による、バイト整列スライスヘッダーを生成するためのビデオエンコーダ20の例示の動作300を示すフローチャートである。図7の例では、ビデオエンコーダ20はスライスヘッダーを生成することができる(302)。さらに、ビデオエンコーダ20は、パラメータセット(例えばシーケンスパラメータセット、ピクチャパラメータセット、アダプテーションパラメータセットなど)内の構文要素が、スライスヘッダーがバイト境界に整列しなければならないことを示しているか否かを判断する(304)。
構文要素が、スライスヘッダーがバイト境界に整列しなければならないことを示している場合(304の「YES」)、ビデオエンコーダ20はスライスヘッダーがバイト境界に整列しているか否かを判断してもよい(306)。スライスヘッダーがバイト境界に整列していない場合(306の「NO」)、ビデオエンコーダ20はスライスヘッダーの後ろにビットを追加してもよい(308)。スライスヘッダーの後ろにビットを追加した後、ビデオエンコーダ20はスライスヘッダーがバイト境界に整列しているか否かを再度判断することができる(306)。このようにして、ビデオエンコーダ20はスライスヘッダーがバイト整列されるまでスライスヘッダーの後ろにビットを追加し続けることができる。
スライスヘッダーがバイト境界に整列されている場合(306の「YES」)または構文要素が、スライスヘッダーがバイト境界に整列する必要がないことを示している場合(304の「NO」)、動作300は完了する。
図8は、本開示の1つまたは複数の技術による、ビデオデコーダ30がバイト整列スライスヘッダーを有するコード化スライスNALユニットを受信する、ビデオデコーダ30の例示の動作330を示すフローチャートである。図8の例では、ビデオデコーダ30はNALユニットを受信することができる(332)。NALユニットは、スライスヘッダーとビデオデータの複数の符号化ピクチャ区画とを含み得る。スライスヘッダーは、スライスヘッダーをバイト境界に整列させる1つまたは複数のパディングビットを含み得る。ビデオデコーダ30は符号化ピクチャ区画の2つ以上を並列して復号してもよい(334)。
図9は、波面並列処理を示す概念図である。前述のように、ピクチャは、各画素ブロックがツリーブロックに関連付けられた画素ブロックに区画化され得る。図9では、ツリーブロックに関連付けられた画素ブロックを白い正方形からなる格子として示している。ピクチャはツリーブロック行350A〜350E(「ツリーブロック行350」と総称)を含む。
第1のスレッドは、ツリーブロック行350A内のツリーブロックをコーディング中であってよい。同時に、他のスレッドはツリーブロック行350Bと、350Cと、350Dとのツリーブロックをコーディング中とすることができる。図9の例では、第1のスレッドは現在ツリーブロック352Aをコーディング中であり、第2のスレッドが現在ツリーブロック352Bをコーディング中であり、第3のスレッドが現在ツリーブロック352Cをコーディング中であり、第4のスレッドが現在ツリーブロック352Dをコーディング中である。本開示では、ツリーブロック352Aと、352Bと、352Cと、352Dとを「現在のツリーブロック352」と総称することがある。ビデオコーダはすぐ上の行の3つ以上のツリーブロックがコーディングされた後でツリーブロック行のコーディングを開始することができるため、現在のツリーブロック352は水平方向にツリーブロック2つの幅分だけ互いにずれている。
図9の例では、スレッドは太い灰色の矢印で示すツリーブロックからのデータを使用して現在のツリーブロック352内のCUのためのイントラ予測またはインター予測を行うことができる。スレッドは、CUのインター予測を行うために1つまたは複数の参照フレームも使用することができる。所与のツリーブロックをコーディングするために、スレッドは前にコーディングされたツリーブロックに関連付けられた情報に基づいて1つまたは複数のCABACコンテキストを選択することができる。スレッドは、その1つまたは複数のCABACコンテキストを使用して、その所与のツリーブロックの先頭CUに関連付けられた構文要素に対してCABACコーディングを行うことができる。その所与のツリーブロックが行の左端のツリーブロックでない場合、スレッドはその所与のツリーブロックの左のツリーブロックの最後のCUに関連付けられた情報に基づいて1つまたは複数のCABACコンテキストを選択してもよい。その所与のツリーブロックが行の左端のツリーブロックである場合、スレッドはその所与のツリーブロックの上方で2ツリーブロック右側にあるツリーブロックの最後のCUに関連付けられた情報に基づいて、1つまたは複数のCABACコンテキストを選択することができる。スレッドは、細い黒の矢印で示されているツリーブロックの最後のCUからのデータを使用して、現在のツリーブロック352の先頭CUのためのCABACコンテキストを選択することができる。
図10は、複数のタイル402Aと、402Bと、402Cと、402Dと、402Eと、402F(「タイル402」と総称)とに区画化されたピクチャ400の例示のツリーブロックコーディング順序を示す概念図である。ピクチャ400内の各正方形ブロックはツリーブロックに関連付けられた画素ブロックを表す。太い破線は例示のタイル境界を示す。異なる種類の網掛けは異なるスライスに対応する。
画素ブロック内の数字は、ピクチャ400のタイルコーディング順でのタイル内の対応するツリーブロック(LCU)の位置を示す。図10の例に示すように、タイル402A内のツリーブロックが最初にコーディングされ、次にタイル402B内のツリーブロック、その次にタイル402C内のツリーブロック、その次にタイル402D内のツリーブロック、その次にタイル402E内のツリーブロック、その次にタイル402F内のツリーブロックがそれぞれコーディングされる。各タイル402内では、ツリーブロックはラスタースキャン順にコーディングされる。
ビデオエンコーダは、ピクチャ400のために4つのコード化スライスNALユニットを生成することができる。第1のコード化スライスNALユニットはツリーブロック1〜18の符号化表現を含み得る。第1のコード化スライスNALユニットのスライスデータは、2つの符号化ピクチャ区画を含み得る。最初の符号化ピクチャ区画は、ツリーブロック1〜9の符号化表現を含み得る。2番目の符号化ピクチャ区画は、ツリーブロック10〜18の符号化表現を含み得る。したがって、最初のコード化スライスNALユニットは、複数のタイルを含むスライスの符号化表現を含み得る。
第2のコード化スライスNALユニットは、ツリーブロック19〜22の符号化表現を含み得る。第2のコード化スライスNALユニットのスライスデータは、単一の符号化ピクチャ区画を含み得る。第3のコード化スライスNALユニットは、ツリーブロック23〜27の符号化表現を含み得る。第3のコード化スライスNALユニットのスライスデータは、1つの符号化ピクチャ区画のみを含み得る。したがって、タイル402Cは複数のスライスを含み得る。第4のコード化スライスNALユニットは、ツリーブロック28〜45の符号化表現を含み得る。第4のコード化スライスNALユニットのスライスデータは、タイル402Dと、402Eと、402Fとのそれぞれに1つずつ、3つの符号化ピクチャ区画を含み得る。したがって、第4のコード化スライスNALユニットは、複数のタイルを含むスライスの符号化表現を含み得る。
図11は、本開示の1つまたは複数の態様による、NALユニット内の符号化ピクチャ区画のオフセットに関連付けられた構文要素を表す可変長値を含むビットストリームを生成するための、ビデオエンコーダ20の例示の動作430を示すフローチャートである。図11の例では、ビデオエンコーダ20は、第1の構文要素と、第2の構文要素と、一連のオフセット構文要素とをエントロピー符号化することができる(432)。オフセット構文要素のそれぞれの長さは、第1の構文要素に基づいて判断し得る。一連のオフセット構文要素内のオフセット構文要素の数は、第2の構文要素に基づいて判断し得る。NALユニット内の複数の符号化ピクチャ区画の位置は、オフセット構文要素に基づいて判断し得る。ビデオエンコーダ20は、エントロピー符号化された第1の構文要素を表す可変長値と、エントロピー符号化された第2の構文要素を表す可変長値と、オフセット構文要素を表す固定長値とを含むビットストリームを生成することができる(434)。
図12は、本開示の1つまたは複数の態様による、NALユニット内の符号化ピクチャ区画のオフセットに関連付けられた構文要素を表す可変長値を含むビットストリームによって表されたビデオデータを復号するための、ビデオデコーダの例示の動作450を示すフローチャートである。図12の例では、ビデオデコーダ30は、第1の構文要素を表すエントロピー符号化された可変長値と、第2の構文要素を表すエントロピー符号化された可変長値と、一連のオフセット構文要素とを含むビットストリームを受信する(452)。さらに、ビデオデコーダ30は、第1の構文要素と第2の構文要素とをエントロピー復号することができる(454)。ビデオデコーダ30は、第1の構文要素に基づいてオフセット構文要素のそれぞれの長さを判断することができる(456)。ビデオデコーダ30は、第2の構文要素に基づいて、一連のオフセット構文要素内のオフセット構文要素の数を判断することができる(458)。
さらに、ビデオデコーダ30は、オフセット構文要素のそれぞれの長さと一連のオフセット構文要素内のオフセット構文要素の数とに少なくとも部分的に基づいて、オフセット構文要素を構文解析することができる(460)。ある例では、ビデオデコーダ30がオフセット構文要素を構文解析するときに、ビデオデコーダ30はオフセット構文要素のそれぞれについて固定長復号を実行する。固定長復号は、エントロピー復号の特殊モードとも呼ばれ得る。同様に、固定長符号化はエントロピー符号化の特殊モードとも呼ばれ得る。
ビデオデコーダ30は、オフセット構文要素に基づいてNALユニット内の複数の符号化ピクチャ区画の位置を判断することができる(462)。ある例では、NALユニットのスライスヘッダーが、第1の構文要素と、第2の構文要素と、一連のオフセット構文要素とを含む。他の例では、SEIメッセージが、第1の構文要素と、第2の構文要素と、一連のオフセット構文要素とを含む。さらに、ビデオデコーダ30は符号化ピクチャ区画を復号することができる(464)。
1つまたは複数の例では、叙述の各機能はハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせで実装され得る。ソフトウェアで実装する場合、これらの機能は1つまたは複数の命令またはコードとしてコンピュータ可読媒体に記憶され、または送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応するコンピュータ可読記憶媒体、または、例えば通信プロトコルに従って1つの場所から他の場所へのコンピュータプログラムの転送を容易にする媒体を含む通信媒体を含み得る。このように、コンピュータ可読媒体は、一般に、(1)非一時的な有形のコンピュータ可読記憶媒体、または(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサが、本開示に記載の技術の実装のために命令、コードおよび/またはデータ構造体を読み出すためにアクセスすることができる任意の入手可能な媒体とすることができる。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
一例として、このようなコンピュータ可読記憶媒体はRAM、ROM、EEPROM(登録商標)、CD−ROMまたはその他の光ディスクストレージ、磁気ディスクストレージ、またはその他の磁気ストレージデバイス、フラッシュメモリ、または所望のプログラムコードを命令またはデータ構造体の形で格納するために使用可能かつコンピュータによりアクセス可能なその他のあらゆる媒体を含み得るが、これらには限定されない。また、いかなる接続もコンピュータ可読媒体と正式に称することができる。例えば、ウェブサイト、サーバ、またはその他のリモートソースから同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線およびマイクロ波などのワイヤレス技術を使用して命令を送信する場合、その同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。ただし、コンピュータ可読媒体およびデータ記憶媒体は、接続、搬送波、信号またはその他の一時的媒体を含まず、非一時的な有形の記憶媒体のことを意図しているものと理解すべきである。本開示では、ディスク(diskおよびdisc)は、コンパクトディスク(CD)、レーザディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびBlu−ray(登録商標)ディスクを含み、この場合、diskは通常データを磁気的に再生し、discはレーザを使用してデータを光学的に再生する。上記の組み合わせもコンピュータ可読媒体の範囲に含まれるべきである。
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、またはその他の同等の集積または個別論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、本開示では「プロセッサ」という用語は、上記の構造体のいずれか、または本開示に記載の技術の実装に適するその他の任意の構造体を指し得る。さらに、態様によっては、本開示に記載の機能を、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に設けるか、または複合コーデックに組み込むことができる。
本開示の技術は、ワイヤレスハンドセット、集積回路(IC)、または1組のIC(例えばチップセット)を含む様々なデバイスまたは装置で実装可能である。本開示では、本開示の技術を実行するように構成されたデバイスの機能的態様を強調して説明するために様々な構成要素、モジュール、またはユニットについて述べたが、これらは必ずしも異なるハードウェアユニットによる実現を必要としない。上述のように、適切なソフトウェアおよび/またはファームウェアとともに、様々なユニットを1つのコーデックハードウェアユニット内に統合するか、または上述のように1つまたは複数のプロセッサを含む相互作用可能なハードウェアユニットの集合によって提供してもよい。
以上、様々な例について説明した。これらおよびその他の例は以下の特許請求の範囲に含まれる。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1]ビデオデータを符号化する方法であって、
オフセット構文要素のそれぞれの長さが第1の構文要素に基づいて判断可能であり、一連のオフセット構文要素内のオフセット構文要素の数が第2の構文要素に基づいて判断可能であり、NALユニット内の複数の符号化ピクチャ区画の位置が前記オフセット構文要素に基づいて判断可能な、前記第1の構文要素と、前記第2の構文要素と、前記一連のオフセット構文要素とをエントロピー符号化することと、
エントロピー符号化された前記第1の構文要素を表す可変長値と、エントロピー符号化された前記第2の構文要素を表す可変長値と、前記オフセット構文要素を表す固定長値とを含むビットストリームを生成することとを備える方法。
[2]前記符号化ピクチャ区画のそれぞれは、単一のエントロピースライス、タイル、または波面並列処理(WPP)波に関連付けられた、前記NALユニット内のコード化ツリーブロックのグループを含む[1]に記載の方法。
[3]前記一連のオフセット構文要素は、前記NALユニット内の先行する符号化ピクチャ区画を基準にした前記符号化ピクチャ区画のバイトオフセットを示す[1]に記載の方法。
[4]前記第1の構文要素と、前記第2の構文要素と、前記一連のオフセット構文要素とを含む補助強化情報(SEI)メッセージを生成することをさらに備える[1]に記載の方法。
[5]前記SEIメッセージは、前記SEIメッセージがコード化スライスNALユニット内の符号化ピクチャ区画の入口点を示すSEIメッセージのタイプに属することを示す構文要素を含む[4]に記載の方法。
[6]前記SEIメッセージを含むSEI NALユニットを生成することをさらに備える[5]に記載の方法。
[7]前記オフセット構文要素のそれぞれの長さは前記第1の構文要素の値に10を加えた値に等しい[1]に記載の方法。
[8]オフセット構文要素のそれぞれの長さが第1の構文要素に基づいて判断可能であり、一連のオフセット構文要素内のオフセット構文要素の数が第2の構文要素に基づいて判断可能であり、NALユニット内の複数の符号化ピクチャ区画の位置が前記オフセット構文要素に基づいて判断可能な、前記第1の構文要素と、前記第2の構文要素と、前記一連のオフセット構文要素とをエントロピー符号化し、
エントロピー符号化された前記第1の構文要素を表す可変長値と、エントロピー符号化された前記第2の構文要素を表す可変長値と、前記オフセット構文要素を表す固定長値とを含むビットストリームを生成するように構成された1つまたは複数のプロセッサを備えるコンピューティングデバイス。
[9]前記符号化ピクチャ区画のそれぞれは、単一のエントロピースライス、タイル、または波面並列処理(WPP)波に関連付けられた、前記NALユニット内のコード化ツリーブロックのグループを含む[8]に記載のコンピューティングデバイス。
[10]前記一連のオフセット構文要素は、前記NALユニット内の先行する符号化ピクチャ区画を基準にした前記符号化ピクチャ区画のバイトオフセットを示す[8]に記載のコンピューティングデバイス。
[11]前記1つまたは複数のプロセッサは、前記第1の構文要素と、前記第2の構文要素と、前記一連のオフセット構文要素とを含む補助強化情報(SEI)メッセージを生成するように構成された[8]に記載のコンピューティングデバイス。
[12]前記SEIメッセージは、前記SEIメッセージがコード化スライスNALユニット内の符号化ピクチャ区画の入口点を示すSEIメッセージのタイプに属することを示す構文要素を含む[11]に記載のコンピューティングデバイス。
[13]前記SEIメッセージを含むSEI NALユニットを生成することをさらに備える[8]に記載のコンピューティングデバイス。
[14]前記オフセット構文要素のそれぞれの長さは前記第1の構文要素の値に10を加えた値に等しい[8]に記載のコンピューティングデバイス。
[15]前記コンピューティングデバイスはビデオエンコーダを備える[8]に記載のコンピューティングデバイス。
[16]オフセット構文要素のそれぞれの長さが第1の構文要素に基づいて判断可能であり、一連のオフセット構文要素内のオフセット構文要素の数が第2の構文要素に基づいて判断可能であり、NALユニット内の複数の符号化ピクチャ区画の位置が前記オフセット構文要素に基づいて判断可能な、前記第1の構文要素と、前記第2の構文要素と、前記一連のオフセット構文要素とをエントロピー符号化するための手段と、
エントロピー符号化された前記第1の構文要素を表す可変長値と、エントロピー符号化された前記第2の構文要素を表す可変長値と、前記オフセット構文要素を表す固定長値とを含むビットストリームを生成するための手段とを備えるコンピューティングデバイス。
[17]コンピューティングデバイスの1つまたは複数のプロセッサによって実行されると、前記コンピューティングデバイスを、
オフセット構文要素のそれぞれの長さが第1の構文要素に基づいて判断可能であり、一連のオフセット構文要素内のオフセット構文要素の数が第2の構文要素に基づいて判断可能であり、NALユニット内の複数の符号化ピクチャ区画の位置が前記オフセット構文要素に基づいて判断可能な、前記第1の構文要素と、前記第2の構文要素と、前記一連のオフセット構文要素とをエントロピー符号化し、
エントロピー符号化された前記第1の構文要素を表す可変長値と、エントロピー符号化された前記第2の構文要素を表す可変長値と、前記オフセット構文要素を表す固定長値とを含むビットストリームを生成するように構成する命令を記憶するコンピュータ可読記憶媒体。
[18]ビデオデータを復号する方法であって、
第1の構文要素を表すエントロピー符号化された可変長値と、第2の構文要素を表すエントロピー符号化された可変長値と、一連の固定長オフセット構文要素とを含むビットストリームを受信することと、
前記第1の構文要素と前記第2の構文要素とをエントロピー復号することと、
前記第1の構文要素に基づいて前記オフセット構文要素のそれぞれの長さを判断することと、
前記第2の構文要素に基づいて前記一連のオフセット構文要素内のオフセット構文要素の数を判断することと、
前記オフセット構文要素のそれぞれの前記長さと前記一連のオフセット構文要素内のオフセット構文要素の前記数とに少なくとも部分的に基づいて前記オフセット構文要素を構文解析することと、
前記オフセット構文要素に基づいてネットワーク抽象化レイヤ(NAL)ユニット内の複数の符号化ピクチャ区画の位置を判断することと、
前記符号化ピクチャ区画を復号することとを備える方法。
[19]前記符号化ピクチャ区画のそれぞれは、単一のエントロピースライス、タイル、または波面並列処理(WPP)波に関連付けられた、前記NALユニット内のコード化ツリーブロックのグループを含む[18]に記載の方法。
[20]前記一連のオフセット構文要素は、前記NALユニット内の先行する符号化ピクチャ区画を基準にした前記符号化ピクチャ区画のバイトオフセットを示す[18]に記載の方法。
[21]前記ビットストリームは、前記第1の構文要素と、前記第2の構文要素と、前記一連のオフセット構文要素とを含むSEIメッセージを含む[18]に記載の方法。
[22]前記SEIメッセージは、前記SEIメッセージがコード化スライスNALユニット内の符号化ピクチャ区画の入口点を示すSEIメッセージのタイプに属することを示す構文要素を含む[21]に記載の方法。
[23]前記ビットストリームは、前記SEIメッセージを含むSEI NALユニットを含む[18]に記載の方法。
[24]前記SEI NALユニットは、前記ビットストリーム内で、前記複数の符号化ピクチャ区画を含む前記NALユニットの直前にあり、
前記方法は、ビットストリーム内で前記複数の符号化ピクチャ区画を含む前記NALユニットの直前にあるSEI NALユニットに少なくとも部分的に基づいて、前記SEIメッセージが前記複数の符号化ピクチャ区画を含む前記NALユニットに適用可能であると判断することをさらに備える[23]に記載の方法。
[25]前記符号化ピクチャ区画の並列復号のために前記符号化ピクチャ区画を異なる処理コアに供給することと、前記処理コアにおいてそれぞれの前記符号化ピクチャ区画を復号することとをさらに備える[18]に記載の方法。
[26]前記オフセット構文要素のそれぞれの長さは前記第1の構文要素の値に10を加えた値に等しい[18]に記載の方法。
[27]第1の構文要素を表すエントロピー符号化された可変長値と、第2の構文要素を表すエントロピー符号化された可変長値と、一連の固定長オフセット構文要素とを含むビットストリームを受信し、
前記第1の構文要素と前記第2の構文要素とをエントロピー復号し、
前記第1の構文要素に基づいて前記オフセット構文要素のそれぞれの長さを判断し、
前記第2の構文要素に基づいて前記一連のオフセット構文要素内のオフセット構文要素の数を判断し、
前記オフセット構文要素のそれぞれの前記長さと前記一連のオフセット構文要素内のオフセット構文要素の前記数とに少なくとも部分的に基づいて前記オフセット構文要素を構文解析し、
前記オフセット構文要素に基づいてネットワーク抽象化レイヤ(NAL)ユニット内の複数の符号化ピクチャ区画の位置を判断し、
前記符号化ピクチャ区画を復号するように構成された1つまたは複数のプロセッサを備えるコンピューティングデバイス。
[28]前記符号化ピクチャ区画のそれぞれは、単一のエントロピースライス、タイル、または波面並列処理(WPP)波に関連付けられた、前記NALユニット内のコード化ツリーブロックのグループを含む[27]に記載のコンピューティングデバイス。
[29]前記一連のオフセット構文要素は、前記NALユニット内の先行する符号化ピクチャ区画を基準にした前記符号化ピクチャ区画のバイトオフセットを示す[27]に記載のコンピューティングデバイス。
[30]前記ビットストリームは、前記第1の構文要素と、前記第2の構文要素と、前記一連のオフセット構文要素とを含むSEIメッセージを含む[27]に記載のコンピューティングデバイス。
[31]前記SEIメッセージは、前記SEIメッセージがコード化スライスNALユニット内の符号化ピクチャ区画の入口点を示すSEIメッセージのタイプに属することを示す構文要素を含む[30]に記載のコンピューティングデバイス。
[32]前記ビットストリームは、前記SEIメッセージを含むSEI NALユニットを含む[27]に記載のコンピューティングデバイス。
[33]前記SEI NALユニットは、前記ビットストリーム内で、前記複数の符号化ピクチャ区画を含む前記NALユニットの直前にあり、
前記1つまたは複数のプロセッサは、ビットストリーム内で前記複数の符号化ピクチャ区画を含む前記NALユニットの直前にあるSEI NALユニットに少なくとも部分的に基づいて、前記SEIメッセージが前記複数の符号化ピクチャ区画を含む前記NALユニットに適用可能であると判断するように構成された[32]に記載のコンピューティングデバイス。
[34]前記1つまたは複数のプロセッサは、前記符号化ピクチャ区画の並列復号のために前記符号化ピクチャ区画を異なる処理コアに供給するように構成された[27]に記載のコンピューティングデバイス。
[35]前記コンピューティングデバイスはビデオデコーダを備える[27]に記載のコンピューティングデバイス。
[36]前記第1の構文要素の値に10を加えた値が前記一連のオフセット構文要素のビット数で表した長さに等しい[27]に記載のコンピューティングデバイス。
[37]第1の構文要素を表すエントロピー符号化された可変長値と、第2の構文要素を表すエントロピー符号化された可変長値と、一連の固定長オフセット構文要素とを含むビットストリームを受信するための手段と、
前記第1の構文要素と前記第2の構文要素とをエントロピー復号するための手段と、
前記第1の構文要素に基づいて前記オフセット構文要素のそれぞれの長さを判断するための手段と、
前記第2の構文要素に基づいて前記一連のオフセット構文要素内のオフセット構文要素の数を判断するための手段と、
前記オフセット構文要素のそれぞれの前記長さと前記一連のオフセット構文要素内のオフセット構文要素の前記数とに少なくとも部分的に基づいて前記オフセット構文要素を構文解析するための手段と、
前記オフセット構文要素に基づいてネットワーク抽象化レイヤ(NAL)ユニット内の複数の符号化ピクチャ区画の位置を判断するための手段と、
前記符号化ピクチャ区画を復号するための手段とを備えるコンピューティングデバイス。
[38]コンピューティングデバイスの1つまたは複数のプロセッサによって実行されると、前記コンピュータを、
第1の構文要素を表すエントロピー符号化された可変長値と、第2の構文要素を表すエントロピー符号化された可変長値と、一連の固定長オフセット構文要素とを含むビットストリームを受信し、
前記第1の構文要素と前記第2の構文要素とをエントロピー復号し、
前記第1の構文要素に基づいて前記オフセット構文要素のそれぞれの長さを判断し、
前記第2の構文要素に基づいて前記一連のオフセット構文要素内のオフセット構文要素の数を判断し、
前記オフセット構文要素のそれぞれの前記長さと前記一連のオフセット構文要素内のオフセット構文要素の前記数とに少なくとも部分的に基づいて前記オフセット構文要素を構文解析し、
前記オフセット構文要素に基づいてネットワーク抽象化レイヤ(NAL)ユニット内の複数の符号化ピクチャ区画の位置を判断し、
前記符号化ピクチャ区画を復号するように構成する命令を記憶するコンピュータ可読記憶媒体。

Claims (38)

  1. ビデオデータを符号化する方法であって、
    第1の構文要素と第2の構文要素とをエントロピー符号化することと、
    一連のオフセット構文要素を生成することであって、前記オフセット構文要素のそれぞれの長さが前記第1の構文要素に基づいて判断可能であり、前記一連のオフセット構文要素内のオフセット構文要素の数が前記第2の構文要素に基づいて判断可能であり、NALユニット内の複数の符号化ピクチャ区画の位置が前記オフセット構文要素に基づいて判断可能であり前記符号化ピクチャ区画の各々は、それぞれのエントロピースライス、タイル、または波面並列処理(WPP)波に関連付けられた、前記NALユニット内のコード化ツリーブロックのそれぞれのグループを含む、前記生成することと、
    前記ビデオデータのコード化表現を形成するビットストリームを生成することであって、前記ビットストリームは、エントロピー符号化された前記第1の構文要素を表す可変長値と、エントロピー符号化された前記第2の構文要素を表す可変長値と、前記オフセット構文要素を表す固定長値とを含む、前記生成することと
    を備える方法。
  2. 前記一連のオフセット構文要素は、前記NALユニット内の先行する符号化ピクチャ区画を基準にした前記符号化ピクチャ区画のバイトオフセットを示す請求項1に記載の方法。
  3. 前記第1の構文要素と、前記第2の構文要素と、前記一連のオフセット構文要素とを含む補助強化情報(SEI)メッセージを生成することをさらに備える請求項1に記載の方法。
  4. 前記SEIメッセージは、前記SEIメッセージがコード化スライスNALユニット内の符号化ピクチャ区画の入口点を示すSEIメッセージのタイプに属することを示す構文要素を含む請求項に記載の方法。
  5. 前記SEIメッセージを含むSEI NALユニットを生成することをさらに備える請求項に記載の方法。
  6. 前記オフセット構文要素のそれぞれの長さは前記第1の構文要素の値に10を加えた値に等しい請求項1に記載の方法。
  7. ビデオデータを記憶するように構成された記憶媒体と、
    第1の構文要素と第2の構文要素とをエントロピー符号化し、
    一連のオフセット構文要素を生成することであって、前記オフセット構文要素のそれぞれの長さが前記第1の構文要素に基づいて判断可能であり、前記一連のオフセット構文要素内のオフセット構文要素の数が前記第2の構文要素に基づいて判断可能であり、NALユニット内の複数の符号化ピクチャ区画の位置が前記オフセット構文要素に基づいて判断可能であり前記符号化ピクチャ区画の各々は、それぞれのエントロピースライス、タイル、または波面並列処理(WPP)波に関連付けられた、前記NALユニット内のコード化ツリーブロックのそれぞれのグループを含む、前記生成し、
    前記ビデオデータのコード化表現を形成するビットストリームを生成することであって、前記ビットストリームは、エントロピー符号化された前記第1の構文要素を表す可変長値と、エントロピー符号化された前記第2の構文要素を表す可変長値と、前記オフセット構文要素を表す固定長値とを含む、前記生成する
    ように構成された1つまたは複数のプロセッサ
    を備えるコンピューティングデバイス。
  8. 前記一連のオフセット構文要素は、前記NALユニット内の先行する符号化ピクチャ区画を基準にした前記符号化ピクチャ区画のバイトオフセットを示す請求項に記載のコンピューティングデバイス。
  9. 前記1つまたは複数のプロセッサは、前記第1の構文要素と、前記第2の構文要素と、前記一連のオフセット構文要素とを含む補助強化情報(SEI)メッセージを生成するように構成された請求項に記載のコンピューティングデバイス。
  10. 前記SEIメッセージは、前記SEIメッセージがコード化スライスNALユニット内の符号化ピクチャ区画の入口点を示すSEIメッセージのタイプに属することを示す構文要素を含む請求項に記載のコンピューティングデバイス。
  11. 前記SEIメッセージを含むSEI NALユニットを生成することをさらに備える請求項に記載のコンピューティングデバイス。
  12. 前記オフセット構文要素のそれぞれの長さは前記第1の構文要素の値に10を加えた値に等しい請求項に記載のコンピューティングデバイス。
  13. 前記コンピューティングデバイスはビデオエンコーダを備える請求項に記載のコンピューティングデバイス。
  14. 第1の構文要素と第2の構文要素とをエントロピー符号化するための手段と、
    一連のオフセット構文要素を生成するための手段であって、前記オフセット構文要素のそれぞれの長さが前記第1の構文要素に基づいて判断可能であり、前記一連のオフセット構文要素内のオフセット構文要素の数が前記第2の構文要素に基づいて判断可能であり、NALユニット内の複数の符号化ピクチャ区画の位置が前記オフセット構文要素に基づいて判断可能であり前記符号化ピクチャ区画の各々は、それぞれのエントロピースライス、タイル、または波面並列処理(WPP)波に関連付けられた、前記NALユニット内のコード化ツリーブロックのそれぞれのグループを含む、前記生成するための手段と、
    ビデオデータのコード化表現を形成するビットストリームを生成するための手段であって、前記ビットストリームは、エントロピー符号化された前記第1の構文要素を表す可変長値と、エントロピー符号化された前記第2の構文要素を表す可変長値と、前記オフセット構文要素を表す固定長値とを含む、前記生成するための手段と
    を備えるコンピューティングデバイス。
  15. コンピューティングデバイスの1つまたは複数のプロセッサによって実行されると、前記コンピューティングデバイスを、
    第1の構文要素と第2の構文要素とをエントロピー符号化し、
    一連のオフセット構文要素を生成することであって、前記オフセット構文要素のそれぞれの長さが前記第1の構文要素に基づいて判断可能であり、前記一連のオフセット構文要素内のオフセット構文要素の数が前記第2の構文要素に基づいて判断可能であり、NALユニット内の複数の符号化ピクチャ区画の位置が前記オフセット構文要素に基づいて判断可能であり前記符号化ピクチャ区画の各々は、それぞれのエントロピースライス、タイル、または波面並列処理(WPP)波に関連付けられた、前記NALユニット内のコード化ツリーブロックのそれぞれのグループを含む、前記生成し、
    ビデオデータのコード化表現を形成するビットストリームを生成することであって、前記ビットストリームは、エントロピー符号化された前記第1の構文要素を表す可変長値と、エントロピー符号化された前記第2の構文要素を表す可変長値と、前記オフセット構文要素を表す固定長値とを含む、前記生成する
    ように構成する命令を記憶したコンピュータ可読記憶媒体。
  16. ビデオデータを復号する方法であって、
    前記ビデオデータのコード化表現を形成するビットストリームを受信することであって、前記ビットストリームは、第1の構文要素を表すエントロピー符号化された可変長値と、第2の構文要素を表すエントロピー符号化された可変長値と、一連の固定長オフセット構文要素とを含む、前記受信することと、
    前記第1の構文要素と前記第2の構文要素とをエントロピー復号することと、
    前記第1の構文要素に基づいて前記オフセット構文要素のそれぞれの長さを判断することと、
    前記第2の構文要素に基づいて前記一連のオフセット構文要素内のオフセット構文要素の数を判断することと、
    前記オフセット構文要素のそれぞれの前記長さと前記一連のオフセット構文要素内のオフセット構文要素の前記数とに少なくとも部分的に基づいて前記オフセット構文要素を構文解析することと、
    前記オフセット構文要素に基づいてネットワーク抽象化レイヤ(NAL)ユニット内の複数の符号化ピクチャ区画の位置を判断することであって前記符号化ピクチャ区画の各々は、それぞれのエントロピースライス、タイル、または波面並列処理(WPP)波に関連付けられた、前記NALユニット内のコード化ツリーブロックのそれぞれのグループを含む、前記判断することと、
    前記符号化ピクチャ区画を復号することと
    を備える方法。
  17. 前記一連のオフセット構文要素は、前記NALユニット内の先行する符号化ピクチャ区画を基準にした前記符号化ピクチャ区画のバイトオフセットを示す請求項16に記載の方法。
  18. 前記ビットストリームは、前記第1の構文要素と、前記第2の構文要素と、前記一連のオフセット構文要素とを含む補助強化情報(SEIメッセージを含む請求項16に記載の方法。
  19. 前記SEIメッセージは、前記SEIメッセージがコード化スライスNALユニット内の符号化ピクチャ区画の入口点を示すSEIメッセージのタイプに属することを示す構文要素を含む請求項18に記載の方法。
  20. 前記ビットストリームは、前記SEIメッセージを含むSEI NALユニットを含む請求項16に記載の方法。
  21. 前記SEI NALユニットは、前記ビットストリーム内で、前記複数の符号化ピクチャ区画を含む前記NALユニットの直前にあり、
    前記方法は、前記ビットストリーム内で前記複数の符号化ピクチャ区画を含む前記NALユニットの直前にある前記SEI NALユニットに少なくとも部分的に基づいて、前記SEIメッセージが前記複数の符号化ピクチャ区画を含む前記NALユニットに適用可能であると判断することをさらに備える請求項20に記載の方法。
  22. 前記符号化ピクチャ区画の並列復号のために前記符号化ピクチャ区画を異なる処理コアに供給することと、前記処理コアにおいてそれぞれの前記符号化ピクチャ区画を復号することとをさらに備える請求項16に記載の方法。
  23. 前記オフセット構文要素のそれぞれの長さは前記第1の構文要素の値に10を加えた値に等しい請求項16に記載の方法。
  24. ビデオデータを記憶するように構成されたデータ記憶媒体と、
    前記ビデオデータのコード化表現を形成するビットストリームを受信することであって、前記ビットストリームは、第1の構文要素を表すエントロピー符号化された可変長値と、第2の構文要素を表すエントロピー符号化された可変長値と、一連のオフセット構文要素とを含む、前記受信し、
    前記第1の構文要素と前記第2の構文要素とをエントロピー復号し、
    前記第1の構文要素に基づいて前記オフセット構文要素のそれぞれの長さを判断し、
    前記第2の構文要素に基づいて前記一連のオフセット構文要素内のオフセット構文要素の数を判断し、
    前記オフセット構文要素のそれぞれの前記長さと前記一連のオフセット構文要素内のオフセット構文要素の前記数とに少なくとも部分的に基づいて前記オフセット構文要素を構文解析し、
    前記オフセット構文要素に基づいてネットワーク抽象化レイヤ(NAL)ユニット内の複数の符号化ピクチャ区画の位置を判断することであって前記符号化ピクチャ区画の各々は、それぞれのエントロピースライス、タイル、または波面並列処理(WPP)波に関連付けられた、前記NALユニット内のコード化ツリーブロックのそれぞれのグループを含む、前記判断し、
    前記符号化ピクチャ区画を復号する
    ように構成された1つまたは複数のプロセッサ
    を備えるコンピューティングデバイス。
  25. 前記一連のオフセット構文要素は、前記NALユニット内の先行する符号化ピクチャ区画を基準にした前記符号化ピクチャ区画のバイトオフセットを示す請求項24に記載のコンピューティングデバイス。
  26. 前記ビットストリームは、前記第1の構文要素と、前記第2の構文要素と、前記一連のオフセット構文要素とを含む補助強化情報(SEIメッセージを含む請求項24に記載のコンピューティングデバイス。
  27. 前記SEIメッセージは、前記SEIメッセージがコード化スライスNALユニット内の符号化ピクチャ区画の入口点を示すSEIメッセージのタイプに属することを示す構文要素を含む請求項26に記載のコンピューティングデバイス。
  28. 前記ビットストリームは、前記SEIメッセージを含むSEI NALユニットを含む請求項24に記載のコンピューティングデバイス。
  29. 前記SEI NALユニットは、前記ビットストリーム内で、前記複数の符号化ピクチャ区画を含む前記NALユニットの直前にあり、
    前記1つまたは複数のプロセッサは、前記ビットストリーム内で前記複数の符号化ピクチャ区画を含む前記NALユニットの直前にある前記SEI NALユニットに少なくとも部分的に基づいて、前記SEIメッセージが前記複数の符号化ピクチャ区画を含む前記NALユニットに適用可能であると判断するように構成された請求項28に記載のコンピューティングデバイス。
  30. 前記1つまたは複数のプロセッサは、前記符号化ピクチャ区画の並列復号のために前記符号化ピクチャ区画を異なる処理コアに供給するように構成された請求項24に記載のコンピューティングデバイス。
  31. 前記コンピューティングデバイスはビデオデコーダを備える請求項24に記載のコンピューティングデバイス。
  32. 前記第1の構文要素の値に10を加えた値が前記一連のオフセット構文要素のビット数で表した長さに等しい請求項24に記載のコンピューティングデバイス。
  33. ビデオデータのコード化表現を形成するビットストリームを受信するための手段であって、前記ビットストリームは、第1の構文要素を表すエントロピー符号化された可変長値と、第2の構文要素を表すエントロピー符号化された可変長値と、一連のオフセット構文要素とを含む、前記受信するための手段と、
    前記第1の構文要素と前記第2の構文要素とをエントロピー復号するための手段と、
    前記第1の構文要素に基づいて前記オフセット構文要素のそれぞれの長さを判断するための手段と、
    前記第2の構文要素に基づいて前記一連のオフセット構文要素内のオフセット構文要素の数を判断するための手段と、
    前記オフセット構文要素のそれぞれの前記長さと前記一連のオフセット構文要素内のオフセット構文要素の前記数とに少なくとも部分的に基づいて前記オフセット構文要素を構文解析するための手段と、
    前記オフセット構文要素に基づいてネットワーク抽象化レイヤ(NAL)ユニット内の複数の符号化ピクチャ区画の位置を判断するための手段であって前記符号化ピクチャ区画の各々は、それぞれのエントロピースライス、タイル、または波面並列処理(WPP)波に関連付けられた、前記NALユニット内のコード化ツリーブロックのそれぞれのグループを含む、前記判断するための手段と、
    前記符号化ピクチャ区画を復号するための手段と
    を備えるコンピューティングデバイス。
  34. コンピューティングデバイスの1つまたは複数のプロセッサによって実行されると、前記コンピューティングデバイスを、
    ビデオデータのコード化表現を形成するビットストリームを受信することであって、前記ビットストリームは、第1の構文要素を表すエントロピー符号化された可変長値と、第2の構文要素を表すエントロピー符号化された可変長値と、一連のオフセット構文要素とを含む、前記受信し、
    前記第1の構文要素と前記第2の構文要素とをエントロピー復号し、
    前記第1の構文要素に基づいて前記オフセット構文要素のそれぞれの長さを判断し、
    前記第2の構文要素に基づいて前記一連のオフセット構文要素内のオフセット構文要素の数を判断し、
    前記オフセット構文要素のそれぞれの前記長さと前記一連のオフセット構文要素内のオフセット構文要素の前記数とに少なくとも部分的に基づいて前記オフセット構文要素を構文解析し、
    前記オフセット構文要素に基づいてネットワーク抽象化レイヤ(NAL)ユニット内の複数の符号化ピクチャ区画の位置を判断することであって前記符号化ピクチャ区画の各々は、それぞれのエントロピースライス、タイル、または波面並列処理(WPP)波に関連付けられた、前記NALユニット内のコード化ツリーブロックのそれぞれのグループを含む、前記判断し、
    前記符号化ピクチャ区画を復号する
    ように構成する命令を記憶したコンピュータ可読記憶媒体。
  35. 前記コンピューティングデバイスは、
    集積回路、
    マイクロプロセッサ、または
    ワイヤレスハンドセット、
    のうちの少なくとも1つを備える、請求項7に記載のコンピューティングデバイス。
  36. 前記コンピューティングデバイスは、
    集積回路、
    マイクロプロセッサ、または
    ワイヤレスハンドセット、
    のうちの少なくとも1つを備える、請求項24に記載のコンピューティングデバイス。
  37. 前記ビデオデータをキャプチャするように構成されたカメラをさらに備える、請求項7に記載のコンピューティングデバイス。
  38. 前記ビデオデータを表示するように構成されたディスプレイをさらに備える、請求項24に記載のコンピューティングデバイス。
JP2014540122A 2011-11-04 2012-11-02 複数の符号化ピクチャ区画を含むネットワーク抽象化レイヤユニットによるビデオコーディング Active JP5837217B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201161555932P 2011-11-04 2011-11-04
US61/555,932 2011-11-04
US201161557259P 2011-11-08 2011-11-08
US61/557,259 2011-11-08
US13/666,442 US9124895B2 (en) 2011-11-04 2012-11-01 Video coding with network abstraction layer units that include multiple encoded picture partitions
US13/666,442 2012-11-01
PCT/US2012/063265 WO2013067311A1 (en) 2011-11-04 2012-11-02 Video coding with network abstraction layer units that include multiple encoded picture partitions

Publications (2)

Publication Number Publication Date
JP2014535223A JP2014535223A (ja) 2014-12-25
JP5837217B2 true JP5837217B2 (ja) 2015-12-24

Family

ID=47190183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014540122A Active JP5837217B2 (ja) 2011-11-04 2012-11-02 複数の符号化ピクチャ区画を含むネットワーク抽象化レイヤユニットによるビデオコーディング

Country Status (12)

Country Link
US (1) US9124895B2 (ja)
EP (1) EP2774366B1 (ja)
JP (1) JP5837217B2 (ja)
KR (1) KR101654441B1 (ja)
CN (1) CN104160702B (ja)
BR (1) BR112014010330B1 (ja)
DK (1) DK2774366T3 (ja)
ES (1) ES2892341T3 (ja)
HU (1) HUE056412T2 (ja)
IN (1) IN2014CN03343A (ja)
TW (1) TWI511572B (ja)
WO (1) WO2013067311A1 (ja)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9819968B2 (en) * 2011-01-12 2017-11-14 Texas Instruments Incorporated Method and apparatus for error detection in CABAC
US9215473B2 (en) 2011-01-26 2015-12-15 Qualcomm Incorporated Sub-slices in video coding
AU2012294053B2 (en) 2011-08-11 2016-07-07 Sun Patent Trust Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus
US9077998B2 (en) 2011-11-04 2015-07-07 Qualcomm Incorporated Padding of segments in coded slice NAL units
US20130113882A1 (en) * 2011-11-08 2013-05-09 Sony Corporation Video coding system and method of operation thereof
CN104041031B (zh) 2011-12-29 2018-04-24 Lg电子株式会社 视频编码和解码方法和使用该方法的装置
CN104365100A (zh) * 2012-04-15 2015-02-18 三星电子株式会社 用于并行处理的视频编码方法和装置以及视频解码方法和装置
WO2013165215A1 (ko) * 2012-05-04 2013-11-07 엘지전자 주식회사 영상 정보 저장 방법 및 영상 정보 파싱 방법 그리고 이를 이용하는 장치
EP4436173A2 (en) * 2012-06-25 2024-09-25 Huawei Technologies Co., Ltd. Method for signaling a gradual temporal layer access picture
KR102249484B1 (ko) 2012-06-26 2021-05-12 엘지전자 주식회사 비디오 인코딩 방법, 비디오 디코딩 방법 및 이를 이용하는 장치
US9621905B2 (en) * 2012-06-29 2017-04-11 Qualcomm Incorporated Tiles and wavefront parallel processing
US8928730B2 (en) * 2012-07-03 2015-01-06 DigitalOptics Corporation Europe Limited Method and system for correcting a distorted input image
CN110035286B (zh) * 2012-07-09 2021-11-12 Vid拓展公司 用于多层视频编码的编解码器架构
WO2014024491A1 (ja) 2012-08-09 2014-02-13 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置および画像符号化復号装置
US9242602B2 (en) 2012-08-27 2016-01-26 Fotonation Limited Rearview imaging systems for vehicle
PL4033764T3 (pl) 2012-09-26 2023-12-27 Sun Patent Trust Sposób dekodowania obrazów, sposób kodowania obrazów, urządzenie do dekodowania obrazów, urządzenie do kodowania obrazów oraz urządzenie do kodowania/dekodowania obrazów
US10230956B2 (en) 2012-09-26 2019-03-12 Integrated Device Technology, Inc. Apparatuses and methods for optimizing rate-distortion of syntax elements
CN102883163B (zh) * 2012-10-08 2014-05-28 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
US9788002B2 (en) * 2012-11-29 2017-10-10 Samsung Electronics Co., Ltd. Image processing apparatus and method
US9172923B1 (en) * 2012-12-20 2015-10-27 Elemental Technologies, Inc. Sweep dependency based graphics processing unit block scheduling
RU2608465C1 (ru) * 2013-01-04 2017-01-18 Самсунг Электроникс Ко., Лтд. Способ энтропийного кодирования сегмента слайса и устройство для него и способ энтропийного декодирования сегмента слайса и устройство для него
US20140219331A1 (en) * 2013-02-06 2014-08-07 Magnum Semiconductor, Inc. Apparatuses and methods for performing joint rate-distortion optimization of prediction mode
EP3021586A4 (en) * 2013-07-07 2016-12-07 Wilus Inst Standards & Technology Inc METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNAL
KR102652871B1 (ko) 2013-07-15 2024-04-01 지이 비디오 컴프레션, 엘엘씨 네트워크 장치 및 오류 처리
US20150049105A1 (en) * 2013-08-13 2015-02-19 Mediatek Inc. Data processing apparatus for transmitting/receiving indication information of pixel data grouping setting via display interface and related data processing method
US9224187B2 (en) 2013-09-27 2015-12-29 Apple Inc. Wavefront order to scan order synchronization
US9336558B2 (en) 2013-09-27 2016-05-10 Apple Inc. Wavefront encoding with parallel bit stream encoding
KR102280170B1 (ko) * 2013-10-04 2021-07-21 삼성전자주식회사 프레임의 특성에 따라 부하를 분배하는 방법 및 장치
KR102290091B1 (ko) * 2013-10-14 2021-08-18 한국전자통신연구원 다계층 기반의 영상 부호화/복호화 방법 및 장치
US9648348B2 (en) * 2013-10-23 2017-05-09 Qualcomm Incorporated Multi-layer video file format designs
US10225566B2 (en) * 2013-11-01 2019-03-05 Sony Corporation Transmission device, transmission method, reception device, and reception method
US9736488B2 (en) * 2013-11-27 2017-08-15 Nxp Usa, Inc. Decoding for high efficiency video transcoding
JP6213580B2 (ja) 2014-02-10 2017-10-18 日本電気株式会社 映像符号化装置、映像符号化方法およびプログラム
US20150262404A1 (en) * 2014-03-13 2015-09-17 Huawei Technologies Co., Ltd. Screen Content And Mixed Content Coding
US10178397B2 (en) * 2014-03-24 2019-01-08 Qualcomm Incorporated Generic use of HEVC SEI messages for multi-layer codecs
CN103957471B (zh) * 2014-05-05 2017-07-14 华为技术有限公司 网络视频播放的方法和装置
US10257529B2 (en) 2014-06-30 2019-04-09 Intel Corporation Techniques for generating wave front groups for parallel processing a video frame by a video encoder
CN105874800B (zh) * 2014-09-17 2019-05-10 联发科技股份有限公司 句法解析装置和句法解析方法
TWI511530B (zh) * 2014-12-09 2015-12-01 Univ Nat Kaohsiung 1St Univ Sc Distributed video coding system and decoder for distributed video coding system
US9854261B2 (en) * 2015-01-06 2017-12-26 Microsoft Technology Licensing, Llc. Detecting markers in an encoded video signal
GB2534409A (en) * 2015-01-23 2016-07-27 Sony Corp Data encoding and decoding
CN105992018B (zh) * 2015-02-11 2019-03-26 阿里巴巴集团控股有限公司 流媒体转码方法和装置
CN106210728B (zh) * 2015-04-10 2019-08-30 上海澜至半导体有限公司 用于视频解码的电路、方法和视频解码器
EP3276957A4 (en) * 2015-05-12 2018-02-28 Samsung Electronics Co., Ltd. Image encoding method and device for sample value compensation and image decoding method and device for sample value compensation
US20170134732A1 (en) * 2015-11-05 2017-05-11 Broadcom Corporation Systems and methods for digital media communication using syntax planes in hierarchical trees
JP6906940B2 (ja) 2015-12-28 2021-07-21 株式会社半導体エネルギー研究所 半導体装置
WO2017171438A1 (ko) * 2016-03-30 2017-10-05 한국전자통신연구원 픽쳐 분할 정보를 사용하는 비디오의 부호화 및 복호화를 위한 방법 및 장치
CN116156163A (zh) * 2016-03-30 2023-05-23 韩国电子通信研究院 使用画面划分信息对视频进行编码和解码的方法和设备
US20200120359A1 (en) * 2017-04-11 2020-04-16 Vid Scale, Inc. 360-degree video coding using face continuities
US10452552B2 (en) 2017-04-17 2019-10-22 Intel Corporation Memory-based dependency tracking and cache pre-fetch hardware for multi-resolution shading
US10506258B2 (en) * 2017-07-13 2019-12-10 Google Llc Coding video syntax elements using a context tree
MX2020013864A (es) 2018-06-21 2021-03-25 Ericsson Telefon Ab L M Particiones de mosaicos con sub-mosaicos en codificacion de video.
CN112585970B (zh) 2018-06-21 2024-07-09 瑞典爱立信有限公司 灵活图块分区
WO2019243534A1 (en) * 2018-06-21 2019-12-26 Telefonaktiebolaget Lm Ericsson (Publ) Tile shuffling for 360 degree video decoding
TWI820195B (zh) 2018-08-28 2023-11-01 大陸商北京字節跳動網絡技術有限公司 分割方法的冗餘移除
CA3111617A1 (en) * 2018-08-29 2020-03-05 Sharp Kabushiki Kaisha Video decoding apparatus and video coding apparatus
US10375416B1 (en) * 2018-09-05 2019-08-06 Tencent America LLC Segment types in video coding
CN112703736B (zh) 2018-09-14 2022-11-25 华为技术有限公司 视频译码方法,视频译码设备以及非瞬时性计算机可读介质
CN112823525A (zh) 2018-10-02 2021-05-18 瑞典爱立信有限公司 基于图块组id对图片进行编码和解码
CN111131826A (zh) * 2018-10-31 2020-05-08 上海天荷电子信息有限公司 定长码单元含多个编码参数变长码的数据压缩方法和装置
US10972755B2 (en) * 2018-12-03 2021-04-06 Mediatek Singapore Pte. Ltd. Method and system of NAL unit header structure for signaling new elements
WO2020130912A1 (en) * 2018-12-20 2020-06-25 Telefonaktiebolaget Lm Ericsson (Publ) Improved tile address signalling in video encoding and decoding
SG11202106524PA (en) * 2018-12-20 2021-07-29 Ericsson Telefon Ab L M Normative indication of recovery point
CN113366855A (zh) 2019-02-03 2021-09-07 北京字节跳动网络技术有限公司 基于条件的非对称四叉树分割
WO2020185959A1 (en) * 2019-03-11 2020-09-17 Futurewei Technologies, Inc. Gradual decoding refresh in video coding
CN113906744A (zh) * 2019-03-15 2022-01-07 北京达佳互联信息技术有限公司 视频编解码中无损编解码的信令
CN113785583A (zh) * 2019-04-10 2021-12-10 华为技术有限公司 视频译码中的条带入口点
CN112118454B (zh) * 2019-06-20 2023-02-24 腾讯美国有限责任公司 视频解码方法、设备和计算机可读存储介质
KR20220051403A (ko) * 2019-09-05 2022-04-26 에이치에프아이 이노베이션 인크. 비디오 코딩에서의 픽처 및 서브픽처 경계에서의 적응형 루프 필터링을 위한 방법 및 장치
US11356685B2 (en) * 2019-09-23 2022-06-07 Qualcomm Incorproated Signaling number of sub-pictures in high-level syntax for video coding
JP2022549011A (ja) * 2019-09-24 2022-11-22 華為技術有限公司 ビデオコーディングにおけるピクチャーヘッダーのシグナリング
WO2021101066A1 (ko) * 2019-11-22 2021-05-27 엘지전자 주식회사 비디오 또는 영상 코딩 시스템에서의 엔트리 포인트 관련 정보에 기반한 영상 코딩 방법
US12101485B2 (en) 2019-12-24 2024-09-24 Electronics And Telecommunications Research Institute Image encoding/decoding method and device
US11405649B2 (en) * 2020-02-18 2022-08-02 Mediatek Inc. Specifying slice chunks of a slice within a tile
US11792432B2 (en) * 2020-02-24 2023-10-17 Tencent America LLC Techniques for signaling and identifying access unit boundaries
WO2021197862A1 (en) * 2020-03-31 2021-10-07 Nokia Technologies Oy Merge candidate list for gradual decoding refresh
WO2021252471A1 (en) 2020-06-09 2021-12-16 Bytedance Inc. Handling of supplemental enhancement information in subpicture sub-bitstream extraction process
WO2023244670A1 (en) * 2022-06-15 2023-12-21 Innopeak Technology, Inc. Methods, systems, and apparatuses for point cloud coding

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471248A (en) * 1992-11-13 1995-11-28 National Semiconductor Corporation System for tile coding of moving images
EP0614317A3 (en) 1993-03-05 1995-01-25 Sony Corp Decoding video signals.
US5532744A (en) 1994-08-22 1996-07-02 Philips Electronics North America Corporation Method and apparatus for decoding digital video using parallel processing
JP2003174650A (ja) 2001-09-27 2003-06-20 Canon Inc 画像符号化装置、可変長符号化装置、制御装置およびそれらの方法
US6919826B1 (en) * 2003-12-19 2005-07-19 Sun Microsystems, Inc. Systems and methods for efficient and compact encoding
JP4374548B2 (ja) 2005-04-15 2009-12-02 ソニー株式会社 復号装置および方法、記録媒体、並びに、プログラム
US7595743B1 (en) 2005-10-26 2009-09-29 Lsi Corporation System and method for reducing storage requirements for content adaptive binary arithmetic coding
KR100943914B1 (ko) 2006-01-12 2010-03-03 엘지전자 주식회사 다시점 비디오의 처리 방법 및 장치
CN100471279C (zh) * 2006-02-13 2009-03-18 清华大学 一种基于上下文自适应变长解码的方法
KR100934674B1 (ko) 2006-03-30 2009-12-31 엘지전자 주식회사 비디오 신호를 디코딩/인코딩하기 위한 방법 및 장치
US7656326B2 (en) * 2006-06-08 2010-02-02 Via Technologies, Inc. Decoding of context adaptive binary arithmetic codes in computational core of programmable graphics processing unit
US8699583B2 (en) 2006-07-11 2014-04-15 Nokia Corporation Scalable video coding and decoding
KR101065228B1 (ko) 2006-07-13 2011-09-16 퀄컴 인코포레이티드 사이클-정렬된 프래그먼트를 이용하는 fgs 비디오 코딩
US8218908B2 (en) 2006-11-02 2012-07-10 Canon Kabushiki Kaisha Mixed content image compression with two edge data representations
JP5156088B2 (ja) 2007-03-23 2013-03-06 エルジー エレクトロニクス インコーポレイティド ビデオ信号のデコーディング/エンコーディング方法及び装置
EP2512135B1 (en) 2007-04-12 2015-03-18 Thomson Licensing Tiling in video encoding and decoding
US8619874B2 (en) 2007-04-13 2013-12-31 Apple Inc. Method and system for video encoding and decoding
CN101690220B (zh) 2007-04-25 2013-09-25 Lg电子株式会社 用于解码/编码视频信号的方法和装置
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8542748B2 (en) 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding
JP5238069B2 (ja) 2008-04-25 2013-07-17 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ トランスポート・データストリーム内で参照するフレキシブル・サブストリーム
US8311111B2 (en) 2008-09-11 2012-11-13 Google Inc. System and method for decoding using parallel processing
EP2351375A1 (en) 2008-10-30 2011-08-03 GVBB Holdings S.A.R.L Image encoding apparatus, image encoding method, and image encoding program
JP2010183305A (ja) 2009-02-05 2010-08-19 Sony Corp 信号処理装置及び信号処理方法
US8949695B2 (en) 2009-08-27 2015-02-03 Cleversafe, Inc. Method and apparatus for nested dispersed storage
FR2951896A1 (fr) 2009-10-23 2011-04-29 France Telecom Procede d'encapsulation de sous-flux de donnees, procede de desencapsulation et programmes d'ordinateur correspondants
US20120075436A1 (en) 2010-09-24 2012-03-29 Qualcomm Incorporated Coding stereo video data
US9313514B2 (en) 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
IL210169A0 (en) 2010-12-22 2011-03-31 Yehuda Binder System and method for routing-based internet security
US9060174B2 (en) 2010-12-28 2015-06-16 Fish Dive, Inc. Method and system for selectively breaking prediction in video coding
US9215473B2 (en) 2011-01-26 2015-12-15 Qualcomm Incorporated Sub-slices in video coding
US9325999B2 (en) 2011-03-10 2016-04-26 Sharp Kabushiki Kaisha Video decoder for slices
US9077998B2 (en) 2011-11-04 2015-07-07 Qualcomm Incorporated Padding of segments in coded slice NAL units

Also Published As

Publication number Publication date
US20130114735A1 (en) 2013-05-09
IN2014CN03343A (ja) 2015-09-04
CN104160702B (zh) 2018-10-26
CN104160702A (zh) 2014-11-19
HUE056412T2 (hu) 2022-02-28
BR112014010330B1 (pt) 2022-05-10
EP2774366B1 (en) 2021-09-08
US9124895B2 (en) 2015-09-01
ES2892341T3 (es) 2022-02-03
EP2774366A1 (en) 2014-09-10
BR112014010330A2 (pt) 2017-04-18
KR20140093254A (ko) 2014-07-25
TW201342921A (zh) 2013-10-16
TWI511572B (zh) 2015-12-01
WO2013067311A1 (en) 2013-05-10
KR101654441B1 (ko) 2016-09-09
JP2014535223A (ja) 2014-12-25
DK2774366T3 (da) 2021-10-04

Similar Documents

Publication Publication Date Title
JP5837217B2 (ja) 複数の符号化ピクチャ区画を含むネットワーク抽象化レイヤユニットによるビデオコーディング
CA2860840C (en) Indication of use of wavefront parallel processing in video coding
KR102038190B1 (ko) 스케일러블 비디오 코딩에서의 비트스트림 적합성 제약들
JP6125643B2 (ja) 付加拡張情報メッセージコーディング
US10264272B2 (en) Device and method for scalable coding of video information
KR102082031B1 (ko) Hevc 멀티-계층 확장물들에서 비-hevc 기본 계층의 지원
JP5890031B2 (ja) ビデオコーディング用の断片化されたパラメータセット
US10123030B2 (en) Streaming adaption based on clean random access (CRA) pictures
CN106464876B (zh) 使用序列结束网络抽象层单元的改进视频编码
JP2014534737A (ja) ピクチャ区分方式の統合的設計
JP6633005B2 (ja) マルチレイヤコーデックのためのフルピクチャ順序カウントリセット
JP2014530573A (ja) 参照ピクチャシグナリングおよび復号ピクチャバッファ管理
TWI566582B (zh) 用於處理及編碼視訊資料之方法、器件及裝置以及電腦可讀儲存媒體

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150909

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151104

R150 Certificate of patent or registration of utility model

Ref document number: 5837217

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250