画像処理装置、プログラム、及び記憶媒体
【課題】 画像データを圧縮符号化した符号列中で、ブロック単位の符号データを編集処理して、編集後の符号データと編集処理が施されていない符号データとを結合して新たな符号列を生成する処理を、高速に実現できるようにする。
【解決手段】 該当符号を復号してブロック単位の符号を復元し(ステップS1)、続いて、復元された画像に対して編集処理を行う(ステップS2)。最後に、編集後の画像に対して元の符号と同じ方法で符号化を行い、元の符号列と同じ形式の符号列を作成する(ステップS3)。ステップS3では、編集で作成された新たなブロック単位の符号データと符号列中の編集処理が施されていない符号データとを結合して新たな符号列を生成する。この場合、編集の前後のブロック単位の符号データの符号量に変化に応じて結合を実行する最適な手段を複数の手段の中から選択する。
【解決手段】 該当符号を復号してブロック単位の符号を復元し(ステップS1)、続いて、復元された画像に対して編集処理を行う(ステップS2)。最後に、編集後の画像に対して元の符号と同じ方法で符号化を行い、元の符号列と同じ形式の符号列を作成する(ステップS3)。ステップS3では、編集で作成された新たなブロック単位の符号データと符号列中の編集処理が施されていない符号データとを結合して新たな符号列を生成する。この場合、編集の前後のブロック単位の符号データの符号量に変化に応じて結合を実行する最適な手段を複数の手段の中から選択する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データを圧縮符号化した符号列を編集する画像処理装置、この画像処理装置を実現するプログラム、及び、このプログラムを記憶している記憶媒体に関する。
【背景技術】
【0002】
多値画像(特にカラー画像)を可逆に符号化する符号化方式として、ITU−TとISOとで標準方式とされているJPEG2000方式が知られている(非特許文献1を参照)。
【0003】
【非特許文献1】ISO 15444-1 JPEG2000 Image Coding System (JPEG2000)
【発明の開示】
【発明が解決しようとする課題】
【0004】
近年のデジタル機器においては、高画質化のために、解像度を高くし、あるいは、階調数を多くする傾向がある。これにより画像の持つ情報量が多くなることで画質は向上する反面、画像の情報量が多くなるという問題がある。後者の例を挙げると、例えば、従来2階調(白または黒)値であった画像を白黒256階調の画像にすると、情報量は8倍になってしまう。情報量が8倍になるということは、その画像データを記憶するために必要とされる記憶容量も単純に計算すると8倍になってしまい、装置の製造コストが増大するという問題になる。そこで、通常は記憶容量を削減するために、画像を圧縮符号化する。
【0005】
このような符号化方式の1つに、多階調画像を効率良く符号化するための技術が存在する。この多階調画像(カラー画像も含む)の符号化方式の代表としては、ISOとITU−Tとで標準勧告されているJPEG方式がある。JPEG方式は、基本であるDCT方式とオプションのDPCMを用いた方式がある。前者は人間の視覚特性を利用して画質を損なわない程度に原画の情報量を一部削減して符号化を行う符号化方式(非可逆符号化方式、ロッシー(lossy)符号化方式と呼ばれる)であり、後者は原画の情報量を損なうことなく符号化を行う符号化方式(可逆符号化方式、ロスレス(lossless)符号化方式と呼ばれる)である。
【0006】
DCT方式は、離散コサイン変換を使って画像情報を周波数情報に変換した後に情報の符号化を行う方式である。一方、DPCM方式は注目画素レベルを周囲画素より予測を行い、その予測誤差を符号化する方式である。画質重視で符号化を行うのであれば、効率の良いDCT方式を用いるのが良いが、情報の保存性という点ではDCT方式は非可逆であるために、可逆であるDPCM方式となる。理想としては、可逆で高能率な方式があればよいが、現状のDPCMによる可逆方式ではそれほど大きな効率を得られないという問題があり、パーソナルコンピュータ(PC)等で使用される比較的階調数の多い多値画像の圧縮には、DCT方式を使うことが主流になっている。しかし、DCT方式は圧縮率を高くすると特有のブロック歪みや輪郭部でモスキートノイズが発生し、画質が極端に劣化する。特に文字画像において、その傾向が顕著であるために画質的に大きな問題となっている。
【0007】
また、JPEG方式は、画像の記憶容量を少なくする用途では最適な方式であるが、デジタル複写機で使われる画像の編集・加工等の用途には最適ではない。なぜなら、符号状態で画像の位置を特定できない、言い換えれば、指定された画像の任意部分のみ復号処理することができないからである。よって、編集・加工処理を行うためには、一度、画像全てを復号し、復号後の画像に対して編集・加工を行い、必要であれば、再度、符号化を行うということになり、復号後の画像を記憶するための大きな記憶容量のメモリが必要になるという問題がある(例えば、A4サイズ、600dpi、RGBカラー画像で、約100Mbyte必要である)。
【0008】
このような編集・加工処理時のメモリの記憶容量の問題を解決する手段の一つに、固定長の符号化方式を利用することが考えられる。画像の符号化には符号化後の符号語長から可変長と固定長に大きく分けられる。前者の特徴は、後者に比べて符号化効率が良い点と可逆も可能である点にある。これ対し、後者の特徴は、符号の状態で符号化前の画像の位置がわかるために、画像中の任意の部分のみを再生することなどが可能である。これは、符号状態のまま、画像の編集・加工処理等が可能になることを意味している。しかし、その反面、可変長符号に比べて、一般的に符号化効率が悪く、可逆符号化も困難であるという問題がある。
【0009】
以上のJPEG方式の欠点を解決するために、JPEG2000と称する符号化方式が近年、注目されている。JPEG2000は、ウェーブレット変換を用いた変換符号化方式で、今後、カラー画像をはじめとする静止画像の分野において、JPEGに置き換わっていくだろうと予測されている。JPEG2000は、JPEGの欠点である低ビットレートでの画質劣化を少なくしたことに加え、実用的な新機能を多数備えている。その中の機能にタイル処理というものがあり、これは画像を小さな領域に分けて独立に符号化を行うため、符号状態で画像の領域を特定することが可能になり、結果的に、符号状態のままで画像の編集・加工処理が可能になる。
【0010】
しかし、JPEG2000の技術にも、まだ問題はある。それは、符号列中の一部のフ号データを編集処理した際に、その編集処理後の符号データが編集前の符号データよりデータ量が多くなってしまった場合である。この場合、編集後の符号データを符号列中に挿入するために、編集した部分以降の符号データを挿入するのに必要とされる分だけ、符号列を再配置する処理が必要となる。メモリ上での処理を例にとれば、符号データを挿入するのに必要なメモリ領域を確保するために、データの移動が必要になるということである。JPEG2000は、多機能かつ高性能のため処理が複雑になっており、JPEGとの比較を例にすると、ソフトウェアの処理では約4〜5倍の処理時間を必要とする。このことを合わせて考えると、特に、上記のような編集作業を行う場合、処理時間が長くなり、ユーザに与える操作性の点で、大きな問題となってしまう。
【0011】
特に、JPEG2000符号化処理の手段の1つにタイル処理というものがある。これは画像をタイルと呼ばれる小領域に分割し、分割された領域単位で独立に符号化を行う処理である。この方法は符号列の編集処理等、画像の特定領域にランダムにアクセスしたいようなアプリケーションに最適である。特にJPEG2000は高効率の符号化方式を採用しているため、非常に複雑な演算を必要とする。良く比較されるJPEG方式と比べて、複雑度は数倍以上である。処理の複雑さはそのまま処理時間に比例するため、JPEG2000の処理はJPEGに比べて長くなるが、タイルを使うことで特定部分のみの符号処理で済むので処理時間の問題はなくなる。
【0012】
しかし、前述したように、編集後の符号データよっては全体の符号列を調整する必要があるという問題が残っている。
【0013】
本発明の目的は、画像データを圧縮符号化した符号列中で、ブロック単位の符号データを編集処理して、編集後の符号データと編集処理が施されていない符号データとを結合して新たな符号列を生成する処理を、高速に実現できるようにすることである。
【課題を解決するための手段】
【0014】
本発明は、元画像のデータを所定のフォーマットにより圧縮符号化した符号列中で独立して編集処理が可能な特定のブロック単位の符号データを対象に所定の編集処理を施して新たなブロック単位の符号データを作成する手段と、前記符号列中の元のブロック単位の符号データを参照して、作成された前記新たなブロック単位の符号データと前記符号列中の前記編集処理が施されていない符号データとを結合して新たな符号列を生成する手段と、
を備えている画像処理装置である。
【0015】
別の面から見た本発明は、元画像のデータを所定のフォーマットにより圧縮符号化した符号列中で独立して編集処理が可能な特定のブロック単位の符号データを対象に所定の編集処理を施して新たなブロック単位の符号データを作成する手段と、前記符号列中の元のブロック単位の符号データを参照して、作成された前記新たなブロック単位の符号データと前記符号列中の前記編集処理が施されていない符号データとを結合して新たな符号列を生成する手段と、をコンピュータに実行させるコンピュータに読取可能なプログラムである。
【発明の効果】
【0016】
本発明によれば、符号列中の元のブロック単位の符号データを参照して、作成された新たなブロック単位の符号データと符号列中の編集処理が施されていない符号データとを結合して新たな符号列を生成するので、編集後の新たな符号データ列を編集処理が施されていない符号データと結合する手段を、編集前の符号列を参照しながら最短処理時間で行えるように全体符号列を制御するので、高速な編集処理が実現できる。
【発明を実施するための最良の形態】
【0017】
[JPEG2000の概要について]
最初にJPEG2000の概要について説明する。
【0018】
図1は、JPEG2000アルゴリズムの基本を説明するための機能ブロック図である。図1に示すように、JPEG2000アルゴリズムは、色空間変換・逆変換部101、2次元ウェーブレット変換・逆変換部102、量子化・逆量子化部103、エントロピー符号化・復号化部104、タグ処理部105によって構成されている。以下、各部について説明する。
【0019】
色空間変換・逆変換部101及び2次元ウェーブレット変換・逆変換部102について図2及び図3を参照しながら説明する。
【0020】
図2は、カラー画像である原画像の分割された各コンポーネントの一例を示す模式図である。カラー画像は、一般に、図2に示すように、原画像の各コンポーネントR、G、B(111)が、例えばRGB原色系によって分離されている。そして、原画像の各コンポーネントR、G、Bは、さらに、矩形をした領域であるタイル112によって分割される。個々のタイル112、例えば、R00,R01,…,R15/G00,G01,…,G15/B00,B01,…,B15は、圧縮伸長プロセスを実行する際の基本単位を構成する。従って、圧縮伸長動作は、コンポーネントR、G、B(111)毎、そしてタイル112毎に、独立して行なわれる。
【0021】
ここで、画像データの符号化時、各タイル112のデータは、図1に示す色空間変換・逆変換部101に入力され、色空間変換を施された後、2次元ウェーブレット変換・逆変換部102で2次元ウェーブレット変換(順変換)が適用されて周波数帯に空間分割される。
【0022】
図3は、デコンポジションレベル数が3であるの場合の各デコンポジションレベルにおけるサブバンドを示す模式図である。2次元ウェーブレット変換・逆変換部102は、原画像のタイル分割によって得られたタイル原画像(0LL)(デコンポジションレベル0)に対して、2次元ウェーブレット変換を施し、デコンポジションレベル1に示すサブバンド(1LL,1HL,1LH,1HH)を分離する。そして、2次元ウェーブレット変換・逆変換部102は、引き続き、この階層における低周波成分1LLに対して、2次元ウェーブレット変換を施し、デコンポジションレベル2に示すサブバンド(2LL,2HL,2LH,2HH)を分離する。2次元ウェーブレット変換・逆変換部102は、順次同様に、低周波成分2LLに対しても、2次元ウェーブレット変換を施し、デコンポジションレベル3に示すサブバンド(3LL,3HL,3LH,3HH)を分離する。図3中、各デコンポジションレベルにおいて符号化の対象となるサブバンドはグレーで示されている。例えば、デコンポジションレベル数を3とした場合、グレーで示したサブバンド(3HL,3LH,3HH,2HL,2LH,2HH,1HL,1LH,1HH)が符号化対象となり、3LLサブバンドは符号化されない。
【0023】
次いで、量子化・逆量子化部103では、指定した符号化の順番で符号化の対象となるビットが定められた後、対象ビット周辺のビットからコンテキストが生成される。
【0024】
図4は、プレシンクトを例示する模式図である。量子化の処理が終わったウェーブレット係数は、個々のサブバンド毎に、「プレシンクト」と呼ばれる重複しない矩形に分割される。これは、インプリメンテーションでメモリを効率的に使うために導入されたものである。図4に示すように、一つのプレシンクトは、空間的に一致した3つの矩形領域からなっている。さらに、個々のプレシンクトは、重複しない矩形の「コードブロック」に分けられる。これは、エントロピーコーディングを行う際の基本単位となる。
【0025】
図5は、2次元ウェーブレット変換後の2次元ウェーブレット係数の値を「ビットプレーン」単位に分解し、画素或いはコードブロック毎に「ビットプレーン」に順位付けを行う処理の概要を示す模式図である。ウェーブレット変換後の係数値は、そのまま量子化し符号化することも可能であるが、JPEG2000では符号化効率を上げるために、係数値を「ビットプレーン」単位に分解し、画素或いはコードブロック毎に「ビットプレーン」に順位付けを行うことができる。図5には、その手順を簡単に示した。この例は、原画像(32×32画素)を16×16画素のタイル4つで分割した場合の例であり、デコンポジションレベル1のプレシンクトとコードブロックとの大きさは、各々8×8画素と4×4画素としている。プレシンクトとコードブロックの番号とは、ラスター順に付けられる。タイル境界外に対する画素拡張にはミラーリング法を使い、可逆(5,3)フィルタでウェーブレット変換を行い、デコンポジションレベル1のウェーブレット係数値を求めている。
【0026】
また、図5には、タイル0/プレシンクト3/コードブロック3について、代表的な「レイヤ」についての概念的な模式図も併せて示している。レイヤの構造は、ウェーブレット係数値を横方向(ビットプレーン方向)から見ると理解し易い。1つのレイヤは任意の数のビットプレーンから構成される。この例では、レイヤ0、1、2、3は、各々、1、3、1という3つのビットプレーンからなっている。そして、LSBに近いビットプレーンを含むレイヤ程、先に量子化の対象となり、逆に、MSBに近いレイヤは最後まで量子化されずに残ることになる。LSBに近いレイヤから破棄する方法はトランケーションと呼ばれ、量子化率を細かく制御することが可能である。
【0027】
次いで、エントロピー符号化・復号化部104について図6を参照しながら説明する。図6は、符号化された画像データのコードストリームを例示する模式図である。エントロピー符号化・復号化部104(図1参照)では、コンテキストと対象ビットとから、確率推定によって各コンポーネントRGBのタイル112に対する符号化を行う。こうして、原画像の全てのコンポーネントRGBについて、タイル112単位で符号化処理が行われる。
【0028】
次いで、タグ処理部105について説明する。タグ処理部105は、エントロピー符号化・復号化部104からの全符号化データを1本のコードストリームに結合するとともに、それにタグを付加する処理を行う。図6に、コードストリームの構造を簡単に示している。このようなコードストリームの先頭と各タイル112を構成する部分タイルの先頭には、ヘッダと呼ばれるタグ情報が付加され、その後に、各タイル112の符号化データが続く。そして、コードストリームの終端には、再びタグが置かれる。
【0029】
一方、復号化時には、符号化時とは逆に、各コンポーネントRGBの各タイル112のコードストリームから画像データを生成する。このような処理について、図1を用いて簡単に説明する。タグ処理部105は、外部より入力したコードストリームに付加されたタグ情報を解釈し、コードストリームを各コンポーネントRGBの各タイル112のコードストリームに分解し、その各コンポーネントRGBの各タイル112のコードストリーム毎に復号化処理を行う。この際、コードストリーム内のタグ情報に基づく順番で復号化の対象となるビットの位置が定められるとともに、量子化・逆量子化部103において、その対象ビット位置の周辺ビット(既に復号化を終えている)の並びからコンテキストを生成する。そして、エントロピー符号化・復号化部104では、そのコンテキストとコードストリームとから確率推定によって復号化を行なって対象ビットを生成し、それを対象ビットの位置に書き込む。このようにして復号化されたデータは、周波数帯域毎に空間分割されているため、これを2次元ウェーブレット変換・逆変換部102で2次元ウェーブレット逆変換を行うことにより、画像データ中の各コンポーネントRGBにおける各タイル112が復元される。復元されたデータは、色空間変換・逆変換部101によって元の表色系のデータに変換される。
【0030】
次に、JPEG2000の符号フォーマット例を説明する。図7はJPEG2000の符号フォーマットを示す概略図である。当該符号フォーマットは、符号データの始まりを示すSOC(Start of Codestream)マーカで始まり、その後に、符号化のパラメータや量子化のパラメータを記述したメインヘッダが続き、さらに、実際の符号データが続く構成である。実際の符号データは、SOT(Start of Tile-part)マーカで始まり、タイルヘッダ、SOD(Start of Data)マーカ、タイルデータ(符号)で構成される。これら画像全体に相当する符号データの後に、符号の終了を示すEOC(End of Codestream)マーカが付加される。
【0031】
図8に、メインヘッダの構成例を示す。メインヘッダは、COD,QCDなる必須マーカセグメントと、COC,QCC,RGN,POC,PPM,TLM,PLM,CRG,COMなるオプションマーカセグメントとにより構成されている。
【0032】
また、図9にタイルヘッダの構成例を示す。図9(a)は、タイルヘッダの先頭に付加されるマーカセグメント列を示し、COD,COC,QCD,QCC,RGN,POC,PPT,PLT,COMのマーカセグメント(全てオプション)が使用可能である。一方、図9(b)は、タイル内が複数に分割されている場合における分割されたタイル部分列の先頭に付加されるマーカセグメント列であり、POC,PPT,PLT,COMのマーカセグメント(全てオプション)が使用可能である。
【0033】
ここで、JPEG2000で使用されるマーカ及びマーカセグメントについて説明する。マーカは2バイト(先頭バイトが0xffで、続くバイトが0x01〜0xfe)で構成される。マーカ及びマーカセグメントは、以下に示す6種類に分類できる。
【0034】
(1) フレーム区切り(delimiting)
(2) 画像の位置、サイズ関係の情報(fixed information)
(3) 符号化機能の情報(functional)
(4) エラー耐性用(in bit stream)
(5) ビットストリームのポインタ(pointer)
(6) 補助的な情報(informational)
このうち、本発明に関係するマーカは(1)(2)である。その詳細について、以下に説明する。
【0035】
まず、Delimitingマーカ及びマーカセグメントについて説明する。Delimitingマーカ及びマーカセグメントは必須であり、SOC,SOT,SOD,EOCがある。符号開始マーカ(SOC)は符号列の先頭に付加される。タイル開始マーカ(SOT)は、タイル符号列の先頭に付加される。このSOTマーカセグメントの構成を図10に示す。当該マーカセグメントの大きさが記述されるLsot、タイル番号(0から始まるラスター順につけられた番号)が記述されるIsot、タイル長さが記述されるPsot、タイル部分番号が記述されるTPsot、タイル部分数が記述されるTNsotなる内容からなる。
【0036】
次に、Fixed informationマーカセグメントについて説明する。これは、画像についての情報を記述するマーカで、SIZマーカが該当する。SIZマーカセグメントはSOCマーカの直後に付加される。マーカセグメント長はコンポーネント数に依存する。このSIZマーカセグメントの構成を図11に示す。当該マーカセグメントの大きさが記述されるLsiz、符号列の互換性(0固定、0以外は予約)が記述されるRsiz、reference gridの水平方向サイズが記述されるXsiz、reference gridの垂直方向サイズが記述されるYsiz、reference grid原点からの画像の水平方向オフセット位置が記述されるXOsiz、reference grid原点からの画像の垂直方向オフセット位置が記述されるYOsiz、タイルの水平方向サイズが記述されるXTsiz、タイルの垂直方向サイズが記述されるYTsiz、reference grid原点からのタイルの水平方向オフセット位置が記述されるXTOsiz、reference grid原点からのタイルの垂直方向オフセット位置が記述されるYTOsiz、コンポーネント数が記述されるCsiz、(i)番目のコンポーネントにおけるビット数と符号ビット数が記述されるSsiz(i)、(i)番目のコンポーネントにおける水平方向サンプル数が記述されるXRsiz(i)、(i)番目のコンポーネントにおける垂直方向サンプル数が記述されるYRsiz(i)なる内容により構成される。
【0037】
ここで、JPEG2000における画像エリア、タイルの位置関係について説明する。JPEG2000では、画像やタイルの位置は、図11に示したセグメント構成からも判るように、reference gridと称する座標軸を用いて表現される。画像は図12に示すように、reference grid上に、reference gridの左上を原点(0,0)として、原点と画像の左上との相対位置(XOsiz,YOsiz)で指定される。実際の画像エリアの大きさは、(Xsiz−XOsiz)×(Ysiz−YOsiz)で求められる。
【0038】
また、reference grid上に配置された画像は、符号化の際に、前述したように「タイル」と称する矩形領域に分割されて処理される。reference gridとタイルとの位置関係を図13に示す。タイルは単独で符号化、復号化できる必要があるため、タイル境界を越えての画素参照はできない。タイルの位置は、reference gridの原点と最初のタイルの左上との相対位置(XTOsiz,YTOsiz)で指定される。画像オフセット位置とタイルオフセット位置、タイルサイズは
0≦XTOsiz≦XOsiz
0≦YTOsiz≦YOsiz
XTsiz+XTOsiz>XOsiz
YTsiz+YTOsiz>YOsiz
なる関係がある。
【0039】
また、全体のタイル数は、
水平方向のタイル数=(Xsiz−XTOsiz)/XTsiz
垂直方向のタイル数=(Ysiz−YTOsiz)/YTsiz
なる関係式で示される。
【0040】
また、「画像」「タイル」「サブバンド」「プリシンクト」「コードブロック」の関係と、「パケット」と「レイヤ」の関係について図14を参照して整理する。
【0041】
まず、物理的な大きさの序列は、
画像 ≧ タイル > サブバンド ≧ プリシンクト ≧ コードブロック
である。
【0042】
「タイル」とは、画像を矩形に分割したものであり、分割数=1の場合、画像=タイルとなる。「プリシンクト」とは、サブバンドを矩形に分割したもの(をHL,LH,HHの3つのサブバンドについて集めたもの、プリシンクトは3つで1まとまりとなるが、ただし、LLサブバンドを分割したプリシンクトは1つで1まとまり)で、大まかには画像中の場所(Position)を表すものである。プリシンクトはサブバンドと同じサイズにできる。プリシンクトをさらに矩形に分割したものが「コードブロック」である。
【0043】
また、プリシンクトに含まれる全てのコードブロックから、符号の一部を取り出して集めたもの(例えば、全てのコードブロックの最上位ビットMSBから3枚目までのビットプレーンの符号を集めたもの)が「パケット」である。ここに、上述の“一部”は“空(から)”でもいいので、パケットの中身が符号的には“空(から)”ということもある。全てのプリシンクト(=全てコードブロック=全てのサブバンド)のパケットを集めると、画像全域の符号の一部(例えば、画像全域のウェーブレット係数の、MSBから3枚目までのビットプレーンの符号)ができるが、これが「レイヤ」である。レイヤは、大まかには画像全体のビットプレーンの符号の一部であるから、復号されるレイヤ数が増えれば画質は上がる。レイヤはいわば画質の単位である。
【0044】
従って、全てのレイヤを集めると、画像全域の全てのビットプレーンの符号になる。
【0045】
[実施の形態1について]
次に、本発明を実施するための最良の一形態について説明する。
【0046】
図15は、画像処理装置91の電気的な接続を示すブロック図である。この画像処理装置91には、パーソナルコンピュータ、ワークステーションなどが用いられる。図1に示すように、画像処理装置91は、各種演算を行ない、各部を集中的に制御するCPU92と、各種のROMやRAMからなるメモリ93とが、バス94で接続されている。
【0047】
バス94には、所定のインターフェイスを介して、ハードディスクなどの磁気記憶装置95と、マウスやキーボードなどで構成される入力装置96と、LCDやCRTなどの表示装置97と、光ディスクなどの記憶媒体98を読取る記憶媒体読取装置99とが接続され、また、ネットワーク100と通信を行なう所定の通信インターフェイス101が接続されている。なお、通信インターフェイス101は、ネットワーク100を介してインターネットなどのWANに接続可能である。記憶媒体98としては、CDやDVDなどの光ディスク、光磁気ディスク、フレキシブルディスクなどの各種方式のメディアを用いることができる。また、記憶媒体読取装置99は、具体的には記憶媒体98の種類に応じて光ディスクドライブ、光磁気ディスクドライブ、フレキシブルディスクドライブなどが用いられる。
【0048】
磁気記憶装置95には、この発明のプログラムを実施する画像処理プログラムが記憶されている。この画像処理プログラムは、この発明の記憶媒体を実施する記憶媒体98から記憶媒体読取装置99により読取るか、あるいは、インターネットなどのWANからダウンロードするなどして、磁気記憶装置95にインストールしたものである。このインストールにより画像処理装置91は動作可能な状態となる。なお、この画像処理プログラムは、所定のOS上で動作するものであってもよい。また、特定のアプリケーションソフトの一部をなすものであってもよい。
【0049】
このようなハードウエア構成の画像処理装置91においては、画像処理プログラムにもとづいて、図16〜図21を参照して後述するような処理を行うことができる。
【0050】
図16は、画像処理プログラムにもとづいて実行する処理の機能ブロック図である。この処理は、元画像の指定された位置に対して編集処理を行うものである。画像処理プログラムにより、入力されるブロック単位の符号列(画像データから例えばJPEG2000アルゴリズムにより圧縮符号化された符号列)から編集対象となる符号列を検索するブロック単位検索手段31と、ブロック単位検索手段31で抽出された編集対象のブロック単位の符号に対して編集処理を行い、新たな符号列を作成するブロック単位編集処理手段32と、ブロック単位編集処理手段32で作成された符号列と編集対象ではないブロック単位の符号とから全体の符号列を作成する符号列制御手段33が実現される。
【0051】
その動作を簡単に説明すると、符号はまずブロック単位検索手段31に入力され、編集対象となる画像を含むブロック単位の符号であるか否かを判断する。タイルを使用したJPEG2000符号を例に取ると、図17に示すように、タイル単位の符号列41には、先頭にヘッダ情報42が存在する。ヘッダ情報42の中にはヘッダ番号43とその符号列の長さを示す情報44が存在する。検索は、このヘッダ情報42のみ解釈していけば簡単に行える。例えば、編集対象でなかったら、符号列41の長さの情報を利用して次のヘッダ情報42を検出していけばよいので、検索は高速に行える。
【0052】
ブロック単位検索手段31で編集対象と判断されたブロック単位の符号は、ブロック単位編集処理手段32に送られる。ブロック単位編集処理手段32では、入力された符号に対して、指定された所定の編集処理を実施する。編集処理の流れとしては、図18に示すように、まず、該当符号を復号してブロック単位の符号を復元し(ステップS1)、続いて、復元された画像に対して編集処理を行う(ステップS2)。最後に、編集後の画像に対して元の符号と同じ方法で符号化を行い、元の符号列と同じ形式の符号列を作成する(ステップS3)。編集処理の一例としては、色の変更や、画像の合成等が挙げられる。この編集処理後の新たに作成された符号列は、符号列制御手段33に送られる。符号列制御手段33では、編集対象でない元のブロック単位の符号列と、ブロック単位編集処理手段32で新たに作成されたブロック単位の符号列とを結合させ、全体としてフォーマット整合された符号列を作成する。
【0053】
この場合の符号列の結合方法については様々な方法が考えられるが、符号量に応じて適切な手段適宜選択するのが望ましい。図19は、その一例を説明する符号列制御手段33のブロック図である。この例では、編集後の符号量が編集前の符号量より多い場合には結合方式Aを実行する結合手段52を、少ない場合には結合方式Bを実行する結合手段53を選択して、符号の結合を行う。すなわち、編集の前後の符号量の比較を符号量比較手段51で行い、結合手段52と53とをセレクタ54で選択する。なお、結合処理の影響を受けないブロック単位の符号は何も処理を行なわない。
【0054】
上記のような処理を行なえば、符号列中の特定部分の符号のみ処理することができる。また、編集後の新たな符号列の挿入方法を、編集前の符号を参照しながら、最短処理時間で行えるように全体符号列を制御することができるので、高速な編集処理が実現することができることになる。
【0055】
符号列制御手段33における、編集対象でない元のブロック単位の符号列と、編集後の新たに作成されたブロック単位の符号列とを結合させる符号列結合の具体的な手段については様々な方法が考えられる。
【0056】
まず、新たに作成された符号列の符号量が、編集前の符号量を超えてしまった場合には、符号列の最後に新たに作成された符号列を追加する形で、全体の符号列を作成する方法が挙げられる。一例として、図20に示すように、編集前(a)の符号部分には、その部分が符号列の最後に追加されていることを表す識別情報を入れると共に、追加された符号列の先頭アドレスを入れておく。こうすれば、追加された符号列(後に符号列全体の再配列を考慮して、編集後(b)のブロック単位の画像に対応する正規の符号列とする)に対して高速にアクセスが可能となる。上記の処理を行っても、元のヘッダ情報の書き換えを行っていないので、符号フォーマットとしては問題がない。この方法によれば、元の位置に符号を挿入するために、それ以降のデータを再配置しなければならないという処理上の問題はなくなり、高速な編集処理が実現できる。
【0057】
なお、図20の例では、新たな符号列を、終了符号の直後に配置したが、図21に示すように、終了符号の直前に挿入しても良い。ただし、その場合には、最終のブロック単位の符号列における符号長の情報を操作(最終の符号列の符号長に新たな符号列の符号長を足す)して、全体の符号列としてフォーマット整合させる必要がある。
【0058】
また、結合する際に問題とならないように、編集後のブロックの符号量が多くなる場合には、符号化パラメータを変更して編集前の符号量を超えないような符号列を作成することが考えられる。特に、JPEG2000方式は、同じ構成でlosslessおよびlossyが可能なスケーラブルな符号化方式であり、符号のまま符号量の調節が可能である。この性質を利用すれば、一度作成した符号列に対して、符号のまま符号量変更が可能であるため、編集前の符号量に最も近く、かつ、最高となる画質を得られる符号列を高速に作成することができる。この際、編集後の符号量が編集前の符号量に一致しない場合でも、編集後のヘッダ情報42は、編集前の符号長と同じにしておく。こうすれば、符号全体として問題はない。
【0059】
以上のような手段により、符号列の編集処理を高速に行い、かつ、編集後の符号列を高速に作成することは可能になるが、符号フォーマットの観点から言えば、本来あるべき姿に対して冗長な部分が存在していることになる。例えば、図20、図21を参照して説明した編集後のブロックの符号量が少ない場合の処理で作成される符号では、編集後の符号列は末尾に追加する形で存在しているし、前述の編集後のブロックの符号量が多い場合の処理で作成される符号列では、編集前の符号列に満たない部分の符号は意味のない符号データとなっている。
【0060】
この点を考慮すると、全体の処理時間を考慮して、必要であれば適宜、必要な部分のみの符号列を再配置することで、本来あるべき姿の符号列にするのが望ましい。具体的には、符号列制御手段33によって、全体の処理時間を考慮しながら編集後の符号列の挿入方法を決定し、必要であれば、適宜、必要部分のみ符号列を再配置することが考えられる。この方法によれば、処理速度を低下させることなく、無駄な符号情報を削除することが可能となり、効率の良い符号列を作成可能となる。
【0061】
[実施の形態2について]
本発明の別の実施の形態を発明の実施の形態2として説明する。
【0062】
図22は、本発明の画像処理装置を実施した複写機1の電気的な接続を示すブロック図である。原稿を光学的に読み取るスキャナである読み取りユニット11は、原稿に対するランプ照射の反射光をミラーおよびレンズなどからなる光学系によりCCD(電荷結合素子)などの光電変換素子に集光する。この光電変換素子は、SBU(センサ・ボード・ユニット)12に搭載され、受光素子において電気信号に変換された画像信号はデジタル画像信号に変換された後、SBU12から出力される。SBU12から出力される画像信号はCDIC13(圧縮/伸長およびデータインターフェイス制御部)13に入力される。機能デバイスおよびデータバス間における画像データの伝送はCDIC13が全て制御する。CDIC13は画像データに関し、SBU12、パラレルバス14、IPP(画像処理プロッセッサ)15間のデータ転送、本システムの全体制御を司るシステムコントローラ(CPU)16と画像データに対するプロセスコントローラ27間の通信を行なう。符号16a,16bは、システムコントローラ16が使用するROM、RAMである。それぞれSBU12からの画像信号は、CDIC13を経由してIPP15に転送され、光学系およびデジタル画像信号への量子化に伴う信号劣化(スキャナ系の信号劣化とする)が補正されて、再度CDIC13へ出力される。
【0063】
この複写機1では、読み取りユニット11による読み取り画像をメモリに蓄積して再利用するジョブと、メモリに蓄積しないジョブとがあり、以下ではそれぞれの場合について説明する。メモリに蓄積する例としては、1枚の同一原稿を複数枚複写する場合、読み取りユニット11で1回だけ原稿の読取動作を行い、メモリに蓄積し、蓄積データを複数回読み出す使い方がある。メモリを使わない例としては、1枚の原稿を1枚だけ複写する場合、読み取り画像をそのまま印刷すればよいので、メモリアクセスを行なう必要はない。
【0064】
まず、メモリを使わない場合、IPP15からCDIC13へ転送された画像データは、再度CDIC13からIPP15へ戻される。IPP15において受光素子による輝度データを面積階調に変換するための画質処理を行なう。この画質処理後の画像データはIPP15からVDC(ビデオ・データ制御)17に転送する。そして、面積階調に変化された信号に対し、ドット配置に関する後処理およびドットを再現するためのパルス制御を行い、電子写真方式で画像形成するプリンタエンジンである作像ユニット18により、転写紙上に再生画像を形成する。なお、作像ユニット18の印刷方式は、電子写真方式のほか、インクジェット方式、昇華型熱転写方式、銀塩写真方式、直接感熱記録方式、溶融型熱転写方式など、様々な方式を用いることができる。
【0065】
メモリに画像データを蓄積し、画像データの読み出し時に付加的な処理、例えば、画像方向の回転、画像の合成等を行なう場合の画像データの流れを説明する。IPP15からCDIC13へ転送された画像データは、CDIC13からパラレルバス14を経由してIMAC(画像メモリアクセス制御)19に送られる。IMAC19では、システムコントローラ16の制御に基づき、画像データの記憶装置であるMEM(メモリモジュール)20へのアクセス制御、外部のPC(パソコン)21へのプリント用データの展開、MEM20のメモリ有効活用のための画像データの圧縮/伸長を行なう。IMAC19へ送られた画像データはデータ圧縮後MEM20へ蓄積され、この蓄積データは必要に応じて読み出される。読み出した画像データは伸長されて本来の画像データに戻され、IMAC19からパラレルバス経由でCDIC13へ戻される。
【0066】
CDIC13からIPP15への転送後は画像データに対して画質処理およびVDC17でのパルス制御を行い、その画像データにより作像ユニット18において転写紙上に画像形成する。
【0067】
この複写機1は、いわゆる複合機であり、FAX送信機能を備えている。このFAX送信機能は、読み取り画像データにIPP15にて画像処理を実施し、CDIC13およびパラレルバス14を経由してFCU(FAX制御ユニット)22へ転送する。FCU22にて通信網へのデータ変換を行い、PN(公衆回線)23へFAXデータとして送信する。FAX受信は、PN23からの回線データをFCU22で画像データへ変換し、パラレルバス14およびCDIC13を経由してIPP15へ転送する。この場合、特別な画質処理は行なわず、VDC17においてドット再配置およびパルス制御を行い、作像ユニット18において転写紙上に再生画像を形成する。
【0068】
複数のジョブ、例えば、コピー機能、FAX送受信機能、プリンタ出力機能が並行に動作する状況において、読み取りユニット、作像ユニットおよびパラレルバス14の使用権のジョブへの割り振りをシステムコントローラ16およびプロセスコントローラ27で制御する。
【0069】
プロセスコントローラ(CPU)27は画像データの流れを制御し、システムコントローラ16はシステム全体を制御し、各リソースの起動を管理する。符号27a,27bは、プロセスコントローラ27が使用するROM、RAMである。
【0070】
ユーザは、操作パネル24を選択入力することで各種の機能の選択を行ない、コピー機能、FAX機能等の処理内容を設定する。
【0071】
システムコントローラ16とプロセスコントローラ27はパラレルバス14、CDIC13およびシリアルバス25を介して相互に通信を行なう。この際、CDIC13内においては、パラレルバス14とシリアルバス25とのデータインターフェイスのためのデータフォーマット変換を行なう。
【0072】
MLC(Media Link Controller)26は、画像データの符号変換の機能を実現する。具体的にはCDIC13で使用される符号化方式、IMAC19で使用される符号化方式から他の符号化方式への変換(例えば、標準であるJPEG方式等)を行なう。
【0073】
この複写機1では、実施の形態1において、図16〜図21を参照して前述した符号列の編集処理を、操作パネル24の操作により、システムコントローラ16が画像処理プロッセッサ15を制御して画像処理プロッセッサ15で実行する。よって、その処理内容は実施の形態1と同様であるため、詳細な説明は省略する。
【図面の簡単な説明】
【0074】
【図1】本発明の実施の形態の前提となるJPEG2000方式の基本となるアルゴリズムを実現するシステムの機能ブロック図である。
【図2】原画像の各コンポーネントの分割された矩形領域を示す説明図である。
【図3】デコンポジションレベル数が3の場合の、各デコンポジションレベルにおけるサブバンドを示す説明図である。
【図4】プレシンクトを示す説明図である。
【図5】ビットプレーンに順位付けする手順の一例を示す説明図である。
【図6】符号化された画像データのコードストリームを例示する模式図である。
【図7】JPEG2000の符号フォーマットを示す概略図である。
【図8】そのメインヘッダの構成図である。
【図9】タイルヘッダの構成図である。
【図10】SOTマーカセグメントの構成図である。
【図11】SIZマーカセグメントの構成図である。
【図12】画像の位置関係を示す説明図である。
【図13】Reference gridとタイルとの位置関係を示す説明図である。
【図14】画像、タイル、サブバンド、プリシンクト、コードブロックの関係を示す説明図である。
【図15】本発明の実施の形態1の画像処理装置の電気的な接続のブロック図である。
【図16】符号列を編集処理する手段の機能ブロック図である。
【図17】符号列の構成について説明する説明図である。
【図18】符号列を編集処理する手順のフローチャートである。
【図19】符号列制御手段の機能ブロック図である。
【図20】新たに作成された符号列の符号量が、編集前の符号量を超えてしまった場合には、符号列の最後に新たに作成された符号列を追加する形で、全体の符号列を作成する方法のひとつの説明図である。
【図21】図20の場合の他の例の説明図である。
【図22】本発明の実施の形態2の複合機の電気的な接続のブロック図である。
【符号の説明】
【0075】
1 画像処理装置
91 画像処理装置
98 記憶媒体
【技術分野】
【0001】
本発明は、画像データを圧縮符号化した符号列を編集する画像処理装置、この画像処理装置を実現するプログラム、及び、このプログラムを記憶している記憶媒体に関する。
【背景技術】
【0002】
多値画像(特にカラー画像)を可逆に符号化する符号化方式として、ITU−TとISOとで標準方式とされているJPEG2000方式が知られている(非特許文献1を参照)。
【0003】
【非特許文献1】ISO 15444-1 JPEG2000 Image Coding System (JPEG2000)
【発明の開示】
【発明が解決しようとする課題】
【0004】
近年のデジタル機器においては、高画質化のために、解像度を高くし、あるいは、階調数を多くする傾向がある。これにより画像の持つ情報量が多くなることで画質は向上する反面、画像の情報量が多くなるという問題がある。後者の例を挙げると、例えば、従来2階調(白または黒)値であった画像を白黒256階調の画像にすると、情報量は8倍になってしまう。情報量が8倍になるということは、その画像データを記憶するために必要とされる記憶容量も単純に計算すると8倍になってしまい、装置の製造コストが増大するという問題になる。そこで、通常は記憶容量を削減するために、画像を圧縮符号化する。
【0005】
このような符号化方式の1つに、多階調画像を効率良く符号化するための技術が存在する。この多階調画像(カラー画像も含む)の符号化方式の代表としては、ISOとITU−Tとで標準勧告されているJPEG方式がある。JPEG方式は、基本であるDCT方式とオプションのDPCMを用いた方式がある。前者は人間の視覚特性を利用して画質を損なわない程度に原画の情報量を一部削減して符号化を行う符号化方式(非可逆符号化方式、ロッシー(lossy)符号化方式と呼ばれる)であり、後者は原画の情報量を損なうことなく符号化を行う符号化方式(可逆符号化方式、ロスレス(lossless)符号化方式と呼ばれる)である。
【0006】
DCT方式は、離散コサイン変換を使って画像情報を周波数情報に変換した後に情報の符号化を行う方式である。一方、DPCM方式は注目画素レベルを周囲画素より予測を行い、その予測誤差を符号化する方式である。画質重視で符号化を行うのであれば、効率の良いDCT方式を用いるのが良いが、情報の保存性という点ではDCT方式は非可逆であるために、可逆であるDPCM方式となる。理想としては、可逆で高能率な方式があればよいが、現状のDPCMによる可逆方式ではそれほど大きな効率を得られないという問題があり、パーソナルコンピュータ(PC)等で使用される比較的階調数の多い多値画像の圧縮には、DCT方式を使うことが主流になっている。しかし、DCT方式は圧縮率を高くすると特有のブロック歪みや輪郭部でモスキートノイズが発生し、画質が極端に劣化する。特に文字画像において、その傾向が顕著であるために画質的に大きな問題となっている。
【0007】
また、JPEG方式は、画像の記憶容量を少なくする用途では最適な方式であるが、デジタル複写機で使われる画像の編集・加工等の用途には最適ではない。なぜなら、符号状態で画像の位置を特定できない、言い換えれば、指定された画像の任意部分のみ復号処理することができないからである。よって、編集・加工処理を行うためには、一度、画像全てを復号し、復号後の画像に対して編集・加工を行い、必要であれば、再度、符号化を行うということになり、復号後の画像を記憶するための大きな記憶容量のメモリが必要になるという問題がある(例えば、A4サイズ、600dpi、RGBカラー画像で、約100Mbyte必要である)。
【0008】
このような編集・加工処理時のメモリの記憶容量の問題を解決する手段の一つに、固定長の符号化方式を利用することが考えられる。画像の符号化には符号化後の符号語長から可変長と固定長に大きく分けられる。前者の特徴は、後者に比べて符号化効率が良い点と可逆も可能である点にある。これ対し、後者の特徴は、符号の状態で符号化前の画像の位置がわかるために、画像中の任意の部分のみを再生することなどが可能である。これは、符号状態のまま、画像の編集・加工処理等が可能になることを意味している。しかし、その反面、可変長符号に比べて、一般的に符号化効率が悪く、可逆符号化も困難であるという問題がある。
【0009】
以上のJPEG方式の欠点を解決するために、JPEG2000と称する符号化方式が近年、注目されている。JPEG2000は、ウェーブレット変換を用いた変換符号化方式で、今後、カラー画像をはじめとする静止画像の分野において、JPEGに置き換わっていくだろうと予測されている。JPEG2000は、JPEGの欠点である低ビットレートでの画質劣化を少なくしたことに加え、実用的な新機能を多数備えている。その中の機能にタイル処理というものがあり、これは画像を小さな領域に分けて独立に符号化を行うため、符号状態で画像の領域を特定することが可能になり、結果的に、符号状態のままで画像の編集・加工処理が可能になる。
【0010】
しかし、JPEG2000の技術にも、まだ問題はある。それは、符号列中の一部のフ号データを編集処理した際に、その編集処理後の符号データが編集前の符号データよりデータ量が多くなってしまった場合である。この場合、編集後の符号データを符号列中に挿入するために、編集した部分以降の符号データを挿入するのに必要とされる分だけ、符号列を再配置する処理が必要となる。メモリ上での処理を例にとれば、符号データを挿入するのに必要なメモリ領域を確保するために、データの移動が必要になるということである。JPEG2000は、多機能かつ高性能のため処理が複雑になっており、JPEGとの比較を例にすると、ソフトウェアの処理では約4〜5倍の処理時間を必要とする。このことを合わせて考えると、特に、上記のような編集作業を行う場合、処理時間が長くなり、ユーザに与える操作性の点で、大きな問題となってしまう。
【0011】
特に、JPEG2000符号化処理の手段の1つにタイル処理というものがある。これは画像をタイルと呼ばれる小領域に分割し、分割された領域単位で独立に符号化を行う処理である。この方法は符号列の編集処理等、画像の特定領域にランダムにアクセスしたいようなアプリケーションに最適である。特にJPEG2000は高効率の符号化方式を採用しているため、非常に複雑な演算を必要とする。良く比較されるJPEG方式と比べて、複雑度は数倍以上である。処理の複雑さはそのまま処理時間に比例するため、JPEG2000の処理はJPEGに比べて長くなるが、タイルを使うことで特定部分のみの符号処理で済むので処理時間の問題はなくなる。
【0012】
しかし、前述したように、編集後の符号データよっては全体の符号列を調整する必要があるという問題が残っている。
【0013】
本発明の目的は、画像データを圧縮符号化した符号列中で、ブロック単位の符号データを編集処理して、編集後の符号データと編集処理が施されていない符号データとを結合して新たな符号列を生成する処理を、高速に実現できるようにすることである。
【課題を解決するための手段】
【0014】
本発明は、元画像のデータを所定のフォーマットにより圧縮符号化した符号列中で独立して編集処理が可能な特定のブロック単位の符号データを対象に所定の編集処理を施して新たなブロック単位の符号データを作成する手段と、前記符号列中の元のブロック単位の符号データを参照して、作成された前記新たなブロック単位の符号データと前記符号列中の前記編集処理が施されていない符号データとを結合して新たな符号列を生成する手段と、
を備えている画像処理装置である。
【0015】
別の面から見た本発明は、元画像のデータを所定のフォーマットにより圧縮符号化した符号列中で独立して編集処理が可能な特定のブロック単位の符号データを対象に所定の編集処理を施して新たなブロック単位の符号データを作成する手段と、前記符号列中の元のブロック単位の符号データを参照して、作成された前記新たなブロック単位の符号データと前記符号列中の前記編集処理が施されていない符号データとを結合して新たな符号列を生成する手段と、をコンピュータに実行させるコンピュータに読取可能なプログラムである。
【発明の効果】
【0016】
本発明によれば、符号列中の元のブロック単位の符号データを参照して、作成された新たなブロック単位の符号データと符号列中の編集処理が施されていない符号データとを結合して新たな符号列を生成するので、編集後の新たな符号データ列を編集処理が施されていない符号データと結合する手段を、編集前の符号列を参照しながら最短処理時間で行えるように全体符号列を制御するので、高速な編集処理が実現できる。
【発明を実施するための最良の形態】
【0017】
[JPEG2000の概要について]
最初にJPEG2000の概要について説明する。
【0018】
図1は、JPEG2000アルゴリズムの基本を説明するための機能ブロック図である。図1に示すように、JPEG2000アルゴリズムは、色空間変換・逆変換部101、2次元ウェーブレット変換・逆変換部102、量子化・逆量子化部103、エントロピー符号化・復号化部104、タグ処理部105によって構成されている。以下、各部について説明する。
【0019】
色空間変換・逆変換部101及び2次元ウェーブレット変換・逆変換部102について図2及び図3を参照しながら説明する。
【0020】
図2は、カラー画像である原画像の分割された各コンポーネントの一例を示す模式図である。カラー画像は、一般に、図2に示すように、原画像の各コンポーネントR、G、B(111)が、例えばRGB原色系によって分離されている。そして、原画像の各コンポーネントR、G、Bは、さらに、矩形をした領域であるタイル112によって分割される。個々のタイル112、例えば、R00,R01,…,R15/G00,G01,…,G15/B00,B01,…,B15は、圧縮伸長プロセスを実行する際の基本単位を構成する。従って、圧縮伸長動作は、コンポーネントR、G、B(111)毎、そしてタイル112毎に、独立して行なわれる。
【0021】
ここで、画像データの符号化時、各タイル112のデータは、図1に示す色空間変換・逆変換部101に入力され、色空間変換を施された後、2次元ウェーブレット変換・逆変換部102で2次元ウェーブレット変換(順変換)が適用されて周波数帯に空間分割される。
【0022】
図3は、デコンポジションレベル数が3であるの場合の各デコンポジションレベルにおけるサブバンドを示す模式図である。2次元ウェーブレット変換・逆変換部102は、原画像のタイル分割によって得られたタイル原画像(0LL)(デコンポジションレベル0)に対して、2次元ウェーブレット変換を施し、デコンポジションレベル1に示すサブバンド(1LL,1HL,1LH,1HH)を分離する。そして、2次元ウェーブレット変換・逆変換部102は、引き続き、この階層における低周波成分1LLに対して、2次元ウェーブレット変換を施し、デコンポジションレベル2に示すサブバンド(2LL,2HL,2LH,2HH)を分離する。2次元ウェーブレット変換・逆変換部102は、順次同様に、低周波成分2LLに対しても、2次元ウェーブレット変換を施し、デコンポジションレベル3に示すサブバンド(3LL,3HL,3LH,3HH)を分離する。図3中、各デコンポジションレベルにおいて符号化の対象となるサブバンドはグレーで示されている。例えば、デコンポジションレベル数を3とした場合、グレーで示したサブバンド(3HL,3LH,3HH,2HL,2LH,2HH,1HL,1LH,1HH)が符号化対象となり、3LLサブバンドは符号化されない。
【0023】
次いで、量子化・逆量子化部103では、指定した符号化の順番で符号化の対象となるビットが定められた後、対象ビット周辺のビットからコンテキストが生成される。
【0024】
図4は、プレシンクトを例示する模式図である。量子化の処理が終わったウェーブレット係数は、個々のサブバンド毎に、「プレシンクト」と呼ばれる重複しない矩形に分割される。これは、インプリメンテーションでメモリを効率的に使うために導入されたものである。図4に示すように、一つのプレシンクトは、空間的に一致した3つの矩形領域からなっている。さらに、個々のプレシンクトは、重複しない矩形の「コードブロック」に分けられる。これは、エントロピーコーディングを行う際の基本単位となる。
【0025】
図5は、2次元ウェーブレット変換後の2次元ウェーブレット係数の値を「ビットプレーン」単位に分解し、画素或いはコードブロック毎に「ビットプレーン」に順位付けを行う処理の概要を示す模式図である。ウェーブレット変換後の係数値は、そのまま量子化し符号化することも可能であるが、JPEG2000では符号化効率を上げるために、係数値を「ビットプレーン」単位に分解し、画素或いはコードブロック毎に「ビットプレーン」に順位付けを行うことができる。図5には、その手順を簡単に示した。この例は、原画像(32×32画素)を16×16画素のタイル4つで分割した場合の例であり、デコンポジションレベル1のプレシンクトとコードブロックとの大きさは、各々8×8画素と4×4画素としている。プレシンクトとコードブロックの番号とは、ラスター順に付けられる。タイル境界外に対する画素拡張にはミラーリング法を使い、可逆(5,3)フィルタでウェーブレット変換を行い、デコンポジションレベル1のウェーブレット係数値を求めている。
【0026】
また、図5には、タイル0/プレシンクト3/コードブロック3について、代表的な「レイヤ」についての概念的な模式図も併せて示している。レイヤの構造は、ウェーブレット係数値を横方向(ビットプレーン方向)から見ると理解し易い。1つのレイヤは任意の数のビットプレーンから構成される。この例では、レイヤ0、1、2、3は、各々、1、3、1という3つのビットプレーンからなっている。そして、LSBに近いビットプレーンを含むレイヤ程、先に量子化の対象となり、逆に、MSBに近いレイヤは最後まで量子化されずに残ることになる。LSBに近いレイヤから破棄する方法はトランケーションと呼ばれ、量子化率を細かく制御することが可能である。
【0027】
次いで、エントロピー符号化・復号化部104について図6を参照しながら説明する。図6は、符号化された画像データのコードストリームを例示する模式図である。エントロピー符号化・復号化部104(図1参照)では、コンテキストと対象ビットとから、確率推定によって各コンポーネントRGBのタイル112に対する符号化を行う。こうして、原画像の全てのコンポーネントRGBについて、タイル112単位で符号化処理が行われる。
【0028】
次いで、タグ処理部105について説明する。タグ処理部105は、エントロピー符号化・復号化部104からの全符号化データを1本のコードストリームに結合するとともに、それにタグを付加する処理を行う。図6に、コードストリームの構造を簡単に示している。このようなコードストリームの先頭と各タイル112を構成する部分タイルの先頭には、ヘッダと呼ばれるタグ情報が付加され、その後に、各タイル112の符号化データが続く。そして、コードストリームの終端には、再びタグが置かれる。
【0029】
一方、復号化時には、符号化時とは逆に、各コンポーネントRGBの各タイル112のコードストリームから画像データを生成する。このような処理について、図1を用いて簡単に説明する。タグ処理部105は、外部より入力したコードストリームに付加されたタグ情報を解釈し、コードストリームを各コンポーネントRGBの各タイル112のコードストリームに分解し、その各コンポーネントRGBの各タイル112のコードストリーム毎に復号化処理を行う。この際、コードストリーム内のタグ情報に基づく順番で復号化の対象となるビットの位置が定められるとともに、量子化・逆量子化部103において、その対象ビット位置の周辺ビット(既に復号化を終えている)の並びからコンテキストを生成する。そして、エントロピー符号化・復号化部104では、そのコンテキストとコードストリームとから確率推定によって復号化を行なって対象ビットを生成し、それを対象ビットの位置に書き込む。このようにして復号化されたデータは、周波数帯域毎に空間分割されているため、これを2次元ウェーブレット変換・逆変換部102で2次元ウェーブレット逆変換を行うことにより、画像データ中の各コンポーネントRGBにおける各タイル112が復元される。復元されたデータは、色空間変換・逆変換部101によって元の表色系のデータに変換される。
【0030】
次に、JPEG2000の符号フォーマット例を説明する。図7はJPEG2000の符号フォーマットを示す概略図である。当該符号フォーマットは、符号データの始まりを示すSOC(Start of Codestream)マーカで始まり、その後に、符号化のパラメータや量子化のパラメータを記述したメインヘッダが続き、さらに、実際の符号データが続く構成である。実際の符号データは、SOT(Start of Tile-part)マーカで始まり、タイルヘッダ、SOD(Start of Data)マーカ、タイルデータ(符号)で構成される。これら画像全体に相当する符号データの後に、符号の終了を示すEOC(End of Codestream)マーカが付加される。
【0031】
図8に、メインヘッダの構成例を示す。メインヘッダは、COD,QCDなる必須マーカセグメントと、COC,QCC,RGN,POC,PPM,TLM,PLM,CRG,COMなるオプションマーカセグメントとにより構成されている。
【0032】
また、図9にタイルヘッダの構成例を示す。図9(a)は、タイルヘッダの先頭に付加されるマーカセグメント列を示し、COD,COC,QCD,QCC,RGN,POC,PPT,PLT,COMのマーカセグメント(全てオプション)が使用可能である。一方、図9(b)は、タイル内が複数に分割されている場合における分割されたタイル部分列の先頭に付加されるマーカセグメント列であり、POC,PPT,PLT,COMのマーカセグメント(全てオプション)が使用可能である。
【0033】
ここで、JPEG2000で使用されるマーカ及びマーカセグメントについて説明する。マーカは2バイト(先頭バイトが0xffで、続くバイトが0x01〜0xfe)で構成される。マーカ及びマーカセグメントは、以下に示す6種類に分類できる。
【0034】
(1) フレーム区切り(delimiting)
(2) 画像の位置、サイズ関係の情報(fixed information)
(3) 符号化機能の情報(functional)
(4) エラー耐性用(in bit stream)
(5) ビットストリームのポインタ(pointer)
(6) 補助的な情報(informational)
このうち、本発明に関係するマーカは(1)(2)である。その詳細について、以下に説明する。
【0035】
まず、Delimitingマーカ及びマーカセグメントについて説明する。Delimitingマーカ及びマーカセグメントは必須であり、SOC,SOT,SOD,EOCがある。符号開始マーカ(SOC)は符号列の先頭に付加される。タイル開始マーカ(SOT)は、タイル符号列の先頭に付加される。このSOTマーカセグメントの構成を図10に示す。当該マーカセグメントの大きさが記述されるLsot、タイル番号(0から始まるラスター順につけられた番号)が記述されるIsot、タイル長さが記述されるPsot、タイル部分番号が記述されるTPsot、タイル部分数が記述されるTNsotなる内容からなる。
【0036】
次に、Fixed informationマーカセグメントについて説明する。これは、画像についての情報を記述するマーカで、SIZマーカが該当する。SIZマーカセグメントはSOCマーカの直後に付加される。マーカセグメント長はコンポーネント数に依存する。このSIZマーカセグメントの構成を図11に示す。当該マーカセグメントの大きさが記述されるLsiz、符号列の互換性(0固定、0以外は予約)が記述されるRsiz、reference gridの水平方向サイズが記述されるXsiz、reference gridの垂直方向サイズが記述されるYsiz、reference grid原点からの画像の水平方向オフセット位置が記述されるXOsiz、reference grid原点からの画像の垂直方向オフセット位置が記述されるYOsiz、タイルの水平方向サイズが記述されるXTsiz、タイルの垂直方向サイズが記述されるYTsiz、reference grid原点からのタイルの水平方向オフセット位置が記述されるXTOsiz、reference grid原点からのタイルの垂直方向オフセット位置が記述されるYTOsiz、コンポーネント数が記述されるCsiz、(i)番目のコンポーネントにおけるビット数と符号ビット数が記述されるSsiz(i)、(i)番目のコンポーネントにおける水平方向サンプル数が記述されるXRsiz(i)、(i)番目のコンポーネントにおける垂直方向サンプル数が記述されるYRsiz(i)なる内容により構成される。
【0037】
ここで、JPEG2000における画像エリア、タイルの位置関係について説明する。JPEG2000では、画像やタイルの位置は、図11に示したセグメント構成からも判るように、reference gridと称する座標軸を用いて表現される。画像は図12に示すように、reference grid上に、reference gridの左上を原点(0,0)として、原点と画像の左上との相対位置(XOsiz,YOsiz)で指定される。実際の画像エリアの大きさは、(Xsiz−XOsiz)×(Ysiz−YOsiz)で求められる。
【0038】
また、reference grid上に配置された画像は、符号化の際に、前述したように「タイル」と称する矩形領域に分割されて処理される。reference gridとタイルとの位置関係を図13に示す。タイルは単独で符号化、復号化できる必要があるため、タイル境界を越えての画素参照はできない。タイルの位置は、reference gridの原点と最初のタイルの左上との相対位置(XTOsiz,YTOsiz)で指定される。画像オフセット位置とタイルオフセット位置、タイルサイズは
0≦XTOsiz≦XOsiz
0≦YTOsiz≦YOsiz
XTsiz+XTOsiz>XOsiz
YTsiz+YTOsiz>YOsiz
なる関係がある。
【0039】
また、全体のタイル数は、
水平方向のタイル数=(Xsiz−XTOsiz)/XTsiz
垂直方向のタイル数=(Ysiz−YTOsiz)/YTsiz
なる関係式で示される。
【0040】
また、「画像」「タイル」「サブバンド」「プリシンクト」「コードブロック」の関係と、「パケット」と「レイヤ」の関係について図14を参照して整理する。
【0041】
まず、物理的な大きさの序列は、
画像 ≧ タイル > サブバンド ≧ プリシンクト ≧ コードブロック
である。
【0042】
「タイル」とは、画像を矩形に分割したものであり、分割数=1の場合、画像=タイルとなる。「プリシンクト」とは、サブバンドを矩形に分割したもの(をHL,LH,HHの3つのサブバンドについて集めたもの、プリシンクトは3つで1まとまりとなるが、ただし、LLサブバンドを分割したプリシンクトは1つで1まとまり)で、大まかには画像中の場所(Position)を表すものである。プリシンクトはサブバンドと同じサイズにできる。プリシンクトをさらに矩形に分割したものが「コードブロック」である。
【0043】
また、プリシンクトに含まれる全てのコードブロックから、符号の一部を取り出して集めたもの(例えば、全てのコードブロックの最上位ビットMSBから3枚目までのビットプレーンの符号を集めたもの)が「パケット」である。ここに、上述の“一部”は“空(から)”でもいいので、パケットの中身が符号的には“空(から)”ということもある。全てのプリシンクト(=全てコードブロック=全てのサブバンド)のパケットを集めると、画像全域の符号の一部(例えば、画像全域のウェーブレット係数の、MSBから3枚目までのビットプレーンの符号)ができるが、これが「レイヤ」である。レイヤは、大まかには画像全体のビットプレーンの符号の一部であるから、復号されるレイヤ数が増えれば画質は上がる。レイヤはいわば画質の単位である。
【0044】
従って、全てのレイヤを集めると、画像全域の全てのビットプレーンの符号になる。
【0045】
[実施の形態1について]
次に、本発明を実施するための最良の一形態について説明する。
【0046】
図15は、画像処理装置91の電気的な接続を示すブロック図である。この画像処理装置91には、パーソナルコンピュータ、ワークステーションなどが用いられる。図1に示すように、画像処理装置91は、各種演算を行ない、各部を集中的に制御するCPU92と、各種のROMやRAMからなるメモリ93とが、バス94で接続されている。
【0047】
バス94には、所定のインターフェイスを介して、ハードディスクなどの磁気記憶装置95と、マウスやキーボードなどで構成される入力装置96と、LCDやCRTなどの表示装置97と、光ディスクなどの記憶媒体98を読取る記憶媒体読取装置99とが接続され、また、ネットワーク100と通信を行なう所定の通信インターフェイス101が接続されている。なお、通信インターフェイス101は、ネットワーク100を介してインターネットなどのWANに接続可能である。記憶媒体98としては、CDやDVDなどの光ディスク、光磁気ディスク、フレキシブルディスクなどの各種方式のメディアを用いることができる。また、記憶媒体読取装置99は、具体的には記憶媒体98の種類に応じて光ディスクドライブ、光磁気ディスクドライブ、フレキシブルディスクドライブなどが用いられる。
【0048】
磁気記憶装置95には、この発明のプログラムを実施する画像処理プログラムが記憶されている。この画像処理プログラムは、この発明の記憶媒体を実施する記憶媒体98から記憶媒体読取装置99により読取るか、あるいは、インターネットなどのWANからダウンロードするなどして、磁気記憶装置95にインストールしたものである。このインストールにより画像処理装置91は動作可能な状態となる。なお、この画像処理プログラムは、所定のOS上で動作するものであってもよい。また、特定のアプリケーションソフトの一部をなすものであってもよい。
【0049】
このようなハードウエア構成の画像処理装置91においては、画像処理プログラムにもとづいて、図16〜図21を参照して後述するような処理を行うことができる。
【0050】
図16は、画像処理プログラムにもとづいて実行する処理の機能ブロック図である。この処理は、元画像の指定された位置に対して編集処理を行うものである。画像処理プログラムにより、入力されるブロック単位の符号列(画像データから例えばJPEG2000アルゴリズムにより圧縮符号化された符号列)から編集対象となる符号列を検索するブロック単位検索手段31と、ブロック単位検索手段31で抽出された編集対象のブロック単位の符号に対して編集処理を行い、新たな符号列を作成するブロック単位編集処理手段32と、ブロック単位編集処理手段32で作成された符号列と編集対象ではないブロック単位の符号とから全体の符号列を作成する符号列制御手段33が実現される。
【0051】
その動作を簡単に説明すると、符号はまずブロック単位検索手段31に入力され、編集対象となる画像を含むブロック単位の符号であるか否かを判断する。タイルを使用したJPEG2000符号を例に取ると、図17に示すように、タイル単位の符号列41には、先頭にヘッダ情報42が存在する。ヘッダ情報42の中にはヘッダ番号43とその符号列の長さを示す情報44が存在する。検索は、このヘッダ情報42のみ解釈していけば簡単に行える。例えば、編集対象でなかったら、符号列41の長さの情報を利用して次のヘッダ情報42を検出していけばよいので、検索は高速に行える。
【0052】
ブロック単位検索手段31で編集対象と判断されたブロック単位の符号は、ブロック単位編集処理手段32に送られる。ブロック単位編集処理手段32では、入力された符号に対して、指定された所定の編集処理を実施する。編集処理の流れとしては、図18に示すように、まず、該当符号を復号してブロック単位の符号を復元し(ステップS1)、続いて、復元された画像に対して編集処理を行う(ステップS2)。最後に、編集後の画像に対して元の符号と同じ方法で符号化を行い、元の符号列と同じ形式の符号列を作成する(ステップS3)。編集処理の一例としては、色の変更や、画像の合成等が挙げられる。この編集処理後の新たに作成された符号列は、符号列制御手段33に送られる。符号列制御手段33では、編集対象でない元のブロック単位の符号列と、ブロック単位編集処理手段32で新たに作成されたブロック単位の符号列とを結合させ、全体としてフォーマット整合された符号列を作成する。
【0053】
この場合の符号列の結合方法については様々な方法が考えられるが、符号量に応じて適切な手段適宜選択するのが望ましい。図19は、その一例を説明する符号列制御手段33のブロック図である。この例では、編集後の符号量が編集前の符号量より多い場合には結合方式Aを実行する結合手段52を、少ない場合には結合方式Bを実行する結合手段53を選択して、符号の結合を行う。すなわち、編集の前後の符号量の比較を符号量比較手段51で行い、結合手段52と53とをセレクタ54で選択する。なお、結合処理の影響を受けないブロック単位の符号は何も処理を行なわない。
【0054】
上記のような処理を行なえば、符号列中の特定部分の符号のみ処理することができる。また、編集後の新たな符号列の挿入方法を、編集前の符号を参照しながら、最短処理時間で行えるように全体符号列を制御することができるので、高速な編集処理が実現することができることになる。
【0055】
符号列制御手段33における、編集対象でない元のブロック単位の符号列と、編集後の新たに作成されたブロック単位の符号列とを結合させる符号列結合の具体的な手段については様々な方法が考えられる。
【0056】
まず、新たに作成された符号列の符号量が、編集前の符号量を超えてしまった場合には、符号列の最後に新たに作成された符号列を追加する形で、全体の符号列を作成する方法が挙げられる。一例として、図20に示すように、編集前(a)の符号部分には、その部分が符号列の最後に追加されていることを表す識別情報を入れると共に、追加された符号列の先頭アドレスを入れておく。こうすれば、追加された符号列(後に符号列全体の再配列を考慮して、編集後(b)のブロック単位の画像に対応する正規の符号列とする)に対して高速にアクセスが可能となる。上記の処理を行っても、元のヘッダ情報の書き換えを行っていないので、符号フォーマットとしては問題がない。この方法によれば、元の位置に符号を挿入するために、それ以降のデータを再配置しなければならないという処理上の問題はなくなり、高速な編集処理が実現できる。
【0057】
なお、図20の例では、新たな符号列を、終了符号の直後に配置したが、図21に示すように、終了符号の直前に挿入しても良い。ただし、その場合には、最終のブロック単位の符号列における符号長の情報を操作(最終の符号列の符号長に新たな符号列の符号長を足す)して、全体の符号列としてフォーマット整合させる必要がある。
【0058】
また、結合する際に問題とならないように、編集後のブロックの符号量が多くなる場合には、符号化パラメータを変更して編集前の符号量を超えないような符号列を作成することが考えられる。特に、JPEG2000方式は、同じ構成でlosslessおよびlossyが可能なスケーラブルな符号化方式であり、符号のまま符号量の調節が可能である。この性質を利用すれば、一度作成した符号列に対して、符号のまま符号量変更が可能であるため、編集前の符号量に最も近く、かつ、最高となる画質を得られる符号列を高速に作成することができる。この際、編集後の符号量が編集前の符号量に一致しない場合でも、編集後のヘッダ情報42は、編集前の符号長と同じにしておく。こうすれば、符号全体として問題はない。
【0059】
以上のような手段により、符号列の編集処理を高速に行い、かつ、編集後の符号列を高速に作成することは可能になるが、符号フォーマットの観点から言えば、本来あるべき姿に対して冗長な部分が存在していることになる。例えば、図20、図21を参照して説明した編集後のブロックの符号量が少ない場合の処理で作成される符号では、編集後の符号列は末尾に追加する形で存在しているし、前述の編集後のブロックの符号量が多い場合の処理で作成される符号列では、編集前の符号列に満たない部分の符号は意味のない符号データとなっている。
【0060】
この点を考慮すると、全体の処理時間を考慮して、必要であれば適宜、必要な部分のみの符号列を再配置することで、本来あるべき姿の符号列にするのが望ましい。具体的には、符号列制御手段33によって、全体の処理時間を考慮しながら編集後の符号列の挿入方法を決定し、必要であれば、適宜、必要部分のみ符号列を再配置することが考えられる。この方法によれば、処理速度を低下させることなく、無駄な符号情報を削除することが可能となり、効率の良い符号列を作成可能となる。
【0061】
[実施の形態2について]
本発明の別の実施の形態を発明の実施の形態2として説明する。
【0062】
図22は、本発明の画像処理装置を実施した複写機1の電気的な接続を示すブロック図である。原稿を光学的に読み取るスキャナである読み取りユニット11は、原稿に対するランプ照射の反射光をミラーおよびレンズなどからなる光学系によりCCD(電荷結合素子)などの光電変換素子に集光する。この光電変換素子は、SBU(センサ・ボード・ユニット)12に搭載され、受光素子において電気信号に変換された画像信号はデジタル画像信号に変換された後、SBU12から出力される。SBU12から出力される画像信号はCDIC13(圧縮/伸長およびデータインターフェイス制御部)13に入力される。機能デバイスおよびデータバス間における画像データの伝送はCDIC13が全て制御する。CDIC13は画像データに関し、SBU12、パラレルバス14、IPP(画像処理プロッセッサ)15間のデータ転送、本システムの全体制御を司るシステムコントローラ(CPU)16と画像データに対するプロセスコントローラ27間の通信を行なう。符号16a,16bは、システムコントローラ16が使用するROM、RAMである。それぞれSBU12からの画像信号は、CDIC13を経由してIPP15に転送され、光学系およびデジタル画像信号への量子化に伴う信号劣化(スキャナ系の信号劣化とする)が補正されて、再度CDIC13へ出力される。
【0063】
この複写機1では、読み取りユニット11による読み取り画像をメモリに蓄積して再利用するジョブと、メモリに蓄積しないジョブとがあり、以下ではそれぞれの場合について説明する。メモリに蓄積する例としては、1枚の同一原稿を複数枚複写する場合、読み取りユニット11で1回だけ原稿の読取動作を行い、メモリに蓄積し、蓄積データを複数回読み出す使い方がある。メモリを使わない例としては、1枚の原稿を1枚だけ複写する場合、読み取り画像をそのまま印刷すればよいので、メモリアクセスを行なう必要はない。
【0064】
まず、メモリを使わない場合、IPP15からCDIC13へ転送された画像データは、再度CDIC13からIPP15へ戻される。IPP15において受光素子による輝度データを面積階調に変換するための画質処理を行なう。この画質処理後の画像データはIPP15からVDC(ビデオ・データ制御)17に転送する。そして、面積階調に変化された信号に対し、ドット配置に関する後処理およびドットを再現するためのパルス制御を行い、電子写真方式で画像形成するプリンタエンジンである作像ユニット18により、転写紙上に再生画像を形成する。なお、作像ユニット18の印刷方式は、電子写真方式のほか、インクジェット方式、昇華型熱転写方式、銀塩写真方式、直接感熱記録方式、溶融型熱転写方式など、様々な方式を用いることができる。
【0065】
メモリに画像データを蓄積し、画像データの読み出し時に付加的な処理、例えば、画像方向の回転、画像の合成等を行なう場合の画像データの流れを説明する。IPP15からCDIC13へ転送された画像データは、CDIC13からパラレルバス14を経由してIMAC(画像メモリアクセス制御)19に送られる。IMAC19では、システムコントローラ16の制御に基づき、画像データの記憶装置であるMEM(メモリモジュール)20へのアクセス制御、外部のPC(パソコン)21へのプリント用データの展開、MEM20のメモリ有効活用のための画像データの圧縮/伸長を行なう。IMAC19へ送られた画像データはデータ圧縮後MEM20へ蓄積され、この蓄積データは必要に応じて読み出される。読み出した画像データは伸長されて本来の画像データに戻され、IMAC19からパラレルバス経由でCDIC13へ戻される。
【0066】
CDIC13からIPP15への転送後は画像データに対して画質処理およびVDC17でのパルス制御を行い、その画像データにより作像ユニット18において転写紙上に画像形成する。
【0067】
この複写機1は、いわゆる複合機であり、FAX送信機能を備えている。このFAX送信機能は、読み取り画像データにIPP15にて画像処理を実施し、CDIC13およびパラレルバス14を経由してFCU(FAX制御ユニット)22へ転送する。FCU22にて通信網へのデータ変換を行い、PN(公衆回線)23へFAXデータとして送信する。FAX受信は、PN23からの回線データをFCU22で画像データへ変換し、パラレルバス14およびCDIC13を経由してIPP15へ転送する。この場合、特別な画質処理は行なわず、VDC17においてドット再配置およびパルス制御を行い、作像ユニット18において転写紙上に再生画像を形成する。
【0068】
複数のジョブ、例えば、コピー機能、FAX送受信機能、プリンタ出力機能が並行に動作する状況において、読み取りユニット、作像ユニットおよびパラレルバス14の使用権のジョブへの割り振りをシステムコントローラ16およびプロセスコントローラ27で制御する。
【0069】
プロセスコントローラ(CPU)27は画像データの流れを制御し、システムコントローラ16はシステム全体を制御し、各リソースの起動を管理する。符号27a,27bは、プロセスコントローラ27が使用するROM、RAMである。
【0070】
ユーザは、操作パネル24を選択入力することで各種の機能の選択を行ない、コピー機能、FAX機能等の処理内容を設定する。
【0071】
システムコントローラ16とプロセスコントローラ27はパラレルバス14、CDIC13およびシリアルバス25を介して相互に通信を行なう。この際、CDIC13内においては、パラレルバス14とシリアルバス25とのデータインターフェイスのためのデータフォーマット変換を行なう。
【0072】
MLC(Media Link Controller)26は、画像データの符号変換の機能を実現する。具体的にはCDIC13で使用される符号化方式、IMAC19で使用される符号化方式から他の符号化方式への変換(例えば、標準であるJPEG方式等)を行なう。
【0073】
この複写機1では、実施の形態1において、図16〜図21を参照して前述した符号列の編集処理を、操作パネル24の操作により、システムコントローラ16が画像処理プロッセッサ15を制御して画像処理プロッセッサ15で実行する。よって、その処理内容は実施の形態1と同様であるため、詳細な説明は省略する。
【図面の簡単な説明】
【0074】
【図1】本発明の実施の形態の前提となるJPEG2000方式の基本となるアルゴリズムを実現するシステムの機能ブロック図である。
【図2】原画像の各コンポーネントの分割された矩形領域を示す説明図である。
【図3】デコンポジションレベル数が3の場合の、各デコンポジションレベルにおけるサブバンドを示す説明図である。
【図4】プレシンクトを示す説明図である。
【図5】ビットプレーンに順位付けする手順の一例を示す説明図である。
【図6】符号化された画像データのコードストリームを例示する模式図である。
【図7】JPEG2000の符号フォーマットを示す概略図である。
【図8】そのメインヘッダの構成図である。
【図9】タイルヘッダの構成図である。
【図10】SOTマーカセグメントの構成図である。
【図11】SIZマーカセグメントの構成図である。
【図12】画像の位置関係を示す説明図である。
【図13】Reference gridとタイルとの位置関係を示す説明図である。
【図14】画像、タイル、サブバンド、プリシンクト、コードブロックの関係を示す説明図である。
【図15】本発明の実施の形態1の画像処理装置の電気的な接続のブロック図である。
【図16】符号列を編集処理する手段の機能ブロック図である。
【図17】符号列の構成について説明する説明図である。
【図18】符号列を編集処理する手順のフローチャートである。
【図19】符号列制御手段の機能ブロック図である。
【図20】新たに作成された符号列の符号量が、編集前の符号量を超えてしまった場合には、符号列の最後に新たに作成された符号列を追加する形で、全体の符号列を作成する方法のひとつの説明図である。
【図21】図20の場合の他の例の説明図である。
【図22】本発明の実施の形態2の複合機の電気的な接続のブロック図である。
【符号の説明】
【0075】
1 画像処理装置
91 画像処理装置
98 記憶媒体
【特許請求の範囲】
【請求項1】
元画像のデータを所定のフォーマットにより圧縮符号化した符号列中で独立して編集処理が可能な特定のブロック単位の符号データを対象に所定の編集処理を施して新たなブロック単位の符号データを作成する手段と、
前記符号列中の元のブロック単位の符号データを参照して、作成された前記新たなブロック単位の符号データと前記符号列中の前記編集処理が施されていない符号データとを結合して新たな符号列を生成する手段と、
を備えている画像処理装置。
【請求項2】
前記符号列を生成する手段は、前記編集の前後の前記ブロック単位の符号データの符号量に変化に応じて前記結合を実行する手段を複数の手段の中から選択する、請求項1に記載の画像処理装置。
【請求項3】
前記符号列を生成する手段は、前記編集後の前記ブロック単位の符号データが前記編集前よりデータ量が多くなる場合には、前記新たに作成された符号データを前記新たな符号列の最後尾に追加する形で前記結合を行う、請求項2に記載の画像処理装置。
【請求項4】
前記符号列を生成する手段は、前記編集後の前記ブロック単位の符号データが前記編集前よりデータ量が多くなる場合には、符号化パラメータの変更により前記編集後の前記ブロック単位の符号データが前記編集前の符号データのデータ量を超えないようにする、請求項2に記載の画像処理装置。
【請求項5】
前記所定のフォーマットはJPEG2000である、請求項1〜4のいずれかの一に記載の画像処理装置。
【請求項6】
元画像のデータを所定のフォーマットにより圧縮符号化した符号列中で独立して編集処理が可能な特定のブロック単位の符号データを対象に所定の編集処理を施して新たなブロック単位の符号データを作成する手段と、
前記符号列中の元のブロック単位の符号データを参照して、作成された前記新たなブロック単位の符号データと前記符号列中の前記編集処理が施されていない符号データとを結合して新たな符号列を生成する手段と、
をコンピュータに実行させるコンピュータに読取可能なプログラム。
【請求項7】
前記符号列を生成する手段は、前記編集の前後の前記ブロック単位の符号データの符号量に変化に応じて前記結合を実行する手段を複数の手段の中から選択する、請求項6に記載のプログラム。
【請求項8】
前記符号列を生成する手段は、前記編集後の前記ブロック単位の符号データが前記編集前よりデータ量が多くなる場合には、前記新たに作成された符号データを前記新たな符号列の最後尾に追加する形で前記結合を行う、請求項7に記載のプログラム。
【請求項9】
前記符号列を生成する手段は、前記編集後の前記ブロック単位の符号データが前記編集前よりデータ量が多くなる場合には、符号化パラメータの変更により前記編集後の前記ブロック単位の符号データが前記編集前の符号データのデータ量を超えないようにする、請求項7に記載のプログラム。
【請求項10】
前記所定のフォーマットはJPEG2000である、請求項6〜9のいずれかの一に記載のプログラム。
【請求項11】
請求項6〜10のいずれかの一に記載のプログラムを記憶している、記憶媒体。
【請求項1】
元画像のデータを所定のフォーマットにより圧縮符号化した符号列中で独立して編集処理が可能な特定のブロック単位の符号データを対象に所定の編集処理を施して新たなブロック単位の符号データを作成する手段と、
前記符号列中の元のブロック単位の符号データを参照して、作成された前記新たなブロック単位の符号データと前記符号列中の前記編集処理が施されていない符号データとを結合して新たな符号列を生成する手段と、
を備えている画像処理装置。
【請求項2】
前記符号列を生成する手段は、前記編集の前後の前記ブロック単位の符号データの符号量に変化に応じて前記結合を実行する手段を複数の手段の中から選択する、請求項1に記載の画像処理装置。
【請求項3】
前記符号列を生成する手段は、前記編集後の前記ブロック単位の符号データが前記編集前よりデータ量が多くなる場合には、前記新たに作成された符号データを前記新たな符号列の最後尾に追加する形で前記結合を行う、請求項2に記載の画像処理装置。
【請求項4】
前記符号列を生成する手段は、前記編集後の前記ブロック単位の符号データが前記編集前よりデータ量が多くなる場合には、符号化パラメータの変更により前記編集後の前記ブロック単位の符号データが前記編集前の符号データのデータ量を超えないようにする、請求項2に記載の画像処理装置。
【請求項5】
前記所定のフォーマットはJPEG2000である、請求項1〜4のいずれかの一に記載の画像処理装置。
【請求項6】
元画像のデータを所定のフォーマットにより圧縮符号化した符号列中で独立して編集処理が可能な特定のブロック単位の符号データを対象に所定の編集処理を施して新たなブロック単位の符号データを作成する手段と、
前記符号列中の元のブロック単位の符号データを参照して、作成された前記新たなブロック単位の符号データと前記符号列中の前記編集処理が施されていない符号データとを結合して新たな符号列を生成する手段と、
をコンピュータに実行させるコンピュータに読取可能なプログラム。
【請求項7】
前記符号列を生成する手段は、前記編集の前後の前記ブロック単位の符号データの符号量に変化に応じて前記結合を実行する手段を複数の手段の中から選択する、請求項6に記載のプログラム。
【請求項8】
前記符号列を生成する手段は、前記編集後の前記ブロック単位の符号データが前記編集前よりデータ量が多くなる場合には、前記新たに作成された符号データを前記新たな符号列の最後尾に追加する形で前記結合を行う、請求項7に記載のプログラム。
【請求項9】
前記符号列を生成する手段は、前記編集後の前記ブロック単位の符号データが前記編集前よりデータ量が多くなる場合には、符号化パラメータの変更により前記編集後の前記ブロック単位の符号データが前記編集前の符号データのデータ量を超えないようにする、請求項7に記載のプログラム。
【請求項10】
前記所定のフォーマットはJPEG2000である、請求項6〜9のいずれかの一に記載のプログラム。
【請求項11】
請求項6〜10のいずれかの一に記載のプログラムを記憶している、記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2006−86579(P2006−86579A)
【公開日】平成18年3月30日(2006.3.30)
【国際特許分類】
【出願番号】特願2004−266653(P2004−266653)
【出願日】平成16年9月14日(2004.9.14)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成18年3月30日(2006.3.30)
【国際特許分類】
【出願日】平成16年9月14日(2004.9.14)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]