(57)【要約】【課題】データに圧縮処理およびスクランブル処理を施そうとする場合、ハードウェア規模およびソフトウェア規模が大きくなってしまう問題点を解決する。【解決手段】  入力されるデータに対して、データに対応するシンボルを生成して登録する動的辞書を使用して圧縮処理を施すデータ圧縮方法であって、入力されるデータからシンボル生成部１０１がシンボルを生成し、生成されたシンボルを動的辞書部１０２が登録し、入力されたデータのうち動的辞書１０２に登録されない登録外データをスクランブル処理部１０３が変換して変換後の登録外データを、変換前の登録外データと入れ替えてスクランブル処理を施す。【選択図】        図１
2005094516.tif 000002
【特許請求の範囲】
【請求項１】
入力されるデータに対して、前記データに対応するシンボルを生成して登録する動的辞書を使用して圧縮処理を施すデータ圧縮方法であって、
前記入力されるデータからシンボルを生成する生成工程と、
前記生成工程によって生成された前記シンボルを、前記動的辞書に登録する登録工程と、
前記生成工程によって生成された前記シンボルが、前記動的辞書に未登録のシンボルであるか否かを判定し、未登録のシンボルであると判定した場合、前記未登録のシンボルを変換するスクランブル工程と、
を含むことを特徴とするデータ圧縮方法。
【請求項２】
前記スクランブル工程は、疑似乱数を使用して前記未登録シンボルを変換するものであることを特徴とする請求項１に記載のデータ圧縮方法。
【請求項３】
前記スクランブル工程は、複数の疑似乱数の中から任意の疑似乱数を選択して、前記選択された疑似乱数を使用して前記未登録シンボルを変換してスクランブル処理を施すものであることを特徴とする請求項２に記載のデータ圧縮方法。
【請求項４】
前記スクランブル工程は、発生した前記未登録シンボルを複数、記憶手段に保存し、保存された前記複数の未登録シンボルの中で入れ替えるものであることを特徴とする請求項２または３に記載のデータ圧縮方法。
【請求項５】
前記スクランブル工程は、前記入力データの所定のサイズ単位で、前記未登録シンボルを保存するものであることを特徴とする請求項４に記載のデータ圧縮方法。
【請求項６】
前記スクランブル工程は、前記未登録シンボルに対して前記未登録シンボルを構成するビットを転置して変換するものであることを特徴とする請求項１に記載のデータ圧縮方法。
【請求項７】
前記スクランブル工程は、前記入力されるデータ中の過去に発生した前記未登録シンボルを用いて変換するものであることを特徴とする請求項１に記載のデータ圧縮方法。
【請求項８】
前記スクランブル工程は、前記動的辞書に登録されているシンボルの符号を別の符号に変換する工程を含むものであることを特徴とする請求項１に記載のデータ圧縮方法。
【請求項９】
前記スクランブル工程は、同符号長の符号同士で入れ替えてスクランブル処理を施すものであることを特徴とする請求項８に記載のデータ圧縮方法。
【請求項１０】
前記入力されるデータは、表色系に対応する複数の色版で構成されるカラー画像データであって、
前記スクランブル工程は、前記複数の色版のうち選択された１以上の色版のデータに対してスクランブル処理を施すものであることを特徴とする請求項１〜９のいずれか１つに記載のデータ圧縮方法。
【請求項１１】
前記スクランブル工程は、前記選択された１以上の色版のデータに対してスクランブル処理を施す際に、疑似乱数、過去のデータ、およびビットの転置順序に使用する初期値を、前記色版によって異なるように設定してスクランブル処理を施すことを特徴とする請求項１０に記載のデータ圧縮方法。
【請求項１２】
前記スクランブル工程は、スクランブル処理を施す際に所定の鍵情報の入力を行わせ、入力された前記鍵情報によってスクランブル処理を施すものであることを特徴とする請求項１〜１１のいずれか１つに記載のデータ圧縮方法。
【請求項１３】
スクランブル処理を施されたデータを受信して、動的辞書を使用して伸長処理を施すデータ復号化方法であって、
前記受信したデータを逆符号化する逆符号化工程と、
前記逆符号化されたデータに対して前記動的辞書を使用して元のシンボルを検索し、検索された元のシンボルを出力する検索工程と、
前記符号化データを逆変換して元のシンボルに置き換えるデスクランブル工程と、を含むことを特徴とするデータ復号化方法。
【請求項１４】
請求項１〜１３のいずれか１つに記載された方法をコンピュータで実行することを特徴とするプログラム。
【請求項１５】
入力されるデータに対して、前記データに対応するシンボルを生成して登録する動的辞書を使用して圧縮処理を施すデータ圧縮装置であって、
前記入力されるデータからシンボルを生成する生成手段と、
前記生成手段によって生成された前記シンボルを、前記動的辞書に登録する登録手段と、
前記生成手段によって生成された前記シンボルが、前記動的辞書に未登録のシンボルであるか否かを判定し、未登録のシンボルであると判定した場合、前記未登録のシンボルを変換するスクランブル手段と、
を備えたことを特徴とするデータ圧縮装置。
【請求項１６】
スクランブル処理を施されたデータを受信して、動的辞書を使用して伸長処理を施すデータ復号化装置であって、
前記受信したデータを逆符号化する逆符号化手段と、
前記逆符号化されたデータに対して前記動的辞書を使用して元のシンボルを検索し、検索された元のシンボルを出力する検索手段と、
前記符号化データを逆変換して元のシンボルに置き換えるデスクランブル手段と、を備えたことを特徴とするデータ復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動的辞書を用いたデータ圧縮方法、データ復号化方法、それらの方法をコンピュータで実行するプログラム、データ圧縮装置、およびデータ復号化装置に関するものである。
【背景技術】
【０００２】
従来、画像データ、音声データ、文字コードデータ、などあらゆるデータは、格納、蓄積、および通信などの効率化のために、圧縮技術を用いたデータ変換が広く行われている。近年はデータそのものの情報量が増えてきているため、ランレングス符号化などの簡単な圧縮方法では高い圧縮率が期待できず、圧縮処理自体が複雑化し、圧縮に使用するハードウェア規模も拡大している。
【０００３】
また、近年は電子化された情報がネットワーク上で送受信されるようになり、情報の秘匿性も重要視されている。その手段として暗号技術がある。しかし、暗号技術も圧縮処理と同様に、強度に応じてアルゴリズムが複雑化し、大規模な回路を設けなければならなくなってきたのが現状である。また、他の秘匿の手段としてデータに対してスクランブル処理を施すことにより、元のデータを判別不能にする方法もある。しかし、スクランブル処理に関しても、また、高い秘匿性を獲得しようとすると暗号と同様に、アルゴリズムが複雑化し、大規模な回路が必要となってきていた。
【０００４】
そこで、アダプティブテンプレートを使用してデータに対して予測符号化を行い、予測符号化された結果を算術符号化する圧縮方式において、アダプティブテンプレートで適用する浮動テンプレートの画素の位置情報を利用して画情報を暗号化する技術が公開されている。同号公報の発明では、浮動テンプレートの画素の位置情報を変換する変換テーブルを用いて暗号化を行うが、ここで使用する変換テーブルは、圧縮処理側と復号処理側との双方で持つ必要があり、本来の圧縮データの他に更にこのテーブルが必要としていた（特許文献１参照）。
【０００５】
また、符号化された後に符号化データの鍵を元にバッファ上で並び換える技術が公開されている。しかしながら、この技術ではスクランブル用のバッファが必要であり、また、圧縮処理した後に行うので、圧縮処理にスクランブル処理分の時間が余計にかかっていた（特許文献２参照）。
【０００６】
【特許文献１】特開２００３−６０６３４号公報
【特許文献２】特開平９−２１４９３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このように、送受信するデータの規模が大きくなるに連れて、データ圧縮処理およびスクランブル処理を施そうとする場合、ハードウェア規模およびソフトウェア規模が大きくなってしまう問題点があった。
【０００８】
本発明は、上記に鑑みてなされたものであって、その目的は、それほど暗号の秘匿性が高くない場合、簡易な方法によってデータ圧縮処理とスクランブル処理とを同時に施すことのできるデータ圧縮方法、データ圧縮装置、簡易な方法によってデータ伸長とデスクランブル処理とを同時に施すことのできるデータ復号化方法、データ復号化装置、およびそれらの方法をコンピュータで実行するプログラムを提供することである。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、データ圧縮方法であって、入力されるデータに対して、前記データに対応するシンボルを生成して登録する動的辞書を使用して圧縮処理を施すデータ圧縮方法であって、記入力されるデータからシンボルを生成する生成工程と、前記生成工程によって生成された前記シンボルを、前記動的辞書に登録する登録工程と、前記生成工程によって生成された前記シンボルが、前記動的辞書に未登録のシンボルであるか否かを判定し、未登録のシンボルであると判定した場合、前記未登録のシンボルを変換するスクランブル工程と、を含むことを特徴とする。
【００１０】
この請求項１にかかる発明によれば、入力されるデータからシンボルを生成すし、生成されたシンボルを動的辞書に登録し、かつ動的辞書に登録されない未登録のシンボルを変換してスクランブル処理する。この構成によって、シンボルを生成し登録して圧縮処理を施しながら同時に、未登録シンボルに対してスクランブル処理を施す。その結果、圧縮とスクランブル処理を同時に施すことができ、データ分量が小さくかつ秘匿性のあるデータ圧縮方法を提供できる。また、データ全体の符号長が変動することなく、スクランブルすることが出来、また、スクランブルにより復号エラーが発生することも無いデータ圧縮方法を提供できる。
【００１１】
また、請求項２にかかる発明は、請求項１に記載のデータ圧縮方法において、前記スクランブル工程は、疑似乱数を使用して前記未登録シンボルを変換するものであることを特徴とする。
【００１２】
この請求項２にかかる発明によれば、疑似乱数を使用して未登録シンボルを変換してスクランブル処理を施す。この構成によって、スクランブルのために入れ換えるデータ列を特別に格納する必要がなく、また、圧縮処理の中でスクランブル処理を同時に簡易的に行うことが出来るデータ圧縮方法を提供できる。
【００１３】
また、請求項３にかかる発明は、請求項２に記載のデータ圧縮方法において、複数の疑似乱数の中から任意の疑似乱数を選択して、前記選択された疑似乱数を使用して前記未登録シンボルを変換してスクランブル処理を施すものであることを特徴とする。
【００１４】
この請求項３にかかる発明によれば、疑似乱数を選択して未登録シンボルを変換してスクランブル処理を施す。この構成によって、元データの性質を保持したスクランブルデータを得ることが出きるデータ圧縮方法を提供できる。
【００１５】
また、請求項４にかかる発明は、請求項２または３に記載のデータ圧縮方法において、前記スクランブル工程は、発生した前記未登録シンボルを複数、記憶手段に保存し、保存された前記複数の未登録シンボルの中で入れ替えるものであることを特徴とする。
【００１６】
この請求項４にかかる発明によれば、発生した未登録シンボルを複数個記憶手段に保存し、記憶手段に保存された複数の未登録シンボルの中で入れ替えてスクランブル処理を施す。この構成によって、現実に発生したシンボルを使用してそのシンボル同士を入れ替えてスクランブルデータを得る。その結果、元データの１と０の信号比率を、ほぼ保存することが可能となるデータ圧縮方法を提供することができる。
【００１７】
また、請求項５にかかる発明は、請求項４に記載のデータ圧縮方法において、前記スクランブル工程は、前記入力データの所定のサイズ単位で、前記未登録シンボルを保存するものであることを特徴とする。
【００１８】
この請求項５にかかる発明によれば、発生した未登録シンボルを入力データの所定のサイズ単位で保存する。この構成によって、過去に発生した未登録のシンボルを、一時格納してスクランブルに使用するため、１回に格納する保存範囲が広ければ広いほど、スクランブル効果を上げることができる。一方、反対に保存範囲を小さくとり、元データを分割して処理を行えば、格納用の保存媒体の容量を少なくすることができるので、スクランブル効果と保存媒体の容量のバランスを取ることができるデータ圧縮方法を提供することができる。
【００１９】
また、請求項６にかかる発明は、請求項１に記載のデータ圧縮方法において、前記スクランブル工程は、前記未登録シンボルに対して前記未登録シンボルを構成するビットを転置して変換するものであることを特徴とする。
【００２０】
この請求項６にかかる発明によれば、未登録シンボルに対して未登録シンボルを構成するビットを転置してスクランブル処理を施す。この構成によって、元データのもつ１と０の比率などの性質を保持したスクランブルデータを作成することができ、また、過去のデータを格納する必要がないので、格納用のメモリを必要としないデータ圧縮方法を提供できる。
【００２１】
また、請求項７にかかる発明は、請求項１に記載のデータ圧縮方法において、前記スクランブル工程は、前記入力されるデータ中の過去に発生した前記未登録シンボルを用いて変換するものであることを特徴とする。
【００２２】
この請求項７にかかる発明によれば、入力されるデータ中の過去に発生した未登録シンボルを用いて変換し、スクランブル処理を施す。この構成によって、過去に発生した未登録のシンボルを利用して、現在処理中の未登録のシンボルを異なるデータに変換することができ、また使用する過去のシンボルは大量に格納する必要がないので、格納用のメモリも少量で済ませることができるデータ圧縮方法を提供できる。
【００２３】
また、請求項８にかかる発明は、請求項１に記載のデータ圧縮方法において、前記スクランブル工程は、前記動的辞書に登録されているシンボルの符号を別の符号に変換する工程を含むものであることを特徴とする。
【００２４】
この請求項８にかかる発明によれば、動的辞書に登録された登録シンボルの符号についても変換してスクランブル処理を施す。この構成によって、未登録のシンボルだけでなく、動的辞書内で一致したシンボルの符号をもスクランブル処理することで、生成されるスクランブルデータのスクランブル精度を向上させることが可能なデータ圧縮方法を提供できる。
【００２５】
また、請求項９にかかる発明は、請求項８に記載のデータ圧縮方法において、前記スクランブル工程は、同符号長の符号同士で入れ替えてスクランブル処理を施すものであることを特徴とする。
【００２６】
この請求項９にかかる発明によれば、動的辞書に登録された登録シンボルの符号の入れ替えを、同符号長の符号同士でスクランブル処理を施す。この構成によって、動的辞書内で一致したシンボルの符号を別な符号に入れ換える際に、同じ符号長同士で入れ換えることにより、元データの総符号量がスクランブルにより変動しないことが可能なデータ圧縮方法を提供することができる。
【００２７】
また、請求項１０にかかる発明は、請求項１〜９のいずれか１つに記載のデータ圧縮方法において、前記入力されるデータは、表色系に対応する複数の色版で構成されるカラー画像データであって、前記スクランブル工程は、前記複数の色版のうち選択された１以上の色版のデータに対してスクランブル処理を施すものであることを特徴とする。
【００２８】
この請求項１０にかかる発明によれば、入力されるデータは表色系に対応する複数の色版で構成されるカラー画像データであって、複数の色版のうち選択された１以上の色版のデータに対してスクランブル処理を施す。この構成によって、元データが複数の色版で構成されるカラー画像の場合、Ｋ版、あるいは所定の２色版だけというように所定の色版だけをスクランブルしても、元原稿を判読することが不可能なスクランブル画像を得ることも可能となる。また、全版をスクランブル処理するよりも、処理が容易になる。また一方、構成する全ての版をスクランブル処理することにより、スクランブル精度を更に向上させることが可能となる。スクランブル処理を施す色版を選択することによって、スクランブルの方式の簡易さとスクランブル処理の精度とのバランスを取ることのできるデータ圧縮方法を提供することができる。
【００２９】
また、請求項１１にかかる発明は、請求項１０に記載のデータ圧縮方法において、前記スクランブル工程は、前記選択された１以上の色版のデータに対してスクランブル処理を施す際に、疑似乱数、過去のデータ、およびビットの転置順序に使用する初期値を、前記色版によって異なるように設定してスクランブル処理を施すことを特徴とする。
【００３０】
この請求項１１にかかる発明によれば、選択された１以上の色版のデータに対してスクランブル処理を施す際に、疑似乱数、過去のデータ、およびビットの転置順序に使用する初期値を、色版によって異なるように設定してスクランブル処理を施す。この構成によって、版ごとにデータの入れ換え処理に使用する初期値を変更することで、版毎に生成されるスクランブルデータを異ならせることができるので、最終的に得られる全版使用したスクランブル画像は全版同じ初期値でスクランブルしたものよりも、更にスクランブル精度を向上させることが可能となるデータ圧縮方法を提供することができる。
【００３１】
また、請求項１２にかかる発明は、請求項１〜１１のいずれか１つに記載のデータ圧縮方法において、前記スクランブル工程は、スクランブル処理を施す際に所定の鍵情報の入力を行わせ、入力された前記鍵情報によってスクランブル処理を施すものであることを特徴とする。
【００３２】
この請求項１２にかかる発明によれば、スクランブル処理を施す際に所定の鍵情報の入力を行わせ、入力された鍵情報によってスクランブル処理を施す。この構成によって、データの所有者が所定の鍵を持つことで、所有者と所有者以外のユーザー、あるいは送受信を行う機器間において、利用制限を設けることができるデータ圧縮方法を提供することができる。
【００３３】
また、請求項１３にかかる発明は、スクランブル処理を施されたデータを受信して、動的辞書を使用して伸長処理を施すデータ復号化方法であって、前記受信したデータを逆符号化する逆符号化工程と、前記逆符号化されたデータに対して前記動的辞書を使用して元のシンボルを検索し、検索された元のシンボルを出力する検索工程と、前記符号化データを逆変換して元のシンボルに置き換えるデスクランブル工程と、を含むことを特徴とする。
【００３４】
この請求項１３にかかる発明によれば、スクランブル処理を施されたデータを受信して、動的辞書を使用して伸長処理を施すデータ復号化方法であって、受信したデータを逆符号化する逆符号化工程と、逆符号化されたデータに対して動的辞書を使用して元のシンボルを検索し、検索された元のシンボルを出力する検索工程と、符号化データを逆変換して元のシンボルに置き換えるデスクランブル工程と、を含む。この構成によって、スクランブル処理を施されたデータに対して、簡易な方式で伸長処理を施し、かつスクランブル処理を解除して元のシンボルに戻すことが可能となるデータ復号化方法を提供することができる。
【００３５】
また、請求項１４にかかる発明は、請求項１〜１３のいずれか１つに記載された方法をコンピュータで実行することを特徴とするプログラムであるので、請求項１〜１３のいずれか１つに記載された方法をコンピュータで実行することができる。
【００３６】
また、請求項１５にかかる発明は、入力されるデータに対して、前記データに対応するシンボルを生成して登録する動的辞書を使用して圧縮処理を施すデータ圧縮装置であって、前記入力されるデータからシンボルを生成する生成手段と、前記生成手段によって生成された前記シンボルを、前記動的辞書に登録する登録手段と、前記生成手段によって生成された前記シンボルが、前記動的辞書に未登録のシンボルであるか否かを判定し、未登録のシンボルであると判定した場合、前記未登録のシンボルを変換するスクランブル手段と、を備えたことを特徴とする。
【００３７】
この請求項１５にかかる発明によれば、入力されるデータに対して、データに対応するシンボルを生成して登録する動的辞書を使用して圧縮処理を施すデータ符号化装置であって、入力されるデータからシンボルを生成する生成手段と、生成手段によって生成されたシンボルを、動的辞書に登録する登録手段と、生成手段によって生成されたシンボルが、動的辞書に未登録のシンボルであると判定した場合、未登録のシンボルを変換するスクランブル手段と、を備える。この構成によって、データに対して圧縮処理とスクランブル処理とを同時に施すことができるので、圧縮しながら秘匿性を付加することができるデータ圧縮装置を提供できる。
【００３８】
また、請求項１６にかかる発明は、スクランブル処理を施されたデータを受信して、動的辞書を使用して伸長処理を施すデータ復号化装置であって、前記受信したデータを逆符号化する逆符号化手段と、前記逆符号化されたデータに対して前記動的辞書を使用して元のシンボルを検索し、検索された元のシンボルを出力する検索手段と、前記符号化データを逆変換して元のシンボルに置き換えるデスクランブル手段と、を備えたことを特徴とするデータ復号化装置である。
【００３９】
この請求項１６にかかる発明によれば、スクランブル処理を施されたデータを受信し、受信したデータを逆符号化する逆符号化手段と、シンボルデータに対して動的辞書を検索して元のデータに戻す検索手段と、シンボルデータ以外の符号化データを変換して元のデータに置き換えるデスクランブル手段と、を備えた。この構成によって、スクランブル処理を施されたデータに対して、簡易な方式によって伸長処理およびデスクランブル処理を施すことができ元のシンボルに置き換えることができるデータ復号化装置を提供できる。
【発明の効果】
【００４０】
本発明（請求項１）にかかるデータ圧縮方法によれば、シンボルを生成し登録して圧縮処理を施しながら同時に、未登録シンボルに対してスクランブル処理を施す。その結果、圧縮とスクランブル処理を同時に施すことができ、データ分量が小さくかつ秘匿性のあるデータ圧縮方法を提供できる。また、データ全体の符号長が変動することなく、スクランブルすることが出来、また、スクランブルにより復号エラーが発生することも無いデータ圧縮方法を提供できるという効果を奏する。
【００４１】
また、本発明（請求項２）にかかる発明によれば、スクランブルのために入れ換えるデータ列を特別に格納する必要がなく、また、圧縮処理の中でスクランブル処理を同時に簡易的に行うことが出来るデータ圧縮方法を提供できるという効果を奏する。
【００４２】
また、本発明（請求項３）にかかるデータ圧縮方法によれば、元データの性質を保持したスクランブルデータを得ることが出きるデータ圧縮方法を提供できるという効果を奏する。
【００４３】
また、本発明（請求項４）にかかるデータ圧縮方法によれば、現実に生成したシンボルを記憶して使用するスクランブルデータが得られる。その結果、元データの１と０の信号比率を、ほぼ保存することが可能となるデータ圧縮方法を提供することができるという効果を奏する。
【００４４】
また、本発明（請求項５）にかかるデータ圧縮方法によれば、過去に発生した未登録のシンボルを、一時格納してスクランブルに使用するため、１回に格納する保存範囲が広ければ広いほど、スクランブル効果を上げることができる。一方、反対に保存範囲を小さくとり、元データを分割して処理を行えば、格納用の保存媒体の容量を少なくすることができるので、スクランブル効果と保存媒体の容量とのバランスを取ることができるデータ圧縮方法を提供することができるという効果を奏する。
【００４５】
また、本発明（請求項６）にかかるデータ圧縮方法によれば、元データのもつ１と０の比率などの性質を保持したスクランブルデータを作成することができ、また、過去のデータを格納する必要がないので、格納用のメモリを必要としないデータ圧縮方法を提供できるという効果を奏する。
【００４６】
また、本発明（請求項７）にかかるデータ圧縮方法によれば、入力されるデータ中の過去に発生した未登録のシンボルを利用して変換することができ、また使用する過去のシンボルは大量に格納する必要がないので、格納用のメモリも少量で済ませることができるデータ圧縮方法を提供できるという効果を奏する。
【００４７】
また、本発明（請求項８）にかかるデータ圧縮方法によれば、未登録のシンボルだけでなく、動的辞書内で一致したシンボルの符号もスクランブル処理を施すことで、生成されるスクランブルデータのスクランブル精度を向上させることが可能なデータ圧縮方法を提供できるという効果を奏する。
【００４８】
また、本発明（請求項９）にかかるデータ圧縮方法によれば、動的辞書内で一致したシンボルの符号を同じ符号長同士で入れ換えることにより、元データの総符号量がスクランブル処理により変動しないことが可能なデータ圧縮方法を提供することができるという効果を奏する。
【００４９】
また、本発明（請求項１０）にかかるデータ圧縮方法によれば、元データが複数の色版で構成されるカラー画像の場合、表色系に対応する例えばＫ（ブラック）版、あるいは所定の２色版だけというように所定の色版だけをスクランブルしても、元原稿を判読することが不可能なスクランブル画像を得ることも可能となる。また、全版をスクランブル処理するよりも、処理が容易になる。また一方、構成する全ての版をスクランブル処理することにより、スクランブル精度を更に向上させることが可能となる。スクランブル処理を施す色版を選択することによって、スクランブルの方式の簡易さとスクランブル処理の精度とのバランスを取ることのできるデータ圧縮方法を提供することができるという効果を奏する。
【００５０】
また、本発明（請求項１１）にかかるデータ圧縮方法によれば、版ごとにデータの入れ換え処理に使用する初期値を変更することで、版毎に生成されるスクランブルデータを異ならせることができるので、最終的に得られる全版使用したスクランブル画像は全版同じ初期値でスクランブルしたものよりも、更にスクランブル精度を向上させることが可能となるデータ圧縮方法を提供することができるという効果を奏する。
【００５１】
また、本発明（請求項１２）にかかるデータ圧縮方法によれば、データの所有者が所定の鍵を持つことで、所有者と所有者以外のユーザー、あるいは送受信を行う機器間において、利用制限を設けることができるデータ圧縮方法を提供することができるという効果を奏する。
【００５２】
また、本発明（請求項１３）にかかるデータ復号化方法によれば、スクランブル処理を施されたデータに対して、簡易な方式で伸長処理を施し、かつスクランブル処理を解除して元のシンボルに戻すことが可能となるデータ復号化方法を提供することができるという効果を奏する。
【００５３】
また、本発明（請求項１４）にかかる発明は、請求項１〜１３のいずれか１つに記載された方法をコンピュータで実行することができるという効果を奏する。
【００５４】
また、本発明（請求項１５）にかかるデータ圧縮装置によれば、データに対して圧縮処理とスクランブル処理とを同時に施すことができるので、圧縮しながら秘匿性を付加することができるデータ圧縮装置を提供できるという効果を奏する。
【００５５】
また、本発明（請求項１６）にかかるデータ復号化装置によれば、スクランブル処理を施されたデータに対して、簡易な方式によって伸長処理およびデスクランブル処理を施して元のシンボルに置き換えることができるデータ復号化装置を提供できるという効果を奏する。
【発明を実施するための最良の形態】
【００５６】
以下に添付図面を参照して、この発明にかかるデータ圧縮方法、データ復号化方法、それらの方法をコンピュータで実行するプログラム、データ圧縮装置、およびデータ復号化装置の最良な実施の形態を詳細に説明する。
【００５７】
（実施の形態１）
（１．１．全体構成）
本発明の実施の形態１による符号化装置の全体構成について説明する。符号化装置に対して入力するデータは、画像データ、音声データ、および文字コードであるバイナリデータであれば、如何なるデータでも可能である。ここでは入力データを画像データと仮定して説明する。
【００５８】
図１は、本発明の実施の形態１による符号化装置の機能的ブロック図である。符号化装置１００は、シンボル生成部１０１、動的辞書部１０２、符号化部１０４、およびスクランブル処理部１０３を備える。また、符号化装置は、メモリＡ１１０およびメモリＢ１１１に接続して、該メモリに一時的に符号情報を格納する。
【００５９】
（１．２．シンボル生成部および動的辞書部）
本発明でデータ圧縮を実行するシンボル生成部１０１、動的辞書部１０２について説明する。例えば、元のデータが８ｂｉｔ／ｐｉｘｅｌで構成される画像データは、ディザ処理等の階調処理が行われてＮｂｉｔ／ｐｉｘｅｌに変換されて、符号化装置に入力データとして入力する。変換されたデータはＮ×Ｍ画素のディザマトリクスサイズに対応したデータの繰り返しが発生している。例えば、入力画像が８×８のディザマトリクス（周期＝８画素）を使用して、２値化されている場合、２値化されたデータは８ｂｉｔの周期で同じような１、および０の並びのパターンが発生することになる。すなわち、８ｂｉｔを１シンボルとして結合し、このシンボル単位に符号化を行えば、より効率的に圧縮できる性質がある。このような圧縮方式の一例として、ＢＳＴＷアルゴリズム（ＢＳＴＷ：Ｂｅｎｔｌｅｙ−Ｓｌｅａｔｏｒ−Ｔａｒｊａｎ−Ｗｅｉ、１９８５；  Ｕｎｉｔｅｄ  Ｓｔａｔｅｓ  Ｐａｔｅｎｔ、Ｎｏ．４７９６００３、Ｊａｎ．３、１９８９  ｅｔ  ａｌ．）が知られている。ＢＳＴＷアルゴリズムは、辞書を用いて情報源のモデル化を行うユニバーサル符号化の一つである。
【００６０】
このアルゴリズムは、入力系列に含まれるシンボルの辞書を符号化と復号化において共用し、入力されたシンボル（入力シンボルと称する）が存在する辞書のインデックスを、可変長符号化し、同時に入力シンボルを辞書の先頭に移動させて辞書の更新を行う符号化方式である。したがって、シンボルが入力されて先頭移動を持続させるにつれて、頻度の高いシンボルは辞書の最初の部分に配置されることになる。その結果、辞書インデックスの若い番号の出現確率が高くなるので、各シンボルの生起確率が予め予測できない場合であっても、配置されたインデックスをハフマン符号化等を用いて可変長符号化することによってデータ圧縮を行う方式である。ここで辞書は例えばメモリ１１０に、配列あるいはテーブルデータとして保持される。
【００６１】
すなわち、シンボル生成部１０１は、ある固定長のビット単位にデータを切り出し、シンボルを形成する。動的辞書部１０２は、入力されたシンボルに対して、辞書に登録されているシンボルと比較し、一致する場合は一致したシンボルの辞書インデックスを中間コードとして符号化部１０４に送信し、ハフマン符号化などの可変長符号化処理を施し、最終符合としてとして出力する。同時に、動的辞書１０２は、該シンボルを辞書の先頭に登録し、他の登録シンボルを１つずつ下位にシフトすることによって、辞書の更新を行う。
【００６２】
このようにして辞書を用いる圧縮方式の場合、発生するシンボルの種類が少ない場合は大きな問題は発生しない。上記の例のように８ｂｉｔのシンボルの場合、２の８乗通りのシンボル発生の可能性がある。この場合、辞書のサイズは８ｂｉｔ×２の８乗個＝２５６Ｂｙｔｅで済む。しかし、実際に圧縮効率を考えると１つのシンボルはできるだけ大きくした方が良い。１シンボルが２０ｂｉｔとした場合、２０ｂｉｔ×２の２０乗＝約２６００Ｋｂｙｔｅも容量が必要になる。
【００６３】
このようにシンボルサイズが大きくなればなるほど辞書サイズも大きくなる。しかし、全てのシンボル分の辞書を設けることは、メモリ量、コスト、回路規模を考慮すれば現実的ではない。そこで、通常は有限個数のシンボルを登録する動的辞書を用いる。
【００６４】
図２は、実施の形態１による符号化装置において有限個数のシンボルを登録する動的辞書の動作を説明するフローチャートである。データの入力によって、各シンボルは先頭シンボルから順次、動的辞書に入力される。まず、辞書に既に登録されているシンボルと現シンボルが一致するかを判定する（ステップＳ１０１）。一致しない場合（ステップＳ１０１のＮｏ）、ＥＳＣ（Ｅｓｃａｐｅ）信号を出力する（ステップＳ１０２）。
【００６５】
図３は、実施の形態１による動的辞書の登録の一例を示す模式図である。この辞書３１０は、図示の様に１０個のシンボルまで登録可能であるとする。辞書３１０の左側の列の数字０〜９はインデックスを示す数字であり、右側の列の数字０〜９は登録されたシンボルを示している。ここで、入力シンボルは“１０１０１１００”（符号３１１）である。シンボル３１１は、現在、読み取りを開始した時点であるので、辞書にはステップＳ１０１において存在しないと判定されている。動的辞書部１０２は、中間コードとして辞書登録外を示す“ＥＳＣ”を出力し（ステップＳ１０２）、続けて現シンボルのデータ“１０１０１１００”８ｂｉｔ（符号３１４）を出力する（ステップＳ１０３）。以後、出力された中間コードであるＥＳＣ１０１０１１０（符号３１４）を「生データ」と呼ぶ。
【００６６】
辞書は、現シンボル３１１を辞書３２０の先頭（インデックス０番）３２２に登録し（ステップＳ１０５）、他のシンボルを１つずつ下位に移動させる、即ち、辞書が更新される（ステップＳ１０６）。このとき、最後のシンボル「９」（符号３１５）は、辞書３１０から吐き出される。ここで、図３に示された辞書は、辞書の内容を模式的に示した符号３１０、３２０、および３３０において、同じ動的辞書であるが、登録された内容が異なるので、異なる符号を付されている。全てのシンボルについて登録動作を終了したか否かが判定され（ステップＳ１０７）、終了した場合はそのまま終了し（ステップＳ１０７のＹｅｓ）、終了していない場合は（ステップＳ１０７のＮｏ）、さらにシンボルの入力を判定する（ステップＳ１０１）。
【００６７】
次に、入力シンボルは“００００００１１”（符号３２１）であったとする。図３におけるこの時の辞書３２２においては、“００００００１１”（３２１）はインデックス４番にシンボル「３」として登録されていると仮定する。動的辞書部１０２は、辞書中に一致するものがあるか否かを判定し、一致するものが存在すると判定した（ステップＳ０１のＹｅｓ）。インデックス４番”を示す中間コード「ｉｎｄｅｘ４」３２４を出力する。その後、上述と同様に辞書の更新を行う。図３に示すように、現シンボル“００００００１１”（３２１）を辞書の先頭に登録することになる。その結果インデックス０はシンボル「３」（符号３３２）となる（ステップＳ１０５）。
【００６８】
今回は辞書内に既に登録されて存在したシンボルの更新であるので、現シンボルが登録されていたインデックス以上の部分だけの更新となる。インデックス０番（符号３２３）から３番までを１つずつ下位にシフトする。５番以降は、更新されずそのままである（ステップＳ１０６）。このように全シンボルについて処理を繰り返す（ステップＳ１０７）。
【００６９】
以上のように動的辞書で中間コードとして出力された生データ以外のコードについては、符号化部によりハフマン符号化して、符号ストリームとして出力する。以上が動的辞書を用いた圧縮処理の一例である。
【００７０】
（１．３．スクランブル処理部）
次に、スクランブル処理を施すスクランブル処理部１０３について説明する。スクランブル処理部１０３は、ＥＳＣ出力が発生した場合（上記ステップＳ１０２）、その直後に出力する生データに対してスクランブル処理を施す。
【００７１】
図４は、実施の形態１におけるスクランブル処理部を説明する図である。スクランブル処理部１０３は、乱数生成器４０１およびＸＯＲ（排他的論理和）回路４０２とを備える。乱数生成器４０１は、ここで擬似乱数を随時生成するものであるが、通常の乱数を生成するものとすることもできる。生成される疑似乱数は、生データと同じビット長を有する。ＸＯＲ回路４０２は、生データと生成された乱数とをＸＯＲ処理して、スクランブル後の生データとして符号ストリームに出力する。
【００７２】
図５は、実施の形態１によるスクランブル処理部によって処理を施されるスクランブルデータの一例を説明する図である。図６は、実施の形態１によるスクランブル処理部によって処理を施されるスクランブルデータの他の一例を説明する図である。図５に示した例においては、生データのビット長と疑似乱数のビット長とは等しい。しかし、生データとＸＯＲする乱数のビット長は任意であり、生データと同じｂｉｔ長である必要はない。図６のように所定のビット長に限って所定のビットについてのみＸＯＲすることもできる。図６では、下位４ｂｉｔを乱数とＸＯＲ処理している。
【００７３】
図５において示されるように、中間コードの出力３１４（図３）が出力された場合、中間データとして符号化部１０４によって符号化され、符号ストリーム５００を構成する。符号ストリーム５００中の１つの符号“１０１０１１００”（符号３１４）は、疑似乱数“０１００１１０１”（符号５１５）によってＸＯＲ処理によるスクランブル処理を施されて、スクランブルデータ５１０中のデータ“１１１００００１”（符号５１６）となる。
【００７４】
このように、乱数を用いて生データを入れ換えた場合、乱数の性質が１と０の発生比率が５０％ずつ発生するため、必然的にスクランブル後のデータも１と０の発生比率が５０％ずつになってしまう。画像データを印刷出力するような出力機において、スクランブル画像の印刷出力を得る際に、スクランブル機能は必要であるが、出力に使用するインク量は抑えたいという要望も考えられる。この課題に対しては、擬似乱数とのＸＯＲによるスクランブルにおいて、使用する擬似乱数を選択することによって解決することができる。
【００７５】
図７は、実施の形態１によるスクランブル処理部の他の例を説明する図である。スクランブル処理部１０３ａは、乱数生成器７０１、乱数表７０２、およびＸＯＲ回路７０３を備える。
【００７６】
図８は、スクランブル処理部１０３ａが用いる乱数表の一例を示した模式図である。図８に示した乱数表は、０または１のどちらかに片寄りを持たせた乱数表の例であり、この表においては０に偏りを持たせている。乱数生成器７０１で生成される擬似乱数を元に、乱数表７０２から乱数をランダムに選択し、生データとのＸＯＲに使用する。
【００７７】
このように、疑似乱数を複数選択された乱数の中から、所定の乱数を限定して使用し、登録外のデータを変換してスクランブル処理を施すことによって、元データの性質を保持したスクランブルデータを得ることができる。不登録データ、あるいは登録外データは本発明の請求の範囲における未登録データのことである。動的辞書部１０２においては、一度登録したシンボルも、それ以後に登録される別のシンボルによって、辞書外にはき出されることもあるので、登録外データ、あるいは不登録データと表現すべきかも知れないが、ここでは、一括して未登録データと表現する。
【００７８】
（１．４．１．スクランブル処理部の変形例）
ここで、シンボルの登録によって動的辞書登録から外れた生データである登録外データのみを一時、メモリＡ（符号１１０）、メモリＢ（符号１１１）（図１）に格納し、順序を入れ換えて出力することが望ましい。
【００７９】
図９は、実施の形態１におけるスクランブル処理部の変形例の動作を示すフローチャートである。シンボルが１つ入力されることによって、上述の動的辞書処理（ステップＳ１０１〜Ｓ１０４）が行われ、ＥＳＣ信号またはインデックスが出力される（ステップＳ２０１）。動的辞書部１０２は、動的辞書部１０２から出力された中間コードがＥＳＣであるか否かを判別し（ステップＳ２０２）、別々のメモリに一時格納する。
【００８０】
図１０は、動的辞書部において符号データと生データとを別々のメモリに格納する例を示す模式図である。ここでは、ＥＳＣ信号ではないと判定された場合（ステップＳ２０２のＮｏ）、符号化処理を施され（ステップＳ２０５）、符号データはメモリＡに格納される（ステップＳ２０６）。ＥＳＣ信号であると判定された場合（ステップＳ２０２のＹｅｓ）、ＥＳＣ符号をメモリＡに格納し（ステップＳ２０３）、生データをメモリＢに格納する（ステップＳ２０４）。
【００８１】
図９のフローチャートでは、格納する範囲を画像の１ライン分としている。１ライン分の格納処理が終了したか否かを判定し（ステップＳ２０７）、終了した場合（ステップＳ２０７のＹｅｓ）、双方を合体させた符号ストリームを生成して出力する（ステップＳ２０８）。
【００８２】
先頭符号から順に合成していくが、ＥＳＣ符号がメモリＡから発生した場合、メモリＢから生データを出力する。このとき、生データは上位アドレスから順に「０、１、２、３、４、…Ｎ」と出力するのではなく、順不動に「２、５、Ｎ、６、３、１…」と出力していく。順不動に出力する方法は任意の方法でよい。例えば、順不動な出力順序のパターンをいくつか用意しておき、ユーザーの初期値によって、いずれかのパターンを選択する。そしてこの選択されたパターンに基いて生データを順不動に出力し、スクランブルを行う。このとき、順不動に並べ変えるパターンは生データの個数が各ライン毎に異なるため、ある程度の個数分を用意しておく必要がある。もし、実際に発生した生データの個数が用意したパターンの個数より少ない場合は、実際の数以上の番号は飛ばして処理すればよい。このように、この時の処理範囲は任意に変えることができる。スクランブル処理が全ラインについて終了したか否かを判定し（ステップＳ２０９）、終了した場合は（ステップＳ２０９のＹｅｓ）、スクランブル処理を終了する。
【００８３】
変換後の不登録データを変換前の不登録データと入れ替える際に、発生した変換後の不登録データを複数個保存し、保存された複数の不登録データの中で入れ替えてスクランブル処理を施すことが望ましい。現実に発生したデータを使用してそのデータ同士を入れ替えてスクランブルデータを得る。その結果、元データの１と０の信号比率を、ほぼ保存することが可能となるからである。
【００８４】
発生した未登録データは任意のサイズ単位で、例えば１ライン単位で、スクランブル処理を施すことができる。図９で示した例では、符号の合成を行う処理単位を“１ライン”として行ったが、Ｎライン、または全ラインとすることもできる。この処理単位を多くすればするほど、スクランブル精度が上がることになる。しかし、その一方で一時格納用のメモリ容量が増大することになる。
【００８５】
ここで、スクランブル処理において、発生した登録外データを構成するビットを転置してデータの入れ替えを施すことが望ましい。
【００８６】
図１１は、実施の形態１によるスクランブル処理部の変形例を説明する図である。スクランブル前の符号ストリーム１１０１において、生データ部分のビットを図示された転置パターン１１０２を使用して並び換え、スクランブルデータ１１０３を生成する。転置の方法は、図１１に示したように並べ替え順序を転置パターン１１０２を一つ定めて、繰り返し使用してもよく、あるいは所定の数パターンを使用するなど、任意の方法を選択できる。
【００８７】
図１２は、実施の形態１によるスクランブル処理部の他の変形例を説明する図である。ここでは、１つ前の生データを用いて、現在の生データとＸＯＲ処理することによって、スクランブル処理を施す。最初の生データは何もしなくてもよく、あるいは、何か任意のデータとＸＯＲ処理を施しても良い。図示するように符号ストリーム１２００における１つの符号“１０１０１１００”（１２０１）は“１０１０１１００“（１２０１ａ）として符号“１２１２”とＸＯＲ処理されて、スクランブルデータ１２０３における符号“０１１００１０１”（１２０４）に入れ替えられてスクランブル処理された。
【００８８】
入力されるデータ中の過去に発生した不登録データを用いて、変換前の不登録データと入れ替えてスクランブル処理を施すと、使用する過去のデータは大量に格納する必要がないので、格納用のメモリも少量で済ませることができる。
【００８９】
図１３は、実施の形態１によるスクランブル処理部の他の変形例を説明する図である。図１３に示したように、前の生データを使ってスクランブル処理を施すのではなく、後のデータを使ってＸＯＲしてスクランブル処理を施すこともできる。
【００９０】
以上、いくつかのスクランブル方法を述べたが、このようにそれぞれを単独に使用しても良く、また組み合わせて使用してもよい。
【００９１】
（１．５．効果）
実施の形態１にかかるデータ圧縮方法によれば、シンボルを生成し登録して圧縮処理を施しながら同時に、不登録のシンボルに対してスクランブル処理を施す。その結果、圧縮とスクランブル処理を同時に施すことができ、データ分量が小さくかつ秘匿性のあるデータ圧縮方法を提供できる。また、データ全体の符号長が変動することなく、スクランブルすることが出来、また、スクランブルにより復号エラーが発生することも無いデータ圧縮方法を提供できる。
【００９２】
（２．実施の形態２）
（２．１．データ符号化装置の構成）
図１４は、本発明の実施の形態２による符号化装置の機能的ブロック図である。実施の形態２によるデータ符号化装置１４００が実施の形態１と異なる点は、スクランブル処理部が、ＥＳＣ符号に付随する生データのスクランブルのみではなく、更に動的辞書から出力されるインデックスに対してもスクランブル処理を施す点である。
【００９３】
スクランブル処理部Ａ１４０３は、インデックスを他のインデックスと入れ換える処理を行う。そして入れ換えたインデックスの符号を符号化部１４０５から出力する。インデックスの符号長はハフマン符号を割り当てた場合、発生頻度によって符号長が異なるものが割り当てられている。よって、スクランブル後の圧縮率とスクランブル処理しない場合の圧縮率とを同じにするには、同じ符号長同士で入れ換える必要がある。ここでスクランブル処理部Ｂ１４０４は、実施の形態１によるスクランブル処理部と同様の機能を実行する。
【００９４】
動的辞書に登録された登録データの符号についても変換し、変換前の登録データと入れ替えてスクランブル処理を施すことによって、登録外のデータ自体を異なるデータに入れ換えると同時に、動的辞書内で一致したデータの符号もスクランブル対象とすることで、生成されるスクランブルデータのスクランブル精度を向上させることができる。
【００９５】
図１５は、実施の形態２におけるインデックスと符号の対応テーブルの一例である。図１５に示したような符号表を使用していた場合は、ｉｎｄｅｘ０、ｉｎｄｅｘ１、ｉｎｄｅｘ２が符号長３ｂｉｔで同じ符号長であるので、この３つの中で入れ換えを行う。同様にｉｎｄｅｘ３〜ｉｎｄｅｘ６も同符号長なので、その中で入れ換えを行うことが出きる。このように生データ以外もスクランブルすることによって、スクランブル精度が向上する。かつ、同じ符号長の符号どうして入れ替えてスクランブル処理を施した場合、圧縮率の変動がないスクランブル画像を得ることが可能となる。
【００９６】
ここで、入力データがカラー画像のデータである場合、そのカラー画像データはＲＧＢ、ＣＭＹＫ等の表色系に対応する複数の色による色版データを含んでいる。本発明はそれらの色版のうち、Ｋ（ブラック）版のみ、またはＫ版とＣ（シアン）版、など複数の中から選択した版をスクランブル処理の対象とすることができる。
【００９７】
例えば、圧縮処理への入力データがＣＭ（マゼンタ）Ｙ（イエロー）Ｋのインク量に換算されたデータであった場合、スクランブルによって、インクの使用量が元のデータよりも増えることが考えられる。このとき、ＣＭＹＫの４版全てについてスクランブル処理を行うと、４版を合成した最終画像はインク量が増大し、印刷機のプロセス自体に不都合を招く恐れもある。また、スクランブル処理自体も方法によっては、スクランブル処理無しの場合よりも、処理時間が増大するものもあり、全版スクランブル処理を行うとその影響が更に増大してしまう。そのため、ある程度スクランブル精度が保てる範囲で、選択された所定の版のみをスクランブルすることにより、上記の問題点を回避することができる。
【００９８】
しかし一方で、上記の所定の版のみのスクランブルでは、やはりスクランブル精度が低下するという課題もある。その対策としては全版処理を行うというものである。先に述べたように、方法によっては、処理時間やインク量の増大といった課題が発生するが、例えば、疑似乱数生成器を使用すれば、特に処理時間における問題は発生しない。
【００９９】
また、インク量に関しても、疑似乱数表を所定の乱数に限定することにより、あるいは不登録データに対してビットを転置して変換することにより、インク使用量の増大を回避することができる。これらの方法を用いて、全版をスクランブル処理すれば、所定の版のみをスクランブルした場合よりもスクランブル精度の高い画像を得ることができる。これまで説明したいくつかのスクランブル方式を組み合わせてスクランブル処理することが望ましい。
【０１００】
ここで、複数の色版をスクランブル処理する場合、版によって、処理に用いる初期値を変えることが望ましい。初期値が同じである場合、色版が異なっても、データ自体が同じ値を示していると、スクランブル結果も同じになってしまうため、スクランブル処理した複数版を重ねても１版分の結果と同様になってしまうことが生じる。この問題を回避するために版ごとに初期値を変えることによって、同じデータに対しても、スクランブル処理を施した後のデータは、異なる結果になる。このようにしてスクランブル処理を施した各色版を重ねると、１版分よりも更にスクランブル精度の高い画像を形成することができる。
【０１０１】
また、ここで、各スクランブル方法に使用する初期値を鍵情報として、固有の所有者が保持することが望ましい。すなわち、圧縮時と伸長時に、同じ鍵情報（＝同じ初期値）を入力した場合のみ、施されたスクランブル処理を解除したデータを得ることができる。この鍵の使い方はさまざまであり、データを所有する個人が保有しても良く、また、送受信を行う機器同士で保有してもよい。データの所有者が所定の鍵を持つことで、所有者と所有者以外のユーザー、あるいは送受信を行う機器間において、利用制限を設けることができるからである。
【０１０２】
（２．２．効果）
実施の形態２によるデータ圧縮方法によれば、登録外のシンボルを異なるデータに入れ換えると同時に、動的辞書内で一致したシンボルの符号もスクランブル対象とすることで、生成されるスクランブルデータのスクランブル精度を向上させることが可能なデータ圧縮方法を提供できる。
【０１０３】
（３．実施の形態３）
（３．１．復号化装置）
図１６は、実施の形態３による復号化装置の機能的ブロック図である。復号化装置１６００は、逆符号化部１６０１、動的辞書部１６０２疑似乱数生成器１６０４、およびＸＯＲ回路１６０４を備える。ここでは、擬似乱数を用いた圧縮方式で符号化されたデータを伸長する例を示した。入力符号ストリームを逆符号化処理部１６０１において中間コード化する。ここでＥＳＣコードが発生した場合、ＥＳＣコードに付随している生データを、擬似乱数生成器１６０３から生成された乱数とＸＯＲ回路１６０４でＸＯＲ処理したデータを出力する。ＥＳＣコード以外の中間コードは動的辞書１６０２で圧縮処理時と同様の辞書の登録、及び更新を行いながら、中間コードが指し示す辞書に登録されたデータを出力する。以上の復号化処理が施された結果、復号化されたデータが出力される。
（３．２．効果）
実施の形態３にかかるデータ伸長方法によれば、スクランブル処理を施されたデータに対して、簡易な方式で伸長処理を施し、かつスクランブル処理をデスクランブル処理を施すことによって解除し、元のデータに戻すことができる。
【産業上の利用可能性】
【０１０４】
以上のように、本発明にかかるデータ圧縮方法、データ復号化方法、それらの方法をコンピュータで実行するプログラム、データ圧縮装置、およびデータ復号化装置は、データの圧縮とスクランブル処理、および伸長と復号化処理に有用であり、特に、それほど暗号の秘匿性が高くないデータを圧縮しながらスクランブルを掛ける方法および装置に適している。
【図面の簡単な説明】
【０１０５】
【図１】本発明の実施の形態１による符号化装置の機能的ブロック図である。
【図２】実施の形態１による符号化装置において有限個数のシンボルを登録する動的辞書の動作を説明するフローチャートである。
【図３】実施の形態１による動的辞書の登録の一例を示す模式図である。
【図４】実施の形態１におけるスクランブル処理部を説明する図である。
【図５】実施の形態１によるスクランブル処理部によって処理を施されるスクランブルデータの一例を説明する図である。
【図６】実施の形態１によるスクランブル処理部によって処理を施されるスクランブルデータの他の一例を説明する図である。
【図７】実施の形態１によるスクランブル処理部の他の例を説明する図である。
【図８】スクランブル処理部１０３ａが用いる乱数表の一例を示した模式図である。
【図９】実施の形態１におけるスクランブル処理部の変形例の動作を示すフローチャートである。
【図１０】動的辞書部において符号データと生データとを別々のメモリに格納する例を示す模式図である。
【図１１】実施の形態１によるスクランブル処理部の変形例を説明する図である。
【図１２】実施の形態１によるスクランブル処理部の他の変形例を説明する図である。
【図１３】実施の形態１によるスクランブル処理部の他の変形例を説明する図である。
【図１４】本発明の実施の形態２による符号化装置の機能的ブロック図である。
【図１５】実施の形態２におけるインデックスと符号の対応テーブルの一例である。
【図１６】実施の形態３による復号化装置の機能的ブロック図である。
【符号の説明】
【０１０６】
１００、１４００  符号化装置
１０１  シンボル生成部
１０２  動的辞書部
１０３、１０３ａ  スクランブル処理部
１０４  符号化部
１１０  メモリＡ
１１１  メモリＢ
３１０、３２０、３３０  辞書テーブル
３１１、３２１、３３１  入力シンボル
３１４、３２４、３３４  出力（中間コード）
４０１、１６０３  疑似乱数生成器
４０２、７０３  ＸＯＲ回路
５００  符号ストリーム
５１０  スクランブル化された符号ストリーム
１４０３Ａ  スクランブル処理部Ａ
１４０３Ｂ  スクランブル処理部Ｂ
１６００  データ復号化装置
１６０１  逆符号化部
１６０２  動的辞書部
１６０４  ＸＯＲ回路
【図１】
2005094516.tif 000003
【図２】
2005094516.tif 000004
【図３】
2005094516.tif 000005
【図４】
2005094516.tif 000006
【図５】
2005094516.tif 000007
【図６】
2005094516.tif 000008
【図７】
2005094516.tif 000009
【図８】
2005094516.tif 000010
【図９】
2005094516.tif 000011
【図１０】
2005094516.tif 000012
【図１１】
2005094516.tif 000013
【図１２】
2005094516.tif 000014
【図１３】
2005094516.tif 000015
【図１４】
2005094516.tif 000016
【図１５】
2005094516.tif 000017
【図１６】
2005094516.tif 000018