JP2010258927A - 符号データ処理装置、方法及びプログラム - Google Patents
符号データ処理装置、方法及びプログラム Download PDFInfo
- Publication number
- JP2010258927A JP2010258927A JP2009108686A JP2009108686A JP2010258927A JP 2010258927 A JP2010258927 A JP 2010258927A JP 2009108686 A JP2009108686 A JP 2009108686A JP 2009108686 A JP2009108686 A JP 2009108686A JP 2010258927 A JP2010258927 A JP 2010258927A
- Authority
- JP
- Japan
- Prior art keywords
- code data
- code
- pes
- length
- data
- 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
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】エントロピー符号に基づく符号データ列を効率的に復号すること。
【解決手段】本発明にかかる符号データ処理装置は、複数のPE(Processor Elements)を有し、エントロピー符号に基づく符号データ列を復号するものであり、符号データ列から基準位置に基づく固定長の符号データを抽出する抽出処理を、符号データ列の全てのビットを基準位置として行い、抽出された複数の符号データを複数のPEへ分配して入力する分配入力手段と、分配入力手段により入力された符号データに対応する復号データと、当該符号データの内、有効なデータの長さである符号長とを特定する復号処理を、当該複数のPE毎に並列して実行させる並列復号手段と、並列復号手段により特定された復号データ及び符号長を用いて、符号データ列に対応する復号データ列を生成する生成手段と、を備える。
【選択図】図1
【解決手段】本発明にかかる符号データ処理装置は、複数のPE(Processor Elements)を有し、エントロピー符号に基づく符号データ列を復号するものであり、符号データ列から基準位置に基づく固定長の符号データを抽出する抽出処理を、符号データ列の全てのビットを基準位置として行い、抽出された複数の符号データを複数のPEへ分配して入力する分配入力手段と、分配入力手段により入力された符号データに対応する復号データと、当該符号データの内、有効なデータの長さである符号長とを特定する復号処理を、当該複数のPE毎に並列して実行させる並列復号手段と、並列復号手段により特定された復号データ及び符号長を用いて、符号データ列に対応する復号データ列を生成する生成手段と、を備える。
【選択図】図1
Description
本発明は、符号データ処理装置、方法及びプログラムに関し、特に、エントロピー符号に基づく符号データ列を復号する符号データ処理装置、方法及びプログラムに関する。
近年、自動車等の組み込み分野においても車載カメラを用いて運転者に注意を促すシステム等が実用化されている。このようなマルチメディアの処理は大量のデータを扱うため、組み込み用途のプロセッサでは時間がかかる事が多い。
一般に、マルチメディアの処理は、大量のデータに似たような処理を行う場面が多く、SIMD(Single Instruction Multiple Data)プロセッサ等の並列処理が可能なプロセッサを用いると効率良く処理が可能であることが知られている。
一方、組み込み分野ではメモリ等の資源が限られているため、データの圧縮及び伸張が必要な場面も多い。静止画像の圧縮で有名なJPEG(Joint Photographic Experts Group)にもエントロピー符号の一種であるハフマン符号が利用されており、これらの処理の高速化が望まれている。
特許文献1には、ハフマン符号化されたデータを復号化する際のハフマン符号のサーチを高速かつ少ないサーチテーブルで行う復号化方法に関する技術が開示されている。特許文献1では、ハフマン符号を、符号長が8ビットまでの第1のグループと、9ビットから12ビットまでの第2のグループと、13ビット以上の第3のグループに分け、第1乃至第3のグループのハフマン符号をアドレスとし、そのアドレスに、対応する符号長、有効係数を示したデータを書き込む事により、第1乃至第3のサーチテーブルを予め展開しておき、ハフマン符号化されたデータの符号長及び有効係数を、第1乃至第3のサーチテーブルを参照して確定する事により、目的のハフマン符号をサーチし、復号化する。
図7は、特許文献1にかかるハフマン符号の復号方法の流れを示すフローチャート図である。まず、変数VDにハフマンデータを代入(S71)し、第1のサーチテーブルについて参照する(S72及びS73)。これにより、符号長が導き出される。
ここで、符号長が8ビット以下であれば(S74のNO)、第1のサーチテーブルにより正しい符号長が導き出されたこととなる。その後、符号長、グループ番号分だけ、左シフトして次のテーブルをサーチする(S80)。また、符号長が9ビット以上であれば(S74のYES)、第2のサーチテーブルについて参照する(S75及びS76)。この時点では、符号長が9ビット以上である事しか分からないためである。これにより、符号長が導き出される。
ここで、符号長が9ビット以上12ビット以下であれば(S77のNO)、第2のサーチテーブルにより正しい符号長が導き出されたこととなる。その後、符号長、グループ番号分だけ、左シフトして次のテーブルをサーチする(S80)。また、符号長が13ビット以上であれば(S77のYES)、第3のサーチテーブルについて参照(S78及びS79)し、13ビット以上のコードを確定する。これにより、符号長が導き出される。このように、特許文献1では、最大でもテーブルを3回参照する事で、目的のハフマンテーブルを見つけることができる。
しかしながら、特許文献1には、複数のプロセッサを用いて並列処理する場合に、効率よく復号化を行うことができないという問題点がある。ここで、エントロピー符号は、出現確率が高いシンボルには短い符号語長を、出現確率が低いシンボルには長い符号語長を割り当てるという性質がある。そのため、復号を行う場合は現在先頭にある符号語が可変長であるという理由から、先頭のデータを一度復号し、それと同時に対応する符号長(ビット長)を確定しないと、次のデータの先頭位置の特定ができない。
本発明の第1の態様にかかる符号データ処理装置は、複数のPE(Processor Elements)を有し、エントロピー符号に基づく符号データ列を復号する符号データ処理装置であって、前記符号データ列から基準位置に基づく固定長の符号データを抽出する抽出処理を、前記符号データ列の全てのビットを基準位置として行い、抽出された複数の符号データを前記複数のPEへ分配して入力する分配入力手段と、前記分配入力手段により入力された符号データに対応する復号データと、当該符号データの内、有効なデータの長さである符号長とを特定する復号処理を、当該複数のPE毎に並列して実行させる並列復号手段と、前記並列復号手段により特定された復号データ及び符号長を用いて、前記符号データ列に対応する復号データ列を生成する生成手段と、を備える。
本発明の第2の態様にかかる符号データ処理方法は、複数のPE(Processor Elements)を有する符号データ処理装置を用いて、エントロピー符号に基づく符号データ列を復号する符号データ処理方法であって、前記符号データ列から基準位置に基づく固定長の符号データを抽出する抽出処理を、前記符号データ列の全てのビットを基準位置として行い、抽出された複数の符号データを前記複数のPEへ分配して入力する分配入力ステップと、前記分配入力ステップにより入力された符号データに対応する復号データと、当該符号データの内、有効なデータの長さである符号長とを特定する復号処理を、当該複数のPE毎に並列して実行させる並列復号ステップと、前記並列復号ステップにより特定された復号データ及び符号長を用いて、前記符号データ列に対応する復号データ列を生成する生成ステップと、を含む。
本発明の第3の態様にかかる符号データ処理プログラムは、エントロピー符号に基づく符号データ列を復号する符号データ処理を、複数のPE(Processor Elements)を備えるコンピュータに実行させる符号データ処理プログラムであって、前記符号データ列から基準位置に基づく固定長の符号データを抽出する抽出処理を、前記符号データ列の全てのビットを基準位置として行い、抽出された複数の符号データを複数のPEへ分配して入力する分配入力ステップと、前記分配入力ステップにより入力された符号データに対応する復号データと、当該符号データの内、有効なデータの長さである符号長とを特定する復号処理を、当該複数のPE毎に並列して実行させる並列復号ステップと、前記並列復号ステップにより特定された復号データ及び符号長を用いて、前記符号データ列に対応する復号データ列を生成する生成ステップと、を備える。
上述した本発明の第1、第2及び第3の態様にかかるにかかる符号データ処理装置、方法及びプログラムによれば、エントロピー符号に基づく符号データ列の全てのビットを復号処理における先頭位置とみなして固定長の符号データを抽出し、抽出した各符号データを複数のPEに入力することで、複数のPE毎に復号処理を並列に行わせるものである。そして、復号処理により特定された復号データ及び符号長を用いることにより、入力された符号データ列に対応する復号データ列を生成するものである。これにより、符号データ列の先頭のデータの復号結果を待つことなく、全ての復号結果を得ることができる。そのため、得られた復号結果の中から、符号長を用いて先頭から復号データを結合することにより、入力された符号データ列に対応する復号データ列を生成することができる。
本発明により、エントロピー符号に基づく符号データ列を効率的に復号する符号データ処理装置、方法及びプログラムを提供することができる
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
<発明の実施の形態1>
図1は、本発明の実施の形態1にかかる符号データ処理装置100の構成を示すブロック図である。符号データ処理装置100は、エントロピー符号に基づく符号データ列を復号する並列処理プロセッサである。符号データ処理装置100は、符号データ処理装置100は、コントロールユニット1と、バス2と、PE(Processor Elements)群3とを備えるSIMD(Single Instruction Multiple Data)型プロセッサである。ここでは、PE群3は、PE3a、3b、3c、・・・及び3nという128個のPEを含むものとする。
図1は、本発明の実施の形態1にかかる符号データ処理装置100の構成を示すブロック図である。符号データ処理装置100は、エントロピー符号に基づく符号データ列を復号する並列処理プロセッサである。符号データ処理装置100は、符号データ処理装置100は、コントロールユニット1と、バス2と、PE(Processor Elements)群3とを備えるSIMD(Single Instruction Multiple Data)型プロセッサである。ここでは、PE群3は、PE3a、3b、3c、・・・及び3nという128個のPEを含むものとする。
コントロールユニット1は、バス2を介してPE群3を制御する制御装置である。コントロールユニット1は、分配入力手段と、並列復号手段と、生成手段として機能する。分配入力手段は、符号データ列から基準位置に基づく固定長の符号データを抽出する抽出処理を、符号データ列の全てのビットを基準位置として行う。そして、分配入力手段は、抽出された複数の符号データをPE群3へ分配して入力する。並列復号手段は、入力された符号データについての復号処理を、PE3a、3b、3c、・・・及び3n毎に並列して実行させる。生成手段は、PE群3により出力された復号データ及び符号長を用いて、前記符号データ列に対応する復号データ列を生成する。
具体的には、まず、分配入力手段は、PE群3の個数であるPE数の基準位置について抽出処理を行う。次に、分配入力手段は、抽出されたPE数の符号データをPE群3のそれぞれへ均等に分配して入力しる。そして、分配入力手段は、入力した符号データについての並列復号手段における復号処理が終了した後に、未抽出の基準位置について抽出処理を行う。このようにして、符号データ処理装置100は、分配入力手段及び並列復号手段を繰り返すとよい。これにより、入力された符号データ列を効率よく、PE群3に分配することができる。
さらに次のようにすることが望ましい。まず、分配入力手段は、符号データ列から1ビットずつPE数回シフトした符号データ列の各先頭位置を基準位置として、当該基準位置から固定長を符号データとして抽出して抽出処理を行う。次に、分配入力手段は、抽出されたPE数の符号データをPE群3へ一つずつ分配して入力する。そして、分配入力手段は、入力した符号データについての並列復号手段における復号処理が終了した後に、基準位置をPE数のビット分シフトした符号データ列の各先頭位置を基準位置として、抽出処理を行う。このようにして、符号データ処理装置100は、分配入力手段及び並列復号手段を繰り返すとさらによい。これにより、入力された符号データ列をビット単位で漏れなく、PE群3に分配することができる。
また、生成手段は、符号データ列の先頭位置を含む第1の符号データに対応する復号データに、当該第1の符号データに対応する符号長分のビットを当該先頭位置からシフトした基準位置における第2の符号データに対応する第2の復号データを連結することにより、復号データ列を生成することが望ましい。これにより、同時に特定された複数の復号データの中から効率よく、必要な復号データを選択して、結合することができる。
PE3a、3b、3c、・・・及び3nは、バス2を介して、コントロールユニット1からの指示に応じて動作する。PE3a、3b、3c、・・・及び3nは、入力された符号データに対応する復号データと、当該符号データの内、有効なデータの長さである符号長とを特定する復号処理を行う。また、PE3a、3b、3c、・・・及び3nは、それぞれに復号処理に用いるルックアップテーブル4及びバッファを備える。
ルックアップテーブル4は、符号値と、復号データと、符号長とを対応付けて格納する記憶領域である。ルックアップテーブル4は、符号値により一意に復号データ及び符号長を特定できるようにデータが格納されている。ここで、エントロピー符号は、符号化前の元データ列について、出現確率が高いシンボルにはより短い符号長、出現確率が低いシンボルにはより長い符号長を割り当てるものである。して、エントロピー符号は、先頭のビットからのビットの組み合わせが一意となるものである。そこで、符号値は、エントロピー符号に基づき符号化された符号を先頭から一部分又は全ての桁に含む符号データである。また、符号値の長さは、当該符号化された符号の最大長以上である。ここでは、符号値の長さを8ビットとする。つまり、符号値は、8ビットの固定長の符号データである。復号データは、符号値に対応する復号値である。符号長は、符号値の内、有効なデータの長さである。つまり、符号値は、8ビットの内、先頭から符号長の分が実際の符号である。
ここで、図4は、本発明の実施の形態1にかかるルックアップテーブル4の例である。例えば、符号値"01100111"において、復号データ"a"、符号長"3"である。そのため、符号値"01100111"の内、実際に有効なデータは、先頭の3桁である"011"となる。そして、"011"に対応する復号データが"a"である。
また、バッファは、PE群3において実行される復号処理の結果を格納する記憶領域である。具体的には、復号データ及び符号長を対応付けて格納する。そのため、PE3a、3b、3c、・・・及び3nは、入力された符号データに対応する復号データ及び符号長をルックアップテーブル4から取得し、取得した復号データ及び符号長を対応付けてバッファに格納する。
バス2は、コントロールユニット1並びにPE3a、3b、3c、・・・及び3nを接続し、データをやり取りするための伝送路である。
図2は、本発明の実施の形態1にかかる符号データ列の復号処理の流れを示すフローチャート図である。まず、コントロールユニット1は、カウンタiに0を格納し、入力データ変数inに入力された符号データ列を格納する(S11)。次に、コントロールユニット1は、入力データ変数inを1ビットずつシフトしたビットを基準位置として、入力データ変数inから固定長の符号データを抽出し、抽出した符号データを各PEに入力する(S12)。具体的には、入力データ変数inの中から、PE3aは1ビット目から、PE3bは2ビット目から、PE3nは128ビット目からというように、夫々1ビットずつシフトしたビットを基準位置として符号データ列から一定ビット数分、ここでは、8ビット分を読み込む。
図3は、本発明の実施の形態1にかかる各PEが一定ビット列を読み込む処理の概念を説明するための図である。符号データ列Dは、"0110011100・・・"から始まる符号データ列である。このとき、PE3aは、先頭から8ビットである符号データD1を読み込む。また、PE3bは、2ビット目から8ビットである符号データD2を読み込む。さらに、PE3cは、3ビット目から8ビットである符号データD3を読み込む。
図2に戻り、PE群3は、それぞれルックアップテーブル4を参照し、入力された符号データに対応する復号データ及び符号長を取得し、それぞれが有するバッファへ格納する(S13)。ここでは、PE群3に属するPE毎に、復号データを格納するバッファとして配列word[i]、符号長を格納するバッファとして配列next[i]を有するものとする。また、このとき、PE群3は、コントロールユニット1により並列実行される。
図4は、本発明の実施の形態1にかかる各PEがルックアップテーブルを参照する処理の概念を説明するための図である。このとき、PE3aは、ルックアップテーブル4を参照し、符号データD1"01100111"に対応する復号データ"a"及び符号長"3"を取得する。そして、PE3aは、自己の配列word[i]に復号データ"a"を格納し、自己の配列next[i]に符号長"3"を格納する。同様に、PE3b及び3cについても、ルックアップテーブル4を参照し、それぞれ符号データD2及びD3に対応する復号データ及び符号長を取得し、自己の配列に格納する。
図2に戻り、PE群3においてステップS13が終了した後に、コントロールユニット1は、カウンタiを1加算し、入力データ変数inをPE数ビット分左シフトする(S14)。ここでは、コントロールユニット1は、入力データ変数inに格納された符号データ列を128ビット左シフトする。そして、コントロールユニット1は、入力データ変数inが空であるか否かを判定する(S15)。入力データ変数inが空でないと判定された場合、コントロールユニット1は、ステップS12へ進み、入力データ変数inが空となるまでの間、ステップS12乃至S16を繰り返す。
ステップS15において、入力データ変数inが空と判定された場合、コントロールユニット1は、生成処理を行う。すなわち、コントロールユニット1は、PE群3の各PEが有する配列word[i]及びnext[i]を参照し、入力された符号データ列の先頭に対応する復号データから符号長に基づいて連結を行い、復号データ列を生成する。
具体的には、まず、コントロールユニット1は、符号位置n及びカウンタjに0を格納する(S16)。そして、コントロールユニット1は、以下の式(1)及び式(2)を実行する(S17)。
out[j]=PE(n%PE数)のword[n/PE数] ・・・(1)
n=n+PE(n%PE数)のnext[n/PE数] ・・・(2)
ここで、out[j]は、復号データ列を格納する配列である。また、PE3a、3b、3c、・・・及び3nを1、2、3、・・・、128の位置に対応付けるものとする。
out[j]=PE(n%PE数)のword[n/PE数] ・・・(1)
n=n+PE(n%PE数)のnext[n/PE数] ・・・(2)
ここで、out[j]は、復号データ列を格納する配列である。また、PE3a、3b、3c、・・・及び3nを1、2、3、・・・、128の位置に対応付けるものとする。
そのため、PE(n%PE数)は、符号位置nをPE群3に属するPEの個数であるPE数による除算し、余りをPE群3に属するPEの先頭からの位置となる。そして、word[n/PE数]は、PE(n%PE数)が有する復号データの配列word[]において、符号位置nをPE数による除算の商の位置に格納された復号データである。よって、式(1)は、j番目のシンボルの復号データが復号データ列out[j]に格納されることを示す。また、式(2)は、次の符号位置nが格納されることを示す。
図2に戻り、コントロールユニット1は、復号データ列out[j]が空であるか否かを判定する(S18)。復号データ列out[j]が空でないと判定された場合、コントロールユニット1は、カウンタjを1加算(S19)し、ステップS17へ進む。以降、コントロールユニット1は、復号データ列out[j]が空であると判定されるまでの間、ステップS17乃至S19を繰り返す。
ステップS18において、復号データ列out[j]が空であると判定された場合、コントロールユニット1は、符号データ列の復号処理を終了する。
図5は、本発明の実施の形態1にかかる各PEの復号処理結果を用いて復号データ列を生成する処理の概念を説明するための図である。初期状態として、符号位置n及びカウンタjは0であり、復号データ列out[]は空である。まず、コントロールユニット1は、PE3aが有する配列word[0]から復号データ"a"を取得し、復号データ列out[0]に格納する。併せて、コントロールユニット1は、PE3aが有する配列next[0]から符号長"3"を取得し、符号位置nに格納する。そして、コントロールユニット1は、PE3aから3つ隣りのPE3dが有する配列word[0]から復号データ"b"を取得し、復号データ列out[1]に格納する。併せて、コントロールユニット1は、PE3dが有する配列next[0]から符号長"2"を取得し、符号位置nに格納する。そして、コントロールユニット1は、PE3dから2つ隣りのPE3fが有する配列word[0]から復号データ"c"を取得し、復号データ列out[2]に格納する。併せて、コントロールユニット1は、PE3fが有する配列next[0]から符号長"4"を取得し、符号位置nに格納する。以下、説明を省略する。このようにして、コントロールユニット1は、PE群3に属するPEが有する全ての復号結果の内、符号長に基づいて適切な復号データを選択し、結合することで、復号データ列を生成することができる。
上述したように本発明の実施の形態1では、符号データ列のビット列を並列に処理することにより、復号化の効率を上げることができる。その理由は、関連技術での処理時間をPとすると、SIMDの例において、PE数をN、エントロピー符号の平均符号長(1語当たり)をLとし、復号データの生成処理時間をTとした場合、本発明での処理時間はおよそP×(L/N)+Tと表すことができるためである。例えば、L=8、N=128とした場合、関連技術に対して数倍〜16倍の効率化が期待できると言える。つまり、本発明の実施の形態1により、エントロピー符号に基づく符号データ列を効率的に復号することができる。
<発明の実施の形態2>
本発明の実施の形態2は、本発明の実施の形態1の変形例である。本発明の実施の形態1では、SIMDを例に説明したが、並列動作が可能なシステムであれば同様な事が実現できる。本発明の実施の形態2では、複数のPU(Processor Units)が並列に動作でき、全てのPUが一つのバスで接続されているシステムを例示する。尚、以下では、本発明の実施の形態1との違いを中心に説明し、同等の構成又は処理については、説明を省略する。
本発明の実施の形態2は、本発明の実施の形態1の変形例である。本発明の実施の形態1では、SIMDを例に説明したが、並列動作が可能なシステムであれば同様な事が実現できる。本発明の実施の形態2では、複数のPU(Processor Units)が並列に動作でき、全てのPUが一つのバスで接続されているシステムを例示する。尚、以下では、本発明の実施の形態1との違いを中心に説明し、同等の構成又は処理については、説明を省略する。
図6は、本発明の実施の形態2にかかる符号データ処理装置200の構成を示すブロック図である。符号データ処理装置200は、バス2と、PU5a、PU5b、PU5c、・・・及びPU5nとを備える。符号データ処理装置200は、制御プログラム(不図示)により、PU5aに、コントロールユニット1と同等の処理を実行させる。つまり、PU5aは、分配入力手段と、並列復号手段と、生成手段として機能する。また、PU5aは、図2のステップS13を除く処理を実行する。
また、符号データ処理装置200は、当該制御プログラムにより、PU5b、PU5c、・・・及びPU5nをPE群5として、PE群3と同等の処理を実行させる。つまり、PE群5は、PU5aの指示に基づき、図2のステップS13の復号処理を並列実行する。
また、PU5a、PU5b、PU5c、・・・及びPU5nのいずれが、コントロールユニット1の処理を実行するかは、上述した制御プログラムにより、任意に変更可能である。そのため、複数のCPUが並列に動作するようなシステムにおいても、エントロピー符号の効率的な復号化が可能であり、組み込みソフトにおいても本発明の実施の形態1で示した構成をとることができ、同等の効果を奏することができる。そのため、本発明の実施の形態2により、エントロピー符号に基づく符号データ列を効率的に復号することができる
<その他の実施の形態>
本発明は、エントロピー符号の復号化に関し、特に組み込みソフトウェアにおけるエントロピー符号の復号方法に適用可能である。
本発明は、エントロピー符号の復号化に関し、特に組み込みソフトウェアにおけるエントロピー符号の復号方法に適用可能である。
尚、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の通信媒体を介して伝送することにより提供することも可能である。また、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、CD−ROM、DVD、ROMカートリッジ、バッテリバックアップ付きRAMメモリカートリッジ、フラッシュメモリカートリッジ、不揮発性RAMカートリッジ等が含まれる。また、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体等が含まれる。
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
100 符号データ処理装置
200 符号データ処理装置
1 コントロールユニット
2 バス
3 PE群
3a PE
3b PE
3c PE
3n PE
4 ルックアップテーブル
5 PE群
5a PU
5b PU
5c PU
5n PU
D 符号データ列
D1 符号データ
D2 符号データ
D3 符号データ
200 符号データ処理装置
1 コントロールユニット
2 バス
3 PE群
3a PE
3b PE
3c PE
3n PE
4 ルックアップテーブル
5 PE群
5a PU
5b PU
5c PU
5n PU
D 符号データ列
D1 符号データ
D2 符号データ
D3 符号データ
Claims (17)
- 複数のPE(Processor Elements)を有し、エントロピー符号に基づく符号データ列を復号する符号データ処理装置であって、
前記符号データ列から基準位置に基づく固定長の符号データを抽出する抽出処理を、前記符号データ列の全てのビットを基準位置として行い、抽出された複数の符号データを前記複数のPEへ分配して入力する分配入力手段と、
前記分配入力手段により入力された符号データに対応する復号データと、当該符号データの内、有効なデータの長さである符号長とを特定する復号処理を、当該複数のPE毎に並列して実行させる並列復号手段と、
前記並列復号手段により特定された復号データ及び符号長を用いて、前記符号データ列に対応する復号データ列を生成する生成手段と、
を備える符号データ処理装置。 - 前記分配入力手段は、前記複数のPEの個数であるPE数の前記基準位置について前記抽出処理を行い、抽出されたPE数の符号データを前記複数のPEへ均等に分配して入力し、入力した符号データについての前記並列復号手段における復号処理が終了した後に、未抽出の基準位置について前記抽出処理を行うことを特徴とする請求項1に記載の符号データ処理装置。
- 前記分配入力手段は、前記符号データ列から1ビットずつ前記PE数回シフトした符号データ列の各先頭位置を前記基準位置として、当該基準位置から固定長を符号データとして抽出して前記抽出処理を行い、抽出されたPE数の符号データを前記複数のPEへ一つずつ分配して入力し、入力した符号データについての前記並列復号手段における復号処理が終了した後に、前記基準位置を前記PE数のビット分シフトした符号データ列の各先頭位置を前記基準位置として、前記抽出処理を行うことを特徴とする請求項2に記載の符号データ処理装置。
- 前記固定長の符号データに対応する復号データと、当該固定長の符号データの内、有効なデータの長さである符号長とを格納するルックアップテーブルをさらに備え、
前記並列復号手段は、入力された符号データに対応する復号データ及び符号長を前記ルックアップテーブルから取得することにより前記復号処理を、前記複数のPE毎に並列して実行させることを特徴とする請求項1乃至3のいずれか1項に記載の符号データ処理装置。 - 前記生成手段は、前記符号データ列の先頭位置を含む第1の符号データに対応する復号データに、当該第1の符号データに対応する符号長分のビットを当該先頭位置からシフトした基準位置における第2の符号データに対応する第2の復号データを連結することにより、前記復号データ列を生成することを特徴とする請求項1乃至4のいずれか1項に記載の符号データ処理装置。
- 前記符号データ処理装置は、前記複数のPEを制御するコントロールユニットをさらに有するSIMD(Single Instruction Multiple Data)型プロセッサであることを特徴とする請求項1乃至5のいずれか1項に記載の符号データ処理装置。
- 前記符号データ処理装置は、複数のプロセッサユニットを備え、
前記複数のプロセッサユニットは、前記複数のPEと、当該複数のPEを制御する制御用プロセッサとを含むことを特徴とする請求項1乃至5のいずれか1項に記載の符号データ処理装置。 - 複数のPE(Processor Elements)を有する符号データ処理装置を用いて、エントロピー符号に基づく符号データ列を復号する符号データ処理方法であって、
前記符号データ列から基準位置に基づく固定長の符号データを抽出する抽出処理を、前記符号データ列の全てのビットを基準位置として行い、抽出された複数の符号データを前記複数のPEへ分配して入力する分配入力ステップと、
前記分配入力ステップにより入力された符号データに対応する復号データと、当該符号データの内、有効なデータの長さである符号長とを特定する復号処理を、当該複数のPE毎に並列して実行させる並列復号ステップと、
前記並列復号ステップにより特定された復号データ及び符号長を用いて、前記符号データ列に対応する復号データ列を生成する生成ステップと、
を含む符号データ処理方法。 - 前記分配入力ステップは、前記複数のPEの個数であるPE数の前記基準位置について前記抽出処理を行い、抽出されたPE数の符号データを前記複数のPEへ均等に分配して入力し、入力した符号データについての前記並列復号ステップにおける復号処理が終了した後に、未抽出の基準位置について前記抽出処理を行うことを特徴とする請求項8に記載の符号データ処理方法。
- 前記分配入力ステップは、前記符号データ列から1ビットずつ前記PE数回シフトした符号データ列の各先頭位置を前記基準位置として、当該基準位置から固定長を符号データとして抽出して前記抽出処理を行い、抽出されたPE数の符号データを前記複数のPEへ一つずつ分配して入力し、入力した符号データについての前記並列復号ステップにおける復号処理が終了した後に、前記基準位置を前記PE数のビット分シフトした符号データ列の各先頭位置を前記基準位置として、前記抽出処理を行うことを特徴とする請求項9に記載の符号データ処理方法。
- 前記符号データ処理装置は、
前記固定長の符号データに対応する復号データと、当該固定長の符号データの内、有効なデータの長さである符号長とを格納するルックアップテーブルをさらに備え、
前記並列復号ステップは、入力された符号データに対応する復号データ及び符号長を前記ルックアップテーブルから取得することにより前記復号処理を、前記複数のPE毎に並列して実行させることを特徴とする請求項8乃至10のいずれか1項に記載の符号データ処理方法。 - 前記生成ステップは、前記符号データ列の先頭位置を含む第1の符号データに対応する復号データに、当該第1の符号データに対応する符号長分のビットを当該先頭位置からシフトした基準位置における第2の符号データに対応する第2の復号データを連結することにより、前記復号データ列を生成することを特徴とする請求項8乃至11のいずれか1項に記載の符号データ処理方法。
- エントロピー符号に基づく符号データ列を復号する符号データ処理を、複数のPE(Processor Elements)を備えるコンピュータに実行させる符号データ処理プログラムであって、
前記符号データ列から基準位置に基づく固定長の符号データを抽出する抽出処理を、前記符号データ列の全てのビットを基準位置として行い、抽出された複数の符号データを複数のPEへ分配して入力する分配入力ステップと、
前記分配入力ステップにより入力された符号データに対応する復号データと、当該符号データの内、有効なデータの長さである符号長とを特定する復号処理を、当該複数のPE毎に並列して実行させる並列復号ステップと、
前記並列復号ステップにより特定された復号データ及び符号長を用いて、前記符号データ列に対応する復号データ列を生成する生成ステップと、
を備える符号データ処理プログラム。 - 前記分配入力ステップは、前記複数のPEの個数であるPE数の前記基準位置について前記抽出処理を行い、抽出されたPE数の符号データを前記複数のPEへ均等に分配して入力し、入力した符号データについての前記並列復号ステップにおける復号処理が終了した後に、未抽出の基準位置について前記抽出処理を行うことを特徴とする請求項13に記載の符号データ処理プログラム。
- 前記分配入力ステップは、前記符号データ列から1ビットずつ前記PE数回シフトした符号データ列の各先頭位置を前記基準位置として、当該基準位置から固定長を符号データとして抽出して前記抽出処理を行い、抽出されたPE数の符号データを前記複数のPEへ一つずつ分配して入力し、入力した符号データについての前記並列復号ステップにおける復号処理が終了した後に、前記基準位置を前記PE数のビット分シフトした符号データ列の各先頭位置を前記基準位置として、前記抽出処理を行うことを特徴とする請求項14に記載の符号データ処理プログラム。
- 前記コンピュータは、
前記固定長の符号データに対応する復号データと、当該固定長の符号データの内、有効なデータの長さである符号長とを格納するルックアップテーブルをさらに備え、
前記並列復号ステップは、入力された符号データに対応する復号データ及び符号長を前記ルックアップテーブルから取得することにより前記復号処理を、前記複数のPE毎に並列して実行させることを特徴とする請求項13乃至15のいずれか1項に記載の符号データ処理プログラム。 - 前記生成ステップは、前記符号データ列の先頭位置を含む第1の符号データに対応する復号データに、当該第1の符号データに対応する符号長分のビットを当該先頭位置からシフトした基準位置における第2の符号データに対応する第2の復号データを連結することにより、前記復号データ列を生成することを特徴とする請求項13乃至16のいずれか1項に記載の符号データ処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009108686A JP2010258927A (ja) | 2009-04-28 | 2009-04-28 | 符号データ処理装置、方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009108686A JP2010258927A (ja) | 2009-04-28 | 2009-04-28 | 符号データ処理装置、方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010258927A true JP2010258927A (ja) | 2010-11-11 |
Family
ID=43319306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009108686A Pending JP2010258927A (ja) | 2009-04-28 | 2009-04-28 | 符号データ処理装置、方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010258927A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014502481A (ja) * | 2010-12-13 | 2014-01-30 | エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート | 参照ユニット決定方法及び装置 |
-
2009
- 2009-04-28 JP JP2009108686A patent/JP2010258927A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014502481A (ja) * | 2010-12-13 | 2014-01-30 | エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート | 参照ユニット決定方法及び装置 |
US9288491B2 (en) | 2010-12-13 | 2016-03-15 | Electronics And Telecommunications Research Institute | Method and device for determining reference unit |
US10425653B2 (en) | 2010-12-13 | 2019-09-24 | Electronics And Telecommunications Research Institute | Method and device for determining reference unit |
US11252424B2 (en) | 2010-12-13 | 2022-02-15 | Electronics And Telecommunications Research Institute | Method and device for determining reference unit |
US11843795B2 (en) | 2010-12-13 | 2023-12-12 | Electronics And Telecommunications Research Institute | Method and device for determining reference unit |
US12149724B2 (en) | 2010-12-13 | 2024-11-19 | Electronics And Telecommunications Research Institute | Method and device for determining reference unit |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109889205B (zh) | 编码方法及系统、解码方法及系统、编解码方法及系统 | |
TWI594238B (zh) | 直接對lz77引擎輸出之標記進行霍夫曼編碼程序之硬體資料壓縮器 | |
JP3778087B2 (ja) | データ符号化装置及びデータ復号装置 | |
JP2002252563A (ja) | ハフマン符号の復号方法、復号装置、ハフマン符号復号用テーブルおよびその作成方法 | |
US11309909B2 (en) | Compression device, decompression device, and method | |
JP2011066557A (ja) | データ処理装置およびデータ処理方法 | |
JP4098187B2 (ja) | 可変長コード復号化装置及び方法 | |
JP5656593B2 (ja) | 符号化データを復号する装置及び方法 | |
JP2007226615A (ja) | 情報処理装置、圧縮プログラム生成方法及び情報処理システム | |
US10917110B1 (en) | Multiple symbol decoder | |
US20090074314A1 (en) | Decoding variable lenght codes in JPEG applications | |
JP4841496B2 (ja) | 可変長符号復号化装置 | |
JP4930435B2 (ja) | 可変長符号復号装置、可変長符号復号方法およびプログラム | |
CN111970007B (zh) | 一种解码方法、解码器、设备及介质 | |
US8976048B2 (en) | Efficient processing of Huffman encoded data | |
US8525708B2 (en) | Decoding device and coding method | |
KR101030726B1 (ko) | 확률적 테이블에 의해 생성된 심볼을 기반으로 호프만 테이블을 적용한 메모리 효율이 개선된 멀티미디어용 호프만 디코딩 방법 및 장치 | |
JP4758494B2 (ja) | ビット長を符号に変換する回路及び方法 | |
JP2010258927A (ja) | 符号データ処理装置、方法及びプログラム | |
JP2007043595A (ja) | 可変長符号復号化方法および装置ならびにデータ伸長装置 | |
JP3256121B2 (ja) | データ符号化装置およびデータ復号装置およびその方法 | |
JPWO2007108395A1 (ja) | 可変長符号の復号装置および復号方法 | |
CN100581258C (zh) | 霍夫曼解码方法和霍夫曼解码装置 | |
JP2008199100A (ja) | 可変長符号復号装置 | |
JP4079965B2 (ja) | 復号化システム |