(57)【要約】【課題】所定の単位処理毎に可変長符号化データを所定ビット長に分割して分割出力データを得る際、上記所定の単位処理間における連接箇所の分割出力データの結合を従来より効率的に処理可能な可変長符号化データ処理装置を得る。【解決手段】シフタ１０１は、外部データビット長情報ＧＬに基づき、可変長符号化データＤＡをＧＬビット分、右にシフトさせて第１のシフトデータを得る。この際、シフト後の上位ビットは“０”（固定データ）で埋められる。マルチプレクサ１０２は、制御部１０９からの制御信号に基づき、実行する所定の単位処理対象の先頭の可変長符号化データに対してのみシフタ１０１の出力（第１のシフトデータ）を選択する。この第１のシフトデータの有効ビット長が３２ビット以上の場合、上位３２ビットがレジスタ１０６から最初の分割出力データＤＯとして出力される。【選択図】        図１
2004336547.tif 000002
【特許請求の範囲】
【請求項１】
所定の単位処理対象となる第１〜第Ｎ（Ｎ≧２）の可変長符号化データを順次受けるとともに、指定ビット長を指示する外部データビット長情報を受け、前記第１〜第Ｎの可変長符号化データを所定ビット長に分割して得られる分割出力データを順次出力する可変長符号化データ処理装置であって、
前記第１〜第Ｎの可変長符号化データを順次受け、前記第１の可変長符号化データに対してのみ、前記指定ビット長分を第１の方向にシフトさせて得られる第１のシフトデータを、それ以外の可変長符号化データに対してはそのままのデータを、選択データとして順次出力する可変長符号化データ選択手段と、
前記選択データと第１の格納値とを受け、前記第１の格納値が前記第１の方向と反対方向の第２の方向側になるように、前記第１の格納値と前記選択データとを連接して第１の連接データを得る第１のデータ連接手段と、
前記第１の連接データが前記所定ビット長以上の場合に前記第１の連接データを前記第２の方向へ前記所定ビット長分シフトさせた後の第２のシフトデータのうち、前記第２の方向側から前記所定ビット長分除いたデータを、前記第１の連接データが前記所定ビット長未満の場合に前記第１の連接データ自体を、前記第１の格納値として格納する第１のデータ格納処理を実行する第１のデータ格納手段と、
前記第１の連接データが前記所定ビット長以上の場合に前記第１の連接データの前記第２の方向側から前記所定ビット長分のデータを第２の格納値として格納する第２のデータ格納処理を実行する第２のデータ格納値手段とを備え、前記分割出力データは前記第２の格納値を含む、
可変長符号化データ処理装置。
【請求項２】
請求項１記載の可変長符号化データ処理装置であって、
前記指定ビット長は、前記第１の可変長符号化データの前に処理された前記所定の単位処理対象における最終の分割出力データのビット長を含み、
前記第１のシフトデータは、前記指定ビット長分の所定の固定データが前記第１の可変長符号化データの前記第２の方向側に付加されたデータを含む、
可変長符号化データ処理装置。
【請求項３】
請求項１記載の可変長符号化データ処理装置であって、
前記可変長符号化データ選択手段は、所定の外部データをさらに受け、前記所定の外部データは、前記第１の可変長符号化データの前に処理された前記所定の単位処理対象における最終の分割出力データを含み、
前記可変長符号化データ選択手段は、前記所定の外部データが前記第２の方向側になるように、前記所定の外部データと前記第１の可変長符号化データとを連接して前記第１のシフトデータを得る第２のデータ連接手段を有する、
可変長符号化データ処理装置。
【請求項４】
請求項３記載の可変長符号化データ処理装置であって、
前記可変長符号化データ選択手段は、新たな所定の単位処理対象となる複数の可変長符号化データの先頭データの入力時に、前記第Ｎの可変長符号化データにおける最終分割データである前記第２のデータ格納手段の前記第２の格納値を、前記所定の外部データに置き換えて取り込む内部帰還機能を有する、
可変長符号化データ処理装置。
【請求項５】
請求項１ないし請求項４のうち、いずれか１項に記載の可変長符号化データ処理装置であって、
前記第１のデータ連接手段は、
前記第１の連接データに対してデータ加工処理を行うデータ加工手段をさらに含み、
前記データ加工処理は、前記第１の連接データが前記所定ビット長以上であり、前記第１の連接データの前記第２の方向側から前記所定ビット長分のデータ中に所定のデータパターンが存在する場合に前記所定のデータパターンをデータ加工することにより前記第１の連接データを加工する処理を含み、
前記第１及び第２のデータ格納手段は、前記データ加工手段による前記データ加工処理後の前記第１の連接データに対して、前記第１及び第２のデータ格納処理を実行する、
可変長符号化データ処理装置。
【請求項６】
請求項５記載の可変長符号化データ処理装置であって、
前記第１のデータ連接手段は、所定条件時に前記データ加工手段による前記データ加工処理を無効化する機能をさらに備える、
可変長符号化データ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、画像データ圧縮技術で使用される可変長符号化データ処理装置に関し、特に順次入力されるビット長が一定でない可変長データ列を結合し、固定長の分割出力データに整形して出力する可変長符号化データ処理装置に関するものである。
【０００２】
【従来の技術】
従来の可変長符号化データの処理では、順次入力されるビット長が一定でない可変長符号化データを順に結合して所定の固定データ長のビット列の分割出力データに整形して出力するが、全ての分割出力データにおける先頭データは必ず出力データのＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）またはＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）詰めで配置される。例えば、特許文献１ではＭＳＢ詰めで８ビット単位に整形して出力している。
【０００３】
【特許文献１】
特開２００１−３３２９７８号公報（第５−７頁、第１−３図）
【０００４】
【発明が解決しようとする課題】
上記のような従来の可変長符号化データ処理装置では、処理の先頭での出力はＭＳＢあるいはＬＳＢ詰めになっており、１フレームの画像に対し、８×８データのブロックやＭＣＵ（Ｍｉｎｉｍｕｍ  Ｃｏｄｅｄ  Ｕｎｉｔ）を単位として可変長符号化処理を分割して実行する場合、出力の先頭位置は必ずＭＳＢあるいはＬＳＢから始まるのに対し、最終有効出力ビット位置は一定にはならない。最終的に１フレーム画像に対応する可変長符号化データを生成するためには、連続する単位処理間において出力データを順次結合する必要があった。
【０００５】
このため、２回目以降の単位処理における先頭の分割出力データの先頭有効ビット位置をその直前の単位処理における最終の分割出力データの最終有効出力ビット位置の次のビット位置に合わせるように、２回目以降の単位処理の分割出力データ全体をビット単位でシフトしなければならない。シフト処理は本来の目的である可変長符号化動作には不要な処理であり、可変長符号化処理における全体として高速化を妨げるという問題点があった。
【０００６】
この発明は、上記問題点を解決するためになされたもので、所定の単位処理毎に可変長符号化データを所定ビット長に分割して分割出力データを得る際、上記所定の単位処理間における連接箇所の分割出力データの結合を従来より効率的に処理可能な可変長符号化データ処理装置を得ることを目的とする。
【０００７】
【課題を解決するための手段】
この発明にかかる請求項１記載の可変長符号化データ処理装置は、所定の単位処理対象となる第１〜第Ｎ（Ｎ≧２）の可変長符号化データを順次受けるとともに、指定ビット長を指示する外部データビット長情報を受け、前記第１〜第Ｎの可変長符号化データを所定ビット長に分割して得られる分割出力データを順次出力する装置であって、前記第１〜第Ｎの可変長符号化データを順次受け、前記第１の可変長符号化データに対してのみ、前記指定ビット長分を第１の方向にシフトさせて得られる第１のシフトデータを、それ以外の可変長符号化データに対してはそのままのデータを、選択データとして順次出力する可変長符号化データ選択手段と、前記選択データと第１の格納値とを受け、前記第１の格納値が前記第１の方向と反対方向の第２の方向側になるように、前記第１の格納値と前記選択データとを連接して第１の連接データを得る第１のデータ連接手段と、前記第１の連接データが前記所定ビット長以上の場合に前記第１の連接データを前記第２の方向へ前記所定ビット長分シフトさせた後の第２のシフトデータのうち、前記第２の方向側から前記所定ビット長分除いたデータを、前記第１の連接データが前記所定ビット長未満の場合に前記第１の連接データ自体を、前記第１の格納値として格納する第１のデータ格納処理を実行する第１のデータ格納手段と、前記第１の連接データが前記所定ビット長以上の場合に前記第１の連接データの前記第２の方向側から前記所定ビット長分のデータを第２の格納値として格納する第２のデータ格納処理を実行する第２のデータ格納値手段とを備え、前記分割出力データは前記第２の格納値を含む。
【０００８】
【発明の実施の形態】
＜実施の形態１＞
図１はこの発明の実施の形態１である可変長符号化データ処理装置の構成を示すブロック図である。なお、本実施の形態においては、ディジタルカメラにより撮像された静止画像に対しＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）圧縮を実行するシステムにおける、可変長符号化データの処理を想定している。
【０００９】
図１に示すよう、可変長符号化データ処理装置１００Ａは、シフタ１０１、マルチプレクサ１０２、連接器１０３、シフタ１０４、ビット長演算部１０５、レジスタ１０６、レジスタ１０７、ビット長拡張器１０８、及び制御部１０９を有している。
【００１０】
図１では、一の単位処理における複数の可変長符号化データとして可変長符号化データＤＡ，ＤＢ，…が入力される場合を示しており、可変長符号化データＤＡが先頭の可変長符号化データとなる。可変長符号化データＤＡ（ＤＢ）のビット長は最長２６ビットであるものとする。したがって、可変長符号化データ長情報ＤＡＬ（ＤＢＬ）はビット幅５ビットである（可変長符号化データＤＡの大きさは最大２６になることから）と仮定する。
【００１１】
また、外部データは最大３１ビットであるものとする。したがって外部データビット長情報ＧＬで指示すべき値は、最小で０に、最大で３１になることから、外部データビット長情報ＧＬのビット幅は５ビットであると仮定する。
【００１２】
また、出力データビット長選択信号ＳＤは、レジスタ１０６から出力するデータの固定ビット長（所定ビット長）を選択するもので、一般に８ビット、１６ビット、３２ビットといった８の倍数のビット長が使用される。本実施の形態では出力ビット長として３２ビットが選択されるよう制御された出力データビット長選択信号ＳＤが入力されるものと仮定する。
【００１３】
シフタ１０１は右シフト（第１の方向へのシフト）動作を行い、シフタ１０４は左シフト（第２の方向へのシフト）を行う。シフトの方向はデータの出力先システムにより決まり、本実施の形態ではシフト後の下位（上位）ビットは“０”（固定データ）で埋められるものと仮定する。
【００１４】
連接器１０３は、マルチプレクサ１０２の出力（選択データ）とレジスタ１０７の出力（第１の格納値）を連接して第１の連接データを得るものであり、レジスタ１０７の出力のＬＳＢの下位ビット側にマルチプレクサ１０２の出力を結合して上記第１の連接データを得るものである。すなわち、連接器１０３は、第１の格納値が左側（上位側）に位置するように、選択データと第１の格納値とを連接して第１の連接データを得ている。
【００１５】
レジスタ１０６は、シフタ１０４のシフト動作によりオーバーフローが予測されるデータを、連接器１０３より得て第２の格納値として保持するもので、第２の格納値のビット長は出力データビット長選択信号ＳＤで選択されるビット長（３２ビット）に等しい。すなわち、レジスタ１０６は第１の連接データが３２ビット以上の場合、第１の連接データにおけるＭＳＢ側から３２ビット分のデータを第２の格納値として格納する。
【００１６】
レジスタ１０７は、シフタ１０４のシフト動作完了後の第２のシフトデータ（オーバーフロー分を含む）のうちオーバーフローせずに残ったデータ（すなわち、第２のシフトデータのＭＳＢから３２ビット分を除いたデータ）を保持するものである。なお、出力データビット長選択信号ＳＤで選択されるビット長（３２ビット）はビット長演算部１０５で演算された後、ビット長演算部１０５に接続される制御部１０９によってレジスタ１０６に付与される。したがって、上述したように、レジスタ１０６は連接器１０３から得られるデータの上位３２ビット（出力データビット長選択信号ＳＤが選択するビット数）を取り込むことができる。
【００１７】
ビット長拡張器１０８は、マルチプレクサ１０２に出力するデータのビット長をシフタ１０１の出力データビット長に揃えるためのものであり、可変長符号化データのＭＳＢを出力のＭＳＢとし下位ビットに“０”を詰めることによりビット長を拡張する。シフタ１０１の最大有効出力ビット長は５７ビットになることから、ビット長拡張器１０８の出力も５７ビットになるように拡張される。
【００１８】
上記構成において、シフタ１０１、マルチプレクサ１０２及びビット長拡張器１０８が可変長符号化データ選択手段として機能し、連接器１０３が第１の連接手段として機能し、シフタ１０４及びレジスタ１０７が第１のデータ格納手段として機能し、レジスタ１０６が第２のデータ格納手段として機能する。
【００１９】
次に、上記のように構成された実施の形態１の可変長符号化データ処理装置の動作について説明する。
【００２０】
図２は、実施の形態１の可変長符号化データ処理装置を用いた可変長符号化データの流れを説明するための説明図である。以下、図２を参照して、所定の単位処理対象となる可変長符号化データＤＡ（第１の可変長符号化データ），ＤＢ（第２の可変長符号化データ），…第Ｎ（Ｎ≧２）の可変長符号化データが１〜Ｎの順で付与される場合の処理内容を説明する。
【００２１】
図２の（ａ）を参照して、まず、シフタ１０１に可変長符号化データＤＡ及び外部データビット長情報ＧＬが入力される。このときの外部データビット長情報ＧＬは、可変長符号化データＤＡの前の所定の単位処理によって得られた最終の分割出力データにおける最終出力ビット長を示す情報となる。例えば、前の単位処理対象の複数の可変長符号化データにおける単位出力データ群の最終の分割出力データのビット長が８ビットの場合、外部データビット長情報ＧＬは８ビットを指示することになる。
【００２２】
シフタ１０１は、外部データビット長情報ＧＬに基づき、可変長符号化データＤＡをＧＬビット分、右にシフトさせて第１のシフトデータを得る。したがって、第１のシフトデータのうち、有効データはＭＳＢから（ＧＬ＋１）ビット目から可変長符号化データ長情報ＤＡＬの指示するデータ長分のデータになる。この際、シフト後の上位ビットは“０”（固定データ）で埋められる。
【００２３】
マルチプレクサ１０２は、制御部１０９からの制御信号に基づき、実行する所定の単位処理の先頭（の可変長符号化）データに対してのみシフタ１０１の出力（第１のシフトデータ）を選択するため、先頭データ（可変長符号化データＤＡ）の処理を実行している現段階ではマルチプレクサ１０２の出力である選択データは第１のシフトデータと等しくなる。
【００２４】
なお、制御部１０９は、図示しないＣＰＵにより付与される制御信号ＳＣに基づき、所定の単位処理の先頭データであるか否かを認識することができる。
【００２５】
次に、マルチプレクサ１０２の出力とレジスタ１０７の出力とが連接器１０３に入力されるが、可変長符号化データＤＡが先頭データであることからレジスタ１０７にはまだ有効データが保持されていないため、連接器１０３の有効出力（第１の連接データ）は、シフタ１０１の出力（第１のシフトデータ）に等しくなる。
【００２６】
連接器１０３の出力である第１の連接データのうち、シフタ１０１でのシフト量も含めた有効データ長（ＤＡＬ＋ＧＬ）が、出力データビット長選択信号ＳＤにより選択されている３２ビット以上であるとすると、連接器１０３の出力はシフタ１０４に入力されて３２ビット左シフトされるが、３２ビットより小さいとシフタ１０４でのシフト動作は行われない。
【００２７】
ビット長演算部１０５には、可変長符号化データ処理装置１００Ａに入力される可変長符号化データ長情報ＤＡＬ、外部データビット長情報ＧＬ及び出力データビット長選択信号ＳＤといったデータ長に関する信号が入力され、各段階での出力の有効ビット長に関する情報を保持している。制御部１０９にはビット長演算部１０５で保持する情報が入力され、シフタ１０４でのシフト動作の実行の有無、レジスタ１０６及びレジスタ１０７のデータの更新を制御する。
【００２８】
第１の連接データが３２ビット以上でシフタ１０４でのシフト動作が行われた場合、レジスタ１０６による第２のデータ格納処理が実行されることにより、第１の連接データのうち左シフトによりオーバーフローする３２ビットデータが第２の格納値として格納され、シフタ１０４及びレジスタ１０７による第１のデータ格納処理が実行されることにより、第１の連接データが左シフトによってもオーバーフローなかったシフタ１０４の出力（第２のシフトデータ）が第１の格納値としてレジスタ１０７に格納される。
【００２９】
一方、第１の連接データが３２ビット未満でシフタ１０４でのシフト動作が行われなかった場合、上記第２のデータ格納処理によりレジスタ１０６の第２の格納値は更新されず、上記第１のデータ格納処理により第１の連接データ自体がシフタ１０４を介して第１の格納値としてレジスタ１０７に格納される。
【００３０】
図２で示す例では、可変長符号化データＤＡの処理に対する連接器１０３の出力である第１の連接データにおける有効データ長が３２ビット以上であると仮定すると、連接器１０３のＭＳＢから３２ビットのデータがレジスタ１０６に入力され、連接器１０３のＭＳＢから３３ビット目から下位のデータがレジスタ１０７に入力され、各々のレジスタ１０６，１０７の格納値が更新される。
【００３１】
上述した動作は、シフタ１０４でのシフト動作は出力が３２ビットより小さくなるまで繰り返され、その都度レジスタ１０６及びレジスタ１０７で格納する第２及び第１のデータを更新し、シフタ１０４でのシフト動作がすべて終了するまで次の可変長符号化データＤＢの入力は行わない。
【００３２】
この時、レジスタ１０６に格納される第２の格納値の３２ビットのデータのうちＬＳＢ側にある可変長符号化データＤＡのＭＳＢ側のデータＤＡｕのデータ長（ＤＡＬｕ）は（３２−ＧＬ）として、第２のレジスタに保持されるデータＤＡｌの有効データ長ＤＡＬｌは（ＤＡＬ＋ＧＬ−３２）として算出可能である。
【００３３】
次に、図２の（ｂ）を参照して、可変長符号化データ処理装置１００Ａに続く次の可変長符号化データＤＢが入力される場合を説明する。可変長符号化データＤＢは２番目のデータであり処理の先頭データではないため、マルチプレクサ１０２からはビット長拡張器１０８を介して可変長符号化データＤＢが選択データして出力される。実際には、ビット長拡張器１０８によってビット長が拡張された可変長符号化データＤＢが選択されるが、実質的に内容は同じであるためここでは可変長符号化データＤＢとして説明する。
【００３４】
今回はレジスタ１０７には有効な第１の格納値が格納されているため、連接器１０３では可変長符号化データＤＢとレジスタ１０７の第１の格納値ＤＡｌとの連接処理が実行される。すなわち、第１の格納値ＤＡｌが上位側に位置するように第１の格納値ＤＡｌと可変長符号化データＤＢとを連接して第１の連接データ｛ＤＡｌ＋ＤＢ｝を得る。
【００３５】
図２の例では、連接器１０３の出力（第１の連接データ）における有効データ長が３２ビットより小さいと仮定すると、第１の連接データ自体がレジスタ１０７に入力され、レジスタ１０７が格納する第１の格納値が更新される（シフト動作を行わないシフタ１０４の出力を受けるため）が、レジスタ１０６が格納している第２の格納値は更新されない。
【００３６】
一方、第１の連接データが３２ビットより大きいと仮定すると、第１の連接データＭＳＢから３２ビットのデータ、つまりシフタ１０４でのシフト動作でオーバーフローする３２ビットデータがレジスタ１０６に入力され、シフタ１０４の出力はレジスタ１０７に入力される。
【００３７】
そして、レジスタ１０６の第２の格納値が、可変長符号化データ処理装置１００Ａとしての３２ビットに分割された分割出力データＤＯとして出力され、この分割出力データＤＯがメモリ等の図示しない外部記憶手段に入力され保存される。分割出力データＤＯの出力は外部記憶手段にレジスタ１０６の第２の格納値の読み出し指令等を与える等によって実現可能である。
【００３８】
以降順次、可変長符号化データ処理装置１００Ａに可変長符号化データＤＢに続く可変長符号化データを入力し、上述の可変長符号化データＤＢの場合と同様にして、最終的に第Ｎの可変長符号化データに対する処理を終えると、所定の単位処理対象（ＤＡ，ＤＢ，…）の可変長符号化データ処理が終わる。
【００３９】
可変長符号化データ処理回数Ｎは、処理実行対象となる単位に依存して決まり、一般的にはＪＰＥＧ圧縮処理の基本的な処理単位である８×８のデータブロックに相当する回数、あるいはいくつかのブロックからなるＭＣＵ単位に相当する回数になる。つまり、データブロック単位の場合は６４回、サンプリングモード４：２：０でのＭＣＵ単位の場合は３８４回の可変長符号化データの入力によって所定の単位処理のデータ処理が完了する。
【００４０】
所定の単位処理対象の可変長符号化データ処理において、レジスタ１０６が第２の格納値を格納した後、連接器１０３の出力である第１の連接データの有効データ長が３２ビットより小さい場合、当該第１の連接データをレジスタ１０６は取り込まないため、そのままでは可変長符号化データ処理装置１００Ａの分割出力データＤＯとして出力されないことになる。
【００４１】
このため、システム上にあるＣＰＵ等から制御部１０９を通して強制的に第１の連接データを分割出力データＤＯとして出力される処理が必要となる。例えば、強制的に連接器１０３の出力をレジスタ１０６が取り込み、第２の格納値を更新するといった処理、あるいは、レジスタ１０６とレジスタ１０７との出力を受けるマルチプレクサを別途設け、このマルチプレクサを制御部１０９により制御して、所定の単位処理のデータ処理の終了時にレジスタ１０７から有効データを分割出力データＤＯとして出力させる構成等が考えられる。
【００４２】
以上のような構成の本実施の形態においては、外部データビット長情報ＧＬを入力することにより、最初の分割出力データＤＯの有効出力データの開始位置にオフセットを持たせることが可能になる。
【００４３】
図３は従来の可変長符号化データ処理による単位処理対象間における分割出力データの結合処理を説明するための説明図である。図４は本実施の形態による可変長符号化データ処理による単位処理対象間における分割出力データの結合を説明するための説明図である。
【００４４】
従来は、各々が所定の単位処理対象となる分割出力データ群Ｄ１〜Ｄ３それぞれが３２ビット単位分割されて出力される場合、図３の（ａ）に示すようになる。なお、分割出力データ群Ｄ１〜Ｄ３は、それぞれ単位処理対象となる複数の可変長符号化データを分割して得られた分割出力データの集合を意味する。
【００４５】
このように分割して出力された分割出力データ群Ｄ１〜Ｄ３を順次結合する必要がある場合、分割出力データ群Ｄ２は、分割出力データ群Ｄ２を構成する全ての分割出力データにおいて、分割出力データ群Ｄ１の最終の分割出力データのビット数Ｂ１分右へシフトさせた後に図３の（ｂ）のように連接する必要がある。同様にして、分割出力データ群Ｄ３を構成する全ての分割出力データにおいて、分割出力データ群Ｄ１及びＤ２の連接後の最終データのビット数Ｂ１２分右へシフトさせた後に図３の（ｂ）のように連接する必要がある。
【００４６】
一方、実施の形態１では、図４の（ａ）に示すように、分割出力データ群Ｄ２に対応する先頭の可変長符号化データの入力時には分割出力データ群Ｄ１の最終の分割出力データのビット数Ｂ１を外部データビット長情報ＧＬとして入力することより、分割出力データ群Ｄ２の先頭の分割出力データは既にオフセットされ、分割出力データ群Ｄ１の最終の分割出力データのビット数Ｂ１分が“０”となっている。
【００４７】
同様にして、分割出力データ群Ｄ３に対応する先頭の可変長符号化データの入力時には分割出力データ群Ｄ２の最終データのビット数Ｂ２を外部データビット長情報ＧＬとして入力することより、分割出力データ群Ｄ３の先頭の分割出力データはオフセットされ、分割出力データ群Ｄ２の最終の分割出力データのビット数Ｂ２分が“０”となっている。
【００４８】
したがって、図４の（ｂ）に示すように、分割出力データ群Ｄ１の最終の分割出力データと分割出力データ群Ｄ２の先頭の分割出力データとの論理和、及び分割出力データ群Ｄ２の最終の分割出力データと分割出力データ群Ｄ３の先頭の分割出力データとの論理和を、それぞれ連接箇所Ｊ１及びＪ２において取ることで簡単に結合でき、実際にシフト動作を実行するＣＰＵ（図示しない）の負荷を軽減できる。すなわち、従来のように、分割出力データ群Ｄ２及びＤ３の全ての分割出力データのシフト動作は全く不要となる。
【００４９】
このように、実施の形態１では、直前に単位処理対象における分割出力データ群の最終の分割出力データの有効ビット数分オフセットを持たせて、次の単位処理対象の先頭の可変長符号化データに対するデータ処理を行うため、図４の（ｂ）に示すように、連接箇所Ｊ１，Ｊ２において前後の出力の論理和をとるだけで前後の分割出力データの連接を行うことができる。その結果、従来より可変長符号化データに対するデータ処理を効率的に実行することができる。
【００５０】
＜実施の形態２＞
図５はこの発明の実施の形態２である可変長符号化データ処理装置の構成を示すブロック図である。
【００５１】
図５に示すように、実施の形態２の可変長符号化データ処理装置１００Ｂは、図１で示した実施の形態１の構成と異なり、シフタ１０１に置き換えて連接器１１０（第２のデータ連接手段）を用い、新たにマルチプレクサ１１１及びマルチプレクサ１１２を追加している。また、ビット長演算部１０５に置き換えてビット長演算部１２０を用いている。さらに、入力データとして外部データＧＤ及び最終出力データＦＤを入力している。
【００５２】
マルチプレクサ１１１は外部データＧＤ及び最終出力データＦＤを受け、制御部１０９の制御下で一方を連接器１１０に出力する。マルチプレクサ１１２は外部データビット長情報ＧＬ及び有効ビット長ＦＬを受け、制御部１０９の制御下で一方を連接器１１０及びビット長演算部１２０に出力する。
【００５３】
連接器１１０は可変長符号化データＤＡ（ＤＢ）とマルチプレクサ１１１の出力とを連接して第２の連接データを得、第２の連接データをマルチプレクサ１０２に出力する。
【００５４】
ビット長演算部１２０は、実施の形態１のビット長演算部１０５と比べた場合、外部データビット長情報ＧＬの代わりにマルチプレクサ１１２の出力を受け、また、有効ビット長ＦＬをマルチプレクサ１１２に出力する点が異なる。
【００５５】
なお、他の入力データ及び構成は図１で示した実施の形態１と同様である。
【００５６】
図６は、実施の形態２の可変長符号化データ処理装置を用いた可変長符号化データの流れを説明するための説明図である。以下、図６を参照して、可変長符号化データＤＡ，ＤＢ，…の順で可変長符号化データが付与される場合の処理内容を説明する。
【００５７】
図６の（ａ）を参照して、まず、マルチプレクサ１１１に可変長符号化データＤＡ及び外部データＧＤが入力される。外部データＧＤは所定の単位処理データ群である可変長符号化データＤＡ，ＤＢ，…の直前の単位処理対象の分割出力データ群における最終の分割出力データに相当する。この外部データＧＤは図示しないＣＰＵが保持している。
【００５８】
また、実施の形態１と同様、外部データビット長情報ＧＬがマルチプレクサ１１２に入力される。このときの外部データビット長情報ＧＬは、外部データＧＤの最終出力のビット長を示す情報となる。
【００５９】
マルチプレクサ１１１は所定の単位処理対象の先頭の可変長符号化データである可変長符号化データＤＡの入力時のみ、外部データＧＤを出力し、以降は内部で生成される最終出力データＦＤを出力する。したがって、この場合は外部データＧＤを連接器１１０に出力する。
【００６０】
マルチプレクサ１１２は可変長符号化データＤＡの入力時のみ、外部データビット長情報ＧＬを出力し、以降は内部で生成される有効ビット長ＦＬを出力する。したがって、この場合は外部データビット長情報ＧＬ（このときの有効ビット長ＦＬは“０”）を連接器１１０に出力する。
【００６１】
連接器１１０には、マルチプレクサ１１１及び１１２で選択された外部データＧＤ及び外部データビット長情報ＧＬ並びに可変長符号化データＤＡが入力され、ＭＳＢから順に、外部データＧＤのＭＳＢからＧＬビット分の有効データ、ＤＡの順に各々のデータのＭＳＢが上位に来るように結合されたデータが出力される。この連接器１１０の出力（第２の連接データ）と可変長符号化データＤＡが入力されるビット長拡張器１０８の出力がマルチプレクサ１０２に入力され、実施の形態１の場合と同様にして、可変長符号化データの処理先頭時にのみ連接器１１０の出力がマルチプレクサ１０２の出力として選択される。
【００６２】
次に、マルチプレクサ１０２の出力とレジスタ１０７の出力とが連接器１０３に入力されるが、可変長符号化データＤＡが先頭データであることからレジスタ１０７にはまだ有効データが保持されていないため、連接器１０３の有効出力は、マルチプレクサ１１１の出力データ（外部データＧＤ＋可変長符号化データＤＡ）に等しくなる。連接器１０３の出力のうち、外部データビット長情報ＧＬも含めた有効データ長（ＤＡＬ＋ＧＬ）が、出力データビット長選択信号ＳＤにより選択されている３２ビット以上であるとすると、連接器１０３の出力はシフタ１０４に入力されて３２ビット左シフトされるが、３２ビットより小さいとシフタ１０４でのシフト動作は行われない。
【００６３】
ビット長演算部１２０には、可変長符号化データ処理装置１００Ｂに入力される可変長符号化データ長情報ＤＡＬ、マルチプレクサ１１２の出力（外部データビット長情報ＧＬあるいは有効ビット長ＦＬ）及び出力データビット長選択信号ＳＤといったデータ長に関する信号が入力され、各段階での出力の有効ビット長に関する情報を保持している。制御部１０９にはビット長演算部で保持する情報が入力され、シフタ１０４でのシフト動作の実行の有無、レジスタ１０６及びレジスタ１０７のデータの更新を制御する。
【００６４】
以降、実施の形態１と同様にして、可変長符号化データＤＡの処理に対する連接器１０３の出力における有効データ長が３２ビット以上であると仮定すると、連接器１０３のＭＳＢから３２ビットのデータ（外部データＧＤ＋部分可変長符号化データＤＡｕ）がレジスタ１０６に入力され、連接器１０３のＭＳＢから３３ビット目から下位のデータ（部分可変長符号化データＤＡｌ）がレジスタ１０７に入力され、各々のレジスタの格納値が更新される。
【００６５】
上述した動作は、実施の形態１と同様、シフタ１０４でのシフト動作は出力が３２ビットより小さくなるまで繰り返される。
【００６６】
この時、レジスタ１０６に格納される３２ビットのデータのうちＬＳＢ側にある可変長符号化データＤＡのＭＳＢ側のデータＤＡｕのデータ長（ＤＡＬｕ）は（３２−ＧＬ）として、第２のレジスタに保持されるデータＤＡｌの有効データ長ＤＡＬｌは（ＤＡＬ＋ＧＬ−３２）として算出可能である。
【００６７】
次に、図６の（ｂ）を参照して、可変長符号化データ処理装置１００Ｂに次の可変長符号化データＤＢが入力される場合を説明する。可変長符号化データＤＢは２番目のデータであり処理の先頭データではないため、マルチプレクサ１０２からはビット長拡張器１０８を介して実質的に可変長符号化データＤＢそのものが出力される。
【００６８】
今回はレジスタ１０７が有効データを保持しているため、実施の形態１と同様、連接器１０３では可変長符号化データＤＢとレジスタ１０７の出力ＤＡｌとの連接処理が実行される。以降、実施の形態１と同様に処理される。
【００６９】
このように、実施の形態２では、実施の形態１と同様、可変長符号化データ処理装置１００Ｂから出力される可変長符号化データの有効出力開始ビット位置は外部データビット長情報ＧＬとして指定したビット数だけＭＳＢからオフセットを持っている。
【００７０】
さらに、実施の形態２は、実施の形態１と異なり、オフセット部分が“０”で埋められるのではなく、マルチプレクサ１１１の出力、すなわち外部データＧＤで埋められる点に違いがある。
【００７１】
すなわち、本実施の形態においては、所定の単位処理の可変長符号化データ処理を複数回実行する際の最初の処理実行時に、外部データＧＤと外部データＧＤのビット長を示す有効ビット長ＧＬとを取り込むことにより、可変長符号化データＤＡに対応する先頭の分割出力データの出力の際、図６（ｂ）のレジスタ１０６の出力に示すように、前回の単位処理対象の最終の分割出力データ（外部データＧＤ）が既に付加された状態で出力することができる。
【００７２】
したがって、実施の形態１で行っていた処理境界部分の前後の出力に対する論理和演算をも不要となり、各所定の単位処理の出力を容易に結合することができ、実施の形態１よりもさらにＣＰＵの負荷軽減に貢献できる。
【００７３】
ただし、実施の形態２の装置からの出力をすべて外部メモリに取り込むと、単位処理毎の分割出力データ境界部分で最終出力データＧＤの出力が重複してしまう。すなわち、最終出力データＧＤのみの分割出力データと、最終出力データＧＤと次の単位処理対象の先頭の可変長符号化データデータの一部とが重複した分割出力データが連続して出力されることになる。
【００７４】
そこで、有効データが最終出力データＧＤのみの場合の端数データは、ＣＰＵの制御下で図示しない外部メモリで記憶しないといった手順とすることにより、外部メモリへのデータ書き込みの重複を回避する必要がある。
【００７５】
また、実施の形態２では、所定の単位処理を複数回連続して実行する場合、制御部１０９により２回目以降の単位処理ではマルチプレクサ１１１及びマルチプレクサ１１２において、最終出力データＦＤ及び有効ビット長ＦＬを内部帰還するように制御している。このとき、最終出力データＦＤ及び有効ビット長ＦＬは、単位処理対象の第１〜第Ｎの可変長符号化データであった場合、最終出力データＦＤは第Ｎの可変長符号化データにおける最終分割データ、有効ビット長ＦＬはその有効ビット長となる。
【００７６】
このように、実施の形態２は、マルチプレクサ１１１からレジスタ１０６の格納値である最終出力データＦＤを、マルチプレクサ１１２から最終出力データ有効ビット長ＦＬ（ビット長演算部１２０よる演算により得られる）を出力するという内部帰還機能を有することにより、ＣＰＵによる外部データＧＤ及び外部データビット長情報ＧＬの制御がなくとも所定の単位処理対象の２回目以降の単位処理対象間の連接箇所における分割出力データを連続的に出力することが可能になる。
【００７７】
すなわち、最終出力データＦＤ及び有効ビット長ＦＬを外部データＧＤ及び外部データビット長情報ＧＬとして利用できるため、２回目以降の所定の単位処理対象間における分割出力データの連接に際しては外部データＧＤ及び有効ビット長ＧＬの入力は不要となる。
【００７８】
図４を例に挙げれば、分割出力データ群Ｄ１の出力が行われた後、新たに単位処理対象の可変長符号化データに対するデータ処理を施し、分割出力データ群Ｄ２から分割出力データ群Ｄ３まで連続してデータ処理を行う場合、分割出力データ群Ｄ１の最終の分割出力データ及びその有効ビット数Ｂ１は外部データＧＤ及び外部データビット長情報ＧＬとして外部から取り込む必要はあるが、分割出力データ群Ｄ２の最終の分割出力データ及びその有効ビット数Ｂ２は最終出力データＦＤ及び有効ビット長ＦＬとして内部帰還させることができるため、外部データＧＤ及び外部データビット長情報ＧＬの外部からの入力は不要となる。
【００７９】
なお、本実施の形態では、マルチプレクサ１１１及び１１２を追加し、最終出力データＦＤ及び有効ビット長ＦＬを内部帰還させたが、この処理に代えて、マルチプレクサ１０２を制御して、単位処理対象が２回目以降の可変長符号化データの先頭データに対する処理に際してもビット長拡張器１０８側を選択するように構成しても、単位処理対象が２回目以降の可変長符号化データに対する処理に際して外部データＧＤ及び有効ビット長ＧＬの入力を不要にすることができる。
【００８０】
＜実施の形態３＞
図７はこの発明の実施の形態３である可変長符号化データ処理装置１００Ｃの構成を示すブロック図である。実施の形態３は、実施の形態２の構成にＪＰＥＧ圧縮におけるマーカーコード挿入機能を備えた可変長符号化データ処理装置である。
【００８１】
まず、ＪＰＥＧにおけるマーカーコードについて説明する。一般にＪＰＥＧ圧縮におけるマーカーコードとは、圧縮された画像データを制御するものであり、１６進表記で「ＦＦ」というデータから始まる１６ビットの特定のデータパターンで構成される。以降、「」内で示される０〜９，Ａ〜Ｆは１６進表記を意味するものとする。
【００８２】
しかし、可変長符号化された圧縮画像データ中にも「ＦＦ」というデータが含まれることがあり、この場合、マーカーコードとの区別がつかなくなる。そこで、１６進表記で「ＦＦ００」を、圧縮されたデータであることを示すマーカーコード（Ｎｏｔ  ａ  Ｍａｒｋｅｒ）として取り決め、圧縮された画像データ中に「ＦＦ」というデータが存在するときは、直後に「００」という８ビットのデータを挿入することで対応する。
【００８３】
図７に示すように、実施の形態３は、データパターン検出器１１３、ビット列処理部１１４、マルチプレクサ１１５、データパターン挿入器１１６、データパターン検出器１１７及びマルチプレクサ１１８を追加した点並びにビット長演算部１２０に代えてビット長演算部１２１を用いた点において、実施の形態２と異なる。
【００８４】
実施の形態３では、基本的には実施の形態２と同様にして動作する。通常時は、制御部１０９の制御下で、マルチプレクサ１１５はビット列処理部１１４の出力を選択し、マルチプレクサ１１８はデータパターン挿入器１１６の出力を選択するように制御される。
【００８５】
連接器１０３の出力（第１の連接データ）は、データ加工手段であるデータパターン挿入器１１６及びデータパターン検出器１１７に入力され、連接器１０３の有効データ出力のＭＳＢから３２ビットのビット列についてのみデータパターン検出器１１７で「ＦＦ」データの検出が実行され、「ＦＦ」データが含まれる場合にデータパターン挿入器１１６で１６進表記で「００」の８ビットデータを「ＦＦ」データの直後に挿入する。
【００８６】
例えば、連接器１０３の出力のうちの有効データ出力が、１６進表記で「４５ＦＦ２Ｃ０３ＦＦ８」の４４ビットであったとする。この時、ＭＳＢから数えて９ビット目から１６ビット目、及び３３ビット目から４０ビット目に「ＦＦ」データが含まれているため、データパターン検出器１１７において「ＦＦ」データの存在が検出される。ただし、ＭＳＢから３３ビット目から４０ビット目の「ＦＦ」については、出力データビット長３２の範囲から外れるため「００」データ挿入の対象とはならず、データパターン挿入器１１６からは「００」データが１つ挿入された「４５ＦＦ００２Ｃ０３ＦＦ８」が出力され、有効データビット長は８ビット増える。この時、データパターン挿入器１１６の出力におけるビット長の変化に関する情報は、ビット長演算部１２１に送られる。
【００８７】
このように、実施の形態３は、データパターン挿入器１１６及びデータパターン検出器１１７を設け、連接器１０３の出力である第１の連接データの上位３２ビット中に所定のデータパターンである「ＦＦ」が存在する場合に、「００」を付加するデータ加工処理を第１の連接データに対して行うことにより、「ＦＦ００」のマーカーコードを付加するデータ加工処理を行うことができる。なお、実施の形態１の構成に対しても連接器１０３とシフタ１０４，レジスタ１０６との間にデータパターン挿入器１１６及びデータパターン検出器１１７と同等のデータ加工手段を挿入することにより上記データ加工処理を実現できることは勿論である。
【００８８】
データパターン挿入器１１６の出力は、シフタ１０４及びレジスタ１０６に入力され、レジスタ１０６の保持するデータ（第２の格納値）は「４５ＦＦ００２Ｃ」に更新され、シフタ１０４の有効出力データは「０３ＦＦ８」となり、レジその有効ビット長はビット長演算部１２１で２０ビットと算出される。そして、シフタ１０４の有効出力データが第１の格納値としてレジスタ１０７に格納される。
【００８９】
このように、シフタ１０４及びレジスタ１０７とレジスタ１０６とは、データパターン挿入器１１６及びデータパターン検出器１１７によるデータ加工手段によるデータ加工処理後の第１の連接データに対して、各々のデータ格納処理を実行する。
【００９０】
所定のデータ個数分の処理を実行して、最終出力データＦＤの有効ビット長ＦＬが３２ビットに満たない場合、レジスタ１０６で保持するデータをＦＤに更新し、ＦＤ及びＦＬはそれぞれマルチプレクサ１１１及びマルチプレクサ１１２に帰還され、次回処理時に使用される。
【００９１】
この際、最終出力データＦＤの有効データ部分にマーカーコード「ＦＦ００」が含まれている場合、実施の形態２のようにマルチプレクサ１１１の出力を連接器１１０にそのまま入力すると、連接器１０３の出力には前回の処理で挿入されたマーカーコード「ＦＦ００」がそのまま含まれているため、データパターン検出器１１７で再度「ＦＦ」が検出され、データパターン挿入器１１６で「００」が挿入されることになる。したがって、データパターン挿入器１１６の出力には「ＦＦ００００」というデータが含まれることになり、重複して挿入された「００」は圧縮画像データとして認識されることになる。
【００９２】
図８はビット列処理部１１４の処理動作の説明用の説明図である。上記のように最終出力データＦＤ内にマーカーコード「ＦＦ００」が含まれている場合、図８に示すように、マルチプレクサ１１１の出力に対してデータパターン検出器１１３において「ＦＦ００」データの検出を行い、マーカーコード「ＦＦ００」が検出された場合には、ビット列処理部１１４でデータ「ＦＦ」に続くデータ「００」を削除し、ビット長演算部１２１では有効ビット長を８ビット減らす。そして、８ビット減らしたことを制御部１０９に伝達する。
【００９３】
最終出力データＦＤを取り込む場合は、マルチプレクサ１１５はビット列処理部１１４の出力が選択されているので、連接器１１０にはビット列処理部１１４の出力が入力され、マルチプレクサ１０２及び連接器１０３を経由して所定の処理を実行されたデータはデータパターン挿入器１１６ならびにデータパターン検出器１１７に入力される。データパターン検出器１１７において、再度「ＦＦ」データが検出されてデータパターン挿入器１１６で「ＦＦ」の直後に「００」が挿入されるが、既にビット列処理部１１４において「００」の削除が行われているために重複挿入は回避され、可変長符号化データとして入力されるデータに「ＦＦ」が含まれる場合は、正常な「００」挿入が実行される。
【００９４】
以上のように、ＪＰＥＧ方式における圧縮画像データ「ＦＦ」に対する「００」データ挿入処理及び最終出力データＦＤを帰還することによる連続処理を実行する場合に、マルチプレクサ１１１に含まれる「ＦＦ００］に対してあらかじめ「００」を削除することで、データパターン挿入器１１６における「００」データの重複挿入を回避することができる。
【００９５】
また、所定条件時に制御部１０９の制御下でマルチプレクサ１１５による選択をマルチプレクサ１１１に切り換えることにより、データ削除手段であるデータパターン検出器１１３及びビット列処理部１１４による「００」削除機能を無効化できる。同様にして、制御部１０９の制御下でマルチプレクサ１１８による選択を連接器１０３に切り換えることにより、データパターン挿入器１１６及びデータパターン検出器１１７における「００」挿入機能を無効化することができる。
【００９６】
その結果、マーカーコードといった特定データパターンに関する処理が不要なＪＰＥＧ方式とは異なる手法（例えば、ＭＰＥＧ方式）で圧縮された可変長符号化データに対する処理時（所定条件時）においても支障無く可変長符号化データ処理を実行することができる。
【００９７】
このように、マルチプレクサ１１５はデータパターン検出器１１３及びビット列処理部１１４のデータ削除手段のデータ削除処理の無効化機能を有する。一方、第１のデータ連接手段は連接器１０３以外に、上記データ加工手段を有することによりデータ加工処理が行え、さらにマルチプレクサ１１８を有することにより上記データ加工処理の無効化機能を有する。
【００９８】
なお、実施の形態３においても、実施の形態２と同様、単位処理対象が２回目以降の可変長符号化データの先頭データに対する処理に際してもビット長拡張器１０８側を選択するように構成しても、単位処理対象が２回目以降の可変長符号化データに対する処理に際して外部データＧＤ及び有効ビット長ＧＬの入力を不要にすることができ、これに伴いデータパターン検出器１１３及びビット列処理部１１４を省略することができる。
【００９９】
【発明の効果】
以上説明したように、この発明における請求項１記載の可変長符号化データ処理装置における可変長符号化データ選択手段は、第１の可変長符号化データの入力時に外部データビット長情報で示す指定ビット長分、第１の方向にシフトさせた第１のシフトデータを選択データとして出力している。
【０１００】
したがって、第１の可変長符号化データに対応する分割出力データとして、上記指定ビット長分、第１の方向にオフセットを持たせたデータを出力させることができる。
【図面の簡単な説明】
【図１】この発明の実施の形態１である可変長符号化データ処理装置の構成を示すブロック図である。
【図２】実施の形態１の可変長符号化データ処理装置を用いた可変長符号化データの流れを説明するための説明図である。
【図３】従来の可変長符号化データ処理による出力データの結合処理を説明するための説明図である。
【図４】実施の形態１による可変長符号化データ処理による出力データの結合を説明するための説明図である。
【図５】この発明の実施の形態２である可変長符号化データ処理装置の構成を示すブロック図である。
【図６】実施の形態２の可変長符号化データ処理装置を用いた可変長符号化データの流れを説明するための説明図である。
【図７】この発明の実施の形態３である可変長符号化データ処理装置の構成を示すブロック図である。
【図８】ビット列処理部１１４の処理動作の説明用の説明図である。
【符号の説明】
１００Ａ〜１００Ｃ  可変長符号化データ処理装置、１０１，１０４  シフタ、１０２，１１１，１１２，１１５，１１８  マルチプレクサ、１０３，１１０連接器、１０５，１２０，１２１  ビット長演算部、１０６，１０７  レジスタ、１０８  ビット長拡張器、１０９  制御部、１１３，１１７  データパターン検出器、１１４  ビット列処理部、１１６  データパターン挿入器。
【図１】
2004336547.tif 000003
【図２】
2004336547.tif 000004
【図３】
2004336547.tif 000005
【図４】
2004336547.tif 000006
【図５】
2004336547.tif 000007
【図６】
2004336547.tif 000008
【図７】
2004336547.tif 000009
【図８】
2004336547.tif 000010