(57)【特許請求の範囲】
【請求項１】
各符号データがハフマン符号と付加ビットから構成される入力された可変長のハフマン符号データの所定ビット数のデータを保持する保持手段と、
付加ビット部分を参照しないようにした複数のハフマン符号の符号パターンの組み合わせである組み合わせ符号と、前記組み合わせ符号全体の符号長とを対応させて記憶する記憶手段と、
前記保持手段により保持された所定ビット数のデータと、前記記憶手段に記憶されている組み合わせ符号とを比較することにより、前記保持手段に保持されている所定ビット数のデータに含まれる１または複数のハフマン符号全体の符号長を検出する検出手段と、
前記検出手段により検出された符号長分の符号データを前記保持手段に保持されているハフマン符号データから切り出す切出し手段と、
前記切出し手段により切り出されたハフマン符号データを復号する復号手段と、
を有する復号処理装置。
【請求項２】
各符号データがハフマン符号と付加ビットから構成される入力された可変長のハフマン符号データの所定ビット数のデータを保持するステップと、
付加ビット部分を参照しないようにした複数のハフマン符号の符号パターンの組み合わせである組み合わせ符号と、前記組み合わせ符号全体の符号長とを対応させて記憶するステップと、
保持された所定ビット数のデータと、記憶されている組み合わせ符号とを比較することにより、保持されている所定ビット数のデータに含まれる１または複数のハフマン符号全体の符号長を検出するステップと、
検出された符号長分の符号データを保持されているハフマン符号データから切り出すステップと、
切り出されたハフマン符号データを復号するステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号処理装置およびプログラムに関する。
【背景技術】
【０００２】
特許文献１には、デコードテーブルのアドレス長及び総容量を小さく保ったまま、複数の可変長コードの同時復号を可能とし、復号処理の高速化を実現する復号装置及びその方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−２４６９８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
復号処理において、通常、可変長符号を切出し、その後復号処理が行われているが、復号処理と比較すると可変長符号の切出しには時間がかかってしまい、復号処理に時間を要していた。
【０００５】
本発明の目的は、１回の符号長検出処理を行うだけで可変長符号データから複数の可変長符号を切り出すことが可能な復号処理装置およびプログラムを提供することである。
【課題を解決するための手段】
【０００６】
［復号処理装置］
請求項１に係る本発明は、各符号データがハフマン符号と付加ビットから構成される入力された可変長のハフマン符号データの所定ビット数のデータを保持する保持手段と、付加ビット部分を参照しないようにした複数のハフマン符号の符号パターンの組み合わせである組み合わせ符号と、前記組み合わせ符号全体の符号長とを対応させて記憶する記憶手段と、前記保持手段により保持された所定ビット数のデータと、前記記憶手段に記憶されている組み合わせ符号とを比較することにより、前記保持手段に保持されている所定ビット数のデータに含まれる１または複数のハフマン符号全体の符号長を検出する検出手段と、前記検出手段により検出された符号長分の符号データを前記保持手段に保持されているハフマン符号データから切り出す切出し手段と、前記切出し手段により切り出されたハフマン符号データを復号する復号手段と、を有する復号処理装置である。
【０００８】
［プログラム］
請求項２に係る本発明は、各符号データがハフマン符号と付加ビットから構成される入力された可変長のハフマン符号データの所定ビット数のデータを保持するステップと、付加ビット部分を参照しないようにした複数のハフマン符号の符号パターンの組み合わせである組み合わせ符号と、前記組み合わせ符号全体の符号長とを対応させて記憶するステップと、保持された所定ビット数のデータと、記憶されている組み合わせ符号とを比較することにより、保持されている所定ビット数のデータに含まれる１または複数のハフマン符号全体の符号長を検出するステップと、検出された符号長分の符号データを保持されているハフマン符号データから切り出すステップと、切り出されたハフマン符号データを復号するステップと、をコンピュータに実行させるためのプログラムである。
【発明の効果】
【０００９】
請求項１に係る本発明によれば、１回の符号長検出処理を行うだけでハフマン符号データから複数のハフマン符号を切り出すことが可能な復号処理装置を提供することができる。
【００１１】
請求項２に係る本発明によれば、１回の符号長検出処理を行うだけでハフマン符号データから複数のハフマン符号を切り出すことが可能なプログラムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態の復号処理装置のシステム構成を示す図である。
【図２】本発明の一実施形態の復号処理装置に用いられる直流成分を表すために用いられているハフマン符号及びハフマン符号に続く付加ビット長の長さを示した表である。
【図３】本発明の一実施形態の復号処理装置に用いられる交流成分を表すために用いられているハフマン符号及びハフマン符号に続く付加ビット長の長さを示した表の一部を示した図である。
【図４】ハフマン符号データのビット列の模式図である。
【図５】交流成分を示すハフマン符号データの２符号の組み合わせにおける組み合わせハフマン符号データの合計符号サイズを対応させた表の一部例である。
【図６】本発明の一実施形態の復号処理装置における符号長切出し処理を模式的に図示したものである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明を実施するための形態を説明する。但し、以下に示す各実施形態は、本発明の技術思想を具体化するための復号処理装置及びプログラムを例示するものであって、本発明をこれらに特定することを意図するものではなく、特許請求の範囲に含まれるその他の実施形態のものにも均しく適応し得るものである。
【００１４】
図１は本発明の一実施形態の復号処理装置の構成を示すブロック図である。
本発明の一実施形態に係る復号処理装置１０は、図１に示されるように、符号データ入力部１１、ＦＩＦＯ（first in, first out）メモリ１２、保持手段である符号バッファメモリ１３、ビットシフト部１４、符号サイズ対応テーブル記憶部１５、有効符号サイズ検出部１６、符号サイズ加算部１７、更新判定部１８、および復号部１９により構成されている。
【００１５】
本発明の一実施形態では、ＪＰＥＧ画像の伸長処理における復号について説明する。そのため、入力される可変長符号としてハフマン符号を用いている。符号データ入力部１１はハフマン符号とそれに続く付加ビットからなるハフマン符号データの入力を受け付けており、必要に応じて外部からハフマン符号データのビット列を取り込む動作を行う。
【００１６】
ＪＰＥＧ画像は、８×８ピクセルのブロックへと分割され、このブロックごとに離散コサイン変換を行うことにより、８×８個の数値である画素データへとデータ化されている。この８×８個である６４個の画素データのうち、左上の隅のデータを直流成分として扱い、直流成分以外のデータは直流成分に続く６３個の交流成分として扱っている。
【００１７】
直流成分を表すために用いられているハフマン符号及びハフマン符号に続く付加ビット長の長さを示した表を図２、交流成分を表すために用いられているハフマン符号及びハフマン符号に続く付加ビット長の長さを示した表の一部を図３に示す。省略しているが、零ラン長が１５まで、各零ラン長において付加ビット長が１０までとなるハフマン符号が定められている。
【００１８】
直流成分は直前の８×８ピクセルの画素データにおける直流成分との差を情報として持っている。
交流成分は、零が並ぶ数である零ラン長とそれに続く付加ビット長の組み合わせをハフマン符号とし、次に出現する零までに並ぶ零以外の数を２進数化したものを付加ビットとしている。交流成分は６３個の画素データが数値へと変換されているため、直流成分を示すハフマン符号データの後ろには、複数の交流成分を示すハフマン符号データが並ぶ。
【００１９】
符号データ入力部１１によって取り込まれたハフマン符号データのビット列は、先に入ったデータから先に出ていくＦＩＦＯメモリ１２に記憶され、先に取り込まれたビット列から順に、６４ビット分のデータが符号バッファメモリ１３へと一時記憶される。
【００２０】
図４にＦＩＦＯメモリ１２や符号バッファメモリ１３に記憶されるハフマン符号データのビット列の模式図を示す。ハフマン符号データはハフマン符号とそれに続く付加ビットからなり、先頭から第１符号、第１符号に続いて第２符号となっている。また、本発明の一実施形態において、第１符号全体と、第２符号のハフマン符号部分を組み合わせ符号と呼ぶ。組み合わせ符号の説明については後述する。
【００２１】
ビットシフト部１４は、符号バッファメモリ１３に一時記憶されている符号データのビット列のうち、検出先アドレスの番号から３２ビット分を有効符号サイズ検出部１６へと送り出す。また、ビットシフト部１４は、有効符号サイズ検出部１６により検出された符号サイズ分の符号データを符号バッファメモリ１３に一時記憶されているハフマン符号データのビット列から切り出す切出し手段としても機能する。
【００２２】
符号サイズ対応テーブル記憶部１５には、ハフマン符号２符号とその間のビット列を組み合わせた組み合わせ符号データと、組み合わせ符号データ全体の合計符号サイズとが対応させられて記憶されている。組み合わせ符号とは、図４に示すように、第１符号全体と、第２符号のハフマン符号部分からなる。
【００２３】
図５に、交流成分を示すハフマン符号データの２符号の組み合わせにおける組み合わせ符号データの合計符号サイズを対応させた表の一部例を示す。「＊」は０と１のどちらの数字にも対応していることを示す記号である。例えば、第１符号のハフマン符号部分が００、第２符号のハフマン符号部分が００である場合、組み合わせ符号は０００００と００１００の場合がある。このどちらの場合においても、組み合わせ符号の符号長は６であることが記憶されている。
【００２４】
本発明の一実施形態においては、ハフマン符号の組み合わせは１符号又は２符号であるものとしているが、３符号以上のハフマン符号データの組み合わせと、その組み合わせ符号全体の合計符号サイズとを対応させ、記憶させてもよい。
【００２５】
また、直流成分を示すハフマン符号データと交流成分を示すハフマン符号データの組み合わせについても、交流成分を示すハフマン符号データの２符号の組み合わせと同様に、符号サイズ対応テーブル記憶部１５に記憶されている。直流成分を示すハフマン符号同士の組み合わせは、直流成分を示すハフマン符号データに続く交流成分が全て零であるときのみである。そのため、図４の表に示されている、後ろの数字が全て零である場合に用いられるエンドオブブロック（ＥＯＢ）を示す交流成分である１０１０を含めて直流成分の付加ビットと捉え、符号サイズ対応テーブル記憶部１５に記憶されている。
【００２６】
有効符号サイズ検出部１６は、ビットシフト部１４から送られてきたハフマン符号データのビット列３２ビットを読み取り、読み取った符号データと、符号サイズ対応テーブル記憶部１５に記憶されている組み合わせ符号データとを比較照合し、読み取った符号データから２符号分の符号サイズである合計符号サイズを検出する。
【００２７】
例えば、読み取った符号データが先頭から１００００１００であった場合、比較照合の結果、図４の１００＊＊＊００と同型であるため、有効符号サイズ検出部は、この符号データの合計符号サイズが９であることを検出する。
【００２８】
ＪＰＥＧ画像の交流成分におけるハフマン符号の最大長は１６ビット、付加ビットの最大長は１０ビットであるため、４２ビット読み取れば全ての２符号分の組み合わせを検出することができる。ここで、ハフマン符号は出現確率の高いものが短いビット列であり、出現確率の低いものが長いビット列であるため、３２ビット読み取ればほぼ全ての場合において２符号同時に検出できる。そのため、本発明の一実施形態においては、３２ビットを読み取るものとしている。読み取るビット列は３２ビットである必要はなく、４２ビットを読み取るものとしたり、符号バッファメモリ１３に一時記憶されている６４ビットを一度に全て読み取るものとしたりしてもよい。
【００２９】
符号サイズ加算部１７は、有効符号サイズ検出部１６により検出される合計符号サイズ数を順次加算し、その合計値をシフト量として出力する。ビットシフト部１４は符号バッファメモリ１３に記憶されているビット列のうち、先頭からシフト量分だけシフトしたビット列を有効符号サイズ検出部１６へと送り出し、また、有効符号サイズ検出部１６により検出される合計符号サイズ数のビット列を復号部１９へと切り出す。
【００３０】
更新判定部１８は、符号サイズ加算部１７からのシフト量を符合バッファメモリ１３に記憶できるビット数である６４ビットから減算し、減算した数が３２未満であるかの判定を行う。すなわち、更新判定部１８は、符号バッファメモリ１３内に、有効符号サイズ検出部１６へと送り出す３２ビット分のビット列が残っているかの判定を行い、残っていなければ符号バッファメモリ１３のハフマン符号データのビット列が６４ビットとなるまで、ＦＩＦＯメモリ１２から追加する。このとき、符号サイズ加算部１７に加算されていた数は初期化され、零となる。
【００３１】
復号部１９は、ビットシフト部１４によって切り出されたハフマン符号データのビット列を、第１符号から順に復号する。復号は逆離散コサイン変換を用いた従来のものと同一であり、復号テーブルに記憶されるハフマン符号データと比較照合することで行う。
【００３２】
符号バッファメモリ１３に一時記憶されているハフマン符号データのビット列の切出し方法について、図６を用いて説明する。図６は本発明の一実施形態の復号処理装置における符号データ切出し処理を模式的に図示したものである。
【００３３】
まず、符号データ入力部１１により入力された符号データがＦＩＦＯメモリ１２に記憶され、ＦＩＦＯメモリ１２に記憶された符号データの先頭から順に符号バッファメモリ１３へと６４ビット分のハフマン符号データのビット列が一時的に記憶される。
【００３４】
次に、ビットシフト部１４が符号バッファメモリ１３内のハフマン符号データのビット列のうち、３２ビットを有効符号サイズ検出部１６へと送り出し、有効符号サイズ検出部１６は、送り込まれた３２ビット分のデータと、符号サイズ対応テーブル記憶部１５に記憶されている組み合わせ符号とを比較照合し、第１符号及び第２符号の合計符号サイズを検出する。
【００３５】
そして、符号サイズ加算部１７は、有効サイズ検出部１６により検出された合計符号サイズを加算し、ビットシフト部１４は符号バッファメモリ１３に記憶されているビット列のうち、加算された数より前のビット列を復号部１９へと切り出し、次の符号サイズ検出へとビットシフトする。また、図示していないが、更新判定部１８により、符号バッファメモリ１３にハフマン符号データのビット列を３２ビット確保できないと判定された場合、ＦＩＦＯメモリ１２から符号バッファメモリ１３の後方へとハフマン符号データのビット列を追加する。
【００３６】
上記したように、符号データの切出しには符号サイズの検出、検出された符号サイズの加算、ビットシフト、と３つの工程を要する。また、更新判定部１８が更新の必要があると判定すると、更に工程を要することになる。これに対し、復号処理は復号テーブルとの比較照合を行うのみであり、符号の復号処理に要する時間は符号データの切出しと比較して短い。そのため、１回の符号データの切出しで２符号同時に切出せば、１回の符号データの切出しの間に２符号の復号処理が行える。
【００３７】
なお、本発明のプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
【００３８】
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
【００３９】
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
【００４０】
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
【００４１】
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００４２】
１０    復号処理装置
１１    符号データ入力部
１２    ＦＩＦＯメモリ
１３    符号バッファメモリ
１４    ビットシフト部
１５    符号サイズ対応テーブル記憶部
１６    有効符号サイズ検出部
１７    符号サイズ加算部
１８    更新判定部
１９    復号部
【図１】
0006492471.tif 000002
【図２】
0006492471.tif 000003
【図３】
0006492471.tif 000004
【図４】
0006492471.tif 000005
【図５】
0006492471.tif 000006
【図６】
0006492471.tif 000007