JP3869992B2 - 情報処理装置、画像処理装置およびそれらの方法 - Google Patents

情報処理装置、画像処理装置およびそれらの方法 Download PDF

Info

Publication number
JP3869992B2
JP3869992B2 JP2000030513A JP2000030513A JP3869992B2 JP 3869992 B2 JP3869992 B2 JP 3869992B2 JP 2000030513 A JP2000030513 A JP 2000030513A JP 2000030513 A JP2000030513 A JP 2000030513A JP 3869992 B2 JP3869992 B2 JP 3869992B2
Authority
JP
Japan
Prior art keywords
block
data
compression
data blocks
block compression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000030513A
Other languages
English (en)
Other versions
JP2000307875A5 (ja
JP2000307875A (ja
Inventor
雅規 有富
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2000030513A priority Critical patent/JP3869992B2/ja
Priority to US09/505,729 priority patent/US6658156B1/en
Publication of JP2000307875A publication Critical patent/JP2000307875A/ja
Publication of JP2000307875A5 publication Critical patent/JP2000307875A5/ja
Application granted granted Critical
Publication of JP3869992B2 publication Critical patent/JP3869992B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は情報処理装置、画像処理装置およびそれらの方法に関し、例えば、画像などのデータの高速圧縮処理に関する。
【0002】
【従来の技術】
JPEG(Joint Photographic Experts Group)などの圧縮方法は、複数画素からなる矩形のブロックを単位として圧縮処理を行う。このような圧縮方法を以下では「ブロック圧縮」と呼ぶ。ブロック圧縮によっては、ブロックのサイズや圧縮後のデータサイズに条件や制限がある場合がある。また、ブロック圧縮自体には論理的な条件や制限がなくても、デコーダの仕様により制限される場合もある。従って、ブロック圧縮を優先する場合、規定のブロックサイズで原データを読み込み、ブロック圧縮をテストし、条件および制限内であればブロック圧縮し、条件または制限から外れてブロック圧縮できない場合は、他の方法でブロック圧縮するか非圧縮にして次ブロックの処理に移る、あるいは、ブロック圧縮を使用せずに圧縮することになる。
【0003】
【発明が解決しようとする課題】
上記のブロック圧縮を優先し、ブロックによっては他の圧縮方法や非圧縮で処理する方法は、ブロック圧縮される以外の部分の圧縮率が低下する特性のほか、次の問題がある。
(1) ブロック圧縮が可能か否かの判定に多くの時間が必要になる。
(2) ブロック圧縮できないケースが続くと、それらの判定時間が無駄になる。 (3) ブロック圧縮を優先するため、ブロック圧縮される以外の部分の処理も同じ単位(規定のブロックサイズ)で行わざるを得ない。
【0004】
本発明は、上述の問題を解決するためのものであり、できるだけ圧縮効率を低下させずに、高速に圧縮処理を実行することを目的とする。
【0005】
【課題を解決するための手段】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【0006】
本発明にかかる画像処理方法は、入力画像データを所定画素サイズのデータブロックに分割し、前記データブロックの少なくとも一つに対してブロック圧縮が有効か否かを判定し、前記ブロック圧縮が有効と判定されたデータブロックに前記ブロック圧縮を施し、前記ブロック圧縮が無効と判定されたデータブロック、および、そのデータブロックに続く所定数のデータブロックに非ブロック圧縮処理を施す各ステップを有し、前記判定は、複数のデータブロックを所定の順番に行い、前記ブロック圧縮が無効と判定したデータブロックに続く前記所定数のデータブロックをスキップすることを特徴とする。
【0007】
本発明にかかる情報処理方法は、情報処理装置を制御してデータを処理する情報処理方法であって、メモリから所定データ単位にデータを読み出し、前記データを所定データサイズの一連のデータブロックに分割し、前記一連のデータブロック内の、有意のデータを有するデータブロック列の左端および右端のデータブロックを検出し、前記左端および右端のデータブロックの間に存在するデータブロックに対してブロック圧縮が有効か否かを判定し、前記ブロック圧縮が有効と判定されたデータブロックは前記ブロック圧縮を施し、前記ブロック圧縮が無効と判定されたデータブロック、および、そのデータブロックに続く所定数のデータブロックに非ブロック圧縮処理を施す各ステップを有し、前記判定は、複数のデータブロックを所定の順番に行い、前記ブロック圧縮が無効と判定したデータブロックに続く前記所定数のデータブロックをスキップすることを特徴とする。
【0008】
本発明にかかる画像処理装置は、入力画像データを所定画素サイズのデータブロックに分割する分割手段と、前記データブロックの少なくとも一つに対してブロック圧縮が有効か否かを判定する判定手段と、前記ブロック圧縮が有効と判定されたデータブロックに前記ブロック圧縮を施し、前記ブロック圧縮が無効と判定されたデータブロック、および、そのデータブロックに続く所定数のデータブロックに非ブロック圧縮処理を施す処理手段とを有し、前記判定手段は、複数のデータブロックを所定の順番に判定し、前記ブロック圧縮が無効と判定したデータブロックに続く前記所定数のデータブロックの判定をスキップすることを特徴とする。
【0009】
本発明にかかる情報処理装置は、メモリから所定データ単位にデータを読み出し、前記データを所定データサイズの一連のデータブロックに分割する分割手段と、前記一連のデータブロック内の、有意のデータを有するデータブロック列の左端および右端のデータブロックを検出する検出手段と、前記左端および右端のデータブロックの間に存在するデータブロックに対してブロック圧縮が有効か否かを判定する判定手段と、前記ブロック圧縮が有効と判定されたデータブロックは前記ブロック圧縮を施し、前記ブロック圧縮が無効と判定されたデータブロック、および、そのデータブロックに続く所定数のデータブロックに非ブロック圧縮処理を施す処理手段とを有し、前記判定手段は、複数のデータブロックを所定の順番に判定し、前記ブロック圧縮が無効と判定したデータブロックに続く前記所定数のデータブロックの判定をスキップすることを特徴とする。
【0010】
【発明の実施の形態】
以下、本発明にかかる一実施形態の情報処理装置を図面を参照して詳細に説明する。
【0011】
[構成]
図1は本実施形態の情報処理装置の概観図である。
【0012】
例えばパーソナルコンピュータのような情報処理装置3000は、連長判定を高速に処理するのに好適な情報機器である。情報処理装置3000は、ユーザから入力を受け付けるためのキーボード9、ユーザに対して情報を表示するためのCRTディスプレイ10を備える。また、データやプログラムを記憶する磁気ディスク(FDやHD)、光磁気ディスク(MO)、光ディスク(CD-ROM、CD-RやCD-RW)およびディジタルビデオディスク(DVD-ROMやDVD-RAM)などのリムーバブル記憶メディアをドライブするための外部メモリドライブ11を有する。
【0013】
図2は情報処理装置3000の構成例を示すブロック図である。
【0014】
マイクロプロセッサであるCPU1は、ROM3のプログラムROM領域302、ハードディスク(HD)12、および/または、外部メモリドライブ11にセットされた記憶メディアに記憶されたプログラムやデータなどに基づき、RAM2をワークメモリに使用して、図形、イメージ、文字および表(表計算などを含む)などが混在する文書の処理を実行するとともに、システムデバイス4を介して後述するブロックを統括的に制御する。
【0015】
プログラムROM領域302または外部メモリドライブ11にセットされた記憶メディアには、後述するフローチャートに示されるような、CPU1により実行されるプログラムなどが記憶されている。また、フォントROM領域301には、上記の文書処理の際に作成および編集される文書データに含まれる文字や記号をCRT10に表示するための文字パターンを発生するためのフォントデータなどが記憶されている。
【0016】
さらに、データROM領域303には、上記の文書処理や表示処理などを行う際に使用される各種データ、例えばROM3のディレクトリ情報や、アプリケーションテーブルなどが記憶されている。
【0017】
5はキーボードコントローラ(KBC)で、キーボード(KB)9や図示しないマウスなどのポインティングデバイスからの入力を制御する。6はCRTコントローラ(CRTC)で、CRTディスプレイ10の表示を制御する。7はディスクコントローラ(DKC)で、HD12および外部メモリドライブ11のアクセスを制御し、それらの記憶メディアに対して各種プログラム、並びに、フォントデータ、ユーザファイルおよび編集ファイルなどの各種データを読み書きする。8はプリンタコントローラ(PRTC)で、所定の双方向性インタフェイス21を介してプリンタ22に接続され、プリンタ22との間の通信制御を実行する。
【0018】
なお、CPU1は、例えばRAM2上に割り当てられた表示情報領域あるいは専用のビデオメモリ(VRAM)へのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRTディスプレイ10上でのWYSIWYG(what you see is what you get)を可能にする。また、CPU1は、CRTディスプレイ10上のマウスカーソルなどにより指示されるコマンドに基づいて、登録された種々のウィンドウを開き、種々のデータ処理を実行する。
【0019】
[一般的な圧縮処理]
次に、上記の構成を有する情報処理装置を用いた圧縮処理を詳細に説明するが、その前に、一般的な圧縮処理を説明する。
【0020】
図3Aは圧縮対象の原データを示す図である。図3Aのデータは、便宜上、画像データとみなし、ブロックに相当するRAM2上の矩形領域に00から番号を付けている。また、以下では、RAM2に書き込まれた画像データをブロック圧縮優先で圧縮する例を説明する。なお、圧縮対象のデータは、例えばRAM2に割り当てられたバッファ領域に格納されているビットマップイメージあるいはベクタポイントリストのような連続したディジタルデータである。
【0021】
以下の説明において「ブロック圧縮」とは、画像を画素ブロック単位で処理する必要がある圧縮方法を意味し、JPEGやFPX(Flash Pix)のように論理的にブロック単位で処理するもの、FBE(Fast Boundary Encoding)のようにデコーダの仕様に応じて小領域単位で行うものなどが含まれる。
【0022】
また、以下の説明において「非ブロック圧縮」とは、ブロック圧縮以外の圧縮方法を意味し、RLE(Run Length Encoding)の例えばPackBitsやDeltaRow、並びに、ハフマン符号化(Huffman coding)などのエントロピ符号化(entropy coding)、さらに、算術符号化(arithmetic coding)などの圧縮方法がある。なお、非圧縮の場合も非ブロック圧縮と呼ぶ。
【0023】
また、以下では、ブロック圧縮されたブロックまたはその連続を「ブロック圧縮部」と呼び、非ブロック圧縮されたブロックまたはその連続を「非ブロック圧縮部」と呼ぶことにする。
【0024】
図3Bは一般的な圧縮処理における圧縮方法の切り替え、および、その結果の一例を示す図である。
【0025】
まず、番号00の原データが読み込まれるが、同ブロックは有意のデータをもたないのでスキップされ、同様に番号01および04のブロックもスキップされる。番号02および03のブロックには有意のデータがあるので、ブロック圧縮がテストされ、条件を満たすのでブロック圧縮される。一方、番号05のブロックには有意のデータがあるので、ブロック圧縮がテストされるが、条件を満たさないのでブロック圧縮されない。つまり、番号05のブロックは例えば連長圧縮されるか、圧縮されない。続く、番号06、07および08も、有意なデータをもつが、条件を満たさないのでブロック圧縮されない。従って、各ブロックの処理方法は図3Bに示すようになる。
【0026】
なお、有意のデータをもつブロックだけを符号化するので、復号側の処理の都合上、ブロックごとに有意か否かを示すフラグが符号化データの一部として発生するが、本実施形態の説明には直接関係しないので、詳細な説明は省略する。
【0027】
また、上記のブロック圧縮のテストとは、例えば、所定の圧縮率が得られるように処理対象のブロックをブロック圧縮した場合に、その圧縮データを伸長した画像の原画像に対する画質劣化が許容範囲内であるか否かをテストするものである。また、ブロック圧縮によっては、後述するように、処理対象のブロックをデコーダのデータバッファに格納できるデータサイズに圧縮可能か否かをテストする場合もある。このようなテストの結果、画質劣化が許容範囲内またはデータバッファに格納可能と判定される場合、「ブロック圧縮が可能」または「ブロック圧縮の効果がある」などと表現する。
【0028】
図4は図3Bに示す圧縮処理のフローチャートである。
【0029】
Y方向に一行分のブロックのデータをRAM2の所定領域に格納し(S1)、その中から注目ブロックのデータを読み出し(S2)、注目ブロックが有意のデータを有するか否かを調べる(S3)。その後、ステップS4で、有意のデータがある場合はステップS5へ進む。また、注目ブロックに有意のデータがなければステップS2へ戻り、次のブロックのデータを読み出すので、注目ブロックの圧縮処理はスキップされる。
【0030】
注目ブロックが有意のデータを有する場合、ブロック圧縮をテストし(S5)、ブロック圧縮の効果があると判定されれば(S6)、ブロック圧縮し(S7)、効果がなければ非ブロック圧縮で処理する(S8)。
【0031】
以上の処理が終わると、ステップS9で一行分のブロックの処理が終了したか否かを判定し、未了であればステップS2へ戻り次のブロックのデータを読み出し、ステップS3からS8の処理を繰り返す。一行分のブロックの処理が終了した場合は、例えばRAM2のブロック一行分のメモリを初期化し(S10)、圧縮されたデータを書き込む(S11)。
【0032】
上記の処理は、データのすべてのブロックの処理が終了するまで、ブロック一行ごとに行われる。
【0033】
このように、図3Bおよび図4に示す圧縮処理においては、ブロック一行ごとにステップS1からS11の処理が繰り返され、一ブロックごとにステップS2からS4の処理が繰り返される。
【0034】
[本実施形態の圧縮処理]
図5Aは本実施形態の圧縮処理の概要を示す図で、非ブロック圧縮部を2ブロックサイズ固定でまとめたものであり、図3Bに示す一般的な圧縮方法とは番号05から08の非ブロック圧縮部の扱いが異なる。
【0035】
つまり、図3Bおよび図4に示す圧縮処理によれば、番号05のブロックは、有意のデータが有るのでブロック圧縮をテストするが、条件を満たさないためブロック圧縮されずにRLEや非圧縮で処理され、処理は次の番号06のブロックへ進む。
【0036】
これに対して、図5Aに示す本実施形態の圧縮処理によれば、番号05のブロックが非ブロック圧縮で処理すると判定された場合、番号05のブロックおよび番号06のブロックをまとめて一つのブロックとみなし、番号05および06のブロックからなる矩形領域を非ブロック圧縮で処理した後、次の番号07のブロックの処理へ進む。
【0037】
従って、図5Aに示す圧縮処理によれば、あるブロックを非ブロック圧縮する場合、続く1ブロックの処理に関して、ステップS3およびS4に対応する有意のデータの有無判定、並びに、ステップS5およびS6に対応するブロック圧縮の効果の判定が省略できるので、圧縮処理全体を高速にすることができる。
【0038】
なお、続く1ブロックに有意のデータがなかったとしても、それはRLEなどにより圧縮されてしまうので圧縮効率が極端に低下することはない。また、画像データを圧縮する場合、注目ブロックの近傍のデータは、注目ブロックのデータに類似する可能性が高いから、注目ブロックを非ブロック圧縮すべきであれば、続く1ブロックも非ブロック圧縮すべきである可能性が高く、この面からも圧縮効率が極端に低下することはない。
【0039】
さて、非ブロック圧縮部にまとめるブロックサイズは2に限定されず、例えば3や4でもよい。また、非ブロック圧縮部にまとめるブロックサイズは固定である必要はない。図5Bは本実施形態の圧縮処理の概要を示す図で、非ブロック圧縮部を可変のブロックサイズでまとめるものである。
【0040】
図5Bに示す本実施形態の圧縮処理によれば、番号05のブロックが非ブロック圧縮すると判定された場合、所定のブロック単位Nでスキップしてブロックの判定を継続する。ここでスキップされるブロック単位Nは任意であり、例えば2、3または4ブロックなどでよい。そして、詳細は後述するが、番号05と異なるブロック、つまり、有意のデータがないブロック、または、ブロック圧縮すべきブロックが検出されるまで、所定のブロック単位Nでスキップするブロックの判定を継続する。図5Bの例では、番号05から08の4ブロックがまとまった例が示されている。
【0041】
なお、スキップされるブロック単位Nは、非ブロック圧縮の特性および判定速度に依存する。例えば、1ビット/画素のデータを入力し、X方向の1ブロックサイズが128画素である場合、1ブロックのX方向のバイト数は16バイトである。従って、非ブロック圧縮として最大圧縮ランレングスが128バイトのバイト単位のPackBitsを利用するならば、128/16=8であるから、8ブロックでまとめるのが効率的であり、これがスキップされるブロック単位Nの目安になる。
【0042】
従って、図5Bに示す圧縮処理によれば、スキップされるブロックにおける有意のデータの有無判定、並びに、ブロック圧縮の効果の判定が省略できるので、図5Aに示す圧縮処理よりも、さらに圧縮処理全体を高速にすることができる。ただし、図5Aの圧縮処理と比較すると、判定時間が短縮される代わりに、圧縮効率が低下する可能性がある。
【0043】
図5Cは一般的な圧縮処理と、本実施形態の圧縮処理との違いを説明するための図で、符号510で示すのが一般的な圧縮処理、符号511で示すのが図5Bの圧縮処理である。
【0044】
さらに、符号512は、X方向だけでなくY方向にも上記の所定のブロック単位Mでスキップしてブロックの判定を継続する処理を示している。符号512で示すような処理は、例えば、少なくともスキップされるブロック単位Mに対応する行分のデータをRAM2の所定領域にコピーし、そのデータをY方向にアクセスすることで容易に実現される。
【0045】
上記で説明した本実施形態の圧縮処理の具体例、ある1ビット/画素の画像データをブロック圧縮のFBE、並びに、非ブロック圧縮のPackBitsおよび非圧縮の混合で処理する例を説明する。
【0046】
なお、FBEのデコーダには二つの制限があり、128×128画素のブロック単位で復号(伸長)、かつ、デコードバッファサイズは非圧縮サイズで128/8×128=2Kバイトである。また、PackBitsは一般的なもので、128バイトのランレングスまで圧縮可能である。また、非ブロック圧縮におけるスキップ単位Nは8ブロックにする。何故かといえば、FBEのブロックサイズのX方向が128画素(=16バイト)であり、PackBitsのランレングスが128バイトまでであるから、スキップ単位を128/16=8ブロックにすれば効率がよいからである。
【0047】
1ビット/画素の画像データの圧縮が開始されると、128×128画素のブロック単位でFBEがテストされる。圧縮後のデータサイズが2Kバイト以内であれば、そのブロックはFBEされる。一方、ブロック番号Aのブロックの圧縮後のデータサイズが2Kバイト以上の場合、ブロック番号AからA+7までの8ブロックはまとめて1ブロックとみなされPackBitsされた後、処理はブロック番号A+8のブロックへ進む。つまり、7ブロック分の、ステップS3およびS4に対応する有意のデータの有無判定、並びに、ステップS5およびS6に対応するブロック圧縮の効果の判定が省略できるので、圧縮処理を高速化することができる。
【0048】
先にも述べたが、ブロック番号A+1からA+7のブロックに有意のデータがなかったとしても、PackBitsによりランレングスが圧縮されるので、極端な圧縮効率低下は発生しない。また、通常、あるブロックの近傍のデータは、そのブロックのデータとの類似性が高いので、そのブロックはPackBitsで圧縮すべきであれば、そのブロックの近傍のデータをPackBitsで圧縮しても圧縮効率が極端に低下することはない。
【0049】
ところで、スキップ単位N、言い換えればPackBitsのブロックのサイズを8にしたが、4や2でもよく、スキップ単位Nを可変にすることも可能である。ただし、PackBitsは主走査方向Xの圧縮効果が高い特性をもつので、副走査方向Yにスキップすることは有用とはいえない。もし、DeltaRowのような副走査方向Yの圧縮効率が高い方法を使用するならば、副走査方向Yのスキップも行うべきである。
【0050】
上記のような圧縮処理を行えば、ブロック圧縮を優先する圧縮においても、複数の圧縮方法を高速に切り替えながら画像データなどを圧縮することができる。
【0051】
[圧縮処理手順]
図6Aおよび6Bは図5Aに示す圧縮処理のフローチャートである。
【0052】
Y方向に一行分のブロックのデータをRAM2の所定領域に格納し(S21)、X方向の左端のブロックからブロック単位に有意のデータを有するか否かを調べる(S22およびS23)。そして、右端のブロックまで有意のデータを有するブロックが見付からない場合はステップS21へ戻り、次行のブロックのデータを読み出す。
【0053】
一方、有意のデータを有するブロックが見付かった場合はそのブロック(有意ブロックと呼ぶ)をX1とし(S24)、今度は右端のブロックからブロック単位に有意のデータを有するか否かを調べ(S25、見付かった有意ブロックをX2とする(S26)。
【0054】
次に、X1とX2との間のブロックから注目ブロックのデータを読み出し(S27)、注目ブロックが有意のデータを有するか否かを調べる(S28)。その後、ステップS29で、有意のデータがある場合はステップS30へ進む。また、注目ブロックに有意のデータがなければステップS27へ戻り、次のブロックのデータを読み出すので、注目ブロックの圧縮処理はスキップされる。
【0055】
注目ブロックが有意のデータを有する場合、ブロック圧縮をテストし(S30)、ブロック圧縮が可能であると判定されれば(S31)、ブロック圧縮し(S32)、不可能であれば次のブロックがあるか否かを調べ(S33)、次ブロックがあれば注目ブロックおよび次ブロックの2ブロックを非ブロック圧縮する(S34)。また、次のブロックがなければ注目ブロックだけを非ブロック圧縮する(S35)。
【0056】
以上の処理が終わると、ステップS36で一行分のブロックの処理が終了したか否かを判定し、未了であればステップS27へ戻り、次のブロックのデータを読み出し、ステップS28からS35の処理を繰り返す。一行分のブロックの処理が終了した場合は、例えばRAM2のブロック一行分のメモリを初期化し(S37)、圧縮されたデータを書き込む(S38)。
【0057】
上記の処理は、データのすべてのブロックの処理が終了するまで、ブロック一行ごとに行われる。
【0058】
図7Aから7Cは図5Bに示す圧縮処理のフローチャートである。なお、図6Aおよび6Bに示す処理と同様のステップには同じ符号を付してその詳細説明を省略する。
【0059】
上述したステップS21からS26の処理が終了した後、非ブロック圧縮の継続数iを零に初期化する(S41)。X1とX2との間のブロックから注目ブロックのデータを読み出し(S42)、注目ブロックが有意のデータを有するか否かを調べ(S43)、有意のデータがある場合はステップS47へ進む。
【0060】
注目ブロックに有意のデータがない場合はステップS45へ進み、継続数iが零か否かを判定する。i>0であれば非ブロック圧縮するブロックが溜まっているので、これらのブロックをステップS46で非ブロック圧縮する。その後、処理はステップS42へ戻り、次のブロックのデータを読み出すので、注目ブロックの圧縮処理はスキップされる。
【0061】
注目ブロックが有意のデータを有する場合、ブロック圧縮をテストし(S47)、ブロック圧縮が可能であると判定されれば(S48)、ステップS49で継続数iが零か否かを判定する。i>0であれば非ブロック圧縮するブロックが溜まっているので、これらのブロックをステップS50で非ブロック圧縮する。その後、注目ブロックをブロック圧縮する(S51)。
【0062】
一方、ブロック圧縮が不可能であれば次のブロックがあるか否かを調べ(S52)、あれば継続数iをインクリメントし(S53)、継続数iにスキップ数Eを加えた値が継続制限数N未満であるか否かを判定し(S54)、i+E<Nであれば継続数iにスキップ数Eを加える(S55)。また、次ブロックがない場合、または、i+E≧Nの場合はステップS56で溜まっているブロックを非ブロック圧縮する。
【0063】
図7Cは非ブロック圧縮処理を示すフローチャートで、ステップS61で継続数i分のブロックをまとめて処理し、ステップS62で継続数iを零に初期化し、メインのルーチンに復帰する。
【0064】
上記の実施形態において、サブユニットの処理単位を並列におく、サブユニットの処理単位がユニットの中でループする、上位のサブユニットの処理単位の中で下位のサブユニット処理単位がループする、などなど各ユニットの配置を変えたとしても、本実施形態を適用したとみなせる。
【0065】
さらに、ブロック圧縮、非圧縮以外の非ブロック圧縮、および、非圧縮の組み合わせだけでなく、内容が不明な原データを領域条件の異なる複数の圧縮方法を切り替えながら処理していく場合にも、つまり複数のブロック圧縮を使用する場合でも、または、複数の非ブロック圧縮を使用する場合でも、本実施形態を適用することができる。
【0066】
図8は図1に示す情報処理装置3000であるホストコンピュータに装填される記憶メディアであるFDに記憶されているプログラムをホストコンピュータにロードする様子を示している。また、図9は記憶メディアの一例であるFDのメモリマップを示す図である。
【0067】
図9に示す符号999は、ディレクトリ情報などを記憶する領域で、アプリケーションプログラムテーブル998の記憶場所などが記録されている。さらに、図9には、各動作環境に対応して、例えば図4、図6Aおよび図6B、あるいは、図7Aから図7Cに示した制御プログラムなどの記憶領域997や、処理用の構成情報などの記憶領域996などが示されている。
【0068】
ホストコンピュータのオペレータは、FDの記憶内容からインストールしたい例えばアプリケーション名をKB9により指示することにより、前述のテーブル998を参照してアプリケーションがホストコンピュータへロードされる。例えば動作環境XXXを指示すると、領域997および996に記憶された対応するアプリケーションおよび構成情報がホストコンピュータにロードされる。
【0069】
以上説明したように、本実施形態によれば、ブロック圧縮を優先する圧縮処理において次の効果を得ることができる。
(1)ブロック圧縮が可能か否かの判定を短縮できる。
(2)ブロック圧縮できないケースが続く率が低減されるので、その分の判定時間を短縮できる。
(3)非ブロック圧縮される部分の処理単位を可変にできる。
【0070】
すなわち、ブロック圧縮が可能かの条件判定の回数を減らせる。また、ブロック圧縮できないケースが続くとその間の判定を省略することができる。また、非ブロック圧縮部の処理のサイズを変動させることができる。また、非ブロック圧縮部の効率を向上することができる。従って、本実施形態によれば、ブロック圧縮優先の処理においても、処理の高速化/効率化が達成でき、データ圧縮やイメージ加工処理を短時間で効率よく実行することができる。
【0071】
【他の実施形態】
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【0072】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることはいうまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
【0073】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
【0074】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、図6Aおよび図6B、または、図7Aから図7Cに示したフローチャートに対応するプログラムコードを格納することになる。
【0075】
【発明の効果】
以上説明したように、本発明によれば、できるだけ圧縮効率を低下させずに、高速に圧縮処理を実行することができる。
【図面の簡単な説明】
【図1】本実施形態の情報処理装置の概観図、
【図2】図1に示す情報処理装置の構成例を示すブロック図、
【図3A】圧縮対象の原データを示す図、
【図3B】一般的な圧縮処理における圧縮方法の切り替え、および、その結果の一例を示す図、
【図4】図3Bに示す圧縮処理のフローチャート、
【図5A】本実施形態の圧縮処理の概要を示す図、
【図5B】本実施形態の圧縮処理の概要を示す図、
【図5C】一般的な圧縮処理と、本実施形態の圧縮処理との違いを説明するための図、
【図6A】図5Aに示す圧縮処理のフローチャート、
【図6B】図5Aに示す圧縮処理のフローチャート、
【図7A】図5Bに示す圧縮処理のフローチャート、
【図7B】図5Bに示す圧縮処理のフローチャート、
【図7C】図5Bに示す圧縮処理のフローチャート、
【図8】図1に示す情報処理装置に装填される記憶メディアに記憶されているプログラムをホストコンピュータにロードする様子を示すための図、
【図9】記憶メディアの一例であるFDのメモリマップを示す図である。

Claims (17)

  1. 入力画像データを所定画素サイズのデータブロックに分割し、
    前記データブロックの少なくとも一つに対してブロック圧縮が有効か否かを判定し、
    前記ブロック圧縮が有効と判定されたデータブロックに前記ブロック圧縮を施し、
    前記ブロック圧縮が無効と判定されたデータブロック、および、そのデータブロックに続く所定数のデータブロックに非ブロック圧縮処理を施す各ステップを有し、
    前記判定は、複数のデータブロックを所定の順番に行い、前記ブロック圧縮が無効と判定したデータブロックに続く前記所定数のデータブロックをスキップすることを特徴とする画像処理方法。
  2. 前記判定は、前記ブロック圧縮後の前記データブロックがデータバッファに格納可能か否かによって行うことを特徴とする請求項1に記載された画像処理方法。
  3. 前記非ブロック圧縮処理はラン長符号化(RLE)または非圧縮処理であることを特徴とする請求項1または請求項2に記載された画像処理方法。
  4. 前記非ブロック圧縮処理はPackBitsを用いる圧縮処理であることを特徴とする請求項1または請求項2に記載された画像処理方法。
  5. 前記非ブロック圧縮処理はDeltaRawを用いる圧縮処理であることを特徴とする請求項1または請求項2に記載された画像処理方法。
  6. 情報処理装置を制御してデータを処理する情報処理方法であって、
    メモリから所定データ単位にデータを読み出し、
    前記データを所定データサイズの一連のデータブロックに分割し、
    前記一連のデータブロック内の、有意のデータを有するデータブロック列の左端および右端のデータブロックを検出し、
    前記左端および右端のデータブロックの間に存在するデータブロックに対してブロック圧縮が有効か否かを判定し、
    前記ブロック圧縮が有効と判定されたデータブロックは前記ブロック圧縮を施し、
    前記ブロック圧縮が無効と判定されたデータブロック、および、そのデータブロックに続く所定数のデータブロックに非ブロック圧縮処理を施す各ステップを有し、
    前記判定は、複数のデータブロックを所定の順番に行い、前記ブロック圧縮が無効と判定したデータブロックに続く前記所定数のデータブロックをスキップすることを特徴とする情報処理方法。
  7. 前記判定は、前記ブロック圧縮後の前記データブロックがデータバッファに格納可能か否かによって行うことを特徴とする請求項6に記載された情報処理方法。
  8. 前記非ブロック圧縮処理はラン長符号化(RLE)または非圧縮処理であることを特徴とする請求項6または請求項7に記載された情報処理方法。
  9. 前記非ブロック圧縮処理はPackBitsを用いる圧縮処理であることを特徴とする請求項6または請求項7に記載された情報処理方法。
  10. 前記非ブロック圧縮処理はDeltaRawを用いる圧縮処理であることを特徴とする請求項6または請求項7に記載された情報処理方法。
  11. 前記データは画像データであることを特徴とする請求項6から請求項10の何れかに記載された情報処理方法。
  12. 前記検出は、前記一連のデータブロックの一端のデータブロックから第一の有意のデータを探索し、前記第一の有意データを検出すると、前記第一のデータブロックの他端のデータブロックから第二の有意データを探索することを特徴とする請求項6から請求項11の何れかに記載された情報処理方法。
  13. 情報処理装置を制御して、請求項1から請求項5の何れかに記載された画像処理を実現することを特徴とするプログラム。
  14. 情報処理装置を制御して、請求項6から請求項12の何れかに記載された情報処理を実現することを特徴とするプログラム。
  15. 請求項13または請求項14に記載されたプログラムが記録されたことを特徴とする記録媒体。
  16. 入力画像データを所定画素サイズのデータブロックに分割する分割手段と、
    前記データブロックの少なくとも一つに対してブロック圧縮が有効か否かを判定する判定手段と、
    前記ブロック圧縮が有効と判定されたデータブロックに前記ブロック圧縮を施し、前記ブロック圧縮が無効と判定されたデータブロック、および、そのデータブロックに続く所定数のデータブロックに非ブロック圧縮処理を施す処理手段とを有し、
    前記判定手段は、複数のデータブロックを所定の順番に判定し、前記ブロック圧縮が無効と判定したデータブロックに続く前記所定数のデータブロックの判定をスキップすることを特徴とする画像処理装置。
  17. メモリから所定データ単位にデータを読み出し、前記データを所定データサイズの一連のデータブロックに分割する分割手段と、
    前記一連のデータブロック内の、有意のデータを有するデータブロック列の左端および右端のデータブロックを検出する検出手段と、
    前記左端および右端のデータブロックの間に存在するデータブロックに対してブロック圧縮が有効か否かを判定する判定手段と、
    前記ブロック圧縮が有効と判定されたデータブロックは前記ブロック圧縮を施し、前記ブロック圧縮が無効と判定されたデータブロック、および、そのデータブロックに続く所定数のデータブロックに非ブロック圧縮処理を施す処理手段とを有し、
    前記判定手段は、複数のデータブロックを所定の順番に判定し、前記ブロック圧縮が無効と判定したデータブロックに続く前記所定数のデータブロックの判定をスキップすることを特徴とする情報処理装置。
JP2000030513A 1999-02-17 2000-02-08 情報処理装置、画像処理装置およびそれらの方法 Expired - Fee Related JP3869992B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000030513A JP3869992B2 (ja) 1999-02-17 2000-02-08 情報処理装置、画像処理装置およびそれらの方法
US09/505,729 US6658156B1 (en) 1999-02-17 2000-02-17 Information processing apparatus and method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP3914399 1999-02-17
JP11-39143 1999-02-17
JP2000030513A JP3869992B2 (ja) 1999-02-17 2000-02-08 情報処理装置、画像処理装置およびそれらの方法

Publications (3)

Publication Number Publication Date
JP2000307875A JP2000307875A (ja) 2000-11-02
JP2000307875A5 JP2000307875A5 (ja) 2005-04-14
JP3869992B2 true JP3869992B2 (ja) 2007-01-17

Family

ID=26378476

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000030513A Expired - Fee Related JP3869992B2 (ja) 1999-02-17 2000-02-08 情報処理装置、画像処理装置およびそれらの方法

Country Status (2)

Country Link
US (1) US6658156B1 (ja)
JP (1) JP3869992B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4136292B2 (ja) * 2000-08-09 2008-08-20 株式会社リコー 画像処理装置
US7167261B2 (en) * 2001-12-28 2007-01-23 Kabushiki Kaisha Toshiba Image forming apparatus with predetermined copy quality set by user or operator
JP3857611B2 (ja) * 2002-05-20 2006-12-13 富士通株式会社 データ圧縮プログラム、データ圧縮方法、およびデータ圧縮装置
JP4882925B2 (ja) 2007-08-31 2012-02-22 セイコーエプソン株式会社 画像データ処理装置および画像データ処理方法
JP4952627B2 (ja) * 2008-03-21 2012-06-13 富士通株式会社 画像処理装置、画像処理方法および画像処理プログラム
JP5335495B2 (ja) * 2009-03-10 2013-11-06 キヤノン株式会社 情報処理装置、画像データ生成方法、及びコンピュータプログラム
JP5595151B2 (ja) 2010-07-13 2014-09-24 キヤノン株式会社 画像処理装置、画像処理装置における圧縮方法、および、プログラム
JP5643574B2 (ja) * 2010-08-26 2014-12-17 キヤノン株式会社 画像処理装置及び画像処理方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2514114B2 (ja) * 1991-01-31 1996-07-10 株式会社グラフィックス・コミュニケーション・テクノロジーズ 動画像符号化装置
JP3447771B2 (ja) * 1993-09-02 2003-09-16 富士通株式会社 画像データの符号化方法及び復元方法並びに装置

Also Published As

Publication number Publication date
US6658156B1 (en) 2003-12-02
JP2000307875A (ja) 2000-11-02

Similar Documents

Publication Publication Date Title
US5991515A (en) Method and apparatus for compressing and decompressing data prior to display
EP1057138B1 (en) Compressed merging of raster images for high speed digital printing
US7630099B1 (en) Reducing storage requirements for display data
US6583887B1 (en) Method and apparatus for data compression
EP0469851B1 (en) Image processing apparatus
JP3453407B2 (ja) 画像処理装置、画像出力装置、画像出力システム、およびその方法
JP3461309B2 (ja) ハフマン符号化データ圧縮装置
US6011566A (en) System and method to display raster images with negligible delay time and reduced memory requirements
JP3869992B2 (ja) 情報処理装置、画像処理装置およびそれらの方法
KR100477777B1 (ko) 래스터 오브젝트를 생성하기 위한 방법, 시스템, 정보저장 매체, 및 컴퓨터 판독가능 매체
JP2003084933A (ja) 画像処理装置およびプログラム
JPH06334872A (ja) 画像処理装置
JPH0581395A (ja) 複数のサイズを有する文書用の交換可能なイメージ・オブジエクトを扱うためのデータ処理システムおよび方法
JP3346051B2 (ja) 画像処理装置
JP2000232587A (ja) 画像処理装置および画像処理方法
JP4078747B2 (ja) 画像処理装置
JP4377351B2 (ja) データ圧縮装置およびデータ圧縮プログラム
JP6497014B2 (ja) 画像処理装置及び画像処理プログラム
JPH0488749A (ja) 画像処理装置
JP2000207147A (ja) 印刷デ―タ転送システム
KR102568052B1 (ko) 화상 신장장치, 그 제어방법 및 컴퓨터 프로그램
JP3117987B2 (ja) 画像処理装置
JPH0793210A (ja) 共有メモリ管理方式
JP3119387B2 (ja) 画像処理装置
JP2019077133A (ja) 画像形成装置、画像形成方法、プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040608

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040608

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20040608

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20040608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060526

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060922

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061016

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091020

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101020

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101020

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111020

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111020

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121020

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131020

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees