JP2012129778A - 画像処理装置および画像処理方法 - Google Patents

画像処理装置および画像処理方法 Download PDF

Info

Publication number
JP2012129778A
JP2012129778A JP2010279057A JP2010279057A JP2012129778A JP 2012129778 A JP2012129778 A JP 2012129778A JP 2010279057 A JP2010279057 A JP 2010279057A JP 2010279057 A JP2010279057 A JP 2010279057A JP 2012129778 A JP2012129778 A JP 2012129778A
Authority
JP
Japan
Prior art keywords
data
pixel
slide
prediction error
value
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.)
Pending
Application number
JP2010279057A
Other languages
English (en)
Inventor
Naohito Shiraishi
尚人 白石
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2010279057A priority Critical patent/JP2012129778A/ja
Priority to US13/311,799 priority patent/US8712174B2/en
Publication of JP2012129778A publication Critical patent/JP2012129778A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/1861Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time
    • G06K15/1865Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time by compressing the rasterized print data

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract


【課題】圧縮率の向上を図ることができる画像処理装置および画像処理方法を提供する。
【解決手段】本発明に係る画像処理装置は、符号化を行う符号化部204を有する。符号化部204は、データ読み込み部300、ラインメモリ制御部301、ラインメモリ302、予測処理部303、予測誤差処理部304、スライド/リスト生成処理部305、符号フォーマット生成処理部306、および、符号書き込み部307を有する。スライド/リスト生成処理部305は、入力される予測誤差値と、スライド記憶部に記憶された過去の予測誤差値のそれぞれとを比較する。そして、入力された予測誤差値が、スライド記憶部内の過去の予測誤差値のうちの何れとも一致していなかった場合は、入力された予測誤差値が求められた注目画素の画素値を、ESCデータとして後段の符号フォーマット生成処理部306へ出力する。
【選択図】図1

Description

本発明は、画像処理装置および画像処理方法に関する。
プリンタなどの画像形成装置では、入力された画像データを一時的にメモリに記憶し、このメモリに記憶された画像データを所定のタイミングで読み出して、印刷動作を行う。この場合、画像データをそのままメモリに格納しようとすると、大容量のメモリが必要になりコストが上昇する。そのため、一般的には、入力された画像データを圧縮符号化してメモリに格納するようにしている。
例えば特許文献1には、LZ77法を用いて圧縮符号化を行う技術が開示されている。
より具体的には、入力データを格納するスライド記憶部内で、順次に入力される画像データからなる入力データ列と一致する、過去の連続する画像データからなるデータ列を探索し、その一致情報(位置情報や長さなど)を符号化するという具合である。
ここで、符号化対象の画素(「注目画素」と呼ぶ)の画素値と、当該注目画素の周辺画素の画素値から求められる当該注目画素の予測画素値との差分である予測誤差値が入力データとして採用される場合を想定する。この場合、入力された予測誤差値が、スライド記憶部に既に記憶されている予測誤差値と一致していた場合は、スライド記憶部内で、順次に入力される予測誤差値からなる入力データ列と一致する、過去の連続する予測誤差値からなるデータ列を探索するリスト探索処理が行われ、探索されたリストの情報が符号化される。一方、入力された予測誤差が、スライド記憶部に既に記憶されている予測誤差値と一致していなかった場合は、その入力された予測誤差値が符号化される。
しかしながら、予測誤差値は、正の値だけでなく、負の値になることもあるので、予測誤差値の符号化に必要なビット数が多くなってしまい、十分な圧縮率を得られないという問題がある。
本発明は、上記に鑑みてなされたものであって、圧縮率の向上を図ることができる情報処理装置および情報処理方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、画像データを構成する複数の画素の各々の画素値が書き込まれる第1記憶手段と、前記第1記憶手段から、符号化対象である注目画素の画素値と、当該注目画素の周辺の画素の画素値とを読み出す第1読み出し手段と、前記第1読み出し手段で読み出された前記周辺の画素の画素値に基づいて、前記注目画素の画素値の予測値を算出する第1予測値算出手段と、前記第1予測値算出手段で算出された前記予測値と、前記注目画素の画素値との差分である予測誤差を算出する予測誤差算出手段と、一方の端から、前記予測誤差算出手段で算出された前記予測誤差が順次に入力され、入力された前記予測誤差を記憶するとともに、既に記憶された前記予測誤差を他方の端側へ移動して記憶する第2記憶手段と、前記第2記憶手段に入力される前記予測誤差を、当該第2記憶手段に既に記憶されている前記予測誤差のそれぞれと比較する比較手段と、前記比較手段による比較の結果、入力された前記予測誤差が、前記第2記憶手段に既に記憶されている前記予測誤差と一致していた場合は、順次に入力される前記予測誤差からなる入力データ列と一致する、前記第2記憶手段に連続して記憶される前記予測誤差からなるデータ列を探索する探索手段と、前記探索手段で探索された前記データ列の長さを示すレングス情報を生成するレングス情報生成手段と、前記探索手段で探索された前記データ列の開始データが記憶されていた前記第2記憶手段内の位置を示すアドレス情報を生成するアドレス情報生成手段と、前記レングス情報生成手段で生成された前記レングス情報、および、前記アドレス情報生成手段で生成された前記アドレス情報を符号化した第1符号データを生成する第1符号データ生成手段と、前記比較手段による比較の結果、入力された前記予測誤差が、前記第2記憶手段に既に記憶されている前記予測誤差のうちの何れとも一致していなかった場合は、当該入力された前記予測誤差が求められた前記注目画素の画素値を符号化した第2符号データを生成する第2符号データ生成手段と、を備えることを特徴とする。
また、本発明は、画像データを構成する複数の画素の各々の画素値が書き込まれる第1記憶手段から、符号化対象である注目画素の画素値と、当該注目画素の周辺の画素の画素値とを読み出す第1ステップと、前記第1ステップで読み出された前記周辺の画素の画素値に基づいて、前記注目画素の画素値の予測値を算出する第2ステップと、前記第2ステップで算出された前記予測値と、前記注目画素の画素値との差分である予測誤差を算出する第3ステップと、一方の端から、前記第3ステップで算出された前記予測誤差が順次に入力され、その入力された前記予測誤差を記憶するとともに、既に記憶された前記予測誤差を他方の端側へ移動して記憶する第2記憶手段の前記一方の端から入力される前記予測誤差を、当該第2記憶手段に既に記憶されている前記予測誤差のそれぞれと比較する第4ステップと、前記第4ステップによる比較の結果、入力された前記予測誤差が、前記第2記憶手段に既に記憶されている前記予測誤差と一致していた場合は、順次に入力される前記予測誤差からなる入力データ列と一致する、前記第2記憶手段に連続して記憶される前記予測誤差からなるデータ列を探索する第5ステップと、前記第5ステップで探索された前記データ列の長さを示すレングス情報を生成する第6ステップと、前記第5ステップで探索された前記データ列の開始データが記憶されていた前記第2記憶手段内の位置を示すアドレス情報を生成する第7ステップと、前記第7ステップで生成された前記レングス情報、および、前記アドレス情報生成手段で生成された前記アドレス情報を符号化した第1符号データを生成する第8ステップと、前記第4ステップによる比較の結果、入力された前記予測誤差が、前記第2記憶手段に既に記憶されている前記予測誤差のうちの何れとも一致していなかった場合は、当該入力された前記予測誤差が求められた前記注目画素の画素値を符号化した第2符号データを生成する第9ステップと、を備えることを特徴とする。
本発明によれば、符号化処理において、入力された予測誤差値が、スライド記憶部に既に記憶されている予測誤差値と一致していなかった場合は、その入力された予測誤差値が求められた注目画素の画素値が符号化されるので、予測誤差値が符号化される構成に比べて、符号化に必要なビット数を少なくすることができる。したがって、圧縮率の向上が可能になるという有利な効果を奏する。
図1は、この発明の実施形態による画像処理装置を適用可能な画像形成装置の機構部の構成例を示す略線図である。 図2は 画像形成装置における電装・制御装置の構成の一例を示すブロック図である。 図3は、画像形成装置の全体的な動作の例を概略的に示すフローチャートである。 図4は、符号化部の構成の一例を示す図である。 図5は、注目画素の周辺画素を説明するための図である。 図6は、予測処理の算出方法を説明するための図である。 図7は、符号フォーマットの例を示す図である。 図8は、本実施形態の符号化処理を説明するための図である。 図9−1は、スライド探索処理およびリスト探索処理におけるフラグ処理を説明するための図である。 図9−2は、スライド探索処理およびリスト探索処理におけるフラグ処理を説明するための図である。 図10−1は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。 図10−2は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。 図10−3は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。 図10−4は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。 図10−5は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。 図10−6は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。 図10−7は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。 図10−8は、フラグ処理を行った場合のスライド探索処理およびリスト探索処理を説明するための図である。 図11は、本実施形態による符号化処理の全体的な流れを示すフローチャートの一例を示す図である。 図12は、スライド探索処理の詳細な内容の一例を示すフローチャートである。 図13は、リスト探索処理の詳細な内容の一例を示すフローチャートである。 図14は、スライド追加処理の詳細な内容の一例を示すフローチャートである。 図15は、符号生成処理の詳細な内容の一例を示すフローチャートである。 図16は、符号化部の詳細な構成の一例を示す図である。 図17は、スライド/リスト生成処理部のハードウェア構成の一例を示す図である。 図18は、復号部の構成の一例を示す図である。 図19は、復号処理の一例を示すフローチャートである。 図20は、復号部の詳細な構成の一例を示す図である。 図21は、スライド展開部のハードウェア構成の一例を示す図である。
以下、添付図面を参照しながら、本発明に係る画像処理装置の一実施形態を詳細に説明する。図1は、本実施形態に係る画像処理装置を適用可能な画像形成装置(カラープリンタとする)の機構部の構成例を示す。なお、本実施形態では、本発明に係る画像処理装置および画像処理方法をカラープリンタである画像形成装置に適用した例について説明するが、文字画像を含む画像に画像処理を施すものであれば、これに限定するものではない。例えば、本発明は、複写機、ファクシミリ、複合機などの画像処理装置にも適用することができる。
<実施形態に適用可能なプリンタの例>
図1に例示されるプリンタ装置200は、4色(Y、M、C、K)の画像をそれぞれ独立の作像系1Y、1M、1C、1Kで形成し、この4色の画像を合成する4ドラムタンデムエンジンタイプの画像形成装置である。各作像系1Y、1M、1C、1Kは、像担持体としての感光体、例えば小径のOPC(有機感光体)ドラム2Y、2M、2C、2Kを有し、このOPCドラム2Y、2M、2C、2Kを取り囲むように作像の上流側から帯電手段としての帯電ローラ3Y、3M、3C、3Kと、OPCドラム2Y、2M、2C、2K上の静電潜像をそれぞれ現像剤で現像してY、M、C、K各色のトナー像とする現像装置4Y、4M、4C、4Kと、クリーニング装置5Y、5M、5C、5Kと、除電装置6Y、6M、6C、6Kなどが配置されている。
各現像装置4Y、4M、4C、4Kの脇には、Yトナー、Mトナー、Cトナー、Kトナーをそれぞれ現像装置4Y、4M、4C、4Kへ補給するトナーボトルユニット7Y、7M、7C、7Kが配置されている。また、各作像系1Y、1M、1C、1Kは各々独立な光書き込み装置8Y、8M、8C、8Kが配置され、この光書き込み装置8Y、8M、8C、8Kはレーザ光源としてのレーザダイオード(LD)光源9Y、9M、9C、9Kや、コリメートレンズ10Y、10M、10C、10K、fθレンズ11Y、11M、11C、11K、といった光学部品、偏向走査手段としてのポリゴンミラー12Y、12M、12C、12K、折り返しミラー13Y、13M、13C、13K、14Y、14M、14C、14Kなどを有する。
各作像系1Y、1M、1C、1Kは垂直に配列され、その右側には転写ベルトユニット15がOPCドラム2Y、2M、2C、2Kに接する形で配置される。転写ベルトユニット15は、転写ベルト16がローラ17〜20に張架されて図示しない駆動源により回転駆動される。装置下側には転写材としての転写紙が収納された給紙トレイ21が配置され、装置上部に定着装置22、排紙ローラ23及び排紙トレイ24が配設される。
作像時には、各作像系1Y、1M、1C、1Kにおいて、それぞれ、OPCドラム2Y、2M、2C、2Kが図示しない駆動源により回転駆動され、帯電ローラ3Y、3M、3C、3KによりOPCドラム2Y、2M、2C、2Kが一様に帯電されて光書き込み装置8Y、8M、8C、8Kが各色の画像データに基づきOPCドラム2Y、2M、2C、2Kに光書込みを行うことによって、OPCドラム2Y、2M、2C、2K上に静電潜像が形成される。
このOPCドラム2Y、2M、2C、2K上の静電潜像はそれぞれ現像装置4Y、4M、4C、4Kにより現像されてY、M、C、K各色のトナー像となり、一方、給紙トレイ21から給紙ローラ25により転写紙が水平方向に給紙されて搬送系により作像系1Y、1M、1C、1K方向へ垂直に搬送される。この転写紙は、転写ベルト16に静電的に吸着保持されて転写ベルト16により搬送され、図示しない転写バイアス印加手段により転写バイアスが印加されてOPCドラム2Y、2M、2C、2K上のY、M、C、K各色のトナー像が順次に重ねて転写されることでフルカラー画像が形成される。このフルカラー画像が形成された転写紙は、定着装置22によりフルカラー画像が定着されて排紙ローラ23により排紙トレイ24へ排出される。
図2は、図1のプリンタ装置200の電装・制御系統の構成の一例を示すブロック図である。図2の例では、プリンタ装置200は、制御部230、メインメモリ210、プリンタエンジン211およびオペレーションパネル240を備える。制御部230は、CPU(Central Processing Unit)212、CPU I/F201、メインメモリアービタ202、メインメモリコントローラ203、符号化部204、復号部205、階調処理部206、エンジンコントローラ207およびパネルコントローラ241を含む。
CPU212は、メインメモリ210に格納されるプログラムに従い、このプリンタ装置200の全体の動作を制御する。CPU212は、CPU I/F201を介してメインメモリアービタ202に接続される。メインメモリアービタ202は、CPU212、符号化部204、復号部205および通信コントローラ208の、メインメモリ210に対するアクセスを調停する。
メインメモリ210は、メインメモリコントローラ203を介してメインメモリアービタ202に接続される。メインメモリコントローラ203は、メインメモリ210に対するアクセスの制御を行う。
メインメモリ210は、プログラム領域210A、PDLデータ格納領域210B、CMYKバンド画像データ格納領域210C、CMYKページ符号格納領域210Dおよびその他の領域210Eを有する。プログラム領域210Aは、CPU212が動作するためのプログラムが格納される。PDLデータ格納領域210Bは、例えばコンピュータ220から通信コントローラ208を介して供給されたPDLデータが格納される。CMYKバンド画像データ格納領域210Cは、CMYKバンド画像データが格納される。CMYKページ符号格納領域210Dは、バンド画像データが圧縮符号化された符号データが格納される。CMYKページ符号格納領域210Dは、例えば1ページ分のCMYKバンド画像データが圧縮符号化された符号データが格納される。領域210Eは、上述した以外のデータが格納される。
符号化部204は、メインメモリ210に格納されるバンド画像データを符号化する。バンド画像データが符号化された符号データは、メインメモリアービタ202およびメモリコントローラ203を介してメインメモリ210に供給され、CMYKページ符号格納領域210Dに書き込まれる。復号部205は、後述するプリンタエンジン211に同期して、メインメモリ210のCMYKページ符号格納領域210Dから符号データを読み出して復号する。復号された画像データは、階調処理部206に供給され、階調処理が施されてエンジンコントローラ207に転送される。
エンジンコントローラ207は、プリンタエンジン211を制御する。図1では、プリンタエンジン211としてCMYK各色の版のうち1の版のものだけが記載され、その他の版については煩雑さを避けるために省略されている。
通信コントローラ208は、ネットワークを介しての通信を制御する。例えば、コンピュータ220から出力されたPDL(Page DESCription Language)データは、ネットワークを介して通信コントローラ208により受信される。通信コントローラ208は、受信したPDLデータを、メインメモリアービタ202およびメインメモリコントローラ203を介してメインメモリ210に転送する。
なお、ネットワークは、LAN(Local Area Network)などの所定の範囲内で通信を行うものでもよいし、インターネットなどより広範囲に通信可能なものでもよい。また、ネットワークは、有線通信に限らず無線通信を用いたものでもよいし、USB(Universal Serial Bus)やIEEE(Institute Electrical and Electronics Engineers)1394といったシリアル通信を行うものでもよい。
オペレーションパネル240は、ユーザ操作を受け付けるための複数の操作子と、ユーザに対して情報を提供するための表示素子とを有する。パネルコントローラ241は、CPU212の指示に従い、オペレーションパネル240の表示を制御すると共に、オペレーションパネル240に対してなされたユーザ操作に応じた信号を、CPU212に送信する。
次に、図3を用いて、プリンタ装置200の全体的な動作の例について説明する。図3は、プリンタ装置200の全体的な動作の例を概略的に示すフローチャートである。
例えばコンピュータ220で生成されたPDLデータがネットワークを介して通信コントローラ208に受信され、メインメモリ210のPDLデータ格納領域210Bに記憶される(ステップS1)。CPU212は、メインメモリ210のPDLデータ格納領域210Bから経路Aに従いPDLデータを読み出し、PDLを解析して(ステップS2)、解析結果に基づきCMYKのバンド画像を描画する(ステップS3)。描画されたCMYKのバンド画像によるCMYKバンド画像データは、メインメモリ210のCMYKバンド画像データ格納領域210Cに記憶される(ステップS4)。
符号化部204は、経路Bに従いCMYKバンド画像データ格納領域210CからCMYKバンド画像データを読み出して、本実施形態による符号化方法を用いて符号化する(ステップS5)。CMYKバンド画像データが符号化された符号データは、経路Cに従いメインメモリ210のCMYKページ符号格納領域210Dに記憶される(ステップS6)。
復号部205は、経路Dに従いCMYKページ符号格納領域210Dから符号データを読み出して画像データに復号し(ステップS7)、復号した画像データを階調処理部206に供給する。階調処理部206は、復号部205から供給された画像データに対して階調処理を施して(ステップS8)、経路Eに従いプリンタエンジンコントローラ207に供給する。エンジンコントローラ207は、供給された画像データに従い基づきプリンタエンジン211を制御してプリントアウトを行う(ステップS9)。
<符号化処理の概略>
図4は、本実施形態に係る符号化部204の構成の一例を示す。符号化部204は、データ読み込み部300、ラインメモリ制御部301、ラインメモリ302、予測処理部303、予測誤差処理部304、スライド/リスト生成処理部305、符号フォーマット生成処理部306、および、符号書き込み部307を有する。
データ読み込み部300は、メインメモリ210のCMYKバンド画像データ格納領域210Cから、CMYK各版毎のCMYKバンド画像データを読み出す。このとき、CMYK各版毎のCMYKバンド画像データ(多値画像データ)は、データ読み込み部300によりスキャンライン毎に順次、画素単位でCMYKバンド画像データ格納領域210Cから読み出される。
ラインメモリ制御部301は、データ読み込み部300により画素単位で読み出された画像データ(画素値)を、ラインメモリ302に格納する。本実施形態では、ラインメモリ302は、2ライン分の画素値を格納可能であり、今回供給された画素値を格納すると共に、直前に格納した1ライン分の画素値を保持するように、ラインメモリ制御部301に制御される。
より具体的には、ラインメモリ302は、1ライン分の画素値を記憶可能であって、符号化対象の画素(以下、「注目画素」と呼ぶ)が順次に書き込まれる第1領域と、注目画素が属するラインの直前のラインであって、既に符号化が終了したラインの画素値が記憶される第2領域とを有する。
ラインメモリ制御部301の制御により、ラインメモリ302から、注目画素の画素値と、注目画素の周辺3画素の画素値が順次に読み出され、予測処理部303に渡される。ここでラインメモリ302から読み出される周辺3画素は、注目画素に近接する、既に符号化が終了した画素である。より具体的には、図5に例示されるように、注目画素のスキャン順で直前の画素aと、当該注目画素が属する現ラインに対してスキャン順で直前の前ライン、すなわち当該注目画素が属するラインの直上のラインにおいて当該注目画素の直上に位置する画素bと、画素bに対してスキャン順で直前の画素cとである。なお、以下では、符号化対象である注目画素が属するラインを現ライン、現ラインに対してスキャン順で直前のラインを前ラインと呼ぶ。
予測処理部303は、ラインメモリ制御部301から渡された画素a、画素bおよび画素cに基づき注目画素の画素値を予測する。本実施形態では、予測処理部303は、平面予測方式を用いて注目画素の画素値を予測する。平面予測方式は、図6に例示されるように、現ラインにおける、注目画素の直前に符号化された画素aと、前ラインにおいて注目画素および画素aのそれぞれの真上に隣接する画素bおよび画素cとを用いて、下記の式(1)の計算を行い、注目画素に対する予測値を求める。
予測値=a+b−c …(1)
なお、注目画素がラインのスキャン順で先頭画素である場合、ならびに、現ラインがスキャン順で先頭のラインである場合は、平面予測値が0であるものとする。
再び図4に戻って説明を続ける。予測誤差処理部304は、注目画素の画素値と、予測処理部303で求められた平面予測値との差分である予測誤差値を算出し、算出した予測誤差値と注目画素の画素値とを後段のスライド/リスト生成処理部305へ出力する。
スライド/リスト生成処理部305は、予測誤差処理部304から順次に入力される予測誤差値を記憶するFIFO(First In First Out)方式のスライド記憶部を有する。スライド/リスト生成処理部305は、供給された予測誤差値とスライド記憶部に記憶された過去の予測誤差値のそれぞれとを比較する。そして、供給された予測誤差値と過去の予測誤差値とが一致した場合には、順次に入力される予測誤差値からなる入力データ列と一致する、既にスライド記憶部に連続的に記憶されている予測誤差からなるデータ列(「リスト」と呼ぶ)を探索するリスト探索処理を行う。そして、リスト探索処理の結果から得られたリストの長さを示すレングス情報Lengthと、前述の比較が行われたときに、リスト探索処理の結果から得られたリストの開始データが記憶されていたスライド記憶部内の位置を示すアドレス情報Addressとを生成して、後段の符号フォーマット生成処理部306へ出力する。
一方、前述の比較の結果、供給された予測誤差値が、スライド記憶部内の過去の予測誤差値のうちの何れとも一致していなかった場合は、スライド/リスト生成処理部305は、入力された予測誤差値が求められた注目画素の画素値そのものを、ESCデータとして後段の符号フォーマット生成処理部306へ出力する。また、スライド/リスト生成処理部305は、前述の比較結果を示す比較結果フラグSlideFLAGを、後段の符号フォーマット生成処理部306へ出力する。前述の比較結果が肯定の場合は、比較結果フラグSlideFLAGは「1」に設定される一方、前述の比較結果が否定の場合は、比較結果フラグSlideFLAGは「0」に設定されるという具合である。
符号フォーマット生成処理部306は、供給されたESCデータ、アドレス情報Address、レングス情報Lengthおよび比較結果フラグSlideFLAGから、図7に例示されるようなフォーマットで、ESC符号、Slide符号およびライン終端符号を生成する。
ESC符号は、ESCデータを符号化したものである。図7に示すように、ESC符号は、データ長が1ビットで値が「0」のフラグSlidFLAGをヘッダとして、後に8ビットのデータ長を持つ画素値が接続されてなる。Slide符号は、データ長が1ビットで値が「1」の比較結果フラグSlideFLAGをヘッダとして、その後に、それぞれデータ長が7ビットのレングス情報Lengthおよびアドレス情報Addressが順次接続される。また、ライン終端符号は、ライン終端を示す符号であり、データ長が2ビットで値が「11」のデータで構成される。なお、この図7に例示される符号フォーマットは、一例であって、これに限られるものではない。
符号フォーマット生成処理部306で生成されたESC符号、Slide符号およびライン終端符号は、符号書き込み部307に供給される。符号書き込み部307は、供給されたESC符号、Slide符号およびライン終端符号を、メインメモリアービタ202およびメインメモリコントローラ203を介して、メインメモリ210のCMYKページ符号格納領域210Dに書き込む。
次に、本実施形態の符号化部204で行われる符号化処理の具体的な内容について説明する。本実施形態では、符号化部204は、スライド探索処理とリスト探索処理とを繰り返すことによって、データの符号化を行う。スライド探索処理は、1単位(例えば1バイト)の入力データ(予測誤差値)と一致する、スライド記憶部に記憶される過去のデータ(予測誤差値)を探索する。スライド記憶部内の過去のデータに、入力データと一致するデータが探索されなかった場合には、入力データそのものをESCデータとして用いて符号化する。
スライド探索処理において、入力された予測誤差値に一致するスライド記憶部内の過去の入力データが探索された場合、その一致した過去のデータをルートとして、前述のリスト探索処理が行われる。そして、リスト探索処理にて探索されたリストのルートとなる過去のデータのスライド記憶部内での位置をアドレス情報Address、当該リストの長さをレングス情報Lengthとして出力し、これらの情報を符号化する。
図8を用いてより具体的に説明する。本実施形態では、スライド記憶部は、直列に接続された128個のレジスタを持ち、FIFO(First In First Out)として構成されるが、図8の例では、番号#0〜#15の直列に接続された16個のレジスタに着目して説明する。各レジスタは、それぞれ1単位(例えば1バイト)のデータを格納可能であるものとする。なお、以下では、このスライド記憶部が有するレジスタをスライドと呼ぶ。
処理#1において、スライド記憶部の各スライドには、入力の新しい順、すなわち図8の右側から左側に向けて、「a,b,c,a,a,b,c,a,b,c,d,b,c,a,c,a」と、16個の過去に入力されたデータ(予測誤差値)が既に格納されているものとする。最初に、スライド/リスト生成処理部305に対して入力データ(予測誤差値)「a」が入力される。スライド探索処理により、この入力データ「a」と、各スライドに記憶された過去のデータ(予測誤差値)のそれぞれとを比較し、一致しているデータを探索する。図8の例では、番号#0、#3、#4、#7、#13および#15のスライドに格納されているデータが入力データと一致していることが分かる。したがって、これらの番号のスライドに格納されているデータが、リスト探索処理におけるルートとなる。
スライド探索処理によって、各スライドに記憶された過去のデータから、入力データ「a」と一致しているデータが探索されたので、処理#2のリスト探索処理が行われる。
処理#2では、各スライドに記憶される過去のデータを左に1だけシフトさせて、処理#1で入力された入力データ「a」をスライド記憶部の番号#0のスライドに追加する。それと共に、次の入力データ「c」がスライド/リスト生成処理部305に対して入力される。リスト探索処理では、各スライドのうち、直前の処理#1において入力データと一致するデータが格納されていたスライド(#0、#3、#4、#7、#13および#15)から、新たな入力データ「c」と一致するデータを探索する。
図8の例では、処理#1において入力データと一致した番号#0および#4のスライドに格納される過去のデータは、処理#2において入力データと一致していない。一方、処理#2において、番号#3、#7、#13および#15のスライドに格納された過去のデータは、データ「c」であって、新たな入力データ「c」と一致する。
処理#2のリスト探索処理によって、直前の処理#1において入力データが一致するデータが格納されたスライド(#0、#3、#4、#7、#13および#15)から、処理#2における入力データ「c」と一致するデータが探索されたので、次の処理はリスト探索処理となる。なお、処理#2は、リスト探索処理の開始点であるので、リストの長さを示すレングスLengthは、値「0」とされる。
処理#3では、上述の処理#2と同様にして、各スライドに記憶される過去のデータを左に1だけシフトさせて、処理#2で入力された入力データ「c」をスライド記憶部の番号#0のスライドに追加する。それと共に、次の入力データ「b」がスライド/リスト生成処理部305に対して入力される。そして、各スライドのうち、処理#1および直前の処理#2において入力データと一致する過去のデータが格納されたスライド(#3、#7、#13および#15)から、新たな入力データ「b」と一致するデータを探索する。
図8の例では、番号#15のスライドに格納される過去のデータは、処理#3において入力データと一致していない。一方、処理#3において、番号#3、#7および#13のスライドに格納される過去のデータは「b」であって、新たな入力データ「b」と一致する。次の処理#4では、この番号#3、#7および#13のスライドに格納される過去のデータが、リスト探索の対象となる。すなわち、この処理#3の段階では、番号#3、#7および#13に係るリストが残っている。処理#3では、リストの長さが「1」となり、レングスLength情報の値が「1」とされる。
このような処理を繰り返していき、リストが最も長くなるデータ列を求める。図8の例では、処理#5において、直前の処理#4においてリスト探索された番号#13のスライドに格納される過去のデータ「c」と、新たな入力データ「g」とが一致しなくなり、リストが途切れる。そこで、処理#5では、1つ前の処理#4において残っているリストから1を選択し、リスト探索処理の直前におけるスライド探索処理(図8の例では処理#1)において、そのリストの開始データが記憶されていたスライド記憶部内の位置をアドレス情報Addressとし、そのリストの長さをレングス情報LengthとしてSlide符号に符号化する。図8の例では、アドレス情報Addressの値が「13」、レングス情報Lengthの値が「3」とされる。
さらに、処理#5では、入力データ「g」についてスライド探索処理を行う。この例では、各スライドに過去のデータとしてデータ「g」が記憶されていないため、一致するデータがないとされる。この場合、処理は処理#6に移行され、入力データ「g」がそのままESCデータとして用いられてESC符号へ符号化される。
ESC符号への符号化が行われると、処理#7で、各スライドに記憶される過去のデータが左に1だけシフトされると共に、直前のリスト探索処理(処理#5)で入力された入力データ「g」がスライド記憶部の番号#0のスライドに追加される。そして、次の入力データ「b」に対してスライド探索処理が行われる。
ここで、スライド記憶部は、FIFO方式により各スライドに格納されたデータのシフトを行うことができるため、入力データとの一致を記憶したリストをそのままの状態で保持しながら、次の入力データの処理に移行することができる。
例えば、図8の例では、入力データが、処理#1において番号#0、#3、#4、#7、#13および#15のスライドに格納される過去のデータと一致している。各スライドに格納されたデータを、新たなデータの入力に伴い順次シフトさせることで、例えば処理#2の当該番号#0、#3、#4、#7、#13および#15のスライドに対して次のデータが格納されることになる。したがって、スライド記憶部において、スライド探索処理で一致が探索された番号のスライドに格納されるデータを、リスト探索処理毎に入力データと比較していくことで、入力データのデータ列と一致する、過去のデータのデータ列を探索することができる。
このように、スライド記憶部をFIFO方式とすることで、リスト探索処理を簡易に行うことができる。
<フラグ処理>
上述したスライド探索処理およびリスト探索処理は、フラグによって制御される。このスライド探索処理およびリスト探索処理におけるフラグ処理について、図9−1、図9−2を用いて説明する。
図9−1は、スライド探索処理の結果を示すRフラグRFLGmを示す。図9−1に例示されるように、スライド記憶部の各スライドに対して、図の右側から左側へ向けて「a,b,c,a,a,b,c,a,b,c,d,b,c,a,c,a」のように過去のデータが格納された状態で、入力データ「a」が入力された場合、番号#0、#3、#4、#7、#13および#15のスライドで、入力データと各スライドに記憶される過去のデータとが一致する。そこで、これらの番号のスライドに対応するRフラグRFLG0、RFLG3、RFLG4、RFLG7、RFLG13およびRFLG15を、それぞれ一致したことを示す値「1」に設定する。
このように、入力データと、各スライドに記憶される過去のデータとが一致する場合は、符号化処理を行わずにリスト探索処理が行われる。このとき、RフラグRFLGmの各スライドに対する位置は、固定的である。入力データと一致する、各スライドに記憶される過去のデータが無い場合は、入力データをそのままESCデータとして用いてESC符号に符号化し、次の入力データに対してスライド探索処理を行う。
図9−2は、リスト探索処理の結果を示すWフラグWFLGmの例を示す。リスト探索処理では、新たに入力された入力データと一致するデータが、各スライドのうちRフラグRFLGmが「1」とされたスライドに格納されるデータから探索される。若し、一致するデータが探索されたら、当該スライドに対するWフラグWFLGmの値を、一致したことを示す値「1」に設定する。
図9−2の例では、各スライドに記憶される過去のデータのうち、RフラグRFLGmが値「1」である番号#0、#3、#4、#7、#13および#15のスライドに格納されるデータに対してリスト探索処理が行われる。これらのうち、入力データ「c」に対して、番号#3、#7、#13および#15のスライドに格納されるデータが一致するので、対応するWフラグWFLG3、WFLG7、WFLG13およびWFLG15の値を、一致したことを示す値「1」に設定する。各スライドに記憶される過去の入力データのうち、このWフラグWFLGmの値が「1」とされたスライドには、直前の入力データと一致する過去のデータと、現在の入力データと一致する過去の入力データとが連続して格納されることを示す。
次に、値が「1」のWフラグWFLGmを探索する。この値「1」のWフラグWFLGmが存在する場合は、各WフラグWFLGmを新たなRフラグRFLGmとし、上述と同様にして次の入力データに対してリスト探索処理を行う。
一方、探索の結果、値が「1」のWフラグWFLGmが存在しないとされた場合は、リストが途絶えたことを意味する。この場合は、値が「1」のRフラグRFLGmを1つ選択し、選択したRフラグRFLGmに対応するスライドのアドレス情報Addressと、そのときのレングス情報LengthとをSlide符号に符号化する。
次に、RフラグRFLGmおよびWフラグWFLGmを用いた場合の、スライド探索処理およびリスト探索処理について、図10−1〜図10−8を用いて説明する。図10−1〜図10−8の例でも、上述した図8と同様に、番号#0〜#15の直列に接続された16個のレジスタに着目して説明する。各スライドには、新しい順すなわち番号の小さい順に、「a,b,c,a,a,b,c,a,b,c,d,b,c,a,c,a」と、過去に入力された16個のデータ(予測誤差値)が既に格納されているものとする。
本実施形態においては、符号化を、スライド探索処理とリスト探索処理とを繰り返すことで行う。先ず、入力データ「a」が入力され、スライド探索処理が行われる(図10−1)。入力データ「a」と一致するデータを、スライド記憶部の各スライドから探索する。各スライドから入力データに一致するデータが探索されなかった場合は、当該入力データをそのままESCデータとして用いて、ESC符号に符号化する。
入力データに一致するデータが格納されるスライドが探索されたら、そのスライドに対応するRフラグRFLGmの値を「1」とし、他のRフラグRFLGmの値を「0」とする。図10−1の例では、番号#0、#3、#4、#7、#13および#15のスライドに格納されるデータが入力データと一致している。このスライド探索処理において、入力データに一致したデータをルートとして、次からのリスト探索処理においてリストの生成が行われる。
次に、各スライドの記憶内容を左へ1つずつシフトし、直前に入力された入力データ「a」を、番号#0のスライドに追加する。このように、スライド探索処理において入力データと一致するデータが格納されたスライドが探索されたら、符号化処理を行わずに、リスト探索処理(図10−2)に移り、レングス情報Lengthを「0」とする。また、入力データと一致するデータが格納されたスライド(番号#0、#3、#4、#7、#13および#15のスライド)に対応するRフラグRFLGm(RフラグRFLG0、RFLG3、RFLG4、RFLG7、RFLG13およびRFLG15)の値が「1」に設定され、他のRフラグRFLGmの値が「0」に設定される。
次に、図10−2に示すように、入力データ「c」が入力される。リスト探索処理では、対応するRフラグRFLGmの値が「1」のスライドのうち、入力データ「c」と一致するデータが格納されるスライドが探索される。図10−2の例では、RフラグRFLGmの値が「1」のスライドのうち番号#3、#7、#13および#15のスライドに格納されるデータが入力データと一致している。一方、番号#0および#4のスライドは、脱落している。したがって、図10−2に示すように、入力データと一致するデータが格納されたスライドに対応するWフラグWFLGm(WフラグWFLG3、WFLG7、WFLG13およびWFLG15)の値が「1」に設定され、他のWフラグWFLGmの値が「0」に設定される。
次に、各スライドの記憶内容を左へ1つずつシフトし、直前に入力された入力データ「c」を、番号#0のスライドに追加する。この場合も符号化処理を行わずに、次のリスト探索処理(図10−3)に移り、レングス情報Lengthを「1」とする。図10−3に示すように、直前のWフラグWFLGmの値(図10−2のWフラグWFLGmの値)をRフラグRFLGmに設定して、RフラグRFLGmを更新する。
次に、図10−3に示すように、入力データ「b」が入力される。リスト探索処理では、対応するRフラグRFLGの値が「1」のスライドのうち、入力データ「b」と一致するデータが格納されるスライドが探索される。図10−3の例では、RフラグRFLGmの値が「1」のスライドのうち番号#3、#7および#13のスライドに格納されるデータが入力データと一致している。一方、番号#15のスライドは、脱落している。したがって、図10−3に示すように、入力データと一致するデータが格納されたスライドに対応するWフラグWFLGm(WフラグWFLG3、WFLG7およびWFLG13)の値が「1」とされ、他のWフラグWFLGmの値が「0」とされる。
次に、各スライドの記憶内容を左へ1つずつシフトし、直前に入力された入力データ「b」を、番号#0のスライドに追加する。この場合も符号化処理を行わずに、次のリスト探索処理(図10−4)に移り、レングス情報Lengthを「2」とする。そして、図10−4に示すように、直前のWフラグWFLGmの値(図10−3のWフラグWFLGmの値)をRフラグRFLGmに設定して、RフラグRFLGmを更新する。
次に、図10−4に示すように、入力データ「d」が入力される。リスト探索処理では、対応するRフラグRFLGmの値が「1」のスライドのうち、入力データ「d」と一致するデータが格納されるスライドが探索される。図10−4の例では、番号#13のスライドに格納されるデータが入力データと一致している。一方、番号#3および#7のスライドは、脱落している。入力データと一致するデータが格納されたスライドに対応するWフラグWFLG13の値が「1」に設定される。
次に、各スライドの記憶内容を左へ1つずつシフトし、直前に入力された入力データ「d」を、番号#0のスライドに追加する。この場合も符号化処理を行わずに、次のリスト探索処理(図10−5)に移り、レングス情報Lengthを「3」とする。図10−5に示すように、直前のWフラグWFLGmの値(図10−4のWフラグWFLGmの値)をRフラグRFLGmに設定して、RフラグRFLGmを更新する。
次に、図10−5に示すように、入力データ「a」が入力される。リスト探索処理では、対応するRフラグRFLGmの値が「1」のスライドのうち、入力データ「a」と一致するデータが格納されるスライドが探索される。図10−5の例では、番号#13のスライドが脱落し、入力データ「a」と一致するデータが格納されるスライドが存在しない。すなわち、継続するリストが存在しなくなる。そのため、RフラグRFLGmの値が「1」であるスライドのスライド記憶部内での位置(図10−5の例では番号#13の位置)をアドレス情報Addressとし、レングス情報Lengthが「3」とされて、これらを図7に示したようにSlide符号に符号化する。WフラグWFLGの値は、全て「0」とされ、処理はスライド探索処理に移る(図10−6)。
リストが途切れた後のスライド探索処理は、直前のリスト探索処理における入力データ「a」に対して行われる(図10−6)。入力データ「a」と一致するデータを、スライド記憶部の各スライドから探索する。各スライドから入力データに一致するデータが探索されなかった場合は、当該入力データをそのままESCデータとして用いて、ESC符号に符号化する。
入力データに一致するデータが格納されるスライドが探索されたら、そのスライドに対応するRフラグRFLGmの値を「1」とする。図10−6の例では、番号#3、#4、#7、#8および#11のスライドに格納されるデータが入力データと一致している。このスライド探索処理において、入力データに一致したデータをルートとして、次からのリスト探索処理においてリストの生成が行われる。
次に、各スライドの記憶内容を左へ1つずつシフトし、入力データ「a」を、番号#0のスライドに追加する。このように、スライド探索処理において入力データと一致するデータが格納されたスライドが探索されたら、符号化処理を行わずに、リスト探索処理(図10−7)に移り、レングス情報Lengthを「0」とする。また、入力データと一致するデータが格納されたスライド(番号#3、#4、#7、#8および#11のスライド)に対応するRフラグRFLGm(RフラグRFLG3、RFLG4、RFLG7、RFLG8およびRFLG13)の値が「1」に設定され、他のRフラグRFLGmの値が「0」に設定される。
次に、図10−7に示すように、入力データ「f」が入力される。リスト探索処理では、対応するRフラグRFLGmの値が「1」のスライドのうち、入力データ「f」と一致するデータが格納されるスライドが探索される。図10−7の例では、入力データ「f」と一致するデータが格納されるスライドが存在しないので、WフラグWFLGmの値が全て「0」とされ、処理はスライド探索処理に移る(図10−8)。
ここでのスライド探索処理は、直前のリスト探索処理における入力データ「f」に対して行われる(図10−8)。入力データ「f」と一致するデータを、スライド記憶部の各スライドから探索する。図10−8の例では、各スライドから入力データに一致するデータが探索されないため、当該入力データをそのままESCデータとして用いて、ESC符号に符号化する。また、RフラグRFLGmの値が全て「0」に設定される。
そして、各スライドの記憶内容を左へ1つずつシフトし、入力データ「f」を番号#0のスライドに追加して次の入力データの符号化に進む。
<符号化処理の詳細>
次に、本実施形態による符号化処理について、より詳細に説明する。図11は、本実施形態による符号化処理の全体的な流れを示すフローチャートの一例である。最初のステップS10で、比較結果フラグSlideFLAGの値は、「0」に初期化される。ステップS11で、スライド探索処理およびリスト探索処理のうち何れが有効であるかを示すフラグLISTFLGは、スライド探索処理を行っていることを示す値「0」に初期化される。
次に、ステップS12で、データ読み込み部300は、符号化対象の1画素(注目画素)の画素値を読み出す。ステップS13で、ラインメモリ制御部301は、データ読み込み部300により読み出された注目画素の画素値をラインメモリ302の第1領域に書き込む。ここでは、ラインメモリ302の第2領域には、注目画素が属するラインの直前のラインであって、既に符号化が終了したラインに属する複数の画素の各々の画素値が記憶されている。そして、ラインメモリ制御部301の制御により、ラインメモリ302から、注目画素の画素値と、注目画素の周辺3画素の画素値が読み出されて予測処理部303に渡される。
次に、ステップS14で、予測処理部303は、注目画素の周辺3画素(前述の画素a、画素bおよび画素c)の画素値に基づいて、注目画素の予測値(=a+b−c、式(1)参照)を算出し、算出した予測値と、注目画素の画素値とを予測誤差処理部304へ渡す。ステップS15で、予測誤差処理部304は、注目画素の画素値と、予測処理部303で求められた予測値との差分である予測誤差値を算出し、算出した予測誤差値と注目画素とをスライド/リスト生成処理部305へ渡す。
処理はステップS16に移行され、スライド/リスト生成処理部305は、フラグLISTFLGの値が「1」か否かを判定する。若し、「1」ではないと判定されたら、現在スライド探索処理が有効であるとされ、処理はステップS17に移行される。ステップS17では、スライド/リスト生成処理部305はスライド探索処理を実行する。スライド探索処理の詳細な内容については後述する。
次のステップS18では、スライド記憶部に対して入力データ(ステップS15で算出された予測誤差値)が追加される。次のステップS19では、1ライン分の画素全てに対する処理が終了したか否かが判定される。若し、終了していないと判定された場合は、処理は上述のステップS12に戻される。一方、終了していると判定された場合は、処理はステップS20に移行され、ステップS20では、ライン終端符号が出力される。次のステップS21では、第1領域に書き込まれた、符号化が終了した1ライン分の画素の画素値が、第2領域に上書きされる。そして、処理はステップS22に移行され、全てのラインに対する処理が終了したか否かが判定される。若し、終了していると判定された場合は、一連の符号化処理は終了する。一方、終了していないと判定された場合は、処理は上述のステップS10に戻される。
また、上述のステップS16において、フラグLISTFLGの値が「1」であると判定された場合は、現在リスト探索処理が有効であるとされ、処理はステップS23に移行される。ステップS23では、スライド/リスト生成処理部305は、リスト探索処理を実行する。リスト探索処理の詳細な内容については後述する。ステップS23でリスト探索処理が行われた後、処理は上述のステップS18に移行される。
図12は、図11のステップS17で実行されるスライド探索処理の詳細な内容を示すフローチャートである。なお、以下では、スライド記憶部における第x番目(0≦x≦127)のスライドをスライド[x]のように表記する。例えばスライド記憶部における先頭のスライドは、スライド[0]と表記される。
先ず、ステップS30〜ステップS32で、レングス情報Length、フラグSFIINDFLGおよび変数IWがそれぞれ値「0」に初期化される。処理はステップS33に移行され、入力データとスライド[IW]に格納された過去のデータとが一致するか否かが判定される。若し、一致すると判定されたら、処理はステップS34に移行され、フラグSFINDFLGの値が「1」とされ、次のステップS35で、RフラグRFLG[IW]の値が「1」とされる。
そして、処理はステップS37に移行され、変数IWがスライドサイズ未満、すなわち、スライド記憶部が有するスライド数未満であるか否かが判定される。若し、変数IWがスライドサイズ未満であると判定されたら、ステップS38で変数IWに「1」が加えられ、処理がステップS33に戻される。一方、ステップS37で、変数IWがスライドサイズ以上であると判定されたら、処理はステップS39に移行される。
一方、上述のステップS33で入力データとスライド[IW]に格納された過去のデータとが一致しないと判定されたら、処理はステップS36に移行され、RフラグRFLG[IW]の値が「0」とされる。そして、処理がステップS37に移行される。
ステップS39では、フラグSFINDFLGの値が「1」であるか否かが判定される。フラグSFINDFLGの値が「1」ではないと判定された場合は、スライド記憶部において入力データと一致する過去のデータが記憶されていないとされ、処理はステップS40に移行される。ステップS40では、比較結果フラグSlideFLAGが「0」に設定され、次のステップS41で符号生成処理が行われる。符号生成処理の詳細な内容については後述する。
一方、上述のステップS39で、フラグSFINDFLGの値が「1」であると判定された場合は、スライド記憶部において入力データと一致する過去のデータが記憶されているとされ、次のステップS42で、フラグLISTFLGの値が「1」に設定される。つまり、リスト探索処理が有効とされる。
図13は、図11のステップS23で実行されるリスト探索処理の詳細な内容を示すフローチャートである。先ず、ステップS50およびステップS51で、フラグLFINDFLGおよび変数IWがそれぞれ値「0」に初期化される。
ステップS52で、入力データとスライド[IW]に格納された過去のデータとが一致し、且つ、RフラグRFLG[IW]の値が「1」であるか否かが判定される。若し、それぞれの条件を満たすと判定されたら、処理はステップS53に移行され、WフラグWFLG[IW]の値が「1」とされ、次のステップS54で、フラグLFINDFLGの値が「1」とされる。そして、処理がステップS56に移行される。
一方、ステップS52で、上述の条件を満たさない、すなわち、入力データとスライド[IW]に格納された過去の入力データとが一致しない、または、RフラグRFLG[IW]の値が「1」でないと判定されたら、処理はステップS55に移行され、WフラグWFLG[IW]の値が「0」とされる。そして、処理がステップS56に移行される。
ステップS56では、変数IWがスライドサイズ(ここでは「128」)未満であるか否かが判定される。若し、変数IWがスライドサイズ未満であると判定されたら、ステップS57で変数IWに「1」が加えられ、処理がステップS52に戻される。一方、変数IWがスライドサイズ以上であると判定されたら、処理がステップS58に移行される。
ステップS58では、フラグLFINDFLGの値が「0」であるか否かが判定される。若し、値が「0」であると判定されたら、処理がステップS59に移行されて変数IWが値「0」に初期化され、次のステップS60でRフラグRFLG[IW]の値が「1」であるか否かが判定される。若し、「1」であると判定されたら、処理はステップS61に移行される。
ステップS61では、変数IWがアドレス情報Addressとされ、次のステップS62で、スライドサイズを変数IWに代入する。そして、処理がステップS63に移行される。ステップS63では、変数IWがスライドサイズ未満であるか否かが判定される。若し、変数IWがスライドサイズ未満であると判定されたら、ステップS64で変数IWに「1」が加算されて処理がステップS60に戻される。
一方、ステップS63で、変数IWがスライドサイズ以上であると判定されたら処理はステップS65に移行され、比較結果フラグSlideFLAGが「1」に設定される。そして、処理は次のステップS66に移行され、符号生成処理が行われて一連の処理が終了する。符号生成処理の詳細な内容については後述する。
上述したステップS58で、フラグLFINDFLGの値が「0」ではないと判定されたら、処理はステップS67に移行され、変数IWが値「0」に初期化される。次のステップS68で、WフラグWFLG[IW]の値が「0」であるか否かが判定される。若し、WフラグWFLG[IW]の値が「0」であると判定された場合は、ステップS69でRフラグRFLG[IW]の値は「0」に設定され、処理はステップS70に移行される。一方、WフラグWFLG[IW]の値が「0」ではないと判定された場合は、RフラグRFLG[IW]の値はそのままの状態で、処理はステップS70に移行される。
そして、ステップS70で、変数IWがスライドサイズ未満であるか否かが判定される。若し、変数IWがスライドサイズ未満であると判定されたら、ステップS71で変数IWに「1」が加算されて処理がステップS68に戻される。一方、ステップS70で変数IWがスライドサイズ以上であると判定されたら、処理はステップS72に移行され、レングス情報Lengthに対して1が加算され、一連の処理が終了する。
図14は、図11のステップS18で実行されるスライド追加処理の詳細な内容の一例を示すフローチャートである。先ず、ステップS80で、変数IWがスライド数から1を減じた値に設定される。次のステップS81で、スライド[IW]に、スライド[IW−1]の値が格納され、ステップS82で、変数IWが「0」を超えるか否かが判定される。若し、変数IWが「0」を超えると判定されたら、処理はステップS83に移行され、変数IWから「1」が減じられる。そして、処理がステップS81に戻される。一方、ステップS82で、変数IWが「0」以下であると判定されたら、処理はステップS84に移行され、スライド[0]に対して入力データの予測誤差値が格納される。
図15は、図12のステップS41および図13のステップS66の各々で実行される符号生成処理の詳細な内容の一例を示すフローチャートである。先ず、ステップS90で比較結果フラグSlideFLAGの値が「1」であるか否かが判定される。比較結果フラグSlideFLAGの値が「1」であると判定された場合は、処理はステップS91に移行され、比較結果フラグSlideFLAG、アドレス情報Addressおよびレングス情報Lengthが、図7に例示されるSlide符号に符号化される。
一方、比較結果フラグSlideFLAGの値が「0」であると判定された場合は、処理はステップS92に移行され、比較結果フラグSlideFLAGおよび入力データ(予測誤差値)が、図7に例示されるESC符号に符号化される。
図16は、符号化部204の一例の構成をより詳細に示す。なお、図16において、上述の図2および図4と共通する部分には同一の符号を付し、詳細な説明を省略する。符号化部204は、データ読み込み部300、ラインメモリ制御部301、ラインメモリ302、予測処理部303、予測誤差処理部304、スライド/リスト生成処理部305、符号フォーマット生成処理部306、および、符号書き込み部307を有すると共に、メインメモリアービタI/F308、データアドレス生成部309および符号アドレス生成部310を有する。なお、ここでは、ラインメモリ302のうち現ラインが記憶される領域(第1領域)を現ラインメモリ、前ラインが記憶される領域(第2領域)を前ラインメモリと呼ぶ。
メインメモリアービタI/F308は、メインメモリアービタ202との接続を可能にするI/Fである。データアドレス生成部309は、メインメモリ210のCMYKバンド画像データ格納領域210Cからバンド画像データを読み出す際のメモリアドレスを生成する。データ読み込み部300は、データアドレス生成部309で生成されたメモリアドレスで特定されるバンド画像データの読み出しを、メインメモリアービタI/F308を介してメインメモリアービタ202に対して要求する。この要求に応じて、メインメモリアービタ202によりメインメモリ210のCMYKバンド画像データ格納領域210Cから読み出されたバンド画像データが、メインメモリアービタ202から符号化部204に対して供給され、メインメモリアービタI/F309を介してデータ読み込み部300に供給される。
符号アドレス生成部310は、メインメモリ210のCMYKページ符号格納領域210Dのうち、符号書き込み部307による書き込み先のメモリアドレスを生成する。そして、符号書き込み部307は、符号フォーマット生成処理部306で生成された符号を、符号アドレス生成部310で生成されたメモリアドレスに従ってメインメモリ210のCMYK符号格納領域210Dに書き込むように、メインメモリアービタI/F308を解してメインメモリアービタ202に要求する。メインメモリアービタ202は、この要求に従い、供給された符号をメインメモリ210に書き込む。
<スライド/リスト生成処理部のハードウェア構成例>
図17は、上述したスライド/リスト生成処理部305のハードウェア構成の一例を示す。スライド/リスト生成処理部305は、スライド探索処理部320、スライド記憶部321、リスト探索処理部322およびコントローラ323を有する。
コントローラ323は、例えばマイクロプロセッサからなり、スライド/リスト生成処理部305の動作を制御する。例えば、コントローラ323は、上述したスライド探索処理およびリスト探索処理のうち何れが有効かを示すフラグLISTFLGによる動作制御を行う。
スライド/リスト生成処理部305に対して、例えば1クロック毎に1単位の入力データ(予測誤差値)が入力され、スライド探索処理部320、スライド記憶部321およびリスト探索処理部322にそれぞれ供給される。また入力データである予測誤差値を求める際に用いられた注目画素の画素値は、レジスタ324に格納される。レジスタ324に格納される注目画素の画素値は、ESC符号の符号化の際のデータ値として用いられる。以下では、データの1単位を1バイトとする。
スライド記憶部321は、各々がレジスタからなり、それぞれ1単位のデータが格納される128個のSlide0、Slide1、…、Slide127が直列に接続されて構成される。また、各Slide0、Slide1、…、Slide127の出力は、次段のスライドに供給されると共に、後述するスライド探索処理部320の対応する比較器325の一方の入力端と、リスト探索処理部322の対応する比較器326の一方の入力端にそれぞれ供給される。
スライド記憶部321は、これら128個のSlide0、Slide1、…、Slide127によりFIFOが構成され、入力されたデータ(予測誤差値)がSlide0からSlide1、Slide2、…と1クロック毎に順次送られていく。
スライド探索処理部320は、128個の比較器3250、3251、…、325127と、128入力の論理和回路327とを有する。比較器3250、3251、…、325127のそれぞれは、一方および他方の入力端に入力されたデータを比較し、両者が一致していれば値「1」を出力し、一致していなければ値「0」を出力する。
比較器3250、3251、…、325127の一方の入力端には、上述したように、スライド記憶部321が有するSlide0、Slide1、…、Slide127の出力がそれぞれ入力される。また、比較器3250、3251、…、325127のそれぞれの他方の入力端には、入力データ(予測誤差値)が入力される。
比較器3250、3251、…、325127のそれぞれの出力は、128入力の論理和回路327に入力されると共に、後述するリスト探索処理部322のマルチプレックス(MUX)3280、3281、…、328127の一方の入力端にそれぞれ入力される。論理和回路327の出力は、フラグSFINDFLGとしてコントローラ323に供給される。このフラグSFINDFLGは、Slide0、Slide1、…、Slide127のデータのうちの少なくとも1つが入力データと一致しているか否かを示す。
リスト探索処理部322は、それぞれ128個の比較器3260、3261、…、326127、マルチプレックス(MUX)3281、3282、…、328n、ならびに、レジスタ3290、3291、…、329127と、アドレス情報生成部330と、128入力の論理和回路331とを有する。比較器3260、3261、…、326127のそれぞれは、一方および他方の入力端に入力されたデータを比較し、両者が一致していれば値「1」を出力し、一致していなければ値「0」を出力する。
比較器3260、3261、…、326127の一方の入力端には、上述したように、スライド記憶部321が有するSlide0、Slide1、…、Slide127の出力がそれぞれ入力される。また、比較器3260、3261、…、3260127のそれぞれの他方の入力端には、入力データ(予測誤差値)が入力される。
比較器3260、32601、…、326127の出力は、WフラグWFLGmであって、128入力の論理和回路331にそれぞれ入力されると共に、マルチプレックス3280、3281、…、328127の他方の入力端にそれぞれ入力される。論理和回路331の出力は、フラグLFINDFLGとしてコントローラ323に供給される。フラグLFINDFLGは、WフラグWFLG0、WFLG1、…、WFLG127のうち少なくとも1の値が「1」であることを示す。
マルチプレックス3280、3281、…、328127の出力は、RフラグRFLGmとされて、それぞれレジスタ3290、3291、…、329127に格納される。マルチプレックス3280、3281、…、328127は、コントローラ323から図示しない経路を経て供給されるフラグListFLGにより、一方および他方の端子のうち何れを選択するかが制御される。
若し、フラグListFLGの値が「0」であって、現在スライド探索処理が有効であることが示されていれば、マルチプレックス3280、3281、…、328127は、それぞれの一方の入力端に入力された、スライド探索処理部320における比較器3250、3251、…、325127の出力をレジスタ3290、3291、…、329127に供給するように制御される。
一方、フラグListFLGの値が「1」であって、現在リスト探索処理が有効であることが示されていれば、マルチプレックス3280、3281、…、328127は、それぞれの他方の入力端に入力された、リスト探索処理部322における比較器3260、3261、…、326127を選択してレジスタ3290、3291、…、329127に供給するように制御される。
レジスタ3290、3291、…、329127は、マルチプレックス3280、3281、…、328127からの出力が供給されると、格納されているRフラグRFLG0、RFLG1、…、RFLG127を出力する。すなわち、レジスタ3290、3291、…、329127に格納されるRフラグRFLG0、RFLG1、…、RFLG127は、マルチプレックス3280、3281、…、328127からの出力により更新される。
レジスタ3290、3291、…、329127から出力されたRフラグRFLG0、RFLG1、…、RFLG127は、比較器3260、3261、…、326127の動作を制御する制御信号として、比較器3260、3261、…、326127の制御端にそれぞれ供給される。例えば、比較器326mは、対応するレジスタ329mから供給された制御信号が値「1」を示していれば比較動作を行い、値「0」を示していれば比較動作を行わない。これは、3260、3261、…、326127それぞれの動作は、3260、3261、…、326127自身の出力により絞り込まれていくことを意味する。
レジスタ3290、3291、…、329127から出力されたRフラグRFLG0、RFLG1、…、RFLG127は、さらにアドレス情報生成部330にも供給される。アドレス情報生成部330は、図8の処理#5で説明したように、リスト探索処理が終了した際に、レジスタ3290、3291、…、329127から出力されたRフラグRFLG0、RFLG1、…、RFLG127のうち、値が「1」であるRフラグRFLGmを選択し、選択されたRフラグRFLGmの番号をアドレス情報Addressとして出力する。アドレス情報生成部330から出力されたアドレス情報Addressは、レジスタ332に格納されると共に、コントローラ323に供給される。
ここで、アドレス情報生成部330は、値が「1」であるRフラグRFLGmが複数存在する場合に、スライドの番号が小さい、すなわち、スライド記憶部321においてより入力側に近いスライドSlideに基づくRフラグRFLGmから優先的に選択する。これは、入力に近いSlideの方が、入力データと一致する可能性が高いからである。このとき、図7を用いて説明した符号フォーマットにおいて、アドレス情報Addressが小さい方が短い符号となるように構成すると、圧縮効率が高くなり、好ましい。
コントローラ323は、スライド探索処理部320から供給されたフラグSFINDFLGと、リスト探索処理部322から供給されたフラグLFINDFLGと、アドレス情報生成部330から供給されたアドレス情報Addressとに基づき、レングス情報Lengthおよび比較結果フラグSlideFLAGを生成する。レングス情報Lengthおよび比較結果フラグSlideFLAGは、それぞれレジスタ333および334に格納される。
なお、レジスタ332〜334にそれぞれ格納されたアドレス情報Address、レングス情報Lengthおよび比較結果フラグSlideFLAGは、それぞれ符号フォーマット生成処理部306により読み出され、図7に例示する符号フォーマットに従い符号化され符号データ(第1符号データ)が生成される。また、レジスタ324に格納された注目画素の画素値も、符号フォーマット生成処理部306により読み出され、図7に例示する符号フォーマットに従い符号化され符号データ(第2符号データ)が生成される。
このような構成において、スライド探索処理は、以下のように行われる。すなわち、比較器3250、3251、…、325127による、入力データ(予測誤差値)と、Slide0、Slide1、…、Slide127に格納された過去の入力データとの比較処理が行われる。比較結果がそれぞれ論理和回路327に供給され、フラグSFINDFLGが出力される。比較結果は、マルチプレックス3280、3281、…、328127にも供給され、スライド探索処理の間は、レジスタ3290、3291、…、329127に格納される。図17の構成によれば、この一連の処理を1クロックで実行可能である。
また、リスト探索処理は、以下のように行われる。すなわち、比較器3260、3261、…、326127による、入力データと、Slide0、Slide1、…、Slide127に格納された過去の入力データとの比較処理が行われる。このとき、レジスタ3290、3291、…、329127に格納されるRフラグRFLG0、RFLG1、…、RFLG127の値に基づき、比較器3260、3261、…、326127の比較動作が制御される。例えば、RフラグRFLG0、RFLG1、…、RFLG127の値が全て「0」であれば、比較器3260、3261、…、326127全ての比較動作が行われないことになる。この状態を、リスト探索処理が行われていない状態とする。
比較器3260、3261、…、326127による比較結果がそれぞれ論理和回路331に供給され、フラグLFINDFLGが出力される。また、各比較結果は、マルチプレックス3280、3281、…、328127に供給され、リスト探索処理の間は、レジスタ3290、3291、…、329127に格納される。また、レジスタ3290、3291、…、329127に格納されるRフラグRFLG0、RFLG1、…、RFLG127は、アドレス情報生成部330にも保持される。
アドレス情報生成部330は、レジスタ3290、3291、…、329127に格納される値が全て「0」であれば、保持しているRフラグRFLG0、RFLG1、…、RFLG127のうち値が「1」のRフラグRFLGmの位置を、アドレス情報Addressとしてコントローラ323に渡す。図17の構成によれば、このリスト探索処理による一連の処理を1クロックで実行可能である。
図17の構成によれば、スライド探索処理部320と、リスト探索処理部322とがそれぞれ別個の構成とされると共に、スライド探索処理部320とリスト探索処理部322とでスライド記憶部321を共有する。そのため、スライド探索処理部320によるスライド探索処理と、リスト探索処理部322によるリスト探索処理とを並列的に実行することが可能である。したがって、符号化処理をより高速化できる。また、図17の構成によれば、先読みバッファや大規模なマトリクスアレイなどの構成が不要なので、ハードウェア規模を小さくできる。
<復号部>
図18は、復号部205の構成の一例を示す。復号部205において、符号読み込み部400により、上述した符号化部204で符号化された符号データがメインメモリ210のCMYKページ符号格納領域210Dから読み込まれる。符号読み込み部400に読み込まれた符号データは、符号フォーマット解析部401に供給される。符号フォーマット解析部401は、図7を用いて説明した符号フォーマットに従い、供給された符号データを解釈して注目画素の画素値、アドレス情報Address、レングス情報Lengthおよび比較結果フラグSlideFLAGを取り出す。取り出されたこれらのデータは、スライド展開部402に供給される。
スライド展開部402は、直列に接続された複数のレジスタがFIFOとして構成されるスライド記憶部を持つ。各レジスタは、スライドと呼ばれ、それぞれ1単位(例えば1バイト)のデータを格納可能とされる。スライド展開部402は、符号フォーマット解析部401から渡された比較結果SlideFLGが「1」であるときは、複数のレジスタのうち、アドレス情報Addressで特定されるレジスタに記憶された予測誤差値を読み出し、読み出した予測誤差値と、「1」に設定された比較結果フラグSlideFLAGとを予測処理部403へ送る。一方、スライド展開部402は、符号フォーマット解析部401から渡された比較結果SlideFLGが「0」であるときは、符号フォーマット解析部410から渡された注目画素の画素値と、「0」に設定された比較結果フラグSlideFLAGとを予測処理部403へ送る。
予測処理部403は、スライド展開部402から、「1」に設定された比較結果フラグSlideFLAGと予測誤差値とを渡された場合は、ラインメモリ制御部404によりラインメモリ405から読み出された、復号対象の画素(注目画素)の周辺3画素の復号済みの画素a、bおよびc(図5参照)の画素値に基づき、注目画素の画素値の予測値を算出する。そして、その算出した予測値と、スライド展開部402から渡された予測画素値とから、注目画素の画素値を算出し、算出した注目画素の画素値を、画像書き込み部406およびラインメモリ制御部404へ送る。
なお、ラインメモリ405は、復号を行っている復号ラインと、直前に復号が終了した復号済みのラインとの2ライン分の画素値を格納可能である。ここでは、ラインメモリ405のうち復号ラインが記憶される領域を現ラインメモリ、復号済みのラインが記憶される領域を前ラインメモリと呼ぶ。ラインメモリ制御部404は、ラインメモリ405に対する画素値の読み書きを制御する。
一方、予測処理部403は、スライド展開部402から、「0」に設定された比較結果フラグSlideFLAGと注目画素の画素値とを渡された場合は、その渡された注目画素の画素値を、画像書き込み部406およびラインメモリ制御部404へ送る。また、予測処理部403は、ラインメモリ制御部404によりラインメモリ405から読み出された、復号対象の画素(注目画素)の周辺3画素の復号済みの画素a、bおよびc(図5参照)の画素値に基づき、注目画素の画素値の予測値を算出し、その算出した予測値と、スライド展開部402から渡された注目画素の画素値とから予測誤差値を算出する。そして、その算出した予測誤差値をスライド展開部402へ送る。スライド展開部402は、予測処理部403から渡された予測誤差値をスライド記憶部に追加する。
画像書き込み部406は、予測処理部403から渡された注目画素の画素値を、メインメモリ210のCMYKバンド画像データ格納領域210Cに書き込む。
<復号処理の詳細>
図19は、上述した本実施形態の符号化方法により符号化された符号データを、復号部205で復号する一例の処理を示すフローチャートである。なお、符号読み込み部400により、メインメモリ210から予め符号データが読み込まれているものとする。先ず、ステップS100で、符号フォーマット解析部401は、符号読み込み部400により読み込まれた符号データのヘッダを読み込み、後続する符号がESC符号であるかを判定する(ステップS101)。
読み込まれたヘッダからESC符号であると判定された場合は、処理がステップS102に移行される。ステップS102で、符号フォーマット解析部401は、次のステップS102でヘッダに続く所定長のビットを画素値として読み込む。読み込まれた画素値は、そのまま注目画素の画素値として出力される(ステップS103)とともに、注目画素の予測誤差値が算出される(ステップS104)。そして、算出された予測誤差値がスライド記憶部に追加される(ステップS105)。算出された予測誤差値のスライド記憶部に対する追加処理は、図14のフローチャートで説明したのと同様の手順により行われる。そして、処理がステップS106に移行される。ステップS106では、注目画素の画素値が、ラインメモリ405の現ラインメモリに書き込まれる。
上述のステップS101で、読み込まれたヘッダから、ESC符号ではないと判定された場合は、Slide符号であるか否かが判定される(ステップS107)。ステップS107で、Slide符号であると判定された場合は、処理はステップS108に移行される。ステップS108では、符号フォーマット解析部401が、ヘッダに続く所定長のビットをレングス情報Lengthおよびアドレス情報Addressとして読み込む。読み込まれたレングス情報Lengthおよびアドレス情報Addressは、比較結果フラグSlideFLAGとともにスライド展開部402に供給される。
次のステップS109で、スライド展開部402は、スライド記憶部のスライドのうち、アドレス情報Addressで示されるスライドに格納されるデータ(予測誤差値)を読み込む。そして、スライド展開部402は、読み込んだデータをスライドに追加する(ステップS110)とともに、その読み込んだデータに基づいて注目画素の画素値を算出する(ステップS111)。算出された注目画素の画素値は、画像書き込み部406に送られるとともに、ラインメモリ制御部404にも送られる。そして、ラインメモリ制御部404は、その注目画素の画素値を、ラインメモリ405の現ラインメモリに書き込む(ステップS112)。
処理はステップS113に移行され、レングス情報Lengthが「0」より大きいか否かが判定される。若し、レングス情報Lengthが「0」以下であると判定されたら、処理はステップS100に戻される。一方、レングス情報Lengthが「0」より大きいと判定されたら、処理はステップS114に移行される。ステップS114で、現在のレングス情報Lengthから1を減じた値が新たなレングス情報Lengthとされ、処理はステップS109に戻される。
上述のステップS107で、Slide符号ではないと判定された場合は、読み込まれた符号データは、ライン終端符号であると判定され、処理はステップS115に移行される。
ステップS115では、ラインメモリ制御部404は、現ラインメモリのデータを前ラインメモリに上書きする。そして、処理はステップS116に移行され、全ラインに対する復号処理が終了したか否かが判定される。全ラインに対する復号処理が終了していると判定された場合は、一連の処理が終了する。一方、全ラインに対する復号処理が終了していないと判定された場合は、処理はステップS100に戻される。
図20は、復号部205の一例の構成をより詳細に示す。なお、図20において、上述の図2および図18と共通する部分には同一の符号を付し、詳細な説明を省略する。復号部205は、符号読み込み部400、符号フォーマット解析部401、スライド展開部402、予測処理部403、ラインメモリ制御部404、ラインメモリ405および画像書き込み部406を有すると共に、メインメモリアービタI/F407、符号アドレス生成部407を有する。
メインメモリアービタI/F408は、メインメモリアービタ202との接続を可能にするI/Fである。メインメモリアービタI/F408は、メインメモリアービタ202に対して書き込み/読み出し要求(R/W信号)やメモリアドレスを送信することで、メインメモリ210へのデータの書き込み、メインメモリ210からのデータの読み出しなどを行う。
符号アドレス生成部407は、メインメモリ210のCMYKページ符号格納領域210Dから符号データを読み出す際のメモリアドレスを生成する。符号読み出し部400は、符号アドレス生成部407で生成されたメモリアドレスで特定される符号データの読み出しを、メインメモリアービタI/F408を介してメインメモリアービタ202に対して要求する。この要求に応じて、メインメモリアービタ202によりメインメモリ210のCMYKページ符号格納領域210Dから読み出された符号データが、メインメモリアービタI/F408を介して符号読み出し部400に供給される。
<スライド展開部のハードウェア構成>
図21は、スライド展開部402のハードウェア構成の一例を示す。スライド展開部402は、予測誤差生成部490、スライド記憶部500、コントローラ501、マルチプレックス502および503を有する。
コントローラ501は、例えばマイクロプロセッサからなり、アドレス情報Address、レングス情報Lengthおよび比較結果フラグSlideFLAGが供給され、供給されたこれらのデータに基づきこのスライド展開部402の全体の動作を制御する。例えばコントローラ501は、スライド記憶部500におけるデータ値のスライドに対する追加処理や、マルチプレックス502および503の動作などを制御する。
スライド記憶部500は、各々がレジスタからなり、それぞれ1単位のデータが格納される128個のスライド5110、5111、…、511127が直列に接続されて構成されたFIFOと、当該FIFOの先頭に接続されるマルチプレックス510とを有する。
各スライド5110、5111、…、511127の出力は、さらに、それぞれマルチプレックス502に供給される。マルチプレックス502の出力は、マルチプレックス503に供給されると共に、マルチプレックス510にも供給される。
予測誤差生成部490は、前述の符号フォーマット解析部401から供給される注目画素の画素値と、前述の予測処理部403から供給される予測値とから、予測誤差値を生成する。予測誤差生成部490により生成された予測誤差値は、マルチプレックス510に供給されると共に、マルチプレックス503にも供給される。
マルチプレックス502は、図19のステップS109の処理時に、コントローラ501から供給されるアドレス情報Addressに従い、スライド記憶部500の各スライド5110、5111、…、511127に格納されたデータ値(予測誤差値)からスライド511Addressに格納されたデータ値を選択し、選択したデータ値を、マルチプレックス503および510にそれぞれ供給する。
マルチプレックス503は、図19のステップS109の後、マルチプレックス502から供給されたデータ値を出力する。また、マルチプレックス503は、図19のステップS104の後、予測誤差生成部490から供給されたデータ値を出力する。マルチプレックス510は、図19のステップS105のスライド追加処理時には、予測誤差生成部490から供給された予測誤差値をスライド5110に追加する。一方、図19のステップS110のスライド追加処理時には、マルチプレックス502から供給された予測誤差値をスライド5110に追加する。
<作用・効果>
以上に説明したように、本実施形態では、符号化処理において、入力された予測誤差値が、スライド記憶部に既に記憶されている予測誤差値の何れとも一致していなかった場合は、当該入力された予測誤差値が求められた注目画素の画素値を符号化するので、当該入力された予測誤差値自体を符号化する構成に比べて、符号化に必要なビット数を少なくすることができる。これにより、圧縮率の向上が可能になるという有利な効果を奏する。
なお、上述では、本発明がプリンタ装置に適用されるように説明したが、これは一例でありこの例に限定されない。すなわち、本発明は、データの可逆符号化をハードウェアを用いて行う他の装置にも適用することが可能である。
200 プリンタ装置
202 メインメモリアービタ
203 メインメモリコントローラ
204 符号化部
205 復号部
206 階調処理部
207 エンジンコントローラ
208 通信コントローラ
210B データ格納領域
210C CMYKバンド画像データ格納領域
210A プログラム領域
210D CMYKページ符号格納領域
210 メインメモリ
300 データ読み込み部
301 ラインメモリ制御部
302 ラインメモリ
303 予測処理部
304 予測誤差処理部
305 スライド/リスト生成処理部
306 符号フォーマット生成処理部
307 符号書き込み部
400 符号読み込み部
401 符号フォーマット解析部
402 スライド展開部
403 予測処理部
404 ラインメモリ制御部
405 ラインメモリ
406 画像書き込み部
特許第4000266号公報

Claims (4)

  1. 画像データを構成する複数の画素の各々の画素値が書き込まれる第1記憶手段と、
    前記第1記憶手段から、符号化対象である注目画素の画素値と、当該注目画素の周辺の画素の画素値とを読み出す第1読み出し手段と、
    前記第1読み出し手段で読み出された前記周辺の画素の画素値に基づいて、前記注目画素の画素値の予測値を算出する第1予測値算出手段と、
    前記第1予測値算出手段で算出された前記予測値と、前記注目画素の画素値との差分である予測誤差を算出する予測誤差算出手段と、
    一方の端から、前記予測誤差算出手段で算出された前記予測誤差が順次に入力され、入力された前記予測誤差を記憶するとともに、既に記憶された前記予測誤差を他方の端側へ移動して記憶する第2記憶手段と、
    前記第2記憶手段に入力される前記予測誤差を、当該第2記憶手段に既に記憶されている前記予測誤差のそれぞれと比較する比較手段と、
    前記比較手段による比較の結果、入力された前記予測誤差が、前記第2記憶手段に既に記憶されている前記予測誤差と一致していた場合は、順次に入力される前記予測誤差からなる入力データ列と一致する、前記第2記憶手段に連続して記憶される前記予測誤差からなるデータ列を探索する探索手段と、
    前記探索手段で探索された前記データ列の長さを示すレングス情報を生成するレングス情報生成手段と、
    前記探索手段で探索された前記データ列の開始データが記憶されていた前記第2記憶手段内の位置を示すアドレス情報を生成するアドレス情報生成手段と、
    前記レングス情報生成手段で生成された前記レングス情報、および、前記アドレス情報生成手段で生成された前記アドレス情報を符号化した第1符号データを生成する第1符号データ生成手段と、
    前記比較手段による比較の結果、入力された前記予測誤差が、前記第2記憶手段に既に記憶されている前記予測誤差のうちの何れとも一致していなかった場合は、当該入力された前記予測誤差が求められた前記注目画素の画素値を符号化した第2符号データを生成する第2符号データ生成手段と、を備える、
    ことを特徴とする画像処理装置。
  2. 前記第1記憶手段は、
    1ライン分の画素値を記憶可能であって、前記注目画素の画素値が順次に書き込まれる第1領域と、
    前記注目画素が属するラインの直前のラインであって、既に符号化が終了したラインに属する複数の画素の各々の画素値が記憶される第2領域と、を有し、
    前記第1領域に書き込まれた1ライン分の画素値の符号化が終了したときに、その符号化が終了した1ライン分の画素値を、前記第2領域に上書きする上書手段をさらに備える、
    ことを特徴とする請求項1に記載の画像処理装置。
  3. 前記第1符号データ生成手段で生成された前記第1符号データ、および、前記第2符号データ生成手段で生成された前記第2符号データを記憶する第3記憶手段と、
    前記第3記憶手段に記憶されたデータを読み出す第2読み出し手段と、
    前記第2読み出し手段で読み出された前記データが前記第1符号データであるか前記第2符号データであるかを判定する判定手段と、
    前記判定手段による判定の結果、前記データが前記第1符号データである場合、当該第1符号データから前記レングス情報および前記アドレス情報を特定する第1特定手段と、
    前記第1特定手段で特定された前記レングス情報および前記アドレス情報を用いて、復号すべき前記画素の前記予測誤差を特定する第2特定手段と、
    既に復号が終了した前記画素の画素値を記憶する第4記憶手段と、
    前記復号すべき前記画素の周辺の画素の画素値を前記第4記憶手段から読み出し、その読み出した周辺の画素の画素値に基づいて、当該復号すべき前記画素の画素値の予測値を算出する第2予測値算出手段と、
    前記復号すべき前記画素の前記予測誤差と、前記第2予測値算出手段で算出された前記予測値とから、前記復号すべき前記画素の画素値を求めて復号する第1復号手段と、
    前記判定手段による判定の結果、前記データが前記第2符号データである場合、当該第2符号データで特定される画素値を求めて復号する第2復号手段と、を備える、
    ことを特徴とする請求項1または請求項2に記載の画像処理装置。
  4. 画像データを構成する複数の画素の各々の画素値が書き込まれる第1記憶手段から、符号化対象である注目画素の画素値と、当該注目画素の周辺の画素の画素値とを読み出す第1ステップと、
    前記第1ステップで読み出された前記周辺の画素の画素値に基づいて、前記注目画素の画素値の予測値を算出する第2ステップと、
    前記第2ステップで算出された前記予測値と、前記注目画素の画素値との差分である予測誤差を算出する第3ステップと、
    一方の端から、前記第3ステップで算出された前記予測誤差が順次に入力され、その入力された前記予測誤差を記憶するとともに、既に記憶された前記予測誤差を他方の端側へ移動して記憶する第2記憶手段の前記一方の端から入力される前記予測誤差を、当該第2記憶手段に既に記憶されている前記予測誤差のそれぞれと比較する第4ステップと、
    前記第4ステップによる比較の結果、入力された前記予測誤差が、前記第2記憶手段に既に記憶されている前記予測誤差と一致していた場合は、順次に入力される前記予測誤差からなる入力データ列と一致する、前記第2記憶手段に連続して記憶される前記予測誤差からなるデータ列を探索する第5ステップと、
    前記第5ステップで探索された前記データ列の長さを示すレングス情報を生成する第6ステップと、
    前記第5ステップで探索された前記データ列の開始データが記憶されていた前記第2記憶手段内の位置を示すアドレス情報を生成する第7ステップと、
    前記第7ステップで生成された前記レングス情報、および、前記アドレス情報生成手段で生成された前記アドレス情報を符号化した第1符号データを生成する第8ステップと、
    前記第4ステップによる比較の結果、入力された前記予測誤差が、前記第2記憶手段に既に記憶されている前記予測誤差のうちの何れとも一致していなかった場合は、当該入力された前記予測誤差が求められた前記注目画素の画素値を符号化した第2符号データを生成する第9ステップと、を備える、
    ことを特徴とする画像処理方法。
JP2010279057A 2010-12-15 2010-12-15 画像処理装置および画像処理方法 Pending JP2012129778A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010279057A JP2012129778A (ja) 2010-12-15 2010-12-15 画像処理装置および画像処理方法
US13/311,799 US8712174B2 (en) 2010-12-15 2011-12-06 Image processing apparatus and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010279057A JP2012129778A (ja) 2010-12-15 2010-12-15 画像処理装置および画像処理方法

Publications (1)

Publication Number Publication Date
JP2012129778A true JP2012129778A (ja) 2012-07-05

Family

ID=46234519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010279057A Pending JP2012129778A (ja) 2010-12-15 2010-12-15 画像処理装置および画像処理方法

Country Status (2)

Country Link
US (1) US8712174B2 (ja)
JP (1) JP2012129778A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5862267B2 (ja) 2011-12-14 2016-02-16 株式会社リコー 画像処理装置および画像処理方法、ならびに、画像形成装置
JP6044292B2 (ja) 2012-11-16 2016-12-14 株式会社リコー データ処理装置、データ処理方法
JP7040058B2 (ja) 2018-01-31 2022-03-23 株式会社リコー 符号化装置
JP2021175049A (ja) 2020-04-22 2021-11-01 株式会社リコー 情報処理装置、情報処理方法、及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000244935A (ja) * 1998-12-21 2000-09-08 Nikon Corp 画像データ圧縮方法
JP2004112483A (ja) * 2002-09-19 2004-04-08 Fuji Xerox Co Ltd 画像処理装置
JP2008193567A (ja) * 2007-02-07 2008-08-21 Casio Electronics Co Ltd データ圧縮装置とその復号装置、それらの方法、及びプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04265A (ja) 1990-04-16 1992-01-06 Mitsubishi Electric Corp 電力変換装置
JP4242970B2 (ja) * 1998-07-09 2009-03-25 富士通株式会社 データ圧縮方法及びデータ圧縮装置
US6233358B1 (en) * 1998-07-13 2001-05-15 Intel Corporation Image compression using directional predictive coding of the wavelet coefficients
US6744929B1 (en) * 1999-11-18 2004-06-01 Nikon Corporation Image data compression method image data compression apparatus and recording medium and data signal for providing image data compression program
JP2002142118A (ja) 2000-10-31 2002-05-17 Ricoh Co Ltd 符号化装置、復号化装置、画像形成装置、符号化方法および復号化方法
JP3857534B2 (ja) 2001-03-21 2006-12-13 株式会社リコー 画像圧縮処理装置
JP3865203B2 (ja) 2001-04-24 2007-01-10 株式会社リコー 画像圧縮装置、画像形成装置、画像圧縮方法及び記録媒体
JP2005208575A (ja) 2003-12-26 2005-08-04 Ricoh Co Ltd 画像処理装置、画像処理方法、およびその方法をコンピュータで実行するプログラム
JP2006123505A (ja) 2004-09-29 2006-05-18 Ricoh Co Ltd 画像形成装置、画像形成方法および画像形成システム
JP5081539B2 (ja) 2007-08-31 2012-11-28 株式会社リコー 画像データ符号化装置、画像データ符号化方法、画像形成装置、画像形成方法、画像データ復号化装置、及び画像データ復号化方法
JP4950007B2 (ja) 2007-11-17 2012-06-13 株式会社リコー 画像処理装置及びこれを備えた画像形成装置、並びに、画像処理方法
JP5509957B2 (ja) 2010-03-18 2014-06-04 株式会社リコー 画像処理装置および画像処理方法、ならびに、画像形成装置
JP5545012B2 (ja) 2010-05-07 2014-07-09 株式会社リコー 画像処理装置および画像処理方法
JP5499894B2 (ja) 2010-05-14 2014-05-21 株式会社リコー 画像処理装置および画像処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000244935A (ja) * 1998-12-21 2000-09-08 Nikon Corp 画像データ圧縮方法
JP2004112483A (ja) * 2002-09-19 2004-04-08 Fuji Xerox Co Ltd 画像処理装置
JP2008193567A (ja) * 2007-02-07 2008-08-21 Casio Electronics Co Ltd データ圧縮装置とその復号装置、それらの方法、及びプログラム

Also Published As

Publication number Publication date
US8712174B2 (en) 2014-04-29
US20120155779A1 (en) 2012-06-21

Similar Documents

Publication Publication Date Title
JP5369982B2 (ja) 画像処理装置および画像処理方法
JP2012129778A (ja) 画像処理装置および画像処理方法
JP4133369B2 (ja) 画像処理装置、方法及びプログラム
JP2005309865A (ja) 画像処理装置および画像処理方法、並びに画像処理方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2012134929A (ja) 画像処理装置および画像処理方法
JP2012134659A (ja) 画像処理装置および画像処理方法
JP5218332B2 (ja) 画像処理装置および画像処理方法
JP4131420B2 (ja) 画像形成システム、及び、画像形成プログラム
US9299016B2 (en) Misregistration correcting method and apparatus for use in image processing apparatus
JP4568685B2 (ja) 画像処理装置および画像処理方法、並びに画像処理方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP5201040B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP2011019096A (ja) 画像処理装置および画像処理方法
JP2009169584A (ja) 画像処理装置、画像処理方法、プログラム
JP6451221B2 (ja) 画像処理装置及び画像処理方法
JP6337494B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP5079065B2 (ja) カラー画像処理装置及びプログラム
JP4833770B2 (ja) 画像処理システムおよび画像処理方法
JP4773223B2 (ja) 画像処理装置、画像処理方法、コンピュータ読み取り可能な記録媒体
JP2010219777A (ja) 画像処理装置、画像処理方法およびプログラム
JP2008044236A (ja) 画像処理装置、画像処理方法、およびコンピュータが実行するためのプログラム
JP2006121437A (ja) 画像処理装置および画像処理方法、並びに画像処理方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4450651B2 (ja) 画像処理装置および画像処理方法、並びに画像処理方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US8400675B2 (en) Image forming apparatus, image forming method, computer readable medium storing image forming program and recording medium for performing control to change the number of color materials used for at least the rim portion of the recording medium
JP2011019095A (ja) 画像処理装置および画像処理方法
JP2004236042A (ja) 画像処理装置および画像処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141216

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150407