JP2018515015A - ディスプレイストリーム圧縮(dsc)のための量子化パラメータ(qp)更新分類 - Google Patents

ディスプレイストリーム圧縮(dsc)のための量子化パラメータ(qp)更新分類 Download PDF

Info

Publication number
JP2018515015A
JP2018515015A JP2017553261A JP2017553261A JP2018515015A JP 2018515015 A JP2018515015 A JP 2018515015A JP 2017553261 A JP2017553261 A JP 2017553261A JP 2017553261 A JP2017553261 A JP 2017553261A JP 2018515015 A JP2018515015 A JP 2018515015A
Authority
JP
Japan
Prior art keywords
block
current block
fullness
value
technique
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.)
Pending
Application number
JP2017553261A
Other languages
English (en)
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 JP2018515015A publication Critical patent/JP2018515015A/ja
Pending legal-status Critical Current

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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • 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/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/136Incoming video signal characteristics or properties
    • 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/16Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter for a given display mode, e.g. for interlaced or progressive display mode
    • 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
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

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)

Abstract

ディスプレイストリーム圧縮(SC)のための量子化パラメータ(QP)更新分類技法が開示される。一態様では、量子化パラメータ(QP)値を決定するための方法は、現在ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、前ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することとを含む。方法はまた、前ブロック及び現在ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかに基づいて、現在ブロックについてのQP調整値を算出するためにデフォルト技法又は代替技法を選択することを含み得る。【選択図】 図11

Description

[0001]本開示は、ビデオコード化及び圧縮の分野に関し、そして特に、ディスプレイストリーム圧縮(DSC)のような、ディスプレイリンクでの送信のためのビデオ圧縮に関する。
[0002]デジタルビデオ機能は、デジタルテレビ、携帯情報端末(PDA)、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラ又は衛星無線電話、ビデオ電話会議デバイス、等を含む、広範囲のディスプレイに組み込まれることができる。ディスプレイリンクは、好適な発信源デバイスにディスプレイを接続するために使用される。ディスプレイリンクの帯域幅要件は、ディスプレイの解像度に比例し、故に、高解像度ディスプレイは、広帯域幅のディスプレイリンクを必要とする。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートする帯域幅を有さない。より低い帯域幅のディスプレイリンクが、高解像度ディスプレイにデジタルビデオを提供するのに使用されることができるように、ビデオ圧縮が、帯域幅要件を低減するために使用されることができる。
[0003]画素データに対して画像圧縮を利用しようともした。しかしながら、そのようなスキームは、時に、視覚的にロスレスでなく、従来のディスプレイデバイスで実施するのが困難かつ高価であり得る。
[0004]VESA(Video Electronics Standards Association)は、ディスプレイリンクビデオ圧縮のための規格として、ディスプレイストリーム圧縮(DSC)を開発した。DSCのようなディスプレイリンクビデオ圧縮技法は、とりわけ、視覚的にロスレスなピクチャ品質(即ち、圧縮がアクティブであることをユーザに悟られないような品質レベルを有するピクチャ)を提供するべきである。ディスプレイリンクビデオ圧縮技法はまた、従来のハードウェアで、リアルタイムで実施するのが容易かつ高価でないスキームを提供するべきである。
[0005]本開示のシステム、方法、及びデバイスは各々、いくつかの革新的な態様を有し、それらのいずれもが、本明細書で開示される所望の属性を単独で担うわけではない。
[0006]一態様では、量子化パラメータ(QP)値を決定するための方法は、現在ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、前ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、現在ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのうちの少なくとも1つであると決定することに応答して、現在ブロックについてのQP調整値を算出するためにデフォルト技法を選択することとを備える。方法は、(i)現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないこと、かつ(ii)前ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのどちらか一方であることを決定することに応答して、現在ブロックについてのQP調整値を算出するために代替技法を選択することを更に含み得る。方法は、選択された技法を介して、現在ブロックについてのQP調整値を算出することと、そのQP調整値に基づいて、現在ブロックについてのQP値を決定することとを更に含み得る。
[0007]別の態様では、固定レートバッファでビデオデータをコード化するための量子化パラメータ(QP)値を決定するための方法は、バッファのフルネスが(i)第1の上位フルネス閾値以上であるか、(ii)第1の下位フルネス閾値以下であるかを決定することと、バッファのフルネスが第1の上位フルネス閾値以上であると決定することに応答して、現在ブロックについてのQP調整値を算出するために第1の技法を選択することと、バッファのフルネスが第1の下位フルネス閾値以下であると決定することに応答して、現在ブロックについてのQP調整値を算出するために第2の技法を選択することと、選択された技法を介して、現在ブロックについてのQP調整値を算出することと、そのQP調整値に基づいて、現在ブロックについてのQP値を決定することとを備える。
[0008]別の態様では、量子化パラメータ(QP)値を決定するためのデバイスは、前ブロック及び現在ブロックを含むビデオデータを記憶するように構成されたメモリと、メモリに結合された少なくとも1つのプロセッサ回路とを備え、少なくとも1つのプロセッサ回路は、現在ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、前ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、現在ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのうちの少なくとも1つであると決定することに応答して、現在ブロックについてのQP調整値を算出するためにデフォルト技法を選択することと、(i)現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないこと、かつ(ii)前ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのどちらか一方であることを決定することに応答して、現在ブロックについてのQP調整値を算出するために代替技法を選択することと、選択された技法を介して、現在ブロックについてのQP調整値を算出することと、そのQP調整値に基づいて、現在ブロックについてのQP値を決定することとを行うように構成される。
[0009]更に別の態様では、ビデオデータをコード化するための量子化パラメータ(QP)値を決定するためのデバイスは、固定レートバッファ回路と、現在ブロックを含むビデオデータを記憶するように構成されたメモリと、メモリに結合された少なくとも1つのプロセッサ回路とを備え、少なくとも1つのプロセッサ回路は、バッファ回路のフルネスが(i)第1の上位フルネス閾値以上であるか、(ii)第1の下位フルネス閾値以下であるかを決定することと、バッファのフルネスが第1の上位フルネス閾値以上であると決定することに応答して、現在ブロックについてのQP調整値を算出するために第1の技法を選択することと、バッファのフルネスが第1の下位フルネス閾値以下であると決定することに応答して、現在ブロックについてのQP調整値を算出するために第2の技法を選択することと、選択された技法を介して、現在ブロックについてのQP調整値を算出することと、そのQP調整値に基づいて、現在ブロックについてのQP値を決定することとを行うように構成される。
[0010]図1Aは、本開示で記述される態様に係る、技法を利用し得る例となるビデオ符号化及び復号システムを例示するブロック図である。 [0011]図1Bは、本開示で記述される態様に係る、技法を実行し得る別の例となるビデオ符号化及び復号システムを例示するブロック図である。 [0012]図2Aは、本開示で記述される態様に係る、技法を実施し得るビデオエンコーダの例を例示するブロック図である。 [0013]図2Bは、本開示で記述される態様に係る、技法を実施し得るビデオデコーダの例を例示するブロック図である。 [0014]図3は、量子化パラメータ(QP)調整値を決定するための例となるアプローチを示す。 [0015]図4は、画像内での例となる平坦領域から複雑領域への遷移を例示する。 [0016]図5は、QPを算出するための例となる技法を例示する。 [0017]図6は、QPを算出するための別の例となる技法を例示する [0018]図7は、QPを算出するための更に別の例となる技法を例示する。 [0019]図8は、QP調整値を算出する例となるアプローチを示す。 [0020]図9は、QP調整値を算出する別の例となるアプローチを示す。 [0021]図10は、QP調整値を算出する更に別の例となるアプローチを示す。 [0022]図11は、本開示で記述される態様に係る、QP調整値を算出するための方法を例示するフローチャートである。 [0023]図12は、本開示で記述される態様に係る、QP調整値を算出するための方法を例示するフローチャートである。
発明の詳細な説明
[0024]一般に、本開示は、ディスプレイストリーム圧縮(DSC)のようなビデオ圧縮技法を改善する方法に関する。より具体的には、本開示は、QP調整値を算出するための好適な技法の選択を介して量子化パラメータ(QP)の更新を改善するためのシステム及び方法に関する。
[0025]特定の実施形態は本明細書ではDSC規格のコンテキストにおいて記述されているが、当業者であれば、本明細書で記述されるシステム及び方法が、任意の好適なビデオコード化規格に適用可能であり得ることは認識するであろう。例えば、本明細書で開示される実施形態は、国際電気通信連合(ITU)電気通信標準化部門(ITU−T)H.261、国際標準化機構/国際電気標準会議(ISO/IEC)MPEG−1(Moving Picture Experts Group-1)ビジュアル、ITU−T H.262即ちISO/IEC MPEG−2ビジュアル、ITU−T H.263、ISO/IEC MPEG−4ビジュアル、(ISO/IEC MPEG−4 AVCとしても知られている)ITU−T H.264、高効率ビデオコード化(HEVC)、及びそのような規格に対する任意の拡張のうちの1つ又は複数に適用可能であり得る。本明細書で記述される技法は、固定ビットレート(CBR)バッファモデルを組み込む規格に特に適用可能であり得る。また、本開示で記述される技法は、将来開発される規格の一部になり得る。換言すると、本開示で記述される技法は、前に開発されたビデオコード化規格、現在開発中のビデオコード化規格、及び今度のビデオコード化規格に適用可能であり得る。
[0026]ビデオコード化方法は、前に算出されたQPをQP調整値で更新することで、QP値を算出し得る。QP調整値は、前ブロックと現在ブロックとの間の差分、例えば、前ブロックをコード化するのに必要とされたビットと、現在ブロックをコード化するためのターゲットビット数との間の差分、に基づいて算出され得る。
[0027]しかしながら、従来の技法によって決定されるQP調整値は、コード化非効率をもたらし得るか、特定の状況下で顕著なアーティファクトを引き起こし得る。例えば、QP調整値を決定するための従来の技法は、画像の平坦領域から複雑領域への遷移に十分な程度にはアグレッシブではないであろう(例えば、QP調整値は、顕著なアーティファクトのないより良好なコード化効率に帰着することとなるより望ましいQP調整値よりも小さいであろう)。平坦領域及び複雑領域の概念が以下でより詳細に記述されるであろう。
[0028]追加的に、バッファのフルネスが空であること又はフルであることの閾値内であるとき、QP調整値を算出するための従来の技法は、過度にアグレッシブであり得、これは、デコーダによって再構築される画像中にアーティファクトを引き起こす。例えば、従来の技法によって算出されるQP調整値は、再構築画像中でアーティファクトが顕著になることをマスクする(mask)こととなるより望ましいQP調整値よりも大きいであろう。
[0029]従って、本開示の態様は、少なくとも、上で示された問題を解決することに向けられている。特定の態様では、これは、上で示された問題に関連付けられ得る条件の検出又は決定と、この検出された条件下でQP調整値を算出するための1つ又は複数の代替技法を適用することととを介して達成され得る。
ビデオコード化規格
[0030]ビデオ画像、TV画像、静止画像、又はビデオレコーダ若しくはコンピュータによって生成された画像のようなデジタル画像は、水平線状又は垂直線状に配列された画素又はサンプルを含み得る。単一画像中の画素数は典型的に、数万である。各画素は典型的に、輝度及びクロミナンス情報を含む。圧縮なしの場合、画像エンコーダから画像デコーダに伝達されるべき膨大な量の情報は、リアルタイムの画像送信を実現困難にするであろう。送信されるべき情報量を低減するために、JPEG、MPEG、及びH.263規格のような多数の異なる圧縮方法が開発されてきた。
[0031]ビデオコード化規格には、ITU−T H.261、ISO/IEC MPEG−1ビジュアル、ITU−T H.262即ちISO/IEC MPEG−2ビジュアル、ITU−T H.263、ISO/IEC MPEG−4ビジュアル、(ISO/IEC MPEG−4 AVCとしても知られている)ITU−T H.264、及びHEVCと、それらの規格の拡張とが含まれる。
[0032]加えて、ビデオコード化規格、即ちDSC、は、VESAによって開発されてきた。DSC規格は、ディスプレイリンクでの送信のためにビデオを圧縮することができるビデオ圧縮規格である。ディスプレイの解像度が増加するにつれ、このディスプレイを駆動するのに必要とされるビデオデータの帯域幅が相応して増加する。いくつかのディスプレイリンクは、そのような解像度のためのディスプレイに、ビデオデータの全てを送信するだけの帯域幅を有さない可能性がある。従って、DSC規格は、ディスプレイリンクでの相互利用可能で視覚的にロスレスな圧縮のための圧縮規格を規定する。
[0033]DSC規格は、H.264及びHEVCのような他のビデオコード化規格とは異なる。DSCは、イントラフレーム圧縮を含むが、インターフレーム圧縮は含まず、これは、ビデオデータをコード化する際に時間情報がDSC規格によって使用されないであろうことを意味する。対照的に、他のビデオコード化規格は、それらのビデオコード化技法においてインターフレーム圧縮を用い得る。
ビデオコード化システム
[0034]新規なシステム、装置、及び方法の様々な態様が、添付の図面に関連して以下でより十分に記述される。しかしながら、本開示は、多くの異なる形式で具現化され得、本開示全体にわたって提示される任意の特定の構造又は機能に限定されるものとして解釈されるべきではない。むしろ、これらの態様は、本開示が徹底的かつ完全となり得、本開示の範囲を当業者に十分に伝達し得るように提供される。本明細書における教示に基づき、当業者は、本開示の範囲が、本明細書で開示される新規なシステム、装置、及び方法の任意の態様をカバーすることを、本発明の任意の他の態様から独立して実施されようとそれと組み合わせられようと、意図されることは認識するべきである。例えば、本明細書で示される任意の数の態様を使用して、装置が実施され得るか、方法が実践され得る。加えて、本開示の範囲は、本明細書で示される開示の様々な態様に加えて、又は、それ以外に、他の構造、機能性、又は構造と機能性を使用して実践されるこのような装置又は方法をカバーすることが意図されている。本明細書で開示される任意の態様が、請求項の1つ又は複数の要素によって具現化され得ることは理解されるべきである。
[0035]特定の態様が本明細書で記述されるが、これらの態様の多くの変形及び置換が本開示の範囲内である。好ましい態様のいくつかの利益及び利点が述べられるが、本開示の範囲は、特定の利益、用途、又は目的に限定されることを意図されない。むしろ、本開示の態様は、異なるワイヤレス技術、システム構成、ネットワーク、及び送信プロトコルに広く適用可能であることが意図されており、それらのうちのいくつかは、図において及び好ましい態様の以下の記述において例として例示される。詳細な説明及び図面は、限定するものというよりはむしろ、本開示の単なる例示であり、本開示の範囲は、添付の特許請求の範囲及びそれらの同等物によって定義されている。
[0036]添付の図面は例を例示している。添付の図面において参照番号で示されている要素は、以下の記述において同様の参照番号で示されている要素に対応する。本開示では、順序を示す言葉(例えば、「第1の」、「第2の」、「第3の」、等)で始まる名前を有する要素は、必ずしも、その要素が特定の順序を持つことを意味するものではない。むしろ、そのような順序を示す言葉は単に、同じ又は同様のタイプの異なる要素を参照するために使用され得る。
[0037]図1Aは、本開示で記述される態様に係る、技法を利用し得る例となるビデオコード化システム10を例示するブロック図である。本明細書で記述される使用されるように、「ビデオコーダ」又は「コーダ」という用語は、概して、ビデオエンコーダ及びビデオデコーダの両方を指す。本開示では、「ビデオコード化」又は「コード化」という用語は、概して、ビデオ符号化及びビデオ復号を指し得る。ビデオエンコーダ及びビデオデコーダに加えて、本願で記述される態様は、トランスコーダ(例えば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス)及びミドルボックス(例えば、ビットストリームを修正、変換、及び/又は他の方法で操作することができるデバイス)のような他の関連デバイスに拡張され得る。
[0038]図1Aに示されるように、ビデオコード化システム10は、宛先デバイス14によって後に復号されることとなる符号化済みビデオデータを生成する発信源デバイス12を含む。図1Aの例では、発信源デバイス12及び宛先デバイス14は、別個のデバイスを構成する。しかしながら、図1Bの例で示されるように、発信源デバイス12及び宛先デバイス14が同じデバイス上にあり得ること又はその一部であり得ることに留意されたい。
[0039]図1Aを再度参照すると、発信源デバイス12及び宛先デバイス14は、それぞれ、デスクトップコンピュータ、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、車載コンピュータ、ビデオストリーミングデバイス、エンティティ内に配置されている、取り込まれている、又は消費されること(consumed)ができるアイウェア(眼鏡類)及び/又はウェアラブルなコンピュータ、デバイス、又は装置のようなエンティティ(例えば、人間、動物、及び/又は別の被制御デバイス)によって(に)ウェアラブルな(又は、取り外し可能に取り付けられる)デバイス、及び/又は同様のものを含む広範囲のデバイスのうちの任意のものを備え得る。様々な実施形態では、発信源デバイス12及び宛先デバイス14は、ワイヤレス通信に対応し得る。
[0040]宛先デバイス14は、復号されることとなる符号化済みビデオデータを、リンク16を介して、受信し得る。リンク16は、符号化済みビデオデータを発信源デバイス12から宛先デバイス14に移動することができる任意のタイプの媒体又はデバイスを備え得る。図1Aの例では、リンク16は、発信源デバイス12が符号化済みビデオデータを宛先デバイス14にリアルタイムで送信することを可能にする通信媒体を備え得る。符号化済みビデオデータは、ワイヤレス通信プロトコルのような通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトル又は1つ又は複数の物理伝送線のような任意のワイヤレス又はワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、広域ネットワーク、又はインターネットのようなグローバルネットワークといった、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、又は発信源デバイス12から宛先デバイス14への通信を容易にするのに有益であり得る任意の他の機器を含み得る。
[0041]図1Aの例では、発信源デバイス12は、ビデオ発信源18、ビデオエンコーダ20、出力インターフェース22を含む。いくつかのケースでは、出力インターフェース22は、変調器/復調器(モデム)及び/又は送信機を含み得る。発信源デバイス12では、ビデオ発信源18は、ビデオカメラのような撮影装置、前に撮られたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受けるためのビデオフィードインターフェース、及び/又は、発信源ビデオとしてコンピュータグラフィックデータを生成するためのコンピュータグラフィックシステムのような発信源又はそのような発信源の組み合わせを含み得る。1つの例として、ビデオ発信源18がビデオカメラである場合、発信源デバイス12及び宛先デバイス14は、図1Bの例で例示されるような、いわゆる「カメラ付電話」又は「ビデオ電話」を形成し得る。しかしながら、本開示で記述される技法は、概して、ビデオコード化に適用可能であり、ワイヤレス及び/又はワイヤードアプリケーションに適用され得る。
[0042]撮られた、予め撮られている(pre-captured)、又はコンピュータにより生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化済みビデオデータは、発信源デバイス12の出力インターフェース22を介して、宛先デバイス14に直接送信され得る。符号化済みビデオデータはまた(又は、代替的に)、復号及び/又は再生のための、宛先デバイス14又は他のデバイスによる後のアクセスのために記憶デバイス31上に記憶され得る。図1A及び1Bに例示されるビデオエンコーダ20は、図2Aに例示されるビデオエンコーダ20又は本明細書で記述される任意の他のビデオエンコーダを備え得る。
[0043]図1Aの例では、宛先デバイス14は、入力インターフェース28、ビデオデコーダ30、及びディスプレイデバイス32を含む。いくつかのケースでは、入力インターフェース28は、受信機及び/又はモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して及び/又は記憶デバイス31から符号化済みビデオデータを受け得る。リンク16を介して通信される又は記憶デバイス上で提供される符号化済みビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30のようなビデオデコーダによる使用のためにビデオエンコーダ20によって生成される多様なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信される、記憶媒体に記憶される、又はファイルサーバに記憶される符号化済みビデオデータと共に含まれ得る。図1A及び1Bに例示されるビデオデコーダ30は、図2Bに例示されるビデオデコーダ30又は本明細書で記述される任意の他のビデオデコーダを備え得る。
[0044]ディスプレイデバイス32は、宛先デバイス14と一体化され得るか、それに外付けであり得る。いくつかの例では、宛先デバイス14は、統合ディスプレイデバイスを含み得、同じく、外部のディスプレイデバイスとインターフェース接続するように構成され得る。他の例では、宛先デバイス14は、ディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号済みビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は別のタイプのディスプレイデバイスのような、様々なディスプレイデバイスのうちの任意のものを備え得る。
[0045]関連する態様では、図1Bは、例となるビデオコード化システム10’を示し、ここにおいて、発信源デバイス12及び宛先デバイス14は、デバイス11上にあるか、その一部である。デバイス11は、「スマート」フォンのような電話ハンドセット又は同様のものであり得る。デバイス11は、発信源デバイス12及び宛先デバイス14と動作可能に通信状態にある(オプションで存在する)プロセッサ/コントローラデバイス13を含み得る。図1Bのビデオコード化システム10’及びその構成要素は、他の点では(otherwise)、図1Aのビデオコード化システム10及びその構成要素に類似し得る。
[0046]ビデオエンコーダ20及びビデオデコーダ30は、DSCのような、ビデオ圧縮規格に従って動作し得る。代替的に、ビデオエンコーダ20及びビデオデコーダ30は、別名、MPEG―4,Part10,AVC,HEVCと呼ばれるITU−T H.264規格又はそのような規格の拡張のような、他の専有又は工業規格に従って動作し得る。しかしながら、本開示の技法は、いずれの特定のコード化規格にも限定されない。ビデオ圧縮規格の他の例には、MPEG−2及びITU−T H.263が含まれる。
[0047]図1A及び1Bの例では示されていないが、ビデオエンコーダ20及びビデオデコーダ30は、各々、オーディオエンコーダ及びデコーダと一体化され得、共通のデータストリーム又は別個のデータストリームにおけるオーディオ及びビデオの両方の符号化に対処するために、適切なMUX−DEMUXユニット又は他のハードウェア及びソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(UDP)のような他のプロトコルに準拠し得る。
[0048]ビデオエンコーダ20及びビデオデコーダ30は、各々、1つ又は複数のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、又はそれらの任意の組み合わせのような、様々な好適なエンコーダ回路の任意のものとして実施され得る。本技法が部分的にソフトウェアで実施される場合、デバイスは、このソフトウェアのための命令を、好適で非一時的なコンピュータ読取可能な媒体に記憶し、1つ又は複数のプロセッサを使用してハードウェアで命令を実行して、本開示の技法を実行し得る。ビデオエンコーダ20及びビデオデコーダ30の各々は、1つ又は複数のエンコーダ又はデコーダに含まれ得、それらのどちらも、それぞれのデバイスにおける複合エンコーダ/デコーダの一部として一体化され得る。
ビデオコード化プロセス
[0049]簡単に上述したように、ビデオエンコーダ20は、ビデオデータを符号化する。ビデオデータは、1つ又は複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャは、ビデオ「フレーム」と呼ばれ得る。ビデオエンコーダ20がビデオデータを符号化するとき、ビデオエンコーダ20は、ビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成する一連のビットを含み得る。ビットストリームは、コード化ピクチャと関連データとを含み得る。コード化ピクチャは、ピクチャのコード化表現である。
[0050]ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータ中の各ピクチャに対して符号化動作を実行し得る。ビデオエンコーダ20がピクチャに対して符号化動作を実行するとき、ビデオエンコーダ20は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、QPのようなコード化パラメータのセットを含み得る。コード化ピクチャを生成するために、ビデオエンコーダ20は、ピクチャを、サイズが等しいビデオブロックへと区分化し得る。ビデオブロックは、2次元アレイのサンプルであり得る。コード化パラメータは、ビデオデータの全てのブロックについてコード化オプション(例えば、コード化モード)を定義し得る。所望のレート−歪み性能(optimal rate-distortion performance)を達成するために、コード化オプションが選択され得る。
[0051]いくつかの例では、ビデオエンコーダ20は、ピクチャを、複数のスライスへと区分化し得る。スライスの各々は、画像(例えば、フレーム)中に空間的に異なる領域を含み得、それは、画像又はフレーム中の残りの領域からの情報なく独立して復号されることができる。各画像又はビデオフレームが単一のスライスにおいて符号化され得るか、各画像又はビデオフレームがいくつかのスライスにおいて符号化され得る。DSCでは、各スライスを符号化するために割り振られるターゲットビットは、略一定であり得る。ピクチャに対して符号化動作を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化動作を実行し得る。ビデオエンコーダ20がスライスに対して符号化動作を実行するとき、ビデオエンコーダ20は、このスライスに関連付けられた符号化済みデータを生成し得る。スライスに関連付けられた符号化済みデータは、「コード化済みスライス」と呼ばれ得る。
DSCビデオエンコーダ
[0052]図2Aは、本開示で記述される態様に係る、技法を実施し得るビデオエンコーダ20の例を例示するブロック図である。ビデオエンコーダ20は、本開示の技法のうちのいくつか又は全てを実行するように構成され得る。いくつかの例では、本開示で記述される技法は、ビデオエンコーダ20の様々な構成要素の間で共有され得る。いくつかの例では、追加的又は代替的に、プロセッサ(図示されない)は、本開示で記述された技法のうちのいくつか又は全てを実行するように構成され得る。
[0053]記述の目的のために、本開示は、DSCコード化のコンテキストにおいてビデオエンコーダ20を記述する。しかしながら、本開示の技法は、他のコード化規格又は方法に適用可能であり得る。
[0054]図2Aの例では、ビデオエンコーダ20は、複数の機能的な構成要素を含む。ビデオエンコーダ20の機能的な構成要素は、色空間コンバータ105と、バッファ110と、平坦度検出器115と、レートコントローラ120と、予測器、量子化器、及び再構築器構成要素125と、ラインバッファ130と、インデックス付き色履歴135と、エントロピーエンコーダ140と、サブストリームマルチプレクサ145と、レートバッファ150とを含む。他の例では、ビデオエンコーダ20は、より多い、より少ない、又は異なる機能的な構成要素を含み得る。
[0055]色空間コンバータ105は、入力された色空間を、コード化実施で使用される色空間に変換し得る。例えば、1つの例示的な実施形態では、入力ビデオデータの色空間は、赤、緑、青(RGB)色空間であり、コード化は、輝度Y、クロミナンス緑Cg、及びクロミナンスオレンジCo(YCgCo)色空間において実施される。色空間変換は、ビデオデータへの追加及びシフトを含む方法によって実行され得る。他の色空間にある入力ビデオデータが処理され得、他の色空間への変換もまた実行され得ることに留意されたい。
[0056]関連する態様では、ビデオエンコーダ20は、バッファ110、ラインバッファ130、及び/又はレートバッファ150を含み得る。例えば、バッファ110は、ビデオエンコーダ20の他の部分による使用より前、色空間変換されたビデオデータを保持し得る。別の例では、ビデオデータは、RGB色空間に記憶され得、色空間変換は、色空間変換されたデータがより多くのビットを必要とし得るため、必要に応じて実行され得る。
[0057]レートバッファ150は、ビデオエンコーダ20においてレート制御メカニズムの一部として機能し得、これは、レートコントローラ120に関連して以下でより詳細に記述されるであろう。各ブロックを符号化するのに費やされるビットは、極めて実質的にブロックの性質に基づいて、変動することができる。レートバッファ150は、圧縮ビデオにおけるレート変動を滑らかにすることができる。いくつかの実施形態では、固定ビットレートでバッファからビットが取り出されるCBRバッファモデルが用いられる。CBRバッファモデルでは、ビデオエンコーダ20が過度に多くのビットをビットストリームに追加する場合、レートバッファ150はオーバーフローし得る。他方で、ビデオエンコーダ20は、レートバッファ150のアンダーフローを防ぐために、十分なビットを追加しなければならない。
[0058]ビデオデコーダ側では、ビットが、固定ビットレートでビデオデコーダ30のレートバッファ155(以下でより詳細に記述される図2Bを参照)に追加され得、ビデオデコーダ30は、ブロックごとに可変の数のビットを取り除き得る。適切な復号を確実にするために、ビデオデコーダ30のレートバッファ155は、圧縮ビットストリームの復号中、「アンダーフロー」又は「オーバーフロー」するべきではない。
[0059]いくつかの実施形態では、バッファフルネス(BF)は、バッファ中に現在あるビット数を表す値BufferCurrentSizeと、レートバッファ150のサイズを表すBufferMaxSize、即ち、いずれかの時点でレートバッファ150に記憶されることができる最大ビット数、とに基づいて定義され得る。BFは、次のように算出され得る:
BF=((BufferCurrentSize×100)/BufferMaxSize)
[0060]BFを算出する上記アプローチが単なる例示であること、及び、BFが、特定の実施又はコンテキストに依存して、任意の数の異なる方法で算出され得ることが留意されたい。
[0061]平坦度検出器115は、ビデオデータ中の複雑な(即ち、平坦でない)エリアからビデオデータ中の平坦な(即ち、単純な又は均一の)エリアへの、及び/又は、その逆への変化を検出することができる。「複雑(な)」及び「平坦(な)」という用語は、一般に、ビデオエンコーダ20がビデオデータのそれぞれの領域を符号化することの難しさを示すために本明細書で使用されるであろう。故に、複雑(な)という用語は、本明細書で使用される場合、一般に、ビデオデータの領域を、ビデオエンコーダ20が符号化し難いものとして記述し、例えば、テキスチャ化されたビデオデータ、高空間周波数、及び/又は符号化し難い他の特徴を含み得る。平坦(な)という用語は、本明細書で使用される場合、一般に、ビデオデータの領域を、ビデオエンコーダ20が符号化し易いものとして記述し、例えば、ビデオデータ中の滑らかな勾配、低空間周波数、及び/又は符号化し易い他の特徴を含み得る。符号化済みビデオデータ中の量子化アーティファクトを低減するために、複雑領域から平坦領域への遷移が、ビデオエンコーダ20によって使用され得る。具体的には、レートコントローラ120及び予測器、量子化器、及び再構築器構成要素125は、複雑領域から平坦領域への遷移が識別されるときに、そのような量子化アーティファクトを低減することができる。同様に、平坦領域から複雑領域への遷移は、現在ブロックをコード化するのに必要とされる期待レートを低減するためにQPを増加するため、ビデオエンコーダ20によって使用され得る。
[0062]レートコントローラ120は、コード化パラメータ、例えば、QP、のセットを決定する。QPは、レートバッファ150がオーバーフロー又はアンダーフローしないことを確実にするターゲットビットレートのピクチャ品質を最大化するために、レートバッファ150のバッファフルネスとビデオデータの画像アクティビティ(例えば、複雑領域から平坦領域への遷移又はその逆)とに基づいて、レートコントローラ120によって調整され得る。レートコントローラ120はまた、最適なレート歪み性能を達成するために、ビデオデータの各ブロックについて特定のコード化オプション(例えば、特定のモード)を選択する。レートコントローラ120は、ビットレート制約を満たすように、即ち、実際のコード化レート全体がターゲットビットレート内に収まるように、再構築画像の歪みを最小化する。故に、レートコントローラ120の1つの目的は、レート歪み性能を最大化しつつレートに対する瞬間的及び平均的な制約を満たすために、QP、コード化モード、等のコード化パラメータのセットを決定することである。
[0063]予測器、量子化器、及び再構築器構成要素125は、少なくとも、ビデオエンコーダ20の3つの符号化動作を実行し得る。予測器、量子化器、及び再構築器構成要素125は、多数の異なるモードで予測を実行し得る。1つの例となる断定モードは、中央値適応予測の修正バージョンである。中央値適応予測は、ロスレスなJPEG規格(JPEG−LS)によって実施され得る。予測器、量子化器、及び再構築器構成要素125によって実行され得る中央値適応予測の修正バージョンは、3つの連続したサンプル値の並行予測を可能にし得る。別の例となる予測モードは、ブロック予測である。ブロック予測では、上の線又は同じ線の左にある、前に再構築された画素からサンプルが予測される。いくつかの実施形態では、ビデオエンコーダ20及びビデオデコーダ30は、再構築画素に対して同一探索を実行して、ブロック予測用法を決定し得るため、ブロック予測モードではいずれのビットも送られる必要はない。他の実施形態では、ビデオエンコーダ20は、ビデオデコーダ30が別個の探索を実行する必要がないように、探索を実行し、ビットストリームにおいてブロック予測ベクトルを信号伝達し得る。構成要素範囲(component range)の中間点を使用してサンプルが予測される中間点予測モードもまた実施され得る。中間点予測モードは、ワーストケースのサンプルであっても、圧縮ビデオに必要とされるビット数の制限(bounding)を可能にし得る。
[0064]予測器、量子化器、及び再構築器構成要素125もまた、量子化を実行する。例えば、量子化は、シフタを使用して実施され得る2のべき乗量子化器(power-of-2 quantizer)を介して実行され得る。2のべき乗量子化器の代わりに他の量子化技法が実施され得ることに留意されたい。予測器、量子化器、及び再構築器構成要素125によって実行される量子化は、レートコントローラ120によって決定されるQPに基づき得る。最後に、予測器、量子化器、及び再構築器構成要素125はまた、逆量子化残差を予測値に加えることと、その結果がサンプル値の有効範囲外にならないことを確実にすることとを含む再構築を実行する。
[0065]予測器、量子化器、及び再構築器構成要素125によって実行される予測、量子化、及び再構築への上述した例となるアプローチは単なる例示であり、他のアプローチが実施され得ることに留意されたい。予測器、量子化器、及び再構築器構成要素125が、予測、量子化、及び再構築を実行するための従属構成要素を含み得ることも留意されたい。予測、量子化、及び/又は再構築が、予測器、量子化器、及び再構築器構成要素125の代わりに、いくつかの別個のエンコーダ構成要素によって実行され得ることに更に留意されたい。
[0066]ラインバッファ130は、予測器、量子化器、及び再構築器構成要素125とインデックス付き色履歴135とが、バッファされたビデオデータを使用することできるように、予測器、量子化器、及び再構築器構成要素125からの出力を保持する。インデックス付き色履歴135は、最近使用された画素値を記憶する。これらの最近使用された画素値は、専用シンタックスを介して、ビデオエンコーダ20によって直接参照されることができる。
[0067]エントロピーエンコーダ140は、インデックス付き色履歴135と、平坦度検出器115によって識別される平坦度遷移とに基づいて、予測器、量子化器、及び再構築器構成要素125から受けた予想残差及び任意の他のデータ(例えば、予測器、量子化器、及び再構築器構成要素125によって識別されるインデックス)を符号化する。いくつかの例では、エントロピーエンコーダ140は、サブストリームエンコーダにつき1クロックあたり3つのサンプルを符号化し得る。サブストリームマルチプレクサ145は、ヘッダーレスパケット多重化スキームに基づいて、ビットストリームを多重化し得る。これは、ビデオデコーダ30が、並列に3つのエントロピーデコーダを稼働させることを可能にし、これは、1クロックあたり3つの画素の復号を容易にする。サブストリームマルチプレクサ145は、パケットがビデオデコーダ30によって効率的に復号されることができるようにパケット順序を最適化し得る。エントロピーコード化への異なるアプローチが実施され得、これは、1クロックあたり2のべき乗個の画素(例えば、2画素/クロック又は4画素/クロック)の復号を容易にし得ることに留意されたい。
DSCビデオデコーダ
[0068]図2Bは、本開示で記述される態様に係る、技法を実施し得るビデオデコーダ30の例を例示するブロック図である。ビデオデコーダ30は、本開示の技法のうちのいくつか又は全てを実行するように構成され得る。いくつかの例では、本開示で記述される技法は、ビデオデコーダ30の様々な構成要素の間で共有され得る。いくつかの例では、追加的又は代替的に、プロセッサ(図示されない)は、本開示で記述される技法のうちのいくつか又は全てを実行するように構成され得る。
[0069]記述の目的のために、本開示は、DSCコード化のコンテキストにおいてビデオデコーダ30を記述する。しかしながら、本開示の技法は、他のコード化規格又は方法に適用可能であり得る。
[0070]図2Bの例では、ビデオデコーダ30は、複数の機能的な構成要素を含む。ビデオデコーダ30の機能的な構成要素は、レートバッファ155と、サブストリームデマルチプレクサ160と、エントロピーデコーダ165と、レートコントローラ170と、予測器、量子化器、及び再構築器構成要素175と、インデックス付き色履歴180と、ラインバッファ185と、色空間コンバータ190とを含む。ビデオデコーダ30の例示される構成要素は、図2Aのビデオエンコーダ20に関連して上述した対応する構成要素に類似する。このように、ビデオデコーダ30の構成要素の各々は、上述したようなビデオエンコーダ20の対応する構成要素と同様の方式で動作し得る。
QP算出
[0071]1つのアプローチでは、現在ブロックについてのQP(currQPと表される)は、以下の式を使用して導出又は算出され得る:
currQP=prevQ+QpAdj*(diffBits>0?1:−1),
[0072]ここで、prevQPは、前ブロックに関連付けられたQPであり、diffBitsは、previousBlockBitsとtargetBitsとの間の差分を表し、QpAdjは、diffBitsの大きさに基づいて算出されるQPオフセット値(例えば、QP調整値)であり、previousBlockBitsは、前ブロックをコード化するのに使用されたビット数を表し、targetBitsは、現在ブロックをコード化するために割り振られるターゲットビット数を表す。previousBlockBits>targetBitsであるとき、diffBitsは正であり、現在ブロックQPは、オフセット値QpAdjをprevQP値に加えることで導出され得る。換言すると、QP値は、diffBitsが正であるとき、prevQP値から値が減少しない。previousBlockBits≦targetBitsであるとき、diffBitsは負又はゼロであり、currQPは、prevQP値から増加しない。オフセット値QpAdjは、例えば、QpAdjがdiffBitsの大きさの増加に伴って単調に増加する方法でdiffBitsの関数として算出され得ることに留意されたい。
[0073]本明細書でデフォルト技法と呼ばれる、QP調整値QpAdjを算出するための1つの技法が、ここから、図3を参照して記述されるであろう。図3は、ゼロから始まってdiffBitsの値が描かれている軸を含むグラフ50を提供する。デフォルト技法では、diffBits>0であるとき、diffBitsは、K個の閾値を使用してK+1個の範囲へと分類され得る。これらの閾値は、閾値1、閾値2、閾値3…及び閾値Kというラベルで例示され、範囲は、範囲1、範囲2、範囲3、…及び範囲K+1というラベルで例示されている。図3のデフォルト技法では、K個の閾値を使用してdiffBitsをK+1個の範囲へとセグメント化する1つのアプローチが示される。各範囲は、特定のQpAdj値に関連付けられ得、ここで、QpAdj値は、範囲インデックが増加するに伴い増加する。diffBits≦0であるとき、diffBitsの絶対値は、J個の閾値を使用してJ+1個の範囲へと分類され得(図示されない)、J+1個の範囲の各々に割り当てられた特定のQpAdj値が存在し得る。
[0074]他の態様では、currQP値は、バッファのアンダーフロー及び/又はオーバーフローを防ぐために、(バッファフルネスBFの観点で表され得る)バッファのフルネスに基づいて調整され得る。特に、BFが特定の閾値(例えば、P)を超えるとき、currQPは、固定オフセット値(例えば、p)だけインクリメントされ得る。例えば、currQPは、次のように調整され得る:currQP=currQP+p。更に、BFが特定の閾値(例えば、Q)を下回る(fall below)と、currQPは、qぶんデクリメントされ得、例えば、currQP=currQP−qである。特定の態様では、複数の閾値が用いられ得、閾値ごとに、currQPを調整するための対応するオフセット値が存在し得る。
[0075]最後に、複雑領域から平坦領域への遷移が識別されるとき、又は、平坦領域が識別されるとき、currQPは、低値(例えば、定義されたcurrQP値を下回る値)に設定され得る。
平坦から複雑領域検出に基づいて量子化パラメータ(QP)を決定するための技法
[0076]図4を参照すると、1つ又は複数の技法が、DSCについて平坦/滑らかな領域から複雑領域への遷移を検出するために利用され得る。複雑領域への遷移を検出するためにどの技法が使用されるかに関わらず、そのような遷移が検出されると、使用されるQPは、現在ブロック/次ブロックをコード化するのに必要とされる期待レートを低減するために、遷移ブロック又は遷移ブロックの後の次ブロックにおいて(前の平坦ブロックと比べて)増加され得る。しかしながら、遷移ブロックが平坦領域及び複雑領域の両方を含むため、遷移ブロックにおけるQP値が過度に高くなる(例えば、定義されたQP値を超える)ことができないことに留意されたい。例えば、遷移ブロックについてのQP値が、定義されたQP値を超えるとき、遷移ブロックから再構築される画像内で顕著であり得るアーティファクトがブロックの平坦部分で生じ得る。
[0077]図4は、フレーム又はその一部、例えば、フレームのスライス、であり得る例となる関心領域200を例示する。領域200は、3つの連続的なブロック205、210、及び215を含み得る。この例では、ブロック205は、領域200の平坦領域/部分に対応し、ブロック210は、領域200の遷移領域/部分に対応し、ブロック215は、領域200の複雑領域/部分に対応する。示されるように、ブロック205のコンテンツは、平坦、滑らか、又は均一である。ブロック215のコンテンツは、テキスチャ化されており、全体にわたって均一でないパターンを示す。ブロック210は、均一コンテンツから非均一コンテンツへの遷移を含む。以下で記述されるように、複雑性算出が、ブロック205、210、及び215の各々について実行され得る。
[0078]本明細書で使用される場合、平坦ブロックは、複雑性閾値よりも低い複雑性値を有するブロックを指し得る。ブロックが平坦であると決定される閾値は、このブロックをコード化するのに必要とされるビット数のような様々な設計基準に基づいて設定され得る。同様に、非平坦又は複雑なブロックは、平坦でない、例えば、複雑性閾値以上である複雑性値を有するブロックを指し得る。ブロックの様々な他の分類は、ブロックの関連する複雑性に基づいて用いられ得、そのような分類は、ブロックの複雑性値における閾値によって定義される範囲であり得る。
[0079]平坦及び複雑という用語は、ブロック以外の領域にも適用され得る。このケースでは、領域は、ブロックと同じサイズではない可能性がある、例えば、領域は、離散的に符号化/復号されるサイズではない可能性がある、が、領域もまた、この領域の複雑性に基づいて、平坦又は複雑に分類され得る。例えば、領域は、この領域内の各ブロックが平坦ブロックである場合、平坦領域と呼ばれ得る。しかしながら、平坦領域は、それに含まれるブロックと同じ境界を有さない場合があり、この領域の複雑性は、領域全体にわたって算出され得る。複雑領域は、同様に定義され得る。故に、領域は、この領域についての複雑性値を、ブロックについての複雑性閾値とは異なり得る複雑性閾値と比較することで、平坦又は複雑に分類され得る。更に、領域がコード化のためにブロックへと分割され得るため、領域という用語は、本明細書では概念的に、本開示の様々な態様の理解を容易にするために使用され得る。
[0080]上述したように、ブロックを平坦又は複雑に分類するために、このブロックについての複雑性値が決定され得る。ブロックについての複雑性値は、この複雑性値がブロックを符号化する難しさ、例えば、可視のアーティファクトをもたらすことなくこのブロックをコード化するのに必要とされ得るビット数、を表現する限り、様々な技法に従って決定され得る。一態様では、ブロックの複雑性が、ブロック内の画素の周波数変換(例えば、離散コサイン変換(DCT)、アダマール変換、等)を使って算出され得る。周波数変換は、複雑性値を生成するために合計され得る多数の周波数係数をもたらし得る。特定の態様では、直流(DC又はゼロ周波数)係数及び/又は1つ又は複数の低周波数係数は、この合計には含まれないであろう。複雑性値を決定するための様々な他の技法、例えば、周波数変換の前に色変換を適用すること、もまた適用され得る。
[0081]「QP算出」というセクションにおいて上で説明したように、現在ブロックが平坦ブロックである又は平坦領域から複雑領域への遷移を含むブロックであるとき、currQPは、低値(例えば、定義されたcurrQP値を下回る値)に減少され得る。次ブロックが平坦でないとき、currQPは、diffBitsの大きさに依存して、増加又は減少され得る。例えば、エンコーダが、高度にテキスチャ化された又は高周波数のコンテンツ(例えば、複雑領域)を含む領域を処理していることときに、この領域内に平坦ブロックが位置しているときには、エンコーダは、QP値を減少させ得る。この平坦ブロックの後のブロックから開始して、エンコーダは、再度、この領域の高複雑性により、QP値を増加させ得る。しかしながら、QP値が平坦ブロックにおいて低値に減少されるため、この高い複雑性領域にとって望ましい高いQP値に戻るためには数ブロックかかり得る。換言すると、QP値が更新されるレートは、ビットが無駄になるのを防ぐのに十分にアグレッシブではないであろう。例えば、所望のQP値よりも低いものでの複雑なブロックのコード化は、必要とされるコード化品質を維持するのに必要とされるより大きなビット数を必要とし得る。
[0082]更に、これも「QP算出」というセクションで述べているが、currQPは、バッファのフルネスに基づいて、固定オフセット値だけ更にインクリメント又はデクリメントされ得る。固定値だけQP値をインクリメント又はデクリメントとすることは、currQPが、連続したブロック間でQP値に大きな差分をもたらし得る比較的大きい値(例えば、閾値よりも大きい値)だけインクリメント又はデクリメントされ得るため、望まれないであろう。これは、再構築画像中に顕著なアーティファクトをもたらし得る。
[0083]本明細書で開示される技法は、CBRバッファでレート制御を利用又は実施する任意の画像又はビデオコーダに適用され、少なくとも、上述した2つの問題に対処するために使用され得る。
平坦領域の検出に基づくQP更新技法
[0084]1つのアプローチでは、変数isFlatは、所与のブロックBが平坦ブロックであるかどうかを示し得る。別の変数isFlatToComplexは、所与のブロックBが平坦領域から複雑領域への遷移を含むかどうかを示し得る。実施に依存して、エンコーダ20又はデコーダ30は、各ブロックBについて、変数isFlat及び/又はisFlatToComplexを明示的に決定し得るが、しかしながら、エンコーダ20又はデコーダ30はまた、変数isFlat及び/又はisFlatToComplexを明示的に決定することなく、ブロックBが平坦であるか又は平坦領域から複雑領域への遷移を含むかどうかを暗示的に決定し得る。明確さのため、本開示は、これらの変数がエンコーダ20及び/又はデコーダ30によって決定されるかのように、それらを説明するであろう。
[0085]一実施では、前ブロックについてisFlatが真であり、かつ、現在ブロックについてisFlatが偽であるとき、代替技法(例えば、アグレッシブな技法)がQP値をランプ又は更新するために使用され得る。即ち、前ブロックが平坦であり、かつ、現在ブロックが複雑であるとき、エンコーダ20及び/又はデコーダ30は、現在ブロックが平坦領域から複雑領域への遷移を含むと推論し、QP値を更新するために、デフォルト技法の代わりに代替技法を適用し得る。
[0086]代替技法が適用され得る1つの条件は、前ブロックについてのisFlatが真であり、かつ、現在ブロックについてのisFlatが偽であるときである。この位置において(例えば、現在ブロックにおいて)、(本明細書では技法−Fとも呼ばれ得る)代替技法が、QpAdjを算出するために、デフォルト技法の代わりに利用され得る。デフォルト技法は、図3に関連して上述されている。デフォルト技法に代わる1つ又は複数の技法が存在し得ることに留意されたい。
[0087]一例では、代替技法が、N個の連続したブロックに使用され得、例えば、N個の連続したブロックについて、QpAdjが、技法−Fに基づいて算出又は決定され、N個のブロックをコード化した後、レート制御は、デフォルト技法へと切に替わり得る。ここで、Nは、正の整数である。
[0088]別の例では、次のN個の連続したブロックの中で、ブロックのうちの任意の1つが平坦であるとわかると、レート制御は、デフォルト技法に切り替わり得るか、QPを低値に設定し得る。従って、技法−Fは、N個の連続したブロックに対して又はN個の連続したブロックの中から平坦ブロックを検出/ヒットするまでの何れか早い方に適用され得る。
[0089]図5は、ブロックA−Eを含む、複数のブロック300を含む例を例示し、ここで、N=5である。図5に示されるこのシナリオでは、ブロックEが平坦であるため、技法−FはブロックB、C、及びD、即ち、3つのブロックに対してのみ使用され得る。
[0090]表1における以下の例となる疑似コードは、QP更新技法を決定するために使用され得る実施を示す:
Figure 2018515015
[0091]1つの代替技法では、前ブロックについて、isFlatが真であり、かつ、現在ブロックが、平坦領域から複雑領域への遷移を有するとき、技法−Fは、すぐには、現在ブロックについてのQPを算出するために適用されないであろう。代わりに、次ブロックから代替技法が適用され得る。このシナリオの例は、図6に示されており、これは、ブロックA−Dを含む複数のブロック310を含む。図6の例では、ブロックAについて、isflat=真であり、ブロックBについて、isflat=偽である(従って、ブロックBは、平坦領域から複雑領域への遷移を含み、例えば、isFlatToComplex=真である)。これらの条件下では、QPを算出するためにブロックCから代替技法が使用され得る。
[0092]従って、表2の以下の例となる疑似コードは、QP更新技法を決定するために使用され得る:
Figure 2018515015
[0093]別の代替例では、前ブロックについての(isFlat || isFlatToComplex)が真であり、かつ、現在ブロックについての(isFlat || isFlatToComplex)が偽であるとき、例えば、前ブロックが平坦ブロックであるか、平坦領域から複雑領域への遷移を含むかのどちらか一方であり、現在ブロックが平坦ブロックでなくかつ平坦領域から複雑領域への遷移を含まない場合、QPをランプ又は更新するために代替技法が利用され得る。
[0094]更に別の代替例では、代替技法が適用され得るN個の連続したブロックの中で、ブロックの何れか1つが、平坦であるか、平坦領域から複雑領域への遷移を含む場合、レート制御は、デフォルト技法に切り替わり得る。
[0095]従って、表3における以下の例となる疑似コードが、実施されるべき技法を決定するために使用され得る:
Figure 2018515015
[0096]別の代替例では、前ブロックについての(isFlatToComplex)が真であり、かつ、現在ブロックについての(isFlatToComplex)が偽であるとき、例えば、前ブロックが平坦であるか否かに関わらず、QPをランプ又は更新するために代替技法が利用され得、特定のQP技法を選ぶ決定は、isFlatToComplexに基づく。
[0097]別の代替例では、代替技法が適用され得るN個の連続したブロックの中で、ブロックのうちの何れか1つが平坦領域から複雑領域への遷移を含むとわかると、レート制御は、デフォルト技法に切り替わり得る。
[0098]従って、表4における以下の例となる疑似コードは、実施されるべき技法を決定するために使用され得る:
Figure 2018515015
[0099]1つのアプローチでは、isFlat=真を検出する直前のこのブロックについてのQP値が記憶され得、記憶されたQP値は、isFlat=偽のときのブロックのQP値を導出するために使用され得る。この実施では、平坦領域よりも前のブロックの複雑性は、平坦領域の後のブロックの複雑性を推定するために使用され得る。図7は、ブロックA−Dを含む複数のブロック320を含み、現在のアプローチに従ってブロックDについてのQP値を導出するためにブロックAのQP値が使用され得るシナリオを例示する。
[0100]一態様では、ブロックDについてのQP値は、ブロックAについてのQP値と同じであり得る。別の態様では、ブロックDについてのQP値は、技法−Fに基づいて調整され得る。更に別の態様では、ブロックDについてのQP値は、デフォルト技法に基づいて調整され得る。更に別の態様では、ブロックAについてのQP値が、固定オフセットだけインクリメントされ得、ブロックDについてのQP値として使用され得る。
[0101]別の態様では、ブロックAについてのQP値が、固定オフセットだけデクリメントされ得、ブロックDについてのQP値として使用され得る。
[0102]別のアプローチでは、表1−4の各々における疑似コード行:distCount≦Nが、疑似コード行:distCount<Nと置き換えられ得る。更に別のアプローチでは、Nが、N−1と置き換えられ得る。
[0103]一実施形態に従って、(i)diffBits>0及び(ii)diffBits≦0という2つの領域についてのQpAdjの算出が以下で記述される。
ケース(i):diffBits>0
[0104]一実施では、diffBitsの所与の値について、技法−FのQpAdj値は、デフォルト技法の対応するQpAdj値よりも真に大きい(>)。図8は、デフォルト技法及び代替技法の一実施の例示を示す。図8のグラフは、デフォルト技法410及び代替技法405という2つの線を含む。図8の例では、delta Qpは、デフォルト技法410及び技法−F、例えば、代替技法405、についてのdiffBitsの関数として示されている。技法−F405の場合、所与のdiffBits>0について、技法−F405のQpAdj値(即ち、delta Qp)は、デフォルト技法410の対応するQpAdj値(即ち、delta Qp)以上である。関数が重複するとき、例えば、実線及び点線の関数が重複する所では、QpAdjの値が同じであり得ることは留意されたい。
[0105]一実施では、(図3に関連して上述したような)デフォルト技法410で使用されるのと同じK個の閾値がK+1個の範囲を分類するために使用されるとき、各範囲について、技法−F405のQpAdjは、デフォルト技法410の対応するQpAdj値よりも真に大きいであろう。
[0106]再度図8の例を参照すると、両方の技法について、範囲(x軸)を分類するために同じ閾値が使用され得る。1つの代替例では、〜よりも真に大きい(>)は、〜以上(≧)と置き換えられ得る。
ケース(ii):diffBits≦0
[0107]一実施では、diffBitsの所与の値について、技法−F405のQpAdj値は、デフォルト技法410の対応するQpAdj値よりも真に小さい(>)。図8に示されるように、diffBits≦0の所与の値の場合、技法−F405のQpAdj(即ち、|delta Qp|)は、デフォルト技法410の対応するQpAdj(即ち、|deltaQp|)よりも真に小さい。より正確に言うと、diffBits≦0(例えば、previousBlockBits≦targetBits)であるとき、技法−F405の場合、現在ブロックについてのQP currQP=prevQP−QpAdjは、デフォルト技法410と比べたとき、より控えめに減少される。これは、QPがすぐには低値に減少されないため、数ビットを確保するであろう。
[0108]一態様では、デフォルト技法410で使用されるのと同じJ個の閾値がJ+1範囲を分類するために使用されるとき、各範囲について、技法−F405のQpAdj(即ち、|delta Qp|)は、デフォルト技法410の対応するQpAdj値よりも真に小さい。続けて図8に示される例を参照すると、同じ閾値が範囲を分類するために使用され得る。関連する態様では、〜よりも真に小さい(<)は、〜以下(≦)と置き換えられ得る。
[0109]図8に示される例は例示目的にすぎず、各技法についてのdiffBitsとdelta Qpとの間の実際の関係性が特定の実施又はコンテキストに依存して異なり得ることに留意されたい。
[0110]一態様では、diffBits≦0の場合に、デフォルト技法410が、QpAdjを算出するために使用され得、diffBits>0の場合に、技法−F405が、QpAdjを算出するために使用され得る。関連する態様では、diffBits>0の場合に、デフォルト技法410が、QpAdjを算出するために使用され得、diffBits≦0の場合に、技法−F405が、QpAdjを算出するために使用され得る。
バッファが上位閾値限界又は下位閾値限界を超える又は下回るときのQP更新技法
[0111]BFが上位閾値限界を超えるとき、QpAdj算出するためにデフォルト技法を使用し、固定オフセット値を加える代わりに、代替技法が、QpAdjを算出するために使用され得る。換言すると、QpAdjは、BF及びdiffBitsに基づいて、代替技法を介して算出され得る。BFが下位閾値を下回るとき、同様の調整が実施され得る。
バッファフルネスが閾値限界を超える
[0112][P,P,…P]がn個の閾値であり、[技法−P,技法−P,…技法−P]が、QpAdjを算出するために使用され得るそれぞれの代替技法であるとする。レート制御は、以下に基づいて、代替技法から特定の技法を選択し得、その選択された技法が、QpAdjを算出するために使用され得る:
(バッファフルネス≧P1)である場合、
QpAdjを算出するために技法−P1が使用される;
そうではなく、(バッファフルネス≧P2)である場合、
QpAdjを算出するために技法−P2が使用される;

そうではなく、(バッファフルネス≧Pn)である場合、
QpAdjを算出するために技法−Pnが使用される;
[0113]即ち、バッファのフルネス、例えば、BF、は、複数の漸減する閾値PからPと比較され得る。BFが閾値のうちの1つ、例えば、P、よりも大きいとき、対応する技法、技法−P、が、QP調整値QpAdjを決定するために使用され得る。
ケース(i):diffBits>0
[0114]一実施では、diffBitsの所与の値について、技法−PのQpAdj値≧技法−PのQpAdj値≧…技法−PのQpAdj値≧デフォルト技法のQpAdj値である。
[0115]図9は、デフォルト技法及び代替技法、技法−P、の一実施の例示を示す。図9のグラフは、デフォルト技法420及び技法−P1 415という2本の線を含み、ここで、diffBits>0の所与の値について、技法−P 415のQpAdj値は、デフォルト技法420のQpAdj値以上である。
[0116]一実施では、(図3に関連して説明されたように)デフォルト技法420で使用されるのと同じK個の閾値がK+1個の範囲を分類するために使用され得、各範囲について、技法−P 415のQpAdj値≧技法−PのQpAdj値≧…技法−PのQpAdj値≧デフォルト技法420のQpAdj値である。
[0117]一態様では、図9の例を参照して、同じ閾値が範囲を分類するために使用され得る。別の態様では、〜以上(≧)は、〜よりも真に大きい(>)と置き換えられ得る。更に別の態様では、デフォルト技法420は、QpAdjを算出するために使用される唯一の技法であり得る。
ケース(ii):diffBits≦0
[0118]一実施では、diffBitsの所与の値について、技法−P 415のQpAdj値≦技法−PのQpAdj値≦…技法−PのQpAdj値≦デフォルト技法420のQpAdj値である。
[0119]続けて図9の例を参照すると、diffBits≦0の所与の値について、技法−P 415のQpAdj(即ち、|delta Qp|)は、デフォルト技法420の対応するQpAdj(即ち、|deltaQp|)と比べたとき、真に小さい。
[0120]一実施では、デフォルト技法420で使用されるのと同じJ個の閾値がJ+1個の範囲を分類するために使用され得、各範囲について、技法−P 415のQpAdj値≦技法−PのQpAdj値≦…技法−PのQpAdj値≦デフォルト技法420のQpAdj値である。
[0121]一態様では、〜以下(≦)は、〜よりも真に小さい(<)と置き換えられ得る。別の態様では、デフォルト技法420は、QpAdjを算出するために使用される唯一の技法であり得る。
バッファフルネスが閾値限界を下回る
[0122][Q,Q,…Q]がm個の閾値であり、[技法−Q,技法−Q,…技法−Q]が、QpAdjを算出するために使用されるそれぞれの代替技法であるとする。換言すると、レート制御は、以下に基づいて、代替技法から特定の技法を選択し得、その選択された技法が、QpAdjを算出するために使用され得る:
(バッファフルネス≦Q)である場合、
QpAdjを算出するために技法−Qが使用される;
そうではなく、(バッファフルネス≦Q)である場合、
QpAdjを算出するために技法−Qが使用される;

そうではなく、(バッファフルネス≦Q)である場合、
QpAdjを算出するために技法−Qが使用される;
[0123]即ち、バッファのフルネス、例えば、BF、は、複数の漸増する閾値QからQと比較され得る。BFが閾値のうちの1つ、例えば、Q、未満であり、かつ、前の閾値、例えば、Qi−1、よりも大きいとき、対応する技法、技法−Qが、QP調整値QpAdjを決定するために使用され得る。
ケース(i):diffBits>0
[0124]一実施では、diffBitsの所与の値について、デフォルト技法のQpAdj値≧技法−QのQpAdj値≧…技法−QのQpAdj値≧技法−QのQpAdj値である。
[0125]図10は、デフォルト技法及び2つの代替技法、技法−Q及び技法−Qの一実施の例示を示す。図10のグラフは、デフォルト技法425、技法−Q430、及び技法−Q435について、delta QpがdiffBitsの関数である例を示す。図10を参照すると、m=2である場合の関係性が示されており、diffBits>0の所与の値について、デフォルト技法425のQpAdj値≧技法−Q430のQpAdj値≧技法−Q430のQpAdj値である。
[0126]一実施では、(図3に関連して上で説明された)デフォルト技法で使用されるのと同じK個の閾値がK+1個の範囲を分類するために使用されるとき、各範囲について、デフォルト技法425のQpAdj値≧技法−Q430のQpAdj値≧技法−Q435のQpAdj値…≧技法−QのQpAdj値である。
[0127]一態様では、〜以上(≧)は、〜よりも真に大きい(>)と置き換えられ得る。別の態様では、デフォルト技法425は、QpAdjを算出するために使用される唯一の技法であり得る。
ケース(ii):diffBits≦0
[0128]一実施では、diffBitsの所与の値について、デフォルト技法425のQpAdj値≦技法−Q430のQpAdj値≦技法−Q435のQpAdj値…≦技法−QのQpAdj値である。
[0129]図10を参照すると、関数が重複するとき、例えば、実線及び点線が重複する所では、QpAdjの値が同じであることに留意されたい。
[0130]一実施では、デフォルト技法425で使用されるのと同じJ個の閾値がJ+1個の範囲を分類するために使用されるとき、各範囲について、デフォルト技法425のQpAdj値≦技法−Q430のQpAdj値≦技法−Q435のQpAdj値…≦技法−QのQpAdj値である。
[0131]一態様では、〜以下(≦)は、〜よりも真に小さい(<)と置き換えられ得る。図9−10に示される例は例示目的にすぎず、技法ごとにdiffBitsに基づいてdelta Qpを導出するための実際の技法又は関数は、特定の実施又はコンテキストに依存して異なり得ることに留意されたい。別の態様では、デフォルト技法425は、QpAdjを算出するために使用される唯一の技法であり得る。
[0132]最後に、本明細書で記述される技法が、(1)明示的なQP導出及び/又は(2)暗示的なQP導出に適用され得ることに留意されたい。例えば、明示的なQP導出では、QPは、エンコーダ20において導出され得、ビットストリームにおいてデコーダ30に明示的に信号伝達され得る。暗示的なQP導出では、エンコーダ20びデコーダ30の両方がQPを導出し得る。しかしながら、デコーダ30は、例えば、QP技法のタイプのような、QPを導出するために付加情報を利用し得、これは、エンコーダ20によってビットストリームで信号伝達され得る。デコーダ30がQP値を導出するのを支援するために使用されることができる他の情報が、実施に依存して、エンコーダ20によってビットストリームで信号伝達され得る。
[0133]第1の例では、本明細書で提案される技法は、適切なQP適応カーブを選ぶことで、QPを算出するためにエンコーダ20によって使用され得る。エンコーダ20は、例えば、現在ブロックのQPと前ブロックのQPとの間の差分を信号伝達することを介して、QPを明示的に信号伝達し得る。エンコーダ20はまた、選ばれたQP適応カーブを信号伝達し得る。
[0134]第2の例では、本明細書で提案される技法は、エンコーダ20及びデコーダ30の両方によって使用され得る。QP適応カーブのタイプは、エンコーダ20によって選ばれ得、ビットストリームで明示的に信号伝達され得る。
量子化パラメータ(QP)値を決定するための例となるフローチャート
[0135]図11を参照すると、QP値を決定するための例となるプロシージャが記述されるであろう。図11は、本開示の実施形態に係る、ビデオデータをコード化するための方法500を例示するフローチャートである。図11に例示されているステップは、ビデオエンコーダ(例えば、図2Aのビデオエンコーダ20)、ビデオデコーダ(例えば、図2Bのビデオデコーダ30)、又はそれらの構成要素によって実行され得る。便宜上、方法500は、ビデオエンコーダ20、ビデオデコーダ30、又は別の構成要素であり得る、(単にコーダとも呼ばれる)ビデオコーダによって実行されると記述されている。
[0136]コーダ又はその構成要素は、バッファを含む複数のプログラマブル計算ユニットによって共有される統合グローバルメモリを含むデバイスで実施され得、ここにおいて、バッファは、先入先出(FIFO)バッファを含み得る。デバイスは、少なくとも1つのプロセッサ(例えば、中央処理ユニット(CPU))及び/又はグラフィックス処理ユニット(GPU)を含み得る集積回路(IC)を更に含み得、ここにおいて、GPUは、1つ又は複数のプログラマブル計算ユニットを含み得る。
[0137]方法500は、ブロック510から開始する。ブロック505において、コーダは、現在ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定する。特定の実施では、この決定は、前ブロック、現在ブロック、及び次ブロックの各々についての複雑性値を決定することと、これらの複雑性値を複雑性閾値と比較することとを含み得る。現在ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるとコーダが決定する場合、方法は、ブロック515に進む。現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないとコーダが決定する場合、方法500はブロック510に進む。ブロック510において、コーダは、前ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定する。前ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるとコーダが決定する場合、方法500はブロック520に進む。透過ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないとコーダが決定する場合、方法500はブロック535に進む。例示されてはいないが、特定の実施では、前ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないとコーダが決定する場合、方法は、ブロック515に進み得る。ブロック515において、コーダは、現在ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのどちらか一方であると決定することに応答して、現在ブロックについてのQP調整値を算出するためにデフォルト技法を選択し得る。
[0138]ブロック520において、コーダは、少なくとも部分的に、現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないと決定することに応答して、現在ブロックについてのQP調整値を算出するために代替技法を選択し得る。コーダはまた、少なくとも部分的に、前ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのどちらか一方であると決定することに応答して、現在ブロックについてのQP調整値を算出するために代替技法を選択し得る。ブロック525において、コーダは、選択された技法を介して、現在ブロックについてのQP調整値を算出する。ブロック530において、コーダは、そのQP調整値に基づいて、現在ブロックについてのQP値を決定する。方法は、ブロック535で終了する。
[0139]方法500では、図11に示されるブロックのうちの1つ又は複数は、除去され得(例えば、実行されず)、及び/又は、方法が実行される順序が交換され得る。いくつかの実施形態では、追加のブロックが、方法500に追加され得る。本開示の実施形態は、図11に示される例に限られるものでもそれらによって制限されるものでもなく、他の変形が、本開示の精神から逸脱することなく実施され得る。
[0140]図12を参照して、QP値を決定するための別の例となるプロシージャが記述されるであろう。図12は、本開示の実施形態に係る、ビデオデータをコード化するための方法600を例示するフローチャートである。図12に例示されているステップは、ビデオエンコーダ(例えば、図2Aのビデオエンコーダ20)、ビデオデコーダ(例えば、図2Bのビデオデコーダ30)、又はそれらの構成要素によって実行され得る。便宜上、方法500は、ビデオエンコーダ20、ビデオデコーダ30、又は別の構成要素であり得る、(単にコーダとも呼ばれる)ビデオコーダによって実行されると記述されている。
[0141]方法600は、ブロック601から開始する。ブロック605において、コーダは、バッファのフルネスが第1の上位フルネス閾値以上であるかどうかを決定する。バッファのフルネスが第1の上位フルネス閾値以上であるとコーダが決定すると、方法600は、ブロック615に進む。バッファのフルネスが第1の上位フルネス閾値未満であるとコーダが決定すると、方法は、ブロック610に進む。ブロック610において、コーダは、バッファのフルネスが第1の下位フルネス閾値以下であるかどうかを決定する。バッファのフルネスが第1の下位フルネス閾値以下であるとコーダが決定すると、方法600は、ブロック620に進む。バッファのフルネスが第1の下位フルネス閾値よりも大きいとコーダが決定すると、方法600は、ブロック635に進む。
[0142]ブロック615において、コーダは、バッファのフルネスが第1の上位フルネス閾値以上であると決定することに応答して、現在ブロックについてのQP調整値を算出するために第1の技法を選択する。特定の実施では、コーダは、バッファのフルネスが第1の上位フルネス閾値未満であり、かつ、第1の下位フルネス閾値よりも大きいと決定することに応答して、現在ブロックについてのQP調整値を算出するためにデフォルト技法を選択し得る。これらの実施では、方法600は、ブロック610からブロック625に進み得る。
[0143]ブロック620において、コーダは、バッファのフルネスが第1の下位フルネス閾値以下であると決定することに応答して、現在ブロックについてのQP調整値を算出するために第2の技法を選択する。ブロック625において、コーダは、選択された技法を介して、現在ブロックについてのQP調整値を算出する。ブロック630において、コーダは、そのQP調整値に基づいて、現在ブロックについてのQP値を決定する。方法600は、ブロック635で終了する。
[0144]方法600では、図12に示されるブロックのうちの1つ又は複数は、除去され得(例えば、実行されず)、及び/又は、方法が実行される順序が交換され得る。いくつかの実施形態では、追加のブロックが、方法600に追加され得る。本開示の実施形態は、図12に示される例に限られるものでもそれらによって制限されるものでもなく、他の変形が、本開示の精神から逸脱することなく実施され得る。
他の検討事項
[0145]本開示の態様は、図2Aのビデオエンコーダ20のようなエンコーダの観点から記述されていることに留意されるべきである。しかしながら、当業者であれば、上述したものの逆動作が、例えば、図2Bのビデオデコーダによって、生成されたビットストリームを復号するために適用され得ることは認識するであろう。
[0146]本明細書で開示された情報及び信号は、多種多様な技術及び技法のうちの任意のものを使用して表わされ得る。例えば、上の記述全体にわたって参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁場又は磁性粒子、光場又は光粒子、又はこれらの任意の組み合わせによって表され得る。
[0147]本明細書で開示された実施形態と関連して記述されている実例となる様々な論理ブロック及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、又は両方の組み合わせとして実施され得る。このハードウェア及びソフトウェアの互換性を明確に例示するために、実例となる様々な構成要素、ブロック、及びステップが、概してそれらの機能性の観点から上に記述されている。このような機能性がハードウェアとして実施されるかソフトウェアとして実施されるかは、特定のアプリケーション及びシステム全体に課せられる設計制約に依存する。当業者は、記述した機能性を特定のアプリケーションごとに様々な方法で実施し得るが、このような実施の決定は、本開示の範囲からの逸脱をさせるものとして解釈されるべきでない。
[0148]本明細書で記述された技法は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせで実施され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、又は、ワイヤレス通信デバイスハンドセット、自動車、電気器具、ウェアラブルなもの、及び/又は他のデバイスへのアプリケーションを含む複数の用途を有する集積回路デバイスのような様々なデバイスの任意のもので実施され得る。デバイス又は構成要素として記述された任意の特徴は、集積論理デバイスで纏めて、又は、ディスクリートではあるが相互動作可能な論理デバイスとして別々に実施され得る。ソフトウェアで実施される場合、この技法は、少なくとも部分的に、命令を含むプログラムコードを備えるコンピュータ読取可能なデータ記憶媒体によって実現され得、これらの命令は、実行されると、上述した方法のうちの1つ又は複数を実行する。コンピュータ読取可能なデータ記憶媒体は、パッケージングマテリアルを含み得る、コンピュータプログラム製品の一部分を形成し得る。コンピュータ読取可能な媒体は、同期動的ランダムアクセスメモリ(SDMAM)のようなランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、不揮発ランダムアクセスメモリ(NVRAM)、電気的消去可能なプログラマブル読取専用メモリ(EEPROM(登録商標))、FLASHメモリ、磁気又は光学データ記憶媒体、等のメモリ又はデータ記憶媒体を備え得る。技法は、追加的に又は代替的に、少なくとも部分的に、伝播される信号又は波のような、コンピュータによってアクセス、読取、及び/又は実行されることができ、かつ、データ構造又は命令の形式でプログラムコードを搬送又は通信するコンピュータ読取可能な通信媒体によって実現され得る。
[0149]プログラムコードは、1つ又は複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、又は他の同等の集積回路又はディスクリート論理回路のような1つ又は複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で記述された技法のうちの任意のものを実行するように構成され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替的に、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、DSPと、1つのマイクロプロセッサ、複数のマイクロプロセッサ、DSPコアに連結した1つ又は複数のマイクロプロセッサ、又は任意の他のそのような構成との組み合わせとして実施され得る。従って、「プロセッサ」という用語は、本明細書で使用される場合、前述の構造の任意のもの、前述の構造の任意の組み合わせ、又は本明細書で記述された技法の実施に適した任意の他の構造又は装置を指し得る。加えて、いくつかの態様では、本明細書で記述された機能性は、符号化及び復号のために構成された専用のソフトウェア及び/又はハードウェアモジュール内に提供され得るか、又は、複合ビデオエンコーダ−デコーダ(CODEC)に組み込まれ得る。また、本技法は、1つ又は複数の回路又は論理要素で完全に実施され得る。
[0150]本開示の技法は、ワイヤレスハンドセット、IC、又はICのセット(例えば、チップセット)を含む、幅広い種類のデバイス又は装置で実施され得る。様々な構成要素又はユニットは、開示された技法を実行するように構成されたデバイスの機能的な態様を強調するように本開示では記述されているが、必ずしも異なるハードウェアユニットによる実現を必要とするわけではない。むしろ、上述したように、様々なユニットは、コデックハードウェアユニットへと組み合わせられるか、又は、上述された1つ又は複数のプロセッサを含む、相互動作するハードウェアユニットの一群によって、好適なソフトウェア及び/又はファームウェアと併せて提供され得る。
[0151]前述のものは、様々な異なる実施形態に関連して記述されているが、1つの実施形態からの特徴又は要素は、本開示の教示から逸脱することなく、他の実施形態と組み合わせられる。しかしながら、それぞれの実施形態間の特徴の組み合わせは、必ずしもそれらに限られるわけではない。本開示の様々な実施形態が記述されている。これらの実施形態及び他の実施形態は、以下の特許請求の範囲の範囲内である。

Claims (30)

  1. 量子化パラメータ(QP)値を決定するための方法であって、
    現在ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、
    前ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、
    前記現在ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのうちの少なくとも1つであると決定することに応答して、前記現在ブロックについてのQP調整値を算出するためにデフォルト技法を選択することと、
    (i)前記現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないこと、かつ、(ii)前記前ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのどちらか一方であることを決定することに応答して、前記現在ブロックについての前記QP調整値を算出するために代替技法を選択することと、
    前記選択された技法を介して、前記現在ブロックについての前記QP調整値を算出することと、
    前記QP調整値に基づいて、前記現在ブロックについての前記QP値を決定することと
    を備える方法。
  2. 前記前ブロック、前記現在ブロック、及び前記次ブロックの各々についての複雑性値を決定すること
    を更に備え
    前記現在ブロックが平坦領域から複雑領域への遷移を含むかどうかを前記決定することは、前記前ブロック、前記現在ブロック、及び前記次ブロックの前記複雑性値に基づく、
    請求項1に記載の方法。
  3. 前記現在ブロックが平坦領域から複雑領域への遷移を含むかどうかを前記決定することは、(i)前記前ブロックの前記複雑性値が複雑性閾値未満であること、かつ、(ii)前記現在ブロックの前記複雑性値が前記複雑性閾値以上であることに基づく、請求項2に記載の方法。
  4. (i)前記現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないこと、かつ、(ii)前記前ブロックが少なくとも平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのうちの1つであることを決定することに応答して、前記代替技法を介して、規定数の連続したブロックについての複数のQP調整値を決定すること
    を更に備える、請求項1に記載の方法。
  5. 前記規定数の連続したブロックのうちの1つが平坦ブロックであるか又は複雑領域から平坦領域への遷移を含むかどうかを決定することと、
    前記規定数の連続したブロックのうちの前記1つが平坦ブロックである又は複雑領域から平坦領域への遷移を含むと決定することに応答して、前記代替技法を介した前記規定数の連続したブロックについての前記QP調整値の前記決定を終了することと
    を更に備える、請求項4に記載の方法。
  6. 前記方法は、
    前記前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックについてのターゲットビット数との差分を決定すること
    を更に備え、
    前記ビット数の差分が正の場合、前記代替技法を介して算出される前記QP調整値は、前記デフォルト技法を介して算出される前記QP調整値よりも大きい、
    請求項1に記載の方法。
  7. 前記ビット数の差分が負又はゼロの場合、前記代替技法によって算出される前記QP調整値は、前記デフォルト技法によって算出される前記QP調整値未満である、
    請求項6に記載の方法。
  8. 固定レートバッファでビデオデータをコード化するための量子化パラメータ(QP)値を決定するための方法であって、
    前記バッファのフルネスが(i)第1の上位フルネス閾値以上であるか、(ii)第1の下位フルネス閾値以下であるかを決定することと、
    前記バッファの前記フルネスが前記第1の上位フルネス閾値以上であると決定することに応答して、現在ブロックについてのQP調整値を算出するために第1の技法を選択することと、
    前記バッファの前記フルネスが前記第1の下位フルネス閾値以下であると決定することに応答して、前記現在ブロックについての前記QP調整値を算出するために第2の技法を選択することと、
    前記選択された技法を介して、前記現在ブロックについての前記QP調整値を算出することと、
    前記QP調整値に基づいて、前記現在ブロックについての前記QP値を決定することと
    を備える方法。
  9. 前記バッファの前記フルネスが前記第1のフルネス閾値未満であり、かつ、前記第2のフルネス閾値よりも大きいと決定することに応答して、前記現在ブロックについての前記QP調整値を算出するためにデフォルト技法を選択することを更に備える、請求項8に記載の方法。
  10. 前記バッファの前記フルネスが複数の漸増する上位フルネス閾値以上であると決定することと、前記上位フルネス閾値はそれぞれ、第1のタイプの複数の技法に対応する、
    前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックに割り当てられたターゲットビット数との差分を決定することと
    を更に備え、
    前記ビット数の前記差分がゼロよりも大きいことに応答して、前記QP調整値は、前記第1の技法によって算出される、前記対応する上位フルネス閾値が漸増する順序で漸増する、
    請求項8に記載の方法。
  11. 前記ビット数の前記差分がゼロ以下であることに応答して、前記QP調整値は、前記第1の技法によって算出される、前記対応する上位フルネス閾値が漸増する順序で漸減する、請求項10に記載の方法。
  12. 前記バッファの前記フルネスが、複数の漸減する下位フルネス閾値以上であるかどうかを決定することと、前記下位フルネス閾値はそれぞれ、第2にタイプの複数の技法に対応する、
    前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックについてのターゲットビット数との差分を決定することと
    を更に備え、
    前記ビット数の前記差分がゼロよりも大きいことに応答して、前記QP調整値は、前記第2の技法によって算出される、前記対応する下位フルネス閾値が漸減する順序で漸増する、
    請求項8に記載の方法。
  13. 前記ビット数の前記差分がゼロ以下であることに応答して、前記QP調整値は、前記第2の技法によって算出される、前記対応する下位フルネス閾値が漸減する順序で漸減する、請求項12に記載の方法。
  14. 前記現在ブロックについての前記QP値を前記決定することは、
    前ブロックについてのQP値を受けることと、
    前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックについてのターゲットビット数との差分を決定することと、
    前記前ブロックをコード化するのに必要とされた前記ビット数と、前記現在ブロックについての前記ターゲットビット数との前記差分が0よりも大きいことに応答して、前記前ブロックについての前記QP値と前記QP調整値との合計に基づいて、前記現在ブロックについての前記QP値を決定することと、
    前記前ブロックをコード化するのに必要とされた前記ビット数と、前記現在ブロックについての前記ターゲットビット数との前記差分が0よりも大きくないことに応答して、前記前ブロックについての前記QP値と前記QP調整値との差分に基づいて、前記現在ブロックについての前記QP値を決定することと
    を更に備える、請求項8に記載の方法。
  15. 前記バッファの前記フルネスを、前記第1の上位フルネス閾値と最大バッファフルネスとの間の複数の上位範囲へと分類することと、
    前記バッファの前記フルネスを、前記第1の下位フルネス閾値と最小バッファフルネスとの間の複数の下位範囲へと分類することと、
    前記上位範囲又は前記下位範囲のどちらに前記バッファの前記フルネスが対応するかを決定することと
    を備え、
    前記現在ブロックについての前記QP調整値の前記算出は、前記決定された上位範囲又は下位範囲に更に基づく、
    請求項8に記載の方法。
  16. 前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックについてのターゲットビット数との差分を決定することと
    を更に備え、
    前記現在ブロックについての前記QP調整値の前記算出は、前記前ブロックをコード化するのに必要とされた前記ビット数と、前記現在ブロックについての前記ターゲットビット数との前記差分に更に基づく、
    請求項8に記載の方法。
  17. 量子化パラメータ(QP)値を決定するためのデバイスであって、
    前ブロック及び現在ブロックを含むビデオデータを記憶するように構成されたメモリと、
    前記メモリに結合された少なくとも1つのプロセッサ回路と
    を備え、前記少なくとも1つのプロセッサ回路は、
    前記現在ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、
    前記前ブロックが平坦領域から複雑領域への遷移を含むか又は平坦ブロックであるかどうかを決定することと、
    前記現在ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのうちの少なくとも1つであると決定することに応答して、前記現在ブロックについてのQP調整値を算出するためにデフォルト技法を選択することと、
    (i)前記現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないこと、かつ、(ii)前記前ブロックが平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのどちらか一方であることを決定することに応答して、前記現在ブロックについての前記QP調整値を算出するために代替技法を選択することと、
    前記選択された技法を介して、前記現在ブロックについての前記QP調整値を算出することと、
    前記QP調整値に基づいて、前記現在ブロックについての前記QP値を決定することと
    を行うように構成される、デバイス。
  18. 前記プロセッサ回路は、
    前記前ブロック、前記現在ブロック、及び前記次ブロックの各々についての複雑性値を決定すること
    を行うように更に構成され、
    前記現在ブロックが平坦領域から複雑領域への遷移を含むかどうかを前記決定することは、前記前ブロック、前記現在ブロック、及び前記次ブロックの前記複雑性値に基づく、
    請求項17に記載のデバイス。
  19. 前記プロセッサ回路は、(i)前記前ブロックの前記複雑性値が複雑性閾値未満であること、かつ、(ii)前記現在ブロックの前記複雑性値が前記複雑性閾値以上であることに基づいて、前記現在ブロックが平坦領域から複雑領域への遷移を含むかどうかを決定するように更に構成される、請求項18に記載のデバイス。
  20. 前記プロセッサ回路は、
    (i)前記現在ブロックが平坦領域から複雑領域への遷移を含まず平坦ブロックでもないこと、かつ、(ii)前記前ブロックが少なくとも平坦領域から複雑領域への遷移を含む又は平坦ブロックであるのうちの1つであることを決定することに応答して、前記代替技法を介して、規定数の連続したブロックについての複数のQP調整値を決定すること
    を行うように更に構成される、請求項17に記載のデバイス。
  21. 前記プロセッサ回路は、
    前記規定数の連続したブロックのうちの1つが平坦ブロックであるか又は複雑領域から平坦領域への遷移を含むかどうかを決定することと、
    前記規定数の連続したブロックのうちの前記1つが平坦ブロックである又は複雑領域から平坦領域への遷移を含むと決定することに応答して、前記代替技法を介した前記規定数の連続したブロックについての前記QP調整値の前記決定を終了することと
    を行うように更に構成される、請求項20に記載のデバイス。
  22. 前記プロセッサ回路は、
    前記前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックについてのターゲットビット数との差分を決定すること
    を行うように更に構成され、
    前記ビット数の差分が正の場合、前記代替技法を介して算出される前記QP調整値は、前記デフォルト技法を介して算出される前記QP調整値よりも大きい、
    請求項17に記載のデバイス。
  23. ビデオデータをコード化するための量子化パラメータ(QP)値を決定するためのデバイスであって、
    固定レートバッファ回路と、
    現在ブロックを含む前記ビデオデータを記憶するように構成されたメモリと、
    前記メモリに結合された少なくとも1つのプロセッサ回路と
    を備え、前記少なくとも1つのプロセッサ回路は、
    前記バッファ回路のフルネスが(i)第1の上位フルネス閾値以上であるか、(ii)第1の下位フルネス閾値以下であるかを決定することと、
    前記バッファの前記フルネスが前記第1の上位フルネス閾値以上であると決定することに応答して、現在ブロックについてのQP調整値を算出するために第1の技法を選択することと、
    前記バッファの前記フルネスが前記第1の下位フルネス閾値以下であると決定することに応答して、前記現在ブロックについての前記QP調整値を算出するために第2の技法を選択することと、
    前記選択された技法を介して、前記現在ブロックについての前記QP調整値を算出することと、
    前記QP調整値に基づいて、前記現在ブロックについての前記QP値を決定することと
    を行うように構成される、デバイス。
  24. 前記プロセッサ回路は、前記バッファの前記フルネスが前記第1のフルネス閾値未満であり、かつ、前記第2のフルネス閾値よりも大きいと決定することに応答して、前記現在ブロックについての前記QP調整値を算出するためにデフォルト技法を選択することを行うように更に構成される、請求項23に記載のデバイス。
  25. 前記プロセッサ回路は、
    前記バッファの前記フルネスが複数の漸増する上位フルネス閾値以上であると決定することと、前記上位フルネス閾値はそれぞれ、第1のタイプの複数の技法に対応する、
    前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックに割り当てられたターゲットビット数との差分を決定することと
    を行うように更に構成され、
    前記ビット数の前記差分がゼロよりも大きいことに応答して、前記プロセッサ回路は、前記第1の技法によって前記QP調整値を算出することを行うように更に構成される、前記対応する上位フルネス閾値が漸増する順序で漸増する、
    請求項23に記載のデバイス。
  26. 前記ビット数の前記差分がゼロ以下であることに応答して、前記プロセッサ回路は、前記第1の技法によって前記QP調整値を算出することを行うように更に構成される、前記対応する上位フルネス閾値が漸増する順序で漸減する、請求項25に記載のデバイス。
  27. 前記プロセッサ回路は、
    前記バッファの前記フルネスが、複数の漸減する下位フルネス閾値以上であるかどうかを決定することと、前記下位フルネス閾値はそれぞれ、第2にタイプの複数の技法に対応する、
    前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックについてのターゲットビット数との差分を決定することと
    を行うように更に構成され、
    前記ビット数の前記差分がゼロよりも大きいことに応答して、前記プロセッサ回路は、前記第2の技法によって前記QP調整値を算出することを行うように更に構成される、前記対応する下位フルネス閾値が漸減する順序で漸増する、
    請求項23に記載のデバイス。
  28. 前記ビット数の前記差分がゼロ以下であることに応答して、前記プロセッサ回路は、前記第2の技法によって前記QP調整値を算出することを行うように更に構成される、前記対応する下位フルネス閾値が漸減する順序で漸減する、請求項27に記載のデバイス。
  29. 前記プロセッサ回路は、
    前ブロックについてのQP値を受け取ることと、
    前ブロックをコード化するのに必要とされたビット数と、前記現在ブロックについてのターゲットビット数との差分を決定することと、
    前記前ブロックをコード化するのに必要とされた前記ビット数と、前記現在ブロックについての前記ターゲットビット数との前記差分が0よりも大きいことに応答して、前記前ブロックについての前記QP値と前記QP調整値との合計に基づいて、前記現在ブロックについての前記QP値を決定することと、
    前記前ブロックをコード化するのに必要とされた前記ビット数と、前記現在ブロックについての前記ターゲットビット数との前記差分が0よりも大きくないことに応答して、前記前ブロックについての前記QP値と前記QP調整値との差分に基づいて、前記現在ブロックについての前記QP値を決定することと
    を行うように更に構成される、請求項23に記載のデバイス。
  30. 前記プロセッサ回路は、
    前記バッファの前記フルネスを、前記第1の上位フルネス閾値と最大バッファフルネスとの間の複数の上位範囲へと分類することと、
    前記バッファの前記フルネスを、前記第1の下位フルネス閾値と最小バッファフルネスとの間の複数の下位範囲へと分類することと、
    前記上位範囲又は前記下位範囲のどちらに前記バッファの前記フルネスが対応するかを決定することと
    を行うように更に構成され、
    前記プロセッサ回路は、前記決定された上位範囲又は下位範囲に基づいて、前記現在ブロックについての前記QP調整値を算出するように更に構成される、
    請求項23に記載のデバイス。
JP2017553261A 2015-04-13 2016-04-07 ディスプレイストリーム圧縮(dsc)のための量子化パラメータ(qp)更新分類 Pending JP2018515015A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562146898P 2015-04-13 2015-04-13
US62/146,898 2015-04-13
US15/092,407 US10356428B2 (en) 2015-04-13 2016-04-06 Quantization parameter (QP) update classification for display stream compression (DSC)
US15/092,407 2016-04-06
PCT/US2016/026490 WO2016168060A1 (en) 2015-04-13 2016-04-07 Quantization parameter (qp) update classification for display stream compression (dsc)

Publications (1)

Publication Number Publication Date
JP2018515015A true JP2018515015A (ja) 2018-06-07

Family

ID=57112949

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017553261A Pending JP2018515015A (ja) 2015-04-13 2016-04-07 ディスプレイストリーム圧縮(dsc)のための量子化パラメータ(qp)更新分類

Country Status (7)

Country Link
US (1) US10356428B2 (ja)
EP (1) EP3284254A1 (ja)
JP (1) JP2018515015A (ja)
KR (1) KR20170137093A (ja)
CN (1) CN107431811A (ja)
TW (1) TW201703522A (ja)
WO (1) WO2016168060A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10244255B2 (en) 2015-04-13 2019-03-26 Qualcomm Incorporated Rate-constrained fallback mode for display stream compression
US9936203B2 (en) 2015-04-13 2018-04-03 Qualcomm Incorporated Complex region detection for display stream compression
US10284849B2 (en) 2015-04-13 2019-05-07 Qualcomm Incorporated Quantization parameter (QP) calculation for display stream compression (DSC) based on complexity measure
US10432952B2 (en) 2015-11-19 2019-10-01 Qualcomm Incorporated System and methods for fixed-point approximations in display stream compression (DSC)
US11546611B2 (en) * 2018-08-01 2023-01-03 Samsung Display Co., Ltd. Rate control for fixed rate foveated display compression

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4922273A (en) 1987-04-02 1990-05-01 Konica Corporation Compression method of halftone image data
JP2507215B2 (ja) 1991-09-02 1996-06-12 松下電器産業株式会社 画像符号化装置
JP3152765B2 (ja) 1991-10-31 2001-04-03 株式会社東芝 画像符号化装置
US5398078A (en) 1991-10-31 1995-03-14 Kabushiki Kaisha Toshiba Method of detecting a motion vector in an image coding apparatus
JPH06245199A (ja) 1993-02-19 1994-09-02 Sharp Corp 画像符号化装置
US5933451A (en) 1994-04-22 1999-08-03 Thomson Consumer Electronics, Inc. Complexity determining apparatus
US6160846A (en) 1995-10-25 2000-12-12 Sarnoff Corporation Apparatus and method for optimizing the rate control in a coding system
US7016413B2 (en) 1998-03-20 2006-03-21 International Business Machines Corporation Adaptively encoding a picture of contrasted complexity having normal video and noisy video portions
FI116819B (fi) 2000-01-21 2006-02-28 Nokia Corp Menetelmä kuvien lähettämiseksi ja kuvakooderi
DE10048735A1 (de) 2000-09-29 2002-04-11 Bosch Gmbh Robert Verfahren zur Codierung und Decodierung von Bildsequenzen sowie Einrichtungen hierzu
US8054880B2 (en) 2004-12-10 2011-11-08 Tut Systems, Inc. Parallel rate control for digital video encoder with multi-processor architecture and picture-based look-ahead window
KR100540655B1 (ko) 2003-01-23 2006-01-10 삼성전자주식회사 비디오 코딩시의 비트율 제어 방법 및 장치
KR100860147B1 (ko) * 2004-02-20 2008-09-24 닛본 덴끼 가부시끼가이샤 화상 부호화 방법, 그 장치 및 제어 프로그램을 기록한 컴퓨터 판독가능한 기록 매체
DE102004037584B4 (de) * 2004-08-03 2008-05-08 Bayerische Motoren Werke Ag Verfahren zum Betreiben einer Antriebseinheit
JP4074868B2 (ja) 2004-12-22 2008-04-16 株式会社東芝 画像符号化制御方法及びその装置
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
CN100448295C (zh) * 2005-05-27 2008-12-31 中国科学院自动化研究所 一种低复杂度的积分码率控制方法
US20060280242A1 (en) * 2005-06-13 2006-12-14 Nokia Corporation System and method for providing one-pass rate control for encoders
US8879857B2 (en) 2005-09-27 2014-11-04 Qualcomm Incorporated Redundant data encoding methods and device
KR101348365B1 (ko) 2006-08-02 2014-01-10 삼성전자주식회사 영상의 부호화 방법 및 장치, 복호화 방법 및 장치
US8787445B2 (en) 2007-03-15 2014-07-22 Nvidia Corporation Allocation of available bits to represent different portions of video frames captured in a sequence
KR101172430B1 (ko) * 2007-08-17 2012-08-08 삼성전자주식회사 비트율 제어 방법 및 그 장치
JP5427785B2 (ja) 2007-09-28 2014-02-26 ドルビー ラボラトリーズ ライセンシング コーポレイション ビデオ圧縮技法及びビデオ伝達技法
US8363719B2 (en) 2007-10-29 2013-01-29 Canon Kabushiki Kaisha Encoding apparatus, method of controlling thereof, and computer program
CN101184221A (zh) * 2007-12-06 2008-05-21 上海大学 基于视觉关注度的视频编码方法
JP5111128B2 (ja) 2008-01-22 2012-12-26 キヤノン株式会社 符号化装置、符号化装置の制御方法及びコンピュータプログラム
KR100952340B1 (ko) 2008-01-24 2010-04-09 에스케이 텔레콤주식회사 시공간적 복잡도를 이용한 부호화 모드 결정 방법 및 장치
KR101350723B1 (ko) 2008-06-16 2014-01-16 돌비 레버러토리즈 라이쎈싱 코오포레이션 비디오 코딩을 위한 슬라이스 종속성에 기초한 레이트 제어 모델 적응 방법
US9479786B2 (en) 2008-09-26 2016-10-25 Dolby Laboratories Licensing Corporation Complexity allocation for video and image coding applications
KR101539045B1 (ko) 2008-09-26 2015-07-23 에스케이 텔레콤주식회사 양자화 계수 결정 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
CN102210151A (zh) * 2008-11-07 2011-10-05 三菱电机株式会社 图像编码装置以及图像解码装置
US8897365B2 (en) 2008-11-19 2014-11-25 Nvidia Corporation Video rate control processor for a video encoding process
WO2010077333A1 (en) 2008-12-29 2010-07-08 Thomson Licensing Method and apparatus for rate control for compression of video frames
US9473792B2 (en) 2009-11-06 2016-10-18 Texas Instruments Incorporated Method and system to improve the performance of a video encoder
KR101282193B1 (ko) 2009-11-10 2013-07-04 한국전자통신연구원 칼만 필터와 fir 필터를 사용한 동영상 인코더에서의 비트율 제어 방법
KR20110060181A (ko) 2009-11-30 2011-06-08 한국전자통신연구원 무손실/준무손실 영상 압축 장치 및 방법
TWI587685B (zh) 2010-01-08 2017-06-11 諾基亞科技公司 用於視訊處理之裝置、方法及電腦程式
US20120026394A1 (en) 2010-07-30 2012-02-02 Emi Maruyama Video Decoder, Decoding Method, and Video Encoder
WO2012048052A1 (en) 2010-10-05 2012-04-12 General Instrument Corporation Method and apparatus for feature based video coding
EP4250732B1 (en) 2011-01-07 2024-03-20 Nokia Technologies Oy Motion prediction in video coding
JP2012191500A (ja) * 2011-03-11 2012-10-04 Mitsubishi Electric Corp 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法
CN103828369B (zh) 2011-06-10 2018-09-07 茨特里克斯系统公司 质量感知视频优化中的宏块级自适应量化
EP2795899A4 (en) 2011-12-23 2016-01-27 Intel Corp CONTENTSADAPTIVE HIGHLY PRECISE MACROBLOCK RATES CONTROL
JP5988577B2 (ja) 2011-12-28 2016-09-07 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム
WO2013145642A1 (ja) 2012-03-28 2013-10-03 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法、画像符号化プログラム、送信装置、送信方法及び送信プログラム、並びに画像復号装置、画像復号方法、画像復号プログラム、受信装置、受信方法及び受信プログラム
US9299166B2 (en) 2012-12-13 2016-03-29 Qualcomm Incorporated Image compression method and apparatus for bandwidth saving
CN103179405B (zh) * 2013-03-26 2016-02-24 天津大学 一种基于多级感兴趣区域的多视点视频编码方法
US9538190B2 (en) 2013-04-08 2017-01-03 Qualcomm Incorporated Intra rate control for video encoding based on sum of absolute transformed difference
US9565440B2 (en) 2013-06-25 2017-02-07 Vixs Systems Inc. Quantization parameter adjustment based on sum of variance and estimated picture encoding cost
GB2523736B (en) 2014-02-19 2020-03-25 Advanced Risc Mach Ltd Rate control in video encoding
US9661329B2 (en) 2014-04-30 2017-05-23 Intel Corporation Constant quality video coding
US10244255B2 (en) 2015-04-13 2019-03-26 Qualcomm Incorporated Rate-constrained fallback mode for display stream compression
US10284849B2 (en) 2015-04-13 2019-05-07 Qualcomm Incorporated Quantization parameter (QP) calculation for display stream compression (DSC) based on complexity measure
US9936203B2 (en) 2015-04-13 2018-04-03 Qualcomm Incorporated Complex region detection for display stream compression

Also Published As

Publication number Publication date
WO2016168060A1 (en) 2016-10-20
US10356428B2 (en) 2019-07-16
CN107431811A (zh) 2017-12-01
US20160301939A1 (en) 2016-10-13
KR20170137093A (ko) 2017-12-12
EP3284254A1 (en) 2018-02-21
TW201703522A (zh) 2017-01-16

Similar Documents

Publication Publication Date Title
US10743032B2 (en) Substream multiplexing for display stream compression
EP3284253B1 (en) Rate-constrained fallback mode for display stream compression
US10284849B2 (en) Quantization parameter (QP) calculation for display stream compression (DSC) based on complexity measure
JP6921873B2 (ja) ディスプレイストリーム圧縮のためのサブストリーム多重化
JP6449329B2 (ja) ディスプレイストリーム圧縮(dsc)において量子化パラメータ(qp)を選択するためのシステムおよび方法
JP6453360B2 (ja) ディスプレイストリーム圧縮(dsc)のためのラグランジュパラメータ計算のためのシステムおよび方法
CN108702513B (zh) 用于在显示流压缩中量化参数的适应性计算的设备及方法
TWI634778B (zh) 用於顯示串流壓縮之複合區域偵測
CN111726628B (zh) 用于在显示流压缩(dsc)中固定点近似的系统和方法
US10356428B2 (en) Quantization parameter (QP) update classification for display stream compression (DSC)
JP2019507530A (ja) ディスプレイストリーム圧縮(dsc)におけるひずみを計算するためのシステムおよび方法
KR102112942B1 (ko) 디스플레이 스트림 압축에 대한 지각적 양자화 파라미터 (qp) 가중을 위한 장치 및 방법들