JP3989801B2 - Image processing apparatus, image processing program, and storage medium - Google Patents

Image processing apparatus, image processing program, and storage medium Download PDF

Info

Publication number
JP3989801B2
JP3989801B2 JP2002268897A JP2002268897A JP3989801B2 JP 3989801 B2 JP3989801 B2 JP 3989801B2 JP 2002268897 A JP2002268897 A JP 2002268897A JP 2002268897 A JP2002268897 A JP 2002268897A JP 3989801 B2 JP3989801 B2 JP 3989801B2
Authority
JP
Japan
Prior art keywords
scaling
code
processing
image
code data
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
JP2002268897A
Other languages
Japanese (ja)
Other versions
JP2004112091A (en
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.)
Ricoh Co Ltd
Original Assignee
Ricoh 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2002268897A priority Critical patent/JP3989801B2/en
Publication of JP2004112091A publication Critical patent/JP2004112091A/en
Application granted granted Critical
Publication of JP3989801B2 publication Critical patent/JP3989801B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)
  • Studio Circuits (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像データを取り扱うコンピュータ等の画像処理装置、画像処理用プログラム及び記憶媒体に関する。
【0002】
【従来の技術】
高精細静止画像の取扱いを容易にする画像圧縮伸長技術に対する高性能化或いは多機能化の要求は、今後、ますます強くなっていくことは必至と思われる。こうした高精細静止画像の取扱いを容易にする画像圧縮伸長アルゴリズムとしては、現在は、JPEG(Joint Photographic Experts Group)が最も広く使われている。また、このJPEGで採用されているDCT(離散コサイン変換)に代わる周波数変換として、近年、DWT(離散ウェーブレット変換)の採用が増加している。その代表例は、2001年に国際標準となったJPEG後継の画像圧縮伸長方式JPEG2000である。
【0003】
ところで、JPEG2000等による圧縮符号化された画像データの利用形態は様々である。その一例として、例えば、インタネット等を通じて画像ファイルの提供者から提供され、或いは、デジタルカメラ等で撮影されて入力された画像データに関して、パーソナルコンピュータ上で所望の画像サイズに変倍(縮小又は拡大)したい場合がある。
【0004】
【発明が解決しようとする課題】
ところが、一般に、符号化された画像データ(符号データ)の変倍を行う際には、一旦、復号処理を行って元の画像データの状態に復元した後、画像データの状態で必要な変倍処理(例えば、ビットマップ展開した上で間引き処理や補間処理)を行い、変倍済みの画像データを再度符号化することにより、変倍結果としての符号データを作成するようにしている。
【0005】
しかしながら、このような変倍処理では、対象となる画像についての符号データを復号→画像変倍→再符号化というプロセスを経て変倍結果としての符号データが得られることとなるため、処理時間がかかるという問題がある。また、符号データから画像の復元を行うので、復元された画像データを扱うための作業メモリが必要になる。特に、ページ全体に亘る符号データを画像データに戻す場合には、ページメモリが必要となる如く、作業領域用に余分なメモリを必要とする。
【0006】
本発明の目的は、JPEG2000フォーマットにより圧縮符号化されたデータを対象として画像変倍を行う上で、極力少ない作業メモリの使用で極力高速処理を可能にすることである。
【0007】
【課題を解決するための手段】
請求項1に記載の発明の画像処理装置は、変倍率の指定を受付ける倍率受付手段と、画像データとしてJPEG2000フォーマットにより圧縮符号化された符号データに対して独立して復号可能であるタイル、又は、プリシンクト、又は、コードブロック単位で指定された変倍率の変倍処理を施す変倍処理機能とを備え、変倍処理手段は指定された変倍率が縮小変倍率の場合には、符号データの状態で、指定された縮小変倍率分に基づいて、タイル、又は、プリシンクト、又は、コードブロック単位で符号データを間引くことにより削除処理を行うことを特徴とする。
【0008】
従って、JPEG2000によれば、その処理単位が任意の大きさの“ブロック”(一般には、矩形)であるため、その符号データがウェーブレット変換/逆変換においてその係数の値に影響を及ぼさないように他のブロックの情報と関連付けられていなければ、即ち、独立して処理可能なブロック単位であれば、独立して復号可能である、という特徴を有するので、独立して復号可能であるタイル、又は、プリシンクト、又は、コードブロック単位で、符号データに対して符号データのまま指定された変倍率の変倍処理を施すことより、基本的には画像データに復号させることなく符号データのままの変倍処理で画像サイズの変更が可能となり、従来の復号→画像変倍→再符号化というプロセスに対して変倍処理のプロセスのみで済み、よって、極力少ない作業メモリの使用で極力高速処理が可能となる。
【0010】
また、符号データのままでの変倍処理の一例として、指定された縮小変倍率分に基づいて、タイル、又は、プリシンクト、又は、コードブロック単位で符号データを間引くことにより、縮小変倍を簡単に行える。
【0011】
請求項記載の発明は、変倍率の指定を受付ける倍率受付手段と、画像データとしてJPEG2000フォーマットにより圧縮符号化された符号データに対して独立して復号可能であるタイル、又は、プリシンクト、又は、コードブロック単位で指定された変倍率の変倍処理を施す変倍処理機能とを備え、変倍処理手段は、指定された変倍率が拡大変倍率の場合には、符号データの状態で、指定された拡大変倍率に基づいて、タイル、又は、プリシンクト、又は、コードブロック単位で符号データを複写することにより追加処理を行う。
【0012】
従って、符号データのままでの変倍処理の一例として、拡大変倍の場合には、指定された拡大変倍率に基づいて、タイル、又は、プリシンクト、又は、コードブロック単位で符号データを複写することにより、拡大変倍を簡単に行える。
【0013】
請求項3記載の画像処理用プログラムは、変倍率の指定を受付ける倍率受付機能と、画像データとしてJPEG2000フォーマットにより圧縮符号化された符号データに対して独立して復号可能であるタイル、又は、プリシンクト、又は、コードブロック単位で、指定された変倍率の変倍処理を施す変倍処理機能とを有し、変倍処理機能は指定された変倍率が縮小変倍率の場合には、符号データの状態で、指定された縮小変倍率分に基づいてタイル、又は、プリシンクト、又は、コードブロック単位で符号データを間引きくことにより削除処理を行わせることを特徴とする
【0014】
従って、JPEG2000によれば、その処理単位が任意の大きさの“ブロック”(一般には、矩形)であるため、その符号データがウェーブレット変換/逆変換においてその係数の値に影響を及ぼさないように他のブロックの情報と関連付けられていなければ、即ち、独立して処理可能なブロック単位であれば、独立して復号可能である、という特徴を有するので、独立して復号可能であるタイル、又は、プリシンクト、又は、コードブロック単位で、指定された変倍率の変倍処理を施すことより、基本的には画像データに復号させることなく符号データのままの変倍処理で画像サイズの変更が可能となり、従来の復号→画像変倍→再符号化というプロセスに対して変倍処理のプロセスのみで済み、よって、極力少ない作業メモリの使用で極力高速処理が可能となる。
【0016】
また、符号データのままでの変倍処理の一例として符号データのままでの変倍処理の一例として、指定された縮小変倍率分に基づいて、タイル、又は、プリシンクト、又は、コードブロック単位で符号データを間引くことにより、縮小変倍を簡単に行える。
【0017】
請求項4の画像処理用プログラムは、変倍率の指定を受付ける倍率受付機能と、画像データとしてJPEG2000フォーマットにより圧縮符号化された符号データに対して独立して復号可能であるタイル、又は、プリシンクト、又は、コードブロック単位で、指定された変倍率の変倍処理を施す変倍処理機能とを有し、変倍処理手機能は、指定された変倍率が拡大変倍率の場合には、指定された拡大変倍率分に基づいてタイル、又は、プリシンクト、又は、コードブロック単位で符号データを複写することにより追加処理を行わせる。
【0018】
従って、符号データのままでの変倍処理の一例として、符号データのままでの変倍処理の一例として、拡大変倍の場合には、指定された拡大変倍率に基づいて、タイル、又は、プリシンクト、又は、コードブロック単位で符号データを複写することにより、拡大変倍を簡単に行える。
【0019】
請求項7記載の発明のコンピュータ読み取り可能な記憶媒体は、請求項4乃至6の何れか一記載の画像処理用プログラムを格納している。
【0020】
本発明によれば、請求項4乃至6に記載の発明と同様な作用を奏する。
【0041】
請求項18記載の発明は、請求項17記載の画像処理用プログラムにおいて、前記変倍処理機能によるウェーブレット係数に対する変倍処理は、指定された変倍率が縮小変倍率の場合には、ウェーブレット係数単位で縮小変倍率分に相当するウェーブレット係数の縮小処理である。
【0061】
【発明の実施の形態】
本発明の実施の一形態を図1ないし図22に基づいて説明する。
【0062】
[JPEG2000について概略説明]
まず、JPEG2000について概略説明する。
【0063】
図1は、JPEG2000アルゴリズムの基本を説明するための機能ブロック図である。図1に示すように、JPEG2000アルゴリズムは、色空間変換・逆変換部101、2次元ウェーブレット変換・逆変換部102、量子化・逆量子化部103、エントロピー符号化・復号化部104、タグ処理部105によって構成されている。以下、各部について説明する。
【0064】
色空間変換・逆変換部101及び2次元ウェーブレット変換・逆変換部102について図2及び図3を参照しながら説明する。
【0065】
図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毎に、独立して行なわれる。
【0066】
ここで、画像データの符号化時、各タイル112のデータは、図1に示す色空間変換・逆変換部101に入力され、色空間変換を施された後、2次元ウェーブレット変換・逆変換部102で2次元ウェーブレット変換(順変換)が適用されて周波数帯に空間分割される。
【0067】
図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サブバンドは符号化されない。
【0068】
次いで、量子化・逆量子化部103では、指定した符号化の順番で符号化の対象となるビットが定められた後、対象ビット周辺のビットからコンテキストが生成される。
【0069】
図4は、プリシンクトを例示する模式図である。量子化の処理が終わったウェーブレット係数は、個々のサブバンド毎に、「プリシンクト」と呼ばれる重複しない矩形に分割される。これは、インプリメンテーションでメモリを効率的に使うために導入されたものである。図4に示すように、一つのプリシンクトは、空間的に一致した3つの矩形領域からなっている。さらに、個々のプリシンクトは、重複しない矩形の「コードブロック」に分けられる。これは、エントロピーコーディングを行う際の基本単位となる。
【0070】
図5は、2次元ウェーブレット変換後の2次元ウェーブレット係数の値を「ビットプレーン」単位に分解し、画素或いはコードブロック毎に「ビットプレーン」に順位付けを行う処理の概要を示す模式図である。ウェーブレット変換後の係数値は、そのまま量子化し符号化することも可能であるが、JPEG2000では符号化効率を上げるために、係数値を「ビットプレーン」単位に分解し、画素或いはコードブロック毎に「ビットプレーン」に順位付けを行うことができる。図5には、その手順を簡単に示した。この例は、原画像(32×32画素)を16×16画素のタイル4つで分割した場合の例であり、デコンポジションレベル1のプリシンクトとコードブロックとの大きさは、各々8×8画素と4×4画素としている。プリシンクトとコードブロックの番号とは、ラスター順に付けられる。タイル境界外に対する画素拡張にはミラーリング法を使い、可逆(5,3)フィルタでウェーブレット変換を行い、デコンポジションレベル1のウェーブレット係数値を求めている。
【0071】
また、図5には、タイル0/プリシンクト3/コードブロック3について、代表的な「レイヤ」についての概念的な模式図も併せて示している。レイヤの構造は、ウェーブレット係数値を横方向(ビットプレーン方向)から見ると理解し易い。1つのレイヤは任意の数のビットプレーンから構成される。この例では、レイヤ0、1、2、3は、各々、1、3、1という3つのビットプレーンからなっている。そして、LSBに近いビットプレーンを含むレイヤ程、先に量子化の対象となり、逆に、MSBに近いレイヤは最後まで量子化されずに残ることになる。LSBに近いレイヤから破棄する方法はトランケーションと呼ばれ、量子化率を細かく制御することが可能である。
【0072】
次いで、エントロピー符号化・復号化部104について図6を参照しながら説明する。図6は、符号化された画像データのコードストリームを例示する模式図である。エントロピー符号化・復号化部104(図1参照)では、コンテキストと対象ビットとから、確率推定によって各コンポーネントRGBのタイル112に対する符号化を行う。こうして、原画像の全てのコンポーネントRGBについて、タイル112単位で符号化処理が行われる。
【0073】
次いで、タグ処理部105について説明する。タグ処理部105は、エントロピー符号化・復号化部104からの全符号化データを1本のコードストリームに結合するとともに、それにタグを付加する処理を行う。図6に、コードストリームの構造を簡単に示している。このようなコードストリームの先頭と各タイル112を構成する部分タイルの先頭には、ヘッダと呼ばれるタグ情報が付加され、その後に、各タイル112の符号化データが続く。そして、コードストリームの終端には、再びタグが置かれる。
【0074】
一方、復号化時には、符号化時とは逆に、各コンポーネントRGBの各タイル112のコードストリームから画像データを生成する。このような処理について、図1を用いて簡単に説明する。タグ処理部105は、外部より入力したコードストリームに付加されたタグ情報を解釈し、コードストリームを各コンポーネントRGBの各タイル112のコードストリームに分解し、その各コンポーネントRGBの各タイル112のコードストリーム毎に復号化処理を行う。この際、コードストリーム内のタグ情報に基づく順番で復号化の対象となるビットの位置が定められるとともに、量子化・逆量子化部103において、その対象ビット位置の周辺ビット(既に復号化を終えている)の並びからコンテキストを生成する。そして、エントロピー符号化・復号化部104では、そのコンテキストとコードストリームとから確率推定によって復号化を行なって対象ビットを生成し、それを対象ビットの位置に書き込む。このようにして復号化されたデータは、周波数帯域毎に空間分割されているため、これを2次元ウェーブレット変換・逆変換部102で2次元ウェーブレット逆変換を行うことにより、画像データ中の各コンポーネントRGBにおける各タイル112が復元される。復元されたデータは、色空間変換・逆変換部101によって元の表色系のデータに変換される。
【0075】
次に、JPEG2000の符号フォーマット例を説明する。図7はJPEG2000の符号フォーマットを示す概略図である。当該符号フォーマットは、符号データの始まりを示すSOC(Start of Codestream)マーカで始まり、その後に、符号化のパラメータや量子化のパラメータを記述したメインヘッダが続き、さらに、実際の符号データが続く構成である。実際の符号データは、SOT(Start of Tile-part)マーカで始まり、タイルヘッダ、SOD(Start of Data)マーカ、タイルデータ(符号)で構成される。これら画像全体に相当する符号データの後に、符号の終了を示すEOC(End of Codestream)マーカが付加される。
【0076】
図8に、メインヘッダの構成例を示す。メインヘッダは、COD,QCDなる必須マーカセグメントと、COC,QCC,RGN,POC,PPM,TLM,PLM,CRG,COMなるオプションマーカセグメントとにより構成されている。
【0077】
また、図9にタイルヘッダの構成例を示す。図9(a)は、タイルヘッダの先頭に付加されるマーカセグメント列を示し、COD,COC,QCD,QCC,RGN,POC,PPT,PLT,COMのマーカセグメント(全てオプション)が使用可能である。一方、図9(b)は、タイル内が複数に分割されている場合における分割されたタイル部分列の先頭に付加されるマーカセグメント列であり、POC,PPT,PLT,COMのマーカセグメント(全てオプション)が使用可能である。
【0078】
ここで、JPEG2000で使用されるマーカ及びマーカセグメントについて説明する。マーカは2バイト(先頭バイトが0xffで、続くバイトが0x01〜0xfe)で構成される。マーカ及びマーカセグメントは、以下に示す6種類に分類できる。
【0079】
▲1▼ フレーム区切り(delimiting)
▲2▼ 画像の位置、サイズ関係の情報(fixed information)
▲3▼ 符号化機能の情報(functional)
▲4▼ エラー耐性用(in bit stream)
▲5▼ ビットストリームのポインタ(pointer)
▲6▼ 補助的な情報(informational)
このうち、本発明に関係するマーカは▲1▼▲2▼である。その詳細について、以下に説明する。
【0080】
まず、Delimitingマーカ及びマーカセグメントについて説明する。Delimitingマーカ及びマーカセグメントは必須であり、SOC,SOT,SOD,EOCがある。符号開始マーカ(SOC)は符号列の先頭に付加される。タイル開始マーカ(SOT)は、タイル符号列の先頭に付加される。このSOTマーカセグメントの構成を図10に示す。当該マーカセグメントの大きさが記述されるLsot、タイル番号(0から始まるラスター順につけられた番号)が記述されるIsot、タイル長さが記述されるPsot、タイル部分番号が記述されるTPsot、タイル部分数が記述されるTNsotなる内容からなる。
【0081】
次に、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)なる内容により構成される。
【0082】
ここで、JPEG2000における画像エリア、タイルの位置関係について説明する。JPEG2000では、画像やタイルの位置は、図11に示したセグメント構成からも判るように、reference gridと称する座標軸を用いて表現される。画像は図12に示すように、reference grid上に、reference gridの左上を原点(0,0)として、原点と画像の左上との相対位置(XOsiz,YOsiz)で指定される。実際の画像エリアの大きさは、(Xsiz−XOsiz)×(Ysiz−YOsiz)で求められる。
【0083】
また、reference grid上に配置された画像は、符号化の際に、前述したように「タイル」と称する矩形領域に分割されて処理される。reference gridとタイルとの位置関係を図13に示す。タイルは単独で符号化、復号化できる必要があるため、タイル境界を越えての画素参照はできない。タイルの位置は、reference gridの原点と最初のタイルの左上との相対位置(XTOsiz,YTOsiz)で指定される。画像オフセット位置とタイルオフセット位置、タイルサイズは
0≦XTOsiz≦XOsiz
0≦YTOsiz≦YOsiz
XTsiz+XTOsiz>XOsiz
YTsiz+YTOsiz>YOsiz
なる関係がある。
【0084】
また、全体のタイル数は、
水平方向のタイル数=(Xsiz−XTOsiz)/XTsiz
垂直方向のタイル数=(Ysiz−YTOsiz)/YTsiz
なる関係式で示される。
【0085】
また、「画像」「タイル」「サブバンド」「プリシンクト」「コードブロック」の関係と、「パケット」と「レイヤ」の関係について図14を参照して整理する。
【0086】
まず、物理的な大きさの序列は、
画像 ≧ タイル > サブバンド ≧ プリシンクト ≧ コードブロック
である。
【0087】
「タイル」とは、画像を矩形に分割したものであり、分割数=1の場合、画像=タイルとなる。「プリシンクト」とは、サブバンドを矩形に分割したもの(をHL,LH,HHの3つのサブバンドについて集めたもの、プリシンクトは3つで1まとまりとなるが、ただし、LLサブバンドを分割したプリシンクトは1つで1まとまり)で、大まかには画像中の場所(Position)を表すものである。プリシンクトはサブバンドと同じサイズにできる。プリシンクトをさらに矩形に分割したものが「コードブロック」である。
【0088】
また、プリシンクトに含まれる全てのコードブロックから、符号の一部を取り出して集めたもの(例えば、全てのコードブロックの最上位ビットMSBから3枚目までのビットプレーンの符号を集めたもの)が「パケット」である。ここに、上述の“一部”は“空”でもいいので、パケットの中身が符号的には“空(から)”ということもある。全てのプリシンクト(=全てコードブロック=全てのサブバンド)のパケットを集めると、画像全域の符号の一部(例えば、画像全域のウェーブレット係数の、MSBから3枚目までのビットプレーンの符号)ができるが、これが「レイヤ」である。レイヤは、大まかには画像全体のビットプレーンの符号の一部であるから、復号されるレイヤ数が増えれば画質は上がる。レイヤはいわば画質の単位である。
【0089】
従って、全てのレイヤを集めると、画像全域の全てのビットプレーンの符号になる。
【0090】
[画像処理装置の構成例]
本実施の形態では、このようなJPEG2000が有する特徴を最大限活用することで、対象となる画像に関して、極力画像データに復号させることなく、圧縮符号化された符号データのままでその変倍処理による画像サイズの変更を可能にするものである。
【0091】
本実施の形態の画像処理装置は、その一例として、例えば図15に示すようなコンピュータ1において実現される。図15は、当該コンピュータ1のハードウェア構成を概略的に示すブロック図である。図15に示すように、当該コンピュータ1は、情報処理を行うCPU(Central Processing Unit)6、情報を格納するROM(Read Only Memory)7及びRAM(Random Access Memory)8等の1次記憶装置、インタネット、その他のネットワーク5を介して外部からダウンロードした圧縮符号を記憶するHDD(Hard Disk Drive)10、情報を保管したり外部に情報を配布したり外部から情報を入手するためのCD−ROMドライブ12、ネットワーク5を介して外部の他のコンピュータ等と通信により情報を伝達するための通信制御装置13、処理経過や結果等を操作者に表示するCRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)等の表示装置15、並びに操作者がCPU6に命令や情報等を入力するためのキーボードやマウス等の入力装置14等から構成されており、これらの各部間で送受信されるデータをバスコントローラ9が調停して動作する。
【0092】
RAM8は、各種データを書換え可能に記憶する性質を有していることから、CPU6の作業エリアとして機能する。
【0093】
このようなコンピュータ1では、ユーザが電源を投入するとCPU6がROM7内のローダーというプログラムを起動させ、HDD10よりオペレーティングシステムというコンピュータのハードウェアとソフトウェアとを管理するプログラムをRAM8に読込み、このオペレーティングシステムを起動させる。このようなオペレーティングシステムは、ユーザの操作に応じてプログラムを起動したり、情報を読込んだり、保存を行ったりする。オペレーティングシステムのうち代表的なものとしては、Windows(登録商標)、UNIX(登録商標)等が知られている。これらのオペレーティングシステム上で走る動作プログラムをアプリケーションプログラムと呼んでいる。
【0094】
ここで、画像処理装置1は、アプリケーションプログラムとして、画像処理用プログラムをHDD10に記憶している。この意味で、HDD10は、画像処理用理プログラムを記憶する記憶媒体として機能する。
【0095】
また、一般的には、コンピュータ1のHDD10にインストールされる動作プログラムは、CD−ROM11やDVD−ROM等の光情報記録メディアやFD等の磁気メディア等に記録され、この記録された動作プログラムがHDD10にインストールされる。このため、CD−ROM11等の光情報記録メディアやFD等の磁気メディア等の可搬性を有する記憶媒体も、画像処理プログラムを記憶する記憶媒体となり得る。さらには、画像処理プログラムは、例えば通信制御装置13を介して外部から取込まれ、HDD10にインストールされても良い。
【0096】
また、前述の画像処理用プログラム中には、前述したようなJPEG2000フォーマットの圧縮伸長用のプログラムも含まれており、画像データを2次元ウェーブレット変換、量子化及び符号化という手順で符号データに圧縮符号化するJPEG2000フォーマットの符号化手段と、圧縮符号化された符号データを復号化、逆量子化及び2次元ウェーブレット逆変換という逆の手順で伸長するJPEG2000フォーマットの復号化手段と、の機能も有している。
【0097】
[変倍処理の概略]
本実施の形態では、このようなコンピュータ1において、図16に概略的に示すように、例えばJPEG2000アルゴリズムにより圧縮変換された処理対象となる符号データ(原符号)を必要な場所(例えば、外部)から一旦HDD10に取り込み(ステップS1)、入力装置14の操作によるその画像に対する変倍モードの指定、変倍率の指定、及び、処理するブロック単位の指定を受付け(S2)、これらの指定に従い処理対象となる符号データに対してRAM8の作業エリア上で指定されたブロック単位で指定された変倍率の変倍処理を行い(S3)、変倍処理後の符号データを対象物に出力(例えば、HDD10にセーブ、或いは、表示装置15に対して出力させる、或いは、インタネット等のネットワーク5を通じて外部機器に対して出力)させる(S4)ことにより、情報処理装置の機能が実現される。なお、ステップS3で変倍処理を受けた符号データは、最終的に必要とされる符号順序(コードストリーム)に並べ替えられて出力される。
【0098】
ここに、ステップS2により倍率受付手段又は倍率受付機能が実現され、ステップS3により変倍処理手段又は倍率受付機能が実現される。もっとも、画像処理装置を構成する上では、コンピュータ1に依らず、画像処理装置として単独機構成としてもよい。
【0099】
即ち、JPEG2000によれば、その処理単位が任意の大きさの“ブロック”(一般には、矩形)であるため、その符号データがウェーブレット変換/逆変換においてその係数の値に影響を及ぼさないように他のブロックの情報と関連付けられていなければ、即ち、独立して処理可能なブロック単位(例えば、タイル単位)であれば、独立して復号可能である、という特徴を有するので、独立して処理可能なこのようなブロック単位(例えば、タイル単位)で指定された変倍率の変倍処理を施すことより(S3)、基本的には画像データに復号させることなく符号データのままの変倍処理で画像サイズの変更が可能となり、従来の復号→画像変倍→再符号化というプロセスに対して変倍処理のプロセスのみで済み、よって、極力少ない作業メモリの使用で極力高速処理が可能となる。
【0100】
[変倍処理例1]
ここで、ステップS3の具体的な処理例を変倍処理例1として図17を参照して説明する。まず、ステップS2で指定された変倍率が1/Mの如く縮小変倍率である場合(S11のY)、対象となる符号データを有するN個のブロックを順にアクセスすることとなるが、その変数iを0に初期化する(S12)。引き続き、i=i+1で示される注目するブロック単位について変倍処理用の変数kとして変倍率1/Mに対応したMをセットする(k=M)(S14)。そして、いまアクセスしているブロック単位の変数kが1であるか否かを判断し(S15)、k=1でなければ(S15のN)、いまアクセスしているブロック単位(該当ブロック)の符号データを削除(即ち、該当ブロック自体を削除)する(S16)。そして、変数iを1ずつインクリメントし,変数kを1ずつデクリメントし(S17)、再度、アクセスしているブロック単位の変数kが1であるか否かを判断する(S15)。(M−1)回分のブロック削除処理(S16)が終了すると、k=1となるので(S15のY)、このときにはいまアクセスしているブロック単位(該当ブロック)の符号データを削除する処理を行うことなく(符号データをそのままとして)、アクセスブロック数iがNに達したかをチェックの上(S13)、Nに達していなければ(S13のN)、上述の(M−1)個分のブロックの間引きによる削除処理を同様に繰返し、全てのブロックをアクセスする(S13のY)ことにより、ステップS4の処理に移行する。
【0101】
一方、ステップS2で指定された変倍率がM倍の如く拡大変倍率である場合(S11のN)、対象となる符号データを有するN個のブロックを順にアクセスすることとなるが、その変数iを0に初期化する(S21)。引き続き、i=i+1で示される注目するブロック単位について変倍処理用の変数kとして変倍率1/Mに対応したMをセットする(k=M)(S23)。そして、いまアクセスしているブロック単位の変数kが1であるか否かを判断し(S24)、k=1でなければ(S24のN)、いまアクセスしているブロック単位(該当ブロック)の符号データを複写(即ち、該当ブロック自体を複写により追加)する(S25)。そして、変数kを1ずつデクリメントし(S26)、再度、アクセスしているブロック単位の変数kが1であるか否かを判断する(S24)。(M−1)回分のブロック追加処理(S25)が終了すると、k=1となるので(S24のY)、このときにはいまアクセスしているブロック単位(該当ブロック)の符号データに対しては何もせず(符号データをそのままとして)、アクセスブロック数iがNに達したかをチェックの上(S22)、Nに達していなければ(S22のN)、上述の(M−1)個分のブロックの複写による追加処理を同様に繰返し、全てのブロックをアクセスする(S22のY)ことにより、ステップS4の処理に移行する。
【0102】
この処理例では、ブロック単位が1次元配列の場合の処理例として示したが、ブロック単位が2次元配列の場合も基本的には同様であり、両方向に削除、追加等の処理を行えばよい。
【0103】
いま、具体例の一つとして、ブロック単位をタイル単位(その内容について記述されているヘッダ情報を含む)とし、変倍率が1/M=1/3なる縮小変倍率に指定されている場合の処理例を図18に示す。即ち、変倍前の符号データがTA01〜TA36で示す36個のタイルからなるとすると、タイルのアクセス動作において3個について2個のタイルを縦横に間引きにより削除することにより、タイルTA01,TA04,TA19,TA22で示すような4個のタイルの符号データのみが残る1/3にサイズ縮小された変倍後の状態が符号状態のままで得られる。
【0104】
また、具体例の他の一つとして、同じく、ブロック単位をタイル単位(その内容について記述されているヘッダ情報を含む)とし、変倍率がM=3なる拡大変倍率に指定されている場合の処理例を図19に示す。即ち、変倍前の符号データがTA01〜TA04で示す4個のタイルからなるとすると、タイルのアクセス動作において1個について2個のタイルを縦横に複写により追加することにより、36個のタイルの符号データを有する3倍にサイズ拡大された変倍後の状態が符号状態のままで得られる。
【0105】
なお、これらの処理例では、処理可能なブロック単位を、ヘッダ情報を有するタイル単位の例で説明したが、JPEG2000によれば、独立して処理可能なブロック単位として、前述したようなコードブロック(Code Block)、コードブロックの集合(プリシンクト)が存在するものであり、タイル単位の処理に代えて、プリシンクト単位やコードブロック単位で上述した変倍処理(削除、追加処理)を行わせるようにしてもよい。このようにブロック単位の削除や追加により画像サイズの変更が可能であるが、この際、処理するブロック単位としては、矩形で小領域であることが望ましい。
【0106】
[変倍処理例2]
この処理例では、符号データのままでの変倍処理に代えて、ウェーブレット係数を用いて変倍処理を行わせるようにしたものである。前述したように、独立して処理可能なブロック単位で変倍処理を行うわけであるが、そのブロックサイズが大きい場合には、上述したようなブロックの削除や追加による変倍処理では画質上に問題を生じてしまうケースもあり得るので、ウェーブレット係数まで復元し(画像データまでは復元しない)、そのウェーブレット係数単位で変倍処理を行わせる例である。
【0107】
図19にこの処理例の場合のステップS3に相当する変倍処理例の概略フローチャートを示す。概略的には、対象となる符号データをJPEG2000フォーマットの復号化手段により復号することにより、ブロック単位のウェーブレット係数を復元する(S31)。そして、復元された各ブロック単位に含まれるウェーブレット係数に関してウェーブレット係数単位で指定された変倍率分の変倍処理を施し(S32)、変倍処理後のウェーブレット係数をJPEG2000フォーマットの符号化手段により符号データに再符号化し(S33)、ステップS4の処理に移行する。
【0108】
この場合のウェーブレット係数単位での変倍処理としては、各種の形態を採り得る。例えば、指定された変倍率が縮小変倍率の場合には、ウェーブレット係数単位で縮小変倍率分に相当するウェーブレット係数の縮小処理を行うが、その一例として、縮小変倍率分に相当するブロック単位についてのウェーブレット係数の値自体を変更(増減)させる処理であってもよく、他の一例として、ブロック単位内に含まれるウェーブレット係数の数を変更(削除又は追加)させる処理であってもよい。また、指定された変倍率が拡大変倍率の場合も同様であり、ウェーブレット係数単位で拡大変倍率分に相当するウェーブレット係数の拡大処理を行うが、その一例として、拡大変倍率分に相当するウェーブレット係数の値自体を変更(増減)させる処理であってもよく、他の一例として、ブロック単位内に含まれるウェーブレット係数の数を変更(削除又は追加)させる処理であってもよい。
【0109】
いま、具体例の一つとして、ブロック単位をタイル単位とし、変倍率が1/M=1/2なる縮小変倍率に指定されている場合の処理例を図21に示す。即ち、変倍前の符号データがTA01〜TA16で示す16個のタイルからなり、変倍後の符号データとしてTB01〜TB04で示す4個のタイルの状態に縮小変倍する場合を想定した例である。この場合、例えばステップS31による処理によりタイルTA03,TA04,TA07,TA08について符号データ(Code)に対応するウェーブレット係数(Wavelet係数)を得る。そして、ステップS32の処理によりこれらの4タイル分のウェーブレット係数(Wavelet係数)に関して指定された変倍率1/2分の変倍処理をウェーブレット係数のままで行い、新たな1つのタイルTB02用の新たなウェーブレット係数(Wavelet係数)を得る。特に図示しないが、タイルTA01,TA02,TA05,TA06の組、タイルTA09,TA10,TA13,TA14の組、タイルTA11,TA12,TA15,TA16の組についても同様である。そして、得られた新たな4つのタイルTB01〜TB04分のウェーブレット係数(Wavelet係数)に関して、ステップS33の処理により符号データ(Code)に再符号化し、タグ処理によりコードストリーム化することにより、図21中の最下欄に示すように縦横に1/2にサイズ縮小された符号データが得られる。
【0110】
このように、符号データのままでの変倍処理とはせずに、ウェーブレット係数まで復元させたデータを用いる変倍処理とすることで、例えば具体的な変倍処理として、デコンポジションレベルの選択による解像度変更により実質的にサイズ変更が可能である等の、ウェーブレット係数の特徴を活かした、より柔軟な変倍処理が可能となる上に、復号処理を経るものの、画像データまでは復元させていないので、従来に比して、少ない作業メモリの使用で高速処理が可能となる。
【0111】
【発明の効果】
発明によれば、JPEG2000は、その処理単位が任意の大きさの“ブロック”(一般には、矩形)であるため、その符号データがウェーブレット変換/逆変換においてその係数の値に影響を及ぼさないように他のブロックの情報と関連付けられていなければ、即ち、独立して復号可能であるタイル、又は、プリシンクト、又は、コードブロック単位であれば、独立して復号可能である、という特徴を最大限利用し、独立して復号可能であるタイル、又は、プリシンクト、又は、コードブロック単位で、指定された変倍率の変倍処理を施すことより、基本的には画像データに復号させることなく符号データのままの変倍処理で画像サイズの変更が可能となり、従来の復号→画像変倍→再符号化というプロセスに対して変倍処理のプロセスのみで済ませることができ、よって、極力少ない作業メモリの使用で極力高速で処理を行わせることができる。
【0112】
また、本発明によれば、符号データのままでの変倍処理の一例として、指定された縮小変倍率分に基づいて、符号データの状態で、タイル、又は、プリシンクト、又は、コードブロック単位で符号データを間引くことにより、縮小変倍を簡単に行える。
【0113】
さらに、本発明によれば、符号データのままでの変倍処理の一例として、指定された拡大変倍率に基づいて、符号データの状態で、タイル、又は、プリシンクト、又は、コードブロック単位で符号データを複写することにより、拡大変倍を簡単に行える。
【0114】
請求項7記載の発明のコンピュータ読取り可能な記憶媒体によれば、請求項4ないし6に記載の発明と同様な効果を奏する。
【図面の簡単な説明】
【図1】本発明の実施の形態の前提となるJPEG2000方式の基本となるアルゴリズムを実現するシステムの機能ブロック図である。
【図2】原画像の各コンポーネントの分割された矩形領域を示す説明図である。
【図3】デコンポジションレベル数が3の場合の、各デコンポジションレベルにおけるサブバンドを示す説明図である。
【図4】プリシンクトを示す説明図である。
【図5】ビットプレーンに順位付けする手順の一例を示す説明図である。である。
【図6】符号化された画像データのコードストリームを例示する模式図である。
【図7】 JPEG2000の符号フォーマットを示す概略図である。
【図8】そのメインヘッダの構成図である。
【図9】タイルヘッダの構成図である。
【図10】SOTマーカセグメントの構成図である。
【図11】SIZマーカセグメントの構成図である。
【図12】画像の位置関係を示す説明図である。
【図13】 Reference gridとタイルとの位置関係を示す説明図である。
【図14】画像、タイル、サブバンド、プリシンクト、コードブロックの関係を示す説明図である。
【図15】本実施の形態の画像処理装置を実現するためのコンピュータ構成例を示すブロック図である。
【図16】その変倍処理を示す概略フローチャートである。
【図17】変倍処理例1の処理を示す概略フローチャートである。
【図18】その具体的な縮小処理例を示す模式図である。
【図19】その具体的な拡大処理例を示す模式図である。
【図20】変倍処理例2の処理を示す概略フローチャートである。
【図21】その具体的な縮小処理例を示す模式図である。
【符号の説明】
S2 倍率受付手段、倍率受付機能
S3 変倍処理手段、変倍処理機能
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image processing apparatus such as a computer that handles image data, an image processing program, and a storage medium.
[0002]
[Prior art]
It is inevitable that the demand for high-performance or multi-functional image compression / decompression technology that facilitates the handling of high-definition still images will become stronger in the future. Currently, JPEG (Joint Photographic Experts Group) is the most widely used image compression / decompression algorithm that facilitates handling of such high-definition still images. In recent years, the use of DWT (Discrete Wavelet Transform) is increasing as a frequency transform in place of DCT (Discrete Cosine Transform) employed in JPEG. A typical example is JPEG2000, the JPEG successor image compression / decompression method that became an international standard in 2001.
[0003]
By the way, there are various usage forms of image data compression-encoded by JPEG2000 or the like. As an example, for example, image data provided from a provider of an image file via the Internet or captured and input by a digital camera or the like is scaled (reduced or enlarged) to a desired image size on a personal computer. You may want to
[0004]
[Problems to be solved by the invention]
However, in general, when scaling the encoded image data (code data), the decoding process is temporarily performed to restore the original image data state, and then the necessary scaling is performed in the state of the image data. Processing (for example, thinning processing and interpolation processing after bitmap development) is performed, and the encoded image data is generated again by encoding the image data that has already been subjected to scaling.
[0005]
However, in such a scaling process, code data as a scaling result is obtained through a process of decoding, image scaling, and re-encoding of code data for a target image. There is a problem that it takes. In addition, since the image is restored from the code data, a working memory for handling the restored image data is required. In particular, when the code data over the entire page is returned to the image data, an extra memory is required for the work area so that a page memory is required.
[0006]
An object of the present invention is to enable high-speed processing as much as possible by using as little work memory as possible when performing image scaling on data compressed and encoded in the JPEG2000 format.
[0007]
[Means for Solving the Problems]
  The image processing apparatus according to the first aspect of the present invention includes a magnification accepting unit that accepts designation of a scaling factor, and code data that is compression-encoded as JPEG2000 format as image dataAgainstDecryptable independentlyAnd a scaling processing function for performing scaling processing of a specified scaling factor in units of code, precinct, or code block, and the scaling processing means is provided when the specified scaling factor is a reduction scaling factor. Is characterized in that the deletion process is performed by thinning out the code data in units of tiles, precincts, or code blocks based on the specified reduction scaling factor in the state of the code data.
[0008]
  Therefore, according to JPEG2000, the processing unit is a “block” (generally a rectangle) having an arbitrary size, so that the code data does not affect the coefficient value in wavelet transform / inverse transform. If it is not associated with the information of other blocks, that is, if it is a block unit that can be processed independently, it has the feature that it can be decoded independently, so it can be decoded independentlyAre tiles, precincts, or code block unitsBy applying the scaling process specified for the code data as is to the code data, basically the image size can be changed with the code data as it is without decoding the image data. Therefore, only the scaling process is required for the conventional process of decoding → image scaling → recoding, and therefore, high-speed processing is possible as much as possible by using as little work memory as possible.
[0010]
  Also,As an example of scaling processing with the code data as it is, scaling scaling can be easily performed by thinning out the code data in units of tiles, precincts, or code blocks based on the specified reduction scaling factor. .
[0011]
  Claim2The described inventionA scaling factor accepting unit that accepts designation of scaling factors, and tiles, precincts, or code blocks specified in units of code blocks that can be decoded independently of code data compressed and encoded in JPEG 2000 format as image data. It has a magnification processing function that performs magnification processing of magnification,The scaling processing means, when the specified scaling ratio is an enlargement scaling ratio,Copy the code data in tile, precinct, or code block units based on the specified magnification ratio in the code data state.Additional processing.
[0012]
  Therefore, as an example of the scaling process with the code data as it is, in the case of enlargement scaling,Based on the specified enlargement / reduction ratio, enlargement / reduction can be performed by copying the code data in units of tiles, precincts, or code blocks.Easy to do.
[0013]
  Claim 3The image processing program ofMagnification accepting function that accepts designation of variable magnification and code data compressed and encoded in JPEG2000 format as image dataAgainstDecryptable independentlyA scaling process function that performs a scaling process of a specified scaling ratio in units of tiles, precincts, or code blocks, and the scaling process function has a specified scaling ratio of a reduced scaling ratio. In this case, in the state of the code data, the deletion process is performed by thinning out the code data in units of tiles, precincts, or code blocks based on the specified reduction scaling factor.It is characterized by
[0014]
  Therefore, according to JPEG2000, the processing unit is a “block” (generally a rectangle) having an arbitrary size, so that the code data does not affect the coefficient value in wavelet transform / inverse transform. If it is not associated with the information of other blocks, that is, if it is a block unit that can be processed independently, it has the feature that it can be decoded independently, so it can be decoded independentlySpecified tiles, precincts, or code blocksBy performing the scaling process, basically the image size can be changed by scaling the code data without decoding it into the image data, and the conventional process of decoding → image scaling → re-encoding is performed. On the other hand, only the scaling process is required, and therefore high-speed processing is possible as much as possible by using as little work memory as possible.
[0016]
  Also,As an example of the scaling process with the code data as it is, as an example of the scaling process with the code data as it is, the code data in units of tiles, precincts, or code blocks based on the specified reduction scaling factor By thinning out, zooming can be easily performed.
[0017]
  Claim 4The image processing program includes a magnification reception function that accepts designation of a scaling factor, and tiles, precincts, or codes that can be independently decoded with respect to code data that has been compression-encoded as JPEG2000 format as image data. It has a scaling process function that performs a scaling process at a specified scaling ratio in block units,If the specified zoom ratio is the zoom ratio, the scaling function is based on the zoom ratio specified.TIll, or,Recinct, or,Additional processing is performed by copying the code data in units of code blocks.
[0018]
  Accordingly, as an example of the scaling process with the code data as it is, as an example of the scaling process with the code data as it is,Based on the specified enlargement / reduction ratio, enlargement / reduction can be performed by copying the code data in units of tiles, precincts, or code blocks.Easy to do.
[0019]
A computer-readable storage medium according to a seventh aspect stores the image processing program according to any one of the fourth to sixth aspects.
[0020]
  According to the present invention, the same effect as in the fourth to sixth aspects of the invention can be achieved.
[0041]
According to an eighteenth aspect of the present invention, in the image processing program according to the seventeenth aspect, the scaling process for the wavelet coefficient by the scaling processing function is performed when the designated scaling factor is a reduction scaling factor. The reduction process of the wavelet coefficient corresponding to the reduction scaling factor.
[0061]
DETAILED DESCRIPTION OF THE INVENTION
An embodiment of the present invention will be described with reference to FIGS.
[0062]
[Outline of JPEG2000]
First, JPEG2000 will be outlined.
[0063]
FIG. 1 is a functional block diagram for explaining the basics of the JPEG2000 algorithm. As shown in FIG. 1, the JPEG2000 algorithm includes a color space transform / inverse transform unit 101, a two-dimensional wavelet transform / inverse transform unit 102, a quantization / inverse quantization unit 103, an entropy encoding / decoding unit 104, a tag process The unit 105 is configured. Hereinafter, each part will be described.
[0064]
The color space transform / inverse transform unit 101 and the two-dimensional wavelet transform / inverse transform unit 102 will be described with reference to FIGS.
[0065]
FIG. 2 is a schematic diagram illustrating an example of each component obtained by dividing an original image that is a color image. In a color image, generally, as shown in FIG. 2, each component R, G, B (111) of the original image is separated by, for example, an RGB primary color system. Each component R, G, B of the original image is further divided by a tile 112, which is a rectangular area. Each tile 112, for example, R00, R01,..., R15 / G00, G01,..., G15 / B00, B01, ..., B15 constitutes a basic unit for executing the compression / decompression process. Therefore, the compression / decompression operation is performed independently for each of the components R, G, and B (111) and for each tile 112.
[0066]
Here, at the time of encoding image data, the data of each tile 112 is input to the color space conversion / inverse conversion unit 101 shown in FIG. 1 and subjected to color space conversion, and then the two-dimensional wavelet conversion / inverse conversion unit. At 102, a two-dimensional wavelet transform (forward transform) is applied to divide the space into frequency bands.
[0067]
FIG. 3 is a schematic diagram showing subbands at each decomposition level when the number of decomposition levels is three. The two-dimensional wavelet transform / inverse transform unit 102 performs the two-dimensional wavelet transform on the tile original image (0LL) (decomposition level 0) obtained by the tile division of the original image, and displays the sub-level shown in the decomposition level 1 Separate the bands (1LL, 1HL, 1LH, 1HH). Then, the two-dimensional wavelet transform / inverse transform unit 102 continues to perform the two-dimensional wavelet transform on the low-frequency component 1LL in this hierarchy, and displays subbands (2LL, 2HL, 2LH, 2HH) indicated by the decomposition level 2 Isolate. Similarly, the two-dimensional wavelet transform / inverse transform unit 102 sequentially performs the two-dimensional wavelet transform on the low frequency component 2LL to separate the subbands (3LL, 3HL, 3LH, 3HH) indicated by the decomposition level 3. To do. In FIG. 3, the subbands to be encoded at each decomposition level are shown in gray. For example, when the number of decomposition levels is 3, the subbands shown in gray (3HL, 3LH, 3HH, 2HL, 2LH, 2HH, 1HL, 1LH, 1HH) are to be encoded, and the 3LL subband is not encoded. .
[0068]
Next, after the quantization / inverse quantization unit 103 determines the bits to be encoded in the designated encoding order, a context is generated from the bits around the target bits.
[0069]
FIG. 4 is a schematic diagram illustrating a precinct. The wavelet coefficients that have undergone the quantization process are divided into non-overlapping rectangles called “precincts” for each subband. This was introduced to use memory efficiently in implementation. As shown in FIG. 4, one precinct consists of three rectangular regions that are spatially matched. Furthermore, each precinct is divided into rectangular “code blocks” that do not overlap. This is a basic unit for entropy coding.
[0070]
FIG. 5 is a schematic diagram showing an outline of processing for decomposing the value of the two-dimensional wavelet coefficient after the two-dimensional wavelet transform into “bit plane” units and ranking the “bit plane” for each pixel or code block. . The coefficient value after wavelet transform can be quantized and encoded as it is, but in JPEG2000, in order to increase the encoding efficiency, the coefficient value is decomposed into “bit plane” units, and “ Ranking can be performed on "bit planes". FIG. 5 simply shows the procedure. In this example, the original image (32 × 32 pixels) is divided into four 16 × 16 pixel tiles, and the size of the precinct and code block at the decomposition level 1 is 8 × 8 pixels each. And 4 × 4 pixels. Precincts and code block numbers are assigned in raster order. A mirroring method is used for pixel expansion outside the tile boundary, wavelet transform is performed with a reversible (5, 3) filter, and a wavelet coefficient value of decomposition level 1 is obtained.
[0071]
FIG. 5 also shows a conceptual schematic diagram of a typical “layer” for tile 0 / precinct 3 / code block 3. The layer structure is easy to understand when the wavelet coefficient values are viewed from the horizontal direction (bit plane direction). One layer is composed of an arbitrary number of bit planes. In this example, layers 0, 1, 2, and 3 are made up of three bit planes of 1, 3, and 1, respectively. A layer including a bit plane closer to the LSB is subject to quantization first, and conversely, a layer close to the MSB remains unquantized until the end. A method of discarding from a layer close to the LSB is called truncation, and the quantization rate can be finely controlled.
[0072]
Next, the entropy encoding / decoding unit 104 will be described with reference to FIG. FIG. 6 is a schematic diagram illustrating a code stream of encoded image data. The entropy encoding / decoding unit 104 (see FIG. 1) performs encoding on the tile 112 of each component RGB by probability estimation from the context and the target bit. In this way, encoding processing is performed in units of tiles 112 for all component RGB of the original image.
[0073]
Next, the tag processing unit 105 will be described. The tag processing unit 105 performs processing for combining all encoded data from the entropy encoding / decoding unit 104 into one code stream and adding a tag thereto. FIG. 6 simply shows the structure of the code stream. Tag information called a header is added to the head of such a code stream and the head of the partial tiles constituting each tile 112, and the encoded data of each tile 112 follows. A tag is placed again at the end of the code stream.
[0074]
On the other hand, at the time of decoding, contrary to the encoding, image data is generated from the code stream of each tile 112 of each component RGB. Such processing will be briefly described with reference to FIG. The tag processing unit 105 interprets tag information added to the code stream input from the outside, decomposes the code stream into code streams of each tile 112 of each component RGB, and code streams of each tile 112 of each component RGB Decryption processing is performed every time. At this time, the positions of the bits to be decoded are determined in the order based on the tag information in the codestream, and the quantization / inverse quantization unit 103 determines the peripheral bits of the target bit positions (decoding has already been completed). )) To generate a context. Then, the entropy encoding / decoding unit 104 performs decoding by probability estimation from the context and the code stream, generates a target bit, and writes it in the position of the target bit. Since the data decoded in this way is spatially divided for each frequency band, the two-dimensional wavelet transform / inverse transform unit 102 performs two-dimensional wavelet inverse transform on each component in the image data. Each tile 112 in RGB is restored. The restored data is converted into original color system data by the color space conversion / inverse conversion unit 101.
[0075]
Next, an example of a JPEG2000 code format will be described. FIG. 7 is a schematic diagram showing a JPEG2000 code format. The code format starts with an SOC (Start of Codestream) marker indicating the start of code data, followed by a main header describing coding parameters and quantization parameters, and further followed by actual code data. It is. The actual code data starts with an SOT (Start of Tile-part) marker and is composed of a tile header, an SOD (Start of Data) marker, and tile data (code). After the code data corresponding to the entire image, an EOC (End of Codestream) marker indicating the end of the code is added.
[0076]
FIG. 8 shows a configuration example of the main header. The main header is composed of COD, QCD essential marker segments and COC, QCC, RGN, POC, PPM, TLM, PLM, CRG, COM optional marker segments.
[0077]
FIG. 9 shows a configuration example of the tile header. FIG. 9A shows a marker segment sequence added to the head of the tile header. COD, COC, QCD, QCC, RGN, POC, PPT, PLT, COM marker segments (all options) can be used. . On the other hand, FIG. 9B is a marker segment sequence added to the head of the divided tile partial sequence when the inside of the tile is divided into a plurality of marker segments (POC, PPT, PLT, COM). Option) is available.
[0078]
Here, the markers and marker segments used in JPEG2000 will be described. The marker is composed of 2 bytes (the first byte is 0xff and the subsequent bytes are 0x01 to 0xfe). Markers and marker segments can be classified into the following six types.
[0079]
▲ 1 ▼ frame delimiting
(2) Information related to image position and size (fixed information)
(3) Coding function information (functional)
▲ 4 ▼ For error tolerance (in bit stream)
(5) Bitstream pointer
▲ 6 ▼ Auxiliary information (informational)
Among these, the markers related to the present invention are (1) and (2). Details thereof will be described below.
[0080]
First, the Delimiting marker and marker segment will be described. Delimiting markers and marker segments are essential and include SOC, SOT, SOD, and EOC. A code start marker (SOC) is added to the head of the code string. The tile start marker (SOT) is added to the head of the tile code string. The configuration of this SOT marker segment is shown in FIG. Lsot that describes the size of the marker segment, Isot that describes the tile number (number given in raster order starting from 0), Psot that describes the tile length, TPsot that describes the tile part number, and tile It consists of the contents of TNsot where the number of parts is described.
[0081]
Next, the Fixed information marker segment will be described. This is a marker that describes information about an image, and corresponds to an SIZ marker. The SIZ marker segment is added immediately after the SOC marker. The marker segment length depends on the number of components. The configuration of this SIZ marker segment is shown in FIG. Lsiz describing the size of the marker segment, Rsiz describing code string compatibility (fixed to 0, non-zero reserved), Xsiz describing the horizontal size of the reference grid, vertical size of the reference grid Ysiz in which X is described, XOsiz in which the horizontal offset position of the image from the reference grid origin is described, YOsiz in which the vertical offset position of the image from the reference grid origin is described, and XTsiz in which the horizontal size of the tile is described YTsiz that describes the vertical size of the tile, XTOsiz that describes the horizontal offset position of the tile from the reference grid origin, YTOsiz that describes the vertical offset position of the tile from the reference grid origin, and the number of components Csiz, (i) Ssiz (i), (i) in which the number of bits and the number of sign bits in the component are described XRsiz number horizontal samples in the eye of the components are described (i), constituted by the contents made YRsiz (i) the vertical number of samples are described in (i) th component.
[0082]
Here, the positional relationship between image areas and tiles in JPEG 2000 will be described. In JPEG2000, the positions of images and tiles are expressed using coordinate axes called reference grids as can be seen from the segment configuration shown in FIG. As shown in FIG. 12, the image is designated on the reference grid by the relative position (XOsiz, YOsiz) between the origin and the upper left of the image, with the upper left of the reference grid being the origin (0, 0). The actual size of the image area is obtained by (Xsiz−XOsiz) × (Ysiz−YOsiz).
[0083]
In addition, the image arranged on the reference grid is divided into rectangular regions called “tiles” and processed as described above at the time of encoding. The positional relationship between the reference grid and the tile is shown in FIG. Since a tile needs to be able to encode and decode independently, pixel reference beyond the tile boundary is not possible. The position of the tile is specified by a relative position (XTOsiz, YTOsiz) between the origin of the reference grid and the upper left of the first tile. The image offset position, tile offset position, and tile size are
0 ≦ XTOsiz ≦ XOsiz
0 ≦ YTOsiz ≦ YOsiz
XTsiz + XTOsiz> XOsiz
YTsiz + YTOsiz> YOsiz
There is a relationship.
[0084]
The total number of tiles is
Number of tiles in the horizontal direction = (Xsiz−XTOsiz) / XTsiz
Number of tiles in the vertical direction = (Ysiz−YTOsiz) / YTsiz
It is shown by the relational expression
[0085]
Further, the relationship between “image”, “tile”, “subband”, “precinct”, and “code block”, and the relationship between “packet” and “layer” are organized with reference to FIG.
[0086]
First, the order of physical size is
Image> Tile> Subband> Precinct> Code block
It is.
[0087]
The “tile” is an image divided into rectangles. When the number of divisions = 1, the image = tile. “Precinct” is a subband divided into rectangles (collected for three subbands of HL, LH, and HH. Three precincts are grouped into one, but the LL subband is divided. One precinct is a unit), and roughly represents a position in the image. The precinct can be the same size as the subband. A code block is obtained by further dividing the precinct into rectangles.
[0088]
Also, a collection of a part of the code extracted from all code blocks included in the precinct (for example, a collection of codes from the most significant bit MSB to the third bit plane of all code blocks) It is a “packet”. Here, since the “part” described above may be “empty”, the content of the packet may be “empty” in terms of code. When packets of all precincts (= all code blocks = all subbands) are collected, a part of the code of the entire image (for example, the code of the wave plane coefficients of the entire image from the MSB to the third bit plane) is obtained. This is possible, but this is a “layer”. Since the layer is roughly a part of the code of the bit plane of the entire image, the image quality increases as the number of layers to be decoded increases. A layer is a unit of image quality.
[0089]
Therefore, when all the layers are collected, all the bit plane codes of the entire image are obtained.
[0090]
[Configuration example of image processing apparatus]
In the present embodiment, by utilizing the features of JPEG2000 as much as possible, the scaling process is performed on the target image as it is without being decoded into the image data as much as possible without changing the code data. This makes it possible to change the image size.
[0091]
As an example, the image processing apparatus according to the present embodiment is realized in a computer 1 as shown in FIG. FIG. 15 is a block diagram schematically showing the hardware configuration of the computer 1. As shown in FIG. 15, the computer 1 includes a CPU (Central Processing Unit) 6 that performs information processing, a ROM (Read Only Memory) 7 that stores information, and a RAM (Random Access Memory) 8 and other primary storage devices, HDD (Hard Disk Drive) 10 for storing compressed codes downloaded from the outside via the Internet or other network 5, a CD-ROM drive for storing information, distributing information to the outside, or obtaining information from the outside 12. Communication control device 13 for transmitting information by communication with other external computers via the network 5, CRT (Cathode Ray Tube) or LCD (Liquid Crystal Display) for displaying processing progress and results to the operator ) And the like, and an input device 14 such as a keyboard and a mouse for an operator to input commands and information to the CPU 6. The bus controller 9 operates by arbitrating data transmitted and received between these units.
[0092]
The RAM 8 has a property of storing various data in a rewritable manner, and thus functions as a work area for the CPU 6.
[0093]
In such a computer 1, when the user turns on the power, the CPU 6 activates a program called a loader in the ROM 7, reads a program for managing the hardware and software of the computer called the operating system from the HDD 10 into the RAM 8, and loads this operating system. Start. Such an operating system starts a program, reads information, or saves it in response to a user operation. As typical operating systems, Windows (registered trademark), UNIX (registered trademark), and the like are known. An operation program running on these operating systems is called an application program.
[0094]
Here, the image processing apparatus 1 stores an image processing program in the HDD 10 as an application program. In this sense, the HDD 10 functions as a storage medium that stores an image processing management program.
[0095]
In general, an operation program installed in the HDD 10 of the computer 1 is recorded on an optical information recording medium such as a CD-ROM 11 or a DVD-ROM, a magnetic medium such as an FD, or the like. Installed in the HDD 10. For this reason, portable storage media such as optical information recording media such as the CD-ROM 11 and magnetic media such as the FD can also be storage media for storing the image processing program. Furthermore, the image processing program may be taken in from the outside via, for example, the communication control device 13 and installed in the HDD 10.
[0096]
In addition, the above-mentioned image processing program includes a JPEG2000 format compression / decompression program as described above, and compresses the image data into code data by a procedure of two-dimensional wavelet transform, quantization, and encoding. It also has functions of JPEG2000 format encoding means for encoding and JPEG2000 format decoding means for decompressing compressed encoded data by the reverse procedure of decoding, inverse quantization and two-dimensional wavelet inverse transformation. is doing.
[0097]
[Overview of scaling]
In the present embodiment, in such a computer 1, as schematically shown in FIG. 16, for example, code data (original code) to be processed that has been compressed and converted by the JPEG2000 algorithm is required (for example, external). Are temporarily captured in the HDD 10 (step S1), the zoom mode designation, the zoom ratio designation, and the block unit designation for the image are accepted by the operation of the input device 14 (S2), and the processing object is processed according to these designations. The code data to be converted is subjected to a scaling process designated by a block unit designated on the work area of the RAM 8 (S3), and the code data after the scaling process is output to the object (for example, the HDD 10). Or output to the display device 15 or output to an external device through the network 5 such as the Internet. The causes (S4) that the functions of the information processing device can be realized. Note that the code data that has undergone the scaling process in step S3 is rearranged in the required code order (code stream) and output.
[0098]
Here, a magnification receiving means or a magnification receiving function is realized by step S2, and a scaling processing means or a magnification receiving function is realized by step S3. However, when configuring the image processing apparatus, the image processing apparatus may be configured as a single machine without depending on the computer 1.
[0099]
That is, according to JPEG2000, the processing unit is a “block” (generally a rectangle) of an arbitrary size, so that the code data does not affect the coefficient value in wavelet transform / inverse transform. If it is not associated with the information of other blocks, that is, if it is a block unit that can be processed independently (for example, tile unit), it can be decoded independently. By performing a scaling process of a scaling ratio designated in such a block unit (for example, tile unit) as possible (S3), the scaling process is basically performed without decoding the image data. The image size can be changed by this, and only the scaling process is required compared to the conventional process of decoding → image scaling → re-encoding, and therefore, as little work memory as possible is used. In it it is possible as much as possible high-speed processing.
[0100]
[Variation processing example 1]
Here, a specific processing example of step S3 will be described as a scaling processing example 1 with reference to FIG. First, when the scaling factor specified in step S2 is a reduction scaling factor such as 1 / M (Y in S11), N blocks having the target code data are sequentially accessed. i is initialized to 0 (S12). Subsequently, for the block unit of interest indicated by i = i + 1, M corresponding to the scaling factor 1 / M is set as the variable k for scaling processing (k = M) (S14). Then, it is determined whether or not the variable k of the block unit being accessed is 1 (S15). If k = 1 is not satisfied (N in S15), the block unit (corresponding block) of the currently accessed block is determined. The code data is deleted (that is, the corresponding block itself is deleted) (S16). Then, the variable i is incremented by 1, the variable k is decremented by 1 (S17), and it is determined again whether or not the variable k in the block unit being accessed is 1 (S15). (M-1) When the block deletion process (S16) is completed, k = 1 is satisfied (Y in S15). At this time, the process of deleting the code data of the currently accessed block (corresponding block) is performed. Without checking (the code data is left as it is), after checking whether the number of access blocks i has reached N (S13), if it has not reached N (N in S13), the above (M-1) pieces Similarly, the deletion process by thinning out the blocks is repeated to access all the blocks (Y in S13), thereby proceeding to the process in step S4.
[0101]
On the other hand, when the scaling factor designated in step S2 is an enlargement scaling factor such as M (N in S11), N blocks having the target code data are sequentially accessed. Is initialized to 0 (S21). Subsequently, M corresponding to the scaling factor 1 / M is set as the variable k for scaling processing for the target block unit indicated by i = i + 1 (k = M) (S23). Then, it is determined whether or not the variable k of the block unit being accessed is 1 (S24). If k = 1 (N of S24), the block unit (corresponding block) of the currently accessed block is determined. The code data is copied (that is, the corresponding block itself is added by copying) (S25). Then, the variable k is decremented by 1 (S26), and it is determined again whether or not the variable k for the block to be accessed is 1 (S24). (M-1) When the block addition process (S25) is completed, k = 1 (Y in S24). At this time, what is the code data of the block unit (corresponding block) currently accessed? Without checking (the code data is left as it is), it is checked whether the number of access blocks i has reached N (S22), and if N has not been reached (N in S22), the above (M-1) pieces The addition process by copying the blocks is repeated in the same manner, and all the blocks are accessed (Y in S22), whereby the process proceeds to step S4.
[0102]
In this processing example, the processing unit is shown as a processing example when the block unit is a one-dimensional array. However, the processing is basically the same when the block unit is a two-dimensional array. Processing such as deletion and addition may be performed in both directions. .
[0103]
As a specific example, the block unit is a tile unit (including header information describing the contents), and the scaling factor is specified as a reduction scaling factor of 1 / M = 1/3. A processing example is shown in FIG. That is, if the code data before scaling is composed of 36 tiles indicated by TA01 to TA36, tiles TA01, TA04, TA19 are deleted by thinning out two tiles vertically and horizontally in the tile access operation. , TA22, and only the code data of four tiles remains, and the state after scaling that is reduced to 1/3 is obtained in the code state.
[0104]
Also, as another specific example, similarly, when the block unit is a tile unit (including header information describing the contents) and the scaling factor is designated as an enlargement scaling factor of M = 3 An example of processing is shown in FIG. That is, if the code data before scaling is composed of four tiles indicated by TA01 to TA04, the code of 36 tiles can be obtained by adding two tiles by copying vertically and horizontally in the tile access operation. The state after scaling that has been enlarged by three times with data is obtained in the code state.
[0105]
In these processing examples, the block unit that can be processed has been described as an example of a tile unit having header information. However, according to JPEG2000, a code block (described above) can be used as a block unit that can be processed independently. Code Block), a set of code blocks (precinct), and instead of processing in units of tiles, the scaling process (deletion, addition processing) described above is performed in units of precincts or code blocks. Also good. In this way, the image size can be changed by deleting or adding a block unit. At this time, the block unit to be processed is preferably a rectangular small area.
[0106]
[Zooming processing example 2]
In this processing example, the scaling process is performed using wavelet coefficients instead of the scaling process with the code data as it is. As described above, the scaling process is performed in units of blocks that can be processed independently. However, if the block size is large, the scaling process by deleting or adding the blocks as described above will improve the image quality. Since there may be a case where a problem may occur, this is an example in which the wavelet coefficients are restored (not restored up to the image data) and the scaling process is performed in units of the wavelet coefficients.
[0107]
FIG. 19 shows a schematic flowchart of a scaling process example corresponding to step S3 in this processing example. Schematically, the target code data is decoded by the decoding means in the JPEG2000 format, thereby restoring the wavelet coefficients in block units (S31). Then, the wavelet coefficient included in each restored block unit is subjected to a scaling process for the scaling factor specified in the wavelet coefficient unit (S32), and the wavelet coefficient after the scaling process is encoded by the encoding means in the JPEG2000 format. Data is re-encoded (S33), and the process proceeds to step S4.
[0108]
In this case, various forms can be adopted as the scaling process in units of wavelet coefficients. For example, when the specified scaling factor is a reduction scaling factor, the wavelet coefficient corresponding to the reduction scaling factor is reduced in units of wavelet coefficients. For example, the block unit corresponding to the scaling scaling factor is performed. This may be a process of changing (increasing / decreasing) the value of the wavelet coefficient itself, or as another example, a process of changing (deleting or adding) the number of wavelet coefficients included in a block unit. The same applies when the specified scaling factor is an enlargement scaling factor. Wavelet coefficients corresponding to the enlargement scaling factor are enlarged in units of wavelet coefficients. As an example, a wavelet corresponding to the enlargement scaling factor is used. It may be a process of changing (increasing or decreasing) the coefficient value itself, and as another example, a process of changing (deleting or adding) the number of wavelet coefficients included in a block unit.
[0109]
As a specific example, FIG. 21 shows a processing example when the block unit is a tile unit and the scaling factor is specified as a scaling factor of 1 / M = 1/2. That is, in this example, the code data before scaling is composed of 16 tiles indicated by TA01 to TA16, and the scale data is reduced to 4 tiles indicated by TB01 to TB04 as code data after scaling. is there. In this case, for example, the wavelet coefficient corresponding to the code data (Code) is obtained for the tiles TA03, TA04, TA07, and TA08 by the processing in step S31. Then, the scaling process of 1/2 scaling factor specified for the wavelet coefficients (Wavelet coefficients) for these four tiles is performed with the wavelet coefficients as a result of the process of step S32, and a new one for a new tile TB02 Wavelet coefficients are obtained. Although not particularly illustrated, the same applies to the set of tiles TA01, TA02, TA05, and TA06, the set of tiles TA09, TA10, TA13, and TA14, and the set of tiles TA11, TA12, TA15, and TA16. Then, the obtained wavelet coefficients (Wavelet coefficients) for the four new tiles TB01 to TB04 are re-encoded into code data (Code) by the process of step S33 and converted into a code stream by the tag process. As shown in the lowermost column, code data reduced in size by 1/2 in the vertical and horizontal directions is obtained.
[0110]
As described above, for example, as a specific scaling process, the selection of the decomposition level is performed by using the scaling process using the data restored to the wavelet coefficients without performing the scaling process with the code data as it is. The size can be changed substantially by changing the resolution by using the wavelet coefficient characteristics, and more flexible scaling processing is possible. Therefore, high-speed processing can be performed with less work memory than in the past.
[0111]
【The invention's effect】
  BookAccording to the invention, since the processing unit of JPEG 2000 is a “block” of an arbitrary size (generally a rectangle), the code data does not affect the coefficient value in wavelet transform / inverse transform. If it is not associated with other block information, that is, if it is a tile, precinct, or code block unit that can be decoded independently, the feature that it can be decoded independently is maximized. Code data that is basically decoded without being decoded into image data by applying a scaling process of a specified scaling ratio in units of tiles, precincts, or code blocks that can be independently decoded. The image size can be changed by scaling processing as it is, and the processing of scaling processing is compared to the conventional process of decoding → image scaling → re-encoding. It can to dispense with, thus, it is possible to perform the process as much as possible high speed use of the working memory as small as possible.
[0112]
  Also bookAccording to the inventionThe markAs an example of the scaling process without changing the data, based on the specified reduction scaling factorIn the code data state,By thinning out the code data in units of tiles, precincts, or code blocks, reduction scaling can be easily performed.
[0113]
  Furthermore, according to the present invention,As an example of the scaling process with the code data as it is, based on the specified magnification ratioIn the code data state,By copying the code data in units of tiles, precincts, or code blocks, enlargement / reduction can be easily performed.
[0114]
  According to the computer-readable storage medium of the seventh aspect of the invention, the same effects as the inventions of the fourth to sixth aspects can be obtained.
[Brief description of the drawings]
FIG. 1 is a functional block diagram of a system that implements a basic algorithm of the JPEG2000 system that is a premise of an embodiment of the present invention.
FIG. 2 is an explanatory diagram showing a divided rectangular area of each component of the original image.
FIG. 3 is an explanatory diagram showing subbands at each decomposition level when the number of decomposition levels is 3. FIG.
FIG. 4 is an explanatory diagram showing a precinct.
FIG. 5 is an explanatory diagram showing an example of a procedure for ranking bit planes; It is.
FIG. 6 is a schematic diagram illustrating a code stream of encoded image data.
FIG. 7 is a schematic diagram showing a code format of JPEG2000.
FIG. 8 is a configuration diagram of the main header.
FIG. 9 is a configuration diagram of a tile header.
FIG. 10 is a configuration diagram of an SOT marker segment.
FIG. 11 is a configuration diagram of a SIZ marker segment.
FIG. 12 is an explanatory diagram showing the positional relationship of images.
FIG. 13 is an explanatory diagram showing a positional relationship between a reference grid and tiles.
FIG. 14 is an explanatory diagram illustrating a relationship between an image, a tile, a subband, a precinct, and a code block.
FIG. 15 is a block diagram illustrating a computer configuration example for realizing the image processing apparatus according to the present embodiment;
FIG. 16 is a schematic flowchart showing the scaling process.
FIG. 17 is a schematic flowchart showing a process of scaling process example 1;
FIG. 18 is a schematic diagram showing a specific example of the reduction process.
FIG. 19 is a schematic diagram showing an example of a specific enlargement process.
FIG. 20 is a schematic flowchart showing processing of scaling processing example 2;
FIG. 21 is a schematic diagram showing a specific example of the reduction process.
[Explanation of symbols]
S2 Magnification acceptance means, magnification acceptance function
S3 Scaling processing means, scaling processing function

Claims (5)

変倍率の指定を受付ける倍率受付手段と、
画像データとしてJPEG2000フォーマットにより圧縮符号化された符号データに対して独立して復号可能であるタイル、又は、プリシンクト、又は、コードブロック単位で指定された変倍率の変倍処理を施す変倍処理手段とを備え、
前記変倍処理手段は、指定された変倍率が縮小変倍率の場合には、符号データの状態で、指定された縮小変倍率分に基づいて、タイル、又は、プリシンクト、又は、コードブロック単位で符号データを間引くことにより削除処理を行うことを特徴とする画像処理装置。
A magnification acceptance means for accepting designation of a variable magnification;
Scaling processing means for performing scaling processing of a scaling factor designated in units of tiles, precincts, or code blocks that can be independently decoded with respect to code data compressed and encoded in the JPEG 2000 format as image data And
When the designated scaling factor is a reduction scaling factor, the scaling processing means is in the state of the code data, based on the specified reduction scaling factor, in units of tiles, precincts, or code blocks. An image processing apparatus that performs a deletion process by thinning out code data .
変倍率の指定を受付ける倍率受付手段と、  A magnification acceptance means for accepting designation of a variable magnification;
画像データとしてJPEG2000フォーマットにより圧縮符号化された符号データに対して独立して復号可能であるタイル、又は、プリシンクト、又は、コードブロック単位で指定された変倍率の変倍処理を施す変倍処理手段とを備え、  Scaling processing means for performing scaling processing of a scaling factor designated in units of tiles, precincts, or code blocks that can be independently decoded with respect to code data compressed and encoded in the JPEG 2000 format as image data And
前記変倍処理手段は、指定された変倍率が拡大変倍率の場合には、符号データの状態で、指定された拡大変倍率分に基づいて、タイル、又は、プリシンクト、又は、コードブロック単位で符号データを複写することにより追加処理を行う画像処理装置。If the specified scaling factor is an enlargement scaling factor, the scaling processing means is in the state of the code data, based on the specified scaling scaling factor, in tiles, precincts, or code block units. An image processing apparatus that performs additional processing by copying code data.
画像処理装置が備えるコンピュータにインストールされ、前記コンピュータに、
変倍率の指定を受付ける倍率受付機能と、
画像データとしてJPEG2000フォーマットにより圧縮符号化された符号データに対して独立して復号可能であるタイル、又は、プリシンクト、又は、コードブロック単位で、指定された変倍率の変倍処理を施す変倍処理機能とを有し、
前記変倍処理機能は、指定された変倍率が縮小変倍率の場合には、符号データの状態で、指定された縮小変倍率分に基づいて前記タイル、又は、前記プリシンクト、又は、前記コードブロック単位で符号データを間引きくことにより削除処理を行わせることを特徴とする画像処理用プログラム。
Installed in a computer included in the image processing apparatus,
Magnification reception function that accepts designation of variable magnification,
Scaling processing that performs scaling processing at a specified scaling ratio in units of tiles, precincts, or code blocks that can be decoded independently of code data compressed and encoded in the JPEG2000 format as image data With functions,
When the specified scaling factor is a reduction scaling factor, the scaling processing function is configured to code the tile, the precinct, or the code block based on the specified reduction scaling factor in the code data state. An image processing program for performing deletion processing by thinning out code data in units .
画像処理装置が備えるコンピュータにインストールされ、前記コンピュータに、Installed in a computer provided in the image processing apparatus,
変倍率の指定を受付ける倍率受付機能と、  Magnification reception function that accepts designation of variable magnification,
画像データとしてJPEG2000フォーマットにより圧縮符号化された符号データに対して独立して復号可能であるタイル、又は、プリシンクト、又は、コードブロック単位で、指定された変倍率の変倍処理を施す変倍処理機能とを有し、  Scaling processing that performs scaling processing at a specified scaling ratio in units of tiles, precincts, or code blocks that can be decoded independently of code data compressed and encoded in the JPEG2000 format as image data With functions,
前記変倍処理手機能は、指定された変倍率が拡大変倍率の場合には、符号データの状態で、指定された拡大変倍率分に基づいて前記タイル、又は、前記プリシンクト、又は、前記コードブロック単位で符号データを複写することにより追加処理を行わせることを特徴とする画像処理用プログラム。When the specified scaling factor is an enlargement scaling factor, the scaling processing manual function is based on the specified enlargement scaling factor in the code data state, the tile, the precinct, or the code. An image processing program for performing additional processing by copying code data in block units.
請求項3又は4記載の画像処理用プログラムを格納しているコンピュータ読取り可能な記憶媒体。A computer-readable storage medium storing the image processing program according to claim 3 or 4.
JP2002268897A 2002-09-13 2002-09-13 Image processing apparatus, image processing program, and storage medium Expired - Fee Related JP3989801B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002268897A JP3989801B2 (en) 2002-09-13 2002-09-13 Image processing apparatus, image processing program, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002268897A JP3989801B2 (en) 2002-09-13 2002-09-13 Image processing apparatus, image processing program, and storage medium

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2006073832A Division JP4280752B2 (en) 2006-03-17 2006-03-17 Image processing apparatus such as a computer, image processing program, and storage medium
JP2006212250A Division JP2007014002A (en) 2006-08-03 2006-08-03 Image processing apparatus, image processing program and recording medium

Publications (2)

Publication Number Publication Date
JP2004112091A JP2004112091A (en) 2004-04-08
JP3989801B2 true JP3989801B2 (en) 2007-10-10

Family

ID=32266990

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002268897A Expired - Fee Related JP3989801B2 (en) 2002-09-13 2002-09-13 Image processing apparatus, image processing program, and storage medium

Country Status (1)

Country Link
JP (1) JP3989801B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4415978B2 (en) 2006-08-02 2010-02-17 ソニー株式会社 Image signal processing apparatus and image signal processing method

Also Published As

Publication number Publication date
JP2004112091A (en) 2004-04-08

Similar Documents

Publication Publication Date Title
JP4128438B2 (en) Image processing apparatus, program, storage medium, and image editing method
JP3988990B2 (en) Code conversion apparatus, code conversion method, program, and recording medium
JP2004194146A (en) Displaying method of thumbnail image, server computer, client computer, and program
JP2004221836A (en) Image processor, program, storage medium, and code expanding method
JP2004254298A (en) Image processing device, program, and storage medium
JP2003169333A (en) Code string forming apparatus, picture expansion system, picture expander, picture providing system, code string forming method, program and recording medium
JP3952459B2 (en) Image processing apparatus, program, storage medium, and image processing method
JP2004214828A (en) Image processing apparatus, image processing method, computer program for image processing, and storage medium for storing the image processing computer program
JP2004186871A (en) Image processing apparatus, imaging apparatus, program, and storage medium
JP2007014002A (en) Image processing apparatus, image processing program and recording medium
JP2004236225A (en) Image processing apparatus, program, and storage medium
JP4609918B2 (en) Image processing system, image processing method, program, and information recording medium
JP3989801B2 (en) Image processing apparatus, image processing program, and storage medium
JP4280752B2 (en) Image processing apparatus such as a computer, image processing program, and storage medium
JP4812071B2 (en) Image processing apparatus, image processing method, program, and information recording medium
JP4688164B2 (en) Image processing apparatus, image processing method, program, and information recording medium
JP4859014B2 (en) Image processing apparatus, image processing method, program, and information recording medium
JP4489474B2 (en) Image processing apparatus, program, and recording medium
JP2004201047A (en) Image processing apparatus, program, and storage medium
JP2006086579A (en) Image processing apparatus, program and storage medium
JP2004112566A (en) Image processor, image processing method, image processing program, and storage medium for storing the image processing program
JP4059399B2 (en) Image processing apparatus, image processing system, image output control method, program, and recording medium
JP3993033B2 (en) Image processing apparatus, image processing method, image processing program, and storage medium for storing image processing program
JP2004166096A (en) Image transmitter, image receiver, network system, program, storage medium, image transmission method and image reception method
JP2004201048A (en) Image information processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040301

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040924

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060803

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061117

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070718

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

Free format text: PAYMENT UNTIL: 20100727

Year of fee payment: 3

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120727

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120727

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130727

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees