JP6772275B2 - ディスプレイストリーム圧縮(dsc)におけるひずみを計算するためのシステムおよび方法 - Google Patents

ディスプレイストリーム圧縮(dsc)におけるひずみを計算するためのシステムおよび方法 Download PDF

Info

Publication number
JP6772275B2
JP6772275B2 JP2018535832A JP2018535832A JP6772275B2 JP 6772275 B2 JP6772275 B2 JP 6772275B2 JP 2018535832 A JP2018535832 A JP 2018535832A JP 2018535832 A JP2018535832 A JP 2018535832A JP 6772275 B2 JP6772275 B2 JP 6772275B2
Authority
JP
Japan
Prior art keywords
color space
block
video
color
coding
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
JP2018535832A
Other languages
English (en)
Other versions
JP2019507530A (ja
JP2019507530A5 (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 JP2019507530A publication Critical patent/JP2019507530A/ja
Publication of JP2019507530A5 publication Critical patent/JP2019507530A5/ja
Application granted granted Critical
Publication of JP6772275B2 publication Critical patent/JP6772275B2/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/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/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/103Selection of coding mode or of prediction 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/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/117Filters, e.g. for pre-processing or post-processing
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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
    • 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/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

[0001]本開示は、ビデオコーディングおよび圧縮の分野に関し、詳細には、ディスプレイストリーム圧縮(DSC:display stream compression)など、ディスプレイリンクを介した送信のためのビデオ圧縮に関する。
[0002]デジタルビデオ機能は、デジタルテレビジョン、携帯情報端末(PDA)、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲にわたるディスプレイに組み込まれ得る。適切なソースデバイスにディスプレイを接続するために、ディスプレイリンクが使用される。ディスプレイリンクの帯域幅要件はディスプレイの解像度に比例し、したがって、高解像度ディスプレイは、大きい帯域幅のディスプレイリンクを必要とする。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートするための帯域幅を有しない。高解像度ディスプレイにデジタルビデオを与えるためにより低い帯域幅のディスプレイリンクが使用され得るように帯域幅要件を低減するために、ビデオ圧縮が使用され得る。
[0003]他のものが、ピクセルデータに対して画像圧縮を利用することを試みた。しかしながら、そのような方式は、時々視覚的ロスレスでないか、または従来のディスプレイデバイスにおいて実装することが困難で費用がかかることがある。
[0004]ビデオエレクトロニクス規格協会(VESA:Video Electronics Standards Association)は、ディスプレイリンクビデオ圧縮のための規格として、ディスプレイストリーム圧縮(DSC)を開発した。DSCなど、ディスプレイリンクビデオ圧縮技法は、特に、視覚的ロスレスであるピクチャ品質(すなわち、圧縮がアクティブであることをユーザがわからないような品質のレベルを有するピクチャ)を与えるべきである。ディスプレイリンクビデオ圧縮技法はまた、従来のハードウェアを用いてリアルタイムに実装することが容易で費用がかからない方式を与えるべきである。
[0005]本開示のシステム、方法、およびデバイスは、それぞれいくつかの発明的態様を有し、それらのうちの単一の態様が、本明細書で開示される望ましい属性を単独で担当するとは限らない。
[0006]1つの革新は、ビデオデータをコーディングするための装置を含む。本装置は、複数のコーディングモードに関する情報とビデオデータとを記憶するためのメモリを含み得、ビデオデータが複数のビデオブロックを備える。本装置はまた、メモリに動作可能に結合されたハードウェアプロセッサを含み得る。プロセッサは、複数のビデオブロックのうちのビデオブロック(a video block)について複数の色空間のうちの1つを選択することと、選択された色空間中にない、複数のビデオブロックのうちのあらゆる(every)ビデオブロックに色変換を適用し、複数のビデオブロックのうちのビデオブロックのすべて(all)が、選択された色空間中にあることを検証することと、選択された色空間に基づいて、複数のビデオブロックの各々のひずみ値を決定することとを行うように構成され得る。
[0007]いくつかの実施形態では、本装置は、複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、初期色空間が、色変換の適用より前の各ビデオブロックの色空間である、複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合するかを決定することと、符号化されたブロックを与えるために、適合する(compatible)コーディングモードを用いて、複数のビデオブロックのうちのビデオブロックを符号化することとを行うように構成され得る。
[0008]いくつかの実施形態では、本装置は、複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、初期色空間が、色変換の適用より前の各ビデオブロックの色空間である、適合する色ブロックを与えるために、初期色空間に色変換を適用することと、符号化されたブロックを与えるために、初期色空間に適合しないコーディングモードを用いて、適合する色ブロックを符号化することとを行うように構成され得る。
[009]いくつかの実施形態では、本装置は、ビデオブロックと符号化されたブロックとから残差ブロックを計算するように構成され得、残差ブロックが、ビデオブロックと符号化されたブロックとの間の差分を示す。
[0010]いくつかの実施形態では、ひずみ値を決定することは、残差ブロックのひずみ値を決定することを備える。
[0011]いくつかの実施形態では、選択された色空間はルーマクロマ色空間を備え、ここにおいて、ひずみ値を決定することは、ルーマクロマ色空間の各クロマ成分を正規化することを備える。
[0012]いくつかの実施形態では、ビデオブロックはある数の色平面(a number of color planes)を備え、ここにおいて、ビデオブロックのひずみ値を決定することは、上記数の色平面(the number of color planes)のうちの各色平面の絶対差分和と、上記数の色平面のうちの各色平面の2乗誤差和とのうちの少なくとも1つを備える。
[0013]いくつかの実施形態では、色変換は変換行列に基づき、変換行列は、選択された色空間の色平面の数を示す数の列(a number of columns)によって定義され、ここにおいて、ハードウェアプロセッサは、上記数の列のうちの列のユークリッドノルムに基づいて重み値を決定するようにさらに構成される。
[0014]いくつかの実施形態では、変換されたビデオブロックのひずみ値は、上記数の色平面のうちの各色平面の絶対差分和と、ここにおいて、各色平面が、ある数の重み値のうちの対応する重み値を乗算される、上記数の色平面のうちの各色平面の2乗誤差和と、ここにおいて、各色平面が、上記数の重みのうちの対応する重みを乗算される、のうちの少なくとも1つに基づく。
[0015]いくつかの実施形態では、選択された色空間は、ルーマクロマ色空間とRGB色空間とのうちの少なくとも1つ中にある。
[0016]いくつかの実施形態では、ひずみ値を決定することは、(i)複数のビデオブロックの各々のひずみ値、(ii)ラムダ値、および(iii)ビデオブロックを通信するためのビットストリームレートに基づいて、複数のコーディングモードのうちのコーディングモード(a coding mode)を決定することをさらに備える。
[0017]いくつかの実施形態では、複数のビデオブロックのうちの各ビデオブロックは、複数のコーディングモードのうちのあらゆるコーディングモードを使用して符号化された単一のビデオブロックを示す。
[0018]本開示で説明される態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。 [0019]本開示で説明される態様による技法を実行し得る別の例示的なビデオ符号化および復号システムを示すブロック図。 [0020]本開示で説明される態様による技法を実装し得るビデオエンコーダの一例を示すブロック図。 [0021]ひずみ回路の例示的な実装形態を示すブロック図。 [0022]ひずみ回路の代替実装形態を示すブロック図。 [0023]本開示で説明される態様による技法を実装し得るビデオデコーダの一例を示すブロック図。 [0024]符号化モードを決定するための例示的な方法を示す流れ図。
[0025]固定レートおよび視覚的ロスレス圧縮を与えるDSCコーダが本明細書で開示される。コーダは、(たとえば、ブロックサイズがP×Qである)ブロックまたはスライスベースの手法に関して設計され、多数の(a multitude of)コーディングモードのうちの1つまたは複数を用いて実装され得る。たとえば、各ブロックのための利用可能なコーディングオプションは、変換モード(たとえば、DCT、アダマール)、ブロック予測モード、差分パルスコード変調(DPCM:differential pulse-code modulation)モード、パターンモード、中点予測(MPP:mid-point prediction)モード、および/または中点プレディケーションフォールバック(MPPF:mid-point predication fall back)モードを含む。いくつかのコーディングモードが、異なるタイプのコンテンツまたは画像を圧縮するためにコーダにおいて使用され得る。たとえば、テキスト画像はパターンモードを介して圧縮され得、自然画像は変換モードを介してキャプチャされ得る。
[0026]いくつかの実施形態は、DSC規格のコンテキストにおいて本明細書で説明されるが、本明細書で開示されるシステムおよび方法が任意の好適なビデオコーディング規格に適用可能であり得ることを、当業者は諒解されよう。たとえば、本明細書で開示される実施形態は、以下の規格、すなわち、国際電気通信連合(ITU)電気通信標準化部門(ITU−T)H.261、国際標準化機構/国際電気標準会議(ISO/IEC)ムービングピクチャエキスパートグループ1(MPEG−1)Visual、ITU−T H.262またはISO/IEC MPEG−2 Visual、ITU−T H.263、ISO/IEC MPEG−4 Visual、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264、高効率ビデオコーディング(HEVC)のうちの1つまたは複数、およびそのような規格に対する任意の拡張に適用可能であり得る。また、本開示で説明される技法は、将来開発される規格の一部になり得る。言い換えれば、本開示で説明される技法は、前に開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および次のビデオコーディング規格に適用可能であり得る。
[0027]いくつかの態様によるDSCコーダでは、各モードのレートひずみ(「RD:rate distortion」)性能は、様々な色空間、たとえば、YCoCgまたはYCbCrなどの任意のルーマクロマ表現において、あるいはRGBまたはCMYK色空間中で評価され得る。
[0028]いくつかの態様によれば、本開示で説明される技法は、たとえば、各モードが異なる色空間中で評価される場合の(where)、コーディングモードのひずみを計算するために、様々な方法を与えることができる。たとえば、すべてのコーディングモードのひずみは、たとえば、適切な色変換を適用することによって、同じ色空間中で計算され得る。色変換は、残差ブロックに適用され得るか、ここで、残差ブロックは、元のビデオブロックと(本明細書では符号化されたブロックまたはエラーブロックとも呼ばれる)再構成されたビデオブロックとの間の差分を表し、または色変換は、残差を計算する前の、元のブロックと再構成されたブロックの両方に適用され得る。
ビデオコーディング規格
[0029]ビデオ画像、TV画像、静止画像、あるいはビデオレコーダまたはコンピュータによって生成された画像など、デジタル画像は、水平ラインおよび垂直ラインで構成されたピクセルまたはサンプルを含み得る。単一の画像中のピクセルの数は一般に数万個である。各ピクセルは、一般に、ルミナンス情報とクロミナンス情報とを含んでいる。圧縮がなければ、画像エンコーダから画像デコーダに搬送されるべき情報の甚だしい量は、リアルタイム画像送信を実行不可能にするであろう。送信されるべき情報の量を低減するために、JPEG、MPEGおよびH.263規格など、いくつかの異なる圧縮方法が開発された。
[0030]ビデオコーディング規格は、ITU−T H.261と、ISO/IEC MPEG−1 Visualと、ITU−T H.262またはISO/IEC MPEG−2 Visualと、ITU−T H.263と、ISO/IEC MPEG−4 Visualと、(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264と、そのような規格の拡張を含むHEVCとを含む。
[0031]さらに、VESAによって、あるビデオコーディング規格、すなわち、DSCが開発された。DSC規格は、ディスプレイリンクを介した送信のためにビデオを圧縮することができるビデオ圧縮規格である。ディスプレイの解像度が増加するにつれて、ディスプレイを駆動するために必要とされるビデオデータの帯域幅は、対応して増加する。いくつかのディスプレイリンクは、そのような解像度についてディスプレイにビデオデータのすべてを送信するための帯域幅を有しないことがある。したがって、DSC規格は、ディスプレイリンクを介した相互運用可能な、視覚的ロスレス圧縮のための圧縮規格を規定する。
[0032]DSC規格は、H.264およびHEVCなど、他のビデオコーディング規格とは異なる。DSCは、フレーム内圧縮を含むが、フレーム間圧縮を含まず、これは、ビデオデータをコーディングする際にDSC規格によって時間的情報が使用されないことがあることを意味する。対照的に、他のビデオコーディング規格は、それらのビデオコーディング技法においてフレーム間圧縮を採用し得る。4:1のまたはより高い圧縮比を与えるために、たとえば、アドバンストDSCが開発されている。4:1のまたはより高い圧縮比は、モバイルデバイスのために、たとえば、4Kなどの高解像度ディスプレイのために使用され得る。
DSCにおけるスライス
[0033]上述のように、スライスは、概して、画像またはフレーム中の領域の残りからの情報を使用することなしに独立して復号され得る、画像またはフレーム中の空間的に別個の領域を指す。各画像またはビデオフレームは単一のスライス中で符号化され得るか、あるいは各画像またはビデオフレームはいくつかのスライス中で符号化され得る。DSCでは、各スライスを符号化するために割り振られるターゲットビットは、実質的に一定であり得る。これは部分スライスについて異なり得、これは、画像高さがスライス高さで割り切れない場合に起こることがある。たとえば、108のスライス高さをもつサイズ1280×720の画像は、高さ108の6つのスライスと高さ72(=720−(6*108))の1つの部分スライスとを有する。
[0034]アドバンストDSCスライス寸法は、変数またはパラメータスライス幅×スライス高さを使用して指定され得、ここで、スライス幅およびスライス高さは構成可能である。スライス高さは所望の値、たとえば、16、32、108などに構成され得る。スライス幅は、ライン中のスライスの数を決定する、パラメータNを使用して構成され得、各スライス中のラインごとのピクセルの数が等しい、たとえば、スライス幅=画像幅/Nであると仮定される。画像幅は画像の幅を表す変数またはパラメータであり得る。
ビデオコーディングシステム
[0035]添付の図面を参照しながら、新規のシステム、装置、および方法の様々な態様が以下でより十分に説明される。ただし、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるように与えられる。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせられるにせよ、本明細書で開示される新規のシステム、装置、および方法のいかなる態様をもカバーするものであることを、当業者は諒解されたい。たとえば、本明細書に記載される態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本開示の範囲は、本明細書に記載される本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。本明細書で開示されるいかなる態様も請求項の1つまたは複数の要素によって実施され得ることを理解されたい。
[0036]本明細書では特定の態様が説明されるが、これらの態様の多くの変形および置換が本開示の範囲内に入る。好適な態様のいくつかの利益および利点が説明されるが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、異なるワイヤレス技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能であるものとし、それらのうちのいくつかが、例として、図において、および好適な態様の以下の説明において示される。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
[0037]添付の図面は例を示す。添付の図面中の参照番号によって示される要素は、以下の説明における同様の参照番号によって示される要素に対応する。本開示では、序数語(たとえば、「第1の」、「第2の」、「第3の」など)で始まる名前を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは同様のタイプの異なる要素を指すために使用されるにすぎない。
[0038]図1Aは、本開示で説明される態様による技法を利用し得る例示的なビデオコーディングシステム10を示すブロック図である。本明細書で使用され説明される「ビデオコーダ」または「コーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化とビデオ復号とを総称的に指すことがある。ビデオエンコーダおよびビデオデコーダに加えて、本出願で説明される態様は、トランスコーダ(たとえば、ビットストリームを復号し、別のビットストリームを再符号化することができるデバイス)およびミドルボックス(たとえば、ビットストリームを変更、変換、および/または場合によっては操作することができるデバイス)など、他の関係するデバイスに拡張され得る。
[0039]図1Aに示されているように、ビデオコーディングシステム10は、宛先デバイス14によって後で(at a later time)復号されるべき、ソースビデオデータ13と符号化ビデオデータ16とを生成するソースデバイス12を含む。図1Aの例では、ソースデバイス12および宛先デバイス14は、別個のデバイスを構成する。ただし、ソースデバイス12および宛先デバイス14は、図1Bの例に示されているように、同じデバイス上にあるかまたはそれの一部であり得ることに留意されたい。
[0040]もう一度図1Aを参照すると、ソースデバイス12および宛先デバイス14は、それぞれ、デスクトップコンピュータ、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータ、ビデオストリーミングデバイス、アイウェアおよび/またはウェアラブルコンピュータなど、エンティティ(たとえば、人間、動物、および/または別の被制御デバイス)によって(に)装着可能な(または着脱自在に取付け可能な)ビデオデバイス、エンティティ内で消費、摂取、または配置され得るデバイスまたは装置などを含む、広範囲にわたるデバイスのいずれかを備え得る。様々な実施形態では、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。
[0041]宛先デバイス14は、復号されるべき符号化ビデオデータ16をリンク17を介して受信し得る。リンク17は、ソースデバイス12から宛先デバイス14に符号化ビデオデータ16を移動することが可能な任意のタイプの媒体またはデバイスを備え得る。図1Aの例では、リンク17は、ソースデバイス12が符号化ビデオデータ16をリアルタイムで宛先デバイス14に送信することを可能にするための通信媒体を備え得る。符号化ビデオデータ16は、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を可能にするために有用であり得る任意の他の機器を含み得る。
[0042]図1Aの例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。いくつかの場合には、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、図1Bの例に示されているように、いわゆる「カメラフォン」または「ビデオフォン」を形成し得る。ビデオソース18は、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成ビデオを、ソースビデオデータ13のビットストリーム(a source video data 13 bitstream)としてビデオエンコーダ20に出力し得る。ただし、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。たとえば、ビデオソース18は、ビデオソース18とビデオエンコーダ20との間の接続を介して、ソースビデオデータ13を生成し、出力し得る。接続は、任意の好適なワイヤード接続(たとえば、ユニバーサルシリアルバス(USB)、FireWire(登録商標)、Thunderbolt、Light Peak、デジタルビデオインターフェース(DVI)、高精細度マルチメディアインターフェース(HDMI(登録商標))、ビデオグラフィックスアレイ(VGA)など)を含み得る。接続は、任意の好適なワイヤレス接続(たとえば、Bluetooth(登録商標)、Wi−Fi(登録商標)、3G、4G、LTE(登録商標)、LTEアドバンスト、5Gなど)をも含み得る。
[0043]ソースビデオデータ13は、ビデオエンコーダ20によって受信および符号化され得る。符号化ビデオデータ16は、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に送信され得る。符号化ビデオデータ16は、さらに(または代替として)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのためにストレージデバイス(図示せず)上に記憶され得る。図1Aおよび図1Bに示されているビデオエンコーダ20は、図2示されているビデオエンコーダ20、または本明細書で説明される他のビデオエンコーダを備え得る。
[0044]図1Aの例では、宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。いくつかの場合には、入力インターフェース28は受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク17を介しておよび/またはストレージデバイスから符号化ビデオデータ16を受信し得る。リンク17を介して通信された、またはストレージデバイス上に与えられた符号化ビデオデータ16は、ビデオデータ16を復号する際に、ビデオデコーダ30などのビデオデコーダが使用するための、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信された、記憶媒体上に記憶された、またはファイルサーバ記憶された符号化ビデオデータ16に含まれ得る。図1Aおよび図1Bに示されているビデオデコーダ30は、図5に示されているビデオデコーダ30、または本明細書で説明される他のビデオデコーダを備え得る。
[0045]ディスプレイデバイス32は、宛先デバイス14と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
[0046]関係する態様では、図1Bは例示的なビデオコーディングシステム10’を示し、ここにおいて、ソースデバイス12および宛先デバイス14はデバイス11上にあるかまたはそれの一部である。デバイス11は、「スマート」フォンなどの電話ハンドセットであり得る。デバイス11は、ソースデバイス12および宛先デバイス14と動作可能に通信している(随意に存在する)プロセッサ/コントローラデバイス13を含み得る。図1Bのビデオコーディングシステム10’およびそれの構成要素は、場合によっては図1Aのビデオコーディングシステム10およびそれの構成要素と同様である。
[0047]ビデオエンコーダ20およびビデオデコーダ30は、DSCなど、ビデオ圧縮規格に従って動作し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part10,AVCと呼ばれるITU−T H.264規格、HEVCなど、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としては、MPEG−2およびITU−T H.263がある。
[0048]図1Aおよび図1Bの例には示されていないが、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0049]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために1つまたは複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダの一部として統合され得る。
ビデオコーディングプロセス
[0050]上記で手短に述べられたように、ビデオエンコーダ20はソースビデオデータ13を符号化する。ソースビデオデータ13は1つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャはビデオ「フレーム」と呼ばれることがある。ビデオエンコーダ20がソースビデオデータ13を符号化するとき、ビデオエンコーダ20はビットストリームを生成し得る。ビットストリームは、ビデオデータ16のコード化表現を形成するビットのシーケンスを含み得る。ビットストリームは、コード化ピクチャと関連データとを含み得る。コード化ピクチャはピクチャのコード化表現である。
[0051]ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータ中の各ピクチャに対して符号化演算を実行し得る。ビデオエンコーダ20がピクチャに対して符号化演算を実行するとき、ビデオエンコーダ20は、一連のコード化ピクチャと関連データとを生成し得る。関連データは、量子化パラメータ(QP)などのコーディングパラメータのセットを含み得る。量子化は信号にロスをもたらし得、ロスの量は、レートコントローラ120によって決定されたQPによって制御され得る。レートコントローラ120は図2でより詳細に説明される。各QPについての量子化ステップサイズを記憶するのではなく、スケーリング行列がQPの関数として指定され得る。各QPについての量子化ステップサイズはスケーリング行列から導出され得、導出された値は必ずしも2のべき乗であるとは限らず、すなわち、導出された値は2のべき乗でないこともある。
[0052]コード化ピクチャを生成するために、ビデオエンコーダ20は、ピクチャを等しいサイズのビデオブロックに区分し得る。ビデオブロックはサンプルの2次元アレイであり得る。コーディングパラメータは、ビデオデータのあらゆるブロックについてコーディングオプション(たとえば、コーディングモード)を定義し得る。コーディングオプションは、所望のレートひずみ性能を達成するために選択され得る。
[0053]いくつかの例では、ビデオエンコーダ20はピクチャを複数のスライスに区分し得る。スライスの各々は、画像またはフレーム中の領域の残りからの情報なしに独立して復号され得る、画像(たとえば、フレーム)中の空間的に別個の領域を含み得る。各画像またはビデオフレームは単一のスライス中で符号化され得るか、あるいは各画像またはビデオフレームはいくつかのスライス中で符号化され得る。DSCでは、各スライスを符号化するために割り振られるターゲットビットは、実質的に一定であり得る。ピクチャに対して符号化演算を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスに対して符号化演算を実行し得る。ビデオエンコーダ20がスライスに対して符号化演算を実行するとき、ビデオエンコーダ20は、スライスに関連付けられた符号化データを生成し得る。スライスに関連付けられた符号化データは「コード化スライス」と呼ばれることがある。
DSCビデオエンコーダ
[0054]図2は、本開示で説明する態様による技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明される技法は、ビデオエンコーダ20の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ(図示せず)が、本開示で説明される技法の一部または全部を実行するように構成され得る。
[0055]説明の目的で、本開示は、DSCコーディングのコンテキストにおいてビデオエンコーダ20について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
[0056]図2の例では、ビデオエンコーダ20は複数の機能構成要素を含む。ビデオエンコーダ20の機能構成要素は、色空間コンバータ105と、バッファ110と、平坦度検出器115と、レートコントローラ120と、予測器、量子化器、および再構成器(PQR:predictor, quantizer, and reconstructor)構成要素125と、ひずみ回路188と、ラインバッファ130と、インデックス色履歴135と、エントロピーエンコーダ140と、サブストリームマルチプレクサ145と、レートバッファ150とを含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能構成要素を含み得る。
[0057]色空間105コンバータは、ソースビデオデータ13の入力色空間を特定のコーディング実装形態において使用される色空間にコンバートし得る。たとえば、ソースビデオデータ13の色空間は、赤、緑、および青(RGB)色空間中にあり得、コーディングは、ルミナンスY、クロミナンスグリーンCg、およびクロミナンスオレンジCo(YCgCo)色空間中で実装され得る。色空間コンバージョンは、ビデオデータへのシフトおよび追加を含む(1つまたは複数の)方法によって実行され得る。他の色空間中の入力ビデオデータが処理され得、他の色空間へのコンバージョンも実行され得ることに留意されたい。いくつかの実装形態では、ビデオデータは、入力ビデオデータの色空間がすでに、特定のコーディングモードについての正しいフォーマットでのものである場合、色空間コンバータ105をバイパスし得る。たとえば、入力色空間がRGBである場合、ビデオデータは、RGBまたはルーマクロマ表現のいずれかにおいてビデオデータを符号化し得る、中点予測モードによってコーディングするために、色空間コンバータ105をバイパスし得る。
[0058]関係する態様では、ビデオエンコーダ20は、バッファ110、ラインバッファ130、および/またはレートバッファ150を含み得る。たとえば、バッファ110は、色空間コンバートされたビデオデータを、ビデオエンコーダ20の他の部分によるそれの使用に先立って保持し得る。別の例では、色空間コンバートされたデータはより多くのビットを必要とし得るので、ビデオデータはRGB色空間中で記憶され得、色空間コンバージョンが必要に応じて実行され得る。
[0059]レートバッファ150はビデオエンコーダ20においてレート制御機構の一部として機能し得、このことは、レートコントローラ120に関して以下でより詳細に説明される。各ブロックを符号化することに費やされるビットは、大いに、実質的に、ブロックの性質に基づいて変動することがある。レートバッファ150は、圧縮されたビデオにおけるレート変動を平滑化することができる。いくつかの実施形態では、ビットが固定ビットレート(CBR)でバッファから取り出されるCBRバッファモデルが採用される。CBRバッファモデルでは、ビデオエンコーダ20がビットストリームにあまりに多くのビットを加えた場合、レートバッファ150はオーバーフローし得る。一方、ビデオエンコーダ20は、レートバッファ150のアンダーフローを防ぐために、十分なビットを加えなければならない。
[0060]ビデオデコーダ側では、ビットは、固定ビットレートでビデオデコーダ30のレートバッファ155(以下でさらに詳細に説明される図5を参照)に加えられ得、ビデオデコーダ30は、各ブロックについて可変数のビットを削除し得る。適切な復号を保証するために、ビデオデコーダ30のレートバッファ155は、圧縮されたビットストリームの復号中に「アンダーフロー」または「オーバーフロー」すべきでない。
[0061]いくつかの実施形態では、バッファフルネス(BF)は、バッファに現在あるビットの数を表す値BufferCurrentSizeと、レートバッファ150のサイズ、すなわち、任意の時点においてレートバッファ150に記憶され得るビットの最大数を表すBufferMaxSizeとに基づいて定義され得る。以下の式1は、BFを計算するために使用され得る。
[0062]平坦度検出器115は、ビデオデータ中の複雑な(すなわち、平坦でない)エリアからビデオデータ中の平坦な(すなわち、単純なまたは均一な)エリアへの変化を検出することができる。「複雑な」および「平坦な」という用語は、本明細書では、概して、ビデオエンコーダ20がビデオデータのそれぞれの領域を符号化することの困難さを指すために使用される。したがって、本明細書で使用される複雑なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ20が符号化することが複雑であることを表し、たとえば、テクスチャードビデオデータ、高い空間周波数、および/または符号化することが複雑である他の特徴を含み得る。本明細書で使用される平坦なという用語は、概して、ビデオデータの領域が、ビデオエンコーダ20がエンコーダすることが単純であることを表し、たとえば、ビデオデータ中の滑らかな勾配、低い空間周波数、および/または符号化することが単純である他の特徴を含み得る。複雑な領域と平坦な領域との間の遷移が、符号化ビデオデータ16中の量子化アーティファクトを低減するために、ビデオエンコーダ20によって使用され得る。詳細には、レートコントローラ120およびPQR構成要素125は、複雑な領域から平坦な領域への(from complex to flat regions)遷移が識別されたとき、そのような量子化アーティファクトを低減することができる。
[0063]レートコントローラ120は、コーディングパラメータのセット、たとえば、QPを決定する。QPは、レートバッファ150がオーバーフローまたはアンダーフローしないことを保証するターゲットビットレートについてピクチャ品質を最大にするために、レートバッファ150のバッファフルネスとビデオデータの画像アクティビティとに基づいて、レートコントローラ120によって調整され得る。レートコントローラ120はまた、最適レートひずみ性能を達成するために、ビデオデータの各ブロックについて特定のコーディングオプション(たとえば、特定のモード)を選択する。レートコントローラ120は、再構成された画像のひずみを、それがビットレート制約を満たすように、すなわち、全体的実コーディングレートがターゲットビットレート内に収まるように最小限に抑える。したがって、レートコントローラ120の1つの目的は、レートひずみ性能を最大にしながらレートに対する瞬間的および平均的な制約を満たすように、(1つまたは複数の)QP、(1つまたは複数の)コーディングモードなど、コーディングパラメータのセットを決定することである。PQR構成要素125は、レート制御技法に基づいて複数の候補コーディングモードの中から各ブロックについてのコーディングモードを選択し得る。レート制御技法は、バッファモデルを利用することを伴い得、コーデックの設計考慮事項は、レートバッファ150がアンダーフロー(たとえば、バッファ中で0ビットよりも少ない)またはオーバーフロー(たとえば、バッファサイズが、設定/定義された最大サイズを超えて増加した)の状態にないことを確実にすることを含み得る。一実施形態では、レートコントローラ120は、レートとひずみとの間のトレードオフ、たとえば、コストD+λ・Rで表される低コストコーディングオプションに基づいて各ブロックについて最も良好なコーディングモードを選択するように設計され得る。ここで、パラメータRは、現在ブロックについてエンコーダ20とデコーダ30との間で送信される総ビット数であり得る、現在ブロックのビットレートを指し、パラメータDは、元のブロックと再構成されたブロック(または符号化されたブロック)との間の差分であり得る、現在ブロックのひずみを指す。パラメータDは、たとえば、元のブロックと再構成されたブロックとの間の絶対差分和(SAD)(たとえば、式4、6、8、10、および12)、2乗誤差和(たとえば、式5、7、9、11、および13)など、いくつかの(a number of)異なる方法で算出され得る。パラメータλ、またはラムダ値は、パラメータRとパラメータDとの間のトレードオフであり得る、ラグランジュパラメータである。ラグランジュパラメータλは様々な方法で計算され得、λ計算に対する選択された手法は、コンテキストおよび適用例に応じて変化し得ることに留意されたい。たとえば、ラグランジュパラメータλは、レートバッファ(150、155)状態(すなわち、バッファフルネス)、ブロックの第1のラインのまたは第1でないラインの状況など、いくつかのファクタに基づいて算出され得る。スライス状況の第1でないラインの場合でさえ、空間予測モードが、多数のタイプの画像コンテンツについて選定され得る。
[0064]PQR構成要素125は、ビデオエンコーダ20の少なくとも3つの符号化演算を実行し得る。PQR構成要素125は、いくつかの異なるモードで予測を実行し得る。1つの例示的なプレディケーションモードは、メディアン適応予測の変更バージョンである。メディアン適応予測はロスレスJPEG規格(JPEG−LS)によって実装され得る。PQR構成要素125によって実行され得るメディアン適応予測の変更バージョンは、3つの連続するサンプル値の並列予測を可能にし得る。別の例示的な予測モードはブロック予測である。ブロック予測では、サンプルは、上のライン中の、または同じライン中の左側の前に再構成されたピクセルから予測される。いくつかの実施形態では、ビデオエンコーダ20およびビデオデコーダ30は、両方とも、ブロック予測使用を決定するために、再構成されたピクセルに対して同じ探索を実行し得、したがって、ビットはブロック予測モードで送られる必要がない。他の実施形態では、ビデオエンコーダ20は、探索を実行し、ビットストリーム中でブロック予測ベクトルをシグナリングし得、したがって、ビデオデコーダ30は、別個の探索を実行する必要がない。成分範囲の中点を使用してサンプルが予測される中点予測モードも実装され得る。中点予測モードは、ワーストケースサンプルにおいてさえも、圧縮されたビデオに必要なビットの数の制限を可能にし得る。PQR構成要素125は、本開示の方法および技法を実行することによってビデオデータのブロック(または予測の他のユニット)を予測(たとえば、符号化または復号)するように構成され得る。
[0065]PQR構成要素125はまた、量子化を実行する。たとえば、量子化は、シフタを使用して実装され得る2のべき乗量子化器(power-of-2 quantizer)を介して実行され得る。2のべき乗量子化器の代わりに他の量子化技法が実装され得ることに留意されたい。PQR構成要素125によって実行される量子化は、レートコントローラ120によって決定されたQPに基づき得る。最終的に、PQR構成要素125はまた、予測値に逆量子化残差を加算することと、結果がサンプル値の有効範囲の外側にないことを保証することとを含む再構成を実行する。本明細書では、「残差(residual)」という用語は、「残差(residue)」と互換的に使用され得る。
[0066]PQR構成要素125によって実行される予測、量子化、および再構成に対する上記で説明された例示的な手法は、例示的なものにすぎず、他の手法が実装され得ることに留意されたい。また、PQR構成要素125は、予測、量子化、および/または再構成を実行するための(1つまたは複数の)副構成要素を含み得ることに留意されたい。さらに、予測、量子化、および/または再構成は、PQR構成要素125の代わりにいくつかの別個のエンコーダ構成要素によって実行され得ることに留意されたい。
[0067]まだ図2を参照すると、PQR構成要素125はひずみ回路188を含み得る。ひずみ回路は、以下で説明される機能に関係する命令を実行するためのコンピューティングデバイスに対応し得る。ひずみ回路188は、タスクの通信および実行を管理するようにまとめて構成された、プロセッサ、たとえば、ビデオ処理ユニットまたは汎用処理ユニットと、メモリとを含み得る。ひずみ回路188は、ビデオデータの入力を受信し、ビデオデータは、様々な色空間のものであり得る。たとえば、入力ビデオデータの色空間は、RGBまたはRCT色空間、あるいは、YCbCr、YCoCg、またはロスレスYCoCg−Rなどのルーマクロマ表現であり得る。ひずみ回路188は、入力ビデオデータに適用されるとき、いくつかのコーディングモードのひずみを計算し得る。ひずみ回路188は、計算されたひずみおよびコスト関数に従って入力ビデオデータの特定のスライスまたはブロック上で使用されるべき最適コーディングモードを決定し、PQR構成要素125にこの情報を与え得る。コスト関数は、デコーダにおいてレートひずみ性能を制御する。たとえば、比較的最小のひずみを生成するコーディングモードは、レートがあまりに高い場合、バッファがオーバーフローすることを引き起こし得る。代替的に、比較的高いレートは許容できるが(may be acceptable)、画像の品質が犠牲になり得る。したがって、ひずみ回路188は、画像品質とバッファレートとが許容できるレベルに維持されるように、レート制御技法を使用して受信される画像データのあらゆるブロックまたはスライスについて最適コーディングモードを決定することの利点を提供する。
[0068]ラインバッファ130は、PQR構成要素125およびインデックス色履歴135が、バッファされたビデオデータを使用することができるように、PQR構成要素125からの出力を保持する。インデックス色履歴135は、最近使用されたピクセル値を記憶する。これらの最近使用されたピクセル値は、専用シンタックスを介してビデオエンコーダ20によって直接参照され得る。
[0069]エントロピーエンコーダ140は、インデックス色履歴135と、平坦度検出器115によって識別された平坦度遷移とに基づいて、PQR構成要素125から受信された予測残差および他の(any other)データ(たとえば、PQR構成要素125によって識別されたインデックス)を符号化する。いくつかの例では、エントロピーエンコーダ140は、サブストリームエンコーダごとにクロックごとに3つのサンプルを符号化し得る。サブストリームマルチプレクサ145は、ヘッダレスパケット多重化方式に基づいてビットストリームを多重化し得る。これは、ビデオデコーダ30が並列に3つのエントロピーデコーダを動作させることを可能にし、クロックごとの3つのピクセルの復号を可能にする。サブストリームマルチプレクサ145は、パケットがビデオデコーダ30によって効率的に復号され得るようにパケット順序を最適化し得る。クロックごとの2のべき乗個のピクセル(たとえば、2ピクセル/クロックまたは4ピクセル/クロック)の復号を可能にし得る、エントロピーコーディングに対する異なる手法が実装され得ることに留意されたい。
ひずみの計算
[0070]いくつかの実施形態では、ビデオエンコーダ20のひずみ回路188は、同じ色空間中のすべてのコーディングモードのひずみを計算し得る。たとえば、ひずみ回路は、適切な色変換を適用することによって、同じ色空間中のすべてのコーディングモードのひずみを計算し得る。適切な色変換は、上記で開示された様々な色変換を指すことがある。色変換の例は、入力RGB信号をルーマクロマ表現にコンバートすること、およびルーマクロマ表現をRGB信号にコンバートすることを含む。一実装形態では、ひずみ回路188は、残差ブロック340a〜nのセットに色変換を実行し得、ここで、残差ブロック340a〜nは、元のブロック(310、315)と、再構成されたブロック330、または符号化されたブロックとの間の差分を表す。たとえば、元のブロック(310、315)は、符号化より前の(prior to)、いくつかのブロックまたはスライスに区分された(has been partitioned)入力フレームの区分された表現であり得る。再構成されたブロック330は、複数のコーディングモード325使用され符号化された(encoded used a plurality of coding modes 325)、いくつかの異なる色空間中の元のブロックのうちの1つを表し得る。別の実装形態では、ひずみ回路188は、残差ブロック340a〜nを計算する前に、元のブロック(310、315)と再構成されたブロック330の両方に色変換を実行し得る。
[0071]図3は、図2のひずみ回路188の例示的な実装形態を示す。ひずみ回路は複数の機能構成要素を含む。ひずみ回路の機能構成要素は、ブロックエンコーダ320と、差分計算335a〜n構成要素と、ひずみ計算345a〜n構成要素とを含む。他の例では、ひずみ回路188は、より多数の、より少数の、または異なる機能構成要素を含み得る。
[0072]まだ図3を参照すると、ひずみ回路188は、バッファ110からのソースビデオデータ13、ならびに(as well as)色空間コンバータ105から出力されたビデオデータを受信し得る。ソースビデオデータ13のフォーマットがRGB色空間中にあるとき、色空間コンバータ105は、線形色変換を使用してデータを無相関化し得る。色空間コンバータ105は様々な色変換を使用し得る。たとえば、RGBをルーマクロマ表現(たとえば、JPEGにおいて使用されるYCbCr、YCoCg、またはRCT)にコンバートする変換。また、YCoCgへのRGBのロッシー(YCoCg)およびロスレス(YCoCg−R)バージョンを使用する色変換。一実装形態では、色空間コンバータ105は、色変換がいかなるロスをももたらさないように、ソースビデオデータ13の色空間(たとえば、YCoCgR)の可逆バージョンに適合する。可逆変換は、クロマ成分についてデータの追加のビットを必要とすることがある。たとえば、8ビットRGBの場合、ルーマ成分またはチャネルは8ビットを必要とし、クロマ成分(CoおよびCg)の各々は9ビットを必要とする。YCoCg−Rのための順方向色変換が次のように与えられ得る。
YCoCg−Rのための逆方向色変換が次のように与えられ得る。
上記の例示的な式では、RGB色空間とYCoCg色空間とは各々、3つの色平面(すなわち、R、G、およびB、またはY、Co、およびCg)を含む。ビデオエンコーダ20では、各モードのレートひずみ(「RD」)性能は、YCoCgまたはRGB色空間のいずれか中で評価され得る。たとえば、ビデオエンコーダ20は、パターンモード、MPPモード、およびMPPフォールバックモードを使用してRGB色空間中のRD性能を評価し得るが、ルーマクロマ色空間中のRD性能は他のモードを使用し得る。ビデオエンコーダ20から受信されたソースビデオデータ13と、色空間コンバータ105から受信された色変換されたデータとは両方とも、ブロックまたはスライスに区分され得る。一実施形態では、ソースビデオデータ13は、ひずみ回路188による受信より前の任意のポイントにおいて、たとえば、ビデオソース18において区分され得る。別の実施形態では、ひずみ回路188は、RGBブロック310とYCoCgブロック315とを生成するために、ソースビデオデータ13を区分し得る。
[0073]まだ図3を参照すると、ひずみ回路188はまた、ブロックエンコーダ320を含み得る。ブロックエンコーダ320は、命令を記憶し、タスクを実行するようにまとめて構成された、プロセッサ、たとえば、ビデオ処理ユニットまたは汎用処理ユニットとメモリとを含み得る。ブロックエンコーダ320は、各ブロックの色空間に基づいて、(本明細書では「モード1」、「モード2」、または「モードn」とも呼ばれる)いくつかのコーディングモード325を各ブロックに適用し得る。たとえば、各ブロック(310、315)についてのコーディングモード325は、変換モード(たとえば、DCT、アダマール)、ブロック予測モード、差分パルスコード変調(DPCM)モード、パターンモード、中点予測(MPP)モード、および/または中点プレディケーションフォールバック(MPPF)モードを含むことができる。ブロックエンコーダ320は、RGBブロック310とYCoCgブロック315とを受信し、いくつかのコーディングモード325のうちのいずれかを用いて、各ブロックを符号化し得る。一実施形態では、ブロックエンコーダ320は、各受信されたブロックに関連付けられた色空間に適したコーディングモードのすべてを用いて、各受信されたブロックを符号化する。ブロックエンコーダ320は、いくつかの再構成されたブロック330を出力し、再構成されたブロック330は、いくつかのモードを使用して符号化された、受信されたブロック(310、315)のうちの1つを表し得る。たとえば、RGBブロック310のブロック1が、コーディングモード325からの中点予測モードと変換モードとを使用して符号化され得る。ブロックエンコーダ320は、ブロック1に対応する2つのブロックを出力し得、各々は、中点予測モードまたは変換モードのいずれかによって符号化され、各符号化されたブロックは、RGBブロック310のブロック1の符号化表現である。ブロックエンコーダ320は、ひずみ回路188が、受信されると、RGBブロック310とYCoCgブロック315の両方と、各モードについての再構成されたブロック330との間の差分を計算することができるように、いくつかの再構成されたブロック330を生成する。
[0074]まだ図3を参照すると、ひずみ回路188は差分計算335a〜n構成要素をさらに含み得る。差分計算335a〜n構成要素は、命令を記憶し、タスクを実行するようにまとめて構成された、プロセッサ、たとえば、ビデオ処理ユニットまたは汎用処理ユニットとメモリとを含み得る。差分計算335a〜n構成要素は、再構成されたブロック330と、それらの対応する元のブロック(310、315)との間の差分を計算し得る。たとえば、ブロックエンコーダ320は、RGBブロック310のブロック1を、コーディングモード325からの中点予測モードと変換モードとを使用して符号化し得る。ブロックエンコーダ320は、ブロック1に対応する2つのブロックを出力し得、各々は、中点予測モードまたは変換モードのいずれかによって符号化され、各符号化されたブロックは、RGBブロック310のブロック1の符号化表現である。差分計算335aモジュールは、再構成されたブロック330の対応する符号化された(すなわち、中点予測モードによって符号化された)ブロックモード1とRGBブロック310のブロック1との間の差分を計算し得る。差分計算335bモジュールは、再構成されたブロック330の対応する符号化された(すなわち、変換モードによって符号化された)ブロックモード2とRGBブロック310のブロック1との間の差分を計算し得る。差分計算335a〜nは、残差ブロック340a〜nを生成し得、ここで、残差ブロック340a〜nは、RGBブロック310およびYCoCgブロック315と、それらの対応する再構成されたブロック330との間の差分を表す。
[0075]まだ図3を参照すると、ひずみ回路188はひずみ計算345a〜nを実行し得る。ひずみ計算345a〜nは、各残差ブロック340a〜nのひずみを計算し得る。ひずみ計算345a〜nは、残差ブロック340a〜nのひずみを計算する前に、受信された残差ブロック340a〜nを均等(uniform)色空間にコンバートする色空間変換関数を含み得る。ひずみ回路188は、計算されたひずみに基づいて、特定のブロックについての最も良好な(best)モードを決定し、最も良好なモードを用いて符号化されたブロックをPQR構成要素125に出力し得る。たとえば、ひずみ回路188に入力されているソースビデオデータ13が、RGB色空間中にある場合、ブロックエンコーダ320は、両方の中点予測モードを使用してRGB色空間310のブロック1を符号化し、それにより、RGB色空間のブロック1の1つの符号化されたバージョンを生成し得る。しかしながら、複数のコーディングモード325のうちのいくつかの(certain)コーディングモードは、ルーマクロマ色空間中のビデオブロックのみを符号化することができる(can only encode video blocks)。したがって、色空間コンバータ105は、RGB色空間からYCoCgなどのルーマクロマ表現にソースビデオデータ13の色空間をコンバートし得る。ブロックエンコーダ320は、変換モードとパターンモードの両方を用いて、YCoCg色空間315のブロック1を符号化し、それにより、YCoCg色空間のブロック1の2つの符号化されたバージョンを生成し得る。差分計算335a〜nは、各モードにおけるブロック1について、残差ブロック340a〜nを生成し得る。ひずみ計算345a〜nは、ブロック1上で使用される各モードのひずみが、同じ色空間中で計算され得るように、RGB色空間中の残差ブロック340a〜n、またはYCoCg色空間中の残差ブロック340a〜nのいずれかに対して色空間変換関数を実行し得る。
[0076]一例では、すべてのモードについて、ひずみ回路188は、RGB色空間またはルーマクロマ色空間のいずれか中で、ひずみ計算345a〜nを実行し得、ここで、ひずみ計算は、SAD(絶対差分和)またはSSE(2乗誤差和)を含む。たとえば、YCoCg−R変換が、ひずみを計算するために色空間として使用されるとき、クロマ成分のひずみは、1つの追加のビットを考慮する(account for)ために正規化され得る。たとえば、YCoCg−Rは、ルーマ成分ごとに8ビットと、クロマ成分の各々について9ビットとを使用し得る。YCoCg色空間中のSADは、式4において以下のように計算され得る。
ここで、
SAD(Y): ブロックのルーマ成分についての絶対差分和、
SAD(Co): ブロックのCoクロマ成分についての絶対差分和、
SAD(Cg): ブロックのCgクロマ成分についての絶対差分和、および
オフセット: 最も近い整数に丸めるために使用され得る任意の(optional)値、たとえば、オフセットは、値0または1であり得る。
ルーマ成分(Y)またはルーマ平面と、クロマ成分(Co、Cg)またはクロマ平面とは、分析されているブロックまたはスライス中のあらゆるピクセルについて、ルーマおよびクロマ値を表すことに留意されたい。たとえば、式4を16個のピクセルを含んでいるブロックに適用することは、ルーマ値の16個のサンプル、Co値の16個のサンプル、およびCg値の16個のサンプルの各々についてのSADの計算を生じるだろう。得られたSADYCoCg値は、各成分中の1つの余分のビットを考慮するためにクロマ成分を効果的に正規化するために1だけ右にシフトされる。
[0077]SSEがひずみを計算するためにメトリックとして使用されるとき、式5が使用され得る。
ここで、
SSE(Y): ブロックのルーマ成分についての2乗誤差和、
SSE(Co): ブロックのCoクロマ成分についての2乗誤差和、
SSE(Cg): ブロックのCgクロマ成分についての2乗誤差和、および
オフセット: 最も近い整数に丸めるために使用され得る任意の値、たとえば、オフセットは、値0または1であり得る。
ルーマ成分(Y)またはルーマ平面と、クロマ成分(Co、Cg)またはクロマ平面とは、分析されているブロックまたはスライス中のあらゆるピクセルについて、ルーマおよびクロマ値を表すことに留意されたい。たとえば、式5を16個のピクセルを含んでいるブロックに適用することは、ルーマ値の16個のサンプル、Co値の16個のサンプル、およびCg値の16個のサンプルの各々についてのSSEの計算を生じる。得られたSSEYCoCg値は、各成分中の1つの余分のビットを考慮するためにクロマ成分を効果的に正規化するために1だけ右にシフトされる。
[0078]代替的に、ひずみ回路188は、人間のコントラスト視覚感度について効果的に考える(consider)ために、YCoCg色空間中の各色平面に重み付けを適用し得る。人間の視覚が、クロミナンスよりもルミナンスにより反応することができるので、ひずみ回路188は、ルーマ成分により大きい重みを適用し、ルーマ成分に対して、クロマ成分により小さい重みを適用し得る。たとえば、SADの計算は以下の通りである。
ここで、WY、WCoおよびWCgは、それぞれのルーマおよびクロマ成分に適用される重みである。同様の視覚的重みは、SSEがひずみメトリックとして使用されるときに使用され得る。
[0079]たとえば、ひずみ計算345a〜nにおいて残差ブロック340a〜nに色変換を適用する代わりに、ひずみ回路188は、式2および式3の色変換行列から重みを導出し得、各ルーマおよびクロマ成分中のひずみが、ひずみを計算するために重み付けされ得る。この方法は、ひずみ計算345a〜nにおいて実行される色変換のための算出を回避し、それにより、プロセスを簡略化する。ひずみ回路188は、変換行列における値の3つの列の各々の列ノルム(たとえば、l2ノルム(ユークリッドノルム))に基づいて、各成分について重みを計算し得る。たとえば、コーディングモードのひずみがRGB色空間中で計算されるとき、YCoCg色空間中で動作するコーディングモードのひずみは、式8および式9のいずれかにおいて以下のように式3の変換行列を使用して計算される。
ここで、重み
は、逆方向変換行列(YCoCgからRGB)における列のl2ノルムを表す。
ここで、重み(3、0.5、0.75)は、逆方向変換行列(YCoCgからRGB)におけるそれぞれの列のl2ノルムの2乗を表す。さらに、ひずみを計算するために、浮動小数点計算を使用する代わりに、固定小数点計算が使用され得る。たとえば、重み
は、
として8ビット分数精度で表され得る。
[0080]代替的に、YCoCg色空間が、ひずみを計算するための色空間として設定されるとき、重みは、R、GおよびBひずみの重みを計る(weigh)ために、順方向変換行列の列に基づいて導出され得る。たとえば、SADは次のように計算され得る。
ここで、WR、WGおよびWBは、それぞれのルーマおよびクロマ成分に適用される重みである。同様の視覚的重みは、SSEがひずみメトリックとして使用されるときに使用され得る。
[0081]R成分(R)と、G成分(G)と、B成分(B)とは、分析されているブロックまたはスライス中のあらゆるピクセルについて、赤値、緑値、および青値を表すことに留意されたい。たとえば、式10および式11を16個のピクセルを含んでいるブロックに適用することは、赤値の16個のサンプル、緑値の16個のサンプル、および青値の16個のサンプルの各々についてのSADおよびSSEの計算を生じるだろう。各成分についての重みは、順方向変換行列における値の3つの列の各々の列ノルム(たとえば、l2ノルム(ユークリッドノルム))に基づいて計算され得る。たとえば、コーディングモードのひずみがYCoCg色空間中で計算されるとき、RGB色空間中で動作するコーディングモードのひずみは、式12および式13のいずれかにおいて以下のように式2の順方向変換行列を使用して計算され得る。
ここで、重み
は、順方向変換行列(RGBからYCoCg)における列のl2ノルムを表す。
ここで、重み
は、逆方向変換行列(RGBからYCoCg)におけるそれぞれの列のl2ノルムの2乗を表す。さらに、ひずみを計算するために、浮動小数点計算を使用する代わりに、固定小数点計算が使用され得る。
[0082]上記で説明された技法および方法は、RGBからYCoCgへのロスレス色変換に限定されるだけでなく、それらは、任意の線形色変換、たとえば、YCbCr、YCoCgロッシー変換に適用され得る。このようにして、本技法は、様々なコーディングモード(たとえば、すべてのコーディングモード)についてのひずみを計算するために、同じ色空間を使用することができる。同じ色空間を使用することは、計算をより効率的にし、性能を改善することができる。本開示で説明される例および実施形態は、実施形態に応じて、別々にまたは組合せで実装され得る。実施形態に応じて、例および実施形態のいくつかの特徴が省略または変更され得、他の特徴が例および実施形態に追加され得る。
[0083]図4は、図3と実質的に同様のひずみ回路188の代替実施形態を示す。この実施形態では、色変換およびひずみ計算345a〜nが、差分計算335a〜nと残差ブロック340a〜nの生成との前に、元のブロックと再構成されたブロックの両方に適用され得る。図3中のひずみ回路188のすべての他の機能ブロックは、図4のひずみ回路188の機能ブロックと同様の様式で機能する。図4は、差分計算335a〜nがひずみ計算345a〜nに基づいて行われることを示しているが、代替実施形態は、図3と同様の様式で行われる差分計算を含み得ることに留意されたい。
DSCビデオデコーダ
[0084]図5は、本開示で説明される態様による技法を実装し得るビデオデコーダ30の一例を示すブロック図である。ビデオデコーダ30は、本開示の技法の一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明される技法は、ビデオデコーダ30の様々な構成要素間で共有され得る。いくつかの例では、追加または代替として、プロセッサ(図示せず)が、本開示で説明される技法の一部または全部を実行するように構成され得る。
[0085]説明の目的で、本開示では、DSCコーディングのコンテキストにおいてビデオデコーダ30について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
[0086]図5の例では、ビデオデコーダ30は複数の機能構成要素を含む。ビデオデコーダ30の機能構成要素は、レートバッファ155と、サブストリームデマルチプレクサ160と、エントロピーデコーダ165と、レートコントローラ170と、予測器、量子化器、および再構成器(PQR)構成要素175と、インデックス色履歴180と、ラインバッファ185と、色空間コンバータ190とを含む。ビデオデコーダ30の図示された構成要素は、図2中のビデオエンコーダ20に関して上記で説明された対応する構成要素に類似する。したがって、ビデオデコーダ30の構成要素の各々は、上記で説明されたビデオエンコーダ20の対応する構成要素と同様の様式で動作し得る。
[0087]まだ図5を参照すると、ビデオデコーダ30のレートバッファ155は、図1Bの入力インターフェース28から受信された圧縮されたビデオデータを記憶するために使用される、物理メモリの一部分であり得る。レートバッファ155は、圧縮されたビデオデータをビットレートで(at a bit rate)受信し、圧縮されたビデオストリームを固定ビットレートで出力し得る。適切な復号を保証するために、ビデオデコーダ30のレートバッファ155は、圧縮されたビットストリームの復号中に「アンダーフロー」または「オーバーフロー」すべきでない。いくつかの実施形態では、バッファフルネス(BF)は、上記の式1に示されているように、バッファに現在あるビットの数を表す値BufferCurrentSizeと、レートバッファ150のサイズ、すなわち、任意の時点においてレートバッファ150に記憶され得るビットの最大数を表すBufferMaxSizeとに基づいて定義され得る。レートバッファ155は、圧縮されたビデオにおけるレート変動を平滑化することができる。レートバッファ155はビデオデコーダ30においてレート制御機構の一部として機能し得、このことは、レートコントローラ170に関して以下でより詳細に説明される。
[0088]BFは他の方法で計算され得、BF計算に対する選択された手法は、コンテキストおよび適用例に応じて変化し得る。別の例では、BFは、BFを100で除算することによって0から1に正規化され得る。正規化されたBF値は、λ値を計算するために使用され得る。バッファフルネスに基づくλ値は、以下の式に基づいて計算され得る。
ここで、{Λ,a1,b1,c1,d1}は同調可能パラメータである。x∈[0,1]であり、xは
として計算され、ここで、BFはここでは割合(たとえば、バッファ中で占有されるビットの割合)として表される。
[0089]まだ図5を参照すると、サブストリームデマルチプレクサ160は、レートバッファ155から、圧縮されたビデオデータを受信し、エントロピーデコーダ165に接続され、選択入力によって決定された、いくつかの出力ラインを使用してデータを出力する、集積回路デバイスを含み得る。サブストリームデマルチプレクサ160は、1つまたは複数のチャネルを介した送信のために、受信された圧縮されたビデオデータを、1つまたは複数のdemuxビットストリームに分割するように構成され得る。1つまたは複数のビットストリームは、復号のために1つまたは複数のエントロピーデコーダ165に出力され得る。サブストリームデマルチプレクサ160は、ビデオエンコーダ20のサブストリームマルチプレクサ145から出力された多重データを、デマルチプレクスするための相補的(complementary)デバイスとして使用され得る。
[0090]まだ図5を参照すると、エントロピーデコーダ165は、電子回路、たとえば、ビデオ処理ユニット、または汎用処理ユニットを含み得る。エントロピーデコーダ165は、サブストリームデマルチプレクサ160から、圧縮されたビデオデータを受信し得る。エントロピー復号ユニット165は、ビットストリームからシンタックス要素を取得するために圧縮されたビデオデータをパースし得る。エントロピー復号ユニット165は、エントロピー符号化シンタックス要素をエントロピー復号し得る。受信された圧縮されたビデオデータは、コード化スライスデータを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット165は、コード化スライスデータからシンタックス要素を抽出し、エントロピー復号し得る。コード化スライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含んでいることがある。エントロピーデコーダ165は、PQR構成要素175に動きベクトルと他のシンタックス要素とをフォワーディングし得る。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルのシンタックス要素を受信し得る。エントロピーデコーダ165は、ビデオエンコーダ20のエントロピーエンコーダ140によって符号化されたデータを復号するための相補的デバイスとして使用され得る。PQR構成要素175は、ビットストリームから抽出されたシンタックス要素に基づいて、復号されたビデオデータを生成し得る。
[0091]まだ図5を参照すると、レートコントローラ170は、電子回路、たとえば、ビデオ処理ユニット、または汎用処理ユニットを含み得る。レートコントローラ170は、エントロピーデコーダ165からの入力としてエントロピー復号されたビットストリームを受信し得る。レートコントローラ170は、コーディングパラメータのセット、たとえば、QPを決定する。QPは、レートバッファ155がオーバーフローまたはアンダーフローしないことを保証するターゲットビットレートについてピクチャ品質を最大にするために、レートバッファ155のバッファフルネスとビデオデータの画像アクティビティとに基づいて、レートコントローラ170によって調整され得る。レートコントローラ170はまた、最適レートひずみ性能を達成するために、ビデオデータの各ブロックについて特定のコーディングオプション(たとえば、特定のモード)を選択する。レートコントローラ170は、再構成された画像のひずみを、それがビットレート制約を満たすように、すなわち、全体的実コーディングレートがターゲットビットレート内に収まるように最小限に抑える。言い換えれば、レートコントローラは、ブロックレートが利用可能なリソースを越えること(overwhelming)を防ぐことによって、バッファ障害(buffer failure)を防ぐ。
[0092]まだ図5を参照すると、インデックス色履歴180は、電子回路、たとえば、ビデオ処理ユニット、または汎用処理ユニットを含み得、それらのいずれかはメモリを含む。インデックス色履歴180は、1つまたは複数のエントロピーデコーダ165から、圧縮されたビデオのビットストリームを受信し得、また、PQR構成要素175からデータを受信し得る。インデックス色履歴180は、最近使用されたピクセル値を記憶し得る。これらの最近使用されたピクセル値は、専用シンタックスを介してPQR構成要素175によって直接参照され得る。インデックス色履歴180を使用することの利点は、ディスプレイリフレッシュとデータ転送との速度を上げる(speed up)ために、デジタル画像の色を管理することを含む。
[0093]まだ図5を参照すると、ラインバッファ185は、電子回路、たとえば、集積回路上に実装されたストレージデバイスを含み得る。ラインバッファ185は、PQR構成要素175およびインデックス色履歴180が、バッファされたビデオデータを使用することができるように、PQR構成要素175からの出力を保持する。インデックス色履歴180は、最近使用されたピクセル値を記憶する。これらの最近使用されたピクセル値は、専用シンタックスを介してビデオデコーダ30によって直接参照され得る。
[0094]まだ図5を参照すると、PQR構成要素175は、電子回路、たとえば、ビデオ処理ユニット、または汎用処理ユニットを含み得る。PQR構成要素175は、ビデオデコーダ30の少なくとも3つの符号化演算を実行し得る。たとえば、PQR構成要素175は、いくつかの異なるモードで予測を実行し得る。たとえば、ビデオスライスがイントラコード化スライスとしてコーディングされる場合、PQR構成要素175は、シグナリングされたイントラ予測モードと、現在フレームまたはピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。別の例では、ビデオフレームがインターコード化スライスとしてコーディングされる場合、PQR構成要素175は、エントロピーデコーダ165から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成し得る。予測処理は、残差ブロックデータを生成するために、および復号されたブロックを再構成するために、加算器または再構成器に、得られた(resulting)イントラコード化ブロックまたはインターコード化ブロックを与え得る。
[0095]PQR構成要素175はまた、量子化を実行する。残差ブロックは、逆量子化を介して決定され得る。たとえば、逆量子化処理は、ビットストリーム中で与えられ、エントロピーデコーダ165によって復号された量子化された変換係数を量子化(すなわち、量子化解除(de-quantize))する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ20によって計算される量子化パラメータの使用を含み得る。PQR構成要素175は、ピクセル領域において残差ブロックを生成するために、逆変換(たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセス)を変換係数に適用する、逆変換プロセスを含み得る。PQR構成要素175は、ビデオエンコーダ20のPQR構成要素125から出力されたデータの逆量子化のための相補的デバイスとして使用され得る。
[0096]PQR構成要素175はまた、再構成を実行する。PQR構成要素175は、参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構成し得る。たとえば、ルーマクロマ表現では、再構成器は、コーディングユニット(CU)のルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロックを再構成するために、適用可能なとき、CUの変換ユニット(TU)に関連付けられたルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロック、ならびにCUの予測ユニット(PU)のPUルーマブロック、PU Cbブロック、およびPU Crブロック、すなわち、イントラ予測データまたはインター予測データのいずれかからの残差値を使用し得る。たとえば、PQR構成要素175の再構成器は、CUのルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロックを再構成するために、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックのサンプルを、予測ルーマブロック、予測Cbブロック、および予測Crブロックの対応するサンプルに加算し得る。
[0097]再び図5を参照すると、色空間コンバータ190は、電子回路、たとえば、ビデオ処理ユニット、または汎用処理ユニットを含み得る。色空間コンバータ190は、コーディング実装形態において使用される色空間を、ディスプレイ実装形態において使用される色空間にコンバートし得る。たとえば、色空間コンバータ190によって受信された色空間は、コーディング実装形態によって使用される、ルミナンスY、クロミナンス緑Cg、およびクロミナンスオレンジCo(YCgCo)色空間中にあり得、ディスプレイ実装形態は、赤、緑、および青(RGB)色空間を含み得る。色空間コンバージョンは、上記の式2および式3に示された、ビデオデータへのシフトおよび追加を含む(1つまたは複数の)方法によって実行され得る。他の色空間中の入力ビデオデータが処理され得、他の色空間へのコンバージョンも実行され得ることに留意されたい。
[0098]関係する態様では、ビデオデコーダ30は、レートバッファ155および/またはラインバッファ185を含み得る。たとえば、レートバッファ155は、色空間コンバートされたビデオデータを、ビデオデコーダ30の他の部分によるそれの使用に先立って保持し得る。別の例では、色空間コンバートされたデータはより多くのビットを必要とし得るので、ビデオデータはルーマクロマ色空間中で記憶され得、色空間コンバージョンが必要に応じて実行され得る。
[099]図6は、第1のビデオブロック(310、315)についてのコーディングモードを決定するためのプロセス400の一例を示すフローチャートである。ブロック405において、ビデオエンコーダ20のひずみ回路188は、少なくとも1つの色空間中で第1のビデオブロック(310、315)を受信する。いくつかの実装形態では、第1のビデオブロック(310、315)は、いくつかの異なる色空間中で受信され得る。たとえば、第1のビデオブロック(310、315)は、RGB色空間およびルーマクロマ色空間中で受信され得る。
[0100]まだ図6を参照すると、ブロック410において、ひずみ回路188のブロックエンコーダ320は、複数の再構成されたビデオブロック330を生成する。複数の再構成されたビデオブロック330は、複数のコーディングモード325を使用して符号化された、第1のビデオブロック(310、315)を示す。言い換えれば、複数の再構成されたビデオブロック330の各々は、いくつかのコーディングモードのうちの1つを使用して再構成された、第1のビデオブロック(310、315)のコピーである。いくつかの実装形態では、ブロックエンコーダ320は、第1のビデオブロック(310、315)の色空間に適合するいくつかのコーディングモードを使用して、第1のビデオブロック(310、315)を符号化し得る。たとえば、ブロックエンコーダ320は、中点予測モードを使用してRGB色空間310の第1のビデオブロックを符号化し得る。ブロックエンコーダ320はまた、変換モードを使用してYCoCg色空間315の第1のビデオブロックを符号化し得る。この例では、ブロックエンコーダ320は、複数の再構成されたビデオブロック330を生成し、ここで、複数の再構成されたビデオブロック330は、異なる色空間中で表され、第1のビデオブロック(310、315)を示す。
[0101]まだ図6を参照すると、ブロック415において、ひずみ回路188は、複数の色空間のうちの1つの色空間を選択する。一実装形態では、ひずみ回路188は、複数の再構成されたビデオブロック330のうち、RGB色空間中のいくつかの再構成されたブロックと、ルーマクロマ表現における、いくつかの再構成されたブロックとを決定し得る。ひずみ回路188は、再構成されたビデオブロック330の大部分を表す色空間を選択することによって、ブロック420において計算を低減し得る。別の実装形態では、ユーザが色空間を選択し得るか、またはひずみ回路188が特定の色空間を選択するために事前プログラムされ得る。
[0102]まだ図6を参照すると、ブロック420において、ひずみ回路188は、選択された色空間中にない、複数の再構成されたビデオブロック330のうちのあらゆる符号化されたビデオブロックに色変換を適用する。色変換は、式2および式3の色変換行列を含み得、ここで、色変換行列は、色空間中の色平面の数に等しい数の列を含む。一実装形態では、ひずみ回路188は、いくつかの残差ブロック340a〜nに色変換を適用し、ここで、各残差ブロックは、第1のビデオブロック(310、315)と、複数の再構成されたビデオブロック330の各々との間の差分を表す。別の実装形態では、ひずみ回路188は、残差ブロック340a〜nを計算する前に、第1のビデオブロック(310、315)と複数の再構成されたビデオブロック330の各々の両方に色変換を適用する。
[0103]まだ図6を参照すると、ブロック425において、ひずみ回路188は、複数の残差ブロック340a〜nの各々のひずみ値を決定する。別の実装形態では、ひずみ回路188は、複数の再構成されたビデオブロック330の各々のひずみ値を決定する。いずれかの実装形態では、ひずみ回路188は、RGB色空間またはルーマクロマ色空間のいずれか中で、ひずみ値を計算し得、ここで、ひずみ値は、(i)再構成されたブロック330の各々、または(ii)残差ブロック340a〜nの各々のいずれかのSADまたはSSEであり得る。別の実装形態では、選択された色空間がルーマクロマ色空間であるとき、ひずみ回路188は、クロマ成分中の余分のビットを考慮するために、計算されたひずみ値を正規化し得る。たとえば、ひずみ回路188は、SADまたはSEEによって計算されたひずみ値を1だけ右にシフトし得る。また別の実装形態では、ひずみ回路188は、ルーマクロマ色空間においてSADおよびSSE計算重み付け値(weighting values the SAD and SSE calculations)を適用し得る。たとえば、ひずみ回路188は、色変換行列における各列の列ノルム、またはユークリッドノルムに基づいて、ルーマクロマ色空間中の各色平面について重みを計算し得る。
[0104]まだ図6を参照すると、ブロック430において、ひずみ回路188は、ビットレートひずみ値の両方を考慮するコスト関数に基づいて、複数のコーディングモード325の最適コーディングモードを決定する。一実装形態では、ひずみ回路188は、コスト値関数を使用してコーディングモードを決定する。たとえば、ひずみ回路188は、コスト関数、すなわち、D+λ×Rで表される、ビットレートとひずみとの間のトレードオフに基づいて最適コーディングモードを決定し得る。ここで、パラメータRは、第1のビデオブロック(310、315)についてエンコーダ20とデコーダ30との間で送信される総ビット数であり得る、第1のビデオブロック(310、315)のビットレートを指す。パラメータDは、第1のビデオブロック(310、315)のひずみを指す。パラメータλは、パラメータRとパラメータDとの間のトレードオフであり得る、ラグランジュパラメータである。ラグランジュパラメータλは様々な方法で計算され得、λ計算に対する選択された手法は、コンテキストおよび適用例に応じて変化し得ることに留意されたい。たとえば、ビデオエンコーダは、レートバッファ(150、155)状態(state)、第1のビデオブロック(310、315)の状況(conditions)など、いくつかのファクタに基づいて、ラグランジュパラメータλを算出し得る。
[0105]まだ図6を参照すると、ブロック435において、ビデオエンコーダ20は、第1の符号化されたビデオブロックを宛先デバイスに通信し、第1の符号化されたビデオブロックは、決定された最適コーディングモードを使用して符号化された第1のビデオブロック(310、315)を示す。
他の考慮事項
[0106]本開示の態様は、図2中のビデオエンコーダ20など、エンコーダの観点から説明されたことに留意されたい。しかしながら、上記で説明された動作の逆の動作が、たとえば、図5中のビデオデコーダ30によって、生成されたビットストリームを復号するために適用され得ることを、当業者は諒解されよう。
[0107]本明細書で開示される情報および信号は、多種多様な技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
[0108]本明細書で開示される実施形態に関して説明された様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、およびステップが、概してそれらの機能に関して上記で説明された。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
[0109]本明細書で説明された技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、または複数の用途を有する集積回路デバイスなど、様々なデバイスのいずれかで実装され得る。デバイスまたは構成要素として説明された特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装された場合、本技法は、実行されたとき、上記で説明された方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、フラッシュメモリ、磁気または光学データ記憶媒体など、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、伝搬信号または電波など、命令またはデータ構造の形態でプログラムコードを搬送または伝達し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
[0110]プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価の集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示で説明された技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと併用される1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明された技法の実装に好適な他の構造または装置のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のソフトウェアまたはハードウェア内に提供され得、あるいは複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
[0111]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素またはユニットが説明されたが、それらの構成要素またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
[0112]上記のことは、様々な異なる実施形態に関して説明されたが、一実施形態からの特徴または要素は、本開示の教示から逸脱することなく他の実施形態と組み合わせられ得る。ただし、それぞれの実施形態間の特徴の組合せは、必ずしもそれに限定されるとは限らない。本開示の様々な実施形態が説明された。これらおよび他の実施形態は以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータをコーディングするための装置であって、
複数のコーディングモードに関する情報と前記ビデオデータとを記憶するためのメモリと、前記ビデオデータが複数のビデオブロックを備える、
前記メモリに動作可能に結合されたハードウェアプロセッサとを備え、前記ハードウェアプロセッサは、
前記複数のビデオブロックのうちのビデオブロックについて複数の色空間のうちの1つを選択することと、
前記選択された色空間中にない、前記複数のビデオブロックのうちのあらゆるビデオブロックに色変換を適用し、前記複数のビデオブロックのうちのビデオブロックのすべてが、前記選択された色空間中にあることを検証することと、
前記選択された色空間に基づいて、前記複数のビデオブロックの各々のひずみ値を決定することと
を行うように構成された、
装置。
[C2]
前記ハードウェアプロセッサは、
前記複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
前記複数のコーディングモードのうちのどのコーディングモードが前記初期色空間に適合するかを決定することと、
符号化されたブロックを与えるために、前記適合するコーディングモードを用いて、前記複数のビデオブロックのうちの前記ビデオブロックを符号化することと
を行うようにさらに構成された、C1に記載の装置。
[C3]
前記ハードウェアプロセッサは、
前記複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
適合する色ブロックを与えるために、前記初期色空間に前記色変換を適用することと、
符号化されたブロックを与えるために、前記初期色空間に適合しない前記コーディングモードを用いて、前記適合する色ブロックを符号化することと
を行うようにさらに構成された、C1に記載の装置。
[C4]
前記ハードウェアプロセッサが、前記ビデオブロックと前記符号化されたブロックとから残差ブロックを計算するようにさらに構成され、前記残差ブロックが、前記ビデオブロックと前記符号化されたブロックとの間の差分を示す、C2に記載の装置。
[C5]
前記ひずみ値を決定することが、前記残差ブロックの前記ひずみ値を決定することを備える、C4に記載の装置。
[C6]
前記選択された色空間がルーマクロマ色空間を備え、ここにおいて、前記ひずみ値を決定することが、前記ルーマクロマ色空間の各クロマ成分を正規化することを備える、C1に記載の装置。
[C7]
前記ビデオブロックがある数の色平面を備え、ここにおいて、前記ビデオブロックの前記ひずみ値を決定することが、
前記数の色平面のうちの各色平面の絶対差分和と、
前記数の色平面のうちの各色平面の2乗誤差和と
のうちの少なくとも1つを備える、C1に記載の装置。
[C8]
前記色変換が変換行列に基づき、前記変換行列が、前記選択された色空間の色平面の数を示す数の列によって定義され、ここにおいて、前記ハードウェアプロセッサが、前記数の列のうちの列のユークリッドノルムに基づいて重み値を決定するようにさらに構成された、C1に記載の装置。
[C9]
前記変換されたビデオブロックの前記ひずみ値は、
前記数の色平面のうちの各色平面の絶対差分和と、ここにおいて、各色平面が、ある数の重み値のうちの対応する重み値を乗算される、
前記数の色平面のうちの各色平面の2乗誤差和と、ここにおいて、各色平面が、前記数の重みのうちの前記対応する重みを乗算される、
のうちの少なくとも1つに基づく、C8に記載の装置。
[C10]
前記選択された色空間が、ルーマクロマ色空間とRGB色空間とのうちの少なくとも1つ中にある、C1に記載の装置。
[C11]
ひずみ値を決定することが、(i)前記複数のビデオブロックの各々の前記ひずみ値、(ii)ラムダ値、および(iii)前記ビデオブロックを通信するためのビットストリームレートに基づいて、前記複数のコーディングモードのうちのコーディングモードを決定することをさらに備える、C1に記載の装置。
[C12]
前記複数のビデオブロックのうちの各ビデオブロックが、前記複数のコーディングモードのうちのあらゆるコーディングモードを使用して符号化された単一のビデオブロックを示す、C1に記載の装置。
[C13]
ビデオデータをコーディングする方法であって、
複数のビデオブロックのうちのビデオブロックについて複数の色空間のうちの1つを選択することと、
前記選択された色空間中にない、前記複数のビデオブロックのうちのあらゆるビデオブロックに色変換を適用し、前記複数のビデオブロックのうちのビデオブロックのすべてが、前記選択された色空間中にあることを検証することと、
前記選択された色空間に基づいて、前記複数のビデオブロックの各々のひずみ値を決定することと
を備える、方法。
[C14]
前記複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
複数のコーディングモードのうちのどのコーディングモードが前記初期色空間に適合するかを決定することと、
符号化されたブロックを与えるために、適合するコーディングモードを用いて、前記複数のビデオブロックのうちの前記ビデオブロックを符号化することと
をさらに備える、C13に記載の方法。
[C15]
複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
適合する色ブロックを与えるために、前記初期色空間に前記色変換を適用することと、
符号化されたブロックを与えるために、前記初期色空間に適合しないコーディングモードを用いて、前記適合する色ブロックを符号化することと
をさらに備える、C13に記載の方法。
[C16]
前記ビデオブロックと前記符号化されたブロックとから残差ブロックを計算することをさらに備え、前記残差ブロックが、前記ビデオブロックと前記符号化されたブロックとの間の差分を示す、C14に記載の方法。
[C17]
ひずみ値を決定することが、(i)前記複数のビデオブロックの各々の前記ひずみ値、(ii)ラムダ値、および(iii)前記ビデオブロックを通信するためのビットストリームレートに基づいて、前記複数のコーディングモードのうちのコーディングモードを決定することをさらに備える、C13に記載の方法。
[C18]
デバイスによって実行されたとき、前記デバイスに、
複数のビデオブロックのうちのビデオブロックについて複数の色空間のうちの1つを選択することと、
前記選択された色空間中にない、前記複数のビデオブロックのうちのあらゆるビデオブロックに色変換を適用し、前記複数のビデオブロックのうちのビデオブロックのすべてが、前記選択された色空間中にあることを検証することと、
前記選択された色空間に基づいて、前記複数のビデオブロックの各々のひずみ値を決定することと
を行わせる、命令を備える非一時的コンピュータ可読媒体。
[C19]
前記複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
複数のコーディングモードのうちのどのコーディングモードが前記初期色空間に適合するかを決定することと、
符号化されたブロックを与えるために、適合するコーディングモードを用いて、前記複数のビデオブロックのうちの前記ビデオブロックを符号化することと
をさらに備える、C18に記載の非一時的コンピュータ可読媒体。
[C20]
複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
適合する色ブロックを与えるために、前記初期色空間に前記色変換を適用することと、
符号化されたブロックを与えるために、前記初期色空間に適合しないコーディングモードを用いて、前記適合する色ブロックを符号化することと
をさらに備える、C18に記載の非一時的コンピュータ可読媒体。

Claims (20)

  1. ビデオデータをコーディングするための装置であって、
    複数のコーディングモードに関する情報と、複数のビデオブロックを備える前記ビデオデータとを記憶するためのメモリと、
    前記メモリに動作可能に結合されたハードウェアプロセッサと、を備え、前記ハードウェアプロセッサは、
    前記ビデオデータの複数の色空間に基づいて、前記複数のコーディングモードを用いて符号化された、前記複数のビデオブロックのうちの1つのビデオブロックを表す複数の再構成されたビデオブロックを生成することと、
    前記複数の再構成されたビデオブロックについて、複数の色空間のうちの1つを選択することと、
    前記選択された色空間における、前記複数の再構成されたビデオブロックのそれぞれについてひずみ値を決定するために、前記選択された色空間以外の色空間から前記選択された色空間への色変換行列から重みを導出すること、および、前記複数の再構築されたビデオブロックの前記選択された色空間以外の色空間における色平面についてのひずみ値に、前記重みを適用することと、
    前記複数の再構成されたビデオブロックの各々についての前記それぞれのひずみ値に基づいて、前記複数のコーディングモードから、前記1つのビデオブロックをコーディングするために使用されるべきコーディングモードを決定することと、
    を行うように構成された、装置。
  2. 前記ハードウェアプロセッサは、
    前記複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
    前記複数のコーディングモードのうちのどのコーディングモードが前記初期色空間に適合するかを決定することと、
    符号化されたブロックを与えるために、適合するコーディングモードを用いて、前記複数のビデオブロックのうちの前記ビデオブロックを符号化することと、
    を行うようにさらに構成された、請求項1に記載の装置。
  3. 前記ハードウェアプロセッサは、
    前記複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
    適合する色空間ブロックを与えるために、前記初期色空間に前記色変換を適用することと、
    符号化されたブロックを与えるために、前記初期色空間に適合しない前記コーディングモードを用いて、前記適合する色空間ブロックを符号化することと、
    を行うようにさらに構成された、請求項1に記載の装置。
  4. 前記ハードウェアプロセッサが、前記ビデオブロックと前記再構成されたビデオブロックとから残差ブロックを計算するようにさらに構成され、前記残差ブロックが、前記ビデオブロックと前記再構成されたビデオブロックとの間の差分を示す、請求項2に記載の装置。
  5. 前記ひずみ値を決定することが、前記残差ブロックの前記ひずみ値を決定することを備える、請求項4に記載の装置。
  6. 前記選択された色空間がルーマクロマ色空間を備え、ここにおいて、前記ひずみ値を決定することが、前記ルーマクロマ色空間の各クロマ成分を正規化することを備える、請求項1に記載の装置。
  7. 前記ビデオブロックがある数の色平面を備え、ここにおいて、前記再構成されたビデオブロックの前記ひずみ値を決定することが、
    前記数の色平面のうちの各色平面の絶対差分和と、
    前記数の色平面のうちの各色平面の2乗誤差和と、
    のうちの少なくとも1つを備える、請求項1に記載の装置。
  8. 前記色変換が変換行列に基づき、前記変換行列が、前記選択された色空間の色平面の数を示す列の数によって定義され、ここにおいて、前記ハードウェアプロセッサが、前記数の列のうちの各列のユークリッドノルムに基づいて、重みを決定するようにさらに構成された、請求項1に記載の装置。
  9. 前記変換された再構成されたビデオブロックの前記ひずみ値は、
    前記数の色平面のうちの各色平面の絶対差分和と、ここにおいて、各色平面が、ある数の重みのうちの対応する重みを乗算される、
    前記数の色平面のうちの各色平面の2乗誤差和と、ここにおいて、各色平面が、前記数の重みのうちの前記対応する重みを乗算される、
    のうちの少なくとも1つに基づく、請求項8に記載の装置。
  10. 前記選択された色空間が、ルーマクロマ色空間とRGB色空間とのうちの少なくとも1つ中にある、請求項1に記載の装置。
  11. ひずみ値を決定することは、(i)前記複数の再構成されたビデオブロックの各々の前記ひずみ値、(ii)ラムダ値、および(iii)前記ビデオブロックを通信するためのビットストリームレートに基づいて、前記複数のコーディングモードのうちの1つのコーディングモードを決定することをさらに備える、請求項1に記載の装置。
  12. 前記複数の再構成されたビデオブロックのうちの各再構成されたビデオブロックが、前記複数のコーディングモードのうちのあらゆるコーディングモードを使用して符号化された単一のビデオブロックを示す、請求項1に記載の装置。
  13. ビデオデータをコーディングする方法であって、
    前記ビデオデータの複数の色空間に基づいて、複数のコーディングモードを用いて符号化された、前記複数のビデオブロックのうちの1つのビデオブロックを表す複数の再構成されたビデオブロックを生成することと、
    前記複数の再構成されたビデオブロックについて、複数の色空間のうちの1つを選択することと、
    前記選択された色空間における、前記複数の再構築されたビデオブロックのそれぞれについてひずみ値を決定するために、前記選択された色空間以外の色空間から前記選択された色空間への色変換行列から重みを導出すること、および、前記複数の再構築されたビデオブロックの前記選択された色空間以外の色空間における色平面についてのひずみ値に、前記重みを適用することと、
    前記複数の再構成されたビデオブロックの各々についての前記それぞれのひずみ値に基づいて、前記複数のコーディングモードから、前記1つのビデオブロックをコーディングするために使用されるべきコーディングモードを決定することと、
    を備える、方法。
  14. 前記複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
    複数のコーディングモードのうちのどのコーディングモードが前記初期色空間に適合するかを決定することと、
    符号化されたブロックを与えるために、適合するコーディングモードを用いて、前記複数のビデオブロックのうちの前記ビデオブロックを符号化することと、
    をさらに備える、請求項13に記載の方法。
  15. 複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
    適合する色空間ブロックを与えるために、前記初期色空間に前記色変換を適用することと、
    符号化されたブロックを与えるために、前記初期色空間に適合しないコーディングモードを用いて、前記適合する色空間ブロックを符号化することと、
    をさらに備える、請求項13に記載の方法。
  16. 前記ビデオブロックと前記再構成されたビデオブロックとから残差ブロックを計算することをさらに備え、前記残差ブロックが、前記ビデオブロックと前記再構成されたビデオブロックとの間の差分を示す、請求項14に記載の方法。
  17. ひずみ値を決定することは、(i)前記複数の再構成されたビデオブロックの各々の前記ひずみ値、(ii)ラムダ値、および(iii)前記ビデオブロックを通信するためのビットストリームレートに基づいて、前記複数のコーディングモードのうちの1つのコーディングモードを決定することをさらに備える、請求項13に記載の方法。
  18. デバイスによって実行されたとき、前記デバイスに、
    前記ビデオデータの複数の色空間に基づいて、複数のコーディングモードを用いて符号化された、前記複数のビデオブロックのうちの1つのビデオブロックを表す複数の再構成されたビデオブロックを生成することと、
    前記複数の再構成されたビデオブロックについて、複数の色空間のうちの1つを選択することと、
    前記選択された色空間における、前記複数の再構築されたビデオブロックのそれぞれについてひずみ値を決定するために、前記選択された色空間以外の色空間から前記選択された色空間への色変換行列から重みを導出すること、および、前記複数の再構築されたビデオブロックの前記選択された色空間以外の色空間における色平面についてのひずみ値に、前記重みを適用することと、
    前記複数の再構成されたビデオブロックの各々についての前記それぞれのひずみ値に基づいて、前記複数のコーディングモードから、前記1つのビデオブロックをコーディングするために使用されるべきコーディングモードを決定することと、
    を行わせる、命令を備える非一時的コンピュータ可読媒体。
  19. 前記複数のビデオブロックのうちの各ビデオブロックの初期色空間を決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
    複数のコーディングモードのうちのどのコーディングモードが前記初期色空間に適合するかを決定することと、
    符号化されたブロックを与えるために、適合するコーディングモードを用いて、前記複数のビデオブロックのうちの前記ビデオブロックを符号化することと、
    をさらに備える、請求項18に記載の非一時的コンピュータ可読媒体。
  20. 複数のコーディングモードのうちのどのコーディングモードが初期色空間に適合しないかを決定することと、前記初期色空間が、前記色変換の適用より前の各ビデオブロックの前記色空間である、
    適合する色空間ブロックを与えるために、前記初期色空間に前記色変換を適用することと、
    符号化されたブロックを与えるために、前記初期色空間に適合しないコーディングモードを用いて、前記適合する色空間ブロックを符号化することと
    をさらに備える、請求項18に記載の非一時的コンピュータ可読媒体。
JP2018535832A 2016-01-11 2017-01-05 ディスプレイストリーム圧縮(dsc)におけるひずみを計算するためのシステムおよび方法 Active JP6772275B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662277379P 2016-01-11 2016-01-11
US62/277,379 2016-01-11
US15/398,567 US10448024B2 (en) 2016-01-11 2017-01-04 System and methods for calculating distortion in display stream compression (DSC)
US15/398,567 2017-01-04
PCT/US2017/012331 WO2017123451A1 (en) 2016-01-11 2017-01-05 System and methods for calculating distortion in display stream compression (dsc)

Publications (3)

Publication Number Publication Date
JP2019507530A JP2019507530A (ja) 2019-03-14
JP2019507530A5 JP2019507530A5 (ja) 2019-12-26
JP6772275B2 true JP6772275B2 (ja) 2020-10-21

Family

ID=59276081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018535832A Active JP6772275B2 (ja) 2016-01-11 2017-01-05 ディスプレイストリーム圧縮(dsc)におけるひずみを計算するためのシステムおよび方法

Country Status (10)

Country Link
US (1) US10448024B2 (ja)
EP (1) EP3403408B1 (ja)
JP (1) JP6772275B2 (ja)
KR (1) KR102175662B1 (ja)
CN (1) CN108432249B (ja)
BR (1) BR112018013964A2 (ja)
HK (1) HK1254970A1 (ja)
SG (1) SG11201804403TA (ja)
TW (1) TWI686078B (ja)
WO (1) WO2017123451A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4044593A4 (en) * 2019-10-09 2023-07-19 Apple Inc. METHOD AND DEVICE FOR ENCODING/DECODING VIDEO SIGNALS
JP7310022B2 (ja) * 2019-11-28 2023-07-18 エルジー エレクトロニクス インコーポレイティド 映像/ビデオエンコーディング/デコーディングシステムにおけるスライスに関する情報のシグナリング方法及び装置
US11481929B2 (en) * 2020-03-16 2022-10-25 Meta Platforms Technologies, Llc System and method for compressing and decompressing images using block-based compression format
CN117579839B (zh) * 2024-01-15 2024-03-22 电子科技大学 一种基于率失真优化色彩空间转换矩阵的图像压缩方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7317759B1 (en) 2002-02-28 2008-01-08 Carnegie Mellon University System and methods for video compression mode decisions
JP5101522B2 (ja) * 2006-01-13 2012-12-19 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 適応色空間変換を用いた画像符号化
US8243340B2 (en) * 2006-02-23 2012-08-14 Microsoft Corporation Pre-processing of image data for enhanced compression
CN100563347C (zh) * 2006-10-30 2009-11-25 华为技术有限公司 视频通讯中视频显示设备伽玛特性校正方法和装置
CN101627625A (zh) * 2007-03-13 2010-01-13 索尼株式会社 通信系统、发送装置、发送方法、接收装置以及接收方法
US10277907B2 (en) * 2012-10-25 2019-04-30 Integrated Device Technology, Inc. Rate-distortion optimizers and optimization techniques including joint optimization of multiple color components
US9280806B2 (en) * 2013-01-10 2016-03-08 Broadcom Corporation Edge smoothing block filtering and blending
US9177393B2 (en) * 2013-02-04 2015-11-03 Qualcomm Incorporated Mixed mode for frame buffer compression
US20140376611A1 (en) * 2013-06-21 2014-12-25 Qualcomm Incorporated Adaptive color transforms for video coding
US9609343B1 (en) * 2013-12-20 2017-03-28 Google Inc. Video coding using compound prediction
US10631005B2 (en) 2014-04-21 2020-04-21 Qualcomm Incorporated System and method for coding in block prediction mode for display stream compression (DSC)
US9877048B2 (en) * 2014-06-09 2018-01-23 Qualcomm Incorporated Entropy coding techniques for display stream compression (DSC)
US20150373327A1 (en) * 2014-06-20 2015-12-24 Qualcomm Incorporated Block adaptive color-space conversion coding
US20170105012A1 (en) * 2015-10-08 2017-04-13 Mediatek Inc. Method and Apparatus for Cross Color Space Mode Decision

Also Published As

Publication number Publication date
BR112018013964A2 (pt) 2018-12-11
US20170201753A1 (en) 2017-07-13
WO2017123451A1 (en) 2017-07-20
EP3403408B1 (en) 2023-05-03
EP3403408A1 (en) 2018-11-21
CN108432249B (zh) 2022-04-29
KR102175662B1 (ko) 2020-11-06
JP2019507530A (ja) 2019-03-14
KR20180102565A (ko) 2018-09-17
SG11201804403TA (en) 2018-07-30
TWI686078B (zh) 2020-02-21
HK1254970A1 (zh) 2019-08-02
CN108432249A (zh) 2018-08-21
US10448024B2 (en) 2019-10-15
TW201728173A (zh) 2017-08-01

Similar Documents

Publication Publication Date Title
EP3632114B1 (en) Substream multiplexing for display stream compression
KR102229045B1 (ko) 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들
US10362310B2 (en) Entropy coding techniques for display stream compression (DSC) of non-4:4:4 chroma sub-sampling
EP3284253B1 (en) Rate-constrained fallback mode for display stream compression
JP6453360B2 (ja) ディスプレイストリーム圧縮(dsc)のためのラグランジュパラメータ計算のためのシステムおよび方法
US10631005B2 (en) System and method for coding in block prediction mode for display stream compression (DSC)
CN108702513B (zh) 用于在显示流压缩中量化参数的适应性计算的设备及方法
JP6772266B2 (ja) ディスプレイストリーム圧縮(dsc)における固定小数点近似のためのシステムおよび方法
JP6772275B2 (ja) ディスプレイストリーム圧縮(dsc)におけるひずみを計算するためのシステムおよび方法
KR102282260B1 (ko) 멀티-모드 비디오 코딩을 위해 공간 예측 모드로 비디오 코딩하기 위한 방법
JP2018515016A (ja) 表示ストリーム圧縮のための複雑領域検出
CN106664406B (zh) 用于确定用于显示流压缩的缓冲器满度的系统和方法
JP6800991B2 (ja) ディスプレイストリーム圧縮のためのベクトルベースエントロピーコード化のための装置および方法
JP2018515015A (ja) ディスプレイストリーム圧縮(dsc)のための量子化パラメータ(qp)更新分類
JP2018525901A (ja) ディスプレイストリーム圧縮における変換モード用ブロックサイズの変更

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180921

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191114

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191114

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200309

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200727

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200930

R150 Certificate of patent or registration of utility model

Ref document number: 6772275

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250