JP6644766B2 - ディスプレイストリーム圧縮のためにバッファ満杯を決定するためのシステムおよび方法 - Google Patents

ディスプレイストリーム圧縮のためにバッファ満杯を決定するためのシステムおよび方法 Download PDF

Info

Publication number
JP6644766B2
JP6644766B2 JP2017506726A JP2017506726A JP6644766B2 JP 6644766 B2 JP6644766 B2 JP 6644766B2 JP 2017506726 A JP2017506726 A JP 2017506726A JP 2017506726 A JP2017506726 A JP 2017506726A JP 6644766 B2 JP6644766 B2 JP 6644766B2
Authority
JP
Japan
Prior art keywords
buffer
block
slice
bits
determining
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
JP2017506726A
Other languages
English (en)
Other versions
JP2017528969A (ja
JP2017528969A5 (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 JP2017528969A publication Critical patent/JP2017528969A/ja
Publication of JP2017528969A5 publication Critical patent/JP2017528969A5/ja
Application granted granted Critical
Publication of JP6644766B2 publication Critical patent/JP6644766B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/124Quantisation
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

[0001] 本開示はビデオコーディングおよび圧縮の分野に関し、特にディスプレイリンクビデオ圧縮のような、ディスプレイリンク上の送信のためのビデオ圧縮に関する。
[0002] デジタルビデオ機能は、デジタルテレビ、携帯情報端末(PDA)、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレイヤ、ビデオゲームデバイス、ビデオゲーム卓、セルラ式または衛星無線電話、ビデオテレビ会議デバイス等を含む広範囲のディスプレイに組み込まれることができる。ディスプレイリンクは、ディスプレイを適切なソースデバイスに接続するために使用される。ディスプレイリンクの帯域幅要求はディスプレイの解像度に比例し、それゆえ高解像度ディスプレイは広帯域幅ディスプレイリンクを要求する。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートする帯域幅を有しない。ビデオ圧縮は、下位帯域幅ディスプレイリンクを使用してデジタルビデオを高解像度ディスプレイに提供できるように帯域幅要求を低減するために使用され得る。
[0003] 他には、画素データに画像圧縮を利用することが試みられている。しかしながら、そのような様式はときどき視覚的に無損失でなかったり、従来のディスプレイ装置において実施することが難しく高価であったりし得る。
[0004] ビデオエレクトロニクススタンダーズアソシエーション(VESA: Video Electronics Standards Association)は、ディスプレイリンクビデオ圧縮の標準規格としてディスプレイストリームコンプレッション(DSC:Display Stream Compression)策定した。DSCのようなディスプレイリンクビデオ圧縮技法は、数ある中で、視覚的に無損失である画質(すなわち、圧縮がアクティブであるとユーザが分からないような品質のレベルを有する映像)を提供するはずである。ディスプレイリンクビデオ圧縮技法はまた、従来のハードウェアでリアルタイムに実施することが容易で効果でない様式を提供するはずである。
[0005] 本開示のシステム、方法、およびデバイスは各々いくつかの革新的な様態を有し、これらのうちの何れも、ここに開示される望ましい属性を単独で担うものではない。
[0006] ある態様では、ビデオデータのスライス中のブロックをコーディングすることであって、スライスがビデオデータの1つまたは複数のブロックを備える、コーディングすることと、ブロックに対応するビットをバッファに記憶することと、スライス中のブロックの位置を示す情報を決定することと、スライス中のブロックの位置に少なくとも部分的に基づいてバッファの満杯を決定することとを備える、ディスプレイリンクビデオ圧縮の方法が提供される。
[0007] 別の態様では、ディスプレイリンクビデオ圧縮のための装置が、ビデオデータのスライス中のブロックをコーディングするように構成され、スライスがビデオデータの1つまたは複数のブロックを備える、プロセッサと、ブロックに対応するビットを記憶するように構成されるバッファと、ビデオコーディングデバイスおよびバッファに動作的に結合されるプロセッサ
を備える。このプロセッサは、スライス中のブロックの位置を示す情報を決定し、スライス中のブロックの位置に少なくとも部分的に基づいてバッファの満杯を決定するようにさらに構成される。
[0008] 別の態様では、非一時的なコンピュータ可読記憶媒体が、実行されたときに、ビデオデータのスライス中のブロックをコーディングさせることであって、スライスがビデオデータの1つまたは複数のブロックを備える、コーディングすることと、ブロックに対応するビットをバッファに記憶することと、スライス中のブロックの位置を示す情報を決定することと、スライス中のブロックの位置に少なくとも部分的に基づいてバッファの満杯を決定することとをデバイスのプロセッサにさせる命令を含む。
[0009] 別の態様では、 ビデオデータのスライス中のブロックをコーディングするための手段であって、スライスがビデオデータの1つまたは複数のブロックを備える、コーディングするための手段と、ブロックに対応するビットをバッファに記憶するための手段と、スライス中のブロックの位置を示す情報を決定するための手段と、スライス中のブロックの位置に少なくとも部分的に基づいてバッファの満杯を決定するための手段とを備える、ビデオコーディングデバイスが提供される。
本開示に記載の態様に従う技法を利用し得るビデオエンコーディングおよびデコーディングシステムの例を示すブロック図である。 本開示に記載の態様に従う技法を行い得るビデオエンコーディングおよびデコーディングシステムの他の例を示すブロック図である。 本開示に記載の態様に従う技法を実施し得るビデオエンコーダの例を示すブロック図である。 本開示に記載の態様に従う技法を実施し得るビデオデコーダの例を示すブロック図である。 データのスライスを符号化する(encoding)ための例示的処理を示すグラフである。 スライスの符号化中にバッファ満杯(BF:buffer fullness)を調整するための例示的技法を示す。 バッファで一定ビットレート(CBR:constant bit rate)出力を提供するための方法の例を示すフローチャートである。
詳細な説明
[0017] 一般に、本開示は、ディスプレイリンクビデオ圧縮で利用されるもののようなビデオ圧縮技法を向上させるための方法に関する。より具体的には、本開示は、ディスプレイリンクビデオ圧縮のためにバッファ(例えば、レートバッファ)の一定ビットレート(CBR)出力および/または入力を提供するためのシステムおよび方法に関する。
[0018] 従来のディスプレイ技術において、ディスプレイリンクビデオ圧縮の一例である、ビデオエレクトロニクススタンダーズアソシエーション(VESA)によってディスプレイストリームコンプレッション(DSC)v1.0ソリューションによって提供されるような3対1の圧縮は今後のモバイル市場要求、特に4K解像度(4Kとも称される)のような高解像度ディスプレイに関連する要求を追いやるには不十分であり得る。それゆえ、今後の要求に応えるために、4対1の圧縮およびその上を提供する次世代DSC規格などへの編入のための方法体系を開発することが望ましい。
[0019] このコンテキストにおいて、DSC方法体系の性能を決定することにおいてレート制御を扱うことが望ましい。レート制御の1つの目的は、レート歪性能を最大化する一方でレートの瞬時および平均的制約を満足する、量子化パラメータ(QP:quantization parameter)、コーディングモードなどのような、コーディングパラメータのセットを決定することである。
[0020] ビデオデータの各ブロックを符号化することで費やされるビット(すなわち、符号化のために利用されるビット)は、ブロックの特性(例えば、ビットのサイズ、数など)に基づいて実質的に変化し得る。このため、バッファが出力ビットストリームにおけるレート変動を平滑化するためにレート制御機構の一部として使用され得る。CBRバッファモデルでは、ビットが有線物理リンク上でのデータ送信中に一定レートでバッファから除去されることがある。このようなバッファモデルでは、エンコーダがバッファから除去されるビットに比べて多すぎるビットを追加した場合にバッファにおけるビットの数がバッファ容量を超過して、オーバーフローを引き起こすことがある。他方、エンコーダはアンダーフローを防止するために十分なレートでビットを追加すべきである。デコーダ側では、ビットが一定レートでバッファに追加され、デコーダが各ブロック毎に可変数のビットを除去する。適切な復号を確実にするため、バッファは圧縮されたビットストリームの復号中のどのポイントでもアンダーフローまたはオーバーフローすべきでない。
[0021] 変数BufferCurrentSizeはバッファ内に現在記憶されたビットの数を表し、変数BufferMaxSizeはバッファのサイズ(すなわち、容量)、すなわちバッファに記憶できるビットの総最大数を表すこととする。バッファの「満杯」(バッファ満杯(BF)とも称される)は以下の式1に示すように計算され得る。BFは特定時点でビットの記憶のために使用されているバッファの容量のパーセンテージを表す。
BF = ((BufferCurrentSize * 100) / BufferMaxSize) (式1)
または、
BF = (((BufferCurrentSize * 100 ) + (BufferMaxSize >> 1) )/ BufferMaxSize) (式2)
を使用。
[0022] しかしながら、ある実施形態では、ビデオデータのスライスの終わりで、すなわちスライス中の全ブロックのコーディング後にバッファ内に含まれた(すなわち、記憶された)ビットの数がBufferMaxSizeよりも少ないことが望ましい。変数maxBufferBitsAtSliceEndがスライスの終わりでバッファ内にあるビットの望ましい最大数を表すとする。一例において、 アンダーフローおよび/またはオーバーフローを防止するためには、スライスの終わりでバッファ内にあるビットの数がBufferMaxSize未満であり得るmaxBufferBitsAtSliceEndに等しいことが最適であり得る。 このような実施形態では、maxBufferBitsAtSliceEnd がスライスの終わりでBFを計算する際にBufferMaxSize の代わりに使用されることになり、上記の式1および/または式2が最適でなくなることになる。
[0023] このような実施形態では、スライス中の所与のブロックのコーディング位置に依存して(すなわち、基づいて)BFを調整することが望まれる。より正確には、BFは、BufferCurrentSize = maxBufferBitsAtSliceEndである場合にスライスの終了でBFが100%となる方式でスライス中のある固定数(すなわち、所定または構成可能数)のブロックをコーディングした後に一定レートで直線的に減少する。
[0024] ある実施形態がDSC規格のコンテキストでここに記載される一方で、当業者はここに開示されたシステムおよび方法が何らかの適切なビデオコーディング規格に適用可能であることを理解するであろう。例えば、ここに開示された実施形態は、以下の標準規格、国際電気通信連合(ITU)電気通信標準化部門(ITU−T)H.261、国際標準化機構/国際電 気標準会議(ISO/IEC)動画専門家集団−1(MPEG−1) Visual、ITU−T H.262 またはISO/IEC MPEG−2 Visual、UTU−T H.262 またはITU−T H.263、ISO/IEC MPEG−4 Visual、ITU−T H.264(ISO/IEC MPEG−4 AVCとしても知られる)、高効率ビデオコーディング(HEVC)、およびこうした標準規格に対する何らかの拡張、のうちの1つまたは複数に適用可能であり得る。また、この開示に記載された技法は今後開発される標準規格の一部となり得る。言い換えれば、この開示に記載の技法は以前開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および来るべきビデオコーディング規格に適用可能であり得る。
ビデオコーディング規格
[0025] ビデオ画像、TV画像、静止画、またはビデオレコーダまたはコンピュータによって生成された画像のようなデジタルイメージは水平線および垂直線に並べられたサンプルまたは画素を含み得る。単一画像中の画素の数は、一般に何万である。各画素は、一般にルミナンス(luminance)およびクロミナンス(chrominance)情報を包含する。圧縮しないと、イメージエンコーダからイメージデコーダへ運ばれるべき純然たる量の情報がリアルタイム伝送を実行不可能にするはずである。伝送されるべき情報の量を削減するために、JPEG、MPEG、およびH.263規格のような多数の異なる圧縮方法が開発されてきた。
[0026] ビデオコーディング規格は、ITU−T H.261、ISO/IEC MPEG−1 Visual、ITU−T H.262、ISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IECMPEG−4 Visual、ITU−T H.264(ISO/IECMPEG−4 AVCとしても知られる)、およびHEVCをこうした標準規格の拡張を含めて含む。
[0027] 加えて、ビデオコーディング規格、すなわちDSCは、VESAによって開発されている。DSC規格はディスプレイリンク上の伝送のためにビデオを圧縮できるビデオ圧縮規格である。ディスプレイの解像度の増大につれて、ディスプレイを駆動するために必要なビデオデータの帯域幅が同様に増大する。いくつかのディスプレイリンクはこうした解像度でビデオデータをディスプレイへ伝送するための帯域幅を持たないことがある。よって、DSC規格は、ディスプレイリンク上で相互運用可能で視覚的に無損失な圧縮を規定している。
[0028] DSC規格は、H.264およびHEVCのような他のビデオコーディング規格とは異なっている。SSCはフレーム内(intra-frame)圧縮含むが、フレーム間(inter-frame)圧縮を含まず、時間的情報がビデオデータをコーディングする際にDSC規格によって使用され得ないことを意味する。対照的に、他のビデオコーディング規格はこれらのビデオコーディング技法においてフレーム間圧縮を採用し得る。
ビデオコーディングシステム
[0029] 新たなシステム、装置、および方法の様々な態様は、添付の図面を参照して以下でさらに十分に説明される。しかしながら、本開示は、多くの異なる形式で具現化され得、この本開示全体にわたって提示される任意の特定の構成または機能に限定されると解釈されるべきではない。むしろ、これらの態様は、この開示を徹底的かつ完全なものとし、本開示の範囲が当業者に十分に伝わるように、提供されるものである。本明細書における教示に基づいて、当業者は、本開示の範囲が、本開示の任意の他の態様とは独立して、または組み合わされて実施されようと、本明細書において開示される新たなシステム、装置、および方法の任意の態様をカバーするように意図されていることを理解すべきである。例えば、本明細書に記載された任意の数の態様を使用して、装置が実施され得る、または方法が実施され得る。加えて、本開示の範囲は、本明細書において記載されている開示の様々な態様に加えて、またはそれ以外の、他の構造、機能性、あるいは構造および機能性を使用して実施されるそのような装置または方法をカバーするように意図されている。本明細書において開示される任意の態様が、請求項の1つまたは複数の要素によって具現化され得ることが理解されるべきである。
[0030] 特定の態様がここに記載されたが、これらの態様の多くの変形および並べ替えが本開示の範囲内である。好ましい態様のいくつかの恩恵および利点が説明されるが、本開示の範囲は、特定の恩恵、使用、または目的に限定されることを意図しない。そうではなく、本開示の態様は、異なる無線技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能であることが意図され、そのうちのいくつかは、図面および好ましい態様の下記の説明において、例として示される。詳細な説明および図面は単に、限定というよりはむしろ本開示の例示であり、本開示の範囲は、添付された特許請求の範囲およびそれらの同等物によって定義されている。
[0031] 添付の図面は例を例示している。添付の図面において参照番号で示された要素は、以下の記述において同様の参照番号で示された要素に対応する。本開示では、順序を示す言葉(例えば、「第1の」、「第2の」、「第3の」等)で始まる名称を有する要素は、必ずしも、その要素が特定の順序を持つことを含意していない。むしろ、そのような順序を示す言葉は単に、同じまたは同様のタイプの異なる要素を称するために使用され得る。
[0032] 図1Aは、本開示に記載の態様に従う技術を利用し得るビデオエンコーディングシステムの例を示すブロック図である。ここで使用され記載されるように、「ビデオコーダ」または「コーダ」という用語は、概して、ビデオエンコーダおよびビデオデコーダの両方を指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、概して、ビデオ符号化またはビデオ復号を指し得る。ビデオエンコーダおよびビデオデコーダに加えて、本願に記載された態様はトランスコーダ(例えばビットストリームを復号し他のビットストリームを再符号化できるデバイス)およびミドルボックス(例えば、ビットストリームを変形、変換、および/またはさもなければ操作できるデバイス)のような他の関連デバイスに拡張され得る。
[0033] 図1Aに示されるように、ビデオコーディングシステム10は、宛先デバイス14(すなわち、「ビデオコーディングデバイス14」または「コーディングデバイス14」)によって後の時期に復号されることになる符号化されたビデオデータを生成するソースデバイス12(すなわち、「ビデオコーディングデバイス12」または「コーディングデバイス12」)を含む。図1Aの例では、ソースデバイス12および宛先デバイス14が別個のデバイスを構成する。しかしながら、ソースデバイス12および宛先デバイス14は、図1Bに示されるように、同一デバイス上にあるまたはその一部であることができることに留意されたい。
[0034] 再び図1Aを参照すると、ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(例えばラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、およびいわゆる「スマート」フォン、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤー、ビデオゲームコンソール、ビデオストリーミングデバイスなどのようなテレフォンハンドセットを含む広範囲のデバイス(ビデオコーディングデバイスとも称される)のうちのいずれかをそれぞれ備え得る。様々な実施形態において、ソースデバイス12および宛先デバイス14はワイヤレス通信のために(すなわち、これを介して通信するように構成され)装備され得る。
[0035] ビデオコーディングシステム10のビデオコーディングデバイス12、14は、ワイヤレスワイドエリアネットワーク(WWAN)(例えばセルラー)および/またはワイヤレスローカルエリアネットワーク(WLAN)キャリアのような無線技術およびワイヤレスネットワークを通じて通信するように構成され得る。「ネットワーク」および「システム」という用語は、しばしば同義で使用される。ビデオコーディングデバイス12、14の各々は、ユーザ機器(UE)、端末、移動局、加入者ユニットなどであり得る。
[0036] WWANキャリアは、例えば、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、直交周波数分割多元接続(OFDMA)、単一キャリアFDMA(SC−FDMA)、および他のネットワークのようなワイヤレス通信ネットワークを含み得る。CDMAネットワークは、ユニバーサル地上無線アクセス(UTRA)、cdma2000、等のような無線技術を実施し得る。UTRAは、広帯域CDMA(WCDMA(登録商標))およびCDMAの他の変種を含む。CDMA2000は、IS−2000、IS−95およびIS−856規格をカバーする。TDMAネットワークは、移動体通信のためのグローバルシステム(GSM(登録商標))のような無線技術を実施し得る。OFDMAネットワークは、発展型UTRA(E−UTRA)、ウルトラモバイルブロードバンド(UMB)、IEEE802.11(Wi−Fi)、IEEE802.16(WiMAX)、IEEE802.20、フラッシュOFDM、等のような無線技術を実現し得る。UTRAおよびE−UTRAは、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)の一部である。3GPP(登録商標)ロングタームエボリューション(LTE(登録商標))およびLTEアドバンスト(LTE−A)は、E−UTRAを使用するUMTSの最新リリースである。UTRA、E-UTRA、UMTS、LTE、LTE-A、およびGSMは、「第3世代パートナーシッププロジェクト」(3GPP)という名称の組織からの文書で説明される。CDMA2000およびUMBは、「第3世代パートナーシッププロジェクト2」(3GPP2)という名称の組織からの文書で説明される。
[0037] ビデオコーディングシステム10のビデオコーディングデバイス12、14はまた、例えば802.11a−1999(「802.11a」と一般に呼ばれる)、802.11b−1999(「802.11b」と一般に呼ばれる)、802.11g−2003(「802.11g」と一般に呼ばれる)、などの修正を含むIEEE 802.11規格のような1つまたは複数の標準規格に従ってWLAN基地局を介して各々上と通信し得る。
[0038] 宛先デバイス14は、復号すべき符号化ビデオデータをリンク16を介して受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化されたビデオデータを移すことが可能な任意のタイプの媒体またはデバイスを備え得る。図1Aの例において、リンク16は、ソースデバイス12が符号化ビデオデータを宛先デバイス14へリアルタイムで送信することを可能にする通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルのような通信規格に従って変調され、宛先デバイス14へ送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線のような、任意のワイヤレスまたは有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークのような、パケットベースのネットワークの一部を構成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするのに役立ち得る任意の他の機器を含み得る。
[0039] 図1Aの例において、ソースデバイス12は、ビデオソース18、ビデオエンコーダ20、および出力インターフェース22を含む。いくつかのケースにおいて、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、例えば、ビデオカメラ、以前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックデータを生成するためのコンピュータグラフィックシステム、またはそれらのソースの組み合わせといった、ビデオキャプチャデバイスのようなソースを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、図1Bの例に示されるように、いわゆる「カメラ付電話」、または「ビデオ電話」を構成できる。しかしながら、本開示に記載された技法は、一般にビデオコーディングに適用可能であり、ワイヤレスおよび/またはワイヤードアプリケーションに適用され得る。
[0040] キャプチャされた、予めキャプチャ済の(pre-captured)、またはコンピュータにより生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して、宛先デバイス14に送信され得る。符号化ビデオデータはまた、(または代わりに)、復号および/または再生のために、宛先デバイス14または他のデバイスによる後のアクセスのために記憶デバイス31上に記憶され得る。図1Aおよび図1Bに例示されたビデオエンコーダ20は、図2Aに例示されたビデオエンコーダ20またはここに記載された何か他のビデオエンコーダを備え得る。
[0041] 図1Aの例では、宛先デバイス14は、入力インタフェース28、ビデオデコーダ30、およびディスプレイデバイス32を含む。いくつかのケースにおいて、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介しておよび/または記憶デバイス31から符号化ビデオデータを受信し得る。リンク16を介して通信された、または記憶デバイス上で提供された符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30のようなビデオデコーダによる使用のためにビデオエンコーダによって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上に送信された、記憶媒体上に記憶された、またはファイルサーバに記憶された符号化ビデオデータに含まれ得る。図1Aおよび図1Bに例示されたビデオデコーダ30は、図2Bに例示されたビデオデコーダ30またはここに記載された何か他のビデオデコーダを備え得る。
[0042] ディスプレイデバイス32は、宛先デバイス14と一体化され得る、あるいは宛先デバイス14の外部にあり得る。いくつかの例において、宛先デバイス14は、一体化されたディスプレイデバイスを含み得、また外部のディスプレイデバイスとインターフェースで接続するように構成され得る。他の例において、宛先デバイス14は、ディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または他のタイプのディスプレイデバイスのような、様々なディスプレイデバイスの何れかを備え得る。
[0043] 関連の態様において、図1Bは、ソースデバイス12および宛先デバイス14がデバイス11上またはその一部であるビデオコーディングシステム10’の例を示す。デバイス11は、「スマート」フォンなどのテレフォンハンドセットであり得る。デバイス11は、ソースデバイス12および宛先デバイス14と通信動作するプロセッサ/制御デバイス13(オプションで存在する)を含み得る。図1Bのビデオコーディングシステム10’およびそのコンポーネントは、そうでなければ図1Aのビデオコーディングシステム10およびそのコンポーネントと同様である。
[0044] ビデオエンコーダ20およびビデオデコーダ30はDSCのようなビデオ圧縮規格に従って動作し得る。代わりに、ビデオエンコーダ20およびビデオデコーダ30は、ITU−T H.264規格、代わってMPEG−4、Part10、AVC、HEVCまたはそのような規格の拡張と称されるのような、他の所有権または工業規格に従って動作できる。しかしながら本開示の技法は、何らかの特定のコーディング規格に限定されない。ビデオ圧縮規格の他の例は、MPEG−2およびITU−T H.263を含む。
[0045] 図1Aおよび図1Bの例において示されないが、ビデオエンコーダ20およびビデオデコーダ30は、各々オーディオエンコーダおよびデコーダと一体化され得、共通のデータストリームまたは別個のデータストリームにおけるオーディオおよびビデオの両方の符号化を扱うために、適切なMUX−DEMUXユニットまたは他のハードウェアおよびソフトウェアを含み得る。適用可能ならば、いくつかの例において、MUX−DEMUXユニットは、ITU.H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)のような他のプロトコルに従い得る。
[0046] ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの組み合わせのような、様々な適したエンコーダ回路のいずれかとして実施され得る。技法が部分的にソフトウェアで実施される場合、デバイスは、適した非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を行うために1つまたは複数のプロセッサを使用してハードウェアで命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれることができ、エンコーダまたはデコーダのどちらかは、該当のデバイスにおいて組み合わされたエンコーダ/デコーダ(CODEC)の一部として一体化され得る。
ビデオコーディング処理
[0047] 上で簡単に述べたように、ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは1つまたは複数のピクチャを備え得る。いくつかの事例において、ピクチャの各々はビデオ「フレーム」と称される。ビデオエンコーダ20がビデオデータ(例えば、ビデオコーディングレイヤ(VCL)データおよびまたは非VCLデータ)を符号化するとき、ビデオエンコーダ20はビットストリームを生成し得る。ビットストリームは、ビデオデータのコーディングされた表現を形成するビットのシーケンスを含み得る。ビットストリームは、コーディングされたピクチャおよび関連付けられたデータを含み得る。コーディングされたピクチャは、ピクチャのコーデングされた表現である。VCLデータはそーディングされたピクチャデータ(すなわち、コーディングされたピクチャのサンプルに関連付けられた情報)を含み得、および非VCLデータは1つまたは複数のコーディングされたピクチャに関連付けられた制御情報(例えば、パラメータセットおよび/または補助的エンハンスメント情報)を含み得る。
[0048] ビットストリームを生成するために、ビデオエンコーダ20はビデオデータ中の各ピクチャに対して符号化動作を行い得る。ビデオエンコーダ20がピクチャに対して符号化動作を行うとき、ビデオエンコーダ20は一連のコーディングされたピクチャおよび関連付けされたデータを生成し得る。関連付けされたデータは、量子化パラメータ(QP)のようなコーディングパラメータのセットを含み得る。コーディングされたピクチャを生成するために、ビデオエンコーダ20はピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの二次元配列であり得る。コーディングパラメータは、ビデオデータの全てのブロックのためにコーディングオプション(例えば、コーディングモード)を定義し得る。コーディングオプションは望まれるレート歪性能を達成するために選択され得る。
[0049] いくつかの例において、ビデオエンコーダ20はピクチャを複数のスライスに区分し得る。これらスライスの各々は、イメージ(例えば、フレーム)において空間的に異なる領域を含み得、このイメージはイメージすなわちフレームにおける残りの領域からの情報なしに独立に復号されることができるものである。各イメージまたはビデオフレームは単一スライスにおいて符号化され得、または各イメージまたはビデオフレームがいくつかのスライスにおいて符号化され得る。DSCにおいて、各スライスを符号化するために割り振られるビットの数は実質的に一定であり得る。ピクチャに対する符号化動作を行う一部として、ビデオエンコーダ20はこのピクチャの各スライスに対する符号化動作を行い得る。ビデオエンコーダ20がスライスに対する符号化動作を行うとき、ビデオエンコーダ20はこのスライスに関連付けられた符号化データを生成し得る。このスライスに関連付けられた符号化データは、「コーディングされたスライス」と称される。
DSCビデオエンコーダ
[0050] 図2Aは、本開示に記載の態様に従う技法を実施し得るビデオエンコーダ20の例を示すブロック図である。ビデオエンコーダ20は、本開示の技法のいくつかまたは全てを行うように構成され得る。いくつかの例において、本開示に記載された技法は、ビデオエンコーダ20の種々のコンポーネント間で共有され得る。いくつかの例において、加えてまたは代わりに、プロセッサ(図示されない)が本開示に記載れた技法のうちのいくつかまたは全てを行うように構成され得る。
[0051] 説明の目的で、本開示は、DSCコーディングのコンテクストにおけるビデオエンコーダ20を記載している。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
[0052] 図2Aの例において、ビデオエンコーダ20は複数の機能コンポーネントを含む。ビデオエンコーダ20の機能コンポーネントは色空間変換器(color-space converter)105、バッファ,110、フラットネス検出器115、レートコントローラ120、予測器(predictor)、量子化器(quantizer)、リコンストラクタコンポーネント(reconstructor component)125、ラインバッファ130、インデックス付けされた色履歴(indexed color history)135、エントロピーエンコーダ(entropy encoder)140、サブストリームマルチプレクサ145、レートバッファ150を含む。他の例において、ビデオエンコーダ20は、より多い、より少ない、あるいは異なる機能コンポーネントを含み得る。
[0053] 色空間105コンバータは、入力色空間をコーディング実施に使用される色空間に変換し得る。例えば、ある例示的実施形態において、入力ビデオデータの色空間は赤、緑、青(RGB)の色空間にあり、コーディングがルミナンスY、クロミナンス緑Cg、およびクロミナンスオレンジCo(YCgCo)色空間において実施される。色空間変換は、ビデオデータに対するシフトおよび加算を含む方法によって行われ得る。他の色空間における入力ビデオデータは処理されて、他の色空間に対する変換がまた行われることに留意されたい。
[0054] 関連の態様において、ビデオエンコーダ20はバッファ110、ラインバッファ130、および/またはレートバッファ150を含み得る。例えば、バッファ110はビデオエンコーダ20の他の部分による、その使用の前に色空間変換されたビデオデータを保持し得る。他の例において、ビデオデータはRGB色空間において記憶され得、色空間変換は、色空間変換されたデータがよりビットを必要とし得るため、必要に応じて行われ得る。
[0055] レートバッファ150は、ビデオエンコーダ20においてレート制御機構の一部として機能し得るもので、これはレートコントローラ120との関連で以下により詳く説明されることになる。 各ブロックを符号化することに費やされるビットは、ブロックの性質に基づいて非常に実質的に変化し得る。レートバッファ150は圧縮されたビデオにおけるレート変動を平滑化できる。いくつかの実施形態では、ビットがCBRでバッファから取り出されるCBRバッファモデルが採用される。CBRバッファモデルにおいて、ビデオエンコーダ20がビットストリームに多すぎるビットを加えるすると、レートバッファ150がオーバーフローし得る。他方、ビデオエンコーダ20はレートバッファ150のアンダーフローを防止するために十分なビットを加えなくてはならない。
[0056] ビデオデコーダ側では、ビットがビデオデコーダ30のレートバッファ155にCBRで加えられ(以下においてさらに詳しく述べられる図2Bを参照)、ビデオデコーダ30が各ブロック毎に可変数のビットを除去し得る。適切な復号を可能にするため、ビデオデコーダ30のレートバツファ155は、圧縮されたビットストリームの復号中に「アンダーフロー」または「オーバーフロー」すべきでない。
[0057] 上で論じられたように、BFはバッファ内に現在あるビットの数を表す値BufferCurrentSizeに基づいて定義されることができ、BufferMaxSizeがレートバッファ150のサイズ、すなわち任意の時点でレートバッファ150に記憶できるビットの総最大数を表す。BFは、上記の式1または式2に従って計算され得るが、BFを計算するためのさらなる方法が以下に記述される。
[0058] フラットネス検出器115はビデオデータにおけるコンプレックス(complex)(すなわち、非フラット)領域からビデオデータにおけるフラット(flat)(すなわち、単純(simple)または均一(uniform)領域への変化を検出できる。「コンプレックス」および「フラット」という用語は、一般にビデオエンコーダ20がビデオデータのそれぞれの領域を符号化することの難しさを指すためにここで使用されることになる。このため、ここで使用される用語コンプレックスは、ビデオエンコーダ20が符号化することが複雑であるとされるビデオデータの領域を一般に記述し、例えばテクスチャビデオデータ、高空間周波数、および/または符号化することが複雑な他の特徴を含み得る。ここで使用される用語フラットは、ビデオエンコーダ20が符号化することが単純であるとされるビデオデータの領域を一般に記述し、例えばビデオデータの平滑な勾配、低空間周波数、および/または符号化することが単純な他の特徴を含み得る。コンプレックスとフラットとの間の遷移は、符号化ビデオデータにおける量子化アーティファクトを低減するためにビデオエンコーダ20によって使用され得る。具体的には、レートコントローラ120、予測器、量子化器、およびリコンストラクタコンポーネント125が、コンプレックス領域からフラット領域への遷移を識別したときにこうした量子化アーティファクトを低減できる。
[0059] レートコントローラ120は、コーディングパラメータ、例えばQPのセットを決定する。このQPは、レートバッファ150がオーバーフローまたはアンダーフローしないことを確実にするターゲットビットレートのためのピクチャ品質を最大化するためにレートバッファ150のBFおよびビデオデータのイメージアクティビティに基づいてレートコントローラ120によって調整され得る。レートコントローラ120はまた、最適なレート歪性能を達成するためにビデオデータの各ブロックのために特定のコーディングオプション(例えば、特定のモード)を選択する。レートコントローラ120は、歪がビットレート制約を満足するように、すなわち全体の実際のコーディングレートがターゲットビットレートに適合するように、再構築されたイメージ(reconstructed images)の歪を最小化する。
[0060] 予測器、量子化器、およびリコンストラクタコンポーネント125は、ビデオエンコーダ20の少なくとも3つの符号化動作を行い得る。予測器、量子化器、およびリコンストラクタコンポーネント125は、いくつかの異なるモードにおいて予測を行い得る。一例の予測モードはメディアンアダプティブ予測(Median-adaptive prediction)の変形バージョンである。メディアンアダプティブ予測は、無損失JPEG規格(JPEG−LS)によって実施され得る。予測器、量子化器、およびリコンストラクタコンポーネント125によって行われ得るメディアンアダプティブ予測(Median-adaptive prediction)の変形バージョンは、3つの連続するサンプル値の並列予測を可能にし得る。他の予測モードの例はブロック予測である。ブロック予測では、サンプルが上の線にまたは同じ線の左に以前に再構築されたピクセルから予測される。いくつかの実施形態において、ビデオエンコーダ20およびビデオデコーダ30は、ブロック予測使用を決定するために両方とも再構築されたピクセルに対する同じ探索を行い得、このためブロック予測モードにおいて送られる必要のあるビットがない。他の実施形態において、ビデオエンコーダ20はこの探索を行い、ビデオデコーダ30が別個の探索を行う必要のないようにビットストリームにおいてブロック予測ベクトルをシグナリングし得る。サンプルがコンポーネントレンジの中点を使用して予測される中点予測(midpoint prediction)モードもまた実施され得る。中点予測モードは、最悪のケースのサンプルにおける圧縮ビデオのために必要とされるビットの数のバウンディング(bounding)を可能にし得る。
[0061] 予測器、量子化器、およびリコンストラクタコンポーネント125はまた、量子化を行う。例えば、量子化は、シフタ(a shifter)を使用して実施され得る2の累乗量子化器(a power-of-2 quantizer)によって行われ得る。2の累乗量子化器の代わりに他の量子化技術が実施され得ることに留意されたい。予測器、量子化器、およびリコンストラクタコンポーネント125によって行われる量子化は、レートコントローラ120によって決定されたQPに基づき得る。最後に、予測器、量子化器、およびリコンストラクタコンポーネント125はまた、逆量子化された残余を予測された値に追加することと、結果がサンプル値の有効範囲から外れないことを確実にすることとを含む再構築(reconstruction)を行う。
[0062] 予測器、量子化器、およびリコンストラクタコンポーネント125によって行われる予測、量子化、および再構築するための上述の例となるアプローチは、例示的なものに過ぎないこと、および他のアプローチが実施され得ることに留意されたい。また、予測器、量子化器、およびリコンストラクタコンポーネント125は、予測、量子化、および/または再構築を行うためのサブコンポーネントを含み得ることに留意されたい。さらに、予測、量子化、および/または再構築は、予測器、量子化器、およびリコンストラクタコンポーネント125の代わりに、いくつかの別個のエンコーダコンポーネントによって行われ得ることに留意されたい。
[0063] ラインバッファ130は、予測器、量子化器、およびリコンストラクタコンポーネント125およびインデックス付けされた色履歴135がバッファされたビデオデータを使用することができるように、予測器、量子化器、およびリコンストラクタコンポーネント125からの出力を保持する。インデックス付けされた色履歴135は、最近使用された画素値を記憶する。これらの最近使用された画素値は、専用のシンタックス(a dedicated syntax)を用いてビデオエンコーダ20によって直接的に参照されることができる。
[0064] エントロピーエンコーダ140は、フラットネス検出器115によって識別されたフラットネス遷移およびインデックス付けされた色履歴135に基づいて、予測器、量子化器、およびリコンストラクタコンポーネント125から受信された予測残余および任意の他のデータ(例えば、予測器、量子化器、およびリコンストラクタコンポーネント125によって識別されたインデックス)を符号化する。いくつかの例において、エントロピーエンコーダ140は、サブストリームエンコーダごとのクロックごとに3つのサンプルを符号化し得る。サブストリームマルチプレクサ145は、ヘッダレスパケット多重化様式に基づいて、ビットストリームを多重化し得る。これにより、ビデオデコーダ30が3つのエントロピーデコーダを同時に実行する(run)ことが可能になり、クロックごとに3つの画素を復号することを容易にする。サブストリームマルチプレクサ145は、パケットがビデオデコーダ30によって効率よく復号されることができるように、パケット順序を最適化し得る。エントロピーコーディングのための異なるアプローチが実施され得、それは、クロックごとに2の累乗画素(power-of-2 pixels)(例えば、2画素/クロックまたは4画素/クロック)を復号することを容易にし得ることに留意されたい。
DSCビデオデコーダ
[0065] 図2Bは、本開示に記載の態様に従う技法を実施し得るビデオデコーダの例を示すブロック図である。ビデオデコーダ30は、本開示の技法のいくつかまたは全てを実施するように構成され得る。いくつかの例において、本開示に記載された技法は、ビデオデコーダ30の様々なコンポーネント間で共有され得る。いくつかの例において、追加的にまたは代替的に、プロセッサ(図示されない)が、本開示に記載された技法のいくつかまたは全てを実施するように構成され得る。
[0066] 説明の目的のために、本開示は、DSCコーディングの文脈においてビデオデコーダ30を説明している。しかしながら、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
[0067] 図2Bの例において、ビデオデコーダ30は、複数の機能コンポーネントを含む。ビデオデコーダ30のこれら機能コンポーネントは、レートバッファ155、サブストリームデマルチプレクサ160、エントロピーデコーダ165、レートコントローラ170、予測器、量子化器、リコンストラクタコンポーネント175、インデックス付けされた色履歴180、ラインバッファ185、および色空間変換器190を含む。ビデオデコーダ30の例示されたコンポーネントは、図2Aにおけるビデオエンコーダ20に関連して上述された対応するコンポーネントと類似している。従って、ビデオデコーダ30のコンポーネントの各々は、上述されたビデオエンコーダ20の対応するコンポーネントと同様に動作し得る。
DSCにおけるスライス
[0068] 上で述べたように、スライスは一般に、イメージまたはフレームにおける残りの領域からの情報を使用することなく独立に復号されることができるイメージまたはフレームにおける空間的に異なる領域を指す。各イメージまたはビデオフレームは、単一スライスにおいて符号化され得、または各イメージまたはビデオフレームは、いくつかのスライスにおいて符号化され得る。DSCにおいて、各スライスを符号化するために割り振られるビットの数は実質的に一定であり得る。スライスは、複数のブロックから構成され得る。
レート制御バッファ
[0069] 図3は、データのスライスを符号化するための例示的処理を示すグラフである。図3を参照すると、縦軸305は、レートバッファ(例えば、図2Aのビデオエンコーダ20におけるレートバッファ150、または図2Bにおけるビデオデコーダ30のレートバッファ155)に現在記憶されているビットの数を表し、横軸310は、時間を表す。図3は、ビデオデータの第1のスライス315およびビデオデータの第2のスライス320の符号化を示す。第2のスライス320は、単に第1のスライス315の符号化および第2のスライス320の符号化の間に起こる時間的な重複を示すために第1のスライス315の下に位置するように例示されており、第2のスライス320におけるビットの数が第1のスライス315におけるビットの数未満であることを示すように意図するものではない。
[0070] 例示のために、本開示の態様は、図2Aにおけるビデオエンコーダ20のレートバッファ150を参照して説明されることになるが、しかしながら、そのような態様はまた、図2Bのビデオデコーダ30またはレートバッファ155に限定されないがそれを含むそれのコンポーネントに適用可能であることは理解されることになる。
[0071] レートバッファ150は、有られた数のビットしか保持(すなわち、記憶)できない可能性があることに留意されたい。上述したように、変数BufferMaxSizeは、レートバッファの全容量を表し得る。しかしながら、レートバッファ150におけるアンダーフローおよび/またはオーバーフローを防止するために、レートバッファ150をBufferMaxSizeよりも少ない数に制限することが有利である。従って、一時的最大数ビットレベル(変数tempBufferMaxSizeおよびmaxBufferBitsAtSliceEndによって表される)は、レートバッファ150の望ましい容量を反映するようにレートバッファ150に関して定義され得る。
[0072] 325で、第1のスライス315の符号化が開始する。符号化中、ビットはレートバッファ150に記憶され得、レートバッファ150に以前に記憶されたビットは、レートバッファ150から除去され得る。例えば、レートバッファ150から除去されたビットは、(例えば、ソースデバイス12によって、リンク16を介して)送信され得る。このように、レートバッファ150にビットを記憶するおよび/またはレートバッファ150からビットを除去する動作により、レートバッファ150におけるビットの総数は、様々な時点において増加および/または減少し得る。いくつかの事例において、ビットは、符号化、送信、等のためにグループ化され得る。例えば、ビットは、画素(例えば、1画素あたり6ビット)またはブロック(例えば、1画素あたり6ビットで2×8ブロックサイズの場合1ブロックあたり96ビット)として送信され得る。
[0073] 330において、記憶されたビットの送信が開始する。送信は、Init_enc_delayとして図3に示される遅延、初期の符号化遅延期間の後に開始し得る。Init_enc_delayは、ブロックまたは画素で測定され得、選ばれたおよび/または固定の値であり得るか、または各スライス毎に計算され得る。一実施形態では、Init_enc_delayは、maxBufferBitsAtSliceEndに基づき得る。例えば、maxBufferBitsAtSliceEndが4128であり、Init_enc_delayがブロックで測定される場合、Init_enc_delayは、4128を1ブロックあたりのターゲットビット数(例えば、96)で割り算したものであり得る。これは、第1のスライス315が完全に復号された後にバッファ150が第1のスライス315から残りのブロックを送信し得るために、行われ得る。
[0074] 続けて図3を参照すると、335で、第1のスライス315の符号化が完了し得る。すなわち、335で、バッファ150におけるビット数は、maxBufferBitsAtSliceEndに等しくなるべきである。例えば、maxBufferBitsAtSliceEndが4128であるとき、バッファ150におけるビット数は、第1のスライス315の符号化が完了するイベント335において4128に等しくなるべきである。340において、第1のスライス315の送信が完了する。図3に示されるように、第1のスライス315の符号化の終了は、第2のスライス320の符号化の開始に対応し得、第1のスライス315の送信の終了は、第2のスライス320の送信の開始に対応し得る。Init_enc_delayは、第1のスライス315の終了イベント(例えば、符号化および送信の終了)を、第2のスライス320の開始イベント(例えば、符号化および送信の開始)とアラインするように選択され得る。すなわち、第2のスライス320のInit_enc_delay期間は、第1のスライス315のフラッシュ期間Flush_timeに対応し得る。
[0075]
[0076] 一実施形態において、ビットは、Init_enc_delayの後、一定レートでバッファ150から除去され得る。そうすることによって、スライスの終わりでのバッファ150におけるビット数がmaxBufferBitsAtSliceEndに等しくなることが確実にされ得る。さらに、ビットは、Flush_time中、一定レートでバッファ150から除去され得る。第2のスライス320からの圧縮されたブロックは、第2のスライス320のInit_enc_delay期間が終了した後に、バッファ150から除去される。
BF計算
[0077] maxBufferBitsAtSliceEndがBufferMaxSize未満であるならば、スライスのどのくらいが符号化されたかに基づいてBF計算を調整することは有益であり得る。図4は、スライスのコーディング中BFを調整するための例示的方法を示す。例示を目的として、図4は、図2Aのビデオエンコーダ20のレートバッファ150との関連で説明されることになる。しかしながら、図4のコンポーネントが、図2Bのビデオデコーダ30またはレートバッファ155に限定されるわではないがそれを含むそれのコンポーネントにも適用可能であることは理解されることとなる。
[0078] BFを計算するために、変数tempBufferMaxSizeが定義され得、これは、スライスの特定のポイントにおけるバッファ150についての一時的最大ビット数を示す。例えば、スライスの終わりで、tempBufferMaxSizeは、maxBufferBitsAtSliceEndに等しい。さらに別の変数Offsetは、BufferMaxSizeのどれだけが所与の時点で利用不可能であるかを示す。
[0079] 図4のグラフは、その縦軸に沿ってOffset405を、その横軸に沿ってスライスにおける各ブロックの位置(すなわち、数)を示す。ブロックが順番にコーディングされるため、各個々のブロックの位置は、コーディングされるブロックの数(以下、numBlocksCoded)と同等であり得る。例えば、numBlocksCodedの値は、0から、N(すなわち、#blocksInSlice)と表されるスライスにおけるブロックの総数までの範囲であり得る。一実施形態において、Nと表されるブロックの数は、BFが調整される前にコーディングされ得る。すなわち、420において示されるように、numBlocksCodedがN以下である間、Offset405は0に等しく、tempBufferMaxSizeは、BufferMaxSizeに等しい。一実施形態において、Nは、N以下の位置を有するブロックが、BufferMaxSizeに等しいtempBufferMaxSizeを有し、Nよりも上の位置を有するブロックが、BufferMaxSizeよりも小さいtempBufferMaxSizeを有し得るような閾値位置を提供し得る。図4に示されるように、tempBufferMaxSizeの値は、Nよりも上の各後続のブロックとともに直線的に減少し得る。すなわち、Nの後の位置を有するブロックは、スライスにおける任意の後続のブロックのtempBufferMaxSizeよりも大きい一意の該当のtempBufferMaxSizeを有し得る。言い換えれば、Nの後の位置を有するブロックは、図4に示されるようにNとNとの間の各ブロック毎に減少する調整可能値に等しいtempBufferMaxSizeを有し得る。
[0080] 続けて図4を参照すると、例示的スライスにおけるブロックの総数は、Nと表される。このため、numBlocksCodedがNに等しいとき、tempBufferMaxSizeは、maxBufferBitsAtSliceEndに等しくなるべきであり、別の言い方をすれば、Offset405は、MaxBufferSizeからmaxBufferBitsAtSliceEndを差し引いたものに等しくなるべきである。例えば、maxBufferBitsAtSliceEndが4128である場合、426において示されるように、tempBufferMaxSizeは、Nにおいて4128に等しくなるべきであり、Offset405は、MaxBufferSizeから4128を差し引いたものに等しくなるべきである。
[0081] これを達成するために、tempBufferMaxSizeおよびOffset405は、numBlocksCoded=NとnumBlocksCoded=Nとの間で、Bと表される一定レートで調整され得る。NとNと間の差分は、図3においてNと表される。Bがポイント(numBlocksCoded=N、Offset=0)と(numBlocksCoded=N、Offset=bufferMaxSize−maxBufferBitsAtSliceEnd)との間に一線を形成する。例えば、maxBufferBitsAtSliceEndが4128である場合、Bは、(maxBufferSize−4128)/Nと定義され得る。Bに沿った例示的ポイントのOffset405およびtempBufferMaxSizeの値は、422および424において例示される。
[0082] このように、Bに沿ったポイントは、スライスの個々のブロックに、対応するtempBufferMaxSizeを提供し得る。次に、対応するtempBufferMaxSizeは、スライスにおける各ブロック毎に個々のBFを計算するために使用され得る。一実施形態において、スライスにおけるブロックは、スライス内のそれらの位置に基づいて定義され得る。
[0083] 一実施形態において、上の式1および式2は、NpまたはNpの下に位置されたスライス中のブロックのためのBFを計算するために使用することができる。例えば、2に等しいNpについて、BFが第1および第2のブロックのための式1および式2に従って計算され得る。何れかの残りブロックについて、BFが式1および/または式2におけるBufferMaxSizeの代わりにtempBufferMaxSizeに置き換えることによって計算され得る。すなわち、BFは
BF = ((BufferCurrentSize * 100) / tempBufferMaxSize) (式3)
を使用するか、または
BF = (((BufferCurrentSize * 100 ) + (tempBufferMaxSize >> 1) )/ tempBufferMaxSize) (式4)を使用して計算され得る。
[0084] また、tempBufferMaxSizeは、
tempBufferMaxSize = BufferMaxSize - Offset (式5)を使用して計算され得、ここで
Offset = BR * (numBlocksCoded - NP + 1) (式6)
、およびここで
BR = (BufferMaxSize - tempBufferMaxSize) / (numBlocksCoded - NP) (式7)である。
[0085] 要約すると、以下の例示的コードがBFを計算することにおいて使用される。
numBlocksCoded = 0; tempBufferMaxSize = BufferMaxSize;
BR = (BufferMaxSize - maxBufferBitsAtSliceEnd) / (NT - NP);
for i = 1: NT
{
code ith block
numBlocksCoded += 1;
if(numBlocksCoded >= NP)
{
tempBufferMaxSize = BufferMaxSize - (BR * (numBlocksCoded - NP + 1));
}
calculate BF
}
CBRを提供するためのフローチャート例
[0086] 図5を参照すると、バッファ(例えば、図2Aにおけるビデオエンコーダ20上のレートバッファ150、または図2Bにおけるビデオデコーダ30のレートバッファ155上の)でのバッファ満杯を決定するための手順例が説明される。例示の目的で、図5のステップが図2Aにおけるビデオエンコーダ20のレートバッファ150を参照して説明される。しかしながら、図5に例示されたステップはビデオエンコーダ(例えば、図2Aにおけるビデオエンコーダ20)、ビデオデコーダ(例えば、図2Bにおけるビデオデコーダ30)、またはそれらのコンポーネントによって行われ得る。便宜上、方法500は、ビデオエンコーダ20、ビデオデコーダ30、またはそれらのコンポーネントであり得るビデオコーダ(単純にコーダとも称される)によって行われ得るものとして説明される。
[0087] 方法500はブロック501で開始する。ブロック505で、処理500はデータのスライス中のブロックをコーディングすることを含み得る。一実施形態において、コーディングはプロセッサによって行われ得る。上述されるように、スライスは、イメージまたはフレームにおける残りの領域からの情報を使用することなく独立に復号されることができるイメージまたはフレームにおける何らかの空間的に異なる領域であり得る。スライスは1つまたは複数ブロックおよび/またはピクセルから構成され得る。
[0088] ステップ510では、処理500がレートバッファ150内のブロックに対応する1つまたは複数のビットを記憶することを含み得る。例えば、ブロックは圧縮され、対応するビットは一時的にレートバッファ150に記憶され得る。一実施形態において、個々のはコーディング後にバッファ150に加えられる。代替的実施形態では、複数のビットが同時にバッファ150に加えられ得る。
[0089] ブロック515では、処理500がスライス中の他のブロックに対して1つまたは複数のブロックの位置を示す情報を決定することを含み得る。例えば、所与のブロックが第3のコーディングされたブロックであることが決定され得、こうしたブロックがスライスの第3のブロックとして定義され得る。ブロックの位置を決定することによって、スライス中の以前にコーディングされたブロックの数および/またはまだコーディングされていないスライス中のブロックの数が決定され得る。一実施形態において、位置を示す情報を決定することは、プロセッサによって行われ得る。
[0090] ブロック520では、処理500が1つまたは複数のブロック位置でBFを決定することを含む。この決定は、レート制御のために使用され得る。例えば、図4を参照すると、ブロックの位置決めがブロックに関連付けられたBに沿ってポイントを示し得る。これを決定するために、Bを計算することにおいて使用され得るmaxBufferBitsAtSliceEndを知る必要があり得る。Bに沿って関連付けられた位置はブロックのための対応するtempBufferMaxSizeを示し得る。次に、BFがブロックのためのtempBufferMaxSizeでBufferCurrentSizeを割り算することによって計算され得る。一実施形態において、BFを決定することはプロセッサによって行われる。処理500はブロック525で終了する。
[0091] 一実施形態において、tempBufferMaxSizeは整数値,cによって調整され得る。例えば、tempBufferMaxSizeは、
tempBufferMaxSize = BufferMaxSize - (BR * (numBlocksCoded - NP + c)) (式8)
を使用して計算され得る。
[0092] 一例では、cが0、1、−1、または任意の他の整数値に等しくてよい。他の実施形態では、Bが整数値,dによって調整され得る。例えば、 BR
BR = (BufferMaxSize - maxBufferBitsAtSliceEnd) / (NT - NP + d) (式9)
を使用して計算され得る。
ここで、dは0、1、−1、または任意の他の整数値に等しくてよい。上記式の他の変数に対する同様の調整もなされ得る。
他の考察
[0093] ここに開示された情報および信号は、様々な異なる技術および技法のうちの任意のものを使用して表わされ得る。例えば、上記の説明の全体にわたって参照され得る、データ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁粒子、光場または光学粒子、あるいはそれらの任意の組み合わせによって表わされ得る。
[0094] ここに開示された実施形態に関連して記載された様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組み合わせとして実施され得る。ハードウェアおよびソフトウェアのこの互換性を明確に例示するために、様々な例示的なコンポーネント、ブロック、およびステップが、一般にそれらの機能性の観点で説明され。このような機能が、ハードウェアまたはソフトウェアとして実施されるかは、特定のアプリケーションおよびシステム全体に課せられる設計制約に依存する。当業者は、説明された機能を特定のアプリケーションごとに様々な方法で実施し得るが、そのようなインプリメンテーションの決定は、本開示の範囲からの逸脱をもたらすと解釈されるべきではない。
[0095] ここで説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせにおいて実施され得る。こうした技法は汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおいてアプリケーション含む複数の使用を含む集積回路のような様々なデバイスの何れかで実施され得る。デバイスまたはコンポーネントとして説明される任意の特徴は、集積論理デバイスで一緒に実施されるか、または、離散的でありながらも相互作用可能な論理デバイスとして別々に実施され得る。ソフトウェアで実施された場合、本技法は少なくとも一部が、実行されると、上述された方法のうちの1つまたは複数を実行する命令を備える非一時的なプロセッサ可読データ記憶媒体によって実現され得る。非一時的なプロセッサ可読データ記憶媒体は、パッケージングマテリアルを含み得る、コンピュータプログラム製品の一部を形成し得る。非一時的なプロセッサ可読記憶媒体は、同期ダイナミックランダムアクセスメモリ(SDRAM)、読取専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能なプログラマブル読取専用メモリ(EEPROM(登録商標))、フラッシュメモリ、他の周知の記憶媒体およびそれに類するもの等のランダムアクセスメモリ(RAM)を備え得る。追加的にまたは代替的に、本技法は少なくとも一部が、命令またはデータ構造の形式でプログラムコードを搬送または通信し、かつ、コンピュータによってアクセス、読取、および/または実行されることができる伝搬信号または波のようなプロセッサ可読通信媒体として実現され得る。
[0096] プログラムコードは、1つまたは複数のデジタルシグナルプロセッサ(DSP)のような1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の同等な集積または離散論理回路を含むプロセッサによって実行され得る。このようなプロセッサは、本開示において説明された技法の何れかを行うように構成され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替において、このプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、例えば、DSPとマイクロプロセッサ、複数のマイクロプロセッサ、DSPコアと連結した1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成の組み合わせのような、コンピューティングデバイスの組み合わせとして実施され得る。従って、本明細書で使用されるような「プロセッサ」という用語は、前述の構造、前述の構造の任意の組合せ、または本明細書で説明される技法の実行に適した任意の他の構造のいずれかを指すことができる。さらに、いくつかの態様では、ここにおいて説明される機能は、符号化および復号のために構成された専用ソフトウェアまたはハードウェアで提供され得る、または、組み合わせられたビデオエンコーダ−デコーダ(CODEC)に組み込まれ得る。また、技法は、1つ以上の回路または論理要素で完全に実施されることができる。
[0097] 本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICsのセット(例えば、チップセット)を含む、幅広い様々なデバイスまたは装置で実施され得る。様々なコンポーネント、モジュール、またはユニットは、開示された技法を行うように設定されるデバイスの機能的な態様を強調するために本開示の中に説明されるが、必ずしも異なるハードウェアユニットによる実現を要求しない。むしろ、上記に説明されたように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わされ得るか、または適切なソフトウェアおよび/またはファームウェアと併せて、上記に説明されたような1つ以上のプロセッサを含む、相互運用のハードウェアユニット(interoperative hardware units)の集合によって提供され得る。
[0098] 上記は様々な異なる実施形態との関連で説明されたか、1つの実施形態からの特徴または要素は本開示の教示から逸脱することなく他の実施形態と組み合わせ得る。しかしながら、それぞれの実施形態間の特徴の組合せは必ずしもこれを限定するものではない。本開示の様々な実施形態が説明された。これらの実施形態および他の実施形態は、以下に続く特許請求の範囲の範疇にある。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータのスライス中のブロックをコーディングすることであって、前記スライスが前記ビデオデータの1つまたは複数のブロックを備える、コーディングすることと、
前記ブロックに対応するビットをバッファに記憶することと、
前記スライス中の前記ブロックの位置を示す情報を決定することと、
前記スライス中の前記ブロックの前記位置に少なくとも部分的に基づいて前記バッファの満杯を決定することとを備える、ディスプレイリンクビデオ圧縮の方法。
[C2]
前記バッファに記憶されたビットの数を決定することをさらに備え、前記バッファの満杯を決定することは、さらに前記バッファに記憶されたビットの前記決定された数に少なくとも部分的に基づく、C1に記載の方法。
[C3]
前記ブロックは、ビットの一時的最大数に関連付けられ、ビットの前記一時的最大数は、前記ブロックの前記位置について前記バッファに記憶できる、ビットの望ましい最大数を示し、前記バッファの満杯を決定することは、前記ブロックに関連付けられた、ビットの前記一時的最大数で、前記バッファに記憶されたビットの数を割り算することを備える、C2に記載の方法。
[C4]
前記スライス中のスレッショルド位置を決定することをさらに備え、ここにおいて前記スレッショルド位置に到達する前にコーディングされた各ブロックは、第1の値に等しい、ビットの一時的最大数に関連付けられ、前記スレッショルド位置に到達した後にコーディングされた各ブロックは、調整可能値に等しい、ビットの一時的最大数に関連付けられ、前記調整可能値は前記第1の値未満である、C3に記載の方法。
[C5]
前記バッファの最大容量と、前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの望ましい最大数とを決定することとをさらに備える、C4に記載の方法。
[C6]
前記第1の値は前記バッファの前記最大容量に等しい、C5に記載の方法。
[C7]
前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの前記望ましい最大数に基づいて、前記スレッショルド位置に到達した後にコーディングされた各ブロック毎に前記調整可能値を減少させることをさらに備える、C6に記載の方法。
[C8]
前記スライス中のブロックの位置を示す前記情報を決定することは、コーディング済である前記スライス中のブロックの数を決定することを備える、C1に記載の方法。
[C9]
ビデオデータのスライス中のブロックをコーディングするように構成され、前記スライスが前記ビデオデータの1つまたは複数のブロックを備える、プロセッサと、
前記プロセッサに結合され、前記ブロックに対応するビットを記憶するように構成されるバッファとを備え、
前記プロセッサは、前記スライス中の前記ブロックの位置を示す情報を決定し、前記スライス中の前記ブロックの前記位置に少なくとも部分的に基づいて前記バッファの満杯を決定するようにさらに構成される、ディスプレイリンクビデオ圧縮のための装置。
[C10]
前記プロセッサは、前記バッファに記憶されたビットの数を決定するようにさらに構成され、前記バッファの満杯を決定することは、さらに前記バッファに記憶されたビットの前記決定された数に少なくとも部分的に基づく、C9に記載の装置。
[C11]
前記ブロックは、ビットの一時的最大数に関連付けられ、ビットの前記一時的最大数は、前記ブロックの前記位置について前記バッファに記憶できる、ビットの望ましい最大数を示し、前記バッファの満杯を決定することは、前記ブロックに関連付けられた、ビットの前記一時的最大数で、前記バッファに記憶されたビットの数を割り算することを備える、C10に記載の装置。
[C12]
前記プロセッサは、前記スライス中のスレッショルド位置を決定するようにさらに構成され、ここにおいて前記スレッショルド位置に到達する前にコーディングされた各ブロックは、第1の値に等しい、ビットの一時的最大数に関連付けられ、前記スレッショルド位置に到達した後にコーディングされた各ブロックは、調整可能値に等しい、ビットの一時的最大数に関連付けられ、前記調整可能値は前記第1の値未満である、C11に記載の装置。
[C13]
前記プロセッサは、前記バッファの最大容量と、前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの望ましい最大数とを決定するようにさらに構成される、C12に記載の装置。
[C14]
前記第1の値は前記バッファの前記最大容量に等しい、C13に記載の装置。
[C15]
前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの前記望ましい最大数に基づいて、前記スレッショルド位置に到達した後にコーディングされた各ブロック毎に前記調整可能値を減少させることをさらに備える、C14に記載の装置。
[C16]
前記スライス中のブロックの位置を示す前記情報を決定することは、コーディング済である前記スライス中のブロックの数を決定することを備える、C15に記載の装置。
[C17]
非一時的なコンピュータ可読記憶媒体であって、
その上に記憶され、実行されたときに、
ビデオデータのスライス中のブロックをコーディングさせることであって、前記スライスが前記ビデオデータの1つまたは複数のブロックを備える、コーディングすることと、
前記ブロックに対応するビットをバッファに記憶することと、
前記スライス中の前記ブロックの位置を示す情報を決定することと、
前記スライス中の前記ブロックの前記位置に少なくとも部分的に基づいて前記バッファの満杯を決定することとをデバイスのプロセッサにさせる命令を有する、非一時的なコンピュータ可読記憶媒体。
[C18]
その上に記憶され、実行されたときに、前記バッファに記憶されたビットの数を決定することを前記プロセッサにさせる命令をさらに有し、前記バッファの満杯を決定することは、さらに前記バッファに記憶されたビットの前記決定された数に少なくとも部分的に基づく、C17に記載の非一時的なコンピュータ可読記憶媒体。
[C19]
前記ブロックは、ビットの一時的最大数に関連付けられ、ビットの前記一時的最大数は、前記ブロックの前記位置について前記バッファに記憶できる、ビットの望ましい最大数を示し、前記バッファの満杯を決定することは、前記ブロックに関連付けられた、ビットの前記一時的最大数で、前記バッファに記憶されたビットの数を割り算することを備える、C18に記載の非一時的なコンピュータ可読記憶媒体。
[C20]
その上に記憶され、実行されたときに、前記スライス中のスレッショルド位置を決定すること前記プロセッサにさせる命令をさらに有し、ここにおいて前記スレッショルド位置に到達する前にコーディングされた各ブロックは、第1の値に等しい、ビットの一時的最大数に関連付けられ、前記スレッショルド位置に到達した後にコーディングされた各ブロックは、調整可能値に等しい、ビットの一時的最大数に関連付けられ、前記調整可能値は前記第1の値未満である、C19に記載の非一時的なコンピュータ可読記憶媒体。
[C21]
その上に記憶され、実行されたときに、前記バッファの最大容量と、前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの望ましい最大数とを決定することとを前記プロセッサにさせる命令をさらに有する、C20に記載の非一時的なコンピュータ可読記憶媒体。
[C22]
前記第1の値は前記バッファの前記最大容量に等しい、C21に記載の非一時的なコンピュータ可読記憶媒体。
[C23]
その上に記憶され、実行されたときに、前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの前記望ましい最大数に基づいて、前記スレッショルド位置に到達した後にコーディングされた各ブロック毎に前記調整可能値を減少させることを前記プロセッサにさせる命令をさらに有する、C22に記載の非一時的なコンピュータ可読記憶媒体。
[C24]
ビデオデータのスライス中のブロックをコーディングするための手段であって、前記スライスが前記ビデオデータの1つまたは複数のブロックを備える、コーディングするための手段と、
前記ブロックに対応するビットをバッファに記憶するための手段と、
前記スライス中の前記ブロックの位置を示す情報を決定するための手段と、
前記スライス中の前記ブロックの前記位置に少なくとも部分的に基づいて前記バッファの満杯を決定するための手段とを備える、ビデオコーディングデバイス。
[C25]
前記バッファに記憶されたビットの数を決定するための手段をさらに備え、前記バッファの満杯を決定することは、さらに前記バッファに記憶されたビットの前記決定された数に少なくとも部分的に基づく、C24に記載のビデオコーディングデバイス。
[C26]
前記ブロックは、ビットの一時的最大数に関連付けられ、ビットの前記一時的最大数は、前記ブロックの前記位置について前記バッファに記憶できる、ビットの望ましい最大数を示し、前記バッファの満杯を決定することは、前記ブロックに関連付けられた、ビットの前記一時的最大数で、前記バッファに記憶されたビットの数を割り算することを備える、C25に記載のビデオコーディングデバイス。
[C27]
前記スライス中のスレッショルド位置を決定するための手段をさらに備え、ここにおいて前記スレッショルド位置に到達する前にコーディングされた各ブロックは、第1の値に等しい、ビットの一時的最大数に関連付けられ、前記スレッショルド位置に到達した後にコーディングされた各ブロックは、調整可能値に等しい、ビットの一時的最大数に関連付けられ、前記調整可能値は前記第1の値未満である、C26に記載のビデオコーディングデバイス。
[C28]
前記バッファの最大容量と、前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの望ましい最大数とを決定することとをさらに備える、C27に記載のビデオコーディングデバイス。
[C29]
前記第1の値は前記バッファの前記最大容量に等しい、C28に記載のビデオコーディングデバイス。
[C30]
前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの前記望ましい最大数に基づいて、前記スレッショルド位置に到達した後にコーディングされた各ブロック毎に前記調整可能値を減少させるための手段をさらに備える、C29に記載のビデオコーディングデバイス。

Claims (26)

  1. ビデオデータのスライス中のブロックをコーディングすることであって、前記スライスが前記ビデオデータの1つまたは複数のブロックを備える、コーディングすることと、
    前記ブロックに対応するビットをバッファに記憶することと、
    前記スライス中の前記ブロックの位置を示す情報を決定することと、
    前記バッファがオーバフローまたはアンダーフローしないことを確実にするレート制御のために前記スライス中の前記ブロックの前記位置に少なくとも部分的に基づいて前記バッファの満杯を決定することと、ここにおいて前記バッファの前記満杯は前記ビットの記憶のために使用されている前記バッファの容量のーセンテージである、
    記スライス中のある固定数のブロックに対応するスレッショルド位置を決定することと、ここにおいて前記スレッショルド位置に到達する前の第1の位置においてコーディングされた各ブロックは、第1の値に等しい一時的最大バッファサイズを有し、前記スレッショルド位置に到達した後の第2の位置においてコーディングされた各ブロックは、各ブロック毎に減少する調整可能値に等しい一時的最大バッファサイズを有し、前記調整可能値は前記第1の値未満であり、前記一時的最大バッファサイズは、前記ブロックの前記位置について前記バッファに記憶できる、ビットの望ましい最大数を示す、
    を備える、ディスプレイリンクビデオ圧縮の方法。
  2. 前記バッファに記憶されたビットの数を決定することをさらに備え、前記バッファの満杯を決定することは、さらに前記バッファに記憶されたビットの前記決定された数に少なくとも部分的に基づく、請求項1に記載の方法。
  3. 前記バッファの満杯を決定することは、前記一時的最大バッファサイズで、前記バッファに記憶されたビットの前記数を割り算することを備える、請求項2に記載の方法。
  4. 前記レート制御のために、前記バッファの最大容量と、前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの望ましい最大数とを決定することとをさらに備える、請求項1に記載の方法。
  5. 前記第1の値は前記バッファの前記最大容量に等しい、請求項4に記載の方法。
  6. 前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの数が前記望ましい最大数に等しくなるように、前記スレッショルド位置に到達した後に前記第2の位置においてコーディングされた各ブロック毎に前記調整可能値を減少させることをさらに備える、請求項5に記載の方法。
  7. 前記スライス中の前記ブロックの前記位置を示す前記情報を決定することは、コーディング済である前記スライス中のブロックの数を決定することを備える、請求項1に記載の方法。
  8. ビデオデータのスライス中のブロックをコーディングするように構成され、前記スライスが前記ビデオデータの1つまたは複数のブロックを備える、プロセッサと、
    前記プロセッサに結合され、前記ブロックに対応するビットを記憶するように構成されるバッファと
    を備え、
    前記プロセッサは、前記スライス中の前記ブロックの位置を示す情報を決定し、前記バッファがオーバフローまたはアンダーフローしないことを確実にするレート制御のために前記スライス中の前記ブロックの前記位置に少なくとも部分的に基づいて前記バッファの満杯を決定することと、ここにおいて前記バッファの前記満杯は前記ビットの記憶のために使用されている前記バッファの容量のーセンテージである、
    記スライス中のある固定数のブロックに対応するスレッショルド位置を決定することと、ここにおいて前記スレッショルド位置に到達する前の第1の位置においてコーディングされた各ブロックは、第1の値に等しい一時的最大バッファサイズを有し、前記スレッショルド位置に到達した後の第2の位置においてコーディングされた各ブロックは、各ブロック毎に減少する調整可能値に等しい一時的最大バッファサイズを有し、前記調整可能値は前記第1の値未満であり、前記一時的最大バッファサイズは、前記ブロックの前記位置について前記バッファに記憶できる、ビットの望ましい最大数を示す、
    を行うようにさらに構成される、ディスプレイリンクビデオ圧縮のための装置。
  9. 前記プロセッサは、前記バッファに記憶されたビットの数を決定するようにさらに構成され、前記バッファの満杯を決定することは、さらに前記バッファに記憶されたビットの前記決定された数に少なくとも部分的に基づく、請求項8に記載の装置。
  10. 前記バッファの満杯を決定することは、前記一時的最大バッファサイズで、前記バッファに記憶されたビットの前記数を割り算することを備える、請求項9に記載の装置。
  11. 前記プロセッサは、前記レート制御のために、前記バッファの最大容量と、前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの望ましい最大数とを決定するようにさらに構成される、請求項8に記載の装置。
  12. 前記第1の値は前記バッファの前記最大容量に等しい、請求項11に記載の装置。
  13. 前記プロセッサが、前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの数が前記望ましい最大数に等しくなるように、前記スレッショルド位置に到達した後に前記第2の位置においてコーディングされた各ブロック毎に前記調整可能値を減少させるようにさらに構成される、請求項12に記載の装置。
  14. 前記スライス中の前記ブロックの前記位置を示す前記情報を決定することは、コーディング済である前記スライス中のブロックの数を決定することを備える、請求項13に記載の装置。
  15. 非一時的なコンピュータ可読記憶媒体であって、
    実行されたときに、デバイスのプロセッサに、
    ビデオデータのスライス中のブロックをコーディングすることであって、前記スライスが前記ビデオデータの1つまたは複数のブロックを備える、コーディングすることと、
    前記ブロックに対応するビットをバッファに記憶することと、
    前記スライス中の前記ブロックの位置を示す情報を決定することと、
    前記バッファがオーバフローまたはアンダーフローしないことを確実にするレート制御のために前記スライス中の前記ブロックの前記位置に少なくとも部分的に基づいて前記バッファの満杯を決定することと、ここにおいて前記バッファの満杯は前記ビットの記憶のために使用されている前記バッファの容量のーセンテージである、
    記スライス中のある固定数のブロックに対応するスレッショルド位置を決定することと、ここにおいて前記スレッショルド位置に到達する前の第1の位置においてコーディングされた各ブロックは、第1の値に等しい一時的最大バッファサイズを有し、前記スレッショルド位置に到達した後の第2の位置においてコーディングされた各ブロックは、各ブロック毎に減少する調整可能値に等しい一時的最大バッファサイズを有し、前記調整可能値は前記第1の値未満であり、前記一時的最大バッファサイズは、前記ブロックの前記位置について前記バッファに記憶できる、ビットの望ましい最大数を示す、
    を行わせる、そこに記憶された命令を有する、非一時的なコンピュータ可読記憶媒体。
  16. 実行されたときに、前記バッファに記憶されたビットの数を決定することを前記プロセッサに行わせる、そこに記憶された命令をさらに有し、前記バッファの満杯を決定することは、さらに前記バッファに記憶されたビットの前記決定された数に少なくとも部分的に基づく、請求項15に記載の非一時的なコンピュータ可読記憶媒体。
  17. 前記バッファの満杯を決定することは、前記一時的最大バッファサイズで、前記バッファに記憶されたビットの前記数を割り算することを備える、請求項16に記載の非一時的なコンピュータ可読記憶媒体。
  18. 実行されたときに、前記レート制御のために、前記バッファの最大容量と、前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの望ましい最大数とを決定することとを前記プロセッサに行わせる、そこに記憶された命令をさらに有する、請求項15に記載の非一時的なコンピュータ可読記憶媒体。
  19. 前記第1の値は前記バッファの前記最大容量に等しい、請求項18に記載の非一時的なコンピュータ可読記憶媒体。
  20. 実行されたときに、前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの数が前記望ましい最大数に等しくなるように基づいて、前記スレッショルド位置に到達した後に前記第2の位置においてコーディングされた各ブロック毎に前記調整可能値を減少させることを前記プロセッサに行わせる、そこに記憶された命令をさらに有する、請求項19に記載の非一時的なコンピュータ可読記憶媒体。
  21. ビデオデータのスライス中のブロックをコーディングするための手段であって、前記スライスが前記ビデオデータの1つまたは複数のブロックを備える、コーディングするための手段と、
    前記ブロックに対応するビットをバッファに記憶するための手段と、
    前記スライス中の前記ブロックの位置を示す情報を決定するための手段と、
    前記バッファがオーバフローまたはアンダーフローしないことを確実にするレート制御のために前記スライス中の前記ブロックの前記位置に少なくとも部分的に基づいて前記バッファの満杯を決定するための手段と、ここにおいて前記バッファの前記満杯は前記ビットの記憶のために使用されている前記バッファの容量のーセンテージである、
    記スライス中のある固定数のブロックに対応するスレッショルド位置を決定するための手段と、ここにおいて前記スレッショルド位置に到達する前の第1の位置においてコーディングされた各ブロックは、第1の値に等しい一時的最大バッファサイズを有し、前記スレッショルド位置に到達した後の第2の位置においてコーディングされた各ブロックは、各ブロック毎に減少する調整可能値に等しい一時的最大バッファサイズを有し、前記調整可能値は前記第1の値未満であり、前記一時的最大バッファサイズは、前記ブロックの前記位置について前記バッファに記憶できる、ビットの望ましい最大数を示す、
    を備える、ビデオコーディングデバイス。
  22. 前記バッファに記憶されたビットの数を決定するための手段をさらに備え、前記バッファの満杯を決定することは、さらに前記バッファに記憶されたビットの前記決定された数に少なくとも部分的に基づく、請求項21に記載のビデオコーディングデバイス。
  23. 前記バッファの満杯を決定することは、前記一時的最大バッファサイズで、前記バッファに記憶されたビットの前記数を割り算することを備える、請求項22に記載のビデオコーディングデバイス。
  24. 前記レート制御のために前記バッファの最大容量と、前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの望ましい最大数とを決定することとをさらに備える、請求項21に記載のビデオコーディングデバイス。
  25. 前記第1の値は前記バッファの前記最大容量に等しい、請求項24に記載のビデオコーディングデバイス。
  26. 前記スライスが完全にコーディングされた後に前記バッファに記憶されることになるビットの数が前記望ましい最大数に等しくなるように、前記スレッショルド位置に到達した後に前記第2の位置においてコーディングされた各ブロック毎に前記調整可能値を減少させるための手段をさらに備える、請求項25に記載のビデオコーディングデバイス。
JP2017506726A 2014-08-08 2015-08-07 ディスプレイストリーム圧縮のためにバッファ満杯を決定するためのシステムおよび方法 Active JP6644766B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462035349P 2014-08-08 2014-08-08
US62/035,349 2014-08-08
US14/820,404 US9979970B2 (en) 2014-08-08 2015-08-06 System and method for determining buffer fullness for display stream compression
US14/820,404 2015-08-06
PCT/US2015/044252 WO2016022938A1 (en) 2014-08-08 2015-08-07 System and method for determining buffer fullness for display stream compression

Publications (3)

Publication Number Publication Date
JP2017528969A JP2017528969A (ja) 2017-09-28
JP2017528969A5 JP2017528969A5 (ja) 2019-04-18
JP6644766B2 true JP6644766B2 (ja) 2020-02-12

Family

ID=53901156

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017506726A Active JP6644766B2 (ja) 2014-08-08 2015-08-07 ディスプレイストリーム圧縮のためにバッファ満杯を決定するためのシステムおよび方法

Country Status (8)

Country Link
US (1) US9979970B2 (ja)
EP (1) EP3178227A1 (ja)
JP (1) JP6644766B2 (ja)
KR (1) KR102082554B1 (ja)
CN (1) CN106664406B (ja)
BR (1) BR112017002185B1 (ja)
CA (1) CA2953875C (ja)
WO (1) WO2016022938A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI538480B (zh) * 2014-05-27 2016-06-11 敦泰電子股份有限公司 藉由偵測鄰近像素複雜度來動態調整壓縮參數的影像壓縮系統
US20170280139A1 (en) * 2016-03-22 2017-09-28 Qualcomm Incorporated Apparatus and methods for adaptive calculation of quantization parameters in display stream compression
US10743032B2 (en) * 2017-05-24 2020-08-11 Qualcomm Incorporated Substream multiplexing for display stream compression
CN108881915B (zh) * 2018-07-11 2020-09-04 武汉精测电子集团股份有限公司 基于dsc编码技术视频播放的装置和方法
US11470282B2 (en) 2020-12-09 2022-10-11 Waymo Llc Systems, apparatus, and methods for transmitting image data

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619711A (en) * 1994-06-29 1997-04-08 Motorola, Inc. Method and data processing system for arbitrary precision on numbers
JPH0998253A (ja) * 1995-10-03 1997-04-08 Canon Inc 画像処理装置および可変長データ伝送方法
US6075768A (en) * 1995-11-09 2000-06-13 At&T Corporation Fair bandwidth sharing for video traffic sources using distributed feedback control
JPH09247671A (ja) * 1996-03-04 1997-09-19 Mitsubishi Electric Corp デジタル画像復号装置
EP0836329A4 (en) * 1996-04-12 2002-09-04 Sony Corp IMAGE ENCODER, IMAGE ENCODING METHOD AND RECORDING MEDIUM FOR IMAGE ENCODING PROGRAM
JP4186242B2 (ja) 1997-12-26 2008-11-26 ソニー株式会社 画像信号処理装置及び画像信号処理方法
US6408104B1 (en) * 1997-12-31 2002-06-18 Lg Electronics Inc. Method and apparatus for eliminating noise in a video signal encoder
FI116819B (fi) 2000-01-21 2006-02-28 Nokia Corp Menetelmä kuvien lähettämiseksi ja kuvakooderi
KR100341063B1 (ko) * 2000-06-28 2002-06-20 송문섭 실시간 영상 통신을 위한 율제어 장치 및 그 방법
EP1649697B1 (en) 2000-12-06 2008-09-17 RealNetworks, Inc. Intra coding video data apparatuses
US6996183B2 (en) * 2001-09-26 2006-02-07 Thomson Licensing Scene cut detection in a video bitstream
AU2002334568A1 (en) * 2002-09-05 2004-03-29 Agency For Science, Technology And Research A method and an apparatus for controlling the rate of a video sequence; a video encoding device
US8345754B2 (en) * 2003-09-07 2013-01-01 Microsoft Corporation Signaling buffer fullness
KR101087906B1 (ko) * 2003-11-18 2011-11-30 파나소닉 주식회사 파일기록장치
TWI245539B (en) 2004-09-22 2005-12-11 Sony Taiwan Ltd Spatial domain pre-processing to reduce the intra-coding computation complexity
TWI245571B (en) * 2004-11-05 2005-12-11 Ali Corp Variable-length decoding apparatus and method for the image format of a digital video camera
US7751478B2 (en) 2005-01-21 2010-07-06 Seiko Epson Corporation Prediction intra-mode selection in an encoder
US8363717B2 (en) * 2005-05-17 2013-01-29 Canon Kabushiki Kaisha Image processing apparatus
JP5059301B2 (ja) * 2005-06-02 2012-10-24 ルネサスエレクトロニクス株式会社 同期再生装置および同期再生方法
KR101088375B1 (ko) 2005-07-21 2011-12-01 삼성전자주식회사 가변 블록 변환 장치 및 방법 및 이를 이용한 영상부호화/복호화 장치 및 방법
JP4644097B2 (ja) * 2005-10-31 2011-03-02 富士通セミコンダクター株式会社 動画像符号化プログラム、プログラム記憶媒体、および符号化装置。
US8165202B1 (en) 2006-03-31 2012-04-24 Texas Instruments Incorporated Video compression rate
FR2907990B1 (fr) * 2006-10-27 2009-04-17 Envivio France Entpr Uniperson Encodeur temps-reel contraint en debit et en delai,procede, produit programme d'ordinateur et moyen de stockage correspondants.
US7640412B2 (en) * 2007-01-04 2009-12-29 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for improving the reliability of file systems
KR101365570B1 (ko) 2007-01-18 2014-02-21 삼성전자주식회사 인트라 예측 부호화, 복호화 방법 및 장치
US8938005B2 (en) 2007-11-05 2015-01-20 Canon Kabushiki Kaisha Image encoding apparatus, method of controlling the same, and computer program
KR20100012738A (ko) * 2008-07-29 2010-02-08 삼성전자주식회사 동영상 부호화/복호화시 참조 영상의 압축 방법 및 장치
US8326075B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video encoding using adaptive loop filter
KR20100057388A (ko) * 2008-11-21 2010-05-31 삼성전자주식회사 버퍼 상태에 적응적인 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
EP2403248B1 (en) * 2009-02-27 2018-07-04 Fujitsu Limited Moving picture encoding device, moving picture encoding method, and moving picture encoding computer program
JP5388942B2 (ja) * 2010-05-06 2014-01-15 株式会社Nttドコモ 移動通信システムにおける基地局装置及び方法
JP2012034352A (ja) * 2010-06-30 2012-02-16 Panasonic Corp ステレオ動画像符号化装置及びステレオ動画像符号化方法
WO2012098646A1 (ja) 2011-01-18 2012-07-26 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
CN102647586B (zh) * 2011-02-16 2015-07-08 富士通株式会社 用在视频编码系统中的码率控制方法和装置
US20120236936A1 (en) 2011-03-14 2012-09-20 Segall Christopher A Video coding based on edge determination
US8831108B2 (en) * 2011-05-04 2014-09-09 Cavium, Inc. Low latency rate control system and method
US9088453B2 (en) 2011-06-01 2015-07-21 Echostar Technologies L.L.C. Apparatus, systems and methods for monitoring the transmission of media content events
US9237352B2 (en) * 2011-10-05 2016-01-12 Texas Instruments Incorporated Methods and systems for encoding pictures associated with video data
JP5760950B2 (ja) * 2011-10-28 2015-08-12 富士通株式会社 動画像再符号化装置、動画像再符号化方法及び動画像再符号化用コンピュータプログラム
JP5998923B2 (ja) * 2012-12-28 2016-09-28 富士通株式会社 プログラム、情報処理装置、及び通信方法
JP6162823B2 (ja) * 2013-01-11 2017-07-12 インターデイジタル パテント ホールディングス インコーポレイテッド 適応変調のためのシステムおよび方法
US9571858B2 (en) 2013-07-19 2017-02-14 Futurewei Technologies, Inc. Method and apparatus of derivation for a binary partition pattern
CN104348764B (zh) * 2013-07-31 2017-09-19 国际商业机器公司 在数据接收链路中分配计算单元的方法和装置

Also Published As

Publication number Publication date
EP3178227A1 (en) 2017-06-14
CN106664406A (zh) 2017-05-10
US9979970B2 (en) 2018-05-22
US20160044317A1 (en) 2016-02-11
BR112017002185A2 (pt) 2017-11-21
JP2017528969A (ja) 2017-09-28
CA2953875A1 (en) 2016-02-11
CN106664406B (zh) 2020-02-21
WO2016022938A1 (en) 2016-02-11
BR112017002185B1 (pt) 2023-11-14
KR20170041721A (ko) 2017-04-17
CA2953875C (en) 2021-01-19
KR102082554B1 (ko) 2020-02-27

Similar Documents

Publication Publication Date Title
EP3132602B1 (en) System and method for selecting quantization parameter (qp) in display stream compression (dsc)
US20170085886A1 (en) Variable partition size for block prediction mode for display stream compression (dsc)
US9866853B2 (en) System and method for lagrangian parameter calculation for display stream compression (DSC)
US10631005B2 (en) System and method for coding in block prediction mode for display stream compression (DSC)
KR102102066B1 (ko) 디스플레이 스트림 압축 (dsc) 을 위한 블록 예측 모드에 대한 멀티-영역 검색 범위
JP2019522413A (ja) ディスプレイストリーム圧縮のためのサブストリーム多重化
JP6644766B2 (ja) ディスプレイストリーム圧縮のためにバッファ満杯を決定するためのシステムおよび方法
US10979705B2 (en) Method for video coding with spatial prediction mode for multi-mode video coding
US20160044314A1 (en) System and method for reusing transform structure for multi-partition transform
US20160044339A1 (en) System and method for reordering of prefixes and suffixes in variable length coding to increase throughput

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180717

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190308

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190308

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190625

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191127

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: 20191210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200108

R150 Certificate of patent or registration of utility model

Ref document number: 6644766

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