以下に添付図面を参照して、この発明にかかる画像処理装置、画像処理方法、およびその方法をコンピュータで実行するプログラムの最良な実施の形態を詳細に説明する。
(1.実施の形態1)
(1.1.実施の形態1による画像処理装置の概略構成)
図1は、本発明の実施の形態1による画像処理部の機能的ブロック図である。実施の形態1による画像処理装置は、スキャナ9、操作パネル30、8ラインメモリ11、符号化部12、入出力用符号メモリ領域41、編集部13、ページ復号化部14、画像処理部15、およびプリンタエンジン17を備える。符号化部12は、マクロブロック先頭アドレス記憶部123、およびマクロブロック符号中間データ記憶部1234を備える。編集部13は、マクロブロック符号アドレス認識部13032を備える。ページ復号化部14は、マクロブロック先頭アドレス記憶部145、マクロブロック符号アドレス認識部144、およびマクロブロック復号化シフト値記憶部143172を含む。
ここで、入出力用符号メモリ領域41は、本発明におけるマクロブロック符号記憶手段を構成する。操作パネル30は、編集指定手段を構成する。8ラインメモリ11は多値ブロックラインデータ記憶手段を構成する。符号化部12は、マクロブロック可変長符号化手段を構成する。入出力用符号メモリ領域41はマクロブロック符号記憶手段を構成する。編集部13は編集手段を構成する。ページ復号化部14はマクロブロック復号化手段を構成する。プリンタエンジン17は、画像処理手段を構成する。
また、マクロブロック先頭アドレス記憶部123は、マクロブロック先頭アドレス記憶手段を構成する。マクロブロック符号中間データ記憶部1234は、マクロブロック符号中間データ記憶手段(請求項1)を構成する。マクロブロック符号アドレス認識部13032は、マクロブロック符号アドレス認識手段を構成する。
また、マクロブロック先頭アドレス記憶部145およびマクロブロック符号アドレス認識部144は、マクロブロック符号アドレス認識手段(請求項2)を構成する。また、マクロブロック先頭アドレス記憶部145は、マクロブロック先頭アドレス記憶手段を構成する。マクロブロック復号化シフト値記憶部143172は、マクロブロック復号中間データ記憶手段を構成する。図1に示した上記各部については、以下に詳細に説明する。
図2は、実施の形態1による画像処理装置のハードウェア構成図である。画像処理装置は、CPU1、CPUI/F2、メモリコントローラ3、メモリ4、ローカルバスI/F5、ROM6、パネルコントローラ7、パネル8、スキャナ9、平滑フィルタ処理部
10、8ラインメモリ11、符号化部12、編集部13、ページ復号化部14、画像処理部15、エンジンコントローラ16、プリンタエンジン17、HDD制御部18、HDD(ハードデイスク)19を備える。
CPU1は、コピー機器を全体の制御を行う。CPUI/F2は、メモリコントローラ3に接続され、CPU1とメモリコントローラ3の間のインタフェースを処理する。
メモリコントローラ3は、メモリ4をコントロールし、CPU1、ローカルバスI/F5、編集部13、ページ復号化部14、画像処理部15、符号化部12、およびバス
I/F11と、メモリ4との転送をコントロールする。
メモリ4は、スキャナ9からの画像や、CPU1のプログラムや各種データを格納する。ローカルバスI/F5は、ROM(Read Only Memory)6、およびパネルコントローラ7などと、CPU1、およびメモリ4などとのインタフェースを処理する。ROM6は、文字などのフォント情報や、CPU1のプログラムなどを格納する。
パネルコントローラ7は、操作パネル8をコントロールする。操作パネル8は、ユーザーからの操作を受け付ける。スキャナ9は、CCDにより画像を読み込む。
平滑フィルタ処理部10は、スキャナ9から読み込んだ画像データに対して、シェ−デイング補正、MTFγ補正などの画像処理を施す。
8ラインメモリ11は、平滑フィルタ処理部10により画像処理を施されたデータを、符号化部12が符号化処理するのに必要な1つのサブブロックの副走査方向のサイズのラインの画像データを格納する。
また、パイプライン処理を施す為にトグルのメモリ構成であり、スキャナ9からの画像データの入力と、符号化部12への出力を同時に実行可能である。
符号化部12は、8ラインメモリ11の画像処理を施されたデータを符号化し、メモリ4へ転送する。
編集部13は、メモリ4に貯えられたスキャナ画像を符号化した符号データに、別の文字画像などを合成処理を施し、90度単位の回転処理を施し、メモリ4に再度転送する。
ページ復号化部14は、編集部13により符号化された画像データを受信し、復号化し、サブブロック単位に画像処理部15へ転送する。
画像処理部15は、ページ復号化部14によって復号化された画像データをサブブロック単位に色変換処理や階調処理を施し、2値データになった画像を、エンジンコントローラ16へ転送する。
エンジンコントローラ16は、画像処理部15により生成されたデータを受信し、プリンタエンジン17をコントロールする。
HDD制御部18は、HDD19を制御し、メモリ4のデータをHDD19への転送と、HDD19のデータをメモリ4へ転送する。HDD(ハードデイスク)19は、スキャナ9などの画像データや、符号化された画像データを格納する。
図3は、画像処理装置による画像形成の全体的な流れを説明するフローチャートである。画像処理装置は、先ずスキャナ9から多値のRGBの画像データを読み込む(ステップS101)。平滑フィルタ処理部10はスキャナ9から読み込んだ画像データをシェ−デイング補正、MTFγ補正などの画像処理を施す(ステップS102)。
符号化部12は、平滑フィルタ処理部10にて画像処理を施されたRGB画像データを符号化する(ステップS103)。符号化されたRGB符号データは、メモリ4に格納される(ステップS104)。
ページ復号化部14は、メモリ4に貯えられたRGB符号データを復号化する(ステップS105)。画像処理部15は、色補正処理を施し、RGB画像データからCMYK画像データへ変換する(ステップS106)。画像処理部15は、変換された画像データに対して階調処理を施し(ステップS107)、CMYK画像データを2値のCMYKデータに変換する(ステップS108)。エンジンコントローラ16は、2値CMYKデータを印刷する。
(1.2.メモリの構成)
図4は、実施の形態1による画像形成処理の全体的な流れとメモリの関係を説明する図である。図2および3で説明した以外を補足的に説明する。8ラインメモリ11は、スキャナ9によって読み込まれ平滑化フィルタ10によって画像処理を施されたデータを一時、格納する。
メモリ4は、入出力用符号メモリ領域41、ページ符号メモリ領域42、ページマクロブロック先頭アドレス格納領域43、およびメインメモリ47を含む。
符号化部12(ページ符号化部)は8ラインメモリ11からの画像データをマクロブロックの主走査方向のサイズにより順次、符号化を切り換え、メモリ4の入出力用符号メモリ領域41へ主走査方向へ分割された複数のマクロブロック符号を書き込む。
メモリ4は、符号化部12により生成された主操作方向に連なる複数のマクロブロックの符号を、入出力用符号メモリ領域41において格納する。
符号化部12により生成されたページ単位の複数の主走査方向に連なるマクロブロックの符号は、ページ符号メモリ領域42で格納し、該マクロブロックの先頭アドレスをページマクロブロック先頭アドレス格納領域43で格納する。ページ符号化部12により合成処理を施されたマクロブロックごとの符号はページ単位で、ページ符号メモリ領域42で格納され、該先頭アドレスはページマクロブロック先頭アドレス格納領域43で格納される。
符号411は入出力用符号メモリフォーマット例、符号412はマクロブロックの一例、符号414はページ符号メモリフォーマット例、符号420はページマクロブロック先頭アドレスフォーマット例を模式的に示した。
編集部13は、復号化部136、編集処理部137、合成メモリ138、およびページ符号化部139、を備える。
ページ符号化部139は、入出力用符号メモリ領域41からマクロブロックごとの符号を順次読み込み復号化し、編集処理部137へ転送する。編集処理部137は、復号化部136から受信した復号化された画像データを、合成メモリ136へ展開し、かつ合成する文字画像などをメインメモリ47から読み込んで合成処理を施し、合成処理を施した後、回転方向に読み込んで、ページ符号化部139へ転送する。
ここでページ符号化部139は、本発明における第2のマクロブロック可変長符号化手段を構成する。
合成メモリ138は、復号化されたマクロブロックの画像を格納する。
ページ符号化部139は、編集処理部137からの編集処理を施されたマクロブロック単位の画像を符号化し、ページ符号メモリ領域42へ書き込む。かつ、書き込まれる符号化画像データの先頭アドレスをページマクロブロック先頭アドレス格納領域43に書き込む。
この時、各マクロブロックの符号の符号長を計測することにより、マクロブロックごとの先頭アドレスを求め、メモリ4のページマクロブロック先頭アドレス格納領域43へ書き込む。
ページ復号化部14は、ページマクロブロック先頭アドレス格納領域43に格納されたマクロブロック先頭アドレスをアクセスし、ページ符号メモリ領域42に格納されたマクロブロックの符号を読み込んで、復号化して、サブブロック単位に画像処理部15へ出力する画像データを生成する。
画像処理部15は、ページ復号化部14から出力する画像データ受信し、画像処理を施し、ラインメモリ20を経由して、プリンタエンジン17へ転送する。
図5は、メインメモリ4のファーマットの一例を示す模式図である。入出力用符号メモリ領域41は、スキャナ9からの画像データをマクロブロック単位に符号化された符号データを格納する領域であり、HDD20へ格納する際に符号データを一時格納するメモリ領域でもある。
ページ符号メモリ領域42は、入出力用符号メモリ領域41のマクロブロック単位の符号データに対して回転処理や、合成処理を施した後の複数ページのマクロブロック単位の符号データを格納する領域である。
ページマクロブロック先頭アドレス格納領域43は、ページ符号メモリ領域42の複数ページの符号化されたマクロブロックの符号の先頭アドレスを格納する領域である。
プログラム領域44は、各種のCPU1のプログラムを格納する領域である。
図6は、入出用符号メモリのフォーマットの一例を示す模式図である。入出用符号メモリ411は、m*m画素の複数のマクロブロック412で構成される。マクロブロック412は、n*nの画素からなる複数のサブブロック413から構成される。
図7は、ページ符号メモリ領域のマクロブロックの一例を示す模式図である。ページ符号メモリ領域のマクロブロック414は、n*nの画素からなる複数のサブブロック413から構成されており、水平方向の終端にリスタートマーカー452が挿入されている。
(1.3.各処理の流れとメモリの関係)
図8は、スキャナ入力、入力データ符号化、編集処理、およびページ符号化処理の流れを説明する図である。スキャナ9から読み込まれたデータは、平滑フィルタ処理部10へ転送される(a)。平滑フィルタ処理部10によって画像処理が施され(b)、8ラインメモリ11へ書き込まれる。8ラインメモリ11の画像データは読み込まれて符号化される(c)。符号化された符号データは、メモリ4へ書き込まれる(d)。メモリコントローラ3は符号データをメモリ4から読み込み編集部13へ転送する(e)。編集部13は、符号データを復号化し画像を編集後、再度符号化して、符号データをメモリ4へ格納する(f)。
図9は、復号化処理および印刷処理の流れを説明する図である。メモリコントローラ3は、符号データをメモリ4から読み込みページ復号化部14へ転送する(g)(h)。ページ復号化部14は、符号データに対して復号化処理を施し、画像処理部15へ転送する(i)。画像処理部15は、ページ復号化部14から復号化された画像データを受信し、画像処理を施す(j)。エンジンコントローラ16は、画像処理を施した後のデータをプリンタエンジン17へ転送する(k)。
図10は、符号化処理およびHDDへの格納の流れを説明する図である。スキャナ9から読み込まれたデータが処理されてメモリ4へ書き込まれるまでの(a)〜(d)は、図8で説明したのと同様であるので説明を省略する。HDD制御部18は、メモリ4から、符号データを読み込む(e)。HDD制御部18は、受信した符号データをHDDへ書き込む(f)。
図11は、HDDからの符号データの読み出し、編集処理、およびページ符号化処理の流れを説明する図である。HDD制御部18は、HDD19から符号データを読み込む(g)。HDD制御部18は、読み込まれた符号データをメモリ4へ書き込む(h)。メモリコントローラ3は、書き込まれた符号データをメモリ4から読み込み、編集部13へ転送する(i)。編集部13は、符号データを復号化し、画像を編集後に再度符号化して、再度符号化された符号データをメモリ4へ格納する(j)。
図12は、スキャナ9入力、および符号化処理の流れを説明する図である。スキャナ9から読み込まれたデータは、平滑フィルタ処理部10へ転送される(a)。平滑フィルタ処理部10によって画像処理を施され、8ラインメモリ11へ書き込まれる(b)。符号化部12は、8ラインメモリ11の画像データを読み込み、符号化し、符号化された符号を、メモリ4の入出力用符号メモリ領域41へ書き込む(d)。
図13は、編集処理およびページ符号化処理の流れを説明する図である。編集部13における復号化部136は、メモリ4の入出力用符号メモリ領域41から符号データを読み込み復号化する(e)。編集部13の復号化部136は、復号化された画像データを編集処理部137へ転送する(f)。編集部13の編集処理部137は、受信した画像を合成メモリ138へ書き込む(g)。編集部13の編集処理部137は、合成メモリ138に書き込まれた画像データを、回転方向に読み込んで(h)、読み込まれた画像データをページ符号化部139へ転送する(i)。編集部13のページ符号化部139は、画像データをマクロブロック単位に符号化し、マクロブロックの先頭アドレスをメインメモリ4のページマクロブロック先頭アドレス格納領域43へ順次書き込む(j)。編集部13のページ符号化部139は、画像データをマクロブロック単位に符号化し、メインメモリ4のページ符号メモリ領域42へ順次書き込む。
図14は、ページ復号化処理および印刷出力の流れを説明する図である。ページ復号化部14は、メインメモリ4のページマクロブロック先頭アドレス格納領域43からマクロブロック先頭アドレスを読み込む(l)。ページ復号化部14は、読み取られたマクロブロックの先頭アドレスに基づいて、マクロブロック単位の符号データを、メインメモリ4のページ符号メモリ領域42から読み込む(m)。ページ復号化部14は、読み取られたマクロブロックの符号を復号化し、画像処理部15へ転送する(o)。画像処理部15は、ページ復号化部14から画像データを読み込み、画像処理を施し、画像処理を施された画像データはラインメモリ20に送信される(p)。エンジンコントローラ16(図2)は、画像処理を施した後のデータをプリンタエンジン17へ転送する(q)。
図15は、符号化処理、HDDへの格納、編集処理、およびページ符号化処理の流れを説明する図である。スキャナ9による読み込み(a)〜メモリ4の入出力用符号メモリ領域41への書き込み(d)は、図12において説明したと同様であるので説明を省略する。HDD制御部18はメモリ4から符号を読み込み(e)、HDD制御部18は受信した符号をHDD19へ書き込む(f)。
HDD制御部18は、逆にHDD19からマクロブロック単位の符号データを読み込み(g)、HDD制御部18は読み込まれたマクロブロック単位の符号データをメインメモリ4の入出力符号メモリ領域41へ書き込む(h)。編集部13の復号化部136は、メモリ4の入出力用符号メモリ領域41から符号データを読み込み復号化する工程(i)から印刷出力までは、図13および図14において説明したと同様であるので説明を省略する。
(1.4.符号化部)
図16は、実施の形態1による画像処理装置の符号化部の機能的ブロック図である。画像処理装置の符号化部12は、符号化処理部122、マクロブロック先頭アドレス記憶部123、メモリアドレス生成部124、メモリコントローラI/F125、およびコントローラ126を備える。
ここで、マクロブロック先頭アドレス記憶部123は、本発明のマクロブロック先頭アドレス記憶手段を構成する。
8ラインメモリ11は、8*8画素単位で符号化するJPEGの場合の1ブロックラインの画像処理を施した後の画像を格納するメモリである。
符号化処理部122は、8ラインメモリ11から水平方向に8*8画素を順次読み込み、JPEGなどの符号化方式により符号化し、符号データをメモリコントローラI/F125へ転送する。この時、符号化処理部122は図19に示したように、水平方向に複数のマクロブロック単位に符号化する為に、水平方向にマクロブロックの境界を判断し、符号化を中断し、かつ現在のメモリ4へ書き込んだマクロブロックの符号の先頭アドレスと、符号化の途中の符号化データ(JPEGの場合はハフマン符号化途中の符号データとその符号の先頭アドレスを管理するシフト値など)を一時記憶し、順次マクロブロックの符号化を行い、複数のマクロブロックの符号を作成していく。そして次のブロックラインの8ラインのデータを処理する際に、同じマクロブロックの途中の符号化データとマクロブロックの符号の先頭アドレスを読み込み、そのマクロブロックの符号化の続きを処理することにより、8ラインメモリ11のような1ブロックラインのラインメモリのみで、n*nの画素のマクロブロック単位の符号化を行うことを可能とする。
マクロブロック先頭アドレス記憶部123は、符号化処理部122から、現在処理しているマクロブロックの番号とマクロブロック切り換わり信号とを受信し、メモリアドレス生成部124からの符号メモリアドレスを受信し、符号化処理部122が処理しているマクロブロックが切り換わる時に、切り換わる以前のマクロブロックの終端の符号のメモリアドレスを8ラインメモリ11に水平方向に連なる複数のマクロブロックごと記憶し、次のブロックライン時に各々のマクロブロックを処理する時に、そのマクロブロックの終端の符号のメモリアドレスをメモリアドレス生成部124へ送ることによって、各マクロブロックの符号化の継続を行うことを可能とする。
メモリアドレス生成部124は、マクロブロック先頭アドレス記憶部123から現在処理中のマクロブロックの符号の先頭アドレスを受信し、記憶し、符号化処理部122から符号データイネーブル信号を受信し、符号データを書き込みを認識し、次の符号の書き込みアドレスへカウントUPし、水平ラインに連なる複数の符号のメモリアドレスを生成することを可能とする。
メモリコントローラI/F125は、符号化処理部122からの符号データを受信し、メモリアドレス生成部124から符号データのアドレスを受信し、メモリコントローラ3へ書き込む符号データとそのアドレスを転送する。コントローラ126は、符号化部12の全体を制御する。
図17−1および17−2は、符号化処理手順を説明するフローチャートである。図18−1は、8ラインメモリフォーマットの一例を示す模式図である。図18−2は、マクロブロックにおけるサブブロックの処理の方向を説明する図である。図19は、画像データの符号化フォーマットの一例を説明する図である。
マクロブロック先頭アドレス記憶部123へ、水平方向に連なる複数のマクロブロックをメモリ4の入出力用符号メモリ領域41へ記憶させる先頭アドレスを設定する(ステップS201)。ここで、複数の符号を並列に作成する為に、各マクロブロックの符号のサイズはまずは大き目に確保しておく。
垂直方向のマクロブロック内のサブブロックのカウンタ”J”を初期設定する(ステップS202)。8ラインメモリ11に1ブロックラインの平滑フィルタ処理を施した後の画像データを格納し、トグルの8ラインメモリ11を切り換える(ステップS203)。
水平方向のマクロブロックのカウンタ”I”を初期設定する(ステップS204)。マクロブロック先頭アドレス記憶部123から、I番目のマクロブロックの符号を格納する先頭アドレスを受け取る(ステップS205)。マクロブロック符号中間データ記憶部1234(図20後述)から、I番目のマクロブロックの符号化の途中のデータを符号フォーマット生成部1233(図20後述)へ設定する(ステップS206)。
8ラインメモリ11から、水平方向にI番目のマクロブロックのJブロックラインの画像データを読み込む(ステップS207)。
I番目のマクロブロックのJブロックライン目のサブブロックごとに準じ、0〜Mまで図18−1に示されたように符号化して行く(ステップS208)。
I番目のマクロブロックの符号を、メモリ4の入出力用符号メモリ領域41のI番目のマクロブロック先頭アドレスが示すアドレスへマクロブロック先頭アドレス記憶部123へ順次格納する(ステップS209)。
メモリアドレス生成部124は、符号化処理部122から符号長を受信し、かつマクロブロック先頭アドレス記憶部123からマクロブロックの先頭アドレスを受信し、マクロブロックの先頭アドレスを求める(ステップS210)。
符号フォーマット生成部1233は、マクロブロック符号中間データ記憶部1234へ、I番目のマクロブロックの符号化途中のデータを転送し、記憶させる(ステップS211)。
マクロブロック先頭アドレス記憶部123は、メモリアドレス生成部124からのI番目のマクロブロック先頭アドレスを受信し記憶する(ステップS212)。
水平方向のマクロブロックのカウンタ”I”をカウントUPする(ステップS213)。
水平方向のマクロブロックを全て処理したか否かを判断し(ステップS214)、未だであると判断した場合は(ステップS214のNo)、B即ちステップS205へ戻る。全てを処理したと判断した場合(ステップS214のYes)、垂直方向のマクロブロック内のサブブロックのカウンタ”J”をカウントUPする(ステップS215)。
垂直方向のマクロブロック内のサブブロックを全て処理したか否かを判断する(ステッ
プS216)。未だであると判断した場合(ステップS216のNo)、C即ち、ステッ
プS203へ戻る。全て処理したと判断した場合(ステップS216のYes)、1ペー
ジの符号化を終了したか否かを判断する(ステップS217)。未だであると判断した場
合(ステップS217のNo)、D即ち(ステップS201)へ戻り、終了したと判断し
た場合、そのまま終わる(ステップS217のYes)。
(1.4.1.符号化処理部)
図20は、実施の形態1による符号化部における符号化処理部のブロック図である。符号化処理部122は、8*8バッファ1221、8ラインメモリアドレス生成部1222、RGB−>YUV変換部1223、YDCT処理部1224、Y量子化処理部1225、Yエントロピー符号化部1226、UDCT処理部1227、U量子化処理部1228、Uエントロピー符号化部1229、VDCT処理部1240、V量子化処理部1241、Vエントロピー符号化部1242、符号フォーマット生成部1233、およびマクロブロック符号中間データ記憶部1234を備える。
ここで、マクロブロック符号中間データ記憶部1234は、本発明におけるマクロブロック符号中間データ記憶手段を構成する。
8*8バッファ1221は、サブブロックの8*8画像を格納する。8ラインメモリアドレス生成部1222は、8ラインメモリ11からの8*8のサブブロックの画像の先頭アドレスを生成する(図21に詳細なブロック図を示す)。
RGB−>YUV変換部1223はJPEGの規格にもとづき、8*8画素のRGBを
YUVへ変換し、Y成分をYDCT処理部1224へ、U成分をUDCT処理部1227
へ、V成分をVDCT処理部1240へ転送する。
YDCT処理部1224は、Y成分をDCT(離散コサイン変換)を行い、Y量子化処理部1225へ転送する。Y量子化処理部1225は、YDCT処理部1224からのY成分のDCT処理を施した後のデータを受信し量子化し、Yエントロピー符号化部1226へ転送する。Yエントロピー符号化部1226は、Y量子化処理部1225からのY成分の量子化後のデータを受信し、ハフマン符号化方式で符号化し、符号フォーマット生成部1233へ転送する。以下、図中UおよびVについても上記のYについての処理と同様の処理を施すものである(図23に、詳細なブロック図を示す)。
UDCT処理部1227は、U成分をDCT(離散コサイン変換)を行い、U量子化処理部1228へ転送する。U量子化処理部1228は、UDCT処理部1227からのU成分のDCT処理を施した後のデータを受信し量子化し、Uエントロピー符号化部1229へ転送する。Uエントロピー符号化部1229は、U量子化処理部1228からのU成分の量子化後のデータを受信し、ハフマン符号化方式で符号化し、符号フォーマット生成部1233へ転送する。
VDCT処理部1240は、V成分をDCT(離散コサイン変換)を行い、V量子化処理部1241へ転送する。V量子化処理部1241は、VDCT処理部1240からのV成分のDCT処理を施した後のデータを受信し量子化し、Vエントロピー符号化部1242へ転送する。Vエントロピー符号化部1242は、V量子化処理部1240からのV成分の量子化後のデータを受信し、ハフマン符号化方式で符号化し、符号フォーマット生成部1233へ転送する。
符号フォーマット生成部1233はエントロピー符号化部1226、1229、1242からの符号データを受信し符号を形成する(図28に詳細なブロック図を示す)。
マクロブロック符号中間データ記憶部1234は、符号フォーマット生成部1233から符号化途中のデータとマクロブロック番号を受信し、指定されたマクロブロック領域へ符号化途中のデータを格納する(図29に詳細なブロック図を示す)。
(1.4.2.8ラインメモリアドレス生成部)
図21は、8ラインメモリアドレス生成部の詳細なブロック図である。8ラインメモリアドレス生成部1222の加算器12221は、水平方向の処理したサブブロックの数を求める。
レジスタ12222は、加算器12221により求めた水平方向に処理したサブブロックの数を格納する。また、1ブロックラインのデータを全て処理した後、初期値へ戻る。
乗算器12223は、レジスタ12222で取得したレジスタの値に1ブロックのワード数を乗算し、8ラインメモリ11のアドレスを求める。
比較部12224は、サブブロックの数とマクロブロック内のサブブロックの数を比較し、次のマクロブロックへの切り換わり信号を生成する。
加算器12225は、処理した水平方向のマクロブロック数を求める。レジスタ12226は、加算器12225により取得した水平方向に処理したマクロブロックの数を格納する。また、1ブロックラインのデータを全て処理した後、初期値へ戻る。
比較部12227は、マクロブロックの数と8ラインメモリ11に格納しているマクロブロック数と比較し、8ラインメモリ11の切り換わり信号を生成する。
コントローラ12228は、8ラインメモリアドレス生成部をコントロールする。
図22は、MCUの一例を示す模式図である。まずYの符号を作成し、次にUの符号化、次にVの符号化を行う。
(1.4.3.エントロピー符号化部)
図23は、符号化処理部におけるエントロピー符号化部の詳細なブロック図である。図24−1は、AC符号化手順を説明する図である。図24−2は、DC符号化手順を説明する図である。図25は、DC/AC値切り出し処理を説明する図である。図26は、DC値符号化部を説明する図である。図27は、AC値符号化部を説明する図である。図23〜27を参照しながら、符号化処理部122におけるYエントロピー符号化部1226について説明する。
8*8DCT係数格納部12261であり、DCT処理を施した後の8*8のDCT係数を格納している。
DC/AC値切り出し部12262は、図24−1および24−2に示したように、8*8DCT係数格納部12261から、DC値とAC値を図25のようにDC値を1つ、AC値を63個切り出し、DC値を、DC値符号化部12263へ、AC値をAC値符号化部12264へ転送する。
DC値符号化部12263は、DC/AC値切り出し部12262から受信したDC値を、図26のようにDC値のハフマンテーブルによりDC符号とその符号長を求める。
AC値符号化部12264は、DC/AC値切り出し部12262から受信したAC値を図27に示すように、AC値のハフマンテーブル2801〜2804によりAC符号とその符号長を求める。
符号フォーマット処理部12265はDC、AC値符号化部12263、12264からのDC、AC符号と、その符号長を1つの符号と符号長にまとめる。
(1.4.4.符号フォーマット生成部)
図28は、符号化部の符号化処理部における符号フォーマット生成部の詳細なブロック図である。符号フォーマット生成部1233のMUX12331は、図20のエントロピー符号化部1226、1229、1242からのY、U、Vの符号を選択する。この例では図22に示したMCUの順序と同様に、まずYの符号を作成し、次にUの符号化、次にVの符号化を行う。
シフター12332は、生成された符号を順次1つのワード長のデータに接続して行う為に接続した符号のワード内の先頭のアドレス(加算器12337により生成される)により、シフトしたデータを生成する。
レジスタ12333は、シフター12332によりシフトされた後の符号データを一時格納する。
MUX12334は、図20のエントロピー符号化部1226、1229、1242からのY、U、Vの符号を選択する。
MUX12335は、通常時は加算機12337の1つのワード長のデータに接続して行く為に接続した符号のワード内の先頭のアドレスを順次求める為に、加算器12337の処理結果を、レジスタ12336へ転送し、図17−1ステップS206で示されたように、図20のマクロブロック符号中間データ記憶部1234から、I番目のマクロブロックの符号の中間データとして、格納したシフト値を設定する場合、マクロブロック符号中間データ記憶部1234からシフト値をレジスタ12336へ転送する。
レジスタ12336は、1つのワード長のデータに接続して行く為に接続した符号のワ
ード内の先頭のアドレスを順次求める為にシフター12332がシフトする値を格納し、
図17−2のステップS211に示されたように、図20のマクロブロック符号中間デー
タ記憶部1234へ、I番目のマクロブロックの符号の中間データとして、格納したシフ
ト値を設定する場合、マクロブロック符号中間データ記憶部1234へシフト値を転送す
る。
加算器12337は、MUX12334で選択された符号長と累積された1ワード内のシフト値を加算し、次の符号の先頭のシフト値を求め、MUX12335へ転送する。
OR部12338は、シフトされた符号データ12333と累積された1ワード内の中間符号データをOR処理を施し、サブブロックごとの符号データを1ワード単位に接続し、MUX12339へ転送する。
MUX12339は、通常時は1つのワード長のデータに接続して行く為に接続した符号のワードを求める為に、OR部12338の処理結果をレジスタ12340へ転送し、図17−1のステップS206に示されたように、図20マクロブロック符号中間データ記憶部1234から、I番目のマクロブロックの符号の中間データとして、格納した中間符号データを設定する場合、マクロブロック符号中間データ記憶部1234から中間符号データをレジスタ12340へ転送する。
レジスタ12340は、1つのワード長のデータに接続して行く為に接続した符号のワードを求める為にOR部12338がORした値を格納し、図17−2のステップS211に示されたように、図20のマクロブロック符号中間データ記憶部1234へ、I番目のマクロブロックの符号の中間データとして、格納した中間符号データを設定する場合、マクロブロック符号中間データ記憶部1234へ中間符号データを転送する。
符号データを格納するレジスタ12341は、サブブロックごとの符号を順次接続し、1つのワードの符号へ成長した時、その1ワードの符号データを格納する。
コントローラ12342は、この符号フォーマット生成部1233の制御を行い、符号データ12341が生成された時に符号データイネーブルを生成し、図16のメモリアドレス生成部124へ符号データが1ワード生成されたことを知らせる。
実施の形態1では、符号化時は中間符号データ格納部を有し、図28の符号フォーマット生成部1233のように可変長符号を固定長ワードにまとめる処理の固定長ワードに達していない符号と、その符号の1ワード内の先頭アドレスを管理するシフト値をマクロブロックごと中間符号データ格納部に一時格納し、マクロブロックごと継続して符号化する場合に、一時待避させた固定長ワードに達していない符号とその符号の1ワード内の先頭アドレスを管理するシフト値を再度、図28の符号フォーマット生成部1233へ値を戻すことにより、可変長符号での符号化の切替えを実現している。
図29は、符号化部の符号化処理部におけるマクロブロック符号中間記憶部の詳細な機能的ブロック図である。マクロブロック符号中間記憶部1234のアドレス変換部12341は、8ラインメモリアドレス生成部1222からの現在処理中のマクロブロックの番号を含む信号を受けとりメモリ4の、そのマクロブロック番号のアドレスへ変換する。
ライト信号生成部12342は、8ラインメモリアドレス生成部1222からマクロブロック切り換わり信号を受けとり、メモリ4の書き込み信号を生成する。
メモリ4は、各水平方向に連なるマクロブロックごとの符号フォーマット生成部1233から符号化途中のデータと符号化途中のシフトデータを格納する。
図30は、符号化部のマクロブロック先頭アドレス記憶部の詳細なブロック図である。符号化部12のマクロブロック先頭アドレス記憶部123のアドレス変換部1231は、符号化処理部122からの現在処理中のマクロブロックの番号を含む信号を受けとり、メモリ4の、そのマクロブロック番号のアドレスへ変換する。
ライト信号生成部1232は、符号化処理部122からマクロブロック切り換わり信号を受けとり、メモリ4の書き込み信号を生成する。
メモリ4は、各水平方向に連なるマクロブロックごとのメモリアドレス生成部124からの入出力用符号メモリ領域41の各マクロブロックのマクロブロック先頭アドレスを格納する。
(1.5.編集部)
図31は、実施の形態1による画像処理装置の編集部の機能的ブロック図である。図32は、編集部における合成メモリのフォーマットの一例を示す模式図である。
編集部13のメモリコントローラI/F1301は、メモリ4の入出力用符号メモリ領域41からマクロブロックの符号を読み込み、復号化部1303のバッファ1302へ転送し、また、JPEG符号化部のバッファ1305の符号データを順次のメモリ4のページ符号メモリ領域42へ符号データを転送し、マクロブロック先頭アドレス計算部1312からのマクロブロックの先頭アドレスを、ページマクロブロック先頭アドレス格納領域43へ転送する。
バッファ1302は、復号化部1303へ符号データを転送するためのバッファである。
復号化部1303は、メモリ4の入出力用符号メモリ領域41から符号を読み込み復号化し、合成メモリ138のメモリI/Fへ転送する。この例ではJPEGで構成されている(図39に、編集部における復号化部1303の詳細なブロック図を示す)。
8*8回転処理部1304は、図37、38に示したように、合成メモリ138の画像データを指定された90度単位の回転角度に応じて8*8画素単位(サブブロック単位)で回転処理を施す。
バッファ1305は、ページ符号化部1306からの符号データをメモリコントローラI/F1301へ転送するためのバッファである。
ページ符号化部1306は、合成メモリ138の符号ページメモリ領域から符号を読み込み復号化し、合成メモリ138の合成メモリI/F1309へ転送する。この例では、ページ符号化部1306はJPEGで構成されている(図43に詳細なブロック図を示す)。
バッファ1307は、画像合成部1308へ合成を行う文字などの画像データを転送するためのバッファである。
画像合成部1308は、合成メモリ138に展開されたマクロブロックの画像に、バッファ1307に格納された文字などの画像データを合成処理を施し、再度、合成メモリ138へ転送する。
合成メモリI/F1309は、合成メモリ138へアクセスするためのインタフェースを行う。
合成メモリ138は、編集部13における復号化部1303により展開されたマクロブロックの画像データを、一時格納する。図33に、合成メモリ138のフォーマットの一例を示した。
符号長カウント部1311は、ページ符号化部1306で符号化された符号のマクロブロックごとの合計符号長をカウントし、マクロブロック先頭アドレス計算部1312へ転送する。
マクロブロック先頭アドレス計算部1312は、マクロブロックごとの合計符号長を符号長カウント部1311から受信し、各マクロブロック符号の先頭アドレスを計算して、メモリコントローラI/F1301へ転送する。
メモリアドレス生成部1313は、マクロブロック先頭アドレス計算部1312から各マクロブロックの先頭アドレスを受信し、ページ符号化部1306の符号データをメモリコントローラI/F1301を介して転送するメモリ4におけるアドレスを生成する。
メモリアドレス生成部1313は、合成メモリ138のアドレスを生成する。合成メモリ138中の画像合成後のマクロブロックを再度符号化するとき、その指定された90度単位の回転角度により、マクロブロックをサブブロック単位で読み出す順序を変えることにより、90度単位の回転処理を実現している(図36参照)。
コントローラ1316は、編集部13の全体を制御する。
図33−1および33−2は、実施の形態1による画像処理装置における編集処理手順を説明するフローチャートである。図34は、マクロブロックからのデータの読み出し順序を説明する図である。図35は、ページレベルの回転処理を説明する図である。図36は、マクロブロックレベルの回転処理を説明する図である。図37および38は、サブブロックレベルの回転処理を説明する図である。図33−1〜38を参照しながら、編集処理手順を説明する。
マクロブロックの先頭アドレスを0に設定する(ステップS301)。図36に示されるように回転角度に応じたマクロブロックの符号を1つ、メインメモリから読み込む。この時対応するマクロブロックのメインメモリのマクロブロック先頭アドレス領域から先頭アドレスを読み込み、このページの符号の先頭アドレスを加え対応するマクロブロックの符号の先頭アドレスを求める(ステップS302)。
符号長カウンタを0に設定する(ステップS303)。マクロブロックから図34に示されるように、サブブロックの符号を1つ復号化する(ステップS304)。マクロブロック内の全てのサブブロックが処理されたか否かを判定する(ステップS305)。未だであれば(ステップS305のNo)、ステップS304に戻る。
全て終了していれば(ステップS305のYes)、画像合成部により文字画像などをマクロブロックの画像に入れ込み、合成メモリの値を更新する(ステップS306)。
図37に示されるように、画像の回転処理に基づく回転角度に応じて、合成メモリ138からサブブロック画像を切り出して、8*8回転処理部1304に送信する(ステップS307)。8*8回転処理部1304はサブブロックレベルの回転角度に応じて、各画素を回転処理する(ステップS308)。
ページ符号化部1306は、8*8回転処理部1304のサブブロックの画素を符号化し、符号長カウンタとする(ステップS309)。編集処理後のマクロブロックの符号をメインメモリのマクロブロックの先頭アドレス+符号の先頭アドレスの示す符号ページ領域へ格納する(ステップS310)。マクロブロックの先頭アドレスの値をメインメモリのマクロブロックアドレス格納領域へ格納する(ステップS311)。
マクロブロックの先頭アドレスを符号長カウンタ+マクロブロックの先頭アドレスに置き換える(ステップS312)。ページ内の全てのマクロブロックが処理されたか否かを判定する(ステップS313)。処理されていないと判定された場合(ステップS313のNo)、ステップS302に戻る。処理したと判定された場合(ステップS313のYes)、そのまま終了する。
(1.5.1.編集部における復号化部)
図39は、編集部における復号化部の機能的ブロック図である。編集部13における復号化部1303の復号化処理部13031は、メモリ4の入出力用符号メモリ領域41から符号を読み込み、復号化し、合成メモリ138へ転送する。(図41に、復号化処理部13031の詳細な機能的ブロック図を示す)。
読み込みメモリアドレス生成部13032は、メモリ4の入出力用メモリ領域41から読み込むメモリアドレスを生成し、復号化処理部13031から、次の符号ワードを要求する符号ワード要求信号と、1つのマクロブロックの復号化が終了したことを示すマクロブロック終了信号を受信し、マクロブロック先頭アドレス記憶部13033からマクロブロックごとのメモリ4の入出力用メモリ領域41の先頭アドレスを受け取ることにより、読み込むメモリアドレスを生成する。
ここで、読み込みメモリアドレス生成部13032およびマクロブロック先頭アドレス記憶部13033は、本発明におけるマクロブロック符号アドレス認識手段(請求項1)を構成する。
マクロブロック先頭アドレス記憶部13033は、メモリ4の入出力用メモリ領域41のマクロブロックごとの先頭アドレスを記憶する。
図40は、編集部における復号化処理部による処理手順を説明するフローチャートである。図41は、マクロブロックごとに符号化されたデータ、およびサブブロックから構成されるマクロブロックの読み出し順番を示す模式図である。
水平方向に連なる複数のマクロブロックをメモリ4の先頭アドレスを0に設定する(ステップS401)。次に、垂直方向のマクロブロック内のサブブロックのカウンタ”J”を0に初期設定する(ステップS402)。マクロブロック先頭アドレス記憶部13033から副走査方向にJ番目のマクロブロックの列の主走査方向にI番目のマクロブロックの先頭アドレスを読み込む(ステップS403)。図31のバッファ1302から符号を読み込む(ステップS404)。
I番目のマクロブロックのJブロックライン目の0からMまでのサブブロックごと順次復号化していく(ステップS405)。IをI+1に設定する(ステップS406)。Iがβより大きいか否かを判定し(ステップS407)、大きくない場合は、ステップS403に戻る。大きいと判定した場合(ステップS407のYes)、入出力用符号メモリの符号を全て復号したか否かを判定する(ステップS408)。未だであると判定した場合(ステップS408のNo)、JをJ+1に置き換えて(ステップS409)、ステップS402に戻る。復号化したと判定した場合(ステップS408のYes)、そのまま処理を終了する。
図42は、編集部の復号化部における復号化処理部の機能的ブロック図である。編集部13の復号化部1303の復号化処理部13031のエントロピー復号化部13041は、メモリ4の符号データを順次読み込み、Y成分のエントロピー復号化処理を施し、Y逆量子化処理部13042へ量子化後のY成分の8*8画素のデータを転送し、U成分のエントロピー復号化処理を施し、U逆量子化処理部13044へ量子化後のU成分の8*8画素のデータを転送し、V成分のエントロピー復号化処理を施し、V逆量子化処理部13046へ量子化後のV成分の8*8画素のデータを転送する。
Y逆量子化処理部13042は、エントロピー復号化部13041から量子化後のY成分の8*8画素データを受信し、逆量子化し、Y成分の8*8画素のDCT係数を求め、YIDCT処理部13043へ転送する。
YIDCT処理部13043は、Y逆量子化処理部13042からY成分の8*8画素のDCT係数を受信し、IDCT(逆離散コサイン変換)を行い、現在処理中のラインのY成分の水平の8画素データを求め、YUV−>RGB変換部13048へ転送する。
U逆量子化処理部13044は、エントロピー復号化部13041から量子化後のU成分の8*8画素データを受信し、逆量子化し、U成分の8*8画素のDCT係数を求め、UIDCT処理部13045へ転送する。
UIDCT処理部13045は、U逆量子化処理部13044からU成分の8*8画素のDCT係数を受信し、IDCT(逆離散コサイン変換)を行い、現在処理中のラインのU成分の水平の8画素データを求め、YUV−>RGB変換部13048へ転送する。
V逆量子化処理部13046は、エントロピー復号化部13041から量子化後のV成分の8*8画素データを受信し、逆量子化し、V成分の8*8画素のDCT係数を求め、VIDCT処理部13047へ転送する。
VIDCT処理部13047は、V逆量子化処理部13046からV成分の8*8画素のDCT係数を受信し、IDCT(逆離散コサイン変換)を行い、現在処理中のラインのV成分の水平の8画素データを求め、YUV−>RGB変換部13048へ転送する。
YUV−>RGB変換処理部13048は、IDCT処理部13043、13045、13047からのY、U、Vの画素データをRGBへ変換する。
図43は、編集部におけるページ符号化部のブロック図である。
編集部13におけるページ符号化部1306の8*8バッファ13061は、サブブロックの8*8の画像を格納するバッファである。
水平サブブロックカウント部13062は、処理した水平方向のサブブロック数をカウントし、水平方向のサブブロックの終端の信号としての水平サブブロック終端信号を、リスタートマーカー生成部13073へ転送する。
RGB−>YUV変換部13063は、JPEGの規格にもとづき、8*8画素のRGBをYUVへ変換し、Y成分をYDCT処理部へ、U成分をUDCT処理部へ、V成分をVDCT処理部へ転送する。
YDCT処理部13064は、Y成分をDCT(離散コサイン変換)を行い、Y量子化処理部13065へ転送する。
Y量子化処理部13065は、YDCT処理部13064からのY成分のDCT処理を施した後のデータを受信し量子化し、Yエントロピー符号化部13066へ転送する。
Yエントロピー符号化部13066は、Y量子化処理部13065からのY成分の量子化後のデータを受信し、ハフマン符号化方式で符号化し、符号フォーマット生成部13074へ転送する。
UDCT処理部13067は、U成分をDCT(離散コサイン変換)を行い、U量子化処理部13068へ転送する。
U量子化処理部13068は、UDCT処理部13067からのU成分のDCT処理を施した後のデータを受信し量子化し、Uエントロピー符号化部13069へ転送する。
Uエントロピー符号化部13069は、U量子化処理部13068からのU成分の量子化後のデータを受信し、ハフマン符号化方式で符号化し、符号フォーマット生成部13074へ転送する。
VDCT処理部13070は、V成分をDCT(離散コサイン変換)を行い、V量子化処理部13071へ転送する。
V量子化処理部13071は、VVDCT処理部13070からのV成分のDCT処理を施した後のデータを受信し量子化し、Vエントロピー符号化部13072へ転送する。
Vエントロピー符号化部13072は、V量子化処理部13071からのV成分の量子化後のデータを受信し、ハフマン符号化方式で符号化し、符号フォーマット生成部13074へ転送する。
リスタートマーカー生成部13073は、水平サブブロックカウント部13062からの水平サブブロック終端信号を受信しリスタートマーカーを生成し、符号フォーマット生成部13074へ転送する。
符号フォーマット生成部13074は、エントロピー符号化部13066、13069、13072からの符号データと、リスタートマーカー生成部13073からのリスタートマーカー符号とを受信し、符号を形成する。
(1.5.1.編集部におけるページ符号化部)
図44は、ページ符号化部による処理手順を説明するフローチャートである。図45はマクロブロックにおけるサブブロックの処理順序を説明する図である。
編集部13におけるページ符号化部1306は、8*8回転処理部1304から8*8回転処理後の画像を読み込む(ステップS501)。ページ符号化部1306は、8*8回転処理後の画像を符号化する(ステップS502)。1ブロックライン分処理されたか否かを判定する(ステップS503)。未だである場合は(ステップS503のNo)、ステップS502に戻る。処理されたと判定された場合(ステップS503のYes)、リスタートマーカーを挿入する(ステップS504)。m*mブロック(マクロブロック)の画像を処理したか否かを判定する(ステップS505)。未だであると判定された場合(ステップS505のNo)、ステップS502に戻る。処理されたと判定された場合(ステップS505のYes)、そのまま処理を終了する。
(1.6.ページ復号化部)
図46は、実施の形態1による画像処理装置の図2に示したページ復号化部の詳
細な機能的ブロック図である。
画像処理装置のページ復号化部14のメモリコントローラI/F141は、読み込みメモリアドレス生成部144からのメモリ4のページ符号メモリ領域42のマクロブロックごとの符号を読み込み、バッファ142へ転送し、メモリ4のページマクロブロック先頭アドレス格納領域43からマクロブロックごとの先頭アドレスを読み込み、マクロブロック先頭アドレス記憶部145へ転送する為のメモリコントローラ3とのI/Fの処理を施す。
ここで、読み込みメモリアドレス生成部144およびマクロブロック先頭アドレス記憶部145は、本発明(請求項2)におけるマクロブロック符号アドレス認識手段を構成する。また、マクロブロック先頭アドレス記憶部145は、本発明(請求項2)におけるマクロブロック先頭アドレス記憶手段を構成する。
バッファ142は、復号化処理部143へ転送する為の符号データを一時格納する。
復号化処理部143は、メモリ4のページ符号メモリ領域42から符号を読み込み復号化し、サブブロック単位に画像処理部15へ転送する(図48に画像処理部15の詳細なブロック図を示す)。
読み込みメモリアドレス生成部144は、メモリ4のページ符号メモリ領域42から読み込むメモリアドレスを生成する部であり、復号化処理部143から、次の符号ワードを要求する符号ワード要求信号と、1マクロブロックの水平方向の復号化が終了したことを示すマクロブロックライン終端信号を受信し、マクロブロック先頭アドレス記憶部145からマクロブロックごとのメモリ4のページ符号メモリ領域42のマクロブロックの先頭アドレスを受け取ることにより、読み込むメモリアドレスを生成する。
マクロブロック先頭アドレス記憶部145は、メモリ4のページマクロブロック先頭アドレス格納領域43からマクロブロックごとの先頭アドレスを受信し記憶し、復号化処理部143から処理中のマクロブロック番号と、マクロブロックライン終端信号を受け取ることにより、読込みメモリアドレス生成部144からのそのマクロブロックの符号の途中の符号のメモリアドレスを受信し、記憶し、再度そのマクロブロックを復号化する時、そのマクロブロックの復号化途中の符号のメモリアドレスを読込みメモリアドレス生成部144へ転送する。
コントローラ146は、ページ復号化部14を制御する。
図47−1および47−2は、ページ復号化部におけるページ復号化処理手順を説明するフローチャートである。図48−1は、8ラインメモリフォーマットの一例を示す模式図である。図48−2は、マクロブロックを構成するサブブロックの復号化順序を説明する図である。
マクロブロック先頭アドレス記憶部145へ水平方向に連なる複数のマクロブロックのメモリ4のマクロブロック先頭アドレス格納領域43へ記憶された先頭アドレスを読込み設定する(ステップS601)。垂直方向のマクロブロック内のサブブロックのカウンタ”J”を初期設定する(ステップS602)。水平方向のマクロブロックのカウンタ”I”を初期設定する(ステップS603)。
マクロブロック先頭アドレス記憶部145から、I番目のマクロブロックの符号を格納する先頭アドレスを受け取る(ステップS604)。図50のシフト値生成部14317の図51のマクロブロック復号化シフト値記憶部143172から、I番目のマクロブロックの符号化の途中のデータを図51のレジスタ143173へ設定する(ステップS605)。
ここで、マクロブロック復号化シフト値記憶部143172は、本発明(請求項2)におけるマクロブロック復号中間データ記憶手段を構成する。
またここで、マクロブロック復号化シフト値記憶部143172は、本発明(請求項12)における出力用多値ブロックラインデータ記憶手段を構成する。
図46のバッファ−142から、水平方向にI番目のマクロブロックのJブロックラインの符号データを図48−1に示されたように読み込む(ステップS606)。I番目のマクロブロックのJブロックライン目のサブブロックごとに順次復号化して行く(ステップS607)。
リスタートマーカーは検出されたか否かを判定する(ステップS608)。検出されたと判定されなかった場合(ステップS608のNo)、ステップS607に戻る。検出されたと判定された場合(ステップS608のYes)、図53のシフト値生成部のマクロブロック復号化シフト値記憶部143172へ、I番目のマクロブロックの復号化途中のシフト値を設定する(ステップS609)。
図46のマクロブロック先頭アドレス記憶部145は、図46の読み込みメモリアドレス生成部144からのI番目のマクロブロック先頭アドレスを受信し記憶する(ステップS610)。
水平方向のマクロブロックのカウンタ”I”をカウントUPする(ステップS611)。水平方向のマクロブロックを全て処理したか否かを判断する(ステップS612)。未だ処理を終了していないと判定された場合(ステップS612のNo)、ステップS604に戻る。終了したと判定された場合(ステップS612のYes)、垂直方向のマクロブロック内のサブブロックのカウンタ”J”をカウントUPする(ステップS613)。
垂直方向のマクロブロック内のサブブロックを全て処理したか否かを判断する(ステップS614)。未だ処理が終了していないと判定した場合(ステップS614のNo)、ステップS603に戻る。処理が終了したと判定された場合(ステップS614のYes)、1ページの復号化を終了したか否かを判定する(ステップS615)。1ページの複合化が終了していないと判定された場合(ステップS615のNo)、ステップS601に戻る。終了したと判定された場合、そのまま処理を終了する。
図49は、ページ復号化部における復号化処理部の詳細なブロック図である。ページ復号化部14の復号化処理部143のエントロピー復号化部1431は、メモリ4の符号データを順次読み込み、Y成分のエントロピー復号化処理を施し、Y逆量子化処理部1432へ量子化後のY成分の8*8画素のデータを転送し、U成分のエントロピー復号化処理を施し、U逆量子化処理部1434へ量子化後のU成分の8*8画素のデータを転送し、V成分のエントロピー復号化処理を施し、V逆量子化処理部1436へ量子化後のV成分の8*8画素のデータを転送する。また、リスタートマーカーを検出し、マクロブロックラインの終端を検出し、マクロブロック終端信号を生成する。
Y逆量子化処理部1432は、エントロピー復号化部1431から量子化後のY成分の8*8画素データを受信し、逆量子化し、Y成分の8*8画素のDCT係数を求め、YIDCT処理部1433へ転送する。
YIDCT処理部1433は、Y逆量子化処理部1432からY成分の8*8画素のDCT係数を受信し、IDCT(逆離散コサイン変換)を行い、現在処理中のラインのY成分の水平の8画素データを求め、YUV−>RGB変換部1438へ転送する。
U逆量子化処理部1434は、エントロピー復号化部1431から量子化後のU成分の8*8画素データを受信し、逆量子化し、U成分の8*8画素のDCT係数を求め、UIDCT処理部1435へ転送する。
UIDCT処理部1435は、U逆量子化処理部1434からU成分の8*8画素のDCT係数を受信し、IDCT(逆離散コサイン変換)を行い、現在処理中のラインのU成分の水平の8画素データを求め、YUV−>RGB変換部1438へ転送する。
V逆量子化処理部1436は、エントロピー復号化部1431から量子化後のV成分の8*8画素データを受信し、逆量子化し、V成分の8*8画素のDCT係数を求め、VIDCT処理部1437へ転送する。
VIDCT処理部1437は、V逆量子化処理部1436からV成分の8*8画素のDCT係数を受信し、IDCT(逆離散コサイン変換)を行い、現在処理中のラインのV成分の水平の8画素データを求め、YUV−>RGB変換部1438へ転送する。
YUV−>RGB変換処理部1438は、IDCT処理部1433、1435、1437からのY、U、Vの画素データをRGBへ変換する。
マクロブロックカウント部1439は、エントロピー復号化部1431からマクロブロックラインの終端信号を受信しカウントし、処理中のマクロブロック番号を生成する。また、水平方向のマクロブロック番号までカウントすると初期値へ戻る。
図50は、復号化処理部におけるエントロピー復号化部の詳細なブロック図である。ページ復号化部14の復号化処理部143のエントロピー復号化部1431の読み込み符号レジスタ14311は、図46のバッファ142の符号データを一時格納する。
シフター14312は、シフト値生成部14317で求めたシフト値により、可変長符号をシフトし、可変長符号の先頭をDC、AC値復号化部14314と14315、およびリスタート符号判定部14313へ転送する。
リスタートマーカー符号を判定するリスタート判定部14313は、シフター14312からの符号を、リスタートマーカーであるかを判定し、判定したマクロブロックライン終端信号を図46の読み込みメモリアドレス生成部144と図46のマクロブロック先頭アドレス記憶部145へ転送する。また、その時の符号長を消費符号長としてMUX14316へ転送する。
DC値復号化部14314は、シフター14312からの符号がDC値符号であれば、DCデータを復号化し、8*8DCTデータ生成部14318へ転送し、その時の符号長を消費符号長としてMUX14316へ転送する。
AC値復号化部14315は、シフター14312からの符号がAC値符号であれば、ACデータを復号化し、8*8DCTデータ生成部14318へ転送し、その時の符号長を消費符号長としてMUX14316へ転送する。
MUX14316は、DC、AC値復号化部14314、14315と、リスタート符号判定部14313から、消費した符号長を受信し、シフト値生成部14317へ転送する。
シフト値生成部14317は、MUX14316からの消費符号長から次の符号の先頭アドレスを求め、シフター14312を制御して、常に符号の先頭をDC、AC値復号化部14314、14315と、リスタート符号判定部14313へ供給するようにする。
8*8DCTデータ生成部14318は、DC、AC値復号化部14314、14315からのDC、AC値から、8*8のDCTデータを生成し、図49の逆量子化部1432、1434、1436へ転送する。
図51は、エントロピー復号化部におけるシフト値生成部の詳細なブロック図である。即ち、ページ復号化部14の復号化処理部143のエントロピー復号化部1431のシフト値生成部14317の詳細なブロック図である。
シフト値生成部14317のMUX143171は、通常は累積した1符号ワード内の次の符号の先頭アドレスを意味する図50のシフター14312のシフト値を求める為に、加算器143174の値を、レジスタ143173へ転送しているが、図47−1のステップS605の時は、マクロブロック復号化シフト値記憶部143172から、今から処理するマクロブロックのシフト値を読み込み、レジスタ143173へ転送し、図47−1のステップS609の時には、加算器143174で求めたシフト値を、マクロブロック復号化シフト値記憶部143172へ転送し、現在処理中のマクロブロックのシフト値を記憶させる。
マクロブロック復号化シフト値記憶部143172は、図47−1のステップS605の時は、マクロブロック復号化シフト値記憶部143172から、今から処理するマクロブロックのシフト値を読み込み、レジスタ143173へ転送し、図47−2のステップS609の時には、加算器143174で求めたシフト値を、マクロブロック復号化シフト値記憶部143172へ転送し、現在処理中のマクロブロックのシフト値を記憶させる。
レジスタ143173は、累積した1符号ワード内の次の符号の先頭アドレスである図50のシフター14312のシフト値を格納する。
加算器143174は、累積した1符号ワード内の次の符号の先頭アドレスである図50のシフター14312のシフト値を求める。
比較器143175は、符号のワードのBIT長と加算器143174で求めたシフト値を比較し次の符号ワードを要求するか否かを判断する。
減算器143176は、比較器143175の結果から、1ワードを超えていた場合、次の符号ワードを読み込む為に加算器143174のシフト値から1ワードのBIT長を減算し、MUX143171へ転送している。
レジスタ143177は、比較器143175の判定結果を一時記憶し、符号ワード要求信号を生成し、図46の読み込みメモリアドレス生成部144へ転送する。
ここで復号化時には、中間復号データ格納部を有し、図51のシフト値生成部14317のマクロブロック復号化シフト値記憶部143172のように、固定長ワードにまとめられた符号の復号化中のその符号の1ワード内の先頭アドレスを管理するシフト値をマクロブロック復号化シフト値記憶部143172に一時格納し、各マクロブロックごと継続して復号化する場合に一時待避させ、その符号の1ワード内の先頭アドレスを管理するシフト値を再度、図51のシフト値生成部14317に値を戻すことにより、可変長符号での復号化の切替えを実現している。
図52は、ページ復号化部における図46に示したマクロブロック先頭アドレス記憶部の詳細なブロック図である。マクロブロック先頭アドレス記憶部145のアドレス変換部1451は、図46の復号化処理部143からの現在処理中のマクロブロックの番号を受けとり、メモリ1453内の、そのマクロブロック番号のアドレスへ変換する。
ライト信号生成部1452は、図46の復号化処理部143からマクロブロックライン終端信号を受けとり、メモリ1453の書き込み信号を生成する。
メモリ1453は、各水平方向に連なるマクロブロックごとの図46の読み込みメモリアドレス生成部144からのページ符号メモリ領域42の各マクロブロックのマクロブロック先頭アドレスを格納する。
図53は、図51に示されたシフト値生成部におけるマクロブロック復号化シフト値記憶部の詳細なブロック図である。マクロブロック復号化シフト値記憶部143172のアドレス変換部1431721は、図46の復号化処理部143からの現在処理中のマクロブロックの番号を受けとりメモリ1431723の、そのマクロブロック番号のアドレスへ変換する。
ライト信号生成部1431722は、図46の復号化処理部143からマクロブロックライン終端信号を受けとりメモリ1431723の書き込み信号を生成する。
メモリ1431723は、各水平方向に連なるマクロブロックごとの図51のMUX143171から復号化途中の復号化途中のシフトデータを格納する。
(1.7.画像処理部)
図54は、実施の形態1による画像処理装置の画像処理部の機能的ブロック図である。画像処理部15のバッファ151は、ページ復号化部14からの画像データを一時格納する。
色補正処理部152は、バッファ151に格納された多値RGBデータに対して色補正処理を施し、多値CMYKデータへ変換する。
階調処理部153は、色補正処理部152から受信した階調処理後のデータを、2値、4値、16値データなどへ変換する。
PIXEL TO PLANE変換部154であり、階調処理部153で階調処理を施された2値、4値、16値データを、指定された版のデータのみPXELからPLANEへ変換し、ラインメモリI/F155へ転送する。
ラインメモリI/F155は、PIXEL TO PLANE変換部154によって変換された画像データを一時格納し、ラインメモリ20(図4)へ転送する。
ラインメモリアドレス生成部156は、ラインメモリ20のアドレスを生成する。
コントローラ157は、画像処理部15をコントロールする。
図55は、画像処理部による画像処理手順を説明するフローチャートである。バッファ151は、8ラインメモリ11から画像データを受け取る(ステップS701)。色補正処理部152は色補正処理を施しRGBからCMYKへ変換する(ステップS702)。階調処理部153は多値のCMYK画像に対して階調処理を施して処理後の画像へ変換する(ステップS703)。階調処理後のCMYK画像データを、指定されたプレーンのみ固定長にまとめ、ラインメモリ20へ書き込む(ステップS704)。全ての画像が処理されたか否かを判定する(ステップS705)。未だの場合(ステップS705のNo)、ステップS701に戻る。終了した場合(ステップS705のYes)、そのまま処理を終える。
(2.変形例1)
(2.1.変形例1による画像処理装置の概略構成)
図56−1は、変形例1による画像処理装置のハード構成図である。図56−2は、ページ符号メモリ領域におけるマクロブロック符号フォーマットの変形例1を示す模式図である。ここでは変形例1として、図7に示したページ符号メモリ領域42のマクロブロック414の水平方向の終端におけるリスタートマーカー452を有さない例である。図56中に示されているように、n*n個のサブブロック562から成るマクロブロック561においては、水平方向の終端においてリスタートマーカーを備えていないことによって、編集部1300、ページ復号化部1400が実施の形態1と異なる。
(2.2.編集部)
図57は、変形例1による編集部におけるページ符号化部の詳細なブロック図である。ここで、図57に示された変形例1による編集部13におけるページ符号化部13060は、図56に示したリスタートマーカーを有さないフォーマットを使用する場合におけるページ符号化部である。
ページ符号化部13060の8*8バッファ571は、サブブロックの8*8の画像を格納するバッファである。
RGB−>YUV変換部572は、JPEGの規格にもとづき、8*8画素のRGBをYUVへ変換し、Y成分をYDCT処理部573へ、U成分をUDCT処理部576へ、V成分をVDCT処理部579へ転送する。
YDCT処理部573は、Y成分をDCT(離散コサイン変換)を行い、Y量子化処理部574へ転送する。
Y量子化処理部574は、YDCT処理部573からのY成分のDCT処理を施した後のデータを受信し量子化し、Yエントロピー符号化部575へ転送する。
Yエントロピー符号化部575は、Y量子化処理部574からのY成分の量子化後のデータを受信し、ハフマン符号化方式で符号化し、符号フォーマット生成部582へ転送する。
UDCT処理部576は、U成分をDCT(離散コサイン変換)を行い、U量子化処理部577へ転送する。
U量子化処理部577は、UDCT処理部576からのU成分のDCT処理を施した後のデータを受信し量子化し、Uエントロピー符号化部578へ転送する。
Uエントロピー符号化部578は、U量子化処理部577からのU成分の量子化後のデータを受信し、ハフマン符号化方式で符号化し、符号フォーマット生成部582へ転送する。
VDCT処理部579は、V成分をDCT(離散コサイン変換)を行い、V量子化処理部580へ転送する。
V量子化処理部580は、VDCT処理部579からのV成分のDCT処理を施した後のデータを受信し量子化し、Vエントロピー符号化部581へ転送する。
Vエントロピー符号化部581は、V量子化処理部580からのV成分の量子化後の
データを受信し、ハフマン符号化方式で符号化し、符号フォーマット生成部582へ転送
する。
符号フォーマット生成部582は、エントロピー符号化部575、578、581からの符号データを受信し符号を形成する。
図58−1は、変形例1によるページ符号化部の処理手順を説明するフローチャートである。図58−2は、変形例1によるマクロブロックにおいてサブブロックを読み込み処理を施す順序を説明する図である。
8*8回転処理部1304から、8*8の編集処理後の画像を読み込む(ステップS801)。8*8画素の編集処理後の画像を符号化部にて符号化する(ステップS802)。1ブロックライン分処理されたか否かを判定する(ステップS803)。1ブロックライン分は図58−2の水平方向の矢印で示されている。
未だであると判定された場合(ステップS803のNo)、ステップS802に戻る。1ブロックライン分処理されたと判定された場合(ステップS803のYes)、m*mブロック(マクロブロック)の画像を処理したか否かを判定する(ステップS804)。まだ処理されていないと判定された場合(ステップS804のNo)、ステップS802に戻る。処理がすんだと判定された場合(ステップS804のYes)、そのまま処理を終了する。
(2.3.ページ復号化部)
図59は、変形例1による画像処理装置におけるページ復号化部の詳細なブロック図である。ページ復号化部1400のメモリコントローラI/F141は、読み込みメモリアドレス生成部144からのメモリ4のページ符号メモリ領域42のマクロブロックごとの符号を読み込みバッファ142へ転送し、メモリ4のページマクロブロック先頭アドレス格納領域43からマクロブロックごとの先頭アドレスを読み込みマクロブロック先頭アドレス記憶部145へ転送する為のメモリコントローラ3とのインタフェースの処理を施す。
バッファ142は、復号化処理部143へ転送する為の符号を一時格納する。
復号化処理部143は、メモリ4のページ符号メモリ領域42から符号を読み込み復号化し、サブブロック単位に画像処理部15へ転送する(図62に詳細なブロック図を示す)。
読み込みメモリアドレス生成部144は、メモリ4のページ符号メモリ領域42から読み込むメモリアドレスを生成する部であり、復号化処理部143から、次の符号ワードを要求する符号ワード要求信号と、1マクロブロックの水平方向の復号化が終了したことを示すマクロブロックライン終端信号を受信しマクロブロック先頭アドレス記憶部145からマクロブロックごとのメモリ4のページ符号メモリ領域42のマクロブロックの先頭アドレスを受け取ることにより、読み込むメモリアドレスを生成する。
マクロブロック先頭アドレス記憶部145は、メモリ4のページマクロブロック先頭アドレス格納領域43からマクロブロックごとの先頭アドレスを受信し記憶し、復号化処理部143から処理中のマクロブロック番号と、マクロブロックライン終端信号を受け取ることにより、読込みメモリアドレス生成部144からのそのマクロブロックの符号の途中の符号のメモリアドレスを受信し、記憶し、再度そのマクロブロックを復号化する時、そのマクロブロックの復号化途中の符号のメモリアドレスを読込みメモリアドレス生成部144へ転送する。
コントローラ146は、ページ復号化部1400を制御する。
図60−1および60−2は、変形例1による画像処理装置におけるページ復号化部の処理手順を説明するフローチャートである。図61−1は、変形例1による8ラインメモリフォーマットの一例を示す模式図である。図61−2は、変形例1によるマクロブロックを構成するサブブロックの復号化順序を説明する図である。
図60−1におけるステップS901〜907までは、図47−1におけるステップS601〜607までと同様であるので、説明を省略する。
I番目のマクロブロックの水平方向のサブブロックをカウントしていく(ステップS908)。そして、水平方向に全てのサブブロックを復号化したか否かを判定する(ステップS909)。検出されたと判定されなかった場合(ステップS909のNo)、ステップS907に戻る。検出されたと判定された場合(ステップS909のYes)、ステップS910へ移行する。
ステップS910〜ステップS916までは、図47−2におけるステップS609〜ステップS615までと同様であるので、説明を省略する。
図62は、変形例1による編集処理部における復号化処理部の詳細なブロック図である。
ページ復号化部1400の復号化処理部14300のエントロピー復号化部1431は、メモリ4の符号データを順次読み込み、Y成分のエントロピー復号化処理を施し、Y逆量子化処理部1432へ量子化後のY成分の8*8画素のデータを転送し、U成分のエントロピー復号化処理を施し、U逆量子化処理部1434へ量子化後のU成分の8*8画素のデータを転送し、V成分のエントロピー復号化処理を施し、V逆量子化処理部1436へ量子化後のV成分の8*8画素のデータを転送する。
Y逆量子化処理部1432は、エントロピー復号化部1431から量子化後のY成分の8*8画素データを受信し、逆量子化し、Y成分の8*8画素のDCT係数を求め、YIDCT処理部1433へ転送する。
YIDCT処理部1433は、Y逆量子化処理部1432からY成分の8*8画素のDCT係数を受信し、IDCT(逆離散コサイン変換)を行い、現在処理中のラインのY成分の水平の8画素データを求め、YUV−>RGB変換部1438へ転送する。
U逆量子化処理部1434は、エントロピー復号化部1431から量子化後のU成分の8*8画素データを受信し、逆量子化し、U成分の8*8画素のDCT係数を求め、UIDCT処理部1435へ転送する。
UIDCT処理部1435は、U逆量子化処理部1434からU成分の8*8画素のDCT係数を受信し、IDCT(逆離散コサイン変換)を行い、現在処理中のラインのU成分の水平の8画素データを求め、YUV−>RGB変換部1438へ転送する。
V逆量子化処理部1436は、エントロピー復号化部1431から量子化後のV成分の8*8画素データを受信し、逆量子化し、V成分の8*8画素のDCT係数を求め、VIDCT処理部1437へ転送する。
VIDCT処理部1437は、V逆量子化処理部1436からV成分の8*8画素のDCT係数を受信し、IDCT(逆離散コサイン変換)を行い、現在処理中のラインのV成分の水平の8画素データを求め、YUV−>RGB変換部1438へ転送する。
YUV−>RGB変換処理部1438は、IDCT処理部1433、1435、1437からのY、U、Vの画素データをRGBへ変換する。
マクロブロックカウント部1439は、エントロピー復号化部1431からマクロブロックラインの終端信号を受信しカウントし、処理中のマクロブロック番号を生成する。また、水平方向のマクロブロック番号までカウントすると初期値へ戻る。
マクロブロックライン終端判定部1440は、マクロブロックの水平方向のサブブロック数をカウントすることにより、マクロブロックラインの終端を検出し、マクロブロック終端信号を生成する。1つのマクロブロックのマクロブロックラインの終端を検出するとカウンタを初期値へ戻し、次のマクロブロックラインの終端を検出する。
図63は、変形例1による復号化処理部におけるエントロピー復号化部の詳細なブロック図である。ページ復号化部1444の復号化処理部14300のエントロピー復号化部143100の読み込み符号レジスタ14311は、図46のバッファ142の符号データを一時格納する。
シフト値生成部6301は、シフト値生成部14317で求めたシフト値により、可変長符号をシフトし、可変長符号の先頭をDC、AC値復号化部14314と14315、およびリスタート符号判定部14313へ転送する。
DC値復号化部14314は、シフター14312からの符号がDC値符号であれば、
DCデータを復号化し、8*8DCTデータ生成部14318へ転送し、その時の符号長
を消費符号長としてMUX6302へ転送する。
AC値復号化部14315は、シフター14312からの符号がAC値符号であれば、
ACデータを復号化し、8*8DCTデータ生成部14318へ転送し、その時の符号長
を消費符号長としてMUX6302へ転送する。
MUX6302は、DC、AC値復号化部14314、14315から、消費した符号長を受信し、シフト値生成部6301へ転送する。
シフト値生成部14317は、MUX6302からの消費符号長から次の符号の先頭アドレスを求め、シフター14312を制御して、常に符号の先頭をDC、AC値復号化部へ供給するようにする。
8*8DCTデータ生成部14318は、DC、AC値復号化部14314、1431
5からのDC、AC値から、8*8のDCTデータを生成し、図62の逆量子化処理部1432、1434、1436へ転送する。
以上はJPEGを中心に説明してきたが、他の可変長符号化方式も同様に考えることができる。
(3.実施の形態による画像処理装置を備えた複写機の例)
図64は、本発明の実施の形態による画像処理装置を備えた複写機の内部機構を説明する図である。
複写機1200の有する自動原稿送り部(以下ADFと略す)1001にある原稿台1002に、原稿束が原稿の画像面を上にして置かれる。そして、操作部上のスタートキーが押下されると、一番下の原稿から給送ローラ1003および給送ベルト1004によってコンタクトガラス1006上の所定の位置に給送される。読み取りユニット1050によってコンタクトガラス1006上の原稿の画像データを読み取り後、読み取りが終了した原稿は、給送ベルト1004および排送ローラ1005によって排出される。さらに、原稿セット検知1007にて原稿台1002に次の原稿が有ることを検知した場合、前原稿と同様にコンタクトガラス1006上に給送される。給送ローラ1003、給送ベルト1004および排送ローラ1005はモータによって駆動される。
第1トレイ1008あるいは第2トレイ1009に積載された記録媒体である転写紙は、各々第1給紙部1011あるいは第2給紙部1012によって給紙され、縦搬送ユニット1014によって感光体1015に当接する位置まで搬送される。読み取りユニット1050にて読み込まれた画像データは、書き込みユニット1057からのレーザによって感光体1015に書き込まれ、現像ユニット1027を通過することによってトナー像が形成される。そして、転写紙は感光体1015の回転と等速で搬送ベルト1016によって搬送されながら、感光体1015上のトナー像が転写される。その後、定着ユニット1017にて画像を定着させ、排紙ユニット1018によって後処理部のフィニシャ1100に排出される。
後処理部のフィニシャ1100は、本体の排紙ローラ1019によって搬送された転写紙を、通常排紙ローラ1102方向と、ステープル処理部方向に導くことができる。切り替え板1101を上に切り替えることにより、搬送ローラ1103を経由して通常排紙トレイ1104側に排紙することができる。また、切り替え板1101を下方向に切り替えることで、搬送ローラ1105、1107を経由して、ステープル台1108に搬送することができる。
ステープル台1108に積載された転写紙は、一枚排紙されるごとに紙揃え用のジョガー1109によって、紙端面が揃えられ、一部のコピー完了と共にステープラ1106によって綴じられる。ステープラ1106で綴じられた転写紙群は自重によって、ステープル完了排紙トレイ1110に収納される。
一方、通常の排紙トレイ1108は前後に移動可能な排紙トレイである。前後に移動可能な排紙トレイ部1108は、原稿ごと、あるいは、画像メモリ4によってソーティングされたコピー部ごとに、前後に移動し、簡易的に排出されてくるコピー紙を仕分けるものである。
転写紙の両面に画像を作像する場合は、各給紙トレイ1008、1009から給紙され作像された転写紙を排紙トレイ側に導かないで、経路切り替えのための分岐爪1112を上側にセットすることで、一旦両面給紙ユニット1111にストックする。その後、両面給紙ユニット1111にストックされた転写紙は再び感光体1015に作像されたトナー画像を転写するために、両面給紙ユニット1111から再給紙され、経路切り替えのための分岐爪1112を下側にセットし、排紙トレイ1104に導く。この様に転写紙の両面に画像を作成する場合に両面給紙ユニット1111は使用される。
感光体1015、搬送ベルト1016、定着ユニット1017、排紙ユニット1018および現像ユニット1027は、メインモータによって駆動され、各給紙部1011、1012はメインモータの駆動を各々給紙クラッチによって伝達駆動される。縦搬送ユニット1014はメインモータの駆動を中間クラッチによって伝達駆動される。読み取りユニット(スキャナ)1050は、原稿を載置するコンタクトガラス1006と光学走査系で構成されており、光学走査系は、露光ランプ1051、第1ミラー1052、レンズ1053、CCDイメージセンサ1054等々で構成されている。
露光ランプ1051および第1ミラー1052は、図示しない第1キャリッジ上に固定され、第2ミラー1055および第3ミラー1056は、図示しない第2キャリッジ上に固定されている。原稿像を読み取る時には、光路長が変わらないように、第1キャリッジと第2キャリッジとが2対1の相対速度で機械的に走査される。この光学走査系は、図示しないスキャナ駆動モータにて駆動される。原稿画像は、CCDイメージセンサ1054によって読み取られ、電気信号(アナログ画像信号)に変換され、そしてデジタルデータ(画像データ)に変換される。画像データには更に数種の画像処理が施される。
レンズ1053およびCCDイメージセンサ1054を図64において左右方向に移動させることにより、画像倍率が変わる。即ち、指定された倍率に対応してレンズ1053およびCCDイメージセンサ1054の左右方向に位置が設定される。書き込みユニット1057は、レーザ出力ユニット1058、結像レンズ1059およびミラー1060で構成され、レーザ出力ユニット1058の内部には、レーザ光源であるレーザダイオードおよびモータによって高速で定速回転する回転多面鏡(ポリゴンミラー)が備わっている。レーザ出力ユニット1058より照射されるレーザ光は、定速回転するポリゴンミラーで偏光され、結像レンズ1059を通り、ミラー1060で折り返され、感光体面上に集光結像する。
偏光されたレーザ光は、感光体1015が回転する方向と直行する方向(主走査方向)に露光走査され、後述する画像処理装置のセレクタ1064より出力された画像信号のライン単位の記録を行う。感光体1015の回転速度と記録密度に対応した所定の周期で主走査を繰り返すことによって、感光体面上に画像(静電潜像)が形成される。上述のように、書き込みユニット1057から出力されるレーザ光が、画像作像系の感光体1015に照射される。図示しないが感光体1015の近傍の、レーザビームを照射される位置に、主走査同期信号を発生するビームセンサが配置されている。この主走査同期信号をもとに主走査方向の画像記録開始タイミングの制御、および、後述する画像信号の入出力を行うための制御信号の生成を行う。
(4.ハードウェア構成および記録媒体)
上述した画像処理装置は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現できる。コンピュータは、CPU(Central Processing Unit)によって装置全体が制御されている。CPUには、バスを介してROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスクドライブ(HDD:Hard Disk Drive)、グラフィック処理装置、入力インタフェースが接続されている。ROM、およびRAMには、CPUに実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が格納される。またRAMには、CPUによる処理に必要な各種データが格納される。HDDには、OS、各種ドライバプログラム、アプリケーションプログラム、検出されたデータなどが格納される。
グラフィック処理装置には、操作パネルが接続される。入力インタフェースには、操作パネルのキーボードが接続される。以上のような公知技術であるハードウェア構成によって、本実施の形態の処理機能を実現することができる。本実施の形態をコンピュータ上で実現するには、ドライバプログラムを実装する。
尚、本実施形態の画像処理装置で実行されるデータ同期プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フロッピー(R)ディスク、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施形態の画像処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供および配布するように構成しても良い。
(5.効果)
本発明は、上記に詳細に説明したように、符号化部に同一の水平ライン上のマクロブロックごとの符号の先頭アドレスを記憶するマクロブロック先頭アドレス記憶部と、同一の水平ライン上のマクロブロックごとの中間符号データを記憶するマクロブロック中間符号記憶部を設け、スキャナからの画像を平滑フィルタ処理を施して、1ブロックラインのラインメモリへ格納し、その後、同一の水平ライン上のマクロブロックごと並列に符号化し、メインメモリへ格納することによって、マクロブロックの垂直方向の高さのバンドメモリを必要せず、かつ、マクロブロック単位の符号データに対して編集部によって、画像合成処理と回転処理を施し、再度、符号化しメモリへ格納し、その後、復号化装置により復号化する際には、同一の水平ライン上のマクロブロックごとの符号の先頭アドレスを記憶するマクロブロック先頭アドレス記憶部と、同一の水平ライン上のマクロブロックごとのマクロブロック中間符号記憶部を設け、同一の水平ライン上のマクロブロック単位の符号を並列に復号化することにより、マクロブロックの垂直方向の高さのバンドメモリを必要せずに画像形成を実現することができる。また、高速編集処理を可能にし、必要なメモリ量を低減することを可能にする。
また、本発明は多値の画像をマクロブロック単位に複数のマクロブロックラインを符号化した符号を一時、入出力用符号メモリ領域へ一時的に格納しその後、HDD装置へ書き込む為に、HDDへの転送用のメモリが1バンドの符号領域ですむ為にHDD装置へのメモリ転送によるメモリ増加を少なくすることができる。
また、復号化時においても、復号化部に同一の水平ライン上のマクロブロックごとの符号の先頭アドレスを記憶するマクロブロック先頭アドレス記憶部と、同一の水平ライン上のマクロブロックごとの中間復号データを記憶するマクロブロック復号シフト値記憶部を設け、同一の水平ライン上のマクロブロックごと並列に復号化し、少なくともサブブロック単位に画像処理装置へ転送する為にマクロブロックの垂直方向の高さのバンドメモリを必要としないので、簡易な構成により必要なメモリ量を低減することができる。
また、本発明は多値の画像をマクロブロック単位に複数のマクロブロックラインを符号化した符号を、入出力用符号メモリ領域へ一時的に格納しその後、編集装置にてスタンプ画像などとの合成とマクロブロック単位での回転処理を施し、ページ符号メモリ領域にページ単位に格納することにより、画像の回転操作によるメモリの増加を少なくすることができる。
また、本発明は多値の画像をマクロブロック単位に複数のマクロブロックラインを符号化した符号を一時、入出力用符号メモリ領域へ一時的に格納しその後、HDD装置へ書き込む構成とした場合、HDDへの転送用のメモリが1バンドの符号領域ですむ為、HDD装置へのメモリ転送によるメモリ増加を少なくすることができる。