JP2009177802A - バタフライプロセッサを使用して離散コサイン変換をエンコードしそして計算するための装置及び方法 - Google Patents

バタフライプロセッサを使用して離散コサイン変換をエンコードしそして計算するための装置及び方法 Download PDF

Info

Publication number
JP2009177802A
JP2009177802A JP2008329261A JP2008329261A JP2009177802A JP 2009177802 A JP2009177802 A JP 2009177802A JP 2008329261 A JP2008329261 A JP 2008329261A JP 2008329261 A JP2008329261 A JP 2008329261A JP 2009177802 A JP2009177802 A JP 2009177802A
Authority
JP
Japan
Prior art keywords
data
processed
register
butterfly processor
block
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.)
Granted
Application number
JP2008329261A
Other languages
English (en)
Other versions
JP5507077B2 (ja
JP2009177802A5 (ja
Inventor
Judith Larocca
ジュディス・ラロッカ
Chris A Irvine
クリス・エイ・アービン
Jeffrey A Levin
ジェフリー・エイ・レビン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2009177802A publication Critical patent/JP2009177802A/ja
Publication of JP2009177802A5 publication Critical patent/JP2009177802A5/ja
Application granted granted Critical
Publication of JP5507077B2 publication Critical patent/JP5507077B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Discrete Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Complex Calculations (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)

Abstract

【課題】効率的なDCT演算回路を提供する。
【解決手段】入力レジスタは、所定の量のデータ要素を受信するように構成される。少なくとも1のバタフライプロセッサは、入力レジスタに接続され、処理されたデータ要素の出力を生成するために、データ要素の選択された対について少なくとも1の数学演算を実行するように構成される。少なくとも1の中間レジスタは、バタフライプロセッサに接続され、処理されたデータを一時的に記憶するように構成される。フィードバックループは、中間レジスタ及びバタフライプロセッサに接続され、そして、もしイネーブルであれば、追加の数学演算を実行するために適切なバタフライプロセッサに処理されたデータ要素の第1の部分を転送するように構成され、もしディスエーブルであれば、少なくとも1の保持レジスタに処理されたデータ要素の第2の部分を転送するように構成される。
【選択図】図3

Description

本出願は、米国特許出願番号No.60/291,467、2001年5月16日出願、に基づいて優先権を主張するものであり、それは全てここに引用されている。本発明は、デジタル信号処理に係わる。さらに詳しくは、本発明は、エンコードされたデータのブロックの変換を決定するための装置及び方法に係わる。
デジタル画像処理は、デジタル信号処理の一般的な学術分野において卓越した地位を有する。人間の視覚認識力の重要性は、デジタル画像処理の芸術及び科学において巨大な利益及び発展をもたらしている。フイルムや映画を映写するために使用されるような、ビデオ信号の送信及び受信の技術分野において、各種の改善が画像圧縮技術になされてきている。現在のビデオシステム及び提案されたビデオシステムの多くは、デジタルエンコーディング技術を使用する。この技術分野の態様は、画像コーディング、画像再生、及び画像特徴選択を含む。画像コーディングは、効率的な方法でデジタル通信チャネルの画像を送信するための試みを表わし、必要なバンド幅を最小化するために可能な限り少ないビットを使用する、一方で同時に、ある限度の中に歪を維持する。画像再生は、対象物の実際の画像を再現する取り組みを表わす。通信チャネルを通して送信されるコード化された画像は、各種の要因によって歪められているであろう。劣化の原因は、対象から画像を製作する時に最初に発生するであろう。特徴選択は、画像のある種の特性を選択することをいう。そのような特性は、幅広いコンテクストにおいて認識、分類、及び決定の際に必要とされるであろう。
デジタル映画におけるようなビデオのデジタルエンコーディングは、画像圧縮技術の改善から利益を受ける分野である。デジタル画像圧縮は、2つのカテゴリー、無損失(loss-less)及び損失のある(lossy)方法、に一般に分類される。無損失画像は、情報のいかなる損失なしに再現される。損失のある方法は、圧縮比、圧縮アルゴリズムの品質、及びそのアルゴリズムの実行に依存する、ある情報の再現できない損失を含む。一般に、損失のある圧縮アプローチが、コスト効率のよいデジタル映画のアプローチために望ましい圧縮比を得るために考慮される。デジタル映画の品質レベルを達成するために、圧縮アプローチは、視覚的に無損失の性能を提供すべきである。そのように、圧縮プロセスの結果、情報の数学的な損失があるとはいえ、この損失によって生ずる画像の歪は、通常に見られる状態では視聴者に気付かれないものでなければならない。
現存のデジタル画像圧縮技術は、他のアプリケーションに対して、即ち、テレビジョンシステムに、開発されてきている。そのような技術は、目的のアプリケ-ションに適したように妥協した設計をしており、映画上映に必要な品質要求を満足しない。
デジタル映画圧縮技術は、映画好きの人間が、これまでに見てきた視覚的品質を提供すべきである。理想的には、デジタル映画の視覚的品質は、高品質版のプリント・フイルムの品質を超えるようにすべきである。同時に、圧縮技術は、実際に用いられるようになるために高いコーディング効率を有すべきである。ここで決められたように、コーディング効率は、ある品質的なレベルを満足するために、圧縮された画像品質に必要なビットレートをいう。さらに、そのシステム及びコーディング技術は、異なったフォーマットに適応するために、組み込まれた順応性を持つべきであり、コスト効率的であるべきである。すなわち、小さなサイズにされそして効率的なデコーダプロセス又はエンコーダプロセスである。
品質の要求されたレベルを保ちながら、かなりのレベルの圧縮を提供できる1つの圧縮技術は、エンコードされた離散コサイン変換(DCT)係数データの適用できるサイズにされたブロック及びサブブロックを利用する。DCT技術は、デジタル圧縮方法として広く受け入れられようとしているが、効率的なハードウェアの実装は、困難であった。
本発明は、適応性のあるブロックサイズにされたDCTエンコードされたデータの効率的なハードウェアの実装を提供する。エンコードされたデータのブロックの変換を決定するための装置であり、エンコードされたデータのブロックは、複数のデータ要素を具備する。入力レジスタは、所定の量のデータ要素を受信するように構成される。少なくとも1のバタフライプロセッサは、入力レジスタに接続され、データ要素の選択された対について少なくとも1の数学演算を実行して処理されたデータ要素の出力を生成するように構成される。少なくとも1の中間レジスタは、バタフライプロセッサに接続され、処理されたデータを一時的に記憶するように構成される。フィードバックループは、中間レジスタ及びバタフライプロセッサに接続され、もしイネーブルであるならば、追加の数学演算を実行するために適切なバタフライプロセッサに処理されたデータ要素の第1の部分を送信するように構成される、及び、もしディスエーブルであるならば、少なくとも1の保持レジスタに処理されたデータ要素の第2の部分を送信するように構成される。
したがって、離散コサイン変換(DCT)及び離散カッドツリー変換(DQT)技術を効率的に実行するプロセッサを提供することが、一実施形態の1つの観点である。
逆離散コサイン変換(IDCT)及び逆離散カッドツリー変換(IDQT)技術を効率的に実行するプロセッサを提供することが、一実施形態の他の1つの観点である。
同一ハードウェア構成要素が、同一の変換トレリス(transform trellis)の中で異なった数学演算を計算するために再構成できる点で柔軟であるプロセッサを提供することが、一実施形態の他の1つの観点である。
画像歪を最小化しつつ、高品質画像を維持する画像プロセッサを提供することが、一実施形態の他の1つの観点である。
エンコードされたデータの部分毎に並列に処理することが、他の観点の一実施形態である。
単一のクロックサイクルの中で、読み出し、書き込み、及びバタフライ演算を処理することが、一実施形態の他の1つの観点である。
異なるブロックサイズのデータを制御すること及びリアルタイム処理のために必要なスピードを維持することの可変性を有する制御シーケンサを提供し、実装することが、一実施形態の他の1つの観点である。
プロセッサが可変ブロックサイズ上で動作するように設定可能であるように、プロセッサを実装することが、一実施形態の他の1つの観点である。
データのブロックのカラム処理のブロック図である。 データのブロックのロー処理のブロック図である。 エンコーディング処理を通るデータの流れを図示するブロック図である。 デコーディング処理を通るデータの流れを図示するフロー図である。 ブロックサイズ割り当てに基づく変動に含まれた処理ステップを図示するブロック図である。 本発明を組み込んでいる離散コサイン変換(DCT)及び離散カッドツリー変換(DQT)のような、変換を計算するための装置を図示するブロック図である。 図3の装置で実行されるDCTトレリスを示す。 図3の装置で実行されるIDCTトレリスを示す。 入力及び出力マルチプレクサを有する1つのバタフライプロセッサを示す。 書き込みマルチプレクサのブロック図を示す。 バタフライプロセッサのブロック図を示す。 図8のバタフライプロセッサにより実行される無演算構成を示す。 図8のバタフライプロセッサにより実行される累積演算構成を示す。 図8のバタフライプロセッサにより実行されるバタフライDCT演算構成を示す。 図8のバタフライプロセッサにより実行されるバタフライIDCT演算構成を示す。 図8のバタフライプロセッサにより実行される累積レジスタ演算構成を示す。 図8のバタフライプロセッサにより実行されるDCT/IDCT演算構成を示す。 本発明を組み込んでいる離散コサイン変換(DCT)及び離散量子化変換(DQT)のような、変換を計算するプロセスを示すフローチャートを示す。 具体例のブロックサイズ割り当てを示す。 図11Aのブロックサイズ割り当てに関する対応するカッドツリー分解を示す。 図11Aのブロックサイズ割り当てに関する対応するPQRデータを示す。
好ましい実施形態の詳細な説明
本発明の観点、特徴、目的、及び利点は、図面を使用して以下に述べる詳細な説明から、さらに明確になるであろう。図面では、一貫して対応するものは同じ参照符号で識別する。
デジタル信号のデジタル送信を容易にするため、そして付随する利益を享受するために、ある形式の信号圧縮を採用することが、一般に必要である。結果としての画像で高い鮮明度を達成するために、高品質の画像が維持されることも重要である。さらに、コンピュータ使用上の効率は、コンパクトなハードウェアの実装が好ましく、それは、多くのアプリケーションにおいて重要である。
したがって、フーリエ変換、ウェーブレット(wavelet)、及び離散コサイン変換(DCT)のような空間周波数ドメイン技術は、一般に上記の基準を満足する。DCTは、エネルギーパッキング能力を有し、そして信号のデコリレーティング(decorellating)において統計的に最適な変換をアプローチする。DCTの効率的な実施に関する種々のアルゴリズムの開発は、その主流の実用性にさらに寄与する。これらのアルゴリズム及びその帰納的な構造の減少と計算機使用上の複雑性は、より単純化されたハードウェアスキームに帰着する。DCTは、一般に直交し、分離可能である。DCTが直交するという事実は、信号のエネルギー、すなわち情報、が、変換の下で保存される、すなわち、DCTドメインにマッピングされる、ことを意味する。DCTが分離できるという事実は、多次元DCTが一連の1次元変換により実行できることを意味する。したがって、速いアルゴリズムは、1次元DCTに対して開発でき、そして多次元変換に直接拡張される。
DCTにおいて、ピクセルのブロックは、周波数ドメイン中の同じサイズの係数のブロックに変換される。本質的には、変換は、直交基準(orthogonal basis)画像の線形結合としてピクセルのブロックを表わす。係数の大きさは、ピクセルのブロック及び基準画像が同じである範囲を表わす。
一般に、デジタルドメインにおいてこれから処理される画像は、N×Nの大きさの重ならないブロックのアレイに分割されたピクセルデータで構成される。2次元DCTは、各ブロック上で実行される。2次元DCTは、次の関係式により定義される:
Figure 2009177802
x(m,n)は、N×Mブロック中でのピクセル位置(m,n)、及び
X(k,l)は、対応するDCT係数である。
ピクセルの値は負ではないので、DCT成分X(0,0)は、常に正であり、通常最大のエネルギーを有する。事実、代表的な画像に関して、変換エネルギーの大部分は、成分X(0,0)のまわりに集中する。このエネルギー圧縮特性は、DCT技術をそのように魅力的な圧縮方法にする。
大部分の自然の画像は、平面的で比較的ゆっくりと変化する領域及び対象物の境界や高コントラストの構造のような混み入った領域から成り立っている。コントラストに適応性のあるコーディングスキームは、混み入った領域に多くのビットを割り当て、混入ってない領域に少ないビットを割り当てることによってこの要因を利用する。この技術は、米国特許No.5,021,891、題名“順応性のあるブロックサイズ画像圧縮方法及びシステム”に開示されており、本発明の譲り受け人に譲渡されており、ここに引用例として含まれている。DCT技術も米国特許No.5,107,345、題名“順応性のあるブロックサイズ画像圧縮方法及びシステム”に開示されており、本発明の譲り受け人に譲渡されており、ここに引用例として含まれている。さらに、差分カッドツリー変換(Differential Quadtree Transform)技術と組み合わせてABSDCTの使用は、米国特許No.5,452,104、題名“順応性のあるブロックサイズ画像圧縮方法及びシステム”に記載されており、これも本発明の譲り受け人に譲渡されており、ここに引用例として含まれている。これらの特許に開示されたシステムは、“フレーム内”エンコーディングと呼ばれるものを利用する。“フレーム内”エンコーディングでは、画像データの各フレームは、他のいずれかのフレームの内容にかかわらずエンコードされる。ABSDCT技術を使用して、達成できるデータレートは、画像品質の識別できる劣化なしに大幅に減少できる。
ABSDCTを使用して、ビデオ信号は、一般に、処理のためにフレーム及びピクセルのブロックに細分化される。DCT演算子は、時間でサンプリングされた信号を同じ信号の周波数表示に変換する1つの方法である。周波数表示に変換することによって、コンタイザー(quantizer)が、画像の周波数分布特性を利用するために設計できるので、DCT技術は、非常に高いレベルの圧縮ができるように示されてきている。好ましい実施例では、1個の16×16DCTは、1次オーダリングに適用され、4個の8×8DCTは、2次オーダリングに適用され、16個の4×4DCTは、3次オーダリングに適用され、64個の2×2DCTは、4次オーダリングに適用される。
画像処理の目的に対して、DCT演算は、重ならないブロックのアレイに分割されるピクセルデータについて実行される。ブロックサイズは、ここではN×Nの大きさであるとして説明されるが、種々のブロックサイズが使用できることが予想されることに注意する。例えば、N×Mブロックサイズは、MがNよりも大きい若しくは小さい場合のいずれであっても、N及びMの両者が整数である場合に利用できる。他の重要な観点は、ブロックが、N/i×N/i,N/i×N/j,N/i×M/j,等、ここで、i及びjは整数である、のような、少なくとも1のサブブロックに分割できることである。さらに、ここで説明したように、具体例のブロックサイズは、DCT係数に対応するブロック及びサブブロックを有する16×16ピクセルブロックである。両者が偶数若しくは奇数の整数値である種々の他の整数、例えば、9×9、を使用できることが、さらに予想される。
カラー信号は、RGB空間からYC空間、ここで、Yは輝度、すなわち明るさ成分であり、C及びCはクロミナンス(chrominance)、すなわち色彩成分である、に変換できる。色彩に対して目の空間感度が低いことのため、多くのシステムは、水平及び垂直方向に因数4でC及びC成分をサブサンプルする。しかしながら、サブサンプリングは、必ずしも必要ではない。4:4:4フォーマットとして知られる、全解像度画像は、デジタル映画を含むような、ある種のアプリケーションにおいて非常に利用価値がある若しくは必要である。2つの可能なYCの表示、YIQ表示及びYUV表示、は、両者ともこの分野ではよく知られている。YCとして知られるYUV表示の変形を採用することも可能である。
図1A及び図1Bは、エンコードされたデータのN×Nブロックのカラム及びロー処理100及び120を図示する。N次元変換は、N個の1次元変換のカスケード(cascade)として実行できる。例えば、1個の2×2DCTは、2個の1次元DCT処理のカスケード、先ず各カラムを演算し、その後各ローを演算する、として実行される。第1カラムm(104)が処理され、続いてカラムm+1(108)、続いてカラムm+2(112)等々カラムn(116)まで処理される。カラムが処理された後で、図1Bに示されたように、ロー120が処理される。先ず、ローm(124)が処理され、続いてローm+1(128)、続いてローm+2(132)等々ローn(136)まで処理される。
同様に、他の例は、IDCTプロセスを必要とするデータの8×8ブロックである。1個の8×8ブロックは、4個の2次元IDCTへと分解される。各2次元IDTCは、その後、図1A及び図1Bについて説明した2次元DCTについてと同じ方法で処理される。
図2Aは、エンコーディングプロセスの期間のエンコードされたデータのフローのブロック図250を図示する。エンコーディングプロセスでは、エンコードされたデータは、ピクセルドメインから周波数ドメインへと変換される。図2Bは、デコーディングプロセスを通してエンコードされたデータの流れのブロック図254を図示する。デコーディングプロセスでは、エンコードされたデータは、周波数ドメインからピクセルドメインへと変換される。エンコードプロセス250で図示したように、エンコードされたデータのブロックサイズにされた割り当て(BSA)が、最初に実行される(258)。ある実施例の1つの観点では、Y,Cb及びCr成分の各々が、サブサンプリングなしに処理される。それゆえ、ピクセルの1個の16×16ブロックの入力は、ブロックサイズ割り当て素子258へ提供される。ブロックサイズ割り当て素子258は、ビデオ圧縮に対する準備の中でブロックサイズ割り当てを実行する。
ブロックサイズ割り当て素子258は、ブロック中の画像の視覚的な特性に基づいてブロックのブロック分解を決定する。ブロックサイズ割り当ては、16×16ブロック中の活性度によりカッドツリー様式のより小さなブロックへと、各16×16ブロックをサブ分割する。ブロックサイズ割り当て素子258は、その長さが1及び21ビットの間であるカッドツリーデータ、PQRデータと呼ばれる、を生成する。それゆえ、ブロックサイズ割り当てが、1個の16×16ブロックがこれから分割されることを決定するならば、PQRデータのRビットが設定され、4個の分割された8×8ブロックに対応するQデータの4個の付加されるビットが続く。ブロックサイズ割り当てが、その8×8ブロックのいずれかが、これからサブ分割されることを決定するならば、その後、サブ分割された各8×8ブロックに対する4個のPデータの追加ビットが、付加される。
データは、2×2、4×4、8×8、及び16×16のようなブロックサイズに分割される。エンコードデータプロセッサは、その後、図3について説明したように、エンコードされたデータ(262)の変換(DCT/DQT)を実行する。DCT/DQTプロセス262が終了すると、量子化プロセス(QB)266が、エンコードされたデータに実行される。これで、ピクセルドメインから周波数ドメインへのエンコードされたデータの変換が終了する。
ある実施例では、DCT係数は、周波数重み付けマスク(frequency weighting masks)(FWMs)及び量子化スケールファクターを使用して量子化される。FWMは、入力DCT係数のブロックと同じ次元の周波数重み付けの表である。周波数重み付けは、異なるDCT係数に対して異なる重みを適用する。重みは、人間の視覚システムがより敏感な周波数成分を有する入力サンプルを強調するように作られ、かつ視覚システムが敏感でない周波数成分を有するサンプルを強調しないように作られる。重みは、観賞する距離等のような要因に基づいて作ることもできる。
ハフマンコード(Huffman code)は、観測された若しくは理論的な画像の統計量のいずれかにより作られる。最も自然な画像は、ブランクすなわち比較的ゆっくりと変化する領域、及び対象物の境界や高コントラストの模様のような混み入った領域からなると観察されている。DCTが混み入った領域に多くのビットを割り当て、ブランク領域に少ないビットを割り当てることによりこれらの特徴を利用するように、周波数ドメインを有するハフマンコードは、変換する。一般に、ハフマンコードは、ラン長さ及び非ゼロ値をコード化するためにルックアップテーブルを使用させる。
重みは、経験的なデータに基づいて選択される。8×8DCT係数に対する重みマスクを設計する方法は、ISO/IEC JTC1 CD 10918、“連続色調静止画像のデジタル圧縮及びコーディング−パート1:必要条件及びガイドライン”、国際標準協会、1994年、に開示されており、これは、引用文献としてここに含まれている。一般に、2個のFWMは、一つは輝度成分に対して、一つはクロミナンス成分に対して作られる。ブロックサイズ2×2、4×4に対するFWMテーブルは、1/10にすることにより得られ、16×16は、8×8ブロックに対するものの補間により得られる。スケールファクターは、品質及び量子化された係数のビットレートを制御する。
それゆえ、各DCT係数は、次の関係式にしたがって量子化される:
Figure 2009177802
ここで、DCT(i,j)は入力DCT係数、fwm(i,j)は周波数重みマスク、qはスケールファクター、及びDCTq(i,j)は量子化された係数である。DCT係数の符号に依存して、カギカッコ内の第1項は、切り上げ若しくは切り下げられることに注意する。DQT係数も、適合する重み付けマスクを使用して量子化される。しかし、複数のテーブル若しくはマスクが使用でき、Y,Cr,及びCr成分のそれぞれに適用できる。
量子化された係数は、ジグザグスキャンシリアライザー(zigzag scan serializer)268に供給される。シリアライザー268は、量子化された係数の順番に並べられたストリームを生成するために、ジグザグ様式で量子化された係数のブロックをスキャンする。多くの異なるジグザグにスキャンするパターンも、ジグザグ以外のパターンと同様に選択できる。好ましい技術は、ジグザグスキャニングに8×8ブロックサイズを採用する。しかし、4×4若しくは16×16のような他のサイズも採用できる。
ジグザグスキャンシリアライザー268は、コンタイザー(quantizer)266の前若しくは後のどちらにでも設置できることに注意する。最終的な結果は、同じである。
いずれにせよ、量子化された係数のストリームは、可変長コーダ269に供給される。可変長コーダ269は、ゼロのラン長エンコーディングを使用させることができ、エンコーディングが続く。この技術は、前述の米国特許No.5,021,891、5,107,345及び5,452,104及び、引用例として取り込まれておりここでまとめられている出願中の米国特許出願No.<000163>に詳しく説明されている。ラン長コーダは、量子化された係数を取り、不連続な係数より連続した係数のランに注目する。連続した値は、ラン長さ値として参照され、エンコードされる。不連続な値は、別にエンコードされる。ある実施例では、連続した値は、ゼロ値であり、不連続な値は、非ゼロ値である。代表的には、ラン長さは、0から63ビットであり、そのサイズは、1−10からのAC値である。ファイルコードの終わりは、追加コードを付加する−このようにして、合計641の可能なコードがある。
デコーディングプロセスでは、周波数ドメイン中のエンコードされたデータは、ピクセルドメインに変換して戻される。可変長デコーダ270は、ラン長さ及びデータのサイズを生成し、採用されているスキャンスキームにしたがって係数を順番に並べる逆ジグザグスキャンシリアライザー271にデータを供給する。逆ジグザグスキャンシリアライザー271は、合成係数ブロック中の係数を適正な順番に並べることを助けるためにPQRデータを受信する。合成ブロックは、周波数重み付けマスクを使用することによって処理を実行しないために、逆コンタイザー272に供給される。
フィンガープリンタ(H2O)273は、その後、エンコードされたデータについて実行される。フィンガープリンタは、データ上にウォーターマーク若しくは他の識別子情報(identifier information)を設置する。ウォーターマークは、識別子情報を明らかにするために、後の時点で回復される。識別子情報は、どこで及びいつ題材が上演されたか、及び誰がその題材の上演を認めたか、のような情報を含むことができる。フィンガープリンタ273に続いて、デコーダデータプロセス274(IDQT/IDCT)が、開始される。これは、図4に関係して詳しく説明される。データがデコードされた後で、データは、フレームバッファインターフェース(FBI)278に送られる。FBIは、同時に1フレームの圧縮されていないデータを読み出しそして書き込むように構成される。ある実施例では、FBIは、4フレームの容量を有する。しかしながら、蓄積容量を変えることができることが、予想される。
図2Cを参照して、ブロックサイズ割り当て素子258の演算の詳細を示すフロー図が与えられる。アルゴリズムは、ブロックをサブ分割するための決定における尺度のように、ブロックの変動を使用する。ステップ202から始めて、ピクセルの1個の16×16ブロックが読み込まれる。ステップ204において、その16×16ブロックの変動、v16、が計算される。変動は、以下のように計算される:
Figure 2009177802
ここで、N=16、及びxi,jは、N×Nブロック中のi番目のロー、j番目のカラムのピクセルである。ステップ206において、先ず、ブロックの平均値が2個の所定の値の間にあるならば、変動のしきい値T16は、新しいしきい値T’16を与えるために修正される。次に、ブロック変動は、新しいしきい値、T’16、に対して比較される。
変動v16が、しきい値T16より大きくないならば、その後ステップ208において、16×16ブロックの開始アドレスが書き込まれ、PQRデータのRビットは、16×16ブロックがサブ分割できないことを示すために、0に設定される。そして、アルゴリズムは、ピクセルの次の16×16ブロックを読み出す。変動v16が、しきい値T16より大きければ、その後ステップ210において、PQRデータのRビットは、16×16ブロックが4個の8×8ブロックにこれからサブ分割されることを示すために、1に設定される。
4個の8×8ブロック、i=1:4、は、ステップ212に示されたように、さらにサブ分割するために続いて考慮される。各8×8ブロックに対して、ステップ214において、変動、v8、が計算される。ステップ216において、先ず、ブロックの平均値が、2個の所定の値の間にあるならば、変動しきい値T8は、修正されて新しいしきい値T’8を与える。次に、ブロック変動は、この新しいしきい値と比較される。
変動v8が、しきい値T8より大きくないならば、その後ステップ218において、8×8ブロックの開始アドレスが書き込まれ、対応するQビット、Q、は、0に設定される。そして、次の8×8ブロックが処理される。変動v8が、しきい値T8より大きければ、その後ステップ220において、対応するQビット、Q、は、8×8ブロックが4個の4×4ブロックにこれからサブ分割されることを示すために、1に設定される。
4個の4×4ブロック、j=1:4、は、ステップ222に示されたように、さらにサブ分割するために引き続いて考慮される。各4×4ブロックに対して、ステップ224において、変動、v4ij、が計算される。ステップ226において、先ず、ブロックの平均値が、2個の所定の値の間にあるならば、変動しきい値T4は、修正されて新しいしきい値T’4を与える。次に、ブロック変動は、この新しいしきい値と比較される。
変動v4ijが、しきい値T4より大きくないならば、その後ステップ228において、4×4ブロックのアドレスが書き込まれ、対応するPビット、Pij、は、0に設定される。そして、次の4×4ブロックが処理される。変動v4ijが、しきい値T4より大きければ、その後ステップ230において、対応するPビット、Pij、は、4×4ブロックが4個の2×2ブロックにこれからサブ分割されることを示すために、1に設定される。さらに、4個の2×2ブロックのアドレスが書き込まれる。
しきい値T16,T8及びT4は、所定の定数とすることができる。これは、ハード判断として知られている。あるいは、順応すなわちソフト判断が実行できる。ソフト判断は、2N×2Nブロックの平均ピクセル値、ここで、Nは8,4若しくは2とすることができる、に依存する変動に関するしきい値を変化させる。このようにして、平均ピクセル値の関数が、しきい値として使用できる。
説明の目的で、次の例を考える。Y成分に対する所定の変動しきい値を、16×16、8×8及び4×4ブロックに対して、それぞれ、50,1100及び880とする。言い換えると、T16=50,T8=1100及びT16=880である。平均値の範囲が80及び100であるとする。16×16ブロックに対する計算された変動が60であると仮定する。60及びその平均値90がT16より大きいので、16×16ブロックは、4個の8×8サブブロックにサブ分割される。8×8ブロックに対する計算された変動が、1180,935,980及び1210であると仮定する。8×8ブロックの2つがT8より大きい変動を有するので、これら2個のブロックは、合計8個の4×4サブブロックを生成するために、さらにサブ分割される。最後に、8個の4×4ブロックの変動は、620,630,670,610,590,525,930及び690であり、最初の4つに対応する平均値は90,120,110,115であると仮定する。最初の4×4ブロックの平均値が、範囲(80,100)にあるので、そのしきい値は、T’4=200に低くされるであろう。それは880より小さい。その結果、この4×4ブロックは、7番目の4×4ブロックと同様にサブ分割されるであろう。結果としてのブロックサイズ割り当ては、図11Aに図示される。対応するカッドツリー分解は、図11Bに図示される。このブロックサイズ割り当てにより生成されたPQRデータは、図11Cに図示される。
同様な手順が、色彩成分C及びCに対してブロックサイズを割り当てるために使用されることに注意する。色彩成分は、水平方向、垂直方向若しくは両者で1/10に削減することができる。さらに、ブロックサイズ割り当てが、上から下へのアプローチ、そこでは最大ブロック(この例では16×16)が初めに評価される、で説明されてきたが、下から上へのアプローチが、代わりに使用できる。下から上へのアプローチは、最小ブロック(この例では2×2)が最初に評価されるであろう。
選択されたブロックのアドレスとともに、PQRデータは、DCT/DQT素子262に供給される。DCT/DQT素子262は、選択されたブロックについて適切なサイズの離散コサイン変換を実行するためにPQRデータを使用する。選択されたブロックだけが、DCT処理を受けることが必要である。DQTは、DCTのDC係数の中にある冗長性を削減するためにも使用される。DC係数は、各DCTブロックの上左角にある。DC係数は、一般に、AC係数と比較して大きい。サイズの不一致は、効率的な可変長コーダを設計することを困難にする。したがって、DC係数中の冗長性を削減することは、有利である。DQT素子は、DC係数について、一度に2×2を受け取って、2−D DCTを実行する。4×4ブロック中の2×2ブロックから始めて、2−D DCTは、4個のDC係数について実行される。この2×2DCTは、4個のDC係数の差分カッドツリー変換、すなわちDQT、と呼ばれる。次に、1個の8×8ブロックを有する3個の隣接するDC係数とともにDQTのDC係数は、次のレベルのDQTを計算するために使用される。最後に、1個の16×16ブロック中の4個の8×8ブロックのDC係数は、DQTを計算するために使用される。それゆえ、1個の16×16ブロックでは、1個の真のDC係数があり、残りはDCT及びDQTに対応するAC係数である。
1フレームの中で、各16×16ブロックは、独立に計算される。したがって、所定のブロックに対して使用される処理アルゴリズムは、PQRにより決められたように、必要に応じて変更できる。
図3は、エンコードされたデータのブロックのDCT/DQT及びIDQT/IDCTの計算300を示すブロック図である。エンコードモードでは、図3に示されたように、エンコードされたデータは、最初はピクセルドメインにある。エンコードされたデータが、中間ステップを経由して処理されるので、エンコードされたデータは、周波数ドメインへと変換される。デコードモードでは、エンコードされたデータは、最初は周波数ドメインにある。エンコードされたデータが、中間ステップを経由して処理されるので、エンコードされたデータは、ピクセルドメインへ変換される。
図3を参照して、エンコードされたデータの少なくとも1のM×Nブロックは、トランスポーズ(transpose)RAM304に記憶される。トランスポーズRAM304は、M×Nデータの1又はそれより多くのブロックを含むことができる。エンコードされたデータの2ブロックを有するある実施例では、一方は、現在のデータのM×Nブロック308を含むように構成され、他方は、次のブロックのM×Nデータ312を含むように構成される。データのブロック308及び312は、(エンコードモードでは)図2Aに図示されたようにブロックサイズ割り当て208から若しくは(デコードモードでは)図2Bに図示されたフィンガープリンタ220からトランスポーズRAM304へ転送される。ある実施例では、トランスポーズRAM304は、デュアルポートRAMとすることができる。その結果、トランスポーズRAMインターフェース316は、現在のデータのブロック308を処理し、フィンガープリンタ220から次のデータのブロックを受信する。トランスポーズRAMインターフェース316は、タイミングを制御し、バッファーされたメモリを有することができ、データのブロックをトランスポーズRAM304から読み出せるようにそして書き込めるようにする。ある実施例では、トランスポーズRAM304及びトランスポーズRAMインターフェース316は、制御シーケンサ324からの1又はそれより多くの制御信号に応答できる。
エンコードされたデータは、トランスポーズRAM304から(若しくはトランスポーズRAMインターフェース316を経由して)1又はそれより多くの入力レジスタ332へとデータプロセッサ328に入力される。ある実施例では、16個の入力レジスタ332がある。ある実施例では、データプロセッサ328は、図1Aに図示したように、最初にカラムデータを処理し、引き続きローデータを処理する。データプロセッサ328は、あるいはローに引き続きカラムを処理することができる。しかし、以下の説明は、カラムデータがローデータより先に処理されると仮定している。入力レジスタ332は、16×16ブロックの単一のカラムエンコードされたデータを備える。データプロセッサ328は、カラム毎にエンコードされたデータの数学演算を実行することにより変換を計算し、トランスポーズRAM304にデータを書き戻す。カラムのデータが処理された後、データプロセッサ328は、エンコードされたデータの各ローを処理する。エンコードされたデータの各ローが処理された後、データプロセッサ328は、出力レジスタ352を経由してデータを出力する。
ある実施例では、データのブロックは、エンコードされたデータの1個の16×16ブロックである。しかしながら、32×32、8×8、4×4、若しくは2×2、あるいはこれらの組み合わせのような、任意のサイズのデータのブロックが使用できることが予期できる。したがって、データプロセッサ328が、トランスポーズRAM304からデータのブロック(例えば、現在のデータのM×Nブロック308)を処理する一方で、トランスポーズRAMインターフェース316は、BSA208から(エンコードモード)若しくはフィンガープリンタ220から(デコードモード)次のデータのブロック312を受信する。データプロセッサ328が、現在のデータのブロックの処理を終了した場合、トランスポーズRAMインターフェース316は、トランスポーズRAM304インターフェースから次のデータのブロック312を読み出し、データプロセッサ328にロードする。このようにして、トランスポーズRAM304からのデータ312は、トランスポーズRAMインターフェース316及び制御シーケンサ324により指示されたように、現在のデータのブロック308と次のデータのブロック312との間でトグル(toggle)する。
データプロセッサ328は、入力レジスタ332、マナークバタフライクラスタ336内の少なくとも1のバタフライプロセッサ、及び少なくとも1の中間データレジスタ348を備える。データプロセッサ328は、保持レジスタ344、書き込みマルチプレクサ348、及び出力データレジスタ352も備えることができる。マナークバタフライクラスタ336は、第1入力マルチプレクサ356をさらに備えることができ、中間データレジスタ340は、第2入力マルチプレクサ360をさらに備える。前述したデータプロセッサ328の構成要素は、好ましくは制御シーケンサ324によって制御される。
演算において、所定のカラム若しくはローデータに対して、入力レジスタ332は、エンコードされたデータをトランスポーズRAM304からトランスポーズRAMインターフェース316を経由して受信するように構成される。制御シーケンサ324は、入力レジスタの特定のアドレスをイネーブルにして、入力マルチプレクサ356を経由してデータを送る。データ入力は、入力マルチプレクサ356を経由した選択によるように再び順番に並べられ、その結果、エンコードされたデータの適切な対が、数学的演算のために選択される。制御シーケンサ324によって制御され、入力マルチプレクサ356は、マナークバタフライクラスタ336にデータを渡す。マナークバタフライクラスタ336は、1又はそれより多くのバタフライプロセッサを備える。ある実施例では、マナークバタフライクラスタ336は、4個の独立したバタフライプロセッサ364,368,372、及び376を備え、制御シーケンサ324は、入力マルチプレクサ356を経由して適切なバタフライプロセッサへエンコードされたデータを送る。
各個のバタフライプロセッサ364,368,372、及び376は、DCT,IDCT,DQT及びIDQTのような、1次元変換を実行することができる。1次元変換は、代表的には、単純な加算、減算、若しくは乗算のような、代数演算を含む。1次元変換の一部分が、一対のデータ要素に実行された後、結果の出力は、中間データレジスタ340に転送される。中間データレジスタ340は、制御シーケンサ324に応答できる。制御シーケンサは、ステートマシーン、マイクロコントローラ、若しくはプログラマブルプロセッサのようなデバイスとすることができる。中間データレジスタ340が制御シーケンサ324に応答するある実施例では、中間データレジスタ340に記憶されている選択されたデータ要素は、フィードバックパス380を使用してそして第1入力マルチプレクサ356を経由して、適切なバタフライプロセッサにフィードバックされ、再び処理(すなわち、他の部分の1個の1次元変換)される。このフィードバックループは、エンコードされたデータに対する1次元処理の全てが終了するまで続く。データの処理が終了すると、中間データレジスタ340からのデータは、WRBR保持レジスタ344に書き込まれる。処理されるデータがカラムデータであれば、データは、WRBR保持レジスタ344から書き込みマルチプレクサ348を経由して書き込まれ、トランスポーズRAM304に再び記憶される。その結果、ロー処理が始められる。書き込みマルチプレクサ348は、処理されたカラムデータを元の順番に再び並べるように制御される。保持レジスタデータがローデータ(そして、それゆえカラム処理の全てが終了される)であれば、データは、出力レジスタ352に送られる。制御シーケンサ324は、その場合には、デイジーチェイン(daisy chain)マルチプレクサ及び出力データレジスタ352からのデータの出力を制御できる。
図4は、エンコードモードにおいて図3のデータパスプロセッサ328により実行できるDCTトレリスを示す。同様に、図5は、デコードモードにおいて図3のデータパスプロセッサ328により実行できるIDCTトレリスを示す。PQRデータ及び/若しくはこれから実行される計算のタイプに応じて指示されるように、制御シーケンサ324は、統合するためにエンコードされたデータの要素の別の対を選択でき、1次元変換の一部分を実行する。例えば、図4のトレリスにおいて、8個の演算がカラム404で発生する。示された演算は、以下のものである:x(0)+x(7),x(1)+x(6),x(3)+x(4),x(2)+x(5),x(0)−x(7),x(1)−x(6),x(3)−x(4)及びx(2)−x(5)。各々のバタフライプロセッサ364,368,372及び376(図3に示されたように)は、所定のクロックサイクルにおいて4個の演算のうちの1個を取り扱う。それゆえ、例えば、全て同一のクロックサイクルにおいて、バタフライプロセッサ364は、x(0)+x(7)及びx(0)−x(7)の演算を計算し、バタフライプロセッサ368は、x(1)+x(6)及びx(1)−x(6)の演算を計算し、バタフライプロセッサ372は、x(3)+x(4)及びx(3)−x(4)の演算を計算し、及びバタフライプロセッサ376は、x(2)+x(5)及びx(2)−x(5)の演算を計算する。これらの演算の各々の結果は、パイプラインレジスタ中に又は中間データレジスタ340中に一時的に記憶でき、その後、入力マルチプレクサ360に送られる。パイプラインレジスタの演算は、図9C及び図9Dに関係して本明細書中で説明される。
任意選択的に、次のクロックサイクルにおいて、残りの4個の掛け算演算が、同じ4個のバタフライプロセッサを使用して計算される。したがって、バタフライプロセッサ364は、[x(0)−x(7)]*(1/2C 16)を計算し、バタフライプロセッサ368は、[x(1)−x(6)]*(1/2C 16)を計算し、バタフライプロセッサ372は、[x(3)−x(4)]*(1/2C 16)を計算し、及びバタフライプロセッサ376は、[x(2)−x(5)]*(1/2C 16)を計算する。これらの計算の結果は、中間データレジスタ340に一時的に記憶される。計算が終了したままでは、エンコードされたデータは、エンコードされたデータが最初に入力された時と同じ順番ではない。したがって、制御シーケンサ324及び入力マルチプレクサ356は、必要に応じて、エンコードされたデータ若しくは各フィードバックループの後で部分的に処理されるエンコードされたデータを再び順番に並べる。
引き続くクロックサイクルにおいて、計算は、カラム408に対して処理される。その結果は、中間データレジスタ340に再び記憶され、入力マルチプレクサ360を経由してフィードバックされる。再び、現在部分的に処理され、フィードバックされるエンコードされたデータは、再び順番に並べられ、エンコードされたデータの正しい部分が、適切なバタフライプロセッサに送られる。したがって、バタフライプロセッサ364は、b(0)+b(2)及びb(0)−b(2)を処理する。同様に、バタフライプロセッサ368は、b(1)+b(3)及びb(1)−b(3)を計算し、バタフライプロセッサ372は、b(4)+b(6)及びb(4)−b(6)を計算し、及びバタフライプロセッサ376は、b(5)+b(7)及びb(5)−b(7)を計算する。演算の結果は、中間データレジスタ340若しくはパイプラインレジスタを使用して再び記憶され、入力マルチプレクサ360を経由して送られる。次のクロックサイクルにおいて、1/2C ,1/2C ,1/2C ,及び1/2C ,の掛け算が、カラム304について説明されたものと同様な方法で実行される。したがって、バタフライプロセッサ364は、b(0)−b(2)*1/2C を計算し、バタフライプロセッサ368は、b(1)−b(3)*1/2C を計算し、バタフライプロセッサ372は、b(4)−b(6)*1/2C を計算し、バタフライプロセッサ376は、b(5)−b(7)*1/2C を計算する。
次のクロックサイクルにおいて、計算は、位置が計算されるd(0)からd(7)にある値についてカラム412に対して処理される。その結果は、中間データレジスタ340に再び記憶され、入力マルチプレクサ360にフィードバックされる。したがって、各バタフライプロセッサは、各入力の各ステージを計算する。その結果、全てが同じクロックサイクルにおいて、バタフライプロセッサ364は、d(0)+d(1)及びd(0)−d(1)の演算を計算し、バタフライプロセッサ368は、d(2)+d(3)及びd(2)−d(3)の演算を計算し、バタフライプロセッサ372は、d(4)+d(5)及びd(4)−d(5)の演算を計算し、そしてバタフライプロセッサ376は、d(6)+d(7)及びd(6)−d(7)の演算を計算する。引き続くクロックサイクルにおいて、1/2C の掛け算が、カラム404及び408について説明したものと同じ方法で計算される。
カラム416は、次のクロックサイクルにおいてバタフライプロセッサによって計算される数学演算の次の組を示す。図4のカラム416の例に示されたように、2個の演算だけがこのクロックサイクルの間に必要とされる。すなわち、f(2)及びf(3)成分の合計、及びf(6)及びf(7)成分の合計である。したがって、バタフライプロセッサ364は、f(2)+f(3)を計算し、バタフライプロセッサ368は、f(6)+f(7)を計算する。
引き続くクロックサイクルにおいて、カラム420で表わされた計算が、処理される。そのようにして、h(4)、h(5)及びh(6)に対する値が、計算される。したがって、バタフライプロセッサ364は、h(4)+h(6)を計算し、バタフライプロセッサ368は、h(5)+h(8)を計算し、及びバタフライプロセッサ372は、h(5)+h(6)を計算する。
容易に観察することが可能であるように、図5は、図4について説明したトレリスと逆の順序であるが、同様な方法で演算するIDCTトレリスを示す。IDCTトレリスは、デコードプロセスにおいて利用され、エンコードプロセスにおいて演算するDCTトレリスとは反対である。バタフライプロセッサ364,368,372及び376は、並列処理の効率性の利点を取り入れて、図4について説明したように同じ方法で演算する。エンコードプロセス及びデコードプロセスの両方において、ある実施例の顕著な利点は、トレリスの各ステージに対して同一のハードウェアを再使用することである。したがって、カラム504において示された計算に使用されるハードウェアは、カラム508,512,516及び520の計算に使用されるハードウェアと同一である。同様に、カラム404において示された計算に使用されるハードウェアは、カラム408,412,416及び420の計算に使用されるハードウェアと同一である。
図4のトレリスの終わりを表わす最終結果が一旦計算されると、データは、中間データレジスタ340から保持レジスタ344に転送される。保持レジスタ344及び出力データレジスタ352は、制御シーケンサ324によって制御される。データがカラムデータであれば、データは、書き込みマルチプレクサ348に転送され、トランスポーズRAM304に記憶し戻される。再び、エンコードされたデータは、エンコードされたデータの初めの順番を反映するために再び順番に並べられる。データがローデータであるならば、全ての計算がそれによって終了し、データは、保持レジスタ344から出力データレジスタ352に転送される。
図6は、1又はそれより多くの入力及び出力マルチプレクサ600を有する単一のバタフライプロセッサの例を示す。ある実施例では、1又はそれより多くの中間データレジスタ340(図3参照)からのデータ出力は、入力マルチプレクサ604の入力ポートに接続される。ある実施例では、中間データレジスタ340の各々からのデータ出力は、第1マルチプレクサ608及び第2マルチプレクサ612からバタフライプロセッサへ入力される。入力ARレジスタ332(図3参照)からのデータ出力も、入力マルチプレクサ604を経由して転送される。特に、ARレジスタAR(0)及びAR(8)の出力は、マルチプレクサ616の入力に接続され、AR(1),AR(8),AR(9)及びAR(15)の出力は、マルチプレクサ620の入力に接続される。マルチプレクサ624及び628は、(図3に示された)制御シーケンサ324によって指示されるようにAR若しくはBRレジスタから来る信号のいずれかを選択する。したがって、マルチプレクサ624は、マルチプレクサ608若しくは616からのデータのいずれかを選択し、そしてマルチプレクサ628は、マルチプレクサ620若しくはマルチプレクサ612からのデータのいずれかを選択する。マルチプレクサ624及び628の出力は、このようにして別々のバタフライプロセッサ632の入力に接続される。バタフライプロセッサ632は、図3、図7及び図8について説明したように、DCT/IDCT/DQT/IDQT変換のステージを計算する。バタフライプロセッサ632の2個の出力、出力636及び638、は、各中間データマルチプレクサ642及び646の入力にそれぞれ接続される。その後、データは、マルチプレクサ642及び646から選択され、中間レジスタ650のバンクに向かう。ある実施例では、16個のそのような中間マルチプレクサ及びデータレジスタがある。
図7は、書き込みマルチプレクサのブロック図を示す。図3に示されたように、中間データレジスタ340の偶数出力は、マルチプレクサ704に入力され、中間データレジスタ340の奇数出力は、マルチプレクサ708に入力される。各々の中間レジスタのデータは、図3に示された制御シーケンサ324によって制御されるようにマルチプレクサ704,708,712及び716により再び順番に並べられ、それぞれ、17−ビットレジスタ720及び724に記憶される。再び順番に並べられたデータは、その後、トランスポーズRAM304に記憶される。
図8は、各バタフライプロセッサ800の演算を示す。ある実施例では、4個のバタフライプロセッサが実装される。しかし、タイミング及びサイズの制約を受けるが、いかなる数のバタフライプロセッサでも実装され得ることが予想される。データは、入力804及び808を経由してバタフライプロセッサに入力される。ある実施例では、入力804は、時々DC値を示し、トランケータ(truncator)812を通過する。トランケータ812は、2次元DCT方程式インフラ(infra)について説明したように、1/N関数に対して応答できる。入力804のDC値は、17ビット−1符合ビットと16整数ビットである。トランケータ812は、トランケートされたDC値816を作り出すためにDC値入力データからnビットをトランケートする。ここで、これから処理されるデータが16×16ブロックであるならば、nは4ビットであり、これから処理されるデータが8×8ブロックであるならば、nは3ビットであり、これから処理されるデータが4×4ブロックであるならば、nは2ビットであり、そして、これから処理されるデータが2×2ブロックであるならば、nは1ビットである。入力がAC値であるならば、トランケータ812は、バイパスされ、第1セレクタ814に送られる。そして、第1セレクタ814は、トランケートされたDC値816若しくは入力A804からのAC値のいずれかを選択する。分数ビットが使用できることは予想されるけれども、この実施例では、分数ビットは使用されていない。
第1セレクタ816の出力は、ディレー(delay)820及び第2セレクタ824に送られる。セレクタ値816の出力が、ディレー820に送られる場合、トランケートされたDC値は、第2セレクタ824に送られる前にクロックサイクルの間保持される。ある実施例では、ディレー820は、レジスタである。第2セレクタ824中のデータの選択は、そのデータにこれから実行される数学演算のタイプの関数である。好ましくは制御シーケンサから送られる制御ワード826は、第2セレクタ824をトリガする。図8全体を通して示されるように、制御ワード826は、多数の構成要素に対する制御を提供する。再び、これから実行される数学演算のタイプに依存して、その後、データは、加算器832若しくは減算器836を通過する。第3セレクタ828も、ディレー820からの遅延した出力値を、入力808とともに受信する。再び、第3セレクタ828中のデータの選択は、そのデータにこれから実行される数学演算のタイプの関数である。
データが足し算された若しくは引き算されたもののいずれかであるので、その後、データは、バタフライプロセッサ800から出力するために第4セレクタ840若しくは第5セレクタ844のいずれかに向け通過する。入力804も、第4セレクタ840に向け通過し、そして、入力808は、第5セレクタ844に向け通過する。エンコードモードにおいて、データは、第6セレクタ848にも送られる。ある実施例では、エンコードモードにおいて、データは、第6セレクタ848に送られる前に、エンコードディレー852を経由して送られる。
第2入力、入力808、は、第3セレクタ828及び第6セレクタ848を通過する。入力808が第6セレクタ848によって選択されるならば、データは、マルチプレクサ856に送られる。ここで入力808は、スカラー(scalar)860によって掛け算される。スカラー860による掛け算プロセスは、スケーリングして(scale)スケーリングされた出力864を生成する。ある実施例では、スカラー860は、ビー・ジー・リーのアルゴリズムに基づいて選択される。ある実施例では、スケーリングされた出力864は、その後、フォーマッタ868に送られる。フォーマッタ868は、24ビットフォーマット、1符合ビット、16整数ビット及び7分数ビット、から17ビットフォーマットへデータを丸め、サチュレート(saturate)する。このようにして、フォーマットされスケーリングされた出力872は、20ビットの長さではなく17ビットである。この方法でのデータの処理は、精度が計算を行う際に維持されることを容認するが、データを表現するために少ないビットしか使用しない、それは順に、ハードウェアの空間を節約する。フォーマットされスケーリングされた出力872は、さらに処理するために、ディレー876を経由して第3セレクタ828及び第5セレクタ844に送られる。
図9Aから図9Fは、各バタフライプロセッサにより実行することができる種々の数学演算を示す。図9Aは、バタフライプロセッサ900によって実行される無演算を示す。2個の入力、入力A(902)及び入力B(904)、が与えられ、各入力は、出力C(906)及び出力D(908)に向けて単純に通過する。したがって、無演算においては、C=A及びD=Bである。
図9Bは、バタフライプロセッサ910により実行される累積演算を示す。2個の入力、入力A(912)及び入力B(914)、が与えられ、出力C(916)は、A+Bの合計を表わす。入力A(912)及び入力B(914)は、加算器913により統合される。出力D(918)は、入力B(914)の通過を表わす。したがって、累積演算においては、C=A+B及びD=Bである。
図9Cは、バタフライプロセッサ920により実行されるバタフライDCT演算を示す。2個の入力、入力A(922)及び入力B(924)、が与えられ、出力C(926)は、入力A(922)及び入力B(924)の合計を表わし、その結果、C=A+Bである。入力922及び入力924は、加算器923により統合される。出力D(928)は、A(922)及び入力B(924)の差を係数CF(930)と掛け合わせたものを表わし、その結果、D=CF×(A−B)である。入力924は、減算器925により入力922から引き算され、その後、乗算器927により掛け算される。任意の選択として、パイプラインレジスタ932及び934は、次のクロックサイクルまで途中結果を一時的に記憶するために使用できる。
図9Dは、バタフライプロセッサ936により実行されるバタフライIDCT演算を示す。2個の入力、入力A(938)及び入力B(940)、が与えられ、出力C(942)は、入力A(938)と入力B(940)を係数CF(943)で掛け算したものの合計を表わし、その結果、出力C=A+(B×CF)である。入力B(940)は、乗算器945により係数CF(943)と掛け算され、その後、加算器947により入力A(938)に足し算される。同様に、出力D(944)は、入力A(938)と入力B(940)を係数CF(943)で掛け算したものとの差を表わし、その結果、D=A−(B×CF)である。入力B(940)は、乗算器945により係数CF(943)と掛け算され、その後、減算器949により入力A(938)から引き算される。任意の選択として、パイプラインレジスタ946及び948は、次のクロックサイクルまで途中結果を一時的に記憶するために使用できる。
図9Eは、バタフライプロセッサ950により実行される累積レジスタ演算を示す。2個の入力、入力A(952)及び入力AREG(954)、が与えられ、出力C(956)は、入力A及びAREGの合計を表わし、その結果、C=A+AREGである。入力値とは反対に、AREGは、前のクロックサイクルからレジスタ951に記憶された値であってもよい。入力A(952)は、加算器953によりAREG(954)に足し算される。
図9Fは、バタフライプロセッサ958により実行されるDQT/IDQT演算を表わす。2個の入力、入力A(960)及び入力B(962)、が与えられ、出力C(964)は、入力A及びBの合計を表わし、その結果、C=A+Bである。同様に、出力D(966)は、入力A及びBの差を表わし、その結果、D=A−Bである。入力A(960)及び入力B(962)は、加算器963により統合される。入力B(962)は、減算器965により入力A(960)から引き算される。
画像データ1000の変換を計算するプロセスは、図10に示され、そして、図3について説明したようにある構造において実行できる。そのプロセスは、DCT,IDCT,DQT及びIDQTのような、周波数ドメイン技術に対して容易に構成できる。カラム若しくはローデータは、初めにトランスポーズRAM1004中に存在し、バタフライプロセッサ中の保持レジスタ1008に転送される。データのブロックの個々のデータ要素は、選択されて統合され1012、そして個別のデータ要素に実行される数学演算が、選択される1016。実行されることができる数学演算は、図9Aから図9Fについて説明され、無演算1020、累積1024、DCTバタフライ1028、IDCTバタフライ1032、累積レジスタ1036及びDQT/IDQTバタフライ1040を含む。数学演算の結果は、一時的に記憶される1044。それから、フィードバック判断1048が、さらに数学演算が必要であるかどうかに基づいてなされる。ある実施例では、フィードバック判断は、図3について説明されたように、制御シーケンサにより制御される。データがフィードバックされるならば1052、データは、保持レジスタへフィードバックされ1008、プロセスが繰り返される。データがフィードバックされないならば1056、データは、出力保持レジスタへ転送される1060。他の1つの判断1064は、追加の数学演算が、データのカラム若しくはローに対して必要であるかどうかに関して行われる。もしそうであるならば(1068)、データのカラム若しくはローは、ホールダへ転送され1072、それからトランスポーズRAMへと書き戻される1004。そうでないならば(1076)、データのブロックは、出力データレジスタへ転送される1080。
例として、種々の説明的な論理ブロック、フローチャート、及びここで開示した実施例と関係して説明したステップは、用途特定集積回路(ASIC)、プログラマブル論理デバイス、単体ゲート若しくはトランジスタロジック、例えばレジスタ及びFIFOのような単体ハードウェア素子、ファームウェアインストラクションを実行するプロセッサ、いずれかの従来のプログラマブルソフトウェア及びプロセッサ、並びにこれらのいずれかの組み合わせを使用してハードウェア若しくはソフトウェアにおいて実装され得る若しくは実行され得る。プロセッサは、マイクロプロセッサであることが有利である、しかし代案として、プロセッサは、いずれかの従来のプロセッサ、コントローラ、マイクロコントローラ、若しくはステートマシーンであってもよい。ソフトウェアは、RAMメモリ、ROMメモリ、レジスタ、ハードディスク、取り外し可能なディスク、CD−ROM、DVD−ROM若しくはこの分野で知られている他のいずれかの形式の記憶メディアに置くことができる。
好ましい実施例のこれまでの説明は、本技術分野に知識のあるいかなる者でも、本発明を作成し、若しくは使用することを可能にする。これらの実施例に対する各種の変形は、本技術分野に知識のある者に、容易に実現されるであろう。そして、ここで定義された一般的な原理は、創作的な能力を使用しなくとも他の実施例に適用できる。それゆえ、本発明は、ここに示された実施例に制限することを意図したものではなく、ここに開示した原理及び卓越した特性と整合する広い範囲に適用されるものである。

Claims (91)

  1. エンコードされたデータのブロックの変換を決定する装置であって、前記エンコードされたデータのブロックは複数のデータ要素を具備する、前記装置は:
    所定の量のデータ要素を受信するように構成された入力レジスタ;
    前記入力レジスタに接続された少なくとも1のバタフライプロセッサ、前記バタフライプロセッサは、データ要素の選択された対に少なくとも1の数学演算を実行して、処理されたデータ要素の出力を生成するように構成される;
    前記バタフライプロセッサに接続された少なくとも1の中間レジスタ、前記中間レジスタは、前記処理されたデータ要素を一時的に記憶するように構成される;及び
    前記中間レジスタ及び前記バタフライプロセッサに接続するフィードバックループ、ここで、前記フィードバックループは、もしイネーブルであれば、追加の数学演算を実行するために前記適切なバタフライプロセッサに前記処理されたデータ要素の第1の部分を転送する、そして、もしディスエーブルであれば、少なくとも1の保持レジスタに前記処理されたデータ要素の第2の部分を転送する、
    ここで、前記保持レジスタは、前記第1の部分のデータ要素の全てがさらに処理されるまで、前記処理されたデータ要素を記憶するように構成される、
    を具備する、装置。
  2. 前記フィードバックループ及び前記中間レジスタに接続する少なくとも1の入力マルチプレクサをさらに具備する、ここで、各入力マルチプレクサは、データ要素を一時的に選択するように、及び前記適切なバタフライプロセッサにデータ要素を転送するように構成される、請求項1に記載の装置。
  3. 前記バタフライプロセッサ及び前記中間レジスタに接続する少なくとも1の出力マルチプレクサをさらに具備する、ここで、各出力マルチプレクサは、データ要素を一時的に選択するように、及び前記適切な中間レジスタにデータ要素を転送するように構成される、請求項1に記載の装置。
  4. 前記変換は、離散コサイン変換(DCT)、差分カッドツリー変換(DQT)、逆離散コサイン変換(IDCT)、及び逆差分カッドツリー変換(IDQT)からなるグループから選択される、請求項1に記載の装置。
  5. 前記エンコードされたデータのブロックは、ローデータ及びカラムデータとして表わすことができる、及び、前記入力レジスタに接続されたトランスポーズランダムアクセスメモリ(RAM)をさらに具備する、ここで、前記トランスポーズRAMは、前記カラムデータが処理されている間、前記ローデータを記憶するように構成され、及びここで、前記トランスポーズRAMは、前記ローデータが処理されている間、前記カラムデータを記憶するように構成される、請求項1に記載の装置。
  6. 前記トランスポーズRAMは、エンコードされたデータの2個のブロックを記憶するように設定可能である、請求項5に記載の装置。
  7. 前記保持レジスタに接続する書き込みマルチプレクサをさらに具備する、ここで、前記書き込みマルチプレクサは、データ要素を再び順番に並べて、1次元変換を終了するように構成される、請求項5に記載の装置。
  8. 前記フィードバックループは、同一の構成要素がブロックサイズに関係なく再使用されることを許容する、請求項1に記載の装置。
  9. 前記フィードバックループは、同一の構成要素が前記変換のタイプに関係なく再使用されることを許容する、請求項1に記載の装置。
  10. 前記フィードバックループは、同一の構成要素が数学演算に関係なく再使用されることを許容する、請求項1に記載の装置。
  11. 前記フィードバックループに接続された制御シーケンサをさらに具備する、ここで、前記制御シーケンサは、前記フィードバックループをイネーブル若しくはディスエーブルにするように構成される、請求項1に記載の装置。
  12. 前記制御シーケンサは、単一係数乗算器を有する前記バタフライプロセッサを与える、請求項11に記載の装置。
  13. 前記単一係数乗算器は、ビー・ジー・リーのアルゴリズムに基づく、請求項12に記載の装置。
  14. 前記制御シーケンサは、所定のイベントに基づいて前記入力レジスタのうちの特定の1つをイネーブルにする、請求項11に記載の装置。
  15. 前記制御シーケンサは、所定の基準に基づいて前記バタフライプロセッサのうちの特定の1つをイネーブルにする、請求項11に記載の装置。
  16. 前記制御シーケンサは、所定の基準に基づいて前記中間レジスタのうちの特定の1つをイネーブルにする、請求項11に記載の装置。
  17. 前記制御シーケンサは、所定の基準に基づいて前記出力レジスタのうちの特定の1つをイネーブルにする、請求項11に記載の装置。
  18. 前記数学演算は、足し算、掛け算、及び引き算からなるグループからである、請求項1に記載の装置。
  19. 各バタフライプロセッサは、1次元変換の一部分を実行する、請求項1に記載の装置。
  20. エンコードされたデータのブロックの前記変換は、一連の1次元変換として計算される、請求項1に記載の装置。
  21. エンコードされたデータのブロックの変換を決定する装置、前記エンコードされたデータのブロックは、ローデータ及びカラムデータとして表わされることができ、各ロー及びカラムは、複数のデータ要素を具備する、前記装置は:
    前記エンコードされたデータのブロックを記憶するように構成されたトランスポーズランダムアクセスメモリ(RAM);
    前記トランスポーズRAMに接続された少なくとも1の入力レジスタ、前記入力レジスタは、前記トランスポーズRAMからデータのカラムを受信するように構成される;
    前記入力レジスタに接続された少なくとも1のバタフライプロセッサ、前記バタフライプロセッサは、前記カラムデータから選択されたデータ要素の対について1次元変換の一部分を実行して、1次のカラムデータの出力を生成するように構成される;
    前記バタフライプロセッサに接続された少なくとも1の中間レジスタ、前記中間レジスタは、前記1次のカラムデータを一時的に記憶するように構成される;及び
    前記中間レジスタ及び前記バタフライプロセッサに接続するフィードバックループ、ここで、前記フィードバックループは、もしイネーブルであれば、前記バタフライプロセッサに前記1次のカラムデータの前記データ要素の第1の部分を転送して1次元変換の追加の部分を実行するように構成される、ここで、もしディスエーブルであれば、前記トランスポーズRAMに前記カラムデータを転送するように構成される;
    ここで、前記入力レジスタは、その後、前記トランスポーズRAMからデータのローを受信するように構成される、前記バタフライプロセッサは、前記データのローからの選択されたデータ要素の対について1次元変換の一部分を実行して1次のローデータの出力を生成するように構成される、前記中間レジスタは、前記1次のローデータを一時的に記憶するように構成される、ここで、前記フィードバックループは、前記バタフライプロセッサに前記1次のローデータの前記データ要素の第1の部分を転送して1次元変換の追加の部分を実行するように構成される、ここで、もしディスエーブルであれば、出力レジスタに前記ローデータを転送するように構成される、
    を具備する、装置。
  22. 前記フィードバックループは、前記カラム若しくはローについて1次元変換が終了するとディスエーブルにされる、請求項21に記載の装置。
  23. 前記フィードバックループ及び前記中間レジスタに接続する少なくとも1の入力マルチプレクサをさらに具備する、ここで、各入力マルチプレクサは、データ要素を一時的に選択するように、及び前記適切なバタフライプロセッサにデータ要素を転送するように構成される、請求項21に記載の装置。
  24. 前記バタフライプロセッサ及び前記中間レジスタに接続する少なくとも1の出力マルチプレクサをさらに具備する、ここで、各出力マルチプレクサは、データ要素を一時的に選択するように、及び前記適切な中間レジスタにデータ要素を転送するように構成される、請求項21に記載の装置。
  25. 前記変換は、離散コサイン変換(DCT)、差分カッドツリー変換(DQT)、逆離散コサイン変換(IDCT)、及び逆差分カッドツリー変換(IDQT)からなるグループから選択される、請求項21に記載の装置。
  26. 前記トランスポーズRAMは、エンコードされたデータの2個のブロックを記憶するように設定可能である、請求項21に記載の装置。
  27. 前記保持レジスタに接続する書き込みマルチプレクサをさらに具備する、ここで、前記書き込みマルチプレクサは、前記1次元変換を終了させるためにデータ要素を再び順番に並べるように構成される、請求項21に記載の装置。
  28. 前記フィードバックループは、同一の構成要素がブロックサイズ、変換のタイプ若しくは数学演算のタイプに関係なく再使用されることを容認する、請求項21に記載の装置。
  29. 前記フィードバックループに接続された制御シーケンサをさらに具備する、ここで、前記制御シーケンサは、前記フィードバックループをイネーブル若しくはディスエーブルにするように構成される、請求項21に記載の装置。
  30. 前記制御シーケンサは、単一係数乗算器を有する前記バタフライプロセッサを与える、請求項29に記載の装置。
  31. 前記単一係数乗算器は、ビー・ジー・リーのアルゴリズムに基づく、請求項29に記載の装置。
  32. 前記制御シーケンサは、所定の基準に基づいて前記入力レジスタ、バタフライプロセッサ、中間レジスタ、若しくは出力レジスタのうちの特定の1つをイネーブルにする、請求項29に記載の装置。
  33. 前記数学演算は、足し算、掛け算、及び引き算からなるグループからである、請求項21に記載の装置。
  34. 各バタフライプロセッサは、1次元変換の一部分を実行する、請求項21に記載の装置。
  35. エンコードされたデータのブロックの前記変換は、一連の1次元変換として計算される、請求項21に記載の装置。
  36. エンコードされたデータブロックについてN個の1次元変換のカスケードとしてN次元変換を実行する装置であって、前記エンコードされたデータは複数のデータ要素を具備する、前記装置は:
    入力レジスタに接続されたバタフライプロセッサのクラスタ、各バタフライプロセッサは、データ要素の選択された対について1次元変換の一部分を実行して、複数の部分的に処理されたデータ要素を具備する部分的に処理されたデータの出力を生成するように構成される;
    各バタフライプロセッサに接続された少なくとも1の中間レジスタ、前記中間レジスタは、前記部分的に処理されたデータを一時的に記憶するように構成される;及び
    前記中間レジスタ及び前記バタフライプロセッサに接続されたフィードバックループ、ここで、前記フィードバックループは、前記適切なバタフライプロセッサに前記部分的処理されたデータ要素の選択された対を必要に応じて送って、1次元変換が終了するまで1次元変換の追加部分を実行するようにイネーブルにされる、
    を具備する、装置。
  37. 前記変換は、離散コサイン変換(DCT)、差分カッドツリー変換(DQT)、逆離散コサイン変換(IDCT)、及び逆差分カッドツリー変換(IDQT)からなるグループから選択される、請求項36に記載の装置。
  38. 前記エンコードされたデータのブロックは、ローデータ及びカラムデータとして表わすことができ、そして前記入力レジスタに接続されたトランスポーズリードオンリーメモリ(RAM)をさらに具備する、ここで、前記トランスポーズRAMは、前記カラムデータが処理されている間、前記ローデータを記憶するように構成される、及びここで、前記トランスポーズRAMは、前記ローデータが処理されている間、前記カラムデータを記憶するように構成される、請求項36に記載の装置。
  39. 前記トランスポーズRAMは、エンコードされたデータの2個のブロックを記憶するように設定可能である、請求項38に記載の装置。
  40. 前記フィードバックループは、同一の構成要素がブロックサイズ、変換のタイプ若しくは数学演算のタイプに関係なく再使用されること容認する、請求項36に記載の装置。
  41. 前記フィードバックループに接続された制御シーケンサをさらに具備する、ここで、前記制御シーケンサは、前記フィードバックループをイネーブル若しくはディスエーブルにするように構成される、請求項36に記載の装置。
  42. 前記制御シーケンサは、単一係数乗算器を有するバタフライプロセッサを与える、請求項41に記載の装置。
  43. 前記単一係数乗算器は、ビー・ジー・リーのアルゴリズムに基づく、請求項42に記載の装置。
  44. 前記制御シーケンサは、所定の基準に基づいて前記入力レジスタ、バタフライプロセッサ、中間レジスタ、若しくは出力レジスタのうちの特定の1つをイネーブルにする、請求項41に記載の装置。
  45. エンコードされたデータのブロックの逆離散コサイン変換を決定するための装置であって、前記エンコードされたデータのブロックは複数のデータ要素を具備する、前記装置は:
    所定の量のデータ要素を受信するように構成された入力レジスタ;
    前記入力レジスタに接続された少なくとも1のバタフライプロセッサ、前記バタフライプロセッサは、データ要素の選択された対について前記逆離散コサイン変換の少なくとも1の数学演算を実行して処理されたデータ要素の出力を生成するように構成される;
    前記バタフライプロセッサに接続された少なくとも1の中間レジスタ、前記中間レジスタは、前記処理されたデータ要素を一時的に記憶するように構成される;及び
    前記中間レジスタ及び前記バタフライプロセッサに接続されたフィードバックループ、ここで、前記フィードバックループは、もしイネーブルであれば、前記適切なバタフライプロセッサに処理されたデータ要素の第1の部分を転送して追加の数学演算を実行ように構成される、ここで、もしディスエーブルであれば、少なくとも1の保持レジスタに処理されたデータ要素の第2の部分を転送するように構成される;
    ここで、前記保持レジスタは、前記データ要素の第1の部分の全てがさらに処理されるまで前記処理されたデータ要素を記憶するように構成される、
    を具備する、装置。
  46. エンコードされたデータのブロックの変換を決定する装置であって、前記エンコードされたデータのブロックは、ローデータ及びカラムデータとして表わされることができ、各ロー及びカラムは、複数のデータ要素を具備する、前記装置は:
    前記エンコードされたデータのブロックを記憶するように構成されたトランスポーズランダムアクセスメモリ(RAM);
    前記トランスポーズRAMに接続された少なくとも1の入力レジスタ、前記入力レジスタは、前記トランスポーズRAMからデータのカラムを受信するように構成される;
    前記入力レジスタに接続された少なくとも1のバタフライプロセッサ、前記バタフライプロセッサは、1次のカラムデータの出力を生成するために前記カラムデータからデータ要素の選択された対について一次変換を実行するように構成される;
    前記バタフライプロセッサに接続された少なくとも1の中間レジスタ、前記中間レジスタは、前記1次のカラムデータを一時的に記憶するように構成される;
    前記中間レジスタ及び前記バタフライプロセッサに接続されたフィードバックループ、ここで、前記フィードバックループは、もしイネーブルであれば、前記バタフライプロセッサに前記1次のカラムデータの前記データ要素の第1の部分を転送して追加の変換を実行するように構成される、そしてここで、もしディスエーブルであれば、前記トランスポーズRAMに前記カラムデータを転送するように構成される;及び
    前記フィードバックループに接続された制御シーケンサ、ここで、前記制御シーケンサは、前記フィードバックループをイネーブル若しくはディスエーブルにするように構成される;
    ここで、前記入力レジスタは、その後、前記トランスポーズRAMからデータのローを受信するように構成される、前記バタフライプロセッサは、前記データのローからデータ要素の選択された対について1次の変換を実行して1次のローデータの出力を生成するように構成される、前記中間レジスタは、前記1次のローデータを一時的に記憶するように構成される、前記フィードバックループは、前記バタフライプロセッサに前記1次のローデータの前記データ要素の第1の部分を転送して追加の変換を実行するように構成される、ここで、もしディスエーブルであれば、前記ローデータを出力レジスタに転送するように構成される、
    を具備する、装置。
  47. エンコードされたデータのブロックの変換を決定するための方法であって、前記エンコードされたデータのブロックは、複数のデータ要素を具備する、前記方法は:
    (a) 所定の量のデータ要素を受信する、
    (b) データ要素の選択された対について少なくとも1の数学演算を実行して、処理されたデータ要素の出力を生成する、
    (c) 前記処理されたデータ要素のいずれが追加の数学演算が必要とするかどうか関する判断を行う、
    (d) 追加の数学演算が必要な処理されたデータ要素の第1の部分を選択する、
    (e) 追加の数学演算が必要でない処理されたデータ要素の第2の部分を選択する、
    (f) 選択された対の処理されたデータ要素の前記第1の部分について少なくとも1の数学演算を実行して、処理されたデータ要素の第2の出力を生成する、及び
    (g) 前記データ要素の第1の部分の全てが処理されるまで、保持レジスタで前記処理されたデータ要素の第2の部分を記憶する。
    を具備する、方法。
  48. (h) 必要に応じてステップ(c)、(d)、(e)、(f)及び(g)を繰り返す、をさらに具備する、請求項47に記載の方法。
  49. (i) 前記エンコードされたデータのブロックの前記データ要素の全てが追加の数学演算を必要としない場合、出力レジスタに前記エンコードされたデータのブロックを出力する、をさらに具備する、請求項47に記載の方法。
  50. 前記変換は、離散コサイン変換(DCT)、差分カッドツリー変換(DQT)、逆離散コサイン変換(IDCT)、及び逆差分カッドツリー変換(IDQT)からなるグループから選択される、請求項47に記載の方法。
  51. 前記エンコードされたデータのブロックは、ローデータ及びカラムデータとして表わすことができる、及び前記方法は:
    前記カラムデータが処理されている間、前記ローデータを記憶し;及び
    前記ローデータが処理されている間、前記カラムデータを記憶する、
    をさらに具備する、請求項47に記載の方法。
  52. 前記記憶するステップの前に、データ要素を再び順番に並べること、をさらに具備し、その結果、データ要素のその後の配信が効率的な方法で実行される、請求項47に記載の方法。
  53. 所定の基準に基づきステップ(a)、(b)、(c)、(d)、(e)、(f)、(g)及び(h)を制御する、をさらに具備する、請求項47に記載。
  54. 所定の基準に基づき特定のデータ要素に単一係数乗算を提供すること、をさらに具備する、請求項53に記載の方法。
  55. 前記単一係数乗算器は、ビー・ジー・リーのアルゴリズムに基づく、請求項54に記載の方法。
  56. 前記数学演算は、足し算、掛け算、及び引き算からなるグループからである、請求項47に記載の方法。
  57. 各バタフライプロセッサは、1次元変換の一部分を実行する、請求項47に記載の方法。
  58. エンコードされたデータのブロックの前記変換は、一連の1次元変換として計算される、請求項47に記載の方法。
  59. 一方法を実行するためにコンピュータシステムを制御するための構造を包含するコンピュータで読み取り可能なメディア、前記方法は:
    (a) 所定の量のデータ要素を受信すること;
    (b) データ要素の選択された対について少なくとも1の数学演算を実行して、処理されたデータ要素の出力を生成すること;
    (c) 前記処理されたデータ要素のいずれが追加の数学演算を必要とするかどうかに関する判断を行うこと;
    (d) 追加の数学演算を必要とする処理されたデータ要素の第1の部分を選択すること;
    (e) 追加の数学演算を必要としない処理されたデータ要素の第2の部分を選択すること;
    (f) データ要素の選択された対の前記第1の部分について少なくとも1の数学演算を実行して、処理されたデータ要素の第2の部分を生成すること、;及び
    (g) データ要素の前記第1の部分の全てが処理されるまで、処理されたデータ要素の前記第2の部分を記憶すること、
    を具備する方法である、コンピュータで読み取り可能なメディア。
  60. エンコードされたデータのブロックの変換を決定する装置あって、前記エンコードされたデータのブロックは複数のデータ要素を具備する、前記装置は:
    (a) 所定の量のデータ要素を受信するための手段;
    (b) データ要素の選択された対について少なくとも1の数学演算を実行して、処理されたデータ要素の出力を生成するための手段;
    (c) 前記処理されたデータ要素のいずれが追加の数学演算を必要とするかどうかに関する判断を行うための手段;
    (d) 追加の数学演算を必要とする処理されたデータ要素の第1の部分を選択するための手段;
    (e) 追加の数学演算を必要としない処理されたデータ要素の第2の部分を選択するための手段;
    (f) データ要素の前記第1の部分の選択された対について少なくとも1の数学演算を実行して、処理されたデータ要素の第2の部分を生成するための手段;及び
    (g) データ要素の前記第1の部分の全てが処理されるまで、処理されたデータ要素の前記第2の部分を記憶するための手段、
    を具備する装置。
  61. (h) 必要に応じて、ステップ(c)、(d)、(e)、(f)及び(g)を繰り返すための手段、をさらに具備する、請求項47に記載の装置。
  62. (i) 前記エンコードされたデータのブロックの前記データ要素の全てが、追加の数学演算を必要としない場合、前記エンコードされたデータの前記ブロックを出力するための手段、をさらに具備する、請求項47に記載の装置。
  63. 前記変換は、離散コサイン変換(DCT)、差分カッドツリー変換(DQT)、逆離散コサイン変換(IDCT)、及び逆差分カッドツリー変換(IDQT)からなるグループから選択される、請求項47に記載の装置。
  64. 前記エンコードされたデータの前記ブロックは、ローデータ及びカラムデータとして表わすことができる、前記装置は:
    前記カラムデータが処理されている間、前記ローデータを記憶するための手段;及び
    前記ローデータが処理されている間、前記カラムデータを記憶するための手段、
    をさらに具備する、請求項47に記載の装置。
  65. 前記記憶するステップの前にデータ要素を再び順番に並べるための手段、をさらに具備し、その結果、データ要素のその後の配信が効率的な方法で実行される、請求項47に記載の装置。
  66. 所定の基準に基づいて要素(a)、(b)、(c)、(d)、(e)、(f)、(g)、及び(h)を制御するための手段、をさらに具備する、請求項47に記載の装置。
  67. 所定の基準に基づいて、特定のデータ要素に単一係数乗算器を提供すること、をさらに具備する、請求項66に記載の装置。
  68. 前記単一係数乗算器は、ビー・ジー・リーのアルゴリズムに基づく、請求項67に記載の装置。
  69. 前記数学演算は、足し算、掛け算、及び引き算からなるグループからである、請求項60に記載の装置。
  70. 各バタフライプロセッサは、1次元変換の一部分を実行する、請求項60に記載の装置。
  71. エンコードされたデータの変換を決定する装置であって、前記エンコードされたデータはピクセルドメイン中に複数のデータ要素を具備する、前記装置は:
    前記複数のデータ要素を受信するように、そして前記ピクセルドメインにおいて複数のデータ要素グループへと前記要素をグループ分けするように構成されたブロックサイズアサイナ;
    前記ピクセルドメインから周波数ドメインへ前記データ要素を変換するように構成されたDCT/DQT変換器、前記変換器は:
    前記グループの所定の量のデータ要素を受信するように構成された入力レジスタ;
    前記入力レジスタに接続された少なくとも1のバタフライプロセッサ、前記バタフライプロセッサは、データ要素の選択された対について少なくとも1の数学演算を実行して処理されたデータ要素の出力を生成するように構成される;
    前記バタフライプロセッサに接続された少なくとも1の中間レジスタ、前記中間レジスタは、前記処理されたデータ要素を一時的に記憶するように構成される;及び
    前記中間レジスタ及び前記バタフライプロセッサに接続するフィードバックループ、をさらに具備する、ここで、前記フィードバックループは、もしイネーブルであれば、前記適切なバタフライプロセッサに処理されたデータ要素の第1の部分を転送して追加の数学演算を実行するように構成される、ここで、もしディスエーブルであれば、少なくとも1の保持レジスタに処理されたデータ要素の第2の部分を転送するように構成される;
    ここで、前記保持レジスタは、前記第1の部分のデータ要素の全てがさらに処理されるまで、前記処理されたデータ要素を記憶するように構成される;
    人間の視覚システムにより敏感な要素を強調するように、そして人間の視覚システムに敏感でない要素を強調しないように、前記周波数ドメイン要素を量子化するように構成されたコンタイザー;
    周波数ドメイン要素の順番に並べられたストリームを生成するように構成されたシリアライザー;及び
    連続する周波数ドメイン要素及び不連続の周波数ドメイン要素を決定するように構成された可変長コーダ、
    を具備する装置。
  72. 前記フィードバックループ及び前記中間レジスタに接続する少なくとも1の入力マルチプレクサをさらに具備する、ここで、各入力マルチプレクサは、データ要素を一時的に選択するように、及び前記適切なバタフライプロセッサにデータ要素を転送するように構成される、請求項71に記載の装置。
  73. 前記バタフライプロセッサ及び前記中間レジスタに接続する少なくとも1の出力マルチプレクサをさらに具備する、ここで、各出力マルチプレクサは、データ要素を一時的に選択するように、及び前記適切な中間レジスタにデータ要素を転送するように構成される、請求項71に記載の装置。
  74. 前記エンコードされたデータのブロックは、ローデータ及びカラムデータとして表わすことができる、及び、前記装置は、前記入力レジスタに接続されたトランスポーズランダムアクセスメモリ(RAM)をさらに具備する、ここで、前記トランスポーズRAMは、前記カラムデータが処理されている間、前記ローデータを記憶するように構成され、及びここで、前記トランスポーズRAMは、前記ローデータが処理されている間、前記カラムデータを記憶するように構成される、請求項71に記載の装置。
  75. 前記トランスポーズRAMは、エンコードされたデータの2個のブロックを記憶するように設定可能である、請求項74に記載の装置。
  76. 前記保持レジスタに接続する書き込みマルチプレクサをさらに具備する、ここで、前記書き込みマルチプレクサは、データ要素を再び順番に並べて1次元変換を終了するように構成される、請求項74に記載の装置。
  77. 前記フィードバックループは、同一の構成要素がブロックサイズに関係なく再使用されることを容認する、請求項71に記載の装置。
  78. 前記フィードバックループに接続された制御シーケンサをさらに具備する、ここで、前記制御シーケンサは、前記フィードバックループをイネーブル若しくはディスエーブルにするように構成される、請求項71に記載の装置。
  79. 前記制御シーケンサは、単一係数乗算器を有するバタフライプロセッサを提供する、請求項78に記載の装置。
  80. 前記制御シーケンサは、所定のイベントに基づいて前記入力レジスタのうちの特定の1つをイネーブルにする、請求項78に記載の装置。
  81. 前記制御シーケンサは、所定の基準に基づいて前記バタフライプロセッサのうちの特定の1つをイネーブルにする、請求項78に記載の装置。
  82. 前記制御シーケンサは、所定の基準に基づいて前記中間レジスタのうちの特定の1つをイネーブルにする、請求項78に記載の装置。
  83. 前記制御シーケンサは、所定の基準に基づいて前記出力レジスタのうちの特定の1つをイネーブルにする、請求項78に記載の装置。
  84. 前記数学演算は、足し算、掛け算、及び引き算からなるグループからである、請求項71に記載の装置。
  85. 各バタフライプロセッサは、1次元変換の一部分を実行する、請求項71に記載の装置。
  86. エンコードされたデータをピクセルドメインから周波数ドメインへ変換する方法であって、前記エンコードされたデータは複数のデータ要素を具備する、前記方法は:
    (a) 前記ピクセルドメイン中の前記複数のデータ要素を複数のブロックにグループ分けすること、各ブロックは前記ピクセルドメイン中に複数のデータ要素を具備する;
    (b) データ要素の選択された対について少なくとも1の数学演算を実行して、処理されたデータ要素の出力を生成すること;
    (c) 前記処理されたデータ要素のいずれかが追加の数学演算を必要とするかどうか関する判断を行うこと;
    (d) 追加の数学演算を必要とする処理されたデータ要素の第1の部分を選択すること;
    (e) 追加の数学演算を必要としない処理されたデータ要素の第2の部分を選択すること;
    (f) 前記第1の部分の処理されたデータ要素の選択された対について少なくとも1の数学演算を実行して処理されたデータ要素の第2の出力を生成すること;
    (g) 前記データ要素の第1の部分の全てが処理されるまで、処理されたデータ要素の前記第2の部分を記憶すること;
    (h) 前記データ要素の全てが追加の数学演算を必要としなくなるまで、及び周波数ドメイン要素に変換されるまで、必要に応じて、ステップ(c)、(d)、(e)、(f)及び(g)を繰り返すこと;
    (i) 人間の視覚システムにより敏感な要素を強調するように、及び前記人間の視覚システムに敏感でない要素を強調しないように前記周波数ドメインデータ要素を量子化すること;
    (j) 前記量子化された周波数ドメインデータ要素を順番に並べて周波数ドメイン要素の順番に並べられたストリームを生成すること;及び
    (k) 連続する周波数ドメイン要素及び不連続の周波数ドメイン要素を判断するために前記順番に並べられた周波数ドメイン要素をコーディングすること、
    を具備する方法。
  87. 前記エンコードされたデータのブロックは、ローデータ及びカラムデータとして表わすことができる、及び前記方法は:
    前記カラムデータが処理されている間、前記ローデータを記憶すること;及び
    前記ローデータが処理されている間、前記カラムデータを記憶すること、
    をさらに具備する、請求項86に記載の方法。
  88. 要求される制御信号に基づきステップ(a)、(b)、(c)、(d)、(e)、(f)、(g)及び(h)を制御する、をさらに具備する、請求項86に記載の方法。
  89. 所定の基準に基づき特定のデータ要素に単一係数乗算器を提供すること、をさらに具備する、請求項88に記載の方法。
  90. 各バタフライプロセッサは、1次元変換の一部分を実行する、請求項86に記載の方法。
  91. 前記バタフライプロセッサは、エンコードされたデータのブロックの前記変換を一連の1次元変換として実行する、請求項86に記載の方法。
JP2008329261A 2001-05-16 2008-12-25 バタフライプロセッサを使用して離散コサイン変換をエンコードしそして計算するための装置及び方法 Expired - Fee Related JP5507077B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US29146701P 2001-05-16 2001-05-16
US60/291,467 2001-05-16
US09/876,789 US6876704B2 (en) 2001-05-16 2001-06-06 Apparatus and method for encoding and computing a discrete cosine transform using a butterfly processor
US09/876,789 2001-06-06

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002589968A Division JP2005513588A (ja) 2001-05-16 2002-05-15 バタフライプロセッサを使用して離散コサイン変換をエンコードする及び計算する装置及び方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013029067A Division JP5623565B2 (ja) 2001-05-16 2013-02-18 バタフライプロセッサを使用して離散コサイン変換をエンコードしそして計算するための装置及び方法

Publications (3)

Publication Number Publication Date
JP2009177802A true JP2009177802A (ja) 2009-08-06
JP2009177802A5 JP2009177802A5 (ja) 2011-04-14
JP5507077B2 JP5507077B2 (ja) 2014-05-28

Family

ID=26966793

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2002589968A Pending JP2005513588A (ja) 2001-05-16 2002-05-15 バタフライプロセッサを使用して離散コサイン変換をエンコードする及び計算する装置及び方法
JP2008329261A Expired - Fee Related JP5507077B2 (ja) 2001-05-16 2008-12-25 バタフライプロセッサを使用して離散コサイン変換をエンコードしそして計算するための装置及び方法
JP2013029067A Expired - Fee Related JP5623565B2 (ja) 2001-05-16 2013-02-18 バタフライプロセッサを使用して離散コサイン変換をエンコードしそして計算するための装置及び方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2002589968A Pending JP2005513588A (ja) 2001-05-16 2002-05-15 バタフライプロセッサを使用して離散コサイン変換をエンコードする及び計算する装置及び方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013029067A Expired - Fee Related JP5623565B2 (ja) 2001-05-16 2013-02-18 バタフライプロセッサを使用して離散コサイン変換をエンコードしそして計算するための装置及び方法

Country Status (10)

Country Link
US (1) US6876704B2 (ja)
EP (1) EP1405206A2 (ja)
JP (3) JP2005513588A (ja)
KR (1) KR100944928B1 (ja)
CN (1) CN1518706B (ja)
AU (1) AU2002259268C1 (ja)
BR (1) BR0209639A (ja)
CA (2) CA2791788C (ja)
MX (1) MXPA03010424A (ja)
WO (1) WO2002093359A2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040005003A1 (en) * 2002-07-02 2004-01-08 Koninklijke Philips Electronics N.V. Quality improvement for FGS BL coding with U/V coarse quantization
JP2004120439A (ja) * 2002-09-26 2004-04-15 Nec Electronics Corp 画像処理装置及び画像処理方法
JP4617644B2 (ja) 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
US20060247769A1 (en) * 2005-04-28 2006-11-02 Sdgi Holdings, Inc. Polycrystalline diamond compact surfaces on facet arthroplasty devices
CN101223789A (zh) * 2005-07-15 2008-07-16 松下电器产业株式会社 图像编码装置以及图像编码方法
CN100450184C (zh) * 2006-07-12 2009-01-07 浙江大学 运用于图像编码和视频编码的离散余弦变换方法
KR100986285B1 (ko) * 2007-12-31 2010-10-12 (자)자유이엔씨 슬래브 매립형 박스 및 그 설치 방법
KR101619972B1 (ko) * 2008-10-02 2016-05-11 한국전자통신연구원 이산 여현 변환/이산 정현 변환을 선택적으로 이용하는 부호화/복호화 장치 및 방법
WO2010085125A2 (ko) * 2009-01-22 2010-07-29 삼성전자 주식회사 영상의 변환 방법 및 장치, 역변환 방법 및 장치
JP5741076B2 (ja) 2010-12-09 2015-07-01 ソニー株式会社 画像処理装置及び画像処理方法
US9852143B2 (en) * 2010-12-17 2017-12-26 Microsoft Technology Licensing, Llc Enabling random access within objects in zip archives
TWI449334B (zh) * 2011-01-26 2014-08-11 Novatek Microelectronics Corp 內插運算電路
US20130067237A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Providing random access to archives with block maps
US9442478B2 (en) 2011-11-30 2016-09-13 Infineon Technologies Ag Systems, circuits and a method for generating a configurable feedback
CN103957430B (zh) * 2014-03-28 2017-06-20 华为技术有限公司 离散余弦变换和负离散余弦变换的复用器
US10567800B2 (en) * 2016-11-29 2020-02-18 Qualcomm Incorporated Transform hardware architecture for video coding
CN107844451B (zh) * 2017-10-23 2020-11-20 复旦大学 一种级联板间流水线的“蝶式”传输方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05506340A (ja) * 1990-02-27 1993-09-16 カルコム・インコーポレイテッド 適応ブロック・サイズによる画像圧縮方法およびシステム
JPH06500880A (ja) * 1991-06-24 1994-01-27 アトメル・コーポレーション データ信号の時間―周波数および周波数―時間変換方法および装置
JPH0646405A (ja) * 1992-04-13 1994-02-18 Philips Electron Nv 画像変換器およびそれを具える送信機と受信機を持つテレビジョンシステム
JPH09179852A (ja) * 1995-12-13 1997-07-11 Samsung Electron Co Ltd リーのアルゴリズムを用いた逆離散コサイン変換システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5053985A (en) 1989-10-19 1991-10-01 Zoran Corporation Recycling dct/idct integrated circuit apparatus using a single multiplier/accumulator and a single random access memory
EP0566184A3 (en) 1992-04-13 1994-11-17 Philips Electronics Nv Image transformer as well as television system comprising a transmitter and a receiver provided with a transformer.
US5592399A (en) * 1993-05-26 1997-01-07 Intel Corporation Pipelined video encoder architecture
US5684534A (en) * 1993-05-26 1997-11-04 Intel Corporation Task-splitting dual-processor system for motion estimation processing
US6334219B1 (en) * 1994-09-26 2001-12-25 Adc Telecommunications Inc. Channel selection for a hybrid fiber coax network
EP0714212A3 (en) 1994-11-21 1999-03-31 SICAN, GESELLSCHAFT FÜR SILIZIUM-ANWENDUNGEN UND CAD/CAT NIEDERSACHSEN mbH Video decoder using concurrent processing and resource sharing
US5610849A (en) 1995-06-23 1997-03-11 United Microelectronics Corporation Real time two-dimensional discrete cosine transform/inverse discrete cosine transform circuit
DE69629442T2 (de) * 1995-12-06 2004-06-09 Harman Becker Automotive Systems (Xsys Division) Gmbh Verfahren und Einrichtung zur Kodierung digitaler Videosignale
TW465234B (en) * 1997-02-18 2001-11-21 Discovision Ass Single chip VLSI implementation of a digital receiver employing orthogonal frequency division multiplexing
US6397240B1 (en) * 1999-02-18 2002-05-28 Agere Systems Guardian Corp. Programmable accelerator for a programmable processor system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05506340A (ja) * 1990-02-27 1993-09-16 カルコム・インコーポレイテッド 適応ブロック・サイズによる画像圧縮方法およびシステム
JPH06500880A (ja) * 1991-06-24 1994-01-27 アトメル・コーポレーション データ信号の時間―周波数および周波数―時間変換方法および装置
JPH0646405A (ja) * 1992-04-13 1994-02-18 Philips Electron Nv 画像変換器およびそれを具える送信機と受信機を持つテレビジョンシステム
JPH09179852A (ja) * 1995-12-13 1997-07-11 Samsung Electron Co Ltd リーのアルゴリズムを用いた逆離散コサイン変換システム

Also Published As

Publication number Publication date
BR0209639A (pt) 2006-02-07
MXPA03010424A (es) 2004-04-02
JP2013153450A (ja) 2013-08-08
CA2791788C (en) 2016-05-31
JP5507077B2 (ja) 2014-05-28
CN1518706A (zh) 2004-08-04
JP2005513588A (ja) 2005-05-12
CN1518706B (zh) 2012-03-14
KR20040005962A (ko) 2004-01-16
US20020181027A1 (en) 2002-12-05
AU2002259268C1 (en) 2008-07-03
CA2446874A1 (en) 2002-11-21
US6876704B2 (en) 2005-04-05
WO2002093359A3 (en) 2004-01-29
CA2791788A1 (en) 2002-11-21
JP5623565B2 (ja) 2014-11-12
EP1405206A2 (en) 2004-04-07
WO2002093359A2 (en) 2002-11-21
CA2446874C (en) 2014-01-28
AU2002259268B2 (en) 2007-11-29
KR100944928B1 (ko) 2010-03-03

Similar Documents

Publication Publication Date Title
JP5623565B2 (ja) バタフライプロセッサを使用して離散コサイン変換をエンコードしそして計算するための装置及び方法
CN101399988B (zh) 减少位深的量子化方法
US5455874A (en) Continuous-tone image compression
JP3830009B2 (ja) データ処理システム及び色変換方法
JP4248754B2 (ja) データ処理方法及び装置
JP2007267384A (ja) 圧縮装置及び圧縮方法
US7649939B2 (en) Apparatus and method for decoding and computing a discrete cosine transform using a butterfly processor
AU2002259268A1 (en) Apparatus and method for encoding and computing a discrete cosine transform using a butterfly processor
US6996595B2 (en) Apparatus and method for consolidating output data from a plurality of processors
US20020191695A1 (en) Interframe encoding method and apparatus
JP3796432B2 (ja) フィルタ処理装置およびフィルタ処理方法
US8023563B2 (en) Method and system for processing signals via perceptive vectorial quantization, computer program product therefor
KR20100013142A (ko) 프레임 메모리 압축방법
US5594812A (en) Apparatus and method for compressing still images
JPH04220081A (ja) 画像データ復元方法及び装置
JP2887843B2 (ja) 画像データ復元方法および装置
JPH0646269A (ja) 静止画像データの伸長方法、圧縮方法及びそのための対応装置
JPH04220082A (ja) 画像データ復元方法及び装置
Dutoit et al. How are digital images compressed in the web?
AU2002310355A1 (en) Interframe encoding method and apparatus
JPH0583574A (ja) 画像データ符号化装置
JPH05207288A (ja) 画像符号化装置及び画像復号化装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120501

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120508

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120530

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120702

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140319

R150 Certificate of patent or registration of utility model

Ref document number: 5507077

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees