JP2004140507A - Data encoder, data decoder, data encoding method, data decoding method, and program and recording medium allowing computer to realize the methods - Google Patents

Data encoder, data decoder, data encoding method, data decoding method, and program and recording medium allowing computer to realize the methods Download PDF

Info

Publication number
JP2004140507A
JP2004140507A JP2002301843A JP2002301843A JP2004140507A JP 2004140507 A JP2004140507 A JP 2004140507A JP 2002301843 A JP2002301843 A JP 2002301843A JP 2002301843 A JP2002301843 A JP 2002301843A JP 2004140507 A JP2004140507 A JP 2004140507A
Authority
JP
Japan
Prior art keywords
data
image
data group
encoding
group
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.)
Granted
Application number
JP2002301843A
Other languages
Japanese (ja)
Other versions
JP4233302B2 (en
Inventor
Hisafumi Saika
齋鹿 尚史
Mikihiro Kadowaki
門脇 幹宏
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP2002301843A priority Critical patent/JP4233302B2/en
Publication of JP2004140507A publication Critical patent/JP2004140507A/en
Application granted granted Critical
Publication of JP4233302B2 publication Critical patent/JP4233302B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data encoder capable of executing efficient encoding on the basis of a correlation of a plurality of data sequences to solve the difficulty of prior arts in the improvement of the encoding efficiency based on a dictionary. <P>SOLUTION: The image encoder 1000 includes: an input image data memory 1010 for storing high resolution image data and low resolution image data; an encoding pre-processing unit 1020 for classifying pixels of the high resolution image data into a plurality of sub data sequences on the basis of specified cross-referencing between the high resolution image data and the low resolution image data according to position coordinates of the pixels of the image data; an image encoding unit 1050 for applying encoding pixel data by each of the classified sub data groups and applying encoding processing to the low resolution image data; and an encoding data combining unit 1080 for combining encoded data resulting from encoding the data included in the sub data groups with encoded data resulting from encoding data included in a second data group. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、画像データの処理技術に関し、特に、画像データを圧縮符号化するデータ符号化装置、データ符号化方法および伸張復号するデータ復号装置、データ復号方法に関する。
【0002】
【従来の技術】
データ符号化処理として、広く用いられているものに、辞書に基づいた符号化処理がある。これは、符号化処理にあたって、符号化されるべきデータの各部分列が、それまでに符号化器が処理した部分列のいずれと一致するかを判定して、そのようなパターンを指定する情報自体を符号化するものである。
【0003】
このようにして得られる符号語が、元の部分列に比べて短ければ、データを圧縮する効果が得られることになる。このような原理を用いた、可逆符号化処理は、データの種類を問わずに、一定の圧縮効果を得られることから、広く用いられている。たとえば、このような辞書に基づいた符号化の一つであるZiv‐Lempel符号 (LZ77符号)は、圧縮ツールgzipの符号化アルゴリズムとして用いられている。このようなツールは、圧縮対象のデータが画像を表わすデータであるか、テキストを表わすデータであるのかなどを問わず、復号処理の計算負荷が軽量であることもあって、汎用の可逆圧縮処理のために広く使われている。
【0004】
このような辞書に基づく符号化処理は、汎用性という観点からは優れたものであるが、一般的に異なるデータ系列の相関を利用して、圧縮効率を高めるという符号化処理との関連性は低い。
【0005】
異なるデータ系列の相関を利用して、圧縮効率を高めるという、辞書に基づく符号化処理を実行する、本発明に関連する画像符号化装置を説明する。
【0006】
図39に、この画像符号化装置100のブロック図を示す。この画像符号化装置100は、画像データを記憶する入力画像データメモリ102と、その画像を符号化する前に、入力画像の解像度で符号化するための高解像度画像と、その半分の解像度の低解像度画像とを作成する符号化前処理器104と、作成された高解像度画像データを記憶する高解像度画像データメモリ106と、作成された低解像度画像データを記憶する低解像度画像データメモリ108と、高解像度画像を表わす画像データと低解像度画像を表わす画像データとを符号化処理するデータ符号化器110と、符号化処理された高解像度画像を表わす符号化画像データを記憶するための高解像度符号化画像データメモリ112と、符号化処理された低解像度画像を表わす符号化画像データを記憶するための低解像度符号化画像データメモリ114と、符号化処理された高解像度画像を表わす符号化画像データと符号化処理された低解像度画像を表わす符号化画像データとを結合処理する符号化データ結合器116と、結合処理された結合符号化画像データを記憶する結合符号化画像データメモリ118とを含む。
【0007】
図40に、この画像符号化装置100で実行される処理の手順を表わすフローチャートを示す。
【0008】
ステップ(以下、ステップをSと記述する。)100にて、符号化前処理器104は、入力画像データメモリ102に記憶された入力画像300を、低解像度画像304と、高解像度画像302とに分離して、それぞれ、低解像度画像データメモリ108と、高解像度画像データメモリ106とに記憶させる。
【0009】
図41に、この画像符号化装置100で処理される低解像度画像304と、高解像度画像302とを示す。なお、図41に示す画像は、説明を簡略化するために、入力画像300を、縦横ともに4ピクセルで示すことにする。ただし、これは、説明の簡略化のためであり、通常、符号化の対象となる画像の大きさはこれより大きい。
【0010】
図41においては、入力画像300、高解像度画像302および低解像度画像304の各ピクセルは、付された数字で区別される。ピクセルに付された数字から明らかなように、高解像度画像302は、入力画像300のコピーであり、低解像度画像304は、入力画像300の1/2ダウンサンプリングで作成されている。
【0011】
S200にて、データ符号化器110は、高解像度画像データメモリ106に記憶された高解像度画像302、低解像度画像データメモリ108に記憶された低解像度画像304を符号化して、それぞれ高解像度符号化画像データメモリ112、低解像度符号化画像データメモリ114に記憶させる。高解像度画像302と低解像度画像304の各ピクセルがデータ符号化器110で符号化される順序は、図42で示されるような通常のラスタスキャン順とする。
【0012】
データ符号化器110は、符号化にあたって、LZ77符号化を用いるとする。このLZ77符号化は、以下に示すような動作原理を有する。
(1)最も新しく符号化されたものから取り出した一定の長さの記号列(参照記号列)と、未符号化記号列の先頭からの記号列(未参照符号化列)を最長一致法にて比較する。
(2)以下を含む情報を符号語として出力する。
・最も長い一致が参照記号列の何番目の記号から始まるか
・上記一致はいくつの記号を含むか
・未参照符号化列の、一致しない最初の記号は何か
(3)一度に符号化される記号列の長さ(記号の数)は、一般にはその都度異なるが、符号化された記号列だけ、参照記号列の内容は古いものが押し出される形で書き換えられる。未符号化記号列の先頭は、符号化された記号列の数だけ進む。
(4)符号化対象記号列に、短い同一パターンが高い頻度で現れるほど符号化効率は高い。
なお、上記(4)で述べた「短い同一パターンが高い頻度で現れる」という前提は、「符号化対象記号列に含まれる、近接した記号の間の相関が高い」ことと同じであることに注意されるべきである。これは、たとえば、2つの記号からなる同一の記号列の繰り返しからなる符号化対象データでは、ある記号を取り出すと、次の記号も決定される、すなわち相関係数が「1」となることからも分かる。また、この(4)の性質は、LZ77に限られるわけではなく、辞書に基づいた可逆符号化一般に通用する性質であることにも注意されるべきである。
【0013】
LZ77符号化については、多数の文献があるため、さらに詳細な説明は、ここでは繰返さない。
【0014】
S300にて、符号化データ結合器116は、低解像度符号化画像データメモリ114、高解像度符号化画像データメモリ112の内容を結合して、結合符号化画像データメモリ118に記憶させる。
【0015】
このような画像符号化装置100によると、高解像度画像302と低解像度画像304は、明らかに相関をもった異なるデータ系列である。この両者の符号化にあたって、両者の相関を用いて効率的に符号化を行なう。さらに、低解像度画像304の復号にあたって、高解像度画像302を復号する必要がないようにする。この画像符号化装置100では、復号時に、高解像度画像302と低解像度画像304とを選択的に得られるような符号化の方法として、最も簡単な方法である、高解像度画像302と低解像度画像304に含まれるピクセルを、たとえば図41に示すピクセル310のように一部重複するものを採用している。そのため、符号化効率は悪くなる。
【0016】
さらに、この符号化効率を向上させるために、重複するピクセルをなくすように改良された画像符号化装置がある。
【0017】
この改良された画像符号化装置のブロック図は、図39に示すブロック図と同じであり、改良された画像符号化装置のフローチャートは、図40に示すフローチャートと同じである。
【0018】
図43に、この改良された画像符号化装置における、高解像度画像502、低解像度画像504を示す。入力画像500および低解像度画像504は、前述の入力画像300および低解像度画像304と、それぞれ全く同じである。しかし、高解像度画像502は、低解像度画像504に含まれているピクセルを含まないように構成される。このように高解像度画像502、低解像度画像504を構成すれば、重複して符号化されるピクセルはないので、符号化効率は向上する。
【0019】
図44に、この改良された画像符号化装置のデータ符号化器110における、高解像度画像502を符号化する際の順序を示す。このように、データ符号化器110において、高解像度画像502を符号化する際に、以下のような問題がある。
【0020】
図44で示す順序で符号化するため。図43に示すピクセル508を符号化する際に、直前に符号化されるピクセルは、左に隣接するのピクセルではなくさらにもう1つ左隣のピクセル506である。一方、図41の高解像度画像302のピクセル308を符号化する際には、直前に符号化されるピクセルは、左に隣接するピクセル306である。これは、図43の高解像度画像502において、ピクセル508の左隣のピクセルは、ピクセル510として低解像度画像504のに含まれているため、高解像度画像502を符号化する際に、参照記号列に入らないことによるものである。
【0021】
画像データの特性として、近くのピクセルほど、相関が高いことが知られているが、改良された画像符号化装置においては、高解像度画像502を符号化する際、ピクセルによっては、最も相関の高い他ピクセルの参照ができないことを示す。このため、改良された画像符号化装置では、符号化効率を高めることが困難である。これはLZ77の動作原理から、辞書に基づいた符号化処理一般に該当するものである。
【0022】
このような場合であっても、もちろん、低解像度画像504、高解像度画像502の順で順次データ符号化器110にて符号化して、かつ低解像度画像504から高解像度画像502に処理を移す際に参照記号列を初期化せず、参照記号列を極端に長くすることにより、この問題は回避できる。しかし、参照記号列の中で、符号化対象文字列がどの部分列に一致するかを示す情報が長くなり、符号化効率という観点で好ましくない。
【0023】
このような2つの画像符号化装置は、互いに相関を持つ、異なるデータ系列を、その相関を生かして符号化することが、明示的に与えられた確率モデルをもたない符号化手法(従来の辞書に基づいた符号化手法に代表される手法)では難しいということに起因している。
【0024】
このような問題に関連して、特開平7−336237号公報(特許文献1)は、データ情報を圧縮する方法を開示する。この公報に開示された圧縮方法は、先行する記号を使用して句の辞書を作成し、この辞書を使用してデータ・ストリームを圧縮するレンペル−ジブ(LZ)圧縮処理に基づくデータ圧縮方法において、ある句のdコンテキストまたはdヒストリhとは、その直前のdビットの集合であるものとして、符号化される句のそれぞれに関連するヒストリの関数として、符号化される句の複数の辞書を展開し、記憶するステップと、前に符号化された句に関して複数の辞書の圧縮効率を比較して統計的に最も高い潜在圧縮を提供すると判定される辞書を選択するステップと、選択された辞書内の、次の句のヒストリに対応する特定のヒストリを使用して次の句を符号化するステップとを含む。
【0025】
この公報に開示された圧縮方法によると、各時点での符号化の履歴によって、異なる参照文字列を用いることで、より効率的な符号化を行なうことで、実質的に同じ効果を得ようとするものである。この圧縮方法は、一般のエントロピー符号化まで範囲を広げて、複数の確率モデルを持たせた符号化に適用されるものである。この圧縮方法は、符号化済(符号化時)、復号済(復号時)のデータをもとに、明示的に与えられた確率モデルを選択しながら符号化または復号処理を行なう方法である。
【0026】
【特許文献1】
特開平7−336237号公報
【0027】
【発明が解決しようとする課題】
しかしながら、この公報に開示された圧縮方法は、単一のデータ系列の符号化の効率を向上することを目的とする。上述した画像符号化装置や改良された画像符号化装置は、異なるデータ系列の相関を利用した符号化の効率を向上させるものである。このため、上述した画像符号化装置や改良された画像符号化装置に、この公報に開示された圧縮方法を適用することはできない。したがって、これらの技術を組合せても、特に辞書に基づいた符号化のように、復号処理が高速に行なえるという特徴を有しつつ、符号化処理において、異なるデータ系列の相関を利用するという方法は実現できない。
【0028】
本発明は、上述の課題を解決するためになされたものであって、従来の辞書に基づいた符号化では困難であった、複数のデータ系列の相関に基づいて、効率的な符号化を実行できるデータ符号化装置およびそのデータ符号化装置に対応するデータ復号装置を提供することであり、さらに、効率的な符号化を実行できるデータ符号化方法およびそのデータ符号化方法に対応するデータ復号方法を提供することであり、さらに、それらの方法をコンピュータに実現させるためのプログラムおよび記録媒体を提供することである。
【0029】
【課題を解決するための手段】
第1の発明に係るデータ符号化装置は、複数のデータを含む第1のデータ群と、第1のデータ群に含まれない複数のデータで構成される第2のデータ群とを記憶するための記憶手段と、第1のデータ群に含まれるデータと、第2のデータ群に含まれるデータとの対応付けを決定するための決定手段と、決定された対応付けに基づいて、第1のデータ群を、複数のサブデータ群に分類するための分類手段と、分類手段により分類されたサブデータ群ごとに、サブデータ群に含まれるデータを符号化処理するための第1の符号化手段と、第2のデータ群に含まれるデータを符号化処理するための第2の符号化手段と、サブデータ群に含まれるデータが符号化された符号化データと、第2のデータ群に含まれるデータが符号化された符号化データとを結合するための結合手段とを含む。
【0030】
第1の発明によると、決定手段により決定される対応付けは、第1のデータ群に含まれるデータと、第2のデータ群に含まれるデータとの間に成立する相関関係に基づく対応付けなどである。分類手段は、このような対応付けに基づいて、第1のデータ群を、相関関係が強いデータから構成される複数のサブデータ群に分類する。このとき、分類された1つのサブデータ群に含まれるデータは、互いにその値が近似しているなどの強い相関関係を有する。第1の符号化手段は、分類されたサブデータ群ごとに、サブデータ群に含まれるデータを符号化処理し、第2の符号化手段は、第2のデータ群に含まれるデータを符号化処理する。結合手段は、サブデータ群に含まれるデータが符号化された符号化データと、第2のデータ群に含まれるデータが符号化された符号化データとを結合する。これにより、第1の符号化手段は、互いに強い相関関係を有するデータから構成されるサブデータ群ごとに符号化処理するので、このサブデータ群に含まれるデータのエントロピーを下げることができる。その結果、分類ごとに符号化することで符号化効率を向上させることができ、従来の辞書に基づいた符号化では困難であった、複数のデータ系列の相関に基づいて、効率的な符号化を実行できるデータ符号化装置を提供することができる。
【0031】
第2の発明に係るデータ符号化装置は、第1の発明の構成に加えて、決定手段は、第1のデータ群に含まれるデータと、第2のデータ群に含まれるデータとが、データの値についての予め定められた関係を有するように、対応付けを決定するための手段を含む。
【0032】
第2の発明によると、決定手段は、たとえば、静止画像データの場合には画素の位置データが近いことにより、動画像データの場合には隣接するフレームであることにより、データの値が互いに近似するなどの関係を有するように、対応付けを決定することができる。
【0033】
第3の発明に係るデータ符号化装置は、第2の発明の構成に加えて、決定手段は、第1のデータ群に含まれる画素データについての画像における位置と、第2のデータ群に含まれる画素データについての画像における位置とに基づいて、関係を有するように、対応付けを決定するための手段を含む。
【0034】
第3の発明によると、符号化処理の対象であるデータは、画像を表わすデータであって、そのデータは、画像を構成する複数のピクセルに対応する画素データを含む。決定手段は、その画像における画素の位置に基づいて、互いに強い相関がある関係を有するように対応付けを決定する。このようにすると、画素の位置が近いデータは、互いに強い相関関係を有するので(画素データの値が近似する)、これらのデータから構成されるサブデータ群をまとめて符号化処理することにより、効率的な符号化を実行できる。
【0035】
第4の発明に係るデータ符号化装置は、第3の発明の構成に加えて、決定手段は、画像における位置を用いた関数により、対応付けを決定するための手段を含む。
【0036】
第4の発明によると、画像における画素の位置であるXY座標値を用いた関数により、第1のデータ群に含まれるデータと第2のデータ群に含まれるデータとの対応付けを決定することができる。
【0037】
第5の発明に係るデータ符号化装置は、第3または4の発明の構成に加えて、画像を複数の種類の解像度の画像に分割するための分割手段をさらに含む。第1のデータ群は、高い解像度の画像についてのデータを含み、第2のデータ群は、低い解像度の画像についてのデータを含む。
【0038】
第5の発明によると、分割手段は、たとえば、高解像度の画像データと低解像度の画像データとを作成して、高解像度のデータを、高解像度の画素の位置に対応する低解像度の画素のデータに対応付ける。これにより、1つの低解像度のデータに対応する、複数の高解像度のデータを、1つのサブデータ群に含めることができる。
【0039】
第6の発明に係るデータ符号化装置は、第2の発明の構成に加えて、動画像を、時系列に従って複数のフレームの画像に分割するための分割手段をさらに含む。決定手段は、第1のデータ群に含まれる特定のフレームの画像についてのデータと、第2のデータ群に含まれる特定のフレームよりも早い時間の画像についてのデータとに基づいて、関係を有するように、対応付けを決定するための手段を含む。
【0040】
第6の発明によると、動画像を表わすデータを符号化処理する場合において、ある特定のフレームのある位置におけるデータと、その特定のフレームよりも早い時間のフレームの同じ位置におけるデータとは、互いに強い相関関係を有する。これらのデータを1つのサブデータ群に含めて符号化処理すると、サブデータ群に含まれるデータのエントロピーが下がって、効率のよい符号化を実行できる。
【0041】
第7の発明に係るデータ符号化装置は、第1〜6のいずれかの発明の構成に加えて、分類手段は、第1のデータ群を、互いに関係が強いデータから構成されるサブデータ群に分類するための手段を含む。
【0042】
第7の発明によると、サブデータ群は、互いに関係が強いデータから構成され、このサブデータ群ごとに符号化処理するため、サブデータ群に含まれるデータのエントロピーが下がって、効率のよい符号化を実行できる。
【0043】
第8の発明に係るデータ符号化装置は、第1〜6のいずれかの発明の構成に加えて、分類手段は、第1のデータ群を、互いのデータの値が近似するデータから構成されるサブデータ群に分類するための手段を含む。
【0044】
第8の発明によると、サブデータ群は、互いにデータの値が近似するデータから構成され、このサブデータ群ごとに符号化処理するため、サブデータ群に含まれるデータのエントロピーが下がって、効率のよい符号化を実行できる。
【0045】
第9の発明に係るデータ符号化装置は、第1〜8のいずれかの発明の構成に加えて、第1の符号化手段で実行される符号化処理の種類と、第2の符号化手段で実行される符号化処理の種類とは同じ処理である装置である。
【0046】
第9の発明によると、第1の符号化手段で実行される符号化処理と、第2の符号化手段で実行される符号化処理とを、同じ種類の符号化処理にしたので、符号化手段を実現する符号化器を1つにまとめて、回路規模の小さなデータ符号化装置を提供できる。
【0047】
第10の発明に係るデータ符号化装置は、第9の発明の構成に加えて、辞書に基づく符号化処理を実行するものである。
【0048】
第10の発明によると、従来は困難であった、辞書に基づく符号化処理において、効率のよい符号化を実行できる。
【0049】
第11の発明に係るデータ復号装置は、結合された、第1の符号化データ群と第2の符号化データ群とを記憶するための記憶手段と、記憶手段に記憶されたデータ群を、第1の符号化データ群と第2の符号化データ群とに分割するための分割手段と、第1の符号化データ群に含まれる符号化データを復号処理してサブデータ群を作成するための第1の復号手段と、第2の符号化データ群に含まれる符号化データを復号処理して第2のデータ群を作成するための第2の復号手段と、サブデータ群と第2のデータ群とに基づいて、対応付けに従って、第1のデータ群を作成するための作成手段とを含む。
【0050】
第11の発明によると、このデータ復号装置により復号される元データは、複数のデータを含む第1のデータ群と、第1のデータ群に含まれない複数のデータで構成される第2のデータ群とから構成される。サブデータ群は、第1のデータ群に含まれるデータと第2のデータ群に含まれるデータとの対応付けに基づいて第1のデータ群が分類されたデータ群である。サブデータ群は、サブデータ群ごとに第1の符号化データ群に符号化処理されている。この対応付けは、第1のデータ群に含まれるデータと、第2のデータ群に含まれるデータとの間に成立する相関関係に基づく対応付けなどである。第1の復号手段は、分割手段により分割された、第1の符号化データ群に含まれる符号化データを復号してサブデータ群を作成し、第2の復号手段は、第2の符号化データ群に含まれる符号化データを復号して第2のデータ群を作成する。作成手段は、復号されたサブデータ群と第2のデータ群とを用いて、符号化されたときの対応付けに基づいて、第1のデータ群を作成する。これにより、符号化データを復号処理して元データを作成することができる。符号化処理においては、分類された1つのサブデータ群に含まれるデータは、互いにその値が近似しているなどの強い相関関係を有する。分類されたサブデータ群ごとに、サブデータ群に含まれるデータを符号化処理するので、このサブデータ群に含まれるデータのエントロピーを下げることができ、符号化効率を向上させることができる。その結果、従来の辞書に基づいた符号化では困難であった、複数のデータ系列の相関に基づいて、効率的な符号化を実行できるデータ符号化装置に対応するデータ復号装置を提供することができる。
【0051】
第12の発明に係るデータ復号装置は、第11の発明の構成に加えて、作成手段は、第1のデータ群に含まれるデータと、第2のデータ群に含まれるデータとが、データの値についての予め定められた関係を有するように、第1のデータ群を作成するための手段を含む。
【0052】
第12の発明によると、作成手段は、たとえば、静止画像データの場合には画素の位置データが近いことにより、動画像データの場合には隣接するフレームであることにより、データの値が互いに近似するなどの関係を有するように、第1のデータ群を作成することができる。
【0053】
第13の発明に係るデータ復号装置は、第12の発明の構成に加えて、作成手段は、第1のデータ群に含まれる画素データについての画像における位置と、第2のデータ群に含まれる画素データについての画像における位置とに基づいて、関係を有するように、第1のデータ群を作成するための手段を含む。
【0054】
第13の発明によると、復号処理の対象である元データは、画像を表わすデータであって、そのデータは、画像を構成する複数のピクセルに対応する画素データを含む。作成手段は、その画像における画素の位置に基づいて、互いに強い相関がある関係を有するように第1のデータ群を作成する。このようにすると、符号化処理において、画素の位置が近いデータは、互いに強い相関関係を有するので(画素データの値が近似する)、これらのデータから構成されるサブデータ群をまとめて効率的に符号化された符号化データを復号できるデータ復号装置を提供することができる。
【0055】
第14の発明に係るデータ復号装置は、第13の発明の構成に加えて、作成手段は、画像における位置を用いた関数により、第1のデータ群を作成するための手段を含む。
【0056】
第14の発明によると、画像における画素の位置であるXY座標値を用いた関数により決定された対応付けに基づいて分類され、符号化された符号化データを復号できるデータ復号装置を提供することができる。
【0057】
第15の発明に係るデータ復号装置は、第13の発明の構成に加えて、解像度を指定するための指定手段をさらに含む。
【0058】
第15の発明によると、元データは、画像を複数の解像度で表わすデータを含み、指定手段は、どの解像度までの画像データを復号処理するのかを指定できる。
【0059】
第16の発明に係るデータ復号装置は、第12の発明の構成に加えて、作成手段は、第1のデータ群に含まれる特定のフレームの画像についてのデータと、第2のデータ群に含まれる特定のフレームよりも早い時間の画像についてのデータとに基づいて、第1のデータ群を作成するための手段を含む。
【0060】
第16の発明によると、動画像を表わす元データに復号処理する場合において、ある特定のフレームのある位置におけるデータと、その特定のフレームよりも早い時間のフレームの同じ位置におけるデータとは、互いに強い相関関係を有する。これらのデータを1つのサブデータ群に含めて効率よく符号化処理された符号化データを復号できるデータ復号装置を提供することができる。
【0061】
第17の発明に係るデータ復号装置は、第11〜16のいずれかの発明の構成に加えて、第1の復号手段で実行される復号処理の種類と、第2の復号手段で実行される復号処理の種類とは同じ処理である装置である。
【0062】
第17の発明によると、第1の復号手段で実行される復号処理と、第2の復号手段で実行される復号処理とを、同じ種類の復号処理にしたので、復号手段を実現する復号器を1つにまとめて、回路規模の小さなデータ復号装置を提供できる。
【0063】
第18の発明に係るデータ復号装置は、第17の発明の構成に加えて、復号処理は、辞書に基づく復号処理を実行するものである。
【0064】
第18の発明によると、従来は困難であった、辞書に基づく、効率のよい符号化された符号化データを復号できるデータ復号装置を提供することができる。
【0065】
第19の発明に係るデータ符号化方法は、複数のデータを含む第1のデータ群と、第1のデータ群に含まれない複数のデータで構成される第2のデータ群とを予め準備する準備ステップと、第1のデータ群に含まれるデータと、第2のデータ群に含まれるデータとの対応付けを決定する決定ステップと、決定された対応付けに基づいて、第1のデータ群を、複数のサブデータ群に分類する分類ステップと、分類ステップにて分類されたサブデータ群ごとに、サブデータ群に含まれるデータを符号化処理する第1の符号化ステップと、第2のデータ群に含まれるデータを符号化処理する第2の符号化ステップと、サブデータ群に含まれるデータが符号化された符号化データと、第2のデータ群に含まれるデータが符号化された符号化データとを結合する結合ステップとを含む。
【0066】
第19の発明によると、決定ステップにて決定される対応付けは、第1のデータ群に含まれるデータと、第2のデータ群に含まれるデータとの間に成立する相関関係に基づく対応付けなどである。分類ステップにて、このような対応付けに基づいて、第1のデータ群を、相関関係が強いデータから構成される複数のサブデータ群に分類する。このとき、分類された1つのサブデータ群に含まれるデータは、互いにその値が近似しているなどの強い相関関係を有する。第1の符号化ステップにて、分類されたサブデータ群ごとに、サブデータ群に含まれるデータを符号化処理し、第2の符号化ステップにて、第2のデータ群に含まれるデータを符号化処理する。結合ステップにて、サブデータ群に含まれるデータが符号化された符号化データと、第2のデータ群に含まれるデータが符号化された符号化データとを結合する。これにより、第1の符号化ステップは、互いに強い相関関係を有するデータから構成されるサブデータ群ごとに符号化処理するので、このサブデータ群に含まれるデータのエントロピーを下げることができる。その結果、分類ごとに符号化することで符号化効率を向上させることができ、従来の辞書に基づいた符号化では困難であった、複数のデータ系列の相関に基づいて、効率的な符号化を実行できるデータ符号化方法を提供することができる。
【0067】
第20の発明に係るデータ復号方法は、結合された、第1の符号化データ群と第2の符号化データ群とを予め準備する準備ステップと、準備ステップにて準備されたデータ群を、第1の符号化データ群と第2の符号化データ群とに分割する分割ステップと、第1の符号化データ群に含まれる符号化データを復号処理してサブデータ群を作成する第1の復号ステップと、第2の符号化データ群に含まれる符号化データを復号処理して第2のデータ群を作成する第2の復号ステップと、サブデータ群と第2のデータ群とに基づいて、対応付けに従って、第1のデータ群を作成する作成ステップとを含む。
【0068】
第20の発明によると、このデータ復号方法により復号される元データは、複数のデータを含む第1のデータ群と、第1のデータ群に含まれない複数のデータで構成される第2のデータ群とから構成される。サブデータ群は、第1のデータ群に含まれるデータと第2のデータ群に含まれるデータとの対応付けに基づいて第1のデータ群が分類されたデータ群である。サブデータ群は、サブデータ群ごとに第1の符号化データ群に符号化処理されている。この対応付けは、第1のデータ群に含まれるデータと、第2のデータ群に含まれるデータとの間に成立する相関関係に基づく対応付けなどである。第1の復号ステップにて、分割ステップにより分割された、第1の符号化データ群に含まれる符号化データを復号してサブデータ群を作成し、第2の復号ステップにて、第2の符号化データ群に含まれる符号化データを復号して第2のデータ群を作成する。作成ステップにて、復号されたサブデータ群と第2のデータ群とを用いて、このような対応付けに基づいて、第1のデータ群を作成する。これにより、符号化データを復号処理して元データを作成することができる。符号化処理においては、分類された1つのサブデータ群に含まれるデータは、互いにその値が近似しているなどの強い相関関係を有する。分類されたサブデータ群ごとに、サブデータ群に含まれるデータを符号化処理するので、このサブデータ群に含まれるデータのエントロピーを下げることができ、符号化効率を向上させることができる。その結果、従来の辞書に基づいた符号化では困難であった、複数のデータ系列の相関に基づいて、効率的な符号化を実行できるデータ符号化方法に対応するデータ復号方法を提供することができる。
【0069】
第21の発明に係るプログラムは、第19の発明に係るデータ符号化方法および第20の発明に係るデータ復号方法の少なくともいずれかを、コンピュータに実現させるためのプログラムである。
【0070】
第21の発明によると、従来の辞書に基づいた符号化では困難であった、複数のデータ系列の相関に基づいて、効率的な符号化を実行できるデータ符号化方法およびそのデータ符号化方法に対応するデータ復号方法のいずれかをコンピュータに実現させるためのプログラムを提供することができる。
【0071】
第22の発明に係る記録媒体は、第21の発明に係るプログラムが記録されたコンピュータ読取可能な記録媒体である。
【0072】
第22の発明によると、従来の辞書に基づいた符号化では困難であった、複数のデータ系列の相関に基づいて、効率的な符号化を実行できるデータ符号化方法およびそのデータ符号化方法に対応するデータ復号方法のいずれかをコンピュータに実現させるためのプログラムを記録した記録媒体を提供することができる。
【0073】
第23の発明に係るデータ符号化装置は、予め順序付けられた複数のデータ群を記憶するための記憶手段と、順序付けられた複数のデータ群の、一つのデータ群に含まれるそれぞれのデータから次順のデータ群に含まれるデータへの対応関係を決定するための決定手段と、一つのデータ群を、対応関係に基づいて、次順のデータ群の対応するデータに基づいてサブデータ群に分類するための分類手段と、分類手段に基づいて分類されたサブデータ群のそれぞれについて符号化処理するための第1の符号化手段と、順序付けられた複数のデータ群の中の最後順のデータ群を符号化処理するための第2の符号化手段とを含む。
【0074】
第23の発明によると、再帰的に1つ後の(画像に適用した場合には、解像度が1段階粗い)データ群を参照しながら、データをサブデータ群に分類して符号化することができる。
【0075】
第24の発明に係るデータ復号装置は、結合された符号化データ群を記憶するための記憶手段と、結合された符号化データ群を、複数の順序付けられた符号化データ群に分割するための分割手段と、複数の順序付けられた符号化データのうち最後順の符号化データ群を復号処理するための第1の復号手段と、最後順の符号化データ群以外の順序付けられた符号化データ群を復号処理して、サブデータ群を生成するための第2の復号手段と、複数の順序付けられた符号化データに含まれる一つのデータ群に含まれるそれぞれのデータから次順のデータ群に含まれるデータへの対応関係を決定するための決定手段と、サブデータ群を、対応関係に基づいて、次順のデータ群の対応するデータに基づいて、当該データ群に統合するための統合手段とを含む。
【0076】
第24の発明によると、再帰的に1つ後の(画像に適用した場合には、解像度が1段階粗い)データ群を参照しながら、データをサブデータ群に分類して符号化された符号化データを復号することができる。
【0077】
【発明の実施の形態】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【0078】
<第1の実施の形態>
以下、本発明の第1の実施の形態に係る画像符号化装置について説明する。
【0079】
図1に、本実施の形態に係る画像符号化装置1000のブロック図を示す。図1に示すように、この画像符号化装置1000は、画像データを記憶する入力画像データメモリ1010と、その画像を符号化する前に、入力画像の解像度で符号化するための高解像度画像と、その半分の解像度の低解像度画像とを作成する符号化前処理器1020と、作成された高解像度画像データを記憶する高解像度画像データメモリ1030と、作成された低解像度画像データを記憶する低解像度画像データメモリ1040と、高解像度画像を表わす画像データと低解像度画像を表わす画像データとを符号化処理する画像符号化器1050と、符号化処理された高解像度画像を表わす符号化画像データを記憶するための高解像度符号化画像データメモリ1060と、符号化処理された低解像度画像を表わす符号化画像データを記憶するための低解像度符号化画像データメモリ1070と、符号化処理された高解像度画像を表わす符号化画像データと符号化処理された低解像度画像を表わす符号化画像データとを結合処理する符号化データ結合器1080と、結合処理された結合符号化画像データを記憶する結合符号化画像データメモリ1090とを含む。
【0080】
この画像符号化装置1000における、入力画像データメモリ1010と、高解像度画像データメモリ1030と、低解像度画像データメモリ1040と、高解像度符号化画像データメモリ1060と、低解像度符号化画像データメモリ1070と、結合符号化画像データメモリ1090とは、一般的にコンピュータを含む計算システムに実装される記憶デバイスにより実現される。
【0081】
この画像符号化装置1000における、符号化前処理器1020と、画像符号化器1050と、符号化データ結合器1080とは、コンピュータにより実行されるソフトウェアで実現することも、ハードウェアで実現することも可能である。以下の説明では、この符号化前処理器1020と、画像符号化器1050と、符号化データ結合器1080とは、コントローラを含む特定のハードウェアを有し、そのコントローラが予め定められたソフトウェアを実行することによりハードウェアを制御して、所定の機能を実現するものとして説明する。ただし、特定のハードウェアではなく、一般的なコンピュータを用いて、所定の機能を実現するものであってもよい。したがって、本発明の本質的な一局面は、このような機能をコンピュータに実現させるためのプログラムである。
【0082】
入力画像データメモリ1010に記憶される入力画像データ、すなわち本実施の形態に係る画像符号化装置1000で符号化処理されるデータについて詳細に説明する。入力画像データは、256階調のグレースケールの画像であると想定とする。なお、本実施の形態に係る画像符号化装置1000は、対応するパラメータの値を適切に変更することで異なる階調数の画像データの場合にも適用できる。さらに、カラー画像は、YUV、RGBなどに分離することで、複数のグレースケール画像に帰着するため、本実施の形態に係る画像符号化装置1000は、グレースケール画像やモノクローム画像に限定して適用されるものではない。すなわち、カラー画像に適用する場合、必要に応じて、色成分の数(通常3ないし4)だけ、処理を繰り返せば良いからである。なお、以下の説明において、各メモリにおけるレジスタの長さは、可能な値を表現するのに必要十分な長さであるとして、符号化画像データのフォーマットに関係しない限り、特に言及しないこととする。また、画像符号化器1050の構造の詳細については後述する。
【0083】
図2を参照して、本実施の形態に係る画像符号化装置1000の画像データ符号化処理の手順について説明する。
【0084】
S1000にて、画像符号化装置1000は、符号化前処理器1020を用いて、入力画像データメモリ1010に記憶された入力画像データに基づいて、高解像度画像データと低解像度画像データとを作成して、それぞれ、高解像度画像データメモリ1030と低解像度画像データメモリ1040とに記憶させる。符号化前処理器1020は、図3に示すように、入力画像1200に基づいて、高解像度画像1210と低解像度画像1220とを作成する。ここでは、入力画像1200は、横4ピクセル、縦4ピクセルの画像として示されるが、説明を簡略化するためである。実際には、通常、符号化の対象となる画像の大きさはこれより大きい。図3においては、入力画像1200、高解像度画像1210および低解像度画像1220の各ピクセルは、付された数字で区別する。ピクセルに付された数字から明らかなように、高解像度画像1210は、入力画像1200のコピーから低解像度画像1220に含まれるピクセルを除外したものであり、低解像度画像1220は、入力画像1200の1/2ダウンサンプリングで作成されている。
【0085】
さらに、符号化前処理器1020は、図4に示すように、入力画像1300に基づいて、高解像度画像1310と低解像度画像1320とを作成するようにしてもよい。図3および図4からわかるように、高解像度画像1310の各ピクセルは、高解像度画像1210の各ピクセルと同じであるが、図4に示す低解像度画像1320の各ピクセルの値は、入力画像1300の4つのピクセルの値の平均値で与えられる。
【0086】
図3および図4に示すように構成すると、高解像度画像1210(または高解像度画像1310)と、低解像度画像1220(または低解像度画像1320)とが復号されると、入力画像1200(または入力画像1300)を完全に復号するために十分な情報が与えられる。すなわち、図4の場合、低解像度画像1320の各ピクセル値は、入力画像1300の対応する4つのピクセルの平均値であるので、高解像度画像1310の3つのピクセルの値を復号すれば、残りの1つのピクセルの値は、低解像度画像1320の対応するピクセルを4倍した値から、高解像度画像1310の対応する3つのピクセルの値を合計した値を減算することで(ビット精度の許す範囲で)、高解像度画像1310の残りの1つのピクセルの値を得ることができる。なお、図3の場合、高解像度画像1210、低解像度画像1220の情報を合算すれば、入力画像1200を復元するために十分な情報が得られることは明らかである。もちろん、完全な可逆符号化が必要な場合には、図4の方法は、ビット精度の問題から一般的には採用できないことになる。
【0087】
S1100にて、画像符号化装置1000は、画像符号化器1050を用いて、高解像度画像データと低解像度画像データとを予め定められた圧縮方式で符号化処理して、符号化処理されたデータを高解像度符号化画像データメモリ1060と低解像度符号化画像データメモリ1070とに記憶させる。この画像符号化器1050における処理の手順の詳細については後述する。なお、図3に示す高解像度画像1210および図4に示す高解像度画像1310が、画像符号化器1050で符号化される順序は、図5で示されるような通常のラスタスキャン順とする。
【0088】
S1200にて、画像符号化装置1000は、符号化データ結合器1080を用いて、高解像度符号化画像データメモリ1060と低解像度符号化画像データメモリ1070とに記憶されたデータを結合して、結合符号化画像データメモリ1090に記憶させる。
【0089】
結合符号化画像データメモリ1090には、図6に示す高解像度符号化画像データメモリ1060の内容と、図7に示す低解像度符号化画像データメモリ1070の内容を、この順に結合させた、図8に示すデータが記憶される。なお、本実施の形態に係る画像符号化装置1000は、復号装置に送信される情報であって、画像の縦横サイズなどの復号処理に必要な情報を、結合符号化画像データメモリ1090に記憶させることを除外するものではない。
【0090】
以下、画像符号化器1050の詳細について説明する。
図9に、画像符号化器1050のブロック図を示す。なお、本実施の形態に係る画像符号化装置1000の画像符号化器1050においては、LZ77符号化処理を実行するが、本発明に係る画像符号化装置1000は、このLZ77符号化処理に限定して適用されるものではない。本発明に係る画像符号化装置1000は、辞書に基づいた一般的な符号化処理に適用できるものである。
【0091】
画像符号化器1050は、記号列分解器1420と、記号列バッファ1430と、記号列カウンタ1440と、データ符号化器1450と、これらを制御するコントローラ1410とを含む。
【0092】
コントローラ1410は、画像符号化器1050の全体を制御する。コントローラ1410には、図示しないCPU(Central Processing Unit)や、そのCPUで実行されるプログラムを記憶するメモリを含む。
【0093】
以下、記号列バッファ1430のI、J番目の要素をS[I][J]で表わし、記号列カウンタ1440のI番目の値をSC[I]で表わす。
【0094】
記号列分解器1420は、高解像度画像データメモリ1030に記憶された高解像度画像データの内容を分解して、記号列バッファ1430に記憶させる。記号列バッファ1430は、第1次元が3、第2次元が高解像度画像データメモリ1030の長さと等しい2次元配列のバッファである。すなわち、記号列バッファ1430は、3×Nの大きさの二次元配列を有する。「第1次元が3」とは、3×Nの「3」を表わし、「高解像度画像データメモリ1030の長さ」とは、「高解像度データメモリ1030」を構成するワード数(=格納され得るピクセルの数の最大)を意味する。
【0095】
この記号列バッファ1430は、高解像度データメモリ1030に含まれる各ピクセルを、各ピクセルごとに算出されるキーの値(キーについては後述する。)に応じて分類して、記憶するための2次元配列である。本実施の形態に係る画像符号化装置1000においては、キーの値Kを0〜2の3通りと設定したため、記号列バッファ1430が3列から構成される。このため、第1次元が「3」になる。
【0096】
第2次元の長さは、必要な最大限の長さ(全てのピクセルから同じキーレジスタ1428の値が算出された場合)であってもデータを記憶することができるように、高解像度画像データメモリ1030の長さ(=格納されうるピクセルの数の最大)に設定している。ただし、このような記号列バッファ1430の構成は、一例であって、本発明に係る画像符号化装置がこのようなバッファの構成に限定されるものではない。
【0097】
記号列カウンタ1440は、3つの要素を持つ1次元配列のバッファである。この3つの要素とは、SC[0]、SC[1]、SC[2]である。このSC[I](I=0、1、2)自体は、画像データの値を示すものではなく、各ピクセルをキーの値に合わせて分類した際、各分類に含まれるピクセルの数を示すものである。SC[0]、SC[1]、SC[2]は、後述するフローチャート(図12)の中では、次にピクセルが格納される、記号列バッファ1430の場所を示すことになる。キーの値にしたがって、各ピクセルがS[K]、[SC[K]]に記憶されるごとに、Kの値に応じて、SC[K]がインクリメントされる。後述するフローチャートで示す処理の終了後は、SC[0]、SC[1]、SC[2]は、各分類に入っているピクセルの数を示すことになる。
【0098】
なお、上述したような記号列バッファ1430に記号列を分類して記憶させる、記号列分解器1420の構造の詳細については後述する。
【0099】
データ符号化器1450は、記号列バッファ1430に記憶された3つの記号列および低解像度画像データメモリ1040に記憶された画像データを符号化処理する。
【0100】
図10を参照して、以上のような構造を有する画像符号化器1050で実行される符号化処理(図2のS1100における処理)の手順について説明する。
【0101】
S1110にて、コントローラ1410に制御された記号列分解器1420は、高解像度画像データメモリ1030の内容を分解して、記号列バッファ1430に記憶させる。これと同時に、記号列分解器1420は、記号列カウンタ1440のカウンタ値を生成する。なお、この記号列分解器1420における処理の手順の詳細については後述する。
【0102】
S1130にて、コントローラ1410に制御されるデータ符号化器1450は、記号列バッファ1430に記憶されている以下の3つの記号列を、LZ77符号化で符号化処理して、高解像度符号化画像データメモリ1060に記憶させる。このとき記号列バッファ1430に記憶される記号列は、
S[0]から始まるSC[0]個の記号からなる記号列
S[1]から始まるSC[1]個の記号からなる記号列
S[2]から始まるSC[2]個の記号からなる記号列
である。ここで、3つの記号列が記憶されているのは、後述するキーの種類を3つに設定したためである。なお、本発明に係る画像符号化装置1000は、キーの種類が3つに設定されるものに限定されない。さらに、本発明に係る画像符号化装置1000は、データ符号化の方式がLZ77符号化であるものに限定されない。
【0103】
図6に高解像度符号化画像データメモリ1060に格納される符号化画像データのフォーマットの例を示す。符号化画像データ長1510の後に符号化画像データ1520が続くデータ構造が、符号化画像データの数だけ(この例では3回)繰り返される。符号化画像データ長1510は、符号化画像データ1520の長さをバイト数で表す4バイトのフィールドである。
【0104】
これに続いて、符号化画像データ長1530、符号化画像データ1540、符号化画像データ長1550、符号化画像データ1560が続けて記憶される。符号化画像データ長1530と符号化画像データ1540との関係、符号化画像データ長1550と符号化画像データ1560との関係は、いずれも上述した符号化画像データ長1510と符号化画像データ1520との関係と同じである。また、符号化画像データ長1530と符号化画像データ長1550とは、いずれも符号化画像データ長1510と同様に、4バイトのフィールドである。なお、本発明に係る画像符号化装置は、このようなデータフォーマットに限定されるものではない。
【0105】
S1140にて、コントローラ1410で制御されたデータ符号化器1450は、低解像度画像データメモリ1040に記憶された低解像度画像データを、図5に示すラスタスキャン順にLZ77符号化で符号化処理して、低解像度符号化画像データメモリ1070に記憶させる。
【0106】
低解像度符号化画像データメモリ1070のフォーマットについても、図7に示すように、符号化のデータの長さ1610の後に符号化画像データ1620が続くものとする。このようなデータ構造にすることによって、復号時に、画像全体を復号することなく、低解像度画像だけを個別に復号できることに注意すべきである。また、ここでは低解像度画像データメモリ1040の内容を高解像度画像データメモリ1030と同じ方法で符号化しているが、これはデータ符号化器1450の構成をより簡潔にするためである。このような簡潔性は多くの応用では好ましい。なお、本発明に係る画像符号化装置は、異なる2種類以上の符号化方式を適用するものに適用することもできる。
【0107】
以下、記号列分解器1420の詳細について説明する。
図11に、記号列分解器1420のブロック図を示す。記号列分解器1420は、第1カウンタ1424と、対応ピクセル番号レジスタ1426と、キーレジスタ1428と、これらを制御するコントローラ1422とを含む。
【0108】
コントローラ1422は、記号列分解器1420の全体を制御する。コントローラ1422には、図示しないCPUや、そのCPUで実行されるプログラムを記憶するメモリを含む。
【0109】
第1カウンタ1424は、高解像度画像データの要素数(ピクセル数)を表わす変数Iをカウントする。対応ピクセル番号レジスタ1426には、高解像度画像データメモリ1030の要素(ピクセル)に対応する相関の強い、低解像度画像データメモリ1040の要素(ピクセル)が記憶される。キーレジスタ1428には、高解像度画像データの要素(ピクセル)が対応する、分類されたキーの値が記憶される。
【0110】
図12を参照して、以上のような構造を有する記号列分解器1420で実行される分解処理(図10のS1110の処理)の手順について説明する。
【0111】
S1112にて、コントローラ1422は、第1カウンタ1424のカウンタ値を初期化(カウンタ値=0)する。以下、第1カウンタ1424のカウンタ値は、変数Iで示される。
【0112】
S1114にて、コントローラ1422は、3つの要素をもった1次元配列である記号列カウンタ1440の全ての要素を初期化する(SC[K]=0、K=0、1、2)。
【0113】
S1116にて、コントローラ1422は、高解像度画像データメモリ1030のI番目の要素(ピクセル)に対応する(相関の強い)低解像度画像データメモリ1040の要素(ピクセル)の番号Jを算出して、対応ピクセル番号レジスタ1426に記憶させる。
【0114】
この高解像度画像のピクセルが低解像度画像のどのピクセルに対応する算出は、符号化前処理器1020にて、高解像度画像と低解像度画像をどのように生成したかに、主として依存する。なお、ここで、高解像度画像と低解像度画像とを対応付けするのは、それぞれの間で相関が高いと考えられるピクセルどうしを対応付けすることである。高解像度画像の各ピクセルが、低解像度画像の各ピクセルのどれに対応することを示す規則が与えられる限り、どのような規則であってもよい。ただし、高解像度画像と低解像度画像の対応するピクセルの間の相関が低いか、または全くなければ、効率的な符号化が達成できないことになる。
【0115】
図3に示した画像例を用いてこの対応について説明する。画像の横幅をW(ここでは4)、高解像度画像データメモリ1030のI番目の要素に対応する低解像度画像データメモリ1040の要素の番号をJとすると、Jは以下のように算出される。なお、以下の説明では、画像の横幅Wは簡単のために偶数とし、Wを3/2倍した値をV(V=1.5×W)と想定する。
【0116】
図5に示すような、ラスタスキャン順に0から高解像度画像データメモリ1030の各要素(各ピクセル)に番号Iを割り当てた場合、そのI番目の要素の、元画像上でのピクセルとしてのXY座標は (I mod V)の値により、以下のように場合分けされる。なお、(X,Y)の形式で、XY座標を表わす。
(a) (I mod V)<W/2 の場合
(2 ×(I mod (W/2))+1,2×(I/V))・・・(1)
(b) W/2≦(I mod V)<Wの場合
(I mod (W/2), 2×(I/V)+1)・・・(2)
(c) (I mod V)≧Wの場合
(I mod (W/2)+W/2,2×(I/V) + 1 )・・・(3)
以下、低解像度画像データメモリ1040の要素(ピクセル)に、低解像度画像上でラスタスキャン順に、0から番号Jを対応付けて割り当てるとする。
【0117】
高解像度画像データメモリ1030のI番目の要素に対応する、低解像度画像データメモリ1040の要素の番号をJとすると、低解像度画像が元画像の1/2縮小にあたること、その横幅がW/2であること、式(1)、(2)、(3)からJは下記のようにして求められる。
(a) (I mod V)<W/2 の場合
J=(I mod (W/2))+(I/V)×(W/2)・・・(4)
(b) W/2≦(I mod V)<Wの場合
J=(I mod (W/2))/2 +( 2×(I/V)+1)/2×(W/2)                   ・・・(5)
(c) (I mod V)≧Wの場合
J=((I mod (W/2))+W/2)/2+((2×(I/V))+1)/2×(W/2)              ・・・(6)
S1118にて、コントローラ1422は、低解像度画像データメモリ1040の、対応ピクセル番号レジスタ1426の値が示す番号の要素を読み込み、値を変換して、キーレジスタ1428に記憶させる。このときの変換の規則は、以下のように与えられる。低解像度画像データメモリ1040から読み出されたピクセルの値をP、キーレジスタ1428の値をKとする。
K=0  (P=0のとき)
K=1  (1≦P≦254のとき)
K=2  (P=255のとき)
ここで、このようにキーレジスタ1428の値を設定したのは、通常の紙面では背景ピクセル(255)、文字が素(0)のピクセル値を取るピクセルが多く含まれ、低解像度ピクセルが背景(文字)ピクセルであれば、高解像度ピクセルも全て背景(文字)ピクセルである確率が高いと考えられるためである。この現象は、通常の文書では、特に背景ピクセルで顕著である。
【0118】
背景ピクセルの値や文字ピクセルの値に揺れがあるような場合は、たとえばキーレジスタ1428の値が、0や2になるようなピクセルの値に幅を持たせることが望ましい。たとえば、キーレジスタ1428の値Kを0にする条件を、「0≦P<16」、キーレジスタ1428の値Kを1にする条件を「16≦P<240」、キーレジスタ1428の値Kを2にする条件を「240≦P≦255」とするように設定することもできる。
【0119】
ここでは、このようにキーレジスタ1428の値Kを、3通りの値を取るように設計しているが、これは一例であって、本発明に係る画像符号化装置は、これに限定されない。
【0120】
さらに、キーレジスタ1428の値Kの他の設定としては、ピクセルの値Pを一定の整数で割った値に基づく場合なども考えられる。この場合は、ピクセルの値Pを割る整数の値に応じて、キーレジスタ1428の値Kがとりうる値の範囲も変動する。キーレジスタ1428の値Kの設定には、他にもいろいろなバリエーションが考えられる。キーレジスタ1428の値Kの設定においては、キーレジスタ1428の値Kによって、低解像度画像データメモリ1040から読み出されたピクセルに対応する高解像画像データメモリ1030のピクセルの値を予測できるものであること、すなわちキーレジスタ1428の値Kによって分類された高解像度画像データメモリ1030のピクセルの値が、同一分類内では一部の値に集中することが重要である。これによって、各分類内のエントロピーを下げることが可能になる。したがって、各分類ごとに符号化を行うことが、全てのピクセルをまとめて符号化するのに比べて符号化効率を向上させることにつながる。より一般的に言えば、高い相関を持つ二つのデータ系列の一方をキーとして、他方をサブデータ系列に分類すると、作成された各サブデータ系列の要素の値が、それぞれの中では一部の値に集中することになる。したがって、各サブデータ系列のエントロピーの和が、元のデータ系列よりも低くなり、符号化効率を向上させることができるのものである。
【0121】
なお、記号列バッファ1430の第1次元方向の要素の長さ、記号列カウンタ1440の要素の数は、どれもキーレジスタ1428の値Kの範囲によって定まる。そのため、キーレジスタ1428の値Kの範囲が変更されれば、このようなパラメータも変更されるべきものである。
【0122】
S1120にて、コントローラ1422は、高解像度画像データメモリ1030のI番目の要素(ピクセル)を、記号列バッファ1430のS[K][SC[K]]に代入する。
【0123】
S1122にて、コントローラ1422は、記号列カウンタ1440のK番目の値SC[K]に1を加算する。S1124にて、コントローラ1422は、第1カウンタ1424のカウンタ値Iに1を加算する。
【0124】
S1126にて、コントローラ1422は、第1カウンタ1424のカウンタ値Iが、高解像度画像データメモリ1030に含まれるピクセルの数と比較する。第1カウンタ1424のカウンタ値Iが、高解像度画像データメモリ1030に含まれるピクセルの数と等しければ(S1126にてYES)、この処理は終了する。もしそうでないと(S1126にてNO)、処理はS1116に戻されて、さらに次の要素(ピクセル)についての処理が行なわれる。
【0125】
以上のような構造およびフローチャートに基づく画像符号化装置1000の動作について説明する。
【0126】
撮像された画像データなどが入力画像データとして、入力画像データメモリ1010に記憶される。符号化前処理器1020は、入力画像データメモリ1010に記憶された入力画像データに基づいて、高解像度画像データと低解像度画像データとを作成する(S1000)。これにより、高解像度画像データメモリ1030には、図3に示す高解像度画像1210または図4に示す高解像度画像1310が記憶され、低解像度画像データメモリ1040には、図3に示す低解像度画像1220または図4に示す低解像度画像1320が記憶される。
【0127】
画像符号化器1050は、高解像度画像データと低解像度画像データとを予め定められた圧縮方式で符号化処理する(S1100)。このとき、まず、記号列分解器1420は、高解像度画像データメモリ1030の内容を分解して、記号列バッファ1430に記憶させる(S1110)。第1カウンタ1424のカウンタ値Iが初期化され(S1112)、記号列カウンタSC[K]が初期化される(S1114)。高解像度画像データメモリ1030のI番目の要素(ピクセル)に対応する(相関の強い)低解像度画像データメモリ1040の要素(ピクセル)の番号Jが算出される。このとき式(1)〜(6)を用いて、変数Iから番号Jが算出される(S1116)。低解像度画像データメモリ1040のJ番目の要素を読み込み、キー値Kに変換する(S1118)。高解像度画像データメモリ1030のI番目の要素(ピクセル)が、記号列バッファ1430のS[K][SC[K]]に代入される(S1120)。
【0128】
記号列カウンタ1440のK番目の値SC[K]に1が加算され(S1122)、第1カウンタ1424のカウンタ値Iに1が加算される(S1124)。第1カウンタ1424のカウンタ値Iが、高解像度画像データメモリ1030に含まれるピクセルの数に等しくなるまで(S1126にてYES)、S1116からS1124までの処理が繰返し実行されて、全ての要素(ピクセル)についての処理が行なわれる。
【0129】
このような動作により、高解像度画像データメモリ1030の要素(ピクセル)が、対応する低解像度画像データメモリ1040の要素(ピクセル)の値に従って分類される。ここで、高解像度画像データメモリ1030の各ピクセルの値と対応する低解像度画像データメモリ1040のピクセルの値に相関がある場合には、対応する低解像度画像データメモリ1040の値が近似していれば、元の高解像度画像データメモリ1030の各ピクセルの値が近似していることになる。したがって、低解像度画像データメモリ1040の対応するピクセルの値が近似するという条件で、高解像度画像データメモリ1030を分類すると、各分類の中では、ピクセルデータの値は一部の値に集中すると考えられる。別の言い方をすれば、各分類は、低いエントロピーを持つことになる。
【0130】
なお、この分類においては、上述した式(1)〜(6)が用いられる。図3に示す画像データの場合、たとえば、ピクセル(00)とピクセル(22)とが近似した値であって、ピクセル(02)とピクセル(20)とが近似した値であると想定する。この場合、それぞれが同じキーの値に変換されることになる。この場合、ピクセル(00)とピクセル(22)のいずれかに対応する、高解像度画像のピクセル(01)、ピクセル(10)、ピクセル(11)、ピクセル(23)、ピクセル(32)、ピクセル(33)が同じ分類になり、ピクセル(02)とピクセル(20)のいずれかに対応する、高解像度画像のピクセル(03)、ピクセル(12)、ピクセル(13)、ピクセル(21)、ピクセル(30)、ピクセル(31)が同じ分類になることを示す。このあと、高解像度画像のピクセルを上記の2つの分類ごとに符号化することで、高解像度画像のピクセルをまとめて符号化するよりも効率の高い符号化を実行できる。このようにして、図6に示すようなフォーマットで、高解像度符号化画像データメモリ1060に、符号化画像データが記憶される。
【0131】
その後、データ符号化器1450により、記号列バッファ1430に記憶されている以下の3つの記号列が、LZ77符号化で符号化処理されて、高解像度符号化画像データメモリ1060に記憶される(S1130)。
【0132】
低解像度画像データメモリ1040に記憶された低解像度画像データが、LZ77符号化で符号化処理されて、低解像度符号化画像データメモリ1070に記憶される(S1140)。これにより、図7に示すようなフォーマットで、低解像度符号化画像データメモリ1070に、符号化画像データが記憶される。
【0133】
さらに、符号化データ結合器1080により、高解像度符号化画像メモリ1060と低解像度符号化画像メモリ1070とに記憶されたデータが結合されて、そのデータが、結合符号化画像データメモリ1090に記憶される(S1200)。
【0134】
以上のようにして、本実施の形態に係る画像符号化装置によると、高解像度画像データを構成する要素を、低解像度画像データを構成する要素に関連付けて分類した。そして、その分類された高解像度画像データごとに符号化処理を実行すると、互いに高い相関のある高解像度画像データをまとめて、効率的に符号化できる。
【0135】
このことは、低解像度画像のピクセルの値をキーとして、対応している高解像度画像のピクセルを分類して、分類ごとに符号化することで符号化効率を向上させるために、高い相関を持つ複数のデータ系列の一方をキーとして、他方をサブデータ系列に分類することで、作成された各サブデータ系列の要素の値が、それぞれの中では一部の値に集中することになり、各サブデータ系列のエントロピーが下げられたことによるものである。
【0136】
また、本実施の形態に係る画像符号化装置によると、辞書に基づいた符号化に代表される、明示的な確率モデルを持たない符号化処理に適用できるので、この符号化処理が行なわれた符号化画像データを復号するときにも、その復号処理は軽量である。
【0137】
さらに、本実施の形態に係る画像符号化装置によると、特定のデータ系列の復号において、他のデータ系列の復号が不要であるように構成できるので、特に特定のデータ系列が、全体のデータ系列を統合してできるデータの概略を表している場合には、特定のデータ系列だけを復号することで、概略を知ることが可能となる。
【0138】
<第2の実施の形態>
以下、本発明の第2の実施の形態に係る画像復号装置について説明する。本実施の形態に係る画像復号装置は、第1の実施の形態に係る画像符号化装置に対応する復号装置である。
【0139】
図13に、本実施の形態に係る画像復号装置2000のブロック図を示す。図13に示すように、この画像復号装置2000は、符号化処理された高解像度画像を表わす符号化画像データと符号化処理された低解像度画像を表わす符号化画像データとが結合処理された結合符号化画像データを記憶する結合符号化画像データメモリ2010と、その結合符号化画像データを復号する前に、結合符号化画像データから高解像度画像を表わす符号化画像データと低解像度画像を表わす符号化画像データとを分離する復号前処理器2020と、分離された高解像度符号化画像データを記憶する高解像度符号化画像データメモリ2030と、分離された低解像度符号化画像データを記憶する低解像度符号化画像データメモリ2040と、高解像度画像を表わす符号化画像データと低解像度画像を表わす符号化画像データとを復号処理する画像復号器2050と、復号処理された高解像度画像を表わす画像データを記憶するための高解像度画像データメモリ2060と、復号処理された低解像度画像を表わす画像データを記憶するための低解像度画像データメモリ2070と、復号処理された高解像度画像を表わす画像データと復号処理された解像度画像を表わす画像データとを結合処理する画像データ結合器2080と含む。
【0140】
この画像復号装置2000における、結合符号化画像データメモリ2010と、高解像度符号化画像データメモリ2030と、低解像度符号化画像データメモリ2040と、高解像度画像データメモリ2060と、低解像度画像データメモリ2070と、出力画像データメモリ2090とは、一般的にコンピュータを含む計算システムに実装される記憶デバイスにより実現される。
【0141】
この画像復号装置2000における、復号前処理器2020と、画像復号器2050と、画像データ結合器2080とは、コンピュータにより実行されるソフトウェアで実現することも、ハードウェアで実現することも可能である。以下の説明では、この復号前処理器2020と、画像復号器2050と、画像データ結合器2080とは、コントローラを含む特定のハードウェアを有し、そのコントローラが予め定められたソフトウェアを実行することによりハードウェアを制御して、所定の機能を実現するものとして説明する。ただし、特定のハードウェアではなく、一般的なコンピュータを用いて、所定の機能を実現するものであってもよい。したがって、本発明の本質的な一局面は、このような機能をコンピュータに実現させるためのプログラムである。
【0142】
結合符号化画像データメモリ2010に記憶される符号化画像データ、すなわち本実施の形態に係る画像復号装置2000で復号処理されるデータについては、前述の第1の実施の形態に係る画像符号化装置1000で符号化処理でされた符号化画像データである。
【0143】
図14を参照して、本実施の形態に係る画像復号装置2000の画像データ復号処理の手順について説明する。
【0144】
S2000にて、画像復号装置2000は、復号前処理器2020を用いて、結合符号化画像データメモリ2010に記憶された符号化画像データから、高解像度符号化画像データと低解像度符号化画像データとを分離して、それぞれ、高解像度符号化画像データメモリ2030と低解像度符号化画像データメモリ2040とに記憶させる。このとき、前述の図8に示す結合符号化画像データから、図6に示す高解像度符号化画像データと図7に示す低解像度符号化画像データとが分離される。
【0145】
S2100にて、画像復号装置2000は、画像復号器2050を用いて、高解像度符号化画像データと低解像度符号化画像データとを第1の実施の形態に係る画像符号化装置に対応する伸張方式で復号処理して、復号処理されたデータを高解像度画像データメモリ2060と低解像度画像データメモリ2070とに記憶させる。この画像復号器2050における処理の手順の詳細については後述する。
【0146】
S2200にて、画像復号装置2000は、画像データ結合器2080を用いて、高解像度画像データメモリ2060と低解像度画像データメモリ2070とに記憶されたデータを結合して、出力画像データメモリ2090に記憶させる。
【0147】
以下、画像復号器2050の詳細について説明する。
図15に、画像復号器2050のブロック図を示す。なお、本実施の形態に係る画像復号装置2000の画像復号器2050においては、第1の実施の形態に係る画像符号化装置1000に用いられるLZ77符号化処理を実行するが、本発明に係る画像復号装置2000は、このLZ77符号化処理に限定して適用されるものではない。本発明に係る画像復号装置2000は、辞書に基づいた一般的な符号化処理に対応する復号処理に適用できるものである。
【0148】
画像復号器2050は、データ復号器2420と、記号列結合器2430と、記号列バッファ2440と、記号列カウンタ2450と、これらを制御するコントローラ2410とを含む。
【0149】
コントローラ2410は、画像復号器2050の全体を制御する。コントローラ2410には、図示しないCPUや、そのCPUで実行されるプログラムを記憶するメモリを含む。
【0150】
データ復号器2420は、符号化画像データから分離され、低解像度符号化画像データメモリ2040に記憶された低解像度符号化画像データと、記号列バッファ2440に記憶された符号化画像データとを復号処理する。
【0151】
なお、記号列バッファ2440および記号列カウンタ2450は、前述の第1の実施の形態に係る画像符号化装置1000の画像符号化器1050における記号列バッファ1430および記号列カウンタ1440とそれぞれ同じ構成であるため、ここでの詳細な説明は繰返さない。記号列結合器2430の構造の詳細については後述する。
【0152】
図16を参照して、以上のような構造を有する画像復号器2050で実行される復号処理(図14のS2100の処理)の手順について説明する。
【0153】
S2110にて、コントローラ2410に制御されたデータ復号器2420は、低解像度符号化画像データメモリ2040に記憶された低解像度符号化画像データを復号処理する。
【0154】
S2130にて、コントローラ2410に制御されたデータ復号器2420は、記号列バッファ2440に記憶されている以下の3つの記号列を、LZ77符号化に対応して復号処理する。このとき記号列バッファ2440に記憶されて、復号処理される記号列は、前述の第1の実施の形態に係る画像符号化装置1000と同様、
S[0]から始まるSC[0]個の記号からなる記号列
S[1]から始まるSC[1]個の記号からなる記号列
S[2]から始まるSC[2]個の記号からなる記号列
である。
【0155】
また、本実施の形態に係る画像復号装置2000においては、低解像度符号化画像データメモリ2040の符号化画像データと、記号列バッファ2440の記号列とを同じ方法で復号しているが、これはデータ復号器2420の構成をより簡潔にするためである。このような簡潔性は多くの応用では好ましい。なお、本発明に係る画像復号装置は、異なる2種類以上の復号方式を適用するものに適用することもできる。
【0156】
S2140にて、コントローラ2410に制御された記号列結合器2430は、復号処理された低解像度画像データと復号処理された記号列とに基づいて、高解像度画像データを作成する。なお、この記号列結合器2430における処理の手順の詳細については後述する。
【0157】
以下、記号列結合器2430の詳細について説明する。
図17に、記号列結合器2430のブロック図を示す。記号列結合器2430は、第1カウンタ2434と、対応ピクセル番号レジスタ2436と、キーレジスタ2438と、これらを制御するコントローラ2432とを含む。
【0158】
コントローラ2432は、記号列結合器2430の全体を制御する。コントローラ2432には、図示しないCPUや、そのCPUで実行されるプログラムを記憶するメモリを含む。
【0159】
第1カウンタ2434は、高解像度画像データの要素数(ピクセル数)を表わす変数Iをカウントする。対応ピクセル番号レジスタ2436には、高解像度画像データメモリ2060の要素(ピクセル)に対応する相関の強い、低解像度画像データメモリ2070の要素(ピクセル)が記憶される。キーレジスタ2438には、高解像度画像データの要素(ピクセル)が対応する、分類されたキーの値が記憶される。
【0160】
図18を参照して、以上のような構造を有する記号列結合器2430で実行される結合処理(図16のS2140の処理)の手順について説明する。
【0161】
S2142にて、コントローラ2432は、第1カウンタ2434のカウンタ値を初期化(カウンタ値=0)する。以下、第1カウンタ2434のカウンタ値は、変数Iで示される。
【0162】
S2144にて、コントローラ2432は、3つの要素をもった1次元配列である記号列カウンタ2450の全ての要素を初期化する(SC[K]=0、K=0、1、2)。
【0163】
S2146にて、コントローラ2432は、高解像度画像データメモリ2060のI番目の要素(ピクセル)に対応する(相関の強い)低解像度画像データメモリ2070の要素(ピクセル)の番号Jを算出して、対応ピクセル番号レジスタ2436に記憶させる。この高解像度画像のピクセルが低解像度画像のどのピクセルに対応する算出は、前述の第1の実施の形態に係る画像符号化装置1000における符号化前処理器1020にて、高解像度画像と低解像度画像をどのように生成したかに、主として依存する。このS2136における、変数Iから番号Jの算出は、前述の第1の実施の形態において説明した式(1)〜(6)にょり算出される。
【0164】
S2148にて、コントローラ2432は、低解像度画像データの、対応ピクセル番号レジスタ2436の値が示す番号の要素を読み込み、値を変換して、キーレジスタ2438に記憶させる。このときの変換の規則は、前述の第1の実施の形態と同様に、以下のように与えられる。低解像度画像データのピクセルの値をP、キーレジスタ1428の値をKとする。
K=0  (P=0のとき)
K=1  (1≦P≦254のとき)
K=2  (P=255のとき)
Kの種類が3種類に限定されないこと、Kの値を規定するPの値が上記のように限定されないことは、前述の第1の実施の形態と同様である。
【0165】
S2150にて、コントローラ2432は、記号列バッファ2440のS[K][SC[K]]の値を高解像度画像データのI番目の要素(ピクセル)に代入する。
【0166】
S2152にて、コントローラ2432は、記号列カウンタ2450のK番目の値SC[K]に1を加算する。S2154にて、コントローラ2432は、第1カウンタ2434のカウンタ値Iに1を加算する。
【0167】
S2156にて、コントローラ2432は、第1カウンタ2434のカウンタ値Iが、高解像度画像データのピクセルの数と比較する。第1カウンタ2434のカウンタ値Iが、高解像度画像データのピクセルの数と等しければ(S2156にてYES)、この処理は終了する。もしそうでないと(S2156にてNO)、処理はS2146に戻されて、さらに次の要素(ピクセル)についての処理が行なわれる。
【0168】
以上のような構造およびフローチャートに基づく画像復号装置2000の動作について説明する。
【0169】
前述の第1の実施の形態に係る画像符号化装置1000で符号化処理された結合符号化画像データが入力データとして、結合符号化画像データメモリ2010に記憶される。復号前処理器2020は、結合符号化画像データメモリ2010に記憶された結合符号化画像データから、高解像度符号化画像データと低解像度符号化画像データとを分離する(S2000)。これにより、高解像度符号化画像データメモリ2030には、図6に示す高解像度符号化画像データが記憶され、低解像度画像データメモリ2040には、図7に示す低解像度符号化画像データが記憶される。
【0170】
画像復号器2050は、高解像度画像データと低解像度画像データとを予め画像復号装置1000で実行された圧縮方式に対応する伸張方式で復号処理する(S2100)。このとき、まず、データ復号器2420が低解像度符号化画像データメモリ2040に記憶された低解像度符号化画像データを復号して低解像度画像データメモリ2070に記憶させる(S2110)。次いで、データ復号器2420が記号列バッファ2440に記憶された記号列を復号する(S2130)。
【0171】
記号列結合器2430は、復号された低解像度画像データと記号列とを用いて、データを記号列に記憶された内容に基づいて、データを結合して高解像度画像データを作成する。このとき、まず、第1カウンタ2434のカウンタ値Iが初期化され(S2142)、記号列カウンタSC[K]が初期化される(S2144)。高解像度画像データのI番目の要素(ピクセル)に対応する(相関の強い)低解像度画像データの要素(ピクセル)の番号Jが算出される。このとき式(1)〜(6)を用いて、変数Iから番号Jが算出される(S2146)。低解像度画像データのJ番目の要素を読み込み、キー値Kに変換する(S2148)。記号列バッファ2450のS[K][SC[K]]の値が高解像度画像データのI番目の要素(ピクセル)に代入される(S2150)。
【0172】
記号列カウンタ2450のK番目の値SC[K]に1が加算され(S2152)、第1カウンタ2434のカウンタ値Iに1が加算される(S2154)。第1カウンタ2434のカウンタ値Iが、高解像度画像データのピクセルの数に等しくなるまで(S2156にてYES)、S2146からS2154までの処理が繰返し実行されて、全ての要素(ピクセル)についての処理が行なわれる。
【0173】
このような動作により、高解像度画像データの要素(ピクセル)が、対応する低解像度画像データの要素(ピクセル)の値に従って処理されて、図19に示すように、高解像度画像2510と低解像度画像2520とが結合されて、出力画像2530が作成される。
【0174】
以上のようにして、本実施の形態に係る画像復号装置によると、高解像度画像データを構成する要素を、低解像度画像データを構成する要素に関連付けて分類して、その分類された高解像度画像データごとに符号化処理を実行することにより効率的に符号化された符号化画像データを復号処理することができる。
【0175】
<第3の実施の形態>
以下、本発明の第3の実施の形態に係る画像復号装置について説明する。本実施の形態に係る画像復号装置は、第1の実施の形態に係る画像符号化装置に対応する復号装置であって、第2の実施の形態に係る画像復号装置が有する機能に加えて、復号時に、低解像度画像および高解像度画像のいずれを復号するのかを選択できる機能を有する。それ以外については、前述の第2の実施の形態に係る画像復号装置2000と同じである。したがって、それらについてのここでの詳細な説明は繰返さない。
【0176】
図20を参照して、本実施の形態に係る画像復号装置3000のブロック図を示す。図20に示すように、この画像復号装置3000は、前述の第2の実施の形態に係る画像復号装置2000の構成に加えて、画像データ結合器2080に接続されたセレクタ3010を含む。このセレクタ3010に記憶された内容に基づいて、低解像度画像および高解像度画像のいずれを復号するのかが判断される。セレクタ3010に記憶された内容が「0」であると高解像度画像を出力するための高解像度画像データを、そうでないと低解像度画像を出力するための低解像度画像データを作成する。それ以外の構造は、前述の第2の実施の形態に係る画像復号装置2000の構造と同じである。それらの機能も同じである。したがって、それらについての詳細な説明はここでは繰返さない。
【0177】
図21を参照して、本実施の形態に係る画像復号装置3000の画像データ復号処理の手順について説明する。なお、図21に示すフローチャートの中で、前述の図14に示したフローチャートと同じ処理については同じステップ番号を付してある。それらの機能も同じである。したがって、それらについての詳細な説明はここでは繰返さない。
【0178】
S3000にて、画像復号装置3000は、画像復号器2050を用いて、高解像度画像データまたは低解像度画像データを復号する。このS3000における処理の詳細については後述する。
【0179】
S3100にて、画像復号装置3000は、復号処理された高解像度画像データまたは低解像度画像データを出力して、高解像度画像または低解像度画像を表示させる。
【0180】
図22を参照して、本実施の形態に係る画像復号装置3000における、画像復号器2050とセレクタ3010とを含むブロック図を示す。図21に示すように、セレクタ3010は、画像復号器2050に接続されたコントローラ2410に接続されている。コントローラ2410は、セレクタ3010に記憶された内容に基づいて、高解像度画像および低解像度画像のいずれを復号するのかを決定して、データ復号器2420を制御して必要な復号処理を実行する。それ以外の構造は、前述の第2の実施の形態に係る画像復号装置2000の構造と同じである。それらの機能も同じである。したがって、それらについての詳細な説明はここでは繰返さない。
【0181】
図23を参照して、以上のような構造を有する画像復号器2050で実行される復号処理(図21のS3000の処理)の手順について説明する。
【0182】
S3010にて、コントローラ2410に制御されたデータ復号器2420は、低解像度符号化画像データメモリ2040に記憶された低解像度符号化画像デデータを復号処理する。
【0183】
S3020にて、コントローラ2410は、セレクタ3010の内容が「0」であるか否かを判断する。セレクタ3010の内容が「0」であると(S3020にてYES)、処理はS3030に移される。もしそうでないと(S3020にてNO)、処理はS3040に移される。
【0184】
S3030にて、コントローラ2410に制御されたデータ復号器2420は、記号列バッファ2440に記憶されている3つの記号列を、LZ77符号化に対応して復号処理する。
【0185】
S3040にて、コントローラ2410は、セレクタ3010の内容が「0」であるか否かを判断する。セレクタ3010の内容が「0」であると(S3040にてYES)、処理はS2140に移される。もしそうでないと(S3040にてNO)、この処理は終了する。なお、S2140における処理は、前述の第2の実施の形態に係る画像復号装置2000における処理と同じである。
【0186】
以上のような構造およびフローチャートに基づく画像復号装置3000の動作について説明する。
【0187】
復号前処理器2020により、結合符号化画像データが、高解像度符号化画像データと低解像度符号化画像データとに分離される(S2000)。低解像度符号化画像データが、データ復号器2420により復号され、低解像度画像データが低解像度画像データメモリ2070に記憶される(S3010)。
【0188】
セレクタ3010に「0」が記憶されていると(S3020にてYES)、記号列バッファ2440に記憶された記号列が、データ復号器2420により復号される(S3030)。さらに、セレクタ3010に「0」が記憶されていると(S3040にてYES)、復号処理された低解像度画像データと記号列とに基づいて、高解像度画像データが作成される(S2140)。作成された高解像度画像データは出力画像データメモリ2090に記憶される。
【0189】
一方、セレクタ3010に「0」が記憶されていないと(S3020にてNO)、記号列バッファ2440に記憶された記号列の復号処理は実行されず、高解像度画像データも作成されない。
【0190】
以上のようにして、本実施の形態に係る画像復号装置によると、粗い解像度で画像の全体を早く知りたいという場合と、細かい解像度で画像の詳細を知りたいという場合とに対応して、低解像度画像を作成するのか、高解像度画像を作成するのかを選択することができる。このような機能は、画像閲覧システムなどにおいて大きな効果を発現する。
【0191】
なお、本実施の形態に係る画像復号装置は、高解像度と低解像度との2つの種類の解像度の画像のいずれかを選択するようにしたが、3種類以上の解像度の中から1の解像度の画像を選択するようにしてもよい。
【0192】
<第4の実施の形態>
以下、本発明の第4の実施の形態に係る画像符号化装置について説明する。第1の実施の形態に係る画像符号化装置が、画像を高解像度と低解像度の2階層の解像度に分解して符号化処理を実行するのに対して、本実施の形態に係る画像符号化装置は、画像を3階層以上の解像度に分解して符号化処理を実行する機能を有する。それ以外については、前述の第1の実施の形態に係る画像符号化装置1000と同じである。したがって、それらについてのここでの詳細な説明は繰返さない。なお、以下の説明では、本実施の形態に係る画像符号化装置は、(M+1)種類の解像度の画像データを符号化処理すると想定する。
【0193】
本実施の形態に係る画像符号化装置は、相関を持つデータ系列の一方をキーとして他方のデータ系列を分解して符号化するという手順を繰り返すことで、再帰的に3階層以上の解像度の階層に対して、効率的に符号化処理を実行する。
【0194】
図24に、本実施の形態に係る画像符号化装置4000のブロック図を示す。図24に示すように、この画像符号化装置4000は、前述の第1の実施の形態に係る画像符号化装置1000の高解像度画像データメモリ1030および低解像度画像データメモリ1040に代えて、解像度が高い方から、第0のレベル画像データメモリ4020、第1のレベル画像データメモリ4030、第Mのレベル画像データメモリ4040の、(M+1)個のデータメモリを有する。
【0195】
さらに、この画像符号化装置4000は、前述の第1の実施の形態に係る画像符号化装置1000の高解像度符号化画像データメモリ1060および低解像度符号化画像データメモリ1070に代えて、解像度が高い方から、第0のレベル符号化画像データメモリ4060、第1のレベル符号化画像データメモリ4070、第Mのレベル符号化画像データメモリ4080の、(M+1)個のデータメモリを有する。
【0196】
さらに、この画像符号化装置4000は、前述の第1の実施の形態に係る画像符号化装置1000の符号化前処理器1020に代えて、この符号化前処理器1020とはデータメモリとの接続関係が異なる、符号化前処理器4010を有する。この画像符号化装置4000は、前述の第1の実施の形態に係る画像符号化装置1000の画像符号化器1050に代えて、この画像符号化器1050とはデータメモリとの接続関係が異なる、画像符号化器4050を有する。この画像符号化装置4000は、前述の第1の実施の形態に係る画像符号化装置1000の符号化データ結合器1080に代えて、この符号化データ結合器1080とはデータメモリとの接続関係が異なる、符号化データ結合器4090を有する。
【0197】
図25を参照して、本実施の形態に係る画像符号化装置4000の画像データ符号化処理の手順について説明する。
【0198】
S4000にて、画像符号化装置4000は、符号化前処理器4010を用いて、入力画像データメモリ1010に記憶された入力画像データに基づいて、(M+1)種類の解像度(第0のレベル〜第Mのレベル)の画像データを作成して、それぞれ、第0のレベル画像データメモリ4020、第1のレベル画像データメモリ4030、第Mのレベル画像データメモリ4040に記憶させる。
【0199】
このS4000の処理においては、たとえば、図4に示すようにして、高解像度側の第Lのレベル画像(入力画像1300)から、それよりも1つ解像度のレベルが低い第(L+1)のレベル画像(低解像度画像1320)を作成する。さらに、この第(L+1)のレベル画像1320を高解像度側の画像として、それよりも1つ解像度のレベルが低い第(L+2)のレベル画像を作成する。このような処理を(M+1)回繰返すと、図26に示すように、入力画像(第0のレベル画像)に対して、解像度が高い方から低くなる順に、第1のレベルの画像、第2のレベルの画像、…、第(M−1)のレベルの画像、第Mのレベルの画像の(M+1)個の画像を作成することができる。
【0200】
すなわち、入力画像から第0のレベルの解像度の画像(高解像度画像に対応)、第1のレベルの解像度の画像(低解像度画像に対応)を作成して、今度は第1のレベルの解像度の画像を入力として第1のレベルの解像度の画像および第2のレベルの解像度の画像を作成する。図26に概念的に示すように、この処理を繰り返すことで、第Mのレベルの解像度の画像に到達できる。入力画像と高解像度画像が異なる場合についても、同様に再帰的に処理することで第Mのレベルの解像度の画像に到達できる。なお、このようにして処理される画像は図4に示される画像に限定されるものではない。
【0201】
S4100にて、画像符号化装置4000は、画像符号化器4050を用いて、各レベルの解像度の画像データを予め定められた圧縮方式で符号化処理して、符号化処理されたデータを、それぞれ、第0のレベル符号化画像データメモリ4060、第1のレベル符号化画像データメモリ4070、第Mのレベル符号化画像データメモリ4080に記憶させる。この画像符号化器4050における処理の手順の詳細については後述する。
【0202】
S4200にて、画像符号化装置4000は、符号化データ結合器4090を用いて、第0のレベル符号化画像データメモリ4060、第1のレベル符号化画像データメモリ4070、第Mのレベル符号化画像データメモリ4080に記憶されたデータを結合して、所定のレベルの解像度の画像に対応する結合符号化画像データを作成して、作成された符号化画像データを結合符号化画像データメモリ1090に記憶させる。
【0203】
図27に、本実施の形態に係る画像符号化装置4000における、画像符号化器4050のブロック図を示す。図27に示すように、画像符号化器4050は、前述の第1の実施の形態に係る画像符号化装置1000の画像符号化器1050の構造に加えて、コントローラ1410に接続されたレベルレジスタ4052をさらに含む。レベルレジスタ4052は、解像度のレベル(数字が大きいほど低解像度)を記憶する。コントローラ1410は、解像度を1つ低くする処理ごとにレベルレジスタ4052に記憶されるデータをインクリメントして、そのデータが予め定められた解像度(Mとする。)になると、そのレベルの解像度の画像データを符号化して処理を終了させる。それ以外の構造は、前述の第1の実施の形態に係る画像符号化装置1000の構造と同じである。それらの機能も同じである。したがって、それらについての詳細な説明はここでは繰返さない。
【0204】
図28を参照して、以上のような構造を有する画像符号化器4050で実行される符号化処理(図25のS4100の処理)の手順について説明する。
【0205】
S4110にて、コントローラ1410は、レベルレジスタLを初期化(L=0)する。S4120にて、コントローラ1410に制御された記号列分解器1420は、第Lのレベルの解像度の画像データを記号列に分解する。分解された記号列は、記号列バッファ1430に記憶される。
【0206】
S4130にて、コントローラ1410に制御されたデータ符号化器1450は、記号列バッファ1430に記憶された記号列を符号化処理する。S4140にて、コントローラ1410は、レベルレジスタLに1を加算する。S4150にて、コントローラ1410は、レベルレジスタLと定数Mとを比較する。レベルレジスタLが定数Mと等しいと(S4150にてYES)、処理はS4160に移される。もしそうでないと(S4150にてNO)、処理はS4120に戻され、次のレベルの解像度の画像データについての処理が実行される。
【0207】
S4160にて、コントローラ1410に制御されたデータ符号化器1450は、第L(=M)のレベルの解像度の画像データを符号化処理する。このような処理が繰返し実行されて作成された結合符号化画像データが、結合符号化画像データメモリ1090に記憶される。
【0208】
図29に、結合符号化画像データメモリ1090のデータフォーマットの例を示す。階層数フィールド4500は、いくつの階層を符号化したかを示す4バイトフィールドである。ここでは、(M+1)という値が4バイト整数で格納されている。この階層数フィールド4500に続いて、第Mのレベルに対応する第Mのレベル解像度符号化画像に対応する符号化画像データ4510が続き、以下、解像度レベルが下がる順に(解像度自体は高くなる順に)、第1のレベル解像度符号化画像データ4520、第0のレベル解像度符号化画像データ4530まで続く。一般化された第Lのレベル解像度符号化画像データについては、第Lのレベル解像度符号化画像データメモリの内容がそのまま使用される。
【0209】
以上のようにして、本実施の形態に係る画像符号化装置によると、画像を階層的に分解して、効率的に符号化することが実行できる。また、解像度の低い画像に対応するデータをデータ列の先頭側に置いて、符号化画像データの先頭からの一部分を読み込むだけで、その一部分のみを復号処理して、解像度の低い画像を表示して、早く画像の概略をユーザに表示することができる。
【0210】
<第5の実施の形態>
以下、本発明の第5の実施の形態に係る画像復号装置について説明する。本実施の形態に係る画像復号装置は、第4の実施の形態に係る画像符号化装置に対応する復号装置である。
【0211】
本発明の第5の実施の形態に係る画像復号装置について説明する。第2の実施の形態に係る画像復号装置が、画像を高解像度と低解像度の2階層の解像度に分解して復号処理を実行するのに対して、本実施の形態に係る画像復号装置は、画像を3階層以上の解像度に分解して復号処理を実行する機能を有する。それ以外については、前述の第2の実施の形態に係る画像復号装置2000と同じである。したがって、それらについてのここでの詳細な説明は繰返さない。なお、以下の説明では、本実施の形態に係る画像復号装置は、(M+1)種類の解像度の画像データを復号処理すると想定する。
【0212】
本実施の形態に係る画像復号装置は、相関を持つデータ系列の一方をキーとして他方のデータ系列を分解して符号化するという手順を繰り返すことで、再帰的に3階層以上の解像度の階層に対して、効率的に符号化処理をされた符号化画像データに対する復号処理を実行する。
【0213】
図30に、本実施の形態に係る画像復号装置5000のブロック図を示す。図30に示すように、この画像復号装置5000は、前述の第2の実施の形態に係る画像復号装置2000の高解像度符号化画像データメモリ2030および低解像度符号化画像データメモリ2040に代えて、解像度が高い方から、第0のレベル符号化画像データメモリ5020、第1のレベル符号化画像データメモリ5030、第Mのレベル符号化画像データメモリ5040の、(M+1)個のデータメモリを有する。
【0214】
さらに、この画像復号装置5000は、前述の第2の実施の形態に係る画像復号装置2000の高解像度画像データメモリ2060および低解像度画像データメモリ2070に代えて、解像度が高い方から、第0のレベル画像データメモリ5060、第1のレベル画像データメモリ5070、第Mのレベル画像データメモリ5080の、(M+1)個のデータメモリを有する。
【0215】
さらに、この画像復号装置5000は、前述の第2の実施の形態に係る画像復号装置2000の復号前処理器2020に代えて、この復号処理器2020とはデータメモリとの接続関係が異なる、復号前処理器5010を有する。この画像復号装置5000は、前述の第2の実施の形態に係る画像復号装置2000の画像復号器2050に代えて、この画像復号器2050とはデータメモリとの接続関係が異なる、画像復号器5050を有する。この画像復号装置5000は、前述の第2の実施の形態に係る画像復号装置2000の画像データ結合器2080に代えて、この画像データ結合器2080とはデータメモリとの接続関係が異なる、画像データ結合器5090を有する。
【0216】
図31を参照して、本実施の形態に係る画像復号装置5000の画像データ復号処理の手順について説明する。
【0217】
S5000にて、画像復号装置5000は、復号前処理器5010を用いて、結合符号化画像データメモリ2010に記憶された符号化画像データに基づいて、(M+1)種類の解像度(第0のレベル〜第Mのレベル)の符号化画像データを作成して、それぞれ、第0のレベル符号化画像データメモリ5020、第1のレベル符号化画像データメモリ5030、第Mの符号化レベル画像データメモリ5040に記憶させる。このとき、第4の実施の形態において説明した図29に示すデータフォーマットに基づいて、(M+1)種類の解像度(第0のレベル〜第Mのレベル)の符号化画像データが作成される。すなわち、このS5000の処理は、符号化データを各解像度に対応するデータに分解する処理である。
【0218】
S5100にて、画像復号装置5000は、画像復号器5050を用いて、各レベルの解像度の符号化画像データを、第4の実施の形態に係る画像符号化装置4000で用いられた圧縮方式に対応する伸張方式で復号処理して、復号処理されたデータを、それぞれ、第0のレベル画像データメモリ5060、第1のレベル画像データメモリ5070、第Mのレベル画像データメモリ5080に記憶させる。この画像復号器5050における処理の手順の詳細については後述する。
【0219】
S5200にて、画像復号装置5000は、画像データ結合器5090を用いて、第0のレベル画像データメモリ5060、第1のレベル画像データメモリ5070、第Mのレベル画像データメモリ5080に記憶されたデータを結合して、所定のレベルの解像度の画像データを作成して、作成された画像データを出力画像データメモリ2090に記憶させる。
【0220】
図32に、本実施の形態に係る画像復号装置5000における、画像復号器5050のブロック図を示す。図32に示すように、画像復号器5050は、前述の第2の実施の形態に係る画像復号装置1000の画像符号化器1050の構造に加えて、コントローラ2410に接続されたレベルレジスタ5052をさらに含む。レベルレジスタ5052は、解像度のレベル(数字が大きいほど低解像度)を記憶する。コントローラ2410は、予め定められた解像度(Mとする。)を初期値として解像度を1つ高くする処理ごとにレベルレジスタ5052に記憶されるデータをデクリメントして、そのデータが「0」になると、そのレベルの解像度の符号化画像データを復号して処理を終了させる。それ以外の構造は、前述の第2の実施の形態に係る画像復号装置2000の構造と同じである。それらの機能も同じである。したがって、それらについての詳細な説明はここでは繰返さない。
【0221】
図33を参照して、以上のような構造を有する画像復号器5050で実行される復号処理(図31のS5100の処理)の手順について説明する。
【0222】
S5110にて、コントローラ2410に制御されたデータ復号器2420は、第Mのレベルの解像度の符号化画像データを復号する。復号された画像データは、第Mのレベル画像データメモリ5080に記憶される。
【0223】
S5120にて、コントローラ2410は、レベルレジスタLに(M−1)を代入する。この内容は、レベルレジスタ5052に記憶される。S5130にて、コントローラ2410に制御されたデータ復号器2420は、第Lのレベルの解像度の記号列バッファのデータを復号する。S5140にて、コントローラ2410に制御された記号列結合器2430は、第Lのレベルの解像度の画像データを作成する。
【0224】
S5150にて、コントローラ2410は、レベルレジスタLから1を減算する。この内容は、レベルレジスタ5052に記憶される。S5160にて、コントローラ2410は、レベルレジスタLが負であるか否かを判断する。レベルレジスタLが負であると(S5160にてYES)、この処理は終了する。もしそうでないと(S5160にてNO)、処理はS5130に戻され、次のレベルの解像度の符号化画像データについての処理が実行される。
【0225】
ここで、S5100(S5110〜S5160)の処理を確認的に記載すると、第Mレベルの解像度の符号化画像データを復号(S5110)した後、第(L+1)レベル画像データメモリに格納されている第(L+1)レベルの解像度の画像を参照しながら、記号列バッファ2440に格納されている(S5130で復号された)内容から第Lレベルの解像度画像を復号(作成)して(S5140)、第Lレベルの画像データメモリに格納するという一連の処理を、L=M−1、M−2、…、0について順次行なう。すなわち、このような復号処理を順次行い、異なるレベルの解像度の画像を参照しながら、符号化データを復号することになる。すなわち、各解像度の画像が独立して復号されるものではない。
【0226】
本実施の形態に係る画像復号装置5000においては、図34に示すように、解像度が高い方から低くなる順に、第0のレベルの画像、第1のレベルの画像、第2のレベルの画像、…、第(M−1)のレベルの画像、第Mのレベルの画像の(M+1)個の画像に基づいて、出力画像データを作成することができる。すなわち、解像度の階層を1つずつたどって再帰的に復号処理することになる。第Mレベルの画像と結合されることで第(M−1)レベル画像が復元され、復元された第(M−1)レベルの画像を用いて、第(M−2)レベルの画像が復元されるという処理を繰返して、第0レベルの画像が復元されることが示される。
【0227】
以上のようにして、本実施の形態に係る画像復号装置によると、画像を階層的に分解して効率的に符号化した符号化画像データを復号処理することができる。また、解像度の低い画像に対応するデータをデータ列の先頭側に置いて、符号化画像データの先頭からの一部分を読み込むだけで、その一部分のみを復号処理して、解像度の低い画像を表示して、早く画像の概略をユーザに表示することができる。
【0228】
なお、本実施の形態に係る画像復号装置に、第3の実施の形態に係る画像復号装置のセレクタを設けて、セレクタにどこまでの解像度の画像データに復号するのかを設定しておいて、ユーザが必要とする解像度の画像データに復号するようにしてもよい。
【0229】
<第6の実施の形態>
以下、本発明の第6の実施の形態に係る画像符号化装置について説明する。第1の実施の形態に係る画像符号化装置が、画像を高解像度と低解像度の2階層の解像度に分解して符号化処理を実行するのに対して、本実施の形態に係る画像符号化装置は、符号化処理の対象を動画像として、動画像に含まれるフレーム間の相関を利用して、連続したフレームを符号化処理を実行する機能を有する。それ以外については、前述の第1の実施の形態に係る画像符号化装置1000と同じである。したがって、それらについてのここでの詳細な説明は繰返さない。なお、以下の説明では、本実施の形態に係る画像符号化装置は、(M+1)フレームの画像データを符号化処理すると想定する。
【0230】
本実施の形態に係る画像符号化装置は、第4の実施の形態における画像符号化装置における解像度の階層を、連続したフレームに置換するものである。
【0231】
図35に、本実施の形態に係る画像符号化装置6000のブロック図を示す。図35に示すように、この画像符号化装置6000は、前述の第1の実施の形態に係る画像符号化装置1000の高解像度画像データメモリ1030および低解像度画像データメモリ1040に代えて、フレームの時系列の早い方から、第0のフレーム画像データメモリ6020、第1のフレーム画像データメモリ6030、第Mのフレーム画像データメモリ6040の、(M+1)個のデータメモリを有する。
【0232】
さらに、この画像符号化装置6000は、前述の第1の実施の形態に係る画像符号化装置1000の高解像度符号化画像データメモリ1060および低解像度符号化画像データメモリ1070に代えて、フレームの時系列の早い方から、第0のフレーム符号化画像データメモリ6060、第1のフレーム符号化画像データメモリ6070、第Mのフレーム符号化画像データメモリ6080の、(M+1)個のデータメモリを有する。
【0233】
さらに、この画像符号化装置6000は、前述の第1の実施の形態に係る画像符号化装置1000の符号化前処理器1010に代えて、画像を撮像する撮像装置6010を有する。この画像符号化装置6000は、前述の第1の実施の形態に係る画像符号化装置1000の画像符号化器1050に代えて、この画像符号化器1050とはデータメモリとの接続関係が異なる、画像符号化器6050を有する。この画像符号化装置6000は、前述の第1の実施の形態に係る画像符号化装置1000の符号化データ結合器1080に代えて、この符号化データ結合器1080とはデータメモリとの接続関係が異なる、符号化データ結合器6090を有する。
【0234】
図36を参照して、本実施の形態に係る画像符号化装置6000の画像データ符号化処理の手順について説明する。
【0235】
S6000にて、画像符号化装置6000は、撮像装置6010により撮像された第Lのフレームの画像データを、時系列順に、第Lのフレーム画像データメモリに記憶する。この処理は、Lが0からMになるまで実行される。
【0236】
S6100にて、画像符号化装置6000の画像符号化器6050は、第Lのフレーム画像データメモリに記憶された画像データを符号化して、第Lのフレーム符号化画像データメモリに記憶する。この処理は、Lが0からMになるまで実行される。このとき、連続したフレームの相関の利用は、最も簡単には、連続したフレームの、同じ物理的位置にあるピクセルを対応させることで実現できる。時間的に先行する側のフレームから参照されたピクセルの値をキーにして、時間的に後続する側のフレームから参照されたピクセルを符号化することになる。個のこと自体は、前述の第1の実施の形態に係る画像符号化装置において、低解像度画像から参照されたピクセルの値をキーにして、高解像度画像のピクセルを符号化したのと全く同様である。この対応するピクセルの定め方としては、MPEGなどの動画符号化で行なわれているように、動きベクトルを用いて、より精密に定めることも考えられる。本発明に係る画像符号化装置は、このようなものに限定されず、対応するピクセルはどのようにして求められるものであってもよい。
【0237】
S6200にて、画像符号化装置6000の符号化データ結合器6090は、各フレームの符号化画像データを結合して、結合符号化画像データメモリ1090に記憶させる。
【0238】
以上のようにして、本実施の形態に係る画像符号化装置によると、動画像の符号化処理に適用して、異なるフレーム間の相関を利用して符号化することにより、フレーム間の相関を利用して、連続したフレームから構成される動画の符号化を効率的に実行することができる。
【0239】
<第7の実施の形態>
以下、本発明の第7の実施の形態に係る画像復号装置について説明する。本実施の形態に係る画像復号装置は、第6の実施の形態に係る画像符号化装置に対応する復号装置である。
【0240】
本発明の第7の実施の形態に係る画像復号装置について説明する。第2の実施の形態に係る画像復号装置が、画像を高解像度と低解像度の2階層の解像度に分解して復号処理を実行するのに対して、本実施の形態に係る画像復号装置は、復号処理の対象を動画像として、動画像に含まれるフレーム間の相関を利用して、連続したフレームを符号化処理した符号化画像データの復号処理を実行する機能を有する。それ以外については、前述の第2の実施の形態に係る画像復号装置2000と同じである。したがって、それらについてのここでの詳細な説明は繰返さない。なお、以下の説明では、本実施の形態に係る画像復号装置は、(M+1)フレームの画像データを復号処理すると想定する。
【0241】
本実施の形態に係る画像復号装置は、第5の実施の形態における画像復号装置における解像度の階層を、連続したフレームに置換するものである。
【0242】
図37に、本実施の形態に係る画像復号装置7000のブロック図を示す。図37に示すように、この画像復号装置7000は、前述の第2の実施の形態に係る画像復号装置2000の高解像度符号化画像データメモリ2030および低解像度符号化画像データメモリ2040に代えて、フレームの時系列の早い方から、第0のフレーム符号化画像データメモリ7020、第1のフレーム符号化画像データメモリ7030、第Mのフレーム符号化画像データメモリ7040の、(M+1)個のデータメモリを有する。
【0243】
さらに、この画像復号装置7000は、前述の第2の実施の形態に係る画像復号装置2000の高解像度画像データメモリ2060および低解像度画像データメモリ2070に代えて、フレームの時系列の早い方から、第0のフレーム画像データメモリ7060、第1のフレーム画像データメモリ7070、第Mのフレーム画像データメモリ7080の、(M+1)個のデータメモリを有する。
【0244】
さらに、この画像復号装置7000は、前述の第2の実施の形態に係る画像復号装置2000の復号前処理器2020に代えて、この復号前処理器2020とはデータメモリとの接続関係が異なる、復号前処理器7010を有する。この画像復号装置7000は、前述の第2の実施の形態に係る画像復号装置2000の画像復号器2050に代えて、この画像復号器2050とはデータメモリとの接続関係が異なる、画像復号器7050を有する。この画像復号装置7000は、前述の第2の実施の形態に係る画像復号装置2000の画像データ結合器2080および出力画像データメモリ2090に代えて、動画像を表示する表示装置7090を有する。
【0245】
図38を参照して、本実施の形態に係る画像復号装置7000の画像データ復号処理の手順について説明する。
【0246】
S7000にて、画像復号装置7000は、前述の第6の実施の形態に係る画像符号化装置6000により符号化処理された符号化画像データを、(M+1)個のフレームの符号化画像データに分離して、順次、第Lのフレーム符号化画像データメモリに記憶させる。この処理は、Lが0からMになるまで実行される。
【0247】
S7100にて、画像復号装置7000の画像復号器7050は、第Lのフレーム符号化画像データメモリに記憶された符号化画像データを復号して、第Lのフレーム画像データメモリに記憶する。この処理は、Lが0からMになるまで実行される。
【0248】
S7200にて、画像復号装置7000の表示装置7090は、(M+1)個のフレーム画像データメモリに記憶された、(M+1)個のフレームの画像データを順次時系列順に出力して表示させる。
【0249】
以上のようにして、本実施の形態に係る画像復号装置によると、異なるフレーム間の相関を利用して動画を効率的に符号化処理した符号化画像データを復号処理できる。
【0250】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係る画像符号化装置のブロック図である。
【図2】本発明の第1の実施の形態に係る画像符号化装置で実行される処理の手順を示すフローチャートである。
【図3】本発明の第1の実施の形態に係る画像符号化装置において入力画像を高解像度画像と低解像度画像に分離する第1の例を示す図である。
【図4】本発明の第1の実施の形態に係る画像符号化装置において入力画像を高解像度画像と低解像度画像に分離する第2の例を示す図である。
【図5】本発明の第1の実施の形態に係る画像符号化装置において高解像度画像を符号化するときのスキャンの順序を示す図である。
【図6】第1の実施の形態に係る画像符号化装置における高解像度符号化画像データメモリに記憶されるデータのフォーマットを示す図である。
【図7】第1の実施の形態に係る画像符号化装置における低解像度符号化画像データメモリに記憶されるデータのフォーマットを示す図である。
【図8】第1の実施の形態に係る画像符号化装置における結合符号化画像データメモリに記憶されるデータのフォーマットを示す図である。
【図9】第1の実施の形態に係る画像符号化装置における画像符号化器のブロック図である。
【図10】第1の実施の形態に係る画像符号化装置における画像符号化器で実行される処理の手順を示すフローチャートである。
【図11】第1の実施の形態に係る画像符号化装置における記号列分解器のブロック図である。
【図12】第1の実施の形態に係る画像符号化装置における記号列分解器で実行される処理の手順を示すフローチャートである。
【図13】本発明の第2の実施の形態に係る画像復号装置のブロック図である。
【図14】第2の実施の形態に係る画像復号装置で実行される処理の手順を示すフローチャートである。
【図15】第2の実施の形態に係る画像復号装置における画像復号器のブロック図である。
【図16】第2の実施の形態に係る画像復号装置における画像復号器で実行される処理の手順を示すフローチャートである。
【図17】第2の実施の形態に係る画像復号装置における記号列結合器のブロック図である。
【図18】第2の実施の形態に係る画像復号装置における記号列結合器で実行される処理の手順を示すフローチャートである。
【図19】第2の実施の形態に係る画像復号装置において高解像度画像と低解像度画像を結合して、出力画像を作成する例を示す図である。
【図20】本発明の第3の実施の形態に係る画像復号装置のブロック図である。
【図21】第3の実施の形態に係る画像復号装置で実行される処理の手順を示すフローチャートである。
【図22】第3の実施の形態に係る画像復号装置における画像復号器のブロック図である。
【図23】第3の実施の形態に係る画像復号装置における画像復号器で実行される処理の手順を示すフローチャートである。
【図24】本発明の第4の実施の形態に係る画像符号化装置のブロック図である。
【図25】第4の実施の形態に係る画像符号化装置で実行される処理の手順を示すフローチャートである。
【図26】第4の実施の形態に係る画像符号化装置における符号化前処理器の動作を説明するための図である。
【図27】第4の実施の形態に係る画像符号化装置における画像符号化器のブロック図である。
【図28】第4の実施の形態に係る画像符号化装置における画像符号化器で実行される処理の手順を示すフローチャートである。
【図29】第4の実施の形態に係る画像符号化装置における結合符号化画像データメモリに記憶されるデータのフォーマットを示す図である。
【図30】本発明の第5の実施の形態に係る画像復号装置のブロック図である。
【図31】第5の実施の形態に係る画像復号装置で実行される処理の手順を示すフローチャートである。
【図32】第5の実施の形態に係る画像復号装置における画像復号器のブロック図である。
【図33】第5の実施の形態に係る画像復号装置における画像復号器で実行される処理の手順を示すフローチャートである。
【図34】第5の実施の形態における画像データ結合器の動作を説明するための図である。
【図35】本発明の第6の実施の形態に係る画像符号化装置のブロック図である。
【図36】第6の実施の形態に係る画像符号化装置で実行される処理の手順を示すフローチャートである。
【図37】本発明の第7の実施の形態に係る画像符号化装置のブロック図である。
【図38】第7の実施の形態に係る画像符号化装置で実行される処理の手順を示すフローチャートである。
【図39】本発明に関連する画像符号化装置のブロック図である。
【図40】本発明に関連する画像符号化装置で実行される処理の手順を示すフローチャートである。
【図41】本発明に関連する画像符号化装置において入力画像を高解像度画像と低解像度画像に分離する第1の例を示す図である。
【図42】本発明に関連する画像符号化装置において高解像度画像および低解像度画像を符号化するときのスキャンの順序を示す図である。
【図43】本発明に関連する画像符号化装置において入力画像を高解像度画像と低解像度画像に分離する第2の例を示す図である。
【図44】本発明に関連する画像符号化装置において高解像度画像を符号化するときのスキャンの順序を示す図である。
【符号の説明】
1000 画像符号化装置、1010 入力画像データメモリ、1020 符号化前処理器、1030 高解像度画像データメモリ、1040 低解像度画像データメモリ、1050 画像符号化器、1060 高解像度符号化画像データメモリ、1070 低解像度符号化画像データメモリ、1080 符号化データ結合器、1090 結合符号化画像データメモリ、1200、1300 入力画像、1210、1310 高解像度画像、1220、1320 低解像度画像、1230、1240、1250 ピクセル、1410 コントローラ、1420記号列分解器、1422 コントローラ、1424 第1カウンタ、1426対応ピクセル番号レジスタ、1428 キーレジスタ、1430 記号列バッファ、1440 記号列カウンタ、1450 データ符号化器、2000 画像復号装置、2010 結合符号化画像データメモリ、2020 復号前処理器、2030 高解像度符号化画像データメモリ、2040 低解像度符号化画像データメモリ、2050 画像復号器、2060 高解像度画像データメモリ、2070 低解像度画像データメモリ、2080 画像データ結合器、2090 出力画像データメモリ、2410 コントローラ、2420 データ復号器、2430 記号列結合器、2432 コントローラ、2434 第1カウンタ、2436 対応ピクセル番号レジスタ、2428 キーレジスタ、2430 記号列結合器、2440 記号列バッファ、2450 記号列カウンタ、2510 高解像度画像、2520 低解像度画像、2530 出力画像、3000 画像復号装置、3010 セレクタ、4000 画像符号化装置、4010 符号化前処理器、4020 第0のレベル画像データメモリ、4030 第1のレベル画像データメモリ、4040 第Mのレベル画像データメモリ、4050 画像符号化器、4052 レベルレジスタ、4060 第0のレベル符号化画像データメモリ、4070 第1のレベル符号化画像データメモリ、4080 第Mのレベル符号化画像データメモリ、4090 符号化データ結合器、5000 画像復号装置、5010 復号前処理器、5020 第0のレベル符号化画像データメモリ、5030 第1のレベル符号化画像データメモリ、5040 第Mのレベル符号化画像データメモリ、5050 画像復号器、5052 レベルレジスタ、5060 第0のレベル画像データメモリ、5070 第1のレベル画像データメモリ、5080 第Mのレベル画像データメモリ、5090 画像データ結合器、6000 画像符号化装置、6010 撮像装置、6020 第0のフレーム画像データメモリ、6030 第1のフレーム画像データメモリ、6040 第Mのフレーム画像データメモリ、6050 画像符号化器、6060 第0のフレーム符号化画像データメモリ、6070 第1のフレーム符号化画像データメモリ、6080 第Mのフレーム符号化画像データメモリ、6090 符号化データ結合器、7000 画像復号装置、7010 復号前処理器、7020 第0のフレーム符号化画像データメモリ、7030 第1のフレーム符号化画像データメモリ、7040 第Mのフレーム符号化画像データメモリ、7050 画像復号器、7060 第0のフレーム画像データメモリ、7070 第1のフレーム画像データメモリ、7080 第Mのフレーム画像データメモリ、7090 表示装置。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a technique for processing image data, and more particularly, to a data encoding apparatus for compressing and encoding image data, a data encoding method, a data decoding apparatus for decompressing and decoding, and a data decoding method.
[0002]
[Prior art]
As a data encoding process, an encoding process based on a dictionary is widely used. This is because the encoding process determines whether each subsequence of data to be encoded matches any of the subsequences that have been processed by the encoder, and provides information specifying such a pattern. It encodes itself.
[0003]
If the codeword obtained in this way is shorter than the original subsequence, the effect of compressing data can be obtained. The lossless encoding process using such a principle is widely used because a certain compression effect can be obtained regardless of the type of data. For example, a Ziv-Lempel code (LZ77 code), which is one of the encodings based on such a dictionary, is used as an encoding algorithm of a compression tool gzip. Regardless of whether the data to be compressed is data representing an image or data representing a text, such a tool has a low computational load in the decryption process, and is generally used for a general-purpose reversible compression process. Widely used for.
[0004]
Such a dictionary-based encoding process is excellent from the viewpoint of versatility, but generally has a relevance to the encoding process of increasing the compression efficiency by utilizing the correlation of different data sequences. Low.
[0005]
An image encoding apparatus related to the present invention that executes encoding processing based on a dictionary, which enhances compression efficiency using correlation between different data sequences, will be described.
[0006]
FIG. 39 shows a block diagram of the image encoding device 100. The image encoding apparatus 100 includes an input image data memory 102 for storing image data, a high-resolution image for encoding at the resolution of the input image before encoding the image, and a low-resolution image having half the resolution. A high-resolution image data memory 106 for storing the generated high-resolution image data; a low-resolution image data memory 108 for storing the generated low-resolution image data; A data encoder 110 for encoding image data representing a high-resolution image and image data representing a low-resolution image, and a high-resolution code for storing encoded image data representing the encoded high-resolution image Encoded image data memory 112, and a low-resolution encoded image data for storing encoded image data representing an encoded low-resolution image. A memory 114; a coded data combiner 116 for combining coded image data representing the coded high-resolution image with coded image data representing the coded low-resolution image; A combined coded image data memory 118 for storing the combined coded image data.
[0007]
FIG. 40 is a flowchart showing a procedure of processing executed by image encoding apparatus 100.
[0008]
In step (hereinafter, step is referred to as S) 100, encoding preprocessor 104 converts input image 300 stored in input image data memory 102 into low-resolution image 304 and high-resolution image 302. The data is separated and stored in the low-resolution image data memory 108 and the high-resolution image data memory 106, respectively.
[0009]
FIG. 41 shows a low-resolution image 304 and a high-resolution image 302 processed by the image encoding device 100. In the image shown in FIG. 41, the input image 300 is represented by four pixels both vertically and horizontally for the sake of simplicity. However, this is for simplification of the description, and the size of the image to be coded is usually larger than this.
[0010]
In FIG. 41, each pixel of the input image 300, the high-resolution image 302, and the low-resolution image 304 is distinguished by a given number. As is evident from the numbers attached to the pixels, the high resolution image 302 is a copy of the input image 300 and the low resolution image 304 is created by 1 / downsampling the input image 300.
[0011]
In S200, data encoder 110 encodes high-resolution image 302 stored in high-resolution image data memory 106 and low-resolution image 304 stored in low-resolution image data memory 108, and performs high-resolution encoding, respectively. The image data is stored in the image data memory 112 and the low-resolution coded image data memory 114. The order in which the pixels of the high-resolution image 302 and the low-resolution image 304 are encoded by the data encoder 110 is a normal raster scan order as shown in FIG.
[0012]
It is assumed that the data encoder 110 uses LZ77 encoding for encoding. This LZ77 encoding has the following operation principle.
(1) A symbol string of a fixed length (reference symbol string) extracted from the most recently coded one and a symbol string from the head of the uncoded symbol string (unreferenced coded string) are subjected to the longest matching method. To compare.
(2) Output information including the following as a codeword.
The number of the symbol in the reference symbol string where the longest match starts
・ How many symbols does the above match contain?
・ What is the first symbol that does not match in the unreferenced coded sequence?
(3) The length (the number of symbols) of a symbol string to be encoded at one time generally differs each time, but only the encoded symbol string is rewritten in such a way that the old reference symbol string is pushed out. Can be The head of the unencoded symbol string advances by the number of encoded symbol strings.
(4) The shorter the same pattern appears in the encoding target symbol string with higher frequency, the higher the encoding efficiency.
Note that the premise that "short identical patterns appear with high frequency" described in (4) above is the same as "high correlation between adjacent symbols included in the encoding target symbol string". It should be noted. This is because, for example, in encoding target data consisting of repetition of the same symbol string composed of two symbols, when a certain symbol is extracted, the next symbol is also determined, that is, the correlation coefficient becomes “1”. I understand. Also, it should be noted that the property of (4) is not limited to LZ77, but is a property generally applied to lossless encoding based on a dictionary.
[0013]
Since there are many literatures on LZ77 encoding, a more detailed description will not be repeated here.
[0014]
In S300, coded data combiner 116 combines the contents of low-resolution coded image data memory 114 and high-resolution coded image data memory 112 and stores them in combined coded image data memory 118.
[0015]
According to such an image encoding device 100, the high-resolution image 302 and the low-resolution image 304 are different data sequences having a clear correlation. In the coding of both, coding is efficiently performed using the correlation between the two. Furthermore, in decoding the low-resolution image 304, it is not necessary to decode the high-resolution image 302. The image encoding apparatus 100 is the simplest method of encoding such that the high-resolution image 302 and the low-resolution image 304 can be selectively obtained at the time of decoding. The pixels included in 304 are partially overlapped with each other, such as a pixel 310 shown in FIG. For this reason, the coding efficiency is deteriorated.
[0016]
Further, there is an image encoding apparatus improved to eliminate the overlapping pixels in order to improve the encoding efficiency.
[0017]
The block diagram of the improved image encoding device is the same as the block diagram shown in FIG. 39, and the flowchart of the improved image encoding device is the same as the flowchart shown in FIG.
[0018]
FIG. 43 shows a high-resolution image 502 and a low-resolution image 504 in the improved image encoding device. The input image 500 and the low-resolution image 504 are exactly the same as the input image 300 and the low-resolution image 304, respectively. However, the high-resolution image 502 is configured not to include the pixels included in the low-resolution image 504. If the high-resolution image 502 and the low-resolution image 504 are configured as described above, there is no pixel to be redundantly encoded, so that the encoding efficiency is improved.
[0019]
FIG. 44 shows an order of encoding the high-resolution image 502 in the data encoder 110 of the improved image encoding device. As described above, when encoding the high-resolution image 502 in the data encoder 110, there are the following problems.
[0020]
For encoding in the order shown in FIG. When the pixel 508 shown in FIG. 43 is encoded, the immediately preceding pixel is not the pixel adjacent to the left, but is another pixel 506 adjacent to the left. On the other hand, when encoding the pixel 308 of the high-resolution image 302 in FIG. 41, the pixel encoded immediately before is the pixel 306 adjacent to the left. This is because, in the high-resolution image 502 of FIG. 43, the pixel on the left of the pixel 508 is included in the low-resolution image 504 as the pixel 510. It is because it does not enter.
[0021]
As a characteristic of image data, it is known that the closer a pixel is, the higher the correlation is. However, in the improved image encoding device, when encoding the high-resolution image 502, some pixels have the highest correlation. Indicates that other pixels cannot be referenced. For this reason, it is difficult for the improved image encoding device to increase the encoding efficiency. This corresponds to general encoding processing based on a dictionary from the operating principle of LZ77.
[0022]
Even in such a case, of course, when the low-resolution image 504 and the high-resolution image 502 are sequentially encoded by the data encoder 110 and the processing is transferred from the low-resolution image 504 to the high-resolution image 502, This problem can be avoided by making the reference symbol string extremely long without initializing the reference symbol string. However, information indicating which substring the encoding target character string matches in the reference symbol string becomes long, which is not preferable in terms of encoding efficiency.
[0023]
Such two image encoding apparatuses are capable of encoding different data sequences having a correlation with each other by making use of the correlation by using an encoding method without an explicitly given probability model (conventional encoding method). (Method represented by an encoding method based on a dictionary).
[0024]
In connection with such a problem, Japanese Patent Laying-Open No. 7-336237 (Patent Document 1) discloses a method for compressing data information. The compression method disclosed in this publication is based on a Lempel-Ziv (LZ) compression process that creates a dictionary of phrases using preceding symbols and compresses the data stream using the dictionary. , The d context or d history h of a phrase is defined as the set of d bits immediately preceding it, as a function of the history associated with each of the phrases to be encoded, as a function of the dictionaries of the phrase to be encoded. Expanding and storing; comparing the compression efficiencies of the plurality of dictionaries with respect to previously encoded phrases to select a dictionary determined to provide the statistically highest potential compression; and the selected dictionary Encoding the next phrase using a particular history corresponding to the history of the next phrase.
[0025]
According to the compression method disclosed in this publication, by using different reference character strings depending on the encoding history at each time point, it is possible to achieve substantially the same effect by performing more efficient encoding. To do. This compression method is applied to encoding having a plurality of probability models by extending the range to general entropy encoding. This compression method is a method of performing encoding or decoding processing while selecting an explicitly given probability model based on encoded (at encoding) and decoded (at decoding) data.
[0026]
[Patent Document 1]
JP-A-7-336237
[0027]
[Problems to be solved by the invention]
However, the compression method disclosed in this publication aims to improve the efficiency of encoding a single data sequence. The above-described image encoding device and the improved image encoding device improve the efficiency of encoding using the correlation between different data sequences. For this reason, the compression method disclosed in this publication cannot be applied to the above-described image encoding device or the improved image encoding device. Therefore, even when these techniques are combined, a method of using the correlation of different data series in the encoding process while having the characteristic that the decoding process can be performed at high speed, especially like encoding based on a dictionary. Cannot be realized.
[0028]
The present invention has been made to solve the above-described problem, and performs efficient encoding based on a correlation of a plurality of data sequences, which has been difficult with conventional dictionary-based encoding. To provide a data encoding device capable of performing the above-described data encoding, and a data decoding method corresponding to the data encoding method. And a program and a recording medium for causing a computer to realize the methods.
[0029]
[Means for Solving the Problems]
A data encoding device according to a first invention stores a first data group including a plurality of data and a second data group including a plurality of data not included in the first data group. Storage means, determination means for determining the correspondence between the data included in the first data group and the data included in the second data group, and the first means based on the determined correspondence. Classification means for classifying a data group into a plurality of sub data groups; and first encoding means for encoding data included in the sub data group for each sub data group classified by the classification means And second encoding means for encoding data included in the second data group, encoded data obtained by encoding data included in the sub data group, and encoded data included in the second data group. Data and the encoded data And a coupling means for coupling to.
[0030]
According to the first invention, the association determined by the determining means is based on a correlation established between data included in the first data group and data included in the second data group. It is. The classification means classifies the first data group into a plurality of sub-data groups composed of data having a strong correlation based on such association. At this time, the data included in the classified one sub-data group has a strong correlation such that their values are close to each other. The first encoding means encodes data included in the sub data group for each classified sub data group, and the second encoding means encodes data included in the second data group. To process. The combining unit combines the encoded data obtained by encoding the data included in the sub-data group and the encoded data obtained by encoding the data included in the second data group. Thus, the first encoding unit performs the encoding process for each sub-data group composed of data having a strong correlation with each other, so that the entropy of the data included in this sub-data group can be reduced. As a result, coding efficiency can be improved by coding for each classification, and efficient coding based on the correlation of multiple data series, which was difficult with conventional dictionary-based coding. Can be provided.
[0031]
In a data encoding apparatus according to a second aspect of the present invention, in addition to the configuration of the first aspect, the determining means determines that data included in the first data group and data included in the second data group are data Means for determining the association so as to have a predetermined relationship with respect to the value of.
[0032]
According to the second invention, for example, in the case of still image data, the position value of a pixel is close, and in the case of moving image data, it is an adjacent frame. The association can be determined so as to have a relationship such as performing the association.
[0033]
In a data encoding device according to a third aspect of the present invention, in addition to the configuration of the second aspect of the invention, the deciding means includes a position in the image of the pixel data included in the first data group, and a position included in the second data group. Means for determining the association so as to have a relationship based on the position of the pixel data in the image.
[0034]
According to the third aspect, the data to be subjected to the encoding processing is data representing an image, and the data includes pixel data corresponding to a plurality of pixels constituting the image. The determining means determines the association based on the positions of the pixels in the image so that the images have a strong correlation with each other. In this way, since the data whose pixel positions are close to each other have a strong correlation with each other (the values of the pixel data are close to each other), the sub-data groups composed of these data are collectively subjected to the encoding process. Efficient encoding can be performed.
[0035]
In a data encoding device according to a fourth aspect of the present invention, in addition to the configuration of the third aspect, the determining means includes means for determining the association by a function using a position in an image.
[0036]
According to the fourth aspect, the correspondence between the data included in the first data group and the data included in the second data group is determined by a function using the XY coordinate values that are the positions of the pixels in the image. Can be.
[0037]
The data encoding apparatus according to a fifth aspect of the present invention further includes a dividing unit for dividing an image into a plurality of types of resolutions, in addition to the configuration of the third or fourth aspect. The first group of data includes data for high-resolution images, and the second group of data includes data for low-resolution images.
[0038]
According to the fifth aspect, for example, the dividing means creates high-resolution image data and low-resolution image data, and converts the high-resolution data into low-resolution pixels corresponding to the positions of the high-resolution pixels. Map to data. Thereby, a plurality of high-resolution data corresponding to one low-resolution data can be included in one sub-data group.
[0039]
The data encoding apparatus according to a sixth aspect of the present invention further includes, in addition to the configuration of the second aspect, division means for dividing a moving image into a plurality of frame images in a time series. The determining means has a relationship based on the data on the image of the specific frame included in the first data group and the data on the image earlier than the specific frame included in the second data group. Thus, means for determining the association is included.
[0040]
According to the sixth aspect, when encoding data representing a moving image, data at a certain position of a specific frame and data at the same position of a frame earlier than the specific frame are mutually different. Has a strong correlation. If these data are included in one sub-data group and subjected to the encoding process, the entropy of the data included in the sub-data group is reduced, and efficient encoding can be performed.
[0041]
In a data encoding apparatus according to a seventh aspect of the present invention, in addition to the configuration of any one of the first to sixth aspects, the classifying unit may be configured to convert the first data group into a sub-data group composed of data strongly related to each other. Including means for classifying.
[0042]
According to the seventh aspect, the sub-data group is composed of data having a strong relationship with each other, and the encoding process is performed for each of the sub-data groups. Therefore, the entropy of the data included in the sub-data group is reduced, and an efficient code is obtained. Can be implemented.
[0043]
In a data encoding apparatus according to an eighth aspect of the present invention, in addition to the configuration of any one of the first to sixth aspects, the classifying unit is configured to classify the first data group from data having mutually similar data values. Means for classifying the data into sub data groups.
[0044]
According to the eighth aspect, the sub-data group is composed of data whose data values are close to each other, and the encoding process is performed for each sub-data group. Therefore, the entropy of the data included in the sub-data group is reduced, and the efficiency is reduced. Encoding can be performed.
[0045]
According to a ninth aspect of the present invention, in addition to the configuration of any one of the first to eighth aspects, the data encoding apparatus further comprises a type of encoding process executed by the first encoding unit and a second encoding unit. Is a device that is the same type of encoding process as that performed by the device.
[0046]
According to the ninth aspect, the encoding process executed by the first encoding unit and the encoding process executed by the second encoding unit are the same type of encoding process. It is possible to provide a data encoding device with a small circuit scale by combining encoders that realize the means into one.
[0047]
A data encoding apparatus according to a tenth aspect of the present invention executes encoding processing based on a dictionary in addition to the configuration of the ninth aspect.
[0048]
According to the tenth aspect, efficient encoding can be executed in encoding processing based on a dictionary, which has been difficult in the past.
[0049]
The data decoding device according to an eleventh aspect includes a storage unit for storing the combined first encoded data group and the second encoded data group, and a data group stored in the storage unit. A dividing unit for dividing the data into a first encoded data group and a second encoded data group; and a sub data group by decoding encoded data included in the first encoded data group. A first decoding unit, a second decoding unit for decoding encoded data included in the second encoded data group to create a second data group, a sub data group and a second Creating means for creating a first data group based on the data group and according to the association.
[0050]
According to the eleventh aspect, the original data decoded by the data decoding device includes a first data group including a plurality of data and a second data group including a plurality of data not included in the first data group. And data groups. The sub-data group is a data group in which the first data group is classified based on the correspondence between the data included in the first data group and the data included in the second data group. The sub-data group is encoded into a first encoded data group for each sub-data group. This association is, for example, an association based on a correlation established between the data included in the first data group and the data included in the second data group. The first decoding means decodes the coded data included in the first coded data group divided by the dividing means to create a sub-data group, and the second decoding means generates a sub-data group. The encoded data included in the data group is decoded to create a second data group. The creating unit creates a first data group using the decoded sub-data group and the second data group, based on the association at the time of encoding. Thus, the original data can be created by decoding the encoded data. In the encoding process, data included in one classified sub-data group has a strong correlation such that their values are close to each other. Since the data included in the sub data group is subjected to the encoding process for each of the classified sub data groups, the entropy of the data included in the sub data group can be reduced, and the encoding efficiency can be improved. As a result, it is possible to provide a data decoding device corresponding to a data encoding device capable of executing efficient encoding based on the correlation of a plurality of data sequences, which has been difficult with conventional dictionary-based encoding. it can.
[0051]
In a data decoding device according to a twelfth aspect, in addition to the configuration of the eleventh aspect, the creating means includes a step of determining whether the data included in the first data group and the data included in the second data group correspond to each other. Means for creating the first data group so as to have a predetermined relationship with the value is included.
[0052]
According to the twelfth aspect, for example, in the case of still image data, since the position data of the pixel is close, and in the case of moving image data, it is an adjacent frame, so that the data values are approximate to each other. The first data group can be created so as to have a relationship such as the first data group.
[0053]
In a data decoding device according to a thirteenth aspect of the present invention, in addition to the configuration of the twelfth aspect, the creating means includes a position in the image of pixel data included in the first data group, and a position included in the second data group. Means for creating the first data group so as to have a relationship based on the position of the pixel data in the image is included.
[0054]
According to the thirteenth aspect, the original data to be decoded is data representing an image, and the data includes pixel data corresponding to a plurality of pixels forming the image. The creating unit creates the first data group based on the positions of the pixels in the image so as to have a strong correlation with each other. In this manner, in the encoding process, data having close pixel positions have a strong correlation with each other (pixel data values are close to each other). It is possible to provide a data decoding device that can decode the encoded data encoded in (1).
[0055]
In a data decoding device according to a fourteenth aspect, in addition to the configuration of the thirteenth aspect, the creating means includes means for creating a first data group by a function using a position in an image.
[0056]
According to a fourteenth aspect, there is provided a data decoding device capable of decoding encoded data that has been classified and encoded based on a correspondence determined by a function using XY coordinate values that are pixel positions in an image. Can be.
[0057]
A data decoding device according to a fifteenth aspect of the present invention further includes a designation unit for designating a resolution, in addition to the configuration of the thirteenth aspect.
[0058]
According to the fifteenth aspect, the original data includes data representing an image at a plurality of resolutions, and the specifying means can specify up to which resolution the image data is to be decoded.
[0059]
In a data decoding device according to a sixteenth aspect of the present invention, in addition to the configuration of the twelfth aspect, the creating means includes: data on an image of a specific frame included in the first data group; Means for generating a first group of data based on data for an image earlier than a particular frame to be generated.
[0060]
According to the sixteenth aspect, when decoding processing is performed on original data representing a moving image, data at a certain position of a specific frame and data at the same position of a frame earlier than the specific frame are mutually different. Has a strong correlation. It is possible to provide a data decoding device capable of decoding encoded data that has been efficiently encoded by including these data in one sub-data group.
[0061]
A data decoding device according to a seventeenth aspect of the present invention provides, in addition to the configuration of any one of the eleventh to sixteenth aspects, a type of decoding processing executed by the first decoding means and a type of decoding processing executed by the second decoding means The type of the decryption process is an apparatus that is the same process.
[0062]
According to the seventeenth aspect, the decoding process executed by the first decoding unit and the decoding process executed by the second decoding unit are the same type of decoding process. Can be combined into one to provide a data decoding device with a small circuit scale.
[0063]
A data decoding device according to an eighteenth aspect of the present invention, in addition to the configuration of the seventeenth aspect, performs the decoding process based on a dictionary.
[0064]
According to the eighteenth aspect, it is possible to provide a data decoding device capable of efficiently decoding encoded data based on a dictionary, which has been difficult in the past.
[0065]
In a data encoding method according to a nineteenth aspect, a first data group including a plurality of data and a second data group including a plurality of data not included in the first data group are prepared in advance. A preparing step, a determining step of determining a correspondence between the data included in the first data group and the data included in the second data group, and a step of determining the first data group based on the determined correspondence. A classification step of classifying the data into a plurality of sub data groups, a first encoding step of encoding data included in the sub data group for each sub data group classified in the classification step, and a second data A second encoding step of encoding data included in the group, encoded data in which data included in the sub data group is encoded, and a code in which data included in the second data group are encoded. Data And a combining step of engagement.
[0066]
According to the nineteenth aspect, the association determined in the determining step is an association based on a correlation established between data included in the first data group and data included in the second data group. And so on. In the classification step, the first data group is classified into a plurality of sub-data groups composed of data having a strong correlation based on such association. At this time, the data included in the classified one sub-data group has a strong correlation such that their values are close to each other. In a first encoding step, data included in the sub data group is encoded for each classified sub data group, and in a second encoding step, data included in the second data group is encoded. Perform encoding processing. In the combining step, the coded data obtained by coding the data included in the sub-data group and the coded data obtained by coding the data included in the second data group are combined. Thus, in the first encoding step, the encoding process is performed for each sub-data group composed of data having a strong correlation with each other, so that the entropy of data included in this sub-data group can be reduced. As a result, coding efficiency can be improved by coding for each classification, and efficient coding based on the correlation of multiple data series, which was difficult with conventional dictionary-based coding. Can be provided.
[0067]
A data decoding method according to a twentieth aspect includes: a preparing step of preparing a combined first coded data group and a second coded data group in advance; and a data group prepared in the preparing step. A dividing step of dividing the data into a first encoded data group and a second encoded data group, and a first step of decoding encoded data included in the first encoded data group to create a sub data group. A decoding step, a second decoding step of decoding encoded data included in the second encoded data group to create a second data group, and a sub data group and a second data group. Creating a first data group in accordance with the association.
[0068]
According to the twentieth aspect, the original data decoded by the data decoding method includes a first data group including a plurality of data and a second data group including a plurality of data not included in the first data group. And data groups. The sub-data group is a data group in which the first data group is classified based on the correspondence between the data included in the first data group and the data included in the second data group. The sub-data group is encoded into a first encoded data group for each sub-data group. This association is, for example, an association based on a correlation established between the data included in the first data group and the data included in the second data group. In a first decoding step, encoded data included in the first encoded data group, which has been divided in the dividing step, is decoded to create a sub data group, and in a second decoding step, a second data group is generated. The encoded data included in the encoded data group is decoded to create a second data group. In the creating step, the first data group is created based on such association using the decoded sub data group and the second data group. Thus, the original data can be created by decoding the encoded data. In the encoding process, data included in one classified sub-data group has a strong correlation such that their values are close to each other. Since the data included in the sub data group is subjected to the encoding process for each of the classified sub data groups, the entropy of the data included in the sub data group can be reduced, and the encoding efficiency can be improved. As a result, it is possible to provide a data decoding method corresponding to a data encoding method that can perform efficient encoding based on the correlation of a plurality of data sequences, which has been difficult with conventional dictionary-based encoding. it can.
[0069]
A program according to a twenty-first invention is a program for causing a computer to realize at least one of the data encoding method according to the nineteenth invention and the data decoding method according to the twentieth invention.
[0070]
According to the twenty-first aspect, there is provided a data encoding method and a data encoding method capable of performing efficient encoding based on a correlation of a plurality of data sequences, which have been difficult with conventional dictionary-based encoding. A program for causing a computer to execute any of the corresponding data decoding methods can be provided.
[0071]
A recording medium according to a twenty-second invention is a computer-readable recording medium on which the program according to the twenty-first invention is recorded.
[0072]
According to the twenty-second invention, a data encoding method and a data encoding method capable of performing efficient encoding based on a correlation of a plurality of data sequences, which are difficult with conventional dictionary-based encoding, It is possible to provide a recording medium on which a program for causing a computer to implement any of the corresponding data decoding methods is recorded.
[0073]
A data encoding device according to a twenty-third aspect includes a storage unit for storing a plurality of data groups ordered in advance, and a storage unit for storing a plurality of ordered data groups from each data included in one data group. Determining means for determining a correspondence relation to data included in the data group in the order, and classifying one data group into a sub-data group based on the corresponding data in the next data group based on the correspondence relation Classifying means, first coding means for coding each of the sub-data groups classified based on the classifying means, and a last-order data group among the plurality of ordered data groups And a second encoding means for encoding processing.
[0074]
According to the twenty-third aspect, it is possible to recursively classify data into sub-data groups and code them while referring to the next data group (when applied to an image, the resolution is one step coarser). it can.
[0075]
A data decoding device according to a twenty-fourth aspect includes a storage unit configured to store a combined encoded data group and a storage unit configured to divide the combined encoded data group into a plurality of ordered encoded data groups. Division means, first decoding means for decoding the last-ordered coded data group among the plurality of ordered coded data, and ordered coded data group other than the last-ordered coded data group And a second decoding means for decoding the data to generate a sub-data group, and a sub-data group included in a next data group from each data included in one data group included in the plurality of ordered encoded data. Determining means for determining the correspondence to the data to be processed, and integrating means for integrating the sub-data group into the data group based on the corresponding data of the next-order data group based on the correspondence relationship. Including.
[0076]
According to the twenty-fourth aspect, a code obtained by recursively classifying data into sub-data groups while referring to the next data group (when applied to an image, the resolution is one step coarser) is referred to. Decrypted data.
[0077]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the following description, the same components are denoted by the same reference numerals. Their names and functions are the same. Therefore, detailed description thereof will not be repeated.
[0078]
<First embodiment>
Hereinafter, an image encoding device according to the first embodiment of the present invention will be described.
[0079]
FIG. 1 shows a block diagram of image coding apparatus 1000 according to the present embodiment. As shown in FIG. 1, the image encoding apparatus 1000 includes an input image data memory 1010 for storing image data, and a high-resolution image for encoding at the resolution of the input image before encoding the image. , A pre-encoding processor 1020 for generating a low-resolution image having half the resolution thereof, a high-resolution image data memory 1030 for storing the generated high-resolution image data, and a low-resolution image memory for storing the generated low-resolution image data. A resolution image data memory 1040, an image encoder 1050 that encodes image data representing a high-resolution image and image data representing a low-resolution image, and an encoded image data representing an encoded high-resolution image. A high-resolution coded image data memory 1060 for storing, and coded image data representing a coded low-resolution image are stored. Data combining for coding low-resolution coded image data memory 1070 and coded image data representing a coded high-resolution image and coded image data representing a low-resolution coded image And a combined coded image data memory 1090 for storing the combined coded image data subjected to the combining process.
[0080]
In the image encoding device 1000, an input image data memory 1010, a high-resolution image data memory 1030, a low-resolution image data memory 1040, a high-resolution encoded image data memory 1060, and a low-resolution encoded image data memory 1070 The combined coded image data memory 1090 is generally realized by a storage device implemented in a computing system including a computer.
[0081]
In the image encoding apparatus 1000, the encoding pre-processor 1020, the image encoder 1050, and the encoded data combiner 1080 may be realized by software executed by a computer or by hardware. Is also possible. In the following description, the encoding preprocessor 1020, the image encoder 1050, and the encoded data combiner 1080 have specific hardware including a controller, and the controller executes predetermined software. The description will be made assuming that the hardware is controlled by executing the function to realize a predetermined function. However, instead of specific hardware, a general computer may be used to realize the predetermined function. Therefore, one essential aspect of the present invention is a program for causing a computer to realize such a function.
[0082]
The input image data stored in the input image data memory 1010, that is, the data that is encoded by the image encoding device 1000 according to the present embodiment will be described in detail. It is assumed that the input image data is a grayscale image of 256 gradations. Note that the image coding apparatus 1000 according to the present embodiment can be applied to the case of image data having a different number of gradations by appropriately changing the value of the corresponding parameter. Furthermore, since a color image is separated into YUV, RGB, and the like, resulting in a plurality of grayscale images, the image encoding device 1000 according to the present embodiment is applied only to grayscale images and monochrome images. It is not something to be done. That is, when applied to a color image, the process may be repeated as many times as necessary for the number of color components (usually 3 or 4). In the following description, the length of the register in each memory is assumed to be a necessary and sufficient length to represent a possible value, and will not be particularly described unless it is related to the format of the encoded image data. . The details of the structure of the image encoder 1050 will be described later.
[0083]
With reference to FIG. 2, the procedure of the image data encoding process of image encoding apparatus 1000 according to the present embodiment will be described.
[0084]
In S1000, image encoding apparatus 1000 creates high-resolution image data and low-resolution image data based on input image data stored in input image data memory 1010 using encoding preprocessor 1020. Then, they are stored in the high-resolution image data memory 1030 and the low-resolution image data memory 1040, respectively. The encoding preprocessor 1020 creates a high resolution image 1210 and a low resolution image 1220 based on the input image 1200, as shown in FIG. Here, the input image 1200 is shown as an image having 4 pixels horizontally and 4 pixels vertically, but this is for the purpose of simplifying the description. In practice, the size of the image to be coded is usually larger than this. In FIG. 3, each pixel of the input image 1200, the high-resolution image 1210, and the low-resolution image 1220 is distinguished by a given number. As is evident from the numbers attached to the pixels, the high-resolution image 1210 is a copy of the input image 1200 excluding the pixels included in the low-resolution image 1220, and the low-resolution image 1220 is one of the input images 1200. / 2 downsampling.
[0085]
Further, the encoding preprocessor 1020 may create a high-resolution image 1310 and a low-resolution image 1320 based on the input image 1300 as shown in FIG. As can be seen from FIGS. 3 and 4, each pixel of the high resolution image 1310 is the same as each pixel of the high resolution image 1210, but the value of each pixel of the low resolution image 1320 shown in FIG. Is given by the average of the values of the four pixels.
[0086]
3 and 4, when the high resolution image 1210 (or the high resolution image 1310) and the low resolution image 1220 (or the low resolution image 1320) are decoded, the input image 1200 (or the input image 1300) is given enough information to completely decode it. That is, in the case of FIG. 4, each pixel value of the low-resolution image 1320 is an average value of the corresponding four pixels of the input image 1300. Therefore, if the values of the three pixels of the high-resolution image 1310 are decoded, The value of one pixel is obtained by subtracting the sum of the values of the three corresponding pixels of the high-resolution image 1310 from the value obtained by quadrupling the corresponding pixel of the low-resolution image 1320 (to the extent that bit precision allows). ), The value of the remaining one pixel of the high resolution image 1310 can be obtained. In the case of FIG. 3, it is clear that if the information of the high-resolution image 1210 and the information of the low-resolution image 1220 are added, sufficient information for restoring the input image 1200 can be obtained. Of course, if complete lossless encoding is required, the method of FIG. 4 cannot be generally adopted due to bit precision issues.
[0087]
In S1100, image encoding apparatus 1000 encodes high-resolution image data and low-resolution image data using a predetermined compression method using image encoder 1050, and outputs the encoded data. Is stored in the high-resolution coded image data memory 1060 and the low-resolution coded image data memory 1070. Details of the processing procedure in the image encoder 1050 will be described later. The order in which the high-resolution image 1210 shown in FIG. 3 and the high-resolution image 1310 shown in FIG. 4 are encoded by the image encoder 1050 is a normal raster scan order as shown in FIG.
[0088]
At S1200, image coding apparatus 1000 uses coded data combiner 1080 to combine the data stored in high-resolution coded image data memory 1060 and low-resolution coded image data memory 1070, and combine them. It is stored in the encoded image data memory 1090.
[0089]
The combined coded image data memory 1090 combines the contents of the high-resolution coded image data memory 1060 shown in FIG. 6 and the contents of the low-resolution coded image data memory 1070 shown in FIG. Is stored. Note that the image coding apparatus 1000 according to the present embodiment causes the combined coded image data memory 1090 to store information that is transmitted to the decoding apparatus and that is necessary for decoding processing such as the vertical and horizontal sizes of an image. It does not exclude that.
[0090]
Hereinafter, details of the image encoder 1050 will be described.
FIG. 9 shows a block diagram of the image encoder 1050. Note that the image encoder 1050 of the image encoding device 1000 according to the present embodiment executes the LZ77 encoding process, but the image encoding device 1000 according to the present invention is limited to the LZ77 encoding process. It does not apply. The image encoding device 1000 according to the present invention can be applied to general encoding processing based on a dictionary.
[0091]
The image encoder 1050 includes a symbol string decomposer 1420, a symbol string buffer 1430, a symbol string counter 1440, a data encoder 1450, and a controller 1410 that controls these.
[0092]
The controller 1410 controls the entire image encoder 1050. The controller 1410 includes a CPU (Central Processing Unit), not shown, and a memory for storing a program executed by the CPU.
[0093]
Hereinafter, the Ith and Jth elements of the symbol string buffer 1430 are represented by S [I] [J], and the Ith value of the symbol string counter 1440 is represented by SC [I].
[0094]
The symbol string decomposer 1420 decomposes the contents of the high-resolution image data stored in the high-resolution image data memory 1030 and stores it in the symbol string buffer 1430. The symbol string buffer 1430 is a buffer having a two-dimensional array in which the first dimension is 3 and the second dimension is equal to the length of the high-resolution image data memory 1030. That is, the symbol string buffer 1430 has a two-dimensional array having a size of 3 × N. The “first dimension is 3” represents 3 × N “3”, and the “length of the high resolution image data memory 1030” is the number of words (= stored in the high resolution data memory 1030). The maximum number of pixels obtained).
[0095]
The symbol string buffer 1430 is a two-dimensional memory for classifying and storing each pixel included in the high-resolution data memory 1030 according to the value of a key calculated for each pixel (keys will be described later). Is an array. In the image encoding apparatus 1000 according to the present embodiment, the key value K is set to three values of 0 to 2, so that the symbol string buffer 1430 includes three columns. Therefore, the first dimension becomes “3”.
[0096]
The length of the second dimension is high-resolution image data so that data can be stored even if the required length is the maximum length (when the same key register 1428 value is calculated from all pixels). The length is set to the length of the memory 1030 (= the maximum number of pixels that can be stored). However, such a configuration of the symbol string buffer 1430 is an example, and the image encoding device according to the present invention is not limited to such a buffer configuration.
[0097]
The symbol string counter 1440 is a one-dimensional array buffer having three elements. These three elements are SC [0], SC [1], and SC [2]. The SC [I] (I = 0, 1, 2) itself does not indicate the value of the image data, but indicates the number of pixels included in each classification when each pixel is classified according to the key value. Things. SC [0], SC [1], and SC [2] indicate the location of the symbol string buffer 1430 where the next pixel is stored in the flowchart (FIG. 12) described later. As each pixel is stored in S [K] and [SC [K]] according to the value of the key, SC [K] is incremented according to the value of K. After the processing shown in the flowchart described later is completed, SC [0], SC [1], and SC [2] indicate the number of pixels included in each classification.
[0098]
The details of the structure of the symbol string decomposer 1420 for classifying and storing symbol strings in the symbol string buffer 1430 as described above will be described later.
[0099]
The data encoder 1450 encodes the three symbol strings stored in the symbol string buffer 1430 and the image data stored in the low-resolution image data memory 1040.
[0100]
With reference to FIG. 10, the procedure of the encoding process (the process in S1100 in FIG. 2) executed by the image encoder 1050 having the above structure will be described.
[0101]
At S1110, symbol string decomposer 1420 controlled by controller 1410 decomposes the contents of high-resolution image data memory 1030 and stores it in symbol string buffer 1430. At the same time, the symbol string decomposer 1420 generates a counter value of the symbol string counter 1440. The details of the processing procedure in the symbol string decomposer 1420 will be described later.
[0102]
In S1130, data encoder 1450 controlled by controller 1410 encodes the following three symbol strings stored in symbol string buffer 1430 by LZ77 encoding to obtain high-resolution encoded image data. It is stored in the memory 1060. At this time, the symbol string stored in the symbol string buffer 1430 is
Symbol string consisting of SC [0] symbols starting from S [0]
Symbol string consisting of SC [1] symbols starting from S [1]
Symbol string consisting of SC [2] symbols starting from S [2]
It is. Here, three symbol strings are stored because three types of keys, which will be described later, are set. Note that the image coding apparatus 1000 according to the present invention is not limited to the apparatus in which the types of keys are set to three. Furthermore, the image encoding device 1000 according to the present invention is not limited to the data encoding method of LZ77 encoding.
[0103]
FIG. 6 shows an example of the format of the encoded image data stored in the high-resolution encoded image data memory 1060. The data structure in which the encoded image data length 1510 is followed by the encoded image data 1520 is repeated by the number of encoded image data (three times in this example). The coded image data length 1510 is a 4-byte field indicating the length of the coded image data 1520 by the number of bytes.
[0104]
Subsequently, the encoded image data length 1530, the encoded image data 1540, the encoded image data length 1550, and the encoded image data 1560 are successively stored. The relationship between the coded image data length 1530 and the coded image data 1540 and the relationship between the coded image data length 1550 and the coded image data 1560 are all the same as those described above for the coded image data length 1510 and the coded image data 1520. The relationship is the same. Both the coded image data length 1530 and the coded image data length 1550 are 4-byte fields, like the coded image data length 1510. Note that the image encoding device according to the present invention is not limited to such a data format.
[0105]
In S1140, data encoder 1450 controlled by controller 1410 encodes the low-resolution image data stored in low-resolution image data memory 1040 by LZ77 encoding in the raster scan order shown in FIG. It is stored in the low-resolution coded image data memory 1070.
[0106]
As for the format of the low-resolution coded image data memory 1070, as shown in FIG. 7, coded data length 1610 is followed by coded image data 1620. It should be noted that with such a data structure, only low-resolution images can be individually decoded at the time of decoding without decoding the entire image. Also, here, the contents of the low-resolution image data memory 1040 are encoded in the same manner as the high-resolution image data memory 1030, in order to simplify the configuration of the data encoder 1450. Such simplicity is preferred for many applications. Note that the image coding apparatus according to the present invention can be applied to an apparatus to which two or more different coding systems are applied.
[0107]
Hereinafter, details of the symbol string decomposer 1420 will be described.
FIG. 11 shows a block diagram of the symbol string decomposer 1420. The symbol string decomposer 1420 includes a first counter 1424, a corresponding pixel number register 1426, a key register 1428, and a controller 1422 that controls these.
[0108]
The controller 1422 controls the entire symbol string decomposer 1420. The controller 1422 includes a CPU (not shown) and a memory for storing a program executed by the CPU.
[0109]
The first counter 1424 counts a variable I representing the number of elements (the number of pixels) of the high-resolution image data. The corresponding pixel number register 1426 stores an element (pixel) of the low-resolution image data memory 1040 which has a strong correlation and corresponds to an element (pixel) of the high-resolution image data memory 1030. The key register 1428 stores classified key values corresponding to elements (pixels) of the high-resolution image data.
[0110]
With reference to FIG. 12, the procedure of the decomposition processing (the processing of S1110 in FIG. 10) executed by the symbol string decomposer 1420 having the above structure will be described.
[0111]
In S1112, controller 1422 initializes the counter value of first counter 1424 (counter value = 0). Hereinafter, the counter value of the first counter 1424 is indicated by a variable I.
[0112]
In S1114, controller 1422 initializes all elements of symbol string counter 1440, which is a one-dimensional array having three elements (SC [K] = 0, K = 0, 1, 2).
[0113]
In S1116, controller 1422 calculates number J of the element (pixel) of low-resolution image data memory 1040 (strongly correlated) corresponding to the I-th element (pixel) of high-resolution image data memory 1030, and It is stored in the pixel number register 1426.
[0114]
The calculation of which pixel of the high-resolution image corresponds to which pixel of the low-resolution image mainly depends on how the high-resolution image and the low-resolution image are generated by the encoding preprocessor 1020. Here, associating the high-resolution image with the low-resolution image means associating pixels considered to have a high correlation between them. Any rule may be used as long as a rule is provided indicating that each pixel of the high resolution image corresponds to each of the pixels of the low resolution image. However, if the correlation between the corresponding pixels of the high-resolution image and the low-resolution image is low or not at all, efficient coding cannot be achieved.
[0115]
This correspondence will be described using the image example shown in FIG. Assuming that the width of the image is W (here, 4) and the element number of the low-resolution image data memory 1040 corresponding to the I-th element of the high-resolution image data memory 1030 is J, J is calculated as follows. In the following description, the width W of the image is assumed to be an even number for simplicity, and a value obtained by multiplying W by 3/2 is assumed to be V (V = 1.5 × W).
[0116]
When a number I is assigned to each element (each pixel) of the high-resolution image data memory 1030 from 0 in the raster scan order as shown in FIG. 5, the XY coordinates of the I-th element as a pixel on the original image Are divided according to the value of (I mod V) as follows. The XY coordinates are represented in the format (X, Y).
(A) When (I mod V) <W / 2
(2 × (I mod (W / 2)) + 1,2 × (I / V)) (1)
(B) When W / 2 ≦ (I mod V) <W
(I mod (W / 2), 2 × (I / V) +1) (2)
(C) When (I mod V) ≧ W
(I mod (W / 2) + W / 2, 2 × (I / V) +1) (3)
Hereinafter, it is assumed that the elements (pixels) of the low resolution image data memory 1040 are assigned numbers J from 0 in the raster scan order on the low resolution image.
[0117]
Assuming that the element number of the low-resolution image data memory 1040 corresponding to the I-th element of the high-resolution image data memory 1030 is J, the low-resolution image corresponds to 1 / reduction of the original image, and its width is W / 2. From the equations (1), (2) and (3), J is obtained as follows.
(A) When (I mod V) <W / 2
J = (I mod (W / 2)) + (I / V) × (W / 2) (4)
(B) When W / 2 ≦ (I mod V) <W
J = (I mod (W / 2)) / 2+ (2 × (I / V) +1) / 2 × (W / 2) (5)
(C) When (I mod V) ≧ W
J = ((I mod (W / 2)) + W / 2) / 2 + ((2 × (I / V)) + 1) / 2 × (W / 2) (6)
In S1118, controller 1422 reads the element of the number indicated by the value of corresponding pixel number register 1426 in low-resolution image data memory 1040, converts the value, and stores it in key register 1428. The conversion rule at this time is given as follows. The value of the pixel read from the low resolution image data memory 1040 is P, and the value of the key register 1428 is K.
K = 0 (when P = 0)
K = 1 (when 1 ≦ P ≦ 254)
K = 2 (when P = 255)
Here, the reason why the value of the key register 1428 is set in this manner is that a background pixel (255) and a pixel having a pixel value of a plain text (0) are included in a lot of ordinary paper, and a low-resolution pixel is a background ( This is because if it is a character) pixel, it is considered that the probability that all the high resolution pixels are also background (character) pixels is high. This phenomenon is remarkable in a normal document, particularly in a background pixel.
[0118]
In the case where the value of the background pixel or the value of the character pixel fluctuates, it is desirable that the value of the pixel such that the value of the key register 1428 becomes 0 or 2 has a width. For example, the condition for setting the value K of the key register 1428 to 0 is “0 ≦ P <16”, the condition for setting the value K of the key register 1428 to 1 is “16 ≦ P <240”, and the value K of the key register 1428 is set to The condition for setting 2 may be set to be “240 ≦ P ≦ 255”.
[0119]
Here, the value K of the key register 1428 is designed to take three values, but this is an example, and the image encoding device according to the present invention is not limited to this.
[0120]
Further, another setting of the value K of the key register 1428 may be based on a value obtained by dividing the pixel value P by a certain integer. In this case, the range of values that the value K of the key register 1428 can take also varies depending on the integer value obtained by dividing the pixel value P. Various other variations can be considered for setting the value K of the key register 1428. In setting the value K of the key register 1428, the value K of the high resolution image data memory 1030 corresponding to the pixel read from the low resolution image data memory 1040 can be predicted by the value K of the key register 1428. It is important that the values of the pixels of the high-resolution image data memory 1030 classified by the value K of the key register 1428 concentrate on some values within the same classification. This makes it possible to reduce the entropy within each classification. Therefore, performing encoding for each classification leads to improvement in encoding efficiency as compared to encoding all pixels collectively. More generally, when one of two data series having a high correlation is used as a key and the other is classified into a sub-data series, the values of the elements of each created sub-data series are partially You will concentrate on the value. Therefore, the sum of entropy of each sub data sequence is lower than that of the original data sequence, and coding efficiency can be improved.
[0121]
The length of the elements in the first dimension direction of the symbol string buffer 1430 and the number of elements of the symbol string counter 1440 are all determined by the range of the value K of the key register 1428. Therefore, if the range of the value K of the key register 1428 is changed, such parameters should be changed.
[0122]
At S1120, controller 1422 substitutes the I-th element (pixel) of high-resolution image data memory 1030 into S [K] [SC [K]] of symbol string buffer 1430.
[0123]
At S1122, controller 1422 adds 1 to the K-th value SC [K] of symbol string counter 1440. In S1124, controller 1422 adds 1 to counter value I of first counter 1424.
[0124]
In S1126, controller 1422 compares counter value I of first counter 1424 with the number of pixels included in high-resolution image data memory 1030. If the counter value I of the first counter 1424 is equal to the number of pixels included in the high resolution image data memory 1030 (YES in S1126), this processing ends. If not (NO in S1126), the process returns to S1116, and the process for the next element (pixel) is performed.
[0125]
The operation of the image coding apparatus 1000 based on the above structure and flowchart will be described.
[0126]
The captured image data and the like are stored in the input image data memory 1010 as input image data. The encoding preprocessor 1020 creates high-resolution image data and low-resolution image data based on the input image data stored in the input image data memory 1010 (S1000). Thus, the high-resolution image 1210 shown in FIG. 3 or the high-resolution image 1310 shown in FIG. 4 is stored in the high-resolution image data memory 1030, and the low-resolution image 1220 shown in FIG. Alternatively, a low resolution image 1320 shown in FIG. 4 is stored.
[0127]
The image encoder 1050 encodes the high-resolution image data and the low-resolution image data using a predetermined compression method (S1100). At this time, first, the symbol string decomposer 1420 decomposes the contents of the high resolution image data memory 1030 and stores it in the symbol string buffer 1430 (S1110). The counter value I of the first counter 1424 is initialized (S1112), and the symbol string counter SC [K] is initialized (S1114). The number J of the element (pixel) of the low-resolution image data memory 1040 (highly correlated) corresponding to the I-th element (pixel) of the high-resolution image data memory 1030 is calculated. At this time, the number J is calculated from the variable I using the equations (1) to (6) (S1116). The J-th element in the low-resolution image data memory 1040 is read and converted into a key value K (S1118). The I-th element (pixel) of the high-resolution image data memory 1030 is assigned to S [K] [SC [K]] of the symbol string buffer 1430 (S1120).
[0128]
One is added to the K-th value SC [K] of the symbol string counter 1440 (S1122), and one is added to the counter value I of the first counter 1424 (S1124). Until the counter value I of the first counter 1424 becomes equal to the number of pixels included in the high resolution image data memory 1030 (YES in S1126), the processing from S1116 to S1124 is repeatedly executed, and all elements (pixels) ) Is performed.
[0129]
With such an operation, the elements (pixels) of the high-resolution image data memory 1030 are classified according to the values of the corresponding elements (pixels) of the low-resolution image data memory 1040. Here, when there is a correlation between the value of each pixel of the high resolution image data memory 1030 and the value of the corresponding pixel of the low resolution image data memory 1040, the value of the corresponding low resolution image data memory 1040 is approximated. For example, the value of each pixel in the original high-resolution image data memory 1030 is similar. Therefore, when the high-resolution image data memory 1030 is classified on the condition that the values of the corresponding pixels in the low-resolution image data memory 1040 are similar, it is considered that the pixel data values concentrate on some values in each classification. Can be Stated another way, each classification will have low entropy.
[0130]
Note that, in this classification, the above-described equations (1) to (6) are used. In the case of the image data illustrated in FIG. 3, for example, it is assumed that the pixel (00) and the pixel (22) are approximate values, and the pixel (02) and the pixel (20) are approximate values. In this case, each is converted to the same key value. In this case, pixel (01), pixel (10), pixel (11), pixel (23), pixel (32), pixel (32) of the high-resolution image corresponding to one of pixel (00) and pixel (22). 33) fall into the same category, and correspond to either pixel (02) or pixel (20), pixel (03), pixel (12), pixel (13), pixel (21), pixel (21) of the high resolution image. 30), indicating that pixels (31) fall into the same category. After that, by encoding the pixels of the high-resolution image for each of the above two classifications, it is possible to perform encoding more efficiently than encoding the pixels of the high-resolution image collectively. In this way, the encoded image data is stored in the high-resolution encoded image data memory 1060 in a format as shown in FIG.
[0131]
After that, the following three symbol strings stored in the symbol string buffer 1430 are subjected to encoding processing by LZ77 encoding by the data encoder 1450 and stored in the high-resolution encoded image data memory 1060 (S1130). ).
[0132]
The low-resolution image data stored in the low-resolution image data memory 1040 is coded by LZ77 coding and stored in the low-resolution coded image data memory 1070 (S1140). As a result, the encoded image data is stored in the low-resolution encoded image data memory 1070 in a format as shown in FIG.
[0133]
Further, the data stored in the high-resolution coded image memory 1060 and the data stored in the low-resolution coded image memory 1070 are combined by the coded data combiner 1080, and the data is stored in the combined coded image data memory 1090. (S1200).
[0134]
As described above, according to the image encoding device according to the present embodiment, the elements constituting the high-resolution image data are classified in association with the elements constituting the low-resolution image data. When the encoding process is executed for each of the classified high-resolution image data, high-resolution image data having a high correlation with each other can be collectively and efficiently encoded.
[0135]
This means that the values of the pixels in the low-resolution image are used as a key to classify the corresponding pixels in the high-resolution image, and the coding is performed for each classification. By classifying one of a plurality of data series as a key and the other as a sub-data series, the values of the elements of each created sub-data series are concentrated on some of the values within each. This is because the entropy of the sub data sequence has been reduced.
[0136]
Further, according to the image coding apparatus according to the present embodiment, the coding processing is performed because it can be applied to coding processing without an explicit probability model, such as dictionary-based coding. When decoding encoded image data, the decoding process is lightweight.
[0137]
Furthermore, according to the image encoding device according to the present embodiment, it is possible to configure so that decoding of a specific data sequence does not require decoding of another data sequence. In the case where the outline of the data obtained by integrating is obtained, the outline can be known by decoding only a specific data sequence.
[0138]
<Second embodiment>
Hereinafter, an image decoding apparatus according to the second embodiment of the present invention will be described. The image decoding device according to the present embodiment is a decoding device corresponding to the image encoding device according to the first embodiment.
[0139]
FIG. 13 shows a block diagram of image decoding apparatus 2000 according to the present embodiment. As shown in FIG. 13, the image decoding apparatus 2000 is configured such that the coded image data representing the coded high-resolution image and the coded image data representing the coded low-resolution image are combined. A combined coded image data memory 2010 for storing coded image data, and a coded image data representing a high resolution image and a code representing a low resolution image from the combined coded image data before decoding the combined coded image data Pre-decoding unit 2020 for separating separated high-resolution coded image data, high-resolution coded image data memory 2030 for storing separated high-resolution coded image data, and low-resolution storage for storing separated low-resolution coded image data The encoded image data memory 2040 decodes encoded image data representing a high-resolution image and encoded image data representing a low-resolution image. An image decoder 2050 for processing, a high-resolution image data memory 2060 for storing image data representing a decoded high-resolution image, and a low-resolution image memory for storing image data representing a decoded low-resolution image An image data memory 2070 and an image data combiner 2080 for combining image data representing a decoded high-resolution image and image data representing a decoded resolution image are included.
[0140]
In the image decoding device 2000, the combined encoded image data memory 2010, the high-resolution encoded image data memory 2030, the low-resolution encoded image data memory 2040, the high-resolution image data memory 2060, and the low-resolution image data memory 2070 And the output image data memory 2090 are generally realized by a storage device mounted on a computing system including a computer.
[0141]
In the image decoding device 2000, the pre-decoding processor 2020, the image decoder 2050, and the image data combiner 2080 can be realized by software executed by a computer or by hardware. . In the following description, the pre-decoding processor 2020, the image decoder 2050, and the image data combiner 2080 have specific hardware including a controller, and the controller executes predetermined software. The following description will be made on the assumption that the hardware is controlled by the computer to realize a predetermined function. However, instead of specific hardware, a general computer may be used to realize the predetermined function. Therefore, one essential aspect of the present invention is a program for causing a computer to realize such a function.
[0142]
The encoded image data stored in the combined encoded image data memory 2010, that is, the data that is decoded by the image decoding device 2000 according to the present embodiment, corresponds to the image encoding device according to the first embodiment. 1000 is the encoded image data that has been subjected to the encoding process.
[0143]
Referring to FIG. 14, the procedure of the image data decoding process of image decoding apparatus 2000 according to the present embodiment will be described.
[0144]
In S2000, image decoding apparatus 2000 uses decoding preprocessor 2020 to convert high-resolution encoded image data and low-resolution encoded image data from encoded image data stored in joint encoded image data memory 2010. Are separated and stored in the high-resolution coded image data memory 2030 and the low-resolution coded image data memory 2040, respectively. At this time, the high-resolution coded image data shown in FIG. 6 and the low-resolution coded image data shown in FIG. 7 are separated from the combined coded image data shown in FIG.
[0145]
In S2100, image decoding apparatus 2000 uses image decoder 2050 to decompress the high-resolution encoded image data and the low-resolution encoded image data into a decompression scheme corresponding to the image encoding apparatus according to the first embodiment. , And the decoded data is stored in the high-resolution image data memory 2060 and the low-resolution image data memory 2070. Details of the processing procedure in the image decoder 2050 will be described later.
[0146]
At S2200, image decoding apparatus 2000 combines the data stored in high-resolution image data memory 2060 and low-resolution image data memory 2070 using image data combiner 2080, and stores the combined data in output image data memory 2090. Let it.
[0147]
Hereinafter, the details of the image decoder 2050 will be described.
FIG. 15 shows a block diagram of the image decoder 2050. The image decoder 2050 of the image decoding device 2000 according to the present embodiment executes the LZ77 encoding process used in the image encoding device 1000 according to the first embodiment. The decoding device 2000 is not limited to the LZ77 encoding process. An image decoding device 2000 according to the present invention can be applied to a decoding process corresponding to a general encoding process based on a dictionary.
[0148]
The image decoder 2050 includes a data decoder 2420, a symbol string combiner 2430, a symbol string buffer 2440, a symbol string counter 2450, and a controller 2410 that controls these.
[0149]
The controller 2410 controls the entirety of the image decoder 2050. The controller 2410 includes a CPU (not shown) and a memory for storing a program executed by the CPU.
[0150]
The data decoder 2420 decodes the low-resolution encoded image data separated from the encoded image data and stored in the low-resolution encoded image data memory 2040 and the encoded image data stored in the symbol string buffer 2440. I do.
[0151]
Note that the symbol string buffer 2440 and the symbol string counter 2450 have the same configurations as the symbol string buffer 1430 and the symbol string counter 1440 in the image encoder 1050 of the image encoding apparatus 1000 according to the first embodiment described above. Therefore, detailed description here will not be repeated. Details of the structure of the symbol string combiner 2430 will be described later.
[0152]
With reference to FIG. 16, the procedure of the decoding process (the process of S2100 in FIG. 14) executed by the image decoder 2050 having the above structure will be described.
[0153]
In S2110, data decoder 2420 controlled by controller 2410 decodes the low-resolution coded image data stored in low-resolution coded image data memory 2040.
[0154]
In S2130, data decoder 2420 controlled by controller 2410 decodes the following three symbol strings stored in symbol string buffer 2440 in accordance with LZ77 encoding. At this time, the symbol strings stored in the symbol string buffer 2440 and subjected to decoding processing are the same as in the image encoding apparatus 1000 according to the first embodiment described above.
Symbol string consisting of SC [0] symbols starting from S [0]
Symbol string consisting of SC [1] symbols starting from S [1]
Symbol string consisting of SC [2] symbols starting from S [2]
It is.
[0155]
Further, in image decoding apparatus 2000 according to the present embodiment, encoded image data in low-resolution encoded image data memory 2040 and a symbol string in symbol string buffer 2440 are decoded by the same method. This is for simplifying the configuration of the data decoder 2420. Such simplicity is preferred for many applications. Note that the image decoding apparatus according to the present invention can be applied to an apparatus to which two or more different decoding methods are applied.
[0156]
In S2140, symbol string combiner 2430 controlled by controller 2410 creates high-resolution image data based on the decoded low-resolution image data and the decoded symbol string. The details of the processing procedure in the symbol string combiner 2430 will be described later.
[0157]
Hereinafter, details of the symbol string combiner 2430 will be described.
FIG. 17 is a block diagram of the symbol string combiner 2430. The symbol string combiner 2430 includes a first counter 2434, a corresponding pixel number register 2436, a key register 2438, and a controller 2432 that controls these.
[0158]
The controller 2432 controls the entire symbol string combiner 2430. The controller 2432 includes a CPU (not shown) and a memory for storing a program executed by the CPU.
[0159]
The first counter 2434 counts a variable I representing the number of elements (the number of pixels) of the high-resolution image data. The corresponding pixel number register 2436 stores an element (pixel) of the low-resolution image data memory 2070 having a strong correlation corresponding to the element (pixel) of the high-resolution image data memory 2060. The key register 2438 stores classified key values corresponding to elements (pixels) of the high-resolution image data.
[0160]
With reference to FIG. 18, the procedure of the combining process (the process of S2140 in FIG. 16) executed by the symbol string combiner 2430 having the above structure will be described.
[0161]
In S2142, controller 2432 initializes the counter value of first counter 2434 (counter value = 0). Hereinafter, the counter value of the first counter 2434 is indicated by a variable I.
[0162]
In S2144, controller 2432 initializes all elements of symbol string counter 2450, which is a one-dimensional array having three elements (SC [K] = 0, K = 0, 1, 2).
[0163]
In S2146, controller 2432 calculates the number J of the element (pixel) of low-resolution image data memory 2070 (strongly correlated) corresponding to the I-th element (pixel) of high-resolution image data memory 2060, and It is stored in the pixel number register 2436. The calculation of which pixel of the high-resolution image corresponds to which pixel of the low-resolution image is performed by the encoding preprocessor 1020 in the image encoding device 1000 according to the first embodiment described above. It mainly depends on how the image was generated. The calculation of the number J from the variable I in S2136 is performed according to the equations (1) to (6) described in the first embodiment.
[0164]
In S2148, controller 2432 reads the element of the low-resolution image data indicated by the value of corresponding pixel number register 2436, converts the value, and stores the converted value in key register 2438. The conversion rules at this time are given as follows, as in the first embodiment. Let the pixel value of the low resolution image data be P and the value of the key register 1428 be K.
K = 0 (when P = 0)
K = 1 (when 1 ≦ P ≦ 254)
K = 2 (when P = 255)
As in the first embodiment, the types of K are not limited to three types, and the value of P defining the value of K is not limited as described above.
[0165]
In S2150, controller 2432 substitutes the value of S [K] [SC [K]] in symbol string buffer 2440 for the I-th element (pixel) of the high-resolution image data.
[0166]
At S2152, controller 2432 adds 1 to the K-th value SC [K] of symbol string counter 2450. In S2154, controller 2432 adds 1 to counter value I of first counter 2434.
[0167]
In S2156, controller 2432 compares counter value I of first counter 2434 with the number of pixels of the high-resolution image data. If the counter value I of the first counter 2434 is equal to the number of pixels of the high-resolution image data (YES in S2156), this processing ends. If not (NO in S2156), the process returns to S2146, and the process for the next element (pixel) is further performed.
[0168]
The operation of the image decoding apparatus 2000 based on the above structure and flowchart will be described.
[0169]
The combined encoded image data encoded by the image encoding apparatus 1000 according to the first embodiment is stored in the combined encoded image data memory 2010 as input data. The pre-decoding processor 2020 separates high-resolution coded image data and low-resolution coded image data from the combined coded image data stored in the combined coded image data memory 2010 (S2000). Thus, the high-resolution coded image data memory 2030 stores the high-resolution coded image data shown in FIG. 6, and the low-resolution image data memory 2040 stores the low-resolution coded image data shown in FIG. You.
[0170]
The image decoder 2050 decodes the high-resolution image data and the low-resolution image data using an expansion method corresponding to the compression method executed in advance by the image decoding apparatus 1000 (S2100). At this time, first, the data decoder 2420 decodes the low-resolution coded image data stored in the low-resolution coded image data memory 2040 and stores it in the low-resolution image data memory 2070 (S2110). Next, the data decoder 2420 decodes the symbol string stored in the symbol string buffer 2440 (S2130).
[0171]
The symbol string combiner 2430 combines the data with the decoded low-resolution image data and the symbol string based on the content stored in the symbol string to create high-resolution image data. At this time, first, the counter value I of the first counter 2434 is initialized (S2142), and the symbol string counter SC [K] is initialized (S2144). The number J of the element (pixel) of the low-resolution image data (strongly correlated) corresponding to the I-th element (pixel) of the high-resolution image data is calculated. At this time, the number J is calculated from the variable I using the equations (1) to (6) (S2146). The J-th element of the low-resolution image data is read and converted into a key value K (S2148). The value of S [K] [SC [K]] in the symbol string buffer 2450 is assigned to the I-th element (pixel) of the high-resolution image data (S2150).
[0172]
One is added to the K-th value SC [K] of the symbol string counter 2450 (S2152), and one is added to the counter value I of the first counter 2434 (S2154). Until the counter value I of the first counter 2434 becomes equal to the number of pixels of the high-resolution image data (YES in S2156), the processing from S2146 to S2154 is repeatedly executed, and the processing for all elements (pixels) is performed. Is performed.
[0173]
With such an operation, the element (pixel) of the high-resolution image data is processed according to the value of the element (pixel) of the corresponding low-resolution image data, and as shown in FIG. 2520 to form an output image 2530.
[0174]
As described above, according to the image decoding apparatus according to the present embodiment, elements constituting high-resolution image data are classified in association with elements constituting low-resolution image data, and the classified high-resolution image is classified. By executing the encoding process for each data, it is possible to efficiently decode the encoded image data.
[0175]
<Third embodiment>
Hereinafter, an image decoding device according to the third embodiment of the present invention will be described. The image decoding device according to the present embodiment is a decoding device corresponding to the image encoding device according to the first embodiment, and has, in addition to the functions of the image decoding device according to the second embodiment, It has a function of selecting which of a low-resolution image and a high-resolution image to decode at the time of decoding. Otherwise, the configuration is the same as that of the image decoding device 2000 according to the above-described second embodiment. Therefore, detailed description thereof will not be repeated here.
[0176]
Referring to FIG. 20, a block diagram of image decoding apparatus 3000 according to the present embodiment is shown. As shown in FIG. 20, the image decoding device 3000 includes a selector 3010 connected to an image data combiner 2080 in addition to the configuration of the image decoding device 2000 according to the above-described second embodiment. Based on the content stored in the selector 3010, it is determined whether to decode the low-resolution image or the high-resolution image. If the content stored in the selector 3010 is “0”, high-resolution image data for outputting a high-resolution image is generated. Otherwise, low-resolution image data for outputting a low-resolution image is generated. The other structure is the same as the structure of the image decoding device 2000 according to the above-described second embodiment. Their functions are the same. Therefore, detailed description thereof will not be repeated here.
[0177]
With reference to FIG. 21, a description will be given of a procedure of image data decoding processing of image decoding apparatus 3000 according to the present embodiment. In the flowchart shown in FIG. 21, the same processes as those in the flowchart shown in FIG. 14 described above are denoted by the same step numbers. Their functions are the same. Therefore, detailed description thereof will not be repeated here.
[0178]
In S3000, image decoding apparatus 3000 decodes high-resolution image data or low-resolution image data using image decoder 2050. Details of the processing in S3000 will be described later.
[0179]
In S3100, image decoding apparatus 3000 outputs the decoded high-resolution image data or low-resolution image data, and displays the high-resolution image or the low-resolution image.
[0180]
Referring to FIG. 22, a block diagram including image decoder 2050 and selector 3010 in image decoding apparatus 3000 according to the present embodiment is shown. As shown in FIG. 21, the selector 3010 is connected to a controller 2410 connected to the image decoder 2050. The controller 2410 determines whether to decode the high-resolution image or the low-resolution image based on the content stored in the selector 3010, and controls the data decoder 2420 to execute a necessary decoding process. The other structure is the same as the structure of the image decoding device 2000 according to the above-described second embodiment. Their functions are the same. Therefore, detailed description thereof will not be repeated here.
[0181]
The procedure of the decoding process (the process of S3000 in FIG. 21) executed by the image decoder 2050 having the above structure will be described with reference to FIG.
[0182]
In S3010, data decoder 2420 controlled by controller 2410 decodes the low-resolution coded image data stored in low-resolution coded image data memory 2040.
[0183]
In S3020, controller 2410 determines whether or not the content of selector 3010 is “0”. If the content of selector 3010 is “0” (YES in S3020), the process proceeds to S3030. Otherwise (NO at S3020), the process proceeds to S3040.
[0184]
In S3030, data decoder 2420 controlled by controller 2410 decodes the three symbol strings stored in symbol string buffer 2440 in accordance with LZ77 encoding.
[0185]
In S3040, controller 2410 determines whether or not the content of selector 3010 is “0”. If the content of selector 3010 is “0” (YES in S3040), the process proceeds to S2140. Otherwise (NO at S3040), this process ends. Note that the processing in S2140 is the same as the processing in the image decoding device 2000 according to the above-described second embodiment.
[0186]
The operation of the image decoding device 3000 based on the above structure and flowchart will be described.
[0187]
The pre-decoding processor 2020 separates the combined encoded image data into high-resolution encoded image data and low-resolution encoded image data (S2000). The low-resolution encoded image data is decoded by the data decoder 2420, and the low-resolution image data is stored in the low-resolution image data memory 2070 (S3010).
[0188]
If “0” is stored in selector 3010 (YES in S3020), the symbol string stored in symbol string buffer 2440 is decoded by data decoder 2420 (S3030). Further, if “0” is stored in selector 3010 (YES in S3040), high-resolution image data is created based on the decoded low-resolution image data and the symbol string (S2140). The created high-resolution image data is stored in the output image data memory 2090.
[0189]
On the other hand, if “0” is not stored in selector 3010 (NO in S3020), decoding processing of the symbol string stored in symbol string buffer 2440 is not performed, and high-resolution image data is not created.
[0190]
As described above, according to the image decoding apparatus according to the present embodiment, when the user wants to know the entire image at a coarse resolution quickly and when he wants to know the details of the image at a fine resolution, It is possible to select whether to create a resolution image or a high-resolution image. Such a function exhibits a great effect in an image browsing system and the like.
[0191]
Note that the image decoding apparatus according to the present embodiment selects one of the two types of resolution images, that is, the high resolution and the low resolution. An image may be selected.
[0192]
<Fourth embodiment>
Hereinafter, an image encoding device according to the fourth embodiment of the present invention will be described. The image encoding apparatus according to the first embodiment decomposes an image into two-layer resolutions of a high resolution and a low resolution and executes an encoding process, whereas the image encoding apparatus according to the present embodiment The device has a function of decomposing an image into three or more layers of resolution and executing an encoding process. Otherwise, the configuration is the same as that of the image encoding device 1000 according to the above-described first embodiment. Therefore, detailed description thereof will not be repeated here. In the following description, it is assumed that the image encoding apparatus according to the present embodiment performs encoding processing on image data having (M + 1) types of resolutions.
[0193]
The image encoding apparatus according to the present embodiment recursively repeats the procedure of decomposing and encoding the other data sequence using one of the correlated data sequences as a key, thereby recursively resolving hierarchies of three or more hierarchies. , The encoding process is executed efficiently.
[0194]
FIG. 24 shows a block diagram of image coding apparatus 4000 according to the present embodiment. As shown in FIG. 24, the image coding apparatus 4000 has a resolution of 10% instead of the high-resolution image data memory 1030 and the low-resolution image data memory 1040 of the image coding apparatus 1000 according to the first embodiment. It has (M + 1) data memories of the 0th level image data memory 4020, the first level image data memory 4030, and the Mth level image data memory 4040 from the highest.
[0195]
Further, the image coding apparatus 4000 has a high resolution instead of the high-resolution coded image data memory 1060 and the low-resolution coded image data memory 1070 of the image coding apparatus 1000 according to the first embodiment. From the side, it has (M + 1) data memories of a 0th level coded image data memory 4060, a first level coded image data memory 4070, and an Mth level coded image data memory 4080.
[0196]
Further, this image encoding device 4000 is different from the image encoding device 1000 according to the first embodiment in that the image encoding device 1000 is connected to a data memory instead of the encoding preprocessor 1020. It has an encoding preprocessor 4010 with a different relationship. This image coding apparatus 4000 differs from the image coding apparatus 1050 of the image coding apparatus 1000 according to the first embodiment in the connection relationship with the data memory from the image coding apparatus 1050. An image encoder 4050 is provided. This image coding apparatus 4000 has a connection relationship with a data memory with the coded data combiner 1080 instead of the coded data combiner 1080 of the image coding apparatus 1000 according to the first embodiment. It has a different coded data combiner 4090.
[0197]
Referring to FIG. 25, a procedure of the image data encoding process of image encoding apparatus 4000 according to the present embodiment will be described.
[0198]
In S4000, image coding apparatus 4000 uses (M + 1) types of resolutions (0th level to 0th level) based on input image data stored in input image data memory 1010 using encoding preprocessor 4010. (M level) image data is created and stored in the 0th level image data memory 4020, the first level image data memory 4030, and the Mth level image data memory 4040, respectively.
[0199]
In the process of S4000, for example, as shown in FIG. 4, from the L-th level image (input image 1300) on the higher resolution side, the (L + 1) -th level image whose resolution level is lower by one than that (Low resolution image 1320) is created. Further, the (L + 1) -th level image 1320 is used as a high-resolution side image, and an (L + 2) -th level image having a lower resolution level than that of the (L + 1) -th level image is created. When such a process is repeated (M + 1) times, as shown in FIG. 26, the first level image, the second level image, and the second level image are arranged in order from the highest resolution to the lowest resolution with respect to the input image (the 0th level image). ,..., The (M−1) th level image, and the Mth level image (M + 1) images.
[0200]
That is, an image having a 0-level resolution (corresponding to a high-resolution image) and an image having a first-level resolution (corresponding to a low-resolution image) are created from an input image. An image having a first level of resolution and an image having a second level of resolution are created using the image as an input. As conceptually shown in FIG. 26, by repeating this process, an image having the Mth level of resolution can be reached. Even in the case where the input image and the high-resolution image are different from each other, an image having the Mth level of resolution can be obtained by performing the same recursive processing. The image processed in this way is not limited to the image shown in FIG.
[0201]
In S4100, image encoding apparatus 4000 encodes image data of each level of resolution by a predetermined compression method using image encoder 4050, and encodes the encoded data. , The 0th level encoded image data memory 4060, the first level encoded image data memory 4070, and the Mth level encoded image data memory 4080. Details of the processing procedure in the image encoder 4050 will be described later.
[0202]
In S4200, image coding apparatus 4000 uses coded data combiner 4090, to store the 0th level coded image data memory 4060, the first level coded image data memory 4070, and the Mth level coded image The data stored in the data memory 4080 is combined to create combined encoded image data corresponding to an image of a predetermined level of resolution, and the created encoded image data is stored in the combined encoded image data memory 1090. Let it.
[0203]
FIG. 27 shows a block diagram of image encoder 4050 in image encoding apparatus 4000 according to the present embodiment. As shown in FIG. 27, the image encoder 4050 includes a level register 4052 connected to the controller 1410 in addition to the structure of the image encoder 1050 of the image encoding device 1000 according to the above-described first embodiment. Further included. The level register 4052 stores the resolution level (the higher the number, the lower the resolution). The controller 1410 increments the data stored in the level register 4052 for each process of lowering the resolution by one. When the data reaches a predetermined resolution (M), the image data of that level of resolution is obtained. And ends the processing. The other structure is the same as the structure of the image encoding device 1000 according to the above-described first embodiment. Their functions are the same. Therefore, detailed description thereof will not be repeated here.
[0204]
With reference to FIG. 28, the procedure of the encoding process (the process of S4100 in FIG. 25) executed by the image encoder 4050 having the above structure will be described.
[0205]
At S4110, controller 1410 initializes level register L (L = 0). In S4120, symbol string decomposer 1420 controlled by controller 1410 decomposes the image data having the L-th level of resolution into symbol strings. The decomposed symbol string is stored in the symbol string buffer 1430.
[0206]
At S 4130, data encoder 1450 controlled by controller 1410 performs encoding processing on the symbol string stored in symbol string buffer 1430. At S4140, controller 1410 adds 1 to level register L. At S4150, controller 1410 compares level register L with constant M. If level register L is equal to constant M (YES in S4150), the process proceeds to S4160. If not (NO in S4150), the process returns to S4120, and the process for the image data of the next level of resolution is executed.
[0207]
In S4160, data encoder 1450 controlled by controller 1410 encodes the image data having the resolution of the L-th (= M) level. The combined encoded image data created by repeatedly executing such processing is stored in the combined encoded image data memory 1090.
[0208]
FIG. 29 shows an example of the data format of the combined encoded image data memory 1090. The number-of-layers field 4500 is a 4-byte field indicating how many layers have been encoded. Here, the value (M + 1) is stored as a 4-byte integer. Subsequent to the hierarchy number field 4500, coded image data 4510 corresponding to the Mth level resolution coded image corresponding to the Mth level follows, and thereafter, in the order of decreasing resolution levels (in order of increasing resolution itself). , The first level resolution encoded image data 4520, and the 0th level resolution encoded image data 4530. For the generalized L-th level resolution encoded image data, the contents of the L-th level resolution encoded image data memory are used as they are.
[0209]
As described above, according to the image encoding apparatus according to the present embodiment, it is possible to perform hierarchical decomposition of an image and efficient encoding. Also, by placing data corresponding to a low-resolution image at the beginning of a data string and reading only a part from the beginning of the encoded image data, only that part is decoded and a low-resolution image is displayed. Thus, the outline of the image can be displayed to the user quickly.
[0210]
<Fifth embodiment>
Hereinafter, an image decoding apparatus according to the fifth embodiment of the present invention will be described. The image decoding device according to the present embodiment is a decoding device corresponding to the image encoding device according to the fourth embodiment.
[0211]
An image decoding device according to a fifth embodiment of the present invention will be described. While the image decoding device according to the second embodiment decomposes an image into two-layer resolutions of a high resolution and a low resolution and executes a decoding process, the image decoding device according to the present embodiment includes: It has a function of decomposing an image into three or more layers of resolution and executing decoding processing. Otherwise, the configuration is the same as that of the image decoding device 2000 according to the above-described second embodiment. Therefore, detailed description thereof will not be repeated here. In the following description, it is assumed that the image decoding apparatus according to the present embodiment decodes (M + 1) types of image data.
[0212]
The image decoding apparatus according to the present embodiment recursively performs a procedure of decomposing and encoding the other data series using one of the correlated data series as a key, so as to recursively increase the resolution to three or more layers. On the other hand, decoding processing is performed on the coded image data that has been efficiently coded.
[0213]
FIG. 30 shows a block diagram of image decoding apparatus 5000 according to the present embodiment. As shown in FIG. 30, this image decoding device 5000 is different from the above-described image decoding device 2000 according to the second embodiment in that the high-resolution coded image data memory 2030 and the low-resolution coded image data memory 2040 are replaced by It has (M + 1) data memories of a 0th level coded image data memory 5020, a first level coded image data memory 5030, and an Mth level coded image data memory 5040, in order of higher resolution.
[0214]
Further, this image decoding device 5000 replaces the high-resolution image data memory 2060 and the low-resolution image data memory 2070 of the image decoding device 2000 according to the second embodiment described above, It has (M + 1) data memories of a level image data memory 5060, a first level image data memory 5070, and an Mth level image data memory 5080.
[0215]
Further, the image decoding device 5000 is different from the image decoding device 2000 according to the second embodiment in that the decoding processor 2020 differs from the decoding processor 2020 in the connection relationship with the data memory. It has a pre-processor 5010. This image decoding device 5000 is different from the image decoder 2050 of the image decoding device 2000 according to the second embodiment in that the image decoder 2050 has a different connection relationship with a data memory from the image decoder 2050. Having. This image decoding device 5000 is different from the image data combiner 2080 of the image decoding device 2000 according to the second embodiment in that the image data combiner 2080 differs from the image data combiner 2080 in the connection relationship with the data memory. It has a coupler 5090.
[0216]
Referring to FIG. 31, the procedure of the image data decoding process of image decoding apparatus 5000 according to the present embodiment will be described.
[0217]
In S5000, image decoding apparatus 5000 uses decoding pre-processor 5010 based on the coded image data stored in combined coded image data memory 2010 to provide (M + 1) types of resolutions (0th level to 0th level). (Mth level) encoded image data is created and stored in the 0th level encoded image data memory 5020, the first level encoded image data memory 5030, and the Mth encoded level image data memory 5040, respectively. Remember. At this time, coded image data of (M + 1) kinds of resolutions (0th level to Mth level) is created based on the data format shown in FIG. 29 described in the fourth embodiment. That is, the process of S5000 is a process of decomposing the encoded data into data corresponding to each resolution.
[0218]
In S5100, image decoding apparatus 5000 uses image decoder 5050 to convert the encoded image data of each level of resolution into a compression scheme used in image encoding apparatus 4000 according to the fourth embodiment. Then, the decoded data is stored in the 0th level image data memory 5060, the first level image data memory 5070, and the Mth level image data memory 5080, respectively. The details of the processing procedure in the image decoder 5050 will be described later.
[0219]
At S5200, image decoding device 5000 uses image data combiner 5090 to store the data stored in 0th level image data memory 5060, first level image data memory 5070, and Mth level image data memory 5080. To generate image data of a predetermined level of resolution, and store the generated image data in the output image data memory 2090.
[0220]
FIG. 32 shows a block diagram of image decoder 5050 in image decoding apparatus 5000 according to the present embodiment. As shown in FIG. 32, the image decoder 5050 further includes a level register 5052 connected to the controller 2410 in addition to the structure of the image encoder 1050 of the image decoding device 1000 according to the second embodiment. Including. The level register 5052 stores the resolution level (the higher the number, the lower the resolution). The controller 2410 decrements the data stored in the level register 5052 each time the resolution is increased by one with a predetermined resolution (M) as an initial value, and when the data becomes “0”, The encoded image data having the resolution of the level is decoded, and the process is terminated. The other structure is the same as the structure of the image decoding device 2000 according to the above-described second embodiment. Their functions are the same. Therefore, detailed description thereof will not be repeated here.
[0221]
The procedure of the decoding process (the process of S5100 in FIG. 31) executed by the image decoder 5050 having the above structure will be described with reference to FIG.
[0222]
In S5110, data decoder 2420 controlled by controller 2410 decodes the coded image data having the Mth level of resolution. The decoded image data is stored in the M-th level image data memory 5080.
[0223]
In S5120, controller 2410 substitutes (M-1) for level register L. This content is stored in the level register 5052. In S5130, data decoder 2420 controlled by controller 2410 decodes the data in the symbol string buffer having the L-th level of resolution. In S5140, symbol string combiner 2430 controlled by controller 2410 creates image data of the L-th level of resolution.
[0224]
In S5150, controller 2410 subtracts 1 from level register L. This content is stored in the level register 5052. At S5160, controller 2410 determines whether or not level register L is negative. If level register L is negative (YES in S5160), this process ends. If not (NO in S5160), the process returns to S5130, and the process for the encoded image data of the next level of resolution is executed.
[0225]
Here, the processing of S5100 (S5110 to S5160) will be described in confirmation. After decoding the encoded image data of the M-th level of resolution (S5110), the data stored in the (L + 1) -th level image data memory The L-th level resolution image is decoded (created) from the contents stored in the symbol string buffer 2440 (decoded in S5130) while referring to the (L + 1) level resolution image (S5140), and the L-th level image is obtained. A series of processing of storing the image data in the level image data memory is sequentially performed for L = M−1, M−2,. That is, such decoding processing is sequentially performed, and the encoded data is decoded with reference to images of different levels of resolution. That is, images of each resolution are not independently decoded.
[0226]
In the image decoding device 5000 according to the present embodiment, as shown in FIG. 34, the images of the 0th level, the images of the first level, the images of the second level, .., Output image data can be created based on the (M−1) th level image and the (M + 1) th image of the Mth level image. That is, the decoding process is performed recursively by following the resolution layers one by one. The (M-1) th level image is restored by being combined with the Mth level image, and the (M-2) th level image is restored using the restored (M-1) th level image. Is repeated to indicate that the 0th level image is restored.
[0227]
As described above, according to the image decoding apparatus according to the present embodiment, it is possible to decode coded image data obtained by dividing an image hierarchically and coding efficiently. Also, by placing data corresponding to a low-resolution image at the beginning of a data string and reading only a part from the beginning of the encoded image data, only that part is decoded and a low-resolution image is displayed. Thus, the outline of the image can be displayed to the user quickly.
[0228]
Note that the image decoding apparatus according to the present embodiment is provided with the selector of the image decoding apparatus according to the third embodiment, and the selector is set to what resolution image data is to be decoded. May be decoded into image data of a required resolution.
[0229]
<Sixth Embodiment>
Hereinafter, an image encoding device according to the sixth embodiment of the present invention will be described. The image encoding apparatus according to the first embodiment decomposes an image into two-layer resolutions of a high resolution and a low resolution and executes an encoding process, whereas the image encoding apparatus according to the present embodiment The apparatus has a function of executing a coding process on a continuous frame by using a correlation between frames included in the moving image with a coding target as a moving image. Otherwise, the configuration is the same as that of the image encoding device 1000 according to the above-described first embodiment. Therefore, detailed description thereof will not be repeated here. In the following description, it is assumed that the image encoding device according to the present embodiment performs encoding processing on image data of (M + 1) frames.
[0230]
The image coding apparatus according to the present embodiment replaces the resolution hierarchy in the image coding apparatus according to the fourth embodiment with continuous frames.
[0231]
FIG. 35 shows a block diagram of image coding apparatus 6000 according to the present embodiment. As shown in FIG. 35, the image encoding device 6000 replaces the high-resolution image data memory 1030 and the low-resolution image data memory 1040 of the image encoding device 1000 according to the above-described first embodiment with frames. It has (M + 1) data memories of a 0th frame image data memory 6020, a first frame image data memory 6030, and an Mth frame image data memory 6040, from the earliest time series.
[0232]
Further, the image encoding device 6000 replaces the high-resolution encoded image data memory 1060 and the low-resolution encoded image data memory 1070 of the image encoding device 1000 according to the first embodiment described above with frames. It has (M + 1) data memories of the 0th frame coded image data memory 6060, the first frame coded image data memory 6070, and the Mth frame coded image data memory 6080 from the earliest in the sequence.
[0233]
Further, the image encoding device 6000 includes an imaging device 6010 that captures an image instead of the encoding preprocessor 1010 of the image encoding device 1000 according to the above-described first embodiment. This image coding device 6000 is different from the image coding device 1050 of the image coding device 1000 according to the first embodiment in the connection relationship with the data memory from the image coding device 1050. It has an image encoder 6050. This image coding device 6000 has a connection relationship with a data memory with the coded data combiner 1080 instead of the coded data combiner 1080 of the image coding device 1000 according to the first embodiment. It has a different, coded data combiner 6090.
[0234]
With reference to FIG. 36, the procedure of the image data encoding process of the image encoding device 6000 according to the present embodiment will be described.
[0235]
In S6000, image coding apparatus 6000 stores the image data of the L-th frame captured by imaging apparatus 6010 in the L-th frame image data memory in chronological order. This process is executed until L changes from 0 to M.
[0236]
In S6100, image encoder 6050 of image encoding device 6000 encodes the image data stored in the L-th frame image data memory and stores the encoded image data in the L-th frame encoded image data memory. This process is executed until L changes from 0 to M. At this time, the use of correlation between consecutive frames can be most simply realized by associating pixels at the same physical position in consecutive frames. Using the value of the pixel referenced from the temporally preceding frame as a key, the pixel referenced from the temporally succeeding frame is encoded. This is exactly the same as encoding the pixels of the high-resolution image using the values of the pixels referenced from the low-resolution image as a key in the image encoding device according to the first embodiment. It is. As a method of determining the corresponding pixel, it is conceivable to determine the pixel more precisely by using a motion vector as performed in moving image encoding such as MPEG. The image encoding device according to the present invention is not limited to such a device, and the corresponding pixels may be obtained in any manner.
[0237]
In S6200, encoded data combiner 6090 of image encoding apparatus 6000 combines the encoded image data of each frame and stores the combined image data in combined encoded image data memory 1090.
[0238]
As described above, according to the image coding apparatus according to the present embodiment, by applying to the coding processing of a moving image and coding by using the correlation between different frames, the correlation between frames is obtained. Utilization of the method enables efficient encoding of a moving image composed of continuous frames.
[0239]
<Seventh embodiment>
Hereinafter, an image decoding apparatus according to the seventh embodiment of the present invention will be described. The image decoding device according to the present embodiment is a decoding device corresponding to the image encoding device according to the sixth embodiment.
[0240]
An image decoding device according to a seventh embodiment of the present invention will be described. While the image decoding device according to the second embodiment decomposes an image into two-layer resolutions of a high resolution and a low resolution and executes a decoding process, the image decoding device according to the present embodiment includes: It has a function of executing a decoding process of coded image data obtained by coding a continuous frame by using a correlation between frames included in the moving image with a decoding target as a moving image. Otherwise, the configuration is the same as that of the image decoding device 2000 according to the above-described second embodiment. Therefore, detailed description thereof will not be repeated here. In the following description, it is assumed that the image decoding apparatus according to the present embodiment performs a decoding process on image data of (M + 1) frames.
[0241]
The image decoding device according to the present embodiment replaces the resolution hierarchy in the image decoding device according to the fifth embodiment with continuous frames.
[0242]
FIG. 37 shows a block diagram of image decoding apparatus 7000 according to the present embodiment. As shown in FIG. 37, this image decoding device 7000 is different from the above-described image decoding device 2000 according to the second embodiment in that the high-resolution coded image data memory 2030 and the low-resolution coded image data memory 2040 are replaced by (M + 1) data memories of the 0th frame coded image data memory 7020, the first frame coded image data memory 7030, and the Mth frame coded image data memory 7040 from the earliest time series of the frame Having.
[0243]
Further, the image decoding device 7000 replaces the high-resolution image data memory 2060 and the low-resolution image data memory 2070 of the image decoding device 2000 according to the second embodiment with It has (M + 1) data memories of a 0th frame image data memory 7060, a first frame image data memory 7070, and an Mth frame image data memory 7080.
[0244]
Furthermore, this image decoding device 7000 has a different connection relationship with the data memory from this pre-decoding processor 2020 instead of the pre-decoding processor 2020 of the image decoding device 2000 according to the second embodiment. A decoding preprocessor 7010 is provided. This image decoding device 7000 is different from the image decoder 2050 of the image decoding device 2000 according to the second embodiment in that the image decoding device 7000 has a different connection relationship with a data memory from the image decoder 2050. Having. The image decoding device 7000 has a display device 7090 for displaying a moving image instead of the image data combiner 2080 and the output image data memory 2090 of the image decoding device 2000 according to the second embodiment.
[0245]
With reference to FIG. 38, a procedure of the image data decoding process of the image decoding device 7000 according to the present embodiment will be described.
[0246]
In S7000, image decoding apparatus 7000 separates the encoded image data encoded by image encoding apparatus 6000 according to the above-described sixth embodiment into encoded image data of (M + 1) frames. Then, the image data is sequentially stored in the L-th frame coded image data memory. This process is executed until L changes from 0 to M.
[0247]
In S7100, image decoder 7050 of image decoding apparatus 7000 decodes the encoded image data stored in the L-th frame encoded image data memory, and stores the decoded image data in the L-th frame image data memory. This process is executed until L changes from 0 to M.
[0248]
In S7200, display device 7090 of image decoding device 7000 sequentially outputs and displays the image data of (M + 1) frames stored in the (M + 1) frame image data memory in chronological order.
[0249]
As described above, according to the image decoding device of the present embodiment, it is possible to decode encoded image data obtained by efficiently encoding a moving image by using the correlation between different frames.
[0250]
The embodiments disclosed this time are to be considered in all respects as illustrative and not restrictive. The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.
[Brief description of the drawings]
FIG. 1 is a block diagram of an image encoding device according to a first embodiment of the present invention.
FIG. 2 is a flowchart showing a procedure of a process executed by the image encoding device according to the first embodiment of the present invention.
FIG. 3 is a diagram illustrating a first example of separating an input image into a high-resolution image and a low-resolution image in the image encoding device according to the first embodiment of the present invention.
FIG. 4 is a diagram illustrating a second example in which the input image is separated into a high-resolution image and a low-resolution image in the image encoding device according to the first embodiment of the present invention.
FIG. 5 is a diagram showing a scan order when encoding a high-resolution image in the image encoding device according to the first embodiment of the present invention.
FIG. 6 is a diagram showing a format of data stored in a high-resolution coded image data memory in the image coding device according to the first embodiment.
FIG. 7 is a diagram showing a format of data stored in a low-resolution coded image data memory in the image coding device according to the first embodiment.
FIG. 8 is a diagram showing a format of data stored in a combined encoded image data memory in the image encoding device according to the first embodiment.
FIG. 9 is a block diagram of an image encoder in the image encoding device according to the first embodiment.
FIG. 10 is a flowchart illustrating a procedure of a process performed by an image encoder in the image encoding device according to the first embodiment.
FIG. 11 is a block diagram of a symbol string decomposer in the image encoding device according to the first embodiment.
FIG. 12 is a flowchart illustrating a procedure of a process performed by a symbol string decomposer in the image encoding device according to the first embodiment.
FIG. 13 is a block diagram of an image decoding device according to a second embodiment of the present invention.
FIG. 14 is a flowchart illustrating a procedure of a process executed by the image decoding device according to the second embodiment.
FIG. 15 is a block diagram of an image decoder in the image decoding device according to the second embodiment.
FIG. 16 is a flowchart illustrating a procedure of a process performed by an image decoder in the image decoding device according to the second embodiment.
FIG. 17 is a block diagram of a symbol string combiner in the image decoding device according to the second embodiment.
FIG. 18 is a flowchart illustrating a procedure of a process performed by a symbol string combiner in the image decoding device according to the second embodiment.
FIG. 19 is a diagram illustrating an example of generating an output image by combining a high-resolution image and a low-resolution image in the image decoding device according to the second embodiment.
FIG. 20 is a block diagram of an image decoding device according to a third embodiment of the present invention.
FIG. 21 is a flowchart illustrating a procedure of a process performed by the image decoding device according to the third embodiment.
FIG. 22 is a block diagram of an image decoder in the image decoding device according to the third embodiment.
FIG. 23 is a flowchart showing a procedure of processing executed by an image decoder in the image decoding device according to the third embodiment.
FIG. 24 is a block diagram of an image encoding device according to a fourth embodiment of the present invention.
FIG. 25 is a flowchart illustrating a procedure of a process performed by the image encoding device according to the fourth embodiment.
FIG. 26 is a diagram for explaining an operation of an encoding preprocessor in an image encoding device according to a fourth embodiment.
FIG. 27 is a block diagram of an image encoder in an image encoding device according to a fourth embodiment.
FIG. 28 is a flowchart illustrating a procedure of a process performed by an image encoder in an image encoding device according to a fourth embodiment.
FIG. 29 is a diagram illustrating a format of data stored in a combined encoded image data memory in the image encoding device according to the fourth embodiment.
FIG. 30 is a block diagram of an image decoding device according to a fifth embodiment of the present invention.
FIG. 31 is a flowchart showing a procedure of processing executed by the image decoding device according to the fifth embodiment.
FIG. 32 is a block diagram of an image decoder in the image decoding device according to the fifth embodiment.
FIG. 33 is a flowchart illustrating a procedure of processing executed by an image decoder in the image decoding device according to the fifth embodiment.
FIG. 34 is a diagram for explaining an operation of the image data combiner according to the fifth embodiment.
FIG. 35 is a block diagram of an image encoding device according to a sixth embodiment of the present invention.
FIG. 36 is a flowchart showing a procedure of processing executed by the image encoding device according to the sixth embodiment.
FIG. 37 is a block diagram of an image encoding device according to a seventh embodiment of the present invention.
FIG. 38 is a flowchart illustrating a procedure of processing executed by the image encoding device according to the seventh embodiment.
FIG. 39 is a block diagram of an image encoding device related to the present invention.
FIG. 40 is a flowchart showing a procedure of a process executed by the image encoding device related to the present invention.
FIG. 41 is a diagram illustrating a first example of separating an input image into a high-resolution image and a low-resolution image in an image encoding device according to the present invention.
FIG. 42 is a diagram showing the order of scanning when encoding a high-resolution image and a low-resolution image in the image encoding device according to the present invention.
FIG. 43 is a diagram illustrating a second example in which an input image is separated into a high-resolution image and a low-resolution image in an image encoding device according to the present invention.
FIG. 44 is a diagram illustrating a scanning order when encoding a high-resolution image in the image encoding device related to the present invention.
[Explanation of symbols]
1000 image encoding device, 1010 input image data memory, 1020 encoding preprocessor, 1030 high-resolution image data memory, 1040 low-resolution image data memory, 1050 image encoder, 1060 high-resolution encoded image data memory, 1070 low Resolution encoded image data memory, 1080 encoded data combiner, 1090 joint encoded image data memory, 1200, 1300 input image, 1210, 1310 high resolution image, 1220, 1320 low resolution image, 1230, 1240, 1250 pixels, 1410 Controller, 1420 symbol string decomposer, 1422 controller, 1424 first counter, 1426 corresponding pixel number register, 1428 key register, 1430 symbol string buffer, 1440 symbol string counter, 1450 data code Device, 2000 image decoding device, 2010 joint coded image data memory, 2020 decoding preprocessor, 2030 high resolution coded image data memory, 2040 low resolution coded image data memory, 2050 image decoder, 2060 high resolution image data memory , 2070 low-resolution image data memory, 2080 image data combiner, 2090 output image data memory, 2410 controller, 2420 data decoder, 2430 symbol string combiner, 2432 controller, 2434 first counter, 2436 corresponding pixel number register, 2428 key Register, 2430 symbol string combiner, 2440 symbol string buffer, 2450 symbol string counter, 2510 high resolution image, 2520 low resolution image, 2530 output image, 3000 image decoding device, 3010 selector, 4 00 image encoding device, 4010 encoding preprocessor, 4020 0th level image data memory, 4030 first level image data memory, 4040 Mth level image data memory, 4050 image encoder, 4052 level register, 4060 0th level coded image data memory, 4070 1st level coded image data memory, 4080 Mth level coded image data memory, 4090 coded data combiner, 5000 image decoding device, 5010 decoding preprocessor 5020 0th level encoded image data memory, 5030 1st level encoded image data memory, 5040 Mth level encoded image data memory, 5050 image decoder, 5052 level register, 5060 0th level image data Memory, 5070 first level image data Memory, 5080 Mth level image data memory, 5090 image data combiner, 6000 image encoding device, 6010 imaging device, 6020 0th frame image data memory, 6030 first frame image data memory, 6040 Mth frame Image data memory, 6050 image encoder, 6060 0th frame encoded image data memory, 6070 first frame encoded image data memory, 6080 Mth frame encoded image data memory, 6090 encoded data combiner, 7000 image decoding device, 7010 decoding preprocessor, 7020 0th frame coded image data memory, 7030 first frame coded image data memory, 7040 Mth frame coded image data memory, 7050 image decoder, 7060 0th frame image data Memory, 7070 first frame image data memory, 7080 Mth frame image data memory, 7090 display device.

