(57)【要約】【課題】画像の回転を行う際の符号化にあたり、画質の劣化を回避しつつ、符号化処理を連続して小メモリで行うことが可能な処理技術を提供する。【解決手段】画像データを可変長符号化する画像処理装置であって、前記画像データの処理を指示するＣＰＵ１７０１と、ＣＰＵからの指示に基づいて、画像データを複数のブロックに分割し、ブロックごとの可変長符号化データである符号化ブロックを生成するゲートアレイ１７０４と、を備え、ゲートアレイ１７０４は、前記符号化ブロックの先頭アドレスを管理する管理手段と、前記符号化ブロックの生成が完了するごとに、内部を初期化する初期化手段とを備えることを特徴とする。【選択図】  図２
2004274553.tif 000002
【特許請求の範囲】
【請求項１】
画像データを可変長符号化する画像処理装置であって、
前記画像データの処理を指示する指示手段と、
前記指示手段からの指示に基づいて、画像データを複数のブロックに分割し、ブロックごとの可変長符号化データである符号化ブロックを生成する符号化手段と、を備え、
前記符号化手段は、
前記符号化ブロックの先頭アドレスを管理する管理手段と、
前記符号化ブロックの生成が完了するごとに、内部を初期化する初期化手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記符号化手段は、
前記画像データを構成するすべてのブロックについての可変長符号化が完了した場合に、完了したことを示す信号を前記指示手段に送信する送信手段を更に備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
ブロックの画像データを可変長符号化した符号化ブロックを複数備える可変長符号化データを復号する画像処理装置であって、
前記可変長符号化データの復号を指示する指示手段と、
前記指示手段からの指示に基づいて、前記可変長符号化データを復号する復号化手段と、を備え、
前記復号化手段は、
前記符号化ブロックを復号する順序を、該符号化ブロックの先頭アドレスにより管理する管理手段と、
前記管理手段により管理された順序に従い、前記符号化ブロックを復号し、該符号化ブロックの復号が完了するごとに、内部を初期化する初期化手段と
を備えることを特徴とする画像処理装置。
【請求項４】
前記復号化手段は、
前記可変長符号化データを構成するすべてのブロックについての復号が完了した場合に、完了したことを示す信号を前記指示手段に送信する送信手段を更に備えることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
画像データを可変長符号化する画像処理方法であって、
前記画像データの処理を指示する指示工程と、
前記指示工程からの指示に基づいて、画像データを複数のブロックに分割し、ブロックごとの可変長符号化データである符号化ブロックを生成する符号化工程と、を備え、
前記符号化工程は、
前記符号化ブロックの先頭アドレスを管理する管理工程と、
前記符号化ブロックの生成が完了するごとに、内部を初期化する初期化工程と
を備えることを特徴とする画像処理方法。
【請求項６】
前記符号化工程は、
前記画像データを構成するすべてのブロックについての可変長符号化が完了した場合に、完了したことを示す信号を前記指示工程に送信する送信工程を更に備えることを特徴とする請求項５に記載の画像処理方法。
【請求項７】
ブロックの画像データを可変長符号化した符号化ブロックを複数備える可変長符号化データを復号する画像処理方法であって、
前記可変長符号化データの復号を指示する指示工程と、
前記指示工程からの指示に基づいて、前記可変長符号化データを復号する復号化工程と、を備え、
前記復号化工程は、
前記符号化ブロックを復号する順序を、該符号化ブロックの先頭アドレスにより管理する管理工程と、
前記管理工程により管理された順序に従い、前記符号化ブロックを復号し、該符号化ブロックの復号が完了するごとに、内部を初期化する初期化工程と
を更に備えることを特徴とする画像処理方法。
【請求項８】
前記復号化工程は、
前記可変長符号化データを構成するすべてのブロックについての復号が完了した場合に、完了したことを示す信号を前記指示工程に送信する送信工程を更に備えることを特徴とする請求項７に記載の画像処理方法。
【請求項９】
請求項５乃至８のいずれか１つに記載の画像処理方法をコンピュータによって実現させるための制御プログラム。
【請求項１０】
請求項５乃至８のいずれか１つに記載の画像処理方法をコンピュータによって実現させるための制御プログラムを格納した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像データの符号化処理ならびに符号化データの復号化処理に関するものである。
【０００２】
【従来の技術】
従来より白黒２値画像の符号化方式として、画像をラスタ単位に符号化する符号化方式が一般的に知られている。例えば、ファクシミリ装置などにおいては、ＭＨ、ＭＲ、ＭＭＲ方式などのラスタ単位の符号化方式が用いられており、白黒の画素の続く長さ（ランレングス）に注目して符号化を行っている。
【０００３】
このような符号化方式をとる画像形成装置においては、取り込まれた画像を回転させるにあたり、従来より、符号化画像を一旦原画像に復号してから回転させ再度符号化するか、あるいは符号化の前に原画像を回転させたうえで符号化する方法が採られてきた。
【０００４】
しかしながら、かかる方法により画像を回転させようとした場合、画像を回転させるための大容量のメモリが必要となってくる。そこで、画像を回転させる際に用いるメモリを節約するために、画像を小ブロック単位で読み出し、ブロック符号化し、復号後の画像が所望の回転状態になるような順序で該各符号化ブロックを復号化していくことで画像を回転させるという方法が提案された（例えば、特許文献１参照。）。
【０００５】
そして、このような画像回転方法は、固定長符号化を用いて実現する場合と可変長符号化を用いて実現する場合とがある。固定長符号化は、ブロック単位の符号にランダムにアクセスすることができるため、画像回転にあたり符号化ブロックの並べ替えが容易であるというメリットがある一方で、同じ圧縮率の場合には可変長符号化に比べ、画像劣化が目立ちやすいというデメリットがある。このため、一般には、画質を重視して、可変長符号化を選択することが多い。
【０００６】
【特許文献１】
特開平０９−０７４４７４号公報
【０００７】
【発明が解決しようとする課題】
しかしながら、可変長符号化の場合、上述したように画質劣化はないものの、画像の回転を行うべくブロックの順番を変えてアクセスするには、ブロック符号の先頭アドレスを別に記憶しておくことが必要となってくる。そして、このデータ量は、ブロック数×アドレスビット数／８バイトで計算され、画像が大きくなるにつれて符号化／復号化回路内のレジスタに記憶しておくには無視できない量となってくるという問題がある。
【０００８】
また、ブロック単位で処理するためには、符号化／復号化処理をブロック単位で独立して行われなければならず、ブロック単位の符号化／復号化処理のはじめには必ず符号化／復号化回路内のメモリ等の初期化が必要となってくる。このため、従来はソフト的処理を介してかかる初期化に対応してきたが、その場合、符号化／復号化回路において符号化／復号化処理を連続して行うことができず、処理効率が悪いという問題があった。
【０００９】
本発明は、上記の課題に鑑みてなされたもので、画像の回転を行う際の画像の符号化および復号化において、画質の劣化を回避しつつ、連続して符号化または復号化処理を行うことができ、かつ、かかる処理を小メモリで実現することが可能な処理技術を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記の目的を達成するために本発明に係る画像処理装置は以下のような構成を備える。即ち、
画像データを可変長符号化する画像処理装置であって、
前記画像データの処理を指示する指示手段と、
前記指示手段からの指示に基づいて、画像データを複数のブロックに分割し、ブロックごとの可変長符号化データである符号化ブロックを生成する符号化手段と、を備え、
前記符号化手段は、
前記符号化ブロックの先頭アドレスを管理する管理手段と、
前記符号化ブロックの生成が完了するごとに、内部を初期化する初期化手段とを備える。
【００１１】
また、上記の目的を達成するために本発明に係る画像処理装置は以下のような構成を備える。即ち、
ブロックの画像データを可変長符号化した符号化ブロックを複数備える可変長符号化データを復号する画像処理装置であって、
前記可変長符号化データの復号を指示する指示手段と、
前記指示手段からの指示に基づいて、前記可変長符号化データを復号する復号化手段と、を備え、
前記復号化手段は、
前記符号化ブロックを復号する順序を、該符号化ブロックの先頭アドレスにより管理する管理手段と、
前記管理手段により管理された順序に従い、前記符号化ブロックを復号し、該符号化ブロックの復号が完了するごとに、内部を初期化する初期化手段とを備える。
【００１２】
【発明の実施の形態】
はじめに本発明の実施形態にかかる画像処理装置の概略について説明する。本発明の実施形態にかかる画像処理装置は、画像データを可変長符号化するにあたり、小メモリ化を実現すべく、画像データを小ブロックに分割したうえで符号化処理をする機能を有している。また、従来は、画像の回転を行うべく（つまり、符号化ブロックの順番を変えてアクセスすることを実現すべく）、符号化ブロックの先頭アドレスを符号化／復号化回路内のレジスタに記憶するのに対し、本画像処理装置においては符号化処理を行う符号化／復号化回路において管理することで、容量の大きい画像に対しても対応することが可能となっている。
【００１３】
さらに、従来、分割された各ブロックをＪＢＩＧ回路で符号化処理するにあたっては、まず、ＣＰＵはブロック単位でＪＢＩＧ回路に符号化指示を出力し、ＪＢＩＧ回路では当該指示を受けブロック単位で符号化処理を行った後、ＩＮＴ信号（割り込み信号）を発生させていた。その後ＣＰＵでは当該割り込み信号を受け、ＪＢＩＧ回路の初期化をしていた。そして、画像処理装置ではかかる処理を各ブロックごとに毎回行っていた。つまり、従来は符号化処理を行うにあたり各ブロックごとにソフト的な処理を介在させていた。これに対し、本発明の実施形態にかかる画像処理装置によれば、ＪＢＩＧ回路においてブロックごとの符号化処理の終了を判定し、自ら初期化をする機能と、画像データを構成するすべてのブロックについて符号化処理を行ったか否かの判定をする機能とを備えているため、ＣＰＵからＪＢＩＧ回路に対しては画像データ単位で符号化指示をし、ＪＢＩＧ回路では画像データを構成するすべてのブロックについて符号化処理が完了した後に、ＣＰＵに対して画像データの符号化完了の指示を送ることが可能となり、ソフト的な処理を介在させずに、ＪＢＩＧ回路において複数のブロックを連続的に符号化処理することが可能となる。
【００１４】
同様に、本発明の実施形態にかかる画像処理装置は、符号化データの復号においても、小メモリ化を実現すべく、符号化データをブロック単位で読み出し、復号化処理する機能を有している。このとき、上記ＪＢＩＧ回路により記憶された符号化ブロックの先頭アドレスを参照しながら、復号後の画像が所望の回転状態になるような順序で該各符号化ブロックを読み出すことで、所望の回転が実現できる。さらに、ＪＢＩＧ回路において符号化ブロックごとの復号処理の終了を判定し、自ら初期化をする機能と、符号化データを構成するすべての符号化ブロックについて復号化処理を行ったか否かの判定をする機能とを備えているため、ＣＰＵからＪＢＩＧ回路に対しては符号化データ単位で復号化指示をし、ＪＢＩＧ回路では符号化データを構成するすべての符号化ブロックについて復号化処理が完了した後に、ＣＰＵに対して符号化データの復号化完了の指示を送ることが可能となり、ソフト的な処理を介在させずに、ＪＢＩＧ回路において複数の符号化ブロックを連続的に復号化処理することが可能となる。以下に実施形態の詳細を説明する。
【００１５】
［レーザビームプリンタの概略説明］
本発明の第１の実施形態にかかる画像処理装置の構成を説明する前に、当該画像処理装置が利用される好適な一例であるレーザビームプリンタの構成について図１〜図３を参照しながら説明することとする。
【００１６】
図１は本発明の実施形態にかかる画像処理装置を備えるレーザビームプリンタ（ＬＢＰ）の全体のハードウェア構成を示す図である。
【００１７】
図１において、１５００はＬＢＰ本体であり、外部に接続されているホストコンピュータから供給される印刷情報（文字コード等）やフォーム情報あるいはマクロ命令等を入力して記憶するとともに、それらの情報に従って対応する文字パターンやフォームパターン等を作成し、記録媒体である記録紙等に像を形成する。
【００１８】
１５０１は操作のためのスイッチおよびＬＥＤ表示器等が配されている操作パネル、１０００はＬＢＰ本体１５００全体の制御およびホストコンピュータから供給される文字情報等を解析するプリンタ制御ユニットである（本発明の画像処理装置は、本実施形態ではプリンタ制御ユニットとして具体的に実現されうる）。このプリンタ制御ユニット１０００は、主に文字情報を対応する文字パターンのビデオ信号に変換してレーザドライバ１５０２に出力する。
【００１９】
レーザドライバ１５０２は半導体レ−ザ１５０３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ１５０３から発射されるレーザ光１５０４についてオン・オフの切り換えをする。レーザ光１５０４は回転多面鏡１５０５で左右方向に振らされて静電ドラム１５０６上を走査露光する。これにより、静電ドラム１５０６上には文字パターンの静電潜像が形成されることになる。この潜像は、静電ドラム１５０６周囲に配設された現像ユニット１５０７により現像された後、記録紙に転写される。この記録紙にはカットシートを用い、カットシート記録紙はＬＢＰ１５００に装着した用紙カセット１５０８に収納され、給紙ローラ１５０９および搬送ローラ１５１０と搬送ローラ１５１１とにより、装置内に取り込まれて、静電ドラム１５０６に供給される。
【００２０】
また、ＬＢＰ本体１５００には、図示しないカードスロットを少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なる制御カード（エミュレーションカード）を接続できるように構成されている。
【００２１】
図２は、図１に示したレーザビームプリンタの制御機能を説明するための機能ブロック図である。
【００２２】
図２において、１０００は上記プリンタ制御ユニットの機能ブロックであり、１７００は記録信号を入力するインタフェース、１７０１はＣＰＵ、１７０２はＣＰＵ１７０１が実行する制御プログラムやホスト印刷情報等を格納するＲＯＭ、１７０３はＤＲＡＭで、各種データ（上記記録信号やヘッドに供給される記録データ等）を保存しておく。１７０４は記録ヘッド１７０８に対する出力データの供給制御を行うゲートアレイ（Ｇ．Ａ）で、インタフェース１７００、ＣＰＵ１７０１、ＤＲＡＭ１７０３間のデータの転送制御も行う。１７１０は前記記録ヘッド１７０８を搬送するためのキャリアモータ、１７０９は記録用紙搬送のための搬送モータ、１７０５は前記記録ヘッドを駆動するヘッドドライバ、１７０６は前記搬送モータ１７０９を駆動するモータドライバ、１７０７は前記キャリアモータ１７１０を駆動するモータドライバである。
【００２３】
このように構成された上記レーザビームプリンタにおいて、インタフェース１７００を介して後述するホストコンピュータ３０００より入力情報が入力されると、ゲートアレイ１７０４とＣＰＵ１７０１との間で入力情報がプリント用の出力情報に変換される。そして、モータドライバ１７０６、１７０７が駆動されるとともに、ヘッドドライバ１７０５に送られた出力情報に従って記録ヘッドが駆動され印字が実行される。
【００２４】
なお、ＣＰＵ１７０１はインタフェース１７００を介して後述するホストコンピュータ３０００との通信処理が可能となっており、ＤＲＡＭ１７０３に関するメモリ情報および資源データ等やＲＯＭ１７０２内のホスト印刷情報を後述するホストコンピュータ３０００に通知可能に構成されている。
【００２５】
なお、ゲートアレイ１７０４内にはスムージング処理用の回路及び画像保存用のメモリが内蔵されていてもよいし、スムージング処理用の回路が内蔵され、メモリが外付けされていても構わない。
【００２６】
図３は、図１に示したレーザビームプリンタを制御するために必要なハードウェアの構成、ならびにレーザビームプリンタに接続されるホストコンピュータ３０００を制御するために必要なハードウェアの構成を示す図である。なお、引き続きレーザビームプリンタ（図１）を例にして説明するが、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ等のネットワークを介して処理が行われるシステムであっても本発明を適用できることは言うまでもない。
【００２７】
図３において、３０００はホストコンピュータで、ＲＯＭ３のプログラムＲＯＭに記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備え、システムバス４に接続される各デバイスをＣＰＵ１が総括的に制御する。
【００２８】
また、このＲＯＭ３のプログラムＲＯＭには、ＣＰＵ１の制御プログラム等を記憶し、ＲＯＭ３のフォントＲＯＭには上記文書処理の際に使用するフォントデ−タ等を記憶する。２はＲＡＭで、ＣＰＵ１の主メモリ、ワークエリア等として機能する。５はキーボードコントローラ（ＫＢＣ）で、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。６はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。７はディスクコントローラ（ＤＫＣ）で、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等を記憶するハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。８はプリンタコントローラ（ＰＲＴＣ）で、所定の双方向性インタフェース（インタフェース）２１を介してレーザビームプリンタ１５００に接続されて、レーザビームプリンタ１５００との通信制御処理を実行する。なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。
【００２９】
レーザビームプリンタ１５００において、１０００は上記プリンタ制御ユニットのハードウェア構成を示すもので、説明の便宜上、図２の機能ブロック図に対応するハードウェアには同一の番号を付している。
【００３０】
１７０１はプリンタのＣＰＵで、ＲＯＭ１７０２のプログラムＲＯＭに記憶された制御プログラム等或いは外部メモリ１４に記憶された制御プログラム等に基づいてシステムバス１５に接続される各種のデバイスとのアクセスを総括的に制御し、印刷部インタフェース１６を介して接続される印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。
【００３１】
また、このＲＯＭ１７０２のプログラムＲＯＭには、ＣＰＵ１７０１の制御プログラム等を記憶する。ＲＯＭ１７０２のフォントＲＯＭには上記出力情報を生成する際に使用するフォントデ−タ等を記憶し、ＲＯＭ１３のデ−タＲＯＭにはハードディスク等の外部メモリ１４が無いプリンタの場合にホストコンピュ−タ上で利用される情報等を記憶している。
【００３２】
ＣＰＵ１７０１は入力部１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知可能に構成されている。１９はＣＰＵ１７０１の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカ−ド等の外部メモリ１４は、ディスクコントローラ（ＤＫＣ）２０によりアクセスを制御される。外部メモリ１４は、オプションとして接続され、フォントデ−タ、エミュレ−ションプログラム、フォ−ムデ−タ等を記憶する。また、１８は前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００３３】
また、前述した外部メモリは１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていても良い。さらに、ＮＶＲＡＭ（不図示）を有し、操作パネル１５０１からのプリンタモード設定情報を記憶するようにしても良い。
【００３４】
さらに、システムバス１５には上述したＤＲＡＭ１７０３を有するゲートアレイ（Ｇ．Ａ．）１７０４が接続され、ＣＰＵ１７０１との間でデータの転送制御を行うことが可能となっている。
【００３５】
［画像処理装置の説明（共通）］
図４は、図２または図３に示した画像処理装置（プリンタ制御ユニット）を構成するゲートアレイ１７０４の詳細を説明するためのブロック図である。図４において、４００１はＣＰＵ１７０１と接続するためのＣＰＵインタフェース、４００２は、ＤＲＡＭ１７０３にアクセスするためのＤＲＡＭインターフェースである。ＣＰＵ１７０１は、このゲートアレイ１７０４を介してＤＲＡＭ１７０３にアクセスすることができる（本実施形態でＤＲＡＭ１７０３にアクセス可能なデバイスは、ＪＢＩＧ回路４００４、４００５、ＣＰＵ１７０１、回転器４００３である）。４００３は画像を回転するための回転器である。本実施形態では、ＪＢＩＧ回路２（４００５）と直接接続することにより、効率よく、符号化データを伸張しながら回転することが可能となる。４００４、４００５は符号器であり、本実施形態では、ＪＢＩＧ圧縮回路を使用している。なお、４００４と４００５は全く同一のものであり、本実施形態では４００４を圧縮用として、４００５を伸張用として使用している。４００６は、インターフェース１７００に接続するための外部インターフェースであり、本実施形態では、セントロ、ＵＳＢ、パネルに接続することができる。
【００３６】
［画像処理装置の説明（符号化）］
図５は、図４に示すゲートアレイ１７０４を構成するＪＢＩＧ回路４００４、４００５の詳細を示すブロック図である。
【００３７】
図５において、５００１はＣＰＵインターフェースであり、図４に示したＣＰＵインターフェース４００１を介してＣＰＵ１７０１に接続される。ＣＰＵ１７０１より、ＪＢＩＧ回路４００４、４００５内の設定を行う。５００２はメモリインターフェースであり、図４に示したＤＲＡＭインターフェース４００２を介してＤＲＡＭ１７０３にアクセスする。５００９はコンテキスト＆算術符号化／復号化部であり、符号化／復号化処理を行うメイン部分である。５００３は制御部であり、ＣＰＵ１７０１から符号化の設定がなされる。この制御部が符号化処理および符号化データをメモリに書き込む処理、ならびにＣＰＵへの割り込み信号（ＩＮＴ信号）の生成、制御を行っている。５００４はソースアドレス制御部であり、画像データをＤＲＡＭ１７０３から読み込むためのアドレスを制御する。ブロック単位で符号化を行う場合には、このソースアドレス制御部５００４でアドレスポインタを制御して、画像データをブロック単位に分割してコンテキスト生成算術符号化／復号化部５００９（以下、単に符号化部５００９）に画像を入力する。このソースアドレス制御部５００４は制御部５００３から制御信号を受け、それに応じた制御を行っている。
【００３８】
５００５はディスティネーションアドレス制御部であり、上記符号化したデータをＤＲＡＭ１７０３に記録する際のアドレスを制御するブロックである。５００６は、ブロック先頭アドレステーブル生成部であり、ディスティネーションアドレス制御部５００５からアドレス情報と制御部５００３からエンコード終了信号を受け取り、これをもとに各ブロックの先頭アドレステーブルを生成する。エンコード終了信号発生時のディスティネーションアドレスが次ブロックを符号化した格納先の先頭アドレスとなる。
【００３９】
図６は、図５の制御部５００３の詳細を示す図である。６００２はブロック数指定レジスタで、いくつのブロックに分割するかを指定するレジスタである。６００３は、ブロック先頭アドレステーブル生成部５００６により生成されたブロック先頭アドレステーブルをＤＲＡＭ１７０３に記録するアドレスを設定するレジスタである。６００４は画像幅を設定するレジスタである。６００１はＩＮＴ信号（割り込み信号）発生部であり、符号化終了信号を受けＩＮＴ信号を発生する。
【００４０】
６００５は符号化部５００９のシーケンスを制御するブロックであり、ブロック数指定レジスタ６００２で指定されたブロック数を符号化しているかどうかを判断して、符号化終了信号を受けたときに次のブロックの処理をするかどうかを判定し、指定されたブロック数の処理を終えていない場合は、符号化部５００９の初期化を行い、ＩＮＴ信号発生部６００１にＩＮＴ信号をマスクする旨を伝達する。
【００４１】
図９は本発明の実施形態にかかる画像処理装置におけるブロック符号化の処理の流れを示すフローチャートである。まず始めに、ユーザが初期化指示をすることで、ゲートアレイ１７０４ではＣＰＵ１７０１からの指令に基づきシーケンス制御部６００５内部のシーケンスクリアレジスタをセットし、ＪＢＩＧ回路内部の初期化を行う（ステップＳ９００１）。これには符号化部５００９内部の学習メモリの初期化が含まれており、このメモリ初期化は符号化前には必ず必要な動作である。
【００４２】
ユーザがブロック処理を指示した場合には、制御レジスタにブロック処理フラグがセットされる（ステップＳ９００２）。一方、ブロック処理を行わず、通常の符号化を行う場合は、このレジスタの設定は行わない。
【００４３】
次に、ユーザが入力した各種設定に基づき、ソースアドレス、ディスティネーションアドレス、ブロック先頭アドレステーブルアドレス、画像幅、ブロック数を設定する（ステップＳ９００３）。そして、符号化開始指示により、シーケンススタートレジスタをキックして符号化処理をスタートする（ステップＳ９００４）。
【００４４】
ＪＢＩＧ回路内部では、ソースアドレスを制御してブロック単位にソースデータをメモリから読み込み符号化処理を行う（ステップＳ９００５）。ＪＢＩＧ回路内部の符号化終了信号が来たら、ブロック数レジスタと今まで符号化処理したブロック数とを比較し（ステップＳ９００６）、まだ所定のブロック数の符号化が終わっていない場合は、ステップＳ９００７に進みＩＮＴ信号発生部でＩＮＴ信号をマスクし、制御部５００３でシーケンスクリア信号を発生させ、ＪＢＩＧ回路内部の初期化を行う。そして、ステップＳ９００８でブロックカウント数をインクリメントし、ステップＳ９００５に戻る。
【００４５】
ステップＳ９００６でブロック数レジスタと今まで符号化処理したブロック数とが等しくなっているならば、ステップＳ９００９に進みＩＮＴ信号発生部６００１でＩＮＴ信号を発生させ終了する。
【００４６】
このように、ＣＰＵでは、ステップＳ９００４で符号化処理をスタートさせた後、ステップＳ９００１０でＩＮＴ信号が来るまで待つこととなる。つまり、従来のようにソフト処理を介在させて初期化をするのではなく、回路的に自動的に初期化を行うことで、このような連続的な符号化処理が可能となっている。
【００４７】
図１０は、ゲートアレイ１７０４において、ブロック先頭アドレスを管理しながら符号化処理を行う場合の処理の流れを示すフローチャートである。ステップＳ１０００１で符号化処理が開始されると、符号化部５００９内部の符号化終了信号が来た直後のディスティネーションアドレスをブロック先頭アドレステーブル生成部内のＦＩＦＯに書き込む（ステップＳ１０００２）。ステップＳ１０００３で、ブロック数レジスタと今まで符号化処理したブロック数とを比較し、まだ所定のブロック数の符号化が終わっていない場合は、ステップＳ１０００７へ進み、ブロック先頭アドレステーブルＦＩＦＯのｆｕｌｌフラグ信号が立っているかどうか判定をする。ＦＩＦＯがｆｕｌｌ状態ならばブロック先頭アドレステーブルＦＩＦＯの中身をメモリに書き込む（ステップＳ１０００８）。ｆｕｌｌ状態でなければ、ステップＳ１０００２に戻る。本実施形態では、ＦＩＦＯの段数は８段であり、ＤＲＡＭ１７０３にバースト転送している。ステップＳ１０００９でメモリにブロック先頭アドレステーブルＦＩＦＯの中身を転送した後、ブロック先頭アドレステーブルＦＩＦＯの中身をクリアしてステップＳ１０００２に戻る。
【００４８】
ステップＳ１０００３で、ブロック数レジスタと今まで符号化処理したブロック数とを比較し、等しいならば、ステップＳ１０００４でブロック先頭アドレステーブルＦＩＦＯの中身をメモリに書き込む。（ブロック先頭アドレステーブルＦＩＦＯがｆｕｌｌ状態でなくとも）ステップＳ１０００５でブロック先頭アドレステーブルＦＩＦＯの中身をクリアして符号化処理を終了する（ステップＳ１０００６）。
【００４９】
以上の説明から明らかなように、上述した画像処理装置によれば、画像の回転を行う際の画像の符号化にあたり、可変長符号化を用いることで画質の劣化を回避し、また、小ブロックに分割することで、小メモリ化を実現できる。さらに、ＪＢＩＧ回路において、ブロック符号の先頭アドレスを管理する機能とともに、各ブロックの符号化処理が完了するごとに初期化する機能ならびにすべてのブロックの符号化処理が完了したか否かを判定したうえでＩＮＴ信号を出力する機能を備えることで、ブロックの符号化処理にあたり、ソフト的な処理を介在させる必要がなくなり、各ブロックの符号化処理を連続的に実施することが可能となる。
【００５０】
［画像処理装置（復号化）］
続いて、復号化処理について説明する。
【００５１】
図１２は、本発明の実施形態にかかる画像処理装置を構成するＪＢＩＧ回路４００４、４００５の詳細を説明するブロック図である（図５に示す符号化処理を行うためのブロック図に、さらに復号化処理機能を追加したもので、符号化と復号化の両方の処理が可能な構成となっている）。
【００５２】
図１２において、５００１はＣＰＵインターフェースであり、図４に示したＣＰＵインターフェース４００１を介してＣＰＵ１７０１に接続される。ＣＰＵ１７０１より、ＪＢＩＧ回路４００４、４００５内の設定を行う。５００２はメモリインターフェースであり、図４に示したＤＲＡＭインターフェース４００２を介してＤＲＡＭ１７０３にアクセスする。５００９はコンテキスト＆算術符号化／復号化部であり、符号化／復号化処理を行うメイン部分である。５００３は、制御部であり、ＣＰＵ１７０１から符号化／復号化の設定を行う。
【００５３】
制御部５００３の詳細を図１３に示す。６００２はブロック数指定レジスタで、いくつのブロックに分割するかを指定するレジスタである。６００３は、ブロック先頭アドレステーブル生成部５００６により生成されたブロック先頭アドレステーブルをＤＲＡＭ１７０３に記録するアドレスを設定するレジスタである。６００４は画像幅を設定するレジスタである。６００１はＩＮＴ信号（割り込み信号）発生部であり、符号化終了信号を受けＩＮＴ信号を発生する。
【００５４】
６００５は符号化部５００９のシーケンスを制御するブロックであり、ブロック数指定レジスタ６００２で指定されたブロック数を復号化しているかどうかを判断して、復号化終了信号を受けたときに次のブロックの処理をするかどうかを判定し、指定されたブロック数の処理を終えていない場合は、符号化部５００９の初期化を行い、ＩＮＴ信号発生部にＩＮＴ信号をマスクする旨を伝達する。
【００５５】
５０１０はネクストアドレスロード制御部であり、ブロック符号化されたデータを連続して復号する際に使用する。ブロックの順番を変えて連続復号処理を実行するには、符号化ブロックの先頭アドレスをそれぞれ指定する必要があるため、連続復号する順番に符号化ブロックの先頭アドレスを並べ替えたネクストアドレステーブルをメモリ上に用意し、そのネクストアドレステーブルを格納したメモリアドレスを図１３の１３０６に示したネクストアドレステーブル・レジスタに設定する。１つのブロック復号化が終わるたびにネクストアドレスロード制御部５０１０は、予め処理する順序を指定したネクストアドレステーブルに従って、ソースアドレス制御部５００４に次に復号化するブロックの先頭アドレスをロードする。
【００５６】
図１４は本発明の実施形態にかかる画像処理装置における符号化ブロックの復号化処理の流れを示すフローチャートである。まず始めに、ユーザが初期化指示をすることで、ゲートアレイ１７０４ではＣＰＵからの指令に基づきシーケンス制御部６００５内部のシーケンスクリアレジスタをセットし、ＪＢＩＧ回路内部の初期化を行う（ステップＳ１４００１）。これには符号化部５００９内部の学習メモリの初期化が含まれており、このメモリ初期化は復号化前には必ず必要な動作である。
【００５７】
ユーザがブロック処理を指示した場合には、制御レジスタにブロック処理フラグがセットされる（ステップＳ１４００２）。一方、ブロック処理を行わず、通常の復号化を行う場合は、このレジスタの設定は行わない。
【００５８】
次に、ユーザが入力した各種設定に基づき、ソースアドレス、ディスティネーションアドレス、ブロック先頭アドレステーブルアドレス、画像幅、ブロック数を設定する（ステップＳ１４００３）。そして、復号化開始指示により、シーケンススタートレジスタをキックして復号化処理をスタートする（ステップＳ１４００４）。
【００５９】
ＪＢＩＧ回路内部では、ソースアドレスを制御してブロック単位に符号化ソースデータをメモリから読み込み復号化処理を行う（ステップＳ１４００５）。ＪＢＩＧ回路内部の復号化終了信号が来たら、ブロック数レジスタと今まで復号化処理したブロック数とを比較し（ステップＳ１４００６）、まだ所定のブロック数の復号化が終わっていない場合は、ステップＳ１４００７に進みＩＮＴ信号発生部でＩＮＴ信号をマスクし、制御部５００３でシーケンスクリア信号を発生させ、ＪＢＩＧ回路内部の初期化を行う。そして、ステップＳ１４００８でブロックカウント数をインクリメントし、ネクストソースアドレステーブルから次にデコードする符号化ブロックの先頭アドレスをソースアドレスレジスタにロードし、ステップＳ１４００５に戻る。
【００６０】
ステップＳ１４００６でブロック数レジスタと今まで復号化処理したブロック数とが等しくなっているならば、ステップＳ１４００９に進みＩＮＴ信号発生部６００１でＩＮＴ信号を発生させ終了する。
【００６１】
このように、ＣＰＵでは、ステップＳ１４００４で復号化処理をスタートさせた後、ステップＳ１４００１０でＩＮＴ信号が来るまで待つこととなる。つまり、従来のようにソフト処理を介在させて初期化をするのではなく、回路的に自動的に初期化を行うことで、このような連続的な復号化処理が可能となっている。
【００６２】
図１５は、本発明の実施形態にかかる画像処理装置を構成するネクストアドレス制御部５０１０における処理の流れを示したフローチャートである。ステップＳ１５００１で、スタートレジスタがキックされて、復号化処理をスタートすると、まず、ステップＳ１５００２でネクストアドレスロード制御部５０１０は、ネクストアドレステーブル・レジスタ１３００６に設定されているアドレスより最初の８子（３２Ｂｙｔｅ）のネクストアドレスをメモリから読み込み、ネクストアドレスロード制御部５０１０内部のＦＩＦＯに書き込む。ステップＳ１５００３でデコード終了信号がきたら、ソースアドレスレジスタにネクストアドレスロード制御部５０１０よりネクストアドレスをロードし、ステップＳ１５００４でブロックカウント数がブロック数レジスタと同じ値になっていなければ、ステップＳ１５００６に進み、ネクストアドレスロード制御部５０１０内部のＦＩＦＯのＥｍｐｔｙフラグがたっているかどうか検知し、Ｅｍｐｔｙフラグがたっている場合には、ステップＳ１５００７へ進みネクストアドレスロード制御部５０１０は、ネクストアドレステーブルの続き８個（３２Ｂｙｔｅ）をメモリから読み込み、ネクストアドレスロード制御部５０１０内部のＦＩＦＯに書き込んでからステップＳ１５００３に戻り、Ｅｍｐｔｙフラグがたっていない場合は何もせずにステップＳ１５００３に戻る。ステップＳ１５００４でブロックカウント数がブロック数レジスタと同じ値になっている場合は、ステップＳ１５００５に進み、ネクストアドレステーブル制御部５０１０内のＦＩＦＯをクリアして終了する。
【００６３】
以上の説明から明らかなように、本実施形態によれば、画像の回転を行うべく可変長符号化データの復号するにあたり、ＪＢＩＧ回路において符号化ブロックの先頭アドレスを管理する機能とともに、各符号化ブロックの復号化処理が完了するごとに初期化する機能および、すべての符号化ブロックの復号化処理が完了したか否かを判定し、完了した場合にＩＮＴ信号を出力する機能とを備えることで、符号化ブロックの復号化処理にあたり、ソフト的な処理を介在させる必要がなくなり、各符号化ブロックの復号化処理を連続的に実施することが可能となる。
【００６４】
［画像回転の一例］
図７は、上述した画像処理装置を用いて、ブロック分割した画像データの回転行った場合の一例を示す図であり、ここでは４０個のブロックに分割しており、１ブロックの大きさを２５６ｐｉｘｅｌ×２５６ｌｉｎｅで構成している。図７の左側に示した図は回転前の画像データ７００１をブロックに分割して符号化していることを示すものであり、７００３は画像データ７００１を９０度右回転させたことを示す図である。７００２は、符号化後のメモリイメージである。可変長符号化であるため、符号化後のサイズが一定になっていない。そのため、ブロックの順番を変えてアクセスするにはブロック符号の先頭アドレスを別に記憶しておく必要がある。図８は、このブロック先頭アドレスを管理するためのブロック先頭アドレステーブルのイメージ図である。
【００６５】
ここに示す回転画像を作るためのブロックの読み出し、符号化、復号化、回転順序は以下のようになる。
（１）Ａ１からＪ１へ順にラスタ方向でブロック符号化。
（２）（画像の端Ｊ１が終わったら一段下へ）Ｋ１からＴ１方向へブロック符号化。
（３）上記の符号化を画像全体が終わるまで繰り返す。
（４）符号語ｋ２を復号してＫ２を生成、９０度右回転して配置。
（５）符号語ｕ１を復号してＵ１を生成、９０度右回転して配置。
（６）符号語ｋ１を復号してＫ１を生成、９０度右回転して配置。
（７）符号語ａ１を復号してＡ１を生成、９０度右回転して配置。
（８）（３）〜（６）上記復号の繰り返しでブロックラインを生成していく。
【００６６】
［ブロック分割の一例］
図１１は、画像の画素が階調を持っている場合のブロック分割方法を示した図である。
【００６７】
本実施形態では、画素の階調が異なる場合であっても、１ブロックのサイズが６５５３６ｂｉｔと等しくなるように扱っており、１ｂｉｔ／ｐｉｘｅｌの場合では１ブロック２５６ｐｉｘｅｌ（２５６ｂｉｔ）×２５６ｌｉｎｅで構成しており、２ｂｉｔ／ｐｉｘｅｌの場合では１ブロック２５６ｐｉｘｅｌ（５１２ｂｉｔ）×１２８ｌｉｎｅで構成しており、４ｂｉｔ／ｐｉｘｅｌの場合では１ブロック２５６ｐｉｘｅｌ（１０２４ｂｉｔ）×６４ｌｉｎｅで構成している。
【００６８】
【他の実施形態】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００６９】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００７０】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７１】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００７２】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７３】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７４】
【発明の効果】
以上説明したように本発明によれば、画像の回転を行う際の画像の符号化および復号化において、画質の劣化を回避しつつ、連続して符号化または復号化処理を行うことができ、かつ、かかる処理を小メモリで実現することが可能となる。
【図面の簡単な説明】
【図１】本発明の実施形態にかかる画像処理装置を利用したレーザビームプリンタ（ＬＢＰ）の全体のハードウェア構成を示す図である。
【図２】図１に示したレーザビームプリンタの制御機能を説明するための機能ブロック図である。
【図３】図１に示したレーザビームプリンタを制御するために必要なハードウェア構成、ならびにレーザビームプリンタに接続されるホストコンピュータ３０００を制御するために必要なハードウェア構成を示す図である。
【図４】図２に示した画像処理装置（プリンタ制御ユニット）を構成するゲートアレイ１７０４の詳細を説明するためのブロック図である。
【図５】図４に示すゲートアレイを構成するＪＢＩＧ回路４００４、４００５の詳細を説明するブロック図である。
【図６】図５に示す制御部５００３の内部ブロック図である。
【図７】ブロック分割した画像の回転方式を説明するための図である。
【図８】ブロック先頭アドレステーブルを説明するための図である。
【図９】ブロック分割した画像の回転方式を説明するための図である。
【図１０】ゲートアレイ１７０４におけるブロック先頭アドレス管理方法の流れを示したフローチャートである。
【図１１】画像の画素が階調を持っている場合のブロック分割方法を示した図である。
【図１２】本発明の実施形態にかかる画像処理装置を構成するＪＢＩＧ回路４００４、４００５の詳細を説明するブロック図である。
【図１３】図５に示す制御部５００３の内部ブロック図である。
【図１４】本発明の実施形態にかかる画像処理装置における符号化ブロックの復号化の処理の流れを示すフローチャートである。
【図１５】本発明の実施形態にかかる画像処理装置を構成するネクストアドレス制御部５０１０における処理の流れを示したフローチャートである。
【図１】
2004274553.tif 000003
【図２】
2004274553.tif 000004
【図３】
2004274553.tif 000005
【図４】
2004274553.tif 000006
【図５】
2004274553.tif 000007
【図６】
2004274553.tif 000008
【図７】
2004274553.tif 000009
【図８】
2004274553.tif 000010
【図９】
2004274553.tif 000011
【図１０】
2004274553.tif 000012
【図１１】
2004274553.tif 000013
【図１２】
2004274553.tif 000014
【図１３】
2004274553.tif 000015
【図１４】
2004274553.tif 000016
【図１５】
2004274553.tif 000017