JP6511752B2 - 符号化装置、符号化方法、復号装置、復号方法、及び、プログラム - Google Patents

符号化装置、符号化方法、復号装置、復号方法、及び、プログラム Download PDF

Info

Publication number
JP6511752B2
JP6511752B2 JP2014191516A JP2014191516A JP6511752B2 JP 6511752 B2 JP6511752 B2 JP 6511752B2 JP 2014191516 A JP2014191516 A JP 2014191516A JP 2014191516 A JP2014191516 A JP 2014191516A JP 6511752 B2 JP6511752 B2 JP 6511752B2
Authority
JP
Japan
Prior art keywords
identification number
bit string
character
data
binary data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014191516A
Other languages
English (en)
Other versions
JP2016063475A (ja
Inventor
井手 博康
博康 井手
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2014191516A priority Critical patent/JP6511752B2/ja
Publication of JP2016063475A publication Critical patent/JP2016063475A/ja
Application granted granted Critical
Publication of JP6511752B2 publication Critical patent/JP6511752B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、符号化装置、符号化方法、復号装置、復号方法、及び、プログラムに関する。
データ量を削減するために、符号化対象のデータを符号化する(圧縮する)符号化方法、及び、復号対象のデータを符号化前の元データに復号する復号方法が知られている。
例えば、非特許文献1は、符号化対象のデータに繰り返し出現する文字列について、2回目以降に出現する文字列を、最初に出現する文字列のデータ内における位置及び文字列の長さを示すデータ(以下、頻出文字列メタデータと言う。)に変換して符号化対象のデータを符号化するLZ符号化方法を開示している。また、非特許文献1は、復号対象のデータ(LZ符号化方法で符号化されたデータ)に含まれる複数の頻出文字列メタデータのそれぞれを、符号化前の元データにおいて繰り返し出現する文字列のうち最初に出現する文字列に置き換えて復号対象のデータを復号する復号方法を開示している。
岡野原大輔著 「高速文字列解析の世界」岩波出版、2012年
しかしながら、従来の符号化方法・復号方法では、部分的な復号が必要とされるデータを符号化・復号の対象とした場合、符号化効率が低い。例えば、辞書データの復号では、ユーザが検索対象とした見出し語単位での復号が必要とされるが、このような部分的な復号を従来の符号化方法・復号方法が実現しようとすると、辞書データを見出し語単位で符号化しなければならない。このことを、上述のLZ符号化方法を例にとって具体的に説明すると、辞書データ全体がLZ符号化方法で符号化されている場合、符号化された辞書データの一部分には、前述の頻出文字列メタデータの置き換えに必要となる、符号化前の元データに繰り返し出現する文字列のうち最初に出現する文字列が含まれない可能性が高い。そのため、辞書データ全体がLZ符号化方法で符号化されている場合、辞書データの部分的な復号はほぼ不可能である。従って、見出し語単位での辞書データの復号には、見出し語単位での符号化が必要となる。また、他の符号化方法・復号方法についても同様の理由から、復号対象のデータの部分的な復号には、符号化前の元データについて部分的な符号化が必要となる。そして、このような部分的な符号化は、符号化効率を著しく低下させる。
本発明は、以上のような課題を解決するためのものであり、符号化効率が高い方法を用いて符号化対象のデータを部分的に復号可能なデータに符号化する符号化装置、符号化方法、符号化効率が高い方法を用いて符号化されたデータを部分的に復号する復号装置、復号方法、及び、プログラムを提供することを目的とする。
上記目的を達成するために、本発明の第1の観点に係る符号化装置は、
符号化対象のデータに含まれる文字と、該文字を識別する文字識別番号と、を関連付けて記憶する文字識別番号記憶部と、
前記文字識別番号記憶部を参照して、前記符号化対象のデータに含まれる文字を、該文字に関連付けられた文字識別番号に変換する変換部と、
前記変換部が変換した文字識別番号をバイナリデータに符号化する符号化部と、
前記符号化部が符号化した文字識別番号のバイナリデータに出現する同一のビット列ごとに、該ビット列を識別するビット列識別番号を関連付けてビット列識別番号記憶部に記憶するビット列識別番号関連付部と、
前記ビット列識別番号記憶部を参照して、前記文字識別番号のバイナリデータに出現する同一のビット列を、該ビット列に関連付けられたビット列識別番号に変換するビット列識別番号変換部と、
前記ビット列識別番号変換部が変換したビット列識別番号に、復号時に前記ビット列識別番号記憶部を参照することを示す参照フラグを関連付けて、該ビット列識別番号をバイナリデータに符号化する参照フラグ付き符号化部と、
を備え
前記文字識別番号は、前記符号化対象のデータにおいて出現頻度の高い文字に関連付けられたものほど小さく、
前記符号化部は、前記文字識別番号が小さいほど該文字識別番号を符号化して得られるバイナリデータのデータ量が小さい符号化方法を用いて、前記文字識別番号をバイナリデータに符号化する
また、上記目的を達成するために、本発明の他の観点に係る符号化装置は、
符号化対象のデータに含まれる文字と、該文字を識別する文字識別番号と、を関連付けて記憶する文字識別番号記憶部と、
前記文字識別番号記憶部を参照して、前記符号化対象のデータに含まれる文字を、該文字に関連付けられた文字識別番号に変換する変換部と、
前記変換部が変換した文字識別番号をバイナリデータに符号化する符号化部と、
前記符号化部が符号化した文字識別番号のバイナリデータに出現する同一のビット列ごとに、該ビット列を識別するビット列識別番号を関連付けてビット列識別番号記憶部に記憶するビット列識別番号関連付部と、
前記ビット列識別番号記憶部を参照して、前記文字識別番号のバイナリデータに出現する同一のビット列を、該ビット列に関連付けられたビット列識別番号に変換するビット列識別番号変換部と、
前記ビット列識別番号変換部が変換したビット列識別番号に、復号時に前記ビット列識別番号記憶部を参照することを示す参照フラグを関連付けて、該ビット列識別番号をバイナリデータに符号化する参照フラグ付き符号化部と、
前記文字識別番号のバイナリデータに出現するビット列のうち前記ビット列識別番号が関連付けられていないビット列については、該ビット列の先頭から前記ビット列識別番号が関連付けられたビット列が出現するまでのビットの桁数に、復号時に前記ビット列識別番号記憶部を参照しないことを示す非参照フラグを関連付けて、該ビットの桁数をバイナリデータに符号化する非参照フラグ付き符号化部と、
を備える。
また、上記目的を達成するために、本発明の他の観点に係る符号化装置は、
符号化対象のデータに含まれる文字と、該文字を識別する文字識別番号と、を関連付けて記憶する文字識別番号記憶部と、
前記文字識別番号記憶部を参照して、前記符号化対象のデータに含まれる文字を、該文字に関連付けられた文字識別番号に変換する変換部と、
前記変換部が変換した文字識別番号をバイナリデータに符号化する符号化部と、
前記符号化部が符号化した文字識別番号のバイナリデータに出現する同一のビット列ごとに、該ビット列を識別するビット列識別番号を関連付けてビット列識別番号記憶部に記憶するビット列識別番号関連付部と、
前記ビット列識別番号記憶部を参照して、前記文字識別番号のバイナリデータに出現する同一のビット列を、該ビット列に関連付けられたビット列識別番号に変換するビット列識別番号変換部と、
前記ビット列識別番号変換部が変換したビット列識別番号に、復号時に前記ビット列識別番号記憶部を参照することを示す参照フラグを関連付けて、該ビット列識別番号をバイナリデータに符号化する参照フラグ付き符号化部と、
を備え、
前記ビット列識別番号記憶部が記憶する同一のビット列の桁数は、32桁である。
上記目的を達成するために、本発明の第2の観点に係る復号装置は、
符号化対象のデータに含まれる各文字を識別する各文字識別番号のバイナリデータと、前記各文字識別番号のバイナリデータに出現する同一のビット列を識別するビット列識別番号のバイナリデータと、で構成された圧縮データを記憶する圧縮データ記憶部と、
前記符号化対象のデータに含まれる文字と、該文字を識別する前記文字識別番号と、を関連付けて記憶する文字識別番号記憶部と、
前記各文字識別番号のバイナリデータに出現する前記同一のビット列ごとに、該ビット列を識別する前記ビット列識別番号を関連付けて記憶するビット列識別番号記憶部と、
復号対象のデータを特定するための条件を入力する入力部と、
前記圧縮データ記憶部が記憶する圧縮データのうち前記条件を満たすデータを復号対象のデータとして特定し、特定した復号対象のデータを構成する前記文字識別番号のバイナリデータと前記ビット列識別番号のバイナリデータとのうち、前記ビット列識別番号のバイナリデータを前記ビット列識別番号に復号するビット列識別番号復号部と、
前記ビット列識別番号記憶部を参照して、前記ビット列識別番号復号部が復号した前記ビット列識別番号を、該ビット列識別番号に関連付けられたビット列に変換するビット列識別番号変換部と、
前記復号対象のデータを構成する前記文字識別番号のバイナリデータと前記ビット列識別番号変換部が変換したビット列とを前記文字識別番号に復号する復号部と、
前記文字識別番号記憶部を参照して、前記復号部が復号した前記文字識別番号を、該文字識別番号に関連付けられた文字に変換する変換部と、
を備える。
本発明によれば、符号化効率が高い方法を用いて符号化対象のデータを部分的に復号可能なデータに符号化することができる。また、符号化効率が高い方法を用いて符号化されたデータを部分的に復号することができる。
本発明の実施形態に係る符号化装置の物理構成を示す図である。 本発明の実施形態に係る符号化装置の機能構成を示す図である。 本発明の実施形態に係る符号化処理の流れを示すフローチャートである。 辞書データ(符号化対象のデータ)を示す図である。 各文字の辞書データにおける出現頻度を示す図である。 文字と文字識別番号との関連付けを示す図である。 最終符号化前バイナリデータを示す図である。 各ビット列の最終符号化前バイナリデータにおける出現頻度を示す図である。 ビット列とビット列識別番号との関連付けを示す図である。 本発明の実施形態に係る復号装置の物理構成を示す図である。 本発明の実施形態に係る復号装置の機能構成を示す図である。 本発明の実施形態に係る復号処理の流れを示すフローチャートである。
以下、本発明の実施形態について、図面を参照して説明する。
従来の符号化方法・復号方法によれば、データを部分的に復号したい場合は、符号化前の元データを部分的に符号化しておかなければならない。従って、符号化に手間がかかり、符号化効率は低い。この点に関して、本願発明に係る符号化装置100、復号装置200は、符号化前の元データをまとめて符号化してしまっても部分的な復号を可能とする。以下、このような符号化装置100、復号装置200の物理構成及び機能構成を説明する。
本実施形態に係る符号化装置100は、物理的には図1に示すように構成される。即ち、符号化装置100は、ROM(Read Only Memory)10と、RAM(Random Access Memory)11と、外部記憶装置12と、入力装置13と、表示装置14と、CPU(Central Processing Unit)15と、を備える。
ROM10は、各種初期設定、ハードウェアの検査、プログラムのロード等を行うための初期プログラムを記憶する。RAM11は、CPU15が実行する各種ソフトウェアプログラム、これらのソフトウェアプログラムの実行に必要なデータ等を一時的に記憶する。
外部記憶装置12は、例えば、ハードディスクであって、各種ソフトウェアプログラム、データ等を記憶する。これらソフトウェアプログラムの中には、アプリケーションソフトウェアプログラム、OS(Operating System)のような基本ソフトウェアプログラム等が含まれている。
入力装置13は、キーボード、マウス、トラックパッド等を備え、ユーザからの入力を受け付ける。入力装置13は、キーボード、マウス、トラックパッド等からの入力に基づいて信号を生成し、CPU15に供給する。
表示装置14は、液晶ディスプレイ等の画面を備え、CPU15から供給されたテキストデータや画像データを表示する。
CPU15は、外部記憶装置12が記憶するソフトウェアプログラムをRAM11に読み出して、そのソフトウェアプログラムを実行制御することにより、以下の機能構成を実現する。
符号化装置100は、機能的には図2に示すように構成される。即ち、符号化装置100は、符号化候補データ記憶部101と、表示部102と、入力部103と、文字出現頻度取得部104と、文字識別番号関連付部105と、文字識別番号記憶部106と、変換部107と、符号化部108と、開始位置記憶部109と、ビット列出現頻度取得部110と、ビット列識別番号関連付部111と、ビット列識別番号記憶部112と、ビット列識別番号変換部113と、参照フラグ付き符号化部114と、非参照フラグ付き符号化部115と、圧縮データ記憶部116と、を備える。符号化候補データ記憶部101と、文字識別番号記憶部106と、開始位置記憶部109と、ビット列識別番号記憶部112と、圧縮データ記憶部116と、は図1に示す外部記憶装置12に構築されている。
符号化候補データ記憶部101は、複数の符号化候補のデータを記憶する。符号化候補のデータは、辞書データ等のテキストデータである。
表示部102は、符号化候補のデータを記録したファイルの名称(ファイル名)を表示装置14に表示する。ユーザは、表示装置14に表示されたファイル名を参照して、符号化候補のデータのいずれを符号化するか指定する。
入力部103は、入力装置13が生成した信号を受け付ける。この信号は、ユーザが入力装置13を介して指定したファイル名を示す。入力部103は、入力装置13から受け付けた信号に基づいて、符号化対象のデータを特定する。そして、符号化対象のデータを符号化する旨の指示を文字出現頻度取得部104に入力する。
文字出現頻度取得部104は、入力部103から入力された指示に基づいて、符号化候補データ記憶部101が記憶する符号化候補のデータの中から符号化対象のデータを取得する。
文字出現頻度取得部104は、符号化対象のデータに含まれる文字ごとに、符号化対象のデータにおける出現頻度を取得する。例えば、符号化対象のデータが図4に示す辞書データ1の場合、各文字の辞書データ1における出現頻度は図5のようになる。
なお、出現頻度の取得は、符号化対象のデータに含まれる全ての文字を対象に行われる。
文字識別番号関連付部105は、符号化対象のデータに含まれる文字ごとに、文字を識別する文字識別番号を関連付けて文字識別番号記憶部106に記憶する。このとき、文字識別番号関連付部105は、符号化対象のデータにおいて出現頻度が高い文字から順に、値が小さい文字識別番号を関連付ける。例えば、符号化対象のデータが図4に示す辞書データ1の場合、図6に示すように、出現頻度が1番目、2番目、3番目・・・に高い文字「t」、「h」、「e」・・・に、それぞれ文字識別番号0、1、2・・・を関連付ける。
以下、出現頻度に基づいて文字に文字識別番号を関連付ける理由と、出現頻度が高い文字に値が小さい文字識別番号を関連付ける理由を説明する。
テキストの圧縮では文字コードの体系が圧縮率低下の原因となることがある。特に、UTF−8を採用すると、多言語のテキストを圧縮対象とするため、言語によってはコード長が冗長になり、圧縮率が低下する。そこで、本願発明は、文字を文字コードに符号化するのではなく、文字に文字識別番号を関連付け、文字を文字識別番号のバイナリデータに符号化する。これで圧縮率は文字コードの体系に影響を受けずにすむ。また、頻出文字をコード長が長いバイナリデータに符号化すると圧縮データのサイズが大きくなるので、本願発明はそうならないよう工夫をしている。具体的には、上述したように頻出文字に値が小さい文字識別番号を関連付ける。そして、デルタ符号化方法、Variable Byte Code符号化方法、ハフマン符号化方法といった値が小さいほどコード長が短いバイナリデータに符号化できる符号化方法を用いて、頻出文字をコード長が短いバイナリデータに符号化する。これにより、文字コードに符号化した場合に比べて圧縮データのサイズは大幅に小さくなる。
文字識別番号記憶部106は、図6に示すように、符号化対象のデータに含まれる文字と、文字識別番号と、を関連付けて記憶する。
変換部107は、文字識別番号記憶部106を参照して、符号化対象のデータに含まれる文字を、文字に関連付けられた文字識別番号に変換する。
符号化部108は、変換部107が変換した文字識別番号をバイナリデータに符号化する。なお、本明細書では符号化部108が符号化したバイナリデータを最終符号化前バイナリデータと言う。図7は、図4に示す辞書データ1が変換部107により符号化された場合の最終符号化前バイナリデータ2を示す。なお、最終符号化前バイナリデータ2は実際には0又は1を表すビットの集合である。しかし、説明の都合上、8ビットごとに16進数表記していることに留意されたい。例えば、図7に示すビット列「12A5B8CA」は、「00010010」、「10100101」、「10111000」、「11001010」を、それぞれ「12」、「A5」、「B8」、「CA」というように16進数表記したものである
開始位置記憶部109は、符号化対象のデータに含まれる見出し語の開始位置(本明細書において圧縮境界とも言う。圧縮データを復号する場合の開始地点となる位置を示す。)を記憶する。
ビット列出現頻度取得部110は、最終符号化前バイナリデータに含まれる同一のビット列ごとに、最終符号化前バイナリデータにおける出現頻度を取得する。例えば、図7に示す最終符号化前バイナリデータ2においては、各ビット列の出現頻度は図8のようになる。ただし、上述した圧縮境界を跨ぐビット列の出現数はビット列の出現頻度に含めない。
なお、上記ビット列の桁数は符号化方法にもよるが自然言語であれば32桁程度が適当である。そこで、本実施形態では、上記ビット列の桁数は32桁とする。ただし、ビット列の桁数は32桁に限定されず任意の桁数で構わない。
ビット列識別番号関連付部111は、最終符号化前バイナリデータに出現する同一のビット列ごとに、ビット列を識別するビット列識別番号を関連付けてビット列識別番号記憶部112に記憶する。このとき、ビット列識別番号関連付部111は、出現頻度が1から5番目に高いビット列にビット列識別番号を関連付ける。また、出現頻度が高いビット列から順に、値が小さいビット列識別番号を関連付ける。例えば、図7に示す最終符号化前バイナリデータ2であれば、図9に示すように、出現頻度が1番目、2番目、3番目、4番目、5番目に高いビット列「12A5B8CA」、ビット列「DF43A68C」、ビット列「385C65F9」、ビット列「935AD6CD」、ビット列「B58CEEA5」に、それぞれビット列識別番号0、1、2、3、4を関連付ける。
ビット列識別番号記憶部112は、図9に示すように、最終符号化前バイナリデータに出現する同一のビット列ごとに、ビット列を識別するビット列識別番号を関連付けて記憶する。
ビット列識別番号変換部113は、ビット列識別番号記憶部112を参照して、最終符号化前バイナリデータに出現する同一のビット列を、ビット列に関連付けられたビット列識別番号に変換する。ただし、ビット列識別番号変換部113は、ビット列が上述した圧縮境界を跨ぐ場合は、ビット列をビット列識別番号に変換しない。これにより、見出し語単位で復号可能なように符号化されたデータ(圧縮データ)を生成することができる。
参照フラグ付き符号化部114は、デルタ符号化方法、Variable Byte Code符号化方法、ハフマン符号化方法といった符号化方法を用いて、ビット列識別番号変換部113が変換したビット列識別番号をバイナリデータに符号化する。そして、ビット列識別番号のバイナリデータに参照フラグ(復号時にビット列識別番号記憶部112を参照することを示すフラグ)を関連付ける。
このように、頻出するビット列をコード長の短いビット列識別番号のバイナリデータに符号化することで、符号化されたデータ(圧縮データ)のサイズを小さくすることができる。
非参照フラグ付き符号化部115は、最終符号化前バイナリデータに出現するビット列のうちビット列識別番号が関連付けられていないビット列について、ビット列の先頭からビット列識別番号が関連付けられたビット列が出現するまでのビットの桁数をバイナリデータに符号化する。この際、ビットの桁数のバイナリデータに、非参照フラグ(復号時にビット列識別番号記憶部112を参照しないことを示すフラグ)を関連付ける。
また、上記ビット列が圧縮境界を跨ぐ場合は、ビット列の先頭から圧縮境界までのビットの桁数をバイナリデータに符号化し、このバイナリデータに上記非参照フラグを関連付ける。
さらに、ビット列識別番号が関連付けられたビット列のうち圧縮境界を跨ぐためビット列識別番号に変換されなかったビット列についても、圧縮境界を跨ぐ場合と跨がない場合に応じて同様の処理を行う。
圧縮データ記憶部116は、符号化対象のデータが符号化されたバイナリデータ(圧縮データ)を記憶する。
以上のような符号化装置100が実行する符号化処理の流れについて、図3に示すフローチャートを参照して説明する。
[符号化処理]
表示部102が、符号化候補のデータを記録したファイルの名称(ファイル名)を表示装置14に表示しているとする。ユーザは、表示装置14に表示されたファイル名を参照して、これら符号化候補の中から符号化対象とするもののファイル名を入力装置13に入力する。入力装置13は、入力されたファイル名を示す信号を生成し、入力部103に供給する。入力部103は、入力装置13から供給された信号を受け付け、ユーザが符号化対象としたファイルを特定する。そして、ユーザが符号化対象としたファイルのデータを符号化する旨の指示を文字出現頻度取得部104に供給する。文字出現頻度取得部104は、この指示を受け付け、図3に示す符号化処理を開始する。
まず、文字出現頻度取得部104は、指示に基づいて、符号化候補データ記憶部101が記憶する複数の符号化候補のデータの中から符号化対象のデータを取得する(ステップS10)。以下、理解を容易にするために、符号化対象のデータとして図4に示す辞書データ1が取得されたものとする。
文字出現頻度取得部104は、辞書データ1に含まれる文字ごとに、辞書データ1における出現頻度を取得する(ステップS11)。なお、図5に示すように、辞書データ1において文字「t」の出現頻度が92041回で最も高い。続いて、文字「h」、文字「e」、文字「s」、文字「r」・・・の出現頻度がそれぞれ83890回、80984回、76189回、68607回・・・で2番目、3番目、4番目、5番目・・・に高い。
文字識別番号関連付部105は、辞書データ1において出現頻度が高い文字から順に、値が小さい文字識別番号を関連付けて文字識別番号記憶部106に記憶する(ステップS12)。具体的には、図6に示すように、出現頻度が1番目、2番目、3番目、4番目、5番目・・・に高い文字「t」、文字「h」、文字「e」、文字「s」、文字「r」・・・に、それぞれ文字識別番号0、1、2、3、4・・・を関連付ける。
変換部107は、文字識別番号記憶部106を参照して、辞書データ1に含まれる文字を、文字に関連付けられた文字識別番号に変換する(ステップS13)。具体的には、辞書データ1に含まれる文字「t」、文字「h」、文字「e」・・・をそれぞれ文字識別番号0、1、2・・・に変換する。
符号化部108は、変換部107が変換した文字識別番号をバイナリデータに符号化する(ステップS14)。具体的には、辞書データ1が図7に示す最終符号化前バイナリデータ2に符号化される。なお、上述したように、説明の都合上、図7に示す最終符号化前バイナリデータ2を16進数表記の複数の数値で表していることに留意されたい。実際には、最終符号化前バイナリデータ2は、0又は1を表すビットの集合である。
ビット列出現頻度取得部110は、最終符号化前バイナリデータ2に出現する同一のビット列ごとに、最終符号化前バイナリデータ2における出現頻度を取得する(ステップS15)。ただし、辞書データ1に含まれる見出し語の開始位置(圧縮境界)を跨ぐビット列の出現数はビット列の出現頻度に含めない。
なお、図8に示すように、最終符号化前バイナリデータ2において、ビット列「12A5B8CA」の出現頻度が150回で最も高い。また、ビット列「DF43A68C」、ビット列「385C65F9」、ビット列「935AD6CD」、ビット列「D58CEEA5」、ビット列「1B3C2A09」・・・の出現頻度がそれぞれ130回、100回、80回、70回、40回・・・で2番目、3番目、4番目、5番目、6番目・・・に高い。
ビット列識別番号関連付部111は、出現頻度が1から5番目に高いビット列に対して、出現頻度が高いビット列から順に、値が小さいビット列識別番号を関連付けてビット列識別番号記憶部112に記憶する(ステップS16)。具体的には、図9に示すように、出現頻度が1番目、2番目、3番目、4番目、5番目に高いビット列「12A5B8CA」、ビット列「DF43A68C」、ビット列「385C65F9」、ビット列「935AD6CD」、ビット列「B58CEEA5」に、それぞれビット列識別番号0、1、2、3、4を関連付ける。
ビット列識別番号変換部113は、ビット列識別番号記憶部112を参照して、最終符号化前バイナリデータ2に出現する同一のビット列を、ビット列に関連付けられたビット列識別番号に変換する(ステップS17)。具体的には、ビット列「12A5B8CA」、ビット列「DF43A68C」、ビット列「385C65F9」・・・を、それぞれビット列識別番号0、1、2・・・に変換する。ただし、ビット列識別番号変換部113は、圧縮境界を跨ぐビット列については、ビット列識別番号への変換を行わない。
参照フラグ付き符号化部114は、ビット列識別番号変換部113が変換したビット列識別番号をバイナリデータに符号化する。そして、ビット列識別番号のバイナリデータに参照フラグ(復号時にビット列識別番号記憶部112を参照することを示すフラグ)を関連付ける(ステップS18)。
次に、非参照フラグ付き符号化部115は、最終符号化前バイナリデータ2に出現するビット列のうちビット列識別番号が関連付けられていないビット列について、ビット列の先頭からビット列識別番号が関連付けられたビット列が出現するまでのビットの桁数をバイナリデータに符号化する。この際、ビットの桁数のバイナリデータに、非参照フラグ(復号時にビット列識別番号記憶部112を参照しないことを示すフラグ)を関連付ける。また、上記ビット列が圧縮境界を跨ぐ場合は、ビット列の先頭から圧縮境界までのビットの桁数をバイナリデータに符号化し、このバイナリデータに上記非参照フラグを関連付ける。(ステップS19)。
さらに、非参照フラグ付き符号化部115は、ビット列識別番号が関連付けられたビット列のうち圧縮境界を跨ぐためビット列識別番号に変換されなかったビット列についても、圧縮境界を跨ぐ場合と跨がない場合に応じて同様の処理を行う(ステップS20)。
そして、非参照フラグ付き符号化部115は、ステップS10からS20までの処理によって辞書データ1が符号化されたバイナリデータ(圧縮データ)を圧縮データ記憶部116に記憶する(ステップS21)。
次に上記符号化処理によって符号化された圧縮データを部分的に復号する復号装置200の物理構成及び機能構成を説明する。
本実施形態に係る復号装置200は、物理的には図10に示すように構成される。即ち、復号装置200は、ROM20と、RAM21と、外部記憶装置22と、入力装置23と、表示装置24と、CPU25と、を備える。
ROM20は、各種初期設定、ハードウェアの検査、プログラムのロード等を行うための初期プログラムを記憶する。RAM21は、CPU25が実行する各種ソフトウェアプログラム、これらのソフトウェアプログラムの実行に必要なデータ等を一時的に記憶する。
外部記憶装置22は、例えば、ハードディスクであって、各種ソフトウェアプログラム、データ等を記憶する。これらソフトウェアプログラムの中には、アプリケーションソフトウェアプログラム、OSのような基本ソフトウェアプログラム等が含まれている。
入力装置23は、キーボード、マウス、トラックパッド等を備え、ユーザからの入力を受け付ける。入力装置23は、キーボード、マウス、トラックパッド等からの入力に基づいて信号を生成し、CPU25に供給する。
表示装置24は、液晶ディスプレイ等の画面を備え、CPU25から供給されたテキストデータや画像データを画面に表示する。
CPU25は、外部記憶装置22に記憶されたソフトウェアプログラムをRAM21に読み出して、そのソフトウェアプログラムを実行制御することにより、以下の機能構成を実現する。
復号装置200は、機能的には図11に示すように構成される。即ち、復号装置200は、ビット列識別番号記憶部201と、圧縮データ記憶部202と、開始位置記憶部203と、ビット列識別番号復号方法記憶部204と、入力部205と、ビット列識別番号復号部206と、ビット列識別番号変換部207と、文字列識別番号復号方法記憶部208と、文字識別番号記憶部209と、復号部210と、変換部211と、表示部212と、を備える。なお、ビット列識別番号記憶部201、圧縮データ記憶部202、開始位置記憶部203、文字識別番号記憶部209は、それぞれ符号化装置100が備えるビット列識別番号記憶部112、圧縮データ記憶部116、開始位置記憶部109、文字識別番号記憶部106が記憶するデータと同じデータを記憶している。ビット列識別番号記憶部201と、圧縮データ記憶部202と、開始位置記憶部203と、ビット列識別番号復号方法記憶部204と、文字識別番号復号方法記憶部208と、文字識別番号記憶部209と、は図10に示す外部記憶装置22に構築されている。
ビット列識別番号記憶部201は、最終符号化前バイナリデータに出現する同一のビット列ごとに、ビット列を識別するビット列識別番号を関連付けて記憶する。
圧縮データ記憶部202は、符号化対象のデータが上記符号化処理によって符号化されたバイナリデータ(圧縮データ)を記憶する。
開始位置記憶部203は、符号化対象のデータに含まれる見出し語の開始位置(圧縮境界)を記憶する。
ビット列識別番号復号方法記憶部204は、圧縮データに含まれるビット列識別番号のバイナリデータをビット列識別番号に復号する方法を記憶する。具体例を挙げると、ビット列識別番号のバイナリデータがデルタ符号化方法を用いて符号化されている場合には、ビット列識別番号復号方法記憶部204は、デルタ符号化方法で符号化されたバイナリデータを符号化前の元データに戻すロジックをビット列識別番号復号方法として記憶する。
入力部205は、入力装置23が生成した信号を受け付ける。この信号は、ユーザが入力装置23を介して指定した見出し語を示す。入力部205は、ユーザが指定した見出し語及びその見出し語の例文であることを復号対象のデータを特定するための条件に設定する。そして、ビット列識別番号復号部206に設定した条件を入力する。
ビット列識別番号復号部206は、圧縮データのうち入力部205から入力された条件を満たすデータを復号対象のデータとして特定する。例えば、見出し語「the」とその例文であることが条件であれば、圧縮データに含まれる見出し語「the」とその例文を復号対象のデータとして特定する。なお、圧縮データにおける見出し語及び例文の位置は、開始位置記憶部203が記憶する各見出し語の開始位置に基づいて特定される。
また、ビット列識別番号復号部206は、見出し語の開始位置に参照フラグと非参照フラグのどちらが存在するか判別する。参照フラグが存在すると判別した場合、参照フラグに関連付けられているビット列識別番号のバイナリデータをビット列識別番号に復号する。復号方法は、ビット列識別番号復号方法記憶部204が記憶する復号方法が採用される。
一方、非参照フラグが存在すると判別した場合、復号部210に復号処理の制御を移す。
ビット列識別番号変換部207は、ビット列識別番号記憶部201を参照し、ビット列識別番号復号部206が復号したビット列識別番号を、ビット列識別番号に関連付けられたビット列に変換する。そして、変換したビット列をキューにコピーする。
文字識別番号復号方法記憶部208は、圧縮データに含まれる文字識別番号のバイナリデータを文字識別番号に復号する方法を記憶している。具体例を挙げると、文字識別番号のバイナリデータがデルタ符号化方法を用いて符号化されている場合には、文字識別番号復号方法記憶部208は、デルタ符号化方法で符号化されたバイナリデータを符号化前の元データに戻すロジックを文字列識別番号復号方法として記憶する。
文字識別番号記憶部209は、圧縮データに含まれる文字と、文字を識別する文字識別番号と、を関連付けて記憶している。
復号部210は、ビット列識別番号変換部207がキューにコピーしたビット列を文字識別番号に復号する。
一方、復号部210は、ビット列識別番号復号部206から復号処理の制御を移された場合、非参照フラグに関連付けられているビットの桁数を示すデータを読み込む。そして、上記桁数分のバイナリデータをさらに読み込み、キューにコピーする。そして、キューにコピーしたバイナリデータを文字識別番号に復号する。
なお、復号方法は、文字識別番号復号方法記憶部208が記憶する復号方法が採用される。
変換部211は、文字識別番号記憶部209を参照し、復号部210が復号した文字識別番号を文字に変換する。
表示部212は、圧縮データが復号されたデータ(符号化前の元データ)を表示装置24に表示する。
以上のような復号装置200が実行する復号処理の流れについて、図12に示すフローチャートを参照して説明する。
[復号処理]
ここで、圧縮データ記憶部202が記憶する圧縮データは、図4に示す辞書データ1のバイナリデータであるとする。そして、ユーザが、「the」の定義や「the」の使用例を調べるにために、入力装置23に見出し語「the」を入力したとする。この場合、入力装置23は、入力された見出し語「the」を示す信号を生成し、入力部205に供給する。入力部205は、入力装置23から供給された信号を受け付け、入力された見出し語が「the」であることを特定する。そして、見出し語「the」とその例文であることを復号対象の条件に設定し、ビット列識別番号復号部206に設定した条件を入力する。ビット列識別番号復号部206は、入力部205から上記条件を受け付け、図12に示す復号処理を開始する。
ビット列識別番号復号部206は、圧縮データのうち上記条件を満たすデータを復号対象のデータとして特定する(ステップS30)。ここで上記条件を満たすのは見出し語「the」とその例文である。従って、見出し語「the」とその例文が復号対象のデータとして特定される。
次に、ビット列識別番号復号部206は、見出し語「the」の開始位置に参照フラグと非参照フラグのどちらが存在するか判別する(ステップS31)。参照フラグが存在すると判別した場合、参照フラグに関連付けられているビット列識別番号のバイナリデータを読み込む。そして、ビット列識別番号復号方法記憶部204が記憶する復号方法を用いて、ビット列識別番号のバイナリデータをビット列識別番号に復号する(ステップS32)。なお、ここではステップS32において復号されたビット列識別番号を「0」とする。
ビット列識別番号変換部207は、ビット列識別番号記憶部201を参照して、ビット列識別番号復号部206が復号したビット列識別番号を、ビット列識別番号に関連付けられたビット列に変換する(ステップS33)。そして、変換したビット列をキューにコピーする(ステップS34)。具体的には、ステップS32において復号されたビット列識別番号「0」を、ビット列識別番号「0」に関連付けられたビット列「12A5B8CA」(図9参照)に変換し、ビット列「12A5B8CA」をキューにコピーする。
復号部210は、キューに存在するビット列を、文字識別番号復号方法記憶部208が記憶する復号方法を用いて文字識別番号に復号する(ステップS35)。ここでは、ビット列「12A5B8CA」が文字識別番号「0」、「1」、「2」、「3」に復号されたとする。
変換部211は、文字識別番号記憶部209を参照し、復号部210が復号した文字識別番号を文字に変換する(ステップS36)。具体的には、ステップS35で復号された文字識別番号「0」、「1」、「2」、「3」を、それぞれの文字識別番号に関連付けられた文字「t」、「h」、「e」、「s」(図6参照)に変換する。
文字への変換を終えると、変換部211は、全ての復号対象のデータを文字に変換したか否かを判別する(ステップS37)。
変換部211は、復号対象のデータに変換されていない部分が存在すると判別した場合(ステップS37;No)、復号処理の制御をビット列識別番号復号部206に移す。この場合、ビット列識別番号復号部206は、復号済みであるビット列識別番号のバイナリデータの後尾に参照フラグと非参照フラグのどちらが存在するか判別する(ステップS31)。ビット列識別番号復号部206は、非参照フラグが存在すると判別した場合、復号処理の制御を復号部210に移す。この場合、復号部210は、非参照フラグに関連付けられているビットの桁数のバイナリデータを読み込む(ステップS38)。そして、復号済みであるビット列識別番号のバイナリデータの後尾から上記桁数分のバイナリデータを読み込み(ステップS39)、キューにコピーする(ステップS40)。
復号部210は、キューに存在するバイナリデータを、文字識別番号復号方法記憶部208が記憶する復号方法を用いて文字識別番号に復号する(ステップS35)。
変換部211は、文字識別番号記憶部209を参照し、復号部210が復号した文字識別番号を文字に変換する(ステップS36)。
文字への変換を終えると、変換部211は、全ての復号対象のデータを文字に変換したか否かを判別する(ステップS37)。復号対象のデータに変換されていない部分が存在すると判別した場合(ステップS37;No)、復号処理の制御をビット列識別番号復号部206に移す。そして、ステップS31からS37までの処理が、全ての復号対象のデータが文字に変換されるまで繰り返し実行される。
ステップS37において、変換部211が全ての復号対象のデータを文字に変換したと判別した場合(ステップS37;Yes)、表示部212は、変換された文字を表示装置24に表示する(ステップS41)。具体的には、見出し語「the」とその例文を表示装置24に表示する。
このように、上記復号処理では、圧縮データの一部がユーザに指定された見出し語の開始位置から逐次的に復号される。その際、参照フラグと非参照フラグのどちらが存在するかが復号前に判別され、復号しようとしているバイナリデータが文字識別番号のバイナリデータかビット列識別番号のバイナリデータかが特定される。ここで、参照フラグが存在すると判別された場合は、ビット列識別番号のバイナリデータであると特定され、非参照フラグが存在すると判別された場合は、文字識別番号のバイナリデータであると特定される。そして、特定されたバイナリデータの種別に応じた復号方法で、文字識別番号のバイナリデータは文字識別番号に復号され、ビット列識別番号のバイナリデータはビット列に復号される。
ここで注目すべき点は、文字識別番号を文字に変換するために必要となる変換前の元データ、ビット列を文字識別番号に変換するために必要となる変換前の元データを文字識別番号記憶部209とビット列識別番号記憶部201から自在に取得できることである。これは、圧縮データの一部である復号対象のデータに変換前の元データが存在しなくても、元データに変換可能ということを意味する。従って、従来の符号化方法・復号方法であれば、符号化対象のデータを予め部分的に符号化しておかなければ部分的復号を実行できなかったが、本願発明によればそのようなことをしなくても部分的復号を実行できる。
以上説明したように、本実施形態に係る符号化装置100は、符号化対象のデータを文字列識別番号及びビット列識別番号のバイナリデータに符号化する。そして、復号装置200は、文字識別番号記憶部209とビット列識別番号記憶部201を参照し、符号化装置100が符号化したバイナリデータ(圧縮データ)を部分的に復号する。これらは、上述したように、符号化対象のデータを部分的に符号化しなくても圧縮データの部分的復号を可能とする。従って、従来の符号化方法・復号方法に比べて符号化に手間がかからず、符号化効率が高い。
(変形例)
以上に本発明の実施形態について説明したが、上記実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、本発明の実施形態は種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
例えば、上記実施形態では、出現頻度が1から5番目に高いビット列にビット列識別番号を関連付けたが、ビット列識別番号を関連付ける対象が、出現頻度が1から5番目に高いビット列に限定されるわけではない。例えば、出現頻度が1から10番目に高いビット列にビット列識別番号を関連付けてもよいし、全てのビット列にビット列識別番号を関連付けてもよい。ただし、出現頻度が低いビット列をコード長が長いビット列識別番号のバイナリデータに符号化するとかえって圧縮率が低下するため、ビット列識別番号を関連付ける対象を出現頻度が高いビット列に限定したほうが好ましい。
また、上記実施形態では、見出し語の開始位置を圧縮境界としたが、見出し語の開始位置と見出し語の例文の開始位置を圧縮境界としてもよい。
また、上記実施形態では、符号化装置100と復号装置200とを互いに独立した装置として記載した。しかし、符号化装置100が、復号装置200の機能を全て備え、復号装置として動作してもよいし、復号装置200が、符号化装置100の機能を全て備え、符号化装置として動作してもよい。
また、復号装置200は、圧縮データから復号対象のデータを特定する特定部を備えていてもよい。そして、図12に示す復号処理のステップS30で、特定部が圧縮データから復号対象のデータを特定してもよい。この場合、ビット列識別番号復号部206は、特定部が特定した復号対象のデータを復号する。
なお、本発明に係る機能を実現するための構成を予め備えた符号化装置、復号装置として提供できることはもとより、プログラムの適用により、既存のパーソナルコンピュータや情報端末機器等を、本発明に係る符号化装置、復号装置として機能させることもできる。すなわち、上記実施形態で例示した符号化装置、復号装置による各機能構成を実現させるためのプログラムを、既存のパーソナルコンピュータや情報端末機器等を制御するCPU等が実行できるように適用することで、本発明に係る符号化装置、復号装置として機能させることができる。また、本発明に係る符号化方法、復号方法は、符号化装置、復号装置を用いて実施できる。
また、このようなプログラムの適用方法は任意である。プログラムを、例えば、コンピュータが読取可能な記録媒体[CD−ROM(Compact Disc Read-Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto Optical disc)等]に格納して適用できる他、インターネット等のネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより適用することもできる。
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲とが含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
(付記1)
符号化対象のデータに含まれる文字と、該文字を識別する文字識別番号と、を関連付けて記憶する文字識別番号記憶部と、
前記文字識別番号記憶部を参照して、前記符号化対象のデータに含まれる文字を、該文字に関連付けられた文字識別番号に変換する変換部と、
前記変換部が変換した文字識別番号をバイナリデータに符号化する符号化部と、
前記符号化部が符号化した文字識別番号のバイナリデータに出現する同一のビット列ごとに、該ビット列を識別するビット列識別番号を関連付けてビット列識別番号記憶部に記憶するビット列識別番号関連付部と、
前記ビット列識別番号記憶部を参照して、前記文字識別番号のバイナリデータに出現する同一のビット列を、該ビット列に関連付けられたビット列識別番号に変換するビット列識別番号変換部と、
前記ビット列識別番号変換部が変換したビット列識別番号に、復号時に前記ビット列識別番号記憶部を参照することを示す参照フラグを関連付けて、該ビット列識別番号をバイナリデータに符号化する参照フラグ付き符号化部と、
を備える符号化装置。
(付記2)
前記文字識別番号は、前記符号化対象のデータにおいて出現頻度の高い文字に関連付けられたものほど小さく、
前記符号化部は、前記文字識別番号が小さいほど該文字識別番号を符号化して得られるバイナリデータのデータ量が小さい符号化方法を用いて、前記文字識別番号をバイナリデータに符号化する、
付記1に記載の符号化装置。
(付記3)
前記文字識別番号のバイナリデータに出現するビット列のうち前記ビット列識別番号が関連付けられていないビット列については、該ビット列の先頭から前記ビット列識別番号が関連付けられたビット列が出現するまでのビットの桁数に、復号時に前記ビット列識別番号記憶部を参照しないことを示す非参照フラグを関連付けて、該ビットの桁数をバイナリデータに符号化する非参照フラグ付き符号化部、
を備える付記1又は2に記載の符号化装置。
(付記4)
前記ビット列識別番号は、前記文字識別番号のバイナリデータにおいて出現頻度の高い同一のビット列に関連付けられたものほど小さく、
前記参照フラグ付き符号化部は、前記ビット列識別番号が小さいほど該ビット列識別番号を符号化して得られるバイナリデータのデータ量が小さい符号化方法を用いて、前記ビット列識別番号をバイナリデータに符号化する、
付記1乃至3の何れかに記載の符号化装置。
(付記5)
前記符号化対象のデータは、見出し語を含み、
前記同一のビット列の出現頻度は、前記符号化対象のデータにおける前記見出し語の開始位置を跨ぐ該同一のビット列の出現数を含まない、
付記4に記載の符号化装置。
(付記6)
前記符号化対象のデータは、見出し語を含み、
前記ビット列識別番号変換部は、前記ビット列識別番号が関連付けられたビット列が、前記見出し語の開始位置を跨ぐ場合、該ビット列を前記ビット列識別番号に変換せず、
前記非参照フラグ付き符号化部は、前記ビット列識別番号が関連付けられたビット列のうち前記ビット列識別番号変換部が前記ビット列識別番号に変換しなかったビット列について、該ビット列の先頭から該ビット列が跨ぐ前記見出し語の開始位置までのビットの桁数に、前記非参照フラグを関連付けて、該ビットの桁数をバイナリデータに符号化する、
付記3に記載の符号化装置。
(付記7)
前記非参照フラグ付き符号化部は、前記ビット列識別番号が関連付けられていないビット列が、前記見出し語の開始位置を跨ぐ場合、該ビット列の先頭から該開始位置までのビットの桁数に、前記非参照フラグを関連付けて、該ビットの桁数をバイナリデータに符号化する、
付記6に記載の符号化装置。
(付記8)
前記ビット列識別番号記憶部が記憶する同一のビット列の桁数は、32桁である、
付記1乃至7の何れかに記載の符号化装置。
(付記9)
符号化対象のデータに含まれる各文字を識別する各文字識別番号のバイナリデータと、前記各文字識別番号のバイナリデータに出現する同一のビット列を識別するビット列識別番号のバイナリデータと、で構成された圧縮データを記憶する圧縮データ記憶部と、
前記符号化対象のデータに含まれる文字と、該文字を識別する前記文字識別番号と、を関連付けて記憶する文字識別番号記憶部と、
前記各文字識別番号のバイナリデータに出現する前記同一のビット列ごとに、該ビット列を識別する前記ビット列識別番号を関連付けて記憶するビット列識別番号記憶部と、
復号対象のデータを特定するための条件を入力する入力部と、
前記圧縮データ記憶部が記憶する圧縮データのうち前記条件を満たすデータを復号対象のデータとして特定し、特定した復号対象のデータを構成する前記文字識別番号のバイナリデータと前記ビット列識別番号のバイナリデータとのうち、前記ビット列識別番号のバイナリデータを前記ビット列識別番号に復号するビット列識別番号復号部と、
前記ビット列識別番号記憶部を参照して、前記ビット列識別番号復号部が復号した前記ビット列識別番号を、該ビット列識別番号に関連付けられたビット列に変換するビット列識別番号変換部と、
前記復号対象のデータを構成する前記文字識別番号のバイナリデータと前記ビット列識別番号変換部が変換したビット列とを前記文字識別番号に復号する復号部と、
前記文字識別番号記憶部を参照して、前記復号部が復号した前記文字識別番号を、該文字識別番号に関連付けられた文字に変換する変換部と、
を備える復号装置。
(付記10)
符号化対象のデータに含まれる文字と、該文字を識別する文字識別番号と、を関連付けて記憶する文字識別番号記憶部を参照して、前記符号化対象のデータに含まれる文字を、該文字に関連付けられた文字識別番号に変換する変換ステップと、
前記変換ステップで変換した文字識別番号をバイナリデータに符号化する符号化ステップと、
前記符号化ステップで符号化した文字識別番号のバイナリデータに出現する同一のビット列ごとに、該ビット列を識別するビット列識別番号を関連付けてビット列識別番号記憶部に記憶するビット列識別番号関連付ステップと、
前記ビット列識別番号記憶部を参照して、前記文字識別番号のバイナリデータに出現する同一のビット列を、該ビット列に関連付けられたビット列識別番号に変換するビット列識別番号変換ステップと、
前記ビット列識別番号変換ステップで変換したビット列識別番号に、復号時に前記ビット列識別番号記憶部を参照することを示す参照フラグを関連付けて、該ビット列識別番号をバイナリデータに符号化する参照フラグ付き符号化ステップと、
を備える符号化方法。
(付記11)
復号対象のデータを特定するための条件を入力する入力ステップと、
符号化対象のデータに含まれる各文字を識別する各文字識別番号のバイナリデータと、前記各文字識別番号のバイナリデータに出現する同一のビット列を識別するビット列識別番号のバイナリデータと、で構成された圧縮データのうち、前記条件を満たすデータを復号対象のデータとして特定する特定ステップと、
前記特定ステップで特定した前記復号対象のデータを構成する前記文字識別番号のバイナリデータと前記ビット列識別番号のバイナリデータとのうち、前記ビット列識別番号のバイナリデータを前記ビット列識別番号に復号するビット列識別番号復号ステップと、
前記各文字識別番号のバイナリデータに出現する前記同一のビット列ごとに、該ビット列を識別する前記ビット列識別番号を関連付けて記憶するビット列識別番号記憶部を参照して、前記ビット列識別番号復号ステップで復号した前記ビット列識別番号を、該ビット列識別番号に関連付けられたビット列に変換するビット列識別番号変換ステップと、
前記復号対象のデータを構成する前記文字識別番号のバイナリデータと前記ビット列識別番号変換ステップで変換したビット列とを前記文字識別番号に復号する復号ステップと、
前記符号化対象のデータに含まれる文字と、該文字を識別する前記文字識別番号と、を関連付けて記憶する文字識別番号記憶部を参照して、前記復号ステップで復号した前記文字識別番号を、該文字識別番号に関連付けられた文字に変換する変換ステップと、
を備える復号方法。
(付記12)
コンピュータを、
符号化対象のデータに含まれる文字と、該文字を識別する文字識別番号と、を関連付けて記憶する文字識別番号記憶部を参照して、前記符号化対象のデータに含まれる文字を、該文字に関連付けられた文字識別番号に変換する変換部、
前記変換部が文字識別番号をバイナリデータに符号化する符号化部、
前記符号化部が符号化した文字識別番号のバイナリデータに出現する同一のビット列ごとに、該ビット列を識別するビット列識別番号を関連付けてビット列識別番号記憶部に記憶するビット列識別番号関連付部、
前記ビット列識別番号記憶部を参照して、前記文字識別番号のバイナリデータに出現する同一のビット列を、該ビット列に関連付けられたビット列識別番号に変換するビット列識別番号変換部、
前記ビット列識別番号変換部が変換したビット列識別番号に、復号時に前記ビット列識別番号記憶部を参照することを示す参照フラグを関連付けて、該ビット列識別番号をバイナリデータに符号化する参照フラグ付き符号化部、
として機能させるためのプログラム。
(付記13)
コンピュータを、
復号対象のデータを特定するための条件を入力する入力部、
符号化対象のデータに含まれる各文字を識別する各文字識別番号のバイナリデータと、前記各文字識別番号のバイナリデータに出現する同一のビット列を識別するビット列識別番号のバイナリデータと、で構成された圧縮データのうち、前記条件を満たすデータを復号対象のデータとして特定する特定部、
前記特定部が特定した前記復号対象のデータを構成する前記文字識別番号のバイナリデータと前記ビット列識別番号のバイナリデータとのうち、前記ビット列識別番号のバイナリデータを前記ビット列識別番号に復号するビット列識別番号復号部、
前記各文字識別番号のバイナリデータに出現する前記同一のビット列ごとに、該ビット列を識別する前記ビット列識別番号を関連付けて記憶するビット列識別番号記憶部を参照して、前記ビット列識別番号復号部が復号した前記ビット列識別番号を、該ビット列識別番号に関連付けられたビット列に変換するビット列識別番号変換部、
前記復号対象のデータを構成する前記文字識別番号のバイナリデータと前記ビット列識別番号変換部が変換したビット列とを前記文字識別番号に復号する復号部、
前記符号化対象のデータに含まれる文字と、該文字を識別する前記文字識別番号と、を関連付けて記憶する文字識別番号記憶部を参照して、前記復号部が復号した前記文字識別番号を、該文字識別番号に関連付けられた文字に変換する変換部、
として機能させるためのプログラム。
1…辞書データ、2…最終符号化前バイナリデータ、10…ROM、11…RAM、12…外部記憶装置、13…入力装置、14…表示装置、15…CPU、100…符号化装置、101…符号化候補データ記憶部、102…表示部、103…入力部、104…文字出現頻度取得部、105…文字識別番号関連付部、106…文字識別番号記憶部、107…変換部、108…符号化部、109…開始位置記憶部、110…ビット列出現頻度取得部、111…ビット列識別番号関連付部、112…ビット列識別番号記憶部、113…ビット列識別番号変換部、114…参照フラグ付き符号化部、115…非参照フラグ付き符号化部、116…圧縮データ記憶部、200…復号装置、20…ROM、21…RAM、22…外部記憶装置、23…入力装置、24…表示装置、25…CPU、200…復号装置、201…ビット列識別番号記憶部、202…圧縮データ記憶部、203…開始位置記憶部、204…ビット列識別番号復号方法記憶部、205…入力部、206…ビット列識別番号復号部、207…ビット列識別番号変換部、208…文字識別番号復号方法記憶部、209…文字識別番号記憶部、210…復号部、211…変換部、212…表示部

Claims (12)

  1. 符号化対象のデータに含まれる文字と、該文字を識別する文字識別番号と、を関連付けて記憶する文字識別番号記憶部と、
    前記文字識別番号記憶部を参照して、前記符号化対象のデータに含まれる文字を、該文字に関連付けられた文字識別番号に変換する変換部と、
    前記変換部が変換した文字識別番号をバイナリデータに符号化する符号化部と、
    前記符号化部が符号化した文字識別番号のバイナリデータに出現する同一のビット列ごとに、該ビット列を識別するビット列識別番号を関連付けてビット列識別番号記憶部に記憶するビット列識別番号関連付部と、
    前記ビット列識別番号記憶部を参照して、前記文字識別番号のバイナリデータに出現する同一のビット列を、該ビット列に関連付けられたビット列識別番号に変換するビット列識別番号変換部と、
    前記ビット列識別番号変換部が変換したビット列識別番号に、復号時に前記ビット列識別番号記憶部を参照することを示す参照フラグを関連付けて、該ビット列識別番号をバイナリデータに符号化する参照フラグ付き符号化部と、
    を備え
    前記文字識別番号は、前記符号化対象のデータにおいて出現頻度の高い文字に関連付けられたものほど小さく、
    前記符号化部は、前記文字識別番号が小さいほど該文字識別番号を符号化して得られるバイナリデータのデータ量が小さい符号化方法を用いて、前記文字識別番号をバイナリデータに符号化する、
    符号化装置。
  2. 符号化対象のデータに含まれる文字と、該文字を識別する文字識別番号と、を関連付けて記憶する文字識別番号記憶部と、
    前記文字識別番号記憶部を参照して、前記符号化対象のデータに含まれる文字を、該文字に関連付けられた文字識別番号に変換する変換部と、
    前記変換部が変換した文字識別番号をバイナリデータに符号化する符号化部と、
    前記符号化部が符号化した文字識別番号のバイナリデータに出現する同一のビット列ごとに、該ビット列を識別するビット列識別番号を関連付けてビット列識別番号記憶部に記憶するビット列識別番号関連付部と、
    前記ビット列識別番号記憶部を参照して、前記文字識別番号のバイナリデータに出現する同一のビット列を、該ビット列に関連付けられたビット列識別番号に変換するビット列識別番号変換部と、
    前記ビット列識別番号変換部が変換したビット列識別番号に、復号時に前記ビット列識別番号記憶部を参照することを示す参照フラグを関連付けて、該ビット列識別番号をバイナリデータに符号化する参照フラグ付き符号化部と、
    前記文字識別番号のバイナリデータに出現するビット列のうち前記ビット列識別番号が関連付けられていないビット列については、該ビット列の先頭から前記ビット列識別番号が関連付けられたビット列が出現するまでのビットの桁数に、復号時に前記ビット列識別番号記憶部を参照しないことを示す非参照フラグを関連付けて、該ビットの桁数をバイナリデータに符号化する非参照フラグ付き符号化部
    を備える符号化装置。
  3. 符号化対象のデータに含まれる文字と、該文字を識別する文字識別番号と、を関連付けて記憶する文字識別番号記憶部と、
    前記文字識別番号記憶部を参照して、前記符号化対象のデータに含まれる文字を、該文字に関連付けられた文字識別番号に変換する変換部と、
    前記変換部が変換した文字識別番号をバイナリデータに符号化する符号化部と、
    前記符号化部が符号化した文字識別番号のバイナリデータに出現する同一のビット列ごとに、該ビット列を識別するビット列識別番号を関連付けてビット列識別番号記憶部に記憶するビット列識別番号関連付部と、
    前記ビット列識別番号記憶部を参照して、前記文字識別番号のバイナリデータに出現する同一のビット列を、該ビット列に関連付けられたビット列識別番号に変換するビット列識別番号変換部と、
    前記ビット列識別番号変換部が変換したビット列識別番号に、復号時に前記ビット列識別番号記憶部を参照することを示す参照フラグを関連付けて、該ビット列識別番号をバイナリデータに符号化する参照フラグ付き符号化部と、
    を備え、
    前記ビット列識別番号記憶部が記憶する同一のビット列の桁数は、32桁である、
    号化装置。
  4. 前記ビット列識別番号は、前記文字識別番号のバイナリデータにおいて出現頻度の高い同一のビット列に関連付けられたものほど小さく、
    前記参照フラグ付き符号化部は、前記ビット列識別番号が小さいほど該ビット列識別番号を符号化して得られるバイナリデータのデータ量が小さい符号化方法を用いて、前記ビット列識別番号をバイナリデータに符号化する、
    請求項1乃至3の何れか一項に記載の符号化装置。
  5. 前記符号化対象のデータは、見出し語を含み、
    前記同一のビット列の出現頻度は、前記符号化対象のデータにおける前記見出し語の開始位置を跨ぐ該同一のビット列の出現数を含まない、
    請求項4に記載の符号化装置。
  6. 前記符号化対象のデータは、見出し語を含み、
    前記ビット列識別番号変換部は、前記ビット列識別番号が関連付けられたビット列が、前記見出し語の開始位置を跨ぐ場合、該ビット列を前記ビット列識別番号に変換せず、
    前記非参照フラグ付き符号化部は、前記ビット列識別番号が関連付けられたビット列のうち前記ビット列識別番号変換部が前記ビット列識別番号に変換しなかったビット列について、該ビット列の先頭から該ビット列が跨ぐ前記見出し語の開始位置までのビットの桁数に、前記非参照フラグを関連付けて、該ビットの桁数をバイナリデータに符号化する、
    請求項に記載の符号化装置。
  7. 前記非参照フラグ付き符号化部は、前記ビット列識別番号が関連付けられていないビット列が、前記見出し語の開始位置を跨ぐ場合、該ビット列の先頭から該開始位置までのビットの桁数に、前記非参照フラグを関連付けて、該ビットの桁数をバイナリデータに符号化する、
    請求項6に記載の符号化装置。
  8. 符号化対象のデータに含まれる各文字を識別する各文字識別番号のバイナリデータと、前記各文字識別番号のバイナリデータに出現する同一のビット列を識別するビット列識別番号のバイナリデータと、で構成された圧縮データを記憶する圧縮データ記憶部と、
    前記符号化対象のデータに含まれる文字と、該文字を識別する前記文字識別番号と、を関連付けて記憶する文字識別番号記憶部と、
    前記各文字識別番号のバイナリデータに出現する前記同一のビット列ごとに、該ビット列を識別する前記ビット列識別番号を関連付けて記憶するビット列識別番号記憶部と、
    復号対象のデータを特定するための条件を入力する入力部と、
    前記圧縮データ記憶部が記憶する圧縮データのうち前記条件を満たすデータを復号対象のデータとして特定し、特定した復号対象のデータを構成する前記文字識別番号のバイナリデータと前記ビット列識別番号のバイナリデータとのうち、前記ビット列識別番号のバイナリデータを前記ビット列識別番号に復号するビット列識別番号復号部と、
    前記ビット列識別番号記憶部を参照して、前記ビット列識別番号復号部が復号した前記ビット列識別番号を、該ビット列識別番号に関連付けられたビット列に変換するビット列識別番号変換部と、
    前記復号対象のデータを構成する前記文字識別番号のバイナリデータと前記ビット列識別番号変換部が変換したビット列とを前記文字識別番号に復号する復号部と、
    前記文字識別番号記憶部を参照して、前記復号部が復号した前記文字識別番号を、該文字識別番号に関連付けられた文字に変換する変換部と、
    を備える復号装置。
  9. 符号化対象のデータに含まれる文字と、該文字を識別する文字識別番号と、を関連付けて記憶する文字識別番号記憶部を参照して、前記符号化対象のデータに含まれる文字を、該文字に関連付けられた文字識別番号に変換する変換ステップと、
    前記変換ステップで変換した文字識別番号をバイナリデータに符号化する符号化ステップと、
    前記符号化ステップで符号化した文字識別番号のバイナリデータに出現する同一のビット列ごとに、該ビット列を識別するビット列識別番号を関連付けてビット列識別番号記憶部に記憶するビット列識別番号関連付ステップと、
    前記ビット列識別番号記憶部を参照して、前記文字識別番号のバイナリデータに出現する同一のビット列を、該ビット列に関連付けられたビット列識別番号に変換するビット列識別番号変換ステップと、
    前記ビット列識別番号変換ステップで変換したビット列識別番号に、復号時に前記ビット列識別番号記憶部を参照することを示す参照フラグを関連付けて、該ビット列識別番号をバイナリデータに符号化する参照フラグ付き符号化ステップと、
    を備え
    前記文字識別番号は、前記符号化対象のデータにおいて出現頻度の高い文字に関連付けられたものほど小さく、
    前記符号化ステップにおいて、前記文字識別番号が小さいほど該文字識別番号を符号化して得られるバイナリデータのデータ量が小さい符号化方法を用いて、前記文字識別番号をバイナリデータに符号化する、
    符号化方法。
  10. 復号対象のデータを特定するための条件を入力する入力ステップと、
    符号化対象のデータに含まれる各文字を識別する各文字識別番号のバイナリデータと、前記各文字識別番号のバイナリデータに出現する同一のビット列を識別するビット列識別番号のバイナリデータと、で構成された圧縮データのうち、前記条件を満たすデータを復号対象のデータとして特定する特定ステップと、
    前記特定ステップで特定した前記復号対象のデータを構成する前記文字識別番号のバイナリデータと前記ビット列識別番号のバイナリデータとのうち、前記ビット列識別番号のバイナリデータを前記ビット列識別番号に復号するビット列識別番号復号ステップと、
    前記各文字識別番号のバイナリデータに出現する前記同一のビット列ごとに、該ビット列を識別する前記ビット列識別番号を関連付けて記憶するビット列識別番号記憶部を参照して、前記ビット列識別番号復号ステップで復号した前記ビット列識別番号を、該ビット列識別番号に関連付けられたビット列に変換するビット列識別番号変換ステップと、
    前記復号対象のデータを構成する前記文字識別番号のバイナリデータと前記ビット列識別番号変換ステップで変換したビット列とを前記文字識別番号に復号する復号ステップと、
    前記符号化対象のデータに含まれる文字と、該文字を識別する前記文字識別番号と、を関連付けて記憶する文字識別番号記憶部を参照して、前記復号ステップで復号した前記文字識別番号を、該文字識別番号に関連付けられた文字に変換する変換ステップと、
    を備える復号方法。
  11. コンピュータを、
    符号化対象のデータに含まれる文字と、該文字を識別する文字識別番号と、を関連付けて記憶する文字識別番号記憶部を参照して、前記符号化対象のデータに含まれる文字を、該文字に関連付けられた文字識別番号に変換する変換部、
    前記変換部が文字識別番号をバイナリデータに符号化する符号化部、
    前記符号化部が符号化した文字識別番号のバイナリデータに出現する同一のビット列ごとに、該ビット列を識別するビット列識別番号を関連付けてビット列識別番号記憶部に記憶するビット列識別番号関連付部、
    前記ビット列識別番号記憶部を参照して、前記文字識別番号のバイナリデータに出現する同一のビット列を、該ビット列に関連付けられたビット列識別番号に変換するビット列識別番号変換部、
    前記ビット列識別番号変換部が変換したビット列識別番号に、復号時に前記ビット列識別番号記憶部を参照することを示す参照フラグを関連付けて、該ビット列識別番号をバイナリデータに符号化する参照フラグ付き符号化部、
    として機能させ
    前記文字識別番号は、前記符号化対象のデータにおいて出現頻度の高い文字に関連付けられたものほど小さく、
    前記コンピュータを前記符号化部として機能させる際、前記文字識別番号が小さいほど該文字識別番号を符号化して得られるバイナリデータのデータ量が小さい符号化方法を用いて、前記文字識別番号をバイナリデータに符号化する、
    ためのプログラム。
  12. コンピュータを、
    復号対象のデータを特定するための条件を入力する入力部、
    符号化対象のデータに含まれる各文字を識別する各文字識別番号のバイナリデータと、前記各文字識別番号のバイナリデータに出現する同一のビット列を識別するビット列識別番号のバイナリデータと、で構成された圧縮データのうち、前記条件を満たすデータを復号対象のデータとして特定する特定部、
    前記特定部が特定した前記復号対象のデータを構成する前記文字識別番号のバイナリデータと前記ビット列識別番号のバイナリデータとのうち、前記ビット列識別番号のバイナリデータを前記ビット列識別番号に復号するビット列識別番号復号部、
    前記各文字識別番号のバイナリデータに出現する前記同一のビット列ごとに、該ビット列を識別する前記ビット列識別番号を関連付けて記憶するビット列識別番号記憶部を参照して、前記ビット列識別番号復号部が復号した前記ビット列識別番号を、該ビット列識別番号に関連付けられたビット列に変換するビット列識別番号変換部、
    前記復号対象のデータを構成する前記文字識別番号のバイナリデータと前記ビット列識別番号変換部が変換したビット列とを前記文字識別番号に復号する復号部、
    前記符号化対象のデータに含まれる文字と、該文字を識別する前記文字識別番号と、を関連付けて記憶する文字識別番号記憶部を参照して、前記復号部が復号した前記文字識別番号を、該文字識別番号に関連付けられた文字に変換する変換部、
    として機能させるためのプログラム。
JP2014191516A 2014-09-19 2014-09-19 符号化装置、符号化方法、復号装置、復号方法、及び、プログラム Active JP6511752B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014191516A JP6511752B2 (ja) 2014-09-19 2014-09-19 符号化装置、符号化方法、復号装置、復号方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014191516A JP6511752B2 (ja) 2014-09-19 2014-09-19 符号化装置、符号化方法、復号装置、復号方法、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2016063475A JP2016063475A (ja) 2016-04-25
JP6511752B2 true JP6511752B2 (ja) 2019-05-15

Family

ID=55798419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014191516A Active JP6511752B2 (ja) 2014-09-19 2014-09-19 符号化装置、符号化方法、復号装置、復号方法、及び、プログラム

Country Status (1)

Country Link
JP (1) JP6511752B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117793361A (zh) * 2022-09-20 2024-03-29 华为技术有限公司 数据编码和数据解码的方法、装置、设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE512613C2 (sv) * 1996-12-30 2000-04-10 Ericsson Telefon Ab L M Metod och organ för informationshantering
JP4479530B2 (ja) * 2004-12-28 2010-06-09 カシオ電子工業株式会社 データ圧縮装置、及びデータ復元装置

Also Published As

Publication number Publication date
JP2016063475A (ja) 2016-04-25

Similar Documents

Publication Publication Date Title
US7663511B2 (en) Dynamic character encoding
JP6686639B2 (ja) 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法
US7565452B2 (en) System for storing and rendering multimedia data
KR100894002B1 (ko) 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법
KR101247075B1 (ko) 마크업 언어 데이터의 인코딩
JP5831298B2 (ja) プログラム、情報処理装置およびインデックス生成方法
US10360183B2 (en) Encoding device, encoding method, decoding device, decoding method, and computer-readable recording medium
US7958133B2 (en) Application conversion of source data
CN108184079A (zh) 一种多媒体文件的合并方法和装置
US9391636B2 (en) Method and system
JP6511752B2 (ja) 符号化装置、符号化方法、復号装置、復号方法、及び、プログラム
JP6613669B2 (ja) 圧縮プログラム、圧縮方法、情報処理装置、置換プログラムおよび置換方法
JP4037875B2 (ja) コンピュータグラフィックスデータ符号化装置、復号化装置、符号化方法、および、復号化方法
US8018359B2 (en) Conversion of bit lengths into codes
US9479195B2 (en) Non-transitory computer-readable recording medium, compression method, decompression method, compression device, and decompression device
JP6428936B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP4791205B2 (ja) 差分生成装置及び差分適用装置及び差分生成プログラム及び差分適用プログラム
US20160210304A1 (en) Computer-readable recording medium, information processing apparatus, and conversion process method
JP6693549B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP5001458B1 (ja) 2分割処理圧縮プログラムを記録した記録媒体
US9558109B2 (en) Method and apparatus for flash memory arithmetic encoding and decoding
JP4345438B2 (ja) 辞書データ圧縮装置、電子辞書装置及びプログラム
JP6593445B2 (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
JP2014027573A (ja) Ykm形式圧縮プログラムを記録した記録媒体
CN1702732B (zh) 使用文本压缩的用户界面

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170913

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180807

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181005

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190325

R150 Certificate of patent or registration of utility model

Ref document number: 6511752

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150