(57)【要約】【課題】少ない記憶容量で高効率に符号化することのできる画像符号化装置を提案する。【解決手段】本発明に係る画像符号化装置は、所定のサイズ単位の被符号化データを１ブロックとした場合に、所定のブロック数で構成される各ユニットの先頭位置へのアクセスポインタを出力する（Ｓ１３０８０７）。これにより、各ブロックの先頭位置へのアクセスポインタを記録しておく場合に比べて、アクセステーブルの保持に要する記憶容量を削減することができる。【選択図】図４９
2008092126.tif 000002
【特許請求の範囲】
【請求項１】
所定のユニットサイズで規定される複数のユニットデータに分割され、さらに、所定のブロックサイズで規定されるブロックデータに分割される被符号化データに対して、所定のサブブロックサイズで規定されるサブブロックデータごとに符号化を実行して符号データを生成する画像符号化装置であって、
前記サブブロックデータごとに前記被符号化データを可変長符号化する符号化処理手段と、
前記符号データにアクセスするためのアクセスポインタを更新するアクセスポインタ更新手段と、
前記サブブロックデータの処理状況を管理して、前記ブロックデータに対する処理を管理するブロックデータ管理手段と、
前記ブロックデータの処理状況を管理して、前記ユニットデータに対する処理を管理するユニットデータ管理手段と、
前記アクセスポインタを出力するアクセスポインタ出力手段とを備え、
前記アクセスポインタ出力手段は、前記ブロックデータごとおよび前記ユニットデータごとの符号化の完了を検知することに応じて、前記アクセスポインタを出力することを特徴とする、画像符号化装置。
【請求項２】
前記画像符号化装置は、前記サブブロックデータごとに前記符号データのデータサイズを算出する符号長算出手段を更に備え、
前記アクセスポインタ更新手段は、前記算出された符号長を加算することにより、アクセスポインタを更新する、請求項１に記載の画像符号化装置。
【請求項３】
前記アクセスポインタ更新手段は、前記符号化処理手段で既に符号化された符号データ全体のデータサイズを算出して得られるデータサイズを新たなアクセスポインタとして設定することにより、アクセスポインタを更新する、請求項１に記載の画像符号化装置。
【請求項４】
前記アクセスポインタと前記符号データとを関連づけて格納するための記憶手段をさらに備える、請求項２に記載の画像符号化装置。
【請求項５】
前記符号化処理手段で処理される符号化は、ハフマン符号化である、請求項４に記載の画像符号化装置。
【請求項６】
前記アクセスポインタ出力手段が、前記ブロックデータごとおよび前記ユニットデータごとの符号化の完了を検知するとは、
前記符号化処理手段が処理する前記サブブロックデータが、前記ブロックサイズ内における所定の１つの位置に該当し、かつ、
前記ブロックデータが、前記ユニットサイズ内における所定の１つの位置に該当する、
ことを検知することである、請求項１または請求項４に記載の画像符号化装置。
【請求項７】
前記サブブロックデータが、前記ブロックサイズ内で該当すべき１つの位置は、前記ブロックサイズ内の先頭位置である、請求項６に記載の画像符号化装置。
【請求項８】
前記ブロックデータが、前記ユニットサイズ内で該当すべき１つの位置は、前記ユニットサイズ内の先頭位置である、請求項６に記載の画像符号化装置。
【請求項９】
前記サブブロックデータが、前記ブロックサイズ内で該当すべき１つの位置は、前記ブロックサイズ内の先頭位置であり、かつ、
前記ブロックデータが、前記ユニットサイズ内で該当すべき１つの位置は、前記ユニットサイズ内の先頭位置である、請求項６に記載の画像符号化装置。
【請求項１０】
前記画像符号化装置は、前記可変長符号化処理を行なう際に参照される、可変長符号辞書を格納する可変長符号辞書格納手段を有する、請求項４に記載の画像符号化装置。
【請求項１１】
前記可変長符号辞書は、前記サブブロックデータの出現頻度に従って生成されるハフマン辞書である、請求項１０に記載の画像符号化装置。
【請求項１２】
前記画像符号化装置は、
符号化した符号データ全体のデータ容量を算出する、符号データサイズ算出手段と、
前記出力されたアクセスポインタ全体のデータ容量を算出する、アクセスポインタデータサイズ算出手段と、
前記算出された符号データサイズと、前記算出されたアクセスポインタデータサイズとを用いて、前記所定のユニットサイズを設定する、ユニットサイズ設定手段とをさらに備える、請求項１または請求項４に記載の画像符号化装置。
【請求項１３】
前記ユニットサイズ設定手段は、前記画像符号化装置の処理開始時に、所定の処理開始時用ユニットサイズを設定し、
前記アクセスポインタデータサイズ算出手段は、符号化対象となる全てのサブブロックデータについて、アクセスポインタ生成処理が終了する毎に、アクセスポインタデータサイズを算出し、
前記ユニットサイズ設定手段は、前記算出されたアクセスポインタデータサイズと、前記符号データサイズと、符号化対象となる全てのサブブロックデータ全体のデータ容量である元データサイズとが、所定の条件を満たす場合には、画像符号化処理を終了し、所定の条件を満たさない場合には、ユニットサイズを所定の規則に従って更新する、請求項１２に記載の画像符号化装置。
【請求項１４】
前記ユニットサイズ設定手段が処理開始時に設定する、前記所定の処理開始時用ユニットサイズは「１」であり、
前記ユニットサイズ設定手段がユニットサイズ更新時に従う、所定の規則は、現在のユニットサイズに「１」を加算することであり、
前記ユニットサイズ設定手段が画像符号化処理を終了するか、ユニットサイズを更新するかを決定する際に従う所定の条件は、
前記元データサイズをＯＳｉｚｅ、前記符号データサイズをＣＳｉｚｅ、前記アクセスポインタデータサイズをＴＳｉｚｅ、オーバヘッド係数をＷｇｔとした場合に、
（ＣＳｉｚｅ＋ＴＳｉｚｅ）／ＯＳｉｚｅ≦（ＣＳｉｚｅ／ＯＳｉｚｅ）×Ｗｇｔ
を満たす、という条件である、請求項１３に記載の画像符号化装置。
【請求項１５】
前記オーバヘッド係数Ｗｇｔは、「１．０」よりも大きく、かつ「２．０」よりも小さい値である、請求項１４に記載の画像符号化装置。
【請求項１６】
前記画像符号化装置は、
符号化対象となる全てのサブブロックデータ全体における、前記ブロックデータ毎の出現頻度を算出する頻度算出手段と、
前記頻度算出手段で算出された出現頻度に従って、前記符号化対象となる全てのサブブロックデータ全体において、前記ブロック単位で順序を並べ替えるブロックデータ並べ替え手段とをさらに備える、請求項１または請求項４に記載の画像符号化装置。
【請求項１７】
前記ブロックデータ並べ替え手段は、前記頻度算出手段で算出された前記出現頻度の大きいものを先頭に、前記出現頻度の小さいものほど後方に位置するように並べ替える、請求項１６に記載の画像符号化装置。
【請求項１８】
前記ユニットデータ管理手段は、前記ブロックデータの処理状況を管理して、所定のユニットサイズで規定されるユニットデータ分の処理を終了する毎に、前記所定のユニットサイズを所定の規則に従って更新する、請求項１６または請求項１７に記載の画像符号化装置。
【請求項１９】
前記所定のユニットサイズを更新する規則は、現在のユニットサイズに「１」を加算することである、請求項１８に記載の画像符号化装置。
【請求項２０】
所定のサブブロックサイズで規定されるサブブロックデータが予め符号化された符号データを、前記サブブロックデータの集合で構成され、所定のブロックサイズで規定されるブロックデータ単位で復号する画像復号装置であって、
前記ブロックデータの中の１つのブロックデータを指定する情報を取得するブロックデータ情報取得手段と、
前記符号データにアクセスするためのアクセスポインタを格納するアクセスポインタ格納手段と、
前記ブロックデータの集合で構成され、所定のユニットサイズで規定されるユニットデータへのアクセスポインタであって、前記取得したブロックデータ情報に対応するブロックデータが含まれるユニットデータへのアクセスポインタを、前記アクセスポインタ格納手段に格納されるアクセスポインタを参照して算出するユニットデータアクセスポインタ算出手段と、
前記ユニットデータ内における、前記取得したブロックデータ情報に対応するブロックデータが含まれる位置に関する情報を算出するブロックデータ位置情報算出手段と、
前記符号データを、前記算出されたユニットデータアクセスポインタに従う開始位置から順次復号する復号手段と、
前記復号した復号データを出力する復号データ出力手段とを備え、
前記復号データ出力手段は、前記復号手段で復号された復号サブブロックデータの集合で構成される復号ブロックデータの処理状況が、前記復号データが前記指定されたブロックデータに対応することを検知することに応じて、復号データを出力することを特徴とする、画像復号装置。
【請求項２１】
前記画像復号装置で処理される復号は、可変長符号化された符号データの復号である、請求項２０に記載の画像復号装置。
【請求項２２】
前記画像復号装置で処理される復号は、ハフマン符号化された符号データに対するハフマン復号である、請求項２１に記載の画像復号装置。
【請求項２３】
前記ユニットデータアクセスポインタ算出手段は、
前記ユニットデータアクセスポインタをＵｎＩｄｘ、前記１つのブロックデータを指定する情報をＧｌＮｕｍ、前記所定のユニットサイズをＵＳＩＺＥ、Ｉｎｔ（Ａ／Ｂ）を、整数Ａを整数Ｂで除算した際における商とした場合に、
ＵｎＩｄｘ＝Ｉｎｔ（ＧｌＮｕｍ／ＵＳＩＺＥ）
の数式に従って前記ユニットデータアクセスポインタを算出する、請求項２０または２１に記載の画像復号装置。
【請求項２４】
前記ユニットデータ内ブロックデータ位置情報算出手段は、
前記ユニットデータ内ブロックデータ位置情報をＢｌＩｄｘ、前記１つのブロックデータを指定する情報をＧｌＮｕｍ、前記所定のユニットサイズをＵＳＩＺＥ、Ｒｅｍ（Ａ／Ｂ）を、整数Ａを整数Ｂで除算した際における剰余とした場合に、
ＢｌＩｄｘ＝Ｒｅｍ（ＧｌＮｕｍ／ＵＳＩＺＥ）
の数式に従って前記ユニットデータ内ブロックデータ位置情報を算出する、請求項２０または２１に記載の画像復号装置。
【請求項２５】
前記復号データが前記指定されたブロックデータに対応することを検知するとは、
前記ユニットデータアクセスポインタに従う開始位置から順次復号される復号ブロックデータのユニット内ブロック位置情報が、前記ユニットデータ内ブロック位置情報算出手段で算出された、ユニットデータ内ブロック位置情報に該当することを検知することである、請求項２０または請求項２１に記載の画像復号装置。
【請求項２６】
前記画像復号装置は、前記所定の条件を満たす間、復号データを出力した後、前記所定の条件を満たさなくなった時点で、復号処理を終了する、請求項２５に記載の画像復号装置。
【請求項２７】
前記画像復号装置は、更に、可変長符号データを復号する際に参照される、可変長符号辞書を格納する可変長符号辞書格納手段を有する、請求項２１に記載の画像復号装置。
【請求項２８】
前記可変長符号辞書は、前記サブブロックデータの出現頻度に従って生成されるハフマン辞書である、請求項２７に記載の画像復号装置。
【請求項２９】
前記ユニットデータアクセスポインタ算出手段は、
前記ユニットデータアクセスポインタをＵｎＩｄｘ、前記１つのブロックデータを指定する情報をＧｌＮｕｍ、ＳＱＲＴ（Ａ）を、整数Ａの正の平方根とした場合に、
ＵｎＩｄｘ≧（−３＋ＳＱＲＴ（８×ＧｌＮｕｍ＋９））／２、かつ
ＵｎＩｄｘ≦（−１＋ＳＱＲＴ（８×ＧｌＮｕｍ＋１））／２
の数式を満たす整数を算出することにより、前記ユニットデータアクセスポインタを算出する、請求項２０または請求項２１に記載の画像復号装置。
【請求項３０】
前記ユニットデータ内ブロックデータ位置情報算出手段は、
前記ユニットデータ内ブロックデータ位置情報をＢｌＩｄｘ、前記１つのブロックデータを指定する情報をＧｌＮｕｍ、前記ユニットデータアクセスポインタをＵｎＩｄｘとした場合に、
ＢｌＩｄｘ＝ＧｌＮｕｍ−ＵｎＩｄｘ×（ＵｎＩｄｘ＋１）／２
の数式に従って前記ユニットデータ内ブロックデータ位置情報を算出する、請求項２０または請求項２１に記載の画像復号装置。
【請求項３１】
演算部を有するコンピュータに、所定のユニットサイズで規定される複数のユニットデータに分割され、さらに、所定のブロックサイズで規定されるブロックデータに分割される被符号化データに対して、所定のサブブロックサイズで規定されるサブブロックデータごとに符号化を実行して符号データを生成する画像符号化処理を実行させるプログラムであって、
前記演算部は、前記サブブロックデータごとに前記被符号化データを可変長符号化するステップと、
前記演算部は、前記符号データにアクセスするためのアクセスポインタを更新するステップと、
前記演算部は、前記サブブロックデータの処理状況を管理して、前記ブロックデータに対する処理を管理するステップと、
前記演算部は、前記ブロックデータの処理状況を管理して、前記ユニットデータに対する処理を管理するステップと、
前記演算部は、前記アクセスポインタを出力するステップとを備え、
前記アクセスポインタを出力するステップは、前記ブロックデータごとおよび前記ユニットデータごとの符号化の完了を検知することに応じて、前記アクセスポインタを出力することを特徴とする、画像符号化プログラム。
【請求項３２】
演算部を有するコンピュータに、所定のサブブロックサイズで規定されるサブブロックデータが予め符号化された符号データを、前記サブブロックデータの集合で構成され、所定のブロックサイズで規定されるブロックデータ単位で復号する画像復号処理を実行させるプログラムであって、
前記演算部は、前記ブロックデータの中の１つのブロックデータを指定する情報を取得するステップと、
前記演算部は、前記符号データにアクセスするためのアクセスポインタを格納するステップと、
前記演算部は、前記ブロックデータの集合で構成され、所定のユニットサイズで規定されるユニットデータへのアクセスポインタであって、前記取得したブロックデータ情報に対応するブロックデータが含まれるユニットデータへのアクセスポインタを、前記格納されたアクセスポインタを参照して算出するステップと、
前記演算部は、前記ユニットデータ内における、前記取得したブロックデータ情報に対応するブロックデータが含まれる位置に関する情報を算出するステップと、
前記演算部は、前記符号データを、前記算出されたユニットデータアクセスポインタに従う開始位置から順次復号するステップと、
前記演算部は、前記復号した復号データを出力するステップとを備え、
前記復号データを出力するステップは、前記復号された復号サブブロックデータの集合で構成される復号ブロックデータの処理状況が、前記復号データが前記指定されたブロックデータに対応することを検知することに応じて、復号データを出力することを特徴とする、画像復号プログラム。
【請求項３３】
所定のユニットサイズで規定される複数のユニットデータに分割され、さらに、所定のブロックサイズで規定されるブロックデータに分割される被符号化データに対して、所定のサブブロックサイズで規定されるサブブロックデータごとに符号化を実行して符号データを生成する画像符号化方法であって、
前記サブブロックデータごとに前記被符号化データを可変長符号化するステップと、
前記符号データにアクセスするためのアクセスポインタを更新するステップと、
前記サブブロックデータの処理状況を管理して、前記ブロックデータに対する処理を管理するステップと、
前記ブロックデータの処理状況を管理して、前記ユニットデータに対する処理を管理するステップと、
前記アクセスポインタを出力するステップとを備え、
前記アクセスポインタを出力するステップは、前記ブロックデータごとおよび前記ユニットデータごとの符号化の完了を検知することに応じて、前記アクセスポインタを出力することを特徴とする、画像符号化方法。
【請求項３４】
所定のサブブロックサイズで規定されるサブブロックデータが予め符号化された符号データを、前記サブブロックデータの集合で構成され、所定のブロックサイズで規定されるブロックデータ単位で復号する画像復号方法であって、
前記ブロックデータの中の１つのブロックデータを指定する情報を取得するステップと、
前記符号データにアクセスするためのアクセスポインタを格納するステップと、
前記ブロックデータの集合で構成され、所定のユニットサイズで規定されるユニットデータへのアクセスポインタであって、前記取得したブロックデータ情報に対応するブロックデータが含まれるユニットデータへのアクセスポインタを、前記格納されたアクセスポインタを参照して算出するステップと、
前記ユニットデータ内における、前記取得したブロックデータ情報に対応するブロックデータが含まれる位置に関する情報を算出するステップと、
前記符号データを、前記算出されたユニットデータアクセスポインタに従う開始位置から順次復号するステップと、
前記復号した復号データを出力するステップとを備え、
前記復号データを出力するステップは、前記復号された復号サブブロックデータの集合で構成される復号ブロックデータの処理状況が、前記復号データが前記指定されたブロックデータに対応することを検知することに応じて、復号データを出力することを特徴とする、画像復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを処理するための技術に関する。特に、少ない記憶容量および計算量で高効率に符号化および復号することのできる技術に関する。
【背景技術】
【０００２】
携帯電話や電子辞書などの小型の電子機器では、一般的に液晶画面に文字を表示することができる。液晶画面に文字を表示する際、画面特性に応じた最適な文字フォントを予め用意しておくことで、より鮮明で可読性に優れる文字表示を実現することができる。
【０００３】
ここで、多種多様な文字をすべて正確に保存しておく場合、小型機器における記憶容量を最小限に抑えるために、たとえば、ビットマップ画像データを可逆符号化により圧縮しておく必要がある。また、画面表示の処理速度に対応するために、符号化されたデータを高速に復号する必要がある。
【０００４】
電子データとして表現される画像データを符号化することにより、画像データの容量を圧縮する技術は、古くから研究されている。
【０００５】
可逆符号化として、たとえば、非特許文献１には、ハフマン法による符号化が示されている。ハフマン符号化では、被符号化データの出現頻度に基づいて頻度が大きいほど短い符号長となるようなハフマン辞書に従って可変長符号化を行なう。
【０００６】
また、符号化されたデータを高速に復号する技術として、たとえば、特許文献１には、画像復号に関する技術が示されている。この技術によれば、原画像データをブロックに分割するとともに、各ブロックの先頭データの格納アドレスを管理する情報を記憶装置に格納する。これにより、処理時間の削減およびリモート検索での転送データ量の削減を図ることができる。
【特許文献１】特開平３−１６４９８０号公報
【非特許文献１】「文書データ圧縮アルゴリズム入門」、植松友彦著、ＣＱ出版社（１９９４）、４６頁〜６４頁
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、非特許文献１に記載のハフマン符号は可変長符号であるため、元データの任意位置または任意領域を復号する際、符号化データの先頭のアドレスにあるデータから順に復号していく必要がある。このため、復号処理に時間を要してしまう傾向にある。
【０００８】
また、特許文献１に記載の技術によれば、ブロックごとの先頭データの格納アドレスを管理する装置では、任意アクセス時の処理時間が短いという利点を有するが、アドレス管理用のテーブルを保持するために記憶容量を要してしまう。
【０００９】
さらに、モバイル機器のように処理能力や記憶容量の小さい装置で可変長符号化データにランダムアクセスする場合、処理量の削減と記憶容量の削減とを両立する必要がある。
【００１０】
本発明は、上記のような問題を解決するためになされたものであって、その目的は、少ない記憶容量および計算量で高効率に画像データの符号化および復号することができる装置を提供することである。
【課題を解決するための手段】
【００１１】
本発明の１つの局面に従うと、所定のユニットサイズで規定される複数のユニットデータに分割され、さらに、所定のブロックサイズで規定されるブロックデータに分割される被符号化データに対して、所定のサブブロックサイズで規定されるサブブロックデータごとに符号化を実行して符号データを生成する画像符号化装置であって、サブブロックデータごとに被符号化データを可変長符号化する符号化処理手段と、符号データにアクセスするためのアクセスポインタを更新するアクセスポインタ更新手段と、サブブロックデータの処理状況を管理して、ブロックデータに対する処理を管理するブロックデータ管理手段と、ブロックデータの処理状況を管理して、ユニットデータに対する処理を管理するユニットデータ管理手段と、アクセスポインタを出力するアクセスポインタ出力手段とを備え、アクセスポインタ出力手段は、ブロックデータごとおよびユニットデータごとの符号化の完了を検知することに応じて、アクセスポインタを出力することを特徴とする。
【００１２】
好ましくは、画像符号化装置は、サブブロックデータごとに符号データのデータサイズを算出する符号長算出手段を更に備え、アクセスポインタ更新手段は、算出された符号長を加算することにより、アクセスポインタを更新する。
【００１３】
好ましくは、アクセスポインタ更新手段は、符号化処理手段で既に符号化された符号データ全体のデータサイズを算出して得られるデータサイズを新たなアクセスポインタとして設定することにより、アクセスポインタを更新する。
【００１４】
好ましくは、アクセスポインタと符号データとを関連づけて格納するための記憶手段をさらに備える。
【００１５】
好ましくは、符号化処理手段で処理される符号化は、ハフマン符号化である。
好ましくは、アクセスポインタ出力手段が、ブロックデータごとおよびユニットデータごとの符号化の完了が検知するとは、符号化処理手段が処理するサブブロックデータが、ブロックサイズ内における所定の１つの位置に該当し、かつ、ブロックデータが、ユニットサイズ内における所定の１つの位置に該当する、ことを検知することである。
【００１６】
好ましくは、サブブロックデータが、ブロックサイズ内で該当すべき１つの位置は、ブロックサイズ内の先頭位置である。
【００１７】
好ましくは、ブロックデータが、ユニットサイズ内で該当すべき１つの位置は、ユニットサイズ内の先頭位置である。
【００１８】
好ましくは、サブブロックデータが、ブロックサイズ内で該当すべき１つの位置は、ブロックサイズ内の先頭位置であり、かつ、ブロックデータが、ユニットサイズ内で該当すべき１つの位置は、ユニットサイズ内の先頭位置である。
【００１９】
好ましくは、画像符号化装置は、可変長符号化処理を行なう際に参照される、可変長符号辞書を格納する可変長符号辞書格納手段を有する。
【００２０】
好ましくは、可変長符号辞書は、サブブロックデータの出現頻度に従って生成されるハフマン辞書である。
【００２１】
好ましくは、画像符号化装置は、符号化した符号データ全体のデータ容量を算出する、符号データサイズ算出手段と、出力されたアクセスポインタ全体のデータ容量を算出する、アクセスポインタデータサイズ算出手段と、算出された符号データサイズと、算出されたアクセスポインタデータサイズとを用いて、所定のユニットサイズを設定する、ユニットサイズ設定手段とをさらに備える。
【００２２】
好ましくは、ユニットサイズ設定手段は、画像符号化装置の処理開始時に、所定の処理開始時用ユニットサイズを設定し、アクセスポインタデータサイズ算出手段は、符号化対象となる全てのサブブロックデータについて、アクセスポインタ生成処理が終了する毎に、アクセスポインタデータサイズを算出し、ユニットサイズ設定手段は、算出されたアクセスポインタデータサイズと、符号データサイズと、符号化対象となる全てのサブブロックデータ全体のデータ容量である元データサイズとが、所定の条件を満たす場合には、画像符号化処理を終了し、所定の条件を満たさない場合には、ユニットサイズを所定の規則に従って更新する。
【００２３】
好ましくは、ユニットサイズ設定手段が処理開始時に設定する、所定の処理開始時用ユニットサイズは「１」であり、ユニットサイズ設定手段がユニットサイズ更新時に従う、所定の規則は、現在のユニットサイズに「１」を加算することであり、ユニットサイズ設定手段が画像符号化処理を終了するか、ユニットサイズを更新するかを決定する際に従う所定の条件は、元データサイズをＯＳｉｚｅ、符号データサイズをＣＳｉｚｅ、アクセスポインタデータサイズをＴＳｉｚｅ、オーバヘッド係数をＷｇｔとした場合に、（ＣＳｉｚｅ＋ＴＳｉｚｅ）／ＯＳｉｚｅ≦（ＣＳｉｚｅ／ＯＳｉｚｅ）×Ｗｇｔを満たす、という条件である。
【００２４】
好ましくは、オーバヘッド係数Ｗｇｔは、「１．０」よりも大きく、かつ「２．０」よりも小さい値である。
【００２５】
好ましくは、画像符号化装置は、符号化対象となる全てのサブブロックデータ全体における、ブロックデータ毎の出現頻度を算出する頻度算出手段と、頻度算出手段で算出された出現頻度に従って、符号化対象となる全てのサブブロックデータ全体において、ブロック単位で順序を並べ替えるブロックデータ並べ替え手段とをさらに備える。
【００２６】
好ましくは、ブロックデータ並べ替え手段は、頻度算出手段で算出された出現頻度の大きいものを先頭に、出現頻度の小さいものほど後方に位置するように並べ替える。
【００２７】
好ましくは、ユニットデータ管理手段は、ブロックデータの処理状況を管理して、所定のユニットサイズで規定されるユニットデータ分の処理を終了する毎に、所定のユニットサイズを所定の規則に従って更新する。
【００２８】
好ましくは、所定のユニットサイズを更新する規則は、現在のユニットサイズに「１」を加算することである。
【００２９】
本発明の他の局面に従うと、所定のサブブロックサイズで規定されるサブブロックデータが予め符号化された符号データを、サブブロックデータの集合で構成され、所定のブロックサイズで規定されるブロックデータ単位で復号する画像復号装置であって、ブロックデータの中の１つのブロックデータを指定する情報を取得するブロックデータ情報取得手段と、符号データにアクセスするためのアクセスポインタを格納するアクセスポインタ格納手段と、ブロックデータの集合で構成され、所定のユニットサイズで規定されるユニットデータへのアクセスポインタであって、取得したブロックデータ情報に対応するブロックデータが含まれるユニットデータへのアクセスポインタを、アクセスポインタ格納手段に格納されるアクセスポインタを参照して算出するユニットデータアクセスポインタ算出手段と、ユニットデータ内における、取得したブロックデータ情報に対応するブロックデータが含まれる位置に関する情報を算出するブロックデータ位置情報算出手段と、符号データを、算出されたユニットデータアクセスポインタに従う開始位置から順次復号する復号手段と、復号した復号データを出力する復号データ出力手段とを備え、復号データ出力手段は、復号手段で復号された復号サブブロックデータの集合で構成される復号ブロックデータの処理状況が、復号データが指定されたブロックデータに対応することを検知することに応じて、復号データを出力することを特徴とする。
【００３０】
好ましくは、画像復号装置で処理される復号は、可変長符号化された符号データの復号である。
【００３１】
好ましくは、画像復号装置で処理される復号は、ハフマン符号化された符号データに対するハフマン復号である。
【００３２】
好ましくは、ユニットデータアクセスポインタ算出手段は、ユニットデータアクセスポインタをＵｎＩｄｘ、１つのブロックデータを指定する情報をＧｌＮｕｍ、所定のユニットサイズをＵＳＩＺＥ、Ｉｎｔ（Ａ／Ｂ）を、整数Ａを整数Ｂで除算した際における商とした場合に、ＵｎＩｄｘ＝Ｉｎｔ（ＧｌＮｕｍ／ＵＳＩＺＥ）の数式に従ってユニットデータアクセスポインタを算出する。
【００３３】
好ましくは、ユニットデータ内ブロックデータ位置情報算出手段は、ユニットデータ内ブロックデータ位置情報をＢｌＩｄｘ、１つのブロックデータを指定する情報をＧｌＮｕｍ、所定のユニットサイズをＵＳＩＺＥ、Ｒｅｍ（Ａ／Ｂ）を、整数Ａを整数Ｂで除算した際における剰余とした場合に、ＢｌＩｄｘ＝Ｒｅｍ（ＧｌＮｕｍ／ＵＳＩＺＥ）の数式に従ってユニットデータ内ブロックデータ位置情報を算出する。
【００３４】
好ましくは、復号データが指定されたブロックデータに対応することを検知するとは、ユニットデータアクセスポインタに従う開始位置から順次復号される復号ブロックデータのユニット内ブロック位置情報が、ユニットデータ内ブロック位置情報算出手段で算出された、ユニットデータ内ブロック位置情報に該当することを検知することである。
【００３５】
好ましくは、画像復号装置は、所定の条件を満たす間、復号データを出力した後、所定の条件を満たさなくなった時点で、復号処理を終了する。
【００３６】
好ましくは、画像復号装置は、更に、可変長符号データを復号する際に参照される、可変長符号辞書を格納する可変長符号辞書格納手段を有する。
【００３７】
好ましくは、可変長符号辞書は、サブブロックデータの出現頻度に従って生成されるハフマン辞書である。
【００３８】
好ましくは、ユニットデータアクセスポインタ算出手段は、ユニットデータアクセスポインタをＵｎＩｄｘ、１つのブロックデータを指定する情報をＧｌＮｕｍ、ＳＱＲＴ（Ａ）を、整数Ａの正の平方根とした場合に、ＵｎＩｄｘ≧（−３＋ＳＱＲＴ（８×ＧｌＮｕｍ＋９））／２、かつＵｎＩｄｘ≦（−１＋ＳＱＲＴ（８×ＧｌＮｕｍ＋１））／２の数式を満たす整数を算出することにより、ユニットデータアクセスポインタを算出する。
【００３９】
好ましくは、ユニットデータ内ブロックデータ位置情報算出手段は、ユニットデータ内ブロックデータ位置情報をＢｌＩｄｘ、１つのブロックデータを指定する情報をＧｌＮｕｍ、ユニットデータアクセスポインタをＵｎＩｄｘとした場合に、ＢｌＩｄｘ＝ＧｌＮｕｍ−ＵｎＩｄｘ×（ＵｎＩｄｘ＋１）／２の数式に従ってユニットデータ内ブロックデータ位置情報を算出する。
【００４０】
本発明のさらに他の局面に従うと、演算部を有するコンピュータに、所定のユニットサイズで規定される複数のユニットデータに分割され、さらに、所定のブロックサイズで規定されるブロックデータに分割される被符号化データに対して、所定のサブブロックサイズで規定されるサブブロックデータごとに符号化を実行して符号データを生成する画像符号化処理を実行させるプログラムであって、演算部は、サブブロックデータごとに被符号化データを可変長符号化するステップと、演算部は、符号データにアクセスするためのアクセスポインタを更新するステップと、演算部は、サブブロックデータの処理状況を管理して、ブロックデータに対する処理を管理するステップと、演算部は、ブロックデータの処理状況を管理して、ユニットデータに対する処理を管理するステップと、演算部は、アクセスポインタを出力するステップとを備え、アクセスポインタを出力するステップは、ブロックデータごとおよびユニットデータごとの符号化の完了を検知することに応じて、アクセスポインタを出力することを特徴とする。
【００４１】
本発明のさらに他の局面に従うと、演算部を有するコンピュータに、所定のサブブロックサイズで規定されるサブブロックデータが予め符号化された符号データを、サブブロックデータの集合で構成され、所定のブロックサイズで規定されるブロックデータ単位で復号する画像復号処理を実行させるプログラムであって、演算部は、ブロックデータの中の１つのブロックデータを指定する情報を取得するステップと、演算部は、符号データにアクセスするためのアクセスポインタを格納するステップと、演算部は、ブロックデータの集合で構成され、所定のユニットサイズで規定されるユニットデータへのアクセスポインタであって、取得したブロックデータ情報に対応するブロックデータが含まれるユニットデータへのアクセスポインタを、格納されたアクセスポインタを参照して算出するステップと、演算部は、ユニットデータ内における、取得したブロックデータ情報に対応するブロックデータが含まれる位置に関する情報を算出するステップと、演算部は、符号データを、算出されたユニットデータアクセスポインタに従う開始位置から順次復号するステップと、演算部は、復号した復号データを出力するステップとを備え、復号データを出力するステップは、復号された復号サブブロックデータの集合で構成される復号ブロックデータの処理状況が、復号データが指定されたブロックデータに対応することを検知することに応じて、復号データを出力することを特徴とする。
【００４２】
本発明のさらに他の局面に従うと、所定のユニットサイズで規定される複数のユニットデータに分割され、さらに、所定のブロックサイズで規定されるブロックデータに分割される被符号化データに対して、所定のサブブロックサイズで規定されるサブブロックデータごとに符号化を実行して符号データを生成する画像符号化方法であって、サブブロックデータごとに被符号化データを可変長符号化するステップと、符号データにアクセスするためのアクセスポインタを更新するステップと、サブブロックデータの処理状況を管理して、ブロックデータに対する処理を管理するステップと、ブロックデータの処理状況を管理して、ユニットデータに対する処理を管理するステップと、アクセスポインタを出力するステップとを備え、アクセスポインタを出力するステップは、ブロックデータごとおよびユニットデータごとの符号化の完了を検知することに応じて、アクセスポインタを出力することを特徴とする。
【００４３】
本発明のさらに他の局面に従うと、所定のサブブロックサイズで規定されるサブブロックデータが予め符号化された符号データを、サブブロックデータの集合で構成され、所定のブロックサイズで規定されるブロックデータ単位で復号する画像復号方法であって、ブロックデータの中の１つのブロックデータを指定する情報を取得するステップと、符号データにアクセスするためのアクセスポインタを格納するステップと、ブロックデータの集合で構成され、所定のユニットサイズで規定されるユニットデータへのアクセスポインタであって、取得したブロックデータ情報に対応するブロックデータが含まれるユニットデータへのアクセスポインタを、格納されたアクセスポインタを参照して算出するステップと、ユニットデータ内における、取得したブロックデータ情報に対応するブロックデータが含まれる位置に関する情報を算出するステップと、符号データを、算出されたユニットデータアクセスポインタに従う開始位置から順次復号するステップと、復号した復号データを出力するステップとを備え、復号データを出力するステップは、復号された復号サブブロックデータの集合で構成される復号ブロックデータの処理状況が、復号データが指定されたブロックデータに対応することを検知することに応じて、復号データを出力することを特徴とする。
【発明の効果】
【００４４】
本発明によれば、少ない記憶容量および計算量で高効率に画像データの符号化および復号することができる。
【発明を実施するための最良の形態】
【００４５】
以下、図面を参照しつつ本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについては詳細な説明は繰り返さない。
【００４６】
本実施の形態にかかる画像符号化装置および画像復号装置は、情報処理装置としてのパーソナルコンピュータ等のコンピュータによって実現されるものであってもよいし、テキスト処理装置としての携帯機器に搭載されるものであってもよい。本実施の形態においては、画像符号化装置は、情報処理装置としてのパーソナルコンピュータ（以下、ＰＣと略する）に搭載されているものとする。また、画像復号装置は、テキスト処理装置としての携帯機器の一例としての、携帯電話に搭載されているものとする。テキスト処理装置の他の具体例としては、ＰＤＡ（Personal Digital Assistants）や携帯ゲーム装置や表示装置を備えた家電などが該当する。
【００４７】
［第１の実施の形態］
図６６は、本実施の形態にかかる画像符号化装置を搭載する、情報処理装置としてのＰＣ３のハードウェア構成の具体例を示す図であり、一般的なＰＣのハードウェア構成の具体例を示すブロック図である。
【００４８】
図６６を参照して、ＰＣ３は、装置全体を制御するＣＰＵ１０１と、ＲＯＭ１０３と、ＲＡＭ１０５と、ハードディスクドライブ１０７と、フレキシブルディスクドライブ（ＦＤＤ：Flexible Disk Drive）やＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）ドライブなど記録媒体２から情報を読取る読取部１０９と、キーボードやマウスなどにより構成される入力部１１１と、外部と通信行なうための通信部１１３と、表示部１１５とを含んで構成される。
【００４９】
本実施の形態にかかる画像符号化装置は、ＰＣ３のハードウェア、およびＲＯＭ１０３等の記憶部に記憶されＣＰＵ１０１により実行されるソフトウェアにより構成され、後述する画像符号化処理を行なうための機能は、ＣＰＵ１０１がＲＯＭ１０３等の記憶部に記憶されるプログラムを読出して実行することによって、主にＣＰＵ１０１に形成される。または、上記機能の少なくとも一部は図６６に示されたＰＣ３のハードウェアによって構成されてもよい。
【００５０】
図２は、本実施の形態にかかるＰＣ３において画像符号化装置として機能し、画像符号化処理を行なうための機能構成の具体例を示すブロック図である。第１の実施の形態にかかる画像符号化装置は、異なる文字コードに対応する文字画像データの系列を、ワードの系列ごとに、ライン間差分を用いて符号化する。
【００５１】
図２を参照して、画像符号化装置の上記機能は、コントローラ１２０１、画像データメモリ１２０２、加工分割画像データメモリ１２０３、エントロピー符号化部１２０４、符号化データメモリ１２０５、アクセステーブルデータ生成部１２０６、アクセステーブルデータメモリ１２０７、文字識別情報・グリフ番号対応ルールメモリ１２０８、および画像処理部１２０９を含んで構成され、それぞれの構成要素は、データバス１２１０を介して互いに、また外部に接続される。
【００５２】
さらに、図３は、画像処理部１２０９の構成の具体例を示すブロック図である。図３を参照して、画像処理部１２０９は、画像演算部３８０１、文字画像データメモリ３８０２、分割文字画像データメモリ３８０３、および加工分割文字画像データメモリ３８０４を含んで構成され、各構成要素はデータバス３８０５を介して互いに、また外部に接続される。
【００５３】
さらに、図４は、アクセステーブルデータ生成部１２０６の構成の具体例を示すブロック図である。図４を参照して、アクセステーブルデータ生成部１２０６は、文字識別情報・グリフ番号変換データ生成部２２０１、およびグリフ番号・オフセット情報変換データ生成部２２０２を含んで構成され、各構成要素はデータバス２２０３を介して互いに、また外部に接続される。
【００５４】
画像データメモリ１２０２はＲＯＭ１０３等の記憶部の所定領域で構成され、図示されない取得部によって取得された画像データは、画像データメモリ１２０２に入力（ロード）される。上記取得部は本発明において特定の手段に限定されず、ＣＤ−ＲＯＭなどの記録媒体からデータを読取る読取部１０９や、他の装置から送信されるデータを受信する通信部１１３などが挙げられる。
【００５５】
ここで、データをメモリに読出す単位としてワードが用いられる。ワードまたはワードの倍数と１文字を構成する画像データ（以降、文字画像データと呼ぶ）のサイズとは一致していない場合がある。そのため、たとえば２ワードで１文字分の文字画像データが読出される場合、メモリに書込まれるデータにおいて、ワードの境目（ワードバウンダリ）と文字の中心とが一致しない。具体的に図５を用いて説明する。なお、図５および以下の実施の形態においては、ワードが水平方向に配置されているものとする。また、文字画像データの縦・横ドット数は一定であるものとする。しかしながら、本発明において、処理対象の画像データのサイズや文字データのサイズは特定のサイズに限定されず、以下の例では、１つの具体例として、ワードサイズを８ビットとする。また、１文字を構成する文字画像データのサイズは、縦・横ドット数とも１１ドットとする（以下１１×１１フォントと呼ぶことがある）。そして、図５に示されるように、左に１ドットオフセットして横２バイト、縦１１ドットの２値画像で個々の文字データが格納されているものとする。なお、以下では、画像ラインを数える際は０から始めるものとする。したがって、先頭のラインは「０ライン目」となる。図５は１１ドット×１１ドットのサイズの、２値画像である文字画像データ１０１の具体例を表わしている。図５に示される１文字分の文字画像データ１０１は、２ワード分に相当する１６ビット×１１ラインで構成されており、左側は常に１ビット以上空けて１１ドット×１１ドットのサイズの文字が表わされる。なお、文字の形状によっては、１文字を構成する文字画像データに文字を構成するドット（以下「黒ドット」）がほとんど、あるいはまったく入っていないこともあり得る。なお、ここでは、２値画像のバイトの値として、左端のドットをＭＳＢ（Most Significant Bit）とするものとする。また、以下の説明を通じて、黒ドットを１、それ以外のドットを０とする。たとえば、後述する図１２のデータ１０２の場合、０ライン目の値は、１６進数で０Ｘ０２となる。
【００５６】
図６は、画像データメモリ１２０２に格納される、２値画像である画像データの具体例を示す図である。画像データメモリ１２０２に格納される画像データは、図５に示された、縦方向に１文字を構成する文字画像データが、複数個連結されてなる画像データであるものとする。
【００５７】
文字識別情報・グリフ番号対応ルールメモリ１２０８はＲＯＭ１０３等の記憶部の所定領域で構成され、後述する文字識別情報とグリフ番号との対応を示す文字識別情報・グリフ番号対応ルールを記憶する。
【００５８】
文字識別情報は文字を識別する情報を指し、具体的には、文字コードや書体などを指す。グリフ番号は画像データメモリ１２０２に格納されている文字画像データを特定する情報を指し、具体的には画像データメモリ１２０２に格納されている各文字画像データに付加された０から始まる番号を指す。以下の説明では、グリフ番号は、各文字画像データが、符号化される順序にもなっている。なお、ここでは、「グリフ」は、文字画像で表現される字形という意味で用いられる。
【００５９】
文字識別情報・グリフ番号対応ルールは画像データメモリ１２０２に格納されている各文字画像データと文字識別情報との対応を規定するものであり、具体的には、図７に示されるように、文字識別情報としての文字コードと、文字識別情報としての書体識別情報と、画像データメモリ１２０２に格納されている各文字画像データを特定するグリフ番号との対応を示すテーブルである。なお、以降の具体例では、文字識別情報は２バイトのシフトＪＩＳコードと、１ビットの書体指定情報（ゴシック体が０で表わされ、明朝体が１で表わされる）とする。また、この具体例では、フォントサイズが異なる文字は符号化データ自体が異なっているものとする。したがって、フォントサイズについては文字識別情報には含まれないものとする。
【００６０】
図７に示されるテーブルに規定されるように、文字コードが同じであっても書体が異なる場合には異なるグリフに対応する場合がある。または、異なる文字コードであっても、同一のグリフに対応する場合があってもよい。
【００６１】
画像処理部１２０９の文字画像データメモリ３８０２、分割文字画像データメモリ３８０３、および加工分割文字画像データメモリ３８０４はＲＯＭ１０３等の記憶部の所定領域で構成される。
【００６２】
画像データメモリ１２０２に格納された画像データから、画像演算部３８０１によって１文字分の文字画像データが読出され、文字画像データメモリ３８０２に格納される。文字画像データメモリ３８０２に格納された文字画像データは、画像演算部３８０１によって、横方向のバイト境界で縦方向に分割され、「分割文字画像データ」として、分割文字画像データメモリ３８０３に格納される。画像は一般にラスタ順にアドレスが配置されているので、バイト境界で分割した場合には、文字画像データでアドレスが不連続な、上下方向に隣接するバイトが１つの分割文字画像データ上でアドレスが連続するようになる。
【００６３】
なお、本発明において文字画像データの分割方法は特定の方法に限定されず、上記方法は１つの具体例である。分割方法は上記具体例のように、文字画像データのドット構成を考慮した方法であることが好ましい。このような分割方法で文字画像データを分割することで、後述するように、符号化にあたってより特定の値に分布を集中させることができるようになる。
【００６４】
また、本実施の形態における分割方法はバイト（８ビット）単位で区切るものであるため、通常のバイト単位でＣＰＵで処理がしやすいものとなっている。もちろん、この分割方法の具体例は画像上でのバイト配置が、水平方向にバイトを構成するビットが並んでいることが前提とされている。そのため、この前提が異なれば、分割方法は本具体例の分割方法に替えて、ＣＰＵでの処理がしやすい分割方法とすることが好ましい。
【００６５】
分割文字画像データメモリ３８０３に格納されている分割文字画像データについて、画像演算部３８０１において排他的論理和が算出され、算出結果が「加工分割文字画像データ」として加工分割文字画像データメモリ３８０４に格納される。
【００６６】
なお、ここでは排他的論理和は、広く知られているように、２つのビットが一致すれば０、不一致であれば１とする演算である。ここでは、１文字ごとに閉じたものとするため、最初のラインは排他的論理和を用いずに、入力データである分割文字画像データから取出した０ライン目をそのまま用いる。
【００６７】
したがって、ＡとＢとの排他的論理和を記号「＾」で表わすものとすると、
ｎ＝０について、
（加工分割文字画像データのｎライン目）＝（分割文字画像データのｎライン目）
ｎ≧１について、
（加工分割文字画像データのｎライン目）＝（分割文字画像データの（ｎ−１）ライン目）＾（分割文字画像データのｎライン目）
となる。
【００６８】
このように、分割文字画像データの０ライン目はそのまま加工分割画像データにコピーされ、残りのラインについて排他的論理和が算出されることで、ある文字を復号するにあたって他の文字を復号する必要がなく、各文字を独立して復号することができる。
【００６９】
ここでは差分を得る方法として、隣接するライン間の排他的論理和を用いたが、もちろんこの方法は１つの具体例であり、本発明においては特定の方法に限定されるものではない。差分を得る方法は、元の情報を失うことなく（可逆性を損なうことなく）、特定の値の頻度を大きくするような変換であれば排他的論理和でなくてもよいし、画像データの内容によっては、互いに隣接するラインの代わりに、離れたライン間の排他的論理和でも構わない。特に後者は、そのようにすることで、（たとえば周期的に類似した内容のラインが現れることがわかっている場合）特定の値の頻度をより大きくする（値の分布の偏りを大きくする）ことができれば有効である。
【００７０】
加工分割画像データメモリ１２０３はＲＯＭ１０３等の記憶部の所定領域で構成される。加工分割文字画像データメモリ３８０４に格納された加工分割文字画像データは、画像演算部３８０１によって加工分割画像データメモリ１２０３に出力されて、格納される。
【００７１】
符号化データメモリ１２０５はＲＯＭ１０３等の記憶部の所定領域で構成される。加工分割画像データメモリ１２０３に格納された加工分割画像はエントロピー符号化部１２０４においてエントロピー符号化され、「符号化データ」として符号化データメモリ１２０５に格納される。
【００７２】
なお、エントロピー符号化部１２０４における符号化方式は本発明において特定の方式に限定されず、公知のあらゆる技術が採用され得る。符号化方式の具体例としては固定ハフマン符号化（以下、単に「ハフマン符号化」と表現する）、算術符号化などが挙げられ、本実施の形態にかかる画像符号化装置ではハフマン符号化が行なわれるものとする。ハフマン符号化の利点は復号のための計算量が少ないことである。また、エントロピー符号化を行なう単位としては、加工分割文字画像データではなく、文字単位より大きい加工分割画像データとすることが好ましい。一般に、一塊のデータとして符号化される範囲（ハフマン符号化では、ハフマンテーブル（ハフマン辞書）を共有して符号化されるデータの範囲）を文字画像データとすると、総データ量に対してオーバヘッドが大きくなりやすいためである。ここではオーバヘッドとは、元のデータに対応する符号以外に必要なデータ量を意味する。たとえばハフマン符号化を採用する場合であればハフマンテーブルのデータ量がオーバヘッドに相当する。言うまでもなく、オーバヘッドが総データ量に対して充分に小さな符号化方式が採用される場合には、一塊のデータとして符号化される範囲は加工分割文字画像データとしてもよい。
【００７３】
アクセステーブルデータメモリ１２０７はＲＯＭ１０３等の記憶部の所定領域で構成される。アクセステーブルデータ生成部１２０６は符号化データメモリ１２０５に格納された符号化データにアクセスするためのアクセステーブルデータを生成して、アクセステーブルデータメモリ１２０７に格納する。
【００７４】
アクセステーブルデータは、文字識別情報と、当該文字識別情報で特定される文字が符号化データ上のどこからどこまでの符号に対応するかを示す情報（この情報をオフセット情報と称する）との対応を規定するデータであり、符号化データと共に格納される。アクセステーブルデータは後述する復号処理において用いられる。具体例としては、図８に示されるように、アクセステーブルデータは、文字識別情報を、符号化データ上の何番目（以下先頭を０番目とする）のグリフであるかを示す、グリフ番号に変換するための文字識別情報・グリフ番号変換データ１４０１と、グリフ番号をオフセット情報に変換するためのグリフ番号・オフセット情報変換データ１４０２とを含むデータとする。
【００７５】
一般に、データ容量を削減するための符号化では、同じデータ長の画像データであっても符号化後のデータ長は異なる。そのため、グリフ番号から、個々の文字に対応するデータに対応する符号化データ上のデータ位置を単純な計算で得ることができず、オフセット情報が必要とされる。
【００７６】
より詳しくは、アクセステーブルデータ生成部１２０６の文字識別情報・グリフ番号変換データ生成部２２０１は、文字識別情報に基づいて内部文字コードを取得する（なお、ここでいう「取得」とは算出することも含むとする。以下同様）。内部文字コードとは、データアクセスを効率化するため、文字識別情報で特定される文字が、当該画像符号化装置における何番目の文字コードであるかを示す値を指す。ここでは、文字コードが同一であっても、書体指定情報が異なれば内部文字コードも異なるものとする。
【００７７】
アクセステーブルデータ生成部１２０６のグリフ番号・オフセット情報変換データ生成部２２０２はグリフ番号・オフセット情報変換データを生成し、アクセステーブルデータメモリ１２０７に書込む。グリフ番号・オフセット情報変換データとは、グリフ番号から、各グリフに対応する符号データを探し出すための、グリフ番号と、符号化データ上でのオフセット情報との対応を表わす値を指す。
【００７８】
図９は、本実施の形態にかかる画像符号化装置における符号化処理を示すフローチャートである。図９のフローチャートに示される処理は、制御部１２０がＲＯＭ１０３等の記憶部に記憶されるプログラムを読出して実行し、コントローラ１２０１が図２等に示された各部を制御することによって実現される。
【００７９】
図９を参照して、始めに、コントローラ１２０１によって、画像データが画像データメモリ１２０２に入力（ロード）される（ステップＳ１３０１）。ここでは、具体例として図６に示された画像データ（１１×１１フォント）がロードされたものとして以下の説明を行なう。さらに、コントローラ１２０１によって、先述の文字識別情報・グリフ番号対応ルールが文字識別情報・グリフ番号対応ルールメモリ１２０８に入力（ロード）される（ステップＳ１３０２）。ここでは、具体例として図７に示された文字識別情報・グリフ番号対応ルールがロードされたものとして以下の説明を行なう。
【００８０】
コントローラ１２０１の画像演算部３８０１は、ステップＳ１３０１で画像データメモリ１２０３に格納された画像データから取出された文字画像データを横方向のバイト境界によって縦方向に分割して分割文字画像データを得る（ステップＳ１３０３）。ステップＳ１３０３で得られた分割文字画像データより、画像処理部１２０９において排他的論理和が算出され、算出結果が加工分割文字画像データとして加工分割画像データメモリ１２０３に格納される（ステップＳ１３０４）。加工分割画像データと加工分割画像データメモリ１２０３とには、すでに処理が終わった文字画像データに対応する、加工分割文字画像データがすでに格納されている。ステップＳ１３０３では、加工分割文字画像データは、すでに格納されている、加工分割文字画像データの末尾に追加されて加工分割画像データメモリ１２０３に格納される。「加工分割画像データ」とはこのようにして蓄積された加工分割文字画像データのことであり、その作られ方から、文字画像データをステップＳ１３０３で分割する数だけ存在する。したがって、図６に示された画像データがロードされた場合には加工分割画像データは２つ存在することになる。図６７および図６８は、すでに２文字分の加工分割文字画像データが格納されているところに、ステップＳ１３０４で、１文字分の加工分割文字画像データが追加される前および後の具体例を示す図である。上で述べたように、加工分割画像データは、文字画像データをステップＳ１３０３で２分割することに対応して、２つ存在するが、もう１つの加工分割画像データについて、１文字分の加工分割文字画像データが追加される前および後の具体例を示す図が図６９および図７０である。
【００８１】
ステップＳ１３０１でロードされた画像データに含まれるすべての文字が処理されていれば（ステップＳ１３０５でＹＥＳ）処理はステップＳ１３０６に進み、処理されていなければ（ステップＳ１３０５でＮＯ）処理はステップＳ１３０２に戻る。
【００８２】
ステップＳ１３０６では、エントロピー符号化部１２０４が、加工分割画像データメモリ１２０３に格納された加工分割画像データに対してエントロピー符号化処理を実行し、符号化データを符号化データメモリ１２０５に格納する。
【００８３】
ステップＳ１３０１でロードされた画像データから得られたすべての加工分割画像データに対して処理が終了していれば（ステップＳ１３０７でＹＥＳ）、処理はステップＳ１３０８に進み、そうでなければ（ステップＳ１３０７でＮＯ）、処理はステップＳ１３０６に戻る。
【００８４】
ステップＳ１３０８では、アクセステーブルデータ生成部１２０６が符号化データメモリ１２０５に格納された符号化データにアクセスするためのアクセステーブルデータを生成して、アクセステーブルデータメモリ１２０７に格納する。
【００８５】
符号化データメモリ１２０５に格納されている符号化データは画像データの符号化結果としてコントローラ１２０１によって当該画像符号化装置より出力される（ステップＳ１３０９）。また、アクセステーブルデータメモリ１２０７に格納されているアクセステーブルデータも符号化データと共に当該画像符号化装置より出力され（ステップＳ１３１０）、処理が終了する。
【００８６】
図１０は、上記ステップＳ１３０３における画像データの分割処理を示すフローチャートである。
【００８７】
図１０を参照して、始めに、画像演算部３８０１は、上記ステップＳ１３０１で画像データメモリ１２０２にロードされた画像データから１文字分の文字画像データを読出し、文字画像データメモリ３８０２に格納する（ステップＳ３９０１）。
【００８８】
画像データメモリ１２０２にロードされた画像データが図６に示される画像データである場合、上記ステップＳ３９０１では、図１１の（Ａ）〜（Ｃ）に示される文字画像データが順次、文字画像データメモリ３８０２に格納される。
【００８９】
次に、画像演算部３８０１は、文字画像データメモリ３８０２に格納された文字画像データを縦方向に分割して、分割文字画像データを分割文字画像データメモリ３８０３に格納し（ステップＳ３９０２）、処理をステップＳ１３０４に進める。
【００９０】
具体的には、上記ステップＳ３９０１で得られた文字画像データが図１１の（Ａ）で示された、ロードされた画像データを分割して得られた文字画像データ、つまり先に説明された図５に示されるデータ１０１である場合、上記ステップＳ３９０２で画像演算部３８０１によって分割されることで、分割文字画像データは図１２に示されるデータ１０２と図１３に示されるデータ１０３となる。図５に示される構成の文字画像データの場合、左端のビットに値が入ることはないため、図１２および図１３に示されるように、このような方向に分割することで、分割文字画像データは左側のデータ１０２と右側のデータ１０３とで、画像を構成する、横方向のラインに含まれるドットからなる個々のバイトの値の分布は大きく異なることとなる。
【００９１】
図１３のデータ１０３のバイトの値については、上述のように文字が配置されているため、下位の４ビットは値が常に０となる。すなわち、データ１０３のバイトの値の種類は最大限１６種類しかない。そのため、画像演算部３８０１において文字画像データを縦方向に分割することで、符号化効率向上に寄与する。
【００９２】
また、図１４は、２３ドット×２３ドットのサイズを持った文字画像データの例であるが、ここでは左側のバイト２０１は、ＭＳＢが常に０であり、したがってバイトの値の種類は１２８種類しかない。すなわち、左側のバイト２０１は中央のバイト２０２や右側のバイト２０３とは値の分布が異なるため、画像演算部３８０１において文字画像データを縦方向に分割することで、符号化効率向上に寄与する。
【００９３】
なお、文字画像データを縦方向に分割することが特に好ましいのは、上記具体例のように、特に、文字がワード（バイト）バウンダリ（境界）にしたがって文字画像データ上に配置されている場合である。そうなっていない画像データの具体例を図１５に示す。図１５に示される画像データ上では、ワードバウンダリ７０１、７０２をまたいで文字画像データが配置されている。ただし、このような場合も、適切なビットオペレーション（シフトなど）によって、文字がワードバウンダリをまたいで配置しないように変換することは可能である。
【００９４】
図１６は、上記ステップＳ１３０４における排他的論理和の算出処理を示すフローチャートである。
【００９５】
図１６を参照して、始めに、画像演算部３８０１は、上記ステップＳ３９０１で分割文字画像データメモリ３８０３に格納された分割文字画像データについて排他的論理和を算出し、加工分割文字画像データを加工分割文字画像データメモリ３８０４に格納する（ステップＳ４００１）。具体的には、図１２に示される分割文字画像データ１０２の排他的論理和が算出されると、図１７に示される加工分割文字画像データ６０１が得られる。そして、画像演算部３８０１は、加工分割文字画像データメモリ３８０４に格納された加工分割文字画像データを加工分割画像データメモリ１２０３に出力する（ステップＳ４００２）。
【００９６】
ステップＳ１３０１でロードされた画像データから得られたすべての分割文字画像データについて排他的論理和を算出する処理が終了していれば（ステップＳ４００３でＹＥＳ）、処理を終了して上記ステップＳ１３０５に進める。そうでなければ（ステップＳ４００３でＮＯ）、処理はステップＳ４００１に戻る。
【００９７】
図１８のフローチャートを用いて、上記ステップＳ１３０８におけるアクセステーブルの生成処理を説明する。
【００９８】
アクセステーブルに含まれる文字識別情報・グリフ番号変換データ１４０１の、最も単純な構成は、文字コードとグリフ番号との対応を規定するテーブルとする構成である。しかし、文字識別情報・グリフ番号変換データ１４０１をこのような構成とすると、文字識別情報・グリフ番号変換データ１４０１のデータサイズが（文字数）×（文字コードを格納するのに必要なビット長）となって効率的な符号化が達成され得ないため、次のように構成されることが好ましい。
【００９９】
ここで、以下のことを仮定する：
（仮定１）文字識別情報とグリフとは必ずしも１対１に対応付けられておらず、１つのグリフが複数のコードに対応付けられていてもよい、
（仮定２）グリフが対応付けられていない文字識別情報も存在する可能性がある、
（仮定３）大多数のグリフは、文字識別情報と１対１に対応付けられている、
（仮定４）文字コードは、局所的には連続している、
（仮定５）グリフデータは、対応する内部文字コード（後述）の昇順（小さいものから大きなものの順）に並んでいる。ただし、対応する内部文字コードが複数ある場合は、そのようなもので最小のものを取るとする。
【０１００】
上記（仮定１）は、ギリシャ文字の「Ρ（ロー）」およびラテンアルファベットの「Ｐ」など、文字識別情報（文字コード）では区別できても、対象とする表示装置でフォントデータを表示する場合にグリフとして区別できない場合に、グリフデータを共通とすることで符号化データが削減される可能性を考慮した仮定である。
【０１０１】
上記（仮定２）は、サイズによってはグリフが存在しないケースなどを想定したものである（たとえば、特定のサイズでのみ存在する複雑な文字、つまり、ある程度のサイズがないと表示され得ない複雑な形状の文字などが該当する）。
【０１０２】
上記（仮定３）は、（仮定１），（仮定２）の仮定の下でも、大半の文字識別情報がグリフデータと１対１に対応付けられているという仮定である。
【０１０３】
上記（仮定４）は、シフトＪＩＳコードで典型的に見られるように、文字コードはすべて不連続なのではなく、連続したコードに文字が対応付けられているという仮定である。この仮定は、後述するように、比較的少数の条件式によって、文字コードと書体識別情報とから、内部文字コードに変換することが容易にできることを示している。
【０１０４】
上記（仮定５）は、そのように構成すれば満たされる条件であり、後述する、符号化でデータに高速にアクセスできるためのアクセステーブルデータを作りやすくするためのものである。図７で示した文字識別情報・グリフ番号対応ルールの例もこの仮定を満たしたものとなっている。
【０１０５】
以上の仮定に基づいて、本実施の形態において、文字識別情報・グリフ番号変換データ１４０１は図１９に示される構成であるものとする。すなわち、図１９を参照して、文字識別情報・グリフ番号変換データ１４０１は、ステータステーブル１５０１、第１補助テーブル１５０２、および第２補助テーブル１５０３を含んで構成される。
【０１０６】
ここで図１８を参照して、アクセステーブルデータを生成する際、始めに、文字識別情報・グリフ番号変換データ生成部２２０１は、文字識別情報に基づいて対象の文字について内部文字コードを取得する（ステップＳ２３０１）。ここで、文字識別情報としての文字コードと内部文字コードとの具体的な対応を図２０に示される対応とする。図２０においては、説明の便宜上、文字コードは０ｘ８２５０〜０ｘ８２５１、０ｘ８２６０〜０ｘ８２６２の６通りのみとする。なお、図２０においては、上記（仮定４）が成立っていることが読取られ得る。
【０１０７】
いくつかの条件文を用いることで文字コードと書体識別情報とから内部文字コードに変換する技術の１つの具体例として、図２１に、文字コードを示す変数ｃｏｄｅと書体識別情報を示す変数ｔｙｐｅとから、内部文字コードを示す変数ｉｎｔｅｒｎａｌ＿ｃｏｄｅに変換するＣ言語ソースコードを示す。上記ステップＳ２３０１で用いられる技術は特定の技術に限定されず、たとえば図２１に示されたような技術を用いて内部文字コードが取得される。
【０１０８】
次に、文字識別情報・グリフ番号変換データ生成部２２０１は、文字識別情報・グリフ番号対応ルールメモリ１２０８に記憶されている文字識別情報・グリフ番号対応ルールと内部文字コードとからステータステーブルを生成して、アクセステーブルデータメモリ１２０７に書込む（ステップＳ２３０２）。
【０１０９】
文字識別情報・グリフ番号対応ルールが図７に示されたものであり、文字識別情報としての文字コードと内部文字コードとの対応が図２０に示されたものである場合、上記ステップＳ２３０２では、図２２に示されるステータステーブルが生成される。ステータステーブルとは、昇順に並べられた内部文字コードに対応した、グリフの割当て状態を示すテーブルであり、具体的には、図２２を参照して、ステータステーブル１５０１には、以下の３種類の値のうちのいずれかの値が各内部文字コードに対して規定されている：
０…当該内部文字コードに割当てられているグリフはない、
１…当該内部文字コードに割当てられているグリフに対応する文字コードは１つだけ存在する、または２つ以上存在するがステータステーブル１５０１でそのグリフが出てくるのは１回目である、
２…当該内部文字コードに割当てられているグリフに対応する内部文字コードは２つ以上存在する。
【０１１０】
図２２に示されるステータステーブルでは、内部文字コード３，９，４，１０，５，１１に対して値として１が与えられていることより、図２０を併せて参照すれば、それぞれゴシック体「Ａ」，明朝体「Ａ」，ゴシック体「Ｂ」，明朝体「Ｂ」，ゴシック体「Ｃ」，明朝体「Ｃ」には、独立したグリフが存在する（当該内部文字コードに対応するグリフは１つだけ存在する）ことが分かる。また、内部文字コード６，８に対してそれぞれ２が与えられていることより、他の内部文字コードと共通したグリフが使われていることが示されている。どの内部文字コードと共通したグリフが使われているのかは、このテーブル単独からでは判断できないが、図７および図２０も併せて参照すれば、それぞれ内部文字コード０，２と共通したグリフが使われていることが分かる。したがって、内部文字コード０，２に対応するテーブルの値が１になっているのは、先述の「当該内部文字コードに割当てられているグリフに対応する文字コードは２つ以上存在するがステータステーブル１５０１でそのグリフが出てくるのは１回目である」によるものである。また、内部文字コード７については「０」が与えられていることより、ゴシック体「２」のグリフは存在しないことが示されている。
【０１１１】
次に、文字識別情報・グリフ番号変換データ生成部２２０１は第１補助テーブルを生成してアクセステーブルデータメモリ１２０７に書込む（ステップＳ２３０３）。ここで、第１補助テーブルとは、内部文字コードのいくつかについて対応するグリフ番号を記述したテーブルである。図１９の第１補助テーブル１５０２の具体例としては、図２３に示された、内部文字コードのうちのいくつかとグリフ番号との対応を記述したテーブルである。第１補助テーブル１５０２は当該符号化データを復号する際に用いられるテーブルであり、用いられ方については後述する。
【０１１２】
第１補助テーブル１５０２の構成について説明する。ステータステーブル１５０１の値に１が割当てられている場合は、それまでにそのようなデータがいくつあったかを調べて、得られた結果が、対応するグリフ番号となる（上記（仮定５）があるためである。）。第１補助テーブルには、内部文字コードのいくつかについて、上記のようにして対応するグリフ番号を計算した結果が格納されている。
【０１１３】
図２３に示された第１補助テーブル１５０２では、当該第１補助テーブルへのアクセスを効率化するために、等間隔（具体例として５刻み）の内部文字コードについてグリフ番号との対応が記述されているものとしているが、言うまでもなく、その間隔は不均等であってもよい。また、その間隔が具体例よりも短い場合であっても、第１補助テーブルのデータサイズが十分に小さければ、アクセス効率化のメリットはある。また、第１補助テーブルに記載するべき内部文字コードに対してステータステーブル１５０１で「０」または「２」が規定されている場合の対処については特定の対処に限定されないが、たとえば、当該内部文字コードの１つ前の内部文字コードであって、有効な値が規定されている内部文字コードを用いるなどすればよい。
【０１１４】
また、図２２に示されるステータステーブル１５０１に替えて、図２４に示されるように、ステータステーブルを予めグリフ番号が記載される構成とすることで、上記ステップＳ２３０３での第１補助テーブルの生成を不要とすることができる。しかしながら、ステータステーブルの構成を図２４に示されるような構成とすると、そのデータ量が（グリフ番号を表わすビット数）×（ステータステーブルで「１」が規定される文字数）となり、そのデータサイズのステータステーブルが符号化データに付加されることになって好ましくない。
【０１１５】
次に、文字識別情報・グリフ番号変換データ生成部２２０１は第２補助テーブル１５０３を生成してアクセステーブルデータメモリ１２０７に書込む（ステップＳ２３０４）。ここで、第２補助テーブルとは、ステータステーブル１５０１で「２」が規定された内部文字コード、つまり割当てられているグリフに対応する文字コードは２つ以上存在する内部文字コードについて、対応するグリフ番号を記述したテーブルである。図２２のステータステーブル１５０１の場合の第２補助テーブル１５０３の具体例としては、図２５に示されたテーブルである。第２補助テーブルは当該符号化データを復号する際に用いられるテーブルであり、具体的には、用いられ方については後述する。上記仮定（３）により、ステータステーブル１５０１で「２」が規定される内部文字コードは少ないと仮定されるため、「２」が規定されるすべての内部文字コードについての対応するグリフ番号を記述したテーブルが生成されても符号化の効率性は保たれるものと考えられる。
【０１１６】
なお、上記具体例では、第２補助テーブル１５０３で内部文字コードとグリフ番号との対応が記述されるものとしているが、アクセスのキーとして、内部文字コードに替えて文字識別情報とし、文字識別情報とグリフ番号との対応が記述されてもよい。これは第１補助テーブル１５０２についても同様である。
【０１１７】
なお、上述の文字識別情報・グリフ番号変換データ生成部２２０１で生成される文字識別情報・グリフ番号変換データは１つの具体例であって、ここで生成される変換データは上述のような文字識別情報・グリフ番号変換データには限定されない。ここでのポイントは、文字識別情報（またはそこから一意に決定される内部文字コード）とグリフ番号またはグリフとの対応関係が１対１であるか、そうでないか（あるいはグリフ番号またはグリフがいくつの文字識別情報に対応するか、逆に文字識別情報がいくつのグリフ番号またはグリフに対応するか）を示すデータを生成することである。また、もう１つの重要な点は、生成されるデータを後述する画像復号装置が、判定結果に応じて異なるテーブルを参照するように構成することで、それ自身のために必要となるデータ容量を小さく保ちながら、文字識別情報（または内部文字コード）を高速にグリフ番号に変換する（グリフデータを特定する）ことができるように文字識別情報・グリフ番号変換データを構成したことである。具体的には、本実施の形態では、文字識別情報（内部文字コード）がグリフと１対１対応している場合には第１補助テーブル１５０２を参照し、そうでない場合には第２補助テーブル１５０３を参照することができるように構成された文字識別情報・グリフ番号変換データを、文字識別情報・グリフ番号変換データ生成部２２０１が生成している。さらにその第１補助テーブル１５０２は、文字識別情報（または内部文字コード）とグリフ番号との対応テーブルのサブセットとなっている。
【０１１８】
次に、ついでグリフ番号・オフセット情報変換データ生成部２２０２は、加工分割画像データごとにグリフ番号・オフセット情報変換データを生成してアクセステーブルデータメモリ１２０７に書込む（ステップＳ２３０５）。文字識別情報・オフセット情報変換データは分割に無関係であるが、符号化データ上のオフセットを示すグリフ番号・オフセット情報変換データは符号化されているグリフの数×分割の個数だけのデータをアクセスする情報を持っている。
【０１１９】
以上の構成の具体例では、グリフ番号・オフセット情報変換データは、符号化された分割加工文字データに対応するデータの符号化データ上での位置を、グリフ番号から変換することを通して、文字画像データの符号化データ上での位置を特定している。さらに一般化すれば、グリフ情報・オフセット情報変換データとは、グリフ番号から、符号化された文字画像データの符号化データ上での位置を得るための情報であるといえる。実際、（符号化された）加工分割画像データごとでなく、個々の（符号化された）文字画像データに対応する部分ごとにまとめて符号化データを配置すれば、グリフ番号・オフセット情報変換データは、グリフ番号から符号化された文字画像文字画像データの符号化データ上での位置を直接得るための情報となる。なお、ここで、グリフ番号・オフセット情報変換データの作成方法について詳細に述べていないが、たとえば先頭から各分割に対応する符号化データをサーチして、加工分割文字画像の境目となる位置をオフセット情報として記録すればよいので、特定の方法には限定されないものとする。もちろん、復号時の処理を高速に行なうことのできる工夫をグリフ番号・オフセット情報変換データについて行なうことも考えられる。
【０１２０】
そして、ステップＳ１３０１でロードされた画像データから得られたすべての分割画像データに対して処理が終了していれば（ステップＳ２３０６でＹＥＳ）、処理はステップＳ１３０９に進み、そうでなければ（ステップＳ２３０６でＮＯ）、ステップＳ２３０７は次の分割画像データに処理を移し、処理はステップＳ２３０５に戻る。
【０１２１】
本実施の形態にかかる画像符号化装置で上述の処理が実行されることで、文字画像データに見られる、似たサイズのデータが、一定周期で配置されるという特徴を利用して、少ない計算量で高効率の符号化を行なうことができる。つまり、符号化対象の文字画像データのドット構成に対応した方向に文字画像データを分割することで、バイトの値の分布確率がより反映され、符号化効率を向上させることができる。
【０１２２】
また、符号化データと内部文字コード、文字識別情報との対応を、サイズの小さいテーブルとして符号化データに付加することで、以下の説明する画像復号装置において、少ない計算量で復号することができる。
【０１２３】
なお、以上の説明では、各文字画像データごとにライン方向に直交する分割を行ない、符号化するものとしたが、上記方法は本発明の１つの具体例であって、他の具体例として、ライン方向に直交する分割を行なって「分割画像データ」を作成してから、各文字画像データに対応する部分ごとに、ライン間の差分を取って「加工分割画像データ」を作成する方法も挙げられる。このような方法を採用した実施の形態も本発明のバリエーションの１つである。
【０１２４】
また、本実施の形態では、画像データは文字画像データからなる、フォントデータであるものとしているが、本発明にかかる情報処理装置で処理対象とする画像データは文字画像データには限定されず、一定の大きさからなる、単位画像データが連続してなる画像データであればよい。特に、その場合、上記実施の形態における「文字画像データ」は「単位画像データ」に、「分割文字画像データ」は「分割単位画像データ」に、「加工分割文字画像データ」は「加工分割単位画像データ」に、など、それぞれ適切に置換えることで、文字画像データ以外の画像データを処理対象としたときの動作・構成の説明とされ得る。これは他の実施の形態でも同様である。
【０１２５】
［第２の実施の形態］
文字画像データの２値画像に見られるさらなる特徴として、図２６のように主に縦線から構成される文字画像データや、図２７のように主に横線から構成される文字画像データがある。これらの特徴は、特に文字が漢字である場合に顕著である。
【０１２６】
入力データが図２６に示された文字画像データである場合、水平に配置されたワードごとの排他的論理和を算出すると、図２８に示される出力データが得られる。図２８に示されるように、図２６に示されたような文字画像データの場合、排他的論理和が算出されると０ワード（すべてのビットが０のワード）になるワードが多い。そのため、排他的論理和によって情報が失われることなく０ワードの頻度を高めることができ、符号化効率を高めることができる。
【０１２７】
一方、入力データが図２７に示された文字画像データである場合、水平に配置されたワードごとの排他的論理和を算出しても、出力データは、図２９に示されるように、上述のような、特定のワードの値の頻度を大きくする効果はない。
【０１２８】
本発明の第２の実施の形態にかかる画像符号化装置は、異なる文字コードに対応する文字フォントデータの系列を、ワードの系列ごとに、ライン間差分を用いて符号化する装置であって、文字画像データの上記特徴を利用して符号化する。そのため、本発明の第２の実施の形態にかかる画像符号化装置は、符号化にあたって、符号化データのデータ量がより小さくなるように、文字画像データを回転させることを特徴とし、その点が第１の実施の形態にかかる画像符号化装置との相違点である。そこで、以下においては、主にその相違点について説明する。
【０１２９】
図３０は、本実施の形態にかかるＰＣ３において画像符号化装置として機能し、画像符号化処理を行なうための機能構成の具体例を示すブロック図である。
【０１３０】
図３０を参照して、本実施の形態にかかる画像符号化装置の上記機能は、図２に示された第１の実施の形態にかかる画像符号化装置の上記機能に含まれる各機能に加えて、フラグデータメモリ２４１０を含んで構成される。
【０１３１】
さらに、図３１は、本実施の形態にかかる画像処理部１２０９の構成の具体例を示すブロック図である。図３１を参照して、本実施の形態にかかる画像処理部１２０９は、画像演算部２７０１、第１文字画像データメモリ２７０２、第２文字画像データメモリ２７０３、第１分割文字画像データメモリ２７０４、第２分割文字画像データメモリ２７０５、第１加工分割文字画像データメモリ２７０６、第２加工分割文字画像データメモリ２７０７、および容量予測部２７０８を含んで構成され、各構成要素はデータバス２７０９を介して互いに、また外部に接続される。
【０１３２】
本実施の形態においては、画像データメモリ１２０２に格納された画像データから、画像演算部２７０１によって１文字分の文字画像データが読出され、「第１文字画像データ」として、第１文字画像データメモリ２７０２に格納される。第１文字画像データメモリ２７０２に格納された第１文字画像データは、画像演算部２７０１によって、横方向のバイト境界で縦方向に分割され、「第１分割文字画像データ」として、第１分割文字画像データメモリ２７０４に格納される。
【０１３３】
第１分割文字画像データメモリ２７０４に格納された第１分割文字画像データは、さらに、画像演算部２７０１によって、所定の向きに回転され、「第２文字画像データ」として、第２文字画像データメモリ２７０３に格納される。第２文字画像データメモリ２７０３に格納された第２文字画像データは、画像演算部２７０１によって、横方向のバイト境界で縦方向に分割され、「第２分割文字画像データ」として、第２分割文字画像データメモリ２７０５に格納される。ここでは「所定の向き」とは時計回りに９０度とする。
【０１３４】
画像データメモリ２４０９に格納されている１文字分の画像第１分割文字画像データメモリ２７０４に格納されている分割画像の排他的論理和を取り（以下「加工分割文字画像」と呼ぶことがある）、第１加工分割文字画像データメモリ２７０６に格納する。
【０１３５】
第１分割文字画像データメモリ２７０４に格納されている第１分割文字画像データについて、画像演算部２７０１において排他的論理和が算出され、算出結果が「第１加工分割文字画像データ」として第１加工分割文字画像データメモリ２７０６に格納される。
【０１３６】
同様に、第２分割文字画像データメモリ２７０５に格納されている第２分割文字画像データについて、画像演算部２７０１において排他的論理和が算出され、算出結果が「第２加工分割文字画像データ」として第２加工分割文字画像データメモリ２７０７に格納される。
【０１３７】
容量予測部２７０８は、第１文字画像データメモリ２７０２に格納された第１文字画像データの符号化後の容量と、第２加工分割文字画像データメモリ２７０７に格納された第２加工分割文字画像データの符号化後の容量とを予測し、予想結果を比較する。容量予測部２７０８での比較結果に従って、第１加工分割文字画像データメモリ２７０６に格納されている１加工分割文字画像データ、または第２加工分割文字画像データメモリ２７０７に格納されている第２加工分割文字画像データが出力される。また、容量予測部２７０８での比較結果を示すフラグが画像演算部２７０１によってフラグデータメモリ２４１０に格納される。
【０１３８】
図３２は、第２の実施の形態にかかる画像符号化装置における符号化処理を示すフローチャートである。図３２のフローチャートに示される処理もまた、ＣＰＵ１０１がＲＯＭ１０３等の記憶部に記憶されるプログラムを読出して実行し、コントローラ１２０１が図３０等に示された各部を制御することによって実現される。なお、図３２に示される第２の実施の形態における符号化処理は、図９のフローチャートに示された第２の実施の形態における符号化処理とほぼ同様であり、次の点が異なっている。すなわち、第１の実施の形態における符号化処理のステップＳ１３０３の処理およびステップＳ１３０４の処理に替えて、第２の実施の形態における符号化処理ではステップＳ２５０３の処理およびステップＳ２５０４の処理が実行される。また、以上の処理に加えて、ステップＳ２５１１の処理が実行される。
【０１３９】
図３３は、上記ステップＳ２５０３における画像データの分割処理を示すフローチャートである。
【０１４０】
図３３を参照して、始めに、画像演算部２７０１は、上記ステップＳ１３０１で画像データメモリ１２０２にロードされた画像データから１文字分の文字画像データを読出し、第１文字画像データを第１文字画像データメモリ２７０２に格納する（ステップＳ３７０１）。
【０１４１】
次に、画像演算部２７０１は、第１文字画像データメモリ２７０２に格納された第１文字画像データを横方向のバイト境界によって縦方向に分割して第１分割文字画像データを生成し、第１分割文字画像データメモリ２７０４に格納する（ステップＳ３７０２）。ここでの分割方法は、先に第１の実施の形態において説明された方法と同様の方法でよい。
【０１４２】
次に、画像演算部２７０１は、第１文字画像データメモリ２７０２に格納された第１文字画像データを時計回りに９０度回転して第２文字画像データを生成し、第２文字画像データメモリ２７０３に格納する（ステップＳ３７０３）。
【０１４３】
次に、画像演算部２７０１は、第２文字画像データメモリ２７０３に格納された第２文字画像データを横方向のバイト境界によって縦方向に分割して第２分割文字画像データを生成し、第２分割文字画像データメモリ２７０５に格納する（ステップＳ３７０４）。ここでの分割方法も、先に第１の実施の形態において説明された方法と同様の方法でよい。
【０１４４】
以上で処理を終了し、処理をステップＳ２５０４に進める。
図３４は、上記ステップＳ２５０４における排他的論理和の算出処理を示すフローチャートである。
【０１４５】
図３４を参照して、始めに、画像演算部２７０１は、上記ステップＳ３７０２で第１分割文字画像データメモリ２７０４に格納された第１分割文字画像データについて排他的論理和を算出し、第１加工分割文字画像データを第１加工分割文字画像データメモリ２７０６に格納する（ステップＳ２８０１）。排他的論理和の算出方法は、先に第１の実施の形態において説明された方法と同様の方法でよい。
【０１４６】
ステップＳ１３０１でロードされた画像データから得られたすべての第１分割文字画像データについて排他的論理和を算出する処理が終了していれば（ステップＳ２８０２でＹＥＳ）、処理はステップＳ２８０３に進み、処理していなければ（ステップＳ２８０２でＮＯ）、処理はステップＳ２８０１に戻る。
【０１４７】
ステップＳ２８０３において、容量予測部２７０８は、第１文字画像データメモリ２７０２に格納された第１文字画像データの符号化後の容量を予測する（ステップＳ２８０３）。ステップＳ２８０３での予測方法は上記ステップＳ１３０６での符号化方式と整合性が取れていればよく、本発明において特定の方法に限定されない。具体例として、ここでは、上記ステップＳ１３０６でエントロピー符号化方式が採用されることより、第１文字画像データメモリ２７０２に格納された第１文字画像データから得られる第１加工分割文字画像データのエントロピーを合計する方法が挙げられる。予測すべきターゲットの値は、ステップＳ２８０３での予測方法として、個々の第１加工分割文字画像データを符号化することによる符号データ量の増加量（ここでは「限界符号量」と呼ぶ）であるが、本具体例では、一塊のデータとして符号化される範囲が加工分割文字画像データではなく、これを直接算出することが容易でないため、代わりに第１加工分割文字画像データのエントロピー予測値を用いているのである。いずれにしろ、重要なのは、ここで用いる予測値が上記ステップＳ１３０６での符号化方式と整合性が取れている（予測値がターゲットの値と十分に近いという根拠がある）ことである。本具体例では、符号化方法として、ハフマン符号化を用いているので、その限界符号量の予測値としてエントロピーを用いることで、十分に限界符号量と近い値が得られるという根拠があると言える。もちろん、予測すべきターゲットの値（限界符号量）が容易に得られるような符号化方法であれば、限界符号量を用いてもよく、本発明のバリエーションであることにも変わりはない。
【０１４８】
次に、画像演算部２７０１は、第２分割文字画像データメモリ２７０５に格納されている第２分割文字画像データの排他的論理和を算出し、得られた第２加工分割文字画像データを第２加工分割文字画像データメモリ２７０７に格納する（ステップＳ２８０４）。
【０１４９】
ステップＳ１３０１でロードされた画像データから得られたすべての第２分割文字画像データについて排他的論理和を算出する処理が終了していれば（ステップＳ２８０５でＹＥＳ）、処理はステップＳ２８０６に進み、処理していなければ処理はステップＳ２８０４に戻る。
【０１５０】
ステップＳ２８０６において、容量予測部２７０８は、第２加工分割文字画像データメモリ２７０７に格納された第２加工分割文字画像データの符号化後の容量を予測する。ここでの予測方法はステップＳ２８０３での予測方法と同じ方法であり、上記ステップＳ１３０６での符号化方式と整合性が取れた方法であればよい。限界符号量とその予測とに関してすでに説明したこともそのまま該当する。
【０１５１】
次に、容量予測部２７０８は、ステップＳ２８０３で得られた第１文字画像データの符号化後の容量の予測値と、ステップＳ２８０６で得られた第２加工分割文字画像データの符号化後の容量の予測値とを比較し、後者が大きければ（ステップＳ２８０７でＹＥＳ）、第２加工分割文字画像データメモリ２７０７に格納されている第２加工分割文字画像データ、つまり回転後の画像データを出力し（ステップＳ２８０８）、そうでなければ（ステップＳ２８０７でＮＯ）、第１加工分割文字画像データメモリ２７０５に格納されている第１加工分割文字画像データ、つまり回転前の画像データを出力する（ステップＳ２８０９）。
【０１５２】
次に、画像演算部２７０１は、ステップＳ２８０７での判定結果、つまり、ステップＳ２８０８とステップＳ２８０９とのいずれの処理が実行されたかを示すフラグをフラグデータメモリ２４１０に格納する（ステップＳ２８１０）。フラグの値としては、たとえば、ステップＳ２８０３で得られた第１文字画像データの符号化後の容量の予測値が大きいことを表わす「１」、そうでないことを表わす「０」とすることができる。ステップＳ２８１０では文字ごとにフラグの値が決定される。フラグデータメモリ２７０８には、文字ごとのフラグが、アクセステーブルデータメモリ２４０７に格納されているアクセステーブルデータ、および符号化テーブルデータメモリ２４０５に格納されている符号化データと対応付けられて格納される。具体的には、フラグ、アクセステーブルデータ、および符号化データが処理の順序に蓄積されることでも対応付けられる。
【０１５３】
本実施の形態にかかる画像符号化装置で上述の処理が実行されることで、特に文字が漢字である文字画像データに見られる、主に縦線から構成される、または主に横線から構成されるという特徴を利用して、少ない計算量で高効率の符号化を行なうことができる。つまり、符号化対象の文字画像データが、図２７に示された文字画像データのように、そのまま排他的論理和を算出しても図２９に示されたように特定のワードの値の頻度を大きくする効果はない文字画像データである場合には、図３５のように９０度回転して排他的論理和が算出される。その結果、出力データは図３６に示されるようになり、ゼロの値をとるバイトの頻度を増やすことができる。このため、エントロピー符号化が実行されると、元の画像データの情報を失うことなく（可逆性を損なうことなく）、値の分布を特定の値に集中させてから符号化でき、符号化効率の向上に寄与する。
【０１５４】
［第３の実施の形態］
図１は、本実施の形態にかかる画像復号装置を搭載するテキスト処理装置としての携帯電話１のハードウェア構成の具体例を示す図であり、一般的な携帯電話のハードウェア構成の具体例を示すブロック図である。
【０１５５】
図１を参照して、携帯電話１は、ユーザとのインタフェースである入出力部１４０と、ＣＰＵ（Central Processing Unit）等から構成されて、当該装置全体を制御する制御部１２０と、他の装置と通信するための通信部１１０と、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）、フラッシュメモリ等の不揮発性メモリなどから構成されて、制御部１２０において実行されるプログラムや、そのプログラムの中間データおよび他のコンピュータから受信したデータ等を記憶する記憶部１３０とを含んで構成される。
【０１５６】
通信部１１０は、図示されない基地局を介して通信を行ない、他の携帯電話などの装置にデータの送受信を行なう。
【０１５７】
さらに上述の入出力部１４０は、「１」、「２」などの数字ボタンおよび「Ｒ」、「Ｌ」などの方向ボタンなどを含むキーコード入力デバイス（キー）１４２と、ユーザに情報を表示するＬＣＤ（Liquid Crystal Display）などのディスプレイ１４４と、音声を入力するマイクロフォン１４６と、音声を出力するスピーカ１４８と、画像を撮影して入力するカメラ１４９とを含む。なお、図１に示した携帯電話１の携帯電話器としての通常の動作は周知である。
【０１５８】
本実施の形態にかかる画像復号装置は、携帯電話１のハードウェア、および記憶部１３０に記憶され制御部１２０により実行されるソフトウェアにより構成され、後述する画像復号処理を行なうための機能は、制御部１２０が記憶部１３０に記憶されるプログラムを読出して実行することによって、主に制御部１２０に形成される。または、上記機能の少なくとも一部は携帯電話１のハードウェアによって構成されてもよい。なお、図１に示した携帯電話１の携帯電話機としての通常の動作は周知である。
【０１５９】
図３７は本実施の形態にかかる画像復号装置を搭載するテキスト処理装置のハードウェア構成の概略図であり、図１に示された本実施の形態にかかる画像復号装置を搭載する携帯電話１のハードウェア構成を概略化したブロック図である。
【０１６０】
図３７を参照して、テキスト処理装置は、入出力部１４０に相当する指示装置４６００、制御部１２０などに相当するコントローラ４６０１、記憶部１３０の所定領域に相当するテキストデータメモリ４６０２、画像復号装置４６０３、ディスプレイ１４４に相当する表示装置４６０４、および記憶部１３０に相当する記憶装置４６０６を含んで構成され、各要素はデータバス４６０５によって接続される。
【０１６１】
テキストデータメモリ４６０２には、テキストデータが、各文字の文字識別情報として格納されている。ここでは、文字識別情報は、第１の実施の形態と同様に、文字コードと書体識別情報とを含むものとする。通常、書体は頻繁に変更されるものではないので、テキストデータ上で直前の文字と同じ書体を用いているときには、書体識別情報は省略しておき、直前の文字から書体が変更されているときのみ書体識別情報を付加するようにしてもよい。
【０１６２】
記憶装置４６０５はコントローラ４６０１で実行されるプログラムや、その他のデータを記憶する。また、テキストデータメモリ４６０２は、記憶装置４６０５上に構成されてもよい。
【０１６３】
コントローラ４６０１は、指示装置４６００からの指示を受取ると記憶装置４６０５に記憶されるプログラムを読出して実行し、画像復号装置４６０３に復号処理を実行させるよう制御する。画像復号装置４６０３は、指示装置４６００からの指示信号に応じてコントローラ４６０１から文字識別情報が与えられるごとに、対応するグリフを復号する処理を実行する。つまり、本実施の形態にかかる画像復号装置は、テキスト処理装置のハードウェア、および記憶装置４６０６に記憶されコントローラ４６０１により実行されるソフトウェアにより構成される。また、後述する画像復号処理を行なうための機能は、コントローラ４６０１が記憶装置４６０６に記憶されるプログラムを読出して実行することによって形成される。または、上記機能の少なくとも一部はテキスト処理装置のハードウェアによって構成されてもよい。
【０１６４】
図３８は本実施の形態にかかるテキスト処理装置での画像復号処理を示すフローチャートである。図３８のフローチャートに示される処理は、コントローラ４６０１が記憶装置４６０６に記憶されるプログラムを読出して実行し、図３７に示された各部を制御することによって実現される。
【０１６５】
図３８を参照して、始めに、コントローラ４６０１は、指示装置４６００からの指示信号に従ってテキストデータメモリ４６０２から１文字分の文字識別情報を読出す（ステップＳ４７０１）。画像復号装置４６０３は、ステップＳ４７０１で読出された文字識別情報に対応するグリフを復号する（ステップＳ４７０２）。復号に成功すると（ステップＳ４７０３でＹＥＳ）、処理はステップＳ４７０４に進み、そうでなければ（ステップＳ４７０３でＮＯ）、処理はステップＳ４７０５に進む。
【０１６６】
ステップＳ４７０４で、コントローラ４６０１は、上記ステップＳ４７０２で復号されたグリフを表示装置４６０４に対して出力し、表示するための表示信号を生成させる（ステップＳ４７０４）。
【０１６７】
テキストデータメモリ４６０２にあるすべての文字が処理されていれば（ステップＳ４７０５でＹＥＳ）処理が終了し、そうでなければ処理はステップＳ４７０１に戻る。
【０１６８】
図３９は、本実施の形態にかかるテキスト処理装置である携帯電話１において画像復号装置４６０３として機能し、上記ステップＳ４７０２の画像復号処理を行なうための機能構成の具体例を示すブロック図である。本実施の形態にかかる画像復号装置は、第１の実施の形態にかかる画像符号化装置によって符号化された符号化データである文字フォントデータにアクセスして、必要なフォントデータを復号する。
【０１６９】
図３９を参照して、画像復号装置の上記機能は、コントローラ３３０１、符号化データメモリ３３０２、エントロピー復号部３３０３、加工分割文字画像データメモリ３３０４、アクセステーブルデータ変換部３３０５、アクセステーブルデータメモリ３３０６、画像処理部３３０７、および文字画像データメモリ３３０８を含んで構成され、それぞれの構成要素は、データバス３３０９を介して互いに、また外部に接続される。
【０１７０】
さらに、図４０は、画像処理部３３０７の構成の具体例を示すブロック図である。図４０を参照して、画像処理部３３０７は、画像演算部４８０１、文字画像データメモリ４８０２、および分割文字画像データメモリ４８０３を含んで構成され、各構成要素はデータバス４８０４を介して互いに、また外部に接続される。
【０１７１】
さらに、図４１は、アクセステーブルデータ変換部３３０５の構成の具体例を示すブロック図である。図４１を参照して、アクセステーブルデータ変換部３３０５は、文字識別情報・グリフ番号変換部５１０１、およびグリフ番号・オフセット情報変換部５１０２を含んで構成され、各構成要素はデータバス５１０３を介して互いに、また外部に接続される。
【０１７２】
符号化データメモリ３３０２、およびアクセステーブルデータメモリ３３０６は、記憶装置４６０４の所定領域で構成され、各々、第１の実施の形態にかかる画像符号化装置にて生成された符号化データ、およびアクセステーブルデータを記憶する。
【０１７３】
アクセステーブルデータ変換部３３０５の文字識別情報・グリフ番号変換部５１０１は、コントローラ３３０１から受取った文字識別情報に基づいて内部文字コードを取得する。ここでの取得方法は、第１の実施の形態における取得方法と同様の方法が用いられ得る。また、文字識別情報・グリフ番号変換部５１０１は、アクセステーブルデータメモリ３３０６に格納されるアクセステーブルデータを参照し、内部文字コードに対応するグリフ番号を特定して、文字識別情報をグリフ番号に変換する。変換されたグリフ番号は、さらにアクセステーブルデータ変換部３３０５のグリフ番号・オフセット情報変換部５１０２によってオフセット情報に変換され、エントロピー符号復号部３３０３に入力される。
【０１７４】
エントロピー符号復号部３３０３は、アクセステーブルデータ変換部３３０５から入力された、符号化データ上での位置を特定する情報であるオフセット情報を用い、符号化データメモリ３３０２に格納された符号化データ上の、復号対象の文字識別情報に対応した分割文字画像データに対応する部分にアクセスする。そして、その部分の符号化データ（つまり、オフセット情報によって特定された位置にあるデータ）を復号し、「加工分割文字画像データ」として加工分割文字画像データメモリ３３０４に格納する。加工分割文字画像データメモリ３３０４もまた、記憶装置４６０４の所定領域で構成され、復号されたデータを記憶する。
【０１７５】
画像処理部３３０７の画像演算部４８０１は、加工分割文字画像データメモリ３３０４に格納された加工分割文字画像データのうちの１つのデータについての排他的論理和を算出し、「分割文字画像データ」として分割文字画像データメモリ４８０３に格納する。分割文字画像データメモリ４８０３もまた、記憶装置４６０４の所定領域で構成され、分割文字画像データを記憶する。
【０１７６】
ここでは、第１の実施の形態における差分の算出と同様に、出力データである分割文字画像データの０ライン目は、入力データである加工分割文字画像データから取出した０ライン目をそのまま用いる。また、１ライン目以降は、入力データである加工分割文字画像データのｎライン目と、分割文字画像データのすでに復元されている（ｎ−１）ライン目との排他的論理和を、出力データである分割文字画像データのｎライン目の値とする。この処理を順次行なうことで、画像処理部３３０７において加工分割文字画像データから分割文字画像データが復元される。
【０１７７】
この処理で分割文字画像データが復元できるのは、排他的論理和を取るという操作が、それ自身の逆変換となっているからである。すなわち、
Ｃ＝Ａ＾Ｂ
であれば
Ｂ＝Ａ＾Ｃ
が成り立つためである。
【０１７８】
したがって、ｎ≧１について、第１の実施の形態に示された、
（加工分割文字画像データのｎライン目）＝（分割文字画像データの（ｎ−１）ライン目）＾（分割文字画像データのｎライン目）
という関係から、
（分割文字画像データのｎライン目）＝（分割文字画像データの（ｎ−１）ライン目）＾（加工分割文字画像データのｎライン目）
が成り立つ。つまり、分割文字画像データの第（ｎ−１）ラインの値と加工分割文字画像データの第ｎラインの値とを用いて、分割文字画像データの第ｎラインの値が算出できる。
【０１７９】
ｎ＝０については、これも第１の実施の形態に示されたように、
（加工分割文字画像データのｎライン目）＝（分割文字画像データのｎライン目）
であるため、加工分割文字画像データの０ライン目をそのまま分割文字画像データにコピーすれば復元できる。
【０１８０】
もちろん、符号化側での処理が、隣接するライン間の排他的論理和ではなくても、元の画像データの情報を失わない（可逆性を損なわない）変形であれば、これに対応した復号側の処理を行なって加工分割文字画像データから分割文字画像データを得ることが可能である。
【０１８１】
分割文字画像データメモリ４８０２に格納された分割文字画像データは画像処理部３３０７の画像演算部４８０１において統合されて、元の文字画像データが生成される。生成された文字画像データは文字画像データメモリ４８０２に格納される。文字画像データメモリ４８０２に格納された文字画像データは、画像演算部４８０１によって、文字画像データメモリ３３０８に格納される。文字画像データメモリ４８０２，３３０８もまた、記憶装置４６０４の所定領域で構成され、復号処理の結果得られた文字画像データを記憶する。
【０１８２】
図４２は、上記ステップＳ４７０２での、画像復号装置で実行される復号処理を示すフローチャートである。なお、当該画像復号装置を搭載するテキスト処理装置のように、当該画像復号装置を利用する装置を、以下の説明で「本体モジュール」と称する。
【０１８３】
図４２を参照して、始めに、画像復号装置のコントローラ３３０１は、テキスト処理装置のコントローラ４６０１より文字識別情報を受取る（ステップＳ３４０１）。ステップＳ３４０１で取得された文字識別情報は、アクセステーブルデータ変換部３３０５によってグリフ番号に変換される（ステップＳ３４０２）。
【０１８４】
ステップＳ３４０２において文字識別情報の変換に成功すれば（ステップＳ３４０３でＹＥＳ）、処理はステップＳ３４０５に進み、そうでない場合には（ステップＳ３４０３でＮＯ）、処理はステップＳ３４０４に進む。ステップＳ３４０４においてコントローラ３３０１は、本体モジュールに、復号に成功しなかったことを知らせるエラー値を返す（ステップ３４０４）。エラー値が返された場合は、本体モジュールは、要求したグリフの代わりにスペースを表示する、代替となる文字を表示する、など適宜処理を実行すればよい。
【０１８５】
ステップＳ３４０５においては、ステップＳ３４０２で変換されたグリフ番号は、アクセステーブル変換部３３０５によってオフセット情報に変換される（ステップＳ３４０５）。
【０１８６】
次に、エントロピー符号復号部３３０３は、上記ステップＳ３４０５で変換されたオフセット情報を用いて、符号化データメモリ３３０２に格納された符号化データ上の、上記ステップＳ３４０１で取得された文字識別情報に対応した加工分割文字画像データに対応する部分にアクセスして、その部分の符号化データを復号する（ステップＳ３４０６）。そして、復号して得られた加工分割文字画像データを加工分割文字画像データメモリ３３０４に格納する。
【０１８７】
上記ステップＳ３４０１で取得された文字識別情報に対応したすべての加工分割文字画像データに対する処理が終了すると（ステップＳ３４０７でＹＥＳ）、処理はステップＳ３４０８に進み、そうでなければ（ステップＳ３４０７でＮＯ）、処理はステップＳ３４０５に戻る。
【０１８８】
ステップＳ３４０８で、画像処理部３３０７は、上記ステップＳ３４０６で復号された加工分割文字画像データの排他的論理和を算出し、分割文字画像データを得る。次いで、画像処理部３３０８が、ステップＳ３４０８で得られた分割文字画像データを統合して、元の文字画像データを作成する（ステップＳ３４０９）。作成された文字画像データは文字画像データメモリ３３０８に格納され、処理が終了する。
【０１８９】
図４３は、上記ステップＳ３４０２における、グリフ番号への変換処理を示すフローチャートである。なお、第１の実施の形態と同様に、アクセスデータメモリ３３０６に格納されているアクセステーブルデータは、図８に示されたように、文字識別情報・グリフ番号変換データ１４０１と、グリフ番号・オフセット情報変換データ１４０２とを含み、さらに文字識別情報・グリフ番号変換データ１４０１は、図１９に示されたように、ステータステーブル１５０１、第１補助テーブル１５０２、および第２補助テーブル１５０３を含むものとする。以下の説明においては、画像復号装置のアクセスデータメモリ３３０６に図８，図１９に示されたアクセステーブルデータが格納されているものとする。
【０１９０】
図４３を参照して、始めに、文字識別情報・グリフ番号変換部５１０１は、上記ステップＳ３４０１で取得された文字識別情報に基づいて、対象の文字について内部文字コードを取得する（ステップＳ５２０１）。この取得方法については、第１の実施の形態における取得方法（ステップＳ２３０１）と同様である。
【０１９１】
次に、文字識別情報・グリフ番号変換部５１０１は、アクセスデータメモリ３３０６に格納されているステータステーブル１５０１にアクセスし（ステップＳ５２０２）、上記ステップＳ５２０１で取得された内部文字コードについてステータステーブル１５０１で規定された値を読出す。ステータステーブル１５０１で規定された値が「０」であれば（ステップＳ５２０３でＹＥＳ）処理はステップＳ５２０５に進み、ステータステーブル１５０１で規定された値が「２」であれば（ステップＳ５２０３でＮＯ、かつステップＳ５２０４でＹＥＳ）処理はステップＳ５２０７に進み、そうでなければ、つまり規定された値が「１」であれば（ステップＳ５２０３でＮＯ、かつステップＳ５２０４でＮＯ）、処理はステップＳ５２０６に進む。
【０１９２】
ステップＳ５２０５においては、つまり上記ステップＳ５２０１で取得された内部文字コードに対応するステータステーブル１５０１で規定された値が「０」であれば、その内部文字コードに対応するグリフがないことが規定されているため、文字識別情報・グリフ番号変換部５１０１は、エラーを返し、処理を上記ステップＳ３４０３に進める。
【０１９３】
ステータステーブルにて、「１」または「２」が規定された内部文字コードに対しては、対応するグリフ番号を取得する必要がある。
【０１９４】
ステータステーブルにて「１」が規定された内部文字コードに対しては、今までの復号処理において「１」が規定された内部文字コードがいくつあったかを調べて、得られた結果をグリフ番号とする。図２３に示されたように、第１補助テーブル１５０２には、内部文字コードのいくつかについて対応するグリフ番号が記載されているため、このようなアクセスを高速にすることができる。
【０１９５】
ステップＳ５２０６においては、つまり上記ステップＳ５２０１で取得された内部文字コードに対応するステータステーブル１５０１で規定された値が「１」であれば、文字識別情報・グリフ番号変換部５１０１は、第１補助テーブル１５０２とステータステーブル１５０１とから上記ステップＳ５２０１で取得された内部文字コードに対応するグリフ番号を特定して、処理を上記ステップＳ３４０３に進める。グリフ番号を特定する具体的な方法としては、文字識別情報・グリフ番号変換部５１０１は、第１補助テーブル１５０２から、その内部文字コードより大きくない、最も近い内部文字コードを抽出して、抽出された内部文字コードに対応するグリフ番号を特定する。そして、抽出された内部文字コードから、上記ステップＳ５２０１で取得された内部文字コードまでステータステーブル１５０１で「１」が規定されている内部文字コード数を数え、上記ステップＳ５２０１で取得された内部文字コードのグリフ番号とする。
【０１９６】
具体的に、上記ステップＳ５２０１で取得された内部文字コードが、図２２のステータステーブルにおいて内部文字コード「１１」に対応するグリフ番号が「８」と記述されている、「１１」であるものとする。上記ステップＳ５２０６で文字識別情報・グリフ番号変換部５１０１は、図２３の第１補助テーブル１５０２から、まず「１１」を超えない中で、最も「１１」に近い値として「１０」を抽出し、内部文字コード「１０」に対応するグリフ番号「７」を特定する。これはグリフ番号の概算値を得ていることになる。そして、図２２のステータステーブルを参照して、内部文字コードの１０番目から１つ先までの、ステータステーブル１５０１で「１」が規定されている内部文字コード数「８」をカウントすることで、内部文字コード「１１」に対応するグリフ番号「８」を得る。これは、図２２のステータステーブル１５０１から得られるグリフ番号「８」と一致する。
【０１９７】
また、ステップＳ５２０７においては、つまり上記ステップＳ５２０１で取得された内部文字コードに対応するステータステーブル１５０１で規定された値が「２」であれば、文字識別情報・グリフ番号変換部５１０１は、第２補助テーブル５３０３を参照して、その内部文字コードに対応するグリフ番号を特定し、処理を上記ステップＳ３４０３に進める。
【０１９８】
なお、上述の文字識別情報・グリフ番号変換部５１０１で用いられる文字識別情報・グリフ番号変換データは１つの具体例であって、ここで生成される変換データは上述のような文字識別情報・グリフ番号変換データには限定されない。ここでのポイントは、文字識別情報（またはそこから一意に決定される内部文字コード）とグリフ番号またはグリフとの対応関係が１対１であるか、そうでないか（あるいはグリフ番号またはグリフがいくつの文字識別情報に対応するか、逆に文字識別情報がいくつのグリフ番号またはグリフに対応するか）を示すデータを保持し、それによって高速に、文字識別情報（または内部文字コード）とグリフ番号またはグリフとの対応関係が１対１であるかどうかを判定し、その判定結果に応じて異なるテーブルを参照するように構成することで、文字識別情報・グリフ番号変換データのために必要となるデータ容量を小さく保ちながら、文字識別情報（または内部文字コード）を高速にグリフ番号に変換する（グリフデータを特定する）ことができるようにした点にある。具体的には、本実施の形態では、文字識別情報がグリフと１対１対応しているかどうかをステータステーブル１５０１へのアクセスによって判定し、１対１対応している場合には第１補助テーブル１５０２を参照し、そうでない場合には第２補助テーブル１５０３を参照するようにしている。さらにその第１補助テーブル１５０２は、文字識別情報（または内部文字コード）とグリフ番号との対応テーブルのサブセットとなっており、画像復号装置は、この第１補助テーブル１５０２をアクセスして、グリフ番号の概算値を得て、この概算値を用いることによって、第１補助テーブル１５０２を用いないときと比較して、少ない回数のステータステーブル１５０１へのアクセスにより真のグリフ番号を得ることができるようになっているのである。
【０１９９】
図４４は、上記ステップＳ３４０８における排他的論理和の算出処理を示すフローチャートである。
【０２００】
図４４を参照して、始めに、画像演算部４８０１は、上記ステップＳ３４０６で加工分割文字画像データメモリ３３０４に格納された加工分割文字画像データの１つのデータについて排他的論理和を算出し、分割文字画像データを分割文字画像データメモリ４８０３に格納する（ステップＳ４９０１）。先述のように、符号化されたデータの排他的論理和を算出する処理は、データ符号化時の排他的論理和を算出する処理の逆向きの処理に該当するため、結果として復号する処理となり、符号化前の分割文字画像データが復元される。
【０２０１】
上記ステップＳ３４０１で取得された文字識別情報に対応したすべての加工分割文字画像データに対する排他的論理和を算出する処理が終了すると（ステップＳ４９０２でＹＥＳ）、処理は上記ステップＳ３４０９に進める。そうでなければ（ステップＳ４９０２でＮＯ）、処理はステップＳ４９０１に戻る。
【０２０２】
図４５は、上記ステップＳ３４０９における、分割文字画像データの統合処理を示すフローチャートである。
【０２０３】
図４５を参照して、始めに、画像演算部４８０１は、上記ステップＳ３４０８の処理が実行された結果として分割文字画像データメモリ４８０２に格納されている分割文字画像データを統合して、文字画像データメモリ４８０２に格納する（ステップＳ５００１）。そして、画像演算部４８０１は、文字画像データメモリ４８０２に格納された文字画像データを読出して文字画像データメモリ３３０８に出力し、文字画像データメモリ３３０８に格納する（ステップＳ５００２）。以上で、処理を終了する。
【０２０４】
［第４の実施の形態］
第４の実施の形態にかかる画像復号装置は、上記第２の実施の形態にかかる画像符号化装置において符号化された符号化データを復号する装置である。
【０２０５】
図４６は本実施の形態にかかるテキスト処理装置において画像復号装置として機能し、画像復号処理を行なうための機能構成の具体例を示すブロック図である。
【０２０６】
図４６を参照して、本実施の形態にかかる画像復号装置の上記機能は、図３９に示された第３の実施の形態にかかる画像復号装置の上記機能に含まれる各機能に加えて、フラグデータメモリ３６１０を含んで構成される。
【０２０７】
フラグデータメモリ３６１０は、記憶装置４６０４の所定領域で構成され、第２の実施の形態にかかる画像符号化装置にて生成されたフラグデータを予め記憶する。
【０２０８】
第３の実施の形態にかかる画像復号装置における復号処理は、第２の実施の形態において図４２に示された復号処理と同様である。
【０２０９】
図４７は、本実施の形態での、上記ステップＳ３４０９における、分割文字画像データの統合処理を示すフローチャートである。
【０２１０】
図４７を参照して、本実施の形態にかかる画像処理部３３０７の画像演算部４８０１は、分割文字画像データメモリ４８０３に格納されている分割文字画像データを統合して、文字画像データメモリ４８０２に格納する（ステップＳ５４０１）。
【０２１１】
画像演算部４８０１は、フラグデータメモリ３６１０格納されているフラグデータのうち、上記ステップＳ５４０１での処理対象の文字画像データに対応するフラグの値を参照する（ステップＳ５４０２）。フラグの値が「０」であれば、つまり回転後の画像データが符号化処理されている場合には（ステップＳ５４０２でＮＯ）処理はステップＳ５４０３に進み、フラグの値が「１」であれば、つまり回転前の画像データが符号化処理されている場合には（ステップＳ５４０２でＹＥＳ）ステップＳ５４０３をスキップして、処理がステップＳ５４０４に進む。
【０２１２】
ステップＳ５４０３では、画像演算部４８０１は、文字画像データメモリ３５０２に格納された文字画像データを９０度回転された後に、文字画像データメモリ３５０２に再度格納する（ステップＳ５４０３）。なお、ステップＳ５４０３では、画像演算部４８０１は、第２の実施の形態において画像演算部２７０１が、第１文字画像データに対して行なった回転（ステップＳ３７０３）の逆方向に文字画像データを回転させるものとする。したがって、第２の実施の形態にかかる画像符号化装置で文字画像データを時計回りに９０度回転したことと対応して、ここではその逆向き、すなわち反時計回りに９０度回転する（「時計回りに−９０度」と表現してもよい。）ことになる。つまり、一般化すると、ここで実行される処理は、符号化時に文字画像データに施した変換（ここでは回転処理）の影響を打ち消すような、逆変換を施す処理である。
【０２１３】
画像演算部４８０１は、上記ステップＳ５４０１または上記ステップＳ５４０３で文字画像データメモリ４８０２に格納された文字画像データを読出して文字画像データメモリ３３０８に出力し、文字画像データメモリ３３０８に格納する（ステップＳ５４０４）。以上で、処理を終了する。
【０２１４】
［第５の実施の形態］
第５の実施の形態では、第１の実施の形態に係る画像符号化装置のアクセステーブルデータ生成部に組み込まれるグリフ番号・オフセット情報変換データ生成部についての実施例を提示する。なお、以下では文字データを例にあげて説明するが、本発明に係る画像符号化装置が符号化の対象とするデータは文字データに限られない。また、本発明に係る画像符号化装置における符号化方法としてハフマン符号化を挙げて説明するが、たとえば算術符号化のような他の可変長符号化であってもよい。
【０２１５】
第５の実施の形態に係る画像符号化装置は、所定のサイズ単位の被符号化データを１ブロックとした場合に、所定のブロック数で構成される各ユニットの先頭位置へのアクセスポインタを記録したアクセステーブルを作成する。これにより、各ブロックの先頭位置へのアクセスポインタを記録しておく場合に比べて、アクセステーブルの保持に要する記憶容量を削減することができる。
【０２１６】
（第５の実施の形態に係るグリフ番号・オフセット情報変換データ生成部の構成）
図４８は、第５の実施の形態に係るグリフ番号・オフセット情報変換データ生成部の詳細な構成を示すブロック図である。
【０２１７】
第５の実施の形態に係る画像符号化装置は、第１の実施の形態で示した画像符号化装置の構成において、グリフ番号・オフセット情報変換データ生成部２２０２に代わってグリフ番号・オフセット情報変換データ生成部５０００を含む。その他の構成は、上記で説明した通りであるため繰り返さない。
【０２１８】
図４８を参照して、グリフ番号・オフセット情報変換データ生成部５０００は、ハフマン符号長算出部２２０２０１と、アクセスポインタ更新部２２０２０２と、アクセスポインタ出力部２２０２０３と、データブロック管理部２２０２０４と、データブロックサイズ格納部２２０２０４１と、データユニット管理部２２０２０５と、データユニットサイズ格納部２２０２０５１とを含む。
【０２１９】
さらに、符号化データメモリ１２０５は、符号化データを格納する符号データ格納部１２０５０１と、ハフマンテーブル（ハフマン辞書）を格納するハフマン辞書格納部１２０５０２とを含む。
【０２２０】
これらの構成要素は、主に画像符号化装置の機能を実現する専用のＬＳＩ（Large-Scale Integration）とメモリとによって構成することが可能である。ただし、他のハードウェアによって構成されてもよい。なお、このような専用ＬＳＩは、コントローラ１２０１、アクセステーブルデータ生成部１２０６、エントロピー符号化部１２０４および画像処理部１２０９として機能する。
【０２２１】
ハフマン符号長算出部２２０２０１は、加工分割文字画像データ（たとえば図１７でしめされるようなデータ）と、ハフマン辞書格納部１２０５０２からハフマン辞書とが入力される。ハフマン符号長算出部２２０２０１は、加工分割文字画像データを所定のサイズ単位（たとえば１バイト（１ワード）：ただし、ハフマン辞書格納部１２０５０２に格納されるハフマン辞書に登録される被符号化データのビット配列と対応が取れていることを前提とする）で解析し、対応するハフマン符号の長さ、すなわちハフマン符号長を算出する。ハフマン符号長算出部２２０２０１は、算出したハフマン符号長をアクセスポインタ更新部２２０２０２に出力する。
【０２２２】
ここで、以下の説明では、ハフマン符号長算出部２２０２０１が符号化のために読み込む（たとえば、ハフマン辞書と対応が取れているような）所定サイズ単位のデータを「サブブロック」とよぶ。また、所定数のサブブロックから構成されるデータを「ブロック」とよび、所定数のブロックから構成されるデータを「ユニット」とよぶ。たとえば、１バイトのデータを１サブブロックとする。また、たとえば、１１サブブロックを１ブロックとし、２ブロックを１ユニットとする。文字データを扱う場合は、１つのグリフと１つのブロックのデータとが対応すると考えることができる。
【０２２３】
なお、加工分割文字画像データに対してサブブロックごとにハフマン符号長算出部２２０２０１がハフマン符号長を算出しアクセスポインタ更新部２２０２０２がアクセスポインタを更新する処理と、加工分割文字画像データに対してサブブロックごとにエントロピー符号化部１２０４が行なう符号化処理とは同期して行なわれるものとする。
【０２２４】
さらに、ハフマン符号長算出部２２０２０１によって符号長を算出する処理がなされたサブブロック、ブロック、ユニットをそれぞれ「処理済サブブロック」、「処理済ブロック」、「処理済ユニット」と呼ぶ。
【０２２５】
アクセスポインタ更新部２２０２０２は、コントローラ１２０１からの指示に従い、処理開始時にアクセスポインタを初期化して０を代入する。ここで、「アクセスポインタ」とは、符号データ格納部１２０５０１に格納されるデータにアクセスするための情報（たとえば、メモリ内のアドレスを特定するための情報）をいう。そして、アクセスポインタ更新部２２０２０２は、処理開始以降、ハフマン符号長算出部２２０２０１から入力されたハフマン符号長を用いてアクセスポインタを更新する。さらに、アクセスポインタ更新部２２０２０２は、更新したアクセスポインタを、アクセスポインタ出力部２２０２０３に出力する。
【０２２６】
アクセスポインタ出力部２２０２０３は、アクセスポインタ更新部２２０２０２からアクセスポインタが入力される。また、アクセスポインタ更新部２２０２０２は、データブロック管理部２２０２０４から現在の処理済サブブロック数と、データユニット管理部２２０２０５から現在の処理済ブロック数とがそれぞれ入力される。そして、現在の処理済サブブロック数と、現在の処理済ブロック数とが、両者とも０の場合に、現在のアクセスポインタを、グリフ番号・オフセット情報変換データとして出力する。
【０２２７】
データブロック管理部２２０２０４は、コントローラ１２０１からの指示に従い、処理開始時に処理済サブブロック数を初期化して０を代入する。そして、処理開始以降、データブロック管理部２２０２０４は、アクセスポインタ出力部２２０２０３から、現在の処理済サブブロック数が入力され、現在の処理済サブブロック数に１を加算して更新する。
【０２２８】
また、データブロック管理部２２０２０４は、現在の処理済サブブロック数が、データブロックサイズ格納部２２０２０４１に格納されるデータブロックサイズ（たとえば１１）と等しくなったか否かを判定する。
【０２２９】
等しくないと判断した場合は、次のハフマン符号長算出を実行するように、コントローラ１２０１を介してハフマン符号長算出部２２０２０１に指示を送信する。一方、等しいと判断した場合は、処理を実行するように、コントローラ１２０１を介してデータユニット管理部２２０２０５に指示を送信する。
【０２３０】
データブロックサイズ格納部２２０２０４１は、データブロック管理部２２０２０４で判定処理を実行する際に用いるデータブロックサイズ（たとえば１１）を格納する。そして、必要に応じてデータブロック管理部２２０２０４から、データブロックサイズ（たとえば１１）が参照される。なお、データブロックサイズ格納部２２０２０４１は、画像符号化装置の記憶装置の所定の領域で構成される。
【０２３１】
データユニット管理部２２０２０５は、コントローラ１２０１からの指示に従い、処理開始時に処理済ブロック数を初期化して０を代入する。また、処理開始以降、データユニット管理部２２０２０５は、データブロック管理部２２０２０４から、たとえばコントローラ１２０１を介して実行の要否を受信する。そして、コントローラ１２０１を介したデータブロック管理部２２０２０４からの実行指示を受けて、データユニット管理部２２０２０５は、現在の処理済ブロック数に１を加算して更新する。
【０２３２】
また、データユニット管理部２２０２０５は、現在の処理済ブロック数が、データユニットサイズ格納部２２０２０５１に格納されるデータユニットサイズ（たとえば２）と等しくなったか否かを判定する。
【０２３３】
データユニット管理部２２０２０５が等しくないと判断した場合は、データブロック管理部２２０２０４に、処理済サブブロック数を初期化するように、そして、データユニット管理部２２０２０５は、ハフマン符号長算出部２２０２０１に次のハフマン符号長算出を実行するように、たとえばコントローラ１２０１を介して指示を送信する。
【０２３４】
一方、データユニット管理部２２０２０５が等しいと判断した場合は、グリフ番号・オフセット情報変換データ生成部５０００に対する全ての入力が終了したか否かを判定する。入力が終了していない場合は、処理済ブロック数を初期化して０を代入する。そして、データユニット管理部２２０２０５は、データブロック管理部２２０２０４に、処理済サブブロック数を初期化するように、そして、ハフマン符号長算出部２２０２０１に次のハフマン符号長算出を実行するように、コントローラ１２０１を介して指示を送信する。また加工分割文字画像データの入力が終了した場合は、データユニット管理部２２０２０５は、グリフ番号・オフセット情報変換データ生成部５０００における処理を終了するように、コントローラ１２０１に指示する。
【０２３５】
データユニットサイズ格納部２２０２０５１は、データユニット管理部２２０２０５で判定処理を実行する際に用いるデータユニットサイズ（たとえば２）を格納する。必要に応じてデータユニット管理部２２０２０５から、データユニットサイズ（たとえば２）が参照される。なお、データユニットサイズ格納部２２０２０５１は、画像符号化装置の記憶装置所定の領域で構成される。
【０２３６】
次に、符号化データメモリ１２０５について説明する。
符号データ格納部１２０５０１は、符号化された加工分割文字画像データを格納する。
【０２３７】
ハフマン辞書格納部１２０５０２は、符号データ格納部１２０５０１に格納される、符号化された加工分割文字画像データを生成する際に用いたハフマン辞書を格納する。そして、必要に応じてハフマン符号長算出部２２０２０１から、ハフマン辞書が参照される。なお、ハフマン辞書、ハフマン符号化については後述する。
【０２３８】
（第５の実施の形態に係るグリフ番号・オフセット情報変換データ生成処理）
次に、第５の実施の形態に係る画像符号化装置におけるグリフ番号・オフセット情報変換データ生成部の具体的な処理内容について説明する。
【０２３９】
図４９は、第５の実施の形態に係るグリフ番号・オフセット情報変換データ生成部で実行されるグリフ番号・オフセット情報変換データ生成処理を示すフローチャートである。
【０２４０】
図４９のフローチャートに示される処理は、コントローラ１２０１として機能するプロセッサが記憶装置に記憶されるプログラムを読出して実行し、図４８等に示された各部を制御することによって実現される。なお、図４９のフローチャートで示す処理は、グリフ番号・オフセット情報変換データ生成処理の一具体例に過ぎず、たとえば、各ステップの順番を入れ替えて実行してもよい。
【０２４１】
図４９を参照して、コントローラ１２０１からの処理開始指示に従い、アクセスポインタ更新部２２０２０２は、アクセスポインタＡｃＰｔｒを初期化（０を代入）する（ステップＳ１３０８０１）。そして、データユニット管理部２２０２０５は、処理済ブロック数ＢｌＮｕｍを初期化（０を代入）する（ステップＳ１３０８０２）。続いて、データブロック管理部２２０２０４は、処理済サブブロック数ＤｔＮｕｍを初期化（０を代入）する（ステップＳ１３０８０３）。
【０２４２】
次に、ハフマン符号長算出部２２０２０１は、加工分割文字画像データに対してサブブロック分についてエントロピー符号化部１２０４が行なう符号化処理と同期して、加工分割画像データを所定のサイズ（たとえば１バイト）で規定される１サブブロック分だけ読み込み、ハフマン辞書格納部１２０５０２に格納されるハフマン辞書を参照して、対応する符号の符号長Ｈ［ｂｉｔ］を算出する（ステップＳ１３０８０４）。
【０２４３】
そして、アクセスポインタ更新部２２０２０２は、アクセスポインタＡｃＰｔｒに、ステップＳ１３０８０４で算出した符号長Ｈを加算して更新する（ステップＳ１３０８０５）。
【０２４４】
続いて、アクセスポインタ出力部２２０２０３は、現在の処理済ブロック数ＢｌＮｕｍと、現在の処理済サブブロック数ＤｔＮｕｍとが、「両者とも０である」か否かを判定する（ステップＳ１３０８０６）。「両者とも０である」と判断した場合（ステップＳ１３０８０６でＹＥＳ）は、現在のアクセスポインタをグリフ番号・オフセット情報変換データとして出力する（ステップＳ１３０８０７）。一方、「ＢｌＮｕｍとＤｔＮｕｍのうち少なくとも一方が０でない」と判断した場合（ステップＳ１３０８０６でＮＯ）は、ステップＳ１３０８０８の処理に進む。
【０２４５】
次いで、データブロック管理部２２０２０４は、処理済サブブロック数ＤｔＮｕｍに１を加算して更新する（ステップＳ１３０８０８）。
【０２４６】
さらに、データブロック管理部２２０２０４は、処理済サブブロック数ＤｔＮｕｍが、データブロックサイズ格納部２２０２０４１に格納されたデータブロックサイズＢＳＩＺＥ（たとえば１１）に等しいか否かを判定する（ステップＳ１３０８０９）。等しいと判断した場合（ステップＳ１３０８０９でＹＥＳ）は、ステップＳ１３０８１０の処理に進む。一方、等しくないと判断した場合（ステップＳ１３０８０９でＮＯ）は、ステップＳ１３０８０４の処理に進み、次のサブブロックのハフマン符号長を算出する。
【０２４７】
次に、データユニット管理部２２０２０５は、処理済ブロック数ＢｌＮｕｍに１を加算して更新する（ステップＳ１３０８１０）。
【０２４８】
さらに、データユニット管理部２２０２０５は、処理済ブロック数ＢｌＮｕｍが、データユニットサイズ格納部２２０２０５１に格納された「データユニットサイズＵＳＩＺＥ」（たとえば２）に等しいか否かを判定する（ステップＳ１３０８１１）。等しいと判断した場合（ステップＳ１３０８０１１でＹＥＳ）は、ステップＳ１３０８１２の処理に進む。また等しくないと判断した場合（ステップＳ１３０８０１１でＮＯ）は、ステップＳ１３０８０３の処理に進み、処理済サブブロック数を初期化してから次のハフマン符号長を算出する。
【０２４９】
続いて、データユニット管理部２２０２０５は、全ての加工分割画像データの入力が終了したか否かを判定する（ステップＳ１３０８１２）。入力が終了していないと判断した場合（ステップＳ１３０８０１２でＮＯ）は、ステップＳ１３０８０２の処理に進み、処理済ブロック数と処理済サブブロック数とを初期化してから、次のハフマン符号長を算出する。一方、入力が終了したと判断した場合（ステップＳ１３０８０１２でＹＥＳ）は、グリフ番号・オフセット情報変換データ生成処理を終了する。
【０２５０】
以上のようにして、グリフ番号・オフセット情報変換データ生成処理が行なわれる。
（ハフマン辞書の一例）
次に、ハフマン辞書、ハフマン符号化について具体例を用いて説明する。なお、ハフマン辞書、ハフマン符号化については、非特許文献１に示されており公知であるため詳述はしない。
【０２５１】
図５０は、ハフマン辞書の一例を示す図である。
図５０を参照してハフマン辞書について説明する。関係表１０において、列１０１は、符号化対象となる元データ（被符号化データ）１０１１〜１０１９であり、列１０２は、各元データがそれぞれ符号化された場合の符号１０２１〜１０２９である。
【０２５２】
たとえば、元データ１０１１は、全てのビットが０、すなわち１バイト（＝８ビット）データとして１０進数表記した場合に「０」となる元データを表わす。そして、対応する符号１０２１は、「１１０」で表わされる。符号１０２１のビット長（すなわち符号長）は、３であり、他の符号１０２２，１０２３等と比べて相対的に符号長が短い。これは元データ１０１１、すなわち１０進数表記０に相当する元データが、符号化対象となるデータ中において高頻度で出現することを意味する。
【０２５３】
（ハフマン符号化の一例）
図５１は、ハフマン符号化の一例を示す図である。
【０２５４】
図５１を参照して、ハフマン符号化について説明する。図５１に示すように、列３は、符号化対象となる加工分割画像データであり、図６８に示す加工分割画像データの例を含んだ加工分割画像データである。列２は、列３の加工分割画像データが図５０で示されるハフマン辞書に従って符号化された場合の符号化データである。なお、列３のデータは、多数のグリフに対応する一連の加工分割文字画像データを一つの大きなデータとして見なしたものである。ここで、本実施の形態では、図６８と図７０に該当する加工分割画像データは、それぞれ独立にハフマン辞書を作成し、それぞれ独立にハフマン符号化を行なうものとする。
【０２５５】
列３の加工分割画像データは、１つのグリフに対応するブロック１１，１２，１３から構成される。また、ブロック１１はサブブロック１１０１〜１１１１、ブロック１２はサブブロック１２０１〜１２１１、ブロック１３はサブブロック１３０１〜１３１１から成る。
【０２５６】
列２の符号化データは、ブロック１１，１２，１３をそれぞれ符号化したものに対応するブロック符号化データ２１，２２，２３から構成される。また、ブロック符号化データ２１はサブブロック符号化データ２１０１〜２１１１、ブロック符号化データ２２はサブブロック符号化データ２２０１〜２２１１、ブロック符号化データ２３は、サブブロック符号化データ２３０１〜２３１１から成る。
【０２５７】
サブブロックをハフマン辞書に従って符号化したものが、サブブロック符号化データとなる。たとえば、サブブロック１１０１は、サブブロック符号化データ２１０１と対応関係にある。また、たとえば、ブロック１２は、ブロック符号化データ２２と対応関係にある。
【０２５８】
ハフマン符号長算出部２２０２０１は、サブブロック１１０１等で示されるように、たとえば１バイト（＝８ビット）単位（ワード単位）で読み込んで符号化を行なうものとする。
【０２５９】
ここで、たとえば、ブロック１２のように一つのグリフに対応する加工分割画像データは、いずれも固定のデータサイズ（１１バイト）となっている。このため、列３で示される加工分割画像データ中に、グリフ境界情報を含めなくても所望のグリフに対応するデータ（たとえばブロック１２）に容易にアクセスすることができる。
【０２６０】
たとえば、グリフ番号が０から順に付与されている場合、加工分割画像データの先頭位置から「グリフ番号×１１（バイト）」進めた位置を先頭に、１１バイトだけ加工分割画像データ１０を読みこむことにより、アクセスすることができる。
【０２６１】
一方、列２で示される符号化データは、加工分割画像データとは異なり、一つのグリフに対応する符号化データ（たとえばブロック符号化データ２２）は、それぞれ異なるデータサイズとなっている。したがって、任意のグリフに対応する符号化データ（たとえばブロック符号化データ２２）を得るためには、たとえば、列２で示される符号化データの先頭にアクセスし、そこから順次復号処理を行ない、所望の符号化データ（たとえばブロック符号化データ２２）を取得する必要がある。
【０２６２】
しかし、先頭から順次復号処理を行なう際に、符号化データ中の後方に位置するデータにアクセスする場合は処理時間が増大する。そこで、一つのグリフに対応するブロック符号化データ（たとえばブロック符号化データ２２）ごとに、符号化データ中のアクセス位置を何らかの方法で得る必要がある。たとえば、特許文献１に開示される方法に従って、グリフ番号に対応するオフセット情報（符号化データの先頭からのオフセット）をテーブルとして予め作成しておく。そして、このテーブルを参照してオフセット情報に従って符号化データ中の任意のグリフに対応する部分にアクセスする方法が考えられる。
【０２６３】
しかしながら、全てのグリフに対応するオフセット情報をテーブルとして作成した場合、符号化データに加えて、テーブルデータを保持する必要があり、符号化データ容量に比べてテーブルデータ容量を無視できない場合がある。
【０２６４】
そこで、第５の実施の形態に係る画像符号化装置は、図４９で示したフローチャートに従って、所定数のブロックから構成される各ユニットの先頭位置へのアクセスポインタを記録するようにしてグリフ番号・オフセット情報変換データを生成する。これにより、復号する際に、一連の符号化データの先頭から全てのデータについて順次復号処理を行なう必要がない。さらに、データ容量の増大を抑制することを可能とするようなグリフ番号・オフセット情報変換データを生成することができる。
【０２６５】
（グリフ番号とユニットインデックスとの関係）
次に、グリフ番号とユニットインデックスとの関係について、具体例を用いて説明する。
【０２６６】
図５２は、グリフ番号とユニットインデックスの関係の一例を示す図である。
図５２に示す、グリフ番号とユニットインデックスの関係表２０は、概念を説明するために例示するものであり、具体的に関係表２０を作成するものではない。
【０２６７】
関係表２０において、列２０１は、画像データメモリ１２０２に格納される画像データに含まれる各グリフに対し、先頭０から昇順に付与されたグリフ番号２１００〜２０１６である。列２０２は、列２０１で示されるグリフ番号を特定した場合に、一意に算出されるユニットインデックス２０２１〜２０２６である。具体的には、たとえば、一つのグリフを構成する元データサイズ（加工分割画像データサイズ）を１１バイトとした場合、データブロックサイズ格納部２２０２０４１には、データブロックサイズＢＳＩＺＥとして「１１」を格納する。また、データユニットサイズ格納部２２０２０５１に格納されるデータユニットサイズＵＳＩＺＥは、システム設計者が決定すればよいが、ここでは例として「２」とする。なお、データユニットサイズＵＳＩＺＥの決定方法については、第７の実施の形態にて詳しく説明する。
【０２６８】
このとき、図４９で示したフローチャートに従って、グリフ番号・オフセット情報変換データを生成すると、グリフ番号２０１１（「０」）、グリフ番号２０１２（「１」）に対応する符号化データで構成されるユニットのインデックスは「０」となり、関係表２０では、ユニットインデックス２０２１、ユニットインデックス２０２２で表わされる。同様に、グリフ番号２０１３（「２」）、グリフ番号２０１４（「３」）に対応する符号化データで構成されるユニットのインデックスは「１」となり、関係表２０では、ユニットインデックス２０２３、ユニットインデックス２０２４で表わされる。ただし、繰り返しの説明になるが、本実施の形態において関係表２０は具体的に生成されるものではない。関係表２０を例としたグリフ番号とユニットインデックスの関係については、後述の第６の実施の形態の説明において改めて説明する。
【０２６９】
（ユニットインデックスとオフセットとの関係）
次に、ユニットインデックスとオフセットとの関係について、具体例を用いて説明する。
【０２７０】
図５３は、ユニットインデックスとオフセットとの関係の一例を示す図である。
図５３に示すように、関係表３０において、列３０１は、ユニットインデックス３０１１〜３０１３を示し、列３０２は、オフセット３０２１〜３０２３を示す。なお、ユニットインデックスは、概念を説明するために例示するものであり、具体的には、オフセットの先頭へのアドレス（オフセット３０２１（「０」）が格納されるメモリ位置のアドレス）と、オフセット３０２１〜３０２３（順番固定）とをアクセステーブルデータメモリ１２０７に格納すればよい。
【０２７１】
列３０１で示されるユニットインデックスは、図５２の関係表２０で説明した、グリフ番号２０１１〜２０１６から一意に得られるユニットインデックス２０２１〜２０２６に相当する。すなわち、グリフ番号が定まれば、オフセットが一意に求まる。
【０２７２】
列３０２中の、オフセット３０２１（「０」）は、グリフ番号２０１１（「０」）に対応する、図５１のブロック符号化データ２１、またはグリフ番号２０１２（「１」）に対応するブロック符号化データ２２にアクセスする際に、オフセットを「０」としてアクセスすればよいことを表わす。また同様に、オフセット３０２２（「８３」）は、グリフ番号２０１３（「２」）に対応するブロック符号化データ２３、またはグリフ番号２０１４（「３」）に対応する符号化データにアクセスする際に、オフセットを「８３」としてアクセスすればよいことを表わす。ここで、オフセット値の単位はビットである。すなわち、オフセット「８３」とは、図５１の列２で示される符号化データにおいて、グリフ番号「２」に対応するブロック符号化データ２３の先頭ビット位置（サブブロック符号化データ２３０１の先頭ビット位置）にアクセスするためのオフセットである。別の表現をすれば、ブロック符号化データ２１とブロック符号化データ２２とに対応する符号化データのビット数の総和である。
【０２７３】
関係表３０を例としたユニットインデックスとオフセットの関係については、後述の第６の実施の形態の説明において改めて説明する。
【０２７４】
なお、上述の説明において、アクセスポインタ更新部２２０２０２の機能、ならびにアクセスポインタ初期化処理ステップＳ１３０８０１、アクセスポインタ更新処理ステップＳ１３０８０５は、０を代入して初期化し、以降ハフマン符号長を加算して更新する場合について例示したが、上述の方法に限定するものではなく、符号化データにアクセスするための情報を得ることが可能であれば他の方法によってアクセスポインタを更新してもよい。例えば、符号長を算出するごとに順次符号化データを蓄積し、アクセスポインタ更新時点における蓄積符号データ全体のデータ容量（サイズ）を算出することにより、アクセスポインタを更新することも可能である。
【０２７５】
上記で説明したように、第５の実施の形態に係る画像符号化装置は、所定のサイズ単位のデータを１ブロックとした場合に、所定のブロック数で構成される各ユニットの先頭位置へのアクセスポインタを記録したアクセステーブルを作成する。これにより、各ブロックの先頭位置へのアクセスポインタを記録しておく場合に比べて、アクセステーブルの保持に要する記憶容量を削減することができる。
【０２７６】
［第６の実施の形態］
第６の実施の形態では、上記第５の実施の形態に係る画像符号化装置によって符号化されたデータを復号するための画像復号装置について説明する。
【０２７７】
図５４は、第６の実施の形態に係る画像復号装置の構成を示すブロック図である。
図５４を参照して、第６の実施の形態における画像復号装置について説明する。第６の実施の形態に係る画像復号装置には、第３実施の形態において図３９等で示した画像復号装置における符号化データメモリ３３０２、エントロピー符号復号部３３０３、アクセステーブルデータメモリ３３０６、グリフ番号・オフセット情報変換部５１０２に代わって、符号化データメモリ３４０５、エントロピー符号復号部３４０４、アクセステーブルデータメモリ３４０７、グリフ番号・オフセット情報変換部５３００を含む。その他の構成は、上記で説明した通りであるため繰り返さない。以下で説明する構成要素は、主に画像復号装置の機能を実現する専用のＬＳＩとメモリによって構成することが可能である。ただし、他のハードウェアによって構成されてもよい。なお、このような専用ＬＳＩは、コントローラ３３０１、エントロピー符号復号部３４０４、アクセステーブルデータ変換部３３０５および画像処理部３３０７として機能する。
【０２７８】
まず、グリフ番号・オフセット情報変換部５３００について述べる。グリフ番号・オフセット情報変換部５３００は、ユニットインデックス算出部５３０００１と、オフセット取得部５３０００２とを含む。
【０２７９】
ユニットインデックス算出部５３０００１は、グリフ番号が入力される。ユニットインデックス算出部５３０００１は、入力されたグリフ番号に基づいて、ユニットインデックスを算出する。ユニットインデックスの算出方法の具体例については、後述する。ユニットインデックス算出部５３０００１は、算出したユニットインデックスを、オフセット取得部５３０００２に出力する。
【０２８０】
オフセット取得部５３０００２は、ユニットインデックス算出部５３０００１からユニットインデックスが入力される。オフセット取得部５３０００２は、入力されたユニットインデックスに基づいて、グリフ番号・オフセット情報変換データ格納部３３０７０１に格納されるデータを参照して、オフセット情報を取得する。オフセット取得部５３０００２は、取得したオフセット情報を、符号データ取得部３３０４０３に出力する。
【０２８１】
続いて、エントロピー符号復号部３４０４について説明する。
エントロピー符号復号部３４０４は、ユニット内ブロック位置算出部３３０４０１と、ユニット内ブロック位置管理部３３０４０２と、符号データ取得部３３０４０３と、ハフマン復号部３３０４０４と、復号データ出力部３３０４０５とを含む。
【０２８２】
ユニット内ブロック位置算出部３３０４０１は、グリフ番号が入力される。ユニット内ブロック位置算出部３３０４０１は、入力されたグリフ番号に基づいて、ユニット内ブロック位置を算出する。ユニット内ブロック位置の算出方法の具体例については、後述する。ユニット内ブロック位置算出部３３０４０１は、算出したユニット内ブロック位置を、ユニット内ブロック位置管理部３３０４０２に出力する。
【０２８３】
ユニット内ブロック位置管理部３３０４０２は、ユニット内ブロック位置算出部３３０４０１からユニット内ブロック位置が入力される。また、ユニット内ブロック位置管理部３３０４０２は、コントローラ３３０１からの指示に従い、処理開始時に処理済ブロック数を初期化して０を代入し、処理済サブブロック数を初期化して０を代入する。また、処理開始以降、ユニット内ブロック位置管理部３３０４０２は、コントローラ３３０１からの指示に従い、現在の処理済ブロック数に１を加算して更新する。また、ユニット内ブロック位置管理部３３０４０２は、コントローラ３３０１からの指示に従い、現在の処理済サブブロック数に１を加算して更新する。また、ユニット内ブロック位置管理部３３０４０２は、現在の処理済ブロック数が、ユニット内ブロック位置算出部３３０４０１から入力されたユニット内ブロック位置と等しいか否かを判定し、等しい場合は、復号データ出力部３３０４０５に処理を実行するように、コントローラ３３０１を介して指示を送信する。
【０２８４】
符号データ取得部３３０４０３は、オフセット取得部５３０００２から、オフセットが入力される。また、符号データ取得部３３０４０３は、コントローラ３３０１からの指示に従い、符号データ格納部３３０５０１に格納される符号化データを参照する。そして、処理開始時は、入力されたオフセットが示すビット位置から、以降、順次符号化データを１ビットずつ取得し、取得した符号化データを順次、ハフマン復号部３３０４０４に出力する。
【０２８５】
ハフマン復号部３３０４０４は、符号データ取得部３３０４０３から、符号化データが１ビットずつ順次入力される。ハフマン復号部３３０４０４は、入力された符号化データに基づいて、ハフマン辞書格納部３３０５０２に格納されるハフマン辞書を参照し、ハフマン符号を復号する。ハフマン復号部３３０４０４は、復号したデータを、復号データ出力部３３０４０５に出力する。
【０２８６】
復号データ出力部３３０４０５は、ハフマン復号部３３０４０４から、復号されたデータが入力される。また、復号データ出力部３３０４０５は、コントローラ３３０１から実行の指示を受信した場合、入力された復号データを、復号加工分割画像データとして出力する。
【０２８７】
続いて、符号化データメモリ３４０５について説明する。
符号化データメモリ３４０５は、符号データ格納部３３０５０１と、ハフマン辞書格納部３３０５０２とを含む。
【０２８８】
符号データ格納部３３０５０１は、符号化された加工分割画像データが格納されており、必要に応じて符号データ取得部３３０４０３から、符号化データが参照される。
【０２８９】
ハフマン辞書格納部３３０５０２は、符号データ格納部３３０５０１に格納される符号化加工分割画像データを生成する際に用いたハフマン辞書を格納し、必要に応じてハフマン復号部３３０４０４から、ハフマン辞書が参照される。
【０２９０】
さらに、アクセステーブルデータメモリ３４０７について説明する。
アクセステーブルデータメモリ３４０７は、グリフ番号・オフセット情報変換データ格納部３３０７０１を含む。
【０２９１】
グリフ番号・オフセット情報変換データ格納部３３０７０１は、第５の実施の形態に従って生成される、グリフ番号・オフセット情報変換データが格納される。グリフ番号・オフセット情報変換データ格納部３３０７０１に格納されるグリフ番号・オフセット情報変換データは、オフセット取得部５３０００２から必要に応じて参照される。
【０２９２】
（第６の実施の形態に係るグリフ番号・オフセット情報変換処理）
次に、第６の実施の形態に係る画像復号装置における具体的な処理内容について説明する。
【０２９３】
図５５は、第６の実施の形態に係る画像復号装置で実行されるグリフ番号・オフセット情報変換処理のフローチャートである。
【０２９４】
図５５のフローチャートに示される処理は、コントローラ３３０１として機能するプロセッサが記憶装置に記憶されるプログラムを読出して実行し、図５４等に示された各部を制御することによって実現される。なお、図５５のフローチャートで示す処理は、グリフ番号・オフセット情報変換処理の一具体例を示したものに過ぎない。
【０２９５】
図５５を参照して、ユニットインデックス算出部５３０００１は、入力されたグリフ番号ＧｌＮｕｍに基づいて、ユニットインデックスＵｎＩｄｘを算出する（ステップＳ３４０３０１）。ユニットインデックスＵｎＩｄｘは、たとえば次の式（１）に従って算出される。
【０２９６】
ＵｎＩｄｘ＝Ｉｎｔ（ＧｌＮｕｍ／ＵＳＩＺＥ）…式（１）
ここで、Ｉｎｔ（Ａ／Ｂ）は、整数Ａを整数Ｂで除算した際における商を表わす。ＵＳＩＺＥは、グリフ番号・オフセット情報変換データを生成する際に、データユニットサイズ格納部２２０２０５１に格納したデータユニットサイズである。
【０２９７】
ここで、具体例として、図５２を参照して、ＵＳＩＺＥが「２」の場合に、グリフ番号「３」に対応するユニットインデックスを算出する場合、「Ｉｎｔ（３／２）」を計算し、ユニットインデックス「１」を得る。
【０２９８】
図５５に戻って、次に、オフセット取得部５３０００２は、グリフ番号・オフセット情報変換データ格納部３３０７０１に格納されるグリフ番号・オフセット情報変換データを参照し、ステップＳ３４０３０１で算出したＵｎＩｄｘ番目に相当するオフセット情報を取得する（ステップＳ３４０３０２）。
【０２９９】
ここで、具体例として、図５３を参照して、ユニットインデックス「１」に対応するオフセットを取得する場合、オフセット「８３」を得る。
【０３００】
図５５に戻って、次に、オフセット取得部５３０００２は、ステップＳ３４０３０２で取得したオフセット情報を、符号データ取得部３３０４０３に出力する（ステップＳ３４０３０３）。
【０３０１】
以上のようにして、グリフ番号・オフセット情報変換処理が行なわれる。
（第６の実施の形態に係る画像復号装置における復号処理）
次に、第６の実施の形態に係る画像復号装置で実行されるエントロピー符号復号処理について説明する。
【０３０２】
図５６は、第６の実施の形態に係る画像復号装置で実行されるエントロピー符号復号処理のフローチャートである。
【０３０３】
図５６のフローチャートに示される処理は、コントローラ３３０１として機能するプロセッサが記憶装置に記憶されるプログラムを読出して実行し、図５４等に示された各部を制御することによって実現される。なお、図５６のフローチャートで示す処理は、復号処理の一具体例に過ぎず、たとえば、各ステップの順番を入れ替えて実行してもよい。
【０３０４】
図５６を参照して、ユニット内ブロック位置算出部３３０４０１は、入力されたグリフ番号ＧｌＮｕｍに基づいて、ユニット内ブロック位置ＢｌＩｄｘを算出する（ステップＳ３４０５０１）。ユニット内ブロック位置ＢｌＩｄｘは、たとえば次の式（２）に従って算出される。
【０３０５】
ＢｌＩｄｘ＝Ｒｅｍ（ＧｌＮｕｍ／ＵＳＩＺＥ）…式（２）
ここで、Ｒｅｍ（Ａ／Ｂ）は、整数Ａを整数Ｂで除算した際における剰余を表わす。ＵＳＩＺＥは、グリフ番号・オフセット情報変換データを生成する際に、データユニットサイズ格納部２２０２０５１に格納したデータユニットサイズである。
【０３０６】
ここで、具体例を用いて、グリフ番号とユニット内ブロック位置の関係を説明する。
図５７は、グリフ番号とユニット内ブロック位置の関係の一例を示す図である。
【０３０７】
図５７に示す、グリフ番号とユニット内ブロック位置の関係表４０は、概念を説明するために例示するものであり、具体的に関係表４０を作成するものではない。
【０３０８】
関係表４０において、列４０１は、画像データメモリ１２０２に格納される画像データに含まれる各グリフに、先頭０から昇順に付与されたグリフ番号４０１１〜４０１６である。列４０２は、列４０１で示されるグリフ番号を特定した場合に一意に算出されるユニット内ブロック位置４０２１〜４０２６である。具体的には、たとえばＵＳＩＺＥが「２」の場合、グリフ番号４０１１（「０」）に対応する符号化データで構成されるブロックのユニット内ブロック位置は「０」となり、関係表４０では、ユニット内ブロック位置４０２１で表わされる。同様に、グリフ番号４０１２（「１」）に対応する符号化データで構成されるブロックのユニット内ブロック位置は「１」となり、関係表４０では、ユニット内ブロック位置４０２２で表わされる。ただし、繰り返しの説明になるが、本実施の形態において関係表４０は具体的に生成されるものではない。
【０３０９】
図５６に戻って、次に、コントローラ３３０１からの処理開始指示に従い、ユニット内ブロック位置管理部３３０４０２は、処理済ブロック数ＢｌＮｕｍを初期化（０を代入）し（ステップＳ３４０５０２）、処理済サブブロック数ＤｔＮｕｍを初期化（０を代入）する（ステップＳ３４０５０３）。
【０３１０】
次に、符号データ取得部３３０４０３は、符号データ格納部３３０５０１に格納される符号化データを参照する。そして、処理開始時は、オフセット取得部５３０００２から入力されたオフセット情報が示すビット位置から、以降、順次符号化データを１ビットずつ取得し、取得した符号化データを順次、ハフマン復号処理ステップＳ３４０５０５に受け渡す（ステップＳ３４０５０４）。
【０３１１】
次に、ハフマン復号部３３０４０４は、ステップＳ３４０５０４で取得した符号化データに基づいて、ハフマン辞書格納部３３０５０２に格納されるハフマン辞書を参照し、ハフマン符号を復号する（ステップＳ３４０５０５）。
【０３１２】
次に、ユニット内ブロック位置管理部３３０４０２は、現在の処理済ブロック数ＢｌＮｕｍが、ステップＳ３４０５０１で算出したユニット内ブロック位置ＢｌＩｄｘと等しいか否かを判定する（ステップＳ３４０５０６）。等しいと判断した場合（ステップＳ３４０５０６でＹＥＳ）は、復号データ出力部３３０４０５は、ステップＳ３４０５０５で復号した復号データを出力する（ステップＳ３４０５０７）。一方、等しくないと判断した場合（ステップＳ３４０５０６でＮＯ）は、ステップＳ３４０５０８の処理に進む。
【０３１３】
次に、ユニット内ブロック位置管理部３３０４０２は、処理済サブブロック数ＤｔＮｕｍに１を加算して更新し（ステップＳ３４０５０８）、処理済サブブロック数ＤｔＮｕｍが、データブロックサイズＢＳＩＺＥ（たとえば１１）に等しいか否かを判定する（ステップＳ３４０５０９）。等しいと判断した場合（ステップＳ３４０５０９でＹＥＳ）は、ステップＳ３４０５１０の処理に進む。一方、等しくないと判断した場合（ステップＳ３４０５０９でＮＯ）は、ステップＳ３４０５０４の処理に進み、次の符号化データを取得する。ここで、データブロックサイズＢＳＩＺＥは、グリフ番号・オフセット情報変換データを生成する際に、データブロックサイズ格納部２２０２０４１に格納したデータブロックサイズである。
【０３１４】
次に、ユニット内ブロック位置管理部３３０４０２は、処理済ブロック数ＢｌＮｕｍに１を加算して更新し（ステップＳ３４０５１０）、処理済ブロック数ＢｌＮｕｍが、データユニットサイズＵＳＩＺＥ（たとえば２）に等しいか否かを判定する（ステップＳ３４０５１１）。等しいと判断した場合（ステップＳ３４０５１１でＹＥＳ）は、エントロピー符号復号処理を終了する。一方、等しくないと判断した場合（ステップＳ３４０５１１でＮＯ）は、ステップＳ３４０５０３の処理に進み、処理済サブブロック数を初期化してから、次の符号化データを取得する。ここで、データユニットサイズＵＳＩＺＥは、グリフ番号・オフセット情報変換データを生成する際に、データユニットサイズ格納部２２０２０５１に格納したデータユニットサイズである。
【０３１５】
本実施の形態では、ステップＳ３４０３０２で取得したオフセットに従って、符号化データの取得開始位置をオフセット（ジャンプ）することで、復号処理における処理量を均一化することが可能となる。また、符号化データの末尾部分にアクセスするためにデータの先頭から全ての符号化データを順次復号することも不要となる。
【０３１６】
なお、前述の説明では、ステップＳ３４０５１１で、処理済ブロック数ＢｌＮｕｍがデータユニットサイズＵＳＩＺＥと等しくなることを判定して処理を終了しているため、出力対象となる復号データ（出力対象となるグリフに対応する復号加工分割画像データ）を出力した後も、処理済ブロック数ＢｌＮｕｍがデータユニットサイズＵＳＩＺＥになるまで、処理を継続することになる。たとえば、ユニット内ブロック位置ＢｌＩｄｘが０で、ユニットサイズＵＳＩＺＥが８のような場合、オフセットに従って取得開始位置から符号化データを取得して１ブロック分の復号処理が完了するまで順次復号データを出力すればよく、以降の７ブロック分の復号処理は冗長となる。
【０３１７】
このような課題を解決するため、たとえば次に示すように実施の形態を変形することも可能である。出力済フラグＯｕｔＦｌａｇをユニット内ブロック位置管理部３３０４０２に用意しておき、ステップＳ３４０５０２で処理済ブロック数ＢｌＮｕｍを初期化する際に、出力済フラグＯｕｔＦｌａｇも初期化して「０」を設定しておく。また、ステップＳ３４０５０６で処理済ブロック数ＢｌＮｕｍがユニット内ブロック位置ＢｌＩｄｘと等しい場合、すなわち、復号データが出力対象として認められる場合に、出力済フラグを１に設定する。そして、ステップＳ３４０５１１で、処理済ブロック数ＢｌＮｕｍがデータユニットサイズＵＳＩＺＥと等しくない場合に、ステップＳ３４０５０３に進む前に出力済フラグＯｕｔＦｌａｇが「１」であるか否かを判定し、ＯｕｔＦｌａｇが「１」である場合、エントロピー符号復号処理を終了する。またＯｕｔＦｌａｇが「０」である場合、ステップＳ３４０５０３に進む。このように、エントロピー符号復号処理を変形することにより、復号データ出力後の冗長な復号処理を回避することができる。
【０３１８】
また同様の効果を得るために、次のように実施の形態を変形することも可能である。出力済フラグＯｕｔＦｌａｇをユニット内ブロック位置管理部３３０４０２に用意しておき、ステップＳ３４０５０２で処理済ブロック数ＢｌＮｕｍを初期化する際に、出力済フラグＯｕｔＦｌａｇも初期化して「０」を設定しておく。また、ステップＳ３４０５０６で処理済ブロック数ＢｌＮｕｍがユニット内ブロック位置ＢｌＩｄｘと等しい場合、すなわち、復号データが出力対象として認められる場合に、出力済フラグを１に設定する。そして、ステップＳ３４０５１１で、「処理済ブロック数ＢｌＮｕｍとデータユニットサイズＵＳＩＺＥが等しいか否かを判定する」のに替えて、「出力済フラグＯｕｔＦｌａｇが１であるか否かを判定する」ようにする。そして、出力済フラグＯｕｔＦｌａｇが１である場合、エントロピー符号復号処理を終了する。また出力済フラグＯｕｔＦｌａｇが１でない場合、ステップＳ３４０５０３に進む。
【０３１９】
［第７の実施の形態］
第７の実施の形態では、第５の実施の形態に係るグリフ番号・オフセット情報変換データ生成部の変形例について提示する。
【０３２０】
第７の実施の形態に係るグリフ番号・オフセット情報変換データ生成部は、データユニットサイズＵＳＩＺＥを、テーブルデータ容量、処理時間との関係に基づいて決定する。
【０３２１】
（データユニットサイズの決定方法）
まず、データユニットサイズの決定方法について、概念図を用いて説明する。
【０３２２】
図５８は、データユニットサイズとテーブルデータ容量、処理時間との関係の一例を示す概念図である。
【０３２３】
図５８を参照して、横軸は、データユニットサイズを表わし、左側の値が小さく、右にいくほど大きな値となる。左側の縦軸は、テーブルデータ容量（グリフ番号・オフセット情報変換データの容量）を表わし、下側の値が小さく、上にいくほど大きな値となる。右側の縦軸は、グリフ番号・オフセット情報変換処理と、エントロピー符号復号処理とに必要な処理時間を表わし、下側の値が小さく、上にいくほど大きな値となる。
【０３２４】
実線で表すグラフ５０１は、データユニットサイズとテーブルデータ容量との関係を表し、データユニットサイズが大きくなるほど、テーブルデータ容量は小さくなる。たとえば、データユニットサイズＵＳＩＺＥが「２」の場合におけるテーブルデータ容量を１０００バイトとすると、データユニットサイズＵＳＩＺＥが「８」の場合におけるテーブルデータ容量は２５０バイトとなる。
【０３２５】
一方、点線で表すグラフ５０２は、データユニットサイズと処理時間との関係を表わし、データユニットサイズが大きくなるほど、処理時間は大きくなる。たとえば、全てのグリフ（ブロック）を１回ずつ復号する場合の処理時間を平均すると、データユニットサイズＵＳＩＺＥが「２」の場合における処理時間は、概略的には、グリフ（ブロック）１．５個分（＝（１＋２）／２）の復号に必要な処理時間と考えることができる。また、データユニットサイズＵＳＩＺＥが「８」の場合における処理時間は、同様に、グリフ（ブロック）４．５個分（＝（１＋２＋３＋４＋５＋６＋７＋８）／８）の復号に必要な処理時間と考えることができる。ただし、正確な復号処理時間について考える場合、１個のグリフ（ブロック）に対応する符号化データのビット数（可変長）によって、１個のグリフ（ブロック）あたりの処理時間が異なることを考慮する必要があるため、前述の説明は概念的なものである。
【０３２６】
前述のように、テーブルデータ容量を小さくするためには、データユニットサイズＵＳＩＺＥを大きくする必要があり、また、処理時間を小さくするためには、データユニットサイズＵＳＩＺＥを小さくする必要がある。すなわち、テーブルデータ容量と処理時間との理想を追求する際に生じるトレードオフを解決する必要がある。前述の実施の形態では、このようなトレードオフを考慮して、システム設計者がデータユニットサイズＵＳＩＺＥを決定することを前提としている。なお、データユニットサイズＵＳＩＺＥの決定にあたっては、前述のトレードオフのみならず、圧縮効率という観点から、テーブルデータ容量によるデータ容量のオーバヘッドを考慮する必要がある。すなわち、「符号化前の加工分割画像データのデータ容量」と、「符号化して得られる符号化データ容量と、復号の際に必要となるハフマン辞書と、グリフ番号・オフセット情報変換データのデータ容量との総和」との関係を考慮する必要がある。本実施の形態に係るグリフ番号・オフセット情報変換部は、このようなデータ容量の総和を考慮してデータユニットサイズＵＳＩＺＥを決定する。
【０３２７】
（第７の実施の形態に係るグリフ番号・オフセット情報変換データ生成部の構成）
図５９は、第７の実施の形態に係るグリフ番号・オフセット情報変換データ生成部の詳細な構成を示すブロック図である。
【０３２８】
図５９を参照して、第７の実施の形態に係るグリフ番号・オフセット情報変換データ生成部５００２は、図４８で示したグリフ番号・オフセット情報変換データ生成部５０００の構成に加え、符号データサイズ算出部２２０２２６と、データユニットサイズ設定部２２０２２７と、変換データサイズ算出部２２０２２８とを含む。
【０３２９】
これらの構成要素は、画像符号化装置の機能を実現する専用のＬＳＩ（Large-Scale Integration）とメモリとによって構成されてもよいし、他のハードウェアによって構成されてもよい。
【０３３０】
符号データサイズ算出部２２０２０２６は、符号データ格納部１２０５０１に格納される符号化データを参照し、符号化データサイズ（データ容量）を算出する。符号データサイズ算出部２２０２０２６は、算出した符号化データサイズを、データユニットサイズ設定部２２０２２７に出力する。
【０３３１】
変換データサイズ算出部２２０２２８は、ある固定のデータユニットサイズを用いて作成したグリフ番号・オフセット情報変換データのデータサイズ（データ容量）を算出する。変換データサイズ算出部２２０２２８は、算出した変換データサイズを、データユニットサイズ設定部２２０２２７に出力する。
【０３３２】
データユニットサイズ設定部２２０２２７は、符号データサイズ算出部２２０２２６から符号化データサイズが、変換データサイズ算出部２２０２２８から変換データサイズが、それぞれ入力される。データユニットサイズ設定部２２０２２７は、入力された符号化データサイズと、変換データサイズとを用いて、所定の条件を満たす場合、グリフ番号・オフセット情報変換データ生成処理を終了する。また所定の条件を満たさない場合、データユニットサイズを更新するとともに、グリフ番号・オフセット情報変換データを一旦リセット（消去）して、更新されたデータユニットサイズを用いて、改めてグリフ番号・オフセット情報変換データを生成する。所定の条件の具体例については、後述する。
【０３３３】
（第７の実施の形態に係るグリフ番号・オフセット情報変換データ生成処理）
次に、第７の実施の形態に係る画像符号化装置におけるグリフ番号・オフセット情報変換データ生成部の具体的な処理内容について説明する。
【０３３４】
図６０は、第７の実施の形態に係るグリフ番号・オフセット情報変換データ生成部で実行されるグリフ番号・オフセット情報変換データ生成処理を示すフローチャートである。
【０３３５】
図６０のフローチャートに示される処理は、コントローラ１２０１として機能するプロセッサが記憶装置に記憶されるプログラムを読出して実行し、図５９等に示された各部を制御することによって実現される。なお、図６０のフローチャートで示す処理は、グリフ番号・オフセット情報変換データ生成処理の一具体例に過ぎず、たとえば、各ステップの順番を入れ替えて実行してもよい。
【０３３６】
図６０を参照して、データサイズ算出部（図示せず）で、加工分割画像データのデータサイズ（データ容量）ＯＳｉｚｅを算出する（ステップＳ１３０８２１）。ここで算出対象とする加工分割画像データは、加工分割画像データメモリ１２０３に格納される、符号化前の加工分割画像データである。すなわち、符号化による圧縮効果を得る前のオリジナルのデータ容量を算出する。
【０３３７】
次に、符号データサイズ算出部２２０２２６は、符号データ格納部１２０５０１に格納される符号化データのデータサイズ（データ容量）ＣＳｉｚｅを算出する（ステップＳ１３０８２２）。すなわち、符号化により圧縮されたデータ容量を算出する。
【０３３８】
また、制御部１２０からの処理開始指示に従い、データユニットサイズ設定部２２０２２７は、データユニットサイズＵＳＩＺＥを初期化（１を代入）する（ステップＳ１３０８２３）。
【０３３９】
次に、第５の実施の形態で説明したグリフ番号・オフセット情報変換データ生成処理（図４９におけるステップＳ１３０８０１〜ステップＳ１３０８１２）を実行する（ステップＳ１３０８２４）。そして、データユニットサイズ設定部２２０２２７は、ステップＳ１３０８２４で生成された、グリフ番号・オフセット情報変換データのデータサイズ（データ容量）ＴＳｉｚｅを算出する（ステップＳ１３０８２５）。
【０３４０】
次に、データユニットサイズ設定部２２０２２７は、ステップＳ１３０８２１で算出した加工分割画像データサイズＯＳｉｚｅと、ステップＳ１３０８２２で算出した符号データサイズＣＳｉｚｅと、ステップＳ１３０８２５で算出した変換データサイズＴＳｉｚｅとを用いて、たとえば、次の式（３）に従って判定を行なう。
【０３４１】
（ＣＳｉｚｅ＋ＴＳｉｚｅ）／ＯＳｉｚｅ≦（ＣＳｉｚｅ／ＯＳｉｚｅ）×１．２…式（３）
つまり、オリジナル（符号化前の）加工分割画像データサイズＯＳｉｚｅと、符号化後の符号データサイズＣＳｉｚｅとの容量比率に対して、符号データサイズＣＳｉｚｅに変換データサイズＴＳｉｚｅが加わったことによる容量比率が、所定の割合に収まっているか否かを判定する（ステップＳ１３０８２６）。所定の割合に収まっていると判断した場合（ステップＳ１３０８２６でＹＥＳ）は、グリフ番号・オフセット情報変換データ生成処理を終了する。一方、所定の割合に収まっていないと判断した場合（ステップＳ１３０８２６でＮＯ）は、データユニットサイズ設定部２２０２２７は、データユニットサイズＵＳＩＺＥに１を加算して更新し（ステップＳ１３０８２７）、既に生成したグリフ番号・オフセット情報変換データを一旦リセット（消去）し、ステップＳ１３０８２４の処理に進んで、第５の実施の形態で説明したグリフ番号・オフセット情報変換データ生成処理（図４９におけるステップＳ１３０８０１〜ステップＳ１３０８１２）を実行する。
【０３４２】
以上のようにして、グリフ番号・オフセット情報変換データ生成処理が行なわれる。
ステップＳ１３０８２６で用いた式（３）の判定基準に従うことにより、データユニットサイズＵＳＩＺＥが「１」であっても圧縮（符号化）データ全体（復号に必要な変換データを含む）の中に占める変換データサイズの割合が小さい場合（式（３）の例では２割以内の場合）、そのまま変換データを保持することで、大きなオーバヘッドを生じることなく、また、復号処理時における冗長な復号処理を回避することができる。また、たとえばＵＳＩＺＥが「８」の場合に、初めて圧縮（符号化）データ全体の中に占める変換データサイズの割合が所定の割合（式（３）の例では２割）に収まるような場合、ＵＳＩＺＥが「１」の時に比べると平均的な復号処理時間は増大することになるが、圧縮（符号化）データ全体（復号に必要な変換データを含む）の中に占める変換データサイズの割合が大きくなり過ぎることを防止することができる。
【０３４３】
［第８の実施の形態］
第８の実施の形態では、第５の実施の形態に係る画像符号化装置の変形例について提示する。
【０３４４】
第８の実施の形態に係る画像符号化装置は、グリフ番号の入力頻度（参照頻度）に応じてグリフを並べ替えるグリフ並べ替え部を備える点が第５の実施の形態にかかる画像符号化装置と異なる。
【０３４５】
図６１は、第８の実施の形態に係る画像符号化装置におけるグリフ並べ替え部の構成を示すブロック図である。
【０３４６】
図６１を参照して、グリフ並べ替え部９１０は、テキスト解析部９０１と、頻度算出部９０２と、テーブル並べ替え部９０３と、画像データ並べ替え部９０４とを含んで構成される。なお、これらの構成要素は、画像符号化装置の機能を実現する専用のＬＳＩ（Large-Scale Integration）とメモリとによって構成されてもよいし、他のハードウェアによって構成されてもよい。
【０３４７】
テキスト解析部９０１は、任意のテキストデータ、好ましくは本発明の第６の実施の形態に従う画像復号装置を実装する装置（たとえば携帯電話など）において、画面表示するために用いるテキストデータ（たとえば電子メールなど）のサンプルが、好ましくは、統計的な性質を得るに足りる十分な量のテキストデータが入力される。テキスト解析部９０１は、入力されたテキストデータを解析して、文字識別情報、すなわち文字コードと書体識別情報とを取得し（図２０を参照）、文字識別情報・グリフ番号対応ルールメモリ１２０８に格納される文字識別情報・グリフ番号対応ルールを参照して、入力されたテキストデータに対応して用いられるグリフ番号を取得する。テキスト解析部９０１は、取得したグリフ番号を、頻度算出部９０２に出力する。
【０３４８】
頻度算出部９０２は、テキスト解析部９０１からグリフ番号が入力される。頻度算出部９０２は、入力されたグリフ番号について、各グリフ番号の入力頻度（参照頻度）を算出する。すなわち、多量のテキストデータに対応して順次入力されるグリフ番号について、番号ごとの頻度を求める。頻度算出部９０２は、算出したグリフ番号ごとの頻度を、テーブル並べ替え部９０３と、画像データ並べ替え部９０４とに出力する。
【０３４９】
テーブル並べ替え部９０３は、頻度算出部９０２からグリフ番号ごとの頻度が入力される。テーブル並べ替え部９０３は、文字識別情報・グリフ番号対応ルールメモリ１２０８に格納される文字識別情報・グリフ番号対応ルールを参照して、入力されたグリフ番号ごとの頻度に従って、頻度の多いグリフ番号順に、文字識別情報・グリフ番号対応ルールを並べ替える（再構築）。テーブル並べ替え部９０３は、並べ替えた文字識別情報・グリフ番号対応ルールを出力し、文字識別情報・グリフ番号対応ルールメモリ１２０８に格納される文字識別情報・グリフ番号対応ルールを、並べ替え後テーブルに置き換える。
【０３５０】
画像データ並べ替え部９０４は、頻度算出部９０２からグリフ番号ごとの頻度が入力される。画像データ並べ替え部９０４は、画像データメモリ１２０２に格納される画像データを参照して、入力されたグリフ番号ごとの頻度に従って、頻度の多いグリフ番号順に、画像データを並べ替える（再構築）。ここで、画像データは、グリフ（ブロック）に対応する画像（たとえば１１バイト）が、複数連なって構成される一連の大きなサイズの画像データであるものとし、グリフ（ブロック）に対応する画像（たとえば１１バイト）単位で並べ替える。画像データ並べ替え部９０４は、並べ替えた画像データを出力し、画像データメモリ１２０２に格納される画像データを、並べ替え後画像データに置き換える。
【０３５１】
（グリフ並べ替え処理）
次に、第８の実施の形態に係る画像符号化装置の具体的な処理内容について説明する。
【０３５２】
図６２は、第８の実施の形態に係る画像符号化装置におけるグリフ並べ替え部で実行されるグリフ並べ替え処理のフローチャートである。
【０３５３】
図６２のフローチャートに示される処理は、コントローラ１２０１として機能するプロセッサが記憶装置に記憶されるプログラムを読出して実行し、図６１等に示された各部を制御することによって実現される。なお、図６２のフローチャートで示す処理は、グリフ番号・オフセット情報変換データ生成処理の一具体例を示したに過ぎない。
【０３５４】
図６２を参照して、テキスト解析部９０１は、任意のテキストデータ、好ましくは本発明の第６の実施の形態に従う画像復号装置を実装する装置（たとえば携帯電話など）において、画面表示するために用いるテキストデータ（たとえば電子メールなど）のサンプルが、好ましくは、統計的な性質を得るに足りる十分な量のテキストデータを解析して、文字識別情報、すなわち文字コードと書体識別情報とを取得し（図２０参照）、文字識別情報・グリフ番号対応ルールメモリ１２０８に格納される文字識別情報・グリフ番号対応ルールを参照して、入力されたテキストデータに対応して用いられるグリフ番号を取得する（ステップＳ９０１）。
【０３５５】
次に、頻度算出部９０２は、ステップＳ９０１で取得したグリフ番号について、各グリフ番号の入力頻度（参照頻度）を算出する（ステップＳ９０２）。すなわち、多量のテキストデータに対応して順次入力されるグリフ番号について、番号ごとの頻度を求める。
【０３５６】
次に、テーブル並べ替え部９０３は、文字識別情報・グリフ番号対応ルールメモリ１２０８に格納される文字識別情報・グリフ番号対応ルールを参照して、ステップＳ９０２で算出したグリフ番号ごとの頻度に従って、頻度の多いグリフ番号順に、文字識別情報・グリフ番号対応ルールを並べ替える（再構築）（ステップＳ９０３）。
【０３５７】
次に、画像データ並べ替え部９０４は、画像データメモリ１２０２に格納される画像データを参照して、ステップＳ９０２で算出したグリフ番号ごとの頻度に従って、頻度の多いグリフ番号順に、画像データを並べ替える（再構築）（ステップＳ９０４）。ここで、画像データは、グリフ（ブロック）に対応する画像（たとえば１１バイト）が、複数連なって構成される一連の大きなサイズの画像データであるものとし、グリフ（ブロック）に対応する画像（たとえば１１バイト）単位で並べ替える。
【０３５８】
（第８の実施の形態に係る画像符号化装置の全体構成）
本発明の第８の実施の形態に係る画像符号化装置は、第５の実施の形態に係る画像符号化装置の変形例であるため、図４８を参照して、第５の実施の形態との相違点について以降に述べる。
【０３５９】
第８の実施の形態における画像符号化装置では、前述のグリフ並べ替え部９１０が追加されるほかは、構成についてはほぼ同等である。まず始めにグリフ並べ替え部９１０で、グリフ並べ替え処理を実行して、文字識別情報・グリフ番号対応ルールメモリ１２０８と、画像データメモリ１２０２とに、それぞれ、並べ替え後の文字識別情報・グリフ番号対応ルールと、並べ替え後の画像データとを格納しておき、前述のグリフ番号・オフセット情報変換データ生成部にてグリフ番号・オフセット情報変換データを生成する。ただし、データユニット管理部２２０２０５の動作は、第５の実施の形態とは異なり、グリフ番号に対応してデータユニットサイズも変化していくように構成される。データユニット管理部２２０２０５の動作については、処理内容として後述する。
【０３６０】
（第８の実施の形態に係る画像符号化装置における処理）
本発明の第８の実施の形態に係る画像符号化装置は、第５の実施の形態に係る画像符号化装置の変形例であるため、図４９を参照して、第８の実施の形態に係る画像符号化装置の処理について述べる。第８の実施の形態における画像符号化装置で実行される画像符号化処理では、前述のグリフ並べ替え処理が追加されるほかは、大きな処理の流れはほぼ同等である。
【０３６１】
まず始めに、グリフ並べ替え部９１０は、グリフ並べ替え処理を実行して、文字識別情報・グリフ番号対応ルールメモリ１２０８と、画像データメモリ１２０２とに、それぞれ、並べ替え後の文字識別情報・グリフ番号対応ルールと、並べ替え後の画像データとを格納しておき、前述のグリフ番号・オフセット情報変換データ生成部にてグリフ番号・オフセット情報変換データを生成する。ただし、処理開始時に（たとえば処理ステップＳ１３０８０１の前に）、データユニットサイズ格納部２２０２０５１に、データユニットサイズＵＳＩＺＥとして「１」を格納する。また、データユニット管理部２２０２０５は、処理ステップＳ１３０８１１にて、処理済ブロック数ＢｌＮｕｍとデータユニットサイズＵＳＩＺＥとが等しいか否かを判定する。等しいと判断した場合には、（たとえばステップＳ１３０８１２の直前に）データユニットサイズＵＳＩＺＥに１を加算して更新する処理を追加する。すなわち、最初のユニットには、１つのグリフ（ブロック）が割り当てられるが、２つ目のユニットには、２つのグリフ（ブロック）が割り当てられ、同様に、３つ目のユニットには、３つのグリフ（ブロック）が割り当てられる。具体例については、後述する。
【０３６２】
（第８の実施の形態におけるグリフ番号とユニットインデックスの関係）
次に、第８の実施の形態における、グリフ番号とユニットインデックスの関係について、具体例を用いて説明する。
【０３６３】
図６３は、第８の実施の形態におけるグリフ番号とユニットインデックスの関係の一例を示す図である。
【０３６４】
グリフ番号とユニットインデックスの関係表６０は、概念を説明するために例示するものであり、具体的に関係表６０を作成するものではない。
【０３６５】
関係表６０において、列６０１は、画像データメモリ１２０２に格納される画像データ（並べ替え済み）に含まれる各グリフに、先頭０から昇順に付与されたグリフ番号６０１１〜６０２６である。
【０３６６】
列６０３は、列６０１で示されるグリフ番号を特定した場合に一意に算出されるユニットインデックス６０３１〜６０４６である。具体的には、たとえば、一つのグリフを構成する元データサイズ（加工分割画像データサイズ）を１１バイトとした場合、データブロックサイズ格納部２２０２０４１には、データブロックサイズＢＳＩＺＥとして「１１」を格納する。また、データユニットサイズ格納部２２０２０５１に格納されるデータユニットサイズＵＳＩＺＥは、前述の通り、処理開始時には「１」とし、以降、前述のデータユニットサイズ更新処理に従って、データユニットサイズＵＳＩＺＥが更新される。このとき、前述の第５の実施の形態に従ってグリフ番号・オフセット情報変換データを生成すると、グリフ番号６０１１（「０」）に対応する符号化データで構成されるユニットのインデックスは「０」となり、関係表６０では、ユニットインデックス６０３１で表わされる。また、グリフ番号６０１２（「１」）、グリフ番号６０１３（「２」）に対応する符号化データで構成されるユニットのインデックスは「１」となり、関係表６０では、ユニットインデックス６０３２、ユニットインデックス６０３３で表わされる。同様に、グリフ番号６０１４（「３」）、グリフ番号６０１５（「４」）、グリフ番号６０１６（「５」）に対応する符号化データで構成されるユニットのインデックスは「２」となり、関係表６０では、ユニットインデックス６０３４、ユニットインデックス６０３５、ユニットインデックス６０３６で表される。ただし、繰り返しの説明になるが、本実施の形態において関係表６０は具体的に生成されるものではない。関係表６０を例としたグリフ番号とユニットインデックスの関係については、後述の第９の実施の形態の説明において改めて説明する。
【０３６７】
（第８の実施の形態におけるユニットインデックスとオフセットの関係）
次に、本発明の第８の実施の形態に従う場合における、ユニットインデックスとオフセットの関係について、具体例を用いて説明する。
【０３６８】
図６４は、第８の実施の形態におけるユニットインデックスとオフセットの関係の一例を示す図である。
【０３６９】
関係表７０において、列７０１は、ユニットインデックス７０１１〜７０１３を示し、列７０２は、オフセット７０２１〜７０２３を示す。なお、ユニットインデックスとオフセットの関係表７０において、ユニットインデックス７０１は、概念を説明するために例示するものであり、具体的には、オフセットの先頭へのアドレス（オフセット７０２１（「０」）が格納されるメモリ位置のアドレス）と、オフセット７０２１〜７０２３（順番固定）とをアクセステーブルデータメモリ１２０７に格納すればよい。
【０３７０】
ユニットインデックス７０１１〜７０１３は、図６３の関係表６０で説明した、グリフ番号６０１１〜６０２６から一意に得られるユニットインデックス６０３１〜６０４６に相当する。すなわち、グリフ番号が定まれば、オフセットが一意に求まる。
【０３７１】
列７０２で示されるオフセット中の、オフセット７０２１（「０」）は、グリフ番号６０１１（「０」）に対応する図５１のブロック符号化データ２１にアクセスする際に、オフセットを「０」としてアクセスすればよいことを表わす。また、オフセット７０２２（「４３」）は、グリフ番号６０１２（「１」）に対応する図５１のブロック符号化データ２２、グリフ番号６０１３（「２」）に対応するブロック符号化データ２３にアクセスする際に、オフセットを「４３」としてアクセスすればよいことを表わす。ここで、オフセット値の単位はビットである。すなわち、オフセット「４３」とは、図５１の列２で示される符号化データにおいて、グリフ番号「１」に対応するブロック符号化データ２２の先頭ビット位置（サブブロック符号化データ２２０１の先頭ビット位置）にアクセスするためのオフセットである。別の表現をすれば、ブロック符号化データ２１に対応する符号化データのビット数の総和である。
【０３７２】
関係表７０を例としたユニットインデックスとオフセットの関係については、後述の第９の実施の形態の説明において改めて説明する。
【０３７３】
上記で説明したように、第８の実施の形態に係る画像符号化装置は、画像復号装置におけるグリフの入力頻度（参照頻度）によって、文字識別情報・グリフ番号対応ルールメモリ１２０８に格納される文字識別情報・グリフ番号対応ルールを並べ替えるとともに、画像データメモリ１２０２に格納される画像データを並べ替える。また、グリフ番号が大きくなるにつれてユニットサイズも大きくしてアクセステーブルを作成する。これにより、第５の実施の形態における効果と、復号の際の第６の実施の形態における効果に加え、復号の際に、後述の第９の実施の形態における効果を得られるようなアクセステーブルを作成することができる。
【０３７４】
［第９の実施の形態］
第９の実施の形態では、上記第８の実施の形態に係る画像符号化装置によって符号化されたデータと、文字識別情報・グリフ番号対応ルールとを用いて復号する画像復号装置について説明する。
【０３７５】
本発明の第９の実施の形態に係る画像復号装置は、第６の実施の形態の変形例であるため、図５４を参照して、第６の実施の形態との相違点について以降に述べる。
【０３７６】
第９の実施の形態に係る画像復号装置では、第６の実施の形態における画像復号装置と比較して、構成についてはほぼ同等である。ただし、ユニットインデックス算出部５３０００１、ユニット内ブロック位置算出部３３０４０１の各動作は、第６の実施の形態とは異なり、式（１）、式（２）に変えて別の数式に従って、それぞれ、ユニットインデックス、ユニット内ブロック位置を算出する。ユニットインデックス算出部５３０００１、ユニット内ブロック位置算出部３３０４０１の各動作については、処理内容として後述する。
【０３７７】
また、ユニット内ブロック位置管理部３３０４０２で、処理開始時に、コントローラ３３０１からの指示に従い、データユニットサイズＵＳＩＺＥとして、ユニットインデックス算出部５３０００１で算出したユニットインデックスＵｎＩｄｘに、１を加算した値を設定する。
【０３７８】
（第９の実施の形態に係る画像復号装置の処理内容）
次に、本発明の第９の実施の形態に係る画像復号装置の具体的な処理内容について説明する。
【０３７９】
本発明の第９の実施の形態に係る画像復号装置で実行される画像復号処理では、前述の第８の実施の形態に係る画像符号化装置を用いて生成された符号化データと、文字識別情報・グリフ番号対応ルールとを用いて復号することを前提とする。
【０３８０】
本発明の第９の実施の形態における画像復号装置で実行される画像復号処理は、前述の第６の実施の形態における画像復号装置で実行される画像復号処理の変形例であるため、図５５、図５６を参照して、第６の実施の形態との相違点について以降に述べる。
【０３８１】
図５５を参照して、第９の実施の形態におけるグリフ番号・オフセット情報変換処理は、第６の実施の形態におけるグリフ番号・オフセット情報変換処理と比較して、大きな処理の流れはほぼ同等である。ただし、ユニットインデックス算出処理ステップＳ３４０３０１については、ユニットインデックス算出部５３０００１で、入力されたグリフ番号ＧｌＮｕｍに基づいて、ユニットインデックスＵｎＩｄｘを算出する際に、式（１）に替えて、たとえば次の式（４）および式（５）を満たす整数を求めることで算出される。
【０３８２】
ＵｎＩｄｘ≧（−３＋ＳＱＲＴ（８×ＧｌＮｕｍ＋９））／２…式（４）
ＵｎＩｄｘ≦（−１＋ＳＱＲＴ（８×ＧｌＮｕｍ＋１））／２…式（５）
ここで、ＳＱＲＴ（Ａ）は、整数Ａの正の平方根を表す。また、式（４）および式（５）を満たす整数は、一意に一つだけ求まる。
【０３８３】
ここで、具体例として、図６３を参照して、グリフ番号「２」に対応するユニットインデックスＵｎＩｄｘ（２）を算出する場合、式（４）、式（５）に、ＧｌＮｕｍ＝２を代入して得られる、次の式（６）および式（７）を満たす整数を求めると、ＵｎＩｄｘ（２）として、「１」（ユニットインデックス６０３３に相当）を得る。
【０３８４】
ＵｎＩｄｘ（２）≧（−３＋ＳＱＲＴ（８×２＋９））／２…式（６）
ＵｎＩｄｘ（２）≦（−１＋ＳＱＲＴ（８×２＋１））／２…式（７）
同様に、グリフ番号「８」に対応するユニットインデックスＵｎＩｄｘ（８）を算出する場合、式（４）、式（５）に、ＧｌＮｕｍ＝８を代入して得られる、次の式（８）および式（９）を満たす整数を求めると、ＵｎＩｄｘ（８）として、「３」（ユニットインデックス６０３９に相当）を得る。
【０３８５】
ＵｎＩｄｘ（８）≧（−３＋ＳＱＲＴ（８×８＋９））／２…式（８）
ＵｎＩｄｘ（８）≦（−１＋ＳＱＲＴ（８×８＋１））／２…式（９）
また、オフセット取得処理ステップＳ３４０３０２の具体例を説明すると、図６４を参照して、ユニットインデックス「１」（ユニットインデックス７０１２に相当）に対応するオフセットを取得する場合、オフセット「４３」（オフセット７０２２に相当）を得る。
【０３８６】
次に、図５６を参照して、第９の実施の形態におけるエントロピー符号復号処理は、第６の実施の形態におけるエントロピー符号復号処理と比較して、大きな処理の流れはほぼ同等である。ただし、処理開始時に、コントローラ３３０１からの指示に従い、データユニットサイズＵＳＩＺＥとして、ユニットインデックス算出処理ステップＳ３４０３０１で算出したユニットインデックスＵｎＩｄｘに、１を加算した値を設定する。
【０３８７】
また、ユニット内ブロック位置算出処理ステップＳ３４０５０１については、ユニット内ブロック位置算出部３３０４０１で、入力されたグリフ番号ＧｌＮｕｍに基づいて、ユニット内ブロック位置ＢｌＩｄｘを算出する際に、式（２）に替えて、たとえば次の式（１０）に従って算出される。
【０３８８】
ＢｌＩｄｘ＝ＧｌＮｕｍ−ＵｎＩｄｘ×（ＵｎＩｄｘ＋１）／２…式（１０）
ここで、ＵｎＩｄｘは、ユニットインデックス算出処理ステップＳ３４０３０１で算出した、ユニットインデックスである。
【０３８９】
ここで、具体例を用いて、グリフ番号とユニット内ブロック位置の関係を説明する。
図６５は、第９の実施の形態におけるグリフ番号とユニット内ブロック位置の関係の一例を示す図である。
【０３９０】
グリフ番号とユニット内ブロック位置の関係表８０は、概念を説明するために例示するものであり、具体的に関係表８０を作成するものではない。
【０３９１】
図６５を参照して、関係表８０において、列８０１は、画像データメモリ１２０２に格納される画像データに含まれる各グリフに、先頭０から昇順に付与されたグリフ番号８０１１〜８０２６に相当する。
【０３９２】
列８０３は、列８０１で示されるグリフ番号を特定した場合に一意に算出されるユニット内ブロック位置８０３１〜８０４６である。具体的には、たとえば、グリフ番号８０１１（「０」）に対応する符号化データで構成されるブロックのユニット内ブロック位置は「０」となり、関係表８０では、ユニット内ブロック位置８０３１で表される。同様に、グリフ番号８０１２（「１」）に対応する符号化データで構成されるブロックのユニット内ブロック位置は「０」となり、関係表８０では、ユニット内ブロック位置８０３２で表される。このような列８０１で示されるグリフ番号８０１１〜８０２６と、列８０３で示されるユニット内ブロック位置８０３１〜８０４６の関係は、前述の式（９）によって一意に導かれる。従って、繰り返しの説明になるが、本実施の形態において関係表８０は具体的に生成しない。
【０３９３】
本実施の形態では、第６の実施の形態と同様に、ステップＳ３４０３０２で取得したオフセットに従って、符号化データの取得開始位置をオフセット（ジャンプ）することで、復号処理における処理量を低減することを可能とし、符号化データの末尾部分にアクセスするためにデータの先頭から全ての符号化データを順次復号することも不要となる。
【０３９４】
なお、前述の説明では、ステップＳ３４０５１１で、処理済ブロック数ＢｌＮｕｍがデータユニットサイズＵＳＩＺＥと等しくなることを判定して処理を終了しているため、出力対象となる復号データ（出力対象となるグリフに対応する復号加工分割画像データ）を出力した後も、処理済ブロック数ＢｌＮｕｍがデータユニットサイズＵＳＩＺＥになるまで、処理を継続することになる。たとえば、ユニット内ブロック位置ＢｌＩｄｘが０で、ユニットインデックスＵｎＩｄｘが７（ユニットサイズＵＳＩＺＥが８）のような場合、オフセットに従って取得開始位置から符号化データを取得して１ブロック分の復号処理が完了するまで順次復号データを出力すればよく、以降の７ブロック分の復号処理は冗長となる。
【０３９５】
このような課題を解決するため、第６の実施の形態において説明した変形例と同様に、たとえば次に示すように実施の形態を変形することも可能である。出力済フラグＯｕｔＦｌａｇをユニット内ブロック位置管理部３３０４０２に用意しておき、ステップＳ３４０５０２で処理済ブロック数ＢｌＮｕｍを初期化する際に、出力済フラグＯｕｔＦｌａｇも初期化して「０」を設定しておく。また、ステップＳ３４０５０６で処理済ブロック数ＢｌＮｕｍがユニット内ブロック位置ＢｌＩｄｘと等しい場合、すなわち、復号データが出力対象として認められる場合に、出力済フラグを１に設定する。そして、ステップＳ３４０５１１で、処理済ブロック数ＢｌＮｕｍがデータユニットサイズＵＳＩＺＥと等しくない場合に、ステップＳ３４０５０３に進む前に出力済フラグＯｕｔＦｌａｇが「１」であるか否かを判定し、ＯｕｔＦｌａｇが「１」である場合、エントロピー符号復号処理を終了する。またＯｕｔＦｌａｇが「０」である場合、ステップＳ３４０５０３に進む。このように、エントロピー符号復号処理を変形することにより、復号データ出力後の冗長な復号処理を回避することができる。
【０３９６】
また同様の効果を得るために、次のように実施の形態を変形することも可能である。出力済フラグＯｕｔＦｌａｇをユニット内ブロック位置管理部３３０４０２に用意しておき、ステップＳ３４０５０２で処理済ブロック数ＢｌＮｕｍを初期化する際に、出力済フラグＯｕｔＦｌａｇも初期化して「０」を設定しておく。また、ステップＳ３４０５０６で処理済ブロック数ＢｌＮｕｍがユニット内ブロック位置ＢｌＩｄｘと等しい場合、すなわち、復号データが出力対象として認められる場合に、出力済フラグを１に設定する。そして、ステップＳ３４０５１１で、「処理済ブロック数ＢｌＮｕｍとデータユニットサイズＵＳＩＺＥが等しいか否かを判定する」のに替えて、「出力済フラグＯｕｔＦｌａｇが１であるか否かを判定する」ようにする。そして、出力済フラグＯｕｔＦｌａｇが１である場合、エントロピー符号復号処理を終了する。また出力済フラグＯｕｔＦｌａｇが１でない場合、ステップＳ３４０５０３に進む。
【０３９７】
また、第９の実施の形態では、第８の実施の形態に従って、参照頻度の大きいグリフを若いグリフ番号としておくことにより、より多くの回数復号される符号化データ（グリフに対応）は、ユニットインデックスＵｎＩｄｘ（数式（５）および数式（６）より算出）が小さな値となるため、データユニットサイズＵＳＩＺＥ（＝ＵｎＩｄｘ＋１）、すなわちユニット内ブロック位置ＢｌＩｄｘの最大値も小さな値となり、統計的観点から処理時間を低減することが可能となる。
【０３９８】
また、前述の第５、第７、第８の実施の形態では、ハフマン符号長算出部２２０２０１ならびにハフマン符号長算出処理ステップＳ１３０８０４で、加工分割文字画像データが入力されて、符号長を算出する場合について例示したが、エントロピー符号化処理ステップＳ１３０８で予め作成された符号化データを入力として、入力された符号化データについて、ハフマン辞書を参照して符号長を算出するようにしてもよい。
【０３９９】
また、前述の第７の実施の形態では、式（３）の右辺において１．２を固定的に乗ずる例を挙げて説明したが、上記「１．２」の値はオーバヘッド係数Ｗｇｔを表し、オーバヘッド係数Ｗｇｔの値は、「１．２」に限定するものではない。すなわち、オーバヘッド係数Ｗｇｔは、オーバヘッドが存在しない場合の圧縮率に比べて、オーバヘッドが加わることによりどの程度まで圧縮率の低下を許容するかについて限定するための係数であり、１．０以下の値をとることは現時的に不可能であり（必ずオーバヘッドが０よりも大きいサイズであることを前提）、１．０よりも大きな値の中から目的に応じてシステム設計者が決定することとなる。ここで、２．０よりも大きいな値を用いると、オーバヘッドが圧縮データと同サイズ以上となるため、オーバヘッド係数Ｗｇｔの値は、１．０よりも大きく、２．０よりも小さい値であることが好ましい。
【０４００】
さらに、上述の画像符号化処理および／または画像復号処理をコンピュータに実行させるプログラムを提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、ＣＤ−ＲＯＭ、ＲＯＭ、ＲＡＭおよびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【０４０１】
なお、本発明にかかるプログラムは、コンピュータのオペレーションシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【０４０２】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【０４０３】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０４０４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【０４０５】
本発明は、たとえば、パーソナルコンピュータのようにテキスト処理機能を有する装置に適用することができる。また、本発明は、たとえば、携帯電話やＰＤＡ（Personal Digital Assistants）や携帯ゲーム装置や表示装置を備えた家電のように、テキスト処理機能を有する携帯装置などに適用することができる。
【図面の簡単な説明】
【０４０６】
【図１】携帯電話１のハードウェア構成の具体例を示す図である。
【図２】第１の実施の形態にかかる画像符号化装置の機能構成の具体例を示すブロック図である。
【図３】画像処理部１２０９の構成の具体例を示すブロック図である。
【図４】アクセステーブルデータ生成部１２０６の構成の具体例を示すブロック図である。
【図５】文字画像データの具体例を表わす図である。
【図６】画像データメモリ１２０２に格納される画像データの具体例を示す図である。
【図７】文字識別情報・グリフ番号対応ルールの具体例を表わす図である。
【図８】アクセステーブルデータの具体例を表わす図である。
【図９】第１の実施の形態にかかる符号化処理を示すフローチャートである。
【図１０】ステップＳ１３０３における画像データの分割処理を示すフローチャートである。
【図１１】文字画像データの具体例を表わす図である。
【図１２】分割文字画像データの具体例を表わす図である。
【図１３】分割文字画像データの具体例を表わす図である。
【図１４】文字画像データの具体例を表わす図である。
【図１５】文字画像データの配置を説明する図である。
【図１６】ステップＳ１３０４における排他的論理和の算出処理を示すフローチャートである。
【図１７】加工分割文字画像データの具体例を表わす図である。
【図１８】ステップＳ１３０８におけるアクセステーブルの生成処理を示すフローチャートである。
【図１９】文字識別情報・グリフ番号変換データの具体例を表わす図である。
【図２０】文字コードと内部文字コードとの対応の具体例を表わす図である。
【図２１】文字コードと書体識別情報とから内部文字コードに変換する技術を説明する図である。
【図２２】ステータステーブルの具体例を表わす図である。
【図２３】第１補助テーブルの具体例を表わす図である。
【図２４】ステータステーブルの具体例を表わす図である。
【図２５】第２補助テーブルの具体例を表わす図である。
【図２６】文字画像データの特徴を説明する図である。
【図２７】文字画像データの特徴を説明する図である。
【図２８】文字画像データの排他的論理和の算出結果を説明する図である。
【図２９】文字画像データの排他的論理和の算出結果を説明する図である。
【図３０】第２の実施の形態にかかる画像符号化装置の機能構成の具体例を示すブロック図である。
【図３１】画像処理部１２０９の構成の具体例を示すブロック図である。
【図３２】第２の実施の形態にかかる符号化処理を示すフローチャートである。
【図３３】ステップＳ２５０３における画像データの分割処理を示すフローチャートである。
【図３４】ステップＳ２５０４における排他的論理和の算出処理を示すフローチャートである。
【図３５】回転操作を説明する図である。
【図３６】文字画像データの排他的論理和の算出結果を説明する図である。
【図３７】テキスト処理装置のハードウェア構成の概略図である。
【図３８】テキスト処理装置での画像復号処理を示すフローチャートである。
【図３９】第３の実施の形態にかかる画像復号装置の機能構成の具体例を示すブロック図である。
【図４０】画像処理部３３０７の構成の具体例を示すブロック図である。
【図４１】アクセステーブルデータ変換部３３０５の構成の具体例を示すブロック図である。
【図４２】ステップＳ４７０２での、画像復号装置で実行される復号処理を示すフローチャートである。
【図４３】ステップＳ３４０２における、グリフ番号への変換処理を示すフローチャートである。
【図４４】ステップＳ３４０８における排他的論理和の算出処理を示すフローチャートである。
【図４５】第３の実施の形態での、ステップＳ３４０９における、分割文字画像データの統合処理を示すフローチャートである。
【図４６】第４の実施の形態にかかる画像復号装置の機能構成の具体例を示すブロック図である。
【図４７】第４の実施の形態での、ステップＳ３４０９における、分割文字画像データの統合処理を示すフローチャートである。
【図４８】第５の実施の形態に係るグリフ番号・オフセット情報変換データ生成部の詳細な構成を示すブロック図である。
【図４９】第５の実施の形態に係るグリフ番号・オフセット情報変換データ生成部で実行されるグリフ番号・オフセット情報変換データ生成処理を示すフローチャートである。
【図５０】ハフマン辞書の一例を示す図である。
【図５１】ハフマン符号化の一例を示す図である。
【図５２】グリフ番号とユニットインデックスの関係の一例を示す図である。
【図５３】ユニットインデックスとオフセットとの関係の一例を示す図である。
【図５４】第６の実施の形態に係る画像復号装置の構成を示すブロック図である。
【図５５】第６の実施の形態に係る画像復号装置で実行されるグリフ番号・オフセット情報変換処理のフローチャートである。
【図５６】第６の実施の形態に係る画像復号装置で実行されるエントロピー符号復号処理のフローチャートである。
【図５７】グリフ番号とユニット内ブロック位置の関係の一例を示す図である。
【図５８】データユニットサイズとテーブルデータ容量、処理時間との関係の一例を示す概念図である。
【図５９】第７の実施の形態に係るグリフ番号・オフセット情報変換データ生成部の詳細な構成を示すブロック図である。
【図６０】第７の実施の形態に係るグリフ番号・オフセット情報変換データ生成部で実行されるグリフ番号・オフセット情報変換データ生成処理を示すフローチャートである。
【図６１】第８の実施の形態に係る画像符号化装置におけるグリフ並べ替え部の構成を示すブロック図である。
【図６２】第８の実施の形態に係る画像符号化装置におけるグリフ並べ替え部で実行されるグリフ並べ替え処理のフローチャートである。
【図６３】第８の実施の形態におけるグリフ番号とユニットインデックスの関係の一例を示す図である。
【図６４】第８の実施の形態におけるユニットインデックスとオフセットの関係の一例を示す図である。
【図６５】第９の実施の形態におけるグリフ番号とユニット内ブロック位置の関係の一例を示す図である。
【図６６】ＰＣ３のハードウェア構成の具体例を示す図である。
【図６７】加工分割文字画像データの追加を説明する図である。
【図６８】加工分割文字画像データの追加を説明する図である。
【図６９】加工分割文字画像データの追加を説明する図である。
【図７０】加工分割文字画像データの追加を説明する図である。
【符号の説明】
【０４０７】
１  携帯電話、２  記録媒体、３  ＰＣ、１０１  ＣＰＵ、１０３  ＲＯＭ、１０５  ＲＡＭ、１０７  ハードディスクドライブ、１０９  読取部、１１０  通信部、１２０  制御部、１３０  記憶部、１４０  入出力部、１４２  キーコード入力デバイス、１４４  ディスプレイ、１４６  マイクロフォン、１４８  スピーカ、１４９  カメラ、９０１  テキスト解析部、９０２  頻度算出部、９０３  テーブル並べ替え部、９０４  画像データ並べ替え部、９１０  グリフ並べ替え部、１２０１  コントローラ、１２０２  画像データメモリ、１２０３  加工分割画像データメモリ、１２０４  エントロピー符号化部、１２０５  符号化データメモリ、１２０６  アクセステーブルデータ生成部、１２０７  アクセステーブルデータメモリ、１２０８  文字識別情報・グリフ番号対応ルールメモリ、１２０９  画像処理部、１２１０  データバス、２２０１  文字識別情報・グリフ番号変換データ生成部、２２０２  グリフ番号・オフセット情報変換データ生成部、２２０３  データバス、２４１０  フラグデータメモリ、２７０１  画像演算部、２７０２  第１文字画像データメモリ、２７０３  第２文字画像データメモリ、２７０４  第１分割文字画像データメモリ、２７０５  第２分割文字画像データメモリ、２７０６  第１加工分割文字画像データメモリ、２７０７  第２加工分割文字画像データメモリ、２７０８  容量予測部、２７０９  データバス、３３０１  コントローラ、３３０２  符号化データメモリ、３３０３  エントロピー符号復号部、３３０４  加工分割文字画像データメモリ、３３０５  アクセステーブルデータ変換部、３３０６  アクセステーブルデータメモリ、３３０７  画像処理部、３３０８  文字画像データメモリ、３３０９  データバス、３６１０  フラグデータメモリ、３８０１  画像演算部、３８０２  文字画像データメモリ、３８０３  分割文字画像データメモリ、３８０４  加工分割文字画像データメモリ、３８０５  データバス、４６００  指示装置、４６０１  コントローラ、４６０２  テキストデータメモリ、４６０３  画像復号装置、４６０４  表示装置、４６０６  記憶装置、４６０５  データバス、４８０１  画像演算部、４８０２  文字画像データメモリ、４８０３  分割文字画像データメモリ、５０００  グリフ番号・オフセット情報変換データ生成部、５００２  グリフ番号・オフセット情報変換データ生成部、５１０１  文字識別情報・グリフ番号変換部、５１０２  グリフ番号・オフセット情報変換部、５１０３  データバス、５３００  グリフ番号・オフセット情報変換部、１２０５０１  符号データ格納部、１２０５０２  ハフマン辞書格納部、２２０２０１，２２０２２１  ハフマン符号長算出部、２２０２０２，２２０２２２  アクセスポインタ更新部、２２０２０３  アクセスポインタ出力部、２２０２０４  データブロック管理部、２２０２２６  符号データサイズ算出部、２２０２２７  データユニットサイズ設定部、２２０２２８  変換情報データサイズ算出部、２２０２０５  データユニット管理部、３３０４０１  ユニット内ブロック位置算出部、３３０４０２  ユニット内ブロック位置管理部、３３０４０３  符号データ取得部、３３０４０４  ハフマン復号部、３３０４０５  復号データ出力部、���３０５０１  符号データ格納部、３３０５０２  ハフマン辞書格納部、３３０７０１  グリフ番号・オフセット情報変換データ格納部、５３０００１  ユニットインデックス算出部、５３０００２  オフセット取得部、２２０２０４１  データブロックサイズ格納部、２２０２０５１  データユニットサイズ格納部。
【図１】
2008092126.tif 000003
【図２】
2008092126.tif 000004
【図３】
2008092126.tif 000005
【図４】
2008092126.tif 000006
【図５】
2008092126.tif 000007
【図６】
2008092126.tif 000008
【図７】
2008092126.tif 000009
【図８】
2008092126.tif 000010
【図９】
2008092126.tif 000011
【図１０】
2008092126.tif 000012
【図１１】
2008092126.tif 000013
【図１２】
2008092126.tif 000014
【図１３】
2008092126.tif 000015
【図１４】
2008092126.tif 000016
【図１５】
2008092126.tif 000017
【図１６】
2008092126.tif 000018
【図１７】
2008092126.tif 000019
【図１８】
2008092126.tif 000020
【図１９】
2008092126.tif 000021
【図２０】
2008092126.tif 000022
【図２１】
2008092126.tif 000023
【図２２】
2008092126.tif 000024
【図２３】
2008092126.tif 000025
【図２４】
2008092126.tif 000026
【図２５】
2008092126.tif 000027
【図２６】
2008092126.tif 000028
【図２７】
2008092126.tif 000029
【図２８】
2008092126.tif 000030
【図２９】
2008092126.tif 000031
【図３０】
2008092126.tif 000032
【図３１】
2008092126.tif 000033
【図３２】
2008092126.tif 000034
【図３３】
2008092126.tif 000035
【図３４】
2008092126.tif 000036
【図３５】
2008092126.tif 000037
【図３６】
2008092126.tif 000038
【図３７】
2008092126.tif 000039
【図３８】
2008092126.tif 000040
【図３９】
2008092126.tif 000041
【図４０】
2008092126.tif 000042
【図４１】
2008092126.tif 000043
【図４２】
2008092126.tif 000044
【図４３】
2008092126.tif 000045
【図４４】
2008092126.tif 000046
【図４５】
2008092126.tif 000047
【図４６】
2008092126.tif 000048
【図４７】
2008092126.tif 000049
【図４８】
2008092126.tif 000050
【図４９】
2008092126.tif 000051
【図５０】
2008092126.tif 000052
【図５１】
2008092126.tif 000053
【図５２】
2008092126.tif 000054
【図５３】
2008092126.tif 000055
【図５４】
2008092126.tif 000056
【図５５】
2008092126.tif 000057
【図５６】
2008092126.tif 000058
【図５７】
2008092126.tif 000059
【図５８】
2008092126.tif 000060
【図５９】
2008092126.tif 000061
【図６０】
2008092126.tif 000062
【図６１】
2008092126.tif 000063
【図６２】
2008092126.tif 000064
【図６３】
2008092126.tif 000065
【図６４】
2008092126.tif 000066
【図６５】
2008092126.tif 000067
【図６６】
2008092126.tif 000068
【図６７】
2008092126.tif 000069
【図６８】
2008092126.tif 000070
【図６９】
2008092126.tif 000071
【図７０】
2008092126.tif 000072