(57)【特許請求の範囲】
【請求項１】
コンピュータに、
記憶装置に格納された、ASCII（American  Standard  Code  for  Information  Interchange）に対応する第１コード割当表の１バイト領域に割り当てられた文字の一部を、２バイト領域に割り当て、かつ、前記２バイト領域に割り当てられた前記文字の少なくとも一部に対して、２バイト以上のコードを割り当て、前記１バイト領域に、出現頻度の高い上位の単語を割り当てることで、入力された文字データをコード化する変換規則を定義した第２コード割当表を参照し、
前記第２コード割当表を基にして、入力された文字データをコード化する
処理を実行させることを特徴とする符号化プログラム。
【請求項２】
前記第２コード割当表は、前記第２コード割当表の１バイト領域に、前記第１コード割当表の１バイト領域の英数字が設定されたコード割当表、または、前記第２コード割当表の２バイト領域に、前記第１コード割当表の１バイト領域の英数字が設定されたコード割当表であることを特徴とする請求項１に記載の符号化プログラム。
【請求項３】
前記記憶装置は、前記第１コード割当表を更に記憶し、前記コード化する処理は、入力された文字データに含まれる制御記号に基づいて、前記第１コード割当表または前記第２コード割当表を選択し、選択した前記第１コード割当表または前記第２コード割当表を基にして、入力された前記文字データをコード化することを特徴とする請求項１に記載の符号化プログラム。
【請求項４】
コンピュータが実行する符号化方法であって、
記憶装置に格納された、ASCII（American  Standard  Code  for  Information  Interchange）に対応する第１コード割当表の１バイト領域に割り当てられた文字の一部を、２バイト領域に割り当て、かつ、前記２バイト領域に割り当てられた前記文字の少なくとも一部に対して、２バイト以上のコードを割り当て、前記１バイト領域に、出現頻度の高い上位の単語を割り当てることで、入力された文字データをコード化する変換規則を定義した第２コード割当表を参照し、
前記第２コード割当表を基にして、入力された文字データをコード化する
処理を実行することを特徴とする符号化方法。
【請求項５】
ASCII（American  Standard  Code  for  Information  Interchange）に対応する第１コード割当表の１バイト領域に割り当てられた文字の一部を、２バイト領域に割り当て、かつ、前記２バイト領域に割り当てられた前記文字の少なくとも一部に対して、２バイト以上のコードを割り当て、前記１バイト領域に、出現頻度の高い上位の単語を割り当てることで、入力された文字データをコード化する変換規則を定義した第２コード割当表を記憶する記憶部と、
前記第２コード割当表を基にして、入力された文字データをコード化するコード変換部と
を有することを特徴とする符号化装置。
【請求項６】
コンピュータに、
記憶装置に格納された、ASCII（American  Standard  Code  for  Information  Interchange）に対応する第１コード割当表の１バイト領域に割り当てられた文字の一部を、２バイト領域に割り当て、かつ、前記２バイト領域に割り当てられた前記文字の少なくとも一部に対して、２バイト以上のコードを割り当て、前記１バイト領域に、出現頻度の高い上位の単語を割り当てることで、入力された文字データをコード化する変換規則を定義した第２コード割当表を参照し、
前記第２コード割当表を基にして、コード化されたデータを文字データに復号化する
処理を実行させることを特徴とする復号化プログラム。
【請求項７】
コンピュータが実行する復号化方法であって、
記憶装置に格納された、ASCII（American  Standard  Code  for  Information  Interchange）に対応する第１コード割当表の１バイト領域に割り当てられた文字の一部を、２バイト領域に割り当て、かつ、前記２バイト領域に割り当てられた前記文字の少なくとも一部に対して、２バイト以上のコードを割り当て、前記１バイト領域に、出現頻度の高い上位の単語を割り当てることで、入力された文字データをコード化する変換規則を定義した第２コード割当表を参照し、
前記第２コード割当表を基にして、コード化されたデータを文字データに復号化する
処理を実行させることを特徴とする復号化方法。
【請求項８】
ASCII（American  Standard  Code  for  Information  Interchange）に対応する第１コード割当表の１バイト領域に割り当てられた文字の一部を、２バイト領域に割り当て、かつ、前記２バイト領域に割り当てられた前記文字の少なくとも一部に対して、２バイト以上のコードを割り当て、前記１バイト領域に、出現頻度の高い上位の単語を割り当てることで、入力された文字データをコード化する変換規則を定義した第２コード割当表を記憶する記憶部と、
前記第２コード割当表を基にして、コード化されたデータを文字データに復号化するコード変換部と
を有することを特徴とする復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化プログラムおよび復号化プログラム等に関する。
【背景技術】
【０００２】
従来のテキストデータは、ASCIIコードおよびユニコード（Unicode）のコード割当表に基づいて所定のコードに置き換えられる。図２４は、従来のASCIIコードおよびユニコードに基づくコード割当表を説明するための図である。図２４に示すように、コード割当表の００ｈ〜１Ｆｈには、所定の制御記号が設定され、各制御記号には、１バイトのコードが割り当てられる。コード割当表の２０ｈ〜７Ｆｈには、英数字が設定され、各英数字には、１バイトのコードが割り当てられる。コード割当表の８０ｈ〜ＦＦｈには、ＣＪＫ文字が設定され、各ＣＪＫ文字には、３バイトのコードが割り当てられる。
【０００３】
ここで、従来技術１には、コード割当表の制御記号を割り当てる００ｈ〜１Ｆｈに空き領域が存在する場合に、係る空き領域に単語等を登録し、かかるコード割当表を用いてコード化を実行する技術がある。また、従来技術２には、コード割当表の英大文字の領域において、英大文字の代わりに他の文字を設定し、かかるコード割当表を用いて、コード化を実行する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−２８７７１６号公報
【特許文献２】特開平１１−１４３８７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、出現頻度が高い単語や一般記号に対して、短いバイトコードを割り当てることができないという問題がある。
【０００６】
例えば、テキストデータを送受信する者同士が、使用しない制御記号や英大文字とそのコード割当表を共有する場合に限り、従来技術１、２のように、制御記号の空き領域等に単語を割り当てることで、出現頻度が高い文字や単語に短いバイトコードに割り当てることができる。
【０００７】
一方、一般のテキストデータを構成する単語や一般記号の出現頻度に応じて可変長符号を割り当てると、約４０種の符号長が５〜８ビット、約８千種の符号長が９〜１６ビットである。そこで、単語や一般記号に対し、その出現頻度に応じて、３２種以上に１バイトコード、８１９２種以上に２バイトコードを割り当てることで、高い圧縮率を達成する圧縮処理を行うことができる。しかし、かかる従来技術１，２では、多量な単語や一般記号にコード割当てすることができない。
【０００８】
１つの側面では、本発明は、出現頻度が高い単語や一般記号に対して、短いバイトコードを割り当てることができる符号化プログラム、符号化方法および符号化装置を提供することを目的とする。また、符号化プログラム、符号化方法および符号化装置により符号化されたデータを復号化することができる復号化プログラム、復号化方法および復号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の案では、コンピュータに下記の処理を実行させる。コンピュータは、第２コード割当表を参照し、第２コードを基にして、入力された文字データをコード化する。第２コード割当表は、第１コード割当表の１バイト領域に割り当てられた文字の一部を、２バイト領域に割り当てたものである。また、第２コード割当表は、２バイト領域に割り当てられた文字の少なくとも一部に対して、２バイト以上のコードを割り当てたものである。
【発明の効果】
【００１０】
出現頻度が高い文字や単語に対して、短いバイトコードを割り当てることができる。
【図面の簡単な説明】
【００１１】
【図１ａ】図１ａは、本実施例１に係る符号化装置の処理の一例を示す図である。
【図１ｂ】図１ｂは、本実施例１に係る復号化装置の処理の一例を示す図である。
【図２ａ】図２ａは、本実施例１に係る符号化装置の構成を示す機能ブロック図である。
【図２ｂ】図２ｂは、本実施例１に係る復号化装置の構成を示す機能ブロック図である。
【図３】図３は、本実施例１に係るコード割当表の一例を示す図である。
【図４】図４は、本実施例１に係る２バイトコード割当表の一例を示す図である。
【図５】図５は、本実施例１に係る３バイトコード割当表の一例を示す図である。
【図６ａ】図６ａは、本実施例１に係る符号化装置の処理手順を示すフローチャートである。
【図６ｂ】図６ｂは、本実施例１に係る復号化装置の処理手順を示すフローチャートである。
【図７ａ】図７ａは、本実施例２に係る符号化装置の処理の一例を示す図である。
【図７ｂ】図７ｂは、本実施例２に係る復号化装置の処理の一例を示す図である。
【図８ａ】図８ａは、本実施例２に係る符号化装置の構成を示す機能ブロック図である。
【図８ｂ】図８ｂは、本実施例２に係る復号化装置の構成を示す機能ブロック図である。
【図９】図９は、本実施例２に係るコード割当表の一例を示す図である。
【図１０】図１０は、本実施例２に係る２バイトコード割当表の一例を示す図である。
【図１１】図１１は、本実施例２に係る３バイトコード割当表の一例を示す図である。
【図１２ａ】図１２ａは、本実施例２に係る符号化装置の処理手順を示すフローチャートである。
【図１２ｂ】図１２ｂは、本実施例２に係る復号化装置の処理手順を示すフローチャートである。
【図１３ａ】図１３ａは、本実施例３に係る符号化装置の処理の一例を示す図である。
【図１３ｂ】図１３ｂは、本実施例３に係る復号化装置の処理の一例を示す図である。
【図１４ａ】図１４ａは、本実施例３に係る符号化装置の構成を示す機能ブロック図である。
【図１４ｂ】図１４ｂは、本実施例３に係る復号化装置の構成を示す機能ブロック図である。
【図１５】図１５は、本実施例３に係るコード割当表の一例を示す図である。
【図１６】図１６は、本実施例３に係る英単語２バイトコード割当表の一例を示す図である。
【図１７】図１７は、本実施例３に係る日本単語２バイト割当表の一例を示す図である。
【図１８】図１８は、本実施例３に係る２・３バイト割当表の一例を示す図である。
【図１９ａ】図１９ａは、本実施例３に係る符号化装置の処理手順を示すフローチャートである。
【図１９ｂ】図１９ｂは、本実施例３に係る復号化装置の処理手順を示すフローチャートである。
【図２０ａ】図２０ａは、第１コード変換処理の処理手順を示すフローチャートである。
【図２０ｂ】図２０ｂは、第２コード変換処理の処理手順を示すフローチャートである。
【図２１】図２１は、コンピュータのハードウェア構成例を示す図である。
【図２２】図２２は、コンピュータで動作するプログラムの構成例を示す図である。
【図２３】図２３は、実施形態のシステムにおける装置の構成例を示す図である。
【図２４】図２４は、従来のASCIIコードおよびユニコードに基づくコード割当表を説明するための図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１３】
図１ａは、本実施例１に係る符号化装置の処理の一例を示す図である。本実施例１に係る符号化装置は、従来技術で用いていたコード割当表５０の代わりに、コード割当表１１０を用いて、テキストデータ１０ａをコード変換することで、コード変換されたテキストデータ１０ｂを生成する。
【００１４】
従来技術のコード割当表５０の００ｈ〜１Ｆｈには、制御記号が設定され、各制御記号には、１バイトのコードが割り当てられる。「ｈ」は１６進数を示す記号である。コード割当表５０の２０ｈ〜７Ｆｈには、英数字が設定され、各英数字には、１バイトのコードが割り当てられる。コード割当表５０の８０ｈ〜ＦＦｈには、ＣＪＫ文字が設定され、各ＣＪＫ文字には、３バイトのコードが割り当てられる。
【００１５】
これに対して、本実施例１に係るコード割当表１１０の００ｈ〜２Ｆｈには、後述する所定の単語が設定され、１バイトのコードが割り当てられる。コード割当表１１０の００ｈ〜２Ｆｈは、コード割当表５０において、制御記号が割り当てられていた領域を含む。
【００１６】
コード割当表１１０の３０ｈ〜５Ｆｈには、高頻度の単語等が設定される。また、コード割当表１１０の３０ｈ〜５Ｆｈには、コード割当表５０の００ｈ〜１Ｆｈに設定されていた制御記号や、コード割当表５０の２０ｈ〜７Ｆｈに設定されていた英数字が設定される。また、コード割当表１１０の３０ｈ〜５Ｆｈには、コード割当表５０の８０ｈ〜ＦＦｈに設定されていたＣＪＫ文字の一部が設定される。コード割当表１１０の３０ｈ〜５Ｆｈに設定された高頻度の単語、制御記号、英数字、ＣＪＫ文字には、２バイトのコードが割り当てられる。
【００１７】
すなわち、コード割当表５０の００ｈ〜７Ｆｈに設定され、それまで１バイトのコードが割り当てられていた制御記号および英数字は、コード割当表１１０の３０ｈ〜５Ｆｈの一部に割り当てられ、２バイトのコードが割り当てられる。
【００１８】
コード割当表１１０の６０ｈ〜ＦＦｈには、低頻度の単語等が設定される。また、コード割当表１１０の６０ｈ〜ＦＦｈには、コード割当表５０の８０ｈ〜ＦＦｈに設定されていたＣＪＫ文字の一部が設定される。
【００１９】
本実施例１について、以下の説明では、適宜、コード割当表１１０の００ｈ〜２Ｆｈの領域を「１バイト領域」と表記する。コード割当表１１０の３０ｈ〜５Ｆｈの領域を「２バイト領域」と表記する。コード割当表１１０の６０ｈ〜ＦＦｈの領域を「３バイト領域」と表記する。
【００２０】
コード変換部１５０は、コード割当表１１０に基づいて、テキストデータ１０ａを、テキストデータ１０ｂに変換する。ここでは、テキストデータ１０ａを「・・・ｈｅ△ｉｓ△ｉｎ△ｔｈｅ△ｈｏｕｓｅ△・・・」とする。テキストデータ１０ａの「△」はスペースを示すものである。
【００２１】
コード変換部１５０は、スペース「△」で区切られる単語と、コード割当表１１０とを比較して、単語をコードに変換する。テキストデータ１０ａに含まれる単語「ｈｅ△」は、コード割当表１１０の１バイト領域に設定された単語であり、コード変換部１５０は、文字「ｈｅ△」を１バイトのコード「１２ｈ」に変換する。
【００２２】
テキストデータ１０ａに含まれる単語「ｉｓ△」は、コード割当表１１０の１バイト領域に設定された単語であり、コード変換部１５０は、単語「ｉｓ△」を１バイトのコード「０８ｈ」に変換する。
【００２３】
テキストデータ１０ａに含まれる単語「ｉｎ△」は、コード割当表１１０の１バイト領域に設定された単語であり、コード変換部１５０は、単語「ｉｎ△」を１バイトのコード「０７ｈ」に変換する。
【００２４】
テキストデータ１０ａに含まれる単語「ｔｈｅ△」は、コード割当表１１０の１バイト領域に設定された単語であり、コード変換部１５０は、単語「ｔｈｅ△」を１バイトのコード「００ｈ」に変換する。
【００２５】
テキストデータ１０ａに含まれる単語「ｈｏｕｓｅ△」は、コード割当表１１０の２バイト領域に設定された単語であり、コード変換部１５０は、例えば、単語「ｈｏｕｓｅ△」を２バイトのコード「４３４１ｈ」に変換する。
【００２６】
コード変換部１５０は、テキストデータ１０ａに含まれる各単語に対して、上記処理を実行することで、テキストデータ１０ａをテキストデータ１０ｂにコード化する。
【００２７】
図１ｂは、本実施例１に係る復号化装置の処理の一例を示す図である。本実施例１に係る復号化装置は、従来技術で用いていたコード割当表５０の代わりに、コード割当表１１０を用いて、コード変換されたテキストデータ１０ｂを、文字コード変換することで、テキストデータ１０ａを生成する。コード割当表１１０に関する説明は、上記の説明と同様である。
【００２８】
コード変換部５５０は、コード割当表１１０に基づいて、テキストデータ１０ｂを、テキストデータ１０ａに変換する。ここでは、テキストデータ１０ｂを「・・・１２ｈ  ０８ｈ  ０７ｈ  ００ｈ  ４３４１ｈ・・・」とする。
【００２９】
コード変換部５５０は、コードと、コード割当表１１０とを比較して、コードを単語に変換する。例えば、コード変換部５５０は、１バイトのコード「１２ｈ」を文字「ｈｅ△」に変換する。コード変換部５５０は、１バイトのコード「０８ｈ」を単語「ｉｓ△」に変換する。コード変換部５５０は、１バイトのコード「０７ｈ」を単語「ｉｎ△」に変換する。コード変換部５５０は、１バイトのコード「００ｈ」を単語「ｔｈｅ△」に変換する。コード変換部５５０は、２バイトのコード「４３４１ｈ」を単語「ｈｏｕｓｅ△」に変換する。
【００３０】
コード変換部５５０は、テキストデータ１０ｂに含まれる各コードに対して、上記処理を実行することで、テキストデータ１０ｂをテキストデータ１０ａに変換する。
【００３１】
図２ａは、本実施例１に係る符号化装置の構成を示す機能ブロック図である。図２ａに示すように、この符号化装置１００は、入力部１０１、出力部１０２、レジスタ１０５ａ，１０５ｂ、記憶部１０６、コード変換部１５０を有する。
【００３２】
入力部１０１は、コード変換を行うテキストデータを受け付ける処理部である。入力部１０１は、受け付けたテキストデータを、レジスタ１０５ａに格納する。
【００３３】
出力部１０２は、レジスタ１０５ｂに格納されるコード変換後のテキストデータを出力する処理部である。
【００３４】
レジスタ１０５ａは、コード変換を行う前のテキストデータを格納するものである。レジスタ１０５ｂは、コード変換後のテキストデータを格納するものである。
【００３５】
記憶部１０６は、コード割当表１１０と、２バイトコード割当表１１５ａと、３バイトコード割当表１１５ｂとを有する。記憶部１０６は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子などの記憶装置に対応する。
【００３６】
図３は、本実施例１に係るコード割当表の一例を示す図である。コード割当表１１０は、単語等と、所定のコードとを対応付けたテーブルであり、図１ａで説明したコード割当表１１０に対応する。図３に示すように、このコード割当表１１０は、１バイト領域１１０Ａと、２バイト領域１１０Ｂと、３バイト領域１１０Ｃとを有する。
【００３７】
１バイト領域１１０Ａは、コード割当表１１０の００ｈ〜２Ｆｈの領域である。この１バイト領域１１０Ａには、青空文庫、オックスフォード英語辞書、その他の一般的な書籍を基にして、出現頻度の高い上位４８個の単語が設定される。
【００３８】
１バイト領域１１０Ａに設定された単語は、１バイト領域１１０Ａの設定位置に応じた１バイトのコードが割り当てられる。単語「ｔｈｅ△」は、１バイトのコード「００ｈ」が割り当てられる。１バイト領域１１０Ａに設定された残りの単語も同様に、１バイトのコードが割り当てられる。
【００３９】
２バイト領域１１０Ｂは、コード割当表１１０の３０ｈ〜５Ｆｈの領域である。この２バイト領域１１０Ｂには、青空文庫、オックスフォード英語辞書、その他の一般的な書籍を基にして、出現頻度が所定値以上となる単語が設定される。以下の説明では、適宜、出現頻度が所定値以上となる単語を高頻度単語と表記する。また、２バイト領域１１０Ｂには、英数字、記号、かな、カナ、漢字、数値、時刻、タグ、構文等も含まれる。
【００４０】
ここで、２バイト領域１１０Ｂには、係る２バイト領域１１０Ｂに設定された高頻度単語等に割り当てる２バイトのコードのうち、前半の１バイトのコードのみが定義されている。２バイト領域１１０Ｂに設定された単語等に割り当てる２バイトのコードは、後述する２バイトコード割当表１１５ａに定義されている。
【００４１】
例えば、２バイト領域１１０Ｂの英数字、記号、かな、カナ、漢字、数値、時刻、タグ、構文に割り当てる２バイトのコードのうち、前半の１バイトのコードは「３０ｈ〜３Ｆｈ」となる。そして、前半の１バイトのコードと、残りの１バイトのコードは、２バイトコード割当表１１５ａに定義されている。
【００４２】
２バイト領域１１０Ｂの高頻度単語に割り当てる２バイトのコードのうち、前半の１バイトのコードは「４０ｈ〜５Ｆｈ」となる。そして、前半の１バイトのコードと、残りの１バイトのコードは、２バイトコード割当表１１５ａに定義されている。
【００４３】
３バイト領域１１０Ｃは、コード割当表１１０の６０ｈ〜ＦＦｈの領域である。この３バイト領域１１０Ｃには、青空文庫、オックスフォード英語辞書、その他の一般的な書籍を基にして、出現頻度が所定値未満となる低頻度の単語が設定される。例えば、３バイト領域１１０Ｃには、ＣＪＫ文字、英単語、日本単語、第３国の単語、数値、時刻、タグ、構文意味解析の結果等が含まれる。
【００４４】
ここで、３バイト領域１１０Ｃには、係る３バイト領域１１０Ｃに設定された単語等に割り当てる３バイトのコードのうち、前半の１バイトのコードのみが定義されている。３バイト領域１１０Ｃに設定された単語等に割り当てる３バイトのコードは、後述する３バイトコード割当表１１５ｂに定義されている。
【００４５】
例えば、３バイト領域１１０ＣのＣＪＫ文字、英単語、日本単語、第３国の単語、数値、時刻、タグ、構文意味解析の結果等に割り当てる３バイトのコードのうち、前半の１バイトのコードは「６０ｈ〜ＦＦｈ」となる。そして、前半の１バイトのコードと、残りの２バイトのコードは、３バイトコード割当表１１５ｂに定義されている。
【００４６】
図４は、本実施例１に係る２バイトコード割当表の一例を示す図である。図４に示すように、２バイトコード割当表１１５ａは、高頻度単語と、２バイトのコードとを対応付ける。また、２バイトコード割当表１１５ａは、英数字、記号、かな、カナ、漢字、数値、時刻、タグ、構文と、２バイトのコードとを対応付ける。
【００４７】
２バイトコード割当表１１５ａにおいて、「３０００ｈ〜３ＦＦＦｈ」には、英数字、記号、かな、カナ、漢字、数値、時刻、タグ、構文が設定され、設定位置に応じた２バイトのコードが割り当てられる。例えば、「ＮＵＬＬ」には、２バイトのコード「３０００ｈ」が割り当てられる。
【００４８】
２バイトコード割当表１１５ａにおいて、「４０００ｈ〜５ＦＦＦｈ」には、高頻度単語が設定され、設定位置に応じた２バイトのコードが割り当てられる。例えば、設定位置「４０００ｈ」に設定された高頻度単語には、２バイトのコード「４０００ｈ」が割り当てられる。
【００４９】
図５は、本実施例１に係る３バイトコード割当表の一例を示す図である。図５に示すように、３バイトコード割当表１１５ｂは、ＣＪＫ文字、英単語、日本単語、第３国の単語、数値、時刻、タグ、構文意味解析の結果と、３バイトのコードとを対応付ける。なお、３バイトコード割当表１１５ｂにおいて、例えば、「Ｅ０００００ｈ〜ＦＦＦＦＦＦｈ」は、予備の領域となる。
【００５０】
３バイトコード割当表１１５ｂにおいて、「８０００００ｈ〜ＤＦＦＦＦＦｈ」には、日本単語、第３国の単語、数値、時刻、タグ、構文意味解析の結果には、設定位置に応じた３バイトのコードが割り当てられる。例えば、設定位置「８０００００ｈ」に設定された日本単語には、３バイトのコード「８０００００ｈ」が割り当てられる。
【００５１】
図２ａの説明に戻る。コード変換部１５０は、コード割当表１１０、２バイトコード割当表１１５ａ、３バイトコード割当表１１５ｂを基にして、レジスタ１０５ａに格納されたテキストデータをコード化する処理部である。コード変換部１５０は、コード化したテキストデータを、レジスタ１０５ｂに格納する。
【００５２】
以下において、コード変換部１５０の処理の一例について説明する。コード変換部１５０は、テキストデータから、スペース「△」で区切られる単語を取得し、取得した単語が、１バイト領域１１０Ａに設定された単語か、２バイト領域１１０Ｂに設定された単語か、３バイト領域１１０Ｃに設定された単語かを判定する。
【００５３】
コード変換部１５０の取得した単語が１バイト領域１１０Ａに設定された単語である場合について説明する。コード変換部１５０は、取得した単語と、１バイト領域１１０Ａの各単語とを比較して、該当する設定位置の１バイトのコードを特定し、コード化する。例えば、コード変換部１５０は、取得した単語が「ｔｈｅ△」である場合には、かかる単語「ｔｈｅ△」を「００ｈ」にコード化する。
【００５４】
続いて、コード変換部１５０の取得した単語が２バイト領域１１０Ｂに設定された単語である場合について説明する。コード変換部１５０は、取得した単語と、２バイトコード割当表１１５ａとを比較して、該当する設定位置の２バイトのコードを特定し、コード化する。例えば、コード変換部１５０は、取得した単語が、２バイトコード割当表１１５ａの「４０００ｈ」に設定されたある高頻度単語である場合には、かかる高頻度単語を２バイトのコード「４０００ｈ」にコード化する。
【００５５】
なお、コード変換部１５０は、取得した情報が、２バイト領域１１０Ｂに設定された英数字、記号、かな、カナ、漢字、数値、時刻、タグ、構文である場合も、２バイトコード割当表１１５ａと比較して、コード化する。例えば、コード変換部１５０は、「ＮＵＬＬ」を取得した場合には、かかる「ＮＵＬＬ」を「３０００ｈ」にコード化する。
【００５６】
続いて、コード変換部１５０の取得した単語が３バイト領域１１０Ｃに設定された単語である場合について説明する。コード変換部１５０は、取得した単語と、３バイトコード割当表１１５ｂとを比較して、該当する設定位置の３バイトのコードを特定し、コード化する。例えば、コード変換部１５０は、取得した単語が、３バイトコード割当表１１５ｂの「７０００００ｈ」に設定されたある英単語である場合には、かかる英単語を３バイトのコード「７０００００ｈ」にコード化する。
【００５７】
なお、コード変換部１５０は、取得した情報が、３バイト領域１１０Ｃに設定された日本単語、第３国の単語、数値、時刻、タグ、構文意味解析の結果である場合も、３バイトコード割当表１１５ｂと比較して、コード化する。例えば、コード変換部１５０は、取得した情報が、３バイトコード割当表１１５ｂの「８０００００ｈ」に設定されたある日本単語である場合には、かかる日本単語を３バイトのコード「８０００００ｈ」にコード化する。
【００５８】
コード変換部１５０は、レジスタ１０５ａに格納されたテキストデータに対して、上記処理を繰り返し実行することで、テキストデータをコード化する。コード変換部１５０は、コード化したテキストデータを、レジスタ１０５ｂに格納する。
【００５９】
図２ｂは、本実施例１に係る復号化装置の構成を示す機能ブロック図である。図２ｂに示すように、この復号化装置５００は、入力部５０１、出力部５０２、レジスタ５０５ａ，５０５ｂ、記憶部５０６、コード変換部５５０を有する。
【００６０】
入力部５０１は、コード変換されたテキストデータを受け付ける処理部である。入力部５０１は、受け付けたテキストデータを、レジスタ５０５ａに格納する。
【００６１】
出力部５０２は、レジスタ５０５ｂに格納されたテキストデータを出力する処理部である。
【００６２】
レジスタ５０５ａは、コード変換されたテキストデータを格納するものである。レジスタ５０５ｂは、文字コード変換後のテキストデータを格納するものである。
【００６３】
記憶部５０６は、コード割当表１１０と、２バイトコード割当表１１５ａと、３バイトコード割当表１１５ｂとを有する。記憶部５０６は、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子などの記憶装置に対応する。
【００６４】
コード割当表１１０に関する説明は、図３で説明したコード割当表１１０に関する説明と同様である。２バイトコード割当表１１５ｂに関する説明は、図４で説明した２バイトコード割当表１１５ａに関する説明と同様である。３バイトコード割当表１１５ｂに関する説明は、図５で説明した３バイトコード割当表１１５ｂに関する説明と同様である。
【００６５】
以下において、コード変換部５５０の処理の一例について説明する。例えば、コード変換部５５０は、テキストデータからコードを取得し、取得したコードが１バイト領域１１０Ａに設定された単語に対応するものか、２バイト領域１１０Ｂに設定された単語に対応するものか、３バイト領域１１０Ｃに設定された単語に対応するものかを判定する。
【００６６】
コード変換部５５０が取得したコードが１バイト領域１１０Ａに設定された単語に対応するものである場合について説明する。１バイト領域１１０Ａに設定された単語に対応するコードの１バイト目は「００ｈ〜２Ｆｈ」に含まれる。コード変換部５５０は、コードに対応する単語を、１バイト領域１１０Ａに設定された単語から選択し、選択した単語によって文字コード化する。例えば、コード変換部５５０は、取得したコードが「００ｈ」である場合には、「００ｈ」を「ｔｈｅ△」に文字コード化する。
【００６７】
コード変換部５５０が取得したコードが２バイト領域１１０Ｂに設定された単語に対応するものである場合について説明する。２バイト領域１１０Ｂに設定された単語に対応するコードの１バイト目は「３０ｈ〜５Ｆｈ」に含まれる。コード変換部５５０は、コードの１バイト目と続く２バイト目とを合わせたコードと、２バイトコード割当表１１５ａとを比較して、単語を文字コード化する。例えば、コード変換部５５０は、２バイトのコードが「４０００ｈ」である場合には、２バイトコード割当表１１５ａに設定された「４０００ｈ」に対応する単語に文字コード化する。
【００６８】
コード変換部５５０が取得したコードが３バイト領域１１０Ｃに設定された単語に対応するものである場合について説明する。３バイト領域１１０Ｃに設定された単語に対応するコードの１バイト目は「６０ｈ〜ＦＦｈ」に含まれる。コード変換部５５０は、コードの１バイト目と続く２、３バイト目とを合わせたコードと、３バイトコード割当表１１５ｂとを比較して、単語を文字コード化する。例えば、コード変換部５５０は、３バイトのコードが「７０００００ｈ」である場合には、３バイトコード割当表１１５ｂに設定された「７０００００ｈ」に対応する単語に文字コード化する。
【００６９】
図６ａは、本実施例１に係る符号化装置の処理手順を示すフローチャートである。図６ａに示すように、符号化装置１００の入力部１０１は、テキストデータをレジスタ１０５ａに格納する（ステップＳ１０１）。符号化装置１００のコード変換部１５０は、レジスタ１０５ａに格納されたテキストデータから単語を取得する（ステップＳ１０２）。ステップＳ１０２では、説明の便宜上、単語と表記するが、コード変換部１５０が取得するものは、単語の他に、日本単語、第３国の単語、数値、時刻、タグ、構文意味解析の結果等の場合もある。
【００７０】
コード変換部１５０は、単語とコード割当表１１０とを比較する（ステップＳ１０３）。コード変換部１５０は、単語がコード割当表１１０の１バイト領域１１０Ａの単語に対応する単語である場合には（ステップＳ１０４，Ｙｅｓ）、ステップＳ１０５に移行する。コード変換部１５０は、コード割当表１１０に基づいて、単語を１バイトのコードに変換し（ステップＳ１０５）、ステップＳ１０９に移行する。
【００７１】
一方、コード変換部１５０は、単語がコード割当表１１０の１バイト領域１１０Ａの単語に対応する単語でない場合には（ステップＳ１０４，Ｎｏ）、ステップＳ１０６に移行する。コード変換部１５０は、単語がコード割当表１１０の２バイト領域１１０Ｂの単語に対応する単語である場合には（ステップＳ１０６，Ｙｅｓ）、ステップＳ１０７に移行する。コード変換部１５０は、２バイトコード割当表１１５ａに基づいて、単語を２バイトのコードに変換し（ステップＳ１０７）、ステップＳ１０９に移行する。
【００７２】
一方、コード変換部１５０は、単語がコード割当表１１０の２バイト領域１１０Ｂの単語に対応する単語でない場合には（ステップＳ１０６，Ｎｏ）、ステップＳ１０８に移行する。コード変換部１５０は、３バイトコード変換表１１５ｂに基づいて、単語を３バイトのコードに変換し（ステップＳ１０８）、ステップＳ１０９に移行する。
【００７３】
コード変換部１５０は、テキストデータのコード化が終了したか否かを判定する（ステップＳ１０９）。コード変換部１５０は、テキストデータのコード化が終了していない場合には（ステップＳ１０９，Ｎｏ）、ステップＳ１０２に移行する。
【００７４】
一方、コード変換部１５０は、テキストデータのコード化が終了した場合には（ステップＳ１０９，Ｙｅｓ）、コード化したテキストデータを、レジスタ１０５ｂに格納する（ステップＳ１１０）。
【００７５】
図６ｂは、本実施例１に係る復号化装置の処理手順を示すフローチャートである。図６ｂに示すように、復号化装置５００の入力部５０１は、テキストデータをレジスタ５０５ａに格納する（ステップＳ５０１）。復号化装置５００のコード変換部５５０は、レジスタ５０５ａに格納されたテキストデータからコードを取得する（ステップＳ５０２）。
【００７６】
コード変換部５５０は、コードとコード割当表１１０とを比較する（ステップＳ５０３）。コード変換部５５０は、コードがコード割当表１１０の１バイト領域１１０Ａの単語に対応するコードである場合には（ステップＳ５０４，Ｙｅｓ）、ステップＳ５０５に移行する。コード変換部５５０は、コード割当表１１０に基づいて、１バイトのコードを単語に変換し（ステップＳ５０５）、ステップＳ５０９に移行する。
【００７７】
一方、コード変換部５５０は、コードがコード割当表１１０の１バイト領域１１０Ａの単語に対応する単語でない場合には（ステップＳ５０４，Ｎｏ）、ステップＳ５０６に移行する。コード変換部５５０は、コードがコード割当表１１０の２バイト領域１１０Ｂの単語に対応するコードである場合には（ステップＳ５０６，Ｙｅｓ）、ステップＳ５０７に移行する。コード変換部５５０は、２バイトコード割当表１１５ａに基づいて、コードを単語に変換し（ステップＳ５０７）、ステップＳ５０９に移行する。
【００７８】
一方、コード変換部５５０は、コードがコード割当表１１０の２バイト領域１１０Ｂの単語に対応する単語でない場合には（ステップＳ５０６，Ｎｏ）、ステップＳ５０８に移行する。コード変換部５５０は、３バイトコード変換表１１５ｂに基づいて、コードを単語に変換し（ステップＳ５０８）、ステップＳ５０９に移行する。
【００７９】
コード変換部５５０は、テキストデータの復号化が終了したか否かを判定する（ステップＳ５０９）。コード変換部５５０は、テキストデータのコード化が終了していない場合には（ステップＳ５０９，Ｎｏ）、ステップＳ５０２に移行する。
【００８０】
一方、コード変換部５５０は、テキストデータのコード化が終了した場合には（ステップＳ５０９，Ｙｅｓ）、復号化したテキストデータを、レジスタ５０５ｂに格納する（ステップＳ５１０）。
【００８１】
次に、本実施例１に係る符号化装置１００の効果について説明する。符号化装置１００は、従来のコード割当表５０の１バイト領域に割り当てられていた文字をコード割当表１１０の２バイト領域に退避させ、コード割当表１１０の１バイト領域には厳選した単語を割り当てた割当表を用いたコード変換を行う。係る処理を実行することで、出現頻度が高い文字や単語に対して、短いバイトコードを割り当てることができる。
【００８２】
また、復号化装置５００は、上記のコード割当表１１０を用いて、コード化されたテキストデータを復号化するため、出現頻度が高い単語や一般記号に対して、短いバイトコードを割り当てた場合でも、係るバイトコードを単語や一般記号に変換することができる。
【実施例２】
【００８３】
図７ａは、本実施例２に係る符号化装置の処理の一例を示す図である。本実施例２に係る符号化装置は、従来技術で用いていたコード割当表５０の代わりに、コード割当表２１０を用いて、テキストデータ２０ａをコード変換することで、コード変換されたテキストデータ２０ｂを生成する。従来技術のコード割当表５０に関する説明は、実施例１で説明したものと同様である。
【００８４】
本実施例２に係るコード割当表２１０について説明する。コード割当表２１０の００ｈ〜１Ｆｈには、後述する所定の単語が設定され、１バイトのコードが割り当てられる。コード割当表２１０の００ｈ〜１Ｆｈは、コード割当表５０において、制御記号が割り当てられていた領域を含む。
【００８５】
コード割当表２１０の２０ｈ〜７Ｆｈには、英数字が設定され、１バイトのコードが割り当てられる。コード割当表２１０の２０ｈ〜７Ｆｈに設定される英数字は、コード割当表５０の２０ｈ〜７Ｆｈに設定される英数字と同様である。
【００８６】
コード割当表２１０の８０ｈ〜９Ｆｈには、高頻度の単語等が設定される。また、コード割当表２１０の８０ｈ〜９Ｆｈには、コード割当表５０の００ｈ〜１Ｆｈに設定されていた制御記号や、コード割当表５０の８０ｈ〜ＦＦｈに設定されていたＣＪＫ文字の一部が設定される。コード割当表２１０の８０ｈ〜９Ｆｈに設定された高頻度の単語、制御記号、ＣＪＫ文字には、２バイトのコードが割り当てられる。
【００８７】
コード割当表２１０のＡ０ｈ〜ＦＦｈには、低頻度の単語等が設定される。また、コード割当表２１０のＡ０ｈ〜ＦＦｈには、コード割当表５０の８０ｈ〜ＦＦｈに設定されていたＣＪＫ文字の一部が設定される。
【００８８】
本実施例２について、以下の説明では、適宜、コード割当表２１０の００ｈ〜１Ｆｈの領域を「単語１バイト領域」と表記する。コード割当表２１０の２０ｈ〜７Ｆｈの領域を「英数字１バイト領域」と表記する。コード割当表２１０の８０ｈ〜９Ｆｈの領域を「２バイト領域」と表記する。コード割当表２１０のＡ０ｈ〜ＦＦｈの領域を「３バイト領域」と表記する。
【００８９】
コード変換部２５０は、コード割当表２１０に基づいて、テキストデータ２０ａを、テキストデータ２０ｂに変換する。ここでは、テキストデータ２０ａを「・・・ｈｅ△ｉｓ△ｉｎ△ｔｈｅ△ｈｏｕｓｅ△・・・」とする。テキストデータ２０ａの「△」はスペースを示すものである。
【００９０】
コード変換部２５０は、スペース「△」で区切られる単語と、コード割当表２１０とを比較して、単語をコードに変換する。テキストデータ２０ａに含まれる単語「ｈｅ△」は、コード割当表２１０の単語１バイト領域に設定された単語であり、コード変換部２５０は、単語「ｈｅ△」を１バイトのコード「１２ｈ」に変換する。
【００９１】
テキストデータ２０ａに含まれる単語「ｉｓ△」は、コード割当表２１０の単語１バイト領域に設定された単語であり、コード変換部２５０は、単語「ｉｓ△」を１バイトのコード「０８ｈ」に変換する。
【００９２】
テキストデータ２０ａに含まれる単語「ｉｎ△」は、コード割当表２１０の単語１バイト領域に設定された単語であり、コード変換部２５０は、単語「ｉｎ△」を１バイトのコード「０７ｈ」に変換する。
【００９３】
テキストデータ２０ａに含まれる単語「ｔｈｅ△」は、コード割当表２１０の単語１バイト領域に設定された単語であり、コード変換部２５０は、単語「ｔｈｅ△」を１バイトのコード「００ｈ」に変換する。
【００９４】
テキストデータ２０ａに含まれる単語「ｈｏｕｓｅ△」は、コード割当表２１０の２バイト領域に設定された単語であり、コード変換部２５０は、例えば、単語「ｈｏｕｓｅ△」を２バイトのコード「８３４１ｈ」に変換する。
【００９５】
コード変換部２５０は、テキストデータ２０ａに含まれる各単語に対して、上記処理を実行することで、テキストデータ２０ａをテキストデータ２０ｂにコード化する。
【００９６】
図７ｂは、本実施例２に係る復号化装置の処理の一例を示す図である。本実施例２に係る復号化装置は、従来技術で用いていたコード割当表５０の代わりに、コード割当表２１０を用いて、コード変換されたテキストデータ２０ｂを、文字コード変換することで、テキストデータ２０ａを生成する。コード割当表２１０に関する説明は、上記の説明と同様である。
【００９７】
コード変換部６５０は、コード割当表２１０に基づいて、テキストデータ２０ｂを、テキストデータ２０ａに変換する。ここでは、テキストデータ２０ｂを「・・・１２ｈ  ０８ｈ  ０７ｈ  ００ｈ  ８３４１ｈ・・・」とする。
【００９８】
コード変換部６５０は、コードと、コード割当表２１０とを比較して、コードを単語に変換する。例えば、コード変換部６５０は、１バイトのコード「１２ｈ」を文字「ｈｅ△」に変換する。コード変換部６５０は、１バイトのコード「０８ｈ」を単語「ｉｓ△」に変換する。コード変換部６５０は、１バイトのコード「０７ｈ」を単語「ｉｎ△」に変換する。コード変換部６５０は、１バイトのコード「００ｈ」を単語「ｔｈｅ△」に変換する。コード変換部６５０は、２バイトのコード「８３４１ｈ」を単語「ｈｏｕｓｅ△」に変換する。
【００９９】
コード変換部６５０は、テキストデータ２０ｂに含まれる各コードに対して、上記処理を実行することで、テキストデータ２０ｂをテキストデータ２０ａに変換する。
【０１００】
図８ａは、本実施例２に係る符号化装置の構成を示す機能ブロック図である。図８に示すように、この符号化装置２００は、入力部２０１、出力部２０２、レジスタ２０５ａ，２０５ｂ、記憶部２０６、コード変換部２５０を有する。
【０１０１】
入力部２０１は、コード変換を行うテキストデータを受け付ける処理部である。入力部２０１は、受け付けたテキストデータを、レジスタ２０５ａに格納する。
【０１０２】
出力部２０２は、レジスタ２０５ｂに格納されるコード変換後のテキストデータを出力する処理部である。
【０１０３】
レジスタ２０５ａは、コード変換を行う前のテキストデータを格納するものである。レジスタ２０５ｂは、コード変換後のテキストデータを格納するものである。
【０１０４】
記憶部２０６は、コード割当表２１０と、２バイトコード割当表２１５ａと、３バイトコード割当表２１５ｂとを有する。記憶部２０６は、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子などの記憶装置に対応する。
【０１０５】
図９は、本実施例２に係るコード割当表の一例を示す図である。コード割当表２１０は、単語等と、所定のコードとを対応付けたテーブルであり、図７ａで説明したコード割当表２１０に対応する。図９に示すように、このコード割当表２１０は、単語１バイト領域２１０Ａと、英数字１バイト領域２１０Ｂと、２バイト領域２１０Ｃと、３バイト領域２１０Ｄとを有する。
【０１０６】
単語１バイト領域２１０Ａは、コード割当表２１０の００ｈ〜１Ｆｈの領域である。この単語１バイト領域２１０Ａには、青空文庫、オックスフォード英語辞典、その他の一般的な書籍を基にして、出現頻度の高い上位３２個の単語が設定される。
【０１０７】
単語１バイト領域２１０Ａに設定された単語は、単語１バイト領域２１０Ａの設定位置に応じた１バイトのコードが割り当てられる。例えば、単語「ｔｈｅ△」は、１バイトのコード「００ｈ」が割り当てられる。単語１バイト領域２１０Ａに設定された残りの単語も同様に、１バイトのコードが割り当てられる。
【０１０８】
英数字１バイト領域２１０Ｂは、コード割当表２１０の２０ｈ〜７Ｆｈの領域である。この英数字１バイト領域２１０Ｂには、コード割当表５０の２０ｈ〜７Ｆｈに設定される英数字と同様の英数字が設定される。
【０１０９】
英数字１バイト領域２１０Ｂに設定された英数字は、英数字１バイト領域２１０Ａの設定位置に応じた１バイトのコードが割り当てられる。例えば、数値「０」は、１バイトのコード「３０ｈ」が割り当てられる。英数字１バイト領域２１０Ａに設定された残りの英数字も同様に、１バイトのコードが割り当てられる。
【０１１０】
２バイト領域２１０Ｃは、コード割当表２１０の８０ｈ〜９Ｆｈの領域である。この２バイト領域２１０Ｃには、青空文庫、オックスフォード英語辞書、その他の一般的な書籍を基にして、出現頻度が所定値以上となる単語が設定される。以下の説明では、適宜、出現頻度が所定値以上となる単語を高頻度単語と表記する。また、２バイト領域２１０Ｃには、制御記号等が含まれていても良い。
【０１１１】
ここで、２バイト領域２１０Ｃには、係る２バイト領域２１０Ｃに設定された高頻度単語等に割り当てる２バイトのコードのうち、前半の１バイトのコードのみが定義されている。２バイト領域２１０Ｃに設定された単語等に割り当てる２バイトのコードは、後述する２バイトコード割当表２１５ａに定義されている。
【０１１２】
例えば、２バイト領域２１０Ｃの高頻度単語に割り当てる２バイトのコードのうち、前半の１バイトのコードは「８０ｈ〜９Ｆｈ」となる。そして、前半の１バイトのコードと、残りの１バイトのコードは、２バイトコード割当表２１５ａに定義されている。
【０１１３】
３バイト領域２１０Ｄは、コード割当表２１０のＡ０ｈ〜ＦＦｈの領域である。この３バイト領域２１０Ｄには、青空文庫、オックスフォード英語辞書、その他の一般的な書籍を基にして、出現頻度が所定値未満となる低頻度の単語が設定される。例えば、３バイト領域２１０Ｄには、ＣＪＫ文字、英単語、日本単語、数値、タグ、動的コード等が含まれる。動的コードは、例えば、人物名や住所、連結単語等に対応するものである。
【０１１４】
ここで、３バイト領域２１０Ｄには、係る３バイト領域２１０Ｄに設定された単語等に割り当てる３バイトのコードのうち、前半の１バイトのコードのみが定義されている。３バイト領域２１０Ｄに設定された単語等に割り当てる３バイトのコードは、後述する３バイトコード割当表２１５ｂに定義されている。
【０１１５】
図１０は、本実施例２に係る２バイトコード割当表の一例を示す図である。図１０に示すように、２バイトコード割当表２１５ａは、高頻度単語と、２バイトのコードとを対応付ける。
【０１１６】
例えば、２バイトコード割当表２１５ａにおいて、「８０００ｈ〜９ＦＦＦｈ」には、高頻度単語が設定され、設定位置に応じた２バイトのコードが割り当てられる。例えば、設定位置「８０００ｈ」に設定された高頻度単語には、２バイトのコード「８０００ｈ」が割り当てられる。
【０１１７】
図１１は、本実施例２に係る３バイトコード割当表の一例を示す図である。図１１に示すように、３バイトコード割当表２１５ｂは、ＣＪＫ文字、英単語、日本単語、数値、タグ、動的コードと、３バイトのコードとを対応付ける。
【０１１８】
図８ａの説明に戻る。コード変換部２５０は、コード割当表２１０、２バイトコード割当表２１５ａ、３バイトコード割当表２１５ｂを基にして、レジスタ２０５ａに格納されたテキストデータをコード化する処理部である。コード変換部２５０は、コード化したテキストデータを、レジスタ２０５ｂに格納する。
【０１１９】
以下において、コード変換部２５０の処理の一例について説明する。コード変換部２５０は、テキストデータから、スペース「△」で区切られる単語を取得する。コード変換部２５０は、取得した単語が、単語１バイト領域２１０Ａに設定された単語か、英数字１バイト領域２１０Ｂに設定された英数字に対応するものか、２バイト領域２１０Ｃに設定された単語か、３バイト領域２１０Ｄに設定された単語かを判定する。
【０１２０】
コード変換部２５０の取得した単語が単語１バイト領域２１０Ａに設定された単語である場合について説明する。コード変換部２５０は、取得した単語と、単語１バイト領域２１０Ａの各単語とを比較して、該当する設定位置の１バイトのコードを特定し、コード化する。例えば、コード変換部２５０は、取得した単語が「ｔｈｅ△」である場合には、かかる単語「ｔｈｅ△」を「００ｈ」にコード化する。
【０１２１】
コード変換部２５０の取得した情報が英数字１バイト領域２１０Ｂに設定された英数字である場合について説明する。コード変換部２５０は、取得した英数字と、英数字１バイト領域２１０Ｂの各英数字とを比較して、該当する設置位置の１バイトのコードを特定し、コード化する。例えば、コード変換部２５０は、取得した英数字が「Ａ」である場合には、係る英数字「Ａ」を「４１ｈ」にコード化する。
【０１２２】
コード変換部２５０の取得した単語が２バイト領域２１０Ｃに設定された単語である場合について説明する。コード変換部２５０は、取得した単語と、２バイトコード割当表２１５ａとを比較して、該当する設定位置の２バイトのコードを特定し、コード化する。例えば、コード変換部２５０は、取得した単語が、２バイトコード割当表２１５ａの「８０００ｈ」に設定されたある高頻度単語である場合には、かかる高頻度単語を２バイトのコード「８０００ｈ」にコード化する。
【０１２３】
コード変換部２５０の取得した単語が３バイト領域２１０Ｄに設定された単語である場合について説明する。コード変換部２５０は、取得した単語と、３バイトコード割当表２１５ｂとを比較して、該当する設定位置の３バイトのコードを特定し、コード化する。例えば、コード変換部２５０は、取得した単語が、３バイトコード割当表２１５ｂの「Ｂ０００００ｈ」に設定されたある英単語である場合には、かかる英単語を３バイトのコード「Ｂ０００００ｈ」にコード化する。
【０１２４】
なお、コード変換部２５０は、取得した情報が、３バイト領域２１０Ｄに設定された日本単語、ＣＪＫ文字、数値、タグ、動的コードである場合も、３バイトコード割当表２１５ｂと比較して、コード化する。
【０１２５】
図８ｂは、本実施例２に係る復号化装置の構成を示す機能ブロック図である。図８ｂに示すように、この復号化装置６００は、入力部６０１、出力部６０２、レジスタ６０５ａ，６０５ｂ、記憶部６０６、コード変換部６５０を有する。
【０１２６】
入力部６０１は、コード変換されたテキストデータを受け付ける処理部である。入力部６０１は、受け付けたテキストデータを、レジスタ６０５ａに格納する。
【０１２７】
出力部６０２は、レジスタ６０５ｂに格納されたテキストデータを出力する処理部である。
【０１２８】
レジスタ６０５ａは、コード変換されたテキストデータを格納するものである。レジスタ６０５ｂは、文字コード変換後のテキストデータを格納するものである。
【０１２９】
記憶部６０６は、コード割当表２１０と、２バイトコード割当表２１５ａと、３バイトコード割当表２１５ｂとを有する。記憶部６０６は、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子などの記憶装置に対応する。
【０１３０】
コード割当表２１０に関する説明は、図９で説明したコード割当表２１０に関する説明と同様である。２バイトコード割当表２１５ａに関する説明は、図１０で説明した２バイトコード割当表２１５ａに関する説明と同様である。３バイトコード割当表２１５ｂに関する説明は、図１１で説明した３バイトコード割当表２１５ｂに関する説明と同様である。
【０１３１】
以下において、コード変換部６５０の処理の一例について説明する。例えば、コード変換部６５０は、テキストデータからコードを取得し、取得したコードが単語１バイト領域２１０Ａに設定された単語に対応するものか、英数字１バイト領域２１０Ｂに設定された英数字に対応するものかを判定する。また、コード変換部６５０は、取得したコードが、２バイト領域２１０Ｃに設定された単語に対応するものか、３バイト領域２１０Ｄに設定された単語に対応するものかを判定する。
【０１３２】
コード変換部６５０の取得したコードが単語１バイト領域２１０Ａに設定された単語に対応するコードである場合について説明する。単語１バイト領域２１０Ａに設定された単語に対応するコードの１バイト目は「００ｈ〜１Ｆｈ」に含まれる。コード変換部６５０は、コードに対応する単語を、単語１バイト領域２１０Ａに設定された単語から選択し、選択した単語によって文字コード化する。例えば、コード変換部６５０は、取得したコードが「００ｈ」である場合には、「００ｈ」を「ｔｈｅ△」に文字コード化する。
【０１３３】
コード変換部６５０が取得したコードが英数字１バイト領域２１０Ｂに設定された英数字に対応するコードである場合について説明する。英数字１バイト領域２１０Ｂに設定された単語に対応するコードの１バイト目は「２０ｈ〜７Ｆｈ」に含まれる。コード変換部６５０は、コードに対応する英数字を、英数字１バイト領域２１０ｂに設定された英数字から選択し、選択した英数字によって文字コード化する。例えば、コード変換部６５０は、取得したコードが「４１ｈ」である場合には、「４１ｈ」を「Ａ」に文字コード化する。
【０１３４】
コード変換部６５０の取得したコードが２バイト領域２１０Ｃに設定された単語に対応するコードである場合について説明する。２バイト領域２１０Ｃに設定された単語に対応するコードの１バイト目は「８０ｈ〜９Ｆｈ」に含まれる。コード変換部６５０は、取得したコードと、２バイトコード割当表２１５ａとを比較して、コードに対応する単語を特定し、文字コード化する。コード変換部６５０は、取得したコードが「８０００ｈ」である場合には、２バイトコード割当表２１５ａの「８０００ｈ」に対応する高頻度単語に文字コード化する。
【０１３５】
コード変換部６５０の取得したコードが３バイト領域２１０Ｄに設定された単語に対応するコードである場合について説明する。３バイト領域２１０Ｄに設定された単語に対応するコードの１バイト目は「Ａ０ｈ〜ＦＦｈ」に含まれる。コード変換部６５０は、取得したコードと、３バイトコード割当表２１５ｂとを比較して、コードに対応する単語を特定し、文字コード化する。コード変換部６５０は、取得したコードが「Ｂ０００００ｈ」である場合には、３バイトコード割当表２１５ｂの「Ｂ０００００ｈ」に対応する英単語に文字コード化する。
【０１３６】
図１２ａは、本実施例２に係る符号化装置の処理手順を示すフローチャートである。図１２ａに示すように、符号化装置２００の入力部２０１は、テキストデータをレジスタ２０５ａに格納する（ステップＳ２０１）。符号化装置２００のコード変換部２５０は、レジスタ２０５ａに格納されたテキストデータから単語を取得する（ステップＳ２０２）。ステップＳ２０２では、説明の便宜上、単語と表記するが、コード変換部２５０が取得するものは、単語の他に、英数字、ＣＪＫ文字、日本単語、英単語、数値、タグ、動的コードの場合もある。
【０１３７】
コード変換部２５０は、単語とコード割当表２１０とを比較する（ステップＳ２０３）。コード変換部２５０は、単語（情報）がコード割当表２１０の単語１バイト領域２１０Ａの単語に対応する単語または英数字１バイト領域２１０Ｂの英数字である場合には（ステップＳ２０４，Ｙｅｓ）、ステップＳ２０５に移行する。コード変換部２５０は、コード割当表２１０に基づいて、単語または英数字を１バイトのコードに変換し（ステップＳ２０５）、ステップＳ２０９に移行する。
【０１３８】
一方、コード変換部２５０は、単語（情報）がコード割当表２１０の単語１バイト領域２１０Ａの単語あるいは英数字１バイト領域２１０Ｂに対応する単語でない場合には（ステップＳ２０４，Ｎｏ）、ステップＳ２０６に移行する。コード変換部２５０は、単語がコード割当表２１０の２バイト領域２１０Ｃの単語に対応する単語である場合には（ステップＳ２０６，Ｙｅｓ）、ステップＳ２０７に移行する。コード変換部２５０は、２バイトコード割当表２１５ａに基づいて、単語を２バイトのコードに変換し（ステップＳ２０７）、ステップＳ２０９に移行する。
【０１３９】
一方、コード変換部２５０は、単語がコード割当表２１０の２バイト領域２１０Ｃの単語に対応する単語でない場合には（ステップＳ２０６，Ｎｏ）、ステップＳ２０８に移行する。コード変換部２５０は、３バイトコード割当表２１５ｂに基づいて、単語を３バイトのコードに変換し（ステップＳ２０８）、ステップＳ２０９に移行する。
【０１４０】
コード変換部２５０は、テキストデータのコード化が終了したか否かを判定する（ステップＳ２０９）。コード変換部２５０は、テキストデータのコード化が終了していない場合には（ステップＳ２０９，Ｎｏ）、ステップＳ２０２に移行する。
【０１４１】
一方、コード変換部２５０は、テキストデータのコード化が終了した場合には（ステップＳ２０９，Ｙｅｓ）、コード化したテキストデータを、レジスタ２０５ｂに格納する（ステップＳ２１０）。
【０１４２】
図１２ｂは、本実施例２に係る復号化装置の処理手順を示すフローチャートである。図１２ｂに示すように、復号化装置６００の入力部６０１は、テキストデータをレジスタ６０５ａに格納する（ステップＳ６０１）。復号化装置６００のコード変換部６５０は、レジスタ６０５ａに格納されたテキストデータからコードを取得する（ステップＳ６０２）。
【０１４３】
コード変換部６５０は、コードとコード割当表２１０とを比較する（ステップＳ６０３）。コード変換部６５０は、コードがコード割当表２１０の単語１バイト領域２１０Ａの単語に対応する単語または英数字１バイト領域２１０Ｂの英数字である場合には（ステップＳ６０４，Ｙｅｓ）、ステップＳ６０５に移行する。コード変換部６５０は、コード割当表２１０に基づいて、１バイトのコードを単語または英数字に変換し（ステップＳ２０５）、ステップＳ６０９に移行する。
【０１４４】
一方、コード変換部６５０は、コードがコード割当表２１０の単語１バイト領域２１０Ａの単語あるいは英数字１バイト領域２１０Ｂに対応するコードでない場合には（ステップＳ６０４，Ｎｏ）、ステップＳ６０６に移行する。コード変換部６５０は、コードがコード割当表２１０の２バイト領域２１０Ｃの単語に対応するコードである場合には（ステップＳ６０６，Ｙｅｓ）、ステップＳ６０７に移行する。コード変換部６５０は、２バイトコード割当表２１５ａに基づいて、２バイトのコードを単語に変換し（ステップＳ６０７）、ステップＳ６０９に移行する。
【０１４５】
一方、コード変換部６５０は、コードがコード割当表２１０の２バイト領域２１０Ｃの単語に対応するコードでない場合には（ステップＳ６０６，Ｎｏ）、ステップＳ６０８に移行する。コード変換部６５０は、３バイトコード割当表２１５ｂに基づいて、３バイトのコードを単語に変換し（ステップＳ６０８）、ステップＳ６０９に移行する。
【０１４６】
コード変換部６５０は、テキストデータの復号化が終了したか否かを判定する（ステップＳ６０９）。コード変換部２５０は、テキストデータの復号化が終了していない場合には（ステップＳ６０９，Ｎｏ）、ステップＳ６０２に移行する。
【０１４７】
一方、コード変換部２５０は、テキストデータの復号化が終了した場合には（ステップＳ６０９，Ｙｅｓ）、復号化したテキストデータを、レジスタ６０５ｂに格納する（ステップＳ６１０）。
【０１４８】
次に、本実施例２に係る符号化装置２００の効果について説明する。符号化装置２００は、コード割当表２１０の単語１バイト領域において、厳選した単語を割り当てた割当表を用いたコード変換を行う。なお、英数字１バイト領域には、従来のコード割当表５０の２０ｈ〜７Ｆｈに設定される英数字と同様の英数字を設定する。係る処理を実行することで、英数字に関しては、従来と同様に１バイトのコードに変換することを可能にしつつ、出現頻度が高い文字や単語に対しては、短いバイトコードを割り当てることができる。
【０１４９】
また、復号化装置６００は、上記のコード割当表２１０を用いて、コード化されたテキストデータを復号化するため、出現頻度が高い単語や一般記号に対して、短いバイトコードを割り当てた場合でも、係るバイトコードを単語や一般記号に変換することができる。
【実施例３】
【０１５０】
図１３ａは、本実施例３に係る符号化装置の処理の一例を示す図である。本実施例３に係る符号化装置は、従来のコード割当表５０と、本実施例３特有のコード割当表３１０とを切り替えて利用する。例えば、符号化装置は、テキストデータから、制御記号「ＳＩ（Shift  In）」を検出した場合には、制御記号「ＳＩ」以降のテキストデータを、コード割当表３１０を用いて、コード変換する。一方、符号化装置は、テキストデータから、制御記号「ＳＯ（Shift  Out）」を検出した場合には、コード割当表５０を用いて、コード変換する。従来技術のコード割当表５０に関する説明は、実施例１で説明したものと同様である。
【０１５１】
コード割当表３１０について説明する。コード割当表３１０の００ｈ〜１Ｆｈには、制御記号が設定され、１バイトのコードが割り当てられる。コード変換表３１０の００ｈ〜１Ｆｈに設定される制御記号は、コード割当表５０の００ｈ〜１Ｆｈに設定される制御記号と同様である。
【０１５２】
コード割当表３１０の２０ｈ〜３Ｆｈには、後述する所定の英単語が設定され、１バイトのコードが割り当てられる。コード割当表３１０の４０ｈ〜５Ｆｈには、高頻度の英単語が設定され、２バイトのコードが割り当てられる。
【０１５３】
コード割当表３１０の６０ｈ〜７Ｆｈには、後述する所定の日本単語が設定され、１バイトのコードが割り当てられる。コード割当表３１０の８０ｈ〜９Ｆｈには、高頻度の日本単語が設定される。
【０１５４】
コード割当表３１０のＡ０ｈ〜ＦＦｈには、低頻度の単語が設定され、２バイトまたは３バイトのコードが割り当てられる。
【０１５５】
本実施例３について、以下の説明では、適宜、コード割当表３１０の００ｈ〜１Ｆｈの領域を「制御記号１バイト領域」と表記する。コード割当表３１０の２０ｈ〜３Ｆｈの領域を「英単語１バイト領域」と表記する。コード割当表３１０の４０ｈ〜５Ｆｈの領域を「英単語２バイト領域」と表記する。コード割当表３１０の６０ｈ〜７Ｆｈの領域を「日本単語１バイト領域」と表記する。コード割当表３１０の８０ｈ〜９Ｆｈの領域を「日本単語２バイト領域」と表記する。コード割当表３１０のＡ０ｈ〜ＦＦｈの領域を「２・３バイト領域」と表記する。
【０１５６】
コード変換部３５０は、制御記号「ＳＩ」あるいは「ＳＯ」の検出により、コード割当表５０，３１０を切り替え、切り替えたコード割当表に基づいて、テキストデータ３０ａを、テキストデータ３０ｂに変換する。ここでは、テキストデータ３０ａを「・・・Ｉｓ△ｈｅ△ｉｎ△ｔｈｅ△ｈｏｕｓｅ？」とする。
【０１５７】
以下の説明では、前提として、コード変換部３５０は、制御記号「ＳＩ」を検出しており、コード割当表３１０を基にして、テキストデータ３０ａをコード変換する場合について説明する。なお、コード変換部３５０が、コード割当表５０を基にして、テキストデータ３０ｂをコード変換する処理は、従来技術と同じであるため、説明を省略する。
【０１５８】
コード変換部３５０は、スペース「△」で区切られる単語と、コード割当表３１０とを比較して、単語をコードに変換する。テキストデータ３０ａに含まれる単語「Ｉｓ△」は、コード割当表３１０の英単語１バイト領域に設定された単語であり、コード変換部３５０は、単語「Ｉｓ△」を１バイトのコード「２５ｈ」と、「２Ｆｈ」とに変換する。ここで、１バイトのコード「２５ｈ」は、単語の先頭が大文字であることを示す１バイトのコードである。「２Ｆｈ」は、「ｉｓ△」に対応する１バイトのコードである。
【０１５９】
テキストデータ３０ａに含まれる「ｈｅ△」は、コード割当表３１０の英単語１バイト領域に設定された単語であり、コード変換部３５０は、単語「ｈｅ△」を１バイトのコード「３９ｈ」に変換する。
【０１６０】
テキストデータ３０ａに含まれる「ｉｎ△」は、コード割当表３１０の英単語１バイト領域に設定された単語であり、コード変換部３５０は、単語「ｉｎ△」を１バイトのコード「２Ｅｈ」に変換する。
【０１６１】
テキストデータ３０ａに含まれる「ｔｈｅ△」は、コード割当表３１０の英単語１バイト領域に設定された単語であり、コード変換部３５０は、単語「ｔｈｅ△」を１バイトのコード「２７ｈ」に変換する。
【０１６２】
テキストデータ３０ａに含まれる単語「ｈｏｕｓｅ」は、「ｈｏｕｓｅ△」と「−△」に分割される。「ｈｏｕｓｅ△」は、コード割当表３１０の２バイト領域に設定された単語であり、コード変換部３５０は、例えば、単語「ｈｏｕｓｅ△」を２バイトのコード「４３４１ｈ」に、単語「−△」を１バイトのコード「２１ｈ」に変換する。
【０１６３】
テキストデータ３０ａに含まれる単語「？」は、コード割当表３１０の英単語２バイト領域に設定された記号であり、コード変換部３５０は、例えば、単語「？」を２バイトのコード「４０３Ｆｈ」に変換する。
【０１６４】
コード変換部３５０は、テキストデータ３０ａに含まれる各単語に対して、上記処理を実行することで、テキストデータ３０ａをテキストデータ３０ｂにコード化する。
【０１６５】
図１３ｂは、本実施例３に係る復号化装置の処理の一例を示す図である。本実施例３に係る復号化装置は、従来のコード割当表５０と、本実施例３特有のコード割当表３１０とを切り替えて利用する。例えば、復号化装置は、テキストデータから、制御記号「ＳＩ」のコードを検出した場合には、制御記号「ＳＩ」以降のテキストデータを、コード割当表３１０を用いて、文字コード変換する。一方、復号化装置は、テキストデータから、制御記号「ＳＯ」のコードを検出した場合には、コード割当表５０を用いて、文字コード変換する。従来技術のコード割当表５０に関する説明は、実施例１で説明したものと同様である。また、コード割当表３１０に関する説明は、上記の説明と同様である。
【０１６６】
コード変換部７５０は、制御記号「ＳＩ」のコードあるいは「ＳＯ」のコードの検出により、コード割当表５０，３１０を切り替え、切り替えたコード割当表に基づいて、テキストデータ３０ｂを、テキストデータ３０ａに変換する。ここでは、テキストデータ３０ｂを「・・・２５ｈ  ２Ｆｈ  ３９ｈ  ２Ｅｈ  ２７ｈ  ４３４１ｈ  ２１ｈ  ４０３Ｆｈ・・・」とする。
【０１６７】
以下の説明では、前提として、コード変換部７５０は、制御記号「ＳＩ」のコードを検出しており、コード割当表３１０を基にして、テキストデータ３０ｂを文字コード変換する場合について説明する。なお、コード変換部７５０が、コード割当表５０を基にして、テキストデータ３０ａを文字コード変換する処理は、従来技術と同じであるため、説明を省略する。
【０１６８】
コード変換部７５０は、コードと、コード割当表３１０とを比較して、コードを単語に変換する。例えば、コード変換部７５０は、１バイトのコード「２５ｈ」と、「２Ｆｈ」を、単語「Ｉｓ△」に変換する。コード変換部７５０は、１バイトのコード「３９ｈ」を、単語「ｈｅ△」に変換する。コード変換部７５０は、１バイトのコード「２Ｅｈ」を、単語「ｉｎ△」に変換する。コード変換部７５０は、１バイトのコード「２７ｈ」を、単語「ｔｈｅ△」に変換する。コード変換部７５０は、２バイトのコード「４３４１ｈ」と１バイトのコード「２１ｈ」とを、単語「ｈｏｕｓｅ」に変換する。コード変換部７５０は、２バイトのコード「４０３Ｆｈ」を、記号「？」に変換する。
【０１６９】
コード変換部７５０は、テキストデータ３０ｂに含まれる各コードに対して、上記処理を実行することで、テキストデータ３０ｂをテキストデータ３０ａに文字コード化する。
【０１７０】
図１４ａは、本実施例３に係る符号化装置の構成を示す機能ブロック図である。図１４ａに示すように、この符号化装置３００は、入力部３０１、出力部３０２、レジスタ３０５ａ，３０５ｂ、記憶部３０６、コード変換部３５０を有する。
【０１７１】
入力部３０１は、コード変換を行うテキストデータを受け付ける処理部である。入力部３０１は、受け付けたテキストデータを、レジスタ３０５ａに格納する。
【０１７２】
出力部３０２は、レジスタ３０５ｂに格納されるコード変換後のテキストデータを出力する処理部である。
【０１７３】
レジスタ３０５ａは、コード変換を行う前のテキストデータを格納するものである。レジスタ３０５ｂは、コード変換後のテキストデータを格納するものである。
【０１７４】
記憶部３０６は、コード割当表５０と、コード割当表３１０と、英単語２バイトコード割当表３１５ａと、日本単語２バイトコード割当表３１５ｂと、２・３バイトコード割当表３１６とを有する。記憶部３０６は、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子などの記憶装置に対応する。
【０１７５】
コード割当表５０は、従来のコード割当表である。例えば、コード割当表５０の説明は、実施例１で説明したものと同様である。
【０１７６】
図１５は、本実施例３に係るコード割当表の一例を示す図である。コード割当表３１０は、単語等と、所定のコードとを対応付けたテーブルであり、図１３ａで説明したコード割当表３１０に対応する。図１５に示すように、このコード割当表３１０は、制御記号１バイト領域３１０Ａと、英単語１バイト領域３１０Ｂと、英単語２バイト領域３１０Ｃと、日本単語１バイト領域３１０Ｄと、日本単語２バイト領域３１０Ｅと、２・３バイト領域３１０Ｆとを有する。
【０１７７】
制御記号１バイト領域３１０Ａは、コード割当表３１０の００ｈ〜１Ｆｈの領域である。制御記号１バイト領域３１０Ａに設定される制御記号は、コード割当表５０の００ｈ〜１Ｆｈに設定される制御記号と同様である。なお、制御記号には、「ＳＯ」と「ＳＩ」が含まれる。制御記号「ＳＯ」は、コード変換部３５０に、コード割当表５０を用いてコード変換を行うことを指示する制御記号である。制御記号「ＳＩ」は、コード変換部３５０に、コード割当表３１０を用いて、コード変換することを指示する制御記号である。
【０１７８】
英単語１バイト領域３１０Ｂは、コード割当表３１０の２０ｈ〜３Ｆｈの領域である。英単語１バイト領域３１０Ｂに設定された英単語には１バイトのコードが割り当てられる。この英単語１バイト領域３１０Ｂには、オックスフォード英語辞典、その他の一般的な書籍を基にして、出現頻度の高い上位２５個の英単語が設定される。例えば、単語「ｔｈｅ」には、１バイトのコード「２７ｈ」が割り当てられる。
【０１７９】
また、英単語１バイト領域３１０Ｂには、スペース「△」、バックスペース「−△」、コンマ「，」、アポストロフィ「’」、単語の先頭が大文字であることを示すコード、単語の全部が大文字であることを示すコードが設定される。例えば、スペース「△」には、１バイトのコード「２０ｈ」が割り当てられる。
【０１８０】
英単語２バイト領域３１０Ｃは、コード割当表３１０の４０ｈ〜５Ｆｈの領域である。この英単語２バイト領域３１０Ｃには、オックスフォード英語辞書、その他の一般的な書籍を基にして、出現頻度が所定値以上となる英単語が設定される。以下の説明では、適宜、出現頻度が所定値以上となる単語を高頻度英単語と表記する。
【０１８１】
ここで、英単語２バイト領域３１０Ｃには、係る英単語２バイト領域３１０Ｃに設定された高頻度英単語に割り当てる２バイトのコードのうち、前半の１バイトのコードのみが定義されている。英単語２バイト領域３１０Ｃに設定された英単語に割り当てる２バイトのコードは、後述する英単語２バイトコード割当表３１５ａに定義されている。
【０１８２】
日本単語１バイト領域３１０Ｄは、コード割当表３１０の６０ｈ〜７Ｆｈの領域である。この日本単語１バイト領域３１０Ｄは、青空文庫、その他の一般的な書籍を基にして、出現頻度の高い上位の日本語が設定される。例えば、日本単語「の」には、１バイトのコード「６５ｈ」が割り当てられる。
【０１８３】
また、日本単語１バイト領域３１０Ｄは、読点「、」、句点「。」、カギ括弧が設定される。例えば、読点「、」には、１バイトのコード「６１ｈ」が割り当てられる。
【０１８４】
日本単語２バイト領域３１０Ｅは、コード割当表３１０の８０ｈ〜９Ｆｈの領域である。この日本単語２バイト領域３１０Ｅは、青空文庫、その他の一般的な書籍を基にして、出現頻度の高い上位の日本語が設定される。以下の説明では、適宜、出現頻度が所定値以上となる単語を高頻度日本語単語と表記する。
【０１８５】
ここで、日本単語２バイト領域３１０Ｅには、係る日本単語２バイト領域３１０Ｅに設定された高頻度日本語に割り当てる２バイトのコードのうち、前半の１バイトのコードのみが設定されている。日本単語２バイト領域３１０Ｅに設定された日本語に割り当てる２バイトのコードは、後述する日本単語２バイトコード割当表３１５ｂに定義されている。
【０１８６】
２・３バイト領域３１０Ｆは、コード割当表３１０のＡ０ｈ〜ＦＦｈの領域である。この２・３バイト領域３１０Ｆには、青空文庫、オックスフォード英語辞書、その他の一般的な書籍を基にして、出現頻度が所定値未満となる低頻度の単語が設定される。以下の説明では、適宜、低頻度の単語を、低頻度単語と表記する。２・３バイト領域３１０Ｆに設定された低頻度単語には、２バイトまたは３バイトのコードが割り当てられる。
【０１８７】
なお、２・３バイト領域３１０Ｆには、係る２・３バイト領域３１０Ｆに設定された単語に割り当てるバイトコードのうち、前半の１バイトのコードのみが設定されている。２・３バイト領域３１０Ｆに設定された単語に割り当てる２バイトまたは３バイトのコードは、後述する２・３バイト割当表３１６に定義されている。
【０１８８】
図１６は、本実施例３に係る英単語２バイトコード割当表の一例を示す図である。図１６に示すように、英単語２バイトコード割当表３１５ａは、高頻度英単語と、２バイトのコードとを対応付ける。
【０１８９】
英単語２バイトコード割当表３１５ａにおいて、「４０００ｈ〜５ＦＦＦｈ」には、高頻度英単語が設定され、設置位置に応じた２バイトのコードが割り当てられる。例えば、設定位置「４０００ｈ」に設定された高頻度英単語には、２バイトのコード「４０００ｈ」が割り当てられる。
【０１９０】
図１７は、本実施例３に係る日本単語２バイト割当表の一例を示す図である。図１７に示すように、この日本単語２バイトコード割当表３１５ｂは、高頻度日本単語と、２バイトのコードとを対応付ける。
【０１９１】
日本単語２バイト割当表３１５ｂにおいて、「８０００ｈ〜９ＦＦＦｈ」には、高頻度日本単語が設定され、設置位置に応じた２バイトのコードが割り当てられる。例えば、設定位置「８０００ｈ」に設定された高頻度日本単語には、２バイトのコード「８０００ｈ」が割り当てられる。
【０１９２】
図１８は、本実施例３に係る２・３バイト割当表の一例を示す図である。図１８に示すように、この２・３バイト割当表３１６は、低頻度単語と、２バイトのコードまたは３バイトのコードを割り当てる。例えば、Ａ０００ｈ〜Ｅ７ＦＦｈ、Ｆ０００ｈ〜Ｆ７ＦＦｈに設定される低頻度単語には、２バイトのコードが割り当てられる。Ｅ８００００ｈ〜ＥＦＦＦＦＦｈ、Ｆ８００００ｈ〜ＦＦＦＦＦＦｈに設定される低頻度単語には、３バイトのコードが割り当てられる。
【０１９３】
図１４ａの説明に戻る。コード変換部３５０は、制御記号に基づいてコード割当表を切り替え、切り替えたコード割当表に基づいて、テキストデータをコード化する処理部である。コード変換部３５０は、制御記号「ＳＩ」以降のテキストデータを、コード割当表３１０を用いて、コード変換する。一方、符号化装置は、テキストデータから、制御記号「ＳＯ」を検出した場合には、コード割当表５０を用いて、コード変換する。従来技術のコード割当表５０に関する説明は、実施例１で説明したものと同様である。コード変換部３５０は、コード化したテキストデータを、レジスタ３０５ｂに格納する。
【０１９４】
以下において、コード変換部３５０がコード割当表３１０を用いてコード化する処理の一例について説明する。コード変換部３５０は、テキストデータから情報（英単語、日本単語、制御記号等）を取得する。コード変換部３５０は、テキストデータから取得した情報が、各領域３１０Ａ〜３１０Ｆの何れの領域の情報に対応するか特定し、特定した領域に応じたコード化を行う。
【０１９５】
コード変換部３５０の取得した情報が制御記号１バイト領域３１０Ａに設定された制御記号である場合について説明する。コード変換部３５０は、取得した制御記号と、制御記号１バイト領域３１０Ａに設定された各制御記号と比較して、該当する設定位置の１バイトのコードを特定し、コード化する。例えば、コード変換部３５０は、取得した制御記号が「ＮＵＬ」である場合には、かかる制御記号「ＮＵＬ」を「００ｈ」にコード化する。
【０１９６】
なお、コード変換部３５０は、取得した制御記号が「ＳＯ」である場合には、かかる制御記号「ＳＯ」を「０Ｅｈ」にコード化すると共に、利用するコード割当表を、コード割当表５０に切り替える。
【０１９７】
コード変換部３５０は、取得した制御記号が「ＳＩ」である場合には、かかる制御記号「ＳＩ」を「０Ｆｈ」にコード化すると共に、利用するコード割当表を、コード割当表３１０に切り替える。
【０１９８】
コード変換部３５０の取得した情報が英単語１バイト領域３１０Ｂに設定された英単語である場合について説明する。コード変換部３５０は、取得した英単語と、英単語１バイト領域３１０Ｂに設定された各英単語とを比較して、該当する設定位置の１バイトのコードを特定し、コード化する。例えば、コード変換部３５０は、取得した英単語が「ｔｈｅ」である場合には、係る英単語「ｔｈｅ」を「２７ｈ」にコード化する。
【０１９９】
コード変換部３５０が取得した情報が英単語２バイト領域３１０Ｃに設定された英単語である場合について説明する。コード変換部３５０は、取得した英単語と、英単語２バイトコード割当表３１５ａとを比較して、該当する設置位置の２バイトのコードを特定し、コード化する。例えば、コード変換部３５０は、取得した単語が、英単語２バイトコード割当表３１５ａの「４０００ｈ」に設定されたある高頻度英単語である場合には、かかる高頻度英単語を２バイトのコード「４０００ｈ」にコード化する。
【０２００】
コード変換部３５０の取得した情報が日本単語１バイト領域３１０Ｄに設定された日本単語である場合について説明する。コード変換部３５０は、取得した日本単語と、日本単語１バイト領域３１０Ｄに設定された各日本単語とを比較して、該当する設定位置の１バイトのコードを特定し、コード化する。例えば、コード変換部３５０は、取得した日本単語が「の」である場合には、係る日本単語「の」を「６５ｈ」にコード化する。
【０２０１】
コード変換部３５０の取得した情報が日本単語２バイト領域３１０Ｅに設定された日本単語である場合について説明する。コード変換部３５０は、取得した日本単語と、日本単語２バイトコード割当表３１５ｂとを比較して、該当する設置位置の２バイトのコードを特定し、コード化する。例えば、コード変換部３５０は、取得した単語が、日本単語２バイトコード割当表３１５ｂの「８０００ｈ」に設定されたある高頻度日本単語である場合には、かかる高頻度日本単語を２バイトのコード「８０００ｈ」にコード化する。
【０２０２】
コード変換部３５０の取得した情報が２・３バイト領域３１０Ｆに設定された低頻度単語である場合について説明する。コード変換部３５０は、取得した単語と、２・３バイトコード割当表３１６とを比較して、対等する設定位置の２バイトまたは３バイトのコードを特定し、コード化する。例えば、コード変換部３５０は、取得した単語が、２・３バイトコード割当表３１６の「Ａ０００ｈ」に設定された低頻度単語である場合には、係る低頻度単語を２バイトのコード「Ａ０００ｈ」にコード化する。例えば、コード変換部３５０は、取得した単語が、２・３バイトコード割当表３１６の「Ｅ９００００ｈ」に設定された低頻度単語である場合には、係る低頻度単語を３バイトのコード「Ｅ９００００ｈ」にコード化する。
【０２０３】
図１４ｂは、本実施例３に係る復号化装置の構成を示す機能ブロック図である。図１４ｂに示すように、この復号化装置７００は、入力部７０１、出力部７０２、レジスタ７０５ａ，７０５ｂ、記憶部７０６、コード変換部７５０を有する。
【０２０４】
入力部７０１は、コード変換を行うテキストデータを受け付ける処理部である。入力部７０１は、受け付けたテキストデータを、レジスタ７０５ａに格納する。
【０２０５】
出力部７０２は、レジスタ７０５ｂに格納される文字コード変換後のテキストデータを出力する処理部である。
【０２０６】
レジスタ７０５ａは、コード変換されたテキストデータを格納するものである。レジスタ７０５ｂは、文字コード変換後のテキストデータを格納するものである。
【０２０７】
記憶部７０６は、コード割当表５０と、コード割当表３１０と、英単語２バイトコード割当表３１５ａと、日本単語２バイトコード割当表３１５ｂと、２・３バイトコード割当表３１６とを有する。記憶部７０６は、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子などの記憶装置に対応する。
【０２０８】
コード割当表５０の説明は、実施例１で説明したものと同様である。コード割当表３１０に関する説明は、図１５で説明したコード割当表３１０に関する説明と同様である。英単語２バイトコード割当表３１５ａに関する説明は、図１６で説明した英単語２バイトコード割当表３１５ａに関する説明と同様である。日本単語２バイトコード割当表３１５ｂに関する説明は、図１７で説明した日本単語２バイト割当表３１５ｂに関する説明と同様である。２・３バイトコード割当表３１６に関する説明は、図１８で説明した２・３バイトコード割当表３１６に関する説明と同様である。
【０２０９】
コード変換部７５０は、制御記号のコードに基づいてコード割当表を切り替え、切り替えたコード割当表に基づいて、テキストデータを文字コード化する処理部である。コード変換部７５０は、制御記号「ＳＩ」のコード以降のテキストデータを、コード割当表３１０を用いて、文字コード変換する。一方、復号化装置は、テキストデータから、制御記号「ＳＯ」のコードを検出した場合には、コード割当表５０を用いて、文字コード変換する。コード変換部７５０は、コード化したテキストデータを、レジスタ７０５ｂに格納する。
【０２１０】
以下において、コード変換部７５０がコード割当表３１０を用いて文字コード化する処理の一例について説明する。コード変換部７５０は、テキストデータからコードを取得する。コード変換部７５０は、テキストデータから取得したコードが、各領域３１０Ａ〜３１０Ｆの何れの領域の情報に対応するコードであるかを特定し、特定した領域に応じた文字コード化を行う。
【０２１１】
コード変換部７５０の取得したコードが制御記号１バイト領域３１０Ａに設定された制御記号のコードである場合について説明する。制御記号１バイト領域３１０Ａに設定された制御記号に対応するコードの１バイト目は「００ｈ〜１Ｆｈ」に含まれる。コード変換部７５０は、コードに対応する制御記号を、制御記号１バイト領域３１０Ａに設定された制御記号から選択し、選択した制御記号によって文字コード化する。例えば、コード変換部７５０は、取得したコードが「００ｈ」である場合には、「００ｈ」を「ＮＵＬ」に文字コード化する。
【０２１２】
なお、コード変換部７５０は、取得したコードが「０Ｅｈ」である場合には、かかるコード「０Ｅｈ」を「ＳＯ」に文字コード化すると共に、利用するコード割当表を、コード割当表５０に切り替える。
【０２１３】
コード変換部７５０は、取得したコードが「０Ｆｈ」である場合には、かかるコード「０Ｆｈ」を「ＳＩ」に文字コード化すると共に、利用するコード割当表を、コード割当表３１０に切り替える。
【０２１４】
コード変換部７５０の取得したコードが英単語１バイト領域３１０Ｂに設定された英単語に対応するコードである場合について説明する。英単語１バイト領域３１０Ｂに設定された英単語に対応するコードの１バイト目は「２０ｈ〜３Ｆｈ」に含まれる。コード変換部７５０は、取得したコードと、英単語１バイト領域３１０Ｂに設定された各英単語のコードとを比較して、該当する設定位置の英単語を特定し、文字コード化する。例えば、コード変換部７５０は、取得したコードが「２７ｈ」である場合には、係る英単語「２７ｈ」を「ｔｈｅ」に文字コード化する。
【０２１５】
コード変換部７５０が取得したコードが英単語２バイト領域３１０Ｃに設定された英単語に対応するコードである場合について説明する。英単語２バイト領域３１０Ｃに設定された英単語に対応するコードの１バイト目は「４０ｈ〜５Ｆｈ」に含まれる。コード変換部７５０は、取得したコードと、英単語２バイトコード割当表３１５ａとを比較して、該当する設置位置の英単語を特定し、文字コード化する。例えば、コード変換部７５０は、取得したコードが「４０００ｈ」である場合には、英単語２バイトコード割当表３１５ａの「４０００ｈ」に対応する高頻度英単語に文字コード化する。
【０２１６】
コード変換部７５０の取得したコードが２・３バイト領域３１０Ｆに設定された低頻度単語である場合について説明する。２・３バイト領域３１０Ｆに設定された低頻度単語に対応するコードの１バイト目は「Ａ０ｈ〜ＦＦｈ」に含まれる。コード変換部７５０は、取得したコードと、２・３バイトコード割当表３１６とを比較して、対応する設定位置の低頻度単語を特定し、文字コード化する。例えば、コード変換部７５０は、取得したコードが「Ａ０００ｈ」である場合には、２・３バイトコード割当表３１６の「Ａ０００ｈ」に対応する低頻度単語に文字コード化する。
【０２１７】
図１９ａは、本実施例３に係る符号化装置の処理手順を示すフローチャートである。図１９ａに示すように、符号化装置３００の入力部３０１は、テキストデータをレジスタ３０５ａに格納する（ステップＳ３０１）。符号化装置３００のコード変換部３５０は、テキストデータから情報を取得する（ステップＳ３０２）。ステップＳ３０２では、説明の便宜上、情報と表記するが、コード変換部３５０が取得する情報には、英単語、日本単語、制御記号等の情報が含まれる。
【０２１８】
コード変換部３５０は、取得した情報が制御記号の「ＳＯ」または「ＳＩ」であるか否かを判定する（ステップＳ３０３）。コード変換部３５０は、情報が制御記号の「ＳＯ」または「ＳＩ」である場合には（ステップＳ３０３，Ｙｅｓ）、ステップＳ３０４に移行する。
【０２１９】
コード変換部３５０は、制御記号が「ＳＯ」の場合には、コード割当表５０を選択し、制御記号が「ＳＩ」の場合には、コード割当表３１０を選択し（ステップＳ３０４）、ステップＳ３０２に移行する。
【０２２０】
一方、コード変換部３５０は、取得した情報が制御記号の「ＳＯ」でもなく、かつ、「ＳＩ」でもない場合には（ステップＳ３０３，Ｎｏ）、第１コード変換処理を実行する（ステップＳ３０５）。コード変換部３５０は、テキストデータのコード化が終了したか否かを判定する（ステップＳ３０６）。
【０２２１】
コード変換部３５０は、テキストデータのコード化が終了していない場合には（ステップＳ３０６，Ｎｏ）、ステップＳ３０２に移行する。一方、コード変換部３５０は、テキストデータのコード化が終了した場合には（ステップＳ３０６，Ｙｅｓ）、コード化したテキストデータを、レジスタ３０５ｂに格納する（ステップＳ３０７）。
【０２２２】
図２０ａは、第１コード変換処理の処理手順を示すフローチャートである。このコード変換処理は、図１９ａのステップＳ３０５に示した処理に対応するものである。図２０ａに示すように、符号化装置３００のコード変換部３５０は、コード割当表５０を選択中であるか否かを判定する（ステップＳ４０１）。
【０２２３】
コード変換部３５０は、コード割当表５０を選択中である場合には（ステップＳ４０１，Ｙｅｓ）、コード割当表５０を参照し（ステップＳ４０２）、コード割当表５０に基づいて、情報をバイトコードに変換する（ステップＳ４０３）。
【０２２４】
一方、コード変換部３５０は、コード割当表５０を選択中ではなく、コード割当表３１０を選択中である場合には（ステップＳ４０１，Ｎｏ）、ステップＳ４０４に移行する。コード変換部３５０は、コード割当表３１０を参照し（ステップＳ４０４）、コード割当表３１０に基づいて、情報をバイトコードに変換する（ステップＳ４０５）。
【０２２５】
図１９ｂは、本実施例３に係る復号化装置の処理手順を示すフローチャートである。図１９ｂに示すように、復号化装置７００の入力部７０１は、テキストデータをレジスタ７０５ａに格納する（ステップＳ７０１）。復号化装置７００のコード変換部７５０は、テキストデータからコードを取得する（ステップＳ７０２）。
【０２２６】
コード変換部７５０は、取得したコードが制御記号の「ＳＯ」または「ＳＩ」に対応するコードであるか否かを判定する（ステップＳ７０３）。コード変換部７５０は、コードが制御記号の「ＳＯ」または「ＳＩ」に対応するコードである場合には（ステップＳ７０３，Ｙｅｓ）、ステップＳ７０４に移行する。
【０２２７】
コード変換部７５０は、コードが「ＳＯ」に対応するコードの場合には、コード割当表５０を選択し、コードが「ＳＩ」に対応するコードの場合には、コード割当表３１０を選択し（ステップＳ７０４）、ステップＳ７０２に移行する。
【０２２８】
一方、コード変換部７５０は、取得したコードが「ＳＯ」に対応するコードでもなく、かつ、「ＳＩ」に対応するコードでもない場合には（ステップＳ７０３，Ｎｏ）、第２コード変換処理を実行する（ステップＳ７０５）。コード変換部７５０は、テキストデータの復号化が終了したか否かを判定する（ステップＳ７０６）。
【０２２９】
コード変換部７５０は、テキストデータの復号化が終了していない場合には（ステップＳ７０６，Ｎｏ）、ステップＳ７０２に移行する。一方、コード変換部７５０は、テキストデータの復号化が終了した場合には（ステップＳ７０６，Ｙｅｓ）、復号化したテキストデータを、レジスタ７０５ｂに格納する（ステップＳ７０７）。
【０２３０】
図２０ｂは、第２コード変換処理の処理手順を示すフローチャートである。このコード変換処理は、図１９ｂのステップＳ７０５に示した処理に対応するものである。図２０ｂに示すように、復号化装置７００のコード変換部７５０は、コード割当表５０を選択中であるか否かを判定する（ステップＳ８０１）。
【０２３１】
コード変換部７５０は、コード割当表５０を選択中である場合には（ステップＳ８０１，Ｙｅｓ）、コード割当表５０を参照し（ステップＳ８０２）、コード割当表５０に基づいて、バイトコードを文字コードに変換する（ステップＳ８０３）。
【０２３２】
一方、コード変換部７５０は、コード割当表５０を選択中ではなく、コード割当表３１０を選択中である場合には（ステップＳ８０１，Ｎｏ）、ステップＳ８０４に移行する。コード変換部７５０は、コード割当表３１０を参照し（ステップＳ８０４）、コード割当表３１０に基づいて、バイトコードを文字コードに変換する（ステップＳ８０５）。
【０２３３】
次に、本実施例３に係る符号化装置３００の効果について説明する。符号化装置３００は、従来のコード割当表５０と、本実施例３特有のコード割当表３１０とを切り替えて利用する。例えば、符号化装置３００は、テキストデータから、制御記号「ＳＩ」を検出した場合には、制御記号「ＳＩ」以降のテキストデータを、コード割当表３１０を用いて、コード変換する。一方、符号化装置３００は、テキストデータから、制御記号「ＳＯ」を検出した場合には、コード割当表５０を用いて、コード変換する。このため、従来のコード割当表５０を用いたコード変換に対応しつつ、出現頻度が高い文字や単語に対しては、短いバイトコードを割り当てることができる。
【０２３４】
また、復号化装置７００は、上記のコード割当表５０、３１０を切り替えて使用し、コード化されたテキストデータを復号化するため、従来のコード割当表５０を用いた文字コード変換に対応しつつ、出現頻度が高い単語や一般記号に対して、短いバイトコードを割り当てた場合でも、係るバイトコードを単語や一般記号に変換することができる。
【０２３５】
下記に、本実施形態に用いられるハードウェア及びソフトウェアについて説明する。図２１は、コンピュータ１のハードウェア構成例を示す。コンピュータ１は、例えば、プロセッサ４０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）４０３、ドライブ装置４０４、記憶媒体４０５、入力インターフェース（Ｉ／Ｆ）４０６、入力デバイス４０７、出力インターフェース（Ｉ／Ｆ）４０８、出力デバイス４０９、通信インターフェース（Ｉ／Ｆ）４１０、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）インターフェース（Ｉ／Ｆ）４１１およびバス４１２などを含む。それぞれのハードウェアはバス４１２を介して接続されている。
【０２３６】
ＲＡＭ４０２は読み書き可能なメモリ装置であって、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）やＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）などの半導体メモリ、またはＲＡＭでなくてもフラッシュメモリなどが用いられる。ＲＯＭ４０３は、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）なども含む。ドライブ装置４０４は、記憶媒体４０５に記録された情報の読み出しか書き込みかの少なくともいずれか一方を行なう装置である。記憶媒体４０５は、ドライブ装置４０４によって書き込まれた情報を記憶する。記憶媒体４０５は、例えば、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などのフラッシュメモリ、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ブルーレイディスクなどの記憶媒体である。また、例えば、コンピュータ１は、複数種類の記憶媒体それぞれについて、ドライブ装置４０４及び記憶媒体４０５を設ける。
【０２３７】
入力インターフェース４０６は、入力デバイス４０７と接続されており、入力デバイス４０７から受信した入力信号をプロセッサ４０１に伝達する回路である。出力インターフェース４０８は、出力デバイス４０９と接続されており、出力デバイス４０９に、プロセッサ４０１の指示に応じた出力を実行させる回路である。通信インターフェース４１０はネットワーク３を介した通信の制御を行なう回路である。通信インターフェース４１０は、例えばネットワークインターフェースカード（ＮＩＣ）などである。ＳＡＮインターフェース４１１は、ストレージエリアネットワークによりコンピュータ１と接続された記憶装置との通信の制御を行なう回路である。ＳＡＮインターフェース４１１は、例えばホストバスアダプタ（ＨＢＡ）などである。
【０２３８】
入力デバイス４０７は、操作に応じて入力信号を送信する装置である。入力信号は、例えば、キーボードやコンピュータ１の本体に取り付けられたボタンなどのキー装置や、マウスやタッチパネルなどのポインティングデバイスである。出力デバイス４０９は、コンピュータ１の制御に応じて情報を出力する装置である。出力デバイス４０９は、例えば、ディスプレイなどの画像出力装置（表示デバイス）や、スピーカーなどの音声出力装置などである。また、例えば、タッチスクリーンなどの入出力装置が、入力デバイス４０７及び出力デバイス４０９として用いられる。また、入力デバイス４０７及び出力デバイス４０９は、コンピュータ１と一体になっていてもよいし、コンピュータ１に含まれず、例えば、コンピュータ１に外部から接続する装置であってもよい。
【０２３９】
例えば、プロセッサ４０１は、ＲＯＭ４０３や記憶媒体４０５に記憶されたプログラムをＲＡＭ４０２に読み出し、読み出されたプログラムの手順に従って、入力部１０１，２０１，３０１、コード変換部１５０，２５０，３５０、出力部１０２，２０２，３０２の処理を行なう。その際にＲＡＭ４０２はプロセッサ４０１のワークエリアとして用いられる。記憶部の機能は、ＲＯＭ４０３および記憶媒体４０５がプログラムファイル（後述のアプリケーションプログラム２４、ミドルウェア２３およびＯＳ２２など）やデータファイル（テキストデータ、照合対象となる文字列）を記憶し、ＲＡＭ４０２がプロセッサ４０１のワークエリアとして用いられることによって実現される。プロセッサ４０１が読み出すプログラムについては、図２２を用いて説明する。
【０２４０】
図２２は、コンピュータで動作するプログラムの構成例を示す。コンピュータ１において、図２２に示すハードウェア群２１（４０１〜４１２）の制御を行なうＯＳ（オペレーティング・システム）２２が動作する。ＯＳ２２に従った手順でプロセッサ４０１が動作して、ハードウェア群２１の制御・管理が行なわれることにより、アプリケーションプログラム２４やミドルウェア２３に従った処理がハードウェア群２１で実行される。さらに、コンピュータ１において、ミドルウェア２３またはアプリケーションプログラム２４が、ＲＡＭ４０２に読み出されてプロセッサ４０１により実行される。
【０２４１】
プロセッサ４０１が、照合機能が呼び出された場合に、ミドルウェア２３またはアプリケーションプログラム２４の少なくとも一部に基づく処理を行なうことにより、（それらの処理をＯＳ２２に基づいてハードウェア群２１を制御して）コード変換部１５０，２５０，３５０の機能が実現される。照合機能は、それぞれアプリケーションプログラム２４自体に含まれてもよいし、アプリケーションプログラム２４に従って呼び出されることで実行されるミドルウェア２３の一部であってもよい。
【０２４２】
図２３は、実施形態のシステムにおける装置の構成例を示す。図２３のシステムは、コンピュータ１ａ、コンピュータ１ｂ、基地局２およびネットワーク３を含む。コンピュータ１ａは、無線または有線の少なくとも一方により、コンピュータ１ｂと接続されたネットワーク３に接続している。図２ａ、図８ａ、図１４ａに示す符号化装置１００、２００，３００の機能は、図２３に示すコンピュータ１ａとコンピュータ１ｂとのいずれに含まれてもよい。また、図２ｂ、図８ｂ、図１４ｂに示す復号化装置５００、６００，７００の機能は、図２３に示すコンピュータ１ａとコンピュータ１ｂとのいずれに含まれてもよい。
【０２４３】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０２４４】
（付記１）コンピュータに、
記憶装置に格納された、第１コード割当表の１バイト領域に割り当てられた文字の一部を、２バイト領域に割り当て、かつ、前記２バイト領域に割り当てられた前記文字の少なくとも一部に対して、２バイト以上のコードを割り当てることで、入力された文字データをコード化する変換規則を定義した第２コード割当表を参照し、
前記第２コード割当表を基にして、入力された文字データをコード化する
処理を実行させることを特徴とする符号化プログラム。
【０２４５】
（付記２）前記第２コード割当表は、前記第２コード割当表の１バイト領域に、前記第１コード割当表の１バイト領域の英数字が設定されたコード割当表、または、前記第２コード割当表の２バイト領域に、前記第１コード割当表の１バイト領域の英数字が設定されたコード割当表であることを特徴とする付記１に記載の符号化プログラム。
【０２４６】
（付記３）前記記憶装置は、前記第１コード割当表を更に記憶し、前記コード化する処理は、入力された文字データに含まれる制御記号に基づいて、前記第１コード割当表または前記第２コード割当表を選択し、選択した前記第１コード割当表または前記第２コード割当表を基にして、入力された前記文字データをコード化することを特徴とする付記１に記載の符号化プログラム。
【０２４７】
（付記４）コンピュータが実行する符号化方法であって、
記憶装置に格納された、第１コード割当表の１バイト領域に割り当てられた文字の一部を、２バイト領域に割り当て、かつ、前記２バイト領域に割り当てられた前記文字の少なくとも一部に対して、２バイト以上のコードを割り当てることで、入力された文字データをコード化する変換規則を定義した第２コード割当表を参照し、
前記第２コード割当表を基にして、入力された文字データをコード化する
処理を実行することを特徴とする符号化方法。
【０２４８】
（付記５）前記第２コード割当表は、前記第２コード割当表の１バイト領域に、前記第１コード割当表の１バイト領域の英数字が設定されたコード割当表、または、前記第２コード割当表の２バイト領域に、前記第１コード割当表の１バイト領域の英数字が設定されたコード割当表であることを特徴とする付記４に記載の符号化方法。
【０２４９】
（付記６）前記記憶装置は、前記第１コード割当表を更に記憶し、前記コード化する処理は、入力された文字データに含まれる制御記号に基づいて、前記第１コード割当表または前記第２コード割当表を選択し、選択した前記第１コード割当表または前記第２コード割当表を基にして、入力された前記文字データをコード化することを特徴とする付記４に記載の符号化方法。
【０２５０】
（付記７）第１コード割当表の１バイト領域に割り当てられた文字の一部を、２バイト領域に割り当て、かつ、前記２バイト領域に割り当てられた前記文字の少なくとも一部に対して、２バイト以上のコードを割り当てることで、入力された文字データをコード化する変換規則を定義した第２コード割当表を記憶する記憶部と、
前記第２コード割当表を基にして、入力された文字データをコード化するコード変換部と
を有することを特徴とする符号化装置。
【０２５１】
（付記８）前記第２コード割当表は、前記第２コード割当表の１バイト領域に、前記第１コード割当表の１バイト領域の英数字が設定されたコード割当表、または、前記第２コード割当表の２バイト領域に、前記第１コード割当表の１バイト領域の英数字が設定されたコード割当表であることを特徴とする付記７に記載の符号化装置。
【０２５２】
（付記９）前記記憶部は、前記第１コード割当表を更に記憶し、前記コード変換部は、入力された文字データに含まれる制御記号に基づいて、前記第１コード割当表または前記第２コード割当表を選択し、選択した前記第１コード割当表または前記第２コード割当表を基にして、入力された前記文字データをコード化する処理を更に実行することを特徴とする付記７に記載の符号化装置。
【０２５３】
（付記１０）コンピュータに、
記憶装置に格納された、第１コード割当表の１バイト領域に割り当てられた文字の一部を、２バイト領域に割り当て、かつ、前記２バイト領域に割り当てられた前記文字の少なくとも一部に対して、２バイト以上のコードを割り当てることで、入力された文字データをコード化する変換規則を定義した第２コード割当表を参照し、
前記第２コード割当表を基にして、コード化されたデータを文字データに復号化する
処理を実行させることを特徴とする復号化プログラム。
【０２５４】
（付記１１）コンピュータが実行する復号化方法であって、
記憶装置に格納された、第１コード割当表の１バイト領域に割り当てられた文字の一部を、２バイト領域に割り当て、かつ、前記２バイト領域に割り当てられた前記文字の少なくとも一部に対して、２バイト以上のコードを割り当てることで、入力された文字データをコード化する変換規則を定義した第２コード割当表を参照し、
前記第２コード割当表を基にして、コード化されたデータを文字データに復号化する
処理を実行させることを特徴とする復号化方法。
【０２５５】
（付記１２）第１コード割当表の１バイト領域に割り当てられた文字の一部を、２バイト領域に割り当て、かつ、前記２バイト領域に割り当てられた前記文字の少なくとも一部に対して、２バイト以上のコードを割り当てることで、入力された文字データをコード化する変換規則を定義した第２コード割当表を記憶する記憶部と、
前記第２コード割当表を基にして、コード化されたデータを文字データに復号化するコード変換部と
を有することを特徴とする復号化装置。
【符号の説明】
【０２５６】
１００，２００，３００  符号化装置
１５０，２５０，３５０  コード変換部
【図１ａ】
0006540306.tif 000002
【図１ｂ】
0006540306.tif 000003
【図２ａ】
0006540306.tif 000004
【図２ｂ】
0006540306.tif 000005
【図３】
0006540306.tif 000006
【図４】
0006540306.tif 000007
【図５】
0006540306.tif 000008
【図６ａ】
0006540306.tif 000009
【図６ｂ】
0006540306.tif 000010
【図７ａ】
0006540306.tif 000011
【図７ｂ】
0006540306.tif 000012
【図８ａ】
0006540306.tif 000013
【図８ｂ】
0006540306.tif 000014
【図９】
0006540306.tif 000015
【図１０】
0006540306.tif 000016
【図１１】
0006540306.tif 000017
【図１２ａ】
0006540306.tif 000018
【図１２ｂ】
0006540306.tif 000019
【図１３ａ】
0006540306.tif 000020
【図１３ｂ】
0006540306.tif 000021
【図１４ａ】
0006540306.tif 000022
【図１４ｂ】
0006540306.tif 000023
【図１５】
0006540306.tif 000024
【図１６】
0006540306.tif 000025
【図１７】
0006540306.tif 000026
【図１８】
0006540306.tif 000027
【図１９ａ】
0006540306.tif 000028
【図１９ｂ】
0006540306.tif 000029
【図２０ａ】
0006540306.tif 000030
【図２０ｂ】
0006540306.tif 000031
【図２１】
0006540306.tif 000032
【図２２】
0006540306.tif 000033
【図２３】
0006540306.tif 000034
【図２４】
0006540306.tif 000035