JP2017514353A - メッシュベースの計算を使用した低複雑な順変換のためのシステムおよび方法 - Google Patents

メッシュベースの計算を使用した低複雑な順変換のためのシステムおよび方法 Download PDF

Info

Publication number
JP2017514353A
JP2017514353A JP2016557586A JP2016557586A JP2017514353A JP 2017514353 A JP2017514353 A JP 2017514353A JP 2016557586 A JP2016557586 A JP 2016557586A JP 2016557586 A JP2016557586 A JP 2016557586A JP 2017514353 A JP2017514353 A JP 2017514353A
Authority
JP
Japan
Prior art keywords
video
transform
stage output
conversion stage
transformation
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
JP2016557586A
Other languages
English (en)
Other versions
JP2017514353A5 (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 JP2017514353A publication Critical patent/JP2017514353A/ja
Publication of JP2017514353A5 publication Critical patent/JP2017514353A5/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/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/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
    • 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/18Methods 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 set of transform coefficients
    • 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

Landscapes

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

Abstract

本明細書では、メッシュベースの計算を使用した低複雑な順変換のためのシステムおよび方法について説明する。本開示で説明する主題の一態様は、ビデオ情報を記憶するように構成されたメモリを備えるビデオエンコーダを提供する。ビデオエンコーダは、メモリと通信しているプロセッサをさらに備える。プロセッサは、変換を複数の変換段階に分解することを行うように構成される。プロセッサは、各変換段階における変換段階出力を決定するために複数の段階を使用してビデオ情報を変換することを行うようにさらに構成される。プロセッサは、各変換段階における変換段階出力を所定のビット深度に制約することを行うようにさらに構成される。プロセッサは、複数の段階の最後の段階の制約された変換出力に対して演算を実行すること、ここにおいて、演算が、所定のビット深度を有するデータとともに使用するためにのみ利用可能である、を行うようにさらに構成される。

Description

[0001]本開示は、ビデオ符号化に関する。
[0002]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータもしくはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話もしくは衛星無線電話、スマートフォン、ビデオ会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、Part 10、アドバンストビデオコーディング(AVC:Advanced Video Coding)、高効率ビデオコーディング(HEVC)によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法など、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
[0003]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間的(ピクチャ内)予測および/または時間的(ピクチャ間)予測を含む。ブロックベースのビデオコーディングでは、ビデオスライス(たとえば、ビデオフレームまたはビデオフレームの一部分)は、ツリーブロック、コーディングユニット(CU)、および/またはコーディングノードと呼ばれることもある、ビデオブロックに区分され得る。CUの予測ビデオデータを決定するために、CUはさらに1つまたは複数の予測ユニット(PU)に区分され得る。ビデオ圧縮技法はまた、CUを、コーディングされるべきビデオブロックと予測ビデオデータとの間の差を表す残差ビデオブロックデータの1つまたは複数の変換ユニット(TU)に区分し得る。2次元離散コサイン変換(DCT)などの線形変換をTUに適用して残差ビデオブロックデータをピクセル領域から周波数領域に変換して、さらなる圧縮を実現し得る。さらに、ピクチャのイントラコード化(I)スライスの中のビデオブロックは、同じピクチャの中の隣接ブロックにおける参照サンプルに対する空間的予測を使用して符号化され得る。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間的予測、または他の参照ピクチャ中の参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
[0004]空間的予測または時間的予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コード化ブロックと予測ブロックとの間の差分を示す。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。最初に2次元アレイで構成された量子化変換係数は、変換係数の1次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピー符号化が適用され得る。
[0005]AVCなどのより古いビデオ規格では、順変換および逆変換のサイズ(たとえば、4×4および8×8)は、ビデオ符号化のパフォーマンスのボトルネックとして作用しなかった。しかしながら、より最近のHEVC規格は、16×16および32×32までの順方向変換サイズおよび逆変換サイズを利用し、これは、HEVCプロセスの制限ファクタとして作用する。より大きい変換は、ピクセル領域から係数領域に変換するときに複雑さが増し、より多くのサイクルを処理することが必要になる。コーディング効率のために、規格は、ビデオエンコーダ中の大きい順変換ベクトルを複数の段階に分解するプロセス(たとえば、「メッシュベースの方法」、「バタフライ方法」または「偶数奇数分解」)と各段階において内部ビット深度を制約することとから利益を得る。本明細書で開示する技法のいくつかの利点は、ビデオエンコーダ中の大きい順変換ベクトルを複数の段階に分解し、各段階において内部ビット深度を制約することによってビデオ符号化中のコーディング効率を改善し、計算リソース要件を低減することに関する。
[0006]概して、本開示は、大きい順変換を複数の段階に分解し(たとえば、順変換を実装するメッシュベースの方法)、計算効率の良い命令セットを収容し得るレベルに各段階において内部ビット深度を制約することによってビデオ符号化パフォーマンスを改善することに関する技法について説明する。たとえば、変換に対する入力ビット深度は、9ビットであり得、開始内部ビット深度は、16ビットよりも大きくなり得るが、ビデオエンコーダは、飽和論理を使用して(たとえば、内部値を16ビットにクリッピングして)変換の内部ビット深度を16ビットに制約するように構成され得る。ビデオ品質の損失を防ぐために、ビデオエンコーダは、偏差(たとえば、誤差)のレベルを測定し、レベルをしきい値と比較し、偏差のレベルがしきい値を超える場合、変換された係数のサブセットを再計算するようにさらに構成され得る。
[0007]1つまたは複数の例の詳細が以下の添付の図面および説明に記載されている。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
[0008]本開示で説明する主題の一態様は、ビデオ情報を記憶するように構成されたメモリを備えるビデオエンコーダを提供する。ビデオエンコーダは、メモリと通信しているプロセッサをさらに備える。プロセッサは、変換を複数の変換段階に分解することを行うように構成される。プロセッサは、各変換段階における変換段階出力を決定するために複数の段階を使用してビデオ情報を変換することを行うようにさらに構成される。プロセッサは、各変換段階における変換段階出力を所定のビット深度に制約することを行うようにさらに構成される。プロセッサは、複数の段階の最後の段階の制約された変換出力に対して演算を実行すること、ここにおいて、演算が、所定のビット深度を有するデータとともに使用するためにのみ利用可能である、を行うようにさらに構成される。
[0009]本開示で説明する主題の別の態様は、ビデオを符号化する方法を提供する。本方法は、ビデオ情報を記憶することを含む。本方法は、変換を複数の変換段階に分解することをさらに含む。本方法は、各変換段階における変換段階出力を決定するために複数の段階を使用してビデオ情報を変換することをさらに含む。本方法は、各変換段階における変換段階出力を所定のビット深度に制約することをさらに含む。本方法は、複数の段階の最後の段階の制約された変換出力に対して演算を実行すること、ここにおいて、演算が、所定のビット深度を有するデータとともに使用するためにのみ利用可能である、をさらに含む。
[0010]本開示で説明する主題の別の態様は非一時的コンピュータ可読媒体を提供する。本媒体は、実行されたとき、装置に、ビデオ情報を記憶することを行わせるコードを備える。本媒体は、実行されたとき、装置に、変換を複数の変換段階に分解することを行わせるコードをさらに備える。本媒体は、実行されたとき、装置に、各変換段階における変換段階出力を決定するために複数の段階を使用してビデオ情報を変換することを行わせるコードをさらに備える。本媒体は、実行されたとき、装置に、各変換段階における変換段階出力を所定のビット深度に制約することを行わせるコードをさらに備える。本媒体は、実行されたとき、装置に、複数の段階の最後の段階の制約された変換出力に対して演算を実行すること、ここにおいて、演算が、所定のビット深度を有するデータとともに使用するためにのみ利用可能である、を行わせるコードをさらに備える。
[0011]本開示で説明する主題の別の態様は、ビデオを符号化するための装置を提供する。本装置は、ビデオ情報を記憶するための手段を備える。本装置は、変換を複数の変換段階に分解するための手段をさらに備える。本装置は、各変換段階における変換段階出力を決定するために複数の段階を使用してビデオ情報を変換するための手段をさらに備える。本装置は、各変換段階における変換段階出力を所定のビット深度に制約するための手段をさらに備える。本装置は、複数の段階の最後の段階の制約された変換出力に対して演算を実行するための手段、ここにおいて、演算が、所定のビット深度を有するデータとともに使用するためにのみ利用可能である、をさらに備える。
[0012]本開示で説明する態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。 [0013]本開示で説明する態様による技法を実装し得るビデオエンコーダの一例を示すブロック図。 [0014]本開示で説明する態様による技法を実装し得るビデオデコーダの一例を示すブロック図。 [0015]たとえば、メッシュベースの計算を使用した低複雑な順変換の方法のフローチャート。 [0016]低複雑な順変換のための方法のフローチャート。
[0017]図面に示す様々な特徴は一定の縮尺で描かれていないことがある。したがって、様々な特徴の寸法は、明快のために恣意的に拡大または縮小されていることがある。さらに、図面のいくつかは、所与のシステム、方法またはデバイスの構成要素のすべてを示しているとは限らないことがある。最後に、本明細書および図の全体にわたって、同様の特徴を示すために同様の参照番号が使用されることがある。
[0018]本開示で説明する技法は、概して、特に、高効率ビデオコーディング(HEVC)規格およびそれの拡張に関してビデオ符号化中の順変換に関する。
[0019]ビデオコーディング規格は、ITU−T H.261と、ISO/IEC MPEG−1 Visualと、ITU−T H.262またはISO/IEC MPEG−2 Visualと、ITU−T H.263と、ISO/IEC MPEG−4 Visualと、そのスケーラブルビデオコーディング(SVC)拡張およびマルチビュービデオコーディング(MVC)拡張を含む(ISO/IEC MPEG−4 AVCとしても知られる)ITU−T H.264とを含む。さらに、ITU−Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG:Motion Picture Experts Group)とのジョイントコラボレーションチームオンビデオコーディング(JCT−VC:Joint Collaboration Team on Video Coding)によって開発された新しいビデオコーディング規格、高効率ビデオコーディング(HEVC)がある。
[0020]上述のように、AVC規格は、最大8×8変換サイズしか利用しなかったが、HEVC規格は、サイズが最大32×32の(たとえば、HEVCエンコーダでの)順変換および逆変換を利用する。より大きい変換サイズは、HEVCにおける大きいコードブロックのコーディング効率が増加するが、それらはまた、より小さい変換サイズを使用することと比較して複雑さ、計算サイクル、および処理時間が増加する。本開示で説明する方法は、エンコーダがピクセル領域から係数領域にビデオ情報を変換するときに必要とされる複雑さおよびサイクルの増加を低減し得る。たとえば、いくつかの方法は、ビデオエンコーダ中の大きい順変換ベクトルを複数の段階に分解することと(たとえば、メッシュベースの方法)、各段階において内部ビット深度を制約することとを含む。
[0021]いくつかの実装形態では、残差領域から係数領域に転換するために(たとえば、順変換を実装するメッシュベースの方法または「バタフライ」方法を使用して)大きい順変換を複数の段階に分解することは、行列乗算方法を使用するよりも効率的な処理を生じ得る。以下の付録Aのコードに、メッシュベースのN×Nの変換の実装形態の一例を示す。一実装形態では、変換ユニット(たとえば、16×16の変換)は、256個の残差ソースピクセル(たとえば、付録AにおけるpSrc)で開始し得、その各々がルーマ値を表し得る。プロセッサまたはエンコーダ(たとえば、図2のエンコーダ20の変換処理ユニット52)は、次いで、ソースピクセルごとに1つずつ、256個の出力係数(たとえば、付録AにおけるpDst)を決定し得る。第1の段階の後に、プロセッサまたはエンコーダ(たとえば、変換処理ユニット52)は、次いで、2つのピクセルの128個の和と2つのピクセルの128個の差と(たとえば、付録AのnEのものとnOのものと)を決定し得る。第2の処理段階中に、プロセッサまたはエンコーダは、ペアの和と差の和とを決定するために、nEとnOとの和および差を使用し得る。4つの段階の後に、プロセッサまたはエンコーダは、出力係数(たとえば、pDst)を生成し得る。(付録Aに示した)このメッシュベースの方法を使用して、フルサイズの変換は、いくつかのより小さい、あまり複雑でない変換に分解され得、これは、一緒に乗じられた場合、フルサイズの変換を再び生成することになる。
[0022]上記で説明したメッシュ方法などのメッシュ方法または任意の他の分解方法を実行した後に、本開示で説明する方法は、各段階において内部ビット深度をあるレベルに制約するようにプロセッサまたはエンコーダを構成して、プロセッサまたはエンコーダが、そのレベルのためにさらに計算効率の良い命令セットを利用することを可能にし得る。実際、いくつかのエンコーダおよびデコーダは、いくつかのビット深度を有する入力とともに使用するためにのみ利用可能である計算効率の良い命令セットを含む。たとえば、変換に対する入力ビット深度は、9ビットであり得、開始内部ビット深度は、16ビットよりも大きくなり得るが、ビデオエンコーダは、変換の各分解された段階の内部ビット深度(たとえば、変換出力ビット深度だけではなく変換演算中のビット深度)を16ビットに制約するように構成され得る。各段階の内部ビット深度が16ビットに制約されるので、プロセッサは、16ビット演算とともに使用するために特に設計された計算効率の良い命令セット(たとえば、ARMアーキテクチャ、Advanced SIMD(NEON)、デジタル信号処理(DSP)など)を利用し得る。一実装形態では、ビデオエンコーダは、飽和論理を使用して(たとえば、内部値を16ビットにクリッピングして)各段階において内部ビット深度を制約し得る。
[0023]場合によっては、変換段階においてビット深度を制約することは、最終ビデオ品質の低下をもたらし得る。この結果を防ぐために、本開示で説明する方法は、制約プロセスによって生じる偏差(たとえば、誤差)のレベルを測定し得る。本方法は、次いで、偏差のレベルを所定のしきい値(たとえば、耐久限界)と比較し、次いで、偏差のレベルが所定のしきい値を超える場合、変換された係数のサブセットを再計算し得る。このようにしてビット深度を制約し、係数のサブセットを再計算することによって、本開示で説明する方法により、ビデオエンコーダの変換処理ユニットが、ビデオ品質をも保持しながら、より少ない計算リソースを使用することが可能になり得る。
[0024]ブロックベースの処理を使用するビデオコーデック(たとえば、ビデオフレームがビデオブロックまたはコーディングユニットに区分され得るHEVC)では、(たとえば、インター予測またはイントラ予測からの)予測ブロックまたは予測ユニットが元のピクセルから減算され得る。上記でさらに説明したように、残差データは、次いで、順変換(たとえば、離散コサイン変換)を使用して残差変換係数に変換され、量子化され、(たとえば、さらなる圧縮を達成するために)エントロピー符号化され得る。エントロピー符号化は、以下でさらに説明する様々なエントロピーコーディングエンジン(たとえば、CAVLC、CABACなど)を使用して実行され得る。その後、同じく以下でさらに説明するように、デコーダは、次いで、係数をエントロピー復号し、逆量子化し、逆変換し得る。最後に、係数は、予測ブロックに追加されて、再構成されたピクセルを形成し得る。
[0025]ビデオコーディングの一実施形態では、画像ブロックは、最初に、再構成された、一時的におよび/または空間的に隣接するブロック中のピクセルを使用して予測され得る。(「残余」と呼ばれることがある)予測誤差が、次いで、変換され、量子化され得る。たとえば、Sが、サイズがN×Nの残余ブロックである場合、変換されたブロックKは、次のように行列乗算を使用して導出され得る。
Figure 2017514353
ここで、K、A、およびBも、N×Nのサイズである。Aは垂直変換行列であり、Bは水平変換行列である。いくつかの実施形態では、AおよびBは、互いの転置である(たとえば、B=A’であり、ここで、「’」は転置を意味する)。他の実施形態では、AおよびBは、互いの転置でない。AおよびBが互いの転置であるとき、前の式は次のようになる。
Figure 2017514353
[0026]各変換(AおよびB)は、様々な変換のいずれかを含み得る。いくつかの実施形態では、変換は、離散コサイン変換(DCT)、離散サイン変換(DST)、アダマール変換、ハール変換などのうちの1つを含む。
[0027]SVC拡張では、ビデオ情報の複数のレイヤがあり得る。最下層は、ベースレイヤ(BL)として働き得、最上層は、拡張レイヤ(EL)または「エンハンスメントレイヤ」として働き得る。最上層と最下層との間のすべてのレイヤは、ELまたはBLの一方または両方として働き得る。SVCは、品質スケーラビリティ(または信号対雑音比、SNR)、空間スケーラビリティ、および/または時間スケーラビリティを与えるために使用され得る。エンハンストレイヤは、ベースレイヤとは異なる空間解像度を有し得る。現在のブロックの予測は、SVCのために与えられる様々なレイヤを使用して実行され得る。そのような予測は、レイヤ間予測と呼ばれることがある。レイヤ間予測方法は、レイヤ間冗長性を低減するためにSVCにおいて利用され得る。レイヤ間予測のいくつかの例としては、レイヤ間イントラ予測、レイヤ間動き予測、およびレイヤ間残差予測があり得る。レイヤ間イントラ予測は、エンハンスメントレイヤ中の現在のブロックを予測するために、ベースレイヤ中のコロケートされたブロックの再構成を使用する。レイヤ間動き予測は、エンハンスメントレイヤ内の動きを予測するのにベースレイヤの動きを使用する。レイヤ間残差予測は、エンハンスメントレイヤの残差を予測するために、ベースレイヤの残差を使用する。「イントラBLモード」と呼ばれる、エンハンスメントレイヤのための1つの特定のコーディングモードは、ベースレイヤ中の対応する(「コロケートされた」と呼ばれる、たとえば、同じ空間的ロケーションに位置する)ブロックのテクスチャを使用して予測され得るテクスチャを含む。
[0028]レイヤ間残差予測では、ベースレイヤの残差は、エンハンスメントレイヤ中の現在のブロックを予測するために使用され得る。残差は、ビデオユニットの時間的予測とソースビデオユニットとの間の差分として定義され得る。残差予測では、ベースレイヤの残余はまた、現在のブロックを予測する際に考慮される。たとえば、現在のブロックは、エンハンスメントレイヤからの残余、エンハンスメントレイヤからの時間的予測、およびベースレイヤからの残余を使用して再構成され得る。現在のブロックは以下の式に従って再構成され得る。
Figure 2017514353
ここで、
Figure 2017514353
は現在のブロックの再構成を示し、reはエンハンスメントレイヤからの残余を示し、Peはエンハンスメントレイヤからの時間的予測を示し、rbはベースレイヤからの残余予測を示す。
[0029]差分領域を使用したインターコーディングの場合、現在予測ブロックは、エンハンスメントレイヤ参照ピクチャ中の対応する予測ブロックサンプルと、スケーリングされたベースレイヤ参照ピクチャ中の対応する予測ブロックサンプルとの間の差分値に基づいて決定される。差分値は差分予測ブロック(difference predicted block)と呼ばれることがある。エンハンスメントレイヤ予測サンプルを取得するために、コロケートベースレイヤ再構成サンプルが差分予測ブロックに追加される。
[0030]本開示で説明する技法は、HEVCにおける順変換の行列乗算中の複雑な計算要件に関する問題に対処し得る。本技法は、エンコーダおよび/または変換処理ユニットが順変換行列乗算を実行し得る速度、効率、および有効性を改善し得る。
[0031]添付の図面を参照しながら、新規のシステム、装置、および方法の様々な態様について、以下でより十分に説明する。ただし、本開示は、多くの異なる形態で具現化される場合があり、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈されるべきではない。むしろ、本開示が、入念で完全であり、本開示の範囲を当業者に十分に伝達するように、これらの態様が提供される。本明細書の教示に基づいて、単独で実装されるか、それとも本発明の何らかの他の態様と組み合わされるかにかかわらず、本開示の範囲が本明細書で開示される新規なシステム、装置、および方法のどんな態様も包含するものとすることを当業者は理解されたい。たとえば、本明細書に記載の任意の数の態様を使用して装置が実装され得、または方法が実施され得る。さらに、本発明の範囲は、本明細書に記載の本発明の様々な態様に加えて、またはそれ以外の、他の構造、機能、または構造および機能を使用して実施される装置または方法を包含するものとする。本明細書で開示されるすべての態様が、ある請求項の1つまたは複数の要素によって実施され得ることを理解されたい。
[0032]特定の態様が本明細書で説明されるが、これらの態様の多数の変形および置換が、本開示の範囲に含まれる。好適な態様のいくつかの利益および利点について説明するが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、その一部が例として図面および好ましい態様の以下の説明において示される、異なるワイヤレス技術と、システム構成と、ネットワークと、伝送プロトコルとに幅広く適用可能であることが意図されている。この詳細な説明および図面は、限定的であるのではなく本開示の説明に役立つものにすぎず、本開示の範囲は、添付の特許請求の範囲とその同等物とによって定義される。
[0033]図1は、本開示で説明する態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図である。図1に示すように、ビデオ符号化および復号システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを提供するソースデバイス12を含む。特に、ソースデバイス12は、コンピュータ可読媒体16を介して宛先デバイス14にビデオデータを与える。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、電話ハンドセット(たとえば、スマートフォン)、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。場合によっては、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。
[0034]上述のように、宛先デバイス14は、コンピュータ可読媒体16を介して、復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、符号化されたビデオデータをソースデバイス12から宛先デバイス14に移動することが可能な、任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ可読媒体16は、ソースデバイス12が符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信するのを可能にするための通信媒体(図示せず)を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、または(インターネットなどの)グローバルネットワークのような、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を可能にするために有用であり得る任意の他の機器を含み得る。
[0035]いくつかの例では、符号化データは、出力インターフェース22からストレージデバイス(図示せず)に出力され得る。同様に、符号化データは入力インターフェース28によってストレージデバイスからアクセスされ得る。ストレージデバイスは、ハードドライブ、Blue−rayディスク、DVD、CD−ROM、フラッシュメモリ、揮発性もしくは不揮発性のメモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれをも含み得る。さらなる例では、ストレージデバイスは、ソースデバイス12によって生成された符号化ビデオを記憶することができるファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイスから記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバには、ウェブサーバ(たとえば、ウェブサイト用の)、FTPサーバ、ネットワークアタッチドストレージ(NAS)デバイス、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。データ接続は、ファイルサーバに記憶された符号化されたビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。ストレージデバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
[0036]本開示の技法は、ワイヤレス応用またはワイヤレス設定に必ずしも制限されない。本技法は、無線テレビジョンブロードキャスト、ケーブルテレビジョン送信、衛星テレビジョン送信、HTTP上の動的適応ストリーミング(DASH:dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の応用例など、様々なマルチメディア応用のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、ビデオテレフォニーなどの適用例のための一方向または双方向のビデオ送信をサポートするように構成され得る。
[0037]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオエンコーダ20は、複数の規格または規格拡張に準拠するビデオデータを含む、ビットストリームをコーディングするための技法を適用するように構成され得る。他の例では、ソースデバイス12および宛先デバイス14は、他の構成要素または構成を含み得る。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス14は、内蔵ディスプレイデバイス32ではなく、外部ディスプレイデバイスとインターフェースし得る。
[0038]概して、本開示の技法は、ビデオ符号化デバイスによって実行されるが、これらの技法は、通常は「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。さらに、本開示の技法はまた、ビデオプリプロセッサによって実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が、宛先デバイス14に送信するためのコーディングされたビデオデータを生成するコーディングデバイスの例にすぎない。いくつかの例では、ソースデバイス12および宛先デバイス14は、それらがそれぞれビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。したがって、システム10は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、ビデオテレフォニーなどのために、ソースデバイス12と宛先デバイス14との間の一方向または双方向のビデオ送信をサポートし得る。
[0039]ソースデバイス12のビデオソース18は、ビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどのビデオキャプチャデバイス(図示せず)を含み得る。さらなる代替として、ビデオソース18は、コンピュータグラフィックスベースのデータ、または、ライブビデオ、アーカイブされたビデオ、およびコンピュータ生成ビデオの組合せを生成することができる。場合によっては、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、カメラ付き携帯電話またはビデオ付き携帯電話であり得る。別の実施形態では、本開示で説明する技法は、ビデオコーディング全般に適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。各々の場合において、キャプチャされたビデオ、事前にキャプチャされたビデオ、またはコンピュータで生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は、次いで、出力インターフェース22によってコンピュータ可読媒体16に出力され得る。
[0040]コンピュータ可読媒体16は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信などの一時媒体、あるいはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−ray(登録商標)ディスク、または他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示せず)は、ソースデバイス12から符号化ビデオデータを受信し、たとえば、ネットワーク送信、直接ワイヤード通信などを介して、その符号化ビデオデータを宛先デバイス14に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピューティングデバイスは、ソースデバイス12から符号化されたビデオデータを受信し、その符号化されたビデオデータを包含しているディスクを生成し得る。したがって、コンピュータ可読媒体16は、様々な形態の1つまたは複数のコンピュータ可読媒体を含み得る。
[0041]宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信し得る。コンピュータ可読媒体16の情報は、ビデオエンコーダ20によって定義されるシンタックス情報を含み得る。シンタックス情報はまた、ビデオデコーダ30によって使用され得、これは、ブロックおよび他のコード化ユニットの特性および/または処理を記述するシンタックス要素を含み得る。ディスプレイデバイス32は、復号されたビデオデータをユーザに表示し得、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのうちのいずれかを備え得る。
[0042]ビデオエンコーダ20およびビデオデコーダ30は、高効率ビデオコーディング(HEVC)規格またはそれの変形形態のいずれか(たとえば、HEVCテストモデル(HM))などのビデオコーディング規格に従って動作し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、ITU−T H.264規格(MPEG−4)、Part10、アドバンストビデオコーディング(AVC)、ITU−T H.263、ITU−T H.262(ISO/IEC MPEG−2 Visual)、ISO/IEC MPEG−1 Visual、ITU−T H.261、またはいずれのそのような規格の拡張などの他のプロプライエタリまたは業界規格に従って動作し得る。いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、オーディオエンコーダ、オーディオデコーダ、MUX−DEMUXユニット(図示せず)、または他のハードウェアおよびソフトウェアと一体化され得る。
[0043]ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの様々な適切なエンコーダ回路のいずれかとして実装され得る。本開示の技法を実行する必要がある場合、ビデオエンコーダ20および/またはビデオデコーダ30は、好適な非一時的コンピュータ可読媒体中にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してハードウェアで命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20および/またはビデオデコーダ30を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルフォンなどのワイヤレス通信デバイスを備え得る。
[0044]HEVC規格は、ビデオフレームまたはピクチャが、ルーマサンプルとクロマサンプルの両方を含む一連のツリーブロックまたは最大コーディングユニット(LCU)に分割され得ることを規定する。ビットストリーム内のシンタックスデータが、ピクセルの数に関して最大のコーディングユニットであるLCUのサイズを定義し得る。スライスは、コーディングの順序で、いくつかの連続するツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスに区分化され得る。各ツリーブロックは、4分木に従ってコーディングユニット(CU)に分割され得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはツリーブロックに対応する。CUが4つのサブCUに分割される場合、CUに対応するノードは、4つのリーフノードを含み、その各々は、サブCUの1つに対応する。
[0045]4分木データ構造の各ノードは、対応するCUのためのシンタックスデータを与え得る。たとえば、4分木内のノードは、そのノードに対応するCUがサブCUに分割されるか否かを示すスプリットフラグを含み得る。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるか否かに依存し得る。CUがこれ以上分割されない場合、そのCUはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的な分割が存在しない場合でも、リーフCUの4つのサブCUはリーフCUと呼ばれる。たとえば、16×16サイズのCUがさらに分割されない場合、この16×16CUが決して分割されなくても、4つの8×8サブCUはリーフCUとも呼ばれることになる。
[0046]CUは、CUがサイズの特異性を有しないことを別にすれば、H.264規格のマクロブロックと同様の目的を有する。たとえば、ツリーブロックは、4つの子ノード(サブCUとも呼ばれる)に分割され得、各子ノードは、次に親ノードとなり、別の4つの子ノードに分割され得る。4分木のリーフノードと呼ばれる、最後の分割されない子ノードは、リーフCUとも呼ばれるコーディングノードを備える。コーディングされたビットストリームに関連するシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、また、コーディングノードの最小サイズを定義し得る。それに応じて、ビットストリームは最小コーディングユニット(SCU)をも定義し得る。本開示では、HEVCのコンテキストにおけるCU、PU、またはTU、あるいは他の規格のコンテキストにおける同様のデータ構造(たとえば、H.264/AVCにおけるマクロブロックおよびそれのサブブロック)のいずれかを指すために「ブロック」という用語を使用する。
[0047]CUは、コーディングノードと、コーディングノードと関連付けられた予測ユニット(PU)および変換ユニット(TU)とを含む。CUのサイズは、コーディングノードのサイズに対応し、形状が方形でなければならない。CUのサイズは、8×8ピクセルから、いくつかの事例では、64×64ピクセル以上の最大値を有するツリーブロックのサイズにまで及び得る。各CUは、1つまたは複数のPUと1つまたは複数のTUとを包含し得る。CUに関連付けられたシンタックスデータは、たとえば、1つまたは複数のPUへのCUの区分を記述し得る。区分モードは、CUがスキップモード符号化もしくは直接モード符号化されるか、イントラ予測モード符号化されるか、またはインター予測モード符号化されるかで異なり得る。PUは、形状が非方形に区分され得る。CUに関連するシンタックスデータはまた、たとえば、4分木に従うCUの1つまたは複数のTUへの区分を記述し得る。TUは、形状が方形または非方形(たとえば、長方形)であり得る。
[0048]HEVC規格は、異なるCUに対しては異なり得る、TUに従った変換を可能にする。TUは通常、区分されたLCUに対して定義される所与のCU内のPUのサイズに基づくサイズにされるが、必ずそうであるとは限らない。TUは、一般に、PUと同じサイズであるか、またはそれよりも小さい。いくつかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)と呼ばれる4分木構造を使用して、より小さいユニットに再分割され得る。RQTのリーフノードは、変換ユニット(TU)と呼ばれ得る。TUに関連するピクセル差分値は、変換係数を生成するために変換され、その変換係数は量子化され得る。
[0049]リーフCUは、1つまたは複数の予測ユニット(PU)を含み得る。概して、PUは、対応するCUの全部または一部分に対応する空間エリアを表し、そのPUの参照サンプルを取り出すためのデータを含み得る。その上、PUは、予測に関係するデータを含む。たとえば、PUがイントラモードで符号化されるとき、PUに関するデータは、PUに対応するTUに関するイントラ予測モードを記述するデータを含み得る残差4分木(RQT)内に含まれ得る。別の例として、PUがインターモードで符号化されるとき、PUは、PUのための1つまたは複数の動きベクトルを定義するデータを含み得る。PUのための動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの分解能(たとえば、1/4ピクセル精度または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルの参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述することができる。
[0050]1つまたは複数のPUを有するリーフCUは、1つまたは複数の変換ユニット(TU)を含み得る。変換ユニットは、上で論じられたように、RQT(TUの4分木構造とも呼ばれる)を使用して規定され得る。たとえば、分割フラグは、リーフCUが4つの変換ユニットに分割されるかどうかを示し得る。次いで、各変換ユニットは、さらなるサブTUに、さらに分割され得る。TUがこれ以上分割されないとき、そのTUはリーフTUと呼ばれ得る。一般に、イントラコーディングの場合、リーフCUに属するすべてのリーフTUは同じイントラ予測モードを共有する。すなわち、同じイントラ予測モードが、概して、リーフCUのすべてのTUの予測値を計算するために適用される。イントラコーディングの場合、ビデオエンコーダは、イントラ予測モードを使用して各リーフTUの残差値を、TUに対応するCUの一部分と元のブロックとの間の差分として計算し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。したがって、TUは、PUよりも大きくまたは小さくなり得る。イントラコーディングの場合、PUは、同じCUのための対応するリーフTUとコロケートされ得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
[0051]その上、リーフCUのTUは、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造にも関連付けられ得る。すなわち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。TU4分木のルートノードは概してリーフCUに対応し、CU4分木のルートノードは概してツリーブロック(またはLCU)に対応する。分割されないRQTのTUはリーフTUと呼ばれる。概して、本開示では、別段に明記されていない限り、リーフCUおよびリーフTUに言及するためにそれぞれCUおよびTUという用語を使用する。
[0052]ビデオシーケンスは、通常、一連のビデオフレームまたはピクチャを含む。ピクチャグループ(GOP)は、一般に、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOP中に含まれるいくつかのピクチャを記述するシンタックスデータを、GOPのヘッダ中、ピクチャの1つもしくは複数のヘッダ中、または他の場所に含み得る。ピクチャの各スライスは、それぞれのスライスの符号化モードを記述するスライスシンタックスデータを含み得る。図1のビデオエンコーダ20は、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作し得る。ビデオブロックは、CU内のコーディングノードに対応し得る。ビデオブロックは、固定サイズまたは可変サイズを有することができ、指定されたコーディング規格に従ってサイズが異なり得る。
[0053]HEVCは、様々なPUサイズにおける予測をサポートする。特定のCUのサイズが2N×2Nであると仮定すると、HEVCは、2N×2NまたはN×NのPUサイズにおけるイントラ予測と、2N×2N、2N×N、N×2N、またはN×Nの対称なPUサイズにおけるインター予測とをサポートする。HEVCは、また、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズでのインター予測のための、非対称な区分をサポートする。非対称区分では、CUの一方向は区分されないが、他の方向は25%および75%に区分される。25%パーティションに対応するCUの部分は、「n」、ならびにそれに続く「Up」、「Down」、「Left」、または「Right」の指示によって示される。したがって、たとえば、「2N×nU」は、上部で2N×0.5N PU、および下部で2N×1.5N PUに水平に区分される2N×2N CUを指す。
[0054]本開示では、「NxN」および「N×N(N by N)」は、垂直方向の寸法および水平方向の寸法に関するビデオブロックのピクセル寸法、たとえば、16x16ピクセルまたは16×16(16 by16)ピクセルを指すために互換的に使用され得る。概して、16×16ブロックは、垂直方向に16ピクセル(y=16)、および水平方向に16ピクセル(x=16)を有する。同様に、N×Nブロックは、垂直方向にNピクセル、水平方向にNピクセルを有し得、Nが非負の整数値を表す。ブロック中のピクセルは、行および列に配置され得る。さらに、ブロックは、必ずしも、水平方向において垂直方向と同一個数のピクセルを有するとは限らない。たとえば、ブロックはN×Mピクセルを備え得、ここで、Mは必ずしもNに等しいとは限らない。
[0055]CUのPUを使用したイントラ予測コーディングまたはインター予測コーディングに続いて、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、(ピクセル領域とも呼ばれる)空間領域において予測ピクセルデータを生成する方法またはモードを記述するシンタックスデータを備え得、TUは、変換、たとえば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換の適用後の、変換領域における係数を備え得る。残差データは、符号化されていないピクチャのピクセルと、PUに対応する予測値との間のピクセル差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを含むTUを形成し、次いで、CUのための変換係数を生成するために、TUを変換し得る。
[0056]変換係数を生成するための変換の後で、ビデオエンコーダ20は変換係数の量子化を実行し得る。量子化は、その最も広義の通常の意味を有することを意図された広義の用語である。一実施形態では、量子化は、さらなる圧縮を提供する、係数を表すのに使用されるデータの量をおそらくは減らすために変換係数が量子化されるプロセスを指す。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。たとえば、nビットの値は、量子化中にmビットの値に切り捨てられ得、ここで、nはmよりも大きい。
[0057]量子化の後に、ビデオエンコーダは、変換係数を走査して、量子化された変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、アレイの前部により高いエネルギー(したがって、より低い周波数)係数を配置し、アレイの後部により低いエネルギー(したがって、より高い周波数)係数を配置するように設計され得る。いくつかの例では、ビデオエンコーダ20は、エントロピー符号化され得るシリアル化ベクトルを生成するために、量子化された変換係数を走査するためにあらかじめ定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20は、適応スキャンを実行することができる。1次元ベクトルを形成するために、量子化された変換係数を走査した後、ビデオエンコーダ20は、たとえば、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化方法に従って、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30によって使用するための、符号化ビデオデータに関連付けられたシンタックス要素をエントロピー符号化し得る。
[0058]ビデオエンコーダ20は、さらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびGOPベースのシンタックスデータなどのシンタックスデータを、たとえば、フレームヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダ中で、ビデオデコーダ30へ送り得る。GOPシンタックスデータは、それぞれのGOP中のいくつかのフレームを記述し得、フレームシンタックスデータは、対応するフレームを符号化するために使用された符号化/予測モードを示し得る。
[0059]図2は、本開示で説明する態様による技法を実装し得るビデオエンコーダの一例を示すブロック図である。ビデオエンコーダ20のユニットのうちの1つまたは複数は、本開示の技法のいずれかまたはすべてを実行するように構成され得る。一例として、変換処理ユニット52は、本開示で説明する変換技法のいずれかまたはすべてを実行するように構成され得る。しかしながら、本開示の態様はそのように限定されない。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ20の様々な構成要素間で共有され得る。いくつかの例では、プロセッサ(図示せず)が、本開示で説明する技法のいずれかまたはすべてを実行するように構成され得る。
[0060]ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオの時間冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースコーディングモードのいずれかを指すことがある。単一方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのいずれかを指し得る。
[0061]ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在のビデオブロックを受信し得る。図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、参照フレームメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。モード選択ユニット40は、動き推定ユニット42と、動き補償ユニット44と、イントラ予測ユニット46と、パーティションユニット48とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含み得る。再構成されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタ処理するデブロッキングフィルタ(図示せず)を含めることもできる。所望される場合、デブロッキングフィルタは、通常、加算器62の出力をフィルタ処理することになる。デブロッキングフィルタに加えて、追加のフィルタ(ループ内またはループ後)も使用され得る。そのようなフィルタは、簡潔のために図示されないが、所望される場合、加算器50の出力を(インループフィルタとして)フィルタ処理し得る。
[0062]符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信し得る。フレームまたはスライスは複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間的予測を提供するために、1つまたは複数の参照フレーム内の1つまたは複数のブロックに対して、受信されたビデオブロックのインター予測コーディングを実行し得る。イントラ予測ユニット46は、代替的に、空間的予測を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対する受信されたビデオブロックのイントラ予測コーディングを実行し得る。ビデオエンコーダ20は、たとえば、ビデオデータのブロックごとに適当なコーディングモードを選択するために、複数のコーディングパスを実行し得る。
[0063]その上、区分ユニット48は、前のコーディングパスでの前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。たとえば、区分ユニット48は、最初にフレームまたはスライスをLCUに区分し、レート歪み分析(たとえば、レート歪み最適化)に基づいて、LCUの各々をサブCUに区分し得る。モード選択ユニット40は、サブCUへのLCUの区分を示す4分木データ構造をさらに生成し得る。4分木のリーフノードCUは、1つまたは複数のPUと1つまたは複数のTUとを含み得る。
[0064]モード選択ユニット40は、たとえば、誤差結果に基づいてコーディングモードのうちの1つ、すなわち、イントラまたはインターを選択し、得られたイントラコーディングまたはインターコーディングされたブロックを、残差ブロックデータを生成するために加算器50に与え、参照フレームとして使用するための符号化されたブロックを再構成するために加算器62に与え得る。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、区分情報、および他のそのようなシンタックス情報などの、シンタックス要素をエントロピー符号化ユニット56に与え得る。
[0065]動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定ユニット42によって実行される動き推定は、ビデオブロックに関する動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、現在のフレーム(または他のコード化ユニット)内でコーディングされている現在のブロックに対する参照フレーム(または他のコード化ユニット)内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきブロックにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、参照フレームメモリ64に記憶されている参照ピクチャの、サブ整数ピクセル位置に対する値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの4分の1ピクセル位置、8分の1ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対する動き探索を実行し、分数ピクセル精度で動きベクトルを出力し得る。
[0066]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックに関するPUの動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、参照フレームメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0067]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴い得る。この場合も、いくつかの例では、動き推定ユニット42と動き補償ユニット44とは機能的に統合され得る。現在のビデオブロックのPUの動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいて指す予測ブロックの位置を特定し得る。加算器50は、以下で説明するように、コーディングされている現在のビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成し得る。動き推定ユニット42はルーマ成分に対して動き推定を実行し得、動き補償ユニット44は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用し得る。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。シンタックス要素は、ビデオシーケンスレベル、ビデオフレームレベル、ビデオスライスレベル、ビデオCUレベル、またはビデオPUレベルのうちの1つまたは複数における予測情報を表し得る。たとえば、動き補償ユニット44は、CU、PU、およびTUのサイズを含むビデオブロック情報、ならびにイントラモード予測に関する動きベクトル情報を示すシンタックス要素を生成し得る。
[0068]イントラ予測ユニット46は、上記で説明したように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在のブロックをイントラ予測または計算し得る。特に、イントラ予測ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、たとえば別々の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用すべき適当なイントラ予測モードを選択し得る。
[0069]たとえば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードのためのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの間で最良のレート歪み特性を有するイントラ予測モードを選択し得る。レート歪み分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み(または誤差)の量、ならびに、符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレート歪み値を呈するかを決定するために、様々な符号化ブロックの歪みおよびレートから比を計算し得る。
[0070]ブロックのためのイントラ予測モードを選択した後、イントラ予測ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に与え得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブルおよび複数の修正されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、および修正されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを送信ビットストリーム中に含め得る。
[0071]ビデオエンコーダ20は、モード選択ユニット40からの予測データを、コーディングされている元のビデオブロックから減算することによって、残差ビデオブロックを形成する。加算器50は、この減算演算を実行し得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的には類似の変換などの変換を残差ブロックに適用し、残差変換係数の値を備えるビデオブロックを生成し得る。変換処理ユニット52は、DCTに概念的に類似する他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換または他のタイプの変換が使用され得る。変換処理ユニット52は、次いで、変換を残差ブロックに適用して、残差変換係数のブロックを生成し得る。変換処理ユニット52は、残差情報をピクセル値領域から周波数領域などの変換領域に変換し得る。より具体的には、変換の適用の前に、TUは、ピクセル領域中に残差ビデオデータを備え得、変換の適用の後、TUは、周波数領域中に残差ビデオデータを表す変換係数を備え得る。
[0072]従来、ビデオエンコーダ20は、実装されるビデオ圧縮規格によってサポートされるTUの様々なサイズの各々について別個のコンテキストモデルを維持する。HEVC規格の場合、ビデオ符号化効率を向上させるために、たとえば、32×32から128×128までの追加の変換ユニットサイズが使用され得るが、追加のTUサイズによって、追加の変換ユニットサイズの各々にコンテキストモデルを維持するためにメモリおよび計算要件も増大する。場合によっては、TUサイズが大きくなるにつれて使用されるコンテキストが多くなることがあり、したがって、より大きいTUサイズ用のより多くのコンテキストを維持するためにメモリおよび計算要件も増大する可能性がある。この問題の影響を低減するために、変換処理ユニット52は、行列乗算中に(「順変換」と呼ばれることがある)変換を簡略化し、それのビット深度を制約することに関して上記および以下で説明する方法(たとえば、以下で、図4〜図5に関して説明する内部ビット深度制約方法)のいずれかを実行するようにさらに構成され得る。
[0073]変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、次いで、ビットレートをさらに低減するために変換係数を量子化し得る。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。いくつかの例では、量子化ユニット54は、次いで、量子化された変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
[0074]一例として、変換処理ユニット52は、変換結果を所定のビット深度値(たとえば、16ビットのビット深度または他のビット深度値)に制約し得る。一実装形態では、変換処理ユニット52は、1つまたは複数の内部変換段階において変換結果を制約し得る。ビデオエンコーダ20は、次いで、所定のビット深度値のために最適化された特殊な命令セットを利用し得る。このようにして、変換処理ユニット52は、より速い処理速度を受け得る。このプロセスについて、図4中でさらに説明し、実証する。
[0075]上記で説明した例では、変換処理ユニット52は、変換結果を16ビット値に制約するように構成される。他の場合には、変換処理ユニット52は、制約された値が満足な結果をもたらすことになると決定するようにさらに構成され得る。このプロセスについて、図5中でさらに説明し、実証する。
[0076]量子化の後に、エントロピー符号化ユニット56は、量子化変換係数をエントロピーコーディングし得る。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディング、または別のエントロピー符号化技法を実行し得る。コンテキストベースエントロピー符号化の場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット56によるエントロピー符号化の後、符号化されたビットストリームは、別のデバイス(たとえば、ビデオデコーダ30)に送信されるか、または後で送信するかもしくは取り出すためにアーカイブされ得る。
[0077]逆量子化ユニット58および逆変換ユニット60は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、画素領域において残差ブロックを再構成し得る。動き補償ユニット44は、残差ブロックを参照フレームメモリ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、参照フレームメモリ64に記憶するために再構成されたビデオブロックを生成するのに、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算し得る。再構成されたビデオブロックは、次いで、後続のビデオフレーム中のブロックをインターコーディングするための参照ブロックとして動き推定ユニット42および動き補償ユニット44によって使用され得る。
[0078]図3は、本開示で説明する態様による技法を実装し得るビデオデコーダの一例を示すブロック図である。本開示で説明する技法は、ビデオデコーダ30の様々な構成要素を利用し得る。いくつかの例では、プロセッサ(図示せず)が、技法のいずれかまたはすべてを実行するように構成され得る。
[0079]図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72とイントラ予測ユニット74とをさらに含む予測ユニット81と、逆量子化ユニット76と、逆変換ユニット78と、参照ピクチャ(フレーム)メモリ82と、加算器80とを含む。ビデオデコーダ30は、ビデオエンコーダ20(たとえば、図1および図2参照)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて、予測データを生成し得、一方、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて、予測データを生成し得る。
[0080]従来、ビデオエンコーダ30は、実装されるビデオ圧縮規格によってサポートされるTUの様々なサイズの各々について別個のコンテキストモデルを維持することになる。HEVC規格の場合、ビデオ符号化効率を向上させるために、たとえば、32×32から128×128までの追加の変換ユニットサイズが利用され得るが、追加のTUサイズによって、追加の変換ユニットサイズの各々にコンテキストモデルを維持するためにメモリおよび計算要件も増大する。
[0081]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化されたビデオスライスのビデオブロックと、関連するシンタックス要素とを表す、符号化されたビデオビットストリームを受信し得る。ビデオデコーダ30のエントロピー復号ユニット70は、量子化された係数と、動きベクトルまたはイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット70は、次いで、動きベクトルと他のシンタックス要素とを動き補償ユニット72に転送し得る。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルで構文要素を受信し得る。
[0082]ビデオスライスが、イントラコード化(I)スライスとしてコーディングされるとき、イントラ予測ユニット74は、現在のフレームまたはピクチャの以前に復号されたブロックから、シグナリングされたイントラ予測モードおよびデータに基づいて、現在のビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームが、インターコーディングされた(たとえば、B、P、またはGPB)スライスとしてコーディングされる時に、動き補償ユニット72は、エントロピー復号ユニット70から受け取られた動きベクトルと他の構文要素とに基づいて、現在のビデオスライスのビデオブロックの予測ブロックを生成し得る。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャ(フレーム)メモリ82に記憶された参照ピクチャに基づいて、デフォルト構成技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構成し得る。動き補償ユニット72は、動きベクトルと他のシンタックス要素とをパースすることによって現在のビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在のビデオブロックのための予測ブロックを生成するために予測情報を使用し得る。たとえば、動き補償ユニット72は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラ予測またはインター予測)と、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)と、スライスの参照ピクチャリストのうちの1つまたは複数のための構築情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在のビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のいくつかを使用し得る。
[0083]動き補償ユニット72は、補間フィルタに基づいて補間を実行し得る。動き補償ユニット72は、参照ブロックのサブ整数ピクセルの補間された値を計算するために、ビデオブロックの符号化の間にビデオエンコーダ20によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット72は、受信したシンタックス要素から、ビデオエンコーダ20によって使用された補間フィルタを決定し、予測ブロックを生成するために、その補間フィルタを使用し得る。
[0084]逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された量子化変換係数を逆量子化(inverse quantize)、たとえば、逆量子化(de−quantize)し得る。逆量子化処理は、量子化の程度、および同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライスの中の各ビデオブロックに対してビデオデコーダ30によって計算された量子化パラメータQPYの使用を含み得る。
[0085]逆変換ユニット78は、ピクセル領域内の残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的には類似の逆変換プロセスを、変換係数に適用し得る。動き補償ユニット72が、動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成し得る。加算器80は、この加算演算を実行し得る。ブロッキネスアーティファクトを除去するために、復号ブロックをフィルタ処理するためのデブロッキングフィルタも適用され得る。(コーディングループ中またはコーディングループ後のいずれかの)他のループフィルタも、ピクセルの遷移を平滑化し、または場合によっては、ビデオ品質を改善するために使用され得る。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、参照ピクチャ(フレーム)メモリ82に記憶され得、この参照ピクチャ(フレーム)メモリ82は、後続の動き補償のために使用される参照ピクチャを記憶し得る。参照ピクチャ(フレーム)メモリ82はまた、図1のディスプレイデバイス32などのディスプレイデバイス上に後で提示するために復号ビデオを記憶し得る。
[0086]図4に、たとえば、メッシュベースの計算を使用した低複雑な順変換の方法400のフローチャートを示す。方法400は、プロセッサまたは、たとえば、図2のエンコーダ20などのエンコーダによって実行され得る。一実施形態では、図2のエンコーダ20の変換処理ユニット52は、方法400を実行するように構成され得る。本方法の様々なブロックが、変換処理ユニットによって実行されるものとして説明したが、本方法の様々なブロックが、他のプロセッサ、エンコーダ、またはそれらのユニットによって実行され得ることを理解されたい。
[0087]方法400により、エンコーダは、16ビットのデータのために最適化された特殊な命令セット(たとえば、ARMアーキテクチャ、Advanced SIMD(NEON)、デジタル信号処理(DSP)など)を使用して16ビット演算を実行することを可能にするために変換結果を16ビット値に制約することが可能になる。上記で説明したように、ビット深度を制約することは、コーディング効率を改善し、ビデオ符号化中の計算リソース要件を低減し得る。しかしながら、場合によっては、ビット深度を制約することはまた、変換出力の品質を減少させ得る。したがって、16ビット演算を実行する前に、エンコーダ(たとえば、エンコーダ20の変換処理ユニット52)は、制約された値が満足な結果をもたらすことになると決定し、それに応じて調整するようにさらに構成され得、これについて、図5に関してさらに説明する。
[0088]方法400は、ブロック405において開始する。次いで、ブロック410において、変換処理ユニット52は、フルサイズの順方向変換行列を複数の、あまり複雑でない段階に分解し得る(たとえば、多段変換行列を決定し得る)。分解は、メッシュベースの分解方法を使用することによって行われ得る。一実装形態では、フルサイズの変換行列を分解するために計算リソースを使用するのではなく、変換処理ユニット52は、代わりに、メモリまたはコード化ビットストリームから複数の段階を取り出し得る。いくつかの実装形態では、最初の順変換行列は、32×32の変換行列であり得る。他の実装形態では、変換行列は、別のサイズであり得る。
[0089]次いで、ブロック415において、変換処理ユニット52は、複数の段階の各々に対して適切な変換演算を実行し得る。場合によっては、変換演算が実行された後、これらの段階のうちの1つまたは複数は、16ビットよりも大きい変換結果を含み得る。これらの変換結果は、16ビットよりも大きいシステムのために設計された内部計算動作(たとえば、32ビット演算)を必要とし得、これは、変換処理ユニット52の効率を減少させ得る。
[0090]したがって、ブロック420において、変換処理ユニット52は、複数の段階の各々における変換結果の内部ビット深度を16ビット値に制約し得る。変換処理ユニット52は、飽和論理を使用して、たとえば、内部値を16ビット値にクリッピングすることによってこの制約されたプロセスを実行し得る。より詳細には、変換処理ユニット52は、変換出力ビット深度を制約するだけでなく、変換演算中に内部でビット深度を制約し得る。これを達成するために、変換処理ユニット52は、各中間変換段階の出力においてクリッピング関数を実行し得る。一実装形態では、変換処理ユニット52は、制約されたプロセスを実行するために付録Aに示すコードに付加されるクリッピング関数を使用し得、ここで、aおよびnは、16ビットの範囲内に制約される和とともに追加されるべき値を表す。1つの例示的なクリッピング関数は、y=CLIP3(x,minval,maxval)として表され得る。この例示的な機能では、xは、バイト数を表し得る。xがminvalよりも小さい場合、yはminvalに設定され得る。さらに、xがmaxvalよりも大きい場合、yはmaxvalに設定され得る。xがminvalとmaxvalとの範囲の間に入る場合、yは、xに設定され得る。より具体的な例示的なクリッピング関数は、(a+b)sat=CLIP3(−32768,32767,a+b)または(a0*b0+a1*b1+・・・)sat=CLIP3(−32768,32767,a0*b0+a1*b1+・・・)のいずれかのうちの1つとして表され得、これは、上記のクリッピング例と同様の論理ツリーに従う。クリッピング関数の他の構造は、制約プロセスを実行するために実装され得る。いずれの場合も、加算演算、減算演算、および/または乗算および加算演算について、飽和論理は、結果を16ビットに制約し得る。
[0091]各段階において内部ビット深度を16ビットに制約することによって、変換処理ユニット52は、そのレベルのために計算効率の良い命令セットを利用することが可能になり得る。たとえば、変換に対する入力ビット深度は9ビットであり得、開始内部ビット深度は、16ビットよりも大きくなり得る。一例では、変換処理ユニット52は、特定のビットレベルでの演算(たとえば、16ビット演算、32ビット演算、または64ビット演算など)しか実行することが可能でないことがある。したがって、内部ビット深度が16ビットよりも大きいとき、変換処理ユニット52は、少なくとも32ビットレベルで内部演算を実行する必要があり得る。この結果を回避するために、変換処理ユニット52は、(たとえば、32ビットの内部演算が必要とされないように)変換の各分解された段階の内部ビット深度を16ビットに制約し得る。言い換えれば、各段階の内部ビット深度が16ビットに制約されるので、プロセッサは、16ビット演算とともに使用するために特に設計された計算効率の良い命令セット(たとえば、ARMアーキテクチャ、Advanced SIMD(NEON)、デジタル信号処理(DSP)など)を利用し得る。
[0092]次いで、随意のブロック425において、変換処理ユニット52は、随意に、各段階における制約された値の偏差(たとえば、誤差)をしきい値と比較することによって制約された値が満足な結果をもたらすことになるかどうかを決定し得る。たとえば、方法500は、ブロック425において、図5に関して以下で説明する方法500のブロック510および520を実行することによって制約された値が満足な結果をもたらすことになるかどうかを決定し得る。制約された値が満足な結果をもたらすことになる場合、方法400は、ブロック430に続く。そうでない場合、ブロック427において、変換処理ユニット52は、(たとえば、方法500のブロック530に関して以下で説明するように)偏差がしきい値よりも低くなるまで係数のサブセットを再計算し得る。この方法500により、変換処理ユニット52は、ビデオ品質をも保持しながら、コーディング効率を増加することが可能になり得る。制約された値が満足な結果をもたらすことになると変換処理ユニット52が決定すると、次いで、ブロック430において、変換処理ユニット52は、16ビットのデータのために最適化された特殊な命令セット(たとえば、ARMアーキテクチャ、Advanced SIMD(NEON)、デジタル信号処理(DSP)など)を使用して16ビット演算を変換データに対して実行することを続け得る。ブロック490において、本方法は終了する。
[0093]図5に、低複雑な順変換のための方法500のフローチャートを示す。方法500は、プロセッサまたは、図2に関して上記で説明したエンコーダ20などのエンコーダによって実行され得る。一実施形態では、エンコーダの変換処理ユニット(たとえば、図2のエンコーダ20の変換処理ユニット52)は、方法500を実行するために使用され得る。実際、方法500が、エンコーダ20の変換処理ユニット52によって実行されるものとして記述されているが、方法500が、エンコーダの異なるプロセッサ、エンコーダ、または処理ユニットによって実行され得ることを理解されたい。一実施形態では、方法500は、最初に、制約する値を(たとえば、図4の方法からの制約された値)が満足な結果をもたらすことになるかどうかを決定し、それに応じて調整する。図4に関して上記で説明したように、変換処理ユニット52が内部ビット深度を制約すると、変換出力の品質をも低下させ得る。図5に関して説明する方法は、偏差が所定のしきい値を下回るまで、品質の低下がどの程度まで発生し得るのかを決定し、それに応じて調整する。
[0094]方法500は、ブロック505において開始する。方法500の始めに、変換処理ユニット52は、フルサイズの順方向変換行列を複数の、あまり複雑でない段階にすでに分解している。たとえば、順変換行列は、図4に関して説明した方法に従って分解されていることがある。各段階の内部ビット深度は、図4に関してさらに説明するように、特定のビット深度値(たとえば、16ビットのビット深度値)にすでに制約されていることがある。
[0095]次いで、ブロック510において、変換処理ユニット52は、制約された値(たとえば、最終係数)の元の値からの偏差を決定し得る。一例として、飽和論理が使用されるとき、最終係数値は、元の値から逸脱し得る(たとえば、あるレベルの誤差を含み得る)。
[0096]偏差を計算した後に、ブロック520において、変換処理ユニット52は、偏差が所定のしきい値制限よりも大きいかどうかを決定し得る。そうである場合、方法500はブロック530に進む。ブロック530において、変換処理ユニット52は、(たとえば、ACレベルの係数のサブセットを再計算するために変換を部分的に適用することによって)係数のサブセットを再計算し、制約された値のその同じサブセットを再計算された結果と置き換え得る。このプロセスは、計算の要件(たとえば、サイクル)および複雑さをも最小化しながら、最終係数値が有する、元の値からの偏差を補正し得る。一実装形態では、DCレベルの係数がACレベルの係数よりも大きいダイナミックレンジを有するので、係数のサブセットは、DCレベルの係数のみを含み得、したがって、それらは、元の値から逸脱する可能性が高い。他の実装形態では、増加精度をさらに高めるために、係数のサブセットは、DCレベルの係数を含んでいることに加えて、DCレベルに近い値をもつACレベルの係数を含み得る。
[0097]上記で説明したように係数の小さいサブセットを再計算した後に、変換処理ユニットは、次いで、ブロック510に戻り、偏差をしきい値と再び照合し得る。(ブロック520において)偏差が所定のしきい値耐久制限よりも小さいと変換処理ユニット52が決定すると、方法500は、ブロック590に進み、終了する。ブロック590において、変換処理ユニット52は、制約された値が満足な結果をもたらすことになると決定し、係数の再計算されたサブセットを与え得る。変換処理ユニット52は、次いで、図4に関して上記で説明した、方法400のブロック427において係数の再計算されたサブセットを利用し得る。
[0098]上記の方法のすべてについて、N×Nの変換に関して説明した。しかしながら、本開示で説明する方法は、N×Nの変換に限定されない。本方法はまた、変換における次元数にかかわらず、任意のサイズの変換に関して実施され得る。
[0099]上記例に応じて、本明細書で説明した技法のいずれかのいくつかの行為またはイベントが、異なるシーケンスで実行され得、全体的に追加、マージ、または除外され得る(たとえば、すべての説明した行為またはイベントが本技法の実施のために必要であるとは限らない)ことを認識されたい。さらに、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実行され得る。
[00100]1つまたは複数の例では、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれの任意の組合せで実施され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号または搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[00101]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含むのではなく、非一時的な有形の記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含めるべきである。
[00102]命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは他の同等の集積回路またはディスクリート論理回路などの1つもしくは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または、本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用のハードウェアモジュールおよび/またはソフトウェアモジュール内で提供され得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
[00103]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされるか、または相互動作ハードウェアユニットの集合によって提供され得る。
[00104]様々な例について説明した。これらおよび他の例は、以下の特許請求の範囲に含まれる。
付録A:16×16順変換のメッシュベースの実装の例
for (j=0; j<16; j++)
{
/* E and O*/
for (k=0;k<8;k++)
{
nE[k] = pSrc[k] + pSrc[15-k];
nO[k] = pSrc[k] - pSrc[15-k];
}
/* EE and EO */
for (k=0;k<4;k++)
{
nEE[k] = nE[k] + nE[7-k];
nEO[k] = nE[k] - nE[7-k];
}
/* EEE and EEO */
nEEE[0] = nEE[0] + nEE[3];
nEEO[0] = nEE[0] - nEE[3];
nEEE[1] = nEE[1] + nEE[2];
nEEO[1] = nEE[1] - nEE[2];

pDst[ 0 ] = (anTransCoef16[ 0][0]*nEEE[0] + anTransCoef16[ 0][1]*nEEE[1] + 4)>>3;
pDst[ 8 ] = (anTransCoef16[ 8][0]*nEEE[0] + anTransCoef16[ 8][1]*nEEE[1] + 4)>>3;
pDst[ 4 ] = (anTransCoef16[ 4][0]*nEEO[0] + anTransCoef16[ 4][1]*nEEO[1] + 4)>>3;
pDst[ 12] = (anTransCoef16[12][0]*nEEO[0] + anTransCoef16[12][1]*nEEO[1] + 4)>>3;

for (k=2;k<16;k+=4)
{
pDst[ k ] = (anTransCoef16[k][0]*nEO[0] + anTransCoef16[k][1]*nEO[1] + anTransCoef16[k][2]*nEO[2] + anTransCoef16[k][3]*nEO[3] + 4)>>3;
}

for (k=1;k<16;k+=2)
{
pDst[ k ] = (anTransCoef16[k][0]*nO[0] + anTransCoef16[k][1]*nO[1] + anTransCoef16[k][2]*nO[2] + anTransCoef16[k][3]*nO[3] +
anTransCoef16[k][4]*nO[4] + anTransCoef16[k][5]*nO[5] + anTransCoef16[k][6]*nO[6] + anTransCoef16[k][7]*nO[7] + 4)>>3;
}

pSrc += 16;
pDst += 16;

}

pSrc = pCoef;
pDst = pRes;
for (j=0; j<16; j++)
{
/* E and O*/
for (k=0;k<8;k++)
{
nE[k] = pSrc[k*16] + pSrc[(15-k)*16];
nO[k] = pSrc[k*16] - pSrc[(15-k)*16];
}
/* EE and EO */
for (k=0;k<4;k++)
{
nEE[k] = nE[k] + nE[7-k];
nEO[k] = nE[k] - nE[7-k];
}
/* EEE and EEO */
nEEE[0] = nEE[0] + nEE[3];
nEEO[0] = nEE[0] - nEE[3];
nEEE[1] = nEE[1] + nEE[2];
nEEO[1] = nEE[1] - nEE[2];

pDst[ 0 ] = (anTransCoef16[ 0][0]*nEEE[0] + anTransCoef16[ 0][1]*nEEE[1] + 512)>>10;
pDst[ 8*16 ] = (anTransCoef16[ 8][0]*nEEE[0] + anTransCoef16[ 8][1]*nEEE[1] + 512)>>10;
pDst[ 4*16 ] = (anTransCoef16[ 4][0]*nEEO[0] + anTransCoef16[ 4][1]*nEEO[1] + 512)>>10;
pDst[ 12*16] = (anTransCoef16[12][0]*nEEO[0] + anTransCoef16[12][1]*nEEO[1] + 512)>>10;

for (k=2;k<16;k+=4)
{
pDst[ k*16 ] = (anTransCoef16[k][0]*nEO[0] + anTransCoef16[k][1]*nEO[1] + anTransCoef16[k][2]*nEO[2] + anTransCoef16[k][3]*nEO[3] + 512)>>10;
}

for (k=1;k<16;k+=2)
{
pDst[ k*16 ] = (anTransCoef16[k][0]*nO[0] + anTransCoef16[k][1]*nO[1] + anTransCoef16[k][2]*nO[2] + anTransCoef16[k][3]*nO[3] +
anTransCoef16[k][4]*nO[4] + anTransCoef16[k][5]*nO[5] + anTransCoef16[k][6]*nO[6] + anTransCoef16[k][7]*nO[7] + 512)>>10;
}

pSrc ++;
pDst ++;

}
[00104]様々な例について説明した。これらおよび他の例は、以下の特許請求の範囲に含まれる。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオ情報を記憶するように構成されたメモリと、
前記メモリと通信しているプロセッサであって、
変換を複数の変換段階に分解することと、
各変換段階における変換段階出力を決定するために前記複数の段階を使用して前記ビデオ情報を変換することと、
各変換段階における前記変換段階出力を所定のビット深度に制約することと、
前記複数の段階の最後の段階の前記制約された変換出力に対して演算を実行することと、ここにおいて、前記演算が、前記所定のビット深度を有するデータとともに使用するためにのみ利用可能である、
を行うように構成されたプロセッサと
を備える、ビデオエンコーダ。
[C2]
前記プロセッサが、メッシュベースの方法、バタフライ方法、または偶数奇数分解を使用して前記変換を分解するようにさらに構成された、C1に記載のビデオエンコーダ。
[C3]
前記プロセッサは、クリッピングされた変換段階出力が必ず所定の範囲内に入るように前記変換段階出力をクリッピングすることによって前記変換段階出力を制約するようにさらに構成された、C1に記載のビデオエンコーダ。
[C4]
前記所定のビット深度が16ビットである、C1に記載のビデオエンコーダ。
[C5]
前記プロセッサが、前記制約された変換段階出力と前記変換段階出力との間の偏差を決定するようにさらに構成された、C1に記載のビデオエンコーダ。
[C6]
前記偏差が、前記制約された変換段階出力と前記変換段階出力との間の前記差を備える、C5に記載のビデオエンコーダ。
[C7]
前記プロセッサは、前記偏差が所定のしきい値よりも大きいとき、少なくとも1つの変換段階内で係数のサブセットを再計算するようにさらに構成された、C5に記載のビデオエンコーダ。
[C8]
前記プロセッサが、少なくとも係数の前記再計算されたサブセットを使用して前記ビデオ情報を変換するようにさらに構成された、C7に記載のビデオエンコーダ。
[C9]
ビデオを符号化する方法であって、
ビデオ情報を記憶することと、
変換を複数の変換段階に分解することと、
各変換段階における変換段階出力を決定するために前記複数の段階を使用して前記ビデオ情報を変換することと、
各変換段階における前記変換段階出力を所定のビット深度に制約することと、
前記複数の段階の最後の段階の前記制約された変換出力に対して演算を実行することと、ここにおいて、前記演算が、前記所定のビット深度を有するデータとともに使用するためにのみ利用可能である、
を備える方法。
[C10]
メッシュベースの方法、バタフライ方法、または偶数奇数分解を使用して前記変換を分解することをさらに備える、C9に記載の方法。
[C11]
クリッピングされた変換段階出力が必ず所定の範囲内に入るように前記変換段階出力をクリッピングすることによって前記変換段階出力を制約することをさらに備える、C9に記載の方法。
[C12]
前記所定のビット深度が16ビットである、C9に記載の方法。
[C13]
前記制約された変換段階出力と前記変換段階出力との間の偏差を決定することをさらに備える、C9に記載の方法。
[C14]
前記偏差が、前記制約された変換段階出力と前記変換段階出力との間の前記差を備える、C13に記載の方法。
[C15]
前記偏差が所定のしきい値よりも大きいとき、少なくとも1つの変換段階内で係数のサブセットを再計算することをさらに備える、C13に記載の方法。
[C16]
少なくとも係数の前記再計算されたサブセットを使用して前記ビデオ情報を変換することをさらに備える、C15に記載の方法。
[C17]
実行されたとき、装置に、
ビデオ情報を記憶することと、
変換を複数の変換段階に分解することと、
各変換段階における変換段階出力を決定するために前記複数の段階を使用して前記ビデオ情報を変換することと、
各変換段階における前記変換段階出力を所定のビット深度に制約することと、
前記複数の段階の最後の段階の前記制約された変換出力に対して演算を実行することと、ここにおいて、前記演算が、前記所定のビット深度を有するデータとともに使用するためにのみ利用可能である、
を行わせるコードを備える、非一時的コンピュータ可読媒体。
[C18]
実行されたとき、前記装置に、メッシュベースの方法、バタフライ方法、または偶数奇数分解を使用して前記変換を分解することを行わせるコードをさらに備える、C17に記載のコンピュータ可読媒体。
[C19]
実行されたとき、前記装置に、クリッピングされた変換段階出力が必ず所定の範囲内に入るように前記変換段階出力をクリッピングすることによって前記変換段階出力を制約することを行わせるコードをさらに備える、C17に記載のコンピュータ可読媒体。
[C20]
実行されたとき、前記装置に、前記制約された変換段階出力と前記変換段階出力との間の偏差を決定することを行わせるコードをさらに備える、C17に記載のコンピュータ可読媒体。
[C21]
前記偏差が、前記制約された変換段階出力と前記変換段階出力との間の前記差を備える、C20に記載のコンピュータ可読媒体。
[C22]
実行されたとき、前記装置に、前記偏差が所定のしきい値よりも大きいとき、少なくとも1つの変換段階内で係数のサブセットを再計算することを行わせるコードをさらに備える、C20に記載のコンピュータ可読媒体。
[C23]
実行されたとき、前記装置に、少なくとも係数の前記再計算されたサブセットを使用して前記ビデオ情報を変換することを行わせるコードをさらに備える、C22に記載のコンピュータ可読媒体。
[C24]
ビデオを符号化するための装置であって、
ビデオ情報を記憶するための手段と、
変換を複数の変換段階に分解するための手段と、
各変換段階における変換段階出力を決定するために前記複数の段階を使用して前記ビデオ情報を変換するための手段と、
各変換段階における前記変換段階出力を所定のビット深度に制約するための手段と、
前記複数の段階の最後の段階の前記制約された変換出力に対して演算を実行するための手段と、ここにおいて、前記演算が、前記所定のビット深度を有するデータとともに使用するためにのみ利用可能である、
を備える、装置。
[C25]
メッシュベースの方法、バタフライ方法、または偶数奇数分解を使用して前記変換を分解するための手段をさらに備える、C25に記載の装置。
[C26]
クリッピングされた変換段階出力が必ず所定の範囲内に入るように前記変換段階出力をクリッピングすることによって前記変換段階出力を制約するための手段をさらに備える、C25に記載の装置。
[C27]
前記制約された変換段階出力と前記変換段階出力との間の偏差を決定するための手段をさらに備える、C25に記載の装置。
[C28]
前記偏差が、前記制約された変換段階出力と前記変換段階出力との間の前記差を備える、C27に記載の装置。
[C29]
前記偏差が所定のしきい値よりも大きいとき、少なくとも1つの変換段階内で係数のサブセットを再計算するための手段をさらに備える、C27に記載の装置。
[C30]
少なくとも係数の前記再計算されたサブセットを使用して前記ビデオ情報を変換するための手段をさらに備える、C30に記載の装置。

Claims (30)

  1. ビデオ情報を記憶するように構成されたメモリと、
    前記メモリと通信しているプロセッサであって、
    変換を複数の変換段階に分解することと、
    各変換段階における変換段階出力を決定するために前記複数の段階を使用して前記ビデオ情報を変換することと、
    各変換段階における前記変換段階出力を所定のビット深度に制約することと、
    前記複数の段階の最後の段階の前記制約された変換出力に対して演算を実行することと、ここにおいて、前記演算が、前記所定のビット深度を有するデータとともに使用するためにのみ利用可能である、
    を行うように構成されたプロセッサと
    を備える、ビデオエンコーダ。
  2. 前記プロセッサが、メッシュベースの方法、バタフライ方法、または偶数奇数分解を使用して前記変換を分解するようにさらに構成された、請求項1に記載のビデオエンコーダ。
  3. 前記プロセッサは、クリッピングされた変換段階出力が必ず所定の範囲内に入るように前記変換段階出力をクリッピングすることによって前記変換段階出力を制約するようにさらに構成された、請求項1に記載のビデオエンコーダ。
  4. 前記所定のビット深度が16ビットである、請求項1に記載のビデオエンコーダ。
  5. 前記プロセッサが、前記制約された変換段階出力と前記変換段階出力との間の偏差を決定するようにさらに構成された、請求項1に記載のビデオエンコーダ。
  6. 前記偏差が、前記制約された変換段階出力と前記変換段階出力との間の前記差を備える、請求項5に記載のビデオエンコーダ。
  7. 前記プロセッサは、前記偏差が所定のしきい値よりも大きいとき、少なくとも1つの変換段階内で係数のサブセットを再計算するようにさらに構成された、請求項5に記載のビデオエンコーダ。
  8. 前記プロセッサが、少なくとも係数の前記再計算されたサブセットを使用して前記ビデオ情報を変換するようにさらに構成された、請求項7に記載のビデオエンコーダ。
  9. ビデオを符号化する方法であって、
    ビデオ情報を記憶することと、
    変換を複数の変換段階に分解することと、
    各変換段階における変換段階出力を決定するために前記複数の段階を使用して前記ビデオ情報を変換することと、
    各変換段階における前記変換段階出力を所定のビット深度に制約することと、
    前記複数の段階の最後の段階の前記制約された変換出力に対して演算を実行することと、ここにおいて、前記演算が、前記所定のビット深度を有するデータとともに使用するためにのみ利用可能である、
    を備える方法。
  10. メッシュベースの方法、バタフライ方法、または偶数奇数分解を使用して前記変換を分解することをさらに備える、請求項9に記載の方法。
  11. クリッピングされた変換段階出力が必ず所定の範囲内に入るように前記変換段階出力をクリッピングすることによって前記変換段階出力を制約することをさらに備える、請求項9に記載の方法。
  12. 前記所定のビット深度が16ビットである、請求項9に記載の方法。
  13. 前記制約された変換段階出力と前記変換段階出力との間の偏差を決定することをさらに備える、請求項9に記載の方法。
  14. 前記偏差が、前記制約された変換段階出力と前記変換段階出力との間の前記差を備える、請求項13に記載の方法。
  15. 前記偏差が所定のしきい値よりも大きいとき、少なくとも1つの変換段階内で係数のサブセットを再計算することをさらに備える、請求項13に記載の方法。
  16. 少なくとも係数の前記再計算されたサブセットを使用して前記ビデオ情報を変換することをさらに備える、請求項15に記載の方法。
  17. 実行されたとき、装置に、
    ビデオ情報を記憶することと、
    変換を複数の変換段階に分解することと、
    各変換段階における変換段階出力を決定するために前記複数の段階を使用して前記ビデオ情報を変換することと、
    各変換段階における前記変換段階出力を所定のビット深度に制約することと、
    前記複数の段階の最後の段階の前記制約された変換出力に対して演算を実行することと、ここにおいて、前記演算が、前記所定のビット深度を有するデータとともに使用するためにのみ利用可能である、
    を行わせるコードを備える、非一時的コンピュータ可読媒体。
  18. 実行されたとき、前記装置に、メッシュベースの方法、バタフライ方法、または偶数奇数分解を使用して前記変換を分解することを行わせるコードをさらに備える、請求項17に記載のコンピュータ可読媒体。
  19. 実行されたとき、前記装置に、クリッピングされた変換段階出力が必ず所定の範囲内に入るように前記変換段階出力をクリッピングすることによって前記変換段階出力を制約することを行わせるコードをさらに備える、請求項17に記載のコンピュータ可読媒体。
  20. 実行されたとき、前記装置に、前記制約された変換段階出力と前記変換段階出力との間の偏差を決定することを行わせるコードをさらに備える、請求項17に記載のコンピュータ可読媒体。
  21. 前記偏差が、前記制約された変換段階出力と前記変換段階出力との間の前記差を備える、請求項20に記載のコンピュータ可読媒体。
  22. 実行されたとき、前記装置に、前記偏差が所定のしきい値よりも大きいとき、少なくとも1つの変換段階内で係数のサブセットを再計算することを行わせるコードをさらに備える、請求項20に記載のコンピュータ可読媒体。
  23. 実行されたとき、前記装置に、少なくとも係数の前記再計算されたサブセットを使用して前記ビデオ情報を変換することを行わせるコードをさらに備える、請求項22に記載のコンピュータ可読媒体。
  24. ビデオを符号化するための装置であって、
    ビデオ情報を記憶するための手段と、
    変換を複数の変換段階に分解するための手段と、
    各変換段階における変換段階出力を決定するために前記複数の段階を使用して前記ビデオ情報を変換するための手段と、
    各変換段階における前記変換段階出力を所定のビット深度に制約するための手段と、
    前記複数の段階の最後の段階の前記制約された変換出力に対して演算を実行するための手段と、ここにおいて、前記演算が、前記所定のビット深度を有するデータとともに使用するためにのみ利用可能である、
    を備える、装置。
  25. メッシュベースの方法、バタフライ方法、または偶数奇数分解を使用して前記変換を分解するための手段をさらに備える、請求項25に記載の装置。
  26. クリッピングされた変換段階出力が必ず所定の範囲内に入るように前記変換段階出力をクリッピングすることによって前記変換段階出力を制約するための手段をさらに備える、請求項25に記載の装置。
  27. 前記制約された変換段階出力と前記変換段階出力との間の偏差を決定するための手段をさらに備える、請求項25に記載の装置。
  28. 前記偏差が、前記制約された変換段階出力と前記変換段階出力との間の前記差を備える、請求項27に記載の装置。
  29. 前記偏差が所定のしきい値よりも大きいとき、少なくとも1つの変換段階内で係数のサブセットを再計算するための手段をさらに備える、請求項27に記載の装置。
  30. 少なくとも係数の前記再計算されたサブセットを使用して前記ビデオ情報を変換するための手段をさらに備える、請求項30に記載の装置。
JP2016557586A 2014-03-17 2015-03-12 メッシュベースの計算を使用した低複雑な順変換のためのシステムおよび方法 Pending JP2017514353A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/216,369 US9516345B2 (en) 2014-03-17 2014-03-17 Systems and methods for low complexity forward transforms using mesh-based calculations
US14/216,369 2014-03-17
PCT/US2015/020237 WO2015179010A2 (en) 2014-03-17 2015-03-12 Systems and methods for low complexity forward transforms using mesh-based calculations

Publications (2)

Publication Number Publication Date
JP2017514353A true JP2017514353A (ja) 2017-06-01
JP2017514353A5 JP2017514353A5 (ja) 2018-03-29

Family

ID=54070451

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016557586A Pending JP2017514353A (ja) 2014-03-17 2015-03-12 メッシュベースの計算を使用した低複雑な順変換のためのシステムおよび方法

Country Status (6)

Country Link
US (1) US9516345B2 (ja)
EP (1) EP3120554A2 (ja)
JP (1) JP2017514353A (ja)
KR (1) KR20160134730A (ja)
CN (1) CN106134199B (ja)
WO (1) WO2015179010A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021187023A1 (ja) * 2020-03-18 2021-09-23 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9432696B2 (en) 2014-03-17 2016-08-30 Qualcomm Incorporated Systems and methods for low complexity forward transforms using zeroed-out coefficients
KR20220053702A (ko) * 2016-05-13 2022-04-29 소니그룹주식회사 화상 처리 장치 및 방법
CN116847081A (zh) * 2018-04-01 2023-10-03 Lg电子株式会社 图像解码设备、图像编码设备和用于发送视频信号的设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000137703A (ja) * 1998-11-02 2000-05-16 Sharp Corp 離散コサイン変換装置及び逆離散コサイン変換装置
US20130243083A1 (en) * 2012-03-16 2013-09-19 Texas Instruments Incorporated Low-Complexity Two-Dimensional (2D) Separable Transform Design with Transpose Buffer Management

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE468736B (sv) 1991-11-15 1993-03-08 Televerket Foerfarande och apparat foer bildkodning med oeverhoppning av bilder och/eller komponenter
CA2156889C (en) 1994-09-30 1999-11-02 Edward L. Schwartz Method and apparatus for encoding and decoding data
US7062098B1 (en) 2000-05-12 2006-06-13 International Business Machines Corporation Method and apparatus for the scaling down of data
RU2164501C1 (ru) * 2000-07-03 2001-03-27 Шугина Галина Александровна Способ очистки загрязненной подземной воды
JP4230188B2 (ja) 2002-06-06 2009-02-25 パナソニック株式会社 可変長符号化方法および可変長復号化方法
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US7123774B2 (en) * 2002-11-27 2006-10-17 General Electric Company System and method for coding data
JP2004304712A (ja) * 2003-04-01 2004-10-28 Canon Inc 画像処理方法及び装置
US7379608B2 (en) 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
US20090028239A1 (en) 2005-05-03 2009-01-29 Bernhard Schuur Moving picture encoding method, moving picture decoding method and apparatuses using the methods
US8606023B2 (en) 2006-06-26 2013-12-10 Qualcomm Incorporated Reduction of errors during computation of inverse discrete cosine transform
US8571340B2 (en) * 2006-06-26 2013-10-29 Qualcomm Incorporated Efficient fixed-point approximations of forward and inverse discrete cosine transforms
US20080031325A1 (en) * 2006-08-03 2008-02-07 Yingyong Qi Mesh-based video compression with domain transformation
US8594176B2 (en) 2007-03-06 2013-11-26 Microsoft Corporation Streaming media codec with transform coefficient bounding
US7535387B1 (en) 2007-09-10 2009-05-19 Xilinx, Inc. Methods and systems for implementing context adaptive binary arithmetic coding
JP5427785B2 (ja) 2007-09-28 2014-02-26 ドルビー ラボラトリーズ ライセンシング コーポレイション ビデオ圧縮技法及びビデオ伝達技法
WO2009051704A1 (en) * 2007-10-16 2009-04-23 Thomson Licensing Methods and apparatus for artifact removal for bit depth scalability
US8891615B2 (en) 2008-01-08 2014-11-18 Qualcomm Incorporated Quantization based on rate-distortion modeling for CABAC coders
KR101375668B1 (ko) 2008-03-17 2014-03-18 삼성전자주식회사 변환 계수의 부호화, 복호화 방법 및 장치
JP5355190B2 (ja) * 2009-04-08 2013-11-27 キヤノン株式会社 画像表示装置及び方法並びにプログラム
EP2257072A1 (en) 2009-05-27 2010-12-01 Nxp B.V. Image and video coding
WO2011016248A1 (ja) 2009-08-06 2011-02-10 パナソニック株式会社 符号化方法、復号方法、符号化装置及び復号装置
KR101457894B1 (ko) 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
KR102310816B1 (ko) 2010-05-12 2021-10-13 인터디지털 매디슨 페턴트 홀딩스 에스에이에스 통합된 유효성 맵 코딩을 위한 방법 및 장치
US9185422B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Variable localized bit-depth increase for fixed-point transforms in video coding
WO2012044075A2 (ko) 2010-09-28 2012-04-05 삼성전자 주식회사 영상의 변환 방법 및 장치, 역변환 방법 및 장치
US9378185B2 (en) 2010-09-30 2016-06-28 Texas Instruments Incorporated Transform and quantization architecture for video coding and decoding
US8913666B2 (en) 2010-10-01 2014-12-16 Qualcomm Incorporated Entropy coding coefficients using a joint context model
US20130003856A1 (en) 2011-07-01 2013-01-03 Samsung Electronics Co. Ltd. Mode-dependent transforms for residual coding with low latency
US10642921B2 (en) 2011-11-03 2020-05-05 Texas Instruments Incorporated Unified forward and inverse transform architecture
TW201842453A (zh) 2011-11-07 2018-12-01 美商Vid衡器股份有限公司 使佣偶奇整數轉換視訊及資料處理
US9179162B2 (en) 2011-12-02 2015-11-03 Futurewei Technologies, Inc. Image transform zero coefficient selection and zero-skip transmission for arbitrary shape transform coding
CN103179426A (zh) 2011-12-21 2013-06-26 联咏科技股份有限公司 自动检测图像格式的方法与应用其的播放方法
US9432696B2 (en) 2014-03-17 2016-08-30 Qualcomm Incorporated Systems and methods for low complexity forward transforms using zeroed-out coefficients

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000137703A (ja) * 1998-11-02 2000-05-16 Sharp Corp 離散コサイン変換装置及び逆離散コサイン変換装置
US20130243083A1 (en) * 2012-03-16 2013-09-19 Texas Instruments Incorporated Low-Complexity Two-Dimensional (2D) Separable Transform Design with Transpose Buffer Management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021187023A1 (ja) * 2020-03-18 2021-09-23 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム

Also Published As

Publication number Publication date
CN106134199A (zh) 2016-11-16
CN106134199B (zh) 2019-05-31
WO2015179010A3 (en) 2016-02-04
EP3120554A2 (en) 2017-01-25
US9516345B2 (en) 2016-12-06
US20150264400A1 (en) 2015-09-17
KR20160134730A (ko) 2016-11-23
WO2015179010A2 (en) 2015-11-26

Similar Documents

Publication Publication Date Title
JP6903644B2 (ja) ビデオコーディングのために位置依存の予測組合せを使用する改善されたビデオイントラ予測
JP6081499B2 (ja) 変換係数コーディングのためのコンテキスト導出における走査ベーススライディングウィンドウ
US9432696B2 (en) Systems and methods for low complexity forward transforms using zeroed-out coefficients
JP6542225B2 (ja) イントラブロックコピーのための残差予測
JP5932050B2 (ja) ビデオコーディングにおけるクロマ成分のための変換ユニットパーティショニング
JP6022586B2 (ja) ビデオコーディングのための隣接するビデオユニットの利用可能性の検出
JP6293756B2 (ja) スケーラブルビデオ符号化における変換基準の調整
JP6151446B2 (ja) ビデオコーディングのための高精度明示的重み付け予測
TW201813386A (zh) 用於視訊寫碼之樹型寫碼
JP6239609B2 (ja) ビデオコーディングのための長期参照ピクチャをシグナリングすること
JP6352314B2 (ja) 異なるアスペクト比を伴う空間スケーラビリティのためのレイヤ間の参照ピクチャの構築
JP2018537908A (ja) ビデオデータの符号情報をコーディングすること
JP2018125863A (ja) ビデオプロパティの指示
JP2017523685A (ja) イントラブロックコピーイングのためのブロックベクトルコーディング
JP2016535490A (ja) 適応インター色成分残差予測
JP2017513326A (ja) ピクセル距離を使用したデブロックフィルタ処理
JP2017522795A (ja) ビットストリームパーティションのためのhrdパラメータを信号伝達すること
JP2017519447A (ja) ビデオコーディングのためのイントラブロックコピーブロックベクトルシグナリング
JP6352391B2 (ja) Shvcのための複数のベースレイヤ参照ピクチャ
JP6042526B2 (ja) ビデオコーディングのための最後の位置コーディングのためのコンテキストの導出
JP2015516770A (ja) ビデオコーディングにおける量子化行列のための均一粒度
JP2016501483A (ja) ビデオコーディングにおけるhevc拡張用の多重レイヤの低複雑度サポート
JP2015527812A (ja) 適応差分領域空間および時間参照再構成およびスムージング
TW202133619A (zh) 用於合併估計區域的基於歷史的運動向量預測約束
JP6224851B2 (ja) 低複雑度符号化および背景検出のためのシステムおよび方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190122

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190903