JP2007324973A - 画像処理装置、画像処理方法及びプログラム - Google Patents

画像処理装置、画像処理方法及びプログラム Download PDF

Info

Publication number
JP2007324973A
JP2007324973A JP2006153234A JP2006153234A JP2007324973A JP 2007324973 A JP2007324973 A JP 2007324973A JP 2006153234 A JP2006153234 A JP 2006153234A JP 2006153234 A JP2006153234 A JP 2006153234A JP 2007324973 A JP2007324973 A JP 2007324973A
Authority
JP
Japan
Prior art keywords
block
image
information
value
unit
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.)
Granted
Application number
JP2006153234A
Other languages
English (en)
Other versions
JP4666261B2 (ja
Inventor
Taro Yokose
太郎 横瀬
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2006153234A priority Critical patent/JP4666261B2/ja
Publication of JP2007324973A publication Critical patent/JP2007324973A/ja
Application granted granted Critical
Publication of JP4666261B2 publication Critical patent/JP4666261B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

【課題】比較的軽い処理負荷で、符号化された画像データを回転させる画像処理装置を提供する。
【解決手段】画像処理装置は、ブロックライン毎に、先頭ブロックのビット位置及びDC値のみを記憶し、先頭ブロックのビット位置及びDC値のみを用いて、90度回転又は180度回転を実現する。ブロックラインとは、主走査方向に配列されたブロック群であり、このブロックラインの先頭ブロックについてのみ、ビット位置及びDC値を保持することにより、回転処理に要するメモリ領域を削減する。
【選択図】図4

Description

本発明は、符号化された画像データを回転させる画像処理方法に関する。
例えば、特許文献1には、DCTブロックを再配列し、各ブロック内でDCT係数の順序を再配列し、適当な係数の符号ビットを変更することにより量子化DCTドメイン内で90度回転を行う方法が開示されている。
また、特許文献7には、完全な伸長および圧縮の工程を経由することなしに、画像の圧縮ドメイン表現を直接操作して、選択された空間ドメイン操作を行う方法が開示されている。
特開平7−154264号公報 特開平9−247423号公報 特開平9−247424号公報 特開平8−204957号公報 特開平10−112796号公報 特開平10−336427号公報 特開平11−331847号公報 特開2000−134459号公報 特開2001−157029号公報 特開2003−189109号公報
本発明は、上述した背景からなされたものであり、比較的軽い処理負荷で、符号化された画像データを回転させる画像処理装置を提供することを目的とする。
[画像処理装置]
上記目的を達成するために、本発明にかかる画像処理装置は、JPEG方式により符号化された画像データを回転させる画像処理装置であって、画像の符号データに基づいて、JPEG方式の処理単位となるブロックそれぞれを直接復号化するために必要となる必要情報を生成する生成手段と、前記生成手段により生成された各ブロックの必要情報のうち、一部のブロックの必要情報を保持する情報保持手段と、前記情報保持手段により保持されている必要情報に基づいて、回転された画像の符号データを生成する回転符号生成手段とを有する。
好適には、前記情報保持手段は、画像の周縁部に相当するブロックの必要情報のみを保持し、前記改定符号生成手段は、画像周縁部に相当するブロックの必要情報に基づいて、90度回転又は180度回転された画像の符号データを生成する。
好適には、前記情報保持手段は、主走査方向の各ブロックラインのうち、先頭ブロックの必要情報のみを保持し、この先頭ブロックに続く後続ブロックの必要情報を消去する。
好適には、前記生成手段は、前記必要情報として、符号データにおける各ブロックの位置を特定するためのブロック位置情報と、各ブロックに含まれる直流成分値とを生成し、前記情報保持手段は、一部のブロックのブロック位置情報及び直流成分値を保持する。
また、本発明にかかる画像処理装置は、JPEG方式により符号化された画像データを回転させる画像処理装置であって、画像の符号データに基づいて、既定の走査方向のブロック群からなるブロックラインそれぞれに対して直接アクセスするためのアクセス情報を生成するアクセス情報生成手段と、前記アクセス情報生成手段により生成されたアクセス情報に基づいて、回転された画像の符号データを生成する回転符号生成手段とを有する。
[画像処理方法]
また、本発明にかかる画像処理方法は、JPEG方式により符号化された画像データを回転させる画像処理方法であって、画像の符号データに基づいて、JPEG方式の処理単位となるブロックそれぞれを直接復号化するために必要となる必要情報を生成し、生成された各ブロックの必要情報のうち、一部のブロックの必要情報を保持し、生成された各ブロックの必要情報のうち、他部のブロックの必要情報を消去し、保持されている必要情報に基づいて、回転された画像の符号データを生成する。
[プログラム]
また、本発明にかかるプログラムは、JPEG方式により符号化された画像データを回転させるコンピュータにおいて、画像の符号データに基づいて、JPEG方式の処理単位となるブロックそれぞれを直接復号化するために必要となる必要情報を生成するステップと、生成された各ブロックの必要情報のうち、一部のブロックの必要情報を保持するステップと、保持されている必要情報に基づいて、回転された画像の符号データを生成するステップとを前記コンピュータに実行させる。
本発明の画像処理装置によれば、符号化された画像データの回転に要するメモリ量を小さくすることができる。
[背景と概略]
まず、本発明の理解を助けるために、その背景及び概略を説明する。
例えば、国際標準JPEGは、8×8ブロックを単位とする符号化処理及び復号化処理を行う。このようなJPEGにより生成された画像の符号データを、完全に復号化することなく90度回転又は180度回転させるには、ブロック単位のランダムスキャンが必要である。
しかし、以下の理由のために、JPEGの符号から特定のブロックを抽出することは難しい。
(課題1)可変長符号化によって、符号がビット単位で変化するため、伸長なしにブロックの位置を見つけることが難しい。
(課題2)DCT係数の直流成分値(以下DC値)は、直前ブロックのDC値との差分値として符号化されるため、あるブロックのDC値を得るためには、直前ブロックのDC値を知る必要がある。
上記2つの課題を解決するために、例えば、1パス目でブロック毎のビット位置とDC値とを求めて、このビット位置及びDC値をメモリに格納しておき、2パス目で、メモリに格納されたビット位置及びDC値を用いてブロックのランダムスキャンを行うことが考えられる。
これにより、各ブロックへのランダムスキャンが可能になり、回転処理のために画像全体を伸長する必要がなくなる。
しかしながら、全ブロックのビット位置及びDC値を保持すると、メモリ領域を圧迫する。仮に、ビット位置に4[Byte]、DC値に2[Byte]必要だとすると、8ビットグレイの画像を回転させる場合に、原画像に比較して9%(すなわち、(4+2)/64)程度のメモリ容量が必要である。一般に、JPEGの圧縮率は、10〜20程度で運用されることが多いので、ビット位置及びDC値を保持するために、原画像の符号(以下、原符号)全体と同程度かそれ以上のメモリが必要ということになり、組込み機器などではメモリコストとして大きい。また、メインメモリが潤沢なCPU処理の場合でも、600dpiA3相当で7[MByte]程必要になるため、現状ではキャッシュメモリに収めるのが難しく、メインメモリへのアクセスが発生して、処理速度が低下する。
そこで、本実施形態における画像処理装置2は、ブロックライン毎に、先頭ブロックのビット位置及びDC値のみを記憶し、先頭ブロックのビット位置及びDC値のみを用いて、90度回転又は180度回転を実現する。ブロックラインとは、図1(A)に例示するブロックのうち、走査方向(主走査方向又は副走査方向)に配列されたブロック群である。本例では、主走査方向に配列されたブロック群からなるブロックラインの先頭ブロックについてのみ、ビット位置及びDC値が保持され、後続ブロック(先頭ブロックに続くブロック群)のビット位置及びDC値は保持されない。換言すると、本例の画像処理装置2は、ブロックラインへのランダムスキャンを用いて、所望の回転方向及び回転角度(90度又は180度)で回転された画像の符号データを生成する。
より具体的には、画像処理装置2は、画像を右に90度回転させる場合には、図1(B)に例示するように、各ブロックラインを(原画像で)下から順に、副走査方向を優先して並列的に処理していけば、回転画像の符号データを生成することができる。なお、各ブロックの回転は、各ブロックに含まれるDCT係数の転置及び正負符号の交換により実現される。したがって、回転画像の符号データを生成する過程において、逆DCT処理を行う必要はない。また、各ブロックラインにおける後続ブロック(非先頭ブロック)の処理も、そのブロックを処理するときには直前ブロックの処理が終わっていることが保証されるため、先頭ブロックと同様に処理できる。
なお、以下の説明では、原画像の走査方向の最上流位置にあるブロック(本来的な先頭ブロック)だけでなく、直前ブロックまで処理された後続ブロックも先頭ブロックとよぶ場合がある。
また、画像処理装置2は、画像を左に90度回転させる場合には、図2(A)に例示するように、各ブロックラインを(原画像で)上から順に、副走査方向を優先して並列的に処理する。ただし、このとき得られるライン単位の符号は、回転後画像では下から上への順に並ぶ。
そこで、画像処理装置2は、図2(B)に例示するように、回転画像後の符号をブロックライン単位にバッファリングしておいて、符号の出力時に、処理順とは反対の順序で出力することにより、符号を並べなおす。このとき、リスタートマーカ(RSTマーカ)の挿入などの手段でブロックライン単位にバイトバウンダリに揃えておくことが望ましい。
なお、このような並び替えは、DMAのチェイニングのような手法でも実行し、システム内の他のモジュールに、並び替えられた符号を蹴り出すようにしてもよい。この場合、本実施形態のモジュール内に、ワークメモリを持たないように構成できる。
また、画像処理装置2は、画像を180度回転させる場合には、図2(C)に例示するように、各ブロックラインを(原画像で)下から順に、主走査方向を優先して処理する。換言すると、画像処理装置2は、原画像で下から、各ブロックライン毎に逐次処理する。ただし、このとき得られるブロック符号は、回転後画像では右から左に並ぶ。
ここで、DC値の差分の取り方は、主走査方向の向きで決まるので、ブロックを並べなおしてからでないとDC値を符号化することができない。
そこで、本画像処理装置2は、DC値及び交流成分値(以下AC値)のDCT係数を非圧縮でブロックライン分バッファリングしてから、ブロックの並べ替えと符号化を行う。
なお、画像処理装置2は、AC値のみを先に符号化し、DC値を非圧縮でバッファリングし、ブロックライン分貯まったところでDC値を符号化して、先に符号化されたAC値の符号とマージするようにしてもよい。前者は、処理が単純であるが非圧縮のブロックラインメモリを必要とする。一方、後者は、ワークメモリを減らせるが、処理が複雑になる。また、画像処理装置2は、AC値に対してゼロランレングス符号化だけかけて、このAC値及びDC値をバッファリングし、ブロックライン分貯まったところで残りの符号化処理を行ってもよい。
なお、カラー画像を符号化又は復号化する場合には、色差をサブサンプリングするために、MCU(Minimum Coding Unit)というブロック群が事実上の処理単位となるが、本ブロックをMCUに置き換えることにより同じ効果が容易に得られるため、説明の便宜上、ブロックによる構成を説明する。
[ハードウェア構成]
次に、画像処理装置2のハードウェア構成を説明する。
図3は、本発明にかかる画像処理方法が適応される画像処理装置2のハードウェア構成を、制御装置21を中心に例示する図である。
図3に例示するように、画像処理装置2は、CPU212及びメモリ214などを含む制御装置21、通信装置22、HDD・CD装置などの記録装置24、並びに、LCD表示装置あるいはCRT表示装置およびキーボード・タッチパネルなどを含むユーザインターフェース装置(UI装置)25から構成される。
画像処理装置2は、例えば、プリンタ装置3の内部に設けられ、入力された画像の符号データを、回転された画像の符号データに変換して、プリンタ装置3のプリントエンジンなどに送信する。
[画像処理プログラム]
図4は、制御装置21(図3)により実行され、本発明にかかる画像処理方法を実現する画像処理プログラム5の機能構成を例示する図である。
図4に例示するように、画像処理プログラム5は、ブロック切出し部500、DC伸長部510、情報保持部520、先頭情報格納部530、符号シーク部540、変換係数伸長部550、ブロック内回転部560、DC差分算出部570、ハフマン符号化部580、及び再配置部590を有する。
画像処理プログラム5において、ブロック切出し部500は、入力された原符号(原画像の符号データ)から、各ブロックの符号を切り出す。
ここで、ブロック切出し部500は、ブロックを切り出すためにはハフマン伸長によって可変長符号の切れ目を見つける必要があるが、AC値は必要ないので、完全に伸長する必要はない。すなわち、JPEGのAC成分の符号は、ゼロラン(係数値0の連続数)と有効係数のペアでシンボルを構成する、いわゆる2次元ハフマン符号であり、付加ビット表現をとるため、完全に伸長する場合は、ゼロランを展開して無効係数を再構成し、グループ番号と付加ビットから有効係数を再構成する必要があるが、本例のブロック切出し部500は、ブロック位置の検出とDC値の伸長を目的とするため、上記の処理をする必要がない。
つまり、本例のブロック切出し部500は、注目ビット列に適合する符号語を検索し、計数した画素数に応じ、DC成分であれば完全にハフマン復号化してDC伸長部510に出力し、同時に、符号語の先頭位置をビット位置として情報保持部520に出力する。また、ブロック切出し部500は、AC成分であれば符号語のビット数だけ注目ビット列を進め、該当符号語に対応する画素数を計数して、次の符号語を検索する。
なお、実際には、EOB(EndOfBlock)やマーカなどの処理が入るが、説明の便宜上、これらの処理を省いて説明する。
DC伸長部510は、入力された原符号のDC値を復号化し、復号化されたDC値を情報保持部520に出力する。
本例のDC伸長部510は、DC成分(差分値)に基づいて、各ブロックのDC値を生成し、生成されたDC値を情報保持部520に出力する。
情報保持部520は、ブロック切出し部500から入力されたビット位置、及び、DC伸長部510から入力されたDC値のうち、先頭ブロックのビット位置及びDC値のみを先頭情報格納部530に格納し、他のブロック(後続ブロック)のビット位置及びDC値を消去する。
なお、本例の情報保持部520は、先頭ブロックそれぞれを直接復号化するために必要となる必要情報として、先頭ブロックのビット位置及びDC値のみを保持するが、これに限定されるものではなく、画像の周縁部に相当する他のブロックのビット位置及びDC値を保持してもよい。
符号シーク部540は、先頭情報格納部530により格納されている先頭ブロックのビット位置に基づいて、入力された原符号をランダムスキャンし、必要な符号をブロックライン単位で切り出す。ブロックの切出し順序は、図1又は図2に例示したように、回転方向及び回転角度に対応したものである。
本例の符号シーク部540は、所望の回転方向及び回転角度に対応する先頭ブロックのビット位置及びDC値を先頭情報格納部530から読み出し、読み出されたビット位置から符号語を復号化して、先頭ブロックのシンボル(DC差分値、ACのゼロラン、及びACの有効係数)を切り出し、切り出された先頭ブロックのシンボルと、読み出されたDC値(このブロックのDC値)とを変換係数伸長部550に出力する。なお、本例の符号シーク部540は、先頭ブロックが切り出されると、次のブロックのビット位置を保持し、保持されたビット位置から、後続ブロックのシンボルを切り出す。
変換係数伸長部550は、符号シーク部540により切り出された各ブロックの符号を復号化して、このブロックの変換係数(DC値及びAC値)を生成し、生成された変換係数をブロック内回転部560に出力する。
本例の変換係数伸長部550は、符号シーク部540から先頭ブロック(本来的な先頭ブロック)のシンボル(DC差分値、ACのゼロラン、及びACの有効係数)とDC値とが入力された場合には、入力されたDC値をそのまま適用し、ACのゼロランを展開して無効係数(ゼロ係数)を生成し、ACの有効係数とマージする。また、変換係数伸長部550は、後続ブロックのシンボル(DC差分値、ACのゼロラン、及びACの有効係数)が入力された場合には、入力されたDC差分値に直前ブロックのDC値を加算してDC値を生成し、ACのゼロランを展開しACの有効係数とマージする。
ブロック内回転部560は、所望の回転方向及び回転角度に応じて、変換係数伸長部550から入力された変換係数の配置及び正負符号の少なくとも一方を変換し、変換された変換係数をDC差分算出部570に出力する。このように、90度又は180度の回転処理は、逆DCT処理を行わなくても実施可能である。
DC差分算出部570は、ブロック内回転部560から入力された変換係数のうち、DC値に基づいて、回転された画像における直前ブロックのDC値と注目ブロックのDC値との差分を算出する。
本例のDC差分算出部570は、画像を180度回転する場合(図2(C)の場合)に、1ブロックライン分の変換係数をバッファリングし、1ブロックライン分が貯まったら、バッファリングされた順序とは逆の順序で、各ブロックの変換係数を配列し、配列されたブロック群(すなわち、回転後の画像のブロック群)における直前ブロックのDC値を、注目ブロックのDC値から減算して、注目ブロックのDC差分値を生成する。なお、本例のDC差分算出部570は、画像を90度回転する場合に、1ブロック分の変換係数をバッファリングして、注目ブロックのDC差分値を算出する。
ハフマン符号化部580は、DC差分算出部570から入力された変換係数(DC差分値及びAC値)を符号化する。
本例のハフマン符号化部580は、DC差分算出部570から入力された変換係数をブロック単位でハフマン符号化し、生成された符号を再配置部590に出力する。
再配置部590は、ハフマン符号化部580により符号化された符号を、回転方法及び回転角度に応じて再配置する。
本例の再配置部590は、ハフマン符号化部580により符号化された各ブロックの符号をバッファリングし、画像を左に90度回転する場合には、図2(B)に例示するように、バッファリングされた順序とは逆の順序で、各ブロックラインを出力する。
[全体動作]
次に、画像処理装置2の動作を説明する。
図5は、画像処理プログラム5によるアクセス情報登録処理(S10)を示すフローチャートである。
図5に示すように、ステップ100(S100)において、ブロック切出し部500は、入力された原符号のビット列の中から、走査順に注目ビット位置を設定し、設定された注目ビット位置から符号語を検索し切り出す。
また、ブロック切出し部500は、設定された注目ビット位置を情報保持部520に出力する。
ステップ110(S110)において、ブロック切出し部500は、切り出された符号語がDC成分であるかAC成分であるかを判断する。具体的には、ブロック切出し部500は、これまでに切り出された符号語に対応するシンボル数(DC値及びAC値の個数)に基づいて、DC成分であるかAC成分であるかを判断する。
画像処理プログラム5は、切り出された符号語がDC成分である場合に、S120の処理に移行し、切り出された符号語がAC成分である場合に、S130の処理に移行する。
ステップ120(S120)において、ブロック切出し部500は、切り出された符号語を復号化し、復号化されたDC成分(DC差分値)をDC伸長部510に出力し、この符号語のビット数だけ注目ビット位置を進める。
また、ブロック切出し部500は、シンボル数のカウント値を1つ加算する。
DC伸長部510は、ブロック切出し部500から入力されたDC差分値と、直前ブロックのDC値とを合算して、このブロックのDC値を算出し、算出されたDC値を情報保持部520に出力する。
ステップ130(S130)において、ブロック切出し部500は、切り出された符号語から、符号語に対応するAC値の個数を判定し、判定されたAC値の個数をシンボル数のカウント値に加算する。
また、ブロック切出し部500は、切り出された符号語のビット数だけ注目ビット位置を進めて、S180の処理に移行する。
ステップ140(S140)において、情報保持部520は、ブロック切出し部500から入力された注目ビット位置が先頭ブロックのビット位置であるか否かを判断する。例えば、情報保持部520は、DC伸長部520から入力されたDC値の個数をカウント値、このカウント値に基づいて、先頭ブロックのDC値であるか後続ブロックのDC値であるかを判断する。
画像処理プログラム5は、注目ビット位置が先頭ブロックである場合に、S150の処理に移行し、注目ビット位置が後続ブロックである場合に、S160の処理に移行する。
ステップ150(S150)において、情報保持部520は、ブロック切出し部500から入力された注目ビット位置を先頭ブロックのビット位置として先頭情報格納部530に格納し、DC伸長部510から入力されたDC値を先頭ブロックのDC値として先頭情報格納部530に格納する。
ステップ160(S160)において、情報保持部520は、ブロック切出し部500から入力された注目ビット位置、及び、DC伸長部510から入力されたDC値を先頭情報格納部530に格納することなく削除する。
ステップ170(S170)において、画像処理プログラム5は、入力された原符号のビット列全体が処理されたか否かを判断し、未処理のビット列が存在する場合には、S100の処理に戻って、次の符号語に対する処理に移行し、全ビット列が処理された場合には、アクセス情報登録処理(S10)を終了する。
アクセス情報登録処理(S10)が終了すると、後述する回転処理(90度回転処理(S20)又は180度回転処理(S22))に移行する。
図6は、画像処理プログラム5による90度回転処理(S20)を示すフローチャートである。
図6に示すように、ステップ200(S200)において、画像処理プログラム5は、画像を右に90度回転又は左に90度回転させるよう指示されると、90度回転処理を開始する。
符号シーク部540は、要求された回転角度及び回転方向に対応するスキャン順序を決定する。具体的には、符号シーク部540は、右に90度回転させるよう要求された場合に、図1(B)に例示するように、原画像における先頭ブロックの紙面の下方から上方に走査(すなわち、原画像の副走査方向下流から上流に走査)し、先頭ブロックの上端ブロックまでくると、次の副走査ライン(主走査方向右側のブロックライン)のブロック群を先頭ブロックとして紙面の下方から上方に走査するよう決定する。また、符号シーク部540は、左に90度回転させるよう要求された場合に、図2(A)に例示するように、原画像における先頭ブロックの紙面の上方から下方に走査(すなわち、原画像の副走査方向上流から下流に走査)し、先頭ブロックの下端ブロックまでくると、次の副走査ライン(主走査方向右側のブロックライン)のブロック群を先頭ブロックとして紙面の上方から下方に走査するよう決定する。
そして、符号シーク部540は、先頭情報格納部530に格納されている先頭情報のビット位置(又は直前ブロック処理後のビット位置)を用いて、決定されたスキャン順序に対応するブロック(注目ブロック)に直接アクセスし、この注目ブロックの符号をシンボル(DC差分値、ACのゼロラン及びACの有効係数)に変換し、変換されたシンボルを変換係数伸長部550に出力する。
また、符号シーク部540は、注目ブロックが本来的な先頭ブロックである場合には、先頭情報格納部530からDC値を読み出して変換係数伸長部550に出力する。
ステップ210(S210)において、変換係数伸長部550は、符号シーク部540から入力された注目ブロックのシンボルを、DC値及びAC値に変換し、変換されたDC値及びAC値をブロック内回転部560に出力する。
ステップ220(S220)において、ブロック内回転部560は、要求された回転角度及び回転方向に応じて、変換係数伸長部550から入力された注目ブロックのDC値及びAC値の配置及び正負符号を変換し、変換されたDC値及びAC値をDC差分算出部570に出力する。
ステップ230(S230)において、DC差分算出部570は、直前ブロックのDC値と、注目ブロックのDC値との差分(DC差分値)を算出し、算出されたDC差分値と、入力されたAC値とをハフマン符号化部580に出力する。
ハフマン符号化部580は、DC差分算出部570から入力されたDC差分値及びAC値を再符号化し、生成された注目ブロックの符号を再配置部590に出力する。
ステップ240(S240)において、再配置部590は、ハフマン符号化部580から入力された注目ブロックの符号をバッファリングする。
ステップ250(S250)において、画像処理プログラム5は、全ブロックが処理された場合に、S260の処理に移行し、未処理のブロックが存在する場合に、S200の処理に戻る。
ステップ260(S260)において、画像処理プログラム5は、左に90度回転させるよう要求されている場合に、S270の処理に移行し、右に90度回転させるよう要求されている場合に、再配置部590にバッファリングされている符号をそのまま回転符号(回転された画像の符号データ)として外部に出力する。
ステップ270(S270)において、再配置部590は、バッファリングされている符号を、図2(B)に例示するように、主走査方向のブロックライン単位で、処理順とは逆の順序で外部に出力する。これにより、ブロックラインの順序が入れ替えられる。
図7は、画像処理プログラム5による180度回転処理(S22)を示すフローチャートである。なお、本図に示された処理のうち、図6に示された処理と実質的に同一のものには同一の符号が付されている。
図7に示すように、S200において、画像処理プログラム5は、画像を180度回転させるよう指示されると、180度回転処理を開始する。
符号シーク部540は、要求された回転角度及び回転方向に対応するスキャン順序を決定する。具体的には、符号シーク部540は、180度回転させるよう要求された場合に、図2(C)に例示するように、原画像における最下ブロックライン(主走査方向のブロックラインのうち、副走査方向最下流のブロックライン)を主走査方向に走査し、主走査方向最下流のブロックまでくると、副走査方向上流のブロックライン(紙面で1つ上のブロックライン)を走査するよう決定する。
そして、符号シーク部540は、先頭情報格納部530に格納されている先頭情報のビット位置(又は直前ブロック処理後のビット位置)を用いて、決定されたスキャン順序に対応するブロック(注目ブロック)に直接アクセスし、この注目ブロックの符号をシンボルに変換し、変換されたシンボルを変換係数伸長部550に出力する。
また、符号シーク部540は、注目ブロックが本来的な先頭ブロックである場合には、先頭情報格納部530からDC値を読み出して変換係数伸長部550に出力する。
S210において、変換係数伸長部550は、符号シーク部540から入力された注目ブロックのシンボルを、DC値及びAC値に変換し、変換されたDC値及びAC値をブロック内回転部560に出力する。
S220において、ブロック内回転部560は、要求された回転角度及び回転方向に応じて、変換係数伸長部550から入力された注目ブロックのDC値及びAC値の配置及び正負符号を変換し、変換されたDC値及びAC値をDC差分算出部570に出力する。
ステップ224(S224)において、DC差分算出部570は、ブロック内回転部560から入力された注目ブロックのDC値及びAC値を先入れ後出し方式でバッファリングする。これにより、主走査方向のブロックラインに含まれるブロック群の順序が入れ替えられる。
ステップ228(S228)において、画像処理プログラム5は、主走査方向のブロックライン(図2(C))分のDC値及びAC値がDC差分算出部570にバッファリングされた場合(すなわち、主走査方向のブロックラインが完成した場合)に、S234の処理に移行し、ブロックライン分のDC値及びAC値がバッファリングされていない場合に、S200に戻って、次のブロックを処理する。
ステップ234(S234)において、DC差分算出部570は、バッファリングされている1ブロックライン分のDC値及びAC値を先入れ後出し方式で1ブロックずつ取り出し、取り出されたブロックのDC値と、直前ブロックのDC値との差分(DC差分値)を算出し、算出されたDC差分値と、取り出されたブロックのAC値とをハフマン符号化部580に出力する。
ハフマン符号化部580は、DC差分算出部570から入力されたDC差分値及びAC値を再符号化し、生成された注目ブロックの符号を再配置部590に出力する。
S240において、再配置部590は、ハフマン符号化部580から入力された注目ブロックの符号をバッファリングする。
S250において、画像処理プログラム5は、未処理のブロックが存在する場合に、S200の処理に戻り、全ブロックが処理された場合に、再配置部590にバッファリングされている符号をそのまま回転符号として外部に出力する。
以上説明したように、本実施形態における画像処理装置2は、全ブロックのビット位置及びDC値を保持するのではなく、先頭ブロックのビット位置及びDC値のみを保持して、90度又は180度に回転された画像の符号データを生成する。
これにより、ビット位置及びDC値の保持に要するメモリ領域が小さくなる。
[変形例]
図8は、変形例における画像処理プログラム52の機能構成を例示する図である。なお、本図に示された各構成のうち、図4に示された構成と実質的に同一のものには同一の符号が付されている。
図8に例示するように、画像処理プログラム52は、図4の画像処理プログラム5のDC差分算出部570を削除し、ハフマン符号化部580をAC符号化部582で置換し、このAC符号化部582の後段にDC符号化部582を追加した構成をとる。
本変形例のAC符号化部582は、ブロック内回転部560から入力された注目ブロックのDC値及びAC値のうち、AC値のみを符号化し、入力されたDC値と、符号化されたAC値(以下AC符号)とをDC符号化部584に出力する。
本変形例のDC符号化部584は、180度回転が要求されている場合に、AC符号化部582から入力されたDC値及びAC符号をバッファリングし、ブロックライン分のDC値が貯まったところで、このブロックラインに含まれるブロック群の順序を入れ替えて、DC差分値を算出し、算出されたDC差分値を符号化する。
このように、本変形例の画像処理プログラム52は、180度回転が要求されている場合に、AC値を符号化した状態でバッファリングするため、バッファリングに要するワークメモリを減らすことができる。
なお、画像処理プログラムは、各ブロックのAC値のうち、無効係数のみをランレングス方式で符号化して、バッファリングして、ブロックラインに含まれるブロック群の入替えを行ってもよい。
原画像を右に90度回転させる場合のスキャン順序を説明する。 (A)は、原画像を左に90度回転させる場合のスキャン順序を説明し、(B)は、ブロックラインの再配置を説明する図であり、(C)は、原画像を180度回転させる場合のスキャン順序を説明する図である。 本発明にかかる画像処理方法が適応される画像処理装置2のハードウェア構成を、制御装置21を中心に例示する図である。 制御装置21(図3)により実行され、本発明にかかる画像処理方法を実現する画像処理プログラム5の機能構成を例示する図である。 画像処理プログラム5によるアクセス情報登録処理(S10)を示すフローチャートである。 画像処理プログラム5による90度回転処理(S20)を示すフローチャートである。 画像処理プログラム5による180度回転処理(S22)を示すフローチャートである。 変形例における画像処理プログラム52の機能構成を例示する図である。
符号の説明
2・・・画像処理装置
5,52・・・画像処理プログラム
500・・・ブロック切出し部
510・・・DC伸長部
520・・・情報保持部
530・・・先頭情報格納部
540・・・符号シーク部
550・・・変換係数伸長部
560・・・ブロック内回転部
570・・・DC差分算出部
580・・・ハフマン符号化部
582・・・AC符号化部
584・・・DC符号化部
590・・・再配置部

Claims (7)

  1. JPEG方式により符号化された画像データを回転させる画像処理装置であって、
    画像の符号データに基づいて、JPEG方式の処理単位となるブロックそれぞれを直接復号化するために必要となる必要情報を生成する生成手段と、
    前記生成手段により生成された各ブロックの必要情報のうち、一部のブロックの必要情報を保持する情報保持手段と、
    前記情報保持手段により保持されている必要情報に基づいて、回転された画像の符号データを生成する回転符号生成手段と
    を有する画像処理装置。
  2. 前記情報保持手段は、画像の周縁部に相当するブロックの必要情報のみを保持し、
    前記改定符号生成手段は、画像周縁部に相当するブロックの必要情報に基づいて、90度回転又は180度回転された画像の符号データを生成する
    請求項1に記載の画像処理装置。
  3. 前記情報保持手段は、主走査方向の各ブロックラインのうち、先頭ブロックの必要情報のみを保持し、この先頭ブロックに続く後続ブロックの必要情報を消去する
    請求項2に記載の画像処理装置。
  4. 前記生成手段は、前記必要情報として、符号データにおける各ブロックの位置を特定するためのブロック位置情報と、各ブロックに含まれる直流成分値とを生成し、
    前記情報保持手段は、一部のブロックのブロック位置情報及び直流成分値を保持する
    請求項1に記載の画像処理装置。
  5. JPEG方式により符号化された画像データを回転させる画像処理装置であって、
    画像の符号データに基づいて、既定の走査方向のブロック群からなるブロックラインそれぞれに対して直接アクセスするためのアクセス情報を生成するアクセス情報生成手段と、
    前記アクセス情報生成手段により生成されたアクセス情報に基づいて、回転された画像の符号データを生成する回転符号生成手段と
    を有する画像処理装置。
  6. JPEG方式により符号化された画像データを回転させる画像処理方法であって、
    画像の符号データに基づいて、JPEG方式の処理単位となるブロックそれぞれを直接復号化するために必要となる必要情報を生成し、
    生成された各ブロックの必要情報のうち、一部のブロックの必要情報を保持し、
    生成された各ブロックの必要情報のうち、他部のブロックの必要情報を消去し、
    保持されている必要情報に基づいて、回転された画像の符号データを生成する
    画像処理方法。
  7. JPEG方式により符号化された画像データを回転させるコンピュータにおいて、
    画像の符号データに基づいて、JPEG方式の処理単位となるブロックそれぞれを直接復号化するために必要となる必要情報を生成するステップと、
    生成された各ブロックの必要情報のうち、一部のブロックの必要情報を保持するステップと、
    保持されている必要情報に基づいて、回転された画像の符号データを生成するステップと
    を前記コンピュータに実行させるプログラム。
JP2006153234A 2006-06-01 2006-06-01 画像処理装置及びプログラム Expired - Fee Related JP4666261B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006153234A JP4666261B2 (ja) 2006-06-01 2006-06-01 画像処理装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006153234A JP4666261B2 (ja) 2006-06-01 2006-06-01 画像処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2007324973A true JP2007324973A (ja) 2007-12-13
JP4666261B2 JP4666261B2 (ja) 2011-04-06

Family

ID=38857367

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006153234A Expired - Fee Related JP4666261B2 (ja) 2006-06-01 2006-06-01 画像処理装置及びプログラム

Country Status (1)

Country Link
JP (1) JP4666261B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102369554A (zh) * 2009-04-01 2012-03-07 高通股份有限公司 用以旋转图像的设备和方法
JP2012134776A (ja) * 2010-12-21 2012-07-12 Canon Inc 画像処理装置、画像処理方法、及びプログラム
US8977064B2 (en) 2008-02-13 2015-03-10 Qualcomm Incorporated Rotational transcoding for JPEG or other coding standards
JP2016096379A (ja) * 2014-11-12 2016-05-26 ブラザー工業株式会社 圧縮装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08204957A (ja) * 1995-01-26 1996-08-09 Dainippon Screen Mfg Co Ltd 画像処理方法
JP2006101016A (ja) * 2004-09-28 2006-04-13 Seiko Epson Corp 画像処理装置およびこれを備えるプリンタ、画像処理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08204957A (ja) * 1995-01-26 1996-08-09 Dainippon Screen Mfg Co Ltd 画像処理方法
JP2006101016A (ja) * 2004-09-28 2006-04-13 Seiko Epson Corp 画像処理装置およびこれを備えるプリンタ、画像処理方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977064B2 (en) 2008-02-13 2015-03-10 Qualcomm Incorporated Rotational transcoding for JPEG or other coding standards
CN102369554A (zh) * 2009-04-01 2012-03-07 高通股份有限公司 用以旋转图像的设备和方法
JP2012523046A (ja) * 2009-04-01 2012-09-27 クゥアルコム・インコーポレイテッド 画像を回転させる装置および方法
JP2012134776A (ja) * 2010-12-21 2012-07-12 Canon Inc 画像処理装置、画像処理方法、及びプログラム
JP2016096379A (ja) * 2014-11-12 2016-05-26 ブラザー工業株式会社 圧縮装置

Also Published As

Publication number Publication date
JP4666261B2 (ja) 2011-04-06

Similar Documents

Publication Publication Date Title
US6941019B1 (en) Reentry into compressed data
US6445314B1 (en) System and method for the decoding of variable length codes
JP2008113374A (ja) エントロピー符号化装置
JP4785706B2 (ja) 復号装置及び復号方法
JP4666261B2 (ja) 画像処理装置及びプログラム
US7373000B2 (en) Image processing apparatus
US20040141655A1 (en) Method and apparatus for image processing
JP2006287862A (ja) 復号化装置
JP2003189109A (ja) 画像処理装置及び方法、並びにコンピュータ・プログラム
JP5083170B2 (ja) 符号化装置、復号装置、画像形成装置、及びプログラム。
JP2002271791A (ja) 画像符号化装置、画像符号化・復号化装置、画像符号化・復号化方法、およびその方法を実行するためのプログラム
JP2000049621A (ja) ハフマン復号化方法及びデータ処理装置
JP4831349B2 (ja) 画像処理装置、画像形成装置、画像形成システム、及びプログラム
KR100944923B1 (ko) 개선된 멀티미디어 디코더를 위한 방법 및 장치
JPH0779415B2 (ja) 圧縮データの復号方法
US20040090441A1 (en) Method and device for translating two-dimensional data of a discrete wavelet transform system
JP2003189108A (ja) 画像圧縮方法
JP2008098751A (ja) 算術符号化装置及び算術復号化装置
JP2001217722A (ja) 情報符号化装置及び情報符号化方法及びコンピュータ読み取り可能な記憶媒体
JP2008118533A (ja) 復号化器、方法およびプログラム
JP2008109195A (ja) 画像処理装置
JP2005223538A (ja) 画像処理回路
JP4526069B2 (ja) 画情報の算術符号化装置及び画情報の算術復号化装置
JP5263717B2 (ja) 画像処理装置、画像処理システム及びプログラム
JPH1093967A (ja) 画像圧縮方法および装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100701

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101021

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101130

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: 20101217

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101230

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

Free format text: PAYMENT UNTIL: 20140121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees