画像伸長装置、方法およびプログラム
【課題】圧縮記録画像の全体を伸長するという処理を経ず、データ出力に必要な部分のみ画像を切り出す。
【解決手段】ジグザグ順に低周波側から高周波側にかけて64個分のDCT係数の計数を行うことで1単位分のブロックを識別する(S10)。1単位分のブロックとして識別した、64個分のDCT係数(EOBで打ち切った場合は、最低周波数のDCT係数からEOBまでのDCT係数)が被覆ブロック群Zcovに含まれるか否かを判断する(S11)。Yesの場合、被覆ブロック群Zcovに含まれると判断された64個分のDCT係数(または最低周波数のDCT係数からEOBまでのDCT係数)につき、目標解像度に基づいてIDCT(逆離散コサイン変換)を施すべきDCT係数の周波数成分を決定し、決定された周波数成分のDCT係数にのみ逆量子化とIDCTを施し、間引き画像データを得る(S12)。
【解決手段】ジグザグ順に低周波側から高周波側にかけて64個分のDCT係数の計数を行うことで1単位分のブロックを識別する(S10)。1単位分のブロックとして識別した、64個分のDCT係数(EOBで打ち切った場合は、最低周波数のDCT係数からEOBまでのDCT係数)が被覆ブロック群Zcovに含まれるか否かを判断する(S11)。Yesの場合、被覆ブロック群Zcovに含まれると判断された64個分のDCT係数(または最低周波数のDCT係数からEOBまでのDCT係数)につき、目標解像度に基づいてIDCT(逆離散コサイン変換)を施すべきDCT係数の周波数成分を決定し、決定された周波数成分のDCT係数にのみ逆量子化とIDCTを施し、間引き画像データを得る(S12)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データが複数領域に分割されて個別に圧縮処理を施された圧縮画像データの復号化技術に関する。
【背景技術】
【0002】
特許文献1では、JPEGにより圧縮された画像データの可変長復号処理が行われ,直交変換係数が得られる(ステップ31)。また,圧縮画像データの解像度(大きさ)が取得され(ステップ32),目標の縮小画像の解像度と取得した解像度とから,直交変換係数の中から逆変換で用いる一部の直交変換係数が決定される(ステップ33)。決定された直交変換係数が逆変換され,第1の縮小画像が得られる(ステップ34)。得られた第1の縮小画像の解像度が目標となるものでなければ,縮小画像データのデータ量が調整され,目標となる第2の縮小画像が得られる(ステップ35)、とする。
【0003】
特許文献2では、圧縮処理されるブロック単位ごとにリスタートインターバルマーカを挿入したデータ構造の圧縮データを作成する。これにより、各ブロックの圧縮データの先頭の直流値は絶対値となり、更に各リスタートインターバルマーカは、アドレス情報のみで(ビット情報なしで)フラッシュROMへの記録位置が特定される。従って、フラッシュROMから任意のブロックを読み出す際にビット位置を指定する必要がなく、また、JPEG伸張ブロックでの伸張時に他のブロックの先頭の直流値を必要としないため、ブロック単独でそのブロックの圧縮データを復号することができる、とする。
【0004】
特許文献3では、サーバコンピュータ側の画像処理に必要な最小限の解像度に応じた画像データをクライアントコンピュータからサーバコンピュータに対して送信するとする。
【0005】
特許文献4の画像処理装置は、取得された画像情報を複数のブロックに分割する分割部と、分割された複数のブロックの中から文字を含む有意ブロックを選出する有意ブロック選出部と、選出された有意ブロックを複数の圧縮率のいずれかで圧縮し圧縮データを出力する圧縮部と、圧縮データを伸張し伸張画像を出力する伸張部と、複数の圧縮率で画像情報全体を圧縮したときの各予想ファイルサイズを算出する予想ファイルサイズ算出部とを含む。
【0006】
図9は、従来のJPEGのデコード処理の概略を示すフローチャートである。JPEGのデコード処理は、ハフマン復号化(S21)、逆量子化(S22)、逆DCT(S23)が伸張ブロックの各々について繰り返される(S24)ことで行われる。1つのブロックの可変長符号には、1個のDC係数と63個のAC係数からなるDCT係数が含まれる。なお、JPEG2000のデコード処理も図9と同様の流れで行われ、ブロック単位のEBCOT(Embedded Block Coding with Optimal Truncation)復号化、逆量子化、および逆離散ウェーブレット変換がそれぞれS21〜S23に相当する。
【0007】
DC係数の符号は、例えば図10のような符号表で決定される。この符号表自体は、JPEG符号化時に決定され、JPEGファイルのヘッダに記述される。
【0008】
DC係数は−255〜255までの整数値をとる。この値によって9種のグループに分類される。例えば、DC値が50であれば、当該表に従い、分類が「6」になる。このとき、分類「6」を表す2進数「1110」が符号化され、さらに6ビット分の付加ビットによって分類「6」に含まれる−63〜−32、32〜63の値のうち50であることを指定する。分類「6」には64通りのDC値の可能性が含まれるため、2^6=64で6ビットを上記「1110」の後に付加することでDC値を特定できる。
【0009】
AC係数については、例えば図11のような符号表で決定される。この表も、JPEG符号化時に決定され、JPEGファイルのヘッダに記述される。
【0010】
AC係数もDC係数と同様に値によって分類される。分類は、0〜10の値によって表され、付加ビットの数と等しい。AC係数を符号化する際には、係数自体の値と、その係数に先行する0の係数が続く数(ランレングス)を同時に表す点でDC係数と異なる。すなわち、例えば「0、0、4」と続く3つのAC係数を「分類=3、ランレングス=2」に対応するハフマン符号と3ビットの付加ビットで表す。
【0011】
また、このときランレングスが16以上になるときには、ランレングス=16の符号(ZRL)を一旦出力し、次に元々のランレングスから16を減じた数をもとに符号を発行する。
【0012】
復号化する時には、上記表からランレングスと付加ビット数=分類を求め、後続する付加ビットを用いて、AC係数を復号化する。この手順をAC係数が63個復号化されるまで続ける。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開2006−60540号公報
【特許文献2】特開2006−313984号公報
【特許文献3】特開2004−128948号公報
【特許文献4】特開2008−85914号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
近年、携帯電話のような小さな表示画面を備えた端末機器の普及に伴い、圧縮記録画像から任意の領域を切り取りつつ、任意の解像度に縮小して画像を当該表示画面に出力したいというニーズがある。
【0015】
例えば、新聞のような大きな面積を持つ記録画像を、携帯電話のような小さな端末機器の表示画面で表示する場合を考える。新聞全体を縮小してこの画面全体に表示すると記事が小さすぎて読めないため、読みたい部分を新聞から切り出し、これを拡大し、切り出した部分の記事が読めるように端末機器の表示画面に適した解像度でこれを表示する方が現実的である。
【0016】
この場合、特許文献1のように、一旦圧縮記録画像の全体を復号化した上で表示に必要な部分の画像を切り出すという手順をとると、表示しない部分の復号化が無駄である。
【0017】
特許文献2では、圧縮処理されるブロック単位ごとにリスタートインターバルマーカを挿入するという処理をそもそも行わなければブロック単独での圧縮データ復号ができない。
【0018】
本発明は、ブロックの単位を示す情報が挿入されない通常の圧縮処理技術に従い、画像データが複数領域に分割されて個別に圧縮処理を施された圧縮画像データから、圧縮記録画像の全体を伸長するという処理を経ることなく、表示、プリントアウト、ネットワーク送信などの各種形態でのデータ出力に必要な部分のみ画像を切り出す技術を提供する。
【課題を解決するための手段】
【0019】
本発明は、ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付ける範囲指定部と、圧縮画像を可変長復号化する復号化部と、範囲指定部が受け付けた範囲に基づいて伸長すべきブロックを抽出する抽出部と、復号化部が可変長復号化した圧縮画像のうち、抽出部の抽出したブロックにのみ伸長を行う伸長部と、を備える画像伸長装置を提供する。
【0020】
目標解像度を取得する目標解像度取得部と、目標解像度取得部の取得した目標解像度に基づき、抽出部の抽出したブロックから伸長すべき圧縮画像の成分を決定する決定部と、を備え、伸長部は、決定部の決定した圧縮画像の成分を伸長する。
【0021】
画像データはブロック単位の離散周波数領域変換もしくは離散ウェーブレット変換で得られた係数で表現されており、伸長部は、目標解像度取得部の取得した目標解像度に基づき、抽出部の抽出したブロックから伸長すべき周波数成分を決定し、決定された周波数成分の係数に対応する可変長復号化した圧縮画像データ列に逆量子化および逆離散周波数領域変換もしくは逆離散ウェーブレット変換を施すことで伸長する。
【0022】
係数で表現された圧縮画像データはハフマン符号、EBCOT(Embedded Block Coding with Optimal Truncation)方式または算術符号により可変長符号化されている。
【0023】
可変長符号化された画像データはJPEG(Joint Photographic Experts Group)またはJPEG2000画像データを含む。
【0024】
伸長部の伸長した画像データを出力する出力部を備える。
【0025】
出力部は、伸長部の伸長した画像データを表示装置、プリンタ、ネットワークのうち少なくとも1つに出力可能である。
【0026】
本発明は、携帯端末から送信要求された画像を配信する画像配信サーバからの要求に応じて画像を画像配信サーバに送信する画像蓄積サーバが、ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付けるステップと、圧縮画像を可変長復号化するステップと、受け付けた範囲に基づいて伸長すべきブロックを抽出するステップと、可変長復号化した圧縮画像のうち、抽出したブロックにのみ伸長を行うステップと、伸長した画像データを画像配信サーバに送信するステップと、を実行する画像伸長方法を提供する。
【0027】
本発明は、携帯端末から送信要求された画像を画像蓄積サーバに要求し、画像蓄積サーバから画像を受信する画像配信サーバが、ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付けるステップと、圧縮画像を可変長復号化するステップと、受け付けた範囲に基づいて伸長すべきブロックを抽出するステップと、可変長復号化した圧縮画像のうち、抽出したブロックにのみ伸長を行うステップと、伸長した画像データを携帯端末に送信するステップと、を実行する画像伸長方法を提供する。
【0028】
本発明は、情報処理装置が、ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付けるステップと、圧縮画像を可変長復号化するステップと、受け付けた範囲に基づいて伸長すべきブロックを抽出するステップと、可変長復号化した圧縮画像のうち、抽出したブロックにのみ伸長を行うステップと、を実行する画像伸長方法を提供する。
【0029】
上記の画像伸長方法を情報処理装置に実行させるための画像伸長プログラムも本発明に含まれる。
【発明の効果】
【0030】
本発明によると、指定された画像範囲の出力(表示、ネットワーク送信、印刷など)に必要な画像のブロックだけが伸長されるので、画像伸長処理が簡略化され、必要な範囲を即座に出力できる。
【図面の簡単な説明】
【0031】
【図1】画像提供システムの概略構成図
【図2】携帯端末の構成を例示した図
【図3】JPEG画像ファイルの構造を示す図
【図4】伸長処理の概略フローチャート
【図5】圧縮記録画像データの一例を示す図
【図6】DCT係数の一部の逆変換処理(S7)の詳細フローチャート
【図7】画像提供システムの他の構成例(画像蓄積サーバで伸長処理)を示す図
【図8】画像提供システムの他の構成例(画像配信サーバで伸長処理)を示す図
【図9】JPEGデコード処理の概略を示すフローチャート
【図10】DC係数の符号表の一例を示す図
【図11】AC係数の符号表の一例を示す図
【発明を実施するための形態】
【0032】
<第1実施形態>
図1は本発明の好ましい第1実施形態に係る画像提供システムの概略構成を示す。このシステムは、画像蓄積サーバ1、画像配信サーバ2、携帯電話3、プリンタ4を含む。画像蓄積サーバ1と画像配信サーバ2はLANやインターネットなどの各種ネットワークで接続されている。また、画像配信サーバ2と携帯電話3は移動体電話通信網などの各種ネットワークで接続されている。また、携帯電話3とプリンタ4は、赤外線通信などの各種ネットワークで接続されている。
【0033】
画像蓄積サーバ1および画像配信サーバ2は、コンピュータで構成され、CPU、メモリ(RAM,ROM)、HDD、通信ユニット、データ入出力回路、表示回路、操作装置などを備える。
【0034】
画像配信サーバ2が、携帯電話3からの所望の画像の配信要求に基づき、ネットワーク経由で当該画像の配信を画像配信サーバ2に要求すると、画像配信サーバ2はネットワーク経由で当該画像の送信を画像蓄積サーバ1に要求する。
【0035】
画像蓄積サーバ1は、画像配信サーバ2から当該要求を受信すると、要求で示された画像の識別情報(ハイパーリンク、画像ファイル名など)に対応する圧縮記録画像を画像データベース1aから取得し、この画像を画像配信サーバ2に送信する。圧縮記録画像は、JPEG、JPEG2000、MPEG(動画)などの圧縮方式に従い、オリジナル画像データが複数領域に分割されて個別に圧縮処理を施された圧縮画像データである。JPEG圧縮の場合、オリジナル画像データを離散コサイン変換(DCT)し、ビット配分を決定して量子化を行う。ベースライン方式の場合、量子化データをハフマン符号化により符号化して符号化データを得る。JPEG2000圧縮の場合、オリジナル画像データを離散ウェーブレット変換(DWT)し、量子化およびEBCOT方式によるエントロピー符号化(ビットプレーンを単位としたエントロピー符号化)を行う。
【0036】
画像配信サーバ2は、画像蓄積サーバ1から受信した画像を携帯電話3に送信する。携帯電話3は、受信した画像の全体あるいは一部を表示画面211に表示したり、プリンタ4転送したりできる。
【0037】
図2は携帯電話3の内部構成を示すブロック図である。この携帯電話3は、CPU230でその全体が制御されるように構成されている。このCPU230には揮発性のメモリであるRAM231、不揮発性のメモリであるROM232、表示画面211を備えた表示部233、操作キー221、書換可能な不揮発性のメモリである書換可能ROM234および電源部235が配備されている。
【0038】
ROM232には、CPU230で実行されるプログラム等が記憶されており、また、書換可能ROM234には、画像配信サーバ2からパケット通信によりダウンロードされたプログラムが記憶され、そのROM232や書換可能ROM234に記憶されたプログラムがCPU230で実行されることにより、この携帯電話3の各部の動作が制御される。
【0039】
RAM231は、CPU230で実行されるプログラムの作業領域として利用される他、この携帯電話3で取り扱われる画像データの画素数の設定値や画像データ等の格納領域として利用される。
【0040】
表示部233は、表示画面211を有し、CPU230の指示に応じてこの表示画面211にRAM231の画像を表示する。
【0041】
表示画面211のアスペクト比は任意であり、例えば4:3、16:9である。また表示画面211の解像度は任意であり、例えば320×180、320×240、640×480、1024×768、1280×768、1920×1080などである。表示画面211のアスペクト比および解像度を示す情報はROM232に記憶されている。
【0042】
操作キー221は、ユーザによる操作を受けその操作をCPU230に伝える役割りを担っている。操作キー221が操作されると、CPU230は、その操作に応じて各部を制御する。
【0043】
電源部235には、電池(図示せず)が装填されその電池からの電力を、CPU230や、そのCPU230からの指令を受けてこの携帯電話の各部に供給する。
【0044】
また、この携帯電話3には、電話機能を担う構成要素として、アンテナ213、送受信部241、信号処理部242、および通話部243が備えられている。この通話部243には、受話口222の内部に配備されたマイクロホン243aと送話口212の内部に配備されたスピーカ243bが含まれている。
【0045】
送受信部241は、アンテナ213での電波の送受信を担う回路要素であり、アンテナ213での電波受信により送受信部241で得られた信号は信号処理部に入力されて信号処理を受けて通話部243のスピーカ243bから音声として出力される。また、通話部243のマイクロホン243aでピックアップされた音声は信号処理部242で信号処理を送受信部241を介してアンテナ213から電波として送信される。
【0046】
また、この携帯電話3はパケット通信機能も備えており、アンテナ213および送受信部241を介して受信したパケット信号は、信号処理部242で適切な信号処理を受けた後一旦RAM231に格納され、あるいはダウンロードされたプログラムの場合は書換可能ROM234に記憶され、操作キー221からの指示を受けたCPU230により、そのRAM231内のパケットデータが表示部233の表示画面211に表示され、あるいは書換可能ROMに記憶されたプログラムが実行される。携帯電話3がパケット通信で受信するデータは何でもよく、例えば、圧縮記録画像データ、文字データ、音声データ、プログラムなどが挙げられる。
【0047】
操作キー221で作成されたパケット通信文書等はその作成時点ではRAM231に一旦格納され、操作キー221からの送信指示に応じて信号処理部242に送られて送信用に信号処理を受け、送受信部241およびアンテナ213を介して電波として送信される。
【0048】
さらに、この携帯電話3には、撮影部251、画像処理部252、および赤外線通信部253が備えられている。
【0049】
撮影部251には、撮影レンズ214および撮影素子251aが備えられており、撮影レンズを経由して取り込まれた被写体が撮影素子251aで提示されて画像信号が生成される。この撮影素子251aで得られた画像信号は画像処理部252で処理されてJPEGやJPEG2000やMPEGなどの各種の規格に準拠したデジタル圧縮画像データに変換され、CPU230を介して一旦RAMに格納され操作キー221の操作に応じて表示部233の表示画面211に表示され、あるいは、赤外線通信部253を介してプリンタ4などの外部機器に向けて送信される。また、この赤外線通信部253は、赤外線信号受信機能も備えており、送信した画像データがプリンタ4で受信された場合にプリンタ4から通信されてくる、画像データを受信したことを表わすアクノリッジ信号を受信する。
【0050】
これにより、この携帯電話3では、プリンタ4に向けて画像データを送信してから所定時間以内にアクノリッジ信号を受信できたか否かにより、送信したこれらデータがプリンタ4で正しく受信されたか否かが認識することができる。
【0051】
なお、ここでいう「携帯電話」とは、ノート型パソコンやPDAなどの各種携帯情報端末の一例にすぎない。また、赤外線通信部253を介してプリンタ4に送信する画像は、撮影部251に由来するものに限らず、画像配信サーバ2から送受信部241を介して受信した圧縮記録画像に由来する画像データでもよい。いずれの画像をプリンタ4に送信するかは操作キー221を介して任意に選択できる。
【0052】
図3は携帯電話3が受信あるいは撮影する圧縮記録画像データの一例であるJPEG画像ファイルの構造を示す。
【0053】
まず、JPEGデータの開始を示すSOIマーカー(2バイトの特定のデータ列)の後、DQTやDHTなどと呼ばれる圧縮のパラメータなどを表すセグメントがある。セグメントの先頭には、セグメント種類を表すバイトのマーカーの後、2バイトのセグメント長が記載されているため、セグメントのデータが不要であれば読みとばすことも可能である。セグメントの中にはなくてもよいものもある。いくつかのセグメントの後、SOSマーカーがあり、それ以降が画像データ本体となる。
【0054】
SOSマーカー以降は、MCUと呼ばれるマクロブロック単位で画像データが格納されている。JPEG方式では、MCUは8×8画素単位または16×16画素単位となる。具体的には、SOFセグメントの中に、色数とサンプリング比の記述があり、そこを参照することで画素単位を判定できる。例えば、色数が1のときや色数が3でサンプリング比が4:4:4のときはMCUは8×8画素単位であり、色数が3でサンプリング比が4:2:0のときはMCUは16×16画素単位である。
【0055】
図3では、よく使われている組み合わせの色数が3でサンプリング比が4:2:0のケースを想定して記述している。このとき、色数はY,Cb,Crの3色であれば、元画像16×16画素のマクロブロックから、Yの8×8画素ブロック4つと、CbとCrをそれぞれサンプリング(または縮小)した8×8画素のブロック2つの計6つのブロックデータでMCUが構成される。
【0056】
個々のブロックのデータでは、低周波成分(左上)から高周波成分(右下)に至るジグザグ順序に沿った0番から63番までの64個のDCT(離散コサイン変換)係数の量子化代表値が記述されている。すなわち64個の各DCT係数は、所定の量子化表に対応する量子化幅あるいは量子化ステップで除算され、その値の少数以下の桁を丸めることで、各DCT係数が量子化されている。
【0057】
量子化されたDCT係数はハフマン符号などで可変長符号化(エントロピー符号化)されているため、「何バイト後にブロックが終了する」というような形で出力に不要なブロックを読みとばすことはできない。また、ブロックのDCT係数で、ある番号以降のDCT係数が全て0である場合は、EOBマーカーを記述することで、その番号以降のDCT係数を記述しなくて済む。
【0058】
EOBは、ブロック内の後続のDCT係数の量子化代表値は全てゼロであるという意味のコードである。DCTを行って得られるDCT係数テーブルにおいては、左上に画質の劣化が顕在化しやすい低い空間周波数のDCT係数が配置され、右下に向かうほど画質の劣化が顕在化しにくい高い空間周波数のDCT係数が配置される。量子化代表値は、左上から右下に向かってジグザグの順序でエントロピー符号化されることから、この順序がジグザグ順序と呼ばれる。従って、このジグザグ順序の順にエントロピー復号化を行うと、低い空間周波数のDCT係数を表す量子化代表値ほど先に復元される。そして、ゼロの量子化代表値の列の先頭には、EOBが付加される。
【0059】
図4は画像蓄積サーバ1のCPUで実行される伸長処理の概略フローチャートを示す。この処理を画像蓄積サーバ1のCPUで実行させるためのプログラムはROMなどの記憶媒体に記憶されている。なお、このプログラムは画像配信サーバ2などのパソコンのCPUで実行することもできる。
【0060】
S1では、携帯電話3から画像配信サーバ2を介して所望の圧縮記録画像の送信要求を受信する。そして、当該要求に含まれる画像識別情報(ハイパーリンク、ファイル名など)に対応する圧縮画像ファイルをDB1aからRAMに取得する。
【0061】
S2では、RAMに保存された圧縮記録画像データ画像データの出力範囲(新聞記事の一部など)を示す情報の入力を、画像蓄積サーバ1の操作装置、あるいは携帯電話3の操作キー221を介して受け付ける。例えば、操作キー221に含まれる十字キーおよび確定キーの操作情報を携帯電話3から画像蓄積サーバ1に送信することにより、画像データ全体領域から出力したい領域の開始座標および終了座標、例えば矩形の左上の座標と右下の座標の指定を受け付ける。あわせて、画像の最終出力先の選択(表示画面211への出力、プリンタ4への出力あるいは携帯電話3と接続された他の携帯電話などの各種電子機器)を受け付けてもよい。
【0062】
S3では、操作キー221などから受け付けた画像データの出力範囲を示す情報に基づいて、圧縮記録画像データから伸長が必要なブロックを抽出する。
【0063】
例えば、図5のような圧縮記録画像データが画像蓄積サーバ1のRAMに保存されているとする。この画像は、15×10個のブロックに分割され、この各ブロックの画像データが各MCUに格納されている。また、出力範囲Zが指定されたとする。この場合、面積最小で出力範囲Zを包含するマクロブロック群である被覆マクロブロック群Zcovを、伸長が必要なブロックとして抽出する。
【0064】
一般的には、開始座標をXsおよび終了座標Ysであり、ブロックの一辺がNのときは、X方向について(Xs/N)番目かつY方向について(Ys/N)番目(ただし整数単位で切捨てし、最初のブロックは0番目とする)のブロックBiが抽出開始ブロックとなる。また、出力範囲Zの大きさすなわち目標解像度がXw×Yhのとき、切り取るべき右下端のブロックはX方向について((Xs+Xw−1)/N)番目かつY方向について((Ys+Yh−1)/N)番目のブロックBtとなる。
【0065】
なお、圧縮記録画像データはブロック単位で分割されていればよく、本処理の適用範囲はJPEGに限られない。また、本処理は動画および静止画のいずれにも適用できる。
【0066】
S4では、ハフマン符号表と圧縮に用いた量子化表とを用いて、ハフマン符号化された各ブロックのDCT係数をハフマン復号化し、ブロックごとに1つのDC係数と63個のAC係数を得る。例えば、図10および図11の符号表に基づいて、図9のS21(ハフマン復号化)のみを全てのブロックについて実行すればよい。換言すると、伸長処理すなわち図9のS22(逆量子化)およびS23(逆DCT)は全てのブロックに行うのではなく、必要なブロックにのみ行う。必要なブロックのみの圧縮データ伸長の処理の詳細は後述する。
【0067】
S5〜S8は、特許文献1と同様である。すなわち、S5では、RAMの圧縮画像データの解像度(画素数)をその圧縮画像データが格納されている画像ファイルのヘッダから取得する。
【0068】
S6では、出力先として表示画面211が選択された場合は、携帯電話3のROM232に保存された表示画面211の解像度(画素数)を取得し、これを目標解像度とする。この目標解像度は携帯電話3から画像蓄積サーバ1への画像の送信要求に含まれていてもよい。
【0069】
この目標解像度に基づいて、被覆マクロブロック群Zcovに含まれる各ブロックのうちIDCT(逆離散コサイン変換)を施すべきDCT係数の周波数成分を決定する。これは特許文献1と同様、縮小率α=目標解像度/オリジナルの圧縮画像データの解像度を計算し、全DCT係数のうち低周波側からジグザグ順に沿ったαの割合に相当する個数のDCT係数を用いて、オリジナル画像のα倍の画像を生成する。例えば、オリジナル画像の3/8の目標解像度で出力範囲Zを出力しようとする場合は、被覆マクロブロック群Zcovに含まれるMCUを構成する各8×8ブロックの左上(低周波数側からジグザグ順に沿った)の3×3個の係数が、逆変換される係数として決定される。
【0070】
なお、出力先としてプリンタが選択された場合は、プリンタ4から印刷解像度を取得し、これを目標解像度とする。
【0071】
S7では、S6で決定された周波数成分のDCT係数のみにIDCTを施し、間引き画像データを得る。目標解像度がオリジナル画像の解像度より小さければ、縮小画像データが得られることになる。ただし、携帯電話3の表示画面211は小さいので、携帯電話3から指定される目標解像度に従うと通常は縮小画像データが得られることになるであろう。DCT係数の逆変換は、S3で抽出された被覆マクロブロック群Zcovに含まれる係数のうちS6で決定されたもののみについて部分的に行うのであって、全てのブロックの全てのDCT係数を逆変換するのではない。この点は下記で詳説する。
【0072】
S8では、S7で得られた間引き画像データから、S2で指定された出力範囲に相当する部分を切り取った最終出力データを作成する。この最終出力データの大きさが目標解像度と同じでなければその目標とする解像度となるように画像データのデータ量をさらに調整してこれを改めて最終出力データとしてもよい。このデータ量の調整は,たとえば,原画像の周辺画像を算出して拡大,縮小する双三次補間を利用することができる。最終出力データは、画像蓄積サーバ1から画像配信サーバ2を介して携帯電話3に送信される。携帯電話3は受信した最終出力データを表示画面211に表示したり、プリンタ4に送信するなど各種の用途に供することができる。
【0073】
図6は伸長処理のS7(DCT係数の一部の逆変換)の詳細フローチャートを示す。この処理は、画像データ本体を表すビットストリームを可変長復号化(ハフマン復号化)して得られた各MCUの各ブロックのDCT係数のうち、被覆マクロブロック群Zcovに対応するブロックのDCT係数の一部の周波成分にのみIDCTを施す。
【0074】
S10では、画像データ本体の当初からジグザグ順に低周波側から高周波側にかけてハフマン復号化された64個分のDCT係数(DC係数1個、AC係数63個)の計数を行うことで1単位分のブロックを識別する。上述のように、S4ではハフマン復号化でブロックごとにDC係数1個、AC係数63個が得られているため、DC係数1個、AC係数63個を計数すれば1単位分のブロックを識別することができる。なお、計数の途中でEOBマーカーが検出された場合は、その時点でDCT係数の計数を打ち切る。
【0075】
S11では、S10で1単位分のブロックとして識別した、64個分のDCT係数(EOBで打ち切った場合は、最低周波数のDCT係数からEOBまでのDCT係数)が被覆マクロブロック群Zcovに含まれるか否かを判断する。
【0076】
例えば、色数が3でサンプリング比が4:2:0のときはMCUは16×16画素単位であるから、画像本体データの当初から識別された6つ目までのブロックはMCU(1)、7個目から12個目までのブロックはMCU(2)・・に所属するが、あるブロックが所属するMCUが被覆マクロブロック群Zcovに含まれれば当該ブロックは被覆マクロブロック群Zcovに含まれることになる。よって、識別されたブロックが所属するMCUが被覆マクロブロック群Zcovに含まれるか否かで当該ブロックが被覆マクロブロック群Zcovに含まれるかを判断すればよい。
【0077】
Yesの場合はS12に進む。Noの場合はS10に戻り、すでに識別された1単位分のブロックの最後(最高周波数に位置する64個目のDCT係数、またはEOBの後に続く0のDCT係数の最後)の次のDCT係数から、ジグザグ順に低周波側から高周波側にかけて64個分のDCT係数の計数を行うことで1単位分のブロックを識別する。
【0078】
S12では、被覆マクロブロック群Zcovに含まれると判断された64個分のDCT係数(または最低周波数のDCT係数からEOBまでのDCT係数)につき、特許文献1と同様に、目標解像度に基づいてIDCT(逆離散コサイン変換)を施すべきDCT係数の周波数成分を決定し(S6)、決定された周波数成分のDCT係数にのみ量子化代表値の逆量子化とIDCTを施し、画像データを得る(S7)。
【0079】
以上の処理の後、S10に戻り、すでに識別された1単位分のブロックの最後(最高周波数に位置する64個目のDCT係数、またはEOBの後に続く0のDCT係数の最後)の次のDCT係数から、ジグザグ順に低周波側から高周波側にかけて64個分のDCT係数の計数を行うことで次の1単位分のブロックを識別することを繰り返す。なお、S12で被覆マクロブロック群Zcovを構成する全てのブロックについて逆量子化とIDCTが施された場合は、S10に戻らず本ループを抜けS8に進む。
【0080】
以上の処理により、ユーザから指定された画像の出力範囲につき、出力先(表示、ネットワーク送信または印刷)での目標解像度の達成に必要なブロックの一部のDCT係数だけに逆量子化とIDCTが施されるので、画像出力処理が簡略化され、必要な範囲を必要な解像度で即座に出力できる。
【0081】
なお、JPEG2000の場合は、JPEGのハフマン復号化、逆量子化、および離散逆コサイン変換を、それぞれEBCOT復号化、逆量子化、および逆離散ウェーブレット変換と読み替えれば、JPEG2000についても同様に、出力先での目標解像度の達成に必要なブロックの一部の離散ウェーブレット係数だけに逆量子化および逆離散ウェーブレット変換を施すことができる。
【0082】
<第2実施形態>
図4および図6の伸長処理の実行主体は画像蓄積サーバ1である必然性はなく、システム構成および用途に応じて変更しうる。図7および図8は画像提供システムの他の構成例を示す。
【0083】
例えば図7に示すように、画像配信サーバ2が、携帯電話3から任意の圧縮記録画像の指定を受け付けると、当該指定された圧縮記録画像を画像データベース1aから取得して送信するよう画像蓄積サーバ1に要求し、当該要求に応じて画像蓄積サーバ1から送信された当該圧縮記録画像を受信する。画像配信サーバ2は、当該圧縮記録画像に対する任意の出力範囲の指定を携帯電話3から受け付けると、当該圧縮記録画像について図4および図6の伸長処理を施し、得られた画像データを携帯電話3に送信してもよい。
【0084】
あるいは図8に示すように、画像配信サーバ2が、携帯電話3から任意の圧縮記録画像の指定を受け付けると、当該指定された圧縮記録画像を画像データベース1aから取得して送信するよう画像蓄積サーバ1に要求し、当該要求に応じて画像蓄積サーバ1から送信された当該圧縮記録画像を受信して携帯電話3に転送する。携帯電話3は、画像配信サーバ2から受信した圧縮記録画像について図5および図6の伸長処理を施し、得られた画像データをプリンタ4に送信してもよい。
【0085】
いずれの態様でも、ネットワーク送信する画像のデータ量を削減できる。
【符号の説明】
【0086】
1:画像蓄積サーバ、2:画像配信サーバ、3:携帯電話、4:プリンタ
【技術分野】
【0001】
本発明は、画像データが複数領域に分割されて個別に圧縮処理を施された圧縮画像データの復号化技術に関する。
【背景技術】
【0002】
特許文献1では、JPEGにより圧縮された画像データの可変長復号処理が行われ,直交変換係数が得られる(ステップ31)。また,圧縮画像データの解像度(大きさ)が取得され(ステップ32),目標の縮小画像の解像度と取得した解像度とから,直交変換係数の中から逆変換で用いる一部の直交変換係数が決定される(ステップ33)。決定された直交変換係数が逆変換され,第1の縮小画像が得られる(ステップ34)。得られた第1の縮小画像の解像度が目標となるものでなければ,縮小画像データのデータ量が調整され,目標となる第2の縮小画像が得られる(ステップ35)、とする。
【0003】
特許文献2では、圧縮処理されるブロック単位ごとにリスタートインターバルマーカを挿入したデータ構造の圧縮データを作成する。これにより、各ブロックの圧縮データの先頭の直流値は絶対値となり、更に各リスタートインターバルマーカは、アドレス情報のみで(ビット情報なしで)フラッシュROMへの記録位置が特定される。従って、フラッシュROMから任意のブロックを読み出す際にビット位置を指定する必要がなく、また、JPEG伸張ブロックでの伸張時に他のブロックの先頭の直流値を必要としないため、ブロック単独でそのブロックの圧縮データを復号することができる、とする。
【0004】
特許文献3では、サーバコンピュータ側の画像処理に必要な最小限の解像度に応じた画像データをクライアントコンピュータからサーバコンピュータに対して送信するとする。
【0005】
特許文献4の画像処理装置は、取得された画像情報を複数のブロックに分割する分割部と、分割された複数のブロックの中から文字を含む有意ブロックを選出する有意ブロック選出部と、選出された有意ブロックを複数の圧縮率のいずれかで圧縮し圧縮データを出力する圧縮部と、圧縮データを伸張し伸張画像を出力する伸張部と、複数の圧縮率で画像情報全体を圧縮したときの各予想ファイルサイズを算出する予想ファイルサイズ算出部とを含む。
【0006】
図9は、従来のJPEGのデコード処理の概略を示すフローチャートである。JPEGのデコード処理は、ハフマン復号化(S21)、逆量子化(S22)、逆DCT(S23)が伸張ブロックの各々について繰り返される(S24)ことで行われる。1つのブロックの可変長符号には、1個のDC係数と63個のAC係数からなるDCT係数が含まれる。なお、JPEG2000のデコード処理も図9と同様の流れで行われ、ブロック単位のEBCOT(Embedded Block Coding with Optimal Truncation)復号化、逆量子化、および逆離散ウェーブレット変換がそれぞれS21〜S23に相当する。
【0007】
DC係数の符号は、例えば図10のような符号表で決定される。この符号表自体は、JPEG符号化時に決定され、JPEGファイルのヘッダに記述される。
【0008】
DC係数は−255〜255までの整数値をとる。この値によって9種のグループに分類される。例えば、DC値が50であれば、当該表に従い、分類が「6」になる。このとき、分類「6」を表す2進数「1110」が符号化され、さらに6ビット分の付加ビットによって分類「6」に含まれる−63〜−32、32〜63の値のうち50であることを指定する。分類「6」には64通りのDC値の可能性が含まれるため、2^6=64で6ビットを上記「1110」の後に付加することでDC値を特定できる。
【0009】
AC係数については、例えば図11のような符号表で決定される。この表も、JPEG符号化時に決定され、JPEGファイルのヘッダに記述される。
【0010】
AC係数もDC係数と同様に値によって分類される。分類は、0〜10の値によって表され、付加ビットの数と等しい。AC係数を符号化する際には、係数自体の値と、その係数に先行する0の係数が続く数(ランレングス)を同時に表す点でDC係数と異なる。すなわち、例えば「0、0、4」と続く3つのAC係数を「分類=3、ランレングス=2」に対応するハフマン符号と3ビットの付加ビットで表す。
【0011】
また、このときランレングスが16以上になるときには、ランレングス=16の符号(ZRL)を一旦出力し、次に元々のランレングスから16を減じた数をもとに符号を発行する。
【0012】
復号化する時には、上記表からランレングスと付加ビット数=分類を求め、後続する付加ビットを用いて、AC係数を復号化する。この手順をAC係数が63個復号化されるまで続ける。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開2006−60540号公報
【特許文献2】特開2006−313984号公報
【特許文献3】特開2004−128948号公報
【特許文献4】特開2008−85914号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
近年、携帯電話のような小さな表示画面を備えた端末機器の普及に伴い、圧縮記録画像から任意の領域を切り取りつつ、任意の解像度に縮小して画像を当該表示画面に出力したいというニーズがある。
【0015】
例えば、新聞のような大きな面積を持つ記録画像を、携帯電話のような小さな端末機器の表示画面で表示する場合を考える。新聞全体を縮小してこの画面全体に表示すると記事が小さすぎて読めないため、読みたい部分を新聞から切り出し、これを拡大し、切り出した部分の記事が読めるように端末機器の表示画面に適した解像度でこれを表示する方が現実的である。
【0016】
この場合、特許文献1のように、一旦圧縮記録画像の全体を復号化した上で表示に必要な部分の画像を切り出すという手順をとると、表示しない部分の復号化が無駄である。
【0017】
特許文献2では、圧縮処理されるブロック単位ごとにリスタートインターバルマーカを挿入するという処理をそもそも行わなければブロック単独での圧縮データ復号ができない。
【0018】
本発明は、ブロックの単位を示す情報が挿入されない通常の圧縮処理技術に従い、画像データが複数領域に分割されて個別に圧縮処理を施された圧縮画像データから、圧縮記録画像の全体を伸長するという処理を経ることなく、表示、プリントアウト、ネットワーク送信などの各種形態でのデータ出力に必要な部分のみ画像を切り出す技術を提供する。
【課題を解決するための手段】
【0019】
本発明は、ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付ける範囲指定部と、圧縮画像を可変長復号化する復号化部と、範囲指定部が受け付けた範囲に基づいて伸長すべきブロックを抽出する抽出部と、復号化部が可変長復号化した圧縮画像のうち、抽出部の抽出したブロックにのみ伸長を行う伸長部と、を備える画像伸長装置を提供する。
【0020】
目標解像度を取得する目標解像度取得部と、目標解像度取得部の取得した目標解像度に基づき、抽出部の抽出したブロックから伸長すべき圧縮画像の成分を決定する決定部と、を備え、伸長部は、決定部の決定した圧縮画像の成分を伸長する。
【0021】
画像データはブロック単位の離散周波数領域変換もしくは離散ウェーブレット変換で得られた係数で表現されており、伸長部は、目標解像度取得部の取得した目標解像度に基づき、抽出部の抽出したブロックから伸長すべき周波数成分を決定し、決定された周波数成分の係数に対応する可変長復号化した圧縮画像データ列に逆量子化および逆離散周波数領域変換もしくは逆離散ウェーブレット変換を施すことで伸長する。
【0022】
係数で表現された圧縮画像データはハフマン符号、EBCOT(Embedded Block Coding with Optimal Truncation)方式または算術符号により可変長符号化されている。
【0023】
可変長符号化された画像データはJPEG(Joint Photographic Experts Group)またはJPEG2000画像データを含む。
【0024】
伸長部の伸長した画像データを出力する出力部を備える。
【0025】
出力部は、伸長部の伸長した画像データを表示装置、プリンタ、ネットワークのうち少なくとも1つに出力可能である。
【0026】
本発明は、携帯端末から送信要求された画像を配信する画像配信サーバからの要求に応じて画像を画像配信サーバに送信する画像蓄積サーバが、ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付けるステップと、圧縮画像を可変長復号化するステップと、受け付けた範囲に基づいて伸長すべきブロックを抽出するステップと、可変長復号化した圧縮画像のうち、抽出したブロックにのみ伸長を行うステップと、伸長した画像データを画像配信サーバに送信するステップと、を実行する画像伸長方法を提供する。
【0027】
本発明は、携帯端末から送信要求された画像を画像蓄積サーバに要求し、画像蓄積サーバから画像を受信する画像配信サーバが、ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付けるステップと、圧縮画像を可変長復号化するステップと、受け付けた範囲に基づいて伸長すべきブロックを抽出するステップと、可変長復号化した圧縮画像のうち、抽出したブロックにのみ伸長を行うステップと、伸長した画像データを携帯端末に送信するステップと、を実行する画像伸長方法を提供する。
【0028】
本発明は、情報処理装置が、ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付けるステップと、圧縮画像を可変長復号化するステップと、受け付けた範囲に基づいて伸長すべきブロックを抽出するステップと、可変長復号化した圧縮画像のうち、抽出したブロックにのみ伸長を行うステップと、を実行する画像伸長方法を提供する。
【0029】
上記の画像伸長方法を情報処理装置に実行させるための画像伸長プログラムも本発明に含まれる。
【発明の効果】
【0030】
本発明によると、指定された画像範囲の出力(表示、ネットワーク送信、印刷など)に必要な画像のブロックだけが伸長されるので、画像伸長処理が簡略化され、必要な範囲を即座に出力できる。
【図面の簡単な説明】
【0031】
【図1】画像提供システムの概略構成図
【図2】携帯端末の構成を例示した図
【図3】JPEG画像ファイルの構造を示す図
【図4】伸長処理の概略フローチャート
【図5】圧縮記録画像データの一例を示す図
【図6】DCT係数の一部の逆変換処理(S7)の詳細フローチャート
【図7】画像提供システムの他の構成例(画像蓄積サーバで伸長処理)を示す図
【図8】画像提供システムの他の構成例(画像配信サーバで伸長処理)を示す図
【図9】JPEGデコード処理の概略を示すフローチャート
【図10】DC係数の符号表の一例を示す図
【図11】AC係数の符号表の一例を示す図
【発明を実施するための形態】
【0032】
<第1実施形態>
図1は本発明の好ましい第1実施形態に係る画像提供システムの概略構成を示す。このシステムは、画像蓄積サーバ1、画像配信サーバ2、携帯電話3、プリンタ4を含む。画像蓄積サーバ1と画像配信サーバ2はLANやインターネットなどの各種ネットワークで接続されている。また、画像配信サーバ2と携帯電話3は移動体電話通信網などの各種ネットワークで接続されている。また、携帯電話3とプリンタ4は、赤外線通信などの各種ネットワークで接続されている。
【0033】
画像蓄積サーバ1および画像配信サーバ2は、コンピュータで構成され、CPU、メモリ(RAM,ROM)、HDD、通信ユニット、データ入出力回路、表示回路、操作装置などを備える。
【0034】
画像配信サーバ2が、携帯電話3からの所望の画像の配信要求に基づき、ネットワーク経由で当該画像の配信を画像配信サーバ2に要求すると、画像配信サーバ2はネットワーク経由で当該画像の送信を画像蓄積サーバ1に要求する。
【0035】
画像蓄積サーバ1は、画像配信サーバ2から当該要求を受信すると、要求で示された画像の識別情報(ハイパーリンク、画像ファイル名など)に対応する圧縮記録画像を画像データベース1aから取得し、この画像を画像配信サーバ2に送信する。圧縮記録画像は、JPEG、JPEG2000、MPEG(動画)などの圧縮方式に従い、オリジナル画像データが複数領域に分割されて個別に圧縮処理を施された圧縮画像データである。JPEG圧縮の場合、オリジナル画像データを離散コサイン変換(DCT)し、ビット配分を決定して量子化を行う。ベースライン方式の場合、量子化データをハフマン符号化により符号化して符号化データを得る。JPEG2000圧縮の場合、オリジナル画像データを離散ウェーブレット変換(DWT)し、量子化およびEBCOT方式によるエントロピー符号化(ビットプレーンを単位としたエントロピー符号化)を行う。
【0036】
画像配信サーバ2は、画像蓄積サーバ1から受信した画像を携帯電話3に送信する。携帯電話3は、受信した画像の全体あるいは一部を表示画面211に表示したり、プリンタ4転送したりできる。
【0037】
図2は携帯電話3の内部構成を示すブロック図である。この携帯電話3は、CPU230でその全体が制御されるように構成されている。このCPU230には揮発性のメモリであるRAM231、不揮発性のメモリであるROM232、表示画面211を備えた表示部233、操作キー221、書換可能な不揮発性のメモリである書換可能ROM234および電源部235が配備されている。
【0038】
ROM232には、CPU230で実行されるプログラム等が記憶されており、また、書換可能ROM234には、画像配信サーバ2からパケット通信によりダウンロードされたプログラムが記憶され、そのROM232や書換可能ROM234に記憶されたプログラムがCPU230で実行されることにより、この携帯電話3の各部の動作が制御される。
【0039】
RAM231は、CPU230で実行されるプログラムの作業領域として利用される他、この携帯電話3で取り扱われる画像データの画素数の設定値や画像データ等の格納領域として利用される。
【0040】
表示部233は、表示画面211を有し、CPU230の指示に応じてこの表示画面211にRAM231の画像を表示する。
【0041】
表示画面211のアスペクト比は任意であり、例えば4:3、16:9である。また表示画面211の解像度は任意であり、例えば320×180、320×240、640×480、1024×768、1280×768、1920×1080などである。表示画面211のアスペクト比および解像度を示す情報はROM232に記憶されている。
【0042】
操作キー221は、ユーザによる操作を受けその操作をCPU230に伝える役割りを担っている。操作キー221が操作されると、CPU230は、その操作に応じて各部を制御する。
【0043】
電源部235には、電池(図示せず)が装填されその電池からの電力を、CPU230や、そのCPU230からの指令を受けてこの携帯電話の各部に供給する。
【0044】
また、この携帯電話3には、電話機能を担う構成要素として、アンテナ213、送受信部241、信号処理部242、および通話部243が備えられている。この通話部243には、受話口222の内部に配備されたマイクロホン243aと送話口212の内部に配備されたスピーカ243bが含まれている。
【0045】
送受信部241は、アンテナ213での電波の送受信を担う回路要素であり、アンテナ213での電波受信により送受信部241で得られた信号は信号処理部に入力されて信号処理を受けて通話部243のスピーカ243bから音声として出力される。また、通話部243のマイクロホン243aでピックアップされた音声は信号処理部242で信号処理を送受信部241を介してアンテナ213から電波として送信される。
【0046】
また、この携帯電話3はパケット通信機能も備えており、アンテナ213および送受信部241を介して受信したパケット信号は、信号処理部242で適切な信号処理を受けた後一旦RAM231に格納され、あるいはダウンロードされたプログラムの場合は書換可能ROM234に記憶され、操作キー221からの指示を受けたCPU230により、そのRAM231内のパケットデータが表示部233の表示画面211に表示され、あるいは書換可能ROMに記憶されたプログラムが実行される。携帯電話3がパケット通信で受信するデータは何でもよく、例えば、圧縮記録画像データ、文字データ、音声データ、プログラムなどが挙げられる。
【0047】
操作キー221で作成されたパケット通信文書等はその作成時点ではRAM231に一旦格納され、操作キー221からの送信指示に応じて信号処理部242に送られて送信用に信号処理を受け、送受信部241およびアンテナ213を介して電波として送信される。
【0048】
さらに、この携帯電話3には、撮影部251、画像処理部252、および赤外線通信部253が備えられている。
【0049】
撮影部251には、撮影レンズ214および撮影素子251aが備えられており、撮影レンズを経由して取り込まれた被写体が撮影素子251aで提示されて画像信号が生成される。この撮影素子251aで得られた画像信号は画像処理部252で処理されてJPEGやJPEG2000やMPEGなどの各種の規格に準拠したデジタル圧縮画像データに変換され、CPU230を介して一旦RAMに格納され操作キー221の操作に応じて表示部233の表示画面211に表示され、あるいは、赤外線通信部253を介してプリンタ4などの外部機器に向けて送信される。また、この赤外線通信部253は、赤外線信号受信機能も備えており、送信した画像データがプリンタ4で受信された場合にプリンタ4から通信されてくる、画像データを受信したことを表わすアクノリッジ信号を受信する。
【0050】
これにより、この携帯電話3では、プリンタ4に向けて画像データを送信してから所定時間以内にアクノリッジ信号を受信できたか否かにより、送信したこれらデータがプリンタ4で正しく受信されたか否かが認識することができる。
【0051】
なお、ここでいう「携帯電話」とは、ノート型パソコンやPDAなどの各種携帯情報端末の一例にすぎない。また、赤外線通信部253を介してプリンタ4に送信する画像は、撮影部251に由来するものに限らず、画像配信サーバ2から送受信部241を介して受信した圧縮記録画像に由来する画像データでもよい。いずれの画像をプリンタ4に送信するかは操作キー221を介して任意に選択できる。
【0052】
図3は携帯電話3が受信あるいは撮影する圧縮記録画像データの一例であるJPEG画像ファイルの構造を示す。
【0053】
まず、JPEGデータの開始を示すSOIマーカー(2バイトの特定のデータ列)の後、DQTやDHTなどと呼ばれる圧縮のパラメータなどを表すセグメントがある。セグメントの先頭には、セグメント種類を表すバイトのマーカーの後、2バイトのセグメント長が記載されているため、セグメントのデータが不要であれば読みとばすことも可能である。セグメントの中にはなくてもよいものもある。いくつかのセグメントの後、SOSマーカーがあり、それ以降が画像データ本体となる。
【0054】
SOSマーカー以降は、MCUと呼ばれるマクロブロック単位で画像データが格納されている。JPEG方式では、MCUは8×8画素単位または16×16画素単位となる。具体的には、SOFセグメントの中に、色数とサンプリング比の記述があり、そこを参照することで画素単位を判定できる。例えば、色数が1のときや色数が3でサンプリング比が4:4:4のときはMCUは8×8画素単位であり、色数が3でサンプリング比が4:2:0のときはMCUは16×16画素単位である。
【0055】
図3では、よく使われている組み合わせの色数が3でサンプリング比が4:2:0のケースを想定して記述している。このとき、色数はY,Cb,Crの3色であれば、元画像16×16画素のマクロブロックから、Yの8×8画素ブロック4つと、CbとCrをそれぞれサンプリング(または縮小)した8×8画素のブロック2つの計6つのブロックデータでMCUが構成される。
【0056】
個々のブロックのデータでは、低周波成分(左上)から高周波成分(右下)に至るジグザグ順序に沿った0番から63番までの64個のDCT(離散コサイン変換)係数の量子化代表値が記述されている。すなわち64個の各DCT係数は、所定の量子化表に対応する量子化幅あるいは量子化ステップで除算され、その値の少数以下の桁を丸めることで、各DCT係数が量子化されている。
【0057】
量子化されたDCT係数はハフマン符号などで可変長符号化(エントロピー符号化)されているため、「何バイト後にブロックが終了する」というような形で出力に不要なブロックを読みとばすことはできない。また、ブロックのDCT係数で、ある番号以降のDCT係数が全て0である場合は、EOBマーカーを記述することで、その番号以降のDCT係数を記述しなくて済む。
【0058】
EOBは、ブロック内の後続のDCT係数の量子化代表値は全てゼロであるという意味のコードである。DCTを行って得られるDCT係数テーブルにおいては、左上に画質の劣化が顕在化しやすい低い空間周波数のDCT係数が配置され、右下に向かうほど画質の劣化が顕在化しにくい高い空間周波数のDCT係数が配置される。量子化代表値は、左上から右下に向かってジグザグの順序でエントロピー符号化されることから、この順序がジグザグ順序と呼ばれる。従って、このジグザグ順序の順にエントロピー復号化を行うと、低い空間周波数のDCT係数を表す量子化代表値ほど先に復元される。そして、ゼロの量子化代表値の列の先頭には、EOBが付加される。
【0059】
図4は画像蓄積サーバ1のCPUで実行される伸長処理の概略フローチャートを示す。この処理を画像蓄積サーバ1のCPUで実行させるためのプログラムはROMなどの記憶媒体に記憶されている。なお、このプログラムは画像配信サーバ2などのパソコンのCPUで実行することもできる。
【0060】
S1では、携帯電話3から画像配信サーバ2を介して所望の圧縮記録画像の送信要求を受信する。そして、当該要求に含まれる画像識別情報(ハイパーリンク、ファイル名など)に対応する圧縮画像ファイルをDB1aからRAMに取得する。
【0061】
S2では、RAMに保存された圧縮記録画像データ画像データの出力範囲(新聞記事の一部など)を示す情報の入力を、画像蓄積サーバ1の操作装置、あるいは携帯電話3の操作キー221を介して受け付ける。例えば、操作キー221に含まれる十字キーおよび確定キーの操作情報を携帯電話3から画像蓄積サーバ1に送信することにより、画像データ全体領域から出力したい領域の開始座標および終了座標、例えば矩形の左上の座標と右下の座標の指定を受け付ける。あわせて、画像の最終出力先の選択(表示画面211への出力、プリンタ4への出力あるいは携帯電話3と接続された他の携帯電話などの各種電子機器)を受け付けてもよい。
【0062】
S3では、操作キー221などから受け付けた画像データの出力範囲を示す情報に基づいて、圧縮記録画像データから伸長が必要なブロックを抽出する。
【0063】
例えば、図5のような圧縮記録画像データが画像蓄積サーバ1のRAMに保存されているとする。この画像は、15×10個のブロックに分割され、この各ブロックの画像データが各MCUに格納されている。また、出力範囲Zが指定されたとする。この場合、面積最小で出力範囲Zを包含するマクロブロック群である被覆マクロブロック群Zcovを、伸長が必要なブロックとして抽出する。
【0064】
一般的には、開始座標をXsおよび終了座標Ysであり、ブロックの一辺がNのときは、X方向について(Xs/N)番目かつY方向について(Ys/N)番目(ただし整数単位で切捨てし、最初のブロックは0番目とする)のブロックBiが抽出開始ブロックとなる。また、出力範囲Zの大きさすなわち目標解像度がXw×Yhのとき、切り取るべき右下端のブロックはX方向について((Xs+Xw−1)/N)番目かつY方向について((Ys+Yh−1)/N)番目のブロックBtとなる。
【0065】
なお、圧縮記録画像データはブロック単位で分割されていればよく、本処理の適用範囲はJPEGに限られない。また、本処理は動画および静止画のいずれにも適用できる。
【0066】
S4では、ハフマン符号表と圧縮に用いた量子化表とを用いて、ハフマン符号化された各ブロックのDCT係数をハフマン復号化し、ブロックごとに1つのDC係数と63個のAC係数を得る。例えば、図10および図11の符号表に基づいて、図9のS21(ハフマン復号化)のみを全てのブロックについて実行すればよい。換言すると、伸長処理すなわち図9のS22(逆量子化)およびS23(逆DCT)は全てのブロックに行うのではなく、必要なブロックにのみ行う。必要なブロックのみの圧縮データ伸長の処理の詳細は後述する。
【0067】
S5〜S8は、特許文献1と同様である。すなわち、S5では、RAMの圧縮画像データの解像度(画素数)をその圧縮画像データが格納されている画像ファイルのヘッダから取得する。
【0068】
S6では、出力先として表示画面211が選択された場合は、携帯電話3のROM232に保存された表示画面211の解像度(画素数)を取得し、これを目標解像度とする。この目標解像度は携帯電話3から画像蓄積サーバ1への画像の送信要求に含まれていてもよい。
【0069】
この目標解像度に基づいて、被覆マクロブロック群Zcovに含まれる各ブロックのうちIDCT(逆離散コサイン変換)を施すべきDCT係数の周波数成分を決定する。これは特許文献1と同様、縮小率α=目標解像度/オリジナルの圧縮画像データの解像度を計算し、全DCT係数のうち低周波側からジグザグ順に沿ったαの割合に相当する個数のDCT係数を用いて、オリジナル画像のα倍の画像を生成する。例えば、オリジナル画像の3/8の目標解像度で出力範囲Zを出力しようとする場合は、被覆マクロブロック群Zcovに含まれるMCUを構成する各8×8ブロックの左上(低周波数側からジグザグ順に沿った)の3×3個の係数が、逆変換される係数として決定される。
【0070】
なお、出力先としてプリンタが選択された場合は、プリンタ4から印刷解像度を取得し、これを目標解像度とする。
【0071】
S7では、S6で決定された周波数成分のDCT係数のみにIDCTを施し、間引き画像データを得る。目標解像度がオリジナル画像の解像度より小さければ、縮小画像データが得られることになる。ただし、携帯電話3の表示画面211は小さいので、携帯電話3から指定される目標解像度に従うと通常は縮小画像データが得られることになるであろう。DCT係数の逆変換は、S3で抽出された被覆マクロブロック群Zcovに含まれる係数のうちS6で決定されたもののみについて部分的に行うのであって、全てのブロックの全てのDCT係数を逆変換するのではない。この点は下記で詳説する。
【0072】
S8では、S7で得られた間引き画像データから、S2で指定された出力範囲に相当する部分を切り取った最終出力データを作成する。この最終出力データの大きさが目標解像度と同じでなければその目標とする解像度となるように画像データのデータ量をさらに調整してこれを改めて最終出力データとしてもよい。このデータ量の調整は,たとえば,原画像の周辺画像を算出して拡大,縮小する双三次補間を利用することができる。最終出力データは、画像蓄積サーバ1から画像配信サーバ2を介して携帯電話3に送信される。携帯電話3は受信した最終出力データを表示画面211に表示したり、プリンタ4に送信するなど各種の用途に供することができる。
【0073】
図6は伸長処理のS7(DCT係数の一部の逆変換)の詳細フローチャートを示す。この処理は、画像データ本体を表すビットストリームを可変長復号化(ハフマン復号化)して得られた各MCUの各ブロックのDCT係数のうち、被覆マクロブロック群Zcovに対応するブロックのDCT係数の一部の周波成分にのみIDCTを施す。
【0074】
S10では、画像データ本体の当初からジグザグ順に低周波側から高周波側にかけてハフマン復号化された64個分のDCT係数(DC係数1個、AC係数63個)の計数を行うことで1単位分のブロックを識別する。上述のように、S4ではハフマン復号化でブロックごとにDC係数1個、AC係数63個が得られているため、DC係数1個、AC係数63個を計数すれば1単位分のブロックを識別することができる。なお、計数の途中でEOBマーカーが検出された場合は、その時点でDCT係数の計数を打ち切る。
【0075】
S11では、S10で1単位分のブロックとして識別した、64個分のDCT係数(EOBで打ち切った場合は、最低周波数のDCT係数からEOBまでのDCT係数)が被覆マクロブロック群Zcovに含まれるか否かを判断する。
【0076】
例えば、色数が3でサンプリング比が4:2:0のときはMCUは16×16画素単位であるから、画像本体データの当初から識別された6つ目までのブロックはMCU(1)、7個目から12個目までのブロックはMCU(2)・・に所属するが、あるブロックが所属するMCUが被覆マクロブロック群Zcovに含まれれば当該ブロックは被覆マクロブロック群Zcovに含まれることになる。よって、識別されたブロックが所属するMCUが被覆マクロブロック群Zcovに含まれるか否かで当該ブロックが被覆マクロブロック群Zcovに含まれるかを判断すればよい。
【0077】
Yesの場合はS12に進む。Noの場合はS10に戻り、すでに識別された1単位分のブロックの最後(最高周波数に位置する64個目のDCT係数、またはEOBの後に続く0のDCT係数の最後)の次のDCT係数から、ジグザグ順に低周波側から高周波側にかけて64個分のDCT係数の計数を行うことで1単位分のブロックを識別する。
【0078】
S12では、被覆マクロブロック群Zcovに含まれると判断された64個分のDCT係数(または最低周波数のDCT係数からEOBまでのDCT係数)につき、特許文献1と同様に、目標解像度に基づいてIDCT(逆離散コサイン変換)を施すべきDCT係数の周波数成分を決定し(S6)、決定された周波数成分のDCT係数にのみ量子化代表値の逆量子化とIDCTを施し、画像データを得る(S7)。
【0079】
以上の処理の後、S10に戻り、すでに識別された1単位分のブロックの最後(最高周波数に位置する64個目のDCT係数、またはEOBの後に続く0のDCT係数の最後)の次のDCT係数から、ジグザグ順に低周波側から高周波側にかけて64個分のDCT係数の計数を行うことで次の1単位分のブロックを識別することを繰り返す。なお、S12で被覆マクロブロック群Zcovを構成する全てのブロックについて逆量子化とIDCTが施された場合は、S10に戻らず本ループを抜けS8に進む。
【0080】
以上の処理により、ユーザから指定された画像の出力範囲につき、出力先(表示、ネットワーク送信または印刷)での目標解像度の達成に必要なブロックの一部のDCT係数だけに逆量子化とIDCTが施されるので、画像出力処理が簡略化され、必要な範囲を必要な解像度で即座に出力できる。
【0081】
なお、JPEG2000の場合は、JPEGのハフマン復号化、逆量子化、および離散逆コサイン変換を、それぞれEBCOT復号化、逆量子化、および逆離散ウェーブレット変換と読み替えれば、JPEG2000についても同様に、出力先での目標解像度の達成に必要なブロックの一部の離散ウェーブレット係数だけに逆量子化および逆離散ウェーブレット変換を施すことができる。
【0082】
<第2実施形態>
図4および図6の伸長処理の実行主体は画像蓄積サーバ1である必然性はなく、システム構成および用途に応じて変更しうる。図7および図8は画像提供システムの他の構成例を示す。
【0083】
例えば図7に示すように、画像配信サーバ2が、携帯電話3から任意の圧縮記録画像の指定を受け付けると、当該指定された圧縮記録画像を画像データベース1aから取得して送信するよう画像蓄積サーバ1に要求し、当該要求に応じて画像蓄積サーバ1から送信された当該圧縮記録画像を受信する。画像配信サーバ2は、当該圧縮記録画像に対する任意の出力範囲の指定を携帯電話3から受け付けると、当該圧縮記録画像について図4および図6の伸長処理を施し、得られた画像データを携帯電話3に送信してもよい。
【0084】
あるいは図8に示すように、画像配信サーバ2が、携帯電話3から任意の圧縮記録画像の指定を受け付けると、当該指定された圧縮記録画像を画像データベース1aから取得して送信するよう画像蓄積サーバ1に要求し、当該要求に応じて画像蓄積サーバ1から送信された当該圧縮記録画像を受信して携帯電話3に転送する。携帯電話3は、画像配信サーバ2から受信した圧縮記録画像について図5および図6の伸長処理を施し、得られた画像データをプリンタ4に送信してもよい。
【0085】
いずれの態様でも、ネットワーク送信する画像のデータ量を削減できる。
【符号の説明】
【0086】
1:画像蓄積サーバ、2:画像配信サーバ、3:携帯電話、4:プリンタ
【特許請求の範囲】
【請求項1】
ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付ける範囲指定部と、
前記圧縮画像を可変長復号化する復号化部と、
前記範囲指定部が受け付けた範囲に基づいて伸長すべきブロックを抽出する抽出部と、
前記復号化部が可変長復号化した圧縮画像のうち、前記抽出部の抽出したブロックにのみ伸長を行う伸長部と、
を備える画像伸長装置。
【請求項2】
目標解像度を取得する目標解像度取得部と、
前記目標解像度取得部の取得した目標解像度に基づき、前記抽出部の抽出したブロックから伸長すべき圧縮画像の成分を決定する決定部と、
を備え、
前記伸長部は、前記決定部の決定した圧縮画像の成分を伸長する請求項1に記載の画像伸長装置。
【請求項3】
前記画像データはブロック単位の離散周波数領域変換もしくは離散ウェーブレット変換で得られた係数で表現されており、
前記伸長部は、前記目標解像度取得部の取得した目標解像度に基づき、前記抽出部の抽出したブロックから伸長すべき周波数成分を決定し、前記決定された周波数成分の係数に対応する可変長復号化した圧縮画像データ列に逆量子化および逆離散周波数領域変換もしくは逆離散ウェーブレット変換を施すことで伸長する請求項2に記載の画像伸長装置。
【請求項4】
前記係数で表現された圧縮画像データはハフマン符号、EBCOT(Embedded Block Coding with Optimal Truncation)方式または算術符号により可変長符号化されている請求項3に記載の画像伸長装置。
【請求項5】
前記可変長符号化された画像データはJPEG(Joint Photographic Experts Group)またはJPEG2000画像データを含む請求項4に記載の画像伸長装置。
【請求項6】
前記伸長部の伸長した画像データを出力する出力部を備える請求項1〜5のいずれかに記載の画像伸長装置。
【請求項7】
前記出力部は、前記伸長部の伸長した画像データを表示装置、プリンタ、ネットワークのうち少なくとも1つに出力可能である請求項6に記載の画像伸長装置。
【請求項8】
携帯端末から送信要求された画像を配信する画像配信サーバからの要求に応じて前記画像を前記画像配信サーバに送信する画像蓄積サーバが、
ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付けるステップと、
前記圧縮画像を可変長復号化するステップと、
前記受け付けた範囲に基づいて伸長すべきブロックを抽出するステップと、
前記可変長復号化した圧縮画像のうち、前記抽出したブロックにのみ伸長を行うステップと、
前記伸長した画像データを前記画像配信サーバに送信するステップと、
を実行する画像伸長方法。
【請求項9】
携帯端末から送信要求された画像を画像蓄積サーバに要求し、前記画像蓄積サーバから前記画像を受信する画像配信サーバが、
ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付けるステップと、
前記圧縮画像を可変長復号化するステップと、
前記受け付けた範囲に基づいて伸長すべきブロックを抽出するステップと、
前記可変長復号化した圧縮画像のうち、前記抽出したブロックにのみ伸長を行うステップと、
前記伸長した画像データを前記携帯端末に送信するステップと、
を実行する画像伸長方法。
【請求項10】
情報処理装置が、
ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付けるステップと、
前記圧縮画像を可変長復号化するステップと、
前記受け付けた範囲に基づいて伸長すべきブロックを抽出するステップと、
前記可変長復号化した圧縮画像のうち、前記抽出したブロックにのみ伸長を行うステップと、
を実行する画像伸長方法。
【請求項11】
請求項10に記載の画像伸長方法を情報処理装置に実行させるための画像伸長プログラム。
【請求項1】
ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付ける範囲指定部と、
前記圧縮画像を可変長復号化する復号化部と、
前記範囲指定部が受け付けた範囲に基づいて伸長すべきブロックを抽出する抽出部と、
前記復号化部が可変長復号化した圧縮画像のうち、前記抽出部の抽出したブロックにのみ伸長を行う伸長部と、
を備える画像伸長装置。
【請求項2】
目標解像度を取得する目標解像度取得部と、
前記目標解像度取得部の取得した目標解像度に基づき、前記抽出部の抽出したブロックから伸長すべき圧縮画像の成分を決定する決定部と、
を備え、
前記伸長部は、前記決定部の決定した圧縮画像の成分を伸長する請求項1に記載の画像伸長装置。
【請求項3】
前記画像データはブロック単位の離散周波数領域変換もしくは離散ウェーブレット変換で得られた係数で表現されており、
前記伸長部は、前記目標解像度取得部の取得した目標解像度に基づき、前記抽出部の抽出したブロックから伸長すべき周波数成分を決定し、前記決定された周波数成分の係数に対応する可変長復号化した圧縮画像データ列に逆量子化および逆離散周波数領域変換もしくは逆離散ウェーブレット変換を施すことで伸長する請求項2に記載の画像伸長装置。
【請求項4】
前記係数で表現された圧縮画像データはハフマン符号、EBCOT(Embedded Block Coding with Optimal Truncation)方式または算術符号により可変長符号化されている請求項3に記載の画像伸長装置。
【請求項5】
前記可変長符号化された画像データはJPEG(Joint Photographic Experts Group)またはJPEG2000画像データを含む請求項4に記載の画像伸長装置。
【請求項6】
前記伸長部の伸長した画像データを出力する出力部を備える請求項1〜5のいずれかに記載の画像伸長装置。
【請求項7】
前記出力部は、前記伸長部の伸長した画像データを表示装置、プリンタ、ネットワークのうち少なくとも1つに出力可能である請求項6に記載の画像伸長装置。
【請求項8】
携帯端末から送信要求された画像を配信する画像配信サーバからの要求に応じて前記画像を前記画像配信サーバに送信する画像蓄積サーバが、
ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付けるステップと、
前記圧縮画像を可変長復号化するステップと、
前記受け付けた範囲に基づいて伸長すべきブロックを抽出するステップと、
前記可変長復号化した圧縮画像のうち、前記抽出したブロックにのみ伸長を行うステップと、
前記伸長した画像データを前記画像配信サーバに送信するステップと、
を実行する画像伸長方法。
【請求項9】
携帯端末から送信要求された画像を画像蓄積サーバに要求し、前記画像蓄積サーバから前記画像を受信する画像配信サーバが、
ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付けるステップと、
前記圧縮画像を可変長復号化するステップと、
前記受け付けた範囲に基づいて伸長すべきブロックを抽出するステップと、
前記可変長復号化した圧縮画像のうち、前記抽出したブロックにのみ伸長を行うステップと、
前記伸長した画像データを前記携帯端末に送信するステップと、
を実行する画像伸長方法。
【請求項10】
情報処理装置が、
ブロック単位で可変長符号化された圧縮画像において出力すべき範囲の指定を受け付けるステップと、
前記圧縮画像を可変長復号化するステップと、
前記受け付けた範囲に基づいて伸長すべきブロックを抽出するステップと、
前記可変長復号化した圧縮画像のうち、前記抽出したブロックにのみ伸長を行うステップと、
を実行する画像伸長方法。
【請求項11】
請求項10に記載の画像伸長方法を情報処理装置に実行させるための画像伸長プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2011−23863(P2011−23863A)
【公開日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願番号】特願2009−165549(P2009−165549)
【出願日】平成21年7月14日(2009.7.14)
【出願人】(306037311)富士フイルム株式会社 (25,513)
【Fターム(参考)】
【公開日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願日】平成21年7月14日(2009.7.14)
【出願人】(306037311)富士フイルム株式会社 (25,513)
【Fターム(参考)】
[ Back to top ]