(57)【要約】【課題】  ランレングス符号化されたデータを迅速に復号する。【解決手段】  復号装置２００は、ランレングス符号化されたデータを２値のビット列に復号する。一括変換処理部２１０は、先頭ビットアドレスと、先頭ビットと同値のデータの連続数と、前記先頭ビットの値と、を含む情報を順次取得し、当該情報に基づき、先頭ビットアドレスから連続数分のビットに、前記値を一括でセットする。【選択図】        図１
2005252364.tif 000002
【特許請求の範囲】
【請求項１】
ランレングス符号化されたデータを２値のビット列に復号する装置であって、
先頭ビットアドレスと、前記先頭ビットと同値のデータの連続数と、前記先頭ビットの値と、を含む情報を順次取得する取得手段と、
前記情報に基づき、前記先頭ビットアドレスから前記連続数分のビットに、前記値を一括でセットするセット手段と、
を含むことを特徴とする復号装置。
【請求項２】
請求項１に記載の復号装置において、
セット対象のビット列の値をゼロまたは１のいずれかにセットする初期化手段をさらに含み、
前記セット手段は、次にセットすべき値が前記初期化手段にセットされた値の場合、前記先頭ビットアドレスから前記連続数分のビットをシフトしたビットを次の先頭ビットアドレスとする処理を行い、次にセットすべき値が前記初期化手段にセットされた値ではない場合、前記連続数分のビットを前記値にセットするとともに、前記先頭ビットアドレスから前記連続数分のビットをシフトしたビットを次の先頭ビットアドレスとする処理を行うことを特徴とする復号装置。
【請求項３】
請求項１または２に記載の復号装置において、
前記セット手段は、選択されたビット列を一括でゼロにセットする命令、および選択されたビット列を一括で１にセットする命令を用いて前記値をセットすることを特徴とする復号装置。
【請求項４】
コンピュータに、ランレングス符号化されたデータを２値のビット列に復号させるためのプログラムであって、
コンピュータを、
先頭ビットアドレスと、前記先頭ビットと同値のデータの連続数と、前記先頭ビットの値と、を含む情報を順次取得する取得手段、
前記情報に基づき、１クロック毎に前記先頭ビットアドレスから前記連続数分のビットに、前記値を一括でセットするセット手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号装置に関する。
【背景技術】
【０００２】
現在、ファクシミリ装置における符号化・復号化方法として、ＭＨやＭＭＲ等が知られている（特許文献１）。これらはいずれも、最初の手順としてランレングス法による符号化を用いており、ランレングスの処理が符号化・復号化双方で重要な位置を占める。
【０００３】
従来、ソフト的にランレングスを展開／復号化する場合、ランの開始・終了位置は任意であるため、基本的に1ビットごとのビット演算の繰り返しを行っていた。そのため、ランレングスの展開に時間がかかり、高解像度化に対応できないという問題があった。
【特許文献１】特開平１１−２８４８６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明はこうした点に鑑みてなされたもので、その目的は、ランレングス符号化されたデータを迅速に復号する技術の提供にある。
【課題を解決するための手段】
【０００５】
本発明の復号装置は、ランレングス符号化されたデータを２値のビット列に復号する。復号装置は、先頭ビットアドレスと、先頭ビットと同値のデータの連続数と、先頭ビットの値と、を含む情報を順次取得する取得手段と、前記情報に基づき、先頭ビットアドレスから連続数分のビットに、前記値を一括でセットするセット手段と、を含む。
【０００６】
ここで、セット手段は、選択されたビット列を一括で１にセットする命令、および選択されたビット列を一括でゼロにセットする命令を用いて値をセットすることができる。このような命令としては、たとえば、ＤＳＰの操作命令であるＳＥＴ（データ値を１にする）／ＣＬＲ（データ値をゼロにする）を用いることができる。このように、一括で複数のビットのデータ値をセットすることにより、ランレングスの復号を簡易かつ迅速に行うことができる。
【０００７】
本発明の復号装置は、セット対象のビット列の値をゼロまたは１のいずれかにセットする初期化手段をさらに含むことができ、セット手段は、次にセットすべき値が初期化手段にセットされた値の場合、先頭ビットアドレスから連続数分のビットをシフトしたビットを次の先頭ビットアドレスとする処理を行い、次にセットすべき値が初期化手段にセットされた値ではない場合、連続数分のビットを値にセットするとともに、先頭ビットアドレスから連続数分のビットをシフトしたビットを次の先頭ビットアドレスとする処理を行うことができる。
【０００８】
このようにすれば、セットすべき値が初期化手段によりセットされた値と同じ値の場合、次のセット時の先頭ビットアドレスを設定するだけの処理で復号を行うことができ、ランレングスの復号をより簡易に行うことができる。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラム等の間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によれば、ランレングス符号化されたデータを迅速に復号することができる。
【発明を実施するための最良の形態】
【００１１】
図１は、本実施の形態における復号装置の構成を示すブロック図である。本実施の形態において、復号装置２００は、たとえばインターネットファクシミリ装置やＭＦＰ（Multi Functional Peripheral）等のファクシミリ装置に設けられる。
【００１２】
復号装置２００の各構成要素は、ハードウエアコンポーネントでいえば、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスク等の記憶ユニット、ネットワーク接続用インターフェース、ファクシミリ通信用モデム等を中心に実現されるが、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。これから説明する各図は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。
【００１３】
復号装置２００は、符号化データ取得部２０２と、ラン値取得部２０４と、ビット値取得部２０８と、初期化処理部２０９と、一括変換処理部２１０とを含む。復号装置２００は、符号化データを１ライン毎に処理する。以下、１ラインの符号化データを復号する例を説明する。
【００１４】
符号化データ取得部２０２は、１ライン毎の符号化データを取得する。ラン値取得部２０４は、符号化データからラン値を取得する。ビット値取得部２０８は、ラン値取得部２０４が取得したラン値のビット値を取得する。
【００１５】
初期化処理部２０９は、符号化データ取得部２０２が取得した符号化データを復号するための初期化を行う。一括変換処理部２１０は、任意の開始・終了ビットを引数に指定して、一続きの１または０（ゼロ）を１クロック毎にセットする。本実施の形態において、一括変換処理部２１０は、ＤＳＰ（デジタルシグナルプロセッサ）の情報処理演算命令のひとつであるＳＥＴ（データ値を１にする）／ＣＬＲ（データ値をゼロにする）を用いて復号を行う。
【００１６】
次に、本実施の形態における復号装置２００の処理手順を図２を参照して説明する。符号化データ取得部２０２が符号化データを取得する手順、およびラン値取得部２０４、およびビット値取得部２０８がそれぞれラン値、ビット値を取得する手順は公知の手法に従うため、ここでは説明を省略する。
【００１７】
以下、初期化処理部２０９および一括変換処理部２１０が３２ビット毎のビット列を対象にして復号を行う場合を例として説明する。
【００１８】
まず、初期化処理部２０９がビット値Ｆを初期化する（Ｓ１０）。つづいて、初期化処理部２０９は、３２ビットのデータＡをゼロにクリアするとともに、先頭ビットの位置「Ｘ」をゼロにクリアする（Ｓ１２）。
【００１９】
つづいて、一括変換処理部２１０は、次のラン値Ｒを取得し、ビット値Ｆを反転する（Ｓ１４）。一括変換処理部２１０は、Ｘ＋Ｒが３２以上であるか否かを判断する（Ｓ１６）。Ｘ＋Ｒが３２未満の場合（Ｓ１６のＮ）、Ｆがゼロか否かを判断する（Ｓ１８）。Ｆがゼロの場合（Ｓ１８のＹ）、３２ビットのデータＡの（３２−（Ｘ＋Ｒ））から（３１−Ｘ）を開始・終了ビットとして、これらのビットを１にセットする（Ｓ２０）。一方、ステップＳ１８において、Ｆがゼロでない場合（Ｓ１８のＮ）、Ｘ＋ＲをＸとする（Ｓ２２）。ステップＳ２０およびステップＳ２２の後、ライン終端か否かを判断する（Ｓ２４）。ライン終端の場合（Ｓ２４のＹ）、このラインの処理を終了する。一方、ステップＳ２４において、ライン終端でない場合（Ｓ２４のＮ）、ステップＳ１４に戻り、以下同様の処理を行う。
【００２０】
一方、ステップＳ１６において、Ｘ＋Ｒが３２以上である場合（Ｓ１６のＹ）、Ｆがゼロか否かを判断する（Ｓ２６）。Ｆがゼロの場合（Ｓ２６のＹ）、３２ビットのデータＡの０（ゼロ）から（３１−Ｘ）を開始・終了ビットとして、これらのビットを１にセットする（Ｓ２８）。一方、ステップＳ２６において、Ｆがゼロでない場合（Ｓ２６のＮ）、３２ビットのビット値が決定され、Ａをバッファに保存する（Ｓ３０）。
【００２１】
つづいて、「Ｒ−（３２−Ｘ）」をＲとし、新たな３２ビットのデータＡをゼロクリアするとともにＸをゼロクリアする（Ｓ３４）。その後、Ｒが３２以上であるか否かを判断する（Ｓ３６）。Ｒが３２未満の場合（Ｓ３６のＮ）、ステップＳ１８に進み、前述したのと同様の処理が行われる。一方、ステップＳ３６でＲが３２以上の場合（Ｓ３６のＹ）、Ｆがゼロか否かを判断する（Ｓ３８）。Ｆがゼロの場合（Ｓ３８のＹ）、バッファに「０×ＦＦＦＦＦＦＦＦ」が保存される（Ｓ４０）。一方、ステップＳ３８でＦがゼロでなかった場合（Ｓ３８のＮ）、バッファにゼロが保存される。ステップＳ４０またはステップＳ４２の後、Ｒ−３２をＲとし（Ｓ４４）、ステップＳ３６に進む。この後、前述したのと同様の処理が行われる。
【００２２】
次に、具体例を説明する。ここでは、ラン値取得部２０４およびビット値取得部２０８がそれぞれラン値Ｒ＝８、ビット値＝ゼロ（白）を取得した場合を例として説明する。
【００２３】
まず、初期化処理部２０９は、ビット値Ｆを初期化する（Ｓ１０）。ここでは、ビット値Ｆを「ゼロ（白）」とする。つづいて、初期化処理部２０９は、３２ビットのデータＡをゼロクリアするとともに先頭ビットの位置Ｘをゼロにクリアする（Ｓ１２）。
【００２４】
この状態で、一括変換処理部２１０は、上記ラン値Ｒ＝８およびビット値Ｆ＝ゼロを取得し、ビット値Ｆを反転する（Ｓ１４）。これにより、ビット値Ｆ＝１となる。ステップＳ１６において、Ｘ＋Ｒ＝８で３２未満なので（Ｓ１６のＮ）、ステップＳ１８に進む。ステップＳ１８において、Ｆがゼロではないので（Ｓ１８のＮ）、Ｘ＋Ｒを新たなＸとする（Ｓ２２）。これにより、先頭ビットの位置Ｘは８となる。次いでステップＳ２４に進み、ライン終端ではないので（Ｓ２４のＮ）、ステップＳ１４に戻り、次のラン値Ｒを取得する。
【００２５】
これ以降、ライン終端に達するまで同様の処理を行う。これにより、１ライン分の符号化データを復号することができる。
【００２６】
以上のように、本実施の形態における復号装置２００によれば、一続きの１またはゼロを最小サイクルでセットすることができる。これにより、従来の復号処理で最も煩雑な作業であったランレングスのデコードを極めて簡易に行うことができる。
【００２７】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００２８】
以上の実施の形態においては、初期化処理部２０９が先頭ビットの位置Ｘをゼロにクリアした後に復号処理を行う形態を説明したが、復号装置２００は、ラン値取得部２０４が取得したラン値の先頭アドレスを取得する先頭アドレス取得部をさらに含むことができ、一括変換処理部２１０は、先頭アドレス取得部が取得した先頭アドレスを開始点として、一続きの１またはゼロをセットすることもできる。
【産業上の利用可能性】
【００２９】
本発明にかかる復号装置は、ランレングス符号化されたデータを迅速に復号することができるという効果を有し、復号装置として有用である。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施の形態における復号装置の構成を示すブロック図である。
【図２】図１に示した復号装置の処理手順を示すフローチャートである。
【符号の説明】
【００３１】
２００  復号装置
２０２  符号化データ取得部
２０４  ラン値取得部
２０８  ビット値取得部
２０９  初期化処理部
２１０  一括変換処理部
【図１】
2005252364.tif 000003
【図２】
2005252364.tif 000004