JP2011004406A - 係数の位置をコード化する方法及び装置 - Google Patents

係数の位置をコード化する方法及び装置 Download PDF

Info

Publication number
JP2011004406A
JP2011004406A JP2010161644A JP2010161644A JP2011004406A JP 2011004406 A JP2011004406 A JP 2011004406A JP 2010161644 A JP2010161644 A JP 2010161644A JP 2010161644 A JP2010161644 A JP 2010161644A JP 2011004406 A JP2011004406 A JP 2011004406A
Authority
JP
Japan
Prior art keywords
tree
data
zero
bitstream
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010161644A
Other languages
English (en)
Inventor
Frank Bossen
フランク ボッセン,
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Publication of JP2011004406A publication Critical patent/JP2011004406A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3082Vector coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • 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/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/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • 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/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

【課題】係数の位置をコード化する優れた技術を提供する。
【解決手段】係数のようなデータの位置をコード化する方法及び装置が開示される。一実施形態では、方法は、ツリーデータ構造を使用して特定された、データがゼロであるか又は非ゼロであるかの指標に基づいて、データのベクトル中のデータをコード化するデータコード化ステップと、コード化されたデータに基づいてビットストリームを生成するビットストリーム生成ステップとを備える。
【選択図】図1

Description

本発明は、コード化の分野に関し、より詳しくは、本発明は、グループ(たとえば、係数のブロック)内のある種の係数(たとえば、非ゼロ係数)のコード化に関係する。
本特許文献の開示の一部は著作権保護の対象となる素材を含んでいる。著作権所有者は、特許商標局における特許ファイル又は記録物において明白であるので、何人による特許文献又は特許情報開示の複製にも異議を唱えないが、それ以外は、いかなるものであれ全ての著作権を留保する。
本特許出願は、発明の名称が“Method and Apparatus for Coding Positions of Non−zero Coefficients in a Block”である、2004年12月22日に出願された、対応する仮特許出願第60/639,430号に基づく優先権を主張する。
データ圧縮は、大量のデータを蓄積及び伝送するための非常に有用なツールである。たとえば、文書のネットワーク伝送のような画像を伝送するために要する時間は、画像を再現するために必要とされるビット数を減少させるため圧縮が使用されたとき、大幅に短縮される。
多種多様なデータ圧縮技術が従来技術に存在している。圧縮技術は、損失のあるコード化と損失のないコード化の2つに大別される。損失のあるコード化は、元データの完全な再構成の保証がないほどに、情報の損失を生じるコード化を含む。損失のある圧縮の目標は、元データへの変更が、異議の余地なしに、又は、検出できないように行われる。損失のない圧縮では、全ての情報が保持され、完全な再構成を可能にするようにデータは圧縮される。
画像符号化器及びビデオ符号化器において、画像は典型的にブロックの組に区分化される。各ブロックは係数の集合に変換され量子化される。係数は、変換(たとえば、離散コサイン変換(DCT)、ウェーブレット変換)をデータに適用することにより作成できる。たとえば、JPEGでは、DCT変換は、係数を作成するため画像データに適用される。その後、これらの係数は量子化されてもよい。ブロック毎に、どの係数が非ゼロ値を有するかを記述する情報が伝送されなければならない。
量子化された係数は、典型的に値の1次元配列に配置される。配列中の係数の順序は、走査順序によって、たとえば、ジグザグ走査順序によって決定される。非ゼロ係数の位置は、その後に、ランレングス符号化法を使用してコード化される。
走査方法は、多くの場合に効率が制限されている。たとえば、ジグザグ走査方法に関して、ブロックが水平周波数だけ又は垂直周波数だけを収容するとき、多数のゼロ係数がジグザグパターンに沿って訪問され、効率が悪いという結果になる。
係数のようなデータの位置をコード化する方法及び装置が記載されている。一実施形態では、方法は、ツリーデータ構造を使用して特定された、データがゼロであるか又は非ゼロであるかの指標に基づいて、データのベクトル中のデータをコード化するデータコード化ステップと、コード化されたデータに基づいてビットストリームを作成するビットストリーム作成ステップとを備える。
本発明は、後述される詳細な説明と、本発明を特定の実施形態に制限するように解釈されるべきでなく、説明と理解のためだけに用いられる本発明の種々の実施形態の添付図面とから、より十分に理解される。
データを符号化するプロセスの一実施形態のフローチャートである。 エンコーダ及びデコーダのシステムの一実施形態のブロック図である。 変換エンコーダの一実施形態のブロック図である。 ツリー構造データの例である。 係数エンコーダの一実施形態のブロック図である。 係数エンコーダによって実行される符号化プロセスの一実施形態のフローチャートである。 値をツリーのノードに割り当てるプロセスの一実施形態のフローチャートである。 ツリー中のノードを符号化するプロセスの一実施形態のフローチャートである。 子ノードの値を符号化するプロセスの一実施形態のフローチャートである。 子ノードの値を符号化するプロセスの別の実施形態のフローチャートである。 変換デコーダの一実施形態のブロック図である。 係数デコーダの一実施形態のブロック図である。 量子化された係数を復号化するプロセスの一実施形態のフローチャートである。 ノードを復号化するプロセスの一実施形態のフローチャートである。 子ノードの値を復号化するプロセスの一実施形態のフローチャートである。 子ノードの値を復号化するプロセスの代替的な実施形態のフローチャートである。 図4のツリー構造の表現の例を説明する図である。 量子化された係数を復号化するプロセスの一実施形態のフローチャートである。 係数デコーダの一実施形態のブロック図である。 コンピュータシステムの一実施形態のブロック図である。 データを復号化するプロセスの一実施形態のフローチャートである。
データのグループ(たとえば、データのブロック)内の係数(たとえば、非ゼロ係数)の位置をコード化する方法及び装置について記載されている。一実施形態では、係数は二分木に配置される。ツリーは節(ノード)を系統的に一つ残らず一回ずつなぞられ(以下、トラバースされ)、非ゼロ係数の位置をコード化する。本発明の実施形態は、伝統的なジグザグ走査を使用する係数のコード化への代替案を提供し、ツリー内での係数の体系化に依存し、それによって、単一の走査より高い柔軟性及び良い効率を提供する。
後に続く実施形態は係数を用いて動作するものとして記載されているが、本明細書に記載された技術が任意のデータのベクトルに適用されることは当業者に明白であろう。
以下の記載では、本発明のより徹底的な説明を行うために様々な詳細が示されている。しかし、本発明が、これらの特定の詳細を用いることなく実施されてもよいことは当業者にとって明白であろう。他の例では、よく知られている構成及び機器は、本発明を不明瞭化することを避けるために、詳細にではなく、ブロック図形式で示されている。
後述する詳細な説明の一部は、コンピュータメモリ内のデータビットに関する演算のアルゴリズム及び記号的表現という点で提示されている。これらのアルゴリズム的な記述及び表現は、データ処理技術の当業者によって、自分の業績の内容をその技術における他の当業者へ最も効率的に伝達するために使用される手段である。アルゴリズムは、ここでは、一般的に、望ましい結果をもたらすステップの首尾一貫したシーケンスであると考えられる。ステップは物理量の物理的操作を必要とするステップである。通常、不可欠ではないが、これらの量は、記憶、転送、合成、比較及びそれ以外の操作がなされ得る、電気的又は磁気的信号の形式をとる。主として慣用上の理由で、これらの信号を、ビット、値、要素、記号、文字、項、数などと呼ぶことが、時として好都合であることがわかった。
しかし、上記の用語及び類似した用語の全ては、適切な物理量と関連付けられるべきであり、これらの量に当てはめられた便宜的なラベルに過ぎないことに留意されたい。以下の説明から明白であるように、特に断らない限り、説明の全体を通じて、「処理」又は「コンピューティング」又は「計算」又は「決定」又は「表示」などのような用語を利用する説明は、コンピュータシステムのレジスタ及びメモリ内で物理(電子)量として表現されたデータを、コンピュータシステムメモリ若しくはレジスタ内、又は、その他のこのような情報記憶装置、伝送機器若しくは表示機器内で同じように物理量として表現されたその他のデータへ操作、変換する、コンピュータシステム又は類似した電子コンピューティング機器の作用及びプロセスを指すことが認められる。
本発明は、本明細書に記載された演算を実行する装置にも関係する。この装置は、要求された目的のため特に構成されるか、又は、コンピュータに格納されたコンピュータプログラムによって選択的に作動若しくは再構成される汎用コンピュータを備えてもよい。このようなコンピュータプログラムは、限定されることはないが、たとえば、フレキシブルディスク、光ディスク、CD−ROM、及び、磁気光ディスクを含む任意のタイプのディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気若しくは光カード、又は、電子命令を格納するのに適当であり、それぞれコンピュータシステムバスに接続されている任意のタイプの媒体のような、コンピュータ読み取り可能な記憶媒体に格納されてもよい。
本明細書に提示されているアルゴリズム及びディスプレイは、本質的に特定のコンピュータ又はその他の装置に関連していない。種々の汎用システムが本明細書における教示に従うプログラムと共に使用されてもよく、又は、要求された方法ステップを実行するためにより特化された装置を構築すると好都合であることがわかる。多種多様のこれらのシステムに要求される構成は以下の記載から明らかであろう。さらに、本発明は特定のプログラミング言語に関して記載されていない。多種多様のプログラミング言語が、本明細書に記載されているような発明の教示を実施するために使用されてもよいことが認められるであろう。
機械読み取り可能な媒体は、機械(たとえば、コンピュータ)によって読み取り可能な形式で情報を格納又は伝送する任意の仕組みを含む。たとえば、機械読み取り可能な媒体は、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気的、光学的、音響的又はその他の形式の伝搬信号(たとえば、搬送波、赤外線信号、デジタル信号など)などを含む。
(概要)
図1はデータを符号化するプロセスの一実施形態のフローチャートである。プロセスは、ハードウェア(たとえば、回路、専用ロジックなど)、(汎用コンピュータシステム又は専用機械上で動かされるような)ソフトウェア、又は、両方の組み合わせを備えてもよい、プロセッシングロジックによって実行される。プロセッシングはファームウェアによって実行されてもよい。
図1を参照すると、プロセスは、プロセッシングロジックが、前に生成されたデータ構造を使用して特定された非ゼロ係数の位置の指標に基づいて、係数のグループ内の非ゼロ係数の位置をコード化することによって開始する(処理ブロック101)。一実施形態では、データ構造はツリーを表現する。ツリーは二分木でもよい。一実施形態では、係数のグループは係数のブロックを含む。
次に、プロセッシングロジックはコード化された非ゼロ係数に基づいてビットストリームを生成する(処理ブロック102)。
図21はデータを復号化するプロセスの一実施形態のフローチャートである。プロセスは、ハードウェア(たとえば、回路、専用ロジックなど)、(汎用コンピュータシステム又は専用機械上で動かされるような)ソフトウェア、又は、両方の組み合わせを備えてもよい、プロセッシングロジックによって実行される。プロセッシングはファームウェアによって実行されてもよい。
図21を参照すると、プロセスは、プロセッシングロジックがビットストリームを受信することによって開始する(処理ブロック111)。次に、プロセッシングロジックは、前に生成されたデータ構造によって特定された量子化された係数の位置の指標に基づいて、係数のグループ内の量子化された係数の位置を得るために前に生成されたデータ構造を使用することを含めて、量子化された係数の集合を生成するためにビットストリームを復号化する(処理ブロック112)。
一実施形態では、データ構造表現はツリーである。ツリーは二分木でもよい。一実施形態では、係数のグループは係数のブロックを含む。
図2はエンコーダ及びデコーダシステムの一実施形態のブロック図である。一部のシステムはエンコーダ又はデコーダだけを含んでもよい。
図2を参照すると、エンコーダ202はソース画像201を、ソース画像201の圧縮表現であるビットストリーム203に変換する。デコーダ204は、ビットストリーム203を、再構成画像205に変換する。再構成画像205は、ソース画像201の近似(損失のある圧縮コンフィギュレーションにおける)又は(損失のない圧縮コンフィギュレーションにおける)正確な複製である。ビットストリーム203は、通信チャネル(たとえば、インターネットなど)を介して、又は、物理的な媒体(たとえば、CD−ROM)を介して、エンコーダ202からデコーダ203へ送信されてもよい。
図3は、変換エンコーダの一実施形態のブロック図である。図3の変換エンコーダは、図2のエンコーダ202のコンポーネントでもよい。エンコーダは、ソース画像を1個以上の画像データのブロック、たとえば、4×4又は8×8のサイズのブロックに区分化できる。その他の画像データのグループ分けが使用されてもよい。
図3を参照すると、変換ユニット302は、画像データのブロック301を係数303の集合に変換する。一実施形態では、変換ユニット302は、離散コサイン変換(DCT)を実施できる。量子化器304は、係数303を量子化された係数305の集合に変換する。一実施形態では、係数は実数値をとり、量子化された係数305のうちの1個の値は整数に制限される。一実施形態では、量子化器304は、所定の数によって各係数を除算し、結果を最も近い整数に丸め、量子化された係数を生成する。係数エンコーダ306は、量子化された係数305をビットストリーム307に変換する。一実施形態では、ビットストリーム307は、量子化された係数305の表現を含むビットの順序付き集合である。一実施形態では、係数エンコーダ306はハフマン符号化を使用する。代替的に、係数エンコーダ306は、算術符号化を、単独で又はハフマン符号化と併せて使用する。その他のコード化スキームもまた同様に使用できる。
本明細書における目的のため、ツリーを記述する用語は以下の通り使用される。図4は二分木の例である。図4を参照すると、ツリーは、5個のノードA、B、C、D及びEを収容している。ノードAはルートノードである。ノードD及びEは、本明細書では、Cの子ノードと呼ばれる。ノードDはリーフノードの例である。リーフノードは子ノードを所有しない。ノードB及びEもまたリーフノードである。
以降の記載は二分木を考慮するが、二分木以外のツリー(たとえば、三分木)も同様に使用される。
図17は、ツリー構造データの例である。図17を参照すると、ツリー構造データは、ノードタイプデータ1701及びリーフインデックスデータ1702を収容してもよい。ノードタイプデータ1701は、図4の二分木のようなツリー中の各ノードのノードタイプを収容する。たとえば、値0はリーフノードではないノードに対し使用されてもよく、値1はリーフノードであるノードに対し使用される。一実施形態では、ノードタイプの順序付けは、ツリーの深さ優先トラバースによって決定される。代替的に、幅優先トラバースが使用される。リーフインデックスデータ1702はツリー中のリーフ毎に係数インデックスを収容する。ツリーのリーフにおけるインデックスは、量子化された係数の配列へのインデックスを表現する。一実施形態では、リーフインデックスの順序付けは、ツリーの深さ優先トラバースによって決定できる。代替的に、幅優先トラバースが考慮される。図17の例では、図4に描かれたツリーが記述され、ノードBはインデックス0を、ノードDはインデックス2を、ノードEはインデックス1を有することを仮定している。
図5は、係数エンコーダの一実施形態のブロック図である。図5を参照すると、ツリー生成器502は、量子化された係数501を受信し、メモリ510からツリー構造データ506を取り出す。ツリー構造データ506は、二分木を記述する。一実施形態では、ツリー構造データ506は、ツリーのトポロジーに関係する情報と、ならびに、ツリー中の各リーフのインデックスとを含む。ツリー生成器502は、値をツリーの各ノードに割り当てる。最初に、ツリー生成器502は、ツリーの各リーフに、対応する量子化された係数がゼロと一致するならば、ゼロ値を割り当てる。そうでなければ、ツリー生成器502は非ゼロ値をリーフに割り当てる。次に、値が、ツリー中のリーフではない各ノードに再帰的に割り当てられる。このようなノードはそれぞれが2個の子を保有する。両方の子が値ゼロを有するならば、ゼロ値がノードに割り当てられる。そうでなければ、ツリー生成器502は非ゼロ値をノードに割り当てる。ノードに値が割り当てられているツリー503は、エントロピーエンコーダ504へ送信される。
エントロピーエンコーダ504は、ツリー生成器502からのツリー503と量子化された係数501とを受信する。エントロピーエンコーダ504は、メモリ510からツリー構造データ506をさらに受信する。エントロピーエンコーダ504は、さらに後述されるように、ツリー503のノードに割り当てられた値を符号化する。その後、非ゼロである量子化された係数毎に、エントロピーエンコーダ504は量子化された係数の値を符号化する。一実施形態では、ツリー及び係数の符号化は、ハフマン符号化を使用して実行される。別の実施形態では、算術符号化が使用されるが、どのようなコード化スキームが使用されてもよい。エントロピーエンコーダ504の出力は、コード化された情報を収容するビットストリーム505である。
選択的に、エントロピーエンコーダ504は、メモリ510から取り出されたビットストリーム505にツリー構造データを挿入してもよい。一実施形態では、ツリー構造データは、符号化された形式のビットストリームと共に挿入される。ノードタイプ情報は、1ノード当たり1ビットずつで符号化されてもよく、ノードがリーフであるか否かを示す。リーフインデックスに関する情報は、ツリーのサイズに依存する多数のビットにより符号化されてもよい。たとえば、3個のリーフインデックスを伴うツリーは、これらのインデックスを2ビットで符号化可能であり、16個のリーフインデックスを備えるツリーはこれらのインデックスを4ビットで符号化可能である。一般に、必要なビット数は、log(リーフインデックスの個数)におおよそ等しい。ツリー構造データは様々な時点で送信されてもよい。たとえば、代替的な実施形態では、ツリー構造データは、1ピクチャー毎に1回ずつ、ピクチャーのグループ毎に1回ずつ、又は、ビデオシーケンス全体について1回ずつ送信されてもよい。
図6は、係数エンコーダによって実行される符号化プロセスの一実施形態のフローチャートである。プロセスは、ハードウェア(たとえば、回路、専用ロジックなど)、(汎用コンピュータシステム又は専用機械上で動かされるような)ソフトウェア、又は、両方の組み合わせを備えてもよい、係数エンコーダのプロセッシングロジックによって実行される。プロセッシングロジックはファームウェアを備えてもよい。
図6を参照すると、プロセスは、プロセッシングロジックが、たとえば、量子化器から量子化された係数を受信することによって開始する(処理ブロック601)。プロセッシングロジックは、その後、係数の全部がゼロであるか否かをテストする(処理ブロック602)。全係数がゼロであるならば、フラグは全係数がゼロであることを示し、プロセスは終了する。そうでなければ、プロセッシングロジックは、ブロック中の少なくとも1個の係数がゼロに等しくないということを特定するフラグを符号化し(処理ブロック604)、メモリからツリー構造データを取り出し(処理ブロック605)、さらに後述されるように、量子化された係数に基づいてツリー内の各ノードに値を割り当てる(処理606)。換言すると、プロセッシングロジックはツリーノード値を生成する。
ツリーノード値を生成した後、プロセッシングロジックは、さらに後述されるように、ツリー内の各ノードに割り当てられた値を符号化する(処理ブロック607)。ツリーを符号化した後、プロセッシングロジックは、非ゼロの量子化された係数の値を符号化する(処理ブロック608)。一実施形態では、ハフマン符号化が使用される。代替的に、算術符号化又は別のコード化スキームが使用されてもよい。
図7は、ツリーのノードの値を割り当てるプロセスの一実施形態のフローチャートである。プロセスは、ハードウェア(たとえば、回路、専用ロジックなど)、(汎用コンピュータシステム又は専用機械上で動かされるような)ソフトウェア、又は、両方の組み合わせを備えてもよい、プロセッシングロジックによって実行される。
プロセスはルートノードに設定された現ノード(以下、カレントノード)で始まる。図7を参照すると、プロセッシングロジックは、カレントノードがリーフノードであるかどうかを判定する(処理ブロック701)。カレントノードがリーフノードであるならば、プロセッシングロジックは、カレントノードに関連付けられた量子化された係数がゼロ係数であるかどうかを判定する(処理ブロック702)。係数がゼロであるならば、プロセッシングロジックは0という値をカレントノードに割り当て(処理ブロック703)、プロセスは終了し、そうでなければ、プロセッシングロジックは1という値をカレントノードに割り当て(処理ブロック704)、プロセスは終了する。
カレントノードがリーフノードでないならば、プロセスは処理ブロック710へ移り、プロセッシングロジックが、カレントノードの第1の子をカレントノードとして用いて図7のプロセスを再帰的に実行し(処理ブロック710)、その後、カレントノードの第2の子をカレントノードとして用いて再び図7のプロセスを再帰的に実行する(処理ブロック711)。
その後、プロセッシングロジックは、両方の子ノードが0という値を割り当てられているかどうかを判定する(処理ブロック712)。両方の子ノードが0という値を保有するならば、プロセッシングロジックは0という値をカレントノードに割り当て(処理ブロック703)、プロセスは終了し、そうでなければ、プロセッシングロジックは1という値をカレントノードに割り当て(処理ブロック704)、プロセスは終了する。
カレントノードがルートノードに設定されるプロセスが終了した後、ツリー中の全ノードは0又は1という値が割り当てられている。ルートノードは、1個以上の係数がゼロに等しくないならば、値1を保有する。
図8は、ツリー中のノードを符号化するプロセスの一実施形態のフローチャートである。プロセスは、ハードウェア(たとえば、回路、専用ロジックなど)、(汎用コンピュータシステム又は専用機械上で動かされるような)ソフトウェア、又は、両方の組み合わせを備えてもよい、プロセッシングロジックによって実行される。プロセッシングロジックはファームウェアを備えてもよい。
図8を参照すると、プロセスは最初にルートノードを引数として用いて呼び出される。プロセスは、プロセッシングロジックがノードはリーフであるかどうかを判定することによって開始する(処理ブロック801)。ノードがリーフであるならば、プロセッシングロジックは、そのノードの対応する係数の値を符号化し(処理ブロック802)、プロセスは終了する。種々の符号化スキーム(たとえば、ハフマン符号化、算術符号化など)が使用されてもよい。
ノードがリーフでないならば、プロセッシングロジックはノードの2個の子の値を符号化する(処理ブロック803)。符号化はさらに後述されている。その後、プロセッシングロジックは第1の子が1という値を保有するかどうかをテストする(処理ブロック804)。第1の子が値1を保有するならば、処理ブロックは、第1の子を引数として用いてノード符号化プロセスを再帰的に実行する(処理ブロック806)。プロセッシングロジックは、その後、第2の子の値が1であるかどうかをテストする(処理ブロック807)。第1の子が値0を保有するか、又は、第2の子が値1を有するならば、プロセッシングロジックは、第2の子を引数として用いてノード符号化プロセスを再帰的に実行する(処理ブロック805)。その後、プロセスは終了する。
図9は、子ノードの値を符号化するプロセスの一実施形態のフローチャートである。プロセスは、ハードウェア(たとえば、回路、専用ロジックなど)、(汎用コンピュータシステム又は専用機械上で動かされるような)ソフトウェア、又は、両方の組み合わせを備えてもよい、プロセッシングロジックによって実行される。プロセッシングロジックはファームウェアを備えてもよい。
図9を参照すると、プロセスは、プロセッシングロジックが第1の子の値を符号化することによって開始する(処理ブロック901)。一実施形態では、値はビットストリームに付加される単一ビットとして符号化される。代替的に、値は算術符号化器を使用してさらに圧縮される。
プロセッシングロジックは、その後、第1の子の値が1であるかどうかを決定する(処理ブロック902)。第1の子の値が0に等しいならば、プロセスは終了する。そうでなければ、プロセッシングロジックは第2の子の値を符号化する(処理ブロック903)。一実施形態では、値はビットストリームに付加される単一ビットとして符号化される。代替的に、値は算術符号化器を使用してさらに圧縮される。第2の子の値を符号化した後、プロセスは終了する。
図10は、子ノードの値を符号化するプロセスの別の実施形態のフローチャートである。これは図9に記載されたプロセスへの代替的な実施形態であることに留意されたい。代替的に、方法の選択はノードに基づいて行われてもよい。選択情報は、メモリに格納され、ビットストリームに符号化されてもよい。このような符号化は選択された方法を示すためにビットを使用して行われてもよい。代替的に、エンコーダ及びデコーダの両方が、ノード毎にどの方法を使用すべきであるかに関する所定の引数を保有してもよい。
図10のプロセスは、ハードウェア(たとえば、回路、専用ロジックなど)、(汎用コンピュータシステム又は専用機械上で動かされるような)ソフトウェア、又は、両方の組み合わせを備えてもよいプロセッシングロジックによって実行される。プロセッシングロジックはファームウェアを備えてもよい。
図10を参照すると、プロセスは、プロセッシングロジックが2個の子ノードの結合された値を符号化することにより開始する(処理ブロック1001)。一実施形態では、結合された値は、両方の子の値の間の論理AND演算の結果によって決定される。プロセッシングロジックは、次に、両方の子が1という値を保有するかどうかを判定する(処理ブロック1003)。コード化された値が1であるならば、プロセスは終了する。そうでなければ、プロセッシングロジックは第1の子の値を符号化し(処理ブロック1004)、プロセスは終了する。一実施形態では、値を符号化するとき、値はビットストリームにそのままで付加される。代替的に、値は算術符号化器を使用してさらに圧縮されてもよい。
代替的に、三つ組のアルファベットが子ノードの値を表現するために使用されてもよい。このような場合、単一記号がビットストリームに付加される。
図11は、変換デコーダの一実施形態のブロック図である。図11を参照すると、ビットストリーム1120が係数デコーダ1110に入力されている。係数デコーダ1110は、ビットストリーム1120からのビットを量子化された係数1111の集合に変換する。変換プロセスはさらに後述されている。逆量子化器1101は、量子化された係数1111を係数1102の集合にスケール変換する。逆変換1103は、係数1102を再構成画像データ1104に変換する。
図12は、係数デコーダの一実施形態のブロック図である。図12を参照すると、エントロピーデコーダ1202は、さらに後述されているように、ビットストリーム1201からのビットを量子化された係数1203の集合に変換する。このため、エントロピーデコーダ1202は、メモリ1210に格納されているツリー構造データに依存する。エントロピーデコーダ1202は、ビットストリーム1201からツリー構造データを読み、メモリ1210に格納してもよい。
図13は、量子化された係数を復号化するプロセスの一実施形態のフローチャートである。プロセスは、ハードウェア(たとえば、回路、専用ロジックなど)、(汎用コンピュータシステム又は専用機械上で動かされるような)ソフトウェア、又は、両方の組み合わせを備えてもよい、プロセッシングロジックによって実行される。プロセッシングロジックはファームウェアを備えてもよい。
図13を参照すると、プロセスは、プロセッシングロジックが集合中の全係数をゼロに設定することによって開始する(処理ブロック1301)。係数をゼロに設定した後、プロセッシングロジックはフラグを復号化する(処理ブロック1302)。プロセッシングロジックは、その後、全係数がゼロであるかどうかを判定する(処理ブロック1303)。全係数がゼロであることを示す第1の値をフラグがとるならば、プロセスは終了する。そうでなければ、プロセッシングロジックは、さらに後述されるように、ツリー中のノード値を復号化し(処理ブロック1304)、同様に係数値を復号化する(処理ブロック1305)。その後、プロセスは終了する。
図14は、ノードを復号化するプロセスの一実施形態のフローチャートである。プロセスは、ハードウェア(たとえば、回路、専用ロジックなど)、(汎用コンピュータシステム又は専用機械上で動かされるような)ソフトウェア、又は、両方の組み合わせを備えてもよい、プロセッシングロジックによって実行される。プロセッシングロジックはファームウェアを備えてもよい。
図14を参照すると、プロセスはルートノードを引数として用いて開始する。プロセッシングロジックはノードがリーフであるかどうかを判定する(処理ブロック1401)。ノードがリーフノードであるならば、プロセッシングロジックは係数の値をさらに復号化し(処理ブロック1402)、その後にプロセスが終了する。復号化は種々の復号化技術(たとえば、ハフマン符号化、算術符号化など)を使用して実行されてもよい。
ノードがリーフでないならば、プロセッシングロジックはそのノードの2個の子の値を復号化する(処理ブロック1403)。復号化はさらに後述されている。その後、プロセッシングロジックは、第1の子が1という値を保有するかどうかをテストする(処理ブロック1404)。第1の子が値1を保有するならば、処理ブロックは、第1の子を引数として用いてノード復号化プロセスを再帰的に実行する(処理ブロック1406)。プロセッシングロジックは、その後、第2の子が値1を保有するかどうかをテストする(処理ブロック1407)。第1の子が値0を保有するか、又は、第2の子が値1を保有するならば、プロセッシングロジックは、第2の子を引数として用いてノード復号化プロセスを再帰的に実行する(処理ブロック1405)。その後、プロセスは終了する。
図15は、子ノードの値を復号化するプロセスの一実施形態のフローチャートである。プロセスは、ハードウェア(たとえば、回路、専用ロジックなど)、(汎用コンピュータシステム又は専用機械上で動かされるような)ソフトウェア、又は、両方の組み合わせを備えてもよい、プロセッシングロジックによって実行される。プロセッシングロジックはファームウェアを備えてもよい。
図15を参照すると、プロセスは第1の子の値を復号化することによって開始する(処理ブロック1501)。復号化プロセスは、ビットストリームから単一ビットを取り出すこと、又は、算術デコーダを用いてビットストリームからバイナリ記号を復号化することを伴ってもよい。プロセッシングロジックは、第1の子の値が1であるかどうかを判定する(処理ブロック1502)。復号化された値が0であるならば、プロセスは終了し、そうではなく、値が1であるならば、プロセッシングロジックは、第1の値と同様に、第2の子の値を復号化し(処理ブロック1503)、その後、プロセスは終了する。
図16は、子ノードの値を復号化するプロセスの代替的な実施形態のフローチャートである。プロセスは、ハードウェア(たとえば、回路、専用ロジックなど)、(汎用コンピュータシステム又は専用機械上で動かされるような)ソフトウェア、又は、両方の組み合わせを備えてもよい、プロセッシングロジックによって実行される。プロセッシングロジックはファームウェアを備えてもよい。
図16を参照すると、プロセスは両方の子の結合された値を復号化して開始する(処理ブロック1601)。結合された値は、両方の子が値1を保有するかどうかを示すことができる。プロセッシングロジックは、両方の子が1という値を保有するかどうかを判定する(処理ブロック1602)。両方の子が1という値を保有するならば、プロセスは終了し、そうではなく、値が1であるならば、プロセッシングロジックは第1の子の値を復号化し、第2の子の値を反対の値に設定し(処理ブロック1603)、その後、プロセスは終了する。
代替的に、両方の子の値は三つ組のアルファベットを用いて表現される。このような場合、単一記号が子ノードの値を取得するために復号化されてもよい。
図18は量子化された係数を復号化するプロセスの一実施形態のフローチャートである。プロセスは、ハードウェア(たとえば、回路、専用ロジックなど)、(汎用コンピュータシステム又は専用機械上で動かされるような)ソフトウェア、又は、両方の組み合わせを備えてもよい、プロセッシングロジックによって実行される。プロセッシングロジックはファームウェアを備えてもよい。
図18を参照すると、プロセスは、プロセッシングロジックが状態を1に設定し、スタックを空状態に初期化することにより開始する(処理ブロック1801)。その後、プロセッシングロジックはメモリからノードタイプを取り出す(処理ブロック1802)。プロセッシングロジックは、その後、ノードがリーフノードであるかどうかを判定する(処理ブロック1803)。ノードタイプがリーフノードであることを示すならば、処理は処理ブロック1820へ移り、そうでなければ、処理は処理ブロック1810へ移る。
処理ブロック1820において、プロセッシングロジックはメモリからリーフインデックスIを取り出し、状態が値0を有するかどうかをテストする(処理ブロック1821)。状態が値0を有するならば、処理は処理ブロック1823へ移り、プロセッシングロジックはインデックスIをもつ係数に値0を割り当て、その後、処理は処理ブロック1824へ移る。状態が値1を有するならば、処理は処理ブロック1822へ移り、プロセッシングロジックはビットストリームから係数値を復号化し、インデックスIをもつ係数に復号化された係数値を割り当て、その後、処理は処理ブロック1824へ移る。
処理ブロック1824において、プロセッシングロジックは、スタックが空であるかどうかを判定する。スタックが空であるならば、プロセスは終了する。スタックが空でなければ、処理は処理ブロック1825へ移り、プロセッシングロジックはスタックから値をポップし、状態をその値に設定する。その後、処理は処理ブロック1802へ移る。
ノードがリーフノードでないならば(処理ブロック1803)、プロセッシングロジックは状態が1に等しいかどうかを判定する(処理ブロック1810)。そうでなければ(すなわち、値が0であるならば)、プロセッシングロジックは2個のノードの値をゼロに設定し、処理ブロック1814へ移る。状態が1に等しければ、プロセッシングロジックはビットストリームから2個のノード値を復号化する(処理ブロック1812)。ノード値を復号化する方法の例は、図15及び16に記載されている。2個のノード値を復号化した後、プロセッシングロジックは状態を第1のノード値に設定し(処理ブロック1813)、処理ブロック1814へ移る。処理ブロック1814において、プロセッシングロジックは第2のノード値をスタックへプッシュする。その後、処理は処理ブロック1802へ移る。
図19は、係数デコーダの一実施形態のブロック図である。図19を参照すると、係数デコーダは状態レジスタ1920を含む。一実施形態では、状態レジスタ1920は最初に値1に設定される。エントロピーデコーダ1902は、ノードタイプメモリ1923からノードタイプを取り出す。ノードタイプメモリ1923は、図4に記載されているように、ツリーの構造に関するデータを収容する。ノードタイプがリーフノードを示し、状態レジスタの値が1であるならば、エントロピーデコーダ1902はビットストリームから量子化された係数を復号化し、それを選択器1903へ送信する。選択器1903は、量子化された係数を選択し、それを係数メモリ1904へ送信する。係数メモリ1904へのインデックスは、リーフインデックスメモリ1921から取り出されたリーフインデックスによって決定される。そうではなく、状態レジスタ1920が0であるならば、選択器1903は値0を選択し、それを係数メモリ1904へ送信する。量子化された係数が量子化された係数メモリ1904に格納された後、値がスタック1922からポップされ、状態レジスタ1920に割り当てられる。そうでなく、ノードタイプがリーフノードを示さないならば、係数デコーダは以下の通り動作する。状態レジスタ1920が1であるならば、エントロピーデコーダ1902は、たとえば、図15及び16に記載されているように、ビットストリーム1901から2個のノード値を復号化する。第1のノード値はエントロピーデコーダ1902によって状態レジスタ1920に割り当てられ、第2のノード値はエントロピーデコーダ1902によってスタック1922へプッシュされる。そうではなく、状態レジスタ1920が0であるならば、状態レジスタ1920の内容がスタックへプッシュされる。
一実施形態では、デコーダは、量子化された係数メモリ内の全ての量子化された係数に値が割り当てられるまで、この方式で動作する。量子化された係数メモリの内容は、その後、量子化された係数の順序付き集合として出力される。
上述のように、本明細書に記載された技術は任意のデータのベクトルに適用されてもよい。たとえば、これらの技術は、前方向動きベクトルに対応する水平移動及び垂直移動と後方向動きベクトルに対応する水平移動及び垂直移動とを有するデータのブロックを含む次元4のベクトルをコード化するためにbフレームをビデオコード化するときに使用されてもよい。この場合、本明細書に記載された技術は、ゼロでない方を示すために使用されてもよい。
(コードの例)
以下のサンプルCコードは、本発明に記載されているような係数を復号化するために使用できる。ツリーの深さ優先トラバース及び幅優先トラバースの例が提供されている。
Figure 2011004406

Figure 2011004406
適切なツリー構造データは、係数ブロックの集合から導出できる。以下のサンプルCコードは、係数の各組み合わせが非ゼロであることを頻度を用いて示す統計量の集合からツリー構造データを構築する。
Figure 2011004406

Figure 2011004406

Figure 2011004406

Figure 2011004406

Figure 2011004406

Figure 2011004406
(典型的なコンピュータシステム)
図20は、本明細書に記載された1個以上の演算を実行できる典型的なコンピュータシステムのブロック図である。コンピュータシステム2000は、典型的なクライアント又はサーバーコンピュータシステムを備えてもよい。コンピュータシステムに関して記述されたコンポーネントは、ハンドヘルド機器又はモバイル機器(たとえば、携帯電話機)の一部であってもよい。
図20を参照すると、コンピュータシステム2000は、情報を通信する通信メカニズム又はバス2011と、バス2011と接続され情報を処理するプロセッサ2012とを備える。プロセッサ2012は、マイクロプロセッサを含むが、たとえば、Pentium(登録商標)プロセッサなどのようなマイクロプロセッサに限定されない。
システム2000は、バス2011に接続され、情報とプロセッサ2012によって実行されるべき命令とを格納する、ランダムアクセスメモリ(RAM)又はその他のダイナミック記憶装置2004(メインメモリとして参照される)を、さらに備える。メインメモリ2004はまた、プロセッサ2012による命令の実行中に、一時変数又はその他の中間情報を格納するためにも使用できる。
コンピュータシステム2000は、バス2011に接続され、スタティック情報及びプロセッサ2012のための命令を格納するリードオンリーメモリ(ROM)及び/又はその他のスタティック記憶装置2006と、磁気ディスク又は光ディスク、及び、それに対応するディスクドライブのようなデータ記憶装置2007とを、さらに備える。データ記憶装置2007は、バス2011に接続され、情報及び命令を格納する。
コンピュータシステム2000は、バス2011に接続され、情報をコンピュータユーザへ表示する陰極線管(CRT)又は液晶ディスプレイ(LCD)のようなディスプレイ機器2021に、さらに接続されてもよい。英数字キー及びその他のキーを含む英数字入力機器2022は、同様にバス2011に接続され、情報及びコマンド選択をプロセッサ2012へ通信できる。付加的なユーザ入力機器は、カーソル制御機器2023である。このカーソル制御機器2023は、例えばマウス、トラックボール、トラックパッド、スタイラス、又は、カーソル方向キーである。カーソル制御機器2023は、方向情報及びコマンド選択をプロセッサ2012へ通信し、ディスプレイ2021上のカーソル移動を制御するために、バス2011に接続されている。
バス2011に接続できる別の機器は、ハードコピー機器2024である。ハードコピー機器2024は、紙、フィルム、又は、類似したタイプの媒体のような媒体上に情報を残すために使用できる。バス2011に接続できる別の機器は、電話機又はハンドヘルドパーム機器へ通信するための有線/無線通信機能部2025である。
システム2000のコンポーネント、及び、関連したハードウェアの何れか又は全部が本発明において使用できることに留意されたい。しかし、コンピュータシステムのその他の構成は、機器の一部又は全部を含んでもよいことが認められるであろう。
以上の説明を読んだ後に、本発明の多数の代替及び変形が当業者に明白になることは確実であるが、説明のために図示され記載された特定の実施形態が制限的であるとみなされることは決して意図されていないことが理解されるべきである。したがって、種々の実施形態の詳細への言及は、本発明に不可欠であると考えられる構成要件だけをそれ自体に列挙する請求項の範囲を制限することを意図していない。

Claims (37)

  1. データのベクトル中のデータを、ツリーデータ構造を使用して特定された前記データがゼロであるか又は非ゼロであるかの指標に基づいてコード化するデータコード化ステップと、
    コード化されたデータに基づいてビットストリームを作成するビットストリーム作成ステップと、
    を備える方法。
  2. 前記ツリーが二分木を含む、請求項1に記載の方法。
  3. 前記データが係数を含み、
    前記データコード化ステップが係数のブロック内の非ゼロ係数の位置をコード化する非ゼロ係数位置コード化工程を備える、請求項1に記載の方法。
  4. 前記ビットストリーム作成ステップが、前記係数のブロック内のコード化された非ゼロ係数を作成する非ゼロ係数作成工程を備える、請求項3に記載の方法。
  5. 前記非ゼロ係数位置コード化工程が、ツリーを表現する前記構造をトラバースすることを備える、請求項3に記載の方法。
  6. 前記非ゼロ係数が量子化された係数を含み、
    ツリー構造データを取り出すツリー構造データ取出ステップと、
    前記量子化された係数に対応する前記ツリー構造データによって記述されたツリーの各リーフノードに値を割り当てるリーフノード値割当ステップと、
    前記リーフノードの前記値に基づいてリーフノード以外の前記ツリーのノードに値を割り当てるリーフ外ノード値割当ステップと、
    前記ツリーをトラバースし、非ゼロ係数の前記値をビットストリームに符号化することを含めて、前記ツリーの前記ノードの前記値を前記ビットストリームに符号化するトラバースビットストリーム符号化ステップと、
    をさらに備える、請求項3に記載の方法。
  7. 前記ツリーが二分木である、請求項6に記載の方法。
  8. 前記ツリー構造を前記ビットストリームに符号化するツリー構造ビットストリーム符号化ステップをさらに備える、請求項6に記載の方法。
  9. データのベクトルを受信する入力と、
    前記入力に接続され、前記データのベクトル中のデータを、ツリーデータ構造を使用して特定された前記データがゼロであるか又は非ゼロであるかの指標に基づいてコード化するエントロピーエンコーダと、
    を備える、係数を符号化する装置。
  10. 前記ツリーが二分木を含む、請求項9に記載の装置。
  11. 前記データが係数を含み、
    前記エントロピーエンコーダが係数のブロック内の非ゼロ係数の位置をコード化する、請求項9に記載の装置。
  12. 前記エントロピーエンコーダが前記係数のブロックのコード化された非ゼロ係数を作成する、請求項11に記載の装置。
  13. 前記エントロピーエンコーダが、ツリーを表現する前記構造をトラバースすることにより係数のグループ内の非ゼロ係数の位置を符号化する、請求項11に記載の装置。
  14. 前記非ゼロ係数が量子化された係数を含み、
    ツリー構造データを格納するメモリと、
    前記量子化された係数に基づいてツリーのリーフノードに値を割り当て、前記リーフノードに割り当てられた前記値に基づいて前記ツリー中の全ての他のノードに値を再帰的に割り当てるツリー生成器と、
    をさらに備え、
    前記エントロピーエンコーダが、非ゼロの量子化された係数の値を含めて、前記ツリー生成器によって生成された前記ツリーの前記ノードの値を再帰的に符号化するよう動作する、請求項11に記載の装置。
  15. 前記エントロピーエンコーダが、
    前記メモリからツリー構造データを取り出し、
    前記量子化された係数に対応する前記ツリー構造データによって記述されたツリーの各リーフノードに値を割り当て、
    前記リーフノードの前記値に基づいてリーフノード以外の前記ツリーのノードに値を割り当て、
    前記ツリーをトラバースし、非ゼロ係数の前記値をビットストリームに符号化することを含めて、前記ツリーの前記ノードの前記値を前記ビットストリームに符号化する、請求項14に記載の装置。
  16. 前記ツリーが二分木である、請求項15に記載の装置。
  17. 前記エントロピーエンコーダが前記ツリー構造を前記ビットストリームに符号化する、請求項15に記載の装置。
  18. システムによって実行されたとき、前記システムに、
    データのベクトル中のデータを、ツリーデータ構造を使用して特定された前記データがゼロであるか又は非ゼロであるかの指標に基づいてコード化するデータコード化ステップと、
    コード化されたデータに基づいてビットストリームを作成するビットストリーム作成ステップと、
    を備える方法を実行させる命令を記憶する1つ以上の記録可能な媒体を有する製品。
  19. ビットストリームを受信するビットストリーム受信ステップと、
    復号化されたデータのベクトルを、ツリーデータ構造によって特定されるような前記データがゼロであるか又は非ゼロであるかの指標に基づいて作成するため、前記ビットストリームを復号化するビットストリーム復号化ステップと、
    を備える方法。
  20. 前記ツリーが二分木を含む、請求項19に記載の方法。
  21. 前記データが係数を含む、請求項19に記載の方法。
  22. 前記ビットストリーム復号化ステップが、係数のブロックの非ゼロ係数の位置を復号化する非ゼロ係数位置復号化工程を備える、請求項21に記載の方法。
  23. 前記非ゼロ係数位置復号化工程が、ツリーを表現する前記データ構造をトラバースすることを備える、請求項22に記載の方法。
  24. 前記ツリー構造データを取り出すツリー構造データ取出ステップと、
    前記ツリー構造をトラバースするツリー構造トラバースステップと、
    前記ビットストリームから前記ツリーのノードの値を復号化するノード値復号化ステップと、
    第1の値を保有するリーフノード毎に前記ビットストリームから量子化された係数の値を復号化する係数値復号化ステップと、
    第2の値を保有するリーフノード毎に量子化された係数に値ゼロを割り当てる係数ゼロ割当ステップと、
    をさらに備える、請求項19に記載の方法。
  25. 前記ツリーが二分木である、請求項24に記載の方法。
  26. 前記ビットストリームから前記ツリー構造を復号化するツリー構造復号化ステップをさらに備える、請求項24に記載の方法。
  27. 前記ビットストリームから、前記ツリー構造データに基づいてツリーのノードの値を再帰的に復号化するノード値再帰的復号化ステップと、
    第1の値を保有するリーフノード毎に量子化された係数を復号化する係数復号化ステップと、
    第2の値を保有するリーフノード毎に量子化された係数に0という値を割り当てる係数ゼロ割当ステップと、
    をさらに備える、請求項19に記載の方法。
  28. ビットストリームを受信する入力と、
    前記入力に接続され、復号化されたデータのベクトルを、ツリーデータ構造によって特定されるような前記データがゼロであるか又は非ゼロであるかの指標に基づいて作成する、エントロピーデコーダと、
    を備える、量子化された係数を復号化する装置。
  29. ツリー構造データを格納するメモリをさらに備え、
    前記エントロピーデコーダが、ビットストリームから、前記ツリー構造データに基づいてツリーのノードの値を再帰的に復号化し、第1の値を保有するリーフノード毎に量子化された係数を復号化し、第2の値を保有するリーフノード毎に量子化された係数に0という値を割り当てる、請求項28に記載の装置。
  30. 前記データが係数を含む、請求項28に記載の装置。
  31. 前記ツリーが二分木を含む、請求項30に記載の装置。
  32. 前記復号化されたデータのベクトルが係数のブロックを含む、請求項28に記載の装置。
  33. 前記ビットストリームを復号化する前記エントロピーデコーダが、ツリーを表現する前記データ構造をトラバースするツリー構造トラバースステップを備える、請求項28に記載の装置。
  34. 前に生成されたデータ構造がツリー構造データを含み、
    前記エントロピーデコーダが、前記ツリー構造データを取り出し、前記ツリー構造をトラバースし、前記ビットストリームから前記ツリーのノードの値を復号化し、第1の値を保有するリーフノード毎に前記ビットストリームから量子化された係数の値を復号化し、第2の値を保有するリーフノード毎に量子化された係数に値ゼロを割り当てる、請求項28に記載の装置。
  35. 前記ツリーが二分木である、請求項34に記載の装置。
  36. 前記エントロピーデコーダが、前記ビットストリームから前記ツリー構造を復号化する、請求項34に記載の装置。
  37. システムによって実行されたとき、前記システムに、
    復号化されたデータのベクトルを、ツリーデータ構造によって特定されるような前記データがゼロであるか又は非ゼロであるかの指標に基づいて作成するため、ビットストリームを復号化するビットストリーム復号化ステップを備える方法を実行させる命令を記憶する1つ以上の記録可能な媒体を有する製品。
JP2010161644A 2004-12-22 2010-07-16 係数の位置をコード化する方法及び装置 Pending JP2011004406A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63943004P 2004-12-22 2004-12-22
US11/172,052 US7660475B2 (en) 2004-12-22 2005-06-29 Method and apparatus for coding positions of coefficients

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007548335A Division JP2008530829A (ja) 2004-12-22 2005-12-15 係数の位置をコード化する方法及び装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012032861A Division JP5579760B2 (ja) 2004-12-22 2012-02-17 係数の位置をコード化する方法及び装置

Publications (1)

Publication Number Publication Date
JP2011004406A true JP2011004406A (ja) 2011-01-06

Family

ID=36091601

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2007548335A Pending JP2008530829A (ja) 2004-12-22 2005-12-15 係数の位置をコード化する方法及び装置
JP2010161644A Pending JP2011004406A (ja) 2004-12-22 2010-07-16 係数の位置をコード化する方法及び装置
JP2012032861A Active JP5579760B2 (ja) 2004-12-22 2012-02-17 係数の位置をコード化する方法及び装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2007548335A Pending JP2008530829A (ja) 2004-12-22 2005-12-15 係数の位置をコード化する方法及び装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2012032861A Active JP5579760B2 (ja) 2004-12-22 2012-02-17 係数の位置をコード化する方法及び装置

Country Status (3)

Country Link
US (2) US7660475B2 (ja)
JP (3) JP2008530829A (ja)
WO (1) WO2006068957A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660475B2 (en) * 2004-12-22 2010-02-09 Ntt Docomo, Inc. Method and apparatus for coding positions of coefficients
US7716250B1 (en) * 2005-05-27 2010-05-11 Microsoft Corporation Erasure coding and group computations using rooted binary and ternary trees
US8515996B2 (en) * 2008-05-19 2013-08-20 Emulex Design & Manufacturing Corporation Secure configuration of authentication servers
US7872993B2 (en) * 2008-10-30 2011-01-18 Alcatel Lucent Method and system for classifying data packets
CN102246525A (zh) * 2008-12-16 2011-11-16 松下电器产业株式会社 运动图像编码方法、运动图像解码方法、运动图像编码装置、运动图像解码装置、程序、及集成电路
US8107750B2 (en) * 2008-12-31 2012-01-31 Stmicroelectronics S.R.L. Method of generating motion vectors of images of a video sequence
JP5001964B2 (ja) 2009-02-18 2012-08-15 株式会社エヌ・ティ・ティ・ドコモ 画像符号化装置、方法およびプログラム、並びに、画像復号装置、方法およびプログラム
JP5258664B2 (ja) 2009-04-14 2013-08-07 株式会社エヌ・ティ・ティ・ドコモ 画像符号化装置、方法およびプログラム、並びに、画像復号装置、方法およびプログラム
BRPI1014232A2 (pt) * 2009-06-09 2016-04-12 Sony Corp aparelho para gerar múltiplas árvores de codificação de candidato para uso durante codificação, sistema para codificação e de codificação adaptável de imagens ou vídeos, e, método para gerar múltiplas árvores de codificação de candidato
US8406546B2 (en) * 2009-06-09 2013-03-26 Sony Corporation Adaptive entropy coding for images and videos using set partitioning in generalized hierarchical trees
KR20190000920A (ko) 2009-07-02 2019-01-03 톰슨 라이센싱 적응적 트리 선택을 사용한 이진 집합의 비디오 인코딩 및 디코딩을 위한 방법 및 장치
WO2011022043A1 (en) * 2009-08-20 2011-02-24 Thomson Licensing Method and apparatus for reusing tree structures to encode and decode binary sets
KR101703327B1 (ko) * 2010-01-14 2017-02-06 삼성전자 주식회사 계층적 데이터 단위의 패턴 정보를 이용하는 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
WO2011129052A1 (ja) * 2010-04-13 2011-10-20 パナソニック株式会社 画像復号装置、画像符号化装置、画像復号方法および画像符号化方法
KR20120009618A (ko) 2010-07-19 2012-02-02 에스케이 텔레콤주식회사 주파수변환단위 분할부호화 방법 및 장치와 이를 이용한 영상 부호화/복호화 방법 및 장치
KR20120035096A (ko) * 2010-10-04 2012-04-13 한국전자통신연구원 쿼드 트리 변환 구조에서 부가 정보의 시그널링 방법 및 장치
CN101990104A (zh) * 2010-11-17 2011-03-23 中兴通讯股份有限公司 视频图像编码方法及装置
ITVI20120087A1 (it) 2012-04-17 2013-10-18 St Microelectronics Srl Stabilizzazione video digitale
US9628107B2 (en) 2014-04-07 2017-04-18 International Business Machines Corporation Compression of floating-point data by identifying a previous loss of precision
US9959299B2 (en) 2014-12-02 2018-05-01 International Business Machines Corporation Compression-aware partial sort of streaming columnar data
US10909078B2 (en) * 2015-02-25 2021-02-02 International Business Machines Corporation Query predicate evaluation and computation for hierarchically compressed data
KR20180110061A (ko) 2016-12-26 2018-10-08 닛본 덴끼 가부시끼가이샤 영상 인코딩 방법, 영상 디코딩 방법, 영상 인코딩 장치, 영상 디코딩 장치, 및 프로그램
US20200296366A1 (en) * 2016-12-26 2020-09-17 Nec Corporation Video encoding method, video decoding method, video encoding device, video decoding device, and program
WO2018123317A1 (ja) * 2016-12-26 2018-07-05 日本電気株式会社 映像符号化方法、映像復号方法、映像符号化装置、映像復号装置及びプログラム
US20190253737A1 (en) * 2016-12-26 2019-08-15 Nec Corporation Video encoding method, video decoding method, video encoding device, video decoding device, and program
CN108781286A (zh) * 2016-12-26 2018-11-09 日本电气株式会社 视频编码方法、视频解码方法、视频编码设备、视频解码设备以及程序
CN109151477B (zh) * 2017-06-28 2020-08-07 华为技术有限公司 一种图像数据的编码、解码方法及装置
US10484695B2 (en) 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
US10645381B2 (en) 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
CN109982086B (zh) * 2019-04-10 2020-12-08 上海兆芯集成电路有限公司 图像压缩方法及其装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06237180A (ja) * 1992-08-24 1994-08-23 Ricoh Co Ltd データ圧縮方法及び装置並びにデータ伸長方法及び装置
JP2001527710A (ja) * 1997-02-12 2001-12-25 サーノフ コーポレイション ウェーブレットに基づく符号化方法により生成されたウェーブレットツリーを符号化するための装置および方法
JP2004297416A (ja) * 2003-03-26 2004-10-21 Monolith Co Ltd 対応点情報圧縮方法および装置
JP2008530829A (ja) * 2004-12-22 2008-08-07 株式会社エヌ・ティ・ティ・ドコモ 係数の位置をコード化する方法及び装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263124A (en) * 1991-02-27 1993-11-16 Neural Systems Corporation Method for producing a binary tree, pattern recognition and binary vector classification method using binary trees, and system for classifying binary vectors
US5274718A (en) * 1991-09-30 1993-12-28 At&T Bell Laboratories Image representation using tree-like structures
US5335088A (en) * 1992-04-01 1994-08-02 Xerox Corporation Apparatus and method for encoding halftone images
US5550541A (en) * 1994-04-01 1996-08-27 Dolby Laboratories Licensing Corporation Compact source coding tables for encoder/decoder system
JP3278297B2 (ja) * 1994-07-20 2002-04-30 富士通株式会社 データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
EP0858206B1 (en) * 1997-02-06 2005-10-19 STMicroelectronics S.r.l. Method for memory requirement reduction in a video decoder
DE69735262D1 (de) * 1997-11-24 2006-04-20 St Microelectronics Srl MPEG-2 Dekodierung mit reduziertem Speicherbedarf durch Rekomprimierung mit adaptiver baumstrukturierter Vektorquantisierung
JPH11191153A (ja) * 1997-12-26 1999-07-13 Ricoh Co Ltd ウェーブレット変換係数の符号化方法
US6101275A (en) * 1998-01-26 2000-08-08 International Business Machines Corporation Method for finding a best test for a nominal attribute for generating a binary decision tree
AU2002253893A1 (en) * 2001-01-30 2002-08-12 California Institute Of Technology Lossless and near-lossless source coding for multiple access networks
US7016547B1 (en) * 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
US7286710B2 (en) * 2003-10-01 2007-10-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Coding of a syntax element contained in a pre-coded video signal
US7379608B2 (en) * 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06237180A (ja) * 1992-08-24 1994-08-23 Ricoh Co Ltd データ圧縮方法及び装置並びにデータ伸長方法及び装置
JP2001527710A (ja) * 1997-02-12 2001-12-25 サーノフ コーポレイション ウェーブレットに基づく符号化方法により生成されたウェーブレットツリーを符号化するための装置および方法
JP2004297416A (ja) * 2003-03-26 2004-10-21 Monolith Co Ltd 対応点情報圧縮方法および装置
JP2008530829A (ja) * 2004-12-22 2008-08-07 株式会社エヌ・ティ・ティ・ドコモ 係数の位置をコード化する方法及び装置

Also Published As

Publication number Publication date
US7660475B2 (en) 2010-02-09
WO2006068957A1 (en) 2006-06-29
US7920750B2 (en) 2011-04-05
JP2012135017A (ja) 2012-07-12
JP2008530829A (ja) 2008-08-07
JP5579760B2 (ja) 2014-08-27
US20100124381A1 (en) 2010-05-20
US20060133680A1 (en) 2006-06-22

Similar Documents

Publication Publication Date Title
JP5579760B2 (ja) 係数の位置をコード化する方法及び装置
Acharya et al. JPEG2000 standard for image compression: concepts, algorithms and VLSI architectures
US5966465A (en) Compression/decompression using reversible embedded wavelets
RU2417518C2 (ru) Эффективное кодирование и декодирование блоков преобразования
US5881176A (en) Compression and decompression with wavelet style and binary style including quantization by device-dependent parser
US7629904B2 (en) Image coding with scalable context quantization
US6347157B2 (en) System and method for encoding a video sequence using spatial and temporal transforms
JP2527874B2 (ja) 局所的デ―タ損失に対する頑強性を圧縮化画像デ―タに付与するための装置
US5748116A (en) System and method for nested split coding of sparse data sets
US10382789B2 (en) Systems and methods for digital media compression and recompression
US5949911A (en) System and method for scalable coding of sparse data sets
JP2005102243A (ja) 再構成実行方法、再構成実行装置及び記録媒体
WO1997034375A1 (en) Method for reducing storage requirements for digital data
US7463782B2 (en) Data encoding with an amplitude model and path between the data and corresponding decoding
KR100733949B1 (ko) 유한 알파벳 데이터의 비손실 적응 인코딩
JP2004040248A (ja) 情報処理装置、情報処理方法、プログラム、記憶媒体
US7123656B1 (en) Systems and methods for video compression
CN108605131B (zh) 用于编码和解码数据的方法和设备、以及对应记录介质
Bonomini et al. Implementing an MPEG2 Video Decoder Based on TMS320C80 MVP
Wu et al. Enhanced video compression with standardized bit stream syntax
JP2004264886A (ja) 情報処理方法
Sayood Data Compression.
Rajagopal et al. Partial video encryption using random permutation based on modification on Dct based transformation
US20080175312A1 (en) Method and system of compressing and decompressing data
JP2007134860A (ja) 暗号化プログラムおよび復号化プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111220

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120424