(57)【特許請求の範囲】
【請求項１】
コンピュータであって、  少なくとも１つのプロセッサと、  メモリと、  前記メモリに記憶されたプログラム命令であって、前記少なくとも１つのプロセッサによる実行の際に、前記コンピュータに、  第１エントロピー符号化ルックアップテーブルに従って各々の一連の画素データを符号化する一連の符号語を含むデータストリームを受信する工程と、 第１符号語および第２符号語と、ゼロのランに応じた完全なルックアップテーブルのエントリをゼロのランまたは１のランに応じた完全なルックアップテーブルのエントリにカスケード接続された第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致があるかどうか判断するためのデータストリームを処理する工程であって、前記第１符号語および第２符号語は、前記データストリーム内の連続した符号語であり、前記第２エントロピー符号化ルックアップテーブルは、前記第１エントロピー符号化ルックアップテーブルと異なる工程と、 前記第１符号語および第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がある場合、前記第２エントロピー符号化ルックアップテーブルを使用して前記第１符号語および第２符号語を復号する工程と、 前記第１符号語および第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がない場合、前記第１エントロピー符号化ルックアップテーブルを使用して前記第１符号語を復号する工程と、を含む工程を実施させるプログラム命令を備え、  前記第２エントロピー符号化ルックアップテーブルは、一組の第１符号語および第２符号語をそれぞれが備える少なくとも複数のエントリを含み、前記各組の第１符号語は、ゼロのランに相当する前記第１エントロピー符号化ルックアップテーブルの１以上のエントリから選択され、前記各組の第２符号語は、ゼロのランまたは１のランに相当する前記第１エントロピー符号化ルックアップテーブルの１以上のエントリから選択されるコンピュータ。
【請求項２】
請求項１に記載のコンピュータであって、さらに、  前記第１エントロピー符号化ルックアップテーブルの前記第１符号語および符号語エントリ間の一致を識別するために前記データストリームを処理する工程であって、前記コンピュータは、前記第１符号語および第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致があるかどうか判断するための前記データストリームの処理と並行して、前記第１エントロピー符号化ルックアップテーブルの前記第１符号語および符号語エントリ間の一致を識別するために前記データストリームの処理を行う工程を実施させるプログラム命令を備える、コンピュータ。
【請求項３】
請求項１又は２に記載のコンピュータであって、  前記第２エントロピー符号化ルックアップテーブルは、前記第１符号語および第２符号語の組の各固有の組み合わせを含むコンピュータ。
【請求項４】
請求項１乃至３のいずれか１項に記載のコンピュータであって、さらに、 前記第１符号語および第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がある場合、および第３符号語および第４符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致があるかどうか判断するために前記データストリームを処理する工程であって、前記第１、第２、第３、および第４符号語は、前記データストリームの連続した符号語である工程を実施させるプログラム命令を備える、コンピュータ。
【請求項５】
請求項４に記載のコンピュータであって、さらに、  （ｉ）前記第１符号語および第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がある場合、および（ｉｉ）前記第３符号語および前記第４符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がある場合、前記第２エントロピー符号化ルックアップテーブルを使用して前記第３符号語および前記第４符号語を復号する工程と、  （ｉ）前記第１符号語および第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がある場合、および（ｉｉ）前記第３符号語および前記第４符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がない場合、前記第１エントロピー符号化ルックアップテーブルを使用して前記第３符号語を復号する工程と、を実施させるプログラム命令を備えるコンピュータ。
【請求項６】
請求項１乃至５のいずれか１項に記載のコンピュータであって、さらに、 前記第１符号語および第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がない場合、前記第２符号語および第３符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致があるかどうか判断するために前記データストリームを処理する工程であって、前記第２および第３符号語は、前記データストリーム内の連続した符号語である工程を実施させるプログラム命令を備えるコンピュータ。
【請求項７】
請求項６に記載のコンピュータであって、さらに、  （ｉ）前記第１符号語および第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がない場合、および（ｉｉ）前記第２符号語および第３符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がある場合、前記第２エントロピー符号化ルックアップテーブルを使用して前記第２符号語および第３符号語を復号する工程と、  （ｉ）前記第１符号語および第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がない場合、および（ｉｉ）前記第２符号語および前記第３符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がない場合、前記第１エントロピー符号化ルックアップテーブルを使用して前記第２符号語を復号する工程と、を実施させるプログラム命令を備えるコンピュータ。
【請求項８】
請求項１乃至７のいずれか１項に記載のコンピュータであって、  前記第２エントロピー符号化ルックアップテーブルを使用して前記第１符号語および前記第２符号語を復号する工程は、クロックサイクル・スループット当たり平均２画素を保証するコンピュータ。
【請求項９】
請求項１乃至８のいずれか１項に記載のコンピュータであって、  前記第１エントロピー符号化ルックアップテーブルは、Ｈｕｆｆｍａｎエントロピー符号化ルックアップテーブルであるコンピュータ。
【請求項１０】
請求項１乃至９のいずれか１項に記載のコンピュータであって、さらに、  前記第１符号語、または前記第１符号語および第２符号語の前記復号する工程に基づき、１以上の印刷エンジンまたは表示モニタに出力データストリームを提供する工程を実施させるプログラム命令を備えるコンピュータ。
【請求項１１】
請求項１０に記載のコンピュータであって、さらに、  １以上の前記印刷エンジンまたは前記表示モニタに前記出力データストリームを提供する工程の前に、前記出力データストリームを逆量子化する工程と、前記出力データストリームに逆空間周波数変換を実行する工程とを実施させるプログラム命令を備えるコンピュータ。
【請求項１２】
データストリームを復号するためのシステムであって、  前記データストリームを受信するための入力バッファであって、前記データストリームは、エントロピー符号化ルックアップテーブルに従って一連の符号語に符号化されたデータを含む入力バッファと、  前記入力バッファに接続されたプロセッサであって、    前記データストリーム内の連続した符号語がゼロのランに続くゼロのランまたは１のランに続くゼロのランに相当するかどうかを判断し、    前記連続した符号語がゼロのランに続くゼロのランまたは１のランに続くゼロのランに相当する場合、ゼロのランに応じた完全なルックアップテーブルのエントリをゼロのランまたは１のランに応じた完全なルックアップテーブルのエントリにカスケード接続する修正されたエントロピー符号化ルックアップテーブルを使用して前記連続した符号語を復号する工程の少なくとも一部に基づく出力を提供し、    前記連続した符号語がゼロのランに続くゼロのランまたは１のランに続くゼロのランに相当しない場合、前記エントロピー符号化ルックアップテーブルを使用して前記連続した符号語の第１符号語を復号する工程の少なくとも一部に基づく前記出力を提供するように構成されたプロセッサと、を備え、  前記修正されたエントロピー符号化ルックアップテーブルは、一組の第１符号語および第２符号語をそれぞれが備える少なくとも複数のエントリを含み、前記各組の第１符号語は、ゼロのランに相当する前記エントロピー符号化ルックアップテーブルの１以上のエントリから選択され、前記各組の第２符号語は、ゼロのランまたは１のランに相当する前記エントロピー符号化ルックアップテーブルの１以上のエントリから選択されるシステム。
【請求項１３】
請求項１２に記載のシステムであって、  前記修正されたエントロピー符号化ルックアップテーブルを使用して前記連続した符号語を復号する工程の少なくとも一部に基づく前記出力を提供する工程は、クロックサイクル・スループット当たり平均２画素を保証するシステム。
【請求項１４】
請求項１２又は１３に記載のシステムであって、  前記エントロピー符号化ルックアップテーブルは、Ｈｕｆｆｍａｎエントロピー符号化ルックアップテーブルであるシステム。
【請求項１５】
請求項１２乃至１４のいずれか１項に記載のシステムであって、  前記入力バッファおよび前記プロセッサは、印刷デバイスに含まれるシステム。
【請求項１６】
コンピュータプログラムであって、  第１エントロピー符号化ルックアップテーブルに従って各々の一連の画素データを符号化する一連の符号語を含むデータストリームを受信する工程と、 第１符号語および第２符号語と、ゼロのランに応じた完全なルックアップテーブルのエントリをゼロのランまたは１のランに応じた完全なルックアップテーブルのエントリにカスケード接続された第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致があるかどうか判断するために前記データストリームを処理する工程であって、前記第１符号語および第２符号語は、前記データストリーム内の連続した符号語であり、前記第２エントロピー符号化ルックアップテーブルは、前記第１エントロピー符号化ルックアップテーブルと異なる工程と、 前記第１符号語および第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がある場合、前記第２エントロピー符号化ルックアップテーブルを使用して前記第１符号語および第２符号語を復号する工程と、 前記第１符号語および第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がない場合、前記第１エントロピー符号化ルックアップテーブルを使用して前記第１符号語を復号する工程と、を備える一連の動作をプロセッサに実行させ、  前記第２エントロピー符号化ルックアップテーブルは、一組の第１符号語および第２符号語をそれぞれが備える少なくとも複数のエントリを含み、前記各組の第１符号語は、ゼロのランに相当する前記第１エントロピー符号化ルックアップテーブルの１以上のエントリから選択され、前記各組の第２符号語は、ゼロのランまたは１のランに相当する前記第１エントロピー符号化ルックアップテーブルの１以上のエントリから選択されるプログラム。
【請求項１７】
請求項１６に記載のコンピュータプログラムであって、  前記一連の動作は、さらに、  前記第１エントロピー符号化ルックアップテーブルの前記第１符号語および符号語エントリ間の一致を識別するために前記データストリームを処理する工程であって、前記第１エントロピー符号化ルックアップテーブルの前記第１符号語および符号語エントリ間の一致を識別するために前記データストリームを処理する工程は、前記第１符号語および第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致があるかどうか判断するために前記データストリームを処理する工程と並行して行われる工程を備えるプログラム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ復号技術に関する。
【背景技術】
【０００２】
近年、さまざまな種類の印刷デバイスが業務用および民生用の両方で普及してきている。従来の白黒のプリンタに加え、カラープリンタ、スキャナ、コピー機、ファックス機、およびその他の装置も今日では一般的である。これらの機能の２つ以上に対応している複合機（ＭＦＰ）もまた広く普及している。他の機能のうち、これらの装置は画像データの処理に利用される。
【０００３】
画像データの処理には、例えば、圧縮および符号化操作、および／または解凍および復号操作を含めてもよい。画像処理技術の一例は、ジョイント・フォトグラフィック・エキスパート・グループ（ＪＰＥＧ）規格により定義される。一般に、画像データのＪＰＥＧ符号化処理には、空間周波数変換、量子化、データシーケンシング（順序付け）、およびエントロピー符号化が含まれ、画像データのＪＰＥＧ復号処理には、エントロピー復号のようなＪＰＥＧ符号化処理の逆、逆データシーケンシング（順序付け）、逆量子化、および逆空間周波数変換が含まれる。
【０００４】
より効率的で、確実な、およびより速いデータ処理に役立てるため、従来の方法およびシステムの配置が改善されること、または少なくとも１以上の有益な代替を提供することが望ましい。
【発明の概要】
【０００５】  例示の実施形態において、コンピュータに実装された方法は、コンピューティング・デバイスによる、第１エントロピー符号化ルックアップテーブルに従った各々の一連の画素データを符号化する一連の符号語を含むデータストリームを受信する工程、および前記コンピューティング・デバイスによる、第１符号語および第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致があるかどうか判断するため前記データストリームを処理する工程を備える。本例では、前記第１符号語および前記第２符号語は、前記データストリーム内の連続した符号語であり、前記第２エントロピー符号化ルックアップテーブルは、前記第１エントロピー符号化ルックアップテーブルとは異なる。本例の方法には、また、前記第１符号語および前記第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がある場合、前記コンピューティング・デバイスにより、前記第２エントロピー符号化ルックアップテーブルを使用して前記第１符号語および前記第２符号語を復号する工程が含まれる。さらに、本例の方法には、前記第１符号語および前記第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がない場合、前記コンピューティング・デバイスにより、前記第１エントロピー符号化ルックアップテーブルを使用して前記第１符号語を復号する工程が含まれる。
【０００６】
他の例示の実施形態においては、データストリームの復号のためのシステムは、エントロピー符号化ルックアップテーブルに従って一連の符号語に符号化されたデータを含むデータストリームを受信するための入力バッファ、および前記入力バッファに接続されたプロセッサを備える。本例では、前記プロセッサは、データストリーム内の連続した符号語がゼロのランまたは１のランに続くゼロのランに相当するかどうか判断し、前記連続した符号語がゼロのランまたは１のランに続くゼロのランに相当する場合、修正されたエントロピー符号化ルックアップテーブルを使用した前記連続した符号語の復号の少なくとも一部に基づく出力を提供するように構成される。さらに、本例では、前記プロセッサは、前記連続した符号語がゼロのランまたは１のランに続くゼロのランに相当しない場合、前記エントロピー符号化ルックアップテーブルを使用した前記連続した符号語の第１符号語の復号の少なくとも一部に基づく出力を提供するように構成される。
【０００７】  さらなる例示の実施形態においては、コンピュータプログラムは、コンピューティング・デバイスによる、第１エントロピー符号化ルックアップテーブルに従って各々の一連の画素データを符号化する一連の符号語を含むデータストリームを受信する工程と、第１符号語および第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致があるかどうか判断するためデータストリームを処理する工程とを備える一連の動作を実行させる。本例では、前記第１符号語および前記第２符号語は、前記データストリーム内の連続した符号語であり、前記第２エントロピー符号化ルックアップテーブルは、前記第１エントロピー符号化ルックアップテーブルとは異なる。本例では、前記一連の動作には、また、前記第１符号語および前記第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がある場合、前記第２エントロピー符号化ルックアップテーブルを使用して前記第１符号語および前記第２符号語を復号する工程が含まれる。さらに、本例では、前記一連の動作には、前記第２エントロピー符号化ルックアップテーブルに前記第１符号語および前記第２符号語と、前記第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がない場合、前記第１エントロピー符号化ルックアップテーブルを使用して前記第１符号語を復号する工程が含まれる。
【０００８】
他の態様、有利な点、および代替案と同様、これらのことは、必要に応じて添付図面を参照して以下の詳細な説明を読むことによって当業者にとって明白になるであろう。さらに、本明細書における当該概要および他のセクションで提供されている説明は、請求されている主題を限定のためでなく例として示すことを意図していることを理解されたい。
【図面の簡単な説明】
【０００９】
【図１】従来のカスケード型Ｈｕｆｆｍａｎ復号器の図表ブロックおよび処理図を示す。
【図２】例示の実施形態に係るコンピューティング・デバイスを示す。
【図３】例示の実施形態に係るコンピューティング・デバイスのデータ処理構成要素をブロック図にて示す。
【図４】例示の実施形態に係る画像処理に利用する格納要素およびデータをブロック図にて示す。
【図５】８×８データブロック用の所定のデータシーケンスの一例を示す。
【図６】例示の実施形態に係るコンピューティング・デバイスのデータ処理構成要素をブロック図にて示す。
【図７】例示の実施形態に係る画像処理に利用する格納要素およびデータをブロック図にて示す。
【図８】例示の実施形態に従ったデータ復号器システムをブロック図にて示す。
【図９】例示の実施形態に従ったデータの復号方法を示す。
【発明を実施するための形態】
【００１０】
本明細書において、例示の方法およびシステムを記述する。さらに他の例示的な実施形態または特徴を利用してもよく、また本明細書において提示されている主題の主旨または範囲から逸脱することなく、その他の変更がなされてもよい。以下の詳細な説明において、本明細書の一部を構成する添付図面を参照する。
【００１１】
本明細書において記載されている例示的な実施形態は限定することを意図するものではない。本明細書において全般的に記載され、そして図面に示されているように、本開示の諸態様は、様々に異なる構成に配置し、置き換え、結合し、分割し、および設計することができ、そしてそれらの全てが本明細書において明瞭に熟慮されていることは容易に理解されるであろう。説明の目的のため、印刷デバイスおよび画像データの処理に関して、特徴および機能が説明される。しかしながら、本明細書中に開示される特徴および機能は、また、他のタイプのコンピューティング・デバイス（例えば、表示デバイス）、コンピューティング・デバイスの構成要素（例えば、データ復号器、プロセッサ、格納要素、など）、および他のタイプのデータ（例えば、音声データおよび／または映像データ）の処理に適用可能でもよい。
［１．概要］
【００１２】
印刷技術は、白黒画像のみを生成する簡単なドットマトリクスベースの出力デバイスから高解像度のカラー画像を生成することができる今日の進歩したレーザーベースの印刷デバイスへと過去３０年以上にわたって発展してきた。それと共に、最近の印刷デバイスは、また、コピー機、スキャナ、およびファックス機として機能してもよい。そうするため、印刷デバイスは、印刷しまたはファックスするために待ち行列に入れられた、またはスキャンされた多くの電子文書のための画像データを格納することができてもよい。従って、多くの印刷デバイスは、例えば、１以上のプロセッサ、データ記憶部、および入出力インターフェースを含めてもよいコンピューティング・デバイスの特殊な形態である。
【００１３】
住宅、企業または別の種類の場所で使用されるかどうかにかかわらず、印刷デバイスは、他のいろいろなコンピューティング・デバイスと通信可能に接続可能な共有のリソースであってもよい。従って、状況によっては、多くのコンピューティング・デバイスが印刷のために電子文書を印刷デバイスに送信する場合があるので、印刷デバイスに対する格納および処理の要求はかなり高い場合がある。一般的には、印刷デバイスは、早着順に一度に一つの電子文書を印刷、コピー、ファックス、および／またはスキャンすることがよくある。従って、印刷デバイスは、ともすれば、処理されるのを待っている多数の電子文書を格納してもよい。データ記憶部（例えば、ランダム・アクセス・メモリ（ＲＡＭ）、固体メモリ、ハードドライブメモリ、および／またはフラッシュメモリのようなメモリ）の費用は高価な可能性が高いため、印刷デバイスのデータ格納要件を減少するために、格納された電子文書を圧縮することは有益かもしれない。それと共に、電子文書によっては印刷デバイスおよびコンピューティング・デバイスに、および／または印刷デバイスおよびコンピューティング・デバイスに、および／またはから転送される可能性があるため、これらの電子文書を圧縮することは、転送をより速くし、ネットワーク容量の利用をより少なくするかもしれない。
【００１４】
さらに、印刷ジョブは大きい可能性があるため（例えば、印刷ジョブには何百ものページを含む１以上の電子文書を含む可能性がある）、待ち行列に並んだ印刷ジョブを圧縮することにより、各ジョブの印刷前の短期的なストレージスペースが省かれる。これに加えて、ユーザは、後で印刷するために長期的なストレージに印刷ジョブを保存することを望むかもしれない。このように、印刷ジョブの圧縮は、より多くの印刷ジョブの保存を可能にするかもしれない。さらに、大きな印刷ジョブを長期メモリに保存し、取得する動作は時間がかかる可能性があるが、印刷ジョブを圧縮してサイズを小さくすることより、動作が速められるかもしれない。
【００１５】
印刷ジョブ（および他のタイプのデータ）を圧縮し、続いて解凍する１つ技術では、エントロピー符号化を利用する。Ｈｕｆｆｍａｎ符号化は、画像データ、映像データ、音声データ、などを圧縮するために通常利用されるエントロピー符号化の一例である。一般に、Ｈｕｆｆｍａｎ符号化は、統計的確率に従って割り当てられる可変長のバイナリコードまたは符号語で記号（例えば、画素データ、ＤＣＴ係数、音声データ、など）を符号化する。例えば、より頻繁に利用される記号には、長さ２〜３ビットのみのコードが割り当てられ、あまり頻繁に利用されない記号には、ビット数が増加した長さ（例えば、長さ１６ビットまで）のコードが割り当てられる。Ｈｕｆｆｍａｎ符号化では、データを符号化および復号するための各々可能性のある可変長コードをリスト化するルックアップテーブルを利用する。Ｈｕｆｆｍａｎテーブルの一例は、表Ｋ．５もおいてＪＰＥＧ規格（ＩＳＯ／ＩＥＣ１０９１８）で提供される。表Ｋ．５は付録（  「ＪＰＥＧ・Ｈｕｆｆｍａｎルックアップテーブル」）で本明細書に添付される。Ｈｕｆｆｍａｎテーブルの他の例もまた可能であり、本開示の適用範囲である。
【００１６】
Ｈｕｆｆｍａｎ符号化では可変長コードを利用するため、Ｈｕｆｆｍａｎ符号化が行われたデータのストリームの復号は、データのストリーム内の各コードが次のコードが決定される前に決定されるように、本来順次的である。従来の復号器は、クロックレートまたはサイクル当たり１コードで動作する。通常、各Ｈｕｆｆｍａｎコードには、クロックレート当たりの画素の平均解凍率が適切に高くなるように、多数の画素が含まれる。しかしながら、アプリケーションによっては、保証された画素スループット（例えば、クロック当たり２画素）を必要とし、一時的な最悪な状況、つまりクロック当たりの１画素の低画素率が、データアンダーランおよび画像アーチファクトを引き起こす可能性がある。実際、２画素／クロック未満のスループットは、例えば、画像の非常にざらつく領域である可能性が高い。
【００１７】
２画素／クロック・スループットを保証する従来の試みには、様々な欠点がある。あるアプローチにおいては、２つのカスケード型Ｈｕｆｆｍａｎ復号器は少なくとも２画素／クロックを復号できるが、このスループットは処理論理のクリティカル・パスの遅延を倍にする犠牲を払う。図１を参照すると、例えば、第１Ｈｕｆｆｍａｎ復号器を第２Ｈｕｆｆｍａｎ復号器にカスケード接続すると、２つの完全なＨｕｆｆｍａｎルックアップテーブルを使用したデータストリームの処理のため、基本的にクリティカル・パスの遅延が倍になる。Ｈｕｆｆｍａｎルックアップテーブルは、基本的に最大処理周波数を半分にカットする。ＪＰＥＧ処理に通常利用される１６０エントリのＨｕｆｆｍａｎルックアップテーブルの場合、比較的大きなＨｕｆｆｍａｎルックアップテーブルは、カスケード型復号器が実行できる最大クロック周波数を制限する。
【００１８】
他のアプローチにおいては、並行なＨｕｆｆｍａｎ復号器が少なくとも２画素／クロックを復号するために利用される。しかしながら、このアプローチでは、並行なＨｕｆｆｍａｎ復号器のために別々のデータストリームを生成するために追加のデータバッファおよび動的なメモリ割り当てを利用する。データストリームを復号するために利用されるコンピューティング・デバイスによっては、このような追加のデータバッファが利用できないかもしれない。これに加えて、この状況における追加のデータバッファおよび動的なメモリ割り当ての利用は、メモリフラグメンテーションを増加させ、処理レイテンシを増加させる可能性がある。
【００１９】
本開示では、平均２画素／クロックの復号スループット（例えば、２クロックサイクル・スループット当たり４画素）を保証する確実で効率的なアプローチを提供する。開示されたアプローチでは、符号化されたデータストリームを復号する修正されたＨｕｆｆｍａｎルックアップテーブルを利用する。比較的大きなＪＰＥＧ・Ｈｕｆｆｍａｎルックアップテーブルを参照すると、エントリの内１０のみがゼロのランに相当する。一般に、ランレングスは、ゼロ振幅ＡＣ係数のランの長さに相当する。この状況において、ゼロのランは、最後の（復号された）ＡＣ係数および次の非ゼロＡＣ係数間にゼロ振幅のＡＣ係数がないことを意味し、１のランは、１つの非ゼロ振幅のＡＣ係数に続く１つのゼロ振幅のＡＣ係数があることを意味し、２のランは、１つの非ゼロ振幅のＡＣ係数に続く２つのゼロ振幅のＡＣ係数があることを意味し、整数（ｎ）のランは、１つの非ゼロ振幅のＡＣ係数に続くｎ個のゼロ振幅のＡＣ係数があることを意味する。
【００２０】
ＪＰＥＧ・Ｈｕｆｆｍａｎルックアップテーブル（および他の可変または固定長の符号化テーブル）のゼロのランの符号語は、２画素／クロックのスループットを保証するためクロック当たり１符号語より速く復号する必要があるという唯一のケースである。これは、１倍のランが２画素／クロック復号率（ゼロ振幅のＡＣ係数画素および１つの非ゼロ振幅のＡＣ係数画素）となり、２倍のランが３画素／クロック復号率となり、３倍のランが４画素／クロック復号率となり、ｎ倍のランが（ｎ＋１）画素／クロック復号率となるスループットだからである。
【００２１】
本開示では、ゼロのランに応じた完全なルックアップテーブルのエントリをゼロのランまたは１のランに応じた完全なルックアップテーブルのエントリにカスケード接続する修正された符号化ルックアップテーブルを利用する。得られた修正された符号化ルックアップテーブルによれば、従来の技術のように、完全なルックアップテーブルの全体をカスケード接続することなく、１クロックサイクルで２つの符号語を復号する復号器が可能になる。要するに、現在の符号語が１画素に相当し、次の符号語が１または２画素に相当する場合、これらの連続した符号語は、修正された符号化ルックアップテーブルを使用して共に復号される。そうでない場合は、１つの符号語（２以上のランは、３以上の画素に相当する）は、スループット率が２画素／クロック以下に減少することなく、クロックサイクルごとに復号できる。
【００２２】
カスケード型復号器に比べて、上記のように、完全なルックアップテーブルに加え、および並行して、修正された符号化ルックアップテーブルを使用したこのアプローチは、およそ同量の回路および論理（例えば、ルックアップテーブルに２００以上のエントリを持つことにより）を必要とする。しかしながら、符号語ペア復号は通常の復号処理と並行して起こるため、カスケード型復号器のような直列復号と対照的に、開示されたアプローチは本質的により高速である。
［２．印刷デバイスの例］
【００２３】
図２は、例示の印刷デバイス２０を示す。印刷デバイス２０は、様々なタイプの物理的出力媒体に部分的に記憶された、および／または全て記憶された電子文書を印刷するように構成されてもよい。これらの出力媒体には、様々なサイズおよびタイプの用紙、オーバーヘッド・スライドなどが含まれるが、これに限定されない。印刷デバイス２０を、「プリンタ」と区別しないで呼んでもよい。
【００２４】
印刷デバイス２０は、パーソナルコンピュータ、表示モニタ、サーバ装置、印刷サーバなどのような他のコンピューティング・デバイスへのローカル周辺機器として機能してもよい。これらの場合、印刷デバイス２０は、シリアルポートケーブル、パラレルポートケーブル、ユニバーサル・シリアル・バス（ＵＳＢ）ケーブル、Ｆｉｒｅｗｉｒｅ（ＩＥＥＥ１３９４）ケーブル、または高精細度マルチメディアインターフェース（ＨＤＭＩ（登録商標））ケーブルのようなケーブルにより、コンピューティング・デバイスに備え付けられてもよい。このように、コンピューティング・デバイスは、印刷デバイス２０用の電子文書のソースとして機能してもよい。
【００２５】
一方、印刷デバイス２０には、イーサネット（登録商標）またはＩＥＥＥ８０２．１１（ＷＬＡＮまたはＷｉ−Ｆｉ）インターフェースのような、有線または無線ネットワークインターフェースを含めてもよい。そのように配置された場合、印刷デバイス２０は、印刷デバイス２０とネットワークを介して通信可能な任意の数のコンピューティング・デバイス用の印刷デバイスとして機能してもよい。実施形態によっては、印刷デバイス２０は、ローカル周辺機器およびネットワーク化されたプリンタの両方として同時に機能してもよい。印刷デバイス２０を利用するために、コンピューティング・デバイスは、１以上のプリンタドライバをインストールしてもよい。これらのプリンタドライバには、印刷される電子文書を表す画像データをコンピューティング・デバイスに記憶された様々なローカル表現から印刷デバイス２０によりサポートされる１以上の表現に変換するソフトウェア構成要素を含めてもよい。それでも、印刷デバイス２０をコンピューティング・デバイスとみなしてもよいし、印刷関連および非印刷関連タスクの両方を実行してもよい。
【００２６】
上述したように、印刷デバイス２０にはまた、コピー機、ファクス、およびスキャナ機能を含めてもよい。実施形態によっては、印刷デバイス２０は、コピー機および／またはファクス機能を簡略化するスキャナ機能を利用してもよい。例えば、印刷デバイス２０は、物理的文書を電子フォーマットにスキャンした後、コピーを提供するために得られた電子文書を印刷、および／またはファクス機能を提供するために電話インターフェースを介して得られた電子文書を送信してもよい。
【００２７】
その様々な機能をサポートするために、印刷デバイス２０には、原稿送り装置／出力トレイ２２、用紙保管部２４、ユーザインターフェース２６、スキャン要素２８、および筐体３０を含めてもよい。印刷デバイスは多種多様な形をとってもよいことは、理解されるべきである。そのため、印刷デバイス２０には、図１に示されているよりも多い、または少ない構成要素、および／または図１に示されている方法とは異なる方法で配置された構成要素を含めてもよい。
【００２８】
原稿送り装置／出力トレイ２２は、スキャン、コピー、またはファクスされる物理的文書（例えば、１枚以上の用紙の積み重ね）を保持してもよい。原稿送り装置／出力トレイ２２は、手動での介入を必要とすることなしに、印刷デバイス２０により処理される多数の物理的文書の自動的な搬送を印刷デバイス２０に許可にしてもよい。原稿送り装置／出力トレイ２２にはまた、印刷デバイス２０により処理された物理的文書を保持する１以上の別々の出力トレイを含めてもよい。これらには、例えば、印刷デバイス２０のファクスおよび／またはコピー機能で作成された物理的文書と同様に、印刷デバイス２０によりスキャン、コピー、またはファクスされた物理的文書を含めてもよい。
【００２９】
用紙保管部２４には、様々なタイプの物理的媒体のためにトレイおよび／または搬送要素を含めてもよい。例えば、用紙保管部２４には、８．５×１１インチ用紙、Ａ４用紙、レターヘッドのある用紙、封筒などのための別々のトレイを含めてもよい。物理的媒体の作成（例えば、ファクスの印刷、コピー、および／または受信）を含む印刷デバイス２０の任意の機能のため、用紙保管部２４は物理的媒体を供給してもよい。
【００３０】
ユーザインターフェース２６は、ユーザから入力を受信およびユーザに出力を提供するような、人間または人間でないユーザと印刷デバイス２０の相互作用を簡略化してもよい。よって、ユーザインターフェース２６には、キーパッド、キーボード、タッチセンサー式または存在感知パネル、ジョイスティック、マイクロホン、さらにカメラおよび／またはビデオ・カメラのような入力構成要素を含めてもよい。ユーザインターフェース２６にはまた、既知のまたは今後開発される、（例えば、存在感知パネルに結合されてもよい）表示画面、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）ベースのディスプレイ、デジタル光処理（ＤＬＰ（登録商標））技術を使用したディスプレイ、電球、および／または他の１以上の同様な装置のような、１以上の出力構成要素を含めてもよい。ユーザインターフェース２６はまた、既知または将来開発される、スピーカ、スピーカジャック、音声出力ポート、音声出力装置、イヤホン、および／または他の同様な装置を介して、可聴出力を生成可能に構成されてもよい。
【００３１】
スキャン要素２８はガラスパネルでよく、ガラスパネルの下では移動可能な光源が動作し、ガラスパネルの上に置かれた物理的媒体をスキャンする。あるいは、ガラスパネルの下のデジタルカメラが、物理的媒体の写真を撮ることによりガラスパネルの上に置かれた物理的媒体を「スキャン」してもよい。スキャンされた物理的媒体の画像は、印刷デバイス２０に関連付けられているデータ記憶部に記憶されてもよい。
【００３２】
筐体３０には、原稿送り装置／出力トレイ２２、用紙保管部２４、ユーザインターフェース２６、およびスキャン要素２８のような、印刷デバイス２０の様々な構成要素を含む、および／または相互接続する物理的ハウジングを含めてもよい。それと共に、筐体３０は、図１には図示されない他の構成要素を収容してもよい。例えば、筐体３０には、１以上のトナーカートリッジ、液体インクジェット、ベルト、ローラ、および／または電源を含めてもよい。さらに、筐体３０には、有線および／または無線ネットワークインターフェース、電話による通信インターフェース（例えば、ＲＪ４５ジャック）、ＵＳＢインターフェース、ＢＬＵＥＴＯＯＴＨ（登録商標）インターフェース、カードリーダーポートなどのような、通信インターフェースを含めてもよい。
【００３３】
さらに、印刷デバイス２０が多目的および／または特別に設計されたコンピューティング・デバイス構成要素に基づいてもよいように、筐体３０もまた、これらの構成要素のいくつかまたは全てを収容してもよい。例えば、印刷デバイス２０には、プロセッサおよびデータ記憶部（明示的に図示せず）を含めてもよい。一般に、プロセッサには、１以上の汎用プロセッサおよび／または１以上の専用プロセッサ（例えば、特定用途向け集積回路（ＡＳＩＣ）またはデジタル・シグナル・プロセッサ（ＤＳＰ）、など）のような１以上の中央処理装置（ＣＰＵ）を含めてもよい。データ記憶部は、揮発性および／または不揮発性データ記憶部を含めてもよく、プロセッサと全体または一部統合可能である。データ記憶部は、本明細書中に説明されている様々な方法、処理、または機能を実行するため、プロセッサにより実行可能なプログラム命令、およびこれらの命令により操作されるデータを記憶してもよい。あるいは、これらの方法、処理、または機能は、ハードウェア、ファームウェア、および／またはハードウェア、ファームウェア、およびソフトウェアの任意の組み合わせにより定義可能である。従って、データ記憶部には、有形で非一時的なコンピュータ読み取り可能な記録媒体を含めてもよく、記録媒体には、１以上のプロセッサによる実行に応じて、本明細書または添付図面に開示されている方法、処理、または機能のいずれかを印刷デバイス２０に実行させるプログラム命令が記憶されている。
【００３４】
さらに、印刷デバイス２０の構成要素には、また、画像データを圧縮／符号化および／または解凍／復号するためのハードウェアおよび／またはソフトウェア構成要素を含めてもよい。
［３．符号化器および復号器の例］
【００３５】
図３および図６は、印刷デバイス２０に含まれてもよいコンピューティング・デバイス構成要素（例えば、コンピューティング・デバイスの機能要素）の例示の実施形態を示す。最初に図３を参照すると、例示の画像データ符号化器４０が示されている。符号化器４０は、画像データ４２を受け取るように構成されている。図示の例において、画像データ４２は、画像データブロック（例えば、８×８画素ブロック）に分割されており、画像データブロックは、符号化器４０の空間周波数変換器４４に提供される。空間周波数変換器４４は、画像データへ離散コサイン変換（ＤＣＴ）の実行等、空間周波数変換を行う。画像データに空間周波数変換を行うことにより、画像データブロックに対する空間周波数変換を表す１以上の周波数係数のセットをもたらす。８×８画素ブロックの例において、空間周波数変換器４４は、単一のクロックサイクルで１個と６４個の間の周波数係数を生成するように構成されている。図４を参照して、一例を挙げれば、当該得られた周波数係数Ｓｕｖは、格納要素６０に格納されてもよい。別の例では、得られた１個乃至６４個の周波数係数Ｓｕｖのセットは、別個に格納される必要はなく、量子化器およびデータシーケンサによる単一操作（例えば、単一クロックサイクル）で操作される。
【００３６】
例えば，１個乃至６４個の周波数係数Ｓｕｖのセットは、次に直ちに量子化器４６により操作されてもよい。量子化器４６は、１以上の量子化された周波数係数のセット等、量子化されたデータを生成する。一般に、量子化は、画像データが空間周波数変換操作により周波数領域に変換された後で、高周波成分を低減または除去するための処理である。量子化器４６は、量子化係数を含む量子化テーブルを用いて、周波数係数を操作する。より具体的には、符号化器４０において、量子化器４６は、周波数係数Ｓｕｖを対応する量子化係数で除算して量子化された周波数係数のセットを生成する。図４は、量子化係数Ｑｕｖが、格納要素６２に格納されてもよく、またはそうでない場合、クロックサイクルごとに１個または６４個までの量子化係数Ｑｕｖが使用できる量子化器に対して入力として使用可能とされる例を示す。量子化器４６は、また、除算の結果を丸めて重要でない高周波成分を除去してもよい。
【００３７】
本例において、量子化器４６により生成された量子化された周波数係数Ｓｑｕｖのセットは、次に、直ちに、単一操作または単一クロックサイクルで、データシーケンサ４８に提供されてもよい。データシーケンサ４８は、量子化された周波数係数Ｓｑｕｖのセットを所定のシーケンスで配列するように構成されている。そのような一つのシーケンスは、図５で示されているジグザグシーケンスである。図４は、また、ジグザグシーケンス操作を実行するハードウェアおよび／またはソフトウェア構成要素を表すブロック６４を示す。
【００３８】
所定のシーケンスに配列された得られた量子化された周波数係数Ｓｑｕｖのセットは、格納要素６６に格納されてもよい。他の例では、得られた１個乃至６４個の量子化された周波数係数Ｓｑｕｖのセットは、別個に格納される必要はなく、データ符号化器５０により単一操作（例えば、単一クロックサイクル）で操作される。データ符号化器５０は、ストレージ、転送、または他の処理のため符号化されたデータ５２を提供するため、抽出された、量子化された周波数係数ＳｑｕｖにエントロピーまたはＨｕｆｆｍａｎ符号化を実行する。
【００３９】
次に図６および図７を参照すると、例示の画像データ復号器７０が示されている。復号器７０は、符号化された画像データ５２（例えば、図３の符号化データ）を受け取るように構成されている。図示されている例では、符号化データは、直ちにデータ復号器７２に提供される。データ復号器７２は、データ符号化器５０の逆の機能、例えば、逆エントロピーまたはＨｕｆｆｍａｎ復号を実行し、量子化された周波数係数Ｓｑｕｖを生成する。８×８画素ブロックの例において、データ復号器７２は、単一のクロックサイクルで、１個と６４個の間の量子化された周波数係数Ｓｑｕｖを生成するように構成されている。係数Ｓｑｕｖの数は、一つには、受け取られた符号化された画像データに依存してもよい。図７において、一例を挙げれば、得られた量子化された周波数係数Ｓｑｕｖは、格納要素９０に格納されてもよい。別の例では、得られた１個乃至６４個の量子化された周波数係数Ｓｑｕｖのセットは、別個に格納される必要はなく、より詳細に後述されるように、データ逆シーケンサ、および逆量子化器により単一操作（例えば、単一クロックサイクル）で操作される。
【００４０】
本例では、１個乃至６４個の量子化された周波数係数Ｓｑｕｖのセットは、図３のデータシーケンサ４８の操作に起因する所定のシーケンスで配列されてもよい。従って、量子化された周波数係数Ｓｑｕｖは、データ逆シーケンサ７４に提供されてもよく、データ逆シーケンサ７４は量子化された周波数係数Ｓｑｕｖを所定のシーケンスの逆に配列する。図７を参照して、一例を挙げれば、再配列された、得られた量子化された周波数係数Ｓｑｕｖは、格納要素９２に格納されてもよい。
【００４１】
別の例では、再配列された、得られた量子化された周波数係数Ｓｑｕｖは別個に格納される必要はなく、データ逆シーケンサ７４の後に、量子化された周波数係数Ｓｑｕｖは直ちに逆量子化器７６に提供され、逆量子化器７６は、量子化された周波数係数Ｓｑｕｖを逆量子化する。一例において、逆量子化器７６は、図３の量子化器４６に関連して上述したときと同じ量子化テーブルおよび量子化係数を用いる。しかしながら，逆量子化器７６は量子化された周波数係数Ｓｑｕｖに対応する量子化係数Ｑｕｖを掛ける、そして量子化器４６により実行された丸めの逆を実行して周波数係数Ｓｕｖを抽出する。周波数係数Ｓｕｖは、格納要素９４に記憶されてもよく、直ちに逆空間周波数変換器７８に提供されてもよい。逆空間周波数変換器７８は、表示、印刷、または他の処理のため元の画像データ４２を抽出するために、図３の変換器４４により実行された空間周波数変換の逆を実行する。
［４．復号器システムの例］
【００４２】
次に図８を参照して、例示の復号器システム１００を説明する。図８において、システム１００には、エントロピー符号化ルックアップテーブルに従って各々の一連の画素データ（例えば、ＤＣＴ係数）を符号化する一連の可変長符号語を含む、次に来るデータストリーム１０４を受信するように構成されたバッファ要素１０２が含まれる。一例では、第１エントロピー符号化ルックアップテーブルは、全１６０エントリを含むＪＰＥＧ・Ｈｕｆｆｍａｎルックアップテーブルである。第１符号化ルックアップテーブル（例えば、画素データを符号化するために利用される同一の「完全な」エントロピー符号化ルックアップテーブル）を利用するブロック１０６（例えば、プロセッサまたは処理論理）による処理のため、および第２符号化ルックアップテーブルを利用するブロック１０８（例えば、ブロック１０６と同一または異なるプロセッサまたは処理論理）による処理のために、バッファ要素１０２から、データストリーム１０４（またはそれに続く部分）が提供される。
【００４３】
本例では、第２符号化ルックアップテーブルは、第１エントロピー符号化ルックアップテーブルの修正バージョンであり、一組の第１符号語および第２符号語をそれぞれが備える複数のエントリが含まれる。例えば、各組の第１符号語は、ゼロのランに相当する第１ルックアップテーブルの１以上のエントリから選択され、各組の第２符号語は、ゼロのランまたは１のランに相当する第１ルックアップテーブルの１以上のエントリから選択される。ＪＰＥＧ・Ｈｕｆｆｍａｎルックアップテーブルを参照すると、ゼロのランに相当する１０の符号語および１のランに相当する１０の符号語がある。本例では、第２符号化ルックアップテーブルには、ゼロのランの符号語または１のランの符号語に続くゼロのランの符号語の各組み合わせが含まれる。ＪＰＥＧ・Ｈｕｆｆｍａｎルックアップテーブルに基づき、このような修正された、第２符号化ルックアップテーブルには、一般に以下のような２００のエントリが含まれ得る。
（ゼロのランの符号語に続くゼロのランの符号語）
０／１＿０／１、０／１＿０／２、…、０／１＿０／Ａ、
０／２＿０／１、０／２＿０／２、…、０／２＿０／Ａ、
０／３＿０／１、０／３＿０／２、…、０／３＿０／Ａ、
…
０／Ａ＿０／１、０／Ａ＿０／２、…、０／Ａ＿０／Ａ、
（１のランの符号語に続くゼロのランの符号語）
０／１＿１／１、０／１＿１／２、…、０／１＿１／Ａ、
０／２＿１／１、０／２＿１／２、…、０／２＿１／Ａ、
０／３＿１／１、０／３＿１／２、…、０／３＿１／Ａ、
…
０／Ａ＿１／１、０／Ａ＿１／２、…、０／Ａ＿１／Ａ、
【００４４】
第１および第２符号化ルックアップテーブル・ブロック１０６、１０８では、受信されたデータストリーム内の符号語および各々のルックアップテーブルのエントリ間の一致を識別するため、データストリーム１０４を並行に処理する。ブロック１０６は、第１符号化ルックアップテーブルの一致する符号語エントリを見つけるため、一度にデータストリーム１０４を１符号語毎に処理し、一致する符号語を出力１１０として、選択部要素１１２に提供する。選択部要素１１２は、複数の入力から出力を選択的に提供するように構成された優先度ベースのマルチプレクサまたは他のハードウェアおよび／またはソフトウェア構成要素でもよい。
【００４５】
ブロック１０８では、第２符号化ルックアップテーブルを使用してデータストリーム１０４を処理し、データストリーム１０４がゼロのランまたは１のランに続くゼロのランに相当する連続した符号語を含むかどうか判断する。ブロック１０８で、データストリーム内の連続した符号語の一致および第２符号化ルックアップテーブルの符号語エントリがあると判断された場合、ブロック１０８では一致する組の符号語を出力１１４として、選択部要素１１２に提供する。ブロック１０８で一致があると判断されると、ブロック１０８では選択部要素１１２に出力１１４に基づき出力１１６を選択的に提供するように指示する優先信号を提供する。ブロック１０８で一致がないと判断されると、ブロック１０８では優先信号を提供せず（あるいは異なる信号を提供し）、そして、異なる信号は、選択部要素１１２に出力１１０に基づき出力１１６を選択的に提供するように指示する。
【００４６】
図８の例において、パッキング論理ブロック１１８は選択部要素１１２から出力１１６を受信し、ブロック１０６からの可変長符号語出力１１０またはブロック１０８からの可変長符号語ペア出力１１４を固定長キューである画素キュー１２０にパックするように構成される。図８のシステム１００にはまた、逆データシーケンシング（順序付け）、逆量子化、逆空間周波数変換などのような機能を行うように構成される１以上の復号ステージ１２２が含まれる。さらに、図８の例において、出力デバイス１２４は、復号ステージ１２２に接続される。本例において、出力デバイス１２４は、復号ステージ１２２により処理されたように、画素キュー１２０のコンテンツを画像の対応する部分を印刷するための制御信号に変換するように構成された印刷エンジンでもよい。出力デバイス１２４にはまた、画素キュー１２０のコンテンツを画像の対応する部分を表示するための制御信号に変換するように構成された、表示モニタのような、いくつかの他の表示デバイスを含めてもよい。
【００４７】
システム１００において、ブロック１０６、１０８はまた、バッファ要素１０２に接続されるフィードバック出力１２６を提供するように構成されてもよく、バッファ要素１０２はハードウェアおよび／またはソフトウェアベースのピッカーブロックとしても機能できる。より具体的には、ブロック１０６、１０８がデータストリーム１０４内で可変長符号語を識別する場合、ブロック１０６、１０８は、符号語の長さをピッカーブロック（バッファ要素１０２）に通知するため、フィードバック出力１２６を生成してもよい。ピッカーブロック（バッファ要素１０２）は続いて、ビットの可動ウィンドウをシフトさせ、処理のためブロック１０６、１０８にデータストリームの次に続く部分を提供してもよい。
［５．操作の例］
【００４８】
上記に加え、図９は例示の実施形態のフローチャートを示す。本フローチャートにより説明されるステップは、印刷デバイス２０、復号器７２、およびシステム１００のような、１以上のコンピューティング・デバイス、システム、またはその構成要素により実行されてもよい。さらに、各個別のステップの態様は、必要に応じて多数のコンピューティング・デバイス間で分けられてもよい。
【００４９】
図９は、例えば、図６および図８の構成要素を利用可能な例示の符号化処理１５０を示す。処理１５０のブロック１５２において、システム１００は、例えば、第１エントロピー符号化ルックアップテーブルに従って各々の一連の画素データを符号化する符号語を含むデータストリームを受信する。例えば、第１エントロピー符号化ルックアップテーブルは、本明細書中に説明されているＪＰＥＧ・Ｈｕｆｆｍａｎルックアップテーブルであり得る。
【００５０】  ブロック１５４において、システム１００はデータストリームを処理し、第１符号語および第２符号語と、第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致があるかどうか判断する。本例において、第１符号語および第２符号語は、データストリーム内の連続した符号語であり、第２エントロピー符号化ルックアップテーブルは、図８の第２符号化ルックアップテーブル・ブロック１０８により利用された、修正された符号化ルックアップテーブルであり得る。ブロック１５６において、システム１００はデータストリームを処理し、第１エントロピー符号化ルックアップテーブルの第１符号語および符号語エントリ間の一致を識別する。一例において、ブロック１５６におけるこの処理は、ブロック１５４の処理と並行に行われる。
【００５１】  ブロック１５８において、第１符号語および第２符号語と、第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がある場合、システム１００は、第２エントロピー符号化ルックアップテーブルを使用して第１符号語および第２符号語を復号、またはそうでない場合は、出力として提供する。ブロック１６０において、第１符号語および第２符号語と、第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がない場合、システム１００は、第１エントロピー符号化ルックアップテーブルを使用して第１符号語を復号、またはそうでない場合は、出力として提供する。
【００５２】  図９の例では、ブロック１６２において、システム１００は処理を次の符号語のセットにシフトさせる。一実施形態に従って、システム１００がブロック１５４において一致を識別しない場合、続いてブロック１６２において、システム１００は１符号語ずつ処理をシフトさせ、制御はブロック１５４に戻って受信されたデータストリームの処理を続ける。その結果として、ブロック１５４の次の反復において、システム１００は、第２符号語および次の連続した（第３）符号語と、第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致があるかどうか判断する。さらに、ブロック１５６の次の反復において、システム１００はデータストリームを処理し、第１エントロピー符号化ルックアップテーブルの第２符号語および符号語エントリ間の一致を識別する。その後、ブロック１５８において、第２符号語および第３符号語と、第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がある場合、システム１００は第２エントロピー符号化ルックアップテーブルを使用して第２符号語および第３符号語を復号、またはそうでない場合は、出力として提供する。ブロック１６０において、第２符号語および第３符号語と、第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がない場合、システム１００は第１エントロピー符号化ルックアップテーブルを使用して第２符号語を復号、またはそうでない場合は、出力として提供する。
【００５３】  ブロック１６２を再び参照すると、本実施形態に従って、システム１００がブロック１５４において一致を識別する場合、続いてブロック１６２において、システム１００は２符号語ずつ処理をシフトさせ、制御はブロック１５４に戻って受信されたデータストリームの処理を続ける。その結果として、ブロック１５４の次の反復において、システム１００は、次の連続した一組の符号語（例えば、第３および第４符号語）と、第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致があるかどうか判断する。さらに、ブロック１５６の次の反復において、システム１００はデータストリームを処理し、第１エントロピー符号化ルックアップテーブルで第３符号語および符号語エントリ間の一致を識別する。その後、ブロック１５８において、第３符号語および第４符号語と、第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がある場合、システム１００は第２エントロピー符号化ルックアップテーブルを使用して第３符号語および第４符号語を復号、またはそうでない場合は、出力として提供する。ブロック１６０において、第３符号語および第４符号語と、第２エントロピー符号化ルックアップテーブルの符号語エントリとの間の一致がない場合、システム１００は第１エントロピー符号化ルックアップテーブルを使用して第３符号語を復号、またはそうでない場合は、出力として提供する。
【００５４】
一般に、ブロック１６２における処理は、符号語が復号されて出力に提供されるように、データストリームを通して順次横断する可動ウィンドウを提供する。
［６．結論］
【００５５】
本出願において記述されている具体的な実施形態に関して、本開示は限定されるべきではなく、それらはいろいろな態様の実例として意図されている。当業者にとって明白であるように、本開示の主旨と範囲から逸脱することなく多くの変更および変形をすることが可能である。本記載に列挙されていることに加え、本開示の範囲内の機能的に等価な方法および装置は前述の記載から明白であろう。そのような変更および変形は、添付された請求項の範囲内に入るように意図されている。
【００５６】
図面における、任意のすなわち全てのラダー図、シナリオ、およびフローチャートに関しておよび本記載で述べられたように、各ブロックおよび／または通信は、例示の実施形態に従って情報を処理しおよび／または情報を送信することを表してもよい。他の実施形態もそのような例示の実施形態の範囲に含まれてもよい。さらに、より多くのまたはより少ないブロックおよび／または機能が、本記載に記述されているどのラダー図、シナリオ、およびフローチャートと共に使用されてもよいし、また当該ラダー図、シナリオ、およびフローチャートは、部分的にまたは全体的にお互いに結合されてもよい。
【００５７】
情報の処理を表すステップまたはブロックは、本記載の方法または技術の具体的な論理機能を実行するように構成することが可能な回路に相当してもよい。それに代えてまたはさらに、情報の処理を表すステップまたはブロックは、モジュール、セグメント、またはプログラムコードの一部分（関連するデータを含めて）に相当してもよい。プログラムコードは、方法または技術における具体的な論理機能または動作を実行するための、プロセッサにより実行可能な１以上の命令を含んでもよい。プログラムコードおよび／または関連するデータは、ディスクドライブ、ハードドライブ、またはその他の記憶媒体を含む記憶装置等の任意の種類のコンピュータ読み取り可能な媒体に格納してもよい。
【００５８】
コンピュータ読み取り可能な媒体は、また、レジスタメモリ、プロセッサキャッシュ、および／またはランダムアクセスメモリ（ＲＡＭ）のような短期間データを格納するコンピュータ読み取り可能な媒体等の、非一時的でコンピュータ読み取り可能な媒体を含んでもよい。コンピュータ読み取り可能な媒体は、また、例えば、リードオンリーメモリー（ＲＯＭ）、光学または磁気ディスク、および／またはコンパクトディスク・リードオンリーメモリー（ＣＤ―ＲＯＭ）のような、二次的または持続的長期記憶装置等、より長期間プログラムコードおよび／またはデータを格納する非一時的でコンピュータ読み取り可能な媒体を含んでもよい。コンピュータ読み取り可能な媒体は、また、他の揮発性または不揮発性記憶システムでもよい。コンピュータ読み取り可能な媒体は、例えば、コンピュータ読み取り可能な記憶媒体および／または有形の記憶デバイスと考えてもよい。
【００５９】
本記載においてさまざまな態様および実施形態が開示されてきたが、他の態様および実施形態も当業者にとって明白であろう。本記載において開示されたさまざまな態様および実施形態は、例示目的であって限定することを意図するものではなく、真の範囲と主旨は以下の請求項により示されている。
付録
【００６０】
0006569949.tif 000002
0006569949.tif 000003
0006569949.tif 000004
0006569949.tif 000005
符号の説明
【００６１】
２２  原稿送り装置／出力トレイ
２４  用紙保管部
２６  ユーザインターフェース
２８  スキャン要素
３０  筐体
【図１】
0006569949.tif 000006
【図２】
0006569949.tif 000007
【図３】
0006569949.tif 000008
【図４】
0006569949.tif 000009
【図５】
0006569949.tif 000010
【図６】
0006569949.tif 000011
【図７】
0006569949.tif 000012
【図８】
0006569949.tif 000013
【図９】
0006569949.tif 000014