(57)【要約】【課題】  辞書型符号化方法において、参照部を圧縮した結果、参照部に含まれる文字列単位の符号の始まりがバイトアライメントの位置にならない場合であっても、辞書型符号化方法を用いた、主データ部の圧縮・伸張をすること。【解決手段】  ＣＰＵ１０は、元英和参照部２０２ａを可変長コード化法で圧縮し、圧縮後英和参照部３０２とする。また、ＣＰＵ１０は、元英和主データ部２０２ｂに含まれている符号化対象文字列が圧縮後英和参照部３０２に含まれている場合に、当該文字列が含まれている圧縮後英和参照部３０２中のアライメント位置を検出する。そして、ＣＰＵ１０は、検出されたアライメント位置からビット単位で順次ずらすことにより伸張を所定回数試行し、伸張可能な数が１個の場合に、検出されたアライメント位置を用いた辞書型符号化方法により、当該符号化対象文字列を符号化する。【選択図】  図２
2005136622.tif 000002
【特許請求の範囲】
【請求項１】
文字列のコードが見出語単位で一連に記述されている辞書データを参照部と主データ部とに区分して記憶する記憶手段と、
前記参照部を構成する文字列を可変長コードで圧縮し、可変長圧縮データとする圧縮手段と、
前記主データ部の符号化対象文字列が前記参照部に含まれている場合に、当該文字列が含まれている前記可変長圧縮データ中のアライメント位置を検出する位置検出手段と、
伸張位置を前記検出されたアライメント位置からビット単位で順次ずらすことにより前記参照部の伸張を所定回数試行し、伸張可能な数を算出する算出手段と、
この算出手段により算出された数が１個の場合に、前記検出されたアライメント位置を用いた前記参照部を参照元とする辞書型符号化方法により、前記主データ部中の前記符号化対象文字列を符号化する符号化手段と、
を備えることを特徴とする辞書データ圧縮装置。
【請求項２】
前記位置検出手段は、前記符号化対象文字列が含まれている前記可変長圧縮データ中の、前記アライメント位置を基とする相対位置を検出する相対位置検出手段を有し、
前記符号化手段は、前記算出手段により伸張可能な数が複数算出された場合に、前記検出されたアライメント位置及び相対位置を用いた前記辞書型符号化方法により、前記主データ部中の前記符号化対象文字列を符号化する複数伸張可能時符号化手段を有する、
ことを特徴とする請求項１に記載の辞書データ圧縮装置。
【請求項３】
前記算出手段は、ビット単位で順次ずらして伸張する前記伸張試行の際に、伸張試行した文字列が前記符号化対象文字列となった順位を判定する判定手段を有し、
前記符号化手段は、前記算出手段により伸張可能な数が複数算出された場合に、前記検出されたアライメント位置及び前記判定された順位を用いた前記辞書型符号化方法により、前記主データ部中の前記符号化対象文字列を符号化する複数伸張可能時符号化手段を有する、
ことを特徴とする請求項１に記載の辞書データ圧縮装置。
【請求項４】
前記複数伸張可能時符号化手段は、前記判定された順位を、当該順位を表すために必要な最小限のビット数で表すことにより前記符号化を行う順位ビット数制限手段を有することを特徴とする請求項３に記載の辞書データ圧縮装置。
【請求項５】
参照部と主データ部とに区分され、文字列のコードが見出語単位で一連に記述されている辞書データであって、前記参照部を構成する見出語単位の文字列が可変長コード法により可変長圧縮データに圧縮され、前記主データ部を構成する見出語単位の文字列が前記圧縮された参照部のアライメント位置を参照元情報とする辞書型符号化方法により符号化された辞書データを記憶する記憶手段と、
前記辞書データに含まれている複数の見出語の中から見出語を選択する見出語選択手段と、
この見出語選択手段により選択された見出語が前記主データ部に含まれている場合に、当該見出語に対応する見出語単位の文字列の符号に基づき、当該符号の参照元である前記圧縮された参照部中のアライメント位置からビット単位で伸張位置をずらしていき、伸張可能な位置から伸張することで可変長圧縮データとされていた文字列を取得する取得手段と、
前記取得された文字列を用いた前記辞書型符号化方法で、前記選択された見出語に対応する見出語単位の文字列の符号を復号する復号手段と、
を備えたことを特徴とする電子辞書装置。
【請求項６】
前記辞書データの前記主データ部を構成する見出語単位の文字列には、前記アライメント位置を参照元情報とした前記辞書型符号化方法により符号化されている文字列と、前記アライメント位置に加えて当該アライメント位置からの相対位置をも参照元情報とした前記辞書型符号化方法により符号化された文字列とがあり、
前記取得手段は、前記選択された見出語に対応する見出語単位の文字列の符号が、アライメント位置及び相対位置を参照元情報とする符号であった場合には、当該符号の参照元である前記参照部中のアライメント位置から当該相対位置分ずれた位置から前記圧縮された参照部を伸張する直接位置伸張手段を有する、
ことを特徴とする請求項５に記載の電子辞書装置。
【請求項７】
前記辞書データの前記主データ部を構成する見出語単位の文字列には、前記アライメント位置を参照元情報とした前記辞書型符号化方法により符号化されている文字列と、前記アライメント位置に加えて当該アライメント位置から伸張位置をずらしていった場合の伸張可能な位置の順位をも参照元情報とした前記辞書型符号化方法により符号化された文字列とがあり、
前記取得手段は、前記選択された見出語に対応する見出語単位の文字列の符号が、アライメント位置及び順位を参照元情報とする符号であった場合には、前記圧縮された参照部中の当該アライメント位置からビット単位で伸張位置をずらしていき、当該順位となる伸張可能な位置から前記圧縮された参照部を伸張する順位位置伸張手段を有する、
ことを特徴とする請求項５に記載の電子辞書装置。
【請求項８】
コンピュータに、
文字列のコードが見出語単位で一連に記述されている辞書データを参照部と主データ部とに区分して記憶する記憶機能と、
前記参照部を構成する文字列を可変長コードで圧縮し、可変長圧縮データとする圧縮機能と、
前記主データ部の符号化対象文字列が前記参照部に含まれている場合に、当該文字列が含まれている前記可変長圧縮データ中のアライメント位置を検出する位置検出機能と、
伸張位置を前記検出されたアライメント位置からビット単位で順次ずらすことにより前記参照部の伸張を所定回数試行し、伸張可能な数を算出する算出機能と、
この算出機能により算出された数が１個の場合に、前記検出されたアライメント位置を用いた前記参照部を参照元とする辞書型符号化方法により、前記主データ部中の前記符号化対象文字列を符号化する符号化機能と、
を実現させるためのプログラム。
【請求項９】
コンピュータに、
参照部と主データ部とに区分され、文字列のコードが見出語単位で一連に記述されている辞書データであって、前記参照部を構成する見出語単位の文字列が可変長コード法により可変長圧縮データに圧縮され、前記主データ部を構成する見出語単位の文字列が前記圧縮された参照部のアライメント位置を参照元情報とする辞書型符号化方法により符号化された辞書データを記憶する記憶機能と、
前記辞書データに含まれている複数の見出語の中から見出語を選択する見出語選択機能と、
この見出語選択機能により選択された見出語が前記主データ部に含まれている場合に、当該見出語に対応する見出語単位の文字列の符号に基づき、当該符号の参照元である前記圧縮された参照部中のアライメント位置からビット単位で伸張位置をずらしていき、伸張可能な位置から伸張することで可変長圧縮データとされていた文字列を取得する取得機能と、
前記取得された文字列を用いた前記辞書型符号化方法で、前記選択された見出語に対応する見出語単位の文字列の符号を復号する復号機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、辞書データを圧縮する辞書データ圧縮装置、圧縮された辞書データを伸張して利用する電子辞書装置及びプログラムに関する。
【背景技術】
【０００２】
データの圧縮アルゴリズムには種々のものが知られているが、電子辞書装置等で利用される辞書データの圧縮は、一般文章データの圧縮と比較して、「見出語毎のランダムアクセス（復号・伸張）が必要」、「符号化（圧縮ともいう。）は製品開発時に１度行うのみであるため十分時間をかけても問題がない」という２点において大きく異なっている。
【０００３】
「見出語毎のランダムアクセス」とは、辞書データを見出語単位で復号・伸張することをいう。辞書データは紙の辞書と同等の内容を有している。符号化前の辞書データは、紙の辞書に印字されている文字を文字コードとしたものであって、一連のテキストのデータとなっているのが一般的である。すなわち、先頭の見出語から順番に、紙の辞書に印字されている文字（テキスト）が連続したテキストのデータである。この辞書データを全体として単純に圧縮すると、任意の見出語の情報（当該見出語に関する説明文）を復号することができない。このため、連続したテキストデータを見出語毎（見出語単位）で区切り、圧縮する必要がある。
【０００４】
「符号化は製品開発時に１度行うのみ」とは、文字通りメーカ側が十分な時間をかけて辞書データを符号化できることを意味する。すなわち、電子辞書装置では圧縮された辞書データを伸張するのみであり、圧縮（符号化）することはない。従って、高速な計算機によるあらゆる可能性を試した後に最も効率のよい圧縮方法を採用できるという利点がある。
【０００５】
この様な特徴の中で、例えば、特許文献１、特許文献２及び特許文献３のような辞書データの圧縮方法が提案されている。
【０００６】
例えば、辞書データ全体を１割程度の部分（以下適宜「参照部」という。）と残りの部分（以下適宜「主データ部」という。）とに区分する。そして、主データ部中の文字列が参照部中に含まれているか否かを判定し、含まれている場合には含まれている参照部中の位置及び長さに基づいて符号化することにより主データ部の圧縮を行う方法が知られている。
【０００７】
具体的には、主データ部中の符号化対象の文字列が、参照部中のどの位置の文字列に相当するのかを判定して符号化する。このような文字列が含まれる参照部を参照して符号化する方法は、辞書型符号化方法として知られているものである。辞書型符号化方法にはＬＺ７７法やＬＺ７８法等があるが、辞書データに辞書型符号化方法を適用する特徴としては、「見出語毎のランダムアクセス」を可能とするため、参照部を固定とすることが挙げられる。
【０００８】
また、参照部中に一致する文字列が存在しない場合には、その符号化対象の文字列をハフマン符号等で直接可変長で符号化することにより圧縮する。このように、符号化には、文字列が含まれる参照部の位置を参照して符号化する辞書型符号化方法と、直接ハフマン符号等の可変長符号により符号化する方法の２つを利用する。
【特許文献１】特開平６−２５１０７０号公報
【特許文献２】特開平８−３１４９６０号公報
【特許文献３】特開平１１−９６１８６号広報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
圧縮される対象は主データ部のみならず、参照部も圧縮の対象である。しかし、より効率の良い圧縮方法に基づいて参照部を圧縮すると、参照部に含まれる文字列単位の符号（コード）の始まりがバイトアライメントの位置になるとは限らない。
【００１０】
従って、圧縮した参照部を参照する辞書型符号化方法により主データ部を符号化する場合においては、参照する参照部中の文字列の始まりの位置を、バイト位置ではなく、辞書データの先頭からカウントしたビット位置で指定する方法が考えられる。ところが、ビット位置で指定する場合には、ビット位置を表す情報量（符号）が大きくなるため、符号化した主データ部の情報量が大きくなり、辞書データ全体としての圧縮効率が悪くなってしまう。
【００１１】
また、参照部において、文字列単位の符号の開始位置がバイトアライメントの位置になるように付加ビットを用いて参照部の圧縮を調整する方法が考えられる。しかし、この方法ではバイトアライメントの位置に揃えるために無駄な付加ビットを利用するため、参照部の圧縮効率が低下してしまう。
【００１２】
本発明は以上の課題に鑑みてなされたものであり、参照部を圧縮した為に、参照部に含まれる文字列単位の符号の始まりがバイトアライメントの位置とならない場合であっても、辞書型符号化方法を用いた、主データ部の圧縮・伸張を問題なく実現することである。
【課題を解決するための手段】
【００１３】
以上の課題を解決するため、請求項１に記載の発明の辞書データ圧縮装置は、文字列のコードが見出語単位で一連に記述されている辞書データを参照部と主データ部とに区分して記憶する記憶手段（例えば、図２のＲＯＭ３０；圧縮後英和辞典データ３００）と、
前記参照部を構成する文字列を可変長コードで圧縮し、可変長圧縮データとする圧縮手段（例えば、図２のＣＰＵ１０；図５のステップＡ１０）と、
前記主データ部の符号化対象文字列が前記参照部に含まれている場合に、当該文字列が含まれている前記可変長圧縮データ中のアライメント位置を検出する位置検出手段（例えば、図２のＣＰＵ１０；図５のステップＡ１６）と、
伸張位置を前記検出されたアライメント位置からビット単位で順次ずらすことにより前記参照部の伸張を所定回数試行し、伸張可能な数を算出する算出手段（例えば、図２のＣＰＵ１０；図６のステップＢ１４）と、
この算出手段により算出された数が１個の場合に、前記検出されたアライメント位置を用いた前記参照部を参照元とする辞書型符号化方法により、前記主データ部中の前記符号化対象文字列を符号化する符号化手段（例えば、図２のＣＰＵ１０；図６のステップＢ２２）と、
を備えることを特徴とする。
【００１４】
また、請求項８に記載のプログラムは、
コンピュータに、
文字列のコードが見出語単位で一連に記述されている辞書データを参照部と主データ部とに区分して記憶する記憶機能（例えば、図２のＲＯＭ３０；圧縮後英和辞典データ３００）と、
前記参照部を構成する文字列を可変長コードで圧縮し、可変長圧縮データとする圧縮機能（例えば、図２のＣＰＵ１０；図５のステップＡ１０）と、
前記主データ部の符号化対象文字列が前記参照部に含まれている場合に、当該文字列が含まれている前記可変長圧縮データ中のアライメント位置を検出する位置検出機能（例えば、図２のＣＰＵ１０；図５のステップＡ１６）と、
伸張位置を前記検出されたアライメント位置からビット単位で順次ずらすことにより前記参照部の伸張を所定回数試行し、伸張可能な数を算出する算出機能（例えば、図２のＣＰＵ１０；図６のステップＢ１４）と、
この算出機能により算出された数が１個の場合に、前記検出されたアライメント位置を用いた前記参照部を参照元とする辞書型符号化方法により、前記主データ部中の前記符号化対象文字列を符号化する符号化機能（例えば、図２のＣＰＵ１０；図６のステップＢ２２）と、
を実現させることを特徴とする。
【００１５】
請求項１又は８に記載の発明によれば、参照部を構成する文字列を可変長コードで圧縮した場合において、主データ部の符号化対象文字列が含まれているアライメント位置からビット単位で順次ずらして参照部を伸張試行する。そして、伸張可能な回数が１回であれば、アライメント位置を用いるだけで辞書型符号化方法で符号化することができる。従って、参照部の文字列が可変長で圧縮されたために、符号化対象文字列と同一の文字列の符号の始まりがアライメント位置でない場合であっても、主データ部を復号する際にビット位置を指定することなく主データ部を圧縮することが可能となる。
【００１６】
請求項２に記載の発明は、請求項１に記載の辞書データ圧縮装置において、
前記位置検出手段は、前記符号化対象文字列が含まれている前記可変長圧縮データ中の、前記アライメント位置を基とする相対位置を検出する相対位置検出手段（例えば、図２のＣＰＵ１０；図５のステップＡ１６）を有し、
前記符号化手段は、前記算出手段により伸張可能な数が複数算出された場合に、前記検出されたアライメント位置及び相対位置を用いた前記辞書型符号化方法により、前記主データ部中の前記符号化対象文字列を符号化する複数伸張可能時符号化手段（例えば、図２のＣＰＵ１０；図６のステップＢ２４）を有する、
ことを特徴とする。
【００１７】
請求項２に記載の発明によれば、主データ部の文字列を、参照部に含まれている符号化対象文字列と同一の文字列のアライメント位置及び相対位置を用いることにより符号化することができる。従って、参照部の文字列が可変長で圧縮されたために、参照部に含まれる文字列単位の符号の始まりがアライメント位置から開始していない場合であっても、辞書型符号化方法により復号可能な辞書データを作成することが可能となる。
【００１８】
請求項３に記載の発明は、請求項１に記載の辞書データ圧縮装置において、
前記算出手段は、ビット単位で順次ずらして伸張する前記伸張試行の際に、伸張試行した文字列が前記符号化対象文字列となった順位を判定する判定手段（例えば、図２のＣＰＵ１０；図１０のステップＤ１４）を有し、
前記符号化手段は、前記算出手段により伸張可能な数が複数算出された場合に、前記検出されたアライメント位置及び前記判定された順位を用いた前記辞書型符号化方法により、前記主データ部中の前記符号化対象文字列を符号化する複数伸張可能時符号化手段（例えば、図２のＣＰＵ１０；図１０のステップＤ２６）を有する、
ことを特徴とする。
【００１９】
請求項３に記載の発明によれば、主データ部の文字列を、参照部に含まれている符号化対象文字列と同一の文字列のアライメント位置及びアライメント内において符号化対象文字列となる順位を用いることにより符号化することができる。従って、参照部の文字列が可変長で圧縮されたために、参照部に含まれる文字列単位の符号の始まりがアライメント位置から開始していない場合であっても、辞書型符号化方法により復号可能な辞書データを作成することが可能となる。
【００２０】
請求項４に記載の発明は、請求項３に記載の辞書データ圧縮装置において、
前記複数伸張可能時符号化手段は、前記判定された順位を、当該順位を表すために必要な最小限のビット数で表すことにより前記符号化を行う順位ビット数制限手段（例えば、図２のＣＰＵ１０；図１０のステップＤ２６）を有することを特徴とする。
【００２１】
請求項４に記載の発明によれば、主データ部の文字列を、参照部に含まれている符号化対象文字列と同一の文字列のアライメント位置及びアライメント内において符号化対象文字列となる順位を用いることにより符号化する場合において、必要な最小限のビット数で順位を表すことができる。
【００２２】
請求項５に記載の発明の電子辞書装置は、
参照部と主データ部とに区分され、文字列のコードが見出語単位で一連に記述されている辞書データであって、前記参照部を構成する見出語単位の文字列が可変長コード法により可変長圧縮データに圧縮され、前記主データ部を構成する見出語単位の文字列が前記圧縮された参照部のアライメント位置を参照元情報とする辞書型符号化方法により符号化された辞書データを記憶する記憶手段（例えば、図８のＥＥＰＲＯＭ１４０；圧縮後英和辞典データ１４００）と、
前記辞書データに含まれている複数の見出語の中から見出語を選択する見出語選択手段（図８のＣＰＵ１１０；図９のステップＣ１２）と、
この見出語選択手段により選択された見出語が前記主データ部に含まれている場合に、当該見出語に対応する見出語単位の文字列の符号に基づき、当該符号の参照元である前記圧縮された参照部中のアライメント位置からビット単位で伸張位置をずらしていき、伸張可能な位置から伸張することで可変長圧縮データとされていた文字列を取得する取得手段（図８のＣＰＵ１１０；図１０のステップＤ２４）と、
前記取得された文字列を用いた前記辞書型符号化方法で、前記選択された見出語に対応する見出語単位の文字列の符号を復号する復号手段（図８のＣＰＵ１１０；図９のステップＣ２０）と、
を備えたことを特徴とする。
【００２３】
また、請求項９に記載の発明のプログラムは、
コンピュータに、
参照部と主データ部とに区分され、文字列のコードが見出語単位で一連に記述されている辞書データであって、前記参照部を構成する見出語単位の文字列が可変長コード法により可変長圧縮データに圧縮され、前記主データ部を構成する見出語単位の文字列が前記圧縮された参照部のアライメント位置を参照元情報とする辞書型符号化方法により符号化された辞書データを記憶する記憶機能（例えば、図８のＥＥＰＲＯＭ１４０；圧縮後英和辞典データ１４００）と、
前記辞書データに含まれている複数の見出語の中から見出語を選択する見出語選択機能（図８のＣＰＵ１１０；図９のステップＣ１２）と、
この見出語選択機能により選択された見出語が前記主データ部に含まれている場合に、当該見出語に対応する見出語単位の文字列の符号に基づき、当該符号の参照元である前記圧縮された参照部中のアライメント位置からビット単位で伸張位置をずらしていき、伸張可能な位置から伸張することで可変長圧縮データとされていた文字列を取得する取得機能（図８のＣＰＵ１１０；図１０のステップＤ２４）と、
前記取得された文字列を用いた前記辞書型符号化方法で、前記選択された見出語に対応する見出語単位の文字列の符号を復号する復号機能（図８のＣＰＵ１１０；図９のステップＣ２０）と、
を実現させることを特徴とする。
【００２４】
請求項５又は９に記載の発明によれば、参照部が可変長コードで圧縮され、参照部に含まれる符号列の開始位置がアライメント位置に揃っていない場合であっても、辞書型符号化方法で主データ部を復号可能な電子辞書装置を実現することができる。
【００２５】
請求項６に記載の発明は、請求項５に記載の電子辞書装置において、
前記辞書データの前記主データ部を構成する見出語単位の文字列には、前記アライメント位置を参照元情報とした前記辞書型符号化方法により符号化されている文字列と、前記アライメント位置に加えて当該アライメント位置からの相対位置をも参照元情報とした前記辞書型符号化方法により符号化された文字列とがあり、
前記取得手段は、前記選択された見出語に対応する見出語単位の文字列の符号が、アライメント位置及び相対位置を参照元情報とする符号であった場合には、当該符号の参照元である前記参照部中のアライメント位置から当該相対位置分ずれた位置から前記圧縮された参照部を伸張する直接位置伸張手段（図８のＣＰＵ１１０；図１０のステップＤ２６）を有する、
ことを特徴とする。
【００２６】
請求項６に記載の発明によれば、参照部が可変長コードで圧縮され、参照部に含まれる符号列の開始位置がアライメント位置に揃っていない場合であっても、アライメント位置及び相対位置に基づいて辞書型符号化方法で主データ部を復号可能な電子辞書装置を実現することができる。
【００２７】
請求項７に記載の発明は、請求項５に記載の電子辞書装置において、
前記辞書データの前記主データ部を構成する見出語単位の文字列には、前記アライメント位置を参照元情報とした前記辞書型符号化方法により符号化されている文字列と、前記アライメント位置に加えて当該アライメント位置から伸張位置をずらしていった場合の伸張可能な位置の順位をも参照元情報とした前記辞書型符号化方法により符号化された文字列とがあり、
前記取得手段は、前記選択された見出語に対応する見出語単位の文字列の符号が、アライメント位置及び順位を参照元情報とする符号であった場合には、前記圧縮された参照部中の当該アライメント位置からビット単位で伸張位置をずらしていき、当該順位となる伸張可能な位置から前記圧縮された参照部を伸張する順位位置伸張手段（図８のＣＰＵ１１０；図１６のステップＦ２８）を有する、
ことを特徴とする。
【００２８】
請求項７に記載の発明によれば、参照部が可変長コードで圧縮され、参照部に含まれる符号列の開始位置がアライメント位置に揃っていない場合であっても、アライメント位置及びアライメント内における復号可能な順位に基づいて辞書型符号化方法で主データ部を復号可能な電子辞書装置を実現することができる。
【発明の効果】
【００２９】
請求項１又は８に記載の発明によれば、参照部を構成する文字列を可変長コードで圧縮した場合において、主データ部の符号化対象文字列が含まれているアライメント位置からビット単位で順次ずらして参照部を伸張試行する。そして、伸張可能な回数が１回であれば、アライメント位置を用いるだけで辞書型符号化方法で符号化することができる。従って、参照部の文字列が可変長で圧縮されたために、符号化対象文字列と同一の文字列の符号の始まりがアライメント位置でない場合であっても、主データ部を復号する際にビット位置を指定することなく主データ部を圧縮することが可能となる。
【００３０】
請求項２に記載の発明によれば、主データ部の文字列を、参照部に含まれている符号化対象文字列と同一の文字列のアライメント位置及び相対位置を用いることにより符号化することができる。従って、参照部の文字列が可変長で圧縮されたために、参照部に含まれる文字列単位の符号の始まりがアライメント位置から開始していない場合であっても、辞書型符号化方法により復号可能な辞書データを作成することが可能となる。
【００３１】
請求項３に記載の発明によれば、主データ部の文字列を、参照部に含まれている符号化対象文字列と同一の文字列のアライメント位置及びアライメント内において符号化対象文字列となる順位を用いることにより符号化することができる。従って、参照部の文字列が可変長で圧縮されたために、参照部に含まれる文字列単位の符号の始まりがアライメント位置から開始していない場合であっても、辞書型符号化方法により復号可能な辞書データを作成することが可能となる。
【００３２】
請求項４に記載の発明によれば、主データ部の文字列を、参照部に含まれている符号化対象文字列と同一の文字列のアライメント位置及びアライメント内において符号化対象文字列となる順位を用いることにより符号化する場合において、必要な最小限のビット数で順位を表すことができる。
【００３３】
請求項５又は９に記載の発明によれば、参照部が可変長コードで圧縮され、参照部に含まれる符号列の開始位置がアライメント位置に揃っていない場合であっても、辞書型符号化方法で主データ部を復号可能な電子辞書装置を実現することができる。
【００３４】
請求項６に記載の発明によれば、参照部が可変長コードで圧縮され、参照部に含まれる符号列の開始位置がアライメント位置に揃っていない場合であっても、アライメント位置及び相対位置に基づいて辞書型符号化方法で主データ部を復号可能な電子辞書装置を実現することができる。
【００３５】
請求項７に記載の発明によれば、参照部が可変長コードで圧縮され、参照部に含まれる符号列の開始位置がアライメント位置に揃っていない場合であっても、アライメント位置及びアライメント内における復号可能な順位に基づいて辞書型符号化方法で主データ部を復号可能な電子辞書装置を実現することができる。
【発明を実施するための最良の形態】
【００３６】
以下、図を参照して本発明を辞書データ圧縮装置の一種であるコンピュータ及び電子辞書に適用した場合の実施形態について図面を参照して詳細に説明する。但し、本発明が適用可能なものはこれに限定されるものではない。
【００３７】
〔第１実施形態〕
［１．全体構成］
図１は、本発明を適用したコンピュータ１及び電子辞書装置１００の概観図である。コンピュータ１は、通常、電子辞書装置１００の製造メーカ等に設置されており、辞書データの圧縮の用に供される。コンピュータ１で圧縮された辞書データは、ＥＥＰＲＯＭ１０７に記憶されて、ＥＥＰＲＯＭ１０７が実装された電子辞書装置１００が製造される。そして、電子辞書装置１００においては、圧縮された辞書データが伸張され、辞書データの内容（見出語や説明情報等）が表示される。
【００３８】
辞書データとは、見出語と、当該見出語を説明するための説明情報とからなるデータであり、例えば国語辞典や英和辞典、和英辞典、英英辞典、カタカナ語辞典などの電子辞書データがある。但し、簡明のために、本実施形態においては、コンピュータ１により圧縮され、電子辞書装置１００に記憶される辞書データは、英和辞典の辞書データのみとして説明する。また、圧縮（符号化）前の辞書データを圧縮後の辞書データと区別するために、以下では、圧縮前の辞書データを「元辞書データ」という。また、圧縮後の辞書データを「圧縮後辞書データ」という。
【００３９】
図１に示すように、コンピュータ１は、ＣＲＴ（Cathode Ray Tube）等のディスプレイ３と、キーボード５と、ＲＡＭやハードディスク等のメモリ７とを備えた汎用のサーバ・コンピュータ等のハードウェアで構成される。電子辞書装置１００は、ＬＣＤ（Liquid Crystal Display）等のディスプレイ１０３と、文字入力キーや辞書種別の選択キー等の各種キー群１０５と、ＥＥＰＲＯＭ１０７とを備えて構成される。
【００４０】
電子辞書装置１００の基本的な機能は、次の通りである。すなわち、ユーザによって辞書が選択され、検索語となる文字が入力される（以下、入力された文字を「入力文字」という。）と、電子辞書装置１００は、入力文字に適合する見出語を辞書データの中から検索し、見出語候補として一覧表示する。そして、検索した見出語に対応する説明情報を表示する。
【００４１】
［１．２  辞書データ圧縮装置］
［１．２．１  構成］
まず、辞書データをコンピュータ１において圧縮する場合の処理について説明する。図２は、コンピュータ１を示すブロック図である。同図に示すように、コンピュータ１は、ＣＰＵ（Central Processing Unit）１０と、ハードディスク２０と、ＲＡＭ（Random Access Memory）３０と、ＲＯＭ（Read Only Memory）４０と、入力部５０と、表示部６０とを備えている。
【００４２】
ハードディスク２０は、オペレーティングシステム、必要なプログラム又はデータファイル等を格納する。また、ハードディスク２０には、元英和辞典データ２０２と、ハフマン符号テーブル２０４と、辞書圧縮プログラム２１０と、第１破綻符号化プログラム２１２とが記憶されている。ここで、辞書データは、所定の割合で分割（区分）されており、辞書データ全体の１割の部分と残り９割の部分とに分割されている。また、辞書データ全体の１割の部分を参照部、残りの９割の部分を主データ部という。なお、参照部の割合は辞書データ全体の１割に限定される訳ではなく、例えば、５％でも良いし、２割でも良い。
【００４３】
元英和辞典データ２０２は、「英和辞典」のコンテンツの圧縮前のデータが入っている辞書データである。図３（ａ）に元英和辞典データ２０２の概要を図示した。図３（ａ）において、「○○○○」で示した部分は見出語を表し、「・・・・・」で示した部分は当該見出語の説明文（見出語を説明する文章を構成する文字）を表している。図３（ａ）に示すように、元英和辞典データ２０２は、紙の辞書に印字されている文字を文字コードとした一連のテキストのデータとなっている。
【００４４】
また、図３（ｂ）は、説明の便宜上、元英和辞典データ２０２を見出語単位に区切って図式化した概念図である。図３（ｂ）によれば、例えば、見出語「applet」及び「applet」の説明情報（以下、１つの見出語とその見出語の説明情報とを合わせて「見出語単位データ」という。）は、元英和辞典データ２０２の先頭を「１」バイト目とした「１００」バイト目から記述されている。見出語「ASCII」の見出語単位データは、元英和辞典データ２０２の「１７５０」バイト目から記述されている。また、図３（ｂ）に示したように、元英和辞典データ２０２は、ここでは、データ全体の１割の部分を参照部、残る９割の部分を主データ部として区分されている。以下、元英和辞典データ２０２の参照部を元英和参照部２０２ａ、主データ部を元英和主データ部２０２ｂという。
【００４５】
ハフマン符号テーブル２０４は、文字列と、文字列をハフマン符号化した場合のハフマン符号とを初期値として記憶しているテーブルである。元英和参照部２０２ａに含まれている文字列について、最小の情報量となるようにそれぞれの文字列に対し、一意に符号を割り当てている。
【００４６】
図４（ａ）はハフマン符号テーブル２０４のデータ構成の一例を示した図である。ハフマン符号テーブル２０４は、文字列（例えば、「［名詞］」）と、ハフマン符号（例えば、「１０１１００…」）とを対応づけて保存している。
【００４７】
ＲＡＭ３０は、ＣＰＵ１０が実行する各種プログラムや、これらのプログラムの実行にかかるデータ等を一時的に保持するメモリ領域を備える。本実施形態では、圧縮後英和辞典データ３００と、見出語テーブル３０６とを備えている。なお、ＲＡＭ３０は、図１におけるメモリ７に相当する。
【００４８】
圧縮後英和辞典データ３００は、ＣＰＵ１０が、辞書圧縮プログラム２１０に基づいて辞書圧縮処理を実行することにより、元英和辞典データ２０２を圧縮した辞書データである。詳細は後述するが、元英和参照部２０２ａが符号化されることにより圧縮され、圧縮後英和参照部３０２となり、元英和主データ部２０２ｂが符号化されることにより圧縮され、圧縮後英和主データ部３０４となる。
【００４９】
見出語テーブル３０６は、圧縮後英和辞典データ３００に含まれている各見出語の圧縮後英和辞典データ３００の開始位置（開始バイト）を記録したテーブルである。ＣＰＵ１０は、見出語テーブル３０６を参照することにより、見出語単位データを読み出す。
【００５０】
図４（ｂ）は、見出語テーブル３０６のデータ構造の一例を示した図である。見出語テーブル３０６は、圧縮後英和辞典データ３００に含まれている符号化後の見出語単位データの開始バイト位置（例えば、「４９」）を順番に記憶している。
【００５１】
ＲＯＭ４０は、各種初期設定、ハードウェアの検査、あるいは必要なプログラムのロードを行う為の初期プログラム（例えば、ＢＩＯＳ（Basic Input/Output System）等）を格納する。ＣＰＵ１０は、コンピュータ１の電源投入時においてこの初期プログラムを実行することにより、コンピュータ１の動作環境を設定する。
【００５２】
ＣＰＵ１０は、入力される指示に応じて所定のプログラムに基づいた処理を実行し、各機能部への指示やデータの転送を行う。具体的には、ＣＰＵ１０は、入力部５０から入力される操作信号に応じてハードディスク２０に格納されたプログラムを読み出し、当該プログラムに従って処理を実行する。そして、表示制御信号を適宜表示部６０に出力して、処理結果を表示させる。
【００５３】
また、ＣＰＵ１０は、本実施形態において、ハードディスク２０の辞書圧縮プログラム２１０に従った、辞書圧縮処理（図５参照）を実行すると共に、この辞書圧縮処理において、第１破綻符号化プログラム２１２に従った第１破綻符号化処理をサブルーチンとして実行する。
【００５４】
具体的には、ＣＰＵ１０は、辞書圧縮処理において、まず、元英和参照部２０２ａを圧縮して圧縮後英和参照部３０２を生成する。その後、元英和主データ部２０２ｂ中の文字列を選択する。そして、選択した文字列が、圧縮後英和参照部３０２に含まれているか否かを判定し、圧縮後英和参照部３０２に含まれている場合には第１破綻符号化処理を実行し、圧縮後英和参照部３０２に含まれていない場合には、単純符号化する処理を実行する。
【００５５】
また、ＣＰＵ１０は、第１破綻符号化処理において、圧縮後英和参照部３０２に含まれていると判定された符号化対象文字列の圧縮後英和参照部３０２中の位置を検出する。このとき、位置の検出は、当該文字列が含まれているバイトの位置、すなわちバイトアライメント（バイトアライメント、及び、アライメントの意味を記載して下さい）で区切った圧縮後英和参照部３０２中の、何れのバイトに含まれているのか（以下、このバイトの位置を「バイト位置」という。）、を検出するものである。そして、ＣＰＵ１０は、復号開始位置を、検出したバイト位置を始めとして１ビット単位でずらしつつ、圧縮後英和参照部３０２を復号可能かどうか判定する。復号開始位置を検出したバイト長までずらした場合に、復号可能な復号開始位置がいくつであったかをＣＰＵ１０は判定する。この結果、１つであった場合には、元英和主データ部２０２ｂの当該文字列を、検出したバイト位置を用いて符号化し、複数であった場合には、検出したバイト位置及びビット位置を用いて符号化する。
【００５６】
圧縮後英和参照部３０２中の所定位置をバイト位置で表す場合と、ビット位置で表す場合とでは、前者の方がその表した文字（符号）の文字長（符号長）が短くなる。第１破綻符号化処理は、この原理を利用して辞書データの主データ部の圧縮効率を一層高めるものである。
【００５７】
入力部５０は、仮名やアルファベット等の文字入力や機能選択等に必要なキー群を備えた入力装置であり、押下されたキーの信号をＣＰＵ１０に出力する。この入力部５０におけるキー入力により、処理の実行などを指示する制御命令の入力手段を実現する。なお、この入力部５０は、図１に示すキーボード５に相当するが、キーボードに限られる物ではなく、例えばマウス等であっても良い。
【００５８】
表示部６０は、ＣＰＵ１０から出力される表示信号に基づいて各種画面を表示するものであり、ＣＲＴ（Cathode Ray Tube）等により構成される。なお、この表示部６０は、図１に示すディスプレイ３に相当する。
【００５９】
［１．２．２  動作］
図５は、辞書圧縮処理に係るコンピュータ１の動作を説明するためのフローチャートである。この辞書圧縮処理は、ＣＰＵ１０がハードディスク２０に記憶された辞書圧縮プログラム２１０を実行することによって実現される処理である。
【００６０】
まず、ＣＰＵ１０は元英和辞典データ２０２の元英和参照部２０２ａをハフマン符号化法によって符号化し、圧縮する処理を行う（ステップＡ１０）。具体的には、ハフマン符号テーブル２０４から、該当する文字列に対応するハフマン符号で置換をし、符号化することにより元英和参照部２０２ａを圧縮する。そして、圧縮された参照部は、ＲＡＭ３０に圧縮後英和参照部３０２として記憶される。なお、元英和参照部２０２ａを圧縮する方法としてハフマン符号を用いたが、これに限られるわけではなく、見出語単位データのランダムな伸張が可能な圧縮方法で有れば、公知の圧縮方法を適宜用いて良い。
【００６１】
次に、ＣＰＵ１０は、元英和辞典データ２０２の元英和主データ部２０２ｂに記述されている文字列を選択する（ステップＡ１２）。ここで、文字列を選択するとは、例えば文節毎に文字列として抽出したり、所定の文字数ずつ抽出するなど、いずれの方法であっても良い。そして、ＣＰＵ１０は、ステップＡ１２により選択した文字列（以下、適宜「符号化対象文字列」という）が、圧縮後英和参照部３０２に含まれているか否かを判定する（ステップＡ１４）。もし、符号化対象文字列が圧縮後英和参照部３０２に含まれていないと判定した場合には（ステップＡ１４；Ｎｏ）、ＣＰＵ１０は、符号化対象文字列を単純符号化する（ステップＡ２０）。ここで単純符号化とは、例えばハフマン符号化法等の公知の符号化方法を適宜適用する。また、符号化対象文字列が圧縮後英和参照部３０２に含まれていると判定した場合には（ステップＡ１４；Ｙｅｓ）、圧縮後英和参照部３０２に含まれている当該文字列のバイト位置及びビット位置を検出する（ステップＡ１６）。
【００６２】
そして、検出されたバイト位置及びビット位置に基づいて第１破綻符号化処理を実行する（ステップＡ１８）。そして、元英和主データ部２０２ｂの総ての文字列を符号化したか否か、即ち、元英和主データ部２０２ｂの最後の文字列に対して処理を行ったかを判定し、総ての文字列の符号化が終了していない場合は（ステップＡ２２；Ｎｏ）、次の文字列を選択し（ステップＡ２４）、ステップＡ１４から同様の処理を実行する。
【００６３】
総ての文字列の符号化が終了している場合には（ステップＡ２２；Ｙｅｓ）、ＣＰＵ１０は、圧縮後英和参照部３０２と、圧縮後英和主データ部３０４とからなる圧縮後英和辞典データ３００に含まれている各見出語の位置（開始バイト）を、見出語テーブル３０６として、ＲＡＭ３０に記憶することにより、見出語テーブル３０６を作成し（ステップＡ２６）、辞書圧縮処理を終了する。
【００６４】
次に、第１破綻符号化処理について説明する。図６は、第１破綻符号化処理に係るコンピュータ１の動作を説明するためのフローチャートである。この第１破綻符号化処理は、ＣＰＵ１０がハードディスク２０の第１破綻符号化プログラム２１２を実行することによって実現される処理である。
【００６５】
まず、ＣＰＵ１０は、非破綻カウンタの値に「０」を代入し、バイト位置ｓの値に辞書圧縮処理のステップＡ１６で検出した文字列の先頭位置が含まれるバイトアライメントの位置を代入し、ビット位置ｔの値に辞書圧縮処理のステップＡ１６で検出した文字列があるビット位置を代入し、変数ｎの値に「０」を代入する（ステップＢ１０）。
【００６６】
次に、「８×ｓ＋ｎ」ビットを復号開始位置として復号した場合に破綻するか否かを判定する（ステップＢ１２）。ここで、破綻するとは、復号開始位置から復号した際に文字列として復号出来ない場合や、文章として成立しないこという。破綻したか破綻していないか（非破綻）の判定は、例えば復号開始位置から所定の文字数分復号した際に、定義されておらず復号不可能な符号が出現したか否かを判定したり、句点が２つ連続するなど文字列が表記ルール通りになっていないことを判定するといった方法の他、公知の方法を適宜用いて良い。
【００６７】
もし、「８×ｓ＋ｎ」ビットを復号開始位置として復号した場合に破綻しないときは（ステップＢ１２；Ｙｅｓ）、ＣＰＵ１０は、非破綻カウンタの値に「１」加算する（ステップＢ１４）。また、「８×ｓ＋ｎ」ビットを復号開始位置として復号をした場合に破綻するときは（ステップＢ１２；Ｎｏ）、非破綻カウンタの値は変化させない。
【００６８】
そして、ＣＰＵ１０は、変数ｎに「１」加算し（ステップＢ１６）、ｎが８になるまでステップＢ１２〜ステップＢ１６を繰り返し処理する（ステップＢ１８）。
【００６９】
次に、ＣＰＵ１０は、変数ｎの値が「８」以上になると（ステップＢ１８；Ｙｅｓ）、非破綻カウンタの値が「１」か否か判定する（ステップＢ２０）。非破綻カウンタの値が「１」の場合には（ステップＢ２０；Ｙｅｓ）、ＣＰＵ１０は、バイト位置ｓに基づいて、符号化対象文字列を符号化する（ステップＢ２２）。また、非破綻カウンタの値が「１」でない場合（２以上の場合）には、バイト位置ｓ及びビット位置ｔに基づいて符号化対象文字列を符号化する（ステップＢ２４）。
【００７０】
以下、図７を用いて具体的に説明する。まず、図７（ａ）は、圧縮後英和参照部３０２の一部をビット表現で表した図である。一点鎖線は、通常のバイトアライメントの位置であり、左から、５０バイト目、５１バイト目、５２バイト目を表している。また、本ビット列には、文字列「［名詞］」がハフマン符号化された符号が含まれており、５０バイト目の３ビット目（先頭から「４０３」ビット目）の位置から当該符号（文字列「名詞」）のデータ）が始まっている。なお、ここで図では省略されているが、「［名詞］」はハフマン符号により、「３」バイト（２４ビット）で符号化されているとする。
【００７１】
また、５０バイト目のバイト内におけるビット位置を「［０］、［１］、…、［７］」で示している。ここで、「×」が付されているのは、そのビット位置から符号列を復号すると、破綻することを示している。また、「○」が付されているのは、そのビット位置から符号列を復号すると、破綻しない（非破綻である）ことを示している。
【００７２】
まず、第１破綻符号化処理において、ＣＰＵ１０は、非破綻カウンタの値に「０」を、変数ｎの値に「０」を代入すると共に、バイト位置ｓに「５０」を、ビット位置ｔに「３」を代入する（図６のステップＢ１０）。
【００７３】
そして、ＣＰＵ１０は、変数ｎの値が０のとき、すなわち「５０」バイト目における「０」ビット目を復号開始位置とした場合に破綻するか否か判定する（ステップＢ１２；Ｎｏ）。この場合、「５０」バイト目における「０」ビット目から符号列を復号すると破綻する。次に、ＣＰＵ１０は、変数ｎの値が１のとき、すなわち「５０」バイト目における「１」ビット目を復号開始位置とした場合に破綻するか否か判定する（ステップＢ１２；Ｎｏ）。以下、同様にｎを「０」から「７」まで変化させて、各ビット位置を復号開始位置とした場合に破綻するか否かを調べる。すると、図７においては、非破綻の個数は、１つ（「３」ビット目）だけであるので、非破綻カウンタの値は「１」となる。
【００７４】
次に、ＣＰＵ１０は、非破綻カウンタが「１」であると判定すると（ステップＢ２０；Ｙｅｓ）、バイト位置ｓに基づいて符号化対象文字列「［名詞］」を符号化する（ステップＢ２２）。具体的には、圧縮後英和参照部３０２を参照した圧縮である事を示す「１」と、バイト位置ｓを２進数に直し、それを７ビットで表現した符号「０１１００１０」とを併せた符号「１０１１００１０」で符号化対象文字列を符号化する。
【００７５】
次に、図７（ｂ）は、図７（ａ）と同様に圧縮後英和参照部３０２の一部をビット表現で表した図である。一点鎖線は、通常のバイトアライメントの位置であり、左から、５２バイト目、５３バイト目、５４バイト目を表している。また、本ビット列には、文字列「〔コンピュータ〕」がハフマン符号化された符号が含まれており、５２バイト目の３ビット目の位置から当該符号（文字列「〔コンピュータ〕」）が始まっている。なお、ここで図では省略されているが、「〔コンピュータ〕」はハフマン符号により、５バイト（４０ビット）で符号化されているとする。
【００７６】
まず、第１破綻符号化処理において、ＣＰＵ１０は、非破綻カウンタの値に「０」を、変数ｎの値に「０」を初期値として代入すると共に、バイト位置ｓに「５２」を、ビット位置ｔに「３」を代入する（図６のステップＢ１０）。
【００７７】
次に、ＣＰＵ１０は、５２バイト内における各ビット位置を復号開始位置とした場合における非破綻を検出する。すると、「１」ビット目と「３」ビット目のビット位置から始まる符号について非破綻であると検出する。従って、非破綻カウンタの値は「２」となる。
【００７８】
そして、ＣＰＵ１０は、非破綻カウンタの値は「２」であるため（ステップＢ２０；Ｎｏ）、バイト位置ｓとビット位置ｔに基づいて符号化対象文字列を符号化する（ステップＢ２４）。具体的には、圧縮後英和参照部３０２を利用した圧縮である事を示す符号ビット「１」と、バイト位置「５２」を７ビットの２進数になおした「０１１０１００」と、「〔コンピュータ〕」が記憶されたビット位置「３」を３ビットの２進数になおした「０１１」とを併せた符号「１０１１０１０００１１」で、符号化対象文字列「〔コンピュータ〕」を符号化する。
【００７９】
以上のように、第１実施形態における辞書圧縮装置（コンピュータ）によれば、圧縮後英和主データ部３０４が、圧縮後英和参照部３０２に含まれている文字列を参照する際に、圧縮後英和参照部３０２において圧縮された文字列の開始位置がバイトアライメントの位置から始まっていない場合であっても、わざわざ先頭からのビット位置を指定しなくとも、伸張可能に辞書データを圧縮することが可能となる。
【００８０】
［１．３  電子辞書装置］
［１．３．１  構成］
図８は、電子辞書装置１００の構成を示すブロック図である。同図に示すように、電子辞書装置１００は、ＣＰＵ（Central Processing Unit）１１０と、ＲＯＭ（Read Only Memory）１２０と、ＲＡＭ（Random Access Memory）１３０と、ＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）１４０と、入力部１５０と、表示部１６０とを備えている。
【００８１】
ＲＯＭ１２０は、各種初期設定、ハードウェアの検査、あるいは必要なプログラムのロード等を行うための初期プログラムを格納する。ＣＰＵ１１０は、電子辞書装置１００の電源投入時においてこの初期プログラムを実行することにより、電子辞書装置１００の動作環境を設定する。
【００８２】
また、ＲＯＭ１２０は、メニュー表示処理、各種設定処理、各種検索処理等の電子辞書装置１００の動作に係る各種プログラムや、電子辞書装置１００の備える種々の機能を実現するためのプログラム等を格納すると共に、ハフマン符号テーブル１２０２と、辞書伸張プログラム１２１０と、第１破綻復号プログラム１２１２とを備えている。ここで、ハフマン符号テーブル１２０２は、図２のハフマン符号テーブル２０４と同一のテーブルである。
【００８３】
ＲＡＭ１３０は、ＣＰＵ１１０が実行する各種プログラムや、これらのプログラムの実行に係るデータ等を一時的に保持するメモリ領域を備える。
【００８４】
ＥＥＰＲＯＭ１４０は、電子辞書装置１００において、ＣＰＵ１１０が参照する各種辞書データや、各種設定等を電源オフの後であっても記憶するためのメモリである。本実施形態では、圧縮後英和辞典データ１４００と、見出語テーブル１４０６とを備えている。ここで、圧縮後英和辞典データ１４００は、圧縮後英和辞典データ３００と同一の辞書データである。また、見出語テーブル１４０６は、見出語テーブル３０６と同一のテーブルである。
【００８５】
ＣＰＵ１１０は、入力される指示に応じて所定のプログラムに基づいた処理を実行し、各機能部への指示やデータの転送を行う。具体的には、ＣＰＵ１１０は、入力部１５０から入力される操作信号に応じてＲＯＭ１２０に格納されたプログラムを読み出し、当該プログラムに従って処理を実行する。そして、ＣＰＵ１１０は、表示制御信号を適宜表示部１６０に出力して、処理結果を表示させる。
【００８６】
また、ＣＰＵ１１０は、本実施形態において、ＲＯＭ１２０に記憶された辞書伸張プログラム１２１０に従った、辞書伸張処理（図９参照）を実行すると共に、この辞書伸張処理において、第１破綻復号プログラム１２１２を読み出して第１破綻復号処理をサブルーチンとして実行する。
【００８７】
具体的には、ＣＰＵ１１０は、辞書伸張処理において、入力文字に対応する見出語を検索する。ＣＰＵ１１０は、見出語が圧縮後英和参照部１４０２に含まれていると判定した場合には、圧縮後英和参照部１４０２に含まれている符号列を復号することにより見出語データを伸張する。また、ＣＰＵ１１０は、検索した見出語が圧縮後英和主データ部１４０４に含まれていると判定した場合には、圧縮後英和主データ部１４０４に含まれている見出語データを復号する。このとき、抽出された見出語データに含まれる文字が、辞書型符号化方法により圧縮されていると判定した場合には第１破綻復号処理を実行し、符号列を復号することにより見出語データを伸張する。
【００８８】
また、ＣＰＵ１１０は、第１破綻復号処理では、圧縮後英和主データ部１４０４に含まれている符号列を、圧縮後英和参照部１４０２を参照して復号する。このときに、バイト内における各ビット位置から符号列を復号した場合に、破綻するか否かを検出する。そして、ＣＰＵ１１０は、圧縮後英和参照部１４０２を参照し、圧縮後英和主データ部１４０４に含まれる符号列を復号する。
【００８９】
入力部１５０は、仮名やアルファベット等の文字入力や機能選択等に必要なキー群を備えた入力装置であり、押下されたキーの信号をＣＰＵ１１０に出力する。この入力部１５０におけるキー入力により、入力文字の入力、辞書モードの選択、検索実行指示、ジャンプ機能の開始等を指示入力する入力手段を実現する。なお、この入力部１５０は、図１のキー群１０５に相当するが、キー群１０５に限られるわけではなく、タッチパネル等であってもよい。
【００９０】
表示部１６０は、ＣＰＵ１１０から入力される表示信号に基づいて各種画面を表示するものであり、ＬＣＤ等により構成される。なお、この表示部１６０は、図１に示すディスプレイ１０３に相当する。
【００９１】
［１．３．２  動作］
図９は、辞書伸張処理に係る電子辞書装置１００の動作を説明するためのフローチャートである。この辞書伸張処理は、ＣＰＵ１１０がＲＯＭ１２０に記憶された辞書伸張プログラム１２１０を実行することによって実現される処理である。
【００９２】
まず、ＣＰＵ１１０は、文字が入力されると（ステップＣ１０）、入力文字に対応する見出語を検索する（ステップＣ１２）。具体的には、ＣＰＵ１１０は、見出語テーブル１４０６に格納された開始位置の中から何れかの開始位置を選択し、圧縮後英和辞典データ１４００を伸張していく処理を行う。見出語テーブル１４０６には、圧縮後英和辞典データ１４００の格納順に見出語単位データの開始位置が格納されているため、例えば、公知である２分木を用いた探索法等により、開始位置の選択・見出語の伸張・適合する見出語か否かの判定を繰り返すことにより、見出語の検索を実行する。次に、ＣＰＵ１１０は、入力文字に対応する見出語が圧縮後英和主データ部１４０４に含まれているか否かを判定する（ステップＣ１４）。例えば、入力文字に対応する見出語が記憶されている開始位置が、所定の位置より大きい場合は主データ部に含まれていると判定する。そして、ＣＰＵ１１０が、入力文字に対応する見出語が圧縮後英和主データ部１４０４に含まれていないと判定した場合には（ステップＣ１４；Ｎｏ）、圧縮後英和参照部１４０２から、見出語単位データの符号列を読み出して復号する（ステップＣ２８）。
【００９３】
また、ＣＰＵ１１０は、入力文字に対応する見出語が圧縮後英和主データ部１４０４に含まれていると判定した場合には（ステップＣ１４；Ｙｅｓ）、見出語単位データの符号列を復号する。次に、ＣＰＵ１１０は、復号するための文字列単位の符号列（以下、適宜「復号対象符号列」という。）を読み出し、復号対象符号列の１ビット目が「１」か否かを判定する（ステップＣ１６）。もし、復号対象符号列の１ビット目が「０」の場合には（ステップＣ１６；Ｎｏ）、ＣＰＵ１１０は、復号対象符号列を単純に復号する（ステップＣ２２）。また、ＣＰＵ１１０は、復号対象符号列の１ビット目が「１」の場合には（ステップＣ１６；Ｙｅｓ）、復号対象符号列が含まれるバイト位置を抽出し（ステップＣ１８）、第１破綻復号処理を実行する（ステップＣ２０）。
【００９４】
そして、ＣＰＵ１１０は、見出語単位データに含まれている総ての符号列について復号したか否かを判定し（ステップＣ２４）、見出語単位データに復号する符号列が残っている場合には（ステップＣ２４；Ｎｏ）、次の復号対象符号列を抽出し（ステップＣ２６）、同じ処理を実行する。また、見出語単位データに含まれている符号列を総て復号した場合には（ステップＣ２４；Ｙｅｓ）、ＣＰＵ１１０は、見出語単位データを復号することにより、伸張された見出語と説明情報とを表示部１６０に表示し（ステップＣ３０）、辞書伸張処理を終了する。
【００９５】
次に、辞書伸張処理のステップＣ２０において実行される第１破綻復号処理について説明する。図１０は、第１破綻復号処理に係る電子辞書装置１００の動作を説明するためのフローチャートである。この第１破綻復号処理は、ＣＰＵ１１０がＲＯＭ１２０の第１破綻復号プログラム１２１２を実行することによって実現される処理である。
【００９６】
まず、ＣＰＵ１１０は、辞書伸張処理のステップＣ１８で抽出されたバイト位置をバイト位置ｓの値に代入し、非破綻カウンタ、変数ｎ及びビット位置ｔの値に０を初期設定として代入する（ステップＤ１０）。
【００９７】
次に、「８×ｓ＋ｎ」を復号開始ビット位置とする符号列を復号した場合に、破綻するか否かを検出する（ステップＤ１２）。ここで、破綻するか否かを検出する方法はコンピュータ１が第１破綻符号化処理のステップＢ１２で行った破綻検出処理と同様の方法で実行する必要がある。そして、ＣＰＵ１１０が符号列を復号した結果、破綻しないと判定した場合には（ステップＤ１２；Ｙｅｓ）、非破綻カウンタの値に「１」加算し（ステップＤ１４）、変数ｎの現在の値を非破綻位置に代入する（ステップＤ１６）。
【００９８】
次に、ＣＰＵ１１０は、変数ｎの値に「１」加算し（ステップＤ１８）、変数ｎの値が「８」以上か否かを判定する（ステップＤ２０）。ＣＰＵ１１０は、変数ｎの値が「８」未満であると判定した場合には（ステップＤ２０；Ｎｏ）、ステップＤ１２から再び処理を実行する（ステップＤ２０；Ｎｏ）。
【００９９】
そして、ＣＰＵ１１０は、変数ｎの値が「８」以上であると判定すると（ステップＤ２０；Ｙｅｓ）、非破綻カウンタの値が「１」か否かを判定する（ステップＤ２２）。そして、非破綻カウンタの値が「１」の場合には（ステップＤ２２；Ｙｅｓ）、ＣＰＵ１１０は「８×ｓ＋非破綻位置」を復号開始位置とする符号列を復号する（ステップＤ２４）。また、非破綻カウンタの値が「１」以外で有る場合には（ステップＤ２２；Ｎｏ）、ＣＰＵ１１０は、続く符号列より３ビットをビット位置ｔとして抽出し、「８×ｓ＋ｔ」から始まる符号列を復号する。
【０１００】
具体的に、図７を使って説明する。ここで、図７（ａ）の上段の符号列は、圧縮後英和参照部１４０２の一部を表した図である。また、復号対象符号列として、圧縮後英和主データ部１４０４から、「１０１１００１０」が抽出されているとする。
【０１０１】
まず、ＣＰＵ１１０は、復号対象符号列の最初の１ビット目を抽出する。すると、最初の１ビット目は「１」であることから、続く符号列よりバイト位置を抽出する（図９のステップＣ１８）。ここで、続く符号列のうち７ビットを抽出すると「０１１００１０」となり、バイト位置ｓには、１０進数「５０」が代入される（図１０のステップＤ１０）。
【０１０２】
次に、ＣＰＵ１１０は、圧縮後英和参照部１４０２の先頭から「５０」バイト目の各ビット位置を開始位置として復号し、破綻するか否かを判定する（ステップＤ１２）。ここで、ＣＰＵ１１０は、まず変数ｎの値が「０」のとき、即ち「５０」バイト目における「０」ビット目を開始位置として符号列を復号すると、破綻すると判定する。続いて、ＣＰＵ１１０は、変数ｎの値が「１」のとき、即ち「５０」バイト目における「１」ビット目を開始位置として符号列を復号すると、破綻すると判定する。同様に、変数ｎの値が「７」になるまで、順次破綻するか否かを判定していくと、変数ｎの値が「３」のとき、即ち「５０」バイト目における「３」ビット目を復号開始位置として符号列を復号すると、破綻しないと判定する。このとき、ＣＰＵ１１０は、非破綻カウンタの値に「１」を加算し（図１０のステップＤ１４）、変数ｎの値「３」を非破綻位置として代入する（図１０のステップＤ１６）。
【０１０３】
次に、非破綻カウンタの値が「１」であるから、ＣＰＵ１１０は、圧縮後英和参照部１４０２の始めから「８×ｓ＋非破綻位置」ビット目に該当する「８×５０＋３」ビット目を開始位置として符号列を復号する。例えば、「８×５０＋３」ビット目を開始位置とする符号列に一致する符号列を、ハフマン符号テーブル１２０２より検索し、対応する文字列「［名詞］」が復号・伸張される。
【０１０４】
次に、図７（ｂ）を用いて説明すると、復号対象符号列として、圧縮後英和主データ部１４０４から、「１０１１０１０００１１…」が抽出されているとする。
【０１０５】
まず、ＣＰＵ１１０は、復号対象符号列の最初の１ビット目を抽出する。すると、最初の１ビット目は「１」であることから、続く符号列よりバイト位置を抽出する（図９のステップＣ１８）。ここで、続く符号列のうち７ビットを抽出すると「０１１０１００」となり、バイト位置ｓの値には、１０進数「５２」が代入される（図１０のステップＤ１０）。
【０１０６】
次に、ＣＰＵ１１０は、圧縮後英和参照部１４０２の先頭から「５２」バイト目の各ビット位置を開始位置として復号し、破綻するか否かを判定する（ステップＤ１２）。すると、ＣＰＵ１１０は、変数ｎの値が「１」のとき及び「３」のとき、即ち「５０」バイト目における「１」ビット目及び「３」ビット目を開始位置として符号列を復号すると、破綻しないと判定する。このとき、ＣＰＵ１１０は、非破綻カウンタの値にそれぞれ「１」を加算するため（図１０のステップＤ１４）、非破綻カウンタの値には「２」が代入されている。
【０１０７】
次に、非破綻カウンタの値が「２」となることから、ＣＰＵ１１０は、続く符号列から３ビット「０１１」を抽出し、抽出された「３」をビット位置ｔの値として代入する。そして、圧縮後英和参照部１４０２の始めから「８×ｓ＋ｔ」ビット目に該当する「８×５０＋３」ビット目を開始位置として符号列を復号することにより、対応する文字列「〔コンピュータ〕」が復号・伸張される。
【０１０８】
このように、第１実施形態の電子辞書装置によれば、圧縮後英和主データ部１４０４を辞書型符号化方法によって伸張する場合に、圧縮後英和参照部１４０２に含まれる文字列に対応する符号列がバイトアライメントの位置から開始してない場合であっても、圧縮後英和参照部１４０２を参照して主データ部に含まれる符号列を復号することが可能となる。
【０１０９】
また、本実施形態において、元英和参照部２０２ａ及び元英和主データ部２０２ｂに対して、上述した辞書圧縮処理を実行した後、更に圧縮された辞書データ全体に対してハフマン符号化による符号化を施すこととしても良い。この場合には、より効率的な符号化が可能となる。
【０１１０】
〔第２実施形態〕
次に、本発明を適用した第２実施形態について説明する。本実施形態は、第１実施形態において、圧縮後主データ部に含まれる符号列の開始位置を表す符号を、可変長とすることにより、より効率的に符号化を行うものである。
【０１１１】
［２．１  辞書データ圧縮装置］
［２．１．１  構成］
第２実施形態におけるコンピュータの構成は、第１実施形態において図２に示して説明したコンピュータ１の構成において、ハードディスク２０を図１１（ａ）に示すハードディスク２２に、ＲＡＭ３０を図１１（ｂ）に示すＲＡＭ３２に置き換えた構成と同様であり、以下、同一の構成要素には同一の符号を付してその説明を省略する。また、各フローチャートにおいて、第１実施形態のフローチャートと同一処理内容のステップについては同一の符号を付して、異なる部分を中心に説明する。
【０１１２】
図１１（ａ）を参照してハードディスク２２の構成について説明する。図１１（ａ）に示すように、ハードディスク２２は、元英和辞典データ２０２と、ハフマン符号テーブル２０４と、破綻テーブル２０６と、辞書圧縮プログラム２１０と、第２破綻符号化プログラム２２０とを記憶している。
【０１１３】
破綻テーブル２０６は、図１２（ａ）に示すように、非破綻カウンタの値と、符号ビット数とを対応づけて格納したテーブルである。
【０１１４】
第２破綻符号化プログラム２２０は、本実施形態における第２破綻符号化処理を実現するためのプログラムであり、ＣＰＵ１０がこの第２破綻符号化プログラム２２０を実行することで、第２破綻符号化処理が実現される。第２破綻符号化処理において、圧縮後英和参照部３０２に含まれていると判定された符号化対象文字列の圧縮後英和参照部３０２中の位置を検出する。そして、ＣＰＵ１０は、復号開始位置を、検出したバイト位置を始めとして１ビット単位でずらしつつ、圧縮後英和参照部３０２を復号可能かどうか判定する。復号開始位置を検出したバイト長までずらした場合に、復号可能な復号開始位置の個数及び順位を記憶する。この結果、個数が１つであった場合には、元英和主データ部２０２ｂの当該文字列を、検出したバイト位置を用いて符号化し、個数が複数であった場合には、検出したバイト位置及び順位を用いて符号化する。
【０１１５】
また、図１１（ｂ）を参照してＲＡＭ３２の構成について説明する。図１１（ｂ）に示すように、ＲＡＭ３２は、圧縮後英和辞典データ３００と非破綻位置記憶領域３２０とを格納している。
【０１１６】
非破綻位置記憶領域３２０は、図１２（ｂ）に示すように、非破綻カウンタの値と、第２破綻符号化処理において参照される変数ｎの値とを対応づけて記憶しておく領域である。
【０１１７】
［２．１．２  動作］
次に、第２実施形態におけるコンピュータ１の動作について図を参照して説明する。図１３は、第２破綻符号化処理に係るコンピュータ１の動作を説明するためのフローチャートである。この第２破綻符号化処理は、ハードディスク２２の辞書圧縮プログラム２１０の実行中に呼び出される処理である。ＣＰＵ１０は、図４の辞書圧縮処理におけるステップＡ１８における、第１破綻符号化処理に代えて、本実施形態の第２破綻符号化処理を呼び出して実行する。
【０１１８】
ＣＰＵ１０は、参照部の符号列を復号し、破綻しないと判定した場合において、非破綻カウンタの値を「１」加算し、併せて非破綻位置記憶領域３２０に、非破綻カウンタの値と、変数ｎの値とを対応づけて格納する（ステップＥ１５）。
【０１１９】
また、ＣＰＵ１０は、非破綻カウンタの値が「１」でないときは（ステップＢ２０；Ｎｏ）、破綻テーブル２０６から非破綻カウンターの値に対応する符号ビット数を読み出す。次に、ＣＰＵ１０は、ビット位置ｔの値に対応する破綻カウンタの値を、順位として非破綻位置記憶領域３２０より読み出す。そして、ＣＰＵ１０は、読み出された符号ビット数に基づいて、順位を算出する（ステップＥ２４）。
【０１２０】
そして、圧縮後英和参照部３０２に記憶されている符号化対象文字列と同じ文字列の参照位置が含まれているバイト位置ｓと、順位とに基づいて符号化対象文字列を符号化する（ステップＥ２６）。
【０１２１】
第２破綻符号化処理について、図１４を用いて具体的に説明する。図１４は、圧縮後英和参照部３０２の一部を符号列として表した図である。一点鎖線は、通常のバイトアライメントの位置であり、左から、５２バイト目、５３バイト目、５４バイト目を表している。また、図１４の符号列には、文字列「〔コンピュータ〕」がハフマン符号化された符号が記憶されており、５２バイト目の３ビット目（先頭から４１９ビット目）の位置から始まっている。なお、ここで図示は省略されているが、例えば、「〔コンピュータ〕」はハフマン符号において５バイト（４０ビット）で符号化されているものとする。
【０１２２】
まず、第２破綻符号化処理において、ＣＰＵ１０は、非破綻カウンタの値に「０」を、変数ｎの値に「０」を代入して初期化すると共に、バイト位置ｓの値に「５２」を、ビット位置ｔに「３」を代入する（図１２のステップＢ１０）。
【０１２３】
次に、変数ｎの値を「０」から「７」まで変化させたときのそれぞれの復号開始位置、即ち、圧縮後英和参照部３０２の「８×５２＋０」ビット目から「８×５２＋７」ビット目までのそれぞれを復号開始位置として復号した場合に、破綻をするか否かを判定する。本図においては、変数ｎの値が「１」の場合、「８×５２＋１」ビット目を復号開始位置として復号した場合に破綻しないので、ＣＰＵ１０は、このときの破綻カウンタの値「１」と、変数ｎの値「１」とを、非破綻位置記憶領域３２０に格納する。また、変数ｎの値が「３」の場合に復号しても破綻しないので、ＣＰＵ１０は、破綻カウンタの値「２」と、変数ｎの値「３」とを、非破綻位置記憶領域３２０に格納する（ステップＥ１５）。
【０１２４】
そして、ＣＰＵ１０は、非破綻カウンタの値が「２」であることから（ステップＢ２０；Ｎｏ）、破綻テーブル２０６を参照して符号ビット数を「１」とする。次に、符号化対象文字列に対応する文字列が含まれているビット位置「３」に対応する非破綻カウンタの値「２」を非破綻位置記憶領域３２０から読み出す。そして、読み出した非破綻カウンタの値「２」を、ビット値「１」で符号化する。すなわち、ＣＰＵ１０は、２番目の順位であることを表す「１」という符号で符号化する。
【０１２５】
そして、ＣＰＵ１０は、バイト位置ｓと順位に基づいて符号化する（ステップＥ２６）。具体的には、辞書型符号化方法で圧縮されているか否かの識別用の１ビット「１」と、バイト位置「５２」を表した「０１１０１００」と、符号化された順位「１」とを併せた符号とする。従って、「〔コンピュータ〕」は、「１０１１０１００１」の「９」ビットで表現される。
【０１２６】
このように、第２実施形態の辞書データ圧縮装置（コンピュータ）によれば、ビット位置を表す符号データを可変長で表すことができる。従って、第１実施形態においては、ビット位置を表す符号データを固定長として、必ず所定ビット数の符号を付加していたが、第２実施形態においては、ビット位置を表す符号データは必要最小限のビット数で済む。
【０１２７】
［２．２  電子辞書装置］
［２．２．１  構成］
第２実施形態における電子辞書装置の構成は、第１実施形態において図８に示して説明した電子辞書装置１００の構成において、ＲＯＭ１２０を図１５（ａ）に示すＲＯＭ１２２に、ＲＡＭ１３０を図１５（ｂ）に示すＲＡＭ１３２に、ＥＥＰＲＯＭ１４０を図１５（ｂ）に示すＥＥＰＲＯＭ１４２に置き換えた構成と同様であり、以下、同一の構成要素には同一の符号を付してその説明を省略する。また、各フローチャートにおいて、第１実施形態のフローチャートと同一処理内容のステップについては同一の符号を付して、異なる部分を中心に説明する。
【０１２８】
図１５（ａ）を参照して、ＲＯＭ１２２の構成について説明する。図１５（ａ）に示すように、ＲＯＭ１２２は、ハフマン符号テーブル１２０２と、破綻テーブル１２０４と、辞書伸張プログラム１２１０と、第２破綻復号プログラム１２２０とを記憶している。ここで、破綻テーブル１２０４は、図１１（ａ）の破綻テーブル２０６と同一のテーブルである。
【０１２９】
第２破綻復号プログラム１２２０は、ＣＰＵ１１０が圧縮後英和主データ部１４０４に含まれている符号列を、圧縮後英和参照部１４０２を参照して復号する。このときに、バイト内におけるビット位置をずらして符号列を復号した場合に、破綻するか否かを検出する。このとき、破綻しないビット位置が複数有る場合には、ビット位置の順位を算出し、算出された順位に基づいて符号列を復号する。
【０１３０】
図１５（ｂ）を参照して、ＲＡＭ１３２の構成について説明する。図１５（ｂ）に示すように、ＲＡＭ１３２は、非破綻位置記憶領域１３２０を備えている。ここで、非破綻位置記憶領域１３２０は、図１１（ｂ）の非破綻位置記憶領域３２０と同様の構成である。
【０１３１】
図１５（ｃ）を参照して、ＥＥＰＲＯＭ１４２の構成について説明する。図１５（ｃ）に示すように、ＥＥＰＲＯＭ１４２は、圧縮後英和辞典データ１４００を格納している。
【０１３２】
［２．２．２  動作］
次に、第２実施形態における電子辞書装置１００の動作について図を参照して説明する。図１６は、第１破綻復号処理に係る電子辞書装置１００の動作を説明するためのフローチャートである。この第２破綻復号処理は、ＣＰＵ１１０が、ＲＯＭ１２２の第２破綻復号プログラム１２２０を実行することによって実現される処理である。
【０１３３】
ＣＰＵ１１０は、図１０の第１破綻復号処理と同様にしてステップＤ１２において、「８×ｓ＋ｎ」を復号開始位置として復号した場合に、復号した符号列が破綻しないことを判定すると（ステップＤ１２；Ｙｅｓ）、非破綻カウンタの値に「１」を加え（ステップＤ１４）、非破綻位置記憶領域１３２０に、非破綻カウンタの値と、変数ｎの値とを格納する（ステップＦ１５）。また、破綻を検出する処理は、コンピュータ１で行った破綻を検出する処理（図１３のステップＢ１２）と同一の方法で実行する。
【０１３４】
次に、ＣＰＵ１１０は、非破綻カウンタの値が「１」で無い場合には（ステップＤ２２；Ｎｏ）、順位を復号し、復号する符号列の開始位置であるバイト内におけるビット位置ｔを算出する（ステップＦ２６）。具体的には、現在の非破綻カウンタの値に対応する符号ビット数を破綻テーブル１２０４より読み出す。そして、ＣＰＵ１１０は、読み出された符号ビット数分の符号を、圧縮後英和参照部１４０２の符号列図９のステップＣ１８で抽出したバイト位置の続きから抽出て順位に復号する。そして、ＣＰＵ１１０は、順位に対応する変数ｎの値を非破綻位置記憶領域１３２０から読み出し、ビット位置ｔの値として代入する。そして、ＣＰＵ１１０は、バイト位置ｓ及びビット位置ｔの値に基づいて、「８×バイト位置ｓ＋ビット位置ｔ」を開始位置として始まる符号列を復号し、文字列を伸張する（ステップＦ２８）。
【０１３５】
具体的に、図１４を使って説明する。ＣＰＵ１１０は、圧縮後英和主データ部１４０４から、符号列「１０１１０１００１…」を復号対象符号列として抽出する。まず、復号対象符号列の最初の１ビット目が「１」であるから、ＣＰＵ１１０は、続く７ビット「０１１０１００」を抽出する。そして、符号「０１１０１００」は１０進数「５２」であるから、復号対象符号列が参照している圧縮後英和参照部１４０２中の符号列は「５２」バイト目のバイト内の何れかのビットから始まる符号列であると判定する。
【０１３６】
次に、５２バイト目内の各ビット位置から、それぞれ復号したときに、破綻するか否かを判定する（ステップＤ１２〜Ｄ２０）。ここで、破綻しない位置は「１」ビット目と、「３」ビット目であるため、ＣＰＵ１１０は、非破綻カウンタの値を「２」とする。また、「１」ビット目のときは、非破綻カウンタの値「１」と、変数ｎの値「１」とを対応づけて非破綻位置記憶領域１３２０に格納する。また、「３」ビット目のときは、非破綻カウンタの値「２」と、変数ｎの値「３」とを対応づけて非破綻位置記憶領域１３２０に格納する。
【０１３７】
次に、ＣＰＵ１１０は、非破綻カウンタの値が「２」であることから（ステップＤ２２；Ｎｏ）、破綻テーブル１２０４から、非破綻カウンタの値に対応する値「１」を抽出する。そして、ＣＰＵ１１０は、符号「０１１０１００」に続く１ビット分の符号「１」を抽出し、それに対応する変数ｎの値「３」を非破綻位置記憶領域１３２０から読み出す。そして、ＣＰＵ１１０は、読み出された変数ｎの値をビット位置ｔの値として代入する。そして、「８×５２＋３」ビット目から符号列を復号し、文字列「〔コンピュータ〕」を伸張する。
【０１３８】
このように、第２実施形態における電子辞書装置によれば、バイトアライメントの位置内での順位を利用することにより、当該バイト位置内のビット位置から始まる符号を復号することができる。
【０１３９】
［３．変形例］
本発明の適用が可能な電子辞書装置は専用機としての電子辞書装置のみならず、例えば、携帯電話やＰＤＡ（Personal Digital Assistants）、パソコン等に本発明を適用して、これらの装置内に電子辞書装置を構築することとしてもよい。
【図面の簡単な説明】
【０１４０】
【図１】コンピュータ及び電子辞書装置の概観図。
【図２】第１実施形態におけるコンピュータの構成図。
【図３】第１実施形態における元英和辞典データのデータ構造の一例を示した図。
【図４】第１実施形態における（ａ）ハフマン符号テーブル、（ｂ）見出語テーブルのデータ構造の一例を示した図。
【図５】辞書圧縮処理の動作フローを示した図。
【図６】第１破綻符号化処理の動作フローを示した図。
【図７】第１破綻符号化処理の動作を説明した図。
【図８】第１実施形態における電子辞書の構成図。
【図９】第１実施形態における辞書伸張処理のフローチャートを示す図。
【図１０】第１実施形態における第１破綻復号処理のフローチャートを示す図。
【図１１】第２実施形態における（ａ）コンピュータのハードディスク、（ｂ）コンピュータのＲＡＭの構成を示す図。
【図１２】第２実施形態における（ａ）破綻テーブル、（ｂ）非破綻位置記憶領域のデータ構造の一例を示した図。
【図１３】第２実施形態における第２破綻符号化処理のフローチャートを示す図。
【図１４】第２破綻符号化処理の動作を説明した図。
【図１５】第２実施形態における（ａ）電子辞書装置のＲＯＭ、（ｂ）電子辞書装置のＲＡＭ、（ｃ）電子辞書装置のＥＥＰＲＯＭの構成を示す図。
【図１６】第２実施形態における第２破綻復号処理のフローチャートを示す図。
【符号の説明】
【０１４１】
１    コンピュータ
１０    ＣＰＵ
２０、２２    ハードディスク
２０２    元英和辞典データ
２０２ａ  元英和参照部
２０２ｂ  元英和主データ部
２０４    ハフマン符号テーブル
２０６    破綻テーブル
２１０    辞書圧縮プログラム
２１２    第１破綻符号化プログラム
２２０    第２破綻符号化プログラム
３０、３２    ＲＡＭ
３００    圧縮後英和辞典データ
３０２    圧縮後英和参照部
３０４    圧縮後英和主データ部
３０６    見出語テーブル
３２０    非破綻位置記憶領域
４０    ＲＯＭ
５０    入力部
６０    表示部
１００    電子辞書
１１０    ＣＰＵ
１２０、１２２    ＲＯＭ
１２０２  ハフマン符号テーブル
１２０４  破綻テーブル
１２１０  辞書伸張プログラム
１２１２  第１破綻復号プログラム
１３０、１３２    ＲＡＭ
１３２０  非破綻位置記憶領域
１４０、１４２    ＥＥＰＲＯＭ
１４００  圧縮後英和辞典データ
１４０２  圧縮後英和参照部
１４０４  圧縮後英和主データ部
１４０６  見出語テーブル
１５０    入力部
１６０    表示部
【図１】
2005136622.tif 000003
【図２】
2005136622.tif 000004
【図３】
2005136622.tif 000005
【図４】
2005136622.tif 000006
【図５】
2005136622.tif 000007
【図６】
2005136622.tif 000008
【図７】
2005136622.tif 000009
【図８】
2005136622.tif 000010
【図９】
2005136622.tif 000011
【図１０】
2005136622.tif 000012
【図１１】
2005136622.tif 000013
【図１２】
2005136622.tif 000014
【図１３】
2005136622.tif 000015
【図１４】
2005136622.tif 000016
【図１５】
2005136622.tif 000017
【図１６】
2005136622.tif 000018
【手続補正書】
【提出日】平成15年11月20日(2003.11.20)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００５５
【補正方法】変更
【補正の内容】
【００５５】
また、ＣＰＵ１０は、第１破綻符号化処理において、圧縮後英和参照部３０２に含まれていると判定された符号化対象文字列の圧縮後英和参照部３０２中の位置を検出する。このとき、位置の検出は、当該文字列が含まれているバイトの位置、すなわちバイトアライメント（ここで、アライメントとは、位置決めのために用いられる一般的な技術的用語であり、バイトアライメントとは、データをバイト単位で区切った場合の各バイトを決定するための位置（ビット）であって、当該バイト内の「０」ビット目（例えば、図７の（ａ）の一点鎖線）のことである。）で区切った圧縮後英和参照部３０２中の、何れのバイトに含まれているのか（以下、このバイトの位置を「バイト位置」という。）、を検出するものである。そして、ＣＰＵ１０は、復号開始位置を、検出したバイト位置を始めとして１ビット単位でずらしつつ、圧縮後英和参照部３０２を復号可能かどうか判定する。復号開始位置を検出したバイト長までずらした場合に、復号可能な復号開始位置がいくつであったかをＣＰＵ１０は判定する。この結果、１つであった場合には、元英和主データ部２０２ｂの当該文字列を、検出したバイト位置を用いて符号化し、複数であった場合には、検出したバイト位置及びビット位置を用いて符号化する。