(57)【特許請求の範囲】
【請求項１】
最初に、各々が絶対符号化テーブル（１０）に従って各文字（４）を一意に表す絶対数（５）によって表される元の順序付けされた文字（４）のシーケンス（２）によって定義されている文字列を圧縮するための方法であって、
−  前記元のシーケンス（２）を、連続した文字を含む少なくとも１つの第１のタイプのサブシーケンス（７）であって、第１のタイプのサブシーケンス（７）の連続した文字の各々が、相対符号化テーブル（２０）内の対応する文字に一致する、第１のタイプのサブシーケンスと、連続した残りの文字を含む少なくとも１つの第２のタイプのサブシーケンス（８）とにパースするステップ（３１）と、
−  前記相対符号化テーブル（２０）を使用して各第１のタイプのサブシーケンス（７）を符号化するステップ（３３）と、
−  各第２のタイプのサブシーケンス（８）からの各文字（４）を、前記圧縮シーケンス（３）内にコピーするステップであって、各文字が前記絶対符号化テーブル（１０）からのその絶対表現数（５）によって表される、コピーするステップ（４０）と
を含み、
第１のタイプのサブシーケンス（７）を符号化すること（３３）が、
−  前記サブシーケンスの最初の文字（１４）を、キーコード（１４）として、前記絶対符号化テーブル（１０）からのその元の絶対表現数（５）によって符号化するステップ（３４）と、
−  前記サブシーケンス（７）内の前記最初の文字（１４）に後続する各文字を、前記相対符号化テーブル（２０）における、前記文字に先行する文字と前記文字との間の変位（２１）を符号化することによって符号化するステップ（３５）と、
−  前記第１のタイプのサブシーケンス（７）の符号化を、前記サブシーケンス（７）内の最後の文字の後の符号化の終わりを示す、前記相対符号化テーブル（２０）内の第２の特定の制御文字（１６）に向けての変位（２１）を符号化することによって終了するステップ（３９）と
を含み、
前記相対符号化テーブル（２０）における、先行する文字と後続する文字との間の変位（２１）を符号化すること（３５）が、
−  前記相対符号化テーブル（２０）において、第１の所定の方向に沿った、前記後続する文字から前記先行する文字を分離する第１の座標を求めるステップ（３６）と、
−  前記相対符号化テーブル（２０）において、第２の所定の方向に沿った、前記後続する文字から前記先行する文字を分離する第２の座標を求めるステップ（３７）と、
−  すべての求められた座標を順番に、圧縮シーケンス（３）に連結するステップ（３８）と
を含み、
前記第１の座標が第１の数字セット内で選択され、前記第２の座標が第２の数字セット内で選択され、前記第１の数字セットと前記第２の数字セットとの間で数が一切共有されず、前記第１のセットの間の１つの第１の特定の座標、および、前記第２のセットの間の１つの第２の特定の座標が、圧縮シーケンス（３）においては省略されるが、２つの特定の座標が直に後続している場合は例外であり、この場合、前記後続する特定の座標が省略されない、方法。
【請求項２】
−  前記元のシーケンス（２）から計算されるチェックサム（１８、１９）を、前記圧縮シーケンス（３）内に挿入するステップ（４１）
をさらに含む、請求項１に記載の方法。
【請求項３】
前記相対符号化テーブル（２０）が、圧縮されるべき文字列において予測されるものとしての、最も頻度の高い文字をデータ投入される、請求項１から２のいずれか一項に記載の方法。
【請求項４】
前記相対符号化テーブル（２０）が８×８行列であり、前記第１の座標が、左から右への列の循環的カウントに従って［０．．７］の第１の範囲内で選択され、前記第２の座標は、上から下への、８を加えた行の循環的カウントに従って［８．．Ｆ］の第２の範囲内で選択され、第１の特定の座標が、分離が無い（ゼロの）列に対応する第１の座標であり、第２の特定の座標が、分離が無い（ゼロの）行に対応する第２の座標である、請求項１から３のいずれか一項に記載の方法。
【請求項５】
パースするステップと符号化するステップとの間に、
−  各第１のタイプのサブシーケンス（７）について、符号化するステップを通じて取得されることになる符号化サブシーケンス（１１）が、元のサブシーケンス（７）よりも短いか否かを検査するステップと、
−  そうでない場合、前記第１のタイプのサブシーケンス（７）を、第２のタイプのサブシーケンスとして扱うステップと
をさらに含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
圧縮シーケンス（３）を、各々が絶対符号化テーブル（１０）に従って各文字（４）を一意に表す絶対数（５）によって表される最終的な順序付けされた文字（４）のシーケンス（２）によって定義される文字列に逆圧縮するための方法であって、
−  前記圧縮シーケンス（３）から、連続した数の少なくとも１つの符号化サブシーケンス（１１）を抽出するステップ（７１）と、
−  相対符号化テーブル（２０）を使用して、前記符号化サブシーケンス（１１）を復号して、最終的な復号サブシーケンス（７）にする、復号するステップ（７２）と、
−  残りの数を保持するステップ（８３）と、
−  各前記残りの数を、前記絶対符号化テーブル（１０）を使用して絶対数によって表される文字として逆圧縮シーケンス２内にコピーするステップ（８４）と
を含み、
抽出するステップ（７１）および復号するステップ（７２）が、
−  最初の数（１４）を、前記絶対符号化テーブル（１０）に従って前記絶対数によって表される文字として前記最終的な復号サブシーケンス（２）にコピーするステップ（７３）と、
−  前記符号化サブシーケンス（１１）において、前記最初の数（１４）に後続する、後続する数を前処理するステップ（７４）と、
−  後続する数を前記相対符号化テーブル（２０）における相対的な変位（２１）として、変位が、符号化の終わりを示し、したがって前記符号化サブシーケンス（１１）の終わりを示す、前記相対符号化テーブル（２０）内の第２の特定の制御文字（１６）を指すまで復号するステップ（８０）と
をさらに含み、
後続する数を復号するステップ（８０）が、
−  前記最初の文字（１４）である現在の文字によって開始するステップ（８１）であって、現在の位置が前記相対符号化テーブル（２０）内の前記最初の文字（１４）の位置であり、現在の座標対が、前記符号化サブシーケンス（２０）内の第１の座標と第２の座標との第１の対である、開始するステップ（８１）と、
−  新たな位置が前記相対符号化テーブル（２０）内の第２の特定の制御文字（１６）を指すまで、
−  新たな復号される文字を示す新たな位置を見つけるために、前記相対符号化テーブル（２０）内の現在の位置から、第１の座標と第２の座標との現在の対によって符号化されるものとして変位（２１）を適用するステップであって、第１の座標が、第１の所定の方向に沿った列の循環的カウントを示し、第２の座標が、第２の所定の方向に沿った行の循環的カウントを示す、適用するステップと、
−  前記復号される最終的なサブシーケンス（７）内の前記現在の文字の後に前記新たな復号される文字をコピーするステップと、
−  現在の文字を前記新たな復号される文字に更新し、現在の位置を前記新たな位置に更新し、現在の座標対を、前記符号化サブシーケンス（１１）内の第１の座標と第２の座標との次の対に更新するステップと
を反復するステップ（８２）と
をさらに含み、
前記第１の座標が第１の数字セット内で選択され、前記第２の座標が第２の数字セット内で選択され、前記第１の数字セットと前記第２の数字セットとの間で数が一切共有されず、後続する数を前処理するステップ（７４）が、
−  前記後続する数を座標に分離するステップ（７５）と、
−  任意の第２の特定の座標の前に第１の特定の座標を挿入するステップ（７６）と、
−  任意の第１の特定の座標の前に第２の特定の座標を挿入するステップ（７７）と、
−  任意の２つの連続する第２の座標の間に第１の特定の座標を挿入するステップ（７８）と、
−  任意の２つの連続する第１の座標の間に第２の特定の座標を挿入するステップ（７９）と
をさらに含む、方法。
【請求項７】
前記相対符号化テーブル（２０）が８×８行列であり、前記第１の座標が、左から右への列の循環的カウントに従って［０．．７］の第１の範囲内で選択され、前記第２の座標は、上から下への、８を加えた行の循環的カウントに従って［８．．Ｆ］の第２の範囲内で選択され、第１の特定の座標が、分離が無い（ゼロの）列に対応する第１の座標であり、第２の特定の座標が、分離が無い（ゼロの）行に対応する第２の座標である、請求項６に記載の方法。
【請求項８】
最初に、各々が絶対符号化テーブル（１０）に従って各文字（４）を一意に表す絶対数（５）によって表される元の順序付けされた文字（４）のシーケンス（２）によって定義されている文字列を圧縮して、圧縮シーケンス（３）にするための圧縮器（５０）であって、
−  前記元のシーケンス（２）を、連続した文字を含む少なくとも１つの第１のタイプのサブシーケンス（７）であって、第１のタイプのサブシーケンス（７）の連続した文字の各々が、相対符号化テーブル（２０）内の対応する文字に基づいて選択される、第１のタイプのサブシーケンスと、連続した残りの文字を含む少なくとも１つの第２のタイプのサブシーケンス（８）とにパースするためのパース器（５１）と、
−  前記相対符号化テーブル（２０）を使用して各第１のタイプのサブシーケンス（７）を符号化するための符号化器（５３）と、
−  各第２のタイプのサブシーケンス（８）からの各文字（４）を、前記圧縮シーケンス（３）内にコピーするためのコピー器（６０）であって、各文字が前記絶対符号化テーブル（１０）からのその絶対表現数（５）によって表される、コピー器（６０）と
を備え、
符号化器（５３）が、
−  前記サブシーケンスの最初の文字（１４）を、キーコード（１４）として、前記絶対符号化テーブル（１０）からのその元の絶対表現数（５）によって符号化するための第１の部分符号化器（５４）と、
−  前記サブシーケンス（７）内の前記最初の文字（１４）に後続する各文字を、前記相対符号化テーブル（２０）における、前記文字に先行する文字と前記文字との間の変位（２１）を符号化することによって符号化するための第２の部分符号化器（５５）と、
−  前記第１のタイプのサブシーケンス（７）の符号化を、前記サブシーケンス（７）内の最後の文字の後の符号化の終わりを示す、前記相対符号化テーブル（２０）内の第２の特定の制御文字（１６）に向けての変位（２１）を符号化することによって終了するための第３の部分符号化器（５９）と
をさらに備え、
第２の部分符号化器（５５）が、
−  前記相対符号化テーブル（２０）において、第１の所定の方向に沿った、前記後続する文字から前記先行する文字を分離する第１の座標を求めるための第１の決定器（５６）と、
−  前記相対符号化テーブル（２０）において、第２の所定の方向に沿った、前記後続する文字から前記先行する文字を分離する第２の座標を求めるための第２の決定器（５７）と、
−  すべての求められた座標を順番に、圧縮シーケンス（３）に連結するための連結器（５８）と
をさらに備え、
前記第１の座標が第１の数字セット内で選択され、前記第２の座標が第２の数字セット内で選択され、前記第１の数字セットと前記第２の数字セットとの間で数が一切共有されず、前記第１のセットの間の１つの第１の特定の座標、および、前記第２のセットの間の１つの第２の特定の座標が、圧縮シーケンス（３）においては省略されるが、２つの特定の座標が直に後続している場合は例外であり、この場合、前記後続する特定の座標が省略されない、圧縮器。
【請求項９】
−  前記元のシーケンス（２）から計算されるチェックサム（１８、１９）を、前記圧縮シーケンス（３）内に挿入するための挿入器（６１）
をさらに備える、請求項８に記載の圧縮器。
【請求項１０】
前記相対符号化テーブル（２０）が、圧縮されるべき文字列において予測されるものとしての、最も頻度の高い文字をデータ投入される、請求項８から９のいずれか一項に記載の圧縮器。
【請求項１１】
前記相対符号化テーブル（２０）が８×８行列であり、前記第１の座標が、左から右への列の循環的カウントに従って［０．．７］の第１の範囲内で選択され、前記第２の座標は、上から下への、８を加えた行の循環的カウントに従って［８．．Ｆ］の第２の範囲内で選択され、第１の特定の座標が、分離が無い（ゼロの）列に対応する第１の座標であり、第２の特定の座標が、分離が無い（ゼロの）行に対応する第２の座標である、請求項８から１０のいずれか一項に記載の圧縮器。
【請求項１２】
各第１のタイプのサブシーケンス（７）について、取得されることになる符号化サブシーケンス（１１）が、元のサブシーケンス（７）よりも短いか否かを検査し、そうでない場合、前記第１のタイプのサブシーケンス（７）を、第２のタイプのサブシーケンスとして扱うための検査器（５２）をさらに備える、請求項８から１１のいずれか一項に記載の圧縮器。
【請求項１３】
圧縮シーケンス（３）を、各々が絶対符号化テーブル（１０）に従って各文字（４）を一意に表す絶対数（５）によって表される最終的な順序付けされた文字（４）のシーケンス（２）によって定義される文字列に逆圧縮するための逆圧縮器であって、
−  前記圧縮シーケンス（３）から、連続した数の少なくとも１つの符号化サブシーケンス（１１）を抽出するための抽出器（９１）と、
−  相対符号化テーブル（２０）を使用して、前記符号化サブシーケンス（１１）を復号して、最終的な復号サブシーケンス（７）にするための復号器（９１）と、
−  残りの数を保持するための保持器（１０３）と、
−  各前記残りの数を、前記絶対符号化テーブル（１０）を使用して絶対数によって表される文字として逆圧縮シーケンス２内にコピーするためのコピー器（１０４）と
を備え、
抽出器および復号器が、
−  最初の数（１４）を、前記絶対符号化テーブル（１０）に従って前記絶対数によって表される文字として前記最終的な復号サブシーケンス（２）にコピーするための部分コピー器（９３）と、
−  前記符号化サブシーケンス（１１）において、前記最初の数（１４）に後続する、後続する数を前処理するための前処理器（９４）と、
−  後続する数を前記相対符号化テーブル（２０）における相対的な変位（２１）として、変位が、符号化の終わりを示し、したがって前記符号化サブシーケンス（１１）の終わりを示す、前記相対符号化テーブル（２０）内の第２の特定の制御文字（１６）を指すまで復号するための部分復号器（１００）と
をさらに備え、
部分復号器（１００）が、
−  前記最初の文字（１４）である現在の文字によって開始するための開始器（１０１）であって、現在の位置が前記相対符号化テーブル（２０）内の前記最初の文字（１４）の位置であり、現在の座標対が、前記符号化サブシーケンス（２０）内の第１の座標と第２の座標との第１の対である、開始器（１０１）と、
−  新たな位置が前記相対符号化テーブル（２０）内の第２の特定の制御文字（１６）を指すまで、
−  新たな復号される文字を示す新たな位置を見つけるために、前記相対符号化テーブル（２０）内の現在の位置から、第１の座標と第２の座標との現在の対によって符号化されるものとして変位（２１）を適用するステップであって、第１の座標が、第１の所定の方向に沿った列の循環的カウントを示し、第２の座標が、第２の所定の方向に沿った行の循環的カウントを示す、適用するステップと、
−  前記復号される最終的なサブシーケンス（７）内の前記現在の文字の後に前記新たな復号される文字をコピーするステップと、
−  現在の文字を前記新たな復号される文字に更新し、現在の位置を前記新たな位置に更新し、現在の座標対を、前記符号化サブシーケンス（１１）内の第１の座標と第２の座標との次の対に更新するステップと
を反復するための反復器（１０２）と
をさらに備え、
前記第１の座標が第１の数字セット内で選択され、前記第２の座標が第２の数字セット内で選択され、前記第１の数字セットと前記第２の数字セットとの間で数が一切共有されず、前処理器（９４）が、
−  前記後続する数を座標に分離するための分離器（９５）と、
−  任意の第２の特定の座標の前に第１の特定の座標を挿入するための第１の挿入器と、
−  任意の第１の特定の座標の前に第２の特定の座標を挿入するための第２の挿入器と、
−  任意の２つの連続する第２の座標の間に第１の特定の座標を挿入するための第３の挿入器と、
−  任意の２つの連続する第１の座標の間に第２の特定の座標を挿入するための第４の挿入器と
をさらに備える、逆圧縮器。
【請求項１４】
前記相対符号化テーブル（２０）が８×８行列であり、前記第１の座標が、左から右への列の循環的カウントに従って［０．．７］の第１の範囲内で選択され、前記第２の座標は、上から下への、８を加えた行の循環的カウントに従って［８．．Ｆ］の第２の範囲内で選択され、第１の特定の座標が、列を分離するゼロに対応する第１の座標であり、第２の特定の座標が、行を分離するゼロに対応する第２の座標である、請求項１３に記載の逆圧縮器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の技術分野は、情報の通信の技術分野である。より詳細には、本発明の技術分野は、セキュアで損失のない圧縮／逆圧縮に関する。
【背景技術】
【０００２】
テキストは、文字のシーケンスとして順序付けされている文字列である。文字を数値的に表す一般的な方法は、各文字が一意の絶対数によって表される絶対符号化テーブルを使用することによるものである。そのような絶対符号化テーブルで最も有名なものの１つは、ＡＳＣＩＩ標準によって定義されるものである。そのようなＡＳＣＩＩ絶対符号化テーブルにおいて、各文字は一般的に、一意の１バイト数によって表され、したがって、そのようなＡＳＣＩＩ絶対符号化テーブルのサイズは２５６文字に制限される。順序付けされた文字シーケンスを数値的に表す一般的な方法は、対応する順序付けされた数字シーケンスを提供することであり、各文字は、同じ順序で、その絶対数によって表される。
【０００３】
結果として、ｎ文字から成る列は、ｎバイトを占有する数字シーケンスによって表される。たとえば、携帯電話ネットワーク上のデータまたはテキストトラフィックの増大を考慮すると、そのような占有は大きすぎると考えられる。
【０００４】
ｚｉｐ、ｒａｒなどのようないくつかの圧縮ソリューションが存在するが、これらのソリューションは、特に長さの短いテキスト文字列に適用されるときには何らサイズ低減をもたらさない場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
長さの短い列についてさえも顕著なサイズ低減を呈する圧縮／逆圧縮方式が望ましい。
【課題を解決するための手段】
【０００６】
一実施形態は、最初に、各々が絶対符号化テーブルに従って各文字を一意に表す絶対数によって表される元の順序付けされた文字シーケンスによって定義されている文字列を圧縮するための方法であって、前記元のシーケンスを、連続した文字を含む少なくとも１つの第１のタイプのサブシーケンスであって、第１のタイプのサブシーケンスの連続した文字の各々は、相対符号化テーブル内の対応する文字に一致する、第１のタイプのサブシーケンスと、連続した残りの文字を含む少なくとも１つの第２のタイプのサブシーケンスとにパースするステップと、前記相対符号化テーブルを使用して各第１のタイプのサブシーケンスを符号化するステップと、各第２のタイプのサブシーケンスからの各文字を、前記圧縮シーケンス内にコピーするステップであって、各文字は前記絶対符号化テーブルからのその絶対表現数によって表される、コピーするステップとを含む、方法に関する。
【０００７】
一実施形態の特徴によれば、第１のタイプのサブシーケンスを符号化することは、前記サブシーケンスの最初の文字を、キーコードとして、前記絶対符号化テーブルからのその元の絶対表現数によって符号化するステップと、前記サブシーケンス内の前記最初の文字に後続する各文字を、前記相対符号化テーブルにおける、前記文字に先行する文字と前記文字との間の変位を符号化することによって符号化するステップと、前記第１のタイプのサブシーケンスの符号化を、前記サブシーケンス内の最後の文字の後の符号化の終わりを示す、前記相対符号化テーブル内の第２の特定の制御文字に向けての変位を符号化することによって終了するステップとをさらに含んでもよい。
【０００８】
一実施形態の別の特徴によれば、前記方法は、前記元のシーケンスから計算されるチェックサムを、前記圧縮シーケンス内に挿入するステップをさらに含んでもよい。
【０００９】
一実施形態の別の特徴によれば、前記相対符号化テーブルにおける、先行する文字と後続する文字との間の変位を符号化することは、前記相対符号化テーブルにおいて、第１の所定の方向に沿った、前記後続する文字から前記先行する文字を分離する第１の座標を求めるステップと、前記相対符号化テーブルにおいて、第２の所定の方向に沿った、前記後続する文字から前記先行する文字を分離する第２の座標を求めるステップと、すべての求められた座標を順番に、圧縮シーケンスに連結するステップとを含んでもよい。
【００１０】
一実施形態の別の特徴によれば、前記第１の座標は第１の数字セット内で選択され、前記第２の座標は第２の数字セット内で選択され、前記第１の数字セットと前記第２の数字セットとの間で数は一切共有されず、前記第１のセットの間の１つの第１の特定の座標、および、前記第２のセットの間の１つの第２の特定の座標は、圧縮シーケンスにおいては省略されるが、２つの特定の座標が直に後続している場合は例外であり、この場合、前記後続する特定の座標は省略されない。
【００１１】
一実施形態の別の特徴によれば、前記相対符号化テーブルは、圧縮されるべき文字列において予測されるものとしての、最も頻度の高い文字をデータ投入される。
【００１２】
一実施形態の別の特徴によれば、前記相対符号化テーブルは８×８行列であり、前記第１の座標は、左から右への列の循環的カウントに従って［０．．７］の第１の範囲内で選択され、前記第２の座標は、上から下への、８を加えた行の循環的カウントに従って［８．．Ｆ］の第２の範囲内で選択され、第１の特定の座標は、分離が無い（ゼロの）列に対応する第１の座標であり、第２の特定の座標は、分離が無い（ゼロの）行に対応する第２の座標である。
【００１３】
一実施形態の別の特徴によれば、前記方法は、パースするステップと符号化するステップとの間に、各第１のタイプのサブシーケンスについて、符号化するステップを通じて取得されることになる符号化サブシーケンスが、元のサブシーケンスよりも短いか否かを検査するステップと、そうでない場合、前記第１のタイプのサブシーケンスを、第２のタイプのサブシーケンスとして扱うステップとをさらに含む。
【００１４】
別の実施形態は、圧縮シーケンスを、各々が絶対符号化テーブルに従って各文字を一意に表す絶対数によって表される最終的な順序付けされた文字シーケンスによって定義される文字列に逆圧縮するための方法であって、前記圧縮シーケンスから、連続した数の少なくとも１つの符号化サブシーケンスを抽出するステップと、相対符号化テーブルを使用して、前記符号化サブシーケンスを復号して、最終的な復号サブシーケンスにする、復号するステップと、残りの数を保持するステップと、前記残りの数を、前記絶対符号化テーブルを使用して絶対数によって表される文字として逆圧縮シーケンス２内にコピーするステップとの１つまたは複数のステップを含む、方法に関する。
【００１５】
一実施形態の別の特徴によれば、抽出するステップおよび復号するステップは、最初の数を、前記絶対符号化テーブルに従って前記絶対数によって表される文字として前記最終的な復号サブシーケンスにコピーするステップと、前記符号化サブシーケンスにおいて、前記最初の数に後続する、後続する数を前処理するステップと、後続する数を前記相対符号化テーブルにおける相対的な変位として、変位が、符号化の終わりを示し、したがって前記符号化サブシーケンスの終わりを示す、前記相対符号化テーブル内の第２の特定の制御文字を指すまで復号するステップとをさらに含んでもよい。
【００１６】
一実施形態の別の特徴によれば、後続する数を復号するステップは、前記最初の文字である現在の文字によって開始するステップであって、現在の位置は前記相対符号化テーブル内の前記最初の文字の位置であり、現在の座標対は、前記符号化サブシーケンス内の第１の座標と第２の座標との第１の対である、開始するステップと、新たな位置が前記相対符号化テーブル内の第２の特定の制御文字を指すまで、新たな復号される文字を示す新たな位置を見つけるために、前記相対符号化テーブル内の現在の位置から、第１の座標と第２の座標との現在の対によって符号化されるものとして変位を適用するステップであって、第１の座標は、第１の所定の方向に沿った列の循環的カウントを示し、第２の座標は、第２の所定の方向に沿った行の循環的カウントを示す、適用するステップと、前記復号される最終的なサブシーケンス内の前記現在の文字の後に前記新たな復号される文字をコピーするステップと、現在の文字を前記新たな復号される文字に更新し、現在の位置を前記新たな位置に更新し、現在の座標対を、前記符号化サブシーケンス内の第１の座標と第２の座標との次の対に更新するステップとを反復するステップとをさらに含んでもよい。
【００１７】
一実施形態の別の特徴によれば、前記第１の座標は第１の数字セット内で選択され、前記第２の座標は第２の数字セット内で選択され、前記第１の数字セットと前記第２の数字セットとの間で数は一切共有されず、後続する数を前処理するステップは、任意の第２の特定の座標の前に第１の特定の座標を挿入するステップと、任意の第１の特定の座標の前に第２の特定の座標を挿入するステップと、任意の２つの連続する第２の座標の間に第１の特定の座標を挿入するステップと、任意の２つの連続する第１の座標の間に第２の特定の座標を挿入するステップとをさらに含む。
【００１８】
一実施形態の別の特徴によれば、前記相対符号化テーブルは８×８行列であり、前記第１の座標は、左から右への列の循環的カウントに従って［０．．７］の第１の範囲内で選択され、前記第２の座標は、上から下への、８を加えた行の循環的カウントに従って［８．．Ｆ］の第２の範囲内で選択され、第１の特定の座標は、分離が無い（ゼロの）列に対応する第１の座標であり、第２の特定の座標は、分離が無い（ゼロの）行に対応する第２の座標である。
【００１９】
別の実施形態は、そのような圧縮方法に従って文字列を圧縮して、圧縮シーケンスにするための手段を備える圧縮器に関する。
【００２０】
一実施形態は、最初に、各々が絶対符号化テーブルに従って各文字を一意に表す絶対数によって表される元の順序付けされた文字シーケンスによって定義されている文字列を圧縮して、圧縮シーケンスにするための圧縮器であって、前記元のシーケンスを、連続した文字を含む少なくとも１つの第１のタイプのサブシーケンスであって、第１のタイプのサブシーケンスの連続した文字の各々は、相対符号化テーブル内の対応する文字に基づいて選択される、第１のタイプのサブシーケンスと、連続した残りの文字を含む少なくとも１つの第２のタイプのサブシーケンスとにパースするためのパース器と、前記相対符号化テーブルを使用して各第１のタイプのサブシーケンスを符号化するための符号化器と、各第２のタイプのサブシーケンスからの各文字を、前記圧縮シーケンス内にコピーするためのコピー器であって、各文字は前記絶対符号化テーブルからのその絶対表現数によって表される、コピー器とを備える、圧縮器に関する。
【００２１】
一実施形態の別の特徴によれば、符号化器は、前記サブシーケンスの最初の文字を、キーコードとして、前記絶対符号化テーブルからのその元の絶対表現数によって符号化するための第１の部分符号化器と、前記サブシーケンス内の前記最初の文字に後続する各文字を、前記相対符号化テーブルにおける、前記文字に先行する文字と前記文字との間の変位を符号化することによって符号化するための第２の部分符号化器と、前記第１のタイプのサブシーケンスの符号化を、前記サブシーケンス内の最後の文字の後の符号化の終わりを示す、前記相対符号化テーブル内の第２の特定の制御文字に向けての変位を符号化することによって終了するための第３の部分符号化器とをさらに備える。
【００２２】
一実施形態の別の特徴によれば、圧縮器は、前記元のシーケンスから計算されるチェックサムを、前記圧縮シーケンス内に挿入するための挿入器をさらに備える。
【００２３】
一実施形態の別の特徴によれば、第２の部分符号化器は、前記相対符号化テーブルにおいて、第１の所定の方向に沿った、前記後続する文字から前記先行する文字を分離する第１の座標を求めるための第１の決定器と、前記相対符号化テーブルにおいて、第２の所定の方向に沿った、前記後続する文字から前記先行する文字を分離する第２の座標を求めるための第２の決定器と、すべての求められた座標を順番に、圧縮シーケンスに連結するための連結器とをさらに備える。
【００２４】
一実施形態の別の特徴によれば、前記第１の座標は第１の数字セット内で選択され、前記第２の座標は第２の数字セット内で選択され、前記第１の数字セットと前記第２の数字セットとの間で数は一切共有されず、前記第１のセットの間の１つの第１の特定の座標、および、前記第２のセットの間の１つの第２の特定の座標は、圧縮シーケンスにおいては省略されるが、２つの特定の座標が直に後続している場合は例外であり、この場合、前記後続する特定の座標は省略されない。
【００２５】
一実施形態の別の特徴によれば、前記相対符号化テーブルは、圧縮されるべき文字列において予測されるものとしての、最も頻度の高い文字をデータ投入される。
【００２６】
一実施形態の別の特徴によれば、前記相対符号化テーブルは８×８行列であり、前記第１の座標は、左から右への列の循環的カウントに従って［０．．７］の第１の範囲内で選択され、前記第２の座標は、上から下への、８を加えた行の循環的カウントに従って［８．．Ｆ］の第２の範囲内で選択され、第１の特定の座標は、分離が無い（ゼロの）列に対応する第１の座標であり、第２の特定の座標は、分離が無い（ゼロの）行に対応する第２の座標である。
【００２７】
一実施形態の別の特徴によれば、前記圧縮器は、各第１のタイプのサブシーケンスについて、取得されることになる符号化サブシーケンスが、元のサブシーケンスよりも短いか否かを検査し、そうでない場合、前記第１のタイプのサブシーケンスを、第２のタイプのサブシーケンスとして扱うための検査器をさらに備える。
【００２８】
別の実施形態は、そのような逆圧縮方法に従って、圧縮シーケンスを文字列に逆圧縮するための手段を備える逆圧縮器に関する。
【００２９】
一実施形態は、圧縮シーケンスを、各々が絶対符号化テーブルに従って各文字を一意に表す絶対数によって表される最終的な順序付けされた文字シーケンスによって定義される文字列に逆圧縮するための逆圧縮器であって、前記圧縮シーケンスから、連続した数の少なくとも１つの符号化サブシーケンスを抽出するための抽出器と、相対符号化テーブルを使用して、前記符号化サブシーケンスを復号して、最終的な復号サブシーケンスにするための復号器と、残りの数を保持するための保持器と、各前記残りの数を、前記絶対符号化テーブルを使用して絶対数によって表される文字として逆圧縮シーケンス内にコピーするためのコピー器とを備える、逆圧縮器に関する。
【００３０】
一実施形態の別の特徴によれば、抽出器および復号器は、最初の数を、前記絶対符号化テーブルに従って前記絶対数によって表される文字として前記最終的な復号サブシーケンスにコピーするための部分コピー器と、前記符号化サブシーケンスにおいて、前記最初の数に後続する、後続する数を前処理するための前処理器と、後続する数を前記相対符号化テーブルにおける相対的な変位として、変位が、符号化の終わりを示し、したがって前記符号化サブシーケンスの終わりを示す、前記相対符号化テーブル内の第２の特定の制御文字を指すまで復号するための部分復号器とをさらに備える。
【００３１】
一実施形態の別の特徴によれば、部分復号器は、前記最初の文字である現在の文字によって開始するための開始器であって、現在の位置は前記相対符号化テーブル内の前記最初の文字の位置であり、現在の座標対は、前記符号化サブシーケンス内の第１の座標と第２の座標との第１の対である、開始器と、新たな位置が前記相対符号化テーブル内の第２の特定の制御文字を指すまで、新たな復号される文字を示す新たな位置を見つけるために、前記相対符号化テーブル内の現在の位置から、第１の座標と第２の座標との現在の対によって符号化されるものとして変位を適用するステップであって、第１の座標は、第１の所定の方向に沿った列の循環的カウントを示し、第２の座標は、第２の所定の方向に沿った行の循環的カウントを示す、適用するステップと、前記復号される最終的なサブシーケンス内の前記現在の文字の後に前記新たな復号される文字をコピーするステップと、現在の文字を前記新たな復号される文字に更新し、現在の位置を前記新たな位置に更新し、現在の座標対を、前記符号化サブシーケンス内の第１の座標と第２の座標との次の対に更新するステップとを反復するための反復器とをさらに備える。
【００３２】
一実施形態の別の特徴によれば、前記第１の座標は第１の数字セット内で選択され、前記第２の座標は第２の数字セット内で選択され、前記第１の数字セットと前記第２の数字セットとの間で数は一切共有されず、前処理器は、前記後続する数を座標に分離するための分離器と、任意の第２の特定の座標の前に第１の特定の座標を挿入するための第１の挿入器と、任意の第１の特定の座標の前に第１の第２の特定の座標を挿入するための第２の挿入器と、任意の２つの連続する第２の座標の間に第１の特定の座標を挿入するための第３の挿入器と、任意の２つの連続する第１の座標の間に第２の特定の座標を挿入するための第４の挿入器とをさらに備える。
【００３３】
一実施形態の別の特徴によれば、前記相対符号化テーブルは８×８行列であり、前記第１の座標は、左から右への列の循環的カウントに従って［０．．７］の第１の範囲内で選択され、前記第２の座標は、上から下への、８を加えた行の循環的カウントに従って［８．．Ｆ］の第２の範囲内で選択され、第１の特定の座標は、分離が無い（ゼロの）列に対応する第１の座標であり、第２の特定の座標は、分離が無い（ゼロの）行に対応する第２の座標である。
【００３４】
本発明の他の特徴、詳細および利点は、添付の図面に対して以下に与えられる詳細な解説となる説明からより明らかとなる。
【図面の簡単な説明】
【００３５】
【図１】ＡＳＣＩＩ標準による絶対符号化テーブルを示す図である。
【図２】絶対符号化され、一実施形態に従って符号化される文字列の一例を示す図である。
【図３】元のシーケンスを第１のタイプのサブシーケンスと第２のタイプのサブシーケンスとに分割するステップを示す図である。
【図４】相対符号化テーブルを示す図である。
【図５】一実施形態による圧縮方法の流れ図である。
【図６】一実施形態による圧縮器を示す図である。
【図７】一実施形態による逆圧縮方法の流れ図である。
【図８】一実施形態による逆圧縮器を示す図である。
【発明を実施するための形態】
【００３６】
テキストは、文字４のシーケンス１として順序付けされている文字列である。文字４を数値的に表す一般的な方法は、各文字４が一意の絶対数５によって表される絶対符号化テーブル１０を使用することによるものである。そのような絶対符号化テーブル１０で最も有名なものの１つは、ＡＳＣＩＩ標準によって定義されるものである。ＡＳＣＩＩ絶対符号化テーブル１０の前半部分を、図１に示す。第３の列において示されている文字４は、それぞれ第７の列において、第１の列において示されている絶対数によって表されており、それぞれ第５の列において、１０進数で、第２の列に示されている同じ絶対数５によって表されており、それぞれ第６の列において１６進数において表されている。一例として、文字「Ａ」は、１０進数の絶対数「０６５」によって、および、１６進数の絶対数「４１」によって表されている。
【００３７】
そのようなＡＳＣＩＩ絶対符号化テーブル１０において、各文字４は一般的に、一意の１バイト数５によって表され、したがって、そのようなＡＳＣＩＩ絶対符号化テーブルのサイズは２５６文字に制限される（テーブルの半分が図示されている）。順序付けされた文字４のシーケンス１であるテキストを数値的に表す一般的な方法は、対応する順序付けされた数字５のシーケンス２を提供することであり、各文字４は、同じ順序で、その絶対数５によって表される。図２を参照すると、例示的な文字列１：「“８８８”  Ｏｒａｎｇｅ  ｖｏｉｃｅｍａｉｌ：  ｏｎ  １２／０５／１１  ａｔ  １７ｈ４４  ｔｈｉｓ  ｃｏｒｒｅｓｐｏｎｄｅｎｔ  ｈａｓ  ｃａｌｌｅｄ  ｏｎｅ  ｔｉｍｅ  ｗｉｔｈｏｕｔ  ｌｅａｖｉｎｇ  ａ  ｍｅｓｓａｇｅ．」が、前記ＡＳＣＩＩ絶対符号化テーブル１０を使用して表されている。すべてのブロックの第１の行は文字列１を含み、各ブロックの第２の行は、対応して順序付けられている数字１０のシーケンス２、すなわち、１６進数のＡＳＣＩＩ符号を含む。
【００３８】
そのような絶対符号化は効率的ではない場合があるため、圧縮方法を提案する。このとき、すべてのブロックの第２の行は圧縮されることになる元の順序付けされたシーケンス２を表し、すべてのブロックの第３の行は、前記元の順序付けされたシーケンス２から圧縮方法の一実施形態を通じて得られるものとしての、対応する圧縮シーケンス３である。
【００３９】
前記圧縮方法は、前記絶対符号化テーブル１０に加えて、相対符号化テーブル２０を使用する。そのような相対符号化テーブル２０の一例を、図４に提示する。前記圧縮方法は、いくつかのステップを含み得る。
【００４０】
図３を参照すると、圧縮方法に入るときの元のシーケンス２が上部に図示されている。図３の下部には、前記圧縮方法によって出力されるものとしての圧縮シーケンス３が図示されている。
【００４１】
圧縮方法の第１のステップによれば、前記元のシーケンス２はサブシーケンス７、８にパースされる。前記パースは、前記相対符号化テーブル２０の内容に基づく。前記内容は、たとえば、絶対符号化テーブル１０に含まれる２５６文字によって定義されるような、文字セット全体のうちの少なくともサブセットである、文字セットである。したがって、前記相対符号化テーブル２０に含まれ、そのため前記絶対符号化テーブル１０にも含まれることを特徴とする第１のタイプの文字を定義することができる。同様に、前記絶対符号化テーブル１０に含まれるが、前記相対符号化テーブル２０には含まれないものとして、第２のタイプの文字を定義することができる。たとえば、図１の例示的な絶対符号化テーブル１０および図４の例示的な相対符号化テーブル２０によれば、前記相対符号化テーブル２０に存在する文字「Ａ」−「Ｚ」は第１のタイプの文字であり、一方で前記相対符号化テーブル２０にない文字「０」−「９」は第２のタイプの文字である。
【００４２】
したがって、第１のタイプのサブシーケンス７を、第１のタイプの連続した文字を含むものとして定義することができ、第２のタイプのサブシーケンス８を、任意のタイプの連続した文字を含むものとして定義することができる。したがって、第１のタイプの文字は第１のタイプまたは第２のタイプのサブシーケンスに見つけることができ、一方で、第２のタイプの文字は第２のタイプのサブシーケンスに見られる。
【００４３】
図３を参照すると、例示的な文字列：「“８８８”  Ｏｒａｎｇｅ  ｖｏｉｃｅｍａｉｌ：  ｏｎ  １２／０５／１１  ａｔ  １７ｈ４４  ｔｈｉｓ  ｃｏｒｒｅｓｐｏｎｄｅｎｔ  ｈａｓ  ｃａｌｌｅｄ  ｏｎｅ  ｔｉｍｅ  ｗｉｔｈｏｕｔ  ｌｅａｖｉｎｇ  ａ  ｍｅｓｓａｇｅ．」を、図４の相対符号化テーブル２０に基づいて以下に分割され得る：
−  第１の第２タイプサブシーケンス８：「“８８８”」、
−  第１の第１タイプサブシーケンス７：「  Ｏｒａｎｇｅ  ｖｏｉｃｅｍａｉｌ：  ｏｎ  」
−  第２の第２タイプサブシーケンス８ａ：「１２／０５／１１  ａｔ  １７ｈ４４」、および
−  第２の第１タイプサブシーケンス７ａ：「  ｔｈｉｓ  ｃｏｒｒｅｓｐｏｎｄｅｎｔ  ｈａｓ  ｃａｌｌｅｄ  ｏｎｅ  ｔｉｍｅ  ｗｉｔｈｏｕｔ  ｌｅａｖｉｎｇ  ａ  ｍｅｓｓａｇｅ．」。
【００４４】
「  ａｔ  」は、すべて前記相対符号化テーブル２０内に存在する文字：スペース、「ａ」および「ｔ」を含むため、サブシーケンス８ａは、３つのサブシーケンス：第２のタイプの「１２／０５／１１」、第１のタイプの「  ａｔ  」および第２のタイプの「１７ｈ４４」にさらに分割されている。しかしながら、後に説明されるように、第１のタイプのサブシーケンス７の抽出は任意選択であってもよい。ここで、第１のタイプのサブシーケンス「ａｔ」は、後に詳述されるように、短すぎて抽出および符号化することが有益でない。
【００４５】
より一般的に、すべての文字が絶対符号化テーブル１０に関連する場合、抽出可能な第１のタイプのサブシーケンスがない場合があるため、第１のタイプのサブシーケンス７の抽出は、任意選択であり得る。そのような場合、前記パースするステップを通じて、元のシーケンス２に等しい１つの第２のタイプのサブシーケンスが得られ得る。
【００４６】
以下から明らかになるように、第１のタイプのサブシーケンス７の符号化を通じて圧縮利得を得ることができるため、できうる最も長い第１のタイプのサブシーケンス７を抽出し、前記相対符号化テーブル２０にない第２のタイプのサブシーケンス８の収容に第２のタイプの文字を使用することが有益である。
【００４７】
それらのタイプに応じて、これら２つのタイプのそのようにして得られるサブシーケンスが処理される。各第１のタイプのサブシーケンス７は、後に詳述されるように、前記相対符号化テーブル２０を使用して符号化され得る。第２のタイプのサブシーケンス８はそのまま保持される。言い換えると、第２のタイプのサブシーケンス８は前記絶対符号化テーブル１０を使用して表されたままであり、各文字４は前記絶対符号化テーブル１０からのその絶対表現数５によって表されている。そのため、第２のタイプのサブシーケンスは単純に、元のシーケンス２から圧縮シーケンス３へと順番にコピーされる。
【００４８】
第１のタイプのサブシーケンス７は、第１のタイプの最終的な符号化サブシーケンス１１に符号化される。第２のタイプのサブシーケンス８は、前記元の第２のタイプのサブシーケンス８と同一の第２のタイプの最終的なサブシーケンス１２にコピーされる。この圧縮方法のこの結果は、図３に示されているように、前記第１のタイプの最終的なシーケンス１１および第２のタイプの最終的なサブシーケンス１２を順番に連結したものに等しい最終的な圧縮シーケンス３である。
【００４９】
この圧縮方法の主な利点は、任意の第１のタイプのサブシーケンス７に適用される符号化ステップに由来する。そのような符号化ステップは、前記相対符号化テーブル２０に基づき、いくつかの後続するステップを含む。これは図３に示されている。
【００５０】
第１のタイプのサブシーケンス７の符号化を開始するために、第１の特定の制御文字１３が、結果もたらされる対応する最終的なサブシーケンス１１の始まりに加えられる。そのような第１の特定の制御文字１３は、逆圧縮方法／復号ステップに対して、符号化の始まりを示すためにここに配置される。
【００５１】
前記第１の特定の制御文字１３は、任意に選択されてもよい。しかしながら、絶対符号化テーブル１０において定義されているようないくつかの文字は、制御目的専用にされる。その符号が「００」から「１Ｆ」までである文字４が制御文字である。それらの多くはすでに特別な目的を有し、好適な候補にはならない。文字ＤＣ２（「１２」と符号化される）は今日では頻繁に使用されないため、１つの可能な候補である。本明細書における例は、符号化の始まりを意味する第１の特定の制御文字１３として前記ＤＣ２文字を使用する。
【００５２】
その後、符号化されることになるサブシーケンス７の第１の文字１４が絶対符号化される。これは、前記最初の文字１４が、前記絶対符号化テーブル１０からのその元の絶対表現数５によって表されることを意味する。前記最初の文字１４は、本明細書においてはキーコード１４とも称される。これは、符号化されることになるサブシーケンス７の第１の数が、前記第１の特定の制御文字１３の後の第２の位置において、最終的な符号化サブシーケンス１１にコピーされることを意味する。
【００５３】
その後、前記サブシーケンス７内の前記第１の文字１４に後続する各文字４が、前記相対符号化テーブル２０における、前記符号化されることになる文字に先行する文字と前記文字との間の変位を符号化することによって相対符号化される。これは、最終的な符号化サブシーケンス１１が、最初に第１の特定の制御文字１３を含み、次に第１の文字／キーコード１４を含み、次に、前記相対符号化テーブル２０における、前記第１の文字１４と前記第１の文字１４の直後の第２の文字との間の変位を示す移動数１５を含み、次に、前記第２の文字と前記第２の文字の直後の第３の文字との間の変位を示す移動数１５を含み、前記元のサブシーケンス７の最後の文字までこれが続く。これは重要なステップであるため、変位の相対符号化は後に詳述する。
【００５４】
符号化は前記最後の文字の後に終了する。前記第１のタイプのサブシーケンス７の符号化の終わりは、最終的な符号化サブシーケンス１１において、最後の文字の後の、符号化の終わりを示す、前記相対符号化テーブル２０における第２の特定の制御文字１６に向けての変位を符号化する追加の移動数１５によって示される。
【００５５】
ここで、例示的な文字列および図２に戻る。「“８８８”」を含む文字列の始まりは、前記相対符号化テーブル２０にない５文字を含む。結果として、それらは、元のシーケンス２と圧縮シーケンス３の両方において｛２２，３８，３８，３８，２２｝と符号化される第２のタイプのサブシーケンス、すなわちサブシーケンス８を形成する。その後、第１のタイプのサブシーケンス７「  Ｏｒａｎｇｅ  ｖｏｉｃｅｍａｉｌ：  ｏｎ  」が始まる。前記元のサブシーケンスは最初に、｛２０，４Ｆ，７２，６１，６Ｅ，６７，６５，２０，７６，６Ｆ，６９，６３，６５，６Ｄ，６１，６９，６Ｃ，３Ａ，２０，６Ｆ，６Ｅ，２０｝と符号化される。これはその後、符号化ステップを通じて、順番に、第１の特定の制御文字１３、すなわち、薄い灰色で図示されている、その符号が「１２」であるＤＣ２と、その後の、その符号が「２０」である「スペース」である、元のサブシーケンス７の第１の文字１４の表現数５とを含む、最終的なサブシーケンス１１になる。その後に、順番に、ある文字と次の文字との間の各変位を符号化する移動数１５が続く。元のサブシーケンス７は２２文字を含むため、それらは符号化するための２１個の変位である。それらは、移動数１５のシーケンス｛４１，Ｃ５，４７，９４，Ｆ７，Ｃ５，Ｅ７，Ｅ７，４９，２Ｆ，Ａ１，Ｅ１，６９，７０，Ｂ４，Ｃ２，２Ｃ｝によって符号化され、ここでこれは、本方法によってもたらされる有利な低減に起因して１７バイトを含む。最終的なサブシーケンス１１は、最後の移動数１５、ここでは「０Ｃ」で終わり、これは、前記相対符号化テーブル２０における、最後の文字、ここでは「  」（スペース）と第２の特定の制御文字１６との間の変位に対応する。後に詳述されるように、前記移動数「０Ｃ」は、先行する「０」を省略することによって「Ｃ」になっている。その後、半バイトの奇数を提示するために「０」フィラーがその後に加えられている。これによって、図２においては濃い灰色で図示されている「Ｃ０」数がもたらされる。次の数｛３１，３２，２Ｆ，．．．｝は、第２のタイプのサブシーケンス８ａに関連する次の文字「１２／．．．」を表す絶対数５であり、したがって絶対的に表現される。
【００５６】
図３に示されているように、圧縮方法の安全を確保するために、チェックサム１８、１９を加えることが可能である。そのようなチェックサム１８は、前記元のシーケンス２から計算される。その後、前記チェックサム１８のコピー１９が送信前に圧縮シーケンス３に、たとえば、前記圧縮シーケンスの終わりに付加される。これによって、受信者が、２つの冗長なデータ、すなわち、圧縮シーケンス３と前記チェックサム１９とを比較することによって検査することが可能になる。前記比較の肯定的な結果は、正確に圧縮および送信されていることを示し、一方で、否定的な結果は、圧縮方法／符号化ステップまたは送信のいずれかに誤りがあることを示す。
【００５７】
前記チェックサム１８を計算する可能な方法は、たとえば、元のシーケンス２の文字４のすべての絶対数５を合計することである。文字列内の文字の数は２５６未満のままである一方、前記合計は６５５３６未満のままであり、２バイトで書くことができる。より大きい文字列について、チェックサムを２バイトのままにするために、前記文字列を２５６バイトの部分列にカットするか、または、投影チェックサムアルゴリズムを使用して、たとえば、任意の繰り上げを無視することが可能である。
【００５８】
ここで、相対符号化テーブル２０を使用した変位の符号化を説明する。変位２１は、前記元のシーケンス２内の２つの後続する文字の間で定義され、先行する文字２２および後続する文字２３を定義し得る。前記文字は第１のタイプのサブシーケンス７に関連するため、それらは両方とも前記相対符号化テーブル２０内に存在する。
【００５９】
原則は、前記相対符号化テーブル２０において、前記先行する文字２２から前記後続する文字２３への変位２１を考えることである。前記変位２１を考えるとき、これは、水平変位と垂直変位とに分解され得る。したがって、前記変位２１を定義するために第１の座標および第２の座標を求めることが可能である。相対符号化テーブル２０が矩形行列であるとき、第１の座標は、第１の所定の方向に沿った、前記後続する文字２３から前記先行する文字２２を分離する列の循環的カウントとされ得、第２の座標は、第２の所定の方向に沿った、前記後続する文字２３から前記先行する文字２２を分離する行の循環的カウントとされ得る。行／列または列／行の順序は任意に選択され、さらには、圧縮方法と逆圧縮方法との間で一致される限り、変位２１ごとに変更されてもよい。
【００６０】
すべての変位２１について、カウント方向が同じであることが有利である。列は、左から右または右から左にカウントされ得る。行は、上から下または下から上にカウントされ得る。これは一定であってもよく、または、圧縮方法と逆圧縮方法との間で一致される限り、変位２１ごとに変更されてもよい。本明細書の残りの部分において、列カウント方向は左から右であり、行カウント方向は上から下であると仮定する。
【００６１】
前記列カウントは０と列の最大数−１との間に含まれ、前記行カウントはそれぞれ０と行の最大数−１との間に含まれるように丸められるという点において、それらはそれぞれ循環的である。
【００６２】
前記求められた第１の座標および第２の座標はその後変位の順に、移動数１５に連結されて圧縮シーケンス３に入る。
【００６３】
例示的な相対符号化テーブル２０を有する図４を参照すると、先行する文字２２「Ｆ」と後続する文字「ｇ」との間の変位２１が詳述されている。「Ｆ」は列３にあり、「ｇ」は列５にあり、このとき、左から右への方向に沿った「Ｆ」から「ｇ」への変位２１を特徴づける列の数は２である。その結果、前記変位２１の第１の座標は２である。「Ｆ」は行２にあり、「ｇ」は行５にあり、このとき、上から下への方向に沿った「Ｆ」から「ｇ」への変位２１を特徴づける行の数は３である。その結果、前記変位２１の第２の座標は３である。したがって、前記変位２１の移動数１５は（２，３）または「２３」と符号化され得る。
【００６４】
ここで、文字「ｇ」と文字「ｓ」２４との間の変位を考える。列は左から右へとカウントされるため、「ｓ」から「ｇ」を分離する列の数は５である。ここで、循環的カウントは、列が循環的に考えられ、列０が再び列７の右に配置されることを意味する。「ｓ」から「ｇ」を分離する上から下への行のカウントによって、これらは両方とも同じ行にあるため０のカウントまたは８のカウントがもたらされ、８のカウントは、０と８−１＝７との間に含まれたままになるように、すなわち、行の最大数、ここでは８を法として０に丸められる。
【００６５】
別の発明的特徴によれば、前記第１の座標は、第１の数字セット内で選択され、前記第２の座標は第２の数字セット内で選択される。前記第１の数字セットと前記第２の数字セットとの間で数は一切共有されない。そのような特徴によって、有利には、座標を見て、それが第１の座標であるか、または第２の座標であるかを直ちに知ることができる。
【００６６】
結果として、それぞれの第１の座標および第２の座標の相対的な順序付けが知られているため、そのような特徴によって、圧縮シーケンス３において、前記第１のセットの中からの１つの第１の特定の座標、および、前記第２のセットの中からの１つの第２の特定の座標を省略することができる。第１の座標および第２の座標の相対的な順序付けが知られていることに起因して、そのような省略は復号中に容易に検出され得、前記省略された座標を前記対応する第１の特定の座標または第２の特定の座標に置き換えることによって補正され得る。
【００６７】
前記省略は、送信すべきバイト量が低減されるという観点から、本圧縮方法／符号化ステップから期待され得る利点の基礎である。
【００６８】
しかしながら、前記省略を適用する場合には例外がある。２つのそのような特定の座標が直に続く場合、復号中に少なくとも１つの文字を失う危険性があるため、両方とも省略することはできない。そのような場合、２つの続く座標のうちの第２の特定の座標は省略されず、代わりに、圧縮シーケンス３内に保持される。それが存在することによって、逆圧縮方法／復号ステップがすべての元々存在していた文字を取り戻すことが可能になる。
【００６９】
前記相対符号化テーブル２０の使用を最大化するために、すなわち、所与の元のシーケンス２からほとんどのまたは最も長い第１のタイプのサブシーケンス７を抽出するために、前記相対符号化テーブル２０は、圧縮されることになるテキスト文字列において予測されるものとしての、最も頻度の高い文字をデータ投入されることが有利である。
【００７０】
所与のサイズＮの相対符号化テーブル２０について、前記符号化テーブル２０内の１つの場所はＥｏＣ１６に確保され得、すべての他のＮ−１個の場所が利用可能であり、絶対符号化テーブル１０によって定義されるような完全な文字セットからのＮ−１個の最も頻度の高い文字を受け入れるために選択され得る。
【００７１】
文字の相対頻度は、圧縮されると予測されるテキスト文字列から統計的に推定される。したがって、前記文字列に使用されている所与の言語について、頻度分析が適用され得る。
【００７２】
図４の例示的な相対符号化テーブル２０は、８×８正方行列である。したがって、これは６４個の場所を含む。１つの場所はＥｏＣ１６に確保される。６３個の残りの場所が、英語の６３個の最も頻度の高い文字を、左から右へ、かつ上から下へとデータ投入される。
【００７３】
前記相対符号化テーブル２０の使用を最大化するために、すなわち、所与の元のシーケンス２からほとんどの最も長い第１のタイプのサブシーケンス７を抽出するために、絶対符号化テーブル１０によって示されるものとしての完全な文字セットからの可能な限り多くの文字を含む大きい相対符号化テーブル２０を有することが有利である。
【００７４】
一実施形態によれば、前記相対符号化テーブル２０は、絶対符号化テーブル１０によって示されるものとしての完全な文字セットからのすべての文字を含んでもよい。絶対ＡＳＣＩＩ符号化テーブル１０の場合、これによって２５６文字がもたらされ、したがって、たとえば、１６×１６行列の相対符号化テーブル２０がもたらされる。この広範囲の符号化から得られる利点は、いかなる元のシーケンス２も第１のタイプのサブシーケンス７であり、符号化され得るという事実に起因して、変位、および座標を符号化するのに必要とされるサイズによって低減される。そのような１６×１６相対符号化テーブルについて、各座標は１６個のシンボルの中から選択され、したがって、符号化のオーバーヘッドが増大することになる。
【００７５】
したがって、前記相対符号化テーブル２０のサイズを低減し、したがって関連付けられる変位座標のサイズを低減し、最も頻繁に使用される文字から構成される第１のタイプのサブシーケンス７に符号化の的を絞ることが好ましい場合がある。
【００７６】
好ましい実施形態によれば、前記相対符号化テーブルは８ｘ８正方行列である。これによって、８個のシンボルを使用することによって、それぞれ第１の座標、第２の座標を符号化することが可能になる。
【００７７】
特定の有利な実施形態において、第１の座標は、列の循環的カウントに従って［０．．７］の第１の範囲内で選択される。そのため、「０」の座標は先行する文字２２と、同じ列上の後続する文字との間の変位２１を示し、「１」の座標は、先行する文字２２と直後の列上の後続する文字との間の変位２１を示す、などである。前記列カウントは、たとえば、左から右へと行われる。
【００７８】
前記実施形態において、第２の座標は、８を加えられた行の循環的カウントに従って［８．．Ｆ］の第２の範囲内で選択される。前記のように８を加えることによって、各座標の意味を保持しながら、第１の座標と第２の座標との間でいかなる座標も共通出ないようにすることが可能である。そのため、「８」（０を意味する）の座標は先行する文字２２と、同じ列上の後続する文字との間の変位２１を示し、「９」（１を意味する）の座標は、先行する文字２２と直後の行上の後続する文字との間の変位２１を示し、「Ａ」（２を意味する）の座標は、２つの行の先行する文字２２と後続する文字との間の変位２１を示す、などである。前記行カウントは、たとえば、上から下へと行われる。
【００７９】
前記相対符号化テーブル２０のサイズが小さいこと、および座標の値の選択に起因して、任意の座標は半バイトで表現されてもよく、第１の座標および第２の座標を含む移動数１５は１バイトで表現されてもよい。
【００８０】
加えて、使用されるシンボルが異なるため、座標は、それが第１の座標であるか、または第２の座標であるかを明示的に示す。「Ｄ」座標は５のカウントを示し、また、この座標が行／第２の座標に関係することも示す。「３」座標は３のカウントを示し、また、この座標が列／第１の座標に関係することも示す。
【００８１】
これによって、第１の座標｛０，１，２，３，４，５，６，７｝の中から１つの第１の特定の座標を省略し、第２の座標のセット｛８，９，Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ｝の中から１つの第２の特定の座標を省略することが可能になる。
【００８２】
圧縮の利点の基礎である前記省略は、正規分布を仮定する場合、少なくとも、座標の総数の中から１つの座標について、すなわち、ここでは１／８について期待され得る。前記相対符号化テーブル２０内の文字の配置の可能な最適化は、さらには、前記省略された第１の特定の座標および前記第２の特定の座標の座標を使用して統計的により多くの変位を有することによって、圧縮の利点を増大することができる。
【００８３】
それぞれ前記省略された第１の特定の座標、第２の特定の座標は、圧縮方法／符号化ステップと逆圧縮方法／復号ステップとの間で一致される限り、任意に選択されてもよい。中でも１つの可能な選択は、分離が無い（ゼロの）列に対応する第１の座標を省略すること、および、分離が無い（ゼロの）行に対応する第２の座標を省略することである。
【００８４】
結果として、一実施形態において、第１の特定の座標は「０」であり、第２の特定の座標は「８」である。これは、元のシーケンス２内で連続して続く文字が、前記相対符号化テーブル２０の同じ列または同じ行のいずれかに位置するときに圧縮の利点を期待され得ることを意味する。たとえば、所与の言語について、文字列内で統計的に頻度の高い後続する文字を、前記相対符号化テーブル２０の同じ列または行に配置することによって、相対符号化テーブル２０を最適化され得る。
【００８５】
例に戻って、第１のタイプのサブシーケンス７「  Ｏｒａｎｇｅ  ｖｏｉｃｅｍａｉｌ：  ｏｎ  」における変位の符号化は、図２を参照すると、図４の相対符号化テーブル２０を使用して以下の方法で実現される。
【００８６】
第１の文字「  」（「スペース」）１４は、その絶対表現数「２０」によって絶対的に表される。前記第１の文字１４はまた、前記相対符号化テーブル２０における、第１の行、第１の列上の第１の位置も定義する。
【００８７】
その直後の文字は「Ｏ」である。このとき、第１の変位は「スペース」から「Ｏ」までである。「Ｏ」は前記相対符号化テーブル２０において第１の行、第４の列に位置するため、このとき、変位は、４列の水平変位および０行の垂直変位によって符号化され得る。これによって、第１の座標または４および８（０＋８）の第２の座標がもたらされる。
【００８８】
後続する文字は「ｒ」である。このとき、第２の変位は「Ｏ」から「ｒ」までである。「ｒ」は前記相対符号化テーブル２０において第６の行、第５の列に位置するため、このとき、変位は、１列の水平変位および４行の垂直変位によって符号化され得る。これによって、第１の座標または１およびＣ（４＋８）の第２の座標がもたらされる。
【００８９】
後続する文字は「ａ」である。このとき、第３の変位は「ｒ」から「ａ」までである。「ａ」は前記相対符号化テーブル２０において第５の行、第３の列に位置するため、このとき、変位は、５列の水平変位および０行の垂直変位によって符号化され得る。これによって、第１の座標の５および第２の座標の８がもたらされる。
【００９０】
後続する文字は「ｎ」である。このとき、第４の変位は「ａ」から「ｎ」までである。「ｎ」は前記相対符号化テーブル２０において第５の行、第７の列に位置するため、このとき、変位は、４列の水平変位および０行の垂直変位によって符号化され得る。これによって、第１の座標の４および第２の座標の８がもたらされる。
【００９１】
後続する文字は「ｇ」である。このとき、第５の変位は「ｎ」から「ｇ」までである。「ｇ」は前記相対符号化テーブル２０において第６の行、第６の列に位置するため、このとき、変位は、７の水平変位および１の垂直変位によって符号化され得る。これによって、第１の座標の７および第２の座標の９（１＋８）がもたらされる。
【００９２】
後続する文字は「ｅ」である。このとき、第６の変位は「ｇ」から「ｅ」までである。「ｅ」は前記相対符号化テーブル２０において第５の行、第２の列に位置するため、このとき、変位は、４列の水平変位および７行の垂直変位によって符号化され得る。これによって、第１の座標の４および第２の座標のＦ（７＋８）がもたらされる。
【００９３】
後続する文字は「スペース」であり、７およびＣの座標がもたらされる。
【００９４】
後続する文字は「ｖ」であり、５およびＥの座標がもたらされる。
【００９５】
後続する文字は「ｏ」であり、７およびＥの座標がもたらされる。
【００９６】
後続する文字は「ｉ」であり、７および０の座標がもたらされる。
【００９７】
後続する文字は「ｃ」であり、４および９の座標がもたらされる。
【００９８】
後続する文字は「ｅ」であり、２およびＦの座標がもたらされる。
【００９９】
後続する文字は「ｍ」であり、０およびＡの座標がもたらされる。
【０１００】
後続する文字は「ａ」であり、１およびＥの座標がもたらされる。
【０１０１】
後続する文字は「ｉ」であり、１および８の座標がもたらされる。
【０１０２】
後続する文字は「ｌ」であり、６および９の座標がもたらされる。
【０１０３】
後続する文字は「：」であり、７および８の座標がもたらされる。
【０１０４】
後続する文字は「スペース」であり、０およびＢの座標がもたらされる。
【０１０５】
後続する文字は「ｏ」であり、４およびＣの座標がもたらされる。
【０１０６】
後続する文字は「ｎ」であり、２および８の座標がもたらされる。
【０１０７】
後続する文字は「スペース」であり、２およびＣの座標がもたらされる。
【０１０８】
前記「スペース」が、サブシーケンス７の最後の文字である。したがって、最後の変位は、ここでは第１の列、第５の行に位置するＥｏＣ１６に向けて符号化される。このとき、最後の変位は最後の文字「スペース」から「ＥｏＣ」までである。このとき、この変位は、０列の水平変位および４行の垂直変位によって符号化され得る。これによって、第１の座標の０および第２の座標のＣがもたらされる。
【０１０９】
すべての座標を、第１の座標の次に第２の座標をおく可能な相対的な順序に従い、元のサブシーケンス７における文字の順序に従って順番に連結することによって、以下のようになる：
【０１１０】
【数１】
0005913748.tif 000002
【０１１１】
０は第１の特定の座標として選択されており、８は第２の特定の座標として選択されているため、それらの両方が連続している場合を除き、それらは符号化サブシーケンスから省略され得る。ボックスによって示されている、８の直後に０を見つけることができる場合が１回発生している。この場合、後続する０が保持される。これによって、以下のようになる：
【０１１２】
【数２】
0005913748.tif 000003
【０１１３】
これは以下のように単純化される：
【０１１４】
【数３】
0005913748.tif 000004
【０１１５】
前記単純化が、圧縮の利点の主な要因である。前記数字シーケンスはその後、図２に見られるように、対応する符号化サブシーケンス１１に順番にコピーされる。
【０１１６】
特定の座標、ここでは０および８の省略によって、この例におけるように、残りの座標の数が偶数でない場合があることが留意され得る。各座標は半バイトを占有するため、これによって、最後のバイトが不完全になり得る。前記制約に適合するために、任意の不完全な最後のバイトが半バイトのフィラー１７によって完結され得る。ここではイタリック体にされている前記フィラー１７は、たとえば、図２に示されているようにゼロを充填され得る。
【０１１７】
文字列の内容に応じて、本圧縮方法／符号化ステップは、圧縮シーケンス３が元のシーケンス２よりも短いという点において有利であり得る。
【０１１８】
前述の説明から容易に導かれ得るように、第２のタイプのサブシーケンス８は、元のシーケンス２から圧縮シーケンス３へと同一にコピーされるため、何ら圧縮の利点をもたらさない。第１のタイプのサブシーケンス７について、圧縮の利点は、前記サブシーケンス７の内容に応じて決まる。圧縮の利点は明らかに、加わるオーバーヘッドと比較した、省略される特定の座標の数からもたらされる。２つという少ない省略が操作され得る場合、第１のタイプのサブシーケンス７は、より長い符号化サブシーケンス１１に符号化される場合さえある。
【０１１９】
一実施形態を参照すると、前記オーバーヘッドは第１の特定の制御文字１３（１バイト）およびＥｏＣ１６に向けての変位（最大１バイト）を含むため、最大２バイトを含み得る。特定の座標の各省略によって半バイトの利得がもたらされる。５以上の省略が所与の第１のタイプのサブシーケンス７に適用され得る場合、本圧縮方法は有益なものになる。チェックサム１８、１９を挿入することによって、さらに２バイトが加わる。そのため、第１のタイプのサブシーケンス７がそれぞれ４未満、８未満（チェックサムを使用する場合）の省略をもたらすと考えられる場合、その符号化は最適なものにならない場合がある。そのような文字列は有利には、第２のタイプのサブシーケンスとしてより良好に扱われる場合がある。
【０１２０】
したがって、一実施形態によれば、圧縮方法は、以下のステップを加えることによってこのように最適化され得る。パースするステップから得られる各第１のタイプのサブシーケンス７について、符号化ステップを通じて取得されることになる符号化サブシーケンス１１が、元のサブシーケンス７の長さ以上の長さを有する場合、前記第１のタイプのサブシーケンス７は第２のタイプのサブシーケンスとして扱われ、すなわち、符号化されない。
【０１２１】
図２の例に戻って、これは上述したサブシーケンス「  ａｔ  」の場合に当たり、これは第１のタイプのサブシーケンスとは考えられず、したがって、符号化ステップを通じて処理されない代わりに、含んでいる第２のタイプのサブシーケンス８の一部として保持される。
【０１２２】
圧縮方法および符号化ステップは広く説明されている。本開示はまた、対応する逆圧縮方法にも関する。
【０１２３】
前記逆圧縮方法は、順序付けされた数字シーケンスである圧縮シーケンス３を受け取り、前記元のシーケンス２と同一の最終的な順序付けされたシーケンスの形態の最終的なテキスト文字列を提供し戻すために、これを逆圧縮する役割を担う。
【０１２４】
前記逆圧縮方法は、圧縮方法によって使用されるものと同じ矩形行列の相対符号化テーブル２０を使用する。前記逆圧縮方法は、以下のステップを含む。
【０１２５】
最初に、逆圧縮方法は、前記圧縮シーケンス３を、第１のタイプのサブシーケンス７を符号化することに由来する第１のタイプの符号化サブシーケンス１１と、第２のタイプのサブシーケンス８をコピーすることに由来する第２のタイプのサブシーケンス１２とにパースすることを含む。これは、存在する場合、前記圧縮シーケンス３から、すべての存在する符号化サブシーケンス１１を抽出することによって行われ得る。
【０１２６】
前記抽出後の前記圧縮シーケンス３内の残りの数は保持される。それらの数は連続している場合、集められて、第２のタイプのサブシーケンス１２になり得る。そのような各第２のタイプのサブシーケンス１２は、元の第２のタイプのサブシーケンス８と同一の最終的な第２のタイプのサブシーケンスにそのままコピーされる。
【０１２７】
そのように抽出された各第１のタイプの符号化サブシーケンス１１は、前記相対符号化テーブル２０を使用して、復号ステップを通じて処理されて、前記元の第１のタイプのサブシーケンス７と同一の最終的な第１のタイプの復号サブシーケンスになり得る。
【０１２８】
抽出プロセスは、いくつかのステップを含み得る。符号化方式に起因して、第１のタイプの符号化サブシーケンス１１は、抽出する目的で、第１の特定の制御文字１３であるその最初の数によって検出され得る。圧縮シーケンス３内に見られる任意のそのような第１の特定の制御文字１３は、前記第１の特定の制御文字１３の後に始まる、１つの第１のタイプの符号化サブシーケンス１１の存在を示す。前記第１の特定の制御文字１３は、見つかると廃棄され、最終的な逆圧縮シーケンスにはコピーされない。
【０１２９】
その後、変位による相対符号化に起因して、前記第１の特定の制御文字１３から始まる第１のタイプの符号化サブシーケンス１１は、その終わりを見つけ、したがってその抽出を終了させることを可能にするために復号される。
【０１３０】
前記第１の特定の制御文字１３の直後の最初の数１４は、前記絶対符号化テーブル１０に従って、キーコード１４とも名付けられる最初の文字１４、すなわち、前記最終的な第１のタイプの復号サブシーケンスの最初の文字を表す絶対数５を表す。したがって、前記最初の文字１４は、前記最終的な第１のタイプの復号サブシーケンスの最初の復号文字として最終的な逆圧縮シーケンスにコピーされる。
【０１３１】
残りの後続する数は、相対変位を符号化する移動数１５と考えられる。それらは、前記相対符号化テーブル２０を使用して復号され得る。
【０１３２】
第１のタイプの符号化サブシーケンス１１の終わりは一般的に事前に知ることができないため、圧縮シーケンス３全体は、その終わりまで、または、前記圧縮シーケンス３内で別の第１の特定の制御文字１３が見つかるまで、復号ステップを通じて処理または前処理され得る。
【０１３３】
前記復号ステップは、変位が前記相対符号化テーブル２０内の第２の特定の制御文字ＥｏＣ１６を指すと終了し得る。これは、符号化の終わりを示し、したがって、この事象から抽出され得る前記第１のタイプの符号化サブシーケンス１１の終わりを示し、これによって、その始まりおよび終わりが分かる。
【０１３４】
復号ステップは、符号化ステップ中に適用されるものに対応する逆の処理によって進行する。前記キーコード１４に後続する数は、連続する変位を符号化する移動数１５と考えられ、相対符号化テーブル２０内の各変位が、最終的な復号サブシーケンスの文字４を定義する。
【０１３５】
各移動数１５は、第１の座標および第２の座標を含む。復号ステップは、そのような各移動数１５に対して、以下のステップを反復する。
【０１３６】
復号ステップは、現在の文字、前記相対符号化テーブル２０内の前記現在の文字の位置である現在の位置、ならびに、第１の座標および第２の座標を含む現在の移動数１５を定義する。最初に、前記キーコード１４または最初の文字１４に等しい第１の現在の文字がとられ、前記相対符号化テーブル２０内の前記キーコード文字１４の位置に等しい第１の現在の位置がとられ、第１の移動数１５は、前記最初の文字１４に後続する第１の数である、符号化サブシーケンス１１から見つかる／抽出される第１の移動数である。
【０１３７】
復号ステップはその後、新たな復号文字を示す新たな位置を見つけるために、前記相対符号化テーブル２０内の現在の位置から、第１の座標と第２の座標との現在の対として符号化されているものとしての変位を適用し、ここで、第１の座標は第１の所定の方向に沿った列の循環的カウントを示し、第２の座標は第２の所定の方向に沿った行の循環的カウントを示す。前記新たな復号文字は、最後の復号文字の後に最終的な逆圧縮シーケンスにコピーされる。
【０１３８】
ここで、符号化ステップにおいては、ある文字に向けての変位２１は２つの座標を定義し、一方で、復号ステップにおいては、２つの座標がある文字に行き着く変位２１を定義するという点を除いて、変位は対応する符号化ステップと同じように適用されることが留意され得る。第１の所定の方向および第２の所定の方向は、符号化ステップと同じである。
【０１３９】
そのように見つけられた復号文字はその後、第１のタイプの最終的な復号サブシーケンス内の最後の復号文字の後に付加される。
【０１４０】
前記新たな復号が前記相対符号化テーブル２０内のＥｏＣ１６文字／位置である場合、復号ステップは終了する。前記最後の変位／ＥｏＣ文字は、第１のタイプの最終的な復号サブシーケンス／最終的な逆圧縮シーケンスには見られるという点において、廃棄される。
【０１４１】
前記新たに復号される文字がＥｏＣ１６でないとき、現在の文字は前記新たに復号される文字に更新され、現在の位置は、前記新たに復号される文字の対応する新たな位置に更新され、現在の移動数１５は、次の移動数１５、および、前記符号化サブシーケンス１１内で見つかる第１の座標と第２の座標との次の対に更新される。その後、前記新たな現在の文字、現在の位置および現在の座標を用いてプロセスが反復される。
【０１４２】
そのようなプロセスは、その後、前記符号化サブシーケンス１１内に符号化されているすべての文字を反復して取り戻すことを可能にする。
【０１４３】
符号化方式によれば、第１の座標が第１の数字セット内で選択され、前記第２の座標が第２の数字セット内で選択されており、前記２つのセットの間に共通する数が一切ない場合で、かつ、特定の第１の座標および／または特定の第２の座標が省略されている場合、キーコード１６の後の第１のタイプの符号化サブシーケンス１１内に見つかる数字シーケンスを移動数１５のシーケンスに変換するための前処理ステップが実施され得る。前記前処理の目的は、前記省略されている特定の第１の座標および／または第２の座標を再導入し戻すことである。
【０１４４】
前記前処理ステップは、以下のステップに分解され得る。最初に、前記キーコード１６に後続する前記符号化サブシーケンス１１の数字のシーケンスが座標に分離される。第１の座標と第２の座標とは同じ数字セット内で選択されていないため、座標を表す数は、それが第１の座標であるか、または第２の座標であるかを直ちに示す。
【０１４５】
特定の座標は、２つの特定の座標が続いていた場合を除いて、通常は符号化ステップ中に省略されている。そのため、前記符号化サブシーケンス１１内に見つかる任意の特定の座標は、そのような対の構成を示す。省略のない完全な符号化サブシーケンス７を復元し戻すために、第１の特定の座標が符号化サブシーケンス１１内に見つかるときはいつでも、第２の特定の座標が前記第１の特定の座標の前に挿入される。同様に、第２の特定の座標が符号化サブシーケンス１１内に見つかるときはいつでも、第１の特定の座標が前記第２の特定の座標の前に挿入される。
【０１４６】
複数の続いている特定の座標を復元するこれらの２つのステップは、２つの次のステップの前に適用されることが有利である。
【０１４７】
第１の座標および／または第２の座標は、符号化ステップ中に省略が適用される前に所与の順序に従って配置されているため、その省略に起因して任意の座標がどこで失われているかを判定することが可能である。
【０１４８】
たとえば、符号化するときに第１の座標および第２の座標が交互になっている一般的な順序に従っている場合、前記符号化サブシーケンス１１内で２つの第１の座標が連続して続いているとき、これは、これら２つの間で第２の座標が失われていることを示す。前記失われている第２の座標はこのとき、間に再挿入され得る特定の第２の座標であると判定され得る。
【０１４９】
そのため、それらの数によって示されるものとして、２つの連続した第２の座標が見つかるときはいつでも、第１の特定の座標がそれらの間に挿入される。同様に、それらの数によって示されるものとして、２つの連続した第１の座標が見つかるときはいつでも、第２の特定の座標がそれらの間に挿入される。
【０１５０】
いずれにせよ、相対符号化テーブル２０、第１の座標および第２の座標に対する数字セットの選択、第１のカウント方向および第２のカウント方向、第１の特定の座標および第２の特定の座標は、圧縮方法／符号化ステップと逆圧縮方法／復号ステップとの間で共有される。
【０１５１】
この実施形態によれば、相対符号化テーブル２０は、符号化ステップによって使用されるものと同じ８×８正方行列であり、前記第１の座標は、左から右への列の循環的カウントに従って［０．．７］の第１の範囲内で選択され、前記第２の座標は、上から下への、８を加えた行の循環的カウントに従って［８．．Ｆ］の第２の範囲内で選択され、第１の特定の座標は０であり、第２の特定の座標は８である。
【０１５２】
図２の例示的な圧縮シーケンスに戻って、逆圧縮を例示する。圧縮シーケンス３の最初の５つの数｛２２，３８，３８，３８，２２｝は、「１２」（ＤＣ２）が存在しないため、第１の制御文字１３を含まない。したがって、これは絶対符号化テーブル１０に従ってＡＳＣＩＩにおいてすでに符号化されている第２のタイプのサブシーケンス１２である。
【０１５３】
第６の数は「１２」（ＤＣ２）であり、したがって、第１のタイプの符号化サブシーケンス１１の始まりを示す。次の数は「２０」である。これはキーコード１４であるため、絶対符号化テーブル１０を使用して、「  」（または「スペース」）文字として絶対的に解釈される。
【０１５４】
連続した変位を符号化している数を含む後続のシーケンスは、｛４１，Ｃ５，４７，９４，Ｆ７，Ｃ５，Ｅ７，Ｅ７，４９，２Ｆ，Ａ１，Ｅ１，６９，７０，Ｂ４，Ｃ２，２Ｃ，Ｃ０，３１，３２，２Ｆ，３０，．．．｝である。
【０１５５】
最初に、復号ステップはそれらをここでは半バイトの座標に分離して、｛４，１，Ｃ，５，４，７，９，４，Ｆ，７，Ｃ，５，Ｅ，７，Ｅ，７，４，９，２，Ｆ，Ａ，１，Ｅ，１，６，９，７，０，Ｂ，４，Ｃ，２，２，Ｃ，Ｃ，０，３，１，３，２，２，Ｆ，３，０，．．．｝をもたらす。
【０１５６】
その後、復号ステップは、特定の第１の座標、すなわち「０」、または特定の第２の座標、すなわち「８」を探索する。３つの「０」が存在し、それらの各々の前に「８」が挿入される。「８」は存在しない。これによって、｛４，１，Ｃ，５，４，７，９，４，Ｆ，７，Ｃ，５，Ｅ，７，Ｅ，７，４，９，２，Ｆ，Ａ，１，Ｅ，１，６，９，７，８，０，Ｂ，４，Ｃ，２，２，Ｃ，Ｃ，８，０，３，１，３，２，２，Ｆ，３，８，０，．．．｝がもたらされる。
【０１５７】
その後、復号ステップは、任意の連続する座標が同じタイプのものであるか否かを調べる。たとえば、２つの第１の座標がこれに当たる。「４」は第１の座標であり、「１」も第１の座標である。これは、特定の第２の座標「８」がそれらの間で失われていることを示す。同様に、４番目の座標「５」と６番目の座標「４」は両方とも第１の座標である。それらの間に「８」が挿入される。同様に、「Ｆ」に後続する「Ａ」が見出され得る。それらは両方とも第２の座標であるため、それらの間に失われた「０」が挿入される。これらの発生したことをすべて考慮すると、これによって、｛４８，１Ｃ，５８，４８，７９，４Ｆ，７Ｃ，５Ｅ，７Ｅ，７８，４９，２Ｆ，０Ａ，１Ｅ，１８，６９，７８，０Ｂ，４Ｃ，２８，２Ｃ，０Ｃ，０８，０８，３８，１８，３８，２８，２Ｆ，３８，０，．．．｝がもたらされ、これは、第１の座標と第２の座標が規則正しく交互になっていることを表す。その後、各バイト／数が、第１の座標および第２の座標を含む各移動数１５として解釈され得る。
【０１５８】
キーコード１４は「スペース」文字であるため、前記相対符号化テーブル２０における第１の位置は、第１の行、第１の列上である。この位置から、「４８」である第１の移動数１５によって定義される変位が適用される。前記変位は、左から右へ４列、および、上から下へ８または０行によって定義され、したがって、文字「Ｏ」を示す。
【０１５９】
前記第２の文字「Ｏ」の第２の位置から開始して、第２の移動数１５は、左から右へ１列、および、上から下へＣまたは４行の変位を定義する「１Ｃ」であり、したがって、文字「ｒ」を示す。
【０１６０】
同じプロセスが反復して適用され、順番に他の文字「ａｎｇｅ  ｖｏｉｃｅｍａｉｌ：  ｏｎ  」をもたらす。最後の「スペース」文字に、「０Ｃ」に等しい移動数１５が後続する。同じ（０）列およびＣまたは４行の前記変位はＥｏＣ１６の位置を指し、したがって、第１のタイプのサブシーケンスの終わりを示し、前記「スペース」文字が最後の文字であったことを示す。
【０１６１】
前記「０Ｃ」数に後続し、最初は連続する変位を符号化する数に対して誤っていた残りの数｛０８，０８，３８，１８，３８，２８，２Ｆ，３８，０，．．．｝から、第１の「０」はフィラー１７として識別され得、無視され得る。他の数、または、代わりに「０」および「８」を再導入する前の初めの形式のそれらの対応する数｛３１，３２，２Ｆ，３０，．．．｝は、今後、第２のタイプのサブシーケンス１２に関連するものと考えられ得る。それらは、新たな第１のタイプの符号化サブシーケンス１１ａの始まりを示し、したがってまた、前記第２のタイプのサブシーケンス１２の終わりも示す新たな第１の制御文字１３が見つかるまで、「１２／０．．．」として逆圧縮／コピーされ得る。
【０１６２】
図５は、圧縮方法３０の可能な実施形態を示す。前記圧縮方法３０は、パースするステップ３１によって開始する。次に符号化ステップ３３が行われて、コピーするステップ４０が後続する。圧縮方法３０は、任意選択的にチェックサムステップ４１を挿入することによって終了してもよい。
【０１６３】
任意選択のチェックするステップ３２は、パースするステップ３１と符号化ステップ３３との間に挿入されてもよい。
【０１６４】
符号化ステップ３３は、最初の文字を符号化するステップ３４と、各後続する文字を符号化するステップ３５と、符号化を終了するステップ３９とにさらに分割される。
【０１６５】
各後続する文字を符号化するステップ３５は、第１の座標を求めるステップ３６と、第２の座標を求めるステップ３７と、連結するステップ３８とにさらに分割される。
【０１６６】
本開示はまた、圧縮方法の上述した実施形態のいずれか１つに従って、テキスト文字列を圧縮して圧縮シーケンス３にするための手段を備える圧縮器デバイス５０にも関する。
【０１６７】
図６に示されているように、そのような圧縮器デバイス５０は、パース器５１と、任意選択の検査器５２と、符号化器５３と、コピー器６０と、任意選択の挿入器６１とを備える。前記符号化器５３は、第１の部分符号化器５４と、第２の部分符号化器５５と、第３の部分符号化器５９とをさらに備える。前記第２の部分符号化器５５は、第１の決定器５６と、第２の決定器５７と、連結器５８とをさらに備える。
【０１６８】
図７は、逆圧縮方法７０の可能な実施形態を示す。前記逆圧縮方法７０は、抽出するステップ７１によって開始する。次に復号ステップ７２が行われて、保持するステップ８３が後続する。圧縮方法７０は、コピーするステップ８４によって終了してもよい。
【０１６９】
抽出するステップ７１および復号ステップ７２は、最初の文字をコピーするステップ７３と、前処理ステップ７４と、後続する数を復号するステップ８０とにさらに分割されてもよい。
【０１７０】
前処理ステップ７４は、分離するステップ７５と、第１の挿入ステップ７６と、第２の挿入ステップ７７と、第３の挿入ステップ７８と、第４の挿入ステップ７９とにさらに分割される。
【０１７１】
復号ステップ８０は、開始するステップ８１と、反復するステップ８２とにさらに分割される。
【０１７２】
本開示はまた、逆圧縮方法の上述した実施形態のいずれか１つに従って、圧縮シーケンス（３）を文字列に逆圧縮するための手段を備える逆圧縮器デバイス（９０）にも関する。
【０１７３】
図８に示されているように、そのような逆圧縮器デバイス９０は、抽出器／復号器９１と、保持器１０３と、コピー器１０４とを備える。前記抽出器／復号器９１は、部分コピー器９３と、前処理器９４と、部分復号器１００とをさらに備える。前記部分復号器１００は、開始器１０１と、反復器１０２とをさらに備える。前記前処理器９４は、分離器９５と、第１の挿入器９６と、第２の挿入器９７と、第３の挿入器９８と、第４の挿入器９９とをさらに備える。
【０１７４】
前述された圧縮および逆圧縮方法は、圧縮比／利点の低減をもたらす３つの実施形態に従って使用され得る。
【０１７５】
Ｘと名付けられる第１の実施形態によれば、第１のタイプのサブシーケンス７が相対符号化テーブル２０を使用して符号化され、チェックサムは加えられない。前記実施形態は最高の圧縮比をもたらすが、あまりセキュアではない。
【０１７６】
Ｙと名付けられる第２の実施形態によれば、第１のタイプのサブシーケンス７が相対符号化テーブル２０を使用して符号化され、チェックサム１８が加えられる。前記実施形態がもたらす圧縮比はより低いが、前記チェックサム１８が誤りを検出することを可能にすることができるため、よりセキュアである。
【０１７７】
Ｚと名付けられる第３の実施形態によれば、第１のタイプのサブシーケンス７は符号化されない。他の様態で書かれ、第１のタイプのサブシーケンスは元のシーケンス２から抽出されず、または、任意の元のシーケンス２が単一の第２のタイプのサブシーケンスと考えられる。前記実施形態がもたらす圧縮比は最低であるが、最もセキュアである。
【０１７８】
圧縮方法／デバイスと逆圧縮方法／デバイスの両方を包含する大域的な戦略によれば、前記３つの実施形態が組み合わされることが有利であり得る。
【０１７９】
Ｘ、ＹおよびＺの中からの実施形態は、たとえば、送信される圧縮シーケンス３に加えられる符号によって、圧縮方法と逆圧縮方法との間で一致がとられる。圧縮器および逆圧縮器は、それらのうちのいずれか１つが検出した誤りに従って、３つのモードＸ、ＹまたはＺのうちの１つを連帯して選択する。
【０１８０】
たとえば、閾値と比較される前記誤りの数に応じて、大域的な戦略は現在の実施形態を変更することを選択してもよい。存在する誤りが多すぎる場合、大域的な戦略は、圧縮比がより低くなることを犠牲にしてセキュリティの増大をもたらす新たな実施形態を選択することによって、誤りの数を低減するよう試行することができる。代わりに、存在する誤りが少なすぎる場合、大域的な戦略は、圧縮比の増大をもたらす新たな実施形態を選択することによって、圧縮比を増大するよう試行することができる。
【図１】
0005913748.tif 000005
【図２】
0005913748.tif 000006
【図３】
0005913748.tif 000007
【図４】
0005913748.tif 000008
【図５】
0005913748.tif 000009
【図６】
0005913748.tif 000010
【図７】
0005913748.tif 000011
【図８】
0005913748.tif 000012