JP2005527911A - パイル処理・並列プロセッサ用のシステム及び方法 - Google Patents
パイル処理・並列プロセッサ用のシステム及び方法 Download PDFInfo
- Publication number
- JP2005527911A JP2005527911A JP2004508038A JP2004508038A JP2005527911A JP 2005527911 A JP2005527911 A JP 2005527911A JP 2004508038 A JP2004508038 A JP 2004508038A JP 2004508038 A JP2004508038 A JP 2004508038A JP 2005527911 A JP2005527911 A JP 2005527911A
- Authority
- JP
- Japan
- Prior art keywords
- data
- loop
- module
- exception
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 183
- 238000012545 processing Methods 0.000 title claims description 65
- 238000004590 computer program Methods 0.000 claims abstract description 10
- 238000004020 luminiscence type Methods 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims description 69
- 238000007906 compression Methods 0.000 claims description 30
- 230000006835 compression Effects 0.000 claims description 28
- 238000004422 calculation algorithm Methods 0.000 claims description 16
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000009826 distribution Methods 0.000 claims description 13
- 238000013139 quantization Methods 0.000 claims description 10
- 230000008901 benefit Effects 0.000 claims description 9
- 238000013144 data compression Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 5
- 238000009738 saturating Methods 0.000 claims description 3
- 238000005192 partition Methods 0.000 description 65
- 230000006870 function Effects 0.000 description 32
- 230000000875 corresponding effect Effects 0.000 description 15
- 230000008859 change Effects 0.000 description 14
- 230000009466 transformation Effects 0.000 description 11
- 230000015654 memory Effects 0.000 description 10
- 230000004224 protection Effects 0.000 description 10
- 230000002123 temporal effect Effects 0.000 description 10
- 230000006837 decompression Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000002441 reversible effect Effects 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 238000007792 addition Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 241000023320 Luma <angiosperm> Species 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005282 brightening Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/148—Wavelet transforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/62—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding by frequency transforming in three dimensions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
並列プロセッサは、要求されるアルゴリズムが、狭いデータ幅、シリアルデータ依存性又は頻出する制御ステートメント(例えば「if」、「for」、「while」ステートメント)を有する場合、高い処理能力を目的としてプログラミングをすることが難しい。プロセッサにおけるそのような問題を克服するために用いられる3タイプの並列処理がある。
多重化とパイプライン化との少なくとも一つを行う機能ユニットをプログラミングする従来の一般的な取り組みがあり、それは、同じ計算の複数のインスタンスを見つけるとともに、各インスタンスから対応する動作を同時に実行するものである。複数のインスタンスは、ループ・アンローリングの周知の技術によって、又は同一計算の別のソースによって作成することができる。
ここでプログラムA’を考察する。
そのような問題に対処するアプローチの一つは、保護された命令、複数プロセッサ上で利用可能な設備の使用を通じたものである。保護された命令は、命令が常に予測された機能ユニットを占有する意味で、加算オペランド(additional operand)としてブール値を指定するが、保護が偽(false)ならば、結果保持が抑制される。
プログラムA’を、次のようなプログラムD’にアンロールすることができる。
エンコーダは、別のものに入力一連シンボルを位置づけるものであり、コード化され、デコーダと呼ばれる他のプロセッサがコード化された一連の記号から入力される一連の記号を再構成できるような方法で一連の記号を再構成する。エンコーダ及びデコーダペアはコーデックと呼ばれる。
Prob(s2|s1) = (φs(s1, a)=s2 ) Prob(a|s1) + (φs(s1,〜a)=s2 ) Prob(〜a|s1)
によって計算される。
ビデオの「コーデック」(コンプレッサー/デコンプレッサ(decompressor))は、イメージ品質と、プロセッサ必要条件(すなわち、コスト/電力消費)と、圧縮比(すなわち、結果的に得られるデータ速度)と間で均衡を保つことにより、データ通信ストリームに要求されるデータ速度を小さくするために用いられる。現在のところ利用可能な圧縮アプローチは、トレード・オフの異なる範囲を提示し、複数のコーデック・プロファイルを生じさせ、各プロファイルが特定アプリケーションの要求を満たすように最適化される。
例外処理のシステム、方法及びコンピュータプログラムプロダクトを提供する。最初に、演算処理をループで行う。さらに、前記演算処理を行う間に、前記例外を識別するとともに格納する。その後、そのような例外を前記ループから分けて処理する。
なおかつさらに、前記演算処理が、クリッピングとサチュレーティングの少なくとも一つを含んでいてもよい。
可変モジュール具える、コーダとデコーダとの少なくとも一方のシステム及び方法を提供する。
圧縮データのシステム及び方法を提供する。使用に際し、予め設定された第一のレートでフレームのルミネセンスデータをアップデートするとともに、前記予め設定された第一のレート未満である予め設定された第二のレートでフレームのクロミナンスデータをアップデートする。
ここで、図2の処理のコンテキストで実施される「パイル」処理の様々な任意の特性に関するより多くの情報を示す。ここで記載のコンテキストでは、「パイル」は、メモリ(すなわち、RAM)に記憶させることができる逐次記憶オブジェクト(a sequential memory object)である。パイルを、逐次書き込まれるとともに、開始から順次に続いて読み込まれるよう意図することができる。複数の方法は、パイルオブジェクトで規定される。
1) 一つのパイルはCreate_Pile(P)方法によって作られる。これは、記憶域を割り当てするとともに内部状態変数を初期化する。
2) パイルに書き込む第一の方法は、Conditional_Append(pile,condition,record)である。この方法は、状態が真(true)の場合に限りレコードをパイルに付加する。
3) パイルが完全に書き込まれた場合に、Rewind_Pile(P)方法によって読込みに備える。これは、書かれた第一レコードで始まる読込みのための内部変数を整える。
4) 方法EOF(P)は、パイルのレコードの全てが読まれたかどうかを示す、ブール値(Boolean value)を作る。
5) 方法Pile_Read(P, record)はパイルPから次に続くレコードを読む。
6) 方法Destroy_Pile(P)は、その状態変数の全ての割り当てを取り消すことによって、パイルPを破壊する。
一例として、パイルPを用いて、プログラムD’(背景部分参照)を以下のプログラムE’に変換することができる。
上記プログラムE’における第2ループは、アンロールされないが、依然として効率的ではない。しかしながら、四つのパイル手段P1,P2,P3,P4によってプログラムE’を以下のプログラムF’に変形することができる。その結果、プログラムF’が、付随する効率向上を有してアンロールされた両ループを持つ。
パイルオブジェクトの実行及びその方法は、上記で定められた実行基準に合わせるために簡単なままである。例えば、実行方法は、Create_Pile及びDestroy_Pile以外に、インラインコードのほんの数命令である。さらに、実行は、分岐命令を含まない。
のとき実行させることができる。ポインタベースは、パイルに書くための第一位置を指し示す値を有する。それは、Create_Pile法によって設定する。
大きいがまれである「else」節(the large but “else”clause)の場合、保護された処理に替わるものは、パイル処理である。各例が開始したとき、「else」節は、入力データをアドレス可能なメモリ(すなわち、キャッシュ又はRAM)内のパイルに移送(transfer)する。コンテキストの一例では、パイルは、入力データに付加されたファイルのように振る舞う。これは、ポインタによって与えられたアドレスでメモリに書き込まれることによって達成される。ファイル処理では、ネクストライト(the next write)がちょうど終了したものに付加されるため、その後、ポインタが、書かれたデータのサイズだけ増分される。パイル処理では、ポインタの増分を保護状態にすることができる。保護が真である場合、ネクストライトは、ちょうど終了したものに付加される。保護が偽である場合、ポインタは増分されず、ネクストライトはちょうど終了したものにオーバーレイする。保護が例外的に真である場合、パイルは短く、かつ、「else」オペレーションを持つパイルの順次処理は、インスタンスの総数でなく真である保護(すなわち、if条件が偽)の数に比例する時間を要する。トレード・オフ(The trade-off)は、「else」オペレーションにおける蓄積(savings)対パイルの読み書きの追加のオーバーヘッドである。
A) 論理的/算術的計算で制御の変化の置換。例えば、a<0の場合、c=bとし、それ以外では、b*(a<0)は c=d が、c=(a<0 ? b:c)によって置換される。これは、c=b*(a<0)+d*(1-(a<0))によって順々に置換される。
B) 可変の値の置き換えを条件付きで抑制するための論理値を使用。
a<0の場合、c=b
c=b*(a<0)+c*(I-(a<0))となる。
プロセッサは、しばしば、この技術を実行する保護された命令が標準装備になっている。
C) b*(a<0)がb&(a<0 ? 0xffff : 0x0000)となる条件を課すための論理命令を使用(フィールド例は、16ビットかつ定数が16進法である。)。
D) 論理値を記憶アドレス及び配列添え字(array subscript)に用いる。これは、順番に書かれた添え字インデックスの前へ進むのを条件付きで抑えるパイリング技術を具えている。例えば、
a<0の場合、{c[i]=b; i++}
c[i]=b; i+= (a<0)となる。
この場合、コードの2要素は、厳密には等価でない。配列cは、最後に特別な保護インデックスを必要とする。ユーザは、iの最終値(final value)を調べることによって、cの直前値(last value)を切り捨てるかどうか見分けがつく。
算術的に区切られたプロセッサは、しばしば、各フィールドが独立して行動するADD命令を有する。これらプロセッサの一部は、別の種類のfield-by-field命令(例えば、右にシフトする分割算術右シフトが、あるフィールドを他のフィールドにシフトしないとともに、フィールドのMSB、サインビットを、ちょうど空いたMSBにコピーする。)を有する。
これらプロセッサの中には、マルチプル・コンディション・ビットを生成することによって、field-by-field 比較命令を有するものがある。そうでなければ、分割減数命令(the partitioned subtract instruction) は、多くの場合、この機能のサービスに押し込まれる(service)。この場合、a<bは、真を示すマイナス記号及び偽を示すプラス記号で、a-bとして計算される。フィールドの他のビットは関連がない。その結果、十分長いシフトを持つ分割算術右シフトによって、表2のC)における例を用いると、真である全ての1又は偽である全てのゼロのフィールドマスクに変換させることができる。この結果、二つの命令でマルチフィールド比較(a multi-field comparison)になる。
1.u = u & 0x8000によって無関連ビットをゼロにセット。
2.フィールド v = u>>15 のLSBにシフト(16ビット用論理右シフト)。
3.フィールドマスク w = (u-v) |uを作成。
4.xがゼロの場合に限り記号ビットがゼロであるため、ポジティブフィールドxで、分割ゼロテストを、x + 0x7fffによって実行できる。フィールドが符号化された場合、一例としてx |x + 0x7fffを用いることができる。記号ビットは、既に説明したように、フィールドマスクに変換させることができる。
所定の定数を規定することが有益である。各フィールド・パーティションのMSBポジションで「1」を除くゼロワードを、MSBという。各フィールド・パーティションのLSBポジションで「1」を除くゼロワードを、LSBという。ビット・パーティションにおけるビット数はBである。別の方法で指定しない場合は、全ワードは符号化されず(Uint)、全右シフトは、ゼロを左に充填する論理である。
表示間の変換は、少数のワード長の命令に対して一つを要するが、これら命令は、フィールド・パーティションの全てを同時に処理する。
一例として、MSB表現xを、ワード論理右シフト命令 y = (((Unit) x) >> B) によってLSB表現yに変換することができる。LSB表現xを、ワード論理左シフト命令 y = (((Unit) x) << B) によってMSB表現yに変換する。
マスク表現mを、non-MSBビットをクリアすることによってMSB表現に変換することができる。大抵のプロセッサでは、1ワードの全フィールド・パーティションを、単独「andnot」命令
でマスクからMSBに変換することができる。
MSB表現xからマスク表現zへの変換は、ワード長さ命令を用いて、次の手順で処理される。表4参照。
1.MSB表現xをLSB表現yに変換。
2.vを与えるためのxからyのワード減算。これは、ゼロであるMSBビットを除外するマスクである。
3.マスク結果zを与えるためのvとxとのワードOR論理。総手順は、
である。
1ワードのフィールド・パーティションの全ては、次のように、ZNZ xからMSB yに変換させることができる。MSB位置にゼロビットを有するとともにそれ以外では“1”ビットを有するワードにZNZを加算するワード加算命令を用いることができる。この加算の結果、MSB位置に適切なビットを持つが、その他のビット位置は、何も持たない。これは、non-MSBビットをクリアするための「andnot」命令を適用することによって、補われる(remedy)。
その他の表現は、上記のようにMSB表現から見い出す(reach)ことができる。
あるアプリケーション(例えば、エントロピコーデック)では、所定のビットを一個ずつ(one - by - one)ビットストリングの終わりまで付加することによって、ビットストリングを形成することが望まれる。本明細書では、フィールド・パーティション並列方法においてこれを行う方法を示す。フィールド・パーティション及び関連ビットストリングは、互いに独立し、並列命令の各表現に独立する。
1.入力ビット及び有効な条件の両方が、マスク表現で生じる。
2.情報ビットは、フィールド・パーティションが満たされるまで、条件付きで(すなわち、有効条件が真)付加される。
3.フィールド・パーティションが満たされた場合、それは、対応するフィールド・パーティション・ストリングスに付加される。通常、フィールド・パーティションの長さは、全て等しく、かつ、ワード長の約数である。
入力される情報ビットを(条件付きで)付加することができる。入力ビットマスク、バリッド・マスク及びビットポインタは、互いにワードワイズ「ANDed」であり、さらに、アキュムレータと「ORed」である。これは、大抵のプロセッサで1ワードにつき3命令実行を要する。
ビットがビットストリングのLSB終了時に付加されると仮定すると、フィールド・パーティションのLSBでアップデートされていないビットポインタは、フィールド・パーティションが充填されていることを示す。どんな場合でも、ビットポインタ・ワードは、ビットポインタ右の1位置のバリッド・フィールド・パーティションごとに回すことによってアップデートされる。これを行う方法は、下記表6のとおりである。
a) ビットポインタをLSBビット及びnon−LSBビットに分ける(2ワード「AND」命令)。
b) LSBでないビットワードを右に一つ論理シフトするワードで表現(1ワード「SHIFT」命令)
c) LSBでないビットワードをMSBポジション方向左に論理シフトするワードで表現(1ワード「SHIFT」命令)
d) b)及びc)の結果を一緒に「OR」ワードで表現(1ワード「OR」命令)。
e) d)の結果及びオリジナルビットポインタのビットワイズを一緒にmux(マルチプレクサ)する。muxを制御するバリッドマスク使用(大抵のプロセッサで1「XOR」,2「AND」及び1「OR」ワード命令)。
コーデックに要求される通常のオペレーションは、1ワードの1フィールドにおけるビットの順次読み出しである。フィールドxから取り出されるビットは、bit_pointerによって、単一「1」ビットを除く複数個の0(例えば、0x0200)のフィールド値に設計される。「1」ビットは、引き出されるビットで揃えられ、その結果、x&bit_pointerは、ビットから読み出される値に従ってゼロとなり又はゼロでなくなる。これは、上記のようにフィールドマスクに変換させることができる。このシーケンスの各命令は、1ワードのフィールド全部を同時に処理する。
関連ビットストリングのワードwの各フィールド・パーティションのビット・ポジションc:dを付加させたい場合には、定数cを、各フィールド・パーティションのビット・ポジションcの「1」を除いたゼロワードにさせる。同様に、定数dを、各フィールド・パーティションのビット・ポジションdの「1」を除いたゼロワードにさせる。さらに、次のオペレーションを実行する。表7参照。
A) bit_pointer qをcに初期化。q = c;
A1) CONDを全てtrueに初期化。
B) ワードワイズ bitand(ビット論理積) q with w
uは、ZNZ表現になる。
C) uを、ZNZ表現からマスク表現vに変換。
D) ここでvは、上記したようにビットストリング出力になる。全てtrueのCONDを使用。
E) cond = (q==d)処理が行われたか、そうでなければ、ワードワイズ論理の場合、ステップB)に戻ってqを右に一つ(q>>1)ループをシフト。
c及びdがフィールド・パーティションによって変化する場合には、c及びdは上記のままであるが、上記処理E)のテストは、ワードの全フィールド・パーティションについて同じであるのではなく、フィールド・パーティションによって変化する。この場合、全フィールド・パーティションが終了するまで、終了したフィールド・パーティションについてのスキャン・アウトを遊休させるのが望まれる。一例として、上記手順を表8における次のように変更することが望ましい。
1) ステップD)は、フィールド区分値が完全フィールド区分に対して偽であるとともに不完全フィールド区分に対して真である状態を必要とすることがある。これは、コードワードをCONDに対して”andnot”命令する処理を処理E)に追加することによって達成される。
2) CONDが全て偽でない場合、ステップE)におけるif状態を、B)に戻るように変更する必要がある。
したがって、以下の処理を開始する。
A) ビットポインタqをcに初期化。q=c
A1) CONDを全て真に初期化。
B) q及びwのワードワイズ(wordwise)bitand
uをZNZ表示にする。
C) uをZNZ表示からマスク表示vに変換。
D) vを、既に説明したようなビットストリング出力とすることができる。全て真のCONDの使用。
E1) cond=(q==d);
E2) COND==0の場合、処理を行う。それ以外の場合、ワードワイズ論理シフトq
right one(q<<1)を処理B)に戻す。
エントロピ符号化における共通動作は、フィールドを2値から1値に変換する動作であり、これは、値がnであるフィールドに対して、0が続くn個の1のストリングを生成する。大抵のアプリケーションにおいて、nの値は、1の平均を有する負の指数分布を有すると予測され、その結果、平均的には、出力において最後の0に付加された一つの“1”を有することを予測することができる。
White mask ≠0
X=X+dii
。この場合、ZNZ_2_maskを、上記変換をマスクするZNZとする。
Yを、既に説明したようなマスクを伴って出力。
飛び越しに対する典型的な供給ラテンシー(pipeline latency)の場合、見積もられた確率に従って上記ループを展開することを理解することができる。
while c,{s}の形態のループを有する場合、i回目の繰返しのc==真の確率をPiとし、演算c及び戻りのコストをC(c)とし、演算のコストをC(s)とする。sの他の実行は、演算の出力に影響を及ぼさないが、コストC(s)を被る。
表10
(破線)及び初期ループアンロールの最適数
を示す、グラフ800である。
エントロピコーディング適用に際しては、出力ビットは、1である確率0.5及びゼロである確率0.5を有する。しかもそれらは独立である。これら前提で、一例では次の計算を行う。
一実施の形態では、図1のコーダ部101とデコーダ部103との少なくとも一方は、可変モジュールを具える。本明細書のコンテキストでは、モジュールは、コーデック構成100によって用いられる圧縮アルゴリズムと関連した確率分布曲線の急勾配を反映する。例えば、モジュールは、確率分布の負の指数を有する。モジュールは、所望のパラメータの関数に従って変化するが、一実施の形態では、モジュールが、データの前回の一式のコンテキストに依存し、ここでは、データのそのような一式が、コーデック構成100の各種のモジュールによって処理されるビットの一式を引用する。さらに、モジュールは、実行長の関数に従う増加を回避する(すなわち、シーケンスで複数の同一ビット)。
1. 関数mpsは、各コンテキスト値を入力アルファベットIの値に位置付ける。コンテキストで与えられた、より起こり得る記号であるIの記号であることを意図する。
2. 関数deltaは、2kコンテキスト値のそれぞれを2-m(
)に位置付ける。関数deltaの意図は、次の記号の値の確率についての情報を量的に捕らえることである。
1)動的制約:
delta(context) = 2-m
ここで、m及びnは整数であり、deltaは、2の累乗の負の積分(negative integral power of two)である。次の記号がmps(context)によって与えられるもであることを要しないという条件付き確率を、delta(context)が近似するということを表している。
2)単調制約:
また、このような不等式の右辺は、前回読まれた記号が最も起こりそうであるということを与える最もあり得る記号を読む近似的な確率である。単調制約は、次の記号が最もあり得る確率を、更に起こり得る記号が減らさないという最もらしい状況を反映する。
表13
a)Aを複数のデルタとする。
b)コードシンボルを書き込んだ後にAを零にする。
c)コードシンボルを書き込んだ後の再正規化は必要ない。
表14
表15
表16
表17
さらに、delta(context)=Pcontexte*log2(1/Pcontext)/2となる。表14の式2)参照。
図12は、一実施の形態によるクロミナンスの一時的な割合の減少を伴ってデータを圧縮する方法1200を示す。一実施の形態において、この方法1200を、図1の変換モジュール102のコンテキスト及び可逆変換を行うように実施することができる。しかしながら、方法1200を任意の所望のコンテキストで実現することができる。
式#1.2.R
式#1.1.L及び1.2.L
式#2.1.R.inv,2.2.R.inv,2.1.L.inv及び2.2.L.inv
Claims (49)
- 例外を処理する方法であって、
演算処理をループで行い、
前記演算処理をループで行う間に、前記例外を識別し、
前記演算処理をループで行う間に、前記例外を格納し、
前記例外を前記ループから分けて処理することを特徴とする方法。 - 前記演算処理が、無効数字を含むことを特徴とする、請求項1記載の方法。
- 前記計算に関する演算が、複数個のゼロを計数することを含むことを特徴とする、請求項2記載の方法。
- 前記計算に関する演算が、クリッピングとサチュレーティングの少なくとも一つを含むことを特徴とする、請求項1記載の方法。
- 前記例外が、有効数字を含むことを特徴とする、請求項1記載の方法。
- 前記例外が、ゼロでないデータを含むことを特徴とする、請求項5記載の方法。
- 前記演算処理を、変換モジュールを利用して少なくとも部分的に行うことを特徴とする、請求項1記載の方法。
- 前記演算処理を、量子化モジュールを利用して少なくとも部分的に行うことを特徴とする、請求項1記載の方法。
- 前記演算処理を、エントロピコードモジュールを利用して少なくとも部分的に行うことを特徴とする、請求項1記載の方法。
- 前記格納が、例外を処理するために要求される格納データを含むことを特徴とする、請求項1記載の方法。
- 前記処理を、データを圧縮するために実行することを特徴とする、請求項1記載の方法。
- 前記データを、逆相関変換を用いて圧縮することを特徴とする、請求項11記載の方法。
- 前記データを、ウェーブレット変換を用いて圧縮することを特徴とする、請求項11記載の方法。
- 前記データを、離散的コサイン変換を用いて圧縮することを特徴とする、請求項11記載の方法。
- 例外を処理するコンピュータプログラムプロダクトであって、
演算処理をループで行うコンピュータコードと、
前記演算処理をループで行う間に、前記例外を識別するコンピュータコードと、
前記演算処理をループで行う間に、前記例外を格納するコンピュータコードと、
前記例外を前記ループから分けて処理するコンピュータコードとを具えることを特徴とするコンピュータプログラムプロダクト。 - 例外を処理するシステムであって、
変換モジュール、量子化モジュール及びエントロピコードモジュールからなる群から選択した少なくとも一つのデータ圧縮モジュールを具え、
前記少なくとも一つのデータ圧縮モジュールが、演算処理をループで行い、前記演算処理をループで行う間に、前記例外を識別し、前記演算処理をループで行う間に、前記例外を格納し、前記例外を前記ループから分けて処理するように適合されたことを特徴とするシステム。 - 可変モジュールを具えることを特徴とするコーダ。
- 前記モジュールが、圧縮アルゴリズムと関連した確率分布曲線の急勾配を反映することを特徴とする、請求項17記載のコーダ。
- 前記モジュールが、確率分布の負の指数を有することを特徴とする、請求項18記載のコーダ。
- 前記確率分布がコーデックに適合することを特徴とする、請求項18記載のコーダ。
- 前記コーデックが、所定のパフォーマンスレベルを与えられた、最小限の計算上の複雑性を利用するために設計されることを特徴とする、請求項18記載のコーダ。
- 前記モジュールが、データの前回の一式のコンテキストに依存することを特徴とする、請求項17記載のコーダ。
- 前記モジュールが、実行長の関数に従う増加を回避することを特徴とする、請求項17記載のコーダ。
- 前記実行長が、シーケンスで複数の同一ビットを有することを特徴とする、請求項23記載のコーダ。
- 前記コーダが、エントロピコードを有することを特徴とする、請求項17記載のコーダ。
- 可変モジュールを具えることを特徴とするデコーダ。
- 圧縮アルゴリズムと関連した確率分布曲線の急勾配を反映することを特徴とする、請求項26記載のデコーダ。
- 前記モジュールが、確率分布の負の指数を有することを特徴とする、請求項27記載のデコーダ。
- 前記確率分布がコーデックに適合することを特徴とする、請求項27記載のデコーダ。
- 前記コーデックが、所定のパフォーマンスレベルを与えられた、最小限の計算上の複雑性を利用するために設計されることを特徴とする、請求項27記載のデコーダ。
- 前記モジュールが、データの前回の一式のコンテキストに依存することを特徴とする、請求項26記載のデコーダ。
- 前記モジュールが、実行長の関数に従う増加を回避することを特徴とする、請求項26記載のデコーダ。
- 前記実行長が、シーケンスで複数の同一ビットを有することを特徴とする、請求項32記載のデコーダ。
- 前記デコーダが、エントロピコードを有することを特徴とする、請求項26記載のコーダ。
- 圧縮アルゴリズムと関連した確率分布曲線の急勾配を反映し、かつ、実行長とともに増加しない可変モジュールを具えるコーデックを用いる方法。
- ビデオデータを圧縮する方法であって、
予め設定された第一のレートでフレームのルミネセンスデータをアップデートし、
前記予め設定された第一のレート未満である予め設定された第二のレートでフレームのクロミナンスデータをアップデートすることを特徴とする方法。 - 前記クロミナンスデータの一以上の周波数帯域を除外することを特徴とする、請求項36記載の方法。
- 前記一以上の周波数帯域を、フィルタを用いて除外することを特徴とする、請求項37記載の方法。
- 前記フィルタがウェーブレットフィルタを有することを特徴とする、請求項38記載の方法。
- さらに、ビデオデータの圧縮解除の際に前記クロミナンスデータの除外された部分を補完することを特徴とする、請求項37記載の方法。
- ビデオデータを圧縮するコンピュータプログラムプロダクトであって、
予め設定された第一のレートでフレームのルミネセンスデータをアップデートするコンピュータコードと、
前記予め設定された第一のレート未満である予め設定された第二のレートでフレームのクロミナンスデータをアップデートするコンピュータコードとを具えることを特徴とするコンピュータプログラムプロダクト。 - 前記クロミナンスデータの一以上の周波数帯域を除外することを特徴とする、請求項41記載のコンピュータプログラムプロダクト。
- 前記一以上の周波数帯域を、フィルタを用いて除外することを特徴とする、請求項42記載のコンピュータプログラムプロダクト。
- 前記フィルタがウェーブレットフィルタを有することを特徴とする、請求項43記載のコンピュータプログラムプロダクト。
- さらに、ビデオデータの圧縮解除の際に前記クロミナンスデータの除外された部分を補完することを特徴とする、請求項42記載のコンピュータプログラム。
- ビデオデータを圧縮する方法であって、
ビデオデータを圧縮し、
前記圧縮されたデータで停止情報を挿入し、
前記停止情報を、前記ビデオデータがその再生中に停止された場合に用いることを特徴とする方法。 - 前記停止情報を、再生されたビデオデータの質を向上させるために用いることを特徴とする、請求項46記載の方法。
- 前記停止情報が、高解像度フレームを有することを特徴とする、請求項47記載の方法。
- 前記停止情報が、高解像度フレームを構成するために用いることができるデータを有することを特徴とする、請求項47記載の方法。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US38525102P | 2002-05-28 | 2002-05-28 | |
US38525002P | 2002-05-28 | 2002-05-28 | |
US38525302P | 2002-05-28 | 2002-05-28 | |
US39049202P | 2002-06-21 | 2002-06-21 | |
US39034502P | 2002-06-21 | 2002-06-21 | |
PCT/US2003/016908 WO2003100655A1 (en) | 2002-05-28 | 2003-05-28 | Systems and methods for pile-processing parallel-processors |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005527911A true JP2005527911A (ja) | 2005-09-15 |
JP2005527911A5 JP2005527911A5 (ja) | 2006-07-06 |
Family
ID=29587921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004508038A Pending JP2005527911A (ja) | 2002-05-28 | 2003-05-28 | パイル処理・並列プロセッサ用のシステム及び方法 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1527396A4 (ja) |
JP (1) | JP2005527911A (ja) |
CN (1) | CN100390781C (ja) |
AU (1) | AU2003232418A1 (ja) |
WO (1) | WO2003100655A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102013213414A1 (de) * | 2013-07-09 | 2015-01-15 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Durchführung einer Modellberechnungeines datenbasierten Funktionsmodells |
CN104965461A (zh) * | 2015-07-03 | 2015-10-07 | 武汉华中数控股份有限公司 | 一种可支持触摸的总线式手持单元 |
RU2634171C1 (ru) * | 2016-12-12 | 2017-10-24 | Акционерное общество "Лаборатория Касперского" | Способ выполнения кода интерпретатором |
KR102414583B1 (ko) * | 2017-03-23 | 2022-06-29 | 삼성전자주식회사 | 머신 러닝을 수행하는 전자 장치 및 머신 러닝 수행 방법 |
CN115623212A (zh) * | 2018-05-10 | 2023-01-17 | 夏普株式会社 | 对比特流进行子划分区间的方法和电子装置 |
CN112995637B (zh) * | 2021-03-10 | 2023-02-28 | 湘潭大学 | 一种基于三维离散小波变换的多剖面医学图像压缩方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5909572A (en) * | 1996-12-02 | 1999-06-01 | Compaq Computer Corp. | System and method for conditionally moving an operand from a source register to a destination register |
US5893145A (en) * | 1996-12-02 | 1999-04-06 | Compaq Computer Corp. | System and method for routing operands within partitions of a source register to partitions within a destination register |
WO2001031430A1 (fr) * | 1999-10-29 | 2001-05-03 | V-Sync Co., Ltd. | Systeme de base de donnees |
JP3613454B2 (ja) * | 1999-11-15 | 2005-01-26 | 日本電気株式会社 | コンパイラ装置、および、コンパイラが格納されたコンピュータ読み取り可能な記録媒体 |
JP4267173B2 (ja) * | 2000-05-01 | 2009-05-27 | トヨタ自動車株式会社 | 異常診断システム |
-
2003
- 2003-05-28 AU AU2003232418A patent/AU2003232418A1/en not_active Abandoned
- 2003-05-28 CN CNB038177501A patent/CN100390781C/zh not_active Expired - Fee Related
- 2003-05-28 WO PCT/US2003/016908 patent/WO2003100655A1/en active Application Filing
- 2003-05-28 JP JP2004508038A patent/JP2005527911A/ja active Pending
- 2003-05-28 EP EP03755529A patent/EP1527396A4/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP1527396A4 (en) | 2008-03-12 |
AU2003232418A1 (en) | 2003-12-12 |
CN1672147A (zh) | 2005-09-21 |
WO2003100655A1 (en) | 2003-12-04 |
CN100390781C (zh) | 2008-05-28 |
EP1527396A1 (en) | 2005-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7262719B2 (en) | Fast data stream decoding using apriori information | |
KR100624432B1 (ko) | 내용 기반 적응적 이진 산술 복호화 방법 및 장치 | |
EP0621543B1 (en) | Inverse discrete cosine transform processor | |
US6031940A (en) | System and method for efficiently encoding video frame sequences | |
US5740283A (en) | Digital video compression utilizing mixed vector and scalar outputs | |
US5710835A (en) | Storage and retrieval of large digital images | |
US6677869B2 (en) | Arithmetic coding apparatus and image processing apparatus | |
JP5623565B2 (ja) | バタフライプロセッサを使用して離散コサイン変換をエンコードしそして計算するための装置及び方法 | |
USRE39925E1 (en) | Fast JPEG huffman encoding and decoding | |
JPH08111642A (ja) | Mpeg規格の音声映像デコーダ及び音声映像をデコードする方法 | |
US5880979A (en) | System for providing the absolute difference of unsigned values | |
US8326059B2 (en) | Method and apparatus for progressive JPEG image decoding | |
JP2007267384A (ja) | 圧縮装置及び圧縮方法 | |
KR19990087552A (ko) | 멀티미디어 정보용 역코사인 변환 함수를 수행하는 컴퓨터시스템 | |
US6737993B2 (en) | Method and apparatus for run-length encoding data values | |
US5742529A (en) | Method and an apparatus for providing the absolute difference of unsigned values | |
JP2005527911A (ja) | パイル処理・並列プロセッサ用のシステム及び方法 | |
US20110072251A1 (en) | Pile processing system and method for parallel processors | |
US5784011A (en) | Multiplier circuit for performing inverse quantization arithmetic | |
US20070154102A1 (en) | Image decompression system, method and program | |
KR20050023280A (ko) | 페러렐 프로세서를 파일-프로세싱하기 위한 시스템 및 방법 | |
US7893851B2 (en) | Encoding apparatus, method, and processor | |
CN118354076A (zh) | 基于fpga的png图像编码架构 | |
JP2000196460A (ja) | 注目しているデジタルイメージデータと連続したデジタルイメージデータとを符号化及び復号化するための方法と装置 | |
Markas | Hardware implementations of data compression algorithms for aerospace type applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060519 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060519 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060912 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080617 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080912 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080922 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081215 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090303 |