JP5180370B2 - 並べ替えられた変換係数のマルチレベル表現 - Google Patents

並べ替えられた変換係数のマルチレベル表現 Download PDF

Info

Publication number
JP5180370B2
JP5180370B2 JP2011507513A JP2011507513A JP5180370B2 JP 5180370 B2 JP5180370 B2 JP 5180370B2 JP 2011507513 A JP2011507513 A JP 2011507513A JP 2011507513 A JP2011507513 A JP 2011507513A JP 5180370 B2 JP5180370 B2 JP 5180370B2
Authority
JP
Japan
Prior art keywords
level
symbol
frequency coefficients
representation
encoding
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
JP2011507513A
Other languages
English (en)
Other versions
JP2011521536A5 (ja
JP2011521536A (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011521536A publication Critical patent/JP2011521536A/ja
Publication of JP2011521536A5 publication Critical patent/JP2011521536A5/ja
Application granted granted Critical
Publication of JP5180370B2 publication Critical patent/JP5180370B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • 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/172Methods 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 picture, frame or field
    • 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/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

[001]ビデオのフレームまたは静止画像などのピクチャーがエンコードされる時に、エンコーダーは、通常、ビジュアルデータをサンプル値のブロックに分割する。エンコーダーは、離散係数変換(DCT)などの周波数変換を実行して、サンプル値のブロックを変換係数のブロックに変換する。慣例によってブロックの左上に示される変換係数は、一般に、DC係数と称し、他の係数は、一般に、AC係数と称する。サンプル値のほとんどのブロックについて、周波数変換は、変換係数の非ゼロ値を、変換係数のブロックの左上のより低周波数のセクションにグループ化する傾向がある。
[002]周波数変換の後に、エンコーダーは、変換係数値を量子化する。量子化は、一般に、DC係数およびAC係数の可能な値の個数を減らす。これは、通常、オリジナル係数値に対する量子化された値の分解能および忠実度を下げるが、後続のエントロピーエンコードをより効率的にする。量子化は、より高い周波数の係数が0に量子化される小さい振幅を有するときに、より高い周波数の係数(一般に、ブロックの右下側にグループ化される)を「除去する」傾向もある。
[003]図1に、量子化の後の変換係数の8×8ブロック(100)の一例を示す。この例示的なブロック(100)では、ブロックの左上角の値25が、DC係数であり、他の63個の値は、AC係数である。ブロック(100)内の最大振幅の係数は、左上の低周波数係数であるが、右側に沿って、このブロックは、より高い周波数に非ゼロ係数値のクラスターを含む。
[004]変換係数を量子化した後に、エンコーダーは、量子化された変換係数をエントロピーエンコードする。変換係数のブロックをエンコードする1つの一般的な方法は、図2に示された「ジグザグ」スキャン順序(200)を使用してブロックを並べ替えることによって開始される。この方法では、エンコーダーは、2次元配列からの変換係数の値を、スキャン順序(200)に従って1次元ストリングにマッピングする。スキャン順序(200)は、DC係数を有するブロック(100)の左上で始まり、位置1および2のブロック(100)のAC係数をトラバースし、位置3、4、および5のAC係数をトラバースし、以下同様である。スキャンは、スキャン順序(200)に従ってブロック(100)にまたがって斜めに継続され、位置63の最高周波数のAC係数を有するブロック(100)の右下角で終わる。量子化動作は、通常、より小さい値すなわちより高い周波数の係数のかなりの部分をゼロに量子化するが、より大きい値すなわちより低い周波数の係数の非ゼロ値を保存するので、ジグザグスキャン並べ替えは、一般に、残りの非ゼロ変換係数のほとんどが1次元ストリングの始め近くにあり、多数のゼロ値がストリングの終りにあることをもたらす。
[005]図2に、変換係数のブロック(100)にスキャン順序(200)を適用することから生じる例示的な1次元ストリング(250)を示す。この例では、1次元ストリング(250)は、ブロック(100)のDC係数に対応する値25から始まる。スキャン順序は、次に値12を読み取り、これに2つの0の値、−52の値などが続く。記号「EOB」は、「End of Block(ブロックの終り)」を意味し、ブロック内の残りの値のすべてが0であることを示す。
[006]次に、エンコーダーは、ランレングスコーディングまたはランレベルコーディングを使用して、係数値の1次元ベクトルをエンコードする。ランレベルコーディングでは、エンコーダーは、1次元ベクトルをトラバースし、連続するゼロ値の各ランをランカウントとしてエンコードし、各非ゼロ値をレベルとしてエンコードする。単純なエンコーディングについて、エンコーダーは、ハフマンコードなどの可変長コードをランカウントおよびレベル値に割り当てる。
[007]単純なエンコーディングに関する1つの問題は、ランカウントが0から64まで変化する可能性があり、ランカウントだけのために65個のコードのアルファベットが必要になることである。エンコーダーが、後続の非ゼロレベル値を有するランカウントを合同でエンコードする(ランカウントとレベル値との間の相関を利用するために)場合に、ランカウントレベルアルファベットのサイズが、非常により大きくなり、これが、エントロピーエンコーディングの複雑さを増す(たとえば、コードテーブルサイズおよびルックアップ動作に起因して)。より頻繁でない組合せにエスケープコードを使用することは、コードテーブルサイズを制御するのを助けるが、コーディング効率を下げる可能性がある。
ランレベルコーディングに関するもう1つの問題は、どのAC係数がエンコードされているかに関わりなくランレベル組合せに同一の可能なコード値をエンコーダーが使用する時に生じる。ゼロ値の長いランに出会う可能性が、より高い周波数のAC係数について高まる場合には、ランレベル組合せに同一の可能なコード値を使用することは、効率を損なう。
[009]最後に、図2に示されたジグザグスキャン順序(200)を使用する並べ替えは、いくつかの場合に、エンコーディング効率を損なう可能性がある。一般に、あるブロック内の隣接する係数値は、相関し、ある変換係数値がゼロである場合には、その隣接物は、ゼロである可能性がより高く、ある変換係数値が非ゼロである場合には、その隣接物は非ゼロである可能性がより高い。いくつかの場合に、ジグザグスキャン順序(200)を使用する並べ替えは、1次元ベクトル内で、隣接する係数位置(たとえば、位置15および27)を分離する。たとえば、図1のブロック(100)内の非ゼロ係数は、2つのクラスターに現れるが、図2の1次元ストリング(250)内の非ゼロ係数値は、1つまたは複数の「0」値のシリーズによって4回中断される。
[010]ディジタルビデオに対するエンコーディングおよびデコーディングのクリティカルな重要性を考慮すると、ビデオエンコーディングおよびビデオデコーディングが豊かに開発された分野であることは、驚くべきことではない。しかし、以前のビデオエンコーディング技法およびビデオデコーディング技法の利益がどれほどであろうとも、これらは、次の技法およびツールの利益を有さない。
[011]要約すると、詳細な説明は、周波数係数のブロックをエンコードし、デコードする技法およびツールを提示する。たとえば、これらの技法およびツールは、周波数係数のブロックの圧縮を改善することによって、エンコーダーの性能を改善する。圧縮の効率は、周波数係数の非ゼロ値を1次元ストリング内で一緒にグループ化し、その後、マルチレベルネスティングされたセット表現に従って係数値をエントロピーエンコードすることによって高められる。
[012]一実施形態では、エンコーディングツールなどのツールが、複数のスキャン順序のうちの1つを選択し、ブロックの周波数係数を並べ替えるために選択されたスキャン順序を適用する。このツールは、並べ替えられた周波数係数のマルチレベルネスティングされたセット表現を使用して並べ替えられた周波数係数をエントロピーエンコードする。これは、マルチレゾリューション表現の第1レベルの第1記号として要約表現内で並べ替えられた周波数係数のうちの1つまたは複数の第1セットを表すステップと、マルチレゾリューション表現の第1レベルの第1記号および第2記号をエントロピーエンコードするステップとを含む。いくつかの場合に、このツールは、ネスティングされたセット表現の第2レベルの第1サブ記号として要約表現内で第1セットの並べ替えられた周波数係数のうちの1つまたは複数の第1サブセットを表し、このツールは、第1サブ記号をエントロピーエンコードする。
[013]もう1つの実施形態では、デコーディングツールなどのツールが、ビットストリームからのビデオ情報をエントロピーデコードすることによって、エントロピーエンコードされたビデオを再構成する。このツールは、周波数係数のマルチレベルネスティングされたセット表現の第1レベルの第1記号および第2記号をデコードする。第1記号は、周波数係数のうちの1つまたは複数の第1セットを表し、第2記号は、周波数係数のうちの1つまたは複数の第2セットを表す。次に、このツールは、マルチレベルネスティングされたセット表現の第2レベルの第1サブ記号をデコードする。サブ記号は、第1セットの周波数係数のうちの1つまたは複数の第1サブセットを表す。次に、このツールは、周波数係数のスキャン順序を判定し、スキャン順序に従って係数を並べ替え、ビデオを再構成するために係数を使用する。
[014]いくつかの実施態様では、エンコーディングツールは、エントロピーエンコーディングにハフマンコーディングを使用し、デコーディングツールは、対応するハフマンデコーディングを使用する。他の実施態様では、エンコーディングツールは、ランレベルコーディングまたはランレングスコーディングの別の変形形態を使用し、デコーディングツールは、対応するデコーディングを使用する。いくつかの実施態様では、エンコーディングツールおよびデコーディングツールは、複数の事前に決定されたスキャン順序の中からブロックのスキャン順序を選択する。他の実施態様では、エンコーディングツールは、事前に決定されたスキャン順序のどれもが変換係数の適切な圧縮を生じない場合に、新しいスキャン順序を決定する。
[015]本発明の前述および他の目的、特徴、および利益は、添付図面を参照して進行する次の詳細な説明からより明白になる。この要約は、下の詳細な説明でさらに説明される概念の選択物を単純化された形で導入するために提供されるものである。この要約は、請求される主題の主要な特徴または本質的特徴を識別することを意図されたものではなく、請求される主題の範囲を限定するのに使用されることも意図されていない。
[016]量子化された変換係数の例示的ブロックを示すチャートである。 [017]従来技術のジグザグスキャン順序を示し、図1の変換係数のブロックにそのジグザグスキャン順序を適用した結果をも示すチャートである。 [018]複数の説明される実施形態を実施できる適切なコンピューティング環境を示すブロック図である。 [019]スキャン順序を選択し、ブロックのマルチレベルネスティングされたセット表現を使用してピクチャーをエンコードするように動作可能な一般化されたエンコードツールを示すブロック図である。 [020]スキャン順序を選択し、マルチレベルネスティングされたセット表現を使用してピクチャーをエンコードする一般化された技法の1つを示す流れ図である。 [020]スキャン順序を選択し、マルチレベルネスティングされたセット表現を使用してピクチャーをエンコードする一般化された技法の1つを示す流れ図である。 [020]スキャン順序を選択し、マルチレベルネスティングされたセット表現を使用してピクチャーをエンコードする一般化された技法の1つを示す流れ図である。 [021]スキャン順序を選択し、マルチレベルネスティングされたセット表現を使用してピクチャーをエンコードする例示的な技法を示す流れ図である。 [022]例のスキャン順序を示し、図1からの変換係数のブロックにそのスキャン順序を適用した結果をも示すチャートである。 [022]例のスキャン順序を示し、図1からの変換係数のブロックにそのスキャン順序を適用した結果をも示すチャートである。 [023]図9Aは、スキャン順序選択のシグナリングを示す擬似コードリスティングである。
図9Bは、スキャン順序選択のシグナリングを示す擬似コードリスティングである。
[024]マルチレベルネスティングされたセット表現を使用してブロックの周波数係数値のセットをエンコードする例示的な技法を示す流れ図である。 [025]例のマルチレベルネスティングされたセット表現を示す図である。 [025]例のマルチレベルネスティングされたセット表現を示す図である。 [025]例のマルチレベルネスティングされたセット表現を示す図である。 [026]図7に示された並べ替えられた係数値のベクトルへの図11Aのマルチレベルネスティングされたセット表現の適用を示す図である。 [027]図8に示された並べ替えられた係数値のベクトルへの図11Aのマルチレベルネスティングされたセット表現の適用を示す図である。 [028]図12Aのマルチレベルネスティングされたセット表現用の例のハフマンコードを示す図である。 [028]図12Bのマルチレベルネスティングされたセット表現用の例のハフマンコードを示す図である。 [029]ピクチャーのブロックの並べ替えられたマルチレベルネスティングされたセット表現をデコードする一般化されたデコードシステムを示すブロック図である。 [030]ブロックの並べ替えられたマルチレベルネスティングされたセット表現をデコードする一般化された技法を示す流れ図である。 [031]ブロックの並べ替えられたマルチレベルネスティングされたセット表現をデコードする例示的な技法を示す流れ図である。
[032]次の詳細な説明では、周波数係数の値を値の1次元ストリングに変換するためにスキャン順序に従って周波数係数のセットを並べ替えることによって周波数係数のセットをエンコードするツールおよび技法を提示する。値のストリングは、マルチレベルネスティングされたセット表現を使用するエントロピーエンコーディング方法に従ってエンコードされる。次の詳細な説明では、周波数係数のセットをデコードする対応するツールおよび技法をも提示する。
[033]本明細書で説明する技法およびツールのうちのいくつかは、背景技術で注記した問題の1つまたは複数に対処する。通常、所与の技法/ツールは、そのような問題のすべてを解決するのではない。そうではなく、エンコーディング時間、エンコーディングリソース、デコーディング時間、デコーディングリソース、および/または品質における制約およびトレードオフを考慮して、所与の技法/ツールは、特定の実施態様またはシナリオについてエンコーディングおよび/または性能を改善する。
I.コンピューティング環境。
[034]図3に、複数の説明される実施形態を実施できる適切なコンピューティング環境(300)の一般化された例を示す。コンピューティング環境(300)は、使用または機能性の範囲に関する限定を提案することを意図されたものではない。というのは、本技法およびツールを、さまざまな汎用のまたは特殊目的のコンピューティング環境で実施できるからである。
[035]図3を参照すると、コンピューティング環境(300)は、少なくとも1つの処理ユニット(310)およびメモリー(320)を含む。図3では、この最も基本的な構成(330)が、破線の中に含まれる。処理ユニット(310)は、コンピューター実行可能命令を実行し、実プロセッサーまたは仮想プロセッサーとすることができる。マルチプロセッシングシステムでは、処理能力を高めるために、複数の処理ユニットがコンピューター実行可能命令を実行する。メモリー(320)は、揮発性メモリー(たとえば、レジスター、キャッシュ、RAM)、不揮発性メモリー(たとえば、ROM、EEPROM、フラッシュメモリーなど)、またはこの2つの何らかの組合せとすることができる。メモリー(320)は、説明される技法のうちの1つまたは複数と、並べ替えられた周波数係数のネスティングされたセット表現をエンコードし、かつ/またはデコードするツールとを伴うエンコーダーを実施するソフトウェア(380)を格納する。
[036]コンピューティング環境は、追加の特徴を有することができる。たとえば、コンピューティング環境(300)は、ストレージ(340)、1つまたは複数の入力デバイス(350)、1つまたは複数の出力デバイス(360)、および1つまたは複数の通信接続(370)を含む。バス、コントローラー、またはネットワークなどの図示されていない相互接続機構が、コンピューティング環境(300)のコンポーネントを相互接続する。通常、図示されていないオペレーティングシステムソフトウェアが、コンピューティング環境(300)内で実行される他のソフトウェアのオペレーティング環境を提供し、コンピューティング環境(300)のコンポーネントのアクティビティを調整する。
[037]ストレージ(340)は、リムーバブルまたはノンリムーバブルとすることができ、磁気ディスク、磁気テープもしくは磁気カセット、CD−ROM、DVD、または情報を格納するのに使用でき、コンピューティング環境(300)内でアクセスできる任意の他の媒体を含む。ストレージ(340)は、ビデオエンコーダーおよび/またはビデオデコーダーを実施するソフトウェア(380)の命令を格納する。
[038]入力デバイス(1つまたは複数)(350)は、キーボード、マウス、ペン、もしくはトラックボールなどの接触入力デバイス、音声入力デバイス、スキャニングデバイス、またはコンピューティング環境(300)に入力を提供する別のデバイスとすることができる。オーディオエンコーディングまたはビデオエンコーディングについて、入力デバイス(1つまたは複数)(350)を、サウンドカード、ビデオカード、TVチューナーカード、またはアナログ形式もしくはディジタル形式のオーディオ入力もしくはビデオ入力を受け入れる類似するデバイス、あるいは、コンピューティング環境(300)にオーディオサンプルもしくはビデオサンプルを読み取るCD−ROMまたはCD−RWとすることができる。出力デバイス(1つまたは複数)(360)は、ディスプレイ、プリンター、スピーカー、CDライター、またはコンピューティング環境(300)から出力を提供する別のデバイスとすることができる。
[039]通信接続(1つまたは複数)(370)は、通信媒体を介する別のコンピューティングエンティティへの通信を可能にする。通信媒体は、コンピューター実行可能命令、オーディオもしくはビデオの入力もしくは出力、または変調されたデータ信号内の他のデータなどの情報を伝える。変調されたデータ信号とは、信号内で情報をエンコードする形でその特性のうちの1つまたは複数をセットされるか変更された信号である。限定ではなく例として、通信媒体は、電気、光、RF、赤外線、音響、または他の搬送波を用いて実施される有線または無線の技法を含む。
[040]技法およびツールを、コンピューター可読媒体の全般的な文脈で説明することができる。コンピューター可読媒体は、コンピューティング環境内でアクセスできるすべての使用可能な媒体である。限定ではなく例として、コンピューティング環境(300)に関して、コンピューター可読媒体は、メモリー(320)、ストレージ(340)、通信媒体、および上記のいずれかの組合せを含む。
[041]技法およびツールを、プログラムモジュール内に含まれるものなど、コンピューティング環境内でターゲットの実プロセッサーまたは仮想プロセッサー上で実行されるコンピューター実行可能命令の全般的な文脈で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行するか特定の抽象データ型を実施する、ルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などを含む。プログラムモジュールの機能性を、さまざまな実施形態で望み通りに組み合わせ、またはプログラムモジュールの間で分割することができる。プログラムモジュールのコンピューター実行可能命令を、ローカルコンピューティング環境または分散コンピューティング環境内で実行することができる。
[042]提示のために、詳細な説明は、「決定する」および「再構成する」などの用語を使用して、コンピューティング環境内のコンピューター動作を説明する。これらの用語は、コンピューターによって実行される動作の高水準の抽象であり、人間によって実行される行為と混同してはならない。これらの用語に対応する実際のコンピューター動作は、実施態様に依存して変化する。
II.並べ替えられた周波数係数のネスティングされたセット表現のための一般化されたエンコーディングツール
[043]図4に、本開示の実施形態を実施できる一般化されたエンコードツール(400)のブロック図を示す。ツール(400)は、シーケンス内で入力ピクチャー(405)を受け取る。用語ピクチャーは、一般に、ソースイメージデータ、コーディングされたイメージデータ、または再構成されたイメージデータを指す。プログレッシブビデオについて、ピクチャーは、プログレッシブビデオフレームである。インターレース式ビデオについて、ピクチャーは、文脈に依存して、インターレース式ビデオフレーム、フレームのトップフィールド、またはフレームのボトムフィールドを指す場合がある。入力ピクチャー(405)は、ビデオのフレーム全体または静的ピクチャーとすることができ、あるいは、入力ピクチャーを、ビデオのフレームの一部または静的ピクチャーの一部のみとすることができる。その代わりに、入力ピクチャー(405)が、ダウンサンプリングされたピクチャーの1つの色成分のみ、たとえばYCbCrピクチャーのルマ成分を含むことができる。
[044]単純にするために、図4は、エンコーディングツール(400)のうちで、動き推定、動き補償、および他の動き処理に関係するモジュールを示さない。いくつかの実施態様では、イントラピクチャー圧縮に関するサンプル値のブロックの処理に加えて、ツール(400)は、図4に示されたモジュールを使用して、動き補償残差のサンプル値のブロックを処理する。所与の残差ブロックについて、このツールは、残差ブロックの周波数係数値の周波数変換、量子化、スキャン並べ替え、およびエントロピーエンコーディングを実行する。
[045]図4では、イントラピクチャー圧縮について、スプリッタ(410)が、入力ピクチャー(405)を、それぞれが複数のサンプル値を含む一連のブロックに分割する。8×8ブロックについて、各ブロックは、8行8列に配置された64個のサンプル値を含む。その代わりに、ブロックを、4×4、4×8、8×4、16×16、またはある他のサイズにすることができる。
[046]周波数トランスフォーマー(415)は、変換係数のブロックを周波数領域(すなわち、スペクトル、変換)データに変換する。周波数トランスフォーマー(415)は、DCT、DCTの変形形態、または他の周波数変換をサンプル値のブロックに適用し、周波数変換係数のブロックを作る。周波数トランスフォーマー(415)は、8×8、8×4、4×8、4×4、または他のサイズの周波数変換を適用することができる。
[047]クォンタイザー(420)は、変換係数のブロックを量子化する。クォンタイザー(420)は、ピクチャーごとベース、ブロックごとベース、またはその他ベースで変化するステップサイズを有する不均一スカラー量子化をスペクトルデータに適用する。クォンタイザー(420)は、スペクトルデータ係数に別のタイプの量子化、たとえば、係数の少なくとも一部に関する均一量子化もしくは適応量子化を適用することもでき、あるいは、周波数変換を使用しないエンコーダーシステム内では、空間領域データを直接に量子化することができる。
[048]係数スキャナー/リオーダラー(re−orderer)(425)は、量子化された係数をスキャンし、これらをスキャン順序に従って1次元ストリングに並べ替える。エントロピーエンコーダー(430)は、1次元ストリング内の係数をエンコードする。たとえば、エントロピーエンコーダー(430)は、適応ハフマンコーディングを使用して変換係数をエンコードする。代替案では、エントロピーエンコーダーは、ランレングスコーディング、ランレベルコーディング、またはある他のエントロピーエンコーディング方法を使用して変換係数をエンコードすることができる。エントロピーエンコーダー(430)は、エントロピーエンコードされた係数値(435)をバッファー(440)に出力する。
[049]いくつかの実施形態では、ツール(400)は、係数スキャナー(425)から使用可能な複数のスキャン順序のうちのいずれをも使用する。たとえば、ツール(400)は、図2のスキャン順序(200)、図7のスキャン順序(700)、図8のスキャン順序(800)、および1つまたは複数の他のスキャン順序の間で切り替える。ツール(400)は、ブロックごとベース、マクロブロックごとベース、スライスごとベース、ピクチャーごとベース、または何らかのその他ベースで使用可能なスキャン順序の間で選択する。複数の使用可能なスキャン順序は、エンコーディングツールと対応するデコーディングツールとの両方でセットされる1つまたは複数の事前定義のスキャン順序を含むことができる。事前定義のスキャン順序のうちの1つが使用されるときに、エンコーディングツール(400)は、選択されたスキャン順序を識別するコードまたは他のビットストリーム要素を使用して、スキャン順序選択をシグナリングする。複数の使用可能なスキャン順序は、エンコーディング中にエンコーディングツール(400)によって特に定義され、デコーディングでの使用のために対応するデコーディングツールにシグナリングされる、1つまたは複数のスキャン順序をも含むことができる。スキャン順序自体をシグナリングした後に、エンコーディングツール(400)がその後にそのスキャン順序を使用する時に、ツール(400)は、デコーダーが格納した、そのスキャン順序を識別するコードまたは他のビットストリーム要素をシグナリングすることができる。
[050]ジグザグスキャン順序(200)は、変換係数のあるブロックについて非ゼロ値の適切なクラスター化を提供するが、他のスキャン順序を選択的に使用することによって、エンコーディングツール(400)は、しばしば、エントロピーコーディング効率を改善することができる。ツール(400)は、開ループ手法または閉ループ手法を使用してスキャン順序を選択することができる。バッファー(440)は、エントロピーエンコードされた係数値(435)を格納し、したがって、バッファー充満は、エントロピーエンコーディングによってもたらされる圧縮の効率のある尺度を提供する。この尺度は、圧縮された係数の総サイズまたはある他の測定値に基づくものとすることができる。係数スキャナー(425)は、異なるスキャン順序を適用することができ、ツール(400)は、結果を評価する。閉ループ手法では、ツール(400)は、使用可能なすべてのスキャン順序を適用し、最も効率的に圧縮されたエントロピーエンコードされた係数値(435)をもたらすスキャン順序を選択する。いくつかの実施態様では、事前定義のスキャン順序のどれもが許容できる性能をもたらさない(たとえば、事前にプログラミングされるかユーザー定義とすることができるしきい値に従って)場合に、ツール(400)は、新しいスキャン順序を決定し、これを出力ビットストリームにおいてシグナリングする。代替案では、スキャン順序をユーザーが規定することができる。
III.並べ替えられた周波数係数のネスティングされたセット表現用の一般的エンコーディング技法
[051]図5Aに、周波数係数のブロックをエンコードする1つの一般化された技法(500)の流れ図を示す。図4を参照して説明したツール(400)などのエンコーディングツールまたは他のツールが、技法(500)を実行する。図5Aに示された技法(500)は、スキャン順序の適応選択およびデフォルトのマルチレベルネスティングされたセット表現を使用するエントロピーエンコーディングを含む。
[052]このツールは、複数のスキャン順序のうちの1つを選択する(505)。スキャン順序は、実際の結果に従う圧縮の効率または圧縮の推定された効率に従って選択する(505)ことができる。さらに、スキャン順序を、複数の事前に決定されたスキャン順序のうちの1つとすることができ、あるいは、スキャン順序を、エンコーディングプロセス中にツール(400)によって構成することができる。
[053]次に、このツールは、選択されたスキャン順序をブロックの複数の周波数係数に適用する(510)。このステップは、複数の周波数係数を係数の1次元ストリングに並べ替える。好ましくは、スキャン順序による並べ替えは、たとえば1次元ストリングの先頭での、係数の1次元ストリング内の非ゼロ周波数係数値のクラスター化をもたらす。
[054]最後に、このツールは、並べ替えられた周波数係数のデフォルトのマルチレベルネスティングされたセット表現を使用して、並べ替えられた周波数係数をエントロピーエンコードする(515)。図11A、11B、および11Cに、例のマルチレベルネスティングされたセット表現を示す。周波数係数を、適応ハフマンコーディング、ランレングスコーディング、またはある他の方法などのエントロピーエンコーディング方法を使用して、ネスティングされたセット表現内でエンコードすることができる。
[055]このツールは、ブロックごとベースまたは何らかのその他ベースでこの技法(500)を繰り返す。たとえば、このツールは、フレームごとベースでスキャン順序を選択し、フレーム全体についてスキャン順序を選択し、その後、エントロピーエンコーディングの前にフレーム内のブロックの係数を並べ替える。
[056]図5Bに、複数の周波数係数のブロックをエンコードする代替の一般化された技法(520)の流れ図を示す。図4を参照して説明したツール(400)などのエンコーディングツールまたは他のツールが、技法(520)を実行する。図5Aに示された技法(500)と比較して、図5Bに示された技法(520)は、デフォルトのスキャンパターンを使用する並べ替えおよび異なるマルチレベルネスティングされたセット表現の間の適応選択を含む。この技法(520)では、スキャン順序は、以前の分析を実行したツールによって、ユーザー定義によって、またはある他の決定要因によってのいずれかで、既に決定されている。このツールは、ブロックの周波数係数にスキャン順序を適用する(525)。これは、複数の周波数係数を係数の1次元ストリングに並べ替える。
[057]このツールは、次に、複数のマルチレベルネスティングされたセット表現のうちの1つを選択する(530)。ネスティングされたセット表現を、エンコーディングの効率、ユーザー定義、またはある他の要因に基づいて選択することができる。図11Aは、1次元ベクトル内の64個の変換係数の1つの例のマルチレベルネスティングされたセット表現を示し、このマルチレベルネスティングされたセット表現に従って、各セットが2つのサブセットに分割され、各サブセットは、1つまたは複数の変換係数を含む。図11Bは、代替のマルチレベルネスティングされたセット表現を示し、このマルチレベルネスティングされたセット表現に従って、各セットが2つ、3つ、または4つのサブセットに分割され、各サブセットは、1つまたは複数の変換係数を含む。図11Cは、3つのレイヤーを有する第3のマルチレベルネスティングされたセット表現を示し、あるレイヤーでは、各セット(またはサブセット)が4つのサブセット(または変換係数)に分割される。他のネスティングされたセット表現は、64個の係数を異なる形で区分し、たとえば、最上レイヤー0から64までを位置0から3までの第1セットおよび位置4から63までの第2セットに分割する、第2セットを第1サブセットおよび第2サブセットに分割するなどである。周波数係数のクラスター化の特定のパターンを、あるスキャン順序またはピクチャーのタイプについて予測することができ、特定のネスティングされたセット表現を指定して、パターンを利用し、エンコーディング効率をさらに高めることができる。係数のセットをより多くのサブセットへより積極的に分割する、エントロピーコーディングの特定のタイプは、特定のネスティングされたセット表現に関してよりよく働くことができる。次に、このツールは、適応ハフマンエンコーディング、ランレングスエンコーディング、またはある他のエントロピーエンコーディング方法などの方法に従って、選択されたネスティングされたセット表現を使用して、並べ替えられた複数の周波数係数をエントロピーエンコードする(535)。
[058]このツールは、ブロックごとベースまたは何らかのその他ベースで技法(520)を繰り返す。たとえば、このツールは、フレームごとベースでマルチレベルネスティングされたセット表現を選択し、フレーム全体のネスティングされたセット表現を選択し、その後、選択されたネスティングされたセット表現を使用して、エントロピーエンコーディングの前にフレーム内のブロックの係数を並べ替える。
[059]図5Cは、周波数係数のブロックをエンコードする代替の一般化された技法(540)の流れ図である。図4を参照して説明したツール(400)などのエンコーディングツールまたは他のツールが、技法(540)を実行する。この技法(540)は、一般に、図5Aおよび5Bを参照して説明した技法(500、520)を組み合わせる。
[060]この技法(540)では、このツールは、複数のスキャン順序のうちの1つを選択し(545)、その後、選択されたスキャン順序をブロックの複数の周波数係数に適用する(550)。次に、このツールは、複数のネスティングされたセットパーティションのうちの1つを選択し(555)、ランレングスエンコーディング、適応ハフマンエンコーディング、またはある他の方法などのエントロピーエンコーディング方法に従って、選択されたネスティングされたセットパーティションを使用して、並べ替えられた複数の周波数係数をエントロピーエンコードする(560)。このツールは、ブロックごとベースまたは何らかのその他ベースでこの技法(540)を繰り返す。たとえば、このツールは、フレームごとベースでスキャン順序およびマルチレベルネスティングされたセット表現を選択し、そのフレーム全体のためのスキャン順序およびネスティングされたセット表現を選択し、その後、選択されたネスティングされたセット表現を使用するエントロピーコーディングの前に、選択されたスキャン順序を使用してフレーム内のブロックの係数を並べ替える。
IV.並べ替えられた周波数係数のネスティングされたセット表現用の例示的なエンコーディング技法
[061]図6に、ピクチャーの周波数係数のブロックをエンコードする例示的な技法(600)の流れ図を示す。図4を参照して説明したツール(400)などのエンコーディングツールまたはある他のエンコーディングツールが、技法(600)を実行する。
[062]この技法(600)では、このツールは、評価のために事前に決定されたスキャン順序を選択する(605)。一般に、このツールは、複数の事前に決定されたスキャン順序のどれであっても使用することができる。ある種の実施態様では、デフォルトスキャン順序が存在し、それが最初に選択されるスキャン順序である。デフォルトスキャン順序は、エンコーディングツールのソースコード内で、またはエンコーディングツールセッティングとして定義することができ、あるいは、ユーザーが、エンコーディングを開始する時に特定のピクチャーまたはシーケンス用のデフォルトスキャン順序を定義することができる。代替案では、デフォルトスキャン順序は存在せず、その代わりに、複数の事前に決定されたスキャン順序のうちの1つが、ランダムに選択される。
[063]このツールは、ブロックの周波数係数を並べ替えるために、選択された事前に決定されたスキャン順序を適用する(610)。所与のブロックについて、事前に決定されたスキャン順序の適用は、一般に、スキャン順序に従って周波数係数の2次元ブロックをトラバースすることと、係数を周波数係数の1次元ストリングに並べ替えることとを含む。
[064]このツールがブロックの周波数係数にそれぞれスキャン順序を適用(610)した後に、このツールは、係数並べ替えが十分であるかどうかをチェックする(615)。たとえば、このチェック(615)は、ブロックの複数の周波数係数へのスキャン順序の適用(610)が、2次元ブロックの非ゼロ周波数値を係数の1次元ストリングの前部に十分にクラスター化するかどうかを判定することを含む。このチェック(615)を、このツールに関する事前に決定されるしきい値、ユーザーが選択するしきい値、またはある他の判定に基づくものとすることができる。
[065]スキャン順序判定は、フレームがエンコードされる時に、そのフレーム内のブロックのすべてが同一の選択されたスキャン順序を使用してエンコードされるように、実行される。代替案では、ピクチャーのシーケンスのすべてが同一の全般的なスキャン順序を用いてエンコードされるように、スキャン順序判定をシーケンスの始めに実行することができ、あるいは、スキャン順序を、ブロックごとベースまたは何らかのその他ベースで判定することができる。スキャン順序選択が発生する時を、ユーザー定義の判断基準に従って、またはエンコーディングツールのソースコード内でエンコードされるディレクティブなどの他の判断基準に従って選択することができる。
[066]係数が十分に並べ替えられる場合に、このツールは、次に、ピクチャーのブロックの並べ替えられた周波数係数のマルチレベルネスティングされたセット表現を決定する(620)。ある種の実施態様では、このツールのために使用可能な1つのネスティングされたセット表現だけがある。ネスティングされたセット表現は、エンコーディングツールのソースコード内で、エンコーディングツールセッティングとして、ユーザーディレクティブによって、またはある他の判断基準によって、事前に定義される。代替案では、このツールは、そこから選択すべき複数のネスティングされたセット表現を有する。一般に、ネスティングされたセット表現は、使用されるエントロピーエンコーディングのタイプ、複数の周波数係数が全般的に一貫したパターンに配置されるかどうか、またはネスティングされたセット表現のどれがピクチャーの周波数係数の1次元ストリングの最も効率的なエンコーディングを作るかなどの要因に基づいて定義するか選択することができる。
[067]このツールは、並べ替えられた周波数係数に選択されたマルチレベルネスティングされたセット表現を適用して(625)、ピクチャーのブロックのそれぞれの一連の記号を作り、それらの記号をエントロピーエンコードする(630)。一般に、マルチレベルネスティングされたセット表現の所与のレイヤーについて、エンコーディングツールは、そのレイヤーのセット(またはサブセット)内の係数値を要約する記号を使用して結果を表す。たとえば、各記号は、周波数係数値の所与のセット(またはサブセット)内の非ゼロ周波数係数値の存在または不在を示す。所与のセット(またはサブセット)の記号が、周波数係数値の所与のセット(またはサブセット)内の少なくとも1つの非ゼロ周波数係数値の存在を示す場合には、別の記号が、周波数係数値のその所与のセット(またはサブセット)のより下のレイヤーのサブセット内の非ゼロ周波数係数値の存在または不在を示すことができる。セットおよびサブセットのこの再帰的ネスティングは、サブセットがゼロ値のみまたは1つの非ゼロ係数のみを含むようになるまで繰り返すことができ、後者の場合には、別の記号が、その位置の特定の周波数係数の非ゼロ値を示す。
[068]いくつかの実施態様で、このツールは、並べ替えられた周波数係数に適応ハフマンコーディングを適用する。代替案では、このツールは、非適応ハフマンコーディング、ランレングスコーディング、算術コーディング、LZコーディング、またはある他の方法など、他のエントロピーエンコーディング方法を使用することができる。
[069]前のステップに戻って、係数並べ替え(615)が、並べ替えがある種の効率しきい値を満足しないことなどの理由またはある他の理由から十分ではない場合には、このツールは、他の事前に決定されたスキャン順序が使用可能であるかどうかをチェックする(635)。1つまたは複数の異なる事前に決定されたスキャン順序が使用可能である場合には、このツールは、1つまたは複数の事前に決定されたスキャン順序のうちの1つを選択し(605)、選択されたスキャン順序に従ってブロックの周波数係数を並べ替えるために、選択されたスキャン順序を適用し(610)、係数並べ替えが十分であるかどうかをチェックする(615)というプロセスを繰り返す。
[070]このツールがチェックし(635)、別の事前に決定されたスキャン順序が使用可能ではない場合には、このツールは、十分な係数並べ替えを生じる新しいスキャン順序を判定し(640)、そのスキャン順序を適用して、ブロックの周波数係数を並べ替える。別の事前に決定されたスキャン順序が、ユーザーが特定のスキャン順序を使用しないことを指定する、1つのスキャン順序だけがこのツールのために事前に決定されている、またはスキャン順序のすべてをトラバースし終え、そのどれもが係数を十分には並べ替えないなどの理由から使用可能ではない場合がある。代替案では、別の事前に決定されたスキャン順序が使用可能ではない場合には、このツールは、単純に、最も効率的な係数並べ替えを生じた事前に決定されたスキャン順序を使用し、あるいは、このツールは、ユーザーにエラーをシグナリングすることができる。
V.例のスキャン順序およびスキャン順序選択のシグナリング
[071]図2に、図4に示されたものなどのエンコーディングツール(400)が周波数係数を並べ替えるために適用できる1つの可能なスキャン順序(200)を示す。しかし、固定ジグザグスキャン順序の使用は、変換係数のいくつかのブロックについて非効率的である場合がある。図7および8に、2つの代替のスキャン順序を示す。代替案では、エンコーディングツールおよびデコーディングツールは、他のおよび/または追加のスキャン順序を使用する。
[072]図7に、図4に示されたものなどのエンコーディングツール(400)が周波数係数を並べ替えるために適用できる1つの代替のスキャン順序(700)を示す。図7に示されたスキャン順序(700)を、周波数係数の一般的分布に使用することができる。ある種の実施態様では、このスキャン順序(700)は、あるブロックのデフォルトスキャン順序である。
[073]図7は、例示的な1次元ストリング(750)を作るための、図1に示された周波数係数(100)へのスキャン順序(700)の適用の結果をも示す。係数値25は、スキャン順序(700)の係数位置0にあり、したがって、1次元ストリング(750)の最初の値は、25である。スキャン順序(700)に沿って継続すると、次にスキャンされる係数値は、このスキャン順序の係数位置1にあり、これは、周波数係数(100)内の値12に対応し、したがって、係数値12が、1次元ストリング(750)内で次にある。これに、係数位置2の係数値0が続き、その後、位置3の値−5が続く。係数位置4から28までは、0の係数値を有し、1次元ストリング(750)内の25個の0値になるなどである。スキャン順序(700)によって作られる1次元ストリング(750)は、図2の従来技術のジグザグパターン(200)に従う並べ替えによって作られる1次元ストリング(250)よりわずかに効率的である(非ゼロ値のクラスター化に関して)。
[074]図8は、図1に示された特定の周波数係数(100)のより効率的なスキャン順序(800)を示す。このスキャン順序(800)は、特定のユーザーが定義することができる。代替案では、このスキャン順序(800)を、エンコーディングツールから使用可能な複数の可能な事前定義のスキャン順序の1つとし、複数の周波数係数を最も効率的に並べ替えるスキャン順序として選択することができる。あるいは、スキャン順序(800)は、事前に決定されたスキャン順序の1つではなく、事前に決定されたスキャン順序のどれもが周波数係数(100)を適当に並べ替えない場合に、エンコーディングツールによって決定される。
[075]図8は、例示的な1次元ストリング(850)を作るための、図1に示された周波数係数(100)へのスキャン順序(800)の適用の結果を示す。図7のスキャン順序(700)の適用または図2のスキャン順序(200)の適用の結果と比較すると、1次元ストリング(850)は、この特定のスキャン順序(800)に関して、大幅によりコンパクトである。
[076]図9Aおよび9Bに、エンコーディングツールおよびデコーディングツールがフレームごとベースで複数のスキャン順序オプションの中で選択する時の選択情報のシグナリングおよび受取の1つの手法を示す。この手法は、シーケンスレイヤー構文要素およびピクチャーレイヤー構文要素の組合せを使用する。
[077]図9Aは、シーケンスについてエンコーディングツールによって定義されたスキャン順序を示すシーケンスレイヤー構文要素を受け取るデコーディングツールの擬似コードリスティング(900)を示す。エンコーディングツールは、情報の対応するシグナリングを実行する。シーケンスヘッダ内で、デコーディングツールは、何個のスキャン順序(0から15まで)がシーケンスヘッダ内で続くのかを示す構文要素NumOfNonDefaultScanOrdersを受け取り、解析する。
[078]定義された非デフォルトスキャン順序のそれぞれについて、デコーディングツールは、スキャン順序のインデックス位置を示す情報を受け取る。図9Aに、8×8ブロックのシグナリングを示す。8×8ブロックのスキャン順序内の64個の位置のそれぞれについて、デコーディングツールは、その位置がスキャン順序位置のデフォルト値を有するかどうかを示す単一ビットDefaultIdxを受け取る。次のリスティング(デコーディングツールとエンコーディングツールとの両方から使用可能)は、スキャン順序のデフォルト位置を示す。DefaultScanOrderIdx[64]={0,1,4,5,16,17,20,21,2,3,6,7,18,19,22,23,8,10,12,13,24,25,28,29,9,11,14,15,26,27,30,31,32,34,40,41,48,49,52,53,33,35,42,43,50,51,54,55,36,38,44,45,56,57,60,61,37,39,46,47,58,59,62,63}。これらのデフォルト位置は、図7に示された位置に対応する。DefaultIdxが、デフォルト位置がシグナリングされるスキャン順序内で使用されることを示す場合には、デコーディングツールは、DefaultScanOrderIdx内のデフォルト位置をルックアップする。そうではない場合には、デコーディングツールは、シグナリングされるスキャン順序内で使用される非デフォルト位置を示す6ビットを得る。
[079]デコーディングツールは、エンコーディングツールおよびデコーディングツールから必ず使用可能である0個以上の他のスキャン順序に加えて、シーケンス用のシグナリングされた事前定義のスキャン順序を格納する。図9Aは、8×8ブロックのシグナリングを示すが、他のサイズのブロックについて、エンコーディングツールは、スキャン順序ごとにブロックサイズをシグナリングすることができる。
[080]図9Bに、スキャン順序の間で切り替えるデコーディングツールの擬似コードリスティング(910)を示す。デコーディングツールは、たとえば、デコード中にフレームごとベースでスキャン順序を切り替える。エンコーディングツールは、スキャン順序選択情報の対応するシグナリング、たとえば、フレームに使用すべきスキャン順序のフレームヘッダ内シグナリングを実行する。
[081]デコーディングツールは、フレームにデフォルトスキャン順序を使用すべきなのか(フレームに関するスキャン順序情報のさらなるシグナリングはない)あるいはフレームに非デフォルトスキャン順序を使用すべきなのかを示す構文要素UseDefaultOrderを受け取り、解析する。デフォルトスキャン順序は、すべてのシーケンスについてまたはエンコード/デコードされつつある特定のシーケンスについて、エンコーディングツールおよびデコーディングツールによって定義し、あるいはエンコーディングツールおよびデコーディングツールのセットルールによって導出することができる。
[082]デコーディングツールがフレームに非デフォルトスキャン順序を使用する場合に、デコーディングツールは、非デフォルトスキャン順序のうちでそのシーケンスについてシグナリングされたもの(ある場合に)を使用すべきかどうかをチェックする。そうである場合には、デコーディングツールは、非デフォルトスキャン順序のうちでそのシーケンスについてシグナリングされた1つを識別する構文要素OrderIdxを受け取り、解析する。
[083]そうではない場合(非デフォルトスキャン順序がシーケンスについてシグナリングされなかったか、シグナリングされたが使用すべきではない場合)には、デコーディングツールは、新しいスキャン順序に関する情報を受け取り、解析する。図9Aと同様に、図9Bは、8×8ブロックのシグナリングを示す。8×8ブロックの新しいスキャン順序内の64個の位置のそれぞれについて、デコーディングツールは、その位置がスキャン順序位置のデフォルト値を有するかどうかを示す単一ビットDefaultIdxを受け取る。そうでない場合には、デコーディングツールは、新しいスキャン順序内で使用される非デフォルト位置を示す6つのビットを得る。
[084]代替案では、エンコーディングツールおよびデコーディングツールは、マクロブロックごとベース、フレームごとベース、または何らかのその他ベースでスキャン順序を切り替えるのに、別のビットストリーム構文を使用する。
VI.マルチレベルネスティングされたセット表現を使用する、例のエンコーディング
[085]図10に、マルチレベルネスティングされたセット表現を使用して複数の周波数係数の並べ替えられたブロックをエンコードする例示的な技法(1000)を示す。技法(1000)は、たとえば、図6に示された技法(600)で使用することができる。技法(1000)は、再帰的である。係数値のセットをエンコードする時に、技法(1000)は、いくつかの場合に、セット内の係数値のサブセットまたは複数のサブセットのそれぞれを再帰的にエンコードする。技法(1000)は、終了条件を含み、この終了条件では、技法(1000)は、エントリーポイントにリターンするか、セットのエンコードを終えている。
[086]この技法(1000)では、エンコーディングツールは、特定のスキャン順序に従ってブロックの周波数係数値を並べ替えることによって作られた1次元ストリング内の係数値のセットを受け取る。このツールは、セットの所与のレベルにある1つまたは複数の係数値を評価する(1005)。この技法(1000)が最初に開始される時に、複数の周波数係数のセットは、一般に、1次元ストリング内の複数の周波数係数のすべてを含む。後に、この技法(1000)を、1次元ストリングのサブセットであるより小さいセットに対して実行することができる。この理由から、当該のセットは、64個の係数値、63個の係数値、32個の係数値、16個の係数値、1個の係数値、またはある他の個数の係数値を含む場合がある。
[087]エンコーディングツールは、係数の所与のセットが単一の周波数係数だけを含むかどうかをチェックする(1010)。周波数係数のセットが単一の係数だけを含む場合には、このツールは、その係数の値をエンコードする(1015)。たとえば、このツールは、ゴロムコーディング、ハフマンコーディング、または単一係数値の別の形の可変長コーディングを使用する。単一係数の値の振幅が他所で暗示される場合(たとえば、あるタイプのエントロピーコーディングについて係数が−1または1であるとき)に、このツールは、単一の係数の符号を示すフラグをシグナリングする。その後、このツールは、エントリーポイントにリターンし(1020)(サブセットについて)、あるいは周波数係数のその特定のセットのエンコードを終えている。
[088]所与のセットがセット内に複数の周波数係数を含む場合には、このツールは、セットを分析し、セットの1つまたは複数のコードをエンコードする(1025)。使用されるエントロピーエンコーディングのタイプに応じて、コード(1つまたは複数)は、セット内の非ゼロ周波数係数の存在または不在を示し、セット内のどのサブセットが非ゼロ値の周波数係数を含むかを示すこともできる。セットが非ゼロ周波数係数を全く含まない場合には、このツールは、セットが非ゼロ周波数係数を全く含まないことを示す記号をエンコードする。しかし、セットが少なくとも1つの非ゼロ周波数係数を含む場合には、このツールは、セット内の1つまたは複数の非ゼロ周波数係数の存在を示す1つまたは複数の記号をエンコードする。これらのコード(1つまたは複数)は、所与のセットをn個のサブセットに分割しなければならないことをも示し、n個のサブセットのそれぞれでの非ゼロ周波数係数値の存在または不在に関する情報を与える。たとえば、コード(1つまたは複数)は、1番目のサブセットが非ゼロ値を有する少なくとも1つの周波数係数を含まないこと、2番目のサブセットが非ゼロ値を有する少なくとも1つの周波数係数を含むこと、および3番目のサブセットが含まないことを示すことができる。いくつかのマルチレベルネスティングされたセット表現について、nは、2と等しく、各セットは、2つまでのサブセットに分割され得る。代替案では、nは、3または4などのある他の数である。ある種の実施形態では、コード(1つまたは複数)は、さらに、サブセット内の単一の係数が正または負のどちらであるのか、あるいはサブセット内の係数のいずれかが所与の値以上であるかどうかなど、セット内の周波数係数の非ゼロ値(1つまたは複数)に関する他の情報を示すことができる。
[089]このツールがセットの1つまたは複数のコードをエンコード(1025)した後に、このツールは、所与のセットを周波数係数のn個のサブセットに分割すべきかどうかを判定する(1030)。セットに非ゼロ周波数係数がない場合には、このツールは、セットを分割せず、エントリーポイントにリターンし(1020)(サブセットについて)、あるいは周波数係数のその特定のセットのエンコードを終えている。
[090]しかし、セットが1つまたは複数の非ゼロ周波数係数を含む場合には、このツールは、少なくとも1つの非ゼロ値を含むすべてのサブセットをエンコードする。このツールは、所与のセットをn個のサブセットに分割し(1030)、それらのサブセットの最初のサブセットを「セット」としてエンコードすべきかどうかを調べるためにチェックする(1035)。サブセットの最初のサブセットが非ゼロ周波数係数を含む場合には、このツールは、より下のレベルで最初のサブセットに対してこの方法(1000)を実行し、これによって、最初のサブセットを「セット」としてエンコードする(1040)。サブセットがエンコード(1040)された時に、このツールが方法(1000)を実行することによって作られた記号およびコードは、分析される周波数係数値が最初のセットのサブセットであることを明瞭にするように編成され、ネスティングされたセット表現内の表現のより下のレベルで分析される。
[091]最初のサブセットが少なくとも1つの非ゼロ周波数係数を含まないので、これをエンコードしてはならない場合には、このツールは、他のサブセットがセットに残っているかどうかをチェックする(1045)。同様に、このツールが最初のサブセットをエンコード(1040)した後に、このツールは、他のサブセットがセットに残っているかどうかをチェックする(1045)。別のサブセットが存在する場合には、このツールは、そのサブセットを「セット」としてエンコードすべきかどうかを調べるためにチェックし(1035)、そうである場合には、このツールは、そのサブセットをエンコードする(1040)。このツールが、他のサブセットがセットに関して残っていないと判定した後に、このツールは、エントリーポイントにリターンし(1020)(サブセットについて)、あるいは周波数係数のその特定のセットのエンコードを終え、このツールは、次のセットまたはサブセットをエンコードするためにより上のレベルにリターンするか、別のブロックまたはピクチャーに移動するかのいずれかになる。
VII.例のマルチレベルネスティングされたセット表現
[092]変換係数のマルチレベルネスティングされたセット表現を使用することは、ゼロ値変換係数の要約表現を使用することによって、変換係数の効率的なエントロピーエンコーディングを容易にすることができる。マルチレベルネスティングされたセット表現は、適応スキャン順序選択と組み合わせて使用される時に特に有効であるが、これらを、非適応スキャン並べ替えと共に使用することもできる。実施態様に応じて、あるブロックのマルチレベルネスティングされたセット表現を、ハフマンコーディング、ランレベルコーディング、ランレングスコーディングの別の変形形態、またはある他の形のエントロピーコーディングを使用してエンコードすることができる。
[093]変換係数(量子化の後)の通常の8×8ブロックを検討されたい。非ゼロ係数値のほとんどは、低周波数係数の左上角など、少数のエリアにクラスター化される。有効なマルチレベルネスティングされたセット表現は、ゼロ値高周波数係数を一緒に単一ブロックとしてグループ化し、これらを単一のゼロ値係数(または記号)として表す。この形でゼロ値係数を1つまたは複数のブロックにグループ化することのほかに、マルチレベルネスティングされたセット表現は、非ゼロ値を含む係数のサブセット(または非ゼロ値およびゼロ値の混合物)を単一ブロックとしてグループ化し、これらを1つの係数(または記号)として扱う。所与のレベルでは、マルチレベルネスティングされたセット表現は、1つまたは複数の「要約」係数(または記号)を含み、この「要約」係数(または記号)は、その後、エントロピーエンコードされる。1つまたは複数の非ゼロ値係数を含むブロックについて、マルチレベルネスティングされたセット表現は、係数をエンコーディングのために単一の係数(または記号)として表されるサブグループに再帰的に分割する。
[094]図11A、11B、および11Cに、例のマルチレベルネスティングされたセット表現を示す。図11A、11B、および11Cは、たとえば図10に示された技法(1000)で使用できる、64個の係数を有するブロックの例のマルチレベルネスティングされたセット表現(1100、1150、1180)を示す。代替案では、エンコーディングツールおよびデコーディングツールは、他のおよび/または追加のマルチレベルネスティングされたセット表現を使用する。
[095]図11Aを参照すると、セットがn個のサブセットに分割される時に、nは2と等しい。図11Bに示された表現(1150)では、nは、2、3、または4と等しく、図11Cに示された表現(1180)では、nは、4と等しい。代替案では、nを、3、4、またはある他の数と等しいものとすることができる。
[096]この表現では、位置0から63までの係数値は、第1レベル(1105)で第1セットを表し、潜在的に、位置0の係数値を含む第2レベル(1110)の第1サブセットおよび位置1から63までの係数値を含む第2レベル(1110)の第2サブセットに分割される。位置0のセットは、単一の係数値を有するセットであり、したがって、位置0の周波数係数の非ゼロ値は、たとえば第2レベル(1110)のコードを使用して、エントロピーエンコーディングされる。
[097]第2レベル(1110)のサブセット(位置1から63までの)が、非ゼロ係数値を含む場合には、位置1から63までの係数値が、第3レベル(1115)で2つのサブセットに分割される。第3レベル(1115)のサブセットの第1サブセットは、位置1から3までの係数値を含み、第3レベル(1115)のサブセットの第2サブセットは、位置4から63までの係数値を含む。ゼロ値係数だけを含むサブセットは、さらに分割はされない。しかし、第3レベル(1115)のサブセットのうちの1つが、非ゼロ係数値を含む場合には、図11Aに示されているように、第3レベル(1115)のサブセットが、第4レベルで複数の異なるサブセットに分割され、以下同様である。
[098]図11Bに、それに従って第1レベル(1155)のセット(位置0から63までの)が第2レベル(1160)で潜在的に2つのサブセットに分割され、第2レベル(1160)の第2サブセット(位置1から63までの)が第3レベル(1165)で潜在的に3つのサブセットに分割される、第2のマルチレベルネスティングされたセット表現(1150)を示す。図11Bの表現(1150)は、図11Aの表現(1100)より幅広いが、表現(1100)ほど深くはない。というのは、セット(またはサブセット)が、より下のレベルで潜在的に3つまたは4つのサブセットに分割されるからである。
[099]図11Cに、それに従って第1レベル(1185)のセット(位置0から63までの)が第2レベル(1190)で潜在的に4つの等しいサイズのサブセットに分割され、第2レベル(1190)のサブセットのそれぞれが、第3レベル(1195)で潜在的に4つのサブセットに分割される、第3のマルチレベルネスティングされたセット表現(1180)を示す。図11Cの表現(1180)は、図11Bの表現(1150)よりさらに幅広い。というのは、セット(またはサブセット)が、各より下のレベルで潜在的に4つのサブセットに分割されるからである。
[0100]図12Aに、図7の例示的な1次元ストリング(750)への図11Aのマルチレベルネスティングされたセット表現(1100)の適用を示す。変換係数(100)の1次元ストリング(750)は、位置0から位置63までの係数の値を含む第1レベルセット(1205)を提供する。第1レベルセット(1205)は、単一値を有するセットではなく、少なくとも1つの非ゼロ値を含み、したがって、第1レベルセットは、複数のサブセットに分割される。エントロピーコーディングがどのように実施されるかに応じて、1つまたは複数のコードは、第1レベルセットが第2レベル(1210)で2つのサブセットに分割されることを示す。現在の例では、第2レベル(1210)の2つのサブセットは、位置0の係数の第1サブセットおよび位置1から63までの係数の第2サブセットを含む。
[0101]このツールは、第2レベル(1210)の第1サブセット(位置0の)を「セット」としてエンコードする。現在の例では、このサブセットは、単一の値すなわち、係数位置0の係数値25だけを含む。このツールは、この第1サブセットをエントロピーエンコードする。
[0102]このツールは、第2レベル(1210)の第2サブセット(位置1から63までの係数の値を含む)のセットとしてのエンコードに進む。第2サブセットは、第3レベル(1215)で2つのサブセットに分割される。第3レベルサブセットの第1サブセットは、係数値12、0、および−5を含み、これらは、それぞれ係数位置1、2、および3の係数値である。第2の第3レベルサブセットは、係数位置4から63までの係数値を含む。
[0103]第3レベル(1215)の第1サブセットは、第4レベル(1220)で2つのサブセットに分割される。これらの第4レベルサブセットの第1サブセットは、係数値12を含み、これは、係数位置1の係数値である。この係数値が、エントロピーエンコードされる。これらの第4レベルサブセットの他のサブセットは、値0および−5を含み、これらは、係数位置2および3の係数値である。この第4レベルサブセットは、第5レベル(1225)で2つのサブセットに分割される。これらの第5レベルサブセットの第1サブセットは、係数位置2の単一の係数値0を含み、これらの第5レベルサブセットの第2サブセットは、係数位置3の単一の係数値−5を含む。これらのサブセットのそれぞれが、単一の値を有するサブセットであり、したがって、サブセットのそれぞれの係数値が、エントロピーエンコードされる。
[0104]第3レベル(1215)に戻って、第3レベル(1215)の第2サブセット(係数位置4から63までの係数値を含む)は、第4レベル(1220)で2つのサブセットに分割される。これらの第4レベルサブセットの第1サブセットは、位置4から15までの係数の値を含み、これらの第4レベルサブセットの第2サブセットは、位置16から63までの係数の値を含む。この例では、係数位置4から15までの係数値は、すべて0である。このゆえに、位置4から15までのサブセットは、非ゼロ係数値を含まないので、さらに分割される必要がない。このサブセットが非ゼロ周波数係数値を含まないことを示すコードが、シグナリングされ、このサブセットは分割されず、さらなる分析は、このサブセットに対して実行されない。位置16から63までの係数の値を含むサブセットは、第5レベル(1225)で2つの別々のサブセットに分割され、このサブセットのそれぞれは、ゼロ値係数および非ゼロ係数の混合物を含む。セットのこの分析およびサブセットへの選択的分割は、非ゼロ周波数係数のすべてが突き止められ、エントロピーエンコードされるまで継続される。
[0105]図12Bに、図8の例示的な1次元ストリング(850)への図11Aのマルチレベルネスティングされたセット表現(1100)の適用を示す。全体的に、図12Bは、図8のスキャン順序(800)が、図1の変換係数(100)を図7のスキャン順序(700)より効率的にクラスター化することを示す。
[0106]変換係数(100)の1次元ストリング(850)は、位置0から位置63までの係数の値を含む第1レベルセット(1255)を提供する。第1レベルセット(1255)は、2つのサブセットに分割され、1つまたは複数のコードが、第2レベル(1260)での2つのサブセットへの分割を示す。第2レベル(1210)の2つのサブセットは、位置0の係数の第1サブセットおよび位置1から63までの係数の第2サブセットを含む。位置0のサブセットは、単一の値すなわち係数位置0の係数値25を含み、この値は、エントロピーコーディングされる。位置1から63までのサブセットは、第3レベル(1265)で2つのサブセットに分割される。
[0107]第3レベルサブセットの第1サブセットは、係数値12、0、および−5を含み、図12Aを参照して説明したように扱われる。第2の第3レベルサブセット(係数位置4から63までの係数値の)は、第4レベル(1270)で2つのサブセットに分割される。これらの第4レベルサブセットの第1サブセットは、位置4から15までの係数の値を含むが、2つの第5レベルサブセットにさらに分割される。一方の第5レベルサブセットは、ゼロ値係数のみを含み、さらに分割はされないが、他方の第5レベルサブセットは、ゼロ値係数および非ゼロ値係数の混合物を含み、図12Bに示されているようにさらに分割される。第4レベルサブセットの第2サブセットは、位置16から63までの係数のゼロ値を含むが、さらに分割はされず、このサブセットが非ゼロ周波数係数値を含まないことを示すコードが、シグナリングされる。
[0108]図11A、11B、および11Cに示されたマルチレベルネスティングされたセット表現のほかに、他のマルチレベルネスティングされたセット表現が可能である。各セットまたはサブセットを次のレベルで2つのサブセットに分割するのではなく、各セットまたはサブセットを、3つまでのサブセット、4つまでのサブセット、またはある他の個数のサブセットに分割することができる。たとえば、係数位置0から63までの係数値を含む第1レベルセットを、3つの第2レベルサブセットすなわち、位置0の係数値を含む第1サブセット、位置1から15までの係数値を含む第2サブセット、および位置16から63までの係数値を含む第3サブセットに分割することができる。さらに、少なくとも図11Aおよび11Bの表現(1100、1150)について、区分戦略は、スキャン順序が、非ゼロ周波数係数値を変換係数のブロックから1次元ストリングの前部に向かって効率的にグループ化することを前提とする。しかし、係数値が、効率的にグループ化できないように配置されている場合には、ネスティングされたセット表現は、係数0から63までを含む第1レベルセットを2つのサブセットすなわち、係数位置0から31までの係数値を含む第1サブセットおよび係数位置32から63までの係数値を含む第2サブセットに分割する2項分割(各サブセットは、潜在的にさらなる2項分割の対象になる)など、ある他の一般的分割を有することができる。
[0109]さらに、マルチレベルネスティングされたセット表現のコードのシグナリングは、実施態様に依存する。いくつかの場合に、所与のレベルのコード(1つまたは複数)は、表現の深さ優先トラバーサル(depth−first traversal)の一部としてシグナリングされる。図11Aに関して、エンコーディングツールは、0〜63のコード(1つまたは複数)、0のコード(1つまたは複数)、1〜63のコード(1つまたは複数)、1〜3のコード(1つまたは複数)、1のコード(1つまたは複数)、2〜3のコード(1つまたは複数)、2のコード(1つまたは複数)、3のコード(1つまたは複数)、4〜63のコード(1つまたは複数)などをシグナリングする。代替案では、コードを、表現の幅優先トラバーサル(breadth−first traversal)の一部としてシグナリングすることができる。
VIII.例のエントロピーコーディングおよびデコーディング
[0110]マルチレベルネスティングされたセット表現で変換係数を表すのに使用されるエントロピーコーディングのタイプは、実施態様に依存する。このセクションでは、エントロピーエンコーディングおよびデコーディングの2つの全般的な手法を説明する。代替案では、エンコーディングツールおよびデコーディングツールが、別の手法を使用する。
A.ランレングスエンコーディングおよびデコーディングの変形形態
[0111]ランレングスコーディングおよびデコーディングを用いると、所与のセットの記号(個々の係数値または係数値のサブセットを表す)は、シーケンスとしてエンコードされる。たとえば、サブセットについて、0の記号値は、そのサブセットがゼロ値係数のみを含むことを示し、1の記号値は、そのサブセットが少なくとも1つの非ゼロ値係数を含むことを示す。個々の係数値について、0の記号値は、係数値がゼロであることを示し、1の記号値は、係数値が非ゼロであり、1つまたは複数の他のコードが、実際の値を示す。次の例では、項run_level_code_x、run_length_code_x、およびvalue_xのそれぞれが、単純に、ランレベル組合せ、ランレングスカウント、または値を表す可変長コード、固定長コード、またはビットの他のパターンのインジケータである。
[0112]図11Cのマルチレベルネスティングされたセット表現(1180)、図8のスキャン順序(800)、および図1の変換係数(100)について、位置0、1、3、および9〜15は、非ゼロ値を有し、他の位置は、ゼロ値係数を有する。位置0から15までのサブセットは、少なくとも1つの非ゼロ値を含むが、他の3つの第2レベルサブセットのどれもが、非ゼロ値を含まず、したがって、第1レベル表現は1 0 0 0である。ランレベルエンコーディング(各コードが、ゼロのランカウント+非ゼロレベルを示す)を用いると、記号は、0 EOBのコードとして表される。実際には、この表現は、その後、ある1つまたは複数のコードを使用してエンコードされ、このコードは、本明細書ではrun_level_code_0(ゼロ個の0のカウント+最初の1)およびrun_level_code_EOB(最後の3つの0)として示される。第1レベル表現1 0 0 0は、位置16から63までの係数がゼロ値係数であることを示すのに十分である。
[0113]位置0から15までのサブセットは、0〜3、4〜7、8〜11、および12〜15の4つのサブセットに分割され、これらは、記号1 0 1 1を用いて表される。ランレベルエンコーディングを用いると、記号は、0 1 0のコードとして表され、run_level_code_0(ゼロ個の0のカウント+最初の1)、run_level_code_1(1個の0のカウント+第2の1)、およびrun_level_code_0(ゼロ個の0のカウント+最後の1)として示される。これは、位置4から7までの係数がゼロ値係数であることを示すのに十分である。
[0114]位置0から3までのサブセットは、1 1 0 1として表され、位置8〜11のサブセットは、0 1 1 1として表され、位置12〜15のサブセットは、1 1 1 1として表される。これらのサブセットは、ランレベルコーディングを使用する、またはその代わりにベクトルハフマンコードもしくはリテラル値を使用するエンコーディングである。各非ゼロ値について、1つまたは複数のコードが、係数の実際の値および符号をシグナリングする。たとえば、コードvalue_25、value_12、およびvalue_−5が、位置0〜3のサブセットのランレベルコードに続く。表現のコードのシグナリングは、表現の深さ優先トラバーサルまたは幅優先トラバーサルに従うことができる。
[0115]図1、8、および11Cからの同一の例のマルチレベルネスティングされたセット表現について、ゼロおよび1の交番するラン(たとえば、0 0 1 0または0 0 0 0または1 1 1 0)を期待する単純なランレングスコーディング変形形態を用いると、記号1 0 0 0は、0 1 EOBのコードとして表され、run_length_code_0(ゼロ個の0のカウント)、run_length_code_1(1個の1のカウント)、およびrun_length_code_EOB(3個の0のカウント)として示される。位置0から15までのサブセットは、0〜3、4〜7、8〜11、および12〜15の4つのサブセットに分割され、これらは、記号1 0 1 1として表され、run_length_code_0(ゼロ個の0のカウント)、run_length_code_1(1個の1のカウント)、run_length_code_1(1個の0のカウント)、およびrun_length_code_EOB(最後の2個の1)としてエンコードされる。位置0から3までのサブセットは、1 1 0 1として表され、位置8〜11のサブセットは、0 1 1 1として表され、位置12〜15のサブセットは、1 1 1 1として表される。これらのサブセットは、単純なランレングスコーディングの変形形態を使用して、またはその代わりにベクトルハフマンコードまたはリテラル値を使用してエンコードされる。各非ゼロ値について、1つまたは複数のコードが、係数の実際の値および符号をシグナリングする。やはり、表現のコードのシグナリングは、表現の深さ優先トラバーサルまたは幅優先トラバーサルに従うことができる。
[0116]一般に、セットまたはサブセットの記号のパターン(セット/サブセットの2つのサブセットの10、01、または11、あるいはセット/サブセットの3つのサブセットの111、110、101、100、011、010、または001など)を、run_length_code、run_level_code、またはある他のパターンなど、ビットストリーム内の特定の個数のビットまたはビットのパターンを用いて示すことができる。さらに、非ゼロ値の周波数係数の値は、ある特定の個数のビットまたはビットのパターンを用いて示される。たとえば、値25を、value_(25)などの任意のコードによって示すことができる。
B.ハフマンエンコーディングおよびデコーディング
[0117]ハフマンコーディングおよびデコーディングを用いると、ハフマンコードは、特定のサブセットまたは係数の記号(1つまたは複数)を表す。ハフマンコードおよびハフマンコードを用いて表される記号は、実施態様に依存する。ハフマンコードは、適応または非適応とすることができる。
[0118]たとえば、あるサブセットについて、0の記号値は、そのサブセットがゼロ値係数のみを含むことを示し、1の記号値は、そのサブセットが少なくとも1つの非ゼロ値係数を含むことを示す。個々の係数値について、0の記号値は、その係数値がゼロであることを示し、1の記号値は、その係数値が非ゼロであることを示し、1つまたは複数の他のコードが、実際の値を示す。ハフマンコードは、所与のレベルの記号の値を合同で表し、たとえば、前のセクションの4つの記号組合せを表す。
[0119]もう1つの例として、ある記号の記号値のアルファベットが、3つの要素A0、A1、およびA2を有する。この例示的なアルファベットの第1要素は、要素A0である。この要素は、1つまたは複数の係数値の所与のセット(またはサブセット)(set_cv)について、set_cv内の各係数値(cv)が0と等しいことを示す。言い換えると、set_cvには非ゼロ周波数係数値がない。この例示的なアルファベットの第2要素は、要素A1である。この要素は、set_cv内の少なくとも1つのcvについて、cv=1または−1であることを示す。set_cv内の他の値cvは、1つのcvが1または−1と等しく、どれもが1を超える絶対値を有さない限り、0と等しいものとすることができる。この例示的なアルファベットの第3アルファベット要素は、A2である。この要素は、set_cv内の少なくとも1つのcvについて、cvが1より大きいか−1より小さいことを示す。set_cv内の他の値cvは、1つのcvが1より大きいか−1より小さい限り、0、1、または−1と等しいものとすることができる。代替実施形態では、A2は、set_cv内の少なくとも1つのcvが、異なる数、たとえば2、4、8、またはある他の数より大きいかそれより小さいことを示すことができる。
[0120]3つの異なる要素A0、A1、およびA2は、エンコード中にセットまたはサブセットをさらに分割すべきか否かを判定する際にこのツールを助けることができ、これらの要素は、デコード中にセットまたはサブセットの値を再構成する際にこのツールを助けることができる。表1は、複数の周波数係数値を含み、この周波数係数値のうちの少なくとも1つが1または−1と等しいが、どれもが1を超える絶対値を有さない、セットXの例示的なハフマンコードを示す。表2は、複数の周波数係数値を含み、この周波数係数値のうちの少なくとも1つが1より大きいか−1より小さい値を有する、セットXの例示的なハフマンコードを示す。このハフマンコードのそれぞれは、サブセットが単一の係数を含むことができる、セットXのサブセットX_1およびX_2に関する情報を示す。
Figure 0005180370
Figure 0005180370
[0121]マルチレベルネスティングされたセット表現でのセットまたはサブセットXについて、表1のハフマンコードのそれぞれは、A0またはA1のどちらが、それぞれXの2つのサブセットX_1およびX_2のそれぞれに適用されるのかを示す。表2のハフマンコードのそれぞれは、A0、A1、またはA2のどれが、それぞれXの2つのサブセットX_1およびX_2のそれぞれに適用されるのかを示す。たとえば、係数値のサブセットが0および−5を含む場合に、ハフマンコードHC5_4は、第1係数値が0であり、第2係数値が1より大きい絶対値を有する非ゼロであることを示す。係数値のサブセットが、0、0、0、0、0、2、−1、1を含み、サブセットに均等に分割される場合には、ハフマンコードHC5_4は、第1サブセット(0,0,0,0)が、ゼロ値係数だけを含み、第2サブセット(0,2,−1,1)が、1より大きい絶対値を有する少なくとも1つの非ゼロ値係数を含むことを示す。
[0122]次の例では、項HC5_xおよびHC3_xのそれぞれは、単に、特定のビットのパターンを有するハフマンコードのインジケータである。図13Aに、図12Aのマルチレベルネスティングされたセット表現への表1および2のハフマンコードの適用を示す。第1レベル(1305)で、HC5_0は、セットが2つのサブセットに分割され、各サブセットが、1より大きい絶対値を有する少なくとも1つの非ゼロ係数値を有することを示す。第1サブセット(位置0の)は、単一の値value_25を有し、この値は、1つまたは複数の可変長コード、たとえばゴロムコードまたはハフマンコードとしてシグナリングされる。第2サブセット(位置1から63までの)も、2つのサブセットに分割され、各サブセットは、コードHC5_0を用いて示される、1より大きい絶対値を有する少なくとも1つの非ゼロ係数値を有する。非ゼロ値を有するサブセットは、ハフマンコードを用いて示されるように、サブセットに分割される。非ゼロ値(1つまたは複数)を有するサブセットが、−1、0、または1の値だけを含む場合には、表1からのハフマンコードが、そのサブセットを表す。たとえば、−1、1、1、1および8つのゼロを含むセットが、−1、1、1、および1を有する第1サブセットならびに8つのゼロを含む第2サブセットに分割される場合には、コードHC3_1がそのセットを表す。1または−1ごとに、符号が、係数値についてシグナリングされ、絶対値は、前のコードによって示される。
[0123]図13Bに、図12Bのマルチレベルネスティングされたセット表現への表1および2のハフマンコードの適用を示す。図13Aと比較して、マルチレベルネスティングされたセット表現がよりコンパクトなので、より少数のハフマンコードが使用される。
[0124]エンコーディングツールは、表現の深さ優先トラバーサルに従って図13Aおよび13Bに示されたハフマンコードをシグナリングする。HC5_0、25のコード(1つまたは複数)、HC5_0、HC5_0、12のコード(1つまたは複数)、HC5_4、−5のコード(1つまたは複数)などである。代替案では、エンコーディングツールは、表現の幅優先トラバーサルに従って図13Aおよび13Bに示されたハフマンコードをシグナリングする。
[0125]多くのエンコーディングシナリオでは、ハフマンコードは、ゼロ値係数をグループ化することによって、変換係数の効果的なエンコーディングおよびデコーディングを容易にする。デコーディングツールが、セットXのコードHC5_4を受け取るときに、デコーディングツールは、セットXのサブセットX_1内のすべての周波数係数が値0を有することを認識する。したがって、デコーディングツールは、サブセットX_1をさらにデコードして時間を費やす必要があるのではなく、その代わりにサブセットX_1内のすべての周波数係数に値0を割り当てることができ、X_2(サブセットについて示された非ゼロ周波数係数値を有する)などの異なるサブセットのデコードに進むことができる。したがって、このアルファベットは、周波数係数のブロックをエンコードするのに必要な記号の個数を減らすことができる。
IX.並べ替えられた周波数係数のネスティングされたセット表現用の一般化されたデコーディングツール
[0126]図14に、並べ替えられた周波数係数のエントロピーエンコードされたマルチレベルネスティングされたセット表現をデコードするように適合された一般化されたデコーディングツール(1400)のブロック図を示す。デコーディングツール(1400)は、たとえば、図4に示されたエンコーディングツール(400)の出力をデコードするのに使用することができる。
[0127]単純にするために、図14には、デコーディングツール(1400)のうちで動き補償および他の動き処理に関係するモジュールは示されていない。いくつかの実施態様では、イントラピクチャー圧縮解除のためのサンプル値の処理ブロックのほかに、ツール(1400)は、図14に示されたモジュールを使用して動き補償残差のサンプル値のブロックを処理する。所与の残差ブロックについて、このツールは、残差ブロックの周波数係数値のエントロピーエンコーディング、スキャン並べ替え、逆量子化、および逆周波数変換を実行する。
[0128]ツール(1400)は、エントロピーエンコードされたビットストリーム(1405)を受け取り、エントロピーデコーダー(1410)が、1つまたは複数の記号を作るためにビットストリーム(1405)をデコードする。ビットストリーム(1405)は、適応ハフマンエンコーディング、ランレベルエンコーディング、ランレングスエンコーディング、またはマルチレベルネスティングされたセット表現のある他のエントロピーエンコーディング方法に従ってエンコードされ得る。エントロピーデコーダー(1410)によってデコードされた記号は、マルチレベルネスティングされたセット表現のそれぞれのレベル内の係数のサブセット内の1つまたは複数の複数の周波数係数の相対位置および値を示す。ツール(1400)は、示された係数位置に従って、複数の周波数係数を1次元ストリングに配置する。
[0129]スキャン順序デコーダー(1415)は、スキャン順序に従ってブロック内の係数を配置する。ツール(1400)は、スキャン順序デコーダー(1415)から使用可能な複数のスキャン順序のうちの選択されたスキャン順序を使用する。たとえば、ツール(1400)は、図2のスキャン順序(200)、図7のスキャン順序(700)、図8のスキャン順序(800)、および1つまたは複数の他のスキャン順序の間で切り替える。ツール(1400)は、ブロックごとベース、マクロブロックごとベース、スライスごとベース、ピクチャーごとベース、または何らかのその他ベースで使用可能なスキャン順序の間で選択する。複数の使用可能なスキャン順序は、エンコーディングツールとデコーディングツール(1400)との両方でセットされる1つまたは複数の事前定義のスキャン順序を含むことができる。事前定義のスキャン順序の1つが使用されるときには、デコーディングツール(400)は、選択されるスキャン順序を識別するコードまたは他のビットストリーム要素を使用して、スキャン順序選択を決定する。複数の使用可能なスキャン順序は、エンコード中にエンコーディングツールによって特に定義され、デコードでの使用のためにデコーディングツール(1400)にシグナリングされる1つまたは複数のスキャン順序をも含むことができる。スキャン順序自体をシグナリングした後に、エンコーディングツールがその後にスキャン順序を使用する時に、エンコーディングツールは、デコーディングツール(1400)が格納した、スキャン順序を識別するコードまたは他のビットストリーム要素をシグナリングすることができる。スキャン順序に従って作られた周波数係数のブロックは、いくつかの場合に、周波数係数の8×8ブロックである。他の場合に、ブロックは、4×4、4×8、8×4、またはある他のサイズである。
[0130]逆クォンタイザー(1420)は、変換係数を逆量子化する。逆クォンタイザー(1420)は、適応スペクトル量子化または直接量子化を逆転することができる。逆周波数トランスフォーマー(1425)は、ピクチャーのサンプル値のブロックを作るために、複数の周波数係数に対して逆周波数変換を実行する。逆周波数トランスフォーマー(1425)は、8×8、8×4、4×8、4×4、または他のサイズの逆周波数変換を適用することができる。
[0131]その後、ツール(1400)は、再構成されたピクチャー(1430)の一部として、再構成されたブロックを出力する。
X.並べ替えられた周波数係数のネスティングされたセット表現用の一般化されたビデオ再構成技法
[0132]図15に、マルチレベルネスティングされたセット表現を使用してエントロピーエンコードされた変換係数のブロックを再構成する一般化された技法(1500)の流れ図を示す。この技法(1500)は、たとえば、図5Aに示された技法(500)に従ってエンコードされた変換係数をデコードするのに、図14に示されたデコーディングツール(1400)によって使用され得る。図15に示された技法(1500)は、デフォルトのマルチレベルネスティングされたセット表現および並べ替えのためのスキャン順序の適応選択を使用するエントロピーデコーディングを含む。
[0133]このツールは、まず、デフォルトのマルチレベルネスティングされたセット表現を使用してエンコードされた複数の周波数係数をデコードする(1505)。係数は、適応ハフマンエンコーディング、ランレベルエンコーディング、またはランレングスエンコーディングなどのエントロピーエンコーディング手法に従って、またはある他のエンコーディング手法に従ってエンコードされたものとすることができる。一般に、このツールは、値と値の1次元ストリング内の複数の周波数係数の相対位置との両方を示す記号をデコードする。記号のうちの1つまたは複数のそれぞれは、サブセット内の1つまたは複数の複数の周波数係数の値および相対位置を記述する。
[0134]次に、このツールは、複数の周波数係数のブロックのスキャン順序を判定する(1510)。このツールは、たとえば、複数の事前に決定されたスキャン順序のどれを使用すべきかを示すシグナルをデコードすることによって、スキャン順序を判定する。
[0135]最後に、このツールは、デコードされたスキャン順序に従って、ブロック内の複数の周波数係数値を並べる(1515)。一般に、複数の周波数係数値は、1次元ストリングにデコードされる(1505)。このツールは、デコードされたスキャン順序に従って1次元ストリングをトラバースし、係数値を係数の2次元ブロックに配置することによって、ブロック内の複数の周波数係数値を並べる(1515)。
[0136]このツールは、ブロックごとベースまたは何らかのその他ベースで技法(1500)を繰り返す。たとえば、このツールは、フレームごとベースでスキャン順序を選択し、フレーム全体についてスキャン順序を選択し、その後、ブロックごとベースでフレーム内のブロックの係数をエントロピーデコードし、並べ替える。
[0137]代替案では、デコーディングツールは、デフォルトのスキャンパターンを使用してスキャン順序並べ替えを実行するが、異なるマルチレベルネスティングされたセット表現の間で適応式に選択する。そのようなデコーディング技法は、たとえば、図5Bに示された技法(520)に従ってエンコードされた変換係数をデコードするのに使用することができる。あるいは、デコーディングツールは、異なるスキャン順序の間で適応式に選択し、異なるマルチレベルネスティングされたセット表現の間で適応式に選択して、たとえば図5Cに示された技法(540)に従ってエンコードされた変換係数をデコードする。
XI.マルチレベルネスティングされたセット表現を用いてエンコードされたビデオを再構成する例示的方法
[0138]図16に、マルチレベルネスティングされたセット表現を使用してエントロピーエンコードされた変換係数のブロックを再構成する例示的な技法(1600)の流れ図を示す。この方法は、たとえば、図14に示されたデコーディングツール(1400)のエントロピーデコーディングモジュール(1410)によって、図10に示された技法(1000)に従ってエンコードされた変換係数をデコードするのに使用することができる。技法(1400)は、再帰的である。係数値のセットをデコードする時に、技法(1400)は、いくつかの場合に、セット内の係数値のサブセットまたは複数のサブセットのそれぞれを再帰的にデコードする。技法(1400)は、終了条件を含み、この終了条件では、技法(1400)は、エントリーポイントにリターンするか、セットのデコードを終えている。
[0139]この方法(1600)では、ツールは、複数の周波数係数のセットに関する情報を含むエントロピーエンコードされたビットストリームの少なくとも一部を受け取り、ツールは、エントロピーエンコードされたビットストリームの少なくとも一部をデコードして(1605)、セットの1つまたは複数のコードをデコードする。これらのコードは、変換係数のブロックの非ゼロ周波数係数値の存在または不在に関する情報を提供し、いくつかの実施態様では、これらのコードは、ブロックのサブセット内の周波数係数のうちの1つまたは複数の相対位置に関する情報をも提供する。
[0140]ツールは、デコードされた1つまたは複数のコードを使用して、所与のセットのすべての既知の係数値を再構成する(1610)。たとえば、ツールは、ゴロムデコーディング、ハフマンデコーディング、または別の形の可変長デコーディングを使用する。分析されているセットが単一の係数のみを含む場合には、その係数の値は、一般に、1つまたは複数のデコードされたコードによって示される。ツールは、その特定の係数の係数値を再構成することができる。単一の係数の値の振幅が他所で暗示される場合(たとえば、いくつかのタイプのエントロピーコーディング/デコーディングについて、係数が−1または1である時)には、ツールは、その単一の係数の符号を示すフラグを受け取り、解析する。あるいは、コード(1つまたは複数)が、所与のセットの係数の複数のサブセットの値を示す場合があり、ここで、それらのサブセットは、マルチレベルネスティングされたセット表現内で所与のセットより下のレベルにある。たとえば、コード(1つまたは複数)が、より下のレベルにセットのサブセットがあることと、そのサブセットが非ゼロ周波数係数値を含まないこととを示す場合がある。そうである場合には、デコーディングツールは、そのサブセット内の周波数係数のそれぞれについて係数値0を再構成する。
[0141]次に、ツールは、コード(1つまたは複数)を分析して、セットをn個のより下のレベルのサブセットに分割すべきかどうかを判定する(1615)。いくつかのマルチレベルネスティングされたセット表現について、nは2と等しいが、他の表現では、nを3または4などの別の整数と等しいものとすることができる。ツールは、非ゼロ周波数係数を含む、所与のセットの少なくとも1つのサブセットがあると判定する場合に、セットをn個までのサブセットに分割する。たとえば、非ゼロ周波数係数値を含む、セットの1つのサブセットがある場合には、ツールは、セットを、非ゼロ値を有する係数を含むサブセット(さらにデコードされる)と、ゼロ値係数だけを有するサブセット(さらなるデコードなしで以前に再構成された(1610))とに分割する。以前にデコードされた(1605)コード(1つまたは複数)は、サブセットのうちのどれが少なくとも1つの非ゼロ周波数係数を含むのかを示す。ツールは、少なくとも1つの非ゼロ周波数係数を含むサブセットをデコードする(1630)。
[0142]ツールは、たとえばセットが単一の周波数係数だけを含む場合には、セットをn個のより下のレベルのサブセットに分割しない。この場合には、ツールは、この単一の値を有するセットのコード(1つまたは複数)を既にデコードし(1605)、このセットの係数値を再構成(1610)している。この例では、ツールは、エントリーポイントにリターンし(1020)(サブセットについて)、あるいはその特定のセットのデコードを終えている。
[0143]ツールが、セットをn個のより下のレベルのサブセットに分割すると判定する(1615)場合には、ツールは、サブセットのうちの第1サブセットをデコードすべきかどうかを判定するためにコード(1つまたは複数)をチェックする(1625)。第1サブセットが非ゼロ周波数係数を含む場合には、ツールは、サブセットに対してデコーディング技法(1600)を実行することによって、そのサブセットを「セット」としてデコードする(1630)。ツールが、そのサブセットのデコーディングからリターンする時に、ツールは、デコードすべき他のサブセットが残っているかどうかをチェックする(1635)。あるいは、第1サブセットがデコードされない場合には、ツールは、デコードすべき他のサブセットが残っているかどうかをチェックする(1635)。デコードすべき他のサブセットが残っていない場合には、ツールは、n個のサブセットのうちの次のサブセットをデコードすべきかどうかをチェックする(1625)。ツールは、チェック(1635)が、デコードすべき所与のサブセットの他のサブセットが残っていないことを示すまで、このプロセスを繰り返し、その後、ツールは、エントリーポイントにリターンし(1020)(サブセットについて)、あるいは所与のセットのデコードを終えている。デコードされつつあるセット内の係数値または係数の個数に依存して、終了は、ツールにより上のレベルのセットのデコードにリターンさせる場合があり、あるいは、ブロックのデコードを終了させ、ビデオの次のブロックのデコードを開始させる場合がある。
XII.並べ替えられた周波数係数のエンコードされたマルチレベルネスティングされたセット表現の例示的なデコーディング
[0144]このセクションでは、上で提示したエントロピーエンコーディングの特定の例を継続し、変換係数のマルチレベルネスティングされたセット表現についてサブセットの記号を表すコード(1つまたは複数)のデコーディングの詳細に焦点を合わせる。一般に、記号は、複数の別個のタイプの記号を含む。第1のタイプの記号は、1つまたは複数の部分での非ゼロ値を有する周波数係数の存在または不在を示し、ある係数値(たとえば、ゼロ)または係数の絶対値(たとえば、1)を示すこともできる。第2のタイプの記号は、これらの1つまたは複数の部分にある周波数係数の値を示す。他の例では、記号のタイプを組み合わせ、異なるタイプにさらに分割し、あるいは周波数係数に関する追加情報を示すことができる。
A.ランレングスデコーディングおよびランレベルデコーディング
[0145]ランレングスおよびランレベルのコーディングおよびデコーディングを用いると、所与のセットの記号(個々の係数値または係数値のサブセットを表す)は、シーケンスとしてエンコードされる。変換係数のエンコードされたマルチレベルネスティングされたセット表現をデコードする一例では、図14を参照して説明したツール(1400)などのデコーディングツールは、エンコードされたビデオデータのビットストリームを受け取る。ビットストリームは、図1の変換係数(100)のエンコードされた値を含み、これらの値は、エンコード中に図8に示された変換係数の1Dシリーズ(850)にスキャンされ、図11Cに示されたマルチレベルネスティングされたセット表現(1180)に従ってランレベルエンコードまたはランレングスエンコードされたものである。もちろん、ランレベルまたはランレングスのエンコーディングおよびデコーディングを、図11Aまたは11Bに示されたものなどの他のマルチレベルネスティングされたセット表現および他のスキャン順序と共に使用することができる。
[0146]ランレベルデコーディングを実行する時に、ツールは、まず、係数位置サブセット0〜15、16〜31、32〜47、および48〜63(図1、8、および11Cを参照されたい)の非ゼロ値を有する周波数係数の存在または不在を示すコードをデコードするが、これらの係数位置サブセットのうちで、サブセット0〜15だけが、非ゼロ係数値を含む。ビットストリームは、コードrun_level_code_0およびrun_level_code_EOBをもたらし、これは、0 EOBのランレベルエンコーディング結果を示し、これは、係数サブセットの記号1 0 0 0に対応する。デコーディングツールは、位置16から63までのゼロ値係数を再構成し、少なくとも1つの非ゼロ値を含むサブセット0〜15の1つまたは複数のコードを受け取る。
[0147]サブセット0〜15について、ツールは、記号1 0 1 1のランレベルエンコーディング結果0 1 0を表すコードrun_level_code_0、run_level_code_1、およびrun_level_code_0を受け取り、解析する。デコーディングツールは、位置4から7までのゼロ値係数を再構成し、サブセット0〜3の1つまたは複数のコードを受け取る。サブセット0〜3のランレベルコードがデコードされて、位置0から3までの記号1 1 0 1が作られ、ツールは、位置0、1、および3の非ゼロ係数値のコードを受け取り、解析する。デコーディングツールは、同様に、サブセット8〜11のコードを受け取り、解析し、その後、サブセット12〜15のコードを受け取り、解析し、位置8から15までの値をデコードする。ツールは、係数位置0〜63のそれぞれに係数値を置いたので、ツールは、現在のブロックの変換係数値のデコードを終えている。
[0148]あるいは、ランレングスデコーディングを実行する時に、ツールは、係数位置サブセット0〜15、16〜31、32〜47、および48〜63の非ゼロ値を有する周波数係数の存在または不在を示すコードを受け取り、解析する(図1、8、および11Cを参照されたい)。ビットストリームは、コードrun_length_code_0、run_length_code_1、およびrun_length_code_EOBをもたらし、これは、0 1 EOBのランレングスエンコーディング結果を示し、係数サブセットの記号1 0 0 0に対応する。記号1 0 0 0は、少なくとも1つの非ゼロ値が位置0〜15に存在することを示し、さらに、位置16〜63のそれぞれが0値を有する周波数係数を有することを示す。したがって、デコーディングツールは、位置16〜63の周波数係数のそれぞれに0の値を置くことができる。
[0149]ツールは、次に、位置0〜3、4〜7、8〜11、および12〜15の係数の非ゼロ値を有する周波数係数の存在または不在を示すコードを受け取り、解析する。ビットストリームは、コードrun_length_code_0、run_length_code_1、run_length_code_1、およびrun_length_code_EOBをもたらし、これは、0 1 1 EOBのランレングスエンコーディング結果に対応し、それぞれ係数位置サブセット0〜3、4〜7、8〜11、および12〜15の記号1 0 1 1に対応する。記号1 0 1 1は、位置0〜3、位置8〜11、および位置12〜15のそれぞれに少なくとも1つの非ゼロ値が存在することと、位置4〜7に非ゼロ値を有する周波数係数がないこととを示し、したがって、デコーディングツールは、位置4〜7の周波数係数のそれぞれに0の値を置く。
[0150]次に、ツールは、位置0、1、2、および3の係数の非ゼロ値を有する周波数係数の存在または不在を示すコードを受け取り、解析する。ビットストリームは、コードrun_length_code_0、run_length_code_2、run_length_code_1、およびrun_length_code_EOBをもたらし、これは、0 2 1 EOBのランレングスエンコーディング結果および対応する記号1 1 0 1を示す。記号1 1 0 1は、位置0、1、および3の係数のそれぞれが、非ゼロ値を有する周波数係数を含むが、位置2の係数がそうではないことを示す。したがって、ツールは、係数位置2に0の値を自動的に置く。ツールは、さらに、それぞれ25、12、および−5の係数値に対応するコードvalue_25、value_12、およびvalue_−5を受け取り、解析する。ツールは、位置0〜3の記号1 1 0 1をデコードしたので、位置0に値25、位置1に値12、および位置3に値−5を置く。ツールは、同様に、サブセット8〜11(およびその非ゼロ値)およびサブセット12〜15(およびその非ゼロ値)のコードを受け取り、解析する。ツールは、係数位置0〜63のそれぞれに係数値を置いたので、現在のブロックの変換係数値のデコーディングを終えている。
[0151]ランレベルデコーディングおよびランレングスデコーディングの上で説明した例では、ツールは、深さ優先トラバーサルに従ってデコードする。ツールは、位置0〜63の記号、位置0〜15の記号、位置0〜3の記号、位置0の値、位置1の値、位置3の値、位置8〜11の値(位置4〜7がゼロ値を有することが既知であり、したがってスキップされるので)などをデコードする。他の例では、ツールは、その代わりに、幅優先トラバーサルに従ってデコードすることができ、ここで、ツールは、位置0〜63の記号、位置0〜15の記号、位置0〜3の記号、位置8〜11の記号、位置12〜15の記号、ならびにその後に位置0、1、3、および9〜15の値をデコードする。代替案では、ツールは、深さ優先トラバーサルおよび幅優先トラバーサルの組合せを使用することができる。
B.ハフマンデコーディング
[0152]ハフマンコーディング/デコーディング実施態様では、図14を参照して説明したツール(1400)などのデコーディングツールが、表1および2に示されたものなどのハフマンコードとブロックの変換係数の値コードとを含むビットストリームを受け取る。次に、ツールは、そのビットストリームをデコードして、周波数係数の値および相対位置を再構成する。この例では、ツールは、図11Aに示された例示的なマルチレベルネスティングされたセット表現を用いて図8の1次元ストリング(850)をエンコードするのに使用された、図13Bに示されたものなどのコードを含むビットストリームを受け取る。しかし、ハフマンエンコーディングおよびデコーディングを、表1および2に示されたものとは異なるコード構造および他のスキャン順序に関する図11Bまたは11Cに示されたものなどのさまざまな異なるマルチレベルネスティングされたセット表現に使用することができる。
[0153]ツールは、まず、フレームレベル、シーケンスレベル、またはある他のレベルでビットストリームにおいてシグナリングされるコードをデコードして、マルチレベルネスティングされたセット表現の構造のある表示を作る。たとえば、ツールは、1次元ストリングをエンコードするのに使用されたマルチレベルネスティングされたセット表現の構造を判定する。
[0154]ツールは、コードHC5_0を受け取り、解析し、このコードは、第1の第1レベルサブセット(位置0の係数に対応する)と第2の第2レベルサブセット(位置1〜63の係数に対応する)との両方が、その絶対値が1より大きい1つまたは複数の非ゼロ係数値を含むことを示す。
[0155]ツールは、次に、コードvalue_25を受け取り、解析する。この例では、value_25は、周波数係数の25の値に対応するコードの任意の表示である。以前にデコードされたコードHC5_0は、値25が位置0の係数の値であることを示す。したがって、ツールは、係数位置0に値25を置き、ビットストリーム内のコードのさらなるデコードに進む。
[0156]ツールは、次に、それぞれサブセット1〜3および4〜63の記号A2 A2を示すコードHC5_0をビットストリームから受け取り、解析する。次に下のレベルの第1サブセット(係数位置1〜3に対応する)と次に下のレベルの第2セット(係数位置4〜63に対応する)との両方が、その絶対値が1より大きい1つまたは複数の非ゼロ値を有する周波数係数を含む。図13Bの深さ優先トラバーサルに従って、ツールは、コードHC5_0(サブセット1〜3の)、value_12(位置1の)、HC5_4(サブセット2〜3の)、value_−5(位置3の)、HC5_2(サブセット4〜63の)、HC5_4(サブセット4〜15の)、HC5_1(サブセット8〜15の)、HC5_4(サブセット8〜11の)、HC5_1(サブセット9〜11の)などを受け取り、解析する。
[0157]ツールが、最下部から2番目のレベル(1370)に示されたコードHC3_0などのコードに達した時に、このコードは、セット内の1の絶対値を有する少なくとも1つの非ゼロ係数値の存在を示し、セット内の係数は、これより大きい絶対値を有さない。したがって、係数またはサブセットの記号のデコーディングに加えて、ツールは、最も下のレベル(1375)に示された、特定の周波数係数の非ゼロ値が1または−1のどちらであるのかを示す符号値(たとえば、符号ビット)をデコードすることだけが必要である。
[0158]この例は、第1セットのより下のレベルのサブセットが、第1セットと同一レベルの第2セットの前にデコードされるように、深さ優先トラバーサルとしてデコーディングプロセスを説明するものである。しかし、その代わりに、所与のレベルの各セットがより下のレベルのサブセットの前にデコードされるようにするために、トラバーサルを幅優先にすることができる。他の実施形態は、異なるトラバーサル順序を有することもできる。
XIII.代替案
[0159]本明細書で提示した例の多くは、64個の変換係数の1次元ベクトルに並べ替えられた変換係数の8×8ブロックのエントロピーエンコーディングに関する。これらの技法およびツールを、32個の係数の1次元ベクトルに並べ替えられた変換係数の4×8または8×4ブロック、16個の係数の1次元ベクトルに並べ替えられた変換係数の4×4ブロック、または変換係数の他のサイズのブロックに適用することもできる。
[0160]同様に、本明細書で提示したネスティングされたセット表現の例の多くは、64個の変換係数の1次元ベクトルに関する。本明細書で提示された技法およびツールを、長さ32、長さ16、またはある他の長さのベクトルに適用することもできる。ネスティングされたセット表現の深さおよび幅は、実施態様に依存し、サブセットへのセットのより積極的な分割は、より幅広くより浅い表現をもたらす傾向があり、逆も同様である。
[0161]例のスキャン順序を上で説明したが、本明細書で提示される技法およびツールを、他のスキャン順序と共に実行することができる。並べ替えられた変換係数のエントロピーエンコーディングは、適応ハフマンコーディング、非適応ハフマンコーディング、ランレベルコーディング、ランレングスコーディングの別の変形形態、またはある他のタイプのエントロピーコーディングを使用することができる。
[0162]開示された発明の原理を適用できる多数の可能な実施形態を考慮して、示された実施形態が、本発明の好ましい例にすぎず、本発明の範囲を限定するものとして解釈されてはならないことを理解されたい。そうではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。したがって、本発明者らは、この特許請求の範囲の範囲および趣旨に含まれるすべてのものを、本発明者らの発明として特許請求する。

Claims (31)

  1. 処理ユニットとメモリとコンピューター実行可能な命令を記憶する記憶媒体とを備えている計算機であって、前記コンピューター実行可能な命令は、実行されると、前記計算機に動画を符号化する方法を実行させ、前記方法は、
    複数のスキャン順序の中の1つを選択するステップと、
    前記選択されたスキャン順序を示す情報をビットストリームに出力するステップと、
    前記選択されたスキャン順序を適用して、ブロックの複数の周波数係数を並べ替えるステップと、
    前記並べ替えられた複数の周波数係数のマルチレベルネスティングされた集合の表現を用いて、前記並べ替えられた複数の周波数係数をエントロピー符号化するステップであって、
    前記マルチレベルネスティングされた集合の表現の第1のレベルにおける第1の記号を有する要約表現として、前記並べ替えられた複数の周波数係数の中の1又は複数から構成される第1の集合を表すステップと、
    前記マルチレベルネスティングされた集合の表現の前記第1のレベルにおける前記第1の記号と第2の記号とをエントロピー符号化するステップと
    前記マルチレベルネスティングされた集合の表現の前記第1のレベルよりも下位に与えられたレベルにおいて、前記与えられたレベルにおいて、それぞれが前記並び替えられた複数の周波数係数の中の1又は複数で構成される集合を表す複数の記号を符号化し、前記与えられたレベルにおける前記複数の記号のそれぞれに対して、前記記号に対する集合を複数の部分集合に分割すべきかどうかを判断し、分割すべき場合には、前記マルチレベルネスティングされた集合の表現の更に下位のレベルにおける複数のサブ記号を符号化するステップであって、前記更に下位のレベルにおける前記複数のサブ記号はそれぞれが前記複数の部分集合の中の1つを表す、ステップと、
    を含むステップと、
    前記エントロピー符号化された周波数係数をビットストリームに出力するステップと、
    を含み、
    前記第1の記号は、並べ替えられた周波数係数の前記第1の集合の中にゼロでない係数値の存在する又は存在しないことを示し、
    前記第2の記号は、前記第1の集合の外部にある前記並べ替えられた複数の周波数係数の中の1つ又は複数を表す、計算機。
  2. 請求項1記載の計算機において、前記第2の記号は前記第1の集合の外部にある前記並べ替えられた複数の周波数係数の中の単独の1つを表す、計算機。
  3. 請求項記載の計算機において、前記第1の記号と前記第2の記号とをエントロピー符号化する前記ステップは、ハフマン符号化を用いて前記第1の記号と前記第2の記号とを共に符号化するステップを含む、計算機。
  4. 請求項1記載の計算機において、前記第1の記号と前記第2の記号とをエントロピー符号化する前記ステップは、1又は複数の他の記号と共に前記第1の記号と前記第2の記号とをランレングス符号化するステップを含む、計算機。
  5. 請求項1記載の計算機において、
    前記並び替えられた複数の周波数係数をエントロピー符号化する前記ステップは、前記並べ替えられた複数の周波数係数の中の1又は複数で構成される第2の集合を、前記マルチレベルネスティングされた集合の表現の前記第1のレベルにおける前記第2の記号を有する要約表現として表すステップであって、前記第2の記号は、並べ替えられた周波数係数の前記第2の集合の中にゼロでない係数値の存在する又は存在しないことを示す、ステップを更に含み、
    前記第1の記号と前記第2の記号とをエントロピー符号化する前記ステップは、ハフマン符号化を用いて前記第1の記号と前記第2の記号とを共に符号化するステップを含む、
    計算機。
  6. 請求項1記載の計算機において、前記第1の集合は少なくとも1つの非ゼロ係数値を含み、前記並び替えられた複数の周波数係数をエントロピー符号化する前記ステップは、前記第1のレベルより下位にある前記マルチレベルネスティングされた集合の表現の前記与えられたレベルにおいて、前記与えられたレベルの前記複数の記号として、前記第1の集合のそれぞれの係数の係数値をエントロピー符号化するステップを更に含み、前記与えられたレベルにおける前記複数の記号はどれも更に分割されない、計算機。
  7. 請求項1記載の計算機において、前記第1の集合は少なくとも1つの非ゼロ係数値を含み、前記並び替えられた複数の周波数係数をエントロピー符号化する前記ステップは、
    前記第1の集合の前記周波数係数の中の1又は複数で構成される第1の部分集合を、前記第1のレベルより下位にある前記マルチレベルネスティングされた集合の表現の前記与えられたレベルにおける前記複数の記号のの第1のものを有する要約表現として表現するステップを更に含む、計算機。
  8. 請求項記載の計算機において、前記下位のレベルにおける前記複数の記号を符号化する前記ステップは、前記下位のレベルにおいて、前記第1の部分集合のそれぞれの係数の係数値をエントロピー符号化するステップ含む、計算機。
  9. 請求項1記載の計算機において、前記選択するステップは、
    前記複数のスキャン順序の中で複数の所定のスキャン順序を評価するステップと、
    前記複数の所定のスキャン順序のいずれもエントロピー符号化のために適切に並べ替えられた周波数係数を生じない場合には、前記複数のスキャン順序の新しいスキャン順序を作成するステップと、
    を含む、計算機。
  10. 請求項1記載の計算機において、前記選択するステップは、前記複数のスキャン順序のそれぞれの閉ループ適用の結果として生じるエントロピー符号化された係数値の測定に基づく、計算機。
  11. 請求項1記載の計算機において、前記選択するステップは、前記複数のスキャン順序の中の1又は複数を適用する際の非ゼロ係数値のクラスタリングの開ループ評価の結果に基づく、計算機。
  12. 請求項1記載の計算機において、前記複数のスキャン順序は事前に決定されている、計算機。
  13. 請求項1記載の計算機において、前記選択されたスキャン順序を適用して前記複数の周波数係数を並べ替える前記ステップは、前記選択されたスキャン順序に従って前記複数の周波数係数の2次元ブロックを横断するステップと、前記複数の周波数係数を1次元ストリングに並び替えるステップと、を含む、計算機。
  14. 請求項1記載の計算機であって、入力装置と出力装置と無線通信接続とを更に備えている、計算機。
  15. ビデオエンコーダーを実現する計算機において動画を符号化する方法であって、
    複数のスキャン順序の中の1つを選択するステップと、
    前記選択されたスキャン順序を示す情報をビットストリームに出力するステップと、
    前記選択されたスキャン順序を適用して、ブロックの複数の周波数係数を並べ替えるステップと、
    前記ビデオエンコーダーを実現する計算機により、前記並べ替えられた複数の周波数係数のマルチレベルネスティングされた集合の表現を用い、前記並べ替えられた複数の周波数係数をエントロピー符号化するステップであって、
    前記マルチレベルネスティングされた集合の表現の第1のレベルにおける第1の記号を有する要約表現として、前記並べ替えられた複数の周波数係数の中の1又は複数で構成される第1の集合を表すステップと、
    前記マルチレベルネスティングされた集合の表現の前記第1のレベルにおける前記第1の記号と第2の記号とをエントロピー符号化するステップと
    前記マルチレベルネスティングされた集合の表現の前記第1のレベルよりも下位に与えられたレベルにおいて、前記与えられたレベルにおいて、それぞれが前記並び替えられた複数の周波数係数の中の1又は複数で構成される集合を表す複数の記号を符号化し、前記与えられたレベルにおける前記複数の記号のそれぞれに対して、前記記号に対する集合を複数の部分集合に分割すべきかどうかを判断し、分割すべき場合には、前記マルチレベルネスティングされた集合の表現の更に下位のレベルにおける複数のサブ記号を符号化するステップであって、前記更に下位のレベルにおける前記複数のサブ記号はそれぞれが前記複数の部分集合の中の1つを表す、ステップと、
    を含むステップと、
    前記エントロピー符号化された周波数係数をビットストリームに出力するステップと、
    を含み、
    前記第1の記号は、並べ替えられた周波数係数の前記第1の集合の中にゼロでない係数値の存在する又は存在しないことを示し、
    前記第2の記号は、前記第1の集合の外部にある前記並べ替えられた複数の周波数係数の中の1つ又は複数を表す、方法。
  16. 請求項15記載の方法において、前記第2の記号は前記第1の集合の外部にある前記並べ替えられた複数の周波数係数の中の単独の1つを表す、方法。
  17. 請求項16記載の方法において、前記第1の記号と前記第2の記号とをエントロピー符号化する前記ステップは、ハフマン符号化を用いて前記第1の記号と前記第2の記号とを共に符号化するステップを含む、方法。
  18. 請求項15記載の方法において、前記第1の記号と前記第2の記号とをエントロピー符号化する前記ステップは、1又は複数の他の記号と共に前記第1の記号と前記第2の記号とをランレングス符号化するステップを含む、方法。
  19. 請求項15記載の方法において、
    前記並び替えられた複数の周波数係数をエントロピー符号化する前記ステップは、前記並べ替えられた複数の周波数係数の中の1又は複数で構成される第2の集合を、前記マルチレベルネスティングされた集合の表現の前記第1のレベルにおける前記第2の記号を有する要約表現として表すステップであって、前記第2の記号は、並べ替えられた周波数係数の前記第2の集合の中にゼロでない係数値の存在する又は存在しないことを示す、ステップを更に含み、
    前記第1の記号と前記第2の記号とをエントロピー符号化する前記ステップは、ハフマン符号化を用いて前記第1の記号と前記第2の記号とを共に符号化するステップを含む、
    方法。
  20. 請求項15記載の方法において、前記第1の集合は少なくとも1つの非ゼロ係数値を含み、前記並び替えられた複数の周波数係数をエントロピー符号化する前記ステップは、前記第1のレベルよりも下位にある前記マルチレベルネスティングされた集合の表現の前記与えられたレベルにおいて、前記与えられたレベルの前記複数の記号として、前記第1の集合のそれぞれの係数の係数値をエントロピー符号化するステップを更に含み、前記与えられたレベルにおける前記複数の記号はどれも更に分割されない、方法。
  21. 請求項15記載の方法において、前記第1の集合は少なくとも1つの非ゼロ係数値を含み、前記並び替えられた複数の周波数係数をエントロピー符号化する前記ステップは、
    前記第1の集合の前記周波数係数の中の1又は複数で構成される第1の部分集合を、前記第1のレベルより下位にある前記マルチレベルネスティングされた集合の表現の前記与えられたレベルにおける前記複数の記号のの第1のものを有する要約表現として表現するステップを更に含む、方法。
  22. 請求項21記載の方法において、前記下位のレベルにおける前記複数の記号を符号化する前記ステップは、前記下位のレベルにおいて、前記第1の部分集合のそれぞれの係数の係数値をエントロピー符号化するステップ含む、方法。
  23. 請求項15記載の方法において、前記選択するステップは、
    前記複数のスキャン順序の中で複数の所定のスキャン順序を評価するステップと、
    前記複数の所定のスキャン順序のいずれもエントロピー符号化のために適切に並べ替えられた周波数係数を生じない場合には、前記複数のスキャン順序の新しいスキャン順序を作成するステップと、
    を含む、方法。
  24. 請求項15記載の方法において、前記選択するステップは、前記複数のスキャン順序のそれぞれの閉ループ適用の結果として生じるエントロピー符号化された係数値の測定に基づく、方法。
  25. 請求項15記載の方法において、前記選択するステップは、前記複数のスキャン順序の中の1又は複数を適用する際の非ゼロ係数値のクラスタリングの開ループ評価の結果に基づく、方法。
  26. 請求項15記載の方法において、前記複数のスキャン順序は事前に決定されている、方法。
  27. 請求項15記載の方法において、前記選択されたスキャン順序を適用して前記複数の周波数係数を並べ替える前記ステップは、前記選択されたスキャン順序に従って前記複数の周波数係数の2次元ブロックを横断するステップと、前記複数の周波数係数を1次元ストリングに並び替えるステップと、を含む、方法。
  28. ビデオデコーダーを実現する計算機において動画を復号する方法であって、
    ビットストリームにおけるスキャン順序を示す情報を受け取るステップと、
    前記スキャン順序を示す前記情報に基づいて複数のスキャン順序の中の1つを選択するステップと、
    前記ビットストリーム中のブロックのエントロピー符号化された周波数係数を受け取るステップと、
    前記ビデオデコーダーを実現する計算機により、前記ブロックの前記エントロピー符号化された周波数係数をエントロピー復号するステップであって、前記周波数係数はマルチレベルネスティングされた集合の表現を用いて符号化されており、前記エントロピー復号するステップは、
    前記マルチレベルネスティングされた集合の表現の第1のレベルにおける第1の記号と第2の記号とをエントロピー復号するステップであって、前記第1の記号は、前記マルチレベルネスティングされた集合の表現の前記第1のレベルにおける要約表現として前記ブロックの前記周波数係数の中の1又は複数で構成される第1の集合を表し、前記第1の記号は、周波数係数の前記第1の集合の中にゼロでない係数値の存在する又は存在しないことを示し、前記第2の記号は、前記第1の集合の外部にある前記ブロックの前記周波数係数の中の1つ又は複数を表す、ステップと、
    前記マルチレベルネスティングされた集合の表現の前記第1のレベルよりも下位に与えられたレベルにおいて、それぞれが前記周波数係数の中の1又は複数で構成される集合を表す前記与えられたレベルにおける複数の記号を復号し、前記与えられたレベルにおける前記複数の記号のそれぞれに対して、前記記号に対する集合を複数の部分集合に分割すべきかどうかを判断し、分割すべき場合には、前記マルチレベルネスティングされた集合の表現の更に下位のレベルにおける複数のサブ記号を復号するステップであって、前記更に下位のレベルにおける前記複数のサブ記号はそれぞれが前記複数の部分集合の中の1つを表す、ステップと、
    を含むステップと、
    前記選択されたスキャン順序を適用して、前記ブロックの前記周波数係数を並べ替えるステップと、
    を含む、方法。
  29. 請求項28記載の方法において、前記第2の記号は、前記第1の集合の外部にある前記周波数係数の中の1つを表す、方法。
  30. 請求項28記載の方法において、前記第2の記号は、前記ブロックの前記周波数係数の中の1又は複数で構成される第2の集合を、前記マルチレベルネスティングされた集合の表現の前記第1のレベルにおける要約表現として表し、前記第2の記号は、周波数係数の前記第2の集合の中にゼロでない係数値の存在する又は存在しないことを示し、前記第1の記号と前記第2の記号とをエントロピー復号する前記ステップは、ハフマン符号化を用いて共に符号化された前記第1の記号と前記第2の記号とをハフマン復号するステップを含む、方法。
  31. 処理ユニットと前記処理ユニットに接続されたメモリとを備えている、動画を復号するための計算機であって、
    ビットストリームにおけるスキャン順序を示す情報を受け取るステップと、
    前記スキャン順序を示す前記情報に基づいて複数のスキャン順序の中の1つを選択するステップと、
    前記ビットストリーム中のブロックのエントロピー符号化された周波数係数を受け取るステップと、
    前記ブロックの前記エントロピー符号化された周波数係数をエントロピー復号するステップであって、前記周波数係数はマルチレベルネスティングされた集合の表現を用いて符号化されており、前記エントロピー復号するステップは、
    前記マルチレベルネスティングされた集合の表現の第1のレベルにおける第1の記号と第2の記号とをエントロピー復号するステップであって、前記第1の記号は、前記マルチレベルネスティングされた集合の表現の前記第1のレベルにおける要約表現として前記ブロックの前記周波数係数の中の1又は複数で構成される第1の集合を表し、前記第1の記号は、周波数係数の前記第1の集合の中にゼロでない係数値の存在する又は存在しないことを示し、前記第2の記号は、前記第1の集合の外部にある前記ブロックの前記周波数係数の中の1つ又は複数を表す、ステップと、
    前記マルチレベルネスティングされた集合の表現の前記第1のレベルよりも下位に与えられたレベルにおいて、それぞれが前記周波数係数の中の1又は複数で構成される集合を表す前記与えられたレベルにおける複数の記号を復号し、前記与えられたレベルにおける前記複数の記号のそれぞれに対して、前記記号に対する集合を複数の部分集合に分割すべきかどうかを判断し、分割すべき場合には、前記マルチレベルネスティングされた集合の表現の更に下位のレベルにおける複数のサブ記号を復号するステップであって、前記更に下位のレベルにおける前記複数のサブ記号はそれぞれが前記複数の部分集合の中の1つを表す、ステップと、
    を含むステップと、
    前記選択されたスキャン順序を適用して、前記ブロックの前記周波数係数を並べ替えるステップと、
    を実行するように構成された、計算機。
JP2011507513A 2008-05-02 2009-04-01 並べ替えられた変換係数のマルチレベル表現 Active JP5180370B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/151,069 2008-05-02
US12/151,069 US8179974B2 (en) 2008-05-02 2008-05-02 Multi-level representation of reordered transform coefficients
PCT/US2009/039089 WO2009134575A2 (en) 2008-05-02 2009-04-01 Multi-level representation of reordered transform coefficients

Publications (3)

Publication Number Publication Date
JP2011521536A JP2011521536A (ja) 2011-07-21
JP2011521536A5 JP2011521536A5 (ja) 2012-03-22
JP5180370B2 true JP5180370B2 (ja) 2013-04-10

Family

ID=41255661

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011507513A Active JP5180370B2 (ja) 2008-05-02 2009-04-01 並べ替えられた変換係数のマルチレベル表現

Country Status (8)

Country Link
US (2) US8179974B2 (ja)
EP (1) EP2269380B1 (ja)
JP (1) JP5180370B2 (ja)
KR (1) KR101541945B1 (ja)
CN (1) CN102017634B (ja)
HK (1) HK1154729A1 (ja)
MX (1) MX2010011961A (ja)
WO (1) WO2009134575A2 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9479786B2 (en) * 2008-09-26 2016-10-25 Dolby Laboratories Licensing Corporation Complexity allocation for video and image coding applications
US8526745B2 (en) 2009-12-03 2013-09-03 Sony Corporation Embedded graphics coding: reordered bitstream for parallel decoding
KR101675118B1 (ko) 2010-01-14 2016-11-10 삼성전자 주식회사 스킵 및 분할 순서를 고려한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR101703327B1 (ko) * 2010-01-14 2017-02-06 삼성전자 주식회사 계층적 데이터 단위의 패턴 정보를 이용하는 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
HUE045579T2 (hu) 2010-04-13 2020-01-28 Ge Video Compression Llc Síkközi predikció
CN106162171B (zh) 2010-04-13 2020-09-11 Ge视频压缩有限责任公司 解码器及方法、编码方法
CN105120287B (zh) 2010-04-13 2019-05-17 Ge 视频压缩有限责任公司 解码器、编码器以及用于解码和编码的方法
CN113556556A (zh) 2010-04-13 2021-10-26 Ge视频压缩有限责任公司 显著性图和变换系数块的编码
BR112012026391B1 (pt) 2010-04-13 2020-12-15 Ge Video Compression, Llc Herança em amostra de arranjo em subdivisão multitree
KR20120009618A (ko) 2010-07-19 2012-02-02 에스케이 텔레콤주식회사 주파수변환단위 분할부호화 방법 및 장치와 이를 이용한 영상 부호화/복호화 방법 및 장치
US8532413B2 (en) * 2010-10-13 2013-09-10 Samsung Electronics Co., Ltd. Entropy encoding/decoding method and apparatus for hierarchical image processing and symbol encoding/decoding apparatus for the same
US9641846B2 (en) * 2010-10-22 2017-05-02 Qualcomm Incorporated Adaptive scanning of transform coefficients for video coding
US8976861B2 (en) 2010-12-03 2015-03-10 Qualcomm Incorporated Separately coding the position of a last significant coefficient of a video block in video coding
US9042440B2 (en) 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US20120163472A1 (en) * 2010-12-22 2012-06-28 Qualcomm Incorporated Efficiently coding scanning order information for a video block in video coding
US10992958B2 (en) 2010-12-29 2021-04-27 Qualcomm Incorporated Video coding using mapped transforms and scanning modes
KR101739580B1 (ko) * 2010-12-30 2017-05-25 에스케이 텔레콤주식회사 적응적 스캔 장치 및 그 스캔 방법
CN102651816B (zh) * 2011-02-23 2014-09-17 华为技术有限公司 一种变换系数块的扫描方法和装置
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
US20120230418A1 (en) * 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
CN104093018B (zh) * 2011-03-10 2017-08-04 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
CN102685503B (zh) 2011-03-10 2014-06-25 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
CN104093020B (zh) * 2011-03-10 2017-11-17 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
LT3343781T (lt) * 2011-06-16 2022-03-10 Ge Video Compression, Llc Konteksto inicijavimas entropinio kodavimo metu
US9491469B2 (en) 2011-06-28 2016-11-08 Qualcomm Incorporated Coding of last significant transform coefficient
US9756360B2 (en) * 2011-07-19 2017-09-05 Qualcomm Incorporated Coefficient scanning in video coding
KR102293126B1 (ko) * 2012-01-20 2021-08-25 지이 비디오 컴프레션, 엘엘씨 변환 계수 코딩
US9432666B2 (en) * 2012-03-29 2016-08-30 Intel Corporation CAVLC decoder with multi-symbol run before parallel decode
CN103391433B (zh) 2012-05-09 2017-07-18 腾讯科技(深圳)有限公司 视频编码帧内预测扫描方法及视频编码方法
CN102843562B (zh) * 2012-08-21 2016-03-02 西北农林科技大学 一种分组容错熵编码的方法
US20140327737A1 (en) 2013-05-01 2014-11-06 Raymond John Westwater Method and Apparatus to Perform Optimal Visually-Weighed Quantization of Time-Varying Visual Sequences in Transform Space
KR102329228B1 (ko) 2016-05-12 2021-11-19 엘지전자 주식회사 임의 파티션 변환에 기초하여 비디오 신호를 처리하는 방법
US9712830B1 (en) * 2016-09-15 2017-07-18 Dropbox, Inc. Techniques for image recompression
GB2556886B (en) * 2016-11-23 2019-05-15 Imagination Tech Ltd Encoding and decoding variable length instructions
CA3108454A1 (en) * 2018-08-03 2020-02-06 V-Nova International Limited Transformations for signal enhancement coding
US10728555B1 (en) 2019-02-06 2020-07-28 Sony Corporation Embedded codec (EBC) circuitry for position dependent entropy coding of residual level data
US11765366B2 (en) * 2020-05-07 2023-09-19 Blackmagic Design Pty Ltd Method for processing transform coefficients
CN113489980B (zh) * 2021-08-13 2022-10-25 北京大学深圳研究生院 一种点云属性变换系数的熵编码和熵解码的方法及设备

Family Cites Families (223)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4420771A (en) 1981-02-09 1983-12-13 Bell Telephone Laboratories, Incorporated Technique for encoding multi-level signals
US4558302A (en) 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
DE3629434C2 (de) 1986-08-29 1994-07-28 Karlheinz Dipl Ing Brandenburg Digitales Codierverfahren
ATE108587T1 (de) * 1986-09-13 1994-07-15 Philips Nv Verfahren und schaltungsanordung zur bitratenreduktion.
US4730348A (en) * 1986-09-19 1988-03-08 Adaptive Computer Technologies Adaptive data compression system
US4698672A (en) 1986-10-27 1987-10-06 Compression Labs, Inc. Coding system for reducing redundancy
US4862167A (en) 1987-02-24 1989-08-29 Hayes Microcomputer Products, Inc. Adaptive data compression method and apparatus
US4968135A (en) 1987-08-17 1990-11-06 Digital Equipment Corporation System for producing pixel image data from CCITT encoded pixel data
US4792981A (en) 1987-09-21 1988-12-20 Am International, Inc. Manipulation of run-length encoded images
JPH0191587U (ja) 1987-12-07 1989-06-15
US4813056A (en) * 1987-12-08 1989-03-14 General Electric Company Modified statistical coding of digital signals
JPH0621830Y2 (ja) 1988-03-11 1994-06-08 本田技研工業株式会社 自動車のサイドシル構造
EP0339589A3 (en) * 1988-04-28 1992-01-02 Sharp Kabushiki Kaisha Orthogonal transform coding system for image data
US5043919A (en) 1988-12-19 1991-08-27 International Business Machines Corporation Method of and system for updating a display unit
DE3943880B4 (de) 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
FR2646978B1 (fr) * 1989-05-11 1991-08-23 France Etat Procede et installation a codage de signaux sonores
US5179442A (en) * 1989-06-02 1993-01-12 North American Philips Corporation Method and apparatus for digitally processing a high definition television augmentation signal
US5128758A (en) * 1989-06-02 1992-07-07 North American Philips Corporation Method and apparatus for digitally processing a high definition television augmentation signal
JPH03108824U (ja) 1990-02-22 1991-11-08
US5270832A (en) 1990-03-14 1993-12-14 C-Cube Microsystems System for compression and decompression of video data using discrete cosine transform and coding techniques
JPH0787331B2 (ja) 1990-05-07 1995-09-20 松下電器産業株式会社 圧電振動子及びその周波数調整方法
US5146324A (en) 1990-07-31 1992-09-08 Ampex Corporation Data compression using a feedforward quantization estimator
JPH04199981A (ja) * 1990-11-29 1992-07-21 Nec Corp 即時処理型1次元符号器
US5253053A (en) 1990-12-31 1993-10-12 Apple Computer, Inc. Variable length decoding using lookup tables
US5266941A (en) * 1991-02-15 1993-11-30 Silicon Graphics, Inc. Apparatus and method for controlling storage of display information in a computer system
US5373513A (en) 1991-08-16 1994-12-13 Eastman Kodak Company Shift correction code system for correcting additive errors and synchronization slips
JP2670201B2 (ja) * 1991-08-30 1997-10-29 富士写真フイルム株式会社 画像データ圧縮符号化装置および方法
JP2586260B2 (ja) 1991-10-22 1997-02-26 三菱電機株式会社 適応的ブロッキング画像符号化装置
JP3134424B2 (ja) 1991-10-31 2001-02-13 ソニー株式会社 可変長符号化方法及び装置
US5227878A (en) * 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
JP2812446B2 (ja) 1991-11-21 1998-10-22 三洋電機株式会社 画像符号化方式
DE69228983T2 (de) * 1991-12-18 1999-10-28 Koninkl Philips Electronics Nv System zum Übertragen und/oder Speichern von Signalen von texturierten Bildern
AU3247393A (en) 1991-12-23 1993-07-28 Intel Corporation Circuitry for decoding huffman codes
JPH05199422A (ja) 1992-01-20 1993-08-06 Fujitsu General Ltd 画像伝送装置
US6680975B1 (en) * 1992-02-29 2004-01-20 Samsung Electronics Co., Ltd. Signal encoding and decoding system and method
CA2090052C (en) * 1992-03-02 1998-11-24 Anibal Joao De Sousa Ferreira Method and apparatus for the perceptual coding of audio signals
EP0559348A3 (en) * 1992-03-02 1993-11-03 AT&T Corp. Rate control loop processor for perceptual encoder/decoder
US5227788A (en) * 1992-03-02 1993-07-13 At&T Bell Laboratories Method and apparatus for two-component signal compression
US5714950A (en) * 1992-07-23 1998-02-03 Samsung Electronics Co., Ltd. System for variable-length-coding and variable-length-decoding digitaldata
KR950010913B1 (ko) 1992-07-23 1995-09-25 삼성전자주식회사 가변장부호화 및 복호화시스템
JP3348310B2 (ja) 1992-09-28 2002-11-20 ソニー株式会社 動画像符号化方法および動画像符号化装置
CA2107727C (en) * 1992-10-07 1999-06-01 Hiroaki Ueda Synchronous compression and reconstruction system
US5982437A (en) 1992-10-26 1999-11-09 Sony Corporation Coding method and system, and decoding method and system
JP2959916B2 (ja) * 1992-10-28 1999-10-06 松下電器産業株式会社 デジタル・ビデオ・コーダ用のバーサタイルなエスケープ・ラン・レベル・コーダ
KR0166722B1 (ko) 1992-11-30 1999-03-20 윤종용 부호화 및 복호화방법 및 그 장치
US5367629A (en) 1992-12-18 1994-11-22 Sharevision Technology, Inc. Digital video compression system utilizing vector adaptive transform
US5467134A (en) 1992-12-22 1995-11-14 Microsoft Corporation Method and system for compressing video data
US5535305A (en) * 1992-12-31 1996-07-09 Apple Computer, Inc. Sub-partitioned vector quantization of probability density functions
US5400075A (en) * 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
JPH06217110A (ja) 1993-01-20 1994-08-05 Process Shizai Kk 画像変換方法
US5544286A (en) 1993-01-29 1996-08-06 Microsoft Corporation Digital video data compression technique
TW224553B (en) * 1993-03-01 1994-06-01 Sony Co Ltd Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture
US5376968A (en) 1993-03-11 1994-12-27 General Instrument Corporation Adaptive compression of digital video data using different modes such as PCM and DPCM
US5408234A (en) * 1993-04-30 1995-04-18 Apple Computer, Inc. Multi-codebook coding process
KR100458969B1 (ko) * 1993-05-31 2005-04-06 소니 가부시끼 가이샤 신호부호화또는복호화장치,및신호부호화또는복호화방법
US5664057A (en) 1993-07-07 1997-09-02 Picturetel Corporation Fixed bit rate speech encoder/decoder
KR0155784B1 (ko) 1993-12-16 1998-12-15 김광호 영상데이타의 적응형 가변장 부호화/복호화방법
KR970009408B1 (ko) 1994-01-18 1997-06-13 대우전자 주식회사 인터/인트라 테이블 선택 회로
JP3277677B2 (ja) 1994-04-01 2002-04-22 ソニー株式会社 信号符号化方法及び装置、信号記録媒体、信号伝送方法、並びに信号復号化方法及び装置
US5504591A (en) * 1994-04-25 1996-04-02 Microsoft Corporation System and method for compressing graphic images
US5457495A (en) 1994-05-25 1995-10-10 At&T Ipm Corp. Adaptive video coder with dynamic bit allocation
US5748786A (en) * 1994-09-21 1998-05-05 Ricoh Company, Ltd. Apparatus for compression using reversible embedded wavelets
US6195465B1 (en) * 1994-09-21 2001-02-27 Ricoh Company, Ltd. Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US6141446A (en) * 1994-09-21 2000-10-31 Ricoh Company, Ltd. Compression and decompression system with reversible wavelets and lossy reconstruction
US5881176A (en) 1994-09-21 1999-03-09 Ricoh Corporation Compression and decompression with wavelet style and binary style including quantization by device-dependent parser
US5568167A (en) 1994-09-23 1996-10-22 C-Cube Microsystems, Inc. System for providing antialiased video overlays
JP3474005B2 (ja) 1994-10-13 2003-12-08 沖電気工業株式会社 動画像符号化方法及び動画像復号方法
JPH08116263A (ja) 1994-10-17 1996-05-07 Fujitsu Ltd データ処理装置及びデータ処理方法
US5802213A (en) 1994-10-18 1998-09-01 Intel Corporation Encoding video signals using local quantization levels
AU697176B2 (en) 1994-11-04 1998-10-01 Koninklijke Philips Electronics N.V. Encoding and decoding of a wideband digital information signal
US5473376A (en) 1994-12-01 1995-12-05 Motorola, Inc. Method and apparatus for adaptive entropy encoding/decoding of quantized transform coefficients in a video compression system
JPH08167852A (ja) 1994-12-13 1996-06-25 Fujitsu Ltd データ圧縮方法及び装置
US5654702A (en) 1994-12-16 1997-08-05 National Semiconductor Corp. Syntax-based arithmetic coding for low bit rate videophone
JP3371590B2 (ja) 1994-12-28 2003-01-27 ソニー株式会社 高能率符号化方法及び高能率復号化方法
JP2951861B2 (ja) 1994-12-28 1999-09-20 シャープ株式会社 画像符号化装置及び画像復号装置
JPH08190764A (ja) 1995-01-05 1996-07-23 Sony Corp ディジタル信号処理方法、ディジタル信号処理装置及び記録媒体
JPH08205169A (ja) 1995-01-20 1996-08-09 Matsushita Electric Ind Co Ltd 動画像符号化装置及び復号装置
JP3238854B2 (ja) 1995-02-21 2001-12-17 富士通株式会社 データ圧縮方法及びデータ圧縮装置、並びにデータ復元方法及びデータ復元装置
US5574449A (en) 1995-02-24 1996-11-12 Intel Corporation Signal processing with hybrid variable-length and entropy encodidng
US5991451A (en) 1995-03-23 1999-11-23 Intel Corporation Variable-length encoding using code swapping
US5884269A (en) * 1995-04-17 1999-03-16 Merging Technologies Lossless compression/decompression of digital audio data
US5864711A (en) 1995-07-05 1999-01-26 Microsoft Corporation System for determining more accurate translation between first and second translator, and providing translated data to second computer if first translator is more accurate
US5825830A (en) 1995-08-17 1998-10-20 Kopf; David A. Method and apparatus for the compression of audio, video or other data
US5796855A (en) 1995-10-05 1998-08-18 Microsoft Corporation Polygon block matching method
US5819215A (en) 1995-10-13 1998-10-06 Dobson; Kurt Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data
US5889891A (en) * 1995-11-21 1999-03-30 Regents Of The University Of California Universal codebook vector quantization with constrained storage
JP3283413B2 (ja) 1995-11-30 2002-05-20 株式会社日立製作所 符号化復号方法、符号化装置および復号装置
US5956674A (en) 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
JPH09162748A (ja) 1995-12-01 1997-06-20 Fujitsu Ltd データ符号化方法、データ復号方法、データ圧縮装置、データ復元装置、及びデータ圧縮・復元システム
US5831559A (en) 1996-01-24 1998-11-03 Intel Corporation Encoding/decoding video signals using multiple run-val mapping tables
US6957350B1 (en) * 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US5675332A (en) 1996-02-01 1997-10-07 Samsung Electronics Co., Ltd. Plural-step chunk-at-a-time decoder for variable-length codes of Huffman type
US5682152A (en) * 1996-03-19 1997-10-28 Johnson-Grace Company Data compression using adaptive bit allocation and hybrid lossless entropy encoding
US5812971A (en) 1996-03-22 1998-09-22 Lucent Technologies Inc. Enhanced joint stereo coding method using temporal envelope shaping
US6215910B1 (en) * 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
US5850482A (en) 1996-04-17 1998-12-15 Mcdonnell Douglas Corporation Error resilient method and apparatus for entropy coding
EP1835762A3 (en) 1996-05-28 2007-10-03 Matsushita Electric Industrial Co., Ltd. decoding apparatus with intra prediction
JPH11512271A (ja) 1996-06-28 1999-10-19 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ 2語ビット流分節式高性能可変長復号器および関連復号方法
EP0847650A4 (en) 1996-07-03 2000-01-05 Motorola Inc METHOD AND DEVICE FOR LIMIT-VALUE-BASED ADAPTIVE ENTROPY CODING AND DECODING
DE19628293C1 (de) * 1996-07-12 1997-12-11 Fraunhofer Ges Forschung Codieren und Decodieren von Audiosignalen unter Verwendung von Intensity-Stereo und Prädiktion
DE19628292B4 (de) 1996-07-12 2007-08-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zum Codieren und Decodieren von Stereoaudiospektralwerten
US5828426A (en) 1996-08-20 1998-10-27 Samsung Electronics Co., Ltd. Apparatus for decoding variable length coded data of both MPEG-1 and MPEG-2 standards
JP3318825B2 (ja) 1996-08-20 2002-08-26 ソニー株式会社 デジタル信号符号化処理方法、デジタル信号符号化処理装置、デジタル信号記録方法、デジタル信号記録装置、記録媒体、デジタル信号伝送方法及びデジタル信号伝送装置
US5734340A (en) * 1996-08-27 1998-03-31 Symantech Corporation Method and apparatus for storing run-intensive information in compact form
US6233017B1 (en) * 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
US5748789A (en) * 1996-10-31 1998-05-05 Microsoft Corporation Transparent block skipping in object-based video coding systems
SG102016A1 (en) * 1996-11-06 2004-02-27 Matsushita Electric Ind Co Ltd Image coding and decoding methods
JP4049820B2 (ja) 1996-11-07 2008-02-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ビットストリーム信号のデータ処理
EP0876709B1 (en) * 1996-11-11 2003-08-06 Koninklijke Philips Electronics N.V. Data compression/expansion using a rice encoder/decoder
US5903231A (en) * 1996-12-16 1999-05-11 Vidicast Ltd. System for encoding base N data using a multi-level coding scheme
JP3484310B2 (ja) 1997-01-17 2004-01-06 松下電器産業株式会社 可変長符号器
NL1005084C2 (nl) * 1997-01-24 1998-07-27 Oce Tech Bv Werkwijze voor het uitvoeren van een beeldbewerkingsoperatie op looplengte gecodeerde bitmaps.
JP3534577B2 (ja) 1997-07-23 2004-06-07 日本電信電話株式会社 情報多重化方法、情報抽出方法及びそれらの装置
US6038536A (en) * 1997-01-31 2000-03-14 Texas Instruments Incorporated Data compression using bit change statistics
US6272175B1 (en) 1997-02-13 2001-08-07 Conexant Systems, Inc. Video signal coding systems and processes using adaptive quantization
JPH10229340A (ja) * 1997-02-14 1998-08-25 Nec Corp サブバンド信号およびウエーブレット変換係数の符号化復号方式
US6005980A (en) * 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
US5974184A (en) 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
FI114248B (fi) 1997-03-14 2004-09-15 Nokia Corp Menetelmä ja laite audiokoodaukseen ja audiodekoodaukseen
US6728775B1 (en) * 1997-03-17 2004-04-27 Microsoft Corporation Multiple multicasting of multimedia streams
US6009387A (en) 1997-03-20 1999-12-28 International Business Machines Corporation System and method of compression/decompressing a speech signal by using split vector quantization and scalar quantization
US6404813B1 (en) * 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US6259810B1 (en) * 1997-04-15 2001-07-10 Microsoft Corporation Method and system of decoding compressed image data
US5883633A (en) * 1997-04-15 1999-03-16 Microsoft Corporation Method and system of variable run length image encoding using sub-palette
JP3410629B2 (ja) 1997-05-21 2003-05-26 シャープ株式会社 可変長符号化回路及び可変長符号化方法
US6580834B2 (en) * 1997-05-30 2003-06-17 Competitive Technologies Of Pa, Inc. Method and apparatus for encoding and decoding signals
CN1126270C (zh) * 1997-07-11 2003-10-29 皇家菲利浦电子有限公司 使用可变长度编码器的传输系统
DE19730130C2 (de) * 1997-07-14 2002-02-28 Fraunhofer Ges Forschung Verfahren zum Codieren eines Audiosignals
DE19730129C2 (de) 1997-07-14 2002-03-07 Fraunhofer Ges Forschung Verfahren zum Signalisieren einer Rauschsubstitution beim Codieren eines Audiosignals
US6421738B1 (en) * 1997-07-15 2002-07-16 Microsoft Corporation Method and system for capturing and encoding full-screen video graphics
JP3884172B2 (ja) 1997-10-02 2007-02-21 株式会社東芝 可変長復号化装置および復号化方法
WO1999022525A1 (en) 1997-10-23 1999-05-06 Mitsubishi Denki Kabushiki Kaisha Image encoding method, image encoder, image decoding method, and image decoder
EP1988714B1 (en) 1997-10-23 2010-03-03 Mitsubishi Denki Kabushiki Kaisha Image decoding apparatus
JPH11161782A (ja) * 1997-11-27 1999-06-18 Seiko Epson Corp カラー画像の符号化方法およびその符号化装置ならびにカラー画像の復号化方法およびその復号化装置
US6111914A (en) 1997-12-01 2000-08-29 Conexant Systems, Inc. Adaptive entropy coding in adaptive quantization framework for video signal coding systems and processes
US5946043A (en) 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
US6226407B1 (en) * 1998-03-18 2001-05-01 Microsoft Corporation Method and apparatus for analyzing computer screens
US6054943A (en) * 1998-03-25 2000-04-25 Lawrence; John Clifton Multilevel digital information compression based on lawrence algorithm
US6408029B1 (en) * 1998-04-02 2002-06-18 Intel Corporation Method and apparatus for simplifying real-time data encoding
KR20010071519A (ko) * 1998-06-19 2001-07-28 벤자민 에프 커틀러 제1 해상도를 가지는 인코딩된 이미지를 제2 해상도를가지는 이미지로 직접 디코딩하는 방법 및 장치
JP3413720B2 (ja) 1998-06-26 2003-06-09 ソニー株式会社 画像符号化方法及び装置、並びに画像復号方法及び装置
US6253165B1 (en) * 1998-06-30 2001-06-26 Microsoft Corporation System and method for modeling probability distribution functions of transform coefficients of encoded signal
DE19840835C2 (de) 1998-09-07 2003-01-09 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Entropiecodieren von Informationswörtern und Vorrichtung und Verfahren zum Decodieren von Entropie-codierten Informationswörtern
JP3723740B2 (ja) * 1998-10-06 2005-12-07 松下電器産業株式会社 ロスレス圧縮符号方法とその装置およびロスレス圧縮復号方法とその装置
US6233359B1 (en) * 1998-10-29 2001-05-15 Seiko Epson Corporation File size bounded JPEG transcoder (FSBJT)
US6223162B1 (en) * 1998-12-14 2001-04-24 Microsoft Corporation Multi-level run length coding for frequency-domain audio coding
US6404931B1 (en) * 1998-12-14 2002-06-11 Microsoft Corporation Code book construction for variable to variable length entropy encoding
US6300888B1 (en) 1998-12-14 2001-10-09 Microsoft Corporation Entrophy code mode switching for frequency-domain audio coding
US6377930B1 (en) 1998-12-14 2002-04-23 Microsoft Corporation Variable to variable length entropy encoding
US6100825A (en) 1998-12-31 2000-08-08 Microsoft Corporation Cluster-based data compression system and method
JP3434260B2 (ja) 1999-03-23 2003-08-04 日本電信電話株式会社 オーディオ信号符号化方法及び復号化方法、これらの装置及びプログラム記録媒体
US6678419B1 (en) * 1999-03-26 2004-01-13 Microsoft Corporation Reordering wavelet coefficients for improved encoding
US6477280B1 (en) 1999-03-26 2002-11-05 Microsoft Corporation Lossless adaptive encoding of finite alphabet data
WO2000059231A1 (en) * 1999-03-26 2000-10-05 Microsoft Corporation Reordering and blocking for wavelet-transformed image data
US7050503B2 (en) 1999-04-17 2006-05-23 Pts Corporation Segment-based encoding system using residue coding by basis function coefficients
JP3323175B2 (ja) 1999-04-20 2002-09-09 松下電器産業株式会社 符号化装置
US6573915B1 (en) * 1999-12-08 2003-06-03 International Business Machines Corporation Efficient capture of computer screens
US6567781B1 (en) * 1999-12-30 2003-05-20 Quikcat.Com, Inc. Method and apparatus for compressing audio data using a dynamical system having a multi-state dynamical rule set and associated transform basis function
US6552673B2 (en) * 2000-02-25 2003-04-22 Texas Instruments Incorporated Efficient table access for reversible variable length code decoding using a hash function
US6771828B1 (en) * 2000-03-03 2004-08-03 Microsoft Corporation System and method for progessively transform coding digital data
EP1294197A4 (en) * 2000-05-23 2004-11-24 Matsushita Electric Ind Co Ltd METHOD AND DEVICE FOR CODING WITH VARIABLE LENGTH
US6542863B1 (en) * 2000-06-14 2003-04-01 Intervideo, Inc. Fast codebook search method for MPEG audio encoding
US6373411B1 (en) 2000-08-31 2002-04-16 Agere Systems Guardian Corp. Method and apparatus for performing variable-size vector entropy coding
JP4508490B2 (ja) 2000-09-11 2010-07-21 パナソニック株式会社 符号化装置および復号化装置
US6961685B2 (en) 2000-09-19 2005-11-01 Sy Bon K Probability model selection using information-theoretic optimization criterion
WO2002035849A1 (en) 2000-10-24 2002-05-02 Eyeball Networks Inc. Three-dimensional wavelet-based scalable video compression
US6735339B1 (en) 2000-10-27 2004-05-11 Dolby Laboratories Licensing Corporation Multi-stage encoding of signal components that are classified according to component value
JP3580251B2 (ja) 2000-12-27 2004-10-20 日本電気株式会社 データ圧縮装置及び圧縮方法並びにその制御プログラムを記録した記録媒体
US7274671B2 (en) 2001-02-09 2007-09-25 Boly Media Communications, Inc. Bitwise adaptive encoding using prefix prediction
CN100456640C (zh) 2001-06-07 2009-01-28 日本胜利株式会社 调制和解调方法与装置、信息传输方法和装置
US6650784B2 (en) 2001-07-02 2003-11-18 Qualcomm, Incorporated Lossless intraframe encoding using Golomb-Rice
US6587057B2 (en) * 2001-07-25 2003-07-01 Quicksilver Technology, Inc. High performance memory efficient variable-length coding decoder
US20030033143A1 (en) * 2001-08-13 2003-02-13 Hagai Aronowitz Decreasing noise sensitivity in speech processing under adverse conditions
US6856701B2 (en) 2001-09-14 2005-02-15 Nokia Corporation Method and system for context-based adaptive binary arithmetic coding
US6959116B2 (en) 2001-09-18 2005-10-25 Emc Corporation Largest magnitude indices selection for (run, level) encoding of a block coded picture
CA2467266A1 (en) * 2001-11-22 2003-05-30 Matsushita Electric Industrial Co., Ltd. Variable length coding method and variable length decoding method
CN1946187B (zh) * 2001-11-22 2012-02-22 松下电器产业株式会社 可变长度编码方法以及可变长度解码方法
US6825847B1 (en) 2001-11-30 2004-11-30 Nvidia Corporation System and method for real-time compression of pixel colors
US7165028B2 (en) * 2001-12-12 2007-01-16 Texas Instruments Incorporated Method of speech recognition resistant to convolutive distortion and additive distortion
US6934677B2 (en) 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US7155065B1 (en) 2002-03-27 2006-12-26 Microsoft Corporation System and method for progressively transforming and coding digital data
US7139703B2 (en) 2002-04-05 2006-11-21 Microsoft Corporation Method of iterative noise estimation in a recursive framework
US6653955B1 (en) 2002-05-09 2003-11-25 Lsi Logic Corporation Multi-symbol variable length code decoder
GB2388502A (en) 2002-05-10 2003-11-12 Chris Dunn Compression of frequency domain audio signals
US7016547B1 (en) * 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
KR100846778B1 (ko) * 2002-07-16 2008-07-16 삼성전자주식회사 복수개의 주사 패턴을 이용한 부호화 방법, 복호화 방법,및 그 장치
DE10236694A1 (de) 2002-08-09 2004-02-26 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum skalierbaren Codieren und Vorrichtung und Verfahren zum skalierbaren Decodieren
US7424434B2 (en) * 2002-09-04 2008-09-09 Microsoft Corporation Unified lossy and lossless audio compression
US7328150B2 (en) * 2002-09-04 2008-02-05 Microsoft Corporation Innovations in pure lossless audio compression
US7536305B2 (en) * 2002-09-04 2009-05-19 Microsoft Corporation Mixed lossless audio compression
US7502743B2 (en) * 2002-09-04 2009-03-10 Microsoft Corporation Multi-channel audio encoding and decoding with multi-channel transform selection
EP1734511B1 (en) 2002-09-04 2009-11-18 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
WO2004038921A2 (en) * 2002-10-23 2004-05-06 Divxnetworks, Inc. Method and system for supercompression of compressed digital video
US6646578B1 (en) 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US7403561B2 (en) 2003-04-04 2008-07-22 Avid Technology, Inc. Fixed bit rate, intraframe compression and decompression of video
US7324927B2 (en) * 2003-07-03 2008-01-29 Robert Bosch Gmbh Fast feature selection method and system for maximum entropy modeling
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
CN1214649C (zh) 2003-09-18 2005-08-10 中国科学院计算技术研究所 用于视频预测残差系数编码的熵编码方法
US7460990B2 (en) 2004-01-23 2008-12-02 Microsoft Corporation Efficient coding of digital media spectral data using wide-sense perceptual similarity
US7454076B2 (en) 2004-06-15 2008-11-18 Cisco Technology, Inc. Hybrid variable length coding method for low bit rate video coding
US7852916B2 (en) 2004-06-27 2010-12-14 Apple Inc. Efficient use of storage in encoding and decoding video data streams
KR100668302B1 (ko) * 2004-07-28 2007-01-12 삼성전자주식회사 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법
KR100664932B1 (ko) * 2004-10-21 2007-01-04 삼성전자주식회사 비디오 코딩 방법 및 장치
US7809064B2 (en) * 2004-11-15 2010-10-05 Industrial Technology Research Institute Systems and methods of flexible power management applicable to digital broadcasting
US20060176959A1 (en) 2005-02-07 2006-08-10 Paul Lu Method and system for encoding variable length code (VLC) in a microprocessor
US8422546B2 (en) 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
WO2007002468A2 (en) 2005-06-23 2007-01-04 1Stworks Corporation Modeling for enumerative encoding
US7599840B2 (en) 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
US7630882B2 (en) 2005-07-15 2009-12-08 Microsoft Corporation Frequency segmentation to obtain bands for efficient coding of digital media
US7546240B2 (en) * 2005-07-15 2009-06-09 Microsoft Corporation Coding with improved time resolution for selected segments via adaptive block transformation of a group of samples from a subband decomposition
US7693709B2 (en) * 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
US7562021B2 (en) 2005-07-15 2009-07-14 Microsoft Corporation Modification of codewords in dictionary used for efficient coding of digital media spectral data
US7684981B2 (en) * 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US9077960B2 (en) * 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
JP2007300389A (ja) * 2006-04-28 2007-11-15 Victor Co Of Japan Ltd 画像符号化装置および画像符号化プログラム
US9070178B2 (en) * 2006-08-11 2015-06-30 Siemens Product Lifecycle Management Software Inc. Method and system for organizing topology elements for better compression
US7756350B2 (en) 2006-11-13 2010-07-13 Global Ip Solutions, Inc. Lossless encoding and decoding of digital data
US7761290B2 (en) 2007-06-15 2010-07-20 Microsoft Corporation Flexible frequency and time partitioning in perceptual transform coding of audio
US20080317364A1 (en) 2007-06-25 2008-12-25 Augusta Technology, Inc. Methods for determining neighboring locations for partitions of a video stream
US8406307B2 (en) * 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data

Also Published As

Publication number Publication date
US8179974B2 (en) 2012-05-15
US20090273706A1 (en) 2009-11-05
KR20110010599A (ko) 2011-02-01
HK1154729A1 (en) 2012-04-27
WO2009134575A3 (en) 2010-03-11
WO2009134575A2 (en) 2009-11-05
US20120243615A1 (en) 2012-09-27
EP2269380A2 (en) 2011-01-05
CN102017634B (zh) 2014-03-12
EP2269380B1 (en) 2020-05-06
KR101541945B1 (ko) 2015-08-05
US9172965B2 (en) 2015-10-27
MX2010011961A (es) 2010-11-30
JP2011521536A (ja) 2011-07-21
EP2269380A4 (en) 2014-05-28
CN102017634A (zh) 2011-04-13

Similar Documents

Publication Publication Date Title
JP5180370B2 (ja) 並べ替えられた変換係数のマルチレベル表現
US12003750B2 (en) Video decoding method and apparatus using multi-core transform, and video encoding method and apparatus using multi-core transform
US8406307B2 (en) Entropy coding/decoding of hierarchically organized data
JP6342549B2 (ja) ビデオ復号化方法とその装置
TWI753356B (zh) 用於編碼或解碼轉換塊的方法與裝置
US9516350B2 (en) Method and apparatus for entropy coding video and method and apparatus for entropy decoding video
US20210127112A1 (en) Image encoding method and apparatus, and image decoding method and apparatus
CN108259900B (zh) 针对视频的上下文自适应二进制熵编码的变换系数编码
JP2018201203A (ja) データストリームにおいて符号化された変換係数ブロックを復号する装置および方法、ならびにビデオに関連するデータを記憶するための非一時コンピュータ可読媒体
US9706214B2 (en) Image and video decoding implementations
KR20110116025A (ko) 저복잡도 주파수 변환을 이용한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
US20240187597A1 (en) Image encoding method and device, and image decoding method and device
US11706432B2 (en) Encoding method and apparatus therefor, and decoding method and apparatus therefor

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120206

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20120206

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20120424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120808

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120808

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121108

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130110

R150 Certificate of patent or registration of utility model

Ref document number: 5180370

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250