JP4906855B2 - 変換ブロックの効率的なコーディングおよびデコーディング - Google Patents

変換ブロックの効率的なコーディングおよびデコーディング Download PDF

Info

Publication number
JP4906855B2
JP4906855B2 JP2008526079A JP2008526079A JP4906855B2 JP 4906855 B2 JP4906855 B2 JP 4906855B2 JP 2008526079 A JP2008526079 A JP 2008526079A JP 2008526079 A JP2008526079 A JP 2008526079A JP 4906855 B2 JP4906855 B2 JP 4906855B2
Authority
JP
Japan
Prior art keywords
zero
symbol
run
coefficient
level
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
JP2008526079A
Other languages
English (en)
Other versions
JP2009505494A (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 JP2009505494A publication Critical patent/JP2009505494A/ja
Application granted granted Critical
Publication of JP4906855B2 publication Critical patent/JP4906855B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/02Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
    • 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/93Run-length coding

Description

デジタル媒体データをエンコード及びデコードする方法に関する。
変換コーディング(Transform coding)は、多くのオーディオ、イメージ、およびビデオの圧縮システムで使用される圧縮技法である。非圧縮のデジタルイメージおよびビデオは、通常、2次元(2D)グリッドで配列されたイメージまたはビデオフレーム内の位置で、ピクチャ要素または色のサンプルとして表現またはキャプチャされる。これは、イメージまたはビデオの空間領域表現と呼ばれる。例えば、イメージの通常のフォーマットは、グリッドとして配列された24ビットのカラーピクチャ要素サンプルのストリームからなる。各サンプルは、とりわけRGBまたはYIQなどの色空間内での、グリッド内のピクセル位置で色構成要素を表す番号である。様々なイメージおよびビデオシステムは、様々な異なる色、空間、および時間のサンプリング解像度を使用することができる。同様に、デジタルオーディオは、通常、時間サンプリングされたオーディオ信号ストリームとして表される。例えば典型的なオーディオフォーマットは、定期的な時間間隔で採取されたオーディオ信号の16ビット振幅サンプルのストリームからなる。
非圧縮のデジタルオーディオ、イメージ、およびビデオの信号は、かなりの格納および伝送容量を消費する可能性がある。変換コーディングは、この信号の空間領域表現を周波数領域(または他の同様の変換領域)表現に変換し、その後、一般にはそれほど知覚できない程度に変換領域表現の周波数構成要素の解像度を低減させることによって、デジタルオーディオ、イメージ、およびビデオのサイズを縮小する。これによって、通常、空間領域内のイメージまたはビデオの、あるいは時間領域内のオーディオの、色または空間解像度の低減に比べて、ほとんど知覚できない程度のデジタル信号の劣化が生じる。
とりわけ、図1に示された典型的なブロック変換ベースコーデック100は、非圧縮デジタルイメージのピクセルを固定サイズの2次元ブロック(X,...X)に分割し、各ブロックは他のブロックと重複する可能性がある。空間周波数分析を行う線形変換120〜121が各ブロックに適用され、これによってブロック内の空間サンプルは、一般に、ブロック間隔にわたる対応する周波数帯域内のデジタル信号の強度を表す、周波数(または変換)係数のセットに変換される。圧縮の場合、変換係数の選択的な量子化130(すなわち、係数値の最下位ビットをドロップすること、またはそうでなければ、高解像度数セット内の値を低解像度にマッピングすることなどによって、解像度を低下させる)、および、圧縮データストリームへのエントロピまたは可変長コーディング130も、可能である。デコード時には、オリジナルの色/空間サンプリングイメージ/ビデオ信号をほぼ再構築する(再構築ブロック
Figure 0004906855
)ために、変換係数が逆変換170〜171されることになる。
ブロック変換120〜121は、サイズNのベクトルxに関する数学演算として定義することができる。ほとんどの場合、この演算は変換領域出力y=Mxを生成する線形乗算であり、Mは変換行列である。入力データが任意の長さである場合、Nサイズベクトルにセグメント化され、各セグメントにブロック変換が適用される。データ圧縮の目的で、可逆的ブロック変換が選択される。言い換えれば、行列Mは可逆的である。多次元の場合(例えばイメージおよびビデオの場合)、ブロック変換は通常、分離可能操作として実施される。行列乗算は、データの各次元(すなわち行および列の両方)に沿って、別々に適用される。
圧縮の場合、変換係数(ベクトルyの構成要素)の選択的な量子化(すなわち、係数値の最下位ビットをドロップすること、またはそうでなければ、高解像度数セット内の値を低解像度にマッピングすることなどによって、解像度を低下させる)、および、圧縮データストリームへのエントロピまたは可変長コーディングも、可能である。
デコーダ150におけるデコード時には、図1に示される様に、これらの操作の逆(逆量子化/エントロピデコーディング160および逆ブロック変換170〜171)がデコーダ150側に適用される。データを再構築する間に、逆行列M(逆変換170〜171)が乗数として変換領域データに適用される。逆変換は、変換領域データに適用された場合、オリジナルの時間領域または空間領域のデジタルメディアをほぼ再構築する。
多くのブロック変換ベースのコーディングアプリケーションでは、変換は、量子化因数に応じて不可逆(lossy)圧縮および可逆(lossless)圧縮の両方をサポートするために、望ましくは可逆的である。例えば量子化なし(一般に、量子化因数1で表される)の場合、可逆的変換を使用するコーデックは、デコード時に入力データを正確に再生成することができる。しかしながら、これらの適用例における可逆性の要件は、コーデックを設計する際に基にする変換選択肢を制約する。
とりわけMPEGおよびWindows(登録商標) Mediaなどの多くのイメージおよびビデオ圧縮システムは、離散コサイン変換(DCT)に基づく変換を私用する。DCTは、結果として近最適データ圧縮を生じさせる、有益なエネルギー圧縮特性を持つとして知られている。これらの圧縮システムでは、個々のイメージブロックを再構築するために、圧縮のエンコーダおよびデコーダの両方の再構築ループにおいて、逆DCT(IDCT)が採用される。
ワイドレンジ変換係数のエントロピコーディング
ワイドダイナミックレンジ(wide dynamic range)入力データは、イメージのエンコーディングプロセス中に生成される、さらにワイドなダイナミックレンジ変換係数につながる。例えば、N掛けるN DCT操作によって生成される変換係数は、オリジナルデータのダイナミックレンジのN倍よりもワイドなダイナミックレンジを有する。小さいかまたは1の量子化因数(低損失または可逆圧縮を実現するために使用される)を使用する場合、量子化される変換係数のレンジも大きい。統計的には、これらの係数は、図2および3に示されるようなラプラス分布を有する。図2は、ワイドダイナミックレンジ係数に関するラプラス分布を示す。図3は、典型的なナローダイナミックレンジ係数に関するラプラス分布を示す。
従来の変換コーディングは、ナローダイナミックレンジの入力データ(通常は8ビット)、および比較的大きな量子化子(quantizer)(4およびそれ以上の数値など)用に調整される。したがって、図3は、こうした従来の変換コーディングにおける変換係数の分布を表す。さらに、こうした従来の変換コーディングで使用されるエントロピエンコーディングは、実行レベルエンコーディングの変形とすることが可能であり、ゼロの連続と非ゼロシンボルとが一緒にエンコードされる。これは、ゼロのラン(高い確率で発生する)、ならびにシンボル間の相関関係のキャプチャを表すための効果的な手段とすることができる。
他方で、従来の変換コーディングは、図2に示されるようなワイドダイナミックレンジ分布の圧縮には適していない。シンボルは任意の他の値よりもゼロである確率が高い(すなわち、分布のピークがゼロである)が、ある係数がゼロである確率は、ワイドダイナミックレンジ分布の場合極めて低い。したがって、ゼロは頻繁には発生せず、連続する非ゼロ値係数間のゼロの数に基づくラン長さエントロピコーディング技法は、ワイドダイナミックレンジ入力データには非常に非効率的である。
ワイドダイナミックレンジ分布には、ナローレンジ分布に比べて、シンボルのアルファベットの増加も見られる。このシンボルアルファベットの増加により、シンボルをエンコードするために使用されるエントロピテーブルは必然的に大きくなる。そうでない場合、多くのシンボルはコーディングされずに終わることになり、非効率的である。テーブルが大きくなるほど大きなメモリが必要であり、その結果、より複雑になる可能性もある。
したがって、従来の変換コーディングは多様性に欠けており、ナローダイナミックレンジ分布の場合は入力データに対して良好な働きをするが、ワイドダイナミックレンジ分布の場合はそうではない。
しかしながら、ナローレンジデータの場合、量子化された変換係数の効率的なエントロピコーディングを見つけることが不可欠なプロセスである。このステップで達成可能ないかなる性能利得(圧縮効率およびエンコード/デコード速度の両方に関する利得)も、全体の品質利得に変換される。
コンテキスト情報の使用、高圧縮要件(算術コーディングなど)、低圧縮要件(ハフマン符号化技法に見られるような)、およびエンコーダ/デコーダのメモリオーバヘッドを最小限にするための簡潔なコードテーブルセットの使用などのような、異なる種類の効率性基準を首尾よく利用できるように、様々なエントロピエンコーディングスキームの機能が特徴付けられている。
これらすべての特徴に合致しない従来のエントロピエンコーディング方法は、エンコーディング変換係数の完全な効率性を実証するものではない。
本明細書に記載されたデジタルメディアコーディングおよびデコーディング技法、ならびにデジタルメディアコーデックにおけるこの技法の実現は、変換係数のより効果的な圧縮を達成する。例えば、本明細書に示された例示的なブロック変換ベースのデジタルメディアコーデックは、非ゼロの係数ならびにゼロ値係数の連続するランを接合的にコーディングすることによって、より効率的に変換係数をエンコードする。ある非ゼロ値係数がそのブロックの最後である場合、最終インジケータがその係数に関するシンボル内のラン値の代わりとなる。初めの非ゼロ値係数は、非ゼロ値係数ならびに初めおよび後続のゼロのランを接合的にコーディングする、特殊なシンボル内に示される。
例示的コーデックは、非ゼロ値係数のラン内のブレークを認識すること、およびこうしたブレークの両側で別々に非ゼロ値係数をコーディングすることによって、複数のコーディングコンテキストが可能である。追加のコンテキストは、内部、中間、および外部の変換に基づくコンテキスト切り替えによって、ならびに変換が輝度またはクロミナンスのチャネルに対応するかどうかに基づくコンテキスト切り替えによって、提供される。これにより、コードテーブルは、コンテキストの有用性を弱めるほど多くのコンテキストを作成することなく、より小さなエントロピを有することができる。
例示的コーデックは、非ゼロ値係数が1より大きい絶対値を有するかどうか、およびゼロのランが正の値を有するかどうかを、各シンボル内に示すことによって、コードテーブルサイズも縮小し、係数のレベルとシンボル外部のランの長さとを別々にエンコードする。コーデックは、これらの別々にコーディングされたランおよびレベルに関するコンテキスト切り替えを利用することができる。
様々な技法およびシステムを組み合わせて、または独立して使用することができる。
この課題を解決するための手段は、以下の発明を実施するための最良の形態でさらに説明される、簡略化された形の概念の選択を紹介するために設けられている。この課題を解決するための手段は、記載された主題の主要な特徴または不可欠な特徴を識別することを意図するものではなく、また記載された主題の範囲を決定する際の補助として使用されることを意図するものでもない。
追加の特徴および利点は、添付の図面を参照しながら進められる以下の諸実施形態の詳細な説明から明らかとなろう。
以下の説明は、ワイドレンジ変換係数のより効率的なエントロピコーディング用、ならびに一般的な変換係数のより効率的なエントロピコーディング用に、適応的に調整する、コーディングおよびデコーディング技法に関する。以下の説明は、デジタルメディア圧縮システムまたはコーデックとのコンテキストにおける、この技法の例示的実施について説明する。デジタルメディアシステムは、伝送または格納のために圧縮形式でデジタルメディアデータをコーディングし、再生または他の処理のためにデータをデコーディングする。説明では、このワイドレンジ係数の適応(adaptive)コーディングを組み込んだこの例示的圧縮システムは、イメージまたはビデオ圧縮システムである。別法として、この技法を他の2Dデータに関する圧縮システムまたはコーデックに組み込むこともできる。ワイドレンジ係数の適応コーディング技法は、デジタルメディア圧縮システムが、圧縮済みのデジタルメディアデータを特定のコーディング形式でエンコーディングすることを必要としない。
1.エンコーダ/デコーダ
図4および5は、代表的な2次元(2D)データのエンコーダ400およびデコーダ500で使用されるプロセスを示す概括図である。この図は、ワイドレンジ係数の適応コーディングを実施する2Dデータのエンコーダおよびデコーダを組み込んだ圧縮システムの、概括図または簡略図を提示する。ワイドレンジ係数の適応コーディングを使用する代替圧縮システムでは、この代表的なエンコーダおよびデコーダに示されるよりも多いかまたは少ないプロセスを、2Dデータ圧縮に使用することができる。例えば、一部のエンコーダ/デコーダは、カラー変換、カラーフォーマット、スケーラブルコーディング、可逆コーディング、マクロブロックモードなども含むことができる。圧縮システム(エンコーダおよびデコーダ)は、可逆から不可逆へと変化する量子化パラメータに基づくことが可能な量子化に依存する、2Dデータの可逆および/または不可逆圧縮を提供することができる。
2Dデータエンコーダ400は、エンコーダへの入力として提示された2Dデータ410の(典型的な入力に関する)よりコンパクトな表現である、圧縮ビットストリーム420を生成する。例えば2Dデータ入力は、イメージ、ビデオシーケンスのフレーム、または他の2次元を有するデータとすることができる。2Dデータエンコーダは、この代表的なエンコーダでは16×16ピクセルサイズであるマクロブロックに、入力データをタイル表示(tile)430する。さらに2Dデータエンコーダは、各マクロブロックを4×4ブロックにタイル表示する。ブロック間の各縁部に「順方向オーバラップ」演算子440が適用され、その後、ブロック変換450を使用して各4×4ブロックが変換される。このブロック変換450は、Srinivasanによる2004年12月17日出願の米国特許出願第11/015707号、名称「Reversible Transform For Lossy And Lossless 2-D Data Compression」に記載された、可逆性のスケールフリーな2D変換とすることができる。オーバラップ演算子440は、Tuらによる2004年12月17日出願の米国特許出願第11/015148号、名称「Reversible Overlap Operator for Efficient Lossless Data Compression」、および、Tuらによる2005年1月14日出願の米国特許出願第11/035991号、名称「Reversible 2-Dimensional Pre-/Post-Filtering For Lapped Biorthogonal Transform」に記載された、可逆性のオーバラップ演算子とすることができる。別法として、離散コサイン変換または他のブロック変換およびオーバラップ演算子を使用することができる。変換に続いて、各4×4変換ブロックのDC係数460に、同様の処理チェーン(タイル表示、順方向オーバラップ、それに続く4×4ブロック変換)が施される。結果として生じるDC変換係数およびAC変換係数が、量子化470、エントロピコーディング480、およびパケット化490される。
デコーダは、逆プロセスを実行する。デコーダ側では、変換係数ビットがそれぞれのパケットから抽出510され、そこから係数自体がデコーディング520および逆量子化(dequantize)530される。DC係数540は、逆変換を適用することによって再生成され、DC係数のプレーンは、DCブロック縁部をまたがって適用される好適な平滑化演算子を使用して「逆方向オーバラップ」される。その後、4×4逆方向変換550をDC係数に適用することによって、データ全体が再生成され、AC係数542がビットストリームからデコーディングされる。最終的に、結果として生じるイメージプレーン内のブロック縁部が逆方向オーバラップフィルタリング560される。これにより、再構築された2Dデータ出力が生成される。
例示的実施形態では、可逆または不可逆のいずれのコーディングが使用されるかに基づいて、エンコーダ400(図4)が入力イメージを圧縮ビットストリーム420(例えばファイル)に圧縮し、デコーダ500(図5)がオリジナルの入力またはその近似値を再構築する。エンコーディングのプロセスは、以下で論じる順方向重複変換(lapped transform)(LT)を含み、この変換は、同じく以下でより詳細に説明する可逆性2次元事前/事後フィルタリングで実施される。デコーディングプロセスは、可逆性2次元事前/事後フィルタリングを使用する、逆方向重複変換(ILT)の適用を含む。
例示されたLTおよびILTは、正確に言えば互いに正反対であるため、まとめて可逆性重複変換と呼ばれる場合もある。このLT/ILTペアは、可逆性変換として可逆イメージ圧縮に使用することができる。
例示されたエンコーダ400/デコーダ500によって圧縮される入力データ410は、様々なカラーフォーマット(例えば、RGB/YUV 4:4:4、YUV 4:2:2、またはYUV 4:2:0の、カラーイメージフォーマット)のイメージとすることができる。通常、入力イメージは、常に輝度(Y)構成要素を有する。RGB/YUV 4:4:4、YUV 4:2:2、またはYUV 4:2:0のイメージの場合、そのイメージは、U構成要素およびV構成要素などのクロミナンス構成要素も有する。イメージの別々のカラープレーンまたは構成要素は、異なる空間解像度を有することができる。例えば、YUV 4:2:0のカラーフォーマットの入力イメージの場合、UおよびV構成要素は、Y構成要素の半分の幅および高さを有する。
前述のように、エンコーダ400は、入力イメージまたはピクチャをマクロブロックにタイル表示する。例示的な実施では、エンコーダ400は入力イメージをYチャネル内の16×16のマクロブロック(カラーフォーマットに応じて、UおよびVチャネル内の16×16、16×8、または8×8域であってもよい)にタイル表示する。各マクロブロックのカラープレーンは、4×4領域またはブロックにタイル表示される。したがって、マクロブロックは、この例示的エンコーダ実施に関して、以下のように様々なカラーフォーマット用に構成される。
1.グレースケールイメージの場合、各マクロブロックは16の4×4輝度(Y)ブロックを含む。
2.YUV 4:2:0フォーマットのカラーイメージの場合、各マクロブロックは16の4×4 Yブロック、および4つのそれぞれ4×4クロミナンス(UおよびV)のブロックを含む。
3.YUV 4:2:2フォーマットのカラーイメージの場合、各マクロブロックは16の4×4 Yブロック、および8つのそれぞれ4×4クロミナンス(UおよびV)のブロックを含む。
4.RGBまたはYUV 4:4:4カラーイメージの場合、各マクロブロックは、それぞれY、U、およびVチャネルの16のブロックを含む。
2.ワイドレンジ係数の適応コーディング
ワイドダイナミックレンジデータ、特に(図4のエンコーダの係数460、462などの)無相関(decorrelated)変換データの場合、かなりの数の低位ビットが予測不可能であり「ノイジー(noisy)」である。言い換えれば、効率的なエントロピコーディングに使用可能な低位ビットには、それほど多くの相関関係がない。このビットは、エンコーディングされたあらゆるビットに対して、1ビットに近い高エントロピを有する。
2.1 グループ化
さらに、
Figure 0004906855
によって、図3に示されたワイドレンジ変換係数のラプラス確率分布関数が与えられる(便宜上、変換係数に対応する確率変数は連続値として扱われる)。ワイドダイナミックレンジデータの場合、λは小さく、絶対平均1/λは大きい。この分布の傾斜は±1/2内で境界が画され(λ)、これは非常に小さい。これは、変換係数がxに等しい確率が、小さなシフトξに関するx+ξの確率に非常に近いことを意味する。離散領域内では、これは「隣接する値jおよび(j+1)を取る変換係数の確率がほぼ同じである」という主張になる。
次に図6を参照すると、ワイドレンジ係数の適応コーディングは、アルファベットの連続するシンボルの、Nシンボルの「ビン」へのグループ化610を実行する。1ビン当たりのシンボル数は、任意の数Nとすることができる。しかしながら実用上、数Nは望ましくは2の累乗(すなわちN=2)であるため、ビン内の係数のインデックスまたはアドレスを固定長コードとして効率的にエンコードすることができる。例えば、シンボルはペアにグループ化することが可能であり、その結果、あるシンボルを、ペア内のシンボルのインデックスと共に、ペアのインデックスとして識別することができる。
このグループ化には、Nを好適に選択できることによって、ワイドレンジ係数に関するビンインデックスの確率分布が、例えば図3に示されたナローレンジデータの確率分布にさらによく似たものとなるという利点がある。グループ化は、量子化演算と数学的に同様である。これは、ナローレンジ確率分布を有するデータで最も良い働きをする可変長エントロピコーディング技法を使用して、ビンインデックスを効率的にエンコードできることを意味する。
係数をビンにグループ化することに基づいて、エンコーダは、そのビンのインデックス(本明細書では正規化係数620とも呼ばれる)およびビン内のそのアドレス(ビンアドレス625とも呼ばれる)を使用して、変換係数615をエンコードすることができる。正規化係数は可変長エントロピコーディングを使用してエンコードされるが、ビンアドレスは固定長コードを使用してエンコードされる。
N(または同等に、ビンアドレスの固定長コーディングに関するビットkの数)の選択により、グループ化の細分性が決定する。一般に、変換係数のレンジが広くなるほど、選択するべきkの値は大きくなる。kが慎重に選択された場合、正規化係数Yはゼロであり、Yに関するエントロピコーディングスキームに合致する確率が高い。
以下で説明するように、エンコーダおよびデコーダにおいて、値kは適宜(後方適応方式で)変化する可能性がある。より具体的に言えば、エンコーダおよびデコーダの両方で、kの値は、以前にエンコード/デコードされたデータに基づいてのみ変化する。
図7に示されたこのエンコーディングの特定の一例では、エンコーダは以下のように変換係数Xをエンコードする。初めのアクション710では、エンコーダは変換係数について正規化係数Yを算出する。この実施例では、正規化係数Yは、一定のビンサイズN=2を選択する場合、Y=sign(X)*floor(abs(X)/N)として定義される。エンコーダは、エントロピコードを使用して、シンボルYを個別に、または他のシンボルと接合的に、エンコードする(アクション720)。次にアクション730で、エンコーダは、変換係数Xのビンアドレス(Z)を決定する。この実施例では、ビンアドレスは、ビンサイズNによるabs(X)の整数除算の剰余、すなわちZ=abs(X)%Nである。エンコーダは、アクション740で、この値をkビットの固定長コードとしてエンコードする。さらに非ゼロ変換係数の場合、エンコーダは符号もエンコードする。より具体的に言えば、アクション750〜760で示されるように、正規化係数が非ゼロの場合、エンコーダは正規化係数(Y)の符号をエンコードする。さらに、正規化係数がゼロであり、変換係数が非ゼロの場合、エンコーダは変換係数(X)の符号をエンコードする。正規化係数は可変長エントロピコードを使用してエンコードされるため、本明細書では可変長部分とも呼ばれ、ビンアドレス(Z)は固定長部分とも呼ばれる。他の代替実施では、正規化係数、ビンアドレス、および変換係数の符号の数学的定義は、変更可能である。
さらにこの例を続けると、図8は、プロセス700(図7)によってエンコードされた変換係数を再構築するための、デコーダ500(図5)によるプロセス例800を示す。アクション810で、デコーダは、圧縮ビットストリーム420(図5)から正規化係数(Y)を個別に、または、ブロックコーディングプロセスで定義されたように他のシンボルと一緒に、デコードする。さらにデコーダは、アクション820で、ビンアドレスおよび符号(エンコードされた場合)に関するkビットのコードワードを圧縮ビットストリームから読み取る。次にアクション830から872で、デコーダは、以下のように変換係数を再構築する。
1.Y>0(アクション830)の場合、変換係数はX=Y*N+Zとして再構築される(アクション831)。
2.Y<0(アクション840)の場合、変換係数はX=Y*N−Zとして再構築される(アクション841)。
3.Y=0およびZ=0(アクション850)の場合、変換係数はX=0として再構築される(アクション851)。
4.Y=0およびZ≠0の場合、さらにデコーダは、圧縮ビットストリームからエンコード済み符号(S)を読み取る(アクション860)。符号が正(S=0)(アクション870)の場合、変換係数はX=Zとして再構築される(アクション871)。そうではなく、符号が負(S=1)の場合、変換係数はX=−Zとして再構築される(アクション872)。
2.2 レイヤ化
再度図6を参照すると、望ましくはエンコーダおよびデコーダは、固定長コーディング済みビンアドレス625および符号を、圧縮ビットストリーム420(図4)内の別のコード済みレイヤ(本明細書では「フレックスビット(Flexbit)」レイヤ645と呼ばれる)に抽象化する。正規化係数620は、コアビットストリーム640のレイヤ内にエンコードされる。これによりエンコーダおよび/またはデコーダが、ビットレートまたは他の制約を満たすために、所望の通りに、エンコーディングのこのフレックスビット部分をグレードダウンするか、または完全にドロップするというオプションを可能にする。エンコーダがフレックスビットレイヤを完全にドロップする場合であっても、圧縮ビットストリームは、たとえ品質が低下しても依然としてデコードすることになる。デコーダは、正規化係数部分のみからでも依然として信号を再構築することができる。これは、エンコーダにおいてより多くの量子化470(図4)を適用することと、事実上同様である。ビンアドレスおよび符号を別のフレックスビットレイヤとしてエンコーディングすることには、何からのエンコーダ/デコーダの実施において、さらに圧縮を向上させるために、他の可変長エントロピコーディング(例えば、算術コーディング、Lempel−Ziv、Burrows−Wheelerなど)がこのレイヤ内のデータに適用可能であるという、潜在的な利点もある。
レイヤ化の場合、フレックスビット部分を含む圧縮ビットストリームの諸セクションは、ビットストリーム内の別のレイヤヘッダまたは他の表示によって信号が送られるため、デコーダは、コアビットストリーム640からフレックスビットレイヤ645(除外されない場合)を識別および分離(すなわち解析)することができる。
レイヤ化は、後方適応グループ化(以下の項で説明)の設計において、別の問題も提示する。フレックスビットレイヤは、所与のビットストリーム内に存在する場合または存在しない場合があるため、後方適応グループ化モデルは、フレックスビットレイヤ内の任意の情報を確実に参照することができない。(ビンサイズN=2に対応する)固定長コードビットkの数を決定するために必要なすべての情報は、一時的な(casual)コアビットストリームに常駐するものとする。
2.3 適合
さらにエンコーダおよびデコーダは、エンコーディングおよびデコーディング時に、固定長コードビットの数kの選択、およびそれに応じて前述のグループ化のビンサイズNの選択を、適応的に調整するための、後方適合プロセスを提供する。一実施では、適合プロセスは、変換係数のラプラス分布としてのモデル化に基づくものとすることが可能であるため、kの値はラプラスパラメータλから導出される。しかしながら、こうした高度なモデルでは、今後のブロックに関する分布をモデル化するのに先立って、デコーダが図6のグループ化610の逆(コアビットストリーム640内の正規化係数と、フレックスビットレイヤ645内のビンアドレス/符号との両方からの、変換係数の再構築)を実行することが必要となる。この要件は、デコーダが圧縮ビットストリーム420からのフレックスビットレイヤのドロップを許可するべきであるというレイヤ制約に違反することになる。
図9に示された実施例では、適合プロセス900は、代わりに、係数のおよそ4分の1が非ゼロである場合、変換係数のより最適なラン長さエンコーディングが達成されるという観測結果に基づくものである。したがって、正規化係数のおよそ4分の3がゼロである「スイートスポット」状況に向けてグループ化を調節するために使用可能な適合パラメータは、良好なエントロピコーディング性能を提供することになる。したがって、あるブロック内の非ゼロの正規化係数の数は、この実施例では適合パラメータとして使用される。この適合パラメータは、変換係数が依然としてフレックスビットレイヤを除外してデコードすることができるという、レイヤ化制約を満たす、コアビットストリーム内に含まれる情報にのみ依存するという利点を有する。このプロセスは、現在のブロックをエンコーディング/デコーディングする場合に適用される適合モデルが、以前のブロックからの情報に基づくものであるという意味で、後方適合である。
その適合プロセスでは、このエンコーダおよびデコーダの例は後方適合ベースで適合を実行する。すなわち、適合の現在の反復は、以前のブロックまたはマクロブロック内などの、エンコーディングまたはデコーディングプロセスで以前に見られた情報に基づくものである。このエンコーダおよびデコーダの例では、所与の変換帯域についてマクロブロックごとに1回、適合更新が実行されるが、これは待ち時間および相互依存性を最低限に抑えるためである。代替のコーデック実施は、各変換ブロック後などの、異なる間隔で適合を実行することができる。
このエンコーダおよびデコーダの例では、適合プロセス900が値kを更新する。非ゼロの正規化係数の数が大きすぎる場合、この数が今後のブロックでドロップする傾向となるように、kが引き上げられる。非ゼロの正規化係数の数が小さすぎる場合、ビンサイズNがより小さいため、今後のブロックがさらに多くの非ゼロ正規化係数を生成することになるという予測で、kは下げられる。この適合プロセス例は、値kが数のセット{0,1,...16}内にあるように制約するが、代替の実施では、kに対して他の値領域を使用することができる。各適合更新で、エンコーダおよびデコーダは、kを増分する、減分する、またはそのままで変更しない。このエンコーダおよびデコーダの例は、kを1ずつ増分または減分するが、代替実施では他のステップサイズを使用することができる。
さらにこのエンコーダおよびデコーダの例における適合プロセス900は、内部モデルパラメータまたは状態変数(M)を使用して、ヒステリシス効果でグループ化パラメータkの更新を制御する。このモデルパラメータは、グループ化パラメータに急速な変動(fluctuation)を発生させないように、グループ化パラメータkを更新するまでのラグを与える。適合プロセス例におけるこのモデルパラメータは、−8から8までの17の整数ステップを有する。
次に図9を参照すると、適合プロセス900の例は、以下のように進行する。さらにこの適合プロセス例については、図10および11の擬似コードリストでも詳細に説明する。アクション910、990で示されるように、このエンコーダおよびデコーダの例における適合プロセスは、輝度帯域およびクロミナンス帯域、ACおよびDC係数などを含む、圧縮ビットストリーム内に示されている各変換帯域上で、別々に実行される。代替コーデックは、変換帯域の数を変更することが可能であり、さらに適合を別々に、または変換帯域と接合的に、適用することもできる。
次に適合プロセスは、アクション920で、直前のエンコード/デコード済みマクロブロックにおける変換帯域の非ゼロの正規化係数の数をカウントする。アクション930で、この未処理カウントは、通常サイズ領域内の非ゼロ値係数の整数化された数を反映するように正規化される。次に適合プロセスは、所望のモデル(すなわち、非ゼロである係数の4分の1の「スイートスポット」)からのカウントの偏差を算出する(アクション940)。例えば図4に示されたエンコーダ例では、AC係数のマクロブロックは240の係数を有する。したがって、所望のモデルは、非ゼロとなる240の係数のうちの70に関するものである。さらにこの偏差は、内部モデルパラメータを更新するために、スケーリング、しきい値化、および使用される。
次のアクション960、965、970、975で、適合プロセスは内部モデルパラメータにおける何らかの変更に従って、値kを適合させる。モデルパラメータが負のしきい値未満である場合、値kは(その許容範囲内で)減分される。この適合により、さらに多くの非ゼロ値係数が生成されるはずである。他方で、モデルパラメータが正のしきい値を超える場合、値kは(許容範囲内で)増分される。こうした適合により、より少ない非ゼロ値係数が生成されるはずである。それ以外の場合、値kは変更されないままとなる。
再度、アクション910、980に示されるように、適合プロセスは、クロミナンスチャネルおよび輝度チャネルについて別々に、などのように、データの各チャネルおよびサブ帯域について別々に繰り返される。
適合プロセス例900については、図10および11に示される擬似コードリスト1000でさらに詳細に説明する。
3.効率的なエントロピエンコーディング
3.1 従来技術の方法
様々なエンコーディング規格では、変換ブロックのコーディングプロセスは係数文字列のコーディングに縮小される。こうした文字列の一例が、変換係数例1200として図12に示される。この例1200では、係数C0、C1、C2、C3、およびC4は(正または負のいずれかの符号の)4つの非ゼロ値係数値を表すが、この数列内のその他の係数はゼロの値を有する。
通常、こうした変換係数の文字列に対しては、以下のような一定のプロパティが当てはまる。
・ 通常、係数の合計数は決定性があり、変換サイズによって与えられる。
・ 確率論的に言えば、多数の係数がゼロである。
・ 少なくとも1つの係数は非ゼロである。すべての係数がゼロの場合、通常、このケースは、Srinivasanによる2005年8月12日出願の米国特許出願(番号未定)、名称「Non-Zero Coefficient Block Pattern Coding」に記載されているような、コード化されたブロックパターンを介して信号送信される。
・ 確率論的に言えば、非ゼロおよびより大きな値の係数は文字列の始めに発生し、ゼロおよびより小さな値の係数は終わりに向かって発生する。
・ 非ゼロ値係数は、知られた最低/最高の整数値を取る。
様々なエンコーディング技法は、通常はかなり頻繁に発生するゼロ値係数が、ラン長さコードでコーディングできるという事実を利用する。しかしながら、エンコードされる入力イメージが高ダイナミックレンジデータ(例えば8ビットより大きい)の場合、または量子化パラメータが1または小さい場合、前述のように、ゼロの変換係数は少なくなる。こうした状況では、前述の適応コーディングおよびデコーディング技法を使用して、条件付けされたデータがこれらの特徴を有するように、データを条件付けすることができる。他の技法も、例えば高量子化レベルの設定などの他の手段によって、変換係数例1200のセットと同様の変換係数セットを生成することができる。
図12は、変換係数例1200の方法などの、変換係数をエンコーディングする2つの方法も示す。これらの方法は、コーディングの利点をもたらすために、ゼロのランと連続する非ゼロ値係数とを一緒にコーディングすることを利用する。2Dコーディング例1220は、こうしたランレベルのエンコーディングスキームに関する一技法を実証する。例1220が示すように、2Dコーディングでは、ゼロ値係数のラン(長さゼロまたは正の長さのいずれかのラン)が、変換係数の数列内の後続の非ゼロ値係数と一緒にシンボル1225としてコーディングされ、例示されたケースでは、シンボル<0,C0>は非ゼロ値係数C0に先行するゼロがないことを示す。「ブロックの終わり」またはEOBと呼ばれる特殊なシンボル1235は、ゼロの最後のランを信号送信するために使用される。これは通常、各シンボルが、ラン(ゼロ値係数のラン)およびレベル(非ゼロ系数値)を接合的にコーディングするため、2つの値を有することから、2Dコーディングと呼ばれ、2次元の変換係数データのエンコーディングと考えることができる。これらのシンボルは、ハフマンコードまたは算術コーディングを使用してエントロピエンコーディングし、図4の圧縮ビットストリーム420に送信することが可能である。
他の代替エンコーディングスキームは3Dコーディングであり、その例が例1240に示される。3Dコーディングでは、ゼロのランは、通常、2Dコーディングの場合と同様に後続の非ゼロ値係数と接合的にコーディングされる。さらに、この非ゼロ値係数がブロック内の最後の非ゼロ値係数であるかどうかを示す、ブールデータ要素「last」がエンコードされる。したがってシンボル1245は、ラン、レベル、およびlastを接合的にエンコードし、例示されたケースでは、シンボル<2,C1,not last>は、非ゼロ値係数C1に2つのゼロが先行すること、およびこれは数列内の最後の非ゼロ値係数ではないことを示す。これら要素はそれぞれすべての値を自由に取ることができるため、シンボルは、「3Dコーディング」という名前につながる3つの独立した次元をエンコードする。
これら技法はそれぞれ別々の利点を有する。2Dコーディングは3Dコーディングよりも少ない情報を搬送するため、2Dコーディング技法の各シンボルは、3Dコーディングで使用されるシンボルよりも小さなエントロピを有する。したがって、所与の3Dコーディングスキーム内で可能なシンボル数は、比較に値する2Dコーディングスキームの場合の2倍となる。これによりコードテーブルサイズが大きくなり、3Dコーディングスキームに関するエンコーディングおよびデコーディングを低速化する可能性がある。しかしながら、2Dコーディングでは、ブロックの終わりを信号送信するために追加のシンボルが送信され、追加のシンボル全体を送信する必要があるということは、ビットストリームのサイズという観点からすると費用がかかることである。実際、3Dコーディングは実用上、コードテーブルサイズが大きいという点を除いて、2Dコーディングよりも効率的である。
3.2 3D〜2Dコーディング
図12に示された従来技法は、非ゼロ値係数レベルならびに先行するゼロランの接合コーディングを使用するが、非ゼロ値係数の後続のゼロランは、非ゼロ値係数の大きさとの強力な相関関係を示すことが実証可能である。この特性は、レベルおよび後続ランの接合的エンコーディングの有用性を示唆する。
図13は、図12で概説された2Dおよび3D技法を改良する、こうした代替エンコーディング技法を実証する。図13は、変換係数の数列例1300に関するシンボルを作成するために、後続ゼロランのコーディングの考え方を利用するコーディングスキームの例1340を示す。図13は、係数が、非ゼロ値係数の値、ならびに、(存在する場合は)非ゼロ値係数に続くゼロランの長さを、<level,run>のペアとして含む、シンボル1355に接合的にコーディングされることを示す。
非ゼロ値係数と後続のゼロランとの間の強力な相関関係を利用することに加えて、この方法は、ある非ゼロ値係数がブロック内の最後の非ゼロ値係数である場合、その非ゼロ値係数が数列内の最後の1つであることを信号送信するために特別なランの値を使用することによって、さらなる利点をもたらす。したがって、シンボルの接合コーディングにおいて送信される情報は、レベル値、および、ゼロランの長さまたは「last」値のいずれかを示す他の値である。これは図13で、レベル値と、ラン長さではなく「last」値とを含む、シンボル1365<C4,last>によって示される。これらの異なる状況はシンボル内の同じ場所にエンコードされ、ランおよび「last」は独立しておらず、シンボル当たり1つのみが送信される。したがって、シンボルの次元数は2でも3でもなく、むしろその間のどこかである。発明者等はこのエンコーディングを「2Dコーディング」と呼ぶ。
この2Dコーディングの機能は、レベルと後続のランとを組み合わせる接合コーディングスキームに必ずしも必要ではなく、代替の実施では、伝送される最終シンボルは、最終のゼロランの長さをエンコードするのみである可能性があり、これはコーディング済みビットストリームのサイズを大幅に増加させる可能性があるため望ましくない。他の代替実施では、2Dコーディングで使用されるようなEOBシンボルが使用される可能性がある。しかしながら、3Dコーディングの場合のように、「last」値を使用する2Dコーディングは、ブロックの終わりを示すために特別なシンボルをコーディングする必要がないという点で、2Dコーディングよりも有利である。加えて2Dコーディングは、(1)2Dコーディングの各シンボルのエントロピが3Dコーディングのそれよりも少ないという点、および(2)2Dコーディングのコードテーブル設計が3Dコーディングのそれよりもシンプルであるという点、において、3Dコーディングよりも有利である。これらの利点はどちらも、2Dコードの確率が3Dコードよりも少ないことの結果である。
しかしながら、2Dコーディングだけでは、最初の非ゼロ値係数に先立ってラン長さを送信する方法を提供しないため、変換係数のラン全体を記述することができない。このため、図13に示されるように特別なシンボル1375が使用され、これが最初のゼロランの長さをさらにエンコードする。これによって、最初のシンボルが、first_run、level、および(run OR last)の接合コーディングとなる。図13では、最初のシンボル1375<0,C0,2>は、第1のラン(ゼロである)、最初の非ゼロ値係数のレベル、および第2のラン(これは2であり、最初の非ゼロ値係数はブロック内の最後の非ゼロ値係数ではない)を送信する。このシンボルが追加の次元を含むため、これに関するエンコーディングは「3Dコーディング」と呼ばれる。
Dコーディングにおける特別な情報は、一見したところ、2Dコーディングの利点の一部を否定するものと思われる場合があるが、最初のシンボルのこの異なる処理は、コーディング効率の観点から見て実際は有利である。3Dシンボルは、他の2Dシンボルとは異なるアルファベットを必然的に有し、これは、他のシンボルとは別にエンコードされ、2Dエントロピを増加させないことを意味する。
図14は、2D〜3Dコーディングに従って変換係数をエンコードするための、エンコーダ400(図4)によるプロセス例1400を示す。一実施形態では、プロセス1400は、正規化係数をエンコーディングするための図7のプロセス720の一部として含めることができる。他の実施形態では、プロセス1400を使用して、従来の技法によって量子化された変換係数を量子化することができる。プロセス1400の様々な実施形態では、アクションの除去、組合せ、またはサブアクションへの分割が可能である。
プロセスはアクション1420で開始され、ここで最初の非ゼロ変換係数が識別される。次に、アクション1430で、初めのゼロランの長さ(長さ0または正の長さのいずれかとすることができる)および最初の非ゼロ値係数を使用して、3Dシンボルが作成される。この時点で、3Dシンボルは完全ではない。次に、プロセスは意思決定アクション1435に進み、ここで、現在識別されている非ゼロ値係数が、変換係数の数列における最後の非ゼロ値係数であるかどうかが判別される。これが最後の非ゼロ値係数である場合、プロセスはアクション1480に進み、後続のゼロランではなく「last」インジケータがシンボルに挿入される。次にプロセスは、アクション1490で、エントロピエンコーディングを使用してシンボルをエンコードし、プロセスは終了する。こうしたシンボルのエンコーディングプロセスの一例は、図16を参照しながら以下で説明する。
しかしながら意思決定アクション1435で、プロセスが、これが最後の非ゼロ値係数ではないと判別すると、アクション1440で、後続のゼロランの長さ(0または正の数のいずれかとすることができる)がシンボルに挿入され、このシンボルはアクション1450でエンコードされる。こうしたシンボルのエンコーディングプロセスの一例は、図16を参照しながら以下で説明する。次にプロセスは、アクション1460で次の非ゼロ値係数を識別し、これは先行する非ゼロ値係数が最後でなかったために存在することが知られている。次にアクション1470で、この非ゼロ値係数を使用して2Dシンボルが作成される。前述の3Dシンボルと同様に、この時点で、このシンボルはまだ完全ではない。次に、意思決定アクション1475で、プロセスは、現在の非ゼロ値係数が数列内の最後であるかどうかを判別する。最後である場合、プロセスはアクション1480に進み、「last」インジケータが含められてシンボルがエンコードされる。最後でない場合、プロセスはアクション1440に戻り、次のゼロランが含められてシンボルがエンコードされ、プロセスは次の非ゼロ値係数で続行される。
3.3 コンテキスト情報
Dおよび3Dコーディングに従ったシンボルのエンコーディングに加えて、いくつかの一時的な情報を使用して、エンコードされるシンボルに関するコンテキストを生成することができる。このコンテキストは、エンコーダ400(図4)またはデコーダ500(図5)によって使用され、シンボルをコーディングおよびデコーディングするためのエントロピコーディングテーブルの集合のうちの1つにインデックス付けすることができる。コンテキストの数が増加すると、各特定のコンテキスト向けに調整されたテーブルを適合または使用するための、コーデックの柔軟性が向上する。しかしながら、多数のコンテキストを定義することのマイナス面は、(1)コンテキストの希薄化(dilution)が存在すること(各コンテキストは少数のシンボルのみに適用されるため、適合効率が低下する)、および(2)コードテーブルの増加が複雑さおよびメモリ要件の増加を意味すること、である。
これらの点を考えると、本明細書に記載されたコンテキストモデルは、各シンボルについてどのコンテキストが選択されるかを決定するための3つの要素を参考にするために選択される。一実施では、これらの要素は(1)変換が内部、中間、または外部のいずれの変換であるかという、変換のレベル、(2)係数が、輝度チャネルまたはクロミナンスチャネルのいずれの係数であるか、および(3)係数の数列内で、非ゼロ値係数のランに何らかのブレークが存在するかどうか、である。代替実施では、これらの要素のうちの1つまたは複数は、コーディングコンテキストの決定に使用されない場合がある、ならびに/あるいは、他の要素が考慮される場合がある。
したがって、(1)によれば、内部変換は中間変換とは異なるコードテーブルセットを使用し、中間変換は外部変換とは異なるコードテーブルセットを使用する。他の実施では、コンテキストモデルは、2つの変換レベルしか区別することができない。同様に(2)によれば、輝度係数は、クロミナンス係数とは異なるコードテーブルセットを使用する。これらのコンテキスト要素はどちらも、所与の変換係数セット内では変更されない。
しかしながら、要素(3)は、変換係数セット内で変更される。図15は、このコンテキスト切り替えをより良く示す、3つの変換係数数列の例を示す。3つすべての数列1500、1520、および1540では、非ゼロ値係数が文字ごとに示される。
3つすべての例が示すように、ブロック内の最初のシンボルは3Dシンボルであり、そのアルファベットが他のシンボルと異なるため、必然的に他のシンボルとは異なるテーブルでコーディングされる。これは、最初のシンボルに関する「自然な」コンテキストを形成する。したがって、3つすべての例の最初の非ゼロ値係数である係数Aは、3Dコードでコーディングされる。加えて、3Dシンボルは、最初の非ゼロ値係数の先行および後続のゼロランをエンコードするため、例1520の最初の2つの係数(A,0)および例1540の最初の2つの係数(0,A)は、3Dシンボル内で接合的にコーディングされる。このため一実施では、要素(3)は、3Dシンボルのコンテキストを決定するために適用されない。
これに対して、2Dシンボルは、要素(3)に応じて異なるようにエンコードされる。したがって例1500では、係数Dの後まで非ゼロ値係数のラン内にいかなるブレークもないことから、係数B、C、およびD(ならびにDに続くゼロ)は、第1のコンテキストモデルでエンコードされることがわかる。しかしながら、Dの後のゼロは、非ゼロ値係数のラン内にブレークを構築する。したがって、残りの係数E、F、G、H、(およびいかなる後続も)...は、第2のコンテキストモデルでコーディングされる。これは、A以外の各非ゼロ値係数は2Dシンボルでエンコードされるが、係数B、C、およびD(および関連するいかなるゼロ値のランも)に対しては、係数E、F、G、およびHに対して使用されるものとは異なるコードテーブルが使用されることを意味する。
これに対して、例1520では、AとBの間にブレークがある。これにより、非ゼロ値係数のラン内にブレークが構築されるため、係数Bとそれに続くすべての非ゼロ値係数は第2のコンテキストモデルでエンコードされる。同様に、例1540では、Aの前にブレークがある。したがって、例1520の場合のように、係数B、C、D、...は第2のコンテキストモデルでコーディングされる。
図16は、エンコーダ400(図4)によってシンボルをエンコードするためのプロセス例1600を示す。一実施では、プロセス1600は、プロセス1400(図14)のアクション1450および1490のプロセスを実行する。プロセス1600の様々な実施において、アクションの除去、組合せ、およびサブアクションへの分割が可能である。プロセスは意思決定アクション1605で開始され、ここでエンコーダは、シンボルが3Dシンボルであるかどうかを判別する。3Dシンボルである場合、プロセスはアクション1610に進み、ここでシンボルは3Dテーブルを使用してエンコードされ、プロセスは終了する。様々な実施において、シンボルは、ハフマンコーディングまたは算術コーディングなどのエントロピエンコーディングを使用してエンコードすることができる。別法として、他のコーディングスキームを使用することもできる。
シンボルが3Dシンボルでない場合、プロセスは意思決定アクション1615に進み、ここでエンコーダは、シンボル内で接合的にコーディングされた非ゼロ値係数に、少なくとも1つのゼロが先行するかどうかを判別する。先行していない場合、プロセスはアクション1620に進み、シンボルは第1のコンテキストモデルからの2Dコードテーブルを使用してエンコードされ、プロセスは終了する。ブレークがある場合、アクション1630で、シンボルは第2のコンテキストモデルからの2Dコードテーブルを使用してエンコードされ、プロセスは終了する。
3.4 コードテーブルサイズの縮小
前述の技法は従来の技法を超える効率性を生み出すが、依然として、単独ではコードテーブルサイズを大幅に縮小することはできない。この技法に対して作成されるコードテーブルは、2Dシンボルに対する(max_level×(max_run+2))と、3Dシンボルに対する(max_level×(max_run+1)×(max_run+2))のすべての組合せを伝送できるものとし、この式でmax_levelは非ゼロ値係数の最大(絶対)値であり、max_runはゼロランの可能な最大長さである。合計(max_run+1)の場合、ゼロランに対する可能な値が0からmax_runまでであるため、値(max_run+1)は3Dシンボルの初めのランについて導出される。同様に、各シンボルは、合計(max_run+2)値の場合、0からmax_runまでの長さの後続のゼロランならびに「last」シンボルをエンコードする。たとえエスケープコーディング(稀にしか発生しないシンボルが、エスケープコードを介して信号発信される1つまたは複数のメタシンボルと一緒にグループ化される)を使用しても、コードテーブルサイズは膨大な可能性がある。
コードテーブルサイズを縮小するために、前述の技法をさらに調整することができる。第1に、各ランおよび各レベルが以下のようにシンボルペアに分割される。
run =nonZero_run(+run1)
level=nonOne_level(+level1)
このシンボルペアでは、シンボルnonZero_runおよびnonOne_levelのそれぞれが、ランがゼロより大きいかどうか、および絶対レベルが1より大きいかどうかを示す、ブール値である。値run1およびlevel1は、ブール値が真である場合にのみ使用され、ラン(1とmax_runの間)およびレベル(2とmax_levelの間)を示す。しかしながら「last」のケースもコーディングしなければならないため、接合的にコーディングされたシンボル内の任意の後続のゼロランの値(run OR last)が、3項シンボルのnonZero_run_lastとして送信され、これは、ランがゼロ長を有する場合は値0、ランが非ゼロ長を有する場合は1、およびシンボルの非ゼロ値係数が数列の最後である場合は2を取る。
したがって、この縮小されたエンコーディングを利用するために、最初の3Dシンボルは<nonZero_run,nonOne_level,nonZero_run_last>の形を取る。これによって、2×2×3=12のサイズのアルファベットが作成される。後続の2Dシンボルは、<nonOne_level,nonZero_run_last>の形を取り、2×3=6のサイズのアルファベットを作成する。一実施では、これらのシンボルは「Index」と呼ばれる。いくつかの実施では、run1はNonzeroRunとも呼ばれ、level1はSignificantLevelと呼ばれる。
Indexはレベルおよびランが有意であるかどうかに関する情報のみを含むため、デコーダが一連の変換係数を正確に再作成できるようにするためには、追加の情報をシンボルと共に送信することが必要な可能性がある。したがって、インデックスからの各シンボル後に、レベルが有意レベルである場合、レベルの値は別々にエンコードされ、シンボル後に送信される。同様に、シンボルが、ゼロランが非ゼロ(正)長さであることを示す場合、その長さは別々にエンコードされ、シンボル後に送信される。
図17は、変換係数の絶対値の数列例1700を示す、縮小された3D〜2Dコーディング1740の例を示す。変換係数の符号は他の場所にエンコードすることができる。図17が示すように、係数の数列例1700は「5,0,0」で始まる。上記で示されたような非縮小3D〜2Dでは、最初のシンボルは次に<0,5,2>となる。しかしながら、縮小されたコーディングでは、図17はIndexからの最初のシンボル1745、<0,1,1>を示す。このシンボルは、最初の非ゼロ値係数の前にゼロがないこと、最初の非ゼロ値係数が1より大きい絶対値を有すること、およびこの非ゼロ値係数の後に少なくとも1つのゼロがあることを示す。このシンボルの後には、非ゼロ値係数の絶対値が5であることを示すSignificantLevel値の「level_5」(1755)と、係数の後に2つのゼロが続くことを示すNonzeroRun値「run_2」(1765)とが続く。これに対して、後にゼロが続かない絶対値1の非ゼロ値係数を示すシンボル1775、<0,0>は、情報を提供するためのこれに続く他の値を必要としない。
いくつかのシンボルはその後に追加情報を送信する必要があるため、Indexからのシンボルを分析して、それらと共に追加情報を送信するべきであるかどうかを判別しなければならない。図18は、3D Indexシンボルに何の情報が含まれているかを特定するため、および、適切であれば追加の情報を送信するための、エンコーダ400(図4)によるプロセス例1800を示す。プロセス1800の様々な実施では、アクションの除去、組合せ、またはサブアクションへの分割が可能である。図18に関するシンボルの説明では、値「x」は、シンボルのその特定部分に関する任意の可能な値を表す、プレースホルダ(placeholder)である。プロセスはアクション1810から開始され、ここで最初のエンコード済みシンボルが送信される。次に意思決定アクション1820で、エンコーダは、シンボルが<x,1,x>の形であるかどうかを判別する。これは、シンボルによって表される非ゼロ値係数が1より大きい絶対値を有するかどうかを問い合わせることと等価である。エンコーダがこのケースに当てはまるものと判別した場合、非ゼロ値係数の値がエンコードされ、アクション1830で送信される。図18は、非ゼロ値係数の符号のコーディングについて明示的に考察していないが、この符号はプロセス1800内のいくつかのポイントで含めることが可能であることに留意されたい。様々な実施では、これには、接合コーディングされたシンボルの直後に、接合コーディングシンボルの内部で、および/またはレベルの絶対値と共に、符号を送信することが含まれる。
アクション1820での判別結果にかかわらず、意思決定1840では、エンコーダが、シンボルが<1,x,x>の形であるかどうかを判別する。この判別は、シンボルによって表された非ゼロ値係数がいずれかの先行ゼロを有するかどうかを問い合わせることと等価である。先行ゼロを有する場合、アクション1850で、エンコーダは非ゼロ値係数に先行するゼロランの長さをエンコードし、この値を送信する。
次に意思決定アクション1860で、エンコーダは、シンボルが<x,x,t>である場合のtの値を考慮する。この意思決定は、このシンボルによって表される非ゼロ値係数が、それに続く何らかのゼロを有するかどうかを問い合わせることと等価である。t=0の場合、エンコーダには後続のゼロがないことがわかり、アクション1880でさらにシンボルを送信して、プロセス1800は終了する。一実施では、図19のプロセス1900が次のシンボルに関して開始される。t=1の場合、エンコーダは、アクション1870で、非ゼロ値係数の後に続くゼロランの長さをエンコードして送信し、その後アクション1880でシンボルの送信を続行して、プロセス1800は終了する。しかしながら、t=2の場合、エンコーダには、シンボルによって表される非ゼロ値係数が数列内の最後(および唯一)であることがわかり、変換係数で表されるブロックは完了する。このようにしてプロセス1800は終了し、適切であれば、次のブロックを変換およびエンコードすることができる。
図19は、2D Indexシンボルに何の情報が含まれているかを特定するため、および、適切であれば追加の情報を送信するための、エンコーダ400(図4)によるプロセス例1900を示す。プロセス1900の様々な実施では、アクションの除去、組合せ、またはサブアクションへの分割が可能である。図18の場合と同じく図19では、値「x」は、シンボルのその特定部分に関する任意の可能な値を表す、プレースホルダである。プロセスはアクション1910から開始され、ここで次のエンコード済みシンボルが送信される。次に意思決定アクション1920で、エンコーダは、シンボルが<1,x>の形であるかどうかを判別する。これは、シンボルによって表される非ゼロ値係数が1より大きい絶対値を有するかどうかを問い合わせることと等価である。エンコーダがこのケースに当てはまるものと判別した場合、非ゼロ値係数の値がエンコードされ、アクション1930で送信される。プロセス1800の場合と同様に、図19は、非ゼロ値係数の符号のコーディングについて明示的に考察していないが、この符号はプロセス1900内のいくつかのポイントで含めることが可能であることに留意されたい。
次に意思決定アクション1940で、エンコーダは、シンボルが<x,t>である場合のtの値を考慮する。この意思決定は、このシンボルによって表される非ゼロ値係数が、それに続く何らかのゼロを有するかどうかを問い合わせることと等価である。t=0の場合、エンコーダには後続のゼロがないことがわかり、アクション1960でさらにシンボルを送信して、プロセス1900は終了する。一実施では、図19のプロセス1900は次のシンボルに関して反復される。t=1の場合、エンコーダは、アクション1950で、非ゼロ値係数の後に続くゼロランの長さをエンコードして送信し、その後アクション1960でシンボルの送信を続行して、プロセス1900は終了する。しかしながら、t=2の場合、エンコーダには、シンボルによって表される非ゼロ値係数が数列内の最後であることがわかり、変換係数で表されるブロックは完了する。このようにしてプロセス1900は終了し、適切であれば、次のブロックを変換およびエンコードすることができる。
3.5 追加の効率性
前述のコードテーブルサイズの縮小に加えて、ランおよびレベルのシンボルを分析することの利点の1つは、3D接合シンボルの伝送に続いて、デコーダが、ブロック内に何らかの先行ゼロが存在するか否かを判別できることである。これは、第1または第2のコンテキストモデルが保持するかどうかを記述するコンテキスト情報がデコーダ側で認識されており、最初の非ゼロ値係数のlevel1値をエンコードするための有効なコンテキストを構築することを意味する。これは、たとえ接合的にコーディングされたIndexシンボルが異なるアルファベットを使用する場合であっても、2Dシンボルのlevel1値に適用されるコンテキストが、3Dシンボルのlevel1値にも等しく適用可能であることを意味する。
さらに、ブロック内の変換係数の合計数は一定であるため、各連続ランは単調に減少するシーケンスによって境界が画される。好ましい実施では、この情報はラン値のエンコーディングで活用される。例えばコードテーブルは、係数セットの前半で開始されるランに関するラン値コードのセットと、後半で開始されるランに関する異なるセットとを含むことができる。後半で開始されるいかなる可能なランの長さも、前半で開始されるランの可能な長さより必然的に短いことから、第2のコードセットは同じように大きくならず、エントロピは減少し、コーディング性能は向上する。
係数の配置を注意深く観察することによって、他の情報を集めることができる。例えば、シンボルによって表される非ゼロ値係数が係数の数列内の最後に発生する場合、「last」は常に真である。同様に、シンボルによって表される非ゼロ値係数が配列内の最後から2番目に発生する場合、「last」が真であるかまたは後続ランがゼロであるかのいずれかである。これらそれぞれの観察によって、より短いテーブルによるコーディングが可能となる。
3.6 インデックス実施例
第1のIndexのアルファベットサイズは12である。一実施では、このシンボルについて5つのハフマンテーブルが使用可能であり、これはFirstIndex=a+2b+4cと定義され、この式でシンボルは<a,b,c>であり、aおよびbは0または1、cは値0、1、または2を取ることができる。各テーブルの12のシンボルに関するコードワード長さの一実施を、以下に示す。一実施では、以下の接頭辞コードワードセットを導出するために、標準のハフマンコード構造プロシージャが適用可能である。
テーブル1:5,6,7,7,5,3,5,1,5,4,5,3
テーブル2:4,5,6,6,4,3,5,2,3,3,5,3
テーブル3:2,3,7,7,5,3,7,3,3,3,7,4
テーブル4:3,2,7,5,5,3,7,3,5,3,6,3
テーブル5:3,1,7,4,7,3,8,4,7,4,8,5
後続のIndexシンボルのアルファベットサイズは6である。一実施では、Index=a+2bとして定義され、この式でシンボルは<a,b>であり、aはブール値であって、bは0、1、または2の値を取ることができる。Indexについて、以下のように4つのハフマンテーブルが定義される。
テーブル1:1,5,3,5,2,4
テーブル2:2,4,2,4,2,3
テーブル3:4,4,2,2,2,3
テーブル4:5,5,2,1,4,3
加えて、一実施では、前述の第3.5項で説明された情報の一部を利用するために、係数が最後の配列位置にある場合、1ビットコード(aによって定義される)が使用される(この場合、bは独自に2である)。一実施では、係数が最後から2番目の位置にある場合、b≠1であることがわかっているため、2ビットコードが使用される。
SignificantLevelの一実施では、レベルの範囲を7つのビンに省略(collapse)するビンプロシージャを使用して、レベルをコーディングする。ビン内のレベルは固定長コードを使用してコーディングされ、ビン自体はハフマンコードを使用してコーディングされる。これは、一実施では、前述のグループ化技法を介して実行可能である。同様に一実施では、NonzeroRunは、現在のシンボルの場所に基づいて5つのビンにインデックス付けするビンプロシージャを使用してコーディングされる。
3.7 3D〜2Dシンボルのデコーディング
図20は、一連のシンボルを変換係数にデコードするための、デコーダ500(図5)によるプロセス例2000を示す。プロセス2000の様々な実施では、アクションの除去、組合せ、またはサブアクションへの分割が可能である。さらにアクションは、ビットストリームの破損によってトリガされるようなエラー状況を処理するために定義することができる。プロセスはアクション2010で開始され、ここでデコーダは最初の接合的にコーディングされたシンボルを受け取り、3Dコードテーブルを使用してこれをデコードする。次にアクション2020で、変換係数は、デコード済みシンボル(同じく圧縮ビットストリーム内に存在する任意のレベルまたはランの情報を含む)に基づいて読み込まれる。このアクションの一実施については、図21に関して以下でより詳細に説明する。次にこのプロセスは、意思決定アクション2030へと続き、ここでデコーダは、シンボルが最後の非ゼロ値係数に関するものであることをシンボルが表示するかどうかを判別する。これに関するものである場合、プロセスはアクション2090へと続き、ここで残りの未読み込み係数があればこれがゼロと共に読み込まれ、プロセス2000は終了する。
シンボルが最後の非ゼロ値係数に関するものでない場合、プロセスは意思決定アクション2040へと続き、ここでデコーダは、これまでに何らかのゼロ係数が何らかのシンボルによって表示されているかどうかを判別する。表示されていない場合、プロセスはアクション2050へと続き、ここで第1のコンテキストモデルに続く2Dコードテーブルを使用して、次のシンボルが受け取られ、デコードされる。これに代わって、意思決定アクション2040でゼロ係数が表示されている場合、プロセス2060で、第2のコンテキストモデルに続く2Dコードテーブルを使用して、次のシンボルが受け取られ、デコードされる。どのコンテキストモデルが使用されたかにかかわらず、プロセスはアクション2070へと続き、ここで変換係数はデコード済みシンボル(同じく圧縮ビットストリーム内に存在する任意のレベルまたはランの情報を含む)に基づいて読み込まれる。アクション2020の場合と同様に、このアクションの一実施については、図21に関して以下でより詳細に説明する。次にこのプロセスは、意思決定アクション2080へと続き、ここでデコーダは、シンボルが最後の非ゼロ値係数に関するものであることをシンボルが表示するかどうかを判別する。これに関するものでない場合、プロセスは意思決定アクション2040に戻り、反復される。これに関するものである場合、プロセスはアクション2090へと続き、ここで残りの未読み込み係数があればこれがゼロと共に読み込まれ、プロセス2000は終了する。
図21は、変換係数を読み込むためのデコーダ500(図5)によるプロセス例2100を示す。プロセス2100の様々な実施では、アクションの除去、組合せ、またはサブアクションへの分割が可能である。プロセス2100は、前述の第3.4項の技法に従ってエンコードされたシンボルをデコードするように構成されるが、代替の実施では、レベル値およびラン長さを2Dシンボルおよび3Dシンボルに含めることが可能であり、これによってプロセス2100を簡略化することができる。このプロセスは意思決定アクション2110で開始され、ここでデコーダは、シンボルが3Dシンボルであるかどうかを判別する。3Dシンボルでない場合、プロセスは意思決定アクション2140へとジャンプし、これについては以下で説明する。しかしながらシンボルが3Dシンボルである場合、デコーダは意思決定アクション2120で、シンボルがゼロ係数の正の長さの初めのランを示すかどうかを判別する。これは、3Dシンボル内のnonZero_runの値が、正の長さのランを示す1、またはゼロ長さのランを示す0であるかどうかの判別によって実行可能である。シンボルが、ゼロ係数の正の長さのランを示す場合、プロセスはアクション2130へと続き、3Dシンボルに続くエンコード済みlevel1に基づいてランの長さがデコードされ、ラン長さに従って初めの変換係数がゼロと共に読み込まれる。
次に、プロセスは意思決定アクション2140へと続き、ここでデコーダは、シンボルが、その非ゼロ値係数が1より大きい絶対値を有することを示すかどうかを判別する。これは、シンボル内のnonOne_levelの値が、レベルが1より大きい絶対値を有することを示す1、あるいは非ゼロ値係数が−1または1のいずれかであることを示す0、であるかどうかを判別することによって実行される。シンボルが1より大きい絶対値を伴う係数を示さない場合、プロセスはアクション2150へと続き、ここで非ゼロ値係数の符号に応じて−1または1のいずれかと共に次の係数が読み込まれる。シンボルが1より大きい絶対値を伴う係数を示す場合、これに代わってプロセスはアクション2160へと続き、ここで係数のレベルがデコードされ、係数はレベル値ならびにその符号と共に読み込まれる。前述のように、符号は様々な方法で示すことが可能であるため、アクション2150または2160では、係数符号のデコーディングについて明示的に考察しない。
次に、意思決定アクション2170で、デコーダは、シンボルがゼロ係数の正の長さの後続ランを示すかどうかを判別する。これは、シンボル内のnonZero_run_lastの値が、正の長さのランを示す1、またはゼロ長さのランを示す0、であるかどうかを判別することによって実行可能である。(2に等しいnonZero_run_lastのケースは、プロセス2000で理解されているため、示さない。)シンボルがゼロ係数の正の長さのランを示す場合、プロセスはアクション2180へと続き、ここで、シンボルに続くエンコード済みのrun1に基づいてランの長さがデコードされ、後続の変換係数がラン長さに従ってゼロと共に読み込まれ、プロセス2100は終了する。
4.コンピューティング環境
前述のエンコーダ400(図4)およびデコーダ500(図5)ならびに変換係数を効率良くエンコードおよびデコードするための技法は、とりわけ、コンピュータ、イメージおよびビデオの記録、送信、および受信機器、ポータブルビデオプレーヤ、ビデオ会議、その他の諸例を含む、デジタル媒体信号処理が実行される様々なデバイスのいずれかで実行可能である。デジタル媒体コーディング技法は、図22に示されるようなコンピュータまたは他のコンピューティング環境内で実行される、ハードウェア回路ならびにデジタル媒体処理ソフトウェアで、実施可能である。
図22は、説明された諸実施形態が実施可能な、好適なコンピューティング環境(2200)の一般化された例を示す。本発明は、多様な汎用または特定用途向けのコンピューティング環境で実施可能であるため、コンピューティング環境(2200)は、本発明の用途または機能の範囲に関していかなる制限をも示唆することを意図しない。
図22を参照すると、コンピューティング環境(2200)は、少なくとも1つの処理ユニット(2210)およびメモリ(2220)を含む。図22では、この最も基本的な構成(2230)は破線内に含まれる。処理ユニット(2210)はコンピュータ実行可能命令を実行し、実プロセッサまたは仮想プロセッサとすることができる。多重処理システムでは、処理パワーを増加させるために多重処理ユニットがコンピュータ実行可能命令を実行する。メモリ(2220)は、揮発性メモリ(例えばレジスタ、キャッシュ、RAM)、不揮発性メモリ(例えばROM、EEPROM、フラッシュメモリなど)、またはこの2つの何らかの組合せとすることができる。メモリ(2220)は、前述のエンコーダ/デコーダ、および効率的な変換係数のエンコーディング/デコーディング技法を実施する、ソフトウェア(1280)を格納する。
コンピューティング環境は追加の機能を有することができる。例えば、コンピューティング環境(2200)は、ストレージ(2240)、1つまたは複数の入力デバイス(2250)、1つまたは複数の出力デバイス(2260)、および1つまたは複数の通信接続(2270)を含む。バス、コントローラ、またはネットワークなどの相互接続メカニズム(図示せず)は、コンピューティング環境(2200)の諸構成要素を相互接続する。通常、オペレーティングシステムソフトウェア(図示せず)は、コンピューティング環境(2200)内で実行する他のソフトウェアに動作環境を提供し、コンピューティング環境(2200)の諸構成要素のアクティビティを調整する。
ストレージ(2240)は取り外し可能または取り外し不能とすることが可能であり、磁気ディスク、磁気テープまたはカセット、CD−ROM、CD−RW、DVD、または、情報の格納に使用可能であり、コンピューティング環境(2200)内でアクセス可能な、任意の他の媒体を含む。ストレージ(2240)は、前述のエンコーダ/デコーダ、および効率的な変換係数のエンコーディング/デコーディング技法を実施する、ソフトウェア(2280)を格納する。
入力デバイス(2250)は、キーボード、マウス、ペン、またはトラックボールなどのタッチ入力デバイス、音声入力デバイス、スキャンデバイス、あるいは、コンピューティング環境(2200)に入力を提供する他のデバイスとすることができる。オーディオの場合、入力デバイス(2250)はサウンドカード、またはアナログ形式またはデジタル形式のオーディオ入力を受け入れる同様のデバイス、あるいは、コンピューティング環境のオーディオサンプルを提供するCD−ROMリーダとすることができる。出力デバイス(2260)は、ディスプレイ、プリンタ、スピーカ、CDライタ、またはコンピューティング環境(2200)からの出力を提供する他のデバイスとすることができる。
通信接続(2270)は、通信媒体を介した他のコンピューティングエンティティへの通信を可能にする。通信媒体は、コンピュータ実行可能命令などの情報、圧縮済みオーディオまたはビデオ情報、あるいは変調データ信号内の他のデータを、搬送する。変調データ信号とは、信号内の情報をエンコードした方法と同様の方法でその特徴のうちの1つまたは複数が設定または変更された信号である。例を挙げると、通信媒体は、電気、光、RF、赤外線、音波、または他の搬送波で実施される有線または無線の技法を含むが、これらに限定されるものではない。
本明細書のデジタル媒体処理技法は、コンピュータ読み取り可能媒体の一般的なコンテキストで説明することができる。コンピュータ読み取り可能媒体は、コンピューティング環境内でアクセス可能な任意の使用可能媒体である。例を挙げると、コンピューティング環境(2200)では、コンピュータ読み取り可能媒体は、メモリ(2220)、ストレージ(2240)、通信媒体、および上記のいずれかの組合せを含むが、これらに限定されるものではない。
本明細書のデジタル媒体処理技法は、プログラムモジュールに含まれ、ターゲットの実または仮想プロセッサ上のコンピューティング環境内で実行中などの、コンピュータ実行可能命令の一般的なコンテキストで説明することができる。一般にプログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実施する、ルーチン、プログラム、ライブラリ、オブジェクト、クラス、構成要素、データ構造などを含む。プログラムモジュールの機能は、様々な実施形態において、プログラムモジュール間で所望の通りに組み合わせるかまたは分割することができる。プログラムモジュールに関するコンピュータ実行可能命令は、ローカルまたは分散型のコンピューティング環境内で実行することができる。
提示のために、詳細な説明では、「決定」、「生成」、「調整」、および「適用」などの用語を使用して、コンピューティング環境におけるコンピュータの動作を説明する。これらの用語はコンピュータによって実行される動作に関する高水準抽象概念であり、人間が実行する動作と混同されるべきではない。これらの用語に対応する実際のコンピュータ動作は、実施に応じて変化する。
本明細書で説明される主題の多くの可能な変形において、発明者等は、こうしたすべての実施形態が添付の特許請求の範囲およびその等価物の範囲内にあるものとして、本発明を主張する。
従来技術における、従来のブロック変換ベースのコーデックを示すブロック図である。 ワイドダイナミックレンジを有する変換係数の分布を示すヒストグラムである。 ナローレンジ係数の分布を示すヒストグラムである。 ワイドレンジ係数の適応コーディングを組み込んだ代表的なエンコーダを示す流れ図である。 適応的にコーディングされたワイドレンジ係数のデコーディングを組み込んだ代表的なデコーダを示す流れ図である。 図4のエンコーダの場合などの、ワイドレンジ係数の適応コーディングにおける変換係数のグループ化およびレイヤ化を示す流れ図である。 ビン内での変換係数の選択されたグループ化のために変換係数をエンコードするための、図4のエンコーダによるプロセスを示す流れ図である。 図7のプロセスを介してエンコードされた変換係数を再構築するための、図5のデコーダによるプロセスを示す流れ図である。 係数のエントロピコーディングに関するより最適な分布を生成するための、図6におけるグループ化を適応的に変更するための適合プロセスを示す流れ図である。 図9の適合プロセスの擬似コードを列挙した図である。 図9の適合プロセスの擬似コードを列挙した図である。 従来技術におけるエンコードされた変換係数の例を示す図である。 本明細書に記載のエンコーディング技法に従ってエンコードされた、変換係数の一例を示す図である。 変換係数をエンコードするための図4のエンコーダによるプロセスを示す流れ図である。 本明細書に記載の技法に従って変換係数をエンコードするために使用される、様々なコードテーブルコンテキストの例を示す流れ図である。 変換係数をエンコードする際に使用されることになるコーディングコンテキストを決定するための、図4のエンコーダによるプロセスを示す流れ図である。 本明細書に記載された技法に従ってエンコードされる変換係数を減少させる例を示す図である。 初めの変換係数を減少した形でエンコードおよび送信するための、図4のエンコーダによるプロセスを示す流れ図である。 後続の係数を減少した形でエンコードおよび送信するための、図4のエンコーダによるプロセスを示す流れ図である。 エンコードされた変換係数をデコードするための、図5のデコーダによるプロセスを示す流れ図である。 デコードされたシンボルから変換係数を読み込むための、図5のデコーダによるプロセスを示す流れ図である。 図6のワイドレンジ係数の適応コーディングを実施するために好適なコンピューティング環境を示すブロック図である。

Claims (24)

  1. デジタルイメージまたはビデオデータを表すブロックの変換係数の数列をエンコードする方法であって、
    前記変換係数の数列をシンボルの数列として表すステップであって、前記シンボルの数列の所与のシンボルは、(a)前記変換係数の数列内の非ゼロ値係数のレベルの表示を提供する第1のデータと、(b)前記非ゼロ値係数が前記ブロックの最後の非ゼロ値係数である場合、前記非ゼロ値係数が前記ブロックの最後の非ゼロ値係数であることを示す表示を提供し、前記非ゼロ値係数が前記ブロックの最後の非ゼロ値係数でない場合、前記非ゼロ値係数が前記ブロックの最後の非ゼロ値係数であることを示す表示の代わりに、前記非ゼロ値係数の後続のゼロ値係数のランの長さの表示を提供する第2のデータとを含むステップと、
    前記シンボルの数列内の各シンボルについて、前記シンボルをエンコードするステップと
    を含むことを特徴とする方法。
  2. 前記所与のシンボルは、前記シンボルの数列内の最初のシンボルである場合に、前記変換係数の数列内の最初の非ゼロ値係数に先行するゼロ値係数のランの長さの表示を提供する第3のデータをさらに備えることを特徴とする請求項1に記載の方法。
  3. 前記変換係数の数列は、広域変換係数の数列の正規化部分を決定した結果として生じることを特徴とする請求項2に記載の方法。
  4. 前記シンボルの数列内の前記最初のシンボルをコーディングするために1つのコードテーブルセットが使用され、前記シンボルの数列内の他のシンボルをコーディングするために異なるコードテーブルセットが使用されることを特徴とする請求項2に記載の方法。
  5. 前記シンボルの数列内の前記所与のシンボルは、関連付けられたコンテキストを有することを特徴とする請求項1に記載の方法。
  6. シンボルに関する前記コンテキストは、前記シンボルによって表される非ゼロ値係数が前記係数の数列内の最初のゼロ値係数の前または後ろのいずれで発生するかということに、少なくとも部分的に基づくことを特徴とする請求項5に記載の方法。
  7. シンボルに関する前記コンテキストは、前記変換係数の数列が輝度チャネルまたはクロミナンスチャネルのいずれに関するものであるかということに、少なくとも部分的に基づくことを特徴とする請求項5に記載の方法。
  8. シンボルに関する前記コンテキストは、前記変換係数の数列が内部変換、中間変換、または外部変換のいずれに関するものであるかということに、少なくとも部分的に基づくことを特徴とする請求項5に記載の方法。
  9. 前記後続のゼロ値係数のランの長さの表示は、
    前記後続のゼロ値係数のランが長さゼロであること、または、
    前記後続のゼロ値係数のランが正の長さであること、
    を示すことを特徴とする請求項2に記載の方法。
  10. 前記所与のシンボルは、前記シンボルの数列内の最初のシンボルであり、(c)前記最初の非ゼロ値係数に先行するゼロ値係数のランが、長さゼロであるかまたは正の長さであるか否かを示すブール値をさらに含むことを特徴とする請求項9に記載の方法。
  11. 前記所与のシンボルが、前記後続のゼロ値係数のランが正の長さであることを示す場合、前記後続のゼロ値係数のランの長さを、前記圧縮ビットストリーム内でエンコードするために送信するステップをさらに含むことを特徴とする請求項9に記載の方法。
  12. 前記所与のシンボルに関して、前記変換係数の数列内の前記非ゼロ値係数の表示が、前記非ゼロ値係数の絶対値が1より大きいか否かを示すブール値を備えることを特徴とする請求項1に記載の方法。
  13. 前記非ゼロ値係数が1より大きい絶対値を有する場合、前記非ゼロ値係数の絶対値を、前記圧縮ビットストリーム内でエンコードするために送信するステップをさらに含むことを特徴とする請求項12に記載の方法。
  14. デジタルイメージまたはビデオデコーダであって、
    エンコード済みデジタルイメージまたはビデオデータを格納するためのデータストレージバッファと、
    プロセッサであって、
    変換係数の数列を記述する圧縮シンボルのセットを受け取ること、
    前記シンボルを圧縮解除すること、および
    前記圧縮解除されたシンボルのセットを分析することによって、前記変換係数の数列を再構築すること
    を実行するように構成されたプロセッサと
    を備え、
    前記圧縮シンボルのセットは、それぞれがコンテキストモデルに従って、コードテーブルのセットからエンコードされたシンボルを備え、
    前記シンボルの所与のシンボルは、(a)前記変換係数の数列内の非ゼロレベルと、(b)前記非ゼロレベルが前記数列内の最後の非ゼロ変換係数である場合、前記非ゼロレベルが前記数列内の最後の非ゼロ変換係数であること、および、そうでない場合、次の非ゼロ係数に先行するゼロ値係数の数を記述し、
    前記所与のシンボルは、前記圧縮シンボルのセット内の最初のシンボルである場合に、前記変換係数の数列内に前記非ゼロレベルに先行するゼロ値係数が存在するかどうかをさらに記述することを特徴とするデジタルイメージまたはビデオデコーダ。
  15. 前記所与のシンボルは、前記非ゼロレベルの絶対値が1より大きいかどうかを示すことによって、非ゼロレベルを記述し、
    前記圧縮シンボルのセットは、絶対値が1より大きい各非ゼロレベルの前記値、およびレベル符号の表示を記述するレベルシンボルをさらに備え、
    さらに前記プロセッサは、絶対値が1より大きい非ゼロレベルを示すシンボルを分析する場合、前記非ゼロレベルの前記値を記述する前記レベルシンボルを見つけることを使用して、前記非ゼロレベルを再構築することを実行するように構成されることを特徴とする請求項14に記載のデジタルイメージまたはビデオデコーダ。
  16. 前記圧縮シンボルのセットは、長さがゼロより大きいゼロ値係数の各ランの前記長さを記述するランシンボルをさらに備えることを特徴とする請求項14に記載のデジタルイメージまたはビデオデコーダ。
  17. 圧縮デジタルイメージまたはビデオデータをデコードする方法をコンピュータに実行させるためのデコーディングプログラムを記憶したコンピュータ読み取り可能記憶媒体であって、前記方法は、
    コンテキストモデルに従ってコードテーブルのセットからそれぞれがエンコードされた、圧縮済みのシンボルを備えるビットストリームを受け取るステップであって、前記ビットストリームは、前記シンボルの初めのシンボルを含むステップと、
    前記シンボルをデコードするステップであって、前記初めのシンボルをデコードして、最初の変換係数ゼロのランの表示を提供する第1のデータ、非ゼロ変換係数レベルの表示を提供する第2のデータ、および、前記非ゼロ変換係数レベルが最後の非ゼロ変換係数レベルである場合、前記非ゼロ変換係数レベルが最後の非ゼロ変換係数レベルであることを示す表示を提供し、そうでない場合、前記非ゼロ変換係数レベルが前記最後の非ゼロ変換係数レベルであることを示す表示の代わりに、後続の変換係数ゼロのランの表示を提供する第3のデータを決定するステップと、
    デコードされたレベルおよび変換係数ゼロのランから、変換係数のセットを再構築するステップと
    を含むことを特徴とするコンピュータ読み取り可能記憶媒体。
  18. 前記初めのシンボルは、イメージまたはビデオフレーム内のブロックに関するものであり、前記最初の変換係数ゼロのランを決定するためにデコードされる前記ブロックの唯一のシンボルであることを特徴とする請求項17に記載のコンピュータ読み取り可能記憶媒体。
  19. 前記第2のデータは、前記非ゼロ変換係数レベルに関して、そのレベルが1より大きい絶対値を有するかどうかを示し、
    前記第1のデータは、前記最初の変換係数ゼロのランに関して、そのランが0より大きい長さを有するかどうかを示し、
    前記非ゼロ変換係数レベルは前記最後の非ゼロ変換係数レベルではなく、前記第3のデータは、前記後続の変換係数ゼロのランに関して、そのランが0より大きい長さを有するかどうかを示し、
    前記ビットストリームは、前記変換係数ゼロのランの非ゼロの長さと、前記非ゼロ変換係数レベルの符号および大きさとを記述する、圧縮シンボルをさらに備え、
    前記シンボルをデコードするステップは、
    その変換係数レベルが1より大きい絶対値を有することを示すシンボルをデコードする場合、前記変換係数レベルの前記符号および値を示す前記ビットストリーム内の1つまたは複数のシンボルをデコードすることによって、前記変換係数レベルを決定するステップと、
    変換係数ゼロのランが0より大きいことを示すシンボルをデコードする場合、前記ランの長さを示す前記ビットストリーム内のシンボルをデコードすることによって、前記変換係数ゼロのランの前記長さを決定するステップと
    を備えることを特徴とする請求項17に記載のコンピュータ読み取り可能記憶媒体。
  20. 前記第2のデータは、前記非ゼロ変換変換係数レベルに関して、そのレベルが1より大きい絶対値を有するかどうかを示すことを特徴とする請求項17に記載のコンピュータ読み取り可能記憶媒体。
  21. 圧縮デジタルイメージまたはビデオデータをデコードする方法であって、
    コンテキストモデルに従ってコードテーブルのセットからそれぞれがエンコードされた、圧縮済みのシンボルを備えるビットストリームを受け取るステップであって、前記ビットストリームは、前記シンボルからの初めのシンボルを含むステップと、
    前記シンボルをデコードするステップであって、前記初めのシンボルをデコードして、最初の変換係数ゼロのランの表示を提供する第1のデータ、非ゼロ変換係数レベルの表示を提供する第2のデータ、および、前記非ゼロ変換係数レベルが最後の非ゼロ変換係数レベルである場合、前記非ゼロ変換係数レベルが最後の非ゼロ変換係数レベルであることを示す表示を提供し、そうでない場合、前記非ゼロ変換係数が前記最後の非ゼロ変換係数レベルであることを示す表示の代わりに、後続の変換係数ゼロのランの表示を提供する第3のデータを決定するステップと、
    デコードされたレベルおよび変換係数ゼロのランから、変換係数のセットを再構築するステップと
    を含むことを特徴とする方法。
  22. 前記初めのシンボルは、イメージまたはビデオフレーム内のブロックに関するものであり、初めの変換係数ゼロのランを決定するためにデコードされる前記ブロックの唯一のシンボルであることを特徴とする請求項21に記載の方法。
  23. 前記第2のデータは、前記非ゼロ変換係数レベルに関して、そのレベルが1より大きい絶対値を有するかどうかを示し、
    前記第1のデータは、前記初めの変換係数ゼロのランに関して、そのランが0より大きい長さを有するかどうかを示し、
    前記非ゼロ変換係数レベルは、前記最後の非ゼロ変換係数レベルではなく、前記第3のデータは、前記後続の変換係数ゼロのランに関して、そのランが0より大きい長さを有するかどうかを示し、
    前記ビットストリームは、前記変換係数ゼロのランの非ゼロの長さと、前記非ゼロ変換係数レベルの符号および大きさとを記述する、圧縮シンボルをさらに備え、
    前記シンボルをデコードするステップは、
    その変換係数レベルが1より大きい絶対値を有することを示すシンボルをデコードする場合、前記変換係数レベルの前記符号および値を示す前記ビットストリーム内の1つまたは複数のシンボルをデコードすることによって、前記変換係数レベルを決定するステップと、
    変換係数ゼロのランが0より大きいことを示すシンボルをデコードする場合、前記ランの長さを示す前記ビットストリーム内のシンボルをデコードすることによって、前記変換係数ゼロのランの前記長さを決定するステップと
    を備えることを特徴とする請求項21に記載の方法。
  24. 前記第2のデータは、前記非ゼロ変換変換係数レベルに関して、そのレベルが1より大きい絶対値を有するかどうかを示すことを特徴とする請求項21に記載の方法。
JP2008526079A 2005-08-12 2006-08-03 変換ブロックの効率的なコーディングおよびデコーディング Active JP4906855B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/203,008 2005-08-12
US11/203,008 US8599925B2 (en) 2005-08-12 2005-08-12 Efficient coding and decoding of transform blocks
PCT/US2006/030308 WO2007021568A2 (en) 2005-08-12 2006-08-03 Efficient coding and decoding of transform blocks

Publications (2)

Publication Number Publication Date
JP2009505494A JP2009505494A (ja) 2009-02-05
JP4906855B2 true JP4906855B2 (ja) 2012-03-28

Family

ID=37742496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008526079A Active JP4906855B2 (ja) 2005-08-12 2006-08-03 変換ブロックの効率的なコーディングおよびデコーディング

Country Status (18)

Country Link
US (1) US8599925B2 (ja)
EP (1) EP1913698B1 (ja)
JP (1) JP4906855B2 (ja)
KR (1) KR101176691B1 (ja)
CN (1) CN101243611B (ja)
AU (1) AU2006280226B2 (ja)
BR (1) BRPI0614759A2 (ja)
CA (1) CA2618788C (ja)
EG (1) EG25353A (ja)
IL (1) IL189126A (ja)
MX (1) MX2008001856A (ja)
MY (1) MY145748A (ja)
NO (1) NO20080535L (ja)
NZ (1) NZ565672A (ja)
RU (1) RU2417518C2 (ja)
TW (1) TWI431948B (ja)
WO (1) WO2007021568A2 (ja)
ZA (1) ZA200801177B (ja)

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060045218A1 (en) * 2004-09-02 2006-03-02 Erik Ordentlich Discrete denoising using blended counts
US8189722B2 (en) * 2004-09-02 2012-05-29 Hewlett-Packard Development Company, L.P. Discrete denoising using blended counts
US7565491B2 (en) * 2005-08-04 2009-07-21 Saffron Technology, Inc. Associative matrix methods, systems and computer program products using bit plane representations of selected segments
JP2008135092A (ja) * 2006-11-27 2008-06-12 Showa Denko Kk 磁気記録媒体の製造方法、及び磁気記録再生装置
US8411734B2 (en) 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
KR101375662B1 (ko) * 2007-08-06 2014-03-18 삼성전자주식회사 이미지 데이터 압축 방법 및 장치
US7965900B2 (en) * 2007-09-26 2011-06-21 Hewlett-Packard Development Company, L.P. Processing an input image to reduce compression-related artifacts
US8139880B2 (en) * 2008-03-24 2012-03-20 Microsoft Corporation Lifting-based directional lapped transforms
TWI349487B (en) * 2008-03-25 2011-09-21 Novatek Microelectronics Corp Entropy encoding circuit and encoding method thereof
JP5177400B2 (ja) * 2008-04-24 2013-04-03 株式会社メガチップス エンコーダ
TWI376959B (en) * 2008-05-02 2012-11-11 Novatek Microelectronics Corp Entropy decoding circuit, entropy decoding method, and entropy decoding method using a pipeline manner
JP5061330B2 (ja) * 2008-05-12 2012-10-31 株式会社メガチップス 画像処理装置
PT3300076T (pt) * 2008-07-11 2019-07-17 Fraunhofer Ges Forschung Codificador de áudio e descodificador de áudio
WO2010007585A2 (en) * 2008-07-16 2010-01-21 Nxp B.V. Low power image compression
KR101485339B1 (ko) * 2008-09-29 2015-01-26 삼성전자주식회사 무손실 부호화/복호화 장치 및 방법
US8855213B2 (en) * 2009-03-26 2014-10-07 Apple Inc. Restore filter for restoring preprocessed video image
JP5529571B2 (ja) * 2010-02-08 2014-06-25 キヤノン株式会社 画像符号化装置及びその制御方法
US8638863B1 (en) 2010-05-18 2014-01-28 Google Inc. Apparatus and method for filtering video using extended edge-detection
PT3101901T (pt) 2010-07-09 2017-09-08 Samsung Electronics Co Ltd Métedo para coeficientes de transformação de descodificação de entropia
US10091529B2 (en) * 2010-07-09 2018-10-02 Samsung Electronics Co., Ltd. Method and apparatus for entropy encoding/decoding a transform coefficient
CN101938654B (zh) * 2010-08-17 2013-04-10 浙江大学 一种变换系数的优化量化方法及装置
CN103262534B (zh) 2010-10-14 2018-05-22 汤姆逊许可公司 改进熵编码和解码的方法及装置
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
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
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
US20120163448A1 (en) * 2010-12-22 2012-06-28 Qualcomm Incorporated Coding the position of a last significant coefficient of a video block in video coding
US9706214B2 (en) * 2010-12-24 2017-07-11 Microsoft Technology Licensing, Llc Image and video decoding implementations
US9490839B2 (en) 2011-01-03 2016-11-08 Qualcomm Incorporated Variable length coding of video block coefficients
US9210442B2 (en) 2011-01-12 2015-12-08 Google Technology Holdings LLC Efficient transform unit representation
US9380319B2 (en) 2011-02-04 2016-06-28 Google Technology Holdings LLC Implicit transform unit representation
US10499059B2 (en) 2011-03-08 2019-12-03 Velos Media, Llc Coding of transform coefficients for video coding
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
CN102685503B (zh) * 2011-03-10 2014-06-25 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US9491469B2 (en) 2011-06-28 2016-11-08 Qualcomm Incorporated Coding of last significant transform coefficient
US9516316B2 (en) 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
US9338456B2 (en) 2011-07-11 2016-05-10 Qualcomm Incorporated Coding syntax elements using VLC codewords
US8731067B2 (en) 2011-08-31 2014-05-20 Microsoft Corporation Memory management for video decoding
US9106927B2 (en) 2011-09-23 2015-08-11 Qualcomm Incorporated Video coding with subsets of a reference picture set
EP4171031A1 (en) * 2011-09-28 2023-04-26 Sun Patent Trust Image decoding apparatus, image encoding and decoding apparatus and computer-readable medium storing a bitstream
HUE031315T2 (en) 2011-10-31 2017-07-28 Samsung Electronics Co Ltd Method and apparatus for determining a context model for entropy coding and decoding at transformable interacting level
US9264717B2 (en) * 2011-10-31 2016-02-16 Qualcomm Incorporated Random access with advanced decoded picture buffer (DPB) management in video coding
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
HUE053382T2 (hu) * 2012-01-03 2021-06-28 Hfi Innovation Inc Eljárás és berendezés blokk alapú szignifikancia térképhez és szignifikancia csoport jelzõ kontextus kiválasztáshoz
US9621894B2 (en) 2012-01-13 2017-04-11 Qualcomm Incorporated Determining contexts for coding transform coefficient data in video coding
US9191670B2 (en) * 2012-01-17 2015-11-17 Qualcomm Incorporated Throughput improvement for CABAC coefficient level coding
EP2813078A4 (en) 2012-02-06 2015-09-30 Nokia Technologies Oy ENCODING METHOD AND APPARATUS
US9197888B2 (en) 2012-03-13 2015-11-24 Dolby Laboratories Licensing Corporation Overlapped rate control for video splicing applications
CN102752592B (zh) * 2012-06-20 2015-02-11 深圳广晟信源技术有限公司 视频变换系数的熵编码方法
US8724913B2 (en) * 2012-07-19 2014-05-13 Omnivision Technologies, Inc. Decoder and method for decoding run-length-encoded data
CN102843562B (zh) * 2012-08-21 2016-03-02 西北农林科技大学 一种分组容错熵编码的方法
US20150334389A1 (en) * 2012-09-06 2015-11-19 Sony Corporation Image processing device and image processing method
US9374583B2 (en) * 2012-09-20 2016-06-21 Qualcomm Incorporated Video coding with improved random access point picture behaviors
CN108259901B (zh) * 2013-01-16 2020-09-15 黑莓有限公司 用于对游长编码变换系数进行熵编码的上下文确定
US9219915B1 (en) 2013-01-17 2015-12-22 Google Inc. Selection of transform size in video coding
US9967559B1 (en) 2013-02-11 2018-05-08 Google Llc Motion vector dependent spatial transformation in video coding
US9544597B1 (en) 2013-02-11 2017-01-10 Google Inc. Hybrid transform in video encoding and decoding
CN104104958B (zh) * 2013-04-08 2017-08-25 联发科技(新加坡)私人有限公司 图像解码方法及其图像解码装置
US9674530B1 (en) 2013-04-30 2017-06-06 Google Inc. Hybrid transforms in video coding
US10021419B2 (en) * 2013-07-12 2018-07-10 Qualcomm Incorported Rice parameter initialization for coefficient level coding in video coding process
GB2523348B (en) * 2014-02-20 2016-03-30 Gurulogic Microsystems Oy Encoder, decoder and method
US20150264404A1 (en) * 2014-03-17 2015-09-17 Nokia Technologies Oy Method and apparatus for video coding and decoding
RU2557449C1 (ru) * 2014-04-07 2015-07-20 Федеральное государственное казенное военное образовательное учреждение высшего профессионального образования "Военная академия связи имени Маршала Советского Союза С.М. Буденного" Министерства Обороны Российской Федерации (Минобороны России) Способ кодирования и декодирования видеоинформации на основе трехмерного дискретного косинусного преобразования
GB2527588B (en) 2014-06-27 2016-05-18 Gurulogic Microsystems Oy Encoder and decoder
GB2531005A (en) 2014-10-06 2016-04-13 Canon Kk Improved encoding process using a palette mode
US9565451B1 (en) 2014-10-31 2017-02-07 Google Inc. Prediction dependent transform coding
US9769499B2 (en) 2015-08-11 2017-09-19 Google Inc. Super-transform video coding
US10277905B2 (en) 2015-09-14 2019-04-30 Google Llc Transform selection for non-baseband signal coding
GB2542858A (en) * 2015-10-02 2017-04-05 Canon Kk Encoder optimizations for palette encoding of content with subsampled colour component
US9807423B1 (en) 2015-11-24 2017-10-31 Google Inc. Hybrid transform scheme for video coding
US9712830B1 (en) * 2016-09-15 2017-07-18 Dropbox, Inc. Techniques for image recompression
CN106683036A (zh) * 2016-12-12 2017-05-17 中国航空工业集团公司西安航空计算技术研究所 一种面向gpu高效绘制的帧缓冲区存储编码方法
US10728578B2 (en) 2017-03-06 2020-07-28 Sony Corporation Bias minimization for successive image reconstruction based on embedded codec circuitry
US10298895B1 (en) * 2018-02-15 2019-05-21 Wipro Limited Method and system for performing context-based transformation of a video
US10860399B2 (en) 2018-03-15 2020-12-08 Samsung Display Co., Ltd. Permutation based stress profile compression
US10803791B2 (en) 2018-10-31 2020-10-13 Samsung Display Co., Ltd. Burrows-wheeler based stress profile compression
US11122297B2 (en) 2019-05-03 2021-09-14 Google Llc Using border-aligned block functions for image compression
US11308873B2 (en) 2019-05-23 2022-04-19 Samsung Display Co., Ltd. Redundancy assisted noise control for accumulated iterative compression error
CN114342393A (zh) 2019-07-12 2022-04-12 Lg 电子株式会社 基于变换的图像编译方法及其设备
US11245931B2 (en) 2019-09-11 2022-02-08 Samsung Display Co., Ltd. System and method for RGBG conversion
KR20210031296A (ko) 2019-09-11 2021-03-19 삼성전자주식회사 전자 장치 및 그 제어 방법
TWI709892B (zh) * 2019-11-07 2020-11-11 大陸商北京集創北方科技股份有限公司 高速傳輸觸控資訊的方法及利用其之觸控系統和電子裝置
CN114697655B (zh) * 2020-12-30 2023-04-11 中国科学院计算技术研究所 均衡流间压缩速度的神经网络量化压缩方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0879091A (ja) * 1994-08-31 1996-03-22 Mitsubishi Electric Corp 可変長符号テーブルおよび可変長符号化装置
JP2000506715A (ja) * 1996-12-20 2000-05-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Mpeg―2ビデオデータ用二重速度可変長デコーダおよび復号化アーキテクチャ
JP2002246914A (ja) * 2001-02-15 2002-08-30 Nippon Telegr & Teleph Corp <Ntt> 符号変換装置と符号変換方法および符号変換プログラムを記録した記録媒体と符号変換プログラム
JP2004364340A (ja) * 1995-04-14 2004-12-24 Toshiba Corp 可変長符号化方法及び装置

Family Cites Families (120)

* 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
US4684923A (en) * 1984-09-17 1987-08-04 Nec Corporation Encoder with selective indication of compression encoding and decoder therefor
DE3750206C5 (de) * 1986-09-13 2019-11-14 Philips Gmbh Verfahren und Schaltungsanordung zur Bitratenreduktion.
US4698672A (en) * 1986-10-27 1987-10-06 Compression Labs, Inc. Coding system for reducing redundancy
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
US4813056A (en) 1987-12-08 1989-03-14 General Electric Company Modified statistical coding of digital signals
US5043919A (en) 1988-12-19 1991-08-27 International Business Machines Corporation Method of and system for updating a display unit
DE3912605B4 (de) 1989-04-17 2008-09-04 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
JPH0832039B2 (ja) 1989-08-19 1996-03-27 日本ビクター株式会社 可変長符号化方法及びその装置
US5040217A (en) 1989-10-18 1991-08-13 At&T Bell Laboratories Perceptual coding of audio signals
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次元符号器
US5266941A (en) 1991-02-15 1993-11-30 Silicon Graphics, Inc. Apparatus and method for controlling storage of display information in a computer system
HU213592B (en) 1991-03-29 1997-08-28 Sony Corp Coding methods for digital audio signals
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
DE69228983T2 (de) 1991-12-18 1999-10-28 Koninkl Philips Electronics Nv System zum Übertragen und/oder Speichern von Signalen von texturierten Bildern
US5227788A (en) 1992-03-02 1993-07-13 At&T Bell Laboratories Method and apparatus for two-component signal compression
NO175080B (no) * 1992-03-11 1994-05-16 Teledirektoratets Forskningsav Fremgangsmåte for koding av bildedata
KR950010913B1 (ko) 1992-07-23 1995-09-25 삼성전자주식회사 가변장부호화 및 복호화시스템
JP3348310B2 (ja) * 1992-09-28 2002-11-20 ソニー株式会社 動画像符号化方法および動画像符号化装置
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 윤종용 부호화 및 복호화방법 및 그 장치
US5467134A (en) 1992-12-22 1995-11-14 Microsoft Corporation Method and system for compressing video data
US5400075A (en) 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
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
KR100458969B1 (ko) 1993-05-31 2005-04-06 소니 가부시끼 가이샤 신호부호화또는복호화장치,및신호부호화또는복호화방법
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
JP3237089B2 (ja) 1994-07-28 2001-12-10 株式会社日立製作所 音響信号符号化復号方法
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 沖電気工業株式会社 動画像符号化方法及び動画像復号方法
JP3390013B2 (ja) 1994-11-04 2003-03-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 広帯域デジタル情報信号の符号化及び復号化
KR0141875B1 (ko) 1994-11-30 1998-06-15 배순훈 줄길이복호화기
KR100254402B1 (ko) 1994-12-19 2000-05-01 전주범 줄-길이 부호화방법 및 줄-길이 부호화기
US5574449A (en) 1995-02-24 1996-11-12 Intel Corporation Signal processing with hybrid variable-length and entropy encodidng
US6104754A (en) 1995-03-15 2000-08-15 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system
US5991451A (en) 1995-03-23 1999-11-23 Intel Corporation Variable-length encoding using code swapping
KR100209410B1 (ko) 1995-03-28 1999-07-15 전주범 영상 신호 부호화 장치
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
US5959673A (en) 1995-10-05 1999-09-28 Microsoft Corporation Transform coding of dense motion vector fields for frame and object based video coding applications
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
US6957350B1 (en) 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US5682152A (en) 1996-03-19 1997-10-28 Johnson-Grace Company Data compression using adaptive bit allocation and hybrid lossless entropy encoding
US6215910B1 (en) 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
KR100403077B1 (ko) 1996-05-28 2003-10-30 마쯔시다덴기산교 가부시키가이샤 화상예측 복호화 장치 및 그 방법과 화상예측 부호화 장치 및 그 방법
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
DE19628293C1 (de) 1996-07-12 1997-12-11 Fraunhofer Ges Forschung Codieren und Decodieren von Audiosignalen unter Verwendung von Intensity-Stereo und Prädiktion
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
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
CN1136733C (zh) 1996-11-06 2004-01-28 松下电器产业株式会社 图象解码方法
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.
US6272175B1 (en) 1997-02-13 2001-08-07 Conexant Systems, Inc. Video signal coding systems and processes using adaptive quantization
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
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
SE512719C2 (sv) 1997-06-10 2000-05-02 Lars Gustaf Liljeryd En metod och anordning för reduktion av dataflöde baserad på harmonisk bandbreddsexpansion
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
US6493385B1 (en) 1997-10-23 2002-12-10 Mitsubishi Denki Kabushiki Kaisha Image encoding method, image encoder, image decoding method, and image decoder
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
JP3097665B2 (ja) 1998-06-19 2000-10-10 日本電気株式会社 異常検出機能を備えたタイムラプスレコーダ
US6253165B1 (en) 1998-06-30 2001-06-26 Microsoft Corporation System and method for modeling probability distribution functions of transform coefficients of encoded signal
US6704705B1 (en) 1998-09-04 2004-03-09 Nortel Networks Limited Perceptual audio coding
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
EP1119108A4 (en) 1998-10-06 2002-03-06 Matsushita Electric Ind Co Ltd LOSSLESS COMPRESSION CODING METHOD AND DEVICE, AND LOSSLESS COMPRESSION DECODING METHOD AND DEVICE
US6404931B1 (en) 1998-12-14 2002-06-11 Microsoft Corporation Code book construction for variable to variable length entropy encoding
US6377930B1 (en) 1998-12-14 2002-04-23 Microsoft Corporation 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
US6223162B1 (en) 1998-12-14 2001-04-24 Microsoft Corporation Multi-level run length coding for frequency-domain audio coding
JP3580777B2 (ja) 1998-12-28 2004-10-27 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン オーディオ信号又はビットストリームの符号化又は復号化のための方法及び装置
US6100825A (en) 1998-12-31 2000-08-08 Microsoft Corporation Cluster-based data compression system and method
US6477280B1 (en) 1999-03-26 2002-11-05 Microsoft Corporation Lossless adaptive encoding of finite alphabet data
US6678419B1 (en) 1999-03-26 2004-01-13 Microsoft Corporation Reordering wavelet coefficients for improved encoding
US6573915B1 (en) 1999-12-08 2003-06-03 International Business Machines Corporation Efficient capture of computer screens
US6499010B1 (en) 2000-01-04 2002-12-24 Agere Systems Inc. Perceptual audio coder bit allocation scheme providing improved perceptual quality consistency
US6542863B1 (en) 2000-06-14 2003-04-01 Intervideo, Inc. Fast codebook search method for MPEG audio encoding
EP1199812A1 (en) 2000-10-20 2002-04-24 Telefonaktiebolaget Lm Ericsson Perceptually improved encoding of acoustic signals
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
US6757439B2 (en) 2000-12-15 2004-06-29 International Business Machines Corporation JPEG packed block structure
US6968091B2 (en) 2001-09-18 2005-11-22 Emc Corporation Insertion of noise for reduction in the number of bits for variable-length coding of (run, level) pairs
KR101022091B1 (ko) * 2001-11-22 2011-03-17 파나소닉 주식회사 부호화 방법 및 부호화 장치
US6825847B1 (en) 2001-11-30 2004-11-30 Nvidia Corporation System and method for real-time compression of pixel colors
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US20050041874A1 (en) 2002-01-22 2005-02-24 Langelaar Gerrit Cornelis Reducing bit rate of already compressed multimedia
US6690307B2 (en) 2002-01-22 2004-02-10 Nokia Corporation Adaptive variable length coding of digital video
US6947886B2 (en) 2002-02-21 2005-09-20 The Regents Of The University Of California Scalable compression of audio and other signals
US7099387B2 (en) 2002-03-22 2006-08-29 Realnetorks, Inc. Context-adaptive VLC video transform coefficients encoding/decoding methods and apparatuses
US7302387B2 (en) 2002-06-04 2007-11-27 Texas Instruments Incorporated Modification of fixed codebook search in G.729 Annex E audio coding
US7016547B1 (en) 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
US7328150B2 (en) 2002-09-04 2008-02-05 Microsoft Corporation Innovations in pure lossless audio compression
US7502743B2 (en) 2002-09-04 2009-03-10 Microsoft Corporation Multi-channel audio encoding and decoding with multi-channel transform selection
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
US20040136457A1 (en) 2002-10-23 2004-07-15 John Funnell 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
JP3870171B2 (ja) * 2003-03-11 2007-01-17 キヤノン株式会社 符号化方法及び符号化装置、コンピュータプログラム並びにコンピュータ可読記憶媒体
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 中国科学院计算技术研究所 用于视频预测残差系数编码的熵编码方法
US7132963B2 (en) * 2004-09-13 2006-11-07 Ati Technologies Inc. Methods and apparatus for processing variable length coded data
US7831434B2 (en) 2006-01-20 2010-11-09 Microsoft Corporation Complex-transform channel coding with extended-band frequency coding
US8190425B2 (en) 2006-01-20 2012-05-29 Microsoft Corporation Complex cross-correlation parameters for multi-channel audio
US8278779B2 (en) 2011-02-07 2012-10-02 General Electric Company System and method for providing redundant power to a device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0879091A (ja) * 1994-08-31 1996-03-22 Mitsubishi Electric Corp 可変長符号テーブルおよび可変長符号化装置
JP2004364340A (ja) * 1995-04-14 2004-12-24 Toshiba Corp 可変長符号化方法及び装置
JP2000506715A (ja) * 1996-12-20 2000-05-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Mpeg―2ビデオデータ用二重速度可変長デコーダおよび復号化アーキテクチャ
JP2002246914A (ja) * 2001-02-15 2002-08-30 Nippon Telegr & Teleph Corp <Ntt> 符号変換装置と符号変換方法および符号変換プログラムを記録した記録媒体と符号変換プログラム

Also Published As

Publication number Publication date
BRPI0614759A2 (pt) 2011-04-12
RU2417518C2 (ru) 2011-04-27
IL189126A0 (en) 2008-08-07
US20070036223A1 (en) 2007-02-15
WO2007021568A2 (en) 2007-02-22
JP2009505494A (ja) 2009-02-05
NZ565672A (en) 2011-07-29
US8599925B2 (en) 2013-12-03
NO20080535L (no) 2008-05-09
ZA200801177B (en) 2010-08-25
EP1913698A2 (en) 2008-04-23
CN101243611A (zh) 2008-08-13
WO2007021568A3 (en) 2008-01-03
EP1913698B1 (en) 2018-03-14
EG25353A (en) 2011-12-18
AU2006280226B2 (en) 2011-03-17
CA2618788A1 (en) 2007-02-22
MX2008001856A (es) 2008-04-14
KR20080042809A (ko) 2008-05-15
TWI431948B (zh) 2014-03-21
AU2006280226A1 (en) 2007-02-22
CN101243611B (zh) 2012-12-05
EP1913698A4 (en) 2011-12-21
TW200711324A (en) 2007-03-16
KR101176691B1 (ko) 2012-08-23
MY145748A (en) 2012-03-30
IL189126A (en) 2015-03-31
RU2008105046A (ru) 2009-08-20
CA2618788C (en) 2014-07-15

Similar Documents

Publication Publication Date Title
JP4906855B2 (ja) 変換ブロックの効率的なコーディングおよびデコーディング
AU2006280181B2 (en) Adaptive coding and decoding of wide-range coefficients
JP4800571B2 (ja) 損失の無い方法でディジタル画像を符号化するための装置および方法
EP1980022B1 (en) Variable length coding for sparse coefficients
US9077960B2 (en) Non-zero coefficient block pattern coding
US7499595B2 (en) Joint amplitude and position coding for photographic image and video coding
WO2007056657A2 (en) Extended amplitude coding for clustered transform coefficients
US7499596B2 (en) Amplitude coding for clustered transform coefficients
JP2006502604A (ja) 任意形状オブジェクトの画像圧縮方法
KR100733949B1 (ko) 유한 알파벳 데이터의 비손실 적응 인코딩
KR100561392B1 (ko) 고속 역 이산 여현 변환 방법 및 장치
JPH08275153A (ja) 画像圧縮装置および画像復元装置
WO1998054841A1 (en) Data compressing device by permutation encoding and decompressing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101119

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110218

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110225

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110419

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110610

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110908

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110915

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111011

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111018

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111110

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111206

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120110

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4906855

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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