Claims (24)

データを符号化するデータ符号化装置であって、
複数のデータを含む第1のデータ群と、前記第1のデータ群に含まれない複数のデータで構成される第2のデータ群とを記憶するための記憶手段と、
前記第1のデータ群に含まれるデータと、前記第2のデータ群に含まれるデータとの対応付けを決定するための決定手段と、
前記決定された対応付けに基づいて、前記第1のデータ群を、複数のサブデータ群に分類するための分類手段と、
前記分類手段により分類されたサブデータ群ごとに、前記サブデータ群に含まれるデータを符号化処理するための第1の符号化手段と、
前記第2のデータ群に含まれるデータを符号化処理するための第2の符号化手段と、
前記サブデータ群に含まれるデータが符号化された符号化データと、前記第2のデータ群に含まれるデータが符号化された符号化データとを結合するための結合手段とを含む、データ符号化装置。
A data encoding device that encodes data,
Storage means for storing a first data group including a plurality of data, and a second data group including a plurality of data not included in the first data group;
Determining means for determining the correspondence between the data included in the first data group and the data included in the second data group;
Classifying means for classifying the first data group into a plurality of sub-data groups based on the determined association;
A first encoding unit configured to encode data included in the sub data group for each sub data group classified by the classification unit;
A second encoding unit for encoding data included in the second data group,
A data code including a combination unit for combining encoded data obtained by encoding data included in the sub-data group and encoded data obtained by encoding data included in the second data group; Device.
前記決定手段は、前記第1のデータ群に含まれるデータと、前記第2のデータ群に含まれるデータとが、データの値についての予め定められた関係を有するように、前記対応付けを決定するための手段を含む、請求項1に記載のデータ符号化装置。The determining means determines the association such that the data included in the first data group and the data included in the second data group have a predetermined relationship with respect to the value of the data. The data encoding device according to claim 1, further comprising: 前記データは、画像を表わすデータであって、前記データは、前記画像を構成する複数のピクセルに対応する画素データを含み、
前記決定手段は、前記第1のデータ群に含まれる画素データについての前記画像における位置と、前記第2のデータ群に含まれる画素データについての前記画像における位置とに基づいて、前記関係を有するように、前記対応付けを決定するための手段を含む、請求項2に記載のデータ符号化装置。
The data is data representing an image, the data includes pixel data corresponding to a plurality of pixels constituting the image,
The determining unit has the relationship based on a position of the pixel data included in the first data group in the image and a position of the pixel data included in the second data group in the image. 3. The data encoding device according to claim 2, further comprising means for determining the association.
前記決定手段は、前記画像における位置を用いた関数により、前記対応付けを決定するための手段を含む、請求項3に記載のデータ符号化装置。4. The data encoding device according to claim 3, wherein said determining means includes means for determining said association by a function using a position in said image. 前記データ符号化装置は、前記画像を複数の種類の解像度の画像に分割するための分割手段をさらに含み、
前記第1のデータ群は、高い解像度の画像についてのデータを含み、
前記第2のデータ群は、低い解像度の画像についてのデータを含む、請求項3または4に記載のデータ符号化装置。
The data encoding device further includes a dividing unit for dividing the image into a plurality of types of resolution images,
The first data group includes data about a high-resolution image,
The data encoding device according to claim 3, wherein the second data group includes data on a low-resolution image.
前記データは、動画像を表わすデータであって、
前記データ符号化装置は、前記動画像を、時系列に従って複数のフレームの画像に分割するための分割手段をさらに含み、
前記決定手段は、前記第1のデータ群に含まれる特定のフレームの画像についてのデータと、前記第2のデータ群に含まれる前記特定のフレームよりも早い時間の画像についてのデータとに基づいて、前記関係を有するように、前記対応付けを決定するための手段を含む、請求項2に記載のデータ符号化装置。
The data is data representing a moving image,
The data encoding device further includes a dividing unit for dividing the moving image into a plurality of frame images according to a time series,
The determining unit is configured to perform processing based on data on an image of a specific frame included in the first data group and data on an image earlier than the specific frame included in the second data group. 3. The data encoding apparatus according to claim 2, further comprising: means for determining the association so as to have the relationship.
前記分類手段は、前記第1のデータ群を、互いに関係が強いデータから構成されるサブデータ群に分類するための手段を含む、請求項1〜6のいずれかに記載のデータ符号化装置。The data encoding device according to any one of claims 1 to 6, wherein the classification unit includes a unit configured to classify the first data group into a sub data group including data having a strong relationship with each other. 前記分類手段は、前記第1のデータ群を、互いのデータの値が近似するデータから構成されるサブデータ群に分類するための手段を含む、請求項1〜6のいずれかに記載のデータ符号化装置。The data according to any one of claims 1 to 6, wherein the classification unit includes a unit configured to classify the first data group into a sub-data group including data in which values of data are similar to each other. Encoding device. 前記第1の符号化手段で実行される符号化処理の種類と、前記第2の符号化手段で実行される符号化処理の種類とは同じ処理である、請求項1〜8のいずれかに記載のデータ符号化装置。9. The method according to claim 1, wherein the type of the encoding process executed by the first encoding unit and the type of the encoding process executed by the second encoding unit are the same. A data encoding device according to claim 1. 前記符号化処理は、辞書に基づく符号化処理である、請求項9に記載のデータ符号化装置。The data encoding device according to claim 9, wherein the encoding process is an encoding process based on a dictionary. 符号化データを復号するデータ復号装置であって、
結合された、第1の符号化データ群と第2の符号化データ群とを記憶するための記憶手段と、
前記記憶手段に記憶されたデータ群を、前記第1の符号化データ群と前記第2の符号化データ群とに分割するための分割手段と、
前記第1の符号化データ群に含まれる符号化データを復号処理してサブデータ群を作成するための第1の復号手段と、
前記第2の符号化データ群に含まれる符号化データを復号処理して第2のデータ群を作成するための第2の復号手段とを含み、
前記データ復号装置により復号される元データは、複数のデータを含む第1のデータ群と、前記第1のデータ群に含まれない複数のデータで構成される第2のデータ群とから構成され、前記サブデータ群は、前記第1のデータ群に含まれるデータと前記第2のデータ群に含まれるデータとの対応付けに基づいて第1のデータ群が分類されたデータ群であり、前記サブデータ群ごとに第1の符号化データ群に符号化処理され、
前記データ復号装置は、さらに、前記サブデータ群と前記第2のデータ群とに基づいて、前記対応付けに従って、前記第1のデータ群を作成するための作成手段を含む、データ復号装置。
A data decoding device for decoding encoded data,
Storage means for storing the combined first encoded data group and second encoded data group;
Division means for dividing the data group stored in the storage means into the first encoded data group and the second encoded data group;
First decoding means for decoding a coded data included in the first coded data group to create a sub data group;
Second decoding means for decoding the encoded data included in the second encoded data group to create a second data group,
The original data decoded by the data decoding device includes a first data group including a plurality of data and a second data group including a plurality of data not included in the first data group. The sub-data group is a data group in which the first data group is classified based on the correspondence between the data included in the first data group and the data included in the second data group; Each sub data group is encoded into a first encoded data group,
The data decoding device, further comprising a creating unit for creating the first data group according to the association based on the sub data group and the second data group.
前記作成手段は、前記第1のデータ群に含まれるデータと、前記第2のデータ群に含まれるデータとが、データの値についての予め定められた関係を有するように、前記第1のデータ群を作成するための手段を含む、請求項11に記載のデータ復号装置。The creating means may be configured to store the first data in the first data group and the data in the second data group such that the first data group has a predetermined relationship with respect to a data value. The data decoding device according to claim 11, further comprising means for creating a group. 前記元データは、画像を表わすデータであって、前記元データは、前記画像を構成する複数のピクセルに対応する画素データを含み、
前記作成手段は、前記第1のデータ群に含まれる画素データについての前記画像における位置と、前記第2のデータ群に含まれる画素データについての前記画像における位置とに基づいて、前記関係を有するように、前記第1のデータ群を作成するための手段を含む、請求項12に記載のデータ復号装置。
The original data is data representing an image, and the original data includes pixel data corresponding to a plurality of pixels forming the image,
The creating unit has the relationship based on a position of the pixel data included in the first data group in the image and a position of the pixel data included in the second data group in the image. 13. The data decoding apparatus according to claim 12, further comprising means for creating the first data group.
前記作成手段は、前記画像における位置を用いた関数により、前記第1のデータ群を作成するための手段を含む、請求項13に記載のデータ復号装置。14. The data decoding apparatus according to claim 13, wherein the creation unit includes a unit for creating the first data group by a function using a position in the image. 前記元データは、前記画像を複数の解像度で表わすデータを含み、
前記データ復号装置は、前記解像度を指定するための指定手段をさらに含む、請求項13に記載のデータ復号装置。
The original data includes data representing the image at a plurality of resolutions,
14. The data decoding device according to claim 13, wherein the data decoding device further includes a designation unit for designating the resolution.
前記データは、動画像を表わすデータであって、
前記作成手段は、前記第1のデータ群に含まれる特定のフレームの画像についてのデータと、前記第2のデータ群に含まれる前記特定のフレームよりも早い時間の画像についてのデータとに基づいて、前記第1のデータ群を作成するための手段を含む、請求項12に記載のデータ復号装置。
The data is data representing a moving image,
The creation unit is configured to perform processing based on data on an image of a specific frame included in the first data group and data on an image earlier than the specific frame included in the second data group. 13. The data decoding apparatus according to claim 12, further comprising: means for generating the first data group.
前記第1の復号手段で実行される復号処理の種類と、前記第2の復号手段で実行される復号処理の種類とは同じ処理である、請求項11〜16のいずれかに記載のデータ復号装置。The data decoding according to any one of claims 11 to 16, wherein the type of the decoding process executed by the first decoding unit and the type of the decoding process executed by the second decoding unit are the same. apparatus. 前記復号処理は、辞書に基づく復号処理である、請求項17に記載のデータ復号装置。The data decoding device according to claim 17, wherein the decoding process is a decoding process based on a dictionary. データを符号化するデータ符号化方法であって、
複数のデータを含む第1のデータ群と、前記第1のデータ群に含まれない複数のデータで構成される第2のデータ群とを予め準備する準備ステップと、
前記第1のデータ群に含まれるデータと、前記第2のデータ群に含まれるデータとの対応付けを決定する決定ステップと、
前記決定された対応付けに基づいて、前記第1のデータ群を、複数のサブデータ群に分類する分類ステップと、
前記分類ステップにて分類されたサブデータ群ごとに、前記サブデータ群に含まれるデータを符号化処理する第1の符号化ステップと、
前記第2のデータ群に含まれるデータを符号化処理する第2の符号化ステップと、
前記サブデータ群に含まれるデータが符号化された符号化データと、前記第2のデータ群に含まれるデータが符号化された符号化データとを結合する結合ステップとを含む、データ符号化方法。
A data encoding method for encoding data, the method comprising:
A preparation step of preparing in advance a first data group including a plurality of data and a second data group including a plurality of data not included in the first data group;
A determining step of determining correspondence between data included in the first data group and data included in the second data group;
A classifying step of classifying the first data group into a plurality of sub-data groups based on the determined association;
A first encoding step of encoding data included in the sub data group for each sub data group classified in the classification step;
A second encoding step of encoding data included in the second data group;
A data encoding method comprising: combining encoded data in which data included in the sub-data group is encoded and encoded data in which data included in the second data group is encoded. .
符号化データを復号するデータ復号方法であって、
結合された、第1の符号化データ群と第2の符号化データ群とを予め準備する準備ステップと、
前記準備ステップにて準備されたデータ群を、前記第1の符号化データ群と前記第2の符号化データ群とに分割する分割ステップと、
前記第1の符号化データ群に含まれる符号化データを復号処理してサブデータ群を作成する第1の復号ステップと、
前記第2の符号化データ群に含まれる符号化データを復号処理して第2のデータ群を作成する第2の復号ステップとを含み、
前記データ復号方法により復号される元データは、複数のデータを含む第1のデータ群と、前記第1のデータ群に含まれない複数のデータで構成される第2のデータ群とから構成され、前記サブデータ群は、前記第1のデータ群に含まれるデータと前記第2のデータ群に含まれるデータとの対応付けに基づいて第1のデータ群が分類されたデータ群であり、前記サブデータ群ごとに第1の符号化データ群に符号化処理され、
前記データ復号方法は、さらに、前記サブデータ群と前記第2のデータ群とに基づいて、前記対応付けに従って、前記第1のデータ群を作成する作成ステップを含む、データ復号方法。
A data decoding method for decoding encoded data,
Preparing a combined first encoded data group and a second encoded data group in advance;
A dividing step of dividing the data group prepared in the preparing step into the first encoded data group and the second encoded data group;
A first decoding step of decoding encoded data included in the first encoded data group to create a sub data group;
Decoding a coded data included in the second coded data group to create a second data group; and
The original data decoded by the data decoding method includes a first data group including a plurality of data, and a second data group including a plurality of data not included in the first data group. The sub-data group is a data group in which the first data group is classified based on the correspondence between the data included in the first data group and the data included in the second data group; Each sub data group is encoded into a first encoded data group,
The data decoding method further includes a creating step of creating the first data group according to the association based on the sub data group and the second data group.
請求項19に記載のデータ符号化方法および請求項20に記載のデータ復号方法の少なくとともいずれかを、コンピュータに実現させるためのプログラム。A program for causing a computer to realize at least one of the data encoding method according to claim 19 and the data decoding method according to claim 20. 請求項21に記載のプログラムを記録したコンピュータ読取可能な記録媒体。A computer-readable recording medium recording the program according to claim 21. データを符号化するデータ符号化装置であって、
予め順序付けられた複数のデータ群を記憶するための記憶手段と、
前記順序付けられた複数のデータ群の、一つのデータ群に含まれるそれぞれのデータから次順のデータ群に含まれるデータへの対応関係を決定するための決定手段と、
前記一つのデータ群を、前記対応関係に基づいて、前記次順のデータ群の対応するデータに基づいてサブデータ群に分類するための分類手段と、
前記分類手段に基づいて分類された前記サブデータ群のそれぞれについて符号化処理するための第1の符号化手段と、
前記順序付けられた複数のデータ群の中の最後順のデータ群を符号化処理するための第2の符号化手段とを含む、データ符号化装置。
A data encoding device that encodes data,
Storage means for storing a plurality of pre-ordered data groups;
Determining means for determining the correspondence relationship from the data included in one data group to the data included in the next data group, of the plurality of ordered data groups,
Classification means for classifying the one data group into sub-data groups based on corresponding data of the next-order data group based on the correspondence relationship,
First encoding means for performing encoding processing on each of the sub-data groups classified based on the classification means;
Second encoding means for encoding the last data group among the plurality of ordered data groups.
符号化データを復号するデータ復号装置であって、
結合された符号化データ群を記憶するための記憶手段と、
前記結合された符号化データ群を、複数の順序付けられた符号化データ群に分割するための分割手段と、
前記複数の順序付けられた符号化データのうち最後順の符号化データ群を復号処理するための第1の復号手段と、
前記最後順の符号化データ群以外の前記順序付けられた符号化データ群を復号処理して、サブデータ群を生成するための第2の復号手段と、
前記複数の順序付けられた符号化データに含まれる一つのデータ群に含まれるそれぞれのデータから次順のデータ群に含まれるデータへの対応関係を決定するための決定手段と、
前記サブデータ群を、前記対応関係に基づいて、前記次順のデータ群の対応するデータに基づいて、当該データ群に統合するための統合手段とを含む、データ復号装置。
A data decoding device for decoding encoded data,
Storage means for storing the combined encoded data group;
Dividing means for dividing the combined encoded data group into a plurality of ordered encoded data groups;
First decoding means for decoding a last-order encoded data group among the plurality of ordered encoded data,
Second decoding means for decoding the ordered encoded data group other than the last-order encoded data group to generate a sub data group;
Determining means for determining a correspondence relationship from respective data included in one data group included in the plurality of ordered encoded data to data included in the next-order data group,
An integration unit for integrating the sub-data group into the data group based on the corresponding data of the next-order data group based on the correspondence relationship.
JP2002301843A 2002-10-16 2002-10-16 Data encoding device, data decoding device, data encoding method, data decoding method, program for causing computer to realize these methods, and recording medium Expired - Fee Related JP4233302B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002301843A JP4233302B2 (en) 2002-10-16 2002-10-16 Data encoding device, data decoding device, data encoding method, data decoding method, program for causing computer to realize these methods, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002301843A JP4233302B2 (en) 2002-10-16 2002-10-16 Data encoding device, data decoding device, data encoding method, data decoding method, program for causing computer to realize these methods, and recording medium

Publications (2)

Publication Number Publication Date
JP2004140507A true JP2004140507A (en) 2004-05-13
JP4233302B2 JP4233302B2 (en) 2009-03-04

Family

ID=32450086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002301843A Expired - Fee Related JP4233302B2 (en) 2002-10-16 2002-10-16 Data encoding device, data decoding device, data encoding method, data decoding method, program for causing computer to realize these methods, and recording medium

Country Status (1)

Country Link
JP (1) JP4233302B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100388792C (en) * 2006-04-24 2008-05-14 李博航 Image processing method of increasing information encoding-decoding efficiency
JP2018078613A (en) * 2017-12-18 2018-05-17 パナソニックIpマネジメント株式会社 Communication system, image generation method, and communication device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101742320B (en) * 2010-01-20 2012-09-12 李博航 Image processing method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100388792C (en) * 2006-04-24 2008-05-14 李博航 Image processing method of increasing information encoding-decoding efficiency
JP2018078613A (en) * 2017-12-18 2018-05-17 パナソニックIpマネジメント株式会社 Communication system, image generation method, and communication device

Also Published As

Publication number Publication date
JP4233302B2 (en) 2009-03-04

Similar Documents

Publication Publication Date Title
JP4479530B2 (en) Data compression apparatus and data restoration apparatus
JP4033836B2 (en) Compression of paletted color images using variable-length color codes
JP4689545B2 (en) Data compression apparatus and data compression program
JP2010136417A (en) Data compression device and data decompression device
JP2005516554A6 (en) Compression of paletted color images using variable-length color codes
US6327383B2 (en) Multi-color image encoding apparatus and method, multi-color image decoding apparatus and method
US5966467A (en) System for compressing and decompressing binary representations of dithered images
JP4233302B2 (en) Data encoding device, data decoding device, data encoding method, data decoding method, program for causing computer to realize these methods, and recording medium
CN112118449B (en) Method and device for compressing and decompressing image
Hafner Refining image compression with weighted finite automata
Cinque et al. Scalability and communication in parallel low-complexity lossless compression
JP2511158B2 (en) Image compression device
JP2003264703A (en) Data encoder, data encoding method and program therefor
JP3952116B2 (en) Image compression apparatus and method
JP2019047450A (en) Compression processing device, decompression processing device, compression processing program, and decompression processing program
Khan et al. A hybrid image compression technique using quadtree decomposition and parametric line fitting for synthetic images
JP4034385B2 (en) Multi-color image encoding apparatus and method, and multi-color image decoding apparatus and method
JP2993540B2 (en) Ascending integer sequence data compression and decoding system
JPH11317673A (en) Run length encoding and decoding method therefor
JPH02190080A (en) Picture encoding device
SKARBEK et al. Compression of dithered binary images using Hilbert scan
JPH0884260A (en) Compression system and expansion system for two-dimension image data
JP2002354269A (en) Image encoding device, its method, program, and recording medium recording the program
He et al. How Can Spiral Architecture Improve Image Compression?
JP2615215B2 (en) Image data compression method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050525

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071031

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: 20081202

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081209

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees