(57)【要約】【課題】チャンネル毎に入力される圧縮データを時分割で伸張する際に、チャンネル毎に伸張データを格納するためのバッファの容量を低減する。【解決手段】復号装置は、チャンネル毎のバッファの空きを確認し、空きのあるバッファに対応するチャンネルを、入力を受け付ける入力チャンネルとして指定し、入力チャンネルから受け付けた圧縮データの符号を解析し、その解析結果に基づいて圧縮データの区切り位置を検出する。また、復号装置は、入力チャンネルから受け付けた圧縮データを伸張し、その伸張した伸張データを、入力チャンネルに対応するバッファに格納するように振り分ける。また、復号装置は、区切り位置の検出に応じて、入力チャンネルの指定を解除し、チャンネル毎のバッファの空きを確認するとともに、空きのあるバッファに対応するチャンネルを、次の入力チャンネルとして指定する。【選択図】図６
2010233201.tif 000002
【特許請求の範囲】
【請求項１】
チャンネル毎に、伸張データを格納するためのバッファを有する復号装置であって、
前記チャンネル毎に、符号化された圧縮データの入力を受け付ける入力手段と、
前記チャンネル毎のバッファの空きを確認し、空きのあるバッファに対応するチャンネルを、前記入力手段が入力を受け付ける入力チャンネルとして指定する指定手段と、
前記入力チャンネルから受け付けた前記圧縮データの符号を解析し、当該解析結果に基づいて前記圧縮データの区切り位置を検出する検出手段と、
前記入力チャンネルから受け付けた前記圧縮データを伸張する伸張手段と、
前記伸張手段が伸張した伸張データを、前記入力チャンネルに対応するバッファに格納するように振り分ける振り分け手段と、
を備え、
前記指定手段は、前記区切り位置の検出に応じて、前記入力チャンネルの指定を解除し、前記チャンネル毎のバッファの空きを確認するとともに、空きのあるバッファに対応するチャンネルを、次の入力チャンネルとして指定することを特徴とする復号装置。
【請求項２】
前記検出手段は、前記区切り位置の終端を示す終端符号に基づいて当該区切り位置を検出することを特徴とする請求項１に記載の復号装置。
【請求項３】
前記振り分け手段は、前記伸張データに含まれる、前記終端符号を伸張した終端信号に応じて、前記入力チャンネルに対応するバッファへの格納を停止することを特徴とする請求項２に記載の復号装置。
【請求項４】
前記検出手段は、前記区切り位置の開始を示す開始符号に基づいて当該区切り位置を検出することを特徴とする請求項１に記載の復号装置。
【請求項５】
前記入力手段は、チャンネル毎に、前記圧縮データと前記伸張データとを受け付け、
前記入力手段が受け付けた伸張データを、前記伸張手段を介することなく、前記振り分け手段へ出力するように迂回させる迂回手段を更に備え、
前記振り分け手段は、前記伸張手段が伸張した伸張データ、及び、前記迂回手段により迂回された伸張データを、前記入力チャンネルに対応するバッファに格納するように振り分けることを特徴とする請求項１〜４のいずれか一項に記載の復号装置。
【請求項６】
チャンネル毎に、伸張データを格納するためのバッファを有する復号装置であって、
前記チャンネル毎に、符号化された圧縮データの入力を受け付ける入力手段と、
前記チャンネル毎のバッファの空きを確認し、空きのあるバッファに対応するチャンネルを、前記入力手段が入力を受け付ける入力チャンネルとして指定する指定手段と、
前記入力チャンネルから受け付けた前記圧縮データを伸張する伸張手段と、
前記伸張手段が伸張した伸張データのデータ長をカウントするカウント手段と、
前記伸張手段が伸張した伸張データを、前記入力チャンネルに対応するバッファに格納するように振り分ける振り分け手段と、
を備え、
前記指定手段は、前記カウント手段がカウントしたデータ長が所定のデータ長である場合に、前記入力チャンネルの指定を解除し、前記チャンネル毎のバッファの空きを確認するとともに、空きのあるバッファに対応するチャンネルを、次の入力チャンネルとして指定することを特徴とする復号装置。
【請求項７】
前記入力チャンネルから受け付けた前記圧縮データを一時記憶して前記伸張手段へ出力する入力バッファを更に備え、
前記指定手段は、前記入力バッファに一時記憶された全ての圧縮データが前記伸張手段により伸張されるまで待機してから、前記次のチャンネルの指定を行うことを特徴とする請求項１〜６のいずれか一項に記載の復号装置。
【請求項８】
前記指定手段は、前記入力チャンネルとして複数のチャンネルを指定し、当該複数のチャンネルに対応した入力バッファの各々に一時記憶された圧縮データの全てが伸張されるまで待機してから、前記次の入力チャンネルの指定を行うことを特徴とする請求項７に記載の復号装置。
【請求項９】
前記指定手段は、直近に指定した入力チャンネルに応じた順番で、前記複数のチャンネルを指定することを特徴とする請求項８に記載の復号装置。
【請求項１０】
チャンネル毎に、伸張データを格納するためのバッファを有する復号装置の制御方法であって、
前記チャンネル毎に、符号化された圧縮データの入力を受け付ける入力工程と、
前記チャンネル毎のバッファの空きを確認し、空きのあるバッファに対応するチャンネルを、入力を受け付ける入力チャンネルとして指定する指定工程と、
前記入力チャンネルから受け付けた前記圧縮データの符号を解析し、当該解析結果に基づいて前記圧縮データの区切り位置を検出する検出工程と、
前記入力チャンネルから受け付けた前記圧縮データを伸張する伸張工程と、
前記伸張工程で伸張した伸張データを、前記入力チャンネルに対応するバッファに格納するように振り分ける振り分け工程と、
を含み、
前記指定工程は、前記区切り位置の検出に応じて、前記入力チャンネルの指定を解除し、前記チャンネル毎のバッファの空きを確認するとともに、空きのあるバッファに対応するチャンネルを、次の入力チャンネルとして指定することを特徴とする復号装置の制御方法。
【請求項１１】
画像形成すべきカラー画像を、圧縮した画像データとして記憶するメモリと、
前記圧縮した画像データを、色毎に伸張するための請求項１〜９のいずれか一項に記載の復号装置と、
前記色毎に、前記復号装置により伸張された画像データを格納するバッファを有し、当該色毎のバッファに格納された各色の画像データに基づいて、用紙にカラー画像を形成する画像形成手段と、
を備え、
前記復号装置が伸張データを格納するためのバッファと、前記画像形成手段が有するバッファとを共有することを特徴とする画像形成装置。
【請求項１２】
前記画像形成手段が、前記色毎のバッファに格納された各色の画像データに基づいて、インクジェット方式で前記カラー画像を形成することを特徴とする請求項１１に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号装置、復号装置の制御方法及び画像形成装置に関する。
【背景技術】
【０００２】
従来、インクジェットプリンタやレーザプリンタなどの画像形成装置において、紙などの記録媒体（以下、「用紙」という）に画像形成を行うためのデータは、数十〜数百メガバイトにも上るため、一般的に圧縮処理が施されている。従って、画像形成を行う際には、圧縮処理が施された圧縮データを順次伸張して、伸張した伸張データを記録ヘッドなどに出力する必要がある。
【０００３】
また、カラー印刷の場合は、色毎に多チャンネルで入力される圧縮データを伸張する必要があり、この多チャンネルで入力される圧縮データを時分割で伸張する従来技術としては、特許文献１、２が知られている。特許文献１には、多チャンネルで入力される圧縮データを、１つの伸張部とチャンネル毎のバッファを用いて、時分割で伸張することが開示されている。特許文献２には、圧縮前のデータにダミーデータを付加し、伸張時にはそのダミーデータを読み捨てることで、時分割で伸張された伸張データの出力タイミングを合わせるためのバッファを削減することが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術では、各チャンネルに入力される圧縮データを伸張した伸張データを格納可能とする大容量なバッファを、チャンネル毎に用意する必要があった。また、圧縮前のデータにダミーデータを付加することは、圧縮データの圧縮効率を低下することとなる。
【０００５】
本発明は、上記に鑑みてなされたものであって、チャンネル毎に入力される圧縮データを時分割で伸張する際に、チャンネル毎に伸張データを格納するためのバッファの容量を低減することを可能とする技術を提供することである。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、チャンネル毎に、伸張データを格納するためのバッファを有する復号装置であって、前記チャンネル毎に、符号化された圧縮データの入力を受け付ける入力手段と、前記チャンネル毎のバッファの空きを確認し、空きのあるバッファに対応するチャンネルを、前記入力手段が入力を受け付ける入力チャンネルとして指定する指定手段と、前記入力チャンネルから受け付けた前記圧縮データの符号を解析し、当該解析結果に基づいて前記圧縮データの区切り位置を検出する検出手段と、前記入力チャンネルから受け付けた前記圧縮データを伸張する伸張手段と、前記伸張手段が伸張した伸張データを、前記入力チャンネルに対応するバッファに格納するように振り分ける振り分け手段と、を備え、前記指定手段は、前記区切り位置の検出に応じて、前記入力チャンネルの指定を解除し、前記チャンネル毎のバッファの空きを確認するとともに、空きのあるバッファに対応するチャンネルを、次の入力チャンネルとして指定することを特徴とする。
【０００７】
また、本発明は、チャンネル毎に、伸張データを格納するためのバッファを有する復号装置であって、前記チャンネル毎に、符号化された圧縮データの入力を受け付ける入力手段と、前記チャンネル毎のバッファの空きを確認し、空きのあるバッファに対応するチャンネルを、前記入力手段が入力を受け付ける入力チャンネルとして指定する指定手段と、前記入力チャンネルから受け付けた前記圧縮データを伸張する伸張手段と、前記伸張手段が伸張した伸張データのデータ長をカウントするカウント手段と、前記伸張手段が伸張した伸張データを、前記入力チャンネルに対応するバッファに格納するように振り分ける振り分け手段と、を備え、前記指定手段は、前記カウント手段がカウントしたデータ長が所定のデータ長である場合に、前記入力チャンネルの指定を解除し、前記チャンネル毎のバッファの空きを確認するとともに、空きのあるバッファに対応するチャンネルを、次の入力チャンネルとして指定することを特徴とする。
【０００８】
また、本発明は、チャンネル毎に、伸張データを格納するためのバッファを有する復号装置の制御方法であって、前記チャンネル毎に、符号化された圧縮データの入力を受け付ける入力工程と、前記チャンネル毎のバッファの空きを確認し、空きのあるバッファに対応するチャンネルを、入力を受け付ける入力チャンネルとして指定する指定工程と、前記入力チャンネルから受け付けた前記圧縮データの符号を解析し、当該解析結果に基づいて前記圧縮データの区切り位置を検出する検出工程と、前記入力チャンネルから受け付けた前記圧縮データを伸張する伸張工程と、前記伸張工程で伸張した伸張データを、前記入力チャンネルに対応するバッファに格納するように振り分ける振り分け工程と、を含み、前記指定工程は、前記区切り位置の検出に応じて、前記入力チャンネルの指定を解除し、前記チャンネル毎のバッファの空きを確認するとともに、空きのあるバッファに対応するチャンネルを、次の入力チャンネルとして指定することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、チャンネル毎に入力される圧縮データを時分割で伸張する際に、チャンネル毎に伸張データを格納するためのバッファの容量を低減することを可能とする、という効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、第１の実施形態に係る画像形成装置の機構部分の全体構成を説明する側面概略構成図である。
【図２】図２は、第１の実施形態に係る画像形成装置の全体構成を説明する平面概略構成図である。
【図３】図３は、第１の実施形態に係る記録ヘッドのノズル面を例示する図である。
【図４】図４は、第１の実施形態に係る画像形成装置の機能構成を模式的に示したブロック図である。
【図５】図５は、記録ヘッドへ出力する各色のデータの有効期間を示したタイミング図である。
【図６】図６は、伸張部、画像データ出力部の内部構成を模式的に示したブロック図である。
【図７】図７は、仮想的な符号対応表を示した図である。
【図８】図８は、簡略化した伸張部の内部構成を示したブロック図である。
【図９】図９は、チャンネル指定部の動作内容を示すフローチャートである。
【図１０】図１０は、符号解析部の動作内容を示すフローチャートである。
【図１１】図１１は、振り分け部の動作内容を示すフローチャートである。
【図１２】図１２は、変形例に係る伸張部の内部構成を示したブロック図である。
【図１３】図１３は、第２の実施形態に係る画像形成装置の全体構成を説明する側面概略構成図である。
【図１４】図１４は、伸張部の内部構成の一例を示したブロック図である。
【図１５】図１５は、伸張部のタイミングチャートの一例を示す図である。
【図１６】図１６は、伸張部のタイミングチャートの一例を示す図である。
【図１７】図１７は、伸張部のタイミングチャートの一例を示す図である。
【図１８】図１８は、変形例２にかかるチャンネル指定部の動作内容を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、この発明にかかる画像形成装置の最良な実施の形態を詳細に説明する。
【００１２】
［第１の実施形態］
図１は、第１の実施形態に係る画像形成装置１の機構部分の全体構成を説明する側面概略構成図、図２は、第１の実施形態に係る画像形成装置１の全体構成を説明する平面概略構成図である。図３は、記録ヘッド３４のノズル面を例示する図である。まず、図１〜図３を参照して、画像形成装置１の機構部分について説明する。
【００１３】
図１、図２に示すように、画像形成装置１は、フレーム２１を構成する左右の側板２１Ａ、２１Ｂに横架したガイド部材であるガイドロッド３１と、ステー３２とでキャリッジ３３を主走査方向に摺動自在に保持している。キャリッジ３３は、主走査モータにより駆動するタイミングベルト（いずれも図示しない）を介して、図２で矢示方向（キャリッジ主走査方向）に移動走査する。
【００１４】
このキャリッジ３３は、イエロー（Ｙ）、シアン（Ｃ）、マゼンタ（Ｍ）、ブラック（Ｂｋ）の各色のインク液滴を吐出する４個の液滴吐出ヘッドからなる記録ヘッド３４を、複数のインク吐出口（以下、「ノズル」という）を主走査方向と交叉する方向に配列し、下方にインク液滴の吐出方向を向けて装着している。
【００１５】
具体的には、図３に示すように、記録ヘッド３４は、複数のノズル１３４ｎが形成されたノズル面１３４ａを下方に向けている。ノズル面１３４ａには、複数のノズル１３４ｎからなる４つのノズル列１３４ｋ、１３４ｃ、１３４ｍ、１３４ｙ（以下、区別しないときは「ノズル列１３４Ｎ」という）が形成されている。
【００１６】
記録ヘッド３４を構成するインクジェットヘッドとしては、圧電素子などの圧電アクチュエータ、発熱抵抗体などの電気熱変換素子を用いて液体の膜沸騰による相変化を利用するサーマルアクチュエータ、温度変化による金属相変化を用いる形状記憶合金アクチュエータ、静電力を用いる静電アクチュエータなどを、インク液滴を吐出するための圧力を発生する圧力発生手段として備えたものなどを使用できる。
【００１７】
本実施形態では全ノズルを同時に駆動させる以外に、時間的に分割して駆動させることができる。全ノズルを同時に駆動させると、各ノズル間のクロストークの影響による記録品位の低下や、一時的に大電流が必要になることにより電源の大容量化などの不利益が生じる場合があるが、時分割駆動することでこれらの不利益を避けることができる。
【００１８】
この記録ヘッド３４はドライバＩＣ（図示しない）を搭載している。このドライバＩＣは、インク液滴を吐出するための圧力発生を制御する。ドライバＩＣとプリンタコントローラ（詳細は後述する）とは、ハーネス（フレキシブルプリントケーブル）２２を介して接続している。
【００１９】
また、キャリッジ３３は、記録ヘッド３４に各色のインクを供給するための各色のサブタンク３５を搭載している。この各色のサブタンク３５には各色のインク供給チューブ３６を介して、カートリッジ装填部４に装着された各色のインクカートリッジ１０（具体的にはインクカートリッジ１０ｋ、１０ｃ、１０ｍ、１０ｙ）から各色のインクが補充供給される。なお、このカートリッジ装填部４にはインクカートリッジ１０内のインクを送液するための供給ポンプユニット２４が設けられている。また、インク供給チューブ３６は、這い回しの途中でフレーム２１を構成する後板２１Ｃに係止部材２５にて保持されている。
【００２０】
一方、図１に示すように、画像形成装置１は、給紙トレイ２の用紙積載部（圧板）４１上に積載した用紙４２を給紙するための給紙部として、用紙積載部４１から用紙４２を１枚ずつ分離給送する半月コロ（給紙コロ）４３及びその給紙コロ４３に対向し、摩擦係数の大きな材質からなる分離パッド４４を備え、この分離パッド４４は給紙コロ４３側に付勢されている。なお、用紙４２は、画像形成に係る記録媒体であり、再生紙、上質紙、普通紙、葉書、封筒、厚紙、ＯＨＰ用のシート等であってよく、その種別は特に限定しない。
【００２１】
そして、画像形成装置１は、この給紙部から給紙された用紙４２を記録ヘッド３４の下方側に送り込むために、用紙４２を案内するガイド部材４５と、カウンタローラ４６と、搬送ガイド部材４７と、先端加圧コロ４９を有する押さえ部材４８とを備えるとともに、給送された用紙４２を静電吸着して記録ヘッド３４に対向する位置で搬送するための搬送手段である搬送ベルト５１を備えている。
【００２２】
搬送ベルト５１は、無端状ベルトであり、搬送ローラ５２とテンションローラ５３との間に掛け渡されて、ベルト搬送方向（副走査方向）に周回するように構成している。搬送ベルト５１は、例えば、抵抗制御を行っていない純粋な厚さ４０μｍ程度の樹脂材、例えば、ＥＴＦＥピュア材で形成した用紙吸着面となる表層と、この表層と同材質でカーボンによる抵抗制御を行った裏層（中抵抗層、アース層）とを有している。
【００２３】
そして、画像形成装置１は、搬送ベルト５１の表面を帯電させるための帯電手段である帯電ローラ５６を備えている。帯電ローラ５６は、搬送ベルト５１の表層に接触し、搬送ベルト５１の回動に従動して回転するように配置され、加圧力として軸の両端に所定の押圧力をかけている。なお、搬送ローラ５２は、アースローラの役目も担っており、搬送ベルト５１の中抵抗層（裏層）と接触配置され、接地している。
【００２４】
また、搬送ベルト５１の裏側には、記録ヘッド３４による印写領域に対応してガイド部材５７を配置している。ガイド部材５７は、上面が搬送ベルト５１を支持する２つのローラ（搬送ローラ５２とテンションローラ５３）の接線よりも記録ヘッド３４側に突出させることで搬送ベルト５１の高精度な平面性を維持するようにしている。
【００２５】
搬送ベルト５１は、副走査モータ（図示しない）によって搬送ローラ５２が回転駆動されることによって搬送ベルト５１が図２のベルト搬送方向（副走査方向）に周回移動する。
【００２６】
さらに、画像形成装置１は、記録ヘッド３４で記録された用紙４２を排紙するための排紙部として、搬送ベルト５１から用紙４２を分離するための分離爪６１と、排紙ローラ６２及び排紙コロ６３とを備え、排紙ローラ６２の下方に排紙トレイ３を備えている。ここで、排紙ローラ６２と排紙コロ６３との間から排紙トレイ３までの高さは排紙トレイ３にストックできる量を多くするためにある程度高くしている。
【００２７】
また、画像形成装置１の背面部には、両面ユニット７１が着脱自在に装着されている。この両面ユニット７１は搬送ベルト５１の逆方向回転で戻される用紙４２を取り込んで反転させて再度カウンタローラ４６と搬送ベルト５１との間に給紙する。また、この両面ユニット７１の上面は手差しトレイ７２としている。
【００２８】
さらに、図２に示すように、キャリッジ３３の走査方向一方側の非印字領域には、記録ヘッド３４のノズルの状態を維持し、回復するための回復手段を含む維持回復機構８１を配置している。この維持回復機構８１には、記録ヘッド３４のノズル面をキャピングするための各キャップ部材（以下「キャップ」という）８２ａ〜８２ｄ（区別しないときは「キャップ８２」という）と、ノズル面をワイピングするためのブレード部材であるワイパーブレード８３と、増粘したインクを排出するために記録に寄与しないインク液滴を吐出させる空吐出を行うときのインク液滴を受ける空吐出受け８４などを備えている。ここでは、キャップ８２ａを吸引及び保湿用キャップとし、他のキャップ８２ｂ〜８２ｄは保湿用キャップとしている。
【００２９】
そして、この維持回復機構８１による維持回復動作で生じるインクの廃液、キャップ８２に排出されたインク、あるいはワイパーブレード８３に付着してワイパークリーナで除去されたインク、空吐出受け８４に空吐出されたインクは廃液タンク（図示しない）に排出されて収容される。
【００３０】
また、図２に示すように、キャリッジ３３の走査方向他方側の非印字領域には、記録中などに増粘したインクを排出するために、記録に寄与しないインク液滴を吐出させる空吐出を行うときのインク液滴を受ける空吐出受け８８を配置し、この空吐出受け８８には記録ヘッド３４のノズル列方向に沿った開口８９などを備えている。
【００３１】
さらに、画像形成装置１の内部後方側にはホストとの間でデータを送受するためのＵＳＢなどの通信回路部（インタフェース）が設けられるとともに、この画像形成装置全体の制御を司るプリントコントローラを構成する制御回路基板が設けられている。
【００３２】
このように構成した画像形成装置１においては、給紙トレイ２から用紙４２が１枚ずつ分離給紙され、略鉛直上方に給紙された用紙４２はガイド部材４５で案内されて、搬送ベルト５１とカウンタローラ４６との間に挟まれて搬送される。更に、搬送された用紙４２は、先端を搬送ガイド部材４７で案内されて先端加圧コロ４９で搬送ベルト５１に押し付けられ、略９０°搬送方向を転換される。
【００３３】
このとき、プリンタコントローラによってＡＣバイアス供給部から帯電ローラ５６に対してプラス出力とマイナス出力とが交互に繰り返すように、つまり交番する電圧が印加され、搬送ベルト５１が交番する帯電電圧パターン、すなわち、周回方向である副走査方向に、プラスとマイナスが所定の幅で帯状に交互に帯電されたものとなる。このプラス、マイナス交互に帯電した搬送ベルト５１上に用紙４２が給送されると、用紙４２が搬送ベルト５１に吸着され、搬送ベルト５１の周回移動によって用紙４２が副走査方向に搬送される。
【００３４】
そこで、キャリッジ３３を移動させながら画像信号に応じて記録ヘッド３４を駆動することにより、停止している用紙４２にインク液滴を吐出して１行分を記録し、用紙４２を所定量搬送後、次の行の記録を行う。記録終了信号又は用紙４２の後端が記録領域に到達した信号を受けることにより、記録動作を終了して、用紙４２を排紙トレイ３に排紙する。
【００３５】
また、印字（記録）待機中にはキャリッジ３３は維持回復機構８１側に移動されて、キャップ８２で記録ヘッド３４がキャッピングされて、ノズルを湿潤状態に保つことによりインク乾燥による吐出不良を防止する。また、キャップ８２で記録ヘッド３４をキャッピングした状態で図示しない吸引ポンプによってノズルからインクを吸引し（「ノズル吸引」又は「ヘッド吸引」という）、増粘したインクや気泡を排出する回復動作を行う。また、記録開始前、記録途中などに記録と関係しないインクを吐出する空吐出動作を行う。これによって、記録ヘッド３４の安定した吐出性能を維持する。
【００３６】
次に、画像形成装置１の機能的な構成について図４を参照して説明する。図４は、画像形成装置１の機能構成を模式的に示したブロック図である。
【００３７】
図４に示すように、画像形成装置１は、画像形成装置１の動作を統括制御するプリンタコントローラ１００と、前述した記録ヘッド３４の駆動及び用紙４２の搬送と位置検出などを行うモータ・センサ部１０５とを備える。プリンタコントローラ１００は、データ入力部１０１、ＣＰＵ１０２、画像処理部１０３、エンジン制御部１０４、メモリ１０６、メモリコントローラ１０７、圧縮部１０８、伸張部１０９及び画像データ出力部１１０を備える。プリンタコントローラ１００において、上述した各部はバス１１１を介して互いに接続される。
【００３８】
データ入力部１０１は、ＣＰＵ１０２の制御の下、ＰＣ（Personal Computer）などの外部機器２００から入力データを受け付けるインタフェースである。具体的には、ＵＳＢ（Universal Serial Bus）、セントロニクス・インタフェース、ＩＥＥＥ（Institute of Electrical and Electronic Engineers）１２８４、イーサネット（登録商標）インタフェース等であってよい。
【００３９】
ＣＰＵ１０２（Central Processing Unit）は、画像形成装置１の動作を中央制御する。具体的には、ＣＰＵ１０２は、ＲＯＭ（Read Only Memory）などに記憶されたプログラムをＲＡＭ（Random Access Memory）やメモリ１０６の作業領域に展開して順次実行することで、画像形成装置１の各部に制御信号を出力する。
【００４０】
画像処理部１０３は、ＣＰＵ１０２の制御の下、入力される画像データに対して所定の画像処理を施す。具体的には、回転、拡大・縮小などの画像変換処理や、カラープロファイルなどを参照することで、Ｒ（赤）、Ｇ（緑）、Ｂ（青）からＣ、Ｍ、Ｙ、Ｂｋへ（又は逆方向）の色変換処理を行う。
【００４１】
また、画像処理部１０３は、プリント言語（例えば、ページ記述言語（ＰＤＬ，ＰＣＬ）及びポストスクリプト（ＰＳ）など）で記述されたプリンタデータを、直接印刷可能なラスタデータに変換する。画像処理部１０３で変換されたラスタデータは、圧縮部１０８で符号化してデータ圧縮したうえで、メモリ１０６に格納される。例えば、外部機器２００などから入力したデータがプリンタデータである場合は、そのプリンタデータが画像処理部１０３によりラスタデータに変換され、圧縮部１０８で符号化された後にメモリ１０６に格納されることとなる。
【００４２】
エンジン制御部１０４は、ＣＰＵ１０２の制御の下、モータ・センサ部１０５へ制御信号を出力することで、記録ヘッド３４の駆動や用紙４２の搬送を制御する。
【００４３】
メモリ１０６は、ＨＤＤ（Hard Disk Drive）や半導体メモリなどであり、メモリコントローラ１０７の制御の下で所定のデータを格納する。メモリ１０６が格納するデータとしては、外部機器２００から入力したデータ（プリントデータ）や、圧縮部１０８で符号化して圧縮したデータなどがある。また、メモリ１０６の一部の記憶領域は、ＣＰＵ１０２の作業領域として使用されてもよい。メモリコントローラ１０７は、ＣＰＵ１０２の制御の下、メモリ１０６へのデータの格納、メモリ１０６に格納されたデータの読み出しを行う。
【００４４】
圧縮部１０８は、ＣＰＵ１０２の制御の下、入力された各色（Ｃ、Ｍ、Ｙ、Ｂｋ）のラスタデータを所定の符号化方式で符号化して圧縮する。各色の圧縮データはメモリ１０６に格納される。伸張部１０９は、ＣＰＵ１０２の制御の下、メモリ１０６に格納された各色の圧縮データを、順次読み出して時分割で伸張した後に画像データ出力部１１０へ出力する。
【００４５】
画像データ出力部１１０は、ＣＰＵ１０２の制御の下、伸張部１０９から入力したラスタデータを、記録ヘッド３４の駆動に合わせてデータの順序を入れ替えるなど、必要に応じて加工を行った後に記録ヘッド３４へ出力する。以上のように、メモリ１０６に格納された各色の圧縮データは、伸張部１０９で時分割伸張された後にメモリ１０６に書き戻されることなく（オンザフライで）、画像データ出力部１１０を経由して記録ヘッド３４に出力される。
【００４６】
図５は、記録ヘッド３４へ出力する各色のデータ（ラスタデータ）の有効期間を示したタイミング図である。前述したように記録ヘッド３４の各ノズル列はノズル面１３４ａにおいて物理的な位置が異なる。したがって、用紙上の同じ位置にインク液滴を吐出する場合には、ＣＰＵ１０２の制御の下、図５に示すようにタイミングをずらす必要がある。また、色ごとに用紙上の有効範囲自体が異なる場合もあり、形成すべき画像によっては、特定の色（図中ではマゼンタ）を使用しない場合がある。このような場合には、データの転送も行われない。そのため、図４に示した伸張部１０９で伸張するタイミングも各色同時ではなく、また、全ての色の伸張を行うとは限らない。
【００４７】
ここで、伸張部１０９、画像データ出力部１１０の詳細について説明する。図６は、伸張部１０９、画像データ出力部１１０の内部構成を模式的に示したブロック図である。図６に示すように、伸張部１０９は、コントローラ２０１、データ入力部２０２Ｋ、２０２Ｃ、２０２Ｍ、２０２Ｙ、チャンネル指定部２０３、符号解析部２０４、伸張処理部２０５、振り分け部２０６、データ出力Ｉ／Ｆ２０７Ｋ、２０７Ｃ、２０７Ｍ、２０７Ｙを備えている。画像データ出力部１１０は、バッファ２０８Ｋ、２０８Ｃ、２０８Ｍ、２０８Ｙを備えている。
【００４８】
コントローラ２０１は、ＣＰＵ１０２の制御の下、伸張部１０９内の各部の動作を制御する。データ入力部２０２Ｋ、２０２Ｃ、２０２Ｍ、２０２Ｙは、各色（Ｂｋ、Ｃ、Ｍ、Ｙ）の圧縮データをメモリ１０６から読み出して符号解析部２０４へ入力する。具体的には、データ入力部２０２ＫはＢｋ色の圧縮データを、データ入力部２０２ＣはＣ色の圧縮データを、データ入力部２０２ＭはＭ色の圧縮データを、データ入力部２０２ＹはＹ色の圧縮データを符号解析部２０４へ入力する。
【００４９】
チャンネル指定部２０３は、符号解析部２０４が圧縮データを解析した解析結果に基づいて、符号解析部２０４がデータ入力部２０２Ｋ、２０２Ｃ、２０２Ｍ、２０２Ｙのいずれかから入力するチャンネル（入力チャンネル）、及び、伸張処理部２０５が伸張した後に、振り分け部２０６がデータ出力Ｉ／Ｆ２０７Ｋ、２０７Ｃ、２０７Ｍ、２０７Ｙのいずれかに出力するチャンネル（色）を指定する。
【００５０】
符号解析部２０４は、データ入力部２０２Ｋ、２０２Ｃ、２０２Ｍ、２０２Ｙから入力される圧縮データの解析を行って圧縮データの区切り位置を検出し（区切り位置の検出の詳細は後述する）、その検出結果を解析結果としてチャンネル指定部２０３に出力する。また、符号解析部２０４は、データ入力部２０２Ｋ、２０２Ｃ、２０２Ｍ、２０２Ｙの中から、チャンネル指定部２０３が指定したチャンネル（色）の圧縮データを伸張処理部２０５へ入力する。伸張処理部２０５は、入力された圧縮データを伸張して、伸張した伸張データを振り分け部２０６へ入力する。
【００５１】
振り分け部２０６は、伸張処理部２０５から入力した伸張データを、データ出力Ｉ／Ｆ２０７Ｋ、２０７Ｃ、２０７Ｍ、２０７Ｙの中からチャンネル指定部２０３が指定したチャンネル（色）へ入力する。データ出力Ｉ／Ｆ２０７Ｋ、２０７Ｃ、２０７Ｍ、２０７Ｙは、伸張された各色のデータをバッファ２０８Ｋ、２０８Ｃ、２０８Ｍ、２０８Ｙへ格納する。
【００５２】
具体的には、データ出力Ｉ／Ｆ２０７ＫはＢｋ色の伸張データをバッファ２０８Ｋへ格納し、データ出力Ｉ／Ｆ２０７ＣはＣ色の伸張データをバッファ２０８Ｃへ格納し、データ出力Ｉ／Ｆ２０７ＭはＭ色の伸張データをバッファ２０８Ｍへ格納し、データ出力Ｉ／Ｆ２０７ＹはＹ色の伸張データをバッファ２０８Ｙへ格納する。バッファ２０８Ｋ、２０８Ｃ、２０８Ｍ、２０８Ｙは、ＣＰＵ１０２の制御の下、格納されたデータを所定のタイミングで記録ヘッド３４へ出力する。
【００５３】
図５で示したような出力のタイミングが異なる各色（Ｃ、Ｍ、Ｙ、Ｂｋ）の圧縮データを同時に伸張する場合、すなわち、入力が４チャンネル分あり、各チャンネルから入力される圧縮データを伸張する場合には、伸張処理を行う構成を入力チャンネル分用意する必要がある。また、各チャンネルから入力される圧縮データを時分割で順次伸張する場合には、伸張後のデータの出力タイミングのずれを吸収するための大容量のバッファを後段に備える必要がある。
【００５４】
図６に示すように、伸張部１０９は、チャンネル指定部２０３、符号解析部２０４、振り分け部２０６を備えている。そして、上記伸張部１０９の各部が後述する処理を行うことで、各チャンネルから入力される圧縮データを１つの伸張処理部２０５が時分割で順次伸張する。このため、画像データ出力部１１０のバッファ２０８Ｋ、２０８Ｃ、２０８Ｍ、２０８Ｙには、時分割で伸張する単位サイズ以上のデータが格納可能なバッファであればよく、各チャンネルにおいて、全ての圧縮データを伸張した伸張データを格納可能とする大容量のバッファを備える必要がない。
【００５５】
また、画像データ出力部１１０のバッファ２０８Ｋ、２０８Ｃ、２０８Ｍ、２０８Ｙは、次の用途で使用されてもよい。すなわち、メモリ１０６に格納された圧縮データを伸張した伸張データ（ラスタデータ）は主走査方向に並んだ画素のデータである。一方、記録ヘッド３４におけるノズルは副走査方向に沿って並んでいるため、ラスタデータについては回転する処理が必要である。この回転処理をＣＰＵ１０２で実施するためには、ビット単位の演算を行う必要があり、ＣＰＵ１０２における処理負荷が大きくなる。そのため、画像データ出力部１１０では、伸張処理部２０５でラスタデータに対し、一定量ごとに回転処理を行う。バッファ２０８Ｋ、２０８Ｃ、２０８Ｍ、２０８Ｙは、上記回転処理のワーク領域として使用される。
【００５６】
例えば、バッファ２０８Ｋ、２０８Ｃ、２０８Ｍ、２０８Ｙが格納可能とするデータのサイズは、記録ヘッド３４におけるノズル数が２５６で、３２（ｂｉｔ）ごとに回転処理を行う場合には、２５６×３２＝８１９２（ｂｉｔ）である。さらに、バッファ２０８Ｋ、２０８Ｃ、２０８Ｍ、２０８Ｙにデータを格納しながら、データを出力するためには、ノズル面２面分のデータを格納可能とするバッファを用意する。
【００５７】
このノズル面２面分のデータサイズが、伸張処理部２０５が時分割で伸張する単位サイズ以上である場合は、各チャンネルから入力される圧縮データを１つの伸張処理部２０５が時分割で順次伸張する場合であっても、新たにバッファを追加する必要がない。したがって、伸張処理部２０５が時分割で伸張する単位サイズは、バッファ２０８Ｋ、２０８Ｃ、２０８Ｍ、２０８Ｙに伸張データを格納しながら、そのデータを記録ヘッド３４に出力するために必要とする、記録ヘッド３４のノズル面２面分と同一サイズ、若しくはそれ以下のサイズであることが好ましい。
【００５８】
このように、伸張部１０９が伸張した伸張データを格納するためのバッファと、記録ヘッド３４が主走査方向へ画像形成を行うためのバッファとを共有する場合には、新たにバッファを追加する必要がない。
【００５９】
ここで、圧縮部１０８が符号化し、伸張部１０９の伸張処理部２０５が伸張する符号化方式について、図７を参照して説明する。図７は、仮想的な符号対応表を示した図である。
【００６０】
符号化方式によるデータの圧縮では、例えば圧縮前の固定長のデータ（符号）について、圧縮前に出現率の高い符号を符号長の短い符号に割り当てた符号表に基づいて変換することでデータサイズの削減を図る。具体的には、図７に示すように、圧縮前のデータにおいて出現率の高い順に符号ＣＡ〜ＣＶを並べ、その符号に対応する圧縮後の符号を符号長の短い順（符号長が２の符号から符号長が８の符号まで）に並べた符号対応表に基づいて、データの圧縮・伸張を行う。
【００６１】
ここで、符号ＣＶ（ＥＯＬ：End  Of  Line）は、１つのブロック（圧縮単位）の区切り位置を示すものであり、特に区切り位置の終端を示す終端符号である。この符号ＣＶを境に、前のブロックと後のブロックの符号には関連がないものとする。したがって、ブロックごとに独立に伸張可能な圧縮方式である。なお、この符号ＣＶ（ＥＯＬ符号）を伸張した信号（図７の例では「００００００００」に該当）が終端信号（ＥＯＬ信号）である。
【００６２】
例えば、符号ＣＡ→符号ＣＮ→符号ＣＤ→符号ＣＶ（ＥＯＬ）の場合は、圧縮前のデータ長は８＊４＝３２ｂｉｔである。このデータを図７に例示した符号対応表に基づいて圧縮した場合、メモリ１０６に格納される圧縮データは「１０００００１１１０１１００００００００」となり、圧縮後のデータ長は２＋７＋３＋８＝２０ｂｉｔとなる。この圧縮データは、伸張時において、図７の符号対応表を元に、伸張処理部２０５が次の手順で圧縮データを分離していく。
【００６３】
手順１−１：第ｎ番目の符号を解析（２２通りの全符号との比較を実施）。
手順１−２：第ｎ番目の符号種類と符号長を確定する。
手順１−３：確定した符号種類に見合った処理を行い、伸張処理を実行する。
手順１−４：第ｎ＋１番目の符号開始の位置を確定する。
手順１−５：手順１−１に戻る（ｎをｎ＋１で置き換える）。
【００６４】
ただし、特定の符号を検出することのみを目的とする場合には、必ずしも上記の手順を取る必要はない。例えば、図７の符号対応表を元に圧縮された圧縮データの場合に、符号ＣＶ（ＥＯＬ）の位置を検出し、その直後の位置を検出したい場合には、次の手順でよい。
【００６５】
手順２−１：第ｎ番目の符号を解析し、符号長を確定する（「＊」は１又は０のいずれであってもよい）。
符号の上位ビットが「１＊」        ：符号長２
符号の上位ビットが「０１＊」      ：符号長３
符号の上位ビットが「００１＊」    ：符号長４
符号の上位ビットが「０００１＊」  ：符号長６
符号の上位ビットが「００００１＊」：符号長７
符号の上位ビットが「０００００＊」：符号長８
手順２−２：第ｎ＋１番目の符号開始の位置を確定する。
手順２−３：ｎ番目の符号が符号ＣＶ（ＥＯＬ）である場合には処理を終了し、それ以外の場合には手順２−１へ戻る（ｎをｎ＋１で置き換える）。
【００６６】
手順１−１〜１−５と手順２−１〜２−３とを比較して明らかなように、特定の符号を検出することのみを目的とする方が処理負荷は小さい。なお、図７に例示した符号対応表は、単純に符号長を検出可能な一例を示したものである。圧縮方式によっては、この例ほど単純に符号長が判別できないこともあるが、特定の符号を検出することのみを目的とする方が処理負荷が小さいことに変わりはない。
【００６７】
また、圧縮データの状態によって、符号対応表の対応が変更する場合もある。そのため、符号長を検出するのに必要とする処理は伸張処理部２０５へ圧縮データを入力する前に符号解析部２０４が行う。例えば、ＦＡＸなどで使用される圧縮方式では、黒データと白データとで対応する符号対応表が異なる。したがって、扱っている圧縮データが、黒データであるのか、白データであるのかを符号解析部２０４が検出して、伸張処理部２０５へ通知する。
【００６８】
次に、伸張部の各部の動作内容を、図８〜図１１を参照して詳細に説明する。なお、説明を簡略化するため、図８に示すように、以下の説明では入力チャンネルを２チャンネルとする。
【００６９】
具体的には、簡略化した伸張部１０９ａでは、データ入力部２０２ａがチャンネルＣＨ１用の圧縮データを入力し、データ入力部２０２ｂがチャンネルＣＨ２用の圧縮データを入力する。また、バッファ２０８ａがチャンネルＣＨ１用の伸張データを格納し、バッファ２０８ｂがチャンネルＣＨ２用の伸張データを格納する。
【００７０】
まず、チャンネル指定部２０３の動作内容について、図９を参照して説明する。図９に示すように、処理が開始されると、チャンネル指定部２０３は、チャンネルＣＨ１の圧縮データの伸張を行う有効期間内であり、且つ、バッファ２０８ａにおいて、時分割で伸張する単位サイズ以上のデータが格納可能な程度の十分な空き容量があるか否かを判定する（Ｓ１）。
【００７１】
Ｓ１において、判定条件を満たさない場合（ＮＯである場合）、チャンネル指定部２０３は、チャンネルＣＨ２の圧縮データの伸張を行う有効期間内であり、且つ、バッファ２０８ｂにおいて、時分割で伸張する単位サイズ以上のデータが格納可能な程度の十分な空き容量があるか否かを判定する（Ｓ２）。なお、チャンネルＣＨ１、ＣＨ２の圧縮データの伸張を行う有効期間内であるか否かは、チャンネルＣＨ１、ＣＨ２に係る色が、前述した図５に例示した有効期間に該当するか否かを元に判定する。
【００７２】
Ｓ１において、判定条件を満たす場合（ＹＥＳである場合）、チャンネル指定部２０３は、チャンネルＣＨ１をチャンネル指定部２０３、振り分け部２０６に指定する（Ｓ３）。このＳ３により、データ入力部２０２ａから入力した圧縮データが伸張処理部２０５で伸張され、その伸張データが振り分け部２０６でバッファ２０８ａに格納されることとなる。
【００７３】
Ｓ２において、判定条件を満たす場合（ＹＥＳである場合）、チャンネル指定部２０３は、チャンネルＣＨ２をチャンネル指定部２０３、振り分け部２０６に指定する（Ｓ４）。このＳ４により、データ入力部２０２ｂから入力した圧縮データが伸張処理部２０５で伸張され、その伸張データが振り分け部２０６でバッファ２０８ｂに格納されることとなる。
【００７４】
次いで、チャンネル指定部２０３は、符号解析部２０４、振り分け部２０６から受付済み信号を受信し、且つ、伸張処理部２０５から振り分け部２０６へのＥＯＬ信号の出力を検出したか否かを判定する（Ｓ５）。チャンネル指定部２０３は、Ｓ５の判定条件を満たすまで処理を待機し、Ｓ５の判定条件を満たした場合（ＹＥＳである場合）、Ｓ３、Ｓ４で行ったチャンネル指定を解除する（Ｓ６）。
【００７５】
したがって、伸張部１０９ａでは、チャンネルが指定された圧縮データにおいて、１つのブロックの伸張が終了したところで、そのチャンネルの指定が解除され、１つのブロック分を伸張した伸張データがバッファ２０８ａ、２０８ｂに格納されることとなる。
【００７６】
次いで、チャンネル指定部２０３は、メモリ１０６に格納された全圧縮データの伸張が終了したか否かを判定し（Ｓ７）、このＳ７において、チャンネル指定部２０３は、伸張が終了していない場合（ＮＯである場合）にはＳ１へ処理を戻し、伸張が終了している場合（ＹＥＳである場合）には処理を終了する。
【００７７】
次に、符号解析部２０４の動作内容について、図１０を参照して説明する。図１０に示すように、処理が開始されると、符号解析部２０４は、チャンネル指定部２０３によるチャンネル指定があったか否かを判定する（Ｓ１１）。符号解析部２０４は、Ｓ１１の判定条件を満たすまで処理を待機する。
【００７８】
チャンネル指定があり、Ｓ１１の判定条件を満たした場合（ＹＥＳである場合）、符号解析部２０４は、指定されたチャンネルを示すチャンネル情報を保持するとともに、チャンネル指定を受け付けたことを示す受付済み信号を発行し、チャンネル指定部２０３へ出力する（Ｓ１２）。
【００７９】
次いで、符号解析部２０４は、指定されたチャンネルに応じたデータ入力部からデータを受信し（Ｓ１３）、受信したデータの符号解析を行うとともに、受信したデータを伸張処理部２０５へ送信する（Ｓ１４）。Ｓ１４における符号解析では、前述した手順に従ってＥＯＬ符号の検出を行う。
【００８０】
次いで、符号解析部２０４は、Ｓ１４における符号解析で、ＥＯＬ符号が検出されたか否かを判定する（Ｓ１５）。Ｓ１５において、ＥＯＬ符号が検出されていない場合（ＮＯである場合）、符号解析部２０４は、Ｓ１３へ処理を戻す。したがって、符号解析部２０４は、指定されたチャンネルに応じて受信したデータからＥＯＬ符号が検出されるまで、その受信したデータを伸張処理部２０５へ送信し続ける。
【００８１】
Ｓ１５において、ＥＯＬ符号が検出された場合（ＹＥＳである場合）、符号解析部２０４は、メモリ１０６に格納された全圧縮データの伸張が終了したか否かを判定する（Ｓ１６）。このＳ１６において、符号解析部２０４は、伸張が終了していない場合（ＮＯである場合）にはＳ１１へ処理を戻し、伸張が終了している場合（ＹＥＳである場合）には処理を終了する。
【００８２】
次に、振り分け部２０６の動作内容について、図１１を参照して説明する。図１１に示すように、処理が開始されると、振り分け部２０６は、チャンネル指定部２０３によるチャンネル指定があったか否かを判定する（Ｓ２１）。振り分け部２０６は、Ｓ２１の判定条件を満たすまで処理を待機する。
【００８３】
チャンネル指定があり、Ｓ２１の判定条件を満たす場合（ＹＥＳである場合）、振り分け部２０６は、指定されたチャンネルを示すチャンネル情報を保持するとともに、チャンネル指定を受け付けたことを示す受付済み信号を発行し、チャンネル指定部２０３へ出力する（Ｓ２２）。
【００８４】
次いで、振り分け部２０６は、伸張処理部２０５より受信した伸張データを、指定されたチャンネルに応じたバッファに送信する（Ｓ２３）。次いで、振り分け部２０６は、伸張処理部２０５より受信したデータからＥＯＬ符号を検出したか否かを判定する（Ｓ２４）。
【００８５】
Ｓ２４において、ＥＯＬ信号が検出されていない場合（ＮＯである場合）、振り分け部２０６は、Ｓ２３へ処理を戻す。したがって、振り分け部２０６は、伸張処理部２０５より受信した伸張データを、ＥＯＬ信号が検出されるまで、指定されたチャンネルに応じたバッファに格納し続け、ＥＯＬ信号が検出された場合は、指定されたチャンネルに応じたバッファへの格納を停止する。振り分け部２０６は、ＥＯＬ信号の検出に応じて、バッファへの伸張データの格納を停止することで、ブロックの終端での伸張データの振り分けを明確に行うことができる。
【００８６】
Ｓ２４において、ＥＯＬ信号が検出された場合（ＹＥＳである場合）、振り分け部２０６は、メモリ１０６に格納された全圧縮データの伸張が終了したか否かを判定する（Ｓ２５）。このＳ２５において、振り分け部２０６は、伸張が終了していない場合（ＮＯである場合）にはＳ２１へ処理を戻し、伸張が終了している場合（ＹＥＳである場合）には処理を終了する。
【００８７】
ここで、上述したチャンネル指定部２０３、符号解析部２０４、振り分け部２０６の各部の動作による、伸張部１０９ａにおける時分割伸張処理について、図８に戻って説明する。伸張部１０９ａにおける時分割伸張処理の手順は次のとおりである。
【００８８】
手順３−１：処理の起動がかけられると、チャンネル指定部２０３では、伸長すべきチャンネルを決定する。具体的には、有効期間内のチャンネルのバッファに1つのブロック分の伸長データを蓄積可能な空き容量があることを検出するとそのチャンネルを指定し、符号解析部２０４に送信する。なお、複数のチャンネルが条件を満たす場合は、内部で調停を行い、１つのチャンネルを指定する。より具体的には、有効期間の終了が近いチャンネルを優先的に指定するように、調停が行われる。
【００８９】
手順３−２：チャンネル指定の信号を受信した符号解析部２０４は、指定されたチャンネルのデータ入力部にリクエストを発行し、圧縮データを入力する。
【００９０】
手順３−３：符号解析部２０４は、圧縮データを図７で示した手順で符号解析し、ＥＯＬ符号検出位置までの圧縮データを伸張処理部２０５へ出力する。
【００９１】
手順３−４：伸張処理部２０５は、入力された圧縮データを伸長しつつ、ＥＯＬ符号を検出した時点でＥＯＬ信号を発行し、ブロックの終了を通知する。
【００９２】
手順３−５：振り分け部２０６は、伸張処理部２０５より受信した伸長データを、チャンネル指定部２０３により指定されたチャンネル（バッファ）に送信する。また、振り分け部２０６は、伸張処理部２０５よりＥＯＬ信号を受信すると、そのタイミングで伸張データの出力先のチャンネルを切り替える。
【００９３】
手順３−６：チャンネル指定部２０３は、符号解析部２０４から新たなチャンネル指定の受付信号を受信すると、次のチャンネル指定を開始する。ただし、次に指定するチャンネルが伸長処理中のチャンネルと同一の場合に関しては、そのブロックの伸長を待つか、バッファに２ブロック分以上の空き容量がある場合にのみ指定可能である。
【００９４】
以下に、チャンネルＣＨ１、チャンネルＣＨ２の入力データと、伸張処理部２０５に入力するマージ済みのデータの例を示す。具体的には、チャンネルＣＨ１⇒チャンネルＣＨ１⇒チャンネルＣＨ２⇒チャンネルＣＨ１⇒チャンネルＣＨ２⇒チャンネルＣＨ２の順序で時分割伸長されている例である。
【００９５】
チャンネルＣＨ１の入力データ：
符号ＣＡ⇒符号ＣＢ⇒符号ＣＣ⇒ＥＯＬ（ブロック１終了）⇒符号ＣＤ⇒符号ＣＥ⇒符号ＣＦ⇒ＥＯＬ（ブロック２終了）⇒符号ＣＧ⇒符号ＣＨ⇒ＥＯＬ（ブロック３終了）
【００９６】
チャンネルＣＨ２の入力データ：
符号ＣＩ⇒符号ＣＪ⇒符号ＣＫ⇒符号ＣＬ⇒ＥＯＬ（ブロック１終了）⇒符号ＣＭ⇒符号ＣＮ⇒ＥＯＬ（ブロック２終了）⇒符号ＣＯ⇒符号ＣＰ⇒ＥＯＬ（ブロック３終了）
【００９７】
伸長処理部へ入力されるマージ済みのデータ：
符号ＣＡ⇒符号ＣＢ⇒符号ＣＣ⇒ＥＯＬ（チャンネルＣＨ１：ブロック１終了）⇒符号ＣＤ⇒符号ＣＥ⇒符号ＣＦ⇒ＥＯＬ（チャンネルＣＨ１：ブロック２終了）⇒符号ＣＩ⇒符号ＣＪ⇒符号ＣＫ⇒符号ＣＬ⇒ＥＯＬ（チャンネルＣＨ２：ブロック１終了）⇒符号ＣＧ⇒符号ＣＨ⇒ＥＯＬ（チャンネルＣＨ１：ブロック３終了）⇒符号ＣＭ⇒符号ＣＮ⇒ＥＯＬ（チャンネルＣＨ２：ブロック２終了）⇒符号ＣＯ⇒符号ＣＰ⇒ＥＯＬ（チャンネルＣＨ２：ブロック３終了）
【００９８】
なお、本実施形態では圧縮データの区切り検出に符号ＣＶ（ＥＯＬ）の検出を用いたが、ブロックごとの区切り位置が検出可能であればいずれの符号を用いてもよい。例えば、ブロックごとのモードを示すラインヘッダなどの符号を検出して、圧縮データの区切り検出を行ってもよい。より具体的には、ラインヘッダを区切り検出に使用する場合には、ラインヘッダの直前までを１つのブロックとする。すなわち、ラインヘッダは、ブロックごとの区切り位置の開始を示す開始符号である。
【００９９】
また、本実施形態では伸長データの区切り検出にＥＯＬ信号を用いたが、伸張データにおいてブロックごとの伸張完了が検出可能であれば、特にＥＯＬ信号を用いる構成に限定しない。例えば、１ブロックのサイズが固定（ソフト設定可能である場合を含む）されている場合は、伸長データのデータサイズ（データ長）を検出するカウンタを振り分け部２０６が備え、１ブロック分の伸張が終了する度にチャンネル指定部２０３がチャンネルを切り替えてもよい。より具体的には、振り分け部２０６のカウンタが１ブロック分のデータサイズ（所定のデータ長）をカウントしたことをチャンネル指定部２０３に通知する。チャンネル指定部２０３は、振り分け部２０６からの通知に応じて符号解析部２０４、振り分け部２０６のチャンネル指定を解除して新たなチャンネル指定を行う。
【０１００】
上述した時分割処理において、伸張部１０９ａには、１ブロック分の伸張データが格納可能な容量を備えたバッファ２０８ａ、２０８ｂを用意する。具体的な理由は次のとおりである。
【０１０１】
チャンネルＣＨ１の伸張時において、１つのブロックサイズ分の伸張を終えるまではチャンネルＣＨ２の伸張を開始できない。また、チャンネルＣＨ１の伸張データを格納したバッファ２０８ａにおいて、その伸張データの出力が行われない場合には、バッファが空くことは無く、チャンネルＣＨ１のブロックの伸張が完了できない。この場合、チャンネルＣＨ２の伸張データを格納したバッファ２０８ｂにおいて、その浸透データの出力が進み、次の伸張データが必要となっても、チャンネルＣＨ２の伸張が開始できない。したがって、１ブロックの伸張データを格納できるだけの容量を備えたバッファが必要となる。なお、ブロックごとにブロックサイズが異なる場合には、想定される最大のブロックサイズ分のバッファを備える必要がある。
【０１０２】
なお、伸張部１０９ａでは、２チャンネルの場合を例示しているが、チャンネル数が２以外の多チャンネルの場合も同様であることは言うまでもない。具体的には、多チャンネルの場合は、２チャンネルの時と同様の理由により、そのチャンネル数に応じたブロック数分の伸張データが格納可能な容量を備えたバッファが必要となる。例えば、図６に示したように、チャンネル数が４である場合は、少なくとも３ブロック分の伸張データを格納できるだけの容量を備えたバッファが必要となる。また、チャンネル数がｎである場合は、少なくともｎ−１ブロック分の伸張データが格納可能な容量を備えたバッファが必要となる。
【０１０３】
［変形例］
次に、伸張部の変形例について、図１２を参照して説明する。なお、前述した実施形態と同一の要素については同一の符号を付して説明を省略し、以下では異なる部分についてのみを説明する。
【０１０４】
画像形成装置において用いられるプリンタ用の画像圧縮方式では、入力される画像データによっては、圧縮処理後のデータ（圧縮データ）の方が圧縮処理前のデータ（伸張データ）よりもサイズが大きくなる場合がある。このため、メモリ上のデータ容量を最小にするためには、あるチャンネルのデータは圧縮データをメモリに格納し、他のチャンネルのデータは伸張データをメモリに格納する場合がある。変形例では、伸張データにも対応した伸張部を説明する。
【０１０５】
なお、圧縮データが伸張データよりも大きいデータサイズであるか否かは、圧縮処理前後のデータサイズをカウントすることで検出できる。この検出結果に基づいて、メモリ上のデータ容量を最小とするように、圧縮データと伸張データとがメモリに格納されているものとする。また、メモリに格納されているデータが圧縮データであるか、又は、伸張データであるかは、データのヘッダに記録されているものとする。
【０１０６】
図１２に示すように、伸張部１０９ｂは、伸張データが伸張処理部２０５をスルーして（伸張処理部２０５を介することなく）、符号解析部２０４ａから振り分け部２０６ａに迂回するための迂回パスを備えている。符号解析部２０４ａは、データ入力部から入力されるデータのヘッダを確認し、圧縮データである場合は伸張処理部２０５へ出力し、伸張データである場合は迂回パスを経由して振り分け部２０６ａへ出力する。振り分け部２０６ａは、伸張処理部２０５が伸張した伸張データと、迂回パスを経由した伸張データとを、入力チャンネルに対応するバッファへ格納するように振り分ける。したがって、伸張部１０９ｂは、入力されるデータが伸張データである場合には、伸張処理が行われることがなく、伸張データの入力にも対応することができる。
【０１０７】
［第２の実施形態］
第２の実施形態では、用紙へのカラー画像の形成を電子写真方式で行う画像形成装置を例示する。図１３は、第２の実施形態に係る画像形成装置１ａの全体構成を説明する側面概略構成図である。
【０１０８】
図１３に示すように、画像形成装置１ａは、電子写真によるタンデム方式のもので、概略的には、像担持体である４つのドラム状の感光体ドラム２Ｙ（イエロー），２Ｃ（シアン），２Ｍ（マゼンタ），２Ｋ（ブラック）と、その感光体ドラム２Ｙ，２Ｃ，２Ｍ，２Ｋ上の静電潜像を現像ユニット３Ｙ，３Ｃ，３Ｍ，３Ｋにより現像することにより形成されるトナー画像を、一次転写装置４Ｙ，４Ｃ，４Ｍ，４Ｋにより回転体としての中間転写ベルト５Ｌ上に順次転写し、その中間転写ベルト５Ｌ上の画像を二次転写装置６Ｌにより転写体である用紙Ｐ上に一括転写する間接転写方式を採用したものである。
【０１０９】
中間転写ベルト５Ｌは、無端状のベルトであって、複数のローラ１０Ｌ〜１３Ｌによって張架されており、ローラ１０Ｌ〜１３Ｌのいずれかの軸に連結されたモータ（図示しない）により一定速度で回動方向Ａに駆動される。中間転写ベルト５Ｌおよび中間転写ベルト５Ｌの駆動部（モータおよびローラ１０Ｌ〜１３Ｌなど）により、中間転写ユニットが構成されている。このような中間転写ベルト５Ｌの上部側には、その中間転写ベルト５Ｌの回動方向Ａに沿って、イエロー，シアン，マゼンタ，ブラックの各色用に４個の上述した感光体ドラム２Ｙ，２Ｃ，２Ｍ，２Ｋを、並列にそれぞれ配置している。
【０１１０】
感光体ドラム２Ｙ，２Ｃ，２Ｍ，２Ｋの周回には、帯電装置７Ｙ，７Ｃ，７Ｍ，７Ｋと、前述した現像ユニット３Ｙ，３Ｃ，３Ｍ，３Ｋと、一次転写装置４Ｙ，４Ｃ，４Ｍ，４Ｋと、ブレードやブラシ等で構成されるクリーニング装置８Ｙ，８Ｃ，８Ｍ，８Ｋと、除電装置９Ｙ，９Ｃ，９Ｍ，９Ｋとがそれぞれ配設されている。
【０１１１】
一次転写装置４Ｙ，４Ｃ，４Ｍ，４Ｋは、中間転写ベルト５Ｌを挟んで感光体ドラム２Ｙ，２Ｃ，２Ｍ，２Ｋにそれぞれ対向配置されている。すなわち、中間転写ベルト５Ｌは、各一次転写装置４Ｙ，４Ｃ，４Ｍ，４Ｋと感光体ドラム２Ｙ，２Ｃ，２Ｍ，２Ｋとの間には挟まれた状態で回動するようになっている。
【０１１２】
感光体ドラム２Ｙ，２Ｃ，２Ｍ，２Ｋは、回転方向Ｂに回転駆動され、このとき帯電装置７Ｙ，７Ｃ，７Ｍ，７Ｋによって感光体ドラム２Ｙ，２Ｃ，２Ｍ，２Ｋの表面が所定の極性に帯電される。次いで、感光体ドラム２Ｙ，２Ｃ，２Ｍ，２Ｋの帯電面に、ＬＤ、ＬＥＤ、ＥＬ等による光書き込みユニットである光ビーム走査装置１６Ｌから画像データに応じたレーザ光が照射されることによって、感光体ドラム２Ｙ，２Ｃ，２Ｍ，２Ｋに静電潜像が形成される。このレーザ光の照射に係る画像データは、第１の実施形態で説明した伸張部で伸張され、画像データ出力部１１０から出力されるデータである。このようにして形成された静電潜像は、現像ユニット３Ｙ，３Ｃ，３Ｍ，３Ｋにより各色のトナー像にそれぞれ現像されて可視像化される。
【０１１３】
なお、画像データ出力部１１０は、光ビーム走査装置１６Ｌが感光体ドラム２Ｙ，２Ｃ，２Ｍ，２Ｋごとの帯電面に照射するラインバッファ１１０Ｙ、１１０Ｃ、１１０Ｍ、１１０Ｋを備えている。このラインバッファ１１０Ｙ、１１０Ｃ、１１０Ｍ、１１０Ｋは、光ビーム走査装置１６Ｌでレーザ光を照射する際にデータ加工（ミラー処理、フィルタ処理など）を行うための作業領域や、データ転送レートを確保するため領域として使用される。また、第１の実施形態と同様、伸張部が時分割で伸張する単位サイズ以上のデータが格納可能な容量を、ラインバッファ１１０Ｙ、１１０Ｃ、１１０Ｍ、１１０Ｋが備えている場合は、伸張部と共有して使用することで、前述した時分割処理に必要なバッファを追加する必要がない。
【０１１４】
このようにして現像された感光体ドラム２Ｙ，２Ｃ，２Ｍ，２Ｋ上のイエロー，シアン，マゼンタ，ブラックのトナー像は、一次転写装置４Ｙ，４Ｃ，４Ｍ，４Ｋの作用によって中間転写ベルト５の表面に順次重ね合わされた状態で転写されていき、フルカラーの合成カラー画像が形成される。
【０１１５】
なお、感光体ドラム２Ｙ，２Ｃ，２Ｍ，２Ｋは、感光体ドラム２Ｙ，２Ｃ，２Ｍ，２Ｋ上に残っているトナー像をクリーニング装置８Ｙ，８Ｃ，８Ｍ，８Ｋによりクリーニングされた後、除電装置９Ｙ，９Ｃ，９Ｍ，９Ｋにより除電される。
【０１１６】
二次転写装置６Ｌは、中間転写ベルト５Ｌを挟んでローラ１２Ｌに対向配置されている。このようなローラ１２Ｌ（中間転写ベルト５Ｌ）と二次転写装置６Ｌの間には、給紙ユニット（図示しない）から給紙された用紙Ｐが所定のタイミングで送り込まれる。ローラ１２Ｌ（中間転写ベルト５Ｌ）と二次転写装置６Ｌの間に用紙Ｐが紙搬送方向Ｃに向けて送り込まれると、中間転写ベルト５Ｌに担持されている合成カラー画像が二次転写装置６Ｌの作用により用紙Ｐに一括して転写される。
【０１１７】
その後、用紙Ｐ上の合成カラー画像は、定着装置１４Ｌにより熱と圧力によって定着され、排紙トレイ（図示しない）上に排出される。
【０１１８】
一方、合成カラー画像の転写後の中間転写ベルト５Ｌの表面に付着する転写残トナーは、クリーニング装置１５Ｌによって除去される。
【０１１９】
以上のように、用紙へのカラー画像形成を電子写真方式で行う画像形成装置１ａについて、第１の実施形態と同様の伸張部を適用することで、画像形成装置１ａにおける各色の画像データ（圧縮データ）を時分割で伸張してもよい。
【０１２０】
［第１の実施形態の変形例２］
次に、前述した第１の実施形態の変形例２について、図１４〜図１８を参照して説明する。図１４は、伸張部１０９、１０９ａ、１０９ｂの内部構成の一例を示したブロック図である。
【０１２１】
図１４に示すように、伸張部１０９、１０９ａ、１０９ｂは、データ入力部１０９１、入力バッファ１０９２、演算部１０９３、内部メモリ１０９４、出力バッファ１０９５、データ出力部１０９６を備える。すなわち、伸張部１０９、１０９ａ、１０９ｂは、データ入力部１０９１にて受け取ったデータを一旦入力バッファ１０９２に一定量蓄える（一時記憶する）。入力バッファ１０９２に蓄えたデータは、内部メモリ１０９４を作業領域とする演算部１０９３に出力されて加工（伸張）され、データ出力部１０９６から出力する前に出力バッファ１０９５に一旦蓄えられる。このように入力バッファ１０９２を備える構成によって、データ入力のタイミングと、演算部１０９３がデータを要求するタイミングとが異なっても、効率よくデータを転送することができる。出力バッファ１０９５を備える出力側に関しても同様のことがいえる。
【０１２２】
図１５は、伸張部１０９、１０９ａ、１０９ｂのタイミングチャートの一例であり、具体的には前述した第１の実施形態やその変形例にかかるタイミングチャートの一例である。図１５において、ＣＨ１［Ｎ］は、チャンネルＣＨ１の第Ｎブロック目のデータであることを示す。ＣＨ２［Ｍ］は、チャンネルＣＨ２の第Ｍブロック目のデータであることを示す。
【０１２３】
また、時刻Ｔ１〜Ｔ６は次のとおりである。
時刻Ｔ１：ＣＨ１［Ｎ］の伸張開始（データ入力開始）時点
時刻Ｔ２：ＣＨ１［Ｎ］の伸張後のデータ出力が開始され、それにより、チャンネルＣＨ１の後段バッファ（出力バッファ１０９５）の空き状況が「無し」となる時点
時刻Ｔ３：ＣＨ２［Ｍ］の伸張開始（データ入力開始）時点
時刻Ｔ４：ＣＨ２［Ｍ］のデータ入力終了時点
時刻Ｔ５：ＣＨ１［Ｎ］の伸張後のデータ出力が終了し、アービトレーション（調停）が実施される時点
時刻Ｔ６：チャンネルＣＨ１の後段バッファのデータを使い切り（全て出力され）、後段バッファの空き状況が「有り」となる時点
【０１２４】
伸張部１０９、１０９ａ、１０９ｂに入力されて伸張されるデータは、圧縮されたデータであるため、圧縮効率によっては非常に小さいサイズとなりうる。したがって、入力されたデータが伸張部１０９、１０９ａ、１０９ｂの内部バッファ（入力バッファ１０９２、出力バッファ１０９５）のサイズと同程度であった場合、図１５に示すように、ＣＨ１［Ｎ］のデータ出力が終了する前（時刻Ｔ５）に、ＣＨ２［Ｍ］のデータの入力が終了する（時刻Ｔ４）場合がある。この場合、ＣＨ１［Ｎ］のデータ出力が終了したタイミング（時刻Ｔ５）でアービトレーションが実施されると、まだチャンネルＣＨ２の後段バッファの空きが「無し」になる前に、さらに次（ＣＨ２［Ｍ＋１］）のデータが入力されることとなる。ＣＨ２［Ｍ＋１］のデータを出力し終えるまでは、ＣＨ１［Ｎ＋１］のデータを出力することができないため、データの出力が停滞することにつながる。
【０１２５】
このようなデータの出力の停滞は、後段バッファの空き状態を正確に検知できるように、１ブロック分の伸張されたデータがすべて出力し終えるまでアービトレーションを実施しないようにすれば防止できる。すなわち、変形例２では、入力バッファ１０９２に一時記憶された全ての圧縮データが演算部１０９３（伸張処理部２０５に相当）により伸張されて出力バッファ１０９５に出力されるまで、前述したチャンネル指定部２０３が待機してから次の入力チャンネルの指定を行うことで、１ブロック分の伸張されたデータがすべて出力し終えるまでアービトレーションを実施しないようにしている。
【０１２６】
図１６は、伸張部１０９、１０９ａ、１０９ｂのタイミングチャートの一例であり、具体的には第１の実施形態の変形例２にかかるタイミングチャートの一例である。図１６において、ＣＨ１［Ｎ］、ＣＨ２［Ｍ］は図１５と同様である。
【０１２７】
また、時刻Ｔ１１〜Ｔ１５は次のとおりである。
時刻Ｔ１１：ＣＨ１［Ｎ］の伸張開始（データ入力開始）時点
時刻Ｔ１２：ＣＨ１［Ｎ］の伸張後のデータ出力が開始され、それにより、チャンネルＣＨ１の後段バッファの空き状況が「無し」となる時点
時刻Ｔ１３：ＣＨ１［Ｎ］の伸張後のデータ出力が終了し、その後、アービトレーションが実施されて後段バッファに空きがあるチャンネルＣＨ２が選択された時点
時刻Ｔ１４：ＣＨ２［Ｍ］の伸張後のデータ出力が開始され、それにより、チャンネルＣＨ２の後段バッファの空き状況が「無し」となる時点
時刻Ｔ１５：ＣＨ２［Ｍ］の伸張後のデータ出力が終了し、その後、アービトレーションが実施されて後段バッファに空きがあるチャンネルＣＨ１が選択された時点
【０１２８】
変形例２では、入力バッファ１０９２に格納されたデータが演算部１０９３により伸張されて出力バッファ１０９５へ出力されるまで待機してから、次の入力チャンネルの指定をチャンネル指定部２０３が行うため、入力データが極端に小さい場合（ＣＨ２［Ｍ］）であっても、そのブロック分の伸張されたデータが出力バッファ１０９５へ出力し終えるまで（時刻Ｔ１５）次のアービトレーションが行われない。したがって、アービトレーションの時点（時刻Ｔ１５）では後段バッファの空き状況を正確に検知することが可能となっている。この場合は、ブロックの処理ごとに待ちが発生すること、伸張部１０９、１０９ａ、１０９ｂにデータの入力を開始してから伸張されたデータの出力が開始されるまでの時間（時刻Ｔ１１−Ｔ１２、時刻Ｔ１３−Ｔ１４）が長いことなどのオーバーヘッドの発生がある。
【０１２９】
このオーバーヘッドを削減するため、変形例２では、チャンネル指定部２０３は、入力チャンネルとして複数のチャンネルを指定し、その複数のチャンネルに対応した入力バッファの各々に一時記憶された圧縮データの全てが伸張されるまで待機してから次の入力チャンネルの指定を行っている。
【０１３０】
図１７は、伸張部１０９、１０９ａ、１０９ｂのタイミングチャートの一例であり、具体的には変形例２において複数のチャンネルを指定する場合のタイミングチャートの一例である。図１７において、ＣＨ１［Ｎ］、ＣＨ２［Ｍ］は図１５、図１６と同様である。
【０１３１】
また、時刻Ｔ２１〜Ｔ２６は次のとおりである。
時刻Ｔ２１：アービトレーションを開始した時点である。この時点では後段バッファの空きが「有り」となっているチャンネルＣＨ１、ＣＨ２の両方が選択される。また、選択されたチャンネルＣＨ１、ＣＨ２のうち、チャンネルＣＨ１の符号（ＣＨ１［Ｎ］）が入力され始める。
時刻Ｔ２２：ＣＨ１［Ｎ］の伸張後のデータ出力が開始され、それにより、チャンネルＣＨ１の後段バッファの空き状況が「無し」となる時点
時刻Ｔ２３：時刻Ｔ２１の時点におけるアービトレーションにて選択されていたチャンネルＣＨ２の符号（ＣＨ２［Ｍ］）が入力され始める。
時刻Ｔ２４：ＣＨ１［Ｎ］の伸張後のデータ出力が終了した時点である。この時点では次のアービトレーションを実施しない。
時刻Ｔ２５：チャンネルＣＨ１の後段バッファを使い切り、後段バッファの空き状態が「有り」に変化する時点
時刻Ｔ２６：ＣＨ２［Ｍ］の伸張後のデータ出力が終了した時点である。この時点では、時刻Ｔ２１の時点におけるアービトレーションにて選択されていた全てのチャンネルで伸張後のデータを出力し終え、次のアービトレーションが実施される。図示例では、後段バッファに空きのあるチャンネルＣＨ１が選択され、その符号（ＣＨ１［Ｎ＋１］）が入力され始める。
【０１３２】
変形例２では、上述したオーバーヘッドを削減するために、１回のアービトレーションで１つのチャンネルを指定するのではなく、後段バッファに空きのある全てのチャンネルを指定する。なお、指定された複数のチャンネルにおいて、どのような順序で処理をするかは、さらにアービトレーションをするか、固定順位をつけてよい。そして、アービトレーションで指定されたチャンネルの入力バッファ１０９２の各々に一時記憶された圧縮データの全てが、演算部１０９３により伸張されて出力バッファ１０９５に出力し終えるのを待ってから、次のアービトレーションを実施する。したがって、アービトレーションの時点では、各チャンネルの後段バッファの空き状態を正確に検知できる。また、アービトレーションを実施するたびに発生するオーバーヘッドを全体的に減らすことが可能である。具体的には、オーバーヘッド分の時間は、図１６の場合に比べて、１／［同時伸張するチャンネル数］となることが期待される。
【０１３３】
図１８は、変形例２にかかるチャンネル指定部２０３の動作内容を示すフローチャートである。図１８に示すように、Ｓ３１〜Ｓ３５では、１回のアービトレーションで複数のチャンネルを選択可能となっている。また、Ｓ３６〜Ｓ４２では、アービトレーションで選択された全てのチャンネルの符号が伸張されて出力されるまで待機するフローとなっている。
【０１３４】
具体的には、処理が開始されると、チャンネル指定部２０３は、有効な全てのチャンネルの後段バッファに十分な空き容量があるか否かを判定する（Ｓ３１）。十分な空き容量がない場合（Ｓ３１：ＹＥＳ）は処理を待機する。十分な空き容量がある場合（Ｓ３１：ＮＯ）はＳ３２へ処理を進める。
【０１３５】
Ｓ３２において、チャンネル指定部２０３は、チャンネルＣＨ１が有効であり、且つ、チャンネルＣＨ１の後段バッファに十分な空き容量があるか否かを判定する。Ｓ３２において肯定（ＹＥＳ）判定の場合、チャンネル指定部２０３はチャンネルＣＨ１を選択（指定）する（Ｓ３３）。Ｓ３２において否定（ＮＯ）判定の場合、チャンネル指定部２０３はチャンネルＣＨ１を選択することなくＳ３４へ処理を進める。
【０１３６】
Ｓ３４において、チャンネル指定部２０３は、チャンネルＣＨ２が有効であり、且つ、チャンネルＣＨ２の後段バッファに十分な空き容量があるか否かを判定する。Ｓ３２において肯定（ＹＥＳ）判定の場合、チャンネル指定部２０３はチャンネルＣＨ２を選択（指定）する（Ｓ３５）。Ｓ３４において否定（ＮＯ）判定の場合、チャンネル指定部２０３はチャンネルＣＨ２を選択することなくＳ３６へ処理を進める。
【０１３７】
Ｓ３６において、チャンネル指定部２０３は、チャンネルＣＨ１が選択済みであるか否かを判定する。Ｓ３６において否定（ＮＯ）判定の場合、チャンネル指定部２０３はＳ３９へ処理を進める。Ｓ３６において肯定（ＹＥＳ）判定の場合、チャンネル指定部２０３は、チャンネルＣＨ１の伸張後のデータの出力が完了したか否か、すなわち、チャンネルＣＨ１の入力バッファ１０９２に一時記憶された圧縮データが伸張され、その出力が終了したか否かを判定する（Ｓ３７）。Ｓ３７において、否定（ＮＯ）判定の場合はそのまま処理を待機し、肯定（ＹＥＳ）の場合はチャンネルＣＨ１の選択を解除（Ｓ３８）してからＳ３９へ処理を進める。
【０１３８】
Ｓ３９において、チャンネル指定部２０３は、チャンネルＣＨ２が選択済みであるか否かを判定する。Ｓ３９において否定（ＮＯ）判定の場合、チャンネル指定部２０３はＳ４１へ処理を進める。Ｓ３９において肯定（ＹＥＳ）判定の場合、チャンネル指定部２０３は、チャンネルＣＨ２の伸張後のデータの出力が完了したか否か、すなわち、チャンネルＣＨ２の入力バッファ１０９２に一時記憶された圧縮データが伸張され、その出力が終了したか否かを判定する（Ｓ４０）。Ｓ４０において、否定（ＮＯ）判定の場合はそのまま処理を待機し、肯定（ＹＥＳ）の場合はチャンネルＣＨ２の選択を解除（Ｓ４１）してからＳ４２へ処理を進める。Ｓ４２において、チャンネル指定部２０３は、全データの処理が終了したか否かを判定し、肯定（ＹＥＳ）判定の場合は処理を終了し、否定（ＮＯ）判定の場合はＳ３１へ処理を戻す。
【０１３９】
なお、上述したフローチャートでは、複数のチャンネルが同時に選択された場合に、常にチャンネルＣＨ１から処理される、固定優先順位であるが、最後に処理されたチャンネル、すなわち、チャンネル指定部２０３が直近に指定した入力チャンネルに応じて、処理の順序を変更してもよい。例えば、直近にチャンネルＣＨ１が指定され、そのチャンネルＣＨ１の処理が行われていた場合、チャンネルＣＨ１の優先順位を最下位にする（例えばＳ３１及びＳ３３をＳ３４及びＳ３５より後にする）ことで、チャンネルごとの不平等を緩和してもよい。
【０１４０】
また、上述したフローチャートでは、２つのチャンネルの場合についての説明となっているが、オーバーヘッドが発生する回数はアービトレーションする回数に等しいため、同時に動作するチャンネル数が多い（指定するチャンネル数が多い）ほど、オーバーヘッドを削減する効果が大きくなる（同時動作のチャンネル数が多いほど、チャンネル数×ブロック数に対するアービトレーションの回数の割合が下がる）。
【０１４１】
なお、上記実施形態における画像形成装置は、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能のうち少なくとも２つの機能を有する複合機や、プリンタ、スキャナ装置、ファクシミリ装置等であればいずれにも適用することができる。
【０１４２】
また、上記施形態では、本発明の復号装置について、インクジェット方式でカラー画像を用紙上に形成する画像形成装置１や、電子写真方式でカラー画像を用紙上に形成する画像形成装置１ａへの適用例を説明したが、適用する装置は上述した画像形成装置に特に限定しない。本発明の復号装置を適用する機器は、チャンネル毎に入力される圧縮データの復号が必要な機器であればいずれであってもよく、例えば携帯電話や画像処理装置などにも本発明の復号装置を適用可能である。
【符号の説明】
【０１４３】
１、１ａ  画像形成装置
３４  記録ヘッド
１００  プリンタコントローラ
１０１  データ入力部
１０２  ＣＰＵ
１０３  画像処理部
１０４  エンジン制御部
１０５  モータ・センサ部
１０６  メモリ
１０７  メモリコントローラ
１０８  圧縮部
１０９、１０９ａ、１０９ｂ  伸張部
１１０  画像データ出力部
１１０Ｙ、１１０Ｃ、１１０Ｍ、１１０Ｋ  ラインバッファ
１１１  バス
２００  外部機器
２０１  コントローラ
２０２Ｋ、２０２Ｃ、２０２Ｍ、２０２Ｙ、２０２ａ、２０２ｂ  データ入力部
２０３  チャンネル指定部
２０４、２０４ａ  符号解析部
２０５  伸張処理部
２０６、２０６ａ  振り分け部
２０７Ｋ、２０７Ｃ、２０７Ｍ、２０７Ｙ  データ出力Ｉ／Ｆ
２０８Ｋ、２０８Ｃ、２０８Ｍ、２０８Ｙ、２０８ａ、２０８ｂ  バッファ
【先行技術文献】
【特許文献】
【０１４４】
【特許文献１】特開２００５−９６３４３号公報
【特許文献２】特開平１１−１７７８３１号公報
【図１】
2010233201.tif 000003
【図２】
2010233201.tif 000004
【図３】
2010233201.tif 000005
【図４】
2010233201.tif 000006
【図５】
2010233201.tif 000007
【図６】
2010233201.tif 000008
【図７】
2010233201.tif 000009
【図８】
2010233201.tif 000010
【図９】
2010233201.tif 000011
【図１０】
2010233201.tif 000012
【図１１】
2010233201.tif 000013
【図１２】
2010233201.tif 000014
【図１３】
2010233201.tif 000015
【図１４】
2010233201.tif 000016
【図１５】
2010233201.tif 000017
【図１６】
2010233201.tif 000018
【図１７】
2010233201.tif 000019
【図１８】
2010233201.tif 000020