JP3748442B2 - 可変長符号化データ処理装置 - Google Patents
可変長符号化データ処理装置 Download PDFInfo
- Publication number
- JP3748442B2 JP3748442B2 JP2003131798A JP2003131798A JP3748442B2 JP 3748442 B2 JP3748442 B2 JP 3748442B2 JP 2003131798 A JP2003131798 A JP 2003131798A JP 2003131798 A JP2003131798 A JP 2003131798A JP 3748442 B2 JP3748442 B2 JP 3748442B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- variable
- length encoded
- encoded data
- length
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
【発明の属する技術分野】
この発明は、画像データ圧縮技術で使用される可変長符号化データ処理装置に関し、特に順次入力されるビット長が一定でない可変長データ列を結合し、固定長の分割出力データに整形して出力する可変長符号化データ処理装置に関するものである。
【0002】
【従来の技術】
従来の可変長符号化データの処理では、順次入力されるビット長が一定でない可変長符号化データを順に結合して所定の固定データ長のビット列の分割出力データに整形して出力するが、全ての分割出力データにおける先頭データは必ず出力データのMSB(Most Significant Bit)またはLSB(Least Significant Bit)詰めで配置される。例えば、特許文献1ではMSB詰めで8ビット単位に整形して出力している。
【0003】
【特許文献1】
特開2001−332978号公報(第5−7頁、第1−3図)
【0004】
【発明が解決しようとする課題】
上記のような従来の可変長符号化データ処理装置では、処理の先頭での出力はMSBあるいはLSB詰めになっており、1フレームの画像に対し、8×8データのブロックやMCU(Minimum Coded Unit)を単位として可変長符号化処理を分割して実行する場合、出力の先頭位置は必ずMSBあるいはLSBから始まるのに対し、最終有効出力ビット位置は一定にはならない。最終的に1フレーム画像に対応する可変長符号化データを生成するためには、連続する単位処理間において出力データを順次結合する必要があった。
【0005】
このため、2回目以降の単位処理における先頭の分割出力データの先頭有効ビット位置をその直前の単位処理における最終の分割出力データの最終有効出力ビット位置の次のビット位置に合わせるように、2回目以降の単位処理の分割出力データ全体をビット単位でシフトしなければならない。シフト処理は本来の目的である可変長符号化動作には不要な処理であり、可変長符号化処理における全体として高速化を妨げるという問題点があった。
【0006】
この発明は、上記問題点を解決するためになされたもので、所定の単位処理毎に可変長符号化データを所定ビット長に分割して分割出力データを得る際、上記所定の単位処理間における連接箇所の分割出力データの結合を従来より効率的に処理可能な可変長符号化データ処理装置を得ることを目的とする。
【0007】
【課題を解決するための手段】
この発明にかかる請求項1記載の可変長符号化データ処理装置は、所定の単位処理対象となる第1〜第N(N≧2)の可変長符号化データを順次受けるとともに、指定ビット長を指示する外部データビット長情報を受け、前記第1〜第Nの可変長符号化データを所定ビット長に分割して得られる分割出力データを順次出力する装置であって、前記第1〜第Nの可変長符号化データを順次受け、前記第1の可変長符号化データに対してのみ、前記指定ビット長分を第1の方向にシフトさせて得られる第1のシフトデータを、それ以外の可変長符号化データに対してはそのままのデータを、選択データとして順次出力する可変長符号化データ選択手段と、前記選択データと第1の格納値とを受け、前記第1の格納値が前記第1の方向と反対方向の第2の方向側になるように、前記第1の格納値と前記選択データとを連接して第1の連接データを得る第1のデータ連接手段と、前記第1の連接データが前記所定ビット長以上の場合に前記第1の連接データを前記第2の方向へ前記所定ビット長分シフトさせた後の第2のシフトデータのうち、前記第2の方向の最端ビット位置から前記第1の方向にかけて前記所定ビット長分除いたデータを、前記第1の連接データが前記所定ビット長未満の場合に前記第1の連接データ自体を、前記第1の格納値として格納する第1のデータ格納処理を実行する第1のデータ格納手段と、前記第1の連接データが前記所定ビット長以上の場合に前記第1の連接データの前記第2の方向の最端ビット位置から前記第1の方向にかけて前記所定ビット長分のデータを第2の格納値として格納する第2のデータ格納処理を実行する第2のデータ格納値手段とを備え、前記分割出力データは前記第2の格納値を含む。
【0008】
【発明の実施の形態】
<実施の形態1>
図1はこの発明の実施の形態1である可変長符号化データ処理装置の構成を示すブロック図である。なお、本実施の形態においては、ディジタルカメラにより撮像された静止画像に対しJPEG(Joint Photographic Experts Group)圧縮を実行するシステムにおける、可変長符号化データの処理を想定している。
【0009】
図1に示すよう、可変長符号化データ処理装置100Aは、シフタ101、マルチプレクサ102、連接器103、シフタ104、ビット長演算部105、レジスタ106、レジスタ107、ビット長拡張器108、及び制御部109を有している。
【0010】
図1では、一の単位処理における複数の可変長符号化データとして可変長符号化データDA,DB,…が入力される場合を示しており、可変長符号化データDAが先頭の可変長符号化データとなる。可変長符号化データDA(DB)のビット長は最長26ビットであるものとする。したがって、可変長符号化データ長情報DAL(DBL)はビット幅5ビットである(可変長符号化データDAの大きさは最大26になることから)と仮定する。
【0011】
また、外部データは最大31ビットであるものとする。したがって外部データビット長情報GLで指示すべき値は、最小で0に、最大で31になることから、外部データビット長情報GLのビット幅は5ビットであると仮定する。
【0012】
また、出力データビット長選択信号SDは、レジスタ106から出力するデータの固定ビット長(所定ビット長)を選択するもので、一般に8ビット、16ビット、32ビットといった8の倍数のビット長が使用される。本実施の形態では出力ビット長として32ビットが選択されるよう制御された出力データビット長選択信号SDが入力されるものと仮定する。
【0013】
シフタ101は右シフト(第1の方向へのシフト)動作を行い、シフタ104は左シフト(第2の方向へのシフト)を行う。シフトの方向はデータの出力先システムにより決まり、本実施の形態ではシフト後の下位(上位)ビットは“0”(固定データ)で埋められるものと仮定する。
【0014】
連接器103は、マルチプレクサ102の出力(選択データ)とレジスタ107の出力(第1の格納値)を連接して第1の連接データを得るものであり、レジスタ107の出力のLSBの下位ビット側にマルチプレクサ102の出力を結合して上記第1の連接データを得るものである。すなわち、連接器103は、第1の格納値が左側(上位側)に位置するように、選択データと第1の格納値とを連接して第1の連接データを得ている。
【0015】
レジスタ106は、シフタ104のシフト動作によりオーバーフローが予測されるデータを、連接器103より得て第2の格納値として保持するもので、第2の格納値のビット長は出力データビット長選択信号SDで選択されるビット長(32ビット)に等しい。すなわち、レジスタ106は第1の連接データが32ビット以上の場合、第1の連接データにおけるMSB側から32ビット分のデータを第2の格納値として格納する。
【0016】
レジスタ107は、シフタ104のシフト動作完了後の第2のシフトデータ(オーバーフロー分を含む)のうちオーバーフローせずに残ったデータ(すなわち、第2のシフトデータのMSBから32ビット分を除いたデータ)を保持するものである。なお、出力データビット長選択信号SDで選択されるビット長(32ビット)はビット長演算部105で演算された後、ビット長演算部105に接続される制御部109によってレジスタ106に付与される。したがって、上述したように、レジスタ106は連接器103から得られるデータの上位32ビット(出力データビット長選択信号SDが選択するビット数)を取り込むことができる。
【0017】
ビット長拡張器108は、マルチプレクサ102に出力するデータのビット長をシフタ101の出力データビット長に揃えるためのものであり、可変長符号化データのMSBを出力のMSBとし下位ビットに“0”を詰めることによりビット長を拡張する。シフタ101の最大有効出力ビット長は57ビットになることから、ビット長拡張器108の出力も57ビットになるように拡張される。
【0018】
上記構成において、シフタ101、マルチプレクサ102及びビット長拡張器108が可変長符号化データ選択手段として機能し、連接器103が第1の連接手段として機能し、シフタ104及びレジスタ107が第1のデータ格納手段として機能し、レジスタ106が第2のデータ格納手段として機能する。
【0019】
次に、上記のように構成された実施の形態1の可変長符号化データ処理装置の動作について説明する。
【0020】
図2は、実施の形態1の可変長符号化データ処理装置を用いた可変長符号化データの流れを説明するための説明図である。以下、図2を参照して、所定の単位処理対象となる可変長符号化データDA(第1の可変長符号化データ),DB(第2の可変長符号化データ),…第N(N≧2)の可変長符号化データが1〜Nの順で付与される場合の処理内容を説明する。
【0021】
図2の(a)を参照して、まず、シフタ101に可変長符号化データDA及び外部データビット長情報GLが入力される。このときの外部データビット長情報GLは、可変長符号化データDAの前の所定の単位処理によって得られた最終の分割出力データにおける最終出力ビット長を示す情報となる。例えば、前の単位処理対象の複数の可変長符号化データにおける単位出力データ群の最終の分割出力データのビット長が8ビットの場合、外部データビット長情報GLは8ビットを指示することになる。
【0022】
シフタ101は、外部データビット長情報GLに基づき、可変長符号化データDAをGLビット分、右にシフトさせて第1のシフトデータを得る。したがって、第1のシフトデータのうち、有効データはMSBから(GL+1)ビット目から可変長符号化データ長情報DALの指示するデータ長分のデータになる。この際、シフト後の上位ビットは“0”(固定データ)で埋められる。
【0023】
マルチプレクサ102は、制御部109からの制御信号に基づき、実行する所定の単位処理の先頭(の可変長符号化)データに対してのみシフタ101の出力(第1のシフトデータ)を選択するため、先頭データ(可変長符号化データDA)の処理を実行している現段階ではマルチプレクサ102の出力である選択データは第1のシフトデータと等しくなる。
【0024】
なお、制御部109は、図示しないCPUにより付与される制御信号SCに基づき、所定の単位処理の先頭データであるか否かを認識することができる。
【0025】
次に、マルチプレクサ102の出力とレジスタ107の出力とが連接器103に入力されるが、可変長符号化データDAが先頭データであることからレジスタ107にはまだ有効データが保持されていないため、連接器103の有効出力(第1の連接データ)は、シフタ101の出力(第1のシフトデータ)に等しくなる。
【0026】
連接器103の出力である第1の連接データのうち、シフタ101でのシフト量も含めた有効データ長(DAL+GL)が、出力データビット長選択信号SDにより選択されている32ビット以上であるとすると、連接器103の出力はシフタ104に入力されて32ビット左シフトされるが、32ビットより小さいとシフタ104でのシフト動作は行われない。
【0027】
ビット長演算部105には、可変長符号化データ処理装置100Aに入力される可変長符号化データ長情報DAL、外部データビット長情報GL及び出力データビット長選択信号SDといったデータ長に関する信号が入力され、各段階での出力の有効ビット長に関する情報を保持している。制御部109にはビット長演算部105で保持する情報が入力され、シフタ104でのシフト動作の実行の有無、レジスタ106及びレジスタ107のデータの更新を制御する。
【0028】
第1の連接データが32ビット以上でシフタ104でのシフト動作が行われた場合、レジスタ106による第2のデータ格納処理が実行されることにより、第1の連接データのうち左シフトによりオーバーフローする32ビットデータが第2の格納値として格納され、シフタ104及びレジスタ107による第1のデータ格納処理が実行されることにより、第1の連接データが左シフトによってもオーバーフローなかったシフタ104の出力(第2のシフトデータ)が第1の格納値としてレジスタ107に格納される。
【0029】
一方、第1の連接データが32ビット未満でシフタ104でのシフト動作が行われなかった場合、上記第2のデータ格納処理によりレジスタ106の第2の格納値は更新されず、上記第1のデータ格納処理により第1の連接データ自体がシフタ104を介して第1の格納値としてレジスタ107に格納される。
【0030】
図2で示す例では、可変長符号化データDAの処理に対する連接器103の出力である第1の連接データにおける有効データ長が32ビット以上であると仮定すると、連接器103のMSBから32ビットのデータがレジスタ106に入力され、連接器103のMSBから33ビット目から下位のデータがレジスタ107に入力され、各々のレジスタ106,107の格納値が更新される。
【0031】
上述した動作は、シフタ104でのシフト動作は出力が32ビットより小さくなるまで繰り返され、その都度レジスタ106及びレジスタ107で格納する第2及び第1のデータを更新し、シフタ104でのシフト動作がすべて終了するまで次の可変長符号化データDBの入力は行わない。
【0032】
この時、レジスタ106に格納される第2の格納値の32ビットのデータのうちLSB側にある可変長符号化データDAのMSB側のデータDAuのデータ長(DALu)は(32−GL)として、第2のレジスタに保持されるデータDAlの有効データ長DALlは(DAL+GL−32)として算出可能である。
【0033】
次に、図2の(b)を参照して、可変長符号化データ処理装置100Aに続く次の可変長符号化データDBが入力される場合を説明する。可変長符号化データDBは2番目のデータであり処理の先頭データではないため、マルチプレクサ102からはビット長拡張器108を介して可変長符号化データDBが選択データして出力される。実際には、ビット長拡張器108によってビット長が拡張された可変長符号化データDBが選択されるが、実質的に内容は同じであるためここでは可変長符号化データDBとして説明する。
【0034】
今回はレジスタ107には有効な第1の格納値が格納されているため、連接器103では可変長符号化データDBとレジスタ107の第1の格納値DAlとの連接処理が実行される。すなわち、第1の格納値DAlが上位側に位置するように第1の格納値DAlと可変長符号化データDBとを連接して第1の連接データ{DAl+DB}を得る。
【0035】
図2の例では、連接器103の出力(第1の連接データ)における有効データ長が32ビットより小さいと仮定すると、第1の連接データ自体がレジスタ107に入力され、レジスタ107が格納する第1の格納値が更新される(シフト動作を行わないシフタ104の出力を受けるため)が、レジスタ106が格納している第2の格納値は更新されない。
【0036】
一方、第1の連接データが32ビットより大きいと仮定すると、第1の連接データMSBから32ビットのデータ、つまりシフタ104でのシフト動作でオーバーフローする32ビットデータがレジスタ106に入力され、シフタ104の出力はレジスタ107に入力される。
【0037】
そして、レジスタ106の第2の格納値が、可変長符号化データ処理装置100Aとしての32ビットに分割された分割出力データDOとして出力され、この分割出力データDOがメモリ等の図示しない外部記憶手段に入力され保存される。分割出力データDOの出力は外部記憶手段にレジスタ106の第2の格納値の読み出し指令等を与える等によって実現可能である。
【0038】
以降順次、可変長符号化データ処理装置100Aに可変長符号化データDBに続く可変長符号化データを入力し、上述の可変長符号化データDBの場合と同様にして、最終的に第Nの可変長符号化データに対する処理を終えると、所定の単位処理対象(DA,DB,…)の可変長符号化データ処理が終わる。
【0039】
可変長符号化データ処理回数Nは、処理実行対象となる単位に依存して決まり、一般的にはJPEG圧縮処理の基本的な処理単位である8×8のデータブロックに相当する回数、あるいはいくつかのブロックからなるMCU単位に相当する回数になる。つまり、データブロック単位の場合は64回、サンプリングモード4:2:0でのMCU単位の場合は384回の可変長符号化データの入力によって所定の単位処理のデータ処理が完了する。
【0040】
所定の単位処理対象の可変長符号化データ処理において、レジスタ106が第2の格納値を格納した後、連接器103の出力である第1の連接データの有効データ長が32ビットより小さい場合、当該第1の連接データをレジスタ106は取り込まないため、そのままでは可変長符号化データ処理装置100Aの分割出力データDOとして出力されないことになる。
【0041】
このため、システム上にあるCPU等から制御部109を通して強制的に第1の連接データを分割出力データDOとして出力される処理が必要となる。例えば、強制的に連接器103の出力をレジスタ106が取り込み、第2の格納値を更新するといった処理、あるいは、レジスタ106とレジスタ107との出力を受けるマルチプレクサを別途設け、このマルチプレクサを制御部109により制御して、所定の単位処理のデータ処理の終了時にレジスタ107から有効データを分割出力データDOとして出力させる構成等が考えられる。
【0042】
以上のような構成の本実施の形態においては、外部データビット長情報GLを入力することにより、最初の分割出力データDOの有効出力データの開始位置にオフセットを持たせることが可能になる。
【0043】
図3は従来の可変長符号化データ処理による単位処理対象間における分割出力データの結合処理を説明するための説明図である。図4は本実施の形態による可変長符号化データ処理による単位処理対象間における分割出力データの結合を説明するための説明図である。
【0044】
従来は、各々が所定の単位処理対象となる分割出力データ群D1〜D3それぞれが32ビット単位分割されて出力される場合、図3の(a)に示すようになる。なお、分割出力データ群D1〜D3は、それぞれ単位処理対象となる複数の可変長符号化データを分割して得られた分割出力データの集合を意味する。
【0045】
このように分割して出力された分割出力データ群D1〜D3を順次結合する必要がある場合、分割出力データ群D2は、分割出力データ群D2を構成する全ての分割出力データにおいて、分割出力データ群D1の最終の分割出力データのビット数B1分右へシフトさせた後に図3の(b)のように連接する必要がある。同様にして、分割出力データ群D3を構成する全ての分割出力データにおいて、分割出力データ群D1及びD2の連接後の最終データのビット数B12分右へシフトさせた後に図3の(b)のように連接する必要がある。
【0046】
一方、実施の形態1では、図4の(a)に示すように、分割出力データ群D2に対応する先頭の可変長符号化データの入力時には分割出力データ群D1の最終の分割出力データのビット数B1を外部データビット長情報GLとして入力することより、分割出力データ群D2の先頭の分割出力データは既にオフセットされ、分割出力データ群D1の最終の分割出力データのビット数B1分が“0”となっている。
【0047】
同様にして、分割出力データ群D3に対応する先頭の可変長符号化データの入力時には分割出力データ群D2の最終データのビット数B2を外部データビット長情報GLとして入力することより、分割出力データ群D3の先頭の分割出力データはオフセットされ、分割出力データ群D2の最終の分割出力データのビット数B2分が“0”となっている。
【0048】
したがって、図4の(b)に示すように、分割出力データ群D1の最終の分割出力データと分割出力データ群D2の先頭の分割出力データとの論理和、及び分割出力データ群D2の最終の分割出力データと分割出力データ群D3の先頭の分割出力データとの論理和を、それぞれ連接箇所J1及びJ2において取ることで簡単に結合でき、実際にシフト動作を実行するCPU(図示しない)の負荷を軽減できる。すなわち、従来のように、分割出力データ群D2及びD3の全ての分割出力データのシフト動作は全く不要となる。
【0049】
このように、実施の形態1では、直前に単位処理対象における分割出力データ群の最終の分割出力データの有効ビット数分オフセットを持たせて、次の単位処理対象の先頭の可変長符号化データに対するデータ処理を行うため、図4の(b)に示すように、連接箇所J1,J2において前後の出力の論理和をとるだけで前後の分割出力データの連接を行うことができる。その結果、従来より可変長符号化データに対するデータ処理を効率的に実行することができる。
【0050】
<実施の形態2>
図5はこの発明の実施の形態2である可変長符号化データ処理装置の構成を示すブロック図である。
【0051】
図5に示すように、実施の形態2の可変長符号化データ処理装置100Bは、図1で示した実施の形態1の構成と異なり、シフタ101に置き換えて連接器110(第2のデータ連接手段)を用い、新たにマルチプレクサ111及びマルチプレクサ112を追加している。また、ビット長演算部105に置き換えてビット長演算部120を用いている。さらに、入力データとして外部データGD及び最終出力データFDを入力している。
【0052】
マルチプレクサ111は外部データGD及び最終出力データFDを受け、制御部109の制御下で一方を連接器110に出力する。マルチプレクサ112は外部データビット長情報GL及び有効ビット長FLを受け、制御部109の制御下で一方を連接器110及びビット長演算部120に出力する。
【0053】
連接器110は可変長符号化データDA(DB)とマルチプレクサ111の出力とを連接して第2の連接データを得、第2の連接データをマルチプレクサ102に出力する。
【0054】
ビット長演算部120は、実施の形態1のビット長演算部105と比べた場合、外部データビット長情報GLの代わりにマルチプレクサ112の出力を受け、また、有効ビット長FLをマルチプレクサ112に出力する点が異なる。
【0055】
なお、他の入力データ及び構成は図1で示した実施の形態1と同様である。
【0056】
図6は、実施の形態2の可変長符号化データ処理装置を用いた可変長符号化データの流れを説明するための説明図である。以下、図6を参照して、可変長符号化データDA,DB,…の順で可変長符号化データが付与される場合の処理内容を説明する。
【0057】
図6の(a)を参照して、まず、マルチプレクサ111に最終出力データFD及び外部データGDが入力される。外部データGDは所定の単位処理データ群である可変長符号化データDA,DB,…の直前の単位処理対象の分割出力データ群における最終の分割出力データに相当する。この外部データGDは図示しないCPUが保持している。
【0058】
また、実施の形態1と同様、外部データビット長情報GLがマルチプレクサ112に入力される。このときの外部データビット長情報GLは、外部データGDの最終出力のビット長を示す情報となる。
【0059】
マルチプレクサ111は所定の単位処理対象の先頭の可変長符号化データである可変長符号化データDAの入力時のみ、外部データGDを出力し、以降は内部で生成される最終出力データFDを出力する。したがって、この場合は外部データGDを連接器110に出力する。
【0060】
マルチプレクサ112は可変長符号化データDAの入力時のみ、外部データビット長情報GLを出力し、以降は内部で生成される有効ビット長FLを出力する。したがって、この場合は外部データビット長情報GL(このときの有効ビット長FLは“0”)を連接器110に出力する。
【0061】
連接器110には、マルチプレクサ111及び112で選択された外部データGD及び外部データビット長情報GL並びに可変長符号化データDAが入力され、MSBから順に、外部データGDのMSBからGLビット分の有効データ、DAの順に各々のデータのMSBが上位に来るように結合されたデータが出力される。この連接器110の出力(第2の連接データ)と可変長符号化データDAが入力されるビット長拡張器108の出力がマルチプレクサ102に入力され、実施の形態1の場合と同様にして、可変長符号化データの処理先頭時にのみ連接器110の出力がマルチプレクサ102の出力として選択される。
【0062】
次に、マルチプレクサ102の出力とレジスタ107の出力とが連接器103に入力されるが、可変長符号化データDAが先頭データであることからレジスタ107にはまだ有効データが保持されていないため、連接器103の有効出力は、マルチプレクサ111の出力データ(外部データGD+可変長符号化データDA)に等しくなる。連接器103の出力のうち、外部データビット長情報GLも含めた有効データ長(DAL+GL)が、出力データビット長選択信号SDにより選択されている32ビット以上であるとすると、連接器103の出力はシフタ104に入力されて32ビット左シフトされるが、32ビットより小さいとシフタ104でのシフト動作は行われない。
【0063】
ビット長演算部120には、可変長符号化データ処理装置100Bに入力される可変長符号化データ長情報DAL、マルチプレクサ112の出力(外部データビット長情報GLあるいは有効ビット長FL)及び出力データビット長選択信号SDといったデータ長に関する信号が入力され、各段階での出力の有効ビット長に関する情報を保持している。制御部109にはビット長演算部で保持する情報が入力され、シフタ104でのシフト動作の実行の有無、レジスタ106及びレジスタ107のデータの更新を制御する。
【0064】
以降、実施の形態1と同様にして、可変長符号化データDAの処理に対する連接器103の出力における有効データ長が32ビット以上であると仮定すると、連接器103のMSBから32ビットのデータ(外部データGD+部分可変長符号化データDAu)がレジスタ106に入力され、連接器103のMSBから33ビット目から下位のデータ(部分可変長符号化データDAl)がレジスタ107に入力され、各々のレジスタの格納値が更新される。
【0065】
上述した動作は、実施の形態1と同様、シフタ104でのシフト動作は出力が32ビットより小さくなるまで繰り返される。
【0066】
この時、レジスタ106に格納される32ビットのデータのうちLSB側にある可変長符号化データDAのMSB側のデータDAuのデータ長(DALu)は(32−GL)として、第2のレジスタに保持されるデータDAlの有効データ長DALlは(DAL+GL−32)として算出可能である。
【0067】
次に、図6の(b)を参照して、可変長符号化データ処理装置100Bに次の可変長符号化データDBが入力される場合を説明する。可変長符号化データDBは2番目のデータであり処理の先頭データではないため、マルチプレクサ102からはビット長拡張器108を介して実質的に可変長符号化データDBそのものが出力される。
【0068】
今回はレジスタ107が有効データを保持しているため、実施の形態1と同様、連接器103では可変長符号化データDBとレジスタ107の出力DAlとの連接処理が実行される。以降、実施の形態1と同様に処理される。
【0069】
このように、実施の形態2では、実施の形態1と同様、可変長符号化データ処理装置100Bから出力される可変長符号化データの有効出力開始ビット位置は外部データビット長情報GLとして指定したビット数だけMSBからオフセットを持っている。
【0070】
さらに、実施の形態2は、実施の形態1と異なり、オフセット部分が“0”で埋められるのではなく、マルチプレクサ111の出力、すなわち外部データGDで埋められる点に違いがある。
【0071】
すなわち、本実施の形態においては、所定の単位処理の可変長符号化データ処理を複数回実行する際の最初の処理実行時に、外部データGDと外部データGDのビット長を示す有効ビット長GLとを取り込むことにより、可変長符号化データDAに対応する先頭の分割出力データの出力の際、図6(b)のレジスタ106の出力に示すように、前回の単位処理対象の最終の分割出力データ(外部データGD)が既に付加された状態で出力することができる。
【0072】
したがって、実施の形態1で行っていた処理境界部分の前後の出力に対する論理和演算をも不要となり、各所定の単位処理の出力を容易に結合することができ、実施の形態1よりもさらにCPUの負荷軽減に貢献できる。
【0073】
ただし、実施の形態2の装置からの出力をすべて外部メモリに取り込むと、単位処理毎の分割出力データ境界部分で最終出力データGDの出力が重複してしまう。すなわち、最終出力データGDのみの分割出力データと、最終出力データGDと次の単位処理対象の先頭の可変長符号化データデータの一部とが重複した分割出力データが連続して出力されることになる。
【0074】
そこで、有効データが最終出力データGDのみの場合の端数データは、CPUの制御下で図示しない外部メモリで記憶しないといった手順とすることにより、外部メモリへのデータ書き込みの重複を回避する必要がある。
【0075】
また、実施の形態2では、所定の単位処理を複数回連続して実行する場合、制御部109により2回目以降の単位処理ではマルチプレクサ111及びマルチプレクサ112において、最終出力データFD及び有効ビット長FLを内部帰還するように制御している。このとき、最終出力データFD及び有効ビット長FLは、単位処理対象の第1〜第Nの可変長符号化データであった場合、最終出力データFDは第Nの可変長符号化データにおける最終分割データ、有効ビット長FLはその有効ビット長となる。
【0076】
このように、実施の形態2は、マルチプレクサ111からレジスタ106の格納値である最終出力データFDを、マルチプレクサ112から最終出力データ有効ビット長FL(ビット長演算部120よる演算により得られる)を出力するという内部帰還機能を有することにより、CPUによる外部データGD及び外部データビット長情報GLの制御がなくとも所定の単位処理対象の2回目以降の単位処理対象間の連接箇所における分割出力データを連続的に出力することが可能になる。
【0077】
すなわち、最終出力データFD及び有効ビット長FLを外部データGD及び外部データビット長情報GLとして利用できるため、2回目以降の所定の単位処理対象間における分割出力データの連接に際しては外部データGD及び有効ビット長GLの入力は不要となる。
【0078】
図4を例に挙げれば、分割出力データ群D1の出力が行われた後、新たに単位処理対象の可変長符号化データに対するデータ処理を施し、分割出力データ群D2から分割出力データ群D3まで連続してデータ処理を行う場合、分割出力データ群D1の最終の分割出力データ及びその有効ビット数B1は外部データGD及び外部データビット長情報GLとして外部から取り込む必要はあるが、分割出力データ群D2の最終の分割出力データ及びその有効ビット数B2は最終出力データFD及び有効ビット長FLとして内部帰還させることができるため、外部データGD及び外部データビット長情報GLの外部からの入力は不要となる。
【0079】
なお、本実施の形態では、マルチプレクサ111及び112を追加し、最終出力データFD及び有効ビット長FLを内部帰還させたが、この処理に代えて、マルチプレクサ102を制御して、単位処理対象が2回目以降の可変長符号化データの先頭データに対する処理に際してもビット長拡張器108側を選択するように構成しても、単位処理対象が2回目以降の可変長符号化データに対する処理に際して外部データGD及び有効ビット長GLの入力を不要にすることができる。
【0080】
<実施の形態3>
図7はこの発明の実施の形態3である可変長符号化データ処理装置100Cの構成を示すブロック図である。実施の形態3は、実施の形態2の構成にJPEG圧縮におけるマーカーコード挿入機能を備えた可変長符号化データ処理装置である。
【0081】
まず、JPEGにおけるマーカーコードについて説明する。一般にJPEG圧縮におけるマーカーコードとは、圧縮された画像データを制御するものであり、16進表記で「FF」というデータから始まる16ビットの特定のデータパターンで構成される。以降、「」内で示される0〜9,A〜Fは16進表記を意味するものとする。
【0082】
しかし、可変長符号化された圧縮画像データ中にも「FF」というデータが含まれることがあり、この場合、マーカーコードとの区別がつかなくなる。そこで、16進表記で「FF00」を、圧縮されたデータであることを示すマーカーコード(Not a Marker)として取り決め、圧縮された画像データ中に「FF」というデータが存在するときは、直後に「00」という8ビットのデータを挿入することで対応する。
【0083】
図7に示すように、実施の形態3は、データパターン検出器113、ビット列処理部114、マルチプレクサ115、データパターン挿入器116、データパターン検出器117及びマルチプレクサ118を追加した点並びにビット長演算部120に代えてビット長演算部121を用いた点において、実施の形態2と異なる。
【0084】
実施の形態3では、基本的には実施の形態2と同様にして動作する。通常時は、制御部109の制御下で、マルチプレクサ115はビット列処理部114の出力を選択し、マルチプレクサ118はデータパターン挿入器116の出力を選択するように制御される。
【0085】
連接器103の出力(第1の連接データ)は、データ加工手段であるデータパターン挿入器116及びデータパターン検出器117に入力され、連接器103の有効データ出力のMSBから32ビットのビット列についてのみデータパターン検出器117で「FF」データの検出が実行され、「FF」データが含まれる場合にデータパターン挿入器116で16進表記で「00」の8ビットデータを「FF」データの直後に挿入する。
【0086】
例えば、連接器103の出力のうちの有効データ出力が、16進表記で「45FF2C03FF8」の44ビットであったとする。この時、MSBから数えて9ビット目から16ビット目、及び33ビット目から40ビット目に「FF」データが含まれているため、データパターン検出器117において「FF」データの存在が検出される。ただし、MSBから33ビット目から40ビット目の「FF」については、出力データビット長32の範囲から外れるため「00」データ挿入の対象とはならず、データパターン挿入器116からは「00」データが1つ挿入された「45FF002C03FF8」が出力され、有効データビット長は8ビット増える。この時、データパターン挿入器116の出力におけるビット長の変化に関する情報は、ビット長演算部121に送られる。
【0087】
このように、実施の形態3は、データパターン挿入器116及びデータパターン検出器117を設け、連接器103の出力である第1の連接データの上位32ビット中に所定のデータパターンである「FF」が存在する場合に、「00」を付加するデータ加工処理を第1の連接データに対して行うことにより、「FF00」のマーカーコードを付加するデータ加工処理を行うことができる。なお、実施の形態1の構成に対しても連接器103とシフタ104,レジスタ106との間にデータパターン挿入器116及びデータパターン検出器117と同等のデータ加工手段を挿入することにより上記データ加工処理を実現できることは勿論である。
【0088】
データパターン挿入器116の出力は、シフタ104及びレジスタ106に入力され、レジスタ106の保持するデータ(第2の格納値)は「45FF002C」に更新され、シフタ104の有効出力データは「03FF8」となり、レジその有効ビット長はビット長演算部121で20ビットと算出される。そして、シフタ104の有効出力データが第1の格納値としてレジスタ107に格納される。
【0089】
このように、シフタ104及びレジスタ107とレジスタ106とは、データパターン挿入器116及びデータパターン検出器117によるデータ加工手段によるデータ加工処理後の第1の連接データに対して、各々のデータ格納処理を実行する。
【0090】
所定のデータ個数分の処理を実行して、最終出力データFDの有効ビット長FLが32ビットに満たない場合、レジスタ106で保持するデータをFDに更新し、FD及びFLはそれぞれマルチプレクサ111及びマルチプレクサ112に帰還され、次回処理時に使用される。
【0091】
この際、最終出力データFDの有効データ部分にマーカーコード「FF00」が含まれている場合、実施の形態2のようにマルチプレクサ111の出力を連接器110にそのまま入力すると、連接器103の出力には前回の処理で挿入されたマーカーコード「FF00」がそのまま含まれているため、データパターン検出器117で再度「FF」が検出され、データパターン挿入器116で「00」が挿入されることになる。したがって、データパターン挿入器116の出力には「FF0000」というデータが含まれることになり、重複して挿入された「00」は圧縮画像データとして認識されることになる。
【0092】
図8はビット列処理部114の処理動作の説明用の説明図である。上記のように最終出力データFD内にマーカーコード「FF00」が含まれている場合、図8に示すように、マルチプレクサ111の出力に対してデータパターン検出器113において「FF00」データの検出を行い、マーカーコード「FF00」が検出された場合には、ビット列処理部114でデータ「FF」に続くデータ「00」を削除し、ビット長演算部121では有効ビット長を8ビット減らす。そして、8ビット減らしたことを制御部109に伝達する。
【0093】
最終出力データFDを取り込む場合は、マルチプレクサ115はビット列処理部114の出力が選択されているので、連接器110にはビット列処理部114の出力が入力され、マルチプレクサ102及び連接器103を経由して所定の処理を実行されたデータはデータパターン挿入器116ならびにデータパターン検出器117に入力される。データパターン検出器117において、再度「FF」データが検出されてデータパターン挿入器116で「FF」の直後に「00」が挿入されるが、既にビット列処理部114において「00」の削除が行われているために重複挿入は回避され、可変長符号化データとして入力されるデータに「FF」が含まれる場合は、正常な「00」挿入が実行される。
【0094】
以上のように、JPEG方式における圧縮画像データ「FF」に対する「00」データ挿入処理及び最終出力データFDを帰還することによる連続処理を実行する場合に、マルチプレクサ111に含まれる「FF00]に対してあらかじめ「00」を削除することで、データパターン挿入器116における「00」データの重複挿入を回避することができる。
【0095】
また、所定条件時に制御部109の制御下でマルチプレクサ115による選択をマルチプレクサ111に切り換えることにより、データ削除手段であるデータパターン検出器113及びビット列処理部114による「00」削除機能を無効化できる。同様にして、制御部109の制御下でマルチプレクサ118による選択を連接器103に切り換えることにより、データパターン挿入器116及びデータパターン検出器117における「00」挿入機能を無効化することができる。
【0096】
その結果、マーカーコードといった特定データパターンに関する処理が不要なJPEG方式とは異なる手法(例えば、MPEG方式)で圧縮された可変長符号化データに対する処理時(所定条件時)においても支障無く可変長符号化データ処理を実行することができる。
【0097】
このように、マルチプレクサ115はデータパターン検出器113及びビット列処理部114のデータ削除手段のデータ削除処理の無効化機能を有する。一方、第1のデータ連接手段は連接器103以外に、上記データ加工手段を有することによりデータ加工処理が行え、さらにマルチプレクサ118を有することにより上記データ加工処理の無効化機能を有する。
【0098】
なお、実施の形態3においても、実施の形態2と同様、単位処理対象が2回目以降の可変長符号化データの先頭データに対する処理に際してもビット長拡張器108側を選択するように構成しても、単位処理対象が2回目以降の可変長符号化データに対する処理に際して外部データGD及び有効ビット長GLの入力を不要にすることができ、これに伴いデータパターン検出器113及びビット列処理部114を省略することができる。
【0099】
【発明の効果】
以上説明したように、この発明における請求項1記載の可変長符号化データ処理装置における可変長符号化データ選択手段は、第1の可変長符号化データの入力時に外部データビット長情報で示す指定ビット長分、第1の方向にシフトさせた第1のシフトデータを選択データとして出力している。
【0100】
したがって、第1の可変長符号化データに対応する分割出力データとして、上記指定ビット長分、第1の方向にオフセットを持たせたデータを出力させることができる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1である可変長符号化データ処理装置の構成を示すブロック図である。
【図2】 実施の形態1の可変長符号化データ処理装置を用いた可変長符号化データの流れを説明するための説明図である。
【図3】 従来の可変長符号化データ処理による出力データの結合処理を説明するための説明図である。
【図4】 実施の形態1による可変長符号化データ処理による出力データの結合を説明するための説明図である。
【図5】 この発明の実施の形態2である可変長符号化データ処理装置の構成を示すブロック図である。
【図6】 実施の形態2の可変長符号化データ処理装置を用いた可変長符号化データの流れを説明するための説明図である。
【図7】 この発明の実施の形態3である可変長符号化データ処理装置の構成を示すブロック図である。
【図8】 ビット列処理部114の処理動作の説明用の説明図である。
【符号の説明】
100A〜100C 可変長符号化データ処理装置、101,104 シフタ、102,111,112,115,118 マルチプレクサ、103,110連接器、105,120,121 ビット長演算部、106,107 レジスタ、108 ビット長拡張器、109 制御部、113,117 データパターン検出器、114 ビット列処理部、116 データパターン挿入器。
Claims (6)
- 所定の単位処理対象となる第1〜第N(N≧2)の可変長符号化データを順次受けるとともに、指定ビット長を指示する外部データビット長情報を受け、前記第1〜第Nの可変長符号化データを所定ビット長に分割して得られる分割出力データを順次出力する可変長符号化データ処理装置であって、
前記第1〜第Nの可変長符号化データを順次受け、前記第1の可変長符号化データに対してのみ、前記指定ビット長分を第1の方向にシフトさせて得られる第1のシフトデータを、それ以外の可変長符号化データに対してはそのままのデータを、選択データとして順次出力する可変長符号化データ選択手段と、
前記選択データと第1の格納値とを受け、前記第1の格納値が前記第1の方向と反対方向の第2の方向側になるように、前記第1の格納値と前記選択データとを連接して第1の連接データを得る第1のデータ連接手段と、
前記第1の連接データが前記所定ビット長以上の場合に前記第1の連接データを前記第2の方向へ前記所定ビット長分シフトさせた後の第2のシフトデータのうち、前記第2の方向の最端ビット位置から前記第1の方向にかけて前記所定ビット長分除いたデータを、前記第1の連接データが前記所定ビット長未満の場合に前記第1の連接データ自体を、前記第1の格納値として格納する第1のデータ格納処理を実行する第1のデータ格納手段と、
前記第1の連接データが前記所定ビット長以上の場合に前記第1の連接データの前記第2の方向の最端ビット位置から前記第1の方向にかけて前記所定ビット長分のデータを第2の格納値として格納する第2のデータ格納処理を実行する第2のデータ格納値手段とを備え、前記分割出力データは前記第2の格納値を含む、
可変長符号化データ処理装置。 - 請求項1記載の可変長符号化データ処理装置であって、
前記指定ビット長は、前記第1の可変長符号化データの前に処理された前記所定の単位処理対象における最終の分割出力データのビット長を含み、
前記第1のシフトデータは、前記指定ビット長分の所定の固定データが前記第1の可変長符号化データの前記第2の方向側に付加されたデータを含む、
可変長符号化データ処理装置。 - 請求項1記載の可変長符号化データ処理装置であって、
前記可変長符号化データ選択手段は、所定の外部データをさらに受け、前記所定の外部データは、前記第1の可変長符号化データの前に処理された前記所定の単位処理対象における最終の分割出力データを含み、
前記可変長符号化データ選択手段は、前記所定の外部データが前記第2の方向側になるように、前記所定の外部データと前記第1の可変長符号化データとを連接して前記第1のシフトデータを得る第2のデータ連接手段を有する、
可変長符号化データ処理装置。 - 請求項3記載の可変長符号化データ処理装置であって、
前記可変長符号化データ選択手段は、新たな所定の単位処理対象となる複数の可変長符号化データの先頭データの入力時に、新たな所定の単位処理対象の直前の所定の単位処理対象となる前記第Nの可変長符号化データにおける最終分割データである前記第2のデータ格納手段の前記第2の格納値を、前記所定の外部データに置き換えて取り込む内部帰還機能を有する、
可変長符号化データ処理装置。 - 請求項1ないし請求項4のうち、いずれか1項に記載の可変長符号化データ処理装置であって、
前記第1のデータ連接手段は、
前記第1の連接データに対してデータ加工処理を行うデータ加工手段をさらに含み、
前記データ加工処理は、前記第1の連接データが前記所定ビット長以上であり、前記第1の連接データの前記第2の方向の最端ビット位置から前記第1の方向にかけて前記所定ビット長分のデータ中に所定のデータパターンが存在する場合に前記所定のデータパターンをデータ加工することにより前記第1の連接データを加工する処理を含み、
前記第1及び第2のデータ格納手段は、前記データ加工手段による前記データ加工処理後の前記第1の連接データに対して、前記第1及び第2のデータ格納処理を実行する、
可変長符号化データ処理装置。 - 請求項5記載の可変長符号化データ処理装置であって、
前記第1のデータ連接手段は、所定条件時に前記データ加工手段による前記データ加工処理を無効化する機能をさらに備える、
可変長符号化データ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003131798A JP3748442B2 (ja) | 2003-05-09 | 2003-05-09 | 可変長符号化データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003131798A JP3748442B2 (ja) | 2003-05-09 | 2003-05-09 | 可変長符号化データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004336547A JP2004336547A (ja) | 2004-11-25 |
JP3748442B2 true JP3748442B2 (ja) | 2006-02-22 |
Family
ID=33506881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003131798A Expired - Fee Related JP3748442B2 (ja) | 2003-05-09 | 2003-05-09 | 可変長符号化データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3748442B2 (ja) |
-
2003
- 2003-05-09 JP JP2003131798A patent/JP3748442B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004336547A (ja) | 2004-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107111623B (zh) | 用于基于词典的压缩的并行历史搜索和编码 | |
US6864813B2 (en) | Arithmetic decoding method and an arithmetic decoding apparatus | |
JP5251799B2 (ja) | データ処理装置およびデータ処理方法 | |
JPH0816391A (ja) | コンピュータシステム、命令ビット長圧縮方法、命令発生方法、及びコンピュータシステム動作方法 | |
US6693567B2 (en) | Multi-byte Lempel-Ziv 1(LZ1) decompression | |
JP3748442B2 (ja) | 可変長符号化データ処理装置 | |
JP4852135B2 (ja) | データ分割方法及び装置 | |
US8489832B1 (en) | System and method for duplicating electronically stored data | |
CN111382849B (zh) | 数据压缩方法、处理器、数据压缩装置及存储介质 | |
EP0996056A1 (en) | Arithmetic device | |
JP2003281518A (ja) | 画像処理装置および画像処理方法 | |
US6144321A (en) | Microprocessor dedicated to processing of bit streams in a system of compression/decompression of animated images | |
US6133859A (en) | Microprocessor dedicated to processing of bit streams in a system of compression/decompression of animated images | |
JP3409845B2 (ja) | 可変長ビット列処理装置及びこれを用いた可変長ビット列処理方法 | |
JP3269415B2 (ja) | Crc演算回路 | |
TWI344109B (en) | High efficient pipelined decompression method with no-wait time | |
KR100481204B1 (ko) | 데이터 문자의 입력 스트림을 코드의 출력 스트림으로 압축시키기 위한 데이터 압축 방법 및 장치 | |
JP2823917B2 (ja) | データ圧縮方式 | |
JPS5817763A (ja) | 画像情報蓄積方式 | |
KR100770448B1 (ko) | 비트 추출 장치 및 이를 이용하는 마이크로 프로세서 | |
US6756923B1 (en) | Data compressor utilizing switched input coincidence elements arranged in virtual levels | |
US6674374B1 (en) | Data compressor utilizing switched input coincidence elements | |
JP3555506B2 (ja) | 文字列データ圧縮符号化装置及び文字列データ復元装置及び文字列データ演算処理装置 | |
US7039795B2 (en) | System and method for using a two-stage multiplexing architecture for performing combinations of passing, rearranging, and duplicating operations on data | |
JP3143029B2 (ja) | データ圧縮方法及びその装置並びにデータ伸長方法及びその装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050812 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050823 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051021 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051125 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091209 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091209 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101209 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111209 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111209 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121209 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121209 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131209 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |