JP4848462B2 - 圧縮画像の部分伸長方法および画像処理装置 - Google Patents

圧縮画像の部分伸長方法および画像処理装置 Download PDF

Info

Publication number
JP4848462B2
JP4848462B2 JP2010048478A JP2010048478A JP4848462B2 JP 4848462 B2 JP4848462 B2 JP 4848462B2 JP 2010048478 A JP2010048478 A JP 2010048478A JP 2010048478 A JP2010048478 A JP 2010048478A JP 4848462 B2 JP4848462 B2 JP 4848462B2
Authority
JP
Japan
Prior art keywords
image
macroblock
data
compressed
map 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
JP2010048478A
Other languages
English (en)
Other versions
JP2011188041A (ja
Inventor
督基 平賀
邦博 中
貴之 西山
健 三浦
和洋 中山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Morpho Inc
Original Assignee
Morpho Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Morpho Inc filed Critical Morpho Inc
Priority to JP2010048478A priority Critical patent/JP4848462B2/ja
Priority to US12/925,678 priority patent/US8532406B2/en
Priority to EP10189190.1A priority patent/EP2364023B1/en
Priority to CN201410140920.3A priority patent/CN103957416B/zh
Priority to CN2010105682441A priority patent/CN102196260A/zh
Publication of JP2011188041A publication Critical patent/JP2011188041A/ja
Application granted granted Critical
Publication of JP4848462B2 publication Critical patent/JP4848462B2/ja
Priority to US13/953,388 priority patent/US9275474B2/en
Priority to US14/989,624 priority patent/US9760251B2/en
Priority to US15/014,019 priority patent/US9703453B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0007Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4092Image resolution transcoding, e.g. by using client-server architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Signal Processing For Recording (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)
  • Processing Or Creating Images (AREA)

Description

本発明は、圧縮された画像データのうち一部のみを伸長する技術に係り、特にユーザの表示範囲や拡大・縮小およびスクロールの指示によりJPEG形式等の圧縮画像データの一部をデコード(解凍)して伸長し、表示装置へ出力する圧縮画像の部分伸長方法および画像処理装置に技術に関する。
近年、デジタルカメラやカメラ機能付き携帯電話の高解像度化によって、大容量の画像データを扱うようになってきた。一方、表示デバイスの解像度は表示するデータの解像度ほど高くないのが一般的である。
例えば、画像データを閲覧する表示デバイスは通常0.5M(VGA)〜2Mピクセル(ハイビジョンテレビ)程度しか解像度はなく、この場合、この表示デバイスに10Mピクセルのデータを全て出力して一度に見ることは不可能である。そこで閲覧の方法としては、「画像を縮小して全体を見る」または「画像を縮小せず(またはあまり縮小させずに)一部を見る」といういずれかの方法で閲覧することになる。この画像処理や画像データの保存には相当のメモリ容量が必要になるが、商品の低コスト化やハードウェアの制限から、メモリ容量に制約がある場合が多い。
このため、従来、画像処理や画像データの保存に使用されるメモリ容量を節約するための技術が提案されている。
例えば、特許文献1では、JPEG圧縮データに挿入されているRSTの位置を保持するRSTテーブルに基づいて、伸長開始位置を示すRSTの位置と、伸長終了位置を示すRSTの位置とを指定し、伸長開始位置より前の読み出し開始セクタから、伸長終了位置より後の読み出し終了セクタまでのデータを記録媒体から読み出し、このデータのうち、伸長開始位置から前記伸長終了位置までのデータを伸長する部分伸長装置が提案されている。
特許文献2では、少ないメモリ容量で大きなサイズの画像圧縮データを支障なく展開し、部分伸長画像の速やかな表示・スクロールを行うため、画像圧縮データストリームの先頭からのビット位置を、画像データの圧縮時または画像圧縮データの展開時等に、所定間隔毎に設定して圧縮データオフセット値として記憶しておき、原画像内の部分領域が指定されたとき、適切な圧縮データオフセット値を読み出して、圧縮データストリームの途中から画像圧縮データを部分展開してスクロール処理を行うという技術が開示されている。
また、特許文献3には、原画像を効率的に部分伸長するための走査テーブルを用いて、JPEG画像の部分伸長を行うための具体的な手法が記載されている。
一方、画像データを部分伸長して表示するには、ある程度処理時間が必要になる。このため、特許文献4では、撮影で得た原画像データから画素数を減少させたプレビュー画像データ及びこれよりさらに減少させ、規定の画素数としたサムネイル画像データを作成させ、原画像データと、対応するプレビュー画像データ及びサムネイル画像データとを一纏めにしてメモリカードに記録しておき、再生モード時にメモリカードに記録された画像データ中から一つを選択して、その画像データにプレビュー画像データが含まれていない場合には、対応する本画像データまたはサムネイル画像データを表示部に表示させるという技術が開示されている。
特許第3108283号公報 特許第3399743号公報 特開2000−278685号公報 特許第3747914号公報
しかしながら、画像を部分伸長するための制御データを生成したり、その制御データを用いて部分伸長するには、少なからずメモリ容量やCPU負荷などの処理コストがかかる。例えば、制御データ生成中に画像の表示やスクロール・拡大縮小などユーザからの操作要求が有った場合、制御データ生成のためにその操作要求が待たされたり、圧縮画像全体を解凍するのに比べて部分解凍する方が早いといっても、少なからず部分展開のためにスクロール処理等のスピードが制限されたりするという問題がある。
本発明は、上述のかかる事情に鑑みてなされたものであり、部分伸長のためのCPUの処理コストを抑え、部分伸長処理を行って画面表示を行う際に、ユーザ操作に迅速に応答して、高画質の画面表示を可能にする圧縮画像の部分伸長方法および画像処理装置を提供することを目的とする。
本発明による圧縮画像の部分伸長方法の概要は、圧縮画像をブロックごとに解凍するために必要な制御データ(以下、この制御データを「マップデータ」という。)を生成するときに、同時に全画面表示用の画像(以下、「高精細縮小画像」という)と、複数の画像を一覧表示するためのサムネイル画像(以下、「低精細縮小画像」)を生成して2次メモリ(ストレージ)にファイル形式で保存しておき、これら生成したデータのうち必要なデータのみをユーザからの操作要求があったときに主メモリに記憶させ、その操作要求の内容に応じて、高精細縮小画像または低精細縮小画像、およびマップデータを用いて部分解凍した画像を効果的に表示デバイスに出力することによって圧縮画像の高速な表示を可能にするものである。
以下、このマップデータ、高精細縮小画像、低精細縮小画像からなるデータを「キャッシュデータ」という。また、フラッシュメモリなどの大容量の2次メモリにファイル形式で保存されたキャッシュデータを「キャッシュファイル」という。
キャッシュデータの生成タイミングは、CPUの空時間(アイドリング時間)を利用した任意のタイミングであっても良いし、圧縮画像の最初のデコード(解凍)処理時、あるいは、非圧縮画像(元画像)データとして入力した場合はそのエンコード(圧縮)処理時であっても良い。
通常、画像表示のモードには、大きく分けて2つのモードがある。1つの画像を拡大/縮小/スクロールして見るための「詳細表示モード」と、複数の画像を一覧表示して目的の画像を探すための「サムネイル一覧モード」である。本発明では、詳細表示モードでは高精細縮小画像とキャッシュデータの両方を用い、サムネイル一覧モードでは低精細縮小画像のみを用いて高速表示を行う。
この低精細縮小画像を予め保存しておくことにより、ユーザから表示要求があったときに元画像を読み込む必要がなくなるので高速閲覧が可能になるが、低精細縮小画像は、圧縮画像の形式によっては、予め準備されている場合がある。例えば、JPEGデータ内には160×120ピクセルのサイズで埋め込まれるExifサムネイルと呼ばれるサムネイル画像があり、一般的にデジタルカメラや携帯電話の撮影時に付加される
このExifサムネイルはデジタルカメラの液晶画面の解像度が小さかった当時は十分であったが、最近のデジタルカメラやハイビジョンテレビに表示することを考えるとそのサイズは十分ではない場合がある。どの程度のサイズに縮小させるかについては表示デバイスに依存するので、Exifサムネイルのようにあらかじめ埋め込まれた低精細縮小画像を用いるのではなく、閲覧時に高精細縮小画像から動的に生成し、そのデータをキャッシングして再利用しても良い。
詳細表示モードに関しては、圧縮画像を左上から右下に展開していく過程で、不必要な部分を捨てることで少ないメモリ消費量で処理できる。しかし画像の一部を見る際には、画像をスクロールさせて表示させることが多く、その場合にスクロールの都度都度で画像全体を展開する必要があり、これはパフォーマンスを劣化させユーザ操作に対するレスポンスが悪くなる。本発明では、画像データのファイルストリーム上の位置が、画像内のどの位置に対応するかをあらかじめ走査して記録しておき、それに基づいて画像を部分的に解凍すれば高速に解凍できる。
<マップデータの構造>
次に、JPEGを例にとって本発明に係るマップデータの構造を説明する。JPEGデータは画像圧縮の標準的フォーマットで元画像をマクロブロックと呼ばれる単位に分割して圧縮を行って生成された画像データである。
JPEGは、マクロブロックごとに周波数変換、量子化、エントロピー圧縮を行い、画像の左上から右下のマクロブロックの順番に圧縮を行う。例えば図2では画像全体を8×6=48個のマクロブロックに分割し、MB00,MB01,…,MB47の順番で圧縮を行う。
圧縮後の各マクロブロックのデータは、画面左上から右下の順番でビットストリーム状に並んでおり、さらにそのDC成分値は自身の前のマクロブロックとの相対的な差異により値を保持しているため、あるマクロブロックをデコードするためには先頭のマクロブロックから順次走査する必要がある。そのため、画像の一部分を解凍する際には、都度画像全体を展開する必要があり、処理パフォーマンスの低下の原因となっていた。
このため、本実施の形態では、画像データのファイルストリーム上の位置が、画像内のどの位置に対応するか、さらに、そのマクロブロックにおけるDC成分値(YUVそれぞれについて)をあらかじめ走査してマップデータとして記録し、処理の高速化を図る。
図3にマップデータの構成を示す。
ここで、マップデータは、マクロブロックIDごとに、ファイルストリーム位置、DC成分値Y、DC成分値U、DC成分値Vが関連付けられている。
JPEGはエントロピー圧縮においてビット単位で圧縮されるため、ファイルストリーム位置はビット単位で指定される。
JPEG画像の部分解凍を行う際は、マップデータを参照しながら、表示する部分のマクロブロックのファイルストリーム位置を抽出して、その位置から解凍処理を行うことによって高速に解凍することが可能となる。たとえば、図4の太枠実線部分を表示デバイスの画面への表示範囲であるとすれば、その範囲を含む斜線マクロブロックのみを抽出して解凍処理を行う。
なお、マップデータは全てのマクロブロックについて夫々生成するとデータ量が多くなるので、マクロブロックを間引いてある一定の個数ごとに記録しておくのが好ましい。図5にマクロブロック5個ごとにファイルストリーム位置を記録したマップデータの構造の一例を示す。
マクロブロックを間引いてマップデータを生成した場合、マップデータに保存されていないマクロブロックは、マップデータに記録されたマクロブロックを基準として走査することにより解凍されることになる。
例えば、図6の太枠部分を表示させるための解凍処理をする場合、対象となるマクロブロックの周囲も解凍することとなるが、マップデータのデータ量を削減ができ、さらに、全てのマクロブロックを解凍するよりははるかに高速な解凍が可能となる。
<プログレッシブJPEGのマップデータの場合>
一般的にJPEGにはプログレッシブJPEGというものが存在する。これはファイルストリーム上で先頭の方は低周波数のデータを保存し、ストリームの後方にいくにつれて高周波数のデータとなるようにする。こうすることでネットワークを通じてファイル転送を行うときに、ファイルの先頭を転送した時点で粗い画像が表示され、ファイル転送が進むにつれて詳細データが表示させることができる。プログレッシブJPEGでは各周波数帯ごとのデータの集まりをスキャンと呼び、そのデータ構造は図7のようになっている。ここで、スキャン0は最低周波数帯(YUVのDC成分)であり、スキャンIDが大きくなるより高い周波数帯のデータが保存される。
各々のスキャンはヘッダデータを持つことができ、そのスキャンごとのハフマンテーブルなどを持つことができる。このハフマンテーブルは、ハフマン符号化されたデータを解凍する際に必要になるものである。
プログレッシブJPEGについてのマップデータは図8のようにスキャンIDごとにスキャンヘッダのファイルストリーム上の位置を保存し、各マクロブロックのスキャンIDごとにファイルストリーム上の位置を保存する。ここで、プログレッシブJPEGは、スキャン0(DC成分)については、前MCU(Minimum Code Unit)からの差分値になっているため、プログレッシブJPEGのマップデータについては、各マクロブロックごとに、ファイルストリーム上のそれまでのMCUのDC成分の累積値を計算して保存する。このYUVそれぞれのDC成分値はスキャンごとには存在せず、スキャン0にのみ存在する値である。
図8の例では、スキャンの個数は8個、マクロブロックの個数は8×6=48個で、マクロブロック5つごとに間引いてデータを保持している。
図5のマップデータとの差異は、スキャンヘッダのファイルストリーム位置が追加されたことと、マクロブロックのファイルストリーム位置は全てのスキャンについてその位置を保持することである。これにより、ファイル内の複数位置参照にも迅速に対応することができる。
プログレッシブJPEGについてのマップデータは複数のスキャンのファイルストリーム位置を保持しなくてはならないので、そのデータ量は多くなる。主メモリの容量によってはマップデータのデータサイズをある一定のデータ量以内にしたいケースもあり、その場合にはマクロブロックの間引きの間隔を調整すれば良い。例えばマップデータのデータ量の上限を Smap バイト、スキャンの個数をNscan、スキャンのファイルストリーム位置を保持するのにスキャン1つごとに Sscan バイト、マクロブロックの個数をNmb個、マクロブロックのファイルストリーム位置を保持するのにマクロブロック1つごとにSmb バイト、DC成分値YUVそれぞれについて保持するのにSdcバイトとすれば、マクロブロック間引き間隔 X は以下の式で求められる。
X = [ Nmb・(Smb・Nscan + 3・Sdc) / (Smap − Nscan・Sscan) ] ・・・(1)
ここで[ v ] はv以上の最小の整数を表すものとする。
具体的には、本発明に係る圧縮画像ファイルの部分伸長方法は、コンピュータを用いて、圧縮単位であるマクロブロックごとに圧縮された圧縮画像を部分伸長する方法であって、圧縮画像をコンピュータの記憶装置へ保存するステップと、圧縮画像のビットストリームから、一または二以上のマクロブロック単位で解凍するために必要なデータであるマップデータを生成すると共に、表示装置の画面解像度に基づいて所定サイズの縮小画像を生成し、該圧縮画像に関連付けて前記生成したマップデータと縮小画像とを記憶装置に保存するステップと、入力装置から入力される画像操作要求に基づいて、表示対象の圧縮画像に関連付けられた縮小画像を表示装置へ出力するステップと、縮小画像の表示範囲から解凍すべき一または二以上のマクロブロックを特定するステップと、特定されたマクロブロックについて、マップデータを用いて圧縮画像を部分解凍するステップと、部分解凍された画像のうち表示範囲の画像を表示装置へ出力するステップと、を含むことを特徴とする。
また、本発明に係る画像処理装置は、圧縮単位であるマクロブロックごとに圧縮された圧縮画像を保存する手段と、圧縮画像のビットストリームから、一または二以上のマクロブロック単位で解凍するために必要なデータであるマップデータを生成すると共に、表示装置の画面解像度に基づいて所定サイズの縮小画像を生成し、該圧縮画像に関連付けて前記生成したマップデータと縮小画像とを生成するキャッシュファイル生成手段と、入力装置から入力される画像操作要求に基づいて、表示対象の圧縮画像に関連付けられた縮小画像を表示装置へ出力する縮小画像出力手段と、縮小画像の表示範囲からマップデータのうち使用する一または二以上のマクロブロックを特定する使用ブロック判定手段と、使用ブロック判定手段によって特定されたマクロブロックについて、マップデータを用いて圧縮画像を部分解凍する部分解凍手段と、部分解凍手段によって、部分解凍された画像のうち表示範囲の画像を表示装置へ出力する部分解凍画像出力手段と、を備えたことを特徴とする。
本発明では、マップデータを生成する処理と、表示装置の画面サイズに合わせた縮小画像を生成する処理とを共通化させることによってCPUの処理コストを抑える。そして、ユーザの画像操作要求に基づいて、まず縮小画像をもとに画面表示用のデータを生成して出力し、その後マップデータを用いて部分解凍された画像データを用いて画面表示用のデータを生成して表示装置へ出力する。
また、本発明に係る画像処理装置では、使用ブロック判定手段は、さらに表示範囲および画像操作要求の内容に基づいて、部分解凍手段によって部分解凍すべきマクロブロックを追加することを特徴とする。
本発明では、単に縮小画像の現在の表示範囲から解凍すべきマクロブロックを特定するのみならず、拡大、縮小、移動方向などの画像操作要求の内容に基づいて解凍すべきマクロブロックを予測する。
また、本発明に係る画像処理装置では、部分解凍画像出力手段は、表示装置へ出力するための部分解凍画像が存在するか否かを判定し、存在する場合は縮小画像出力手段の動作を停止することを特徴とする。
本発明では、部分解凍した画像データ(以下、「部分解凍画像データ」という。)が存在する場合は、縮小画像の出力を禁止して、部分解凍した画像データを直ちに表示出力するので、操作要求時の画質のばらつきを低減して、高画質の表示画像を滑らかに移動等させることができる。
また、本発明に係る画像処理装置は、表示範囲および画像操作要求の内容に基づいて、部分解凍画像データをマクロブロック単位で削除する部分解凍画像削除手段を備えたことを特徴とする。
本発明では、表示範囲および画像操作要求の内容に基づいて、利用可能性の低くなった部分解凍画像データを判定してメモリから削除するので、効率的なメモリ利用が可能となる。
本発明によれば、マップデータを生成する際に表示画面のサイズに合わせて縮小画像を生成し、主メモリ上のマップデータや部分解凍画像を効率よく整理するので、CPUの処理コストを抑えることができる。また、ユーザの操作要求時に、部分解凍画像を用いて画面表示を行う前に、まず縮小画像を用いて画面表示を行うので、ユーザ操作に迅速に応答して、高画質の画面表示が可能になる。
本発明の第1の実施の形態による画像処理装置の機能ブロック図である。 JPEGデータの圧縮時の分割単位であるマクロブロックの説明図である。 いわゆる基本DCT方式のJPEGに対するマップデータの構成の一例である。 解凍すべきマクロブロックと表示範囲の関係の説明図である。 マップデータの構成の他の例であり、マクロブロックを5個ごとに保存するようにした場合の説明図である。 図5のマップデータの場合の解凍すべきマクロブロックと表示範囲の関係の説明図である。 プログレッシブJPEGのデータ構造の説明図である。 プログレッシブJPEGに対するマップデータの構成例である。 図1のキャッシュファイル生成手段26の動作概要の説明図である。 一般的なJPEGデータの解凍手順の説明図である。 図1のキャッシュファイル生成手段26において、高精細縮小画像とマップデータを同時に生成する手順の説明図である。 図1のキャッシュファイル生成制御手段25おけるキャッシュデータ生成タイミングを説明するためのフローチャートである。 図1のキャッシュファイル削除手段32によるキャッシュデータ削除処理の優先度の一例である。 高精細画像と元画像の表示範囲の対応関係の説明図である。 本発明の第2の実施の形態による画像処理装置の機能ブロック図である。 図15の使用ブロック判定手段28のマクロブロック追加ルーチンの処理手順を示すフローチャートである。 図15の部分解凍画像削除手段33の処理手順を示すフローチャートである。 操作情報に基づく部分解凍画像データ中の表示範囲の移動状況の説明図である。 図15の使用ブロック判定手段28の他の実施例による処理手順を示すフローチャートである(その1)。 図15の使用ブロック判定手段28の他の実施例による処理手順を示すフローチャートである(その2)。
以下、本発明の実施の形態を説明する。図1は、第1の実施の形態による画像部分伸長方法を実現する画像処理装置の機能ブロック図である。画像処理装置1は、画像データやユーザの操作要求を入力する入力装置11、CPUを有し入力されたデータを用いて演算処理を実行する演算処理部20、画像等の演算結果を表示する表示装置12、CPUから直接読書き可能な主メモリ40、フラッシュメモリなどの大容量の2次メモリ60から構成されている。なお、入力装置11は、カメラ等の撮像手段を備え、撮像手段によって撮像された画像を演算処理部20へ渡すようにしても良い。
この画像処理装置1は、上記の各機能を有していれば足りるので、パーソナルコンピュータなどの汎用の計算機で実現することもできるし、カメラ機能を備えた携帯電話などによって実現することもできる。
演算処理部20は、入力装置11から渡されたデータの入力処理を実行する入力処理手段21、2次メモリ60への書き込み処理および2次メモリ60からの読み出し処理を実行するメモリインタフェース手段(以下、「メモリI/F手段」という。)22、画像データをメモリI/F手段22を介してメモリ2次メモリ60へ格納する画像データ登録手段23、ユーザからの画像の表示やスクロールなどの操作要求を受け付ける操作要求入力手段24、キャッシュファイルの生成のタイミングを制御するキャッシュファイル生成制御手段25、キャッシュファイルを生成するキャッシュファイル生成手段26、ユーザからの操作要求により低精細縮小画像53または高精細縮小画像52を選択して表示出力する縮小画像出力手段27、圧縮画像のうち解凍すべきマクロブロックを判定する使用ブロック判定手段28、解凍すべきと判定されたマクロブロックについて解凍処理を実行する部分解凍手段29、部分解凍された画像を表示出力する部分解凍画像出力手段30、および、表示装置12への表示処理を実行する表示処理手段31を有している。各手段21から31は、CPUの機能としてプログラムによって実現可能である。なお、図1中、圧縮画像データの流れを破線矢印で示し、それ以外のデータの流れを実線矢印で示している。
次に、上記の構成を有する画像処理装置1の動作を説明する。
<圧縮画像データ入力処理>
画像処理装置1の演算処理部20は、入力処理手段21を介して入力装置11から送られてきた圧縮画像データを受け取ると、画像データ登録手段23に渡す。画像データ登録手段は、メモリI/F手段22を介して2次メモリ60の圧縮画像DB61へファイル形式で保存する。この画像ファイルには、入力順序を示すID(以下、「画像ID」という。)と入力時の時刻が付されている。
なお、図1には、非圧縮画像から圧縮画像を生成する機能については記載していないが、必要により、この機能を持たせるようにしても良い。本実施の形態では、非圧縮画像を直接入力することを前提に説明する。
<キャッシュファイル生成処理>
次に、キャッシュファイル生成制御手段25とキャッシュファイル生成手段26によるキャッシュファイル生成処理の手順について説明する。
キャッシュファイル生成制御手段25は、ユーザが閲覧ソフトウェアの操作を行っていない操作アイドル時にキャッシュファイル生成手段26を起動する。キャッシュファイル生成制御手段25は、また、操作要求入力手段24を通してユーザからの操作要求(画像の表示や拡大・縮小・移動などの要求)の通知を受けたときに、表示すべき画像のキャッシュファイルが2次メモリ60に存在するか否かを調べ、キャッシュファイルが存在しない場合は、ユーザ操作中であってもキャッシュファイル生成手段26を起動する。
キャッシュファイル生成手段26は起動されると、画像を快適に閲覧するために縮小画像とマップデータ51を生成する。縮小画像としては、ある特定の画像を全画面表示させるときに必要となる比較的大きな高精細縮小画像52と、複数の画像を一覧表示で見るときに必要となる低精細縮小画像(いわゆるサムネイル画像)53の2種類を生成する。高精細縮小画像52のサイズは、表示装置12の表示サイズ(即ち、表示装置の画面解像度)に依存する。すなわち、画像処理装置1の表示装置のパラメータとして設定される画面解像度情報(例えばXGAモード)を入力して、その解像度のサイズ(1024×768)の高精細縮小画像を生成する。
高精細縮小画像52と低精細縮小画像53の両方を、元の画像から直接生成するよりも、元の画像から高精細縮小画像52を生成した後に、高精細縮小画像52から低精細縮小画像53を生成したほうが高速に作成でき、好ましい実装方法である。
マップデータ51の生成には、スキャン位置の抽出やDC成分の累積計算など圧縮画像全体を走査する必要がある。一方、高精細縮小画像を生成するためにも圧縮画像全体を走査する必要がある。高精細縮小画像生成とマップデータ生成はそれなりの処理コストがかかり、このプロセスを短縮するために高精細縮小画像52を生成すると同時にマップデータ51自体も生成するようにするのが好ましい。
キャッシュファイル生成手段26は、マップデータ51、高精細縮小画像52、および低精細縮小画像53の各データを生成し、このキャッシュデータを、対応する画像ファイルの画像IDに関連付けて2次メモリ60にファイル形式で保存する。
なお、キャッシュデータ未生成の画像を表示出力する際には、キャッシュファイル生成手段26は、キャッシュデータ50の生成後、そのキャッシュデータを利用して画像表示を行ったのちに、そのキャッシュデータ50を2次メモリ60のキャッシュファイル62へ出力する。これにより、いち早く画像を表示することができ、操作性が向上する。キャッシュデータ50およびキャッシュファイル62の生成処理の流れを図9に示す。
図9において、キャッシュファイル生成手段26は、元画像(圧縮画像)61から高精細縮小画像/マップデータ生成処理(S101)によって、高精細縮小画像52とマップデータ51を同時に(すなわち一つの解凍処理の中で)生成する。そして、低精細縮小画像生成処理(S102)によって高精細縮小画像から低精細縮小画像53を生成する。このマップデータ51、高精細縮小画像52、低精細縮小画像53について、ユーザからの画像61の表示要求が有った場合は、表示出力に利用した後に、キャッシュファイル62へ出力する。
(キャッシュファイル生成の実施例)
次に、JPEG形式の画像を例にして、キャッシュファイル生成の手順を説明する。
JPEGに特化した高精細縮小画像生成の工夫として、全ての周波数帯域を解凍せずに、ある周波数以下の低周波帯域のデータのみを使用することでその処理速度を向上させる。
一般的にJPEGデータの解凍は図10に示すステップで行われる。
この図において、エントロピー符号の復号(S201)は、圧縮されたビットストリームからデータを復元する工程である。JPEGの場合はエントロピー圧縮にハフマン符号を用いており、この工程はハフマン符号化データを解凍する工程となる。その後逆量子化を行い(S202)、周波数データを復元する。周波数データは逆周波数変換(JPEGの場合は逆DCT)でYUV色空間のデータとなる(S203)。その後、表示装置12の色空間(例えばRGB)に合わせて色変換を行い(S204)、解凍処理が完了する。
生成した高精細縮小画像は再度JPEGで保存する。これによって、データ量を削減することができる。このとき、全ての周波数帯を逆周波数変換する必要はない。そのため、縮小画像のサイズに応じて必要となる低周波数帯のみを逆周波数変換を行うことにより、処理速度を向上させる。また、マップデータ51はエントロピー符号の復号の時点で生成する。
図11に、高精細縮小画像とマップデータ生成の手順を示す。
キャッシュファイル生成手段は26は、圧縮画像すなわち圧縮されたビットストリームからエントロピー符号の復号(S201)の時点でマップデータ51を生成する。ステップS201の後、逆量子化(S202)を行い、次に、低周波数帯のみ逆周波数変換を行う(S203a)。なお、ステップS203aでは、画面サイズと逆周波数変換を実行する周波数帯(スキャンNo.)との関係を予め定めたテーブルを備えておき、そのテーブルを参照して画面サイズに対応する周波数帯を抽出して逆周波数変換を行うのが良い。
ステップS203aの後、縮小処理(S301)、周波数変換(S302)、量子化(S303)、エントロピー符号化(S304)を実行して、JPEG形式の高精細縮小画像52を生成する。
(キャッシュファイル生成のタイミング)
キャッシュファイル62の生成処理は、上述したようにユーザ操作のアイドル時等の所定のタイミングで行うが、このとき、より快適な画像閲覧を実現するために、どの画像のキャッシュファイルを生成するか、すなわちキャッシュファイル生成の順番が重要になる。
本実施の形態では、ユーザ操作のモードとして、ある特定の画像を表示する詳細表示モードと、複数の画像を表示するサムネイル一覧モードで、異なる順番でキャッシュファイル62を生成するようにする。
以下、図12を用いて、キャッシュファイル生成制御手段25の動作を説明する。
キャッシュファイル生成制御手段25は、定周期または操作要求入力手段24からの起動要求によって起動すると、まず現在の操作モードが詳細表示モードか否かを判定する(S401)。
この判定の結果、詳細表示モードならば(S401で「YES」)、キャッシュファイル生成制御手段25は、まず閲覧中の画像についてキャッシュファイル62が存在するか否かを判定する(S402)。もし閲覧中の画像のキャッシュファイル62が無ければ、キャッシュファイル生成手段26を起動して、まず、まずその画像についてキャッシュデータ50を生成する(S403)。このときキャッシュファイル生成手段26は、前述のように生成したキャッシュデータ50を、まず表示装置12へ出力した後に、このキャッシュデータ50を2次メモリ60のキャッシュファイル62に書き出す。
次に、キャッシュファイル生成制御手段25は、ユーザが入力装置11のGUIで操作中か否かを判定する(S404)。なお、操作要求の入力を検知してから、その操作要求に関する処理を完了していない期間を操作中とする。
操作中にキャッシュデータ50を生成すると操作に対するレスポンスが遅くなり、快適な閲覧動作の妨げになるので、操作中はキャッシュデータを生成せずに終了する(S404で「YES」)。一方、ユーザが操作をしていない場合には、キャッシュファイル生成制御手段25は、画像IDから閲覧中の画像の直前直後の画像についてキャッシュファイル62が存在するか否かを判定し(S406)、もし存在しなければ、キャッシュファイル生成手段26を起動して、キャッシュデータ50を生成し、生成したキャッシュデータ50を2次メモリ60のキャッシュファイル62へ書き出す(S407)。
次に、キャッシュファイル生成制御手段25は、ユーザ操作が無ければ(S408で「NO」)、さらにもう一つ前後(隣接するブロック)の画像についても同様の処理(S406〜S409)を実行する。このように、現在閲覧している画像から取得順序がある一定の範囲内にある画像について順次ユーザ操作の有無を確認しながらステップS406〜S409の処理を繰り返してキャッシュファイル62を生成する(S410)。
サムネイル一覧モード時は、キャッシュファイル生成の順番は詳細表示モード時と異なる。これは低精細縮小画像を持っている場合は、その画像をひとまず表示すれば良く、生成の優先度を下げても良いからである。以下、サムネイル一覧モード時のキャッシュファイル生成制御手段25の処理手順を説明する。
キャッシュファイル生成制御手段25は、サムネイル一覧モードでは、まずユーザが操作中かどうかを判定し(S411)、操作中であればキャッシュデータ生成は行わない。一方、ユーザが操作をしていない場合は(S411で「NO」)、キャッシュファイル生成制御手段25は、現在の画像データがキャッシュファイルと低精細縮小画像のいずれかを持っているかどうかを判定する(S412,S413)。もしキャッシュファイルか低精細縮小画像のいずれかを持っていれば(S413で「YES」)、この段階ではキャッシュファイルは生成しない。もしキャッシュファイルもなく低精細縮小画像も持っていなければ(S413で「NO」)、キャッシュファイル生成制御手段25は、キャッシュファイル生成手段26を起動してキャッシュデータ50を生成して、これをキャッシュファイル62へ書き出す(S414)。次に、キャッシュファイル生成制御手段25は、ユーザ操作が無ければ(S415で「NO」)、さらにもう一つ前後(隣接するブロック)の画像についても同様の処理(S413,S414)を実行する。このように、現在閲覧している画像から取得順序がある一定の範囲内にある画像について順次ユーザ操作の有無を確認しながらステップS413〜S416の処理を繰り返してキャッシュファイル62を生成する(S417)。
ステップS417の後、キャッシュファイル生成制御手段26は、現在の画像がキャッシュファイルを持っているかどうかを判定し、もし無ければキャッシュファイル生成手段26を起動してキャッシュファイルを生成する(S418〜S420)。この段階では低精細縮小画像があったとしても、キャッシュファイルが無ければキャッシュファイル生成を行う。次に、キャッシュファイル生成制御手段25は、ユーザ操作が無ければ(S421で「NO」)、さらにもう一つ前後(隣接するブロック)の画像についても同様の処理(S419〜S420)を実行する。このように、現在閲覧している画像から取得順序がある一定の範囲内にある画像について順次ユーザ操作の有無を確認しながらステップS419〜S422の処理を繰り返してキャッシュファイル62を生成する(S423)。
<キャッシュファイル削除処理>
キャッシュファイル62の生成の順序は上述の通りであるが、キャッシュファイル62を全ての画像について生成して、2次メモリ60に保存するとそれだけでメモリの多くを消費する。
このため、キャッシュファイル削除手段32は、キャッシュファイルの個数/あるいはキャッシュファイルのデータ量の総和が予め定めたある一定の閾値Scを越えた場合に、不要なキャッシュファイルを削除する処理を行う。この判定はキャッシュファイル生成ごとにその生成直後にキャッシュファイル生成手段26からの起動要求によって実行される。キャッシュファイルが増加するのは、キャッシュデータを生成したときのみだからである。キャッシュファイル削除手段32は、一旦キャッシュファイルを削除すると判定すると、キャッシュファイルの個数/あるいはキャッシュファイルの総量が予め定めたある一定の閾値Sc'(<Sc)未満になるまで削除を行う。ここでキャッシュファイルを削除する順番については後述するが、このキャッシュファイル削除の直前に生成されたキャッシュファイルが次に削除しようとするキャッシュファイルになる場合がある。この場合にはキャッシュファイルの削除は行わず、キャッシュファイル生成についてこれ以上行わない状態にする。ただしこの場合に、現在の画像から前後の画像に移動した場合には、再びキャッシュファイルの生成を行う状態にリセットする。
キャッシュファイル削除手段32は、削除するキャッシュファイルの順番として、まずは現在の画像からある一定の範囲の外側にある画像について削除を行っていく。一定の範囲は任意に定めることができるが、例えば、圧縮画像の登録時に連番を付すようにして、予め設定した一定の番号以上離れている場合は範囲外、そうでない場合は範囲内する決め方やファイルの圧縮画像をカテゴリ付けするようにして、現在表示中の画像のカテゴリと同じ場合は範囲内、カテゴリが異なる場合は範囲外とする決め方等がある。
キャッシュファイル削除手段32は、範囲外のものは生成日時が古いものから優先的に削除し、範囲外のものが全て削除された後に、範囲内のものを順次削除していく。キャッシュファイル削除手段32は、範囲内のものについては現在の画像から離れている画像から優先的に削除する。すなわち、キャッシュファイルを削除する順番は図13に示すような優先度となる。例えば、現在表示中の画像から一定範囲外でキャッシュファイル生成日時が古いものは、他に比べて削除の優先度を高く設定している。
<圧縮画像表示処理>
次に、圧縮画像を解凍して表示装置12へ表示出力するときの手順を説明する。
ユーザからの画面操作要求があると、操作要求入力手段24は、キャッシュファイル生成制御手段25に、操作要求が有ったことを伝える。キャッシュファイル生成制御手段25は、この通知により、操作要求に対する処理が終了するまでキャッシュファイル生成手段26の起動を停止状態にする。
また、操作要求入力手段24は、縮小画像出力手段27と部分解凍画像出力手段30を起動すると共に、両手段27,30に、操作モード(詳細表示モード,サムネイル一覧モード)の他、表示対象の画像ID、スクロール方向、スクロール量、拡大・縮小等の操作情報を渡す。
縮小画像出力手段27は、操作要求入力手段24から起動されると、表示対象画像の画像IDに対応するキャッシュファイル62からキャッシュデータ50を読み込む。読み込まれたキャッシュデータは、主メモリ40上に記憶される。
縮小画像出力手段27は、次に操作モードを判定し、サムネイル一覧モードのときは、キャッシュデータ50の低精細縮小画像を表示出力する。
一方、詳細表示モードのときは、縮小画像出力手段27は、操作情報から高精細縮小画像の表示範囲を決定し、表示処理手段31を介して表示範囲の画像データを表示装置12へ出力する。なお、表示範囲の指定のしかたは、従前の技術によるが、たとえば、高精細縮小画像の画像左上頂点を座標原点(0,0)としたときの矩形表示範囲の対角関係にある頂点座標(以下、「対角座標」という。)(x1,y1)(x2,y2)で指定し、この指定した範囲のデータを表示装置12へ渡すようにする。
縮小画像出力手段27は、次に、使用ブロック判定手段28を起動する。使用ブロック判定手段28は起動されると、表示範囲からその表示範囲を含むマクロブロックのIDを演算する。
この演算のしかたの一例を図14を用いて説明する。図14(a)に高精細縮小画像と表示範囲、図14(b)にマクロブロックに分割された元画像と表示範囲をそれぞれ示している。例えば、高精細縮小画像のサイズがa×bであり、元画像のブロック分割数がm×n個であったとすると、高精細縮小画像の座標(x,y)に対応する元画像上の座標の属するマクロブロックのIDは、次の式で表すことができる。
マクロブロックID=<m・x/a>+m・<n・y/b> ・・・(2)
ここで、<v>は、v以下となる最大の整数を表す。
なお、上記(2)式は、IDの初期値を「0」とし、図2のように左上から右下にかけて連番とした場合の演算式である。
例えば、高精細縮小画像のサイズが1024×768であり、矩形表示範囲の対角座標が(x1,y1)=(500,200)、(x2,y2)=(750,500)とすると、上記(2)式から、(x1,y1)のマクロブロックIDは「11」、(x2,y2)のマクロブロックIDは「29」になる。同様に他の頂点のマクロブロックIDを求め、また、マクロブロックIDは、水平方向については1ずつ、垂直方向についてはmずつ増加するので、矩形表示範囲の属するマクロブロックIDを全て特定することができる。使用ブロック判定手段28は、求めた矩形表示範囲の属するマクロブロックIDを主メモリ40のバッファ2(42)へ保存する。その後、使用ブロック判定手段28は、部分解凍手段29を起動する。
部分解凍手段29は起動されると、圧縮画像のマップデータ51のうち、バッファ2にそのIDが記録されているマクロブロックのマップデータを用いて圧縮画像61を部分解凍する。部分解凍された画像データ(以下、「部分解凍画像データ」という。)は、主メモリ40のバッファ1(41)に保存される。部分解凍手段29は、バッファ2(42)に保存されている全マクロブロックIDについて当該IDのマクロブロックの解凍処理が完了すると部分解凍画像出力手段30を起動する。
次に部分解凍画像出力手段30は起動されると、バッファ1(41)に保存されている部分解凍画像データのうち、表示範囲の画像を表示装置12へ出力する。
このときの座標変換のしかたの一例を図14を用いて説明する。画像サイズA×Bの元画像の左上頂点を座標原点としたときの座標(X,Y)と、上記の高精細縮小画像の座標(x,y)との関係は、次の式によって求めることができる。
X=(A/a)・x
Y=(B/b)・y
したがって、部分解凍画像の左上頂点の座標を(α、β)とすると、部分解凍画像の左上頂点を座標原点とした座標系では、
(X’,Y’)=((A/a)・x―α,(B/b)・y―β) ・・・(3)
となる。
また、(α、β)は、マクロブロックIDをCとすると次の式で求めることができる。
α=(A/m)・(C−m・<C/m>)
β=(B/n)・<C/m>
ここで、<v>は、v以下となる最大の整数を表す。
上記(3)式によって、高解像度縮小画像の座標系を矩形展開された部分解凍画像の座標系に変換することができ、これによって高解像度縮小画像の表示範囲に対応する部分解凍画像を表示出力することができる。
上記の処理により、縮小画像出力手段27または部分解凍画像出力手段30から出力された画像データは、表示処理手段31を介して表示装置12へ出力される。
以上、本実施の形態によれば、ユーザから詳細表示モードの操作入力があったときに、まず高精細縮小画像が表示出力され、その後、圧縮画像が部分解凍されて表示装置12へ表示出力されるので、ユーザにストレスを与えることなく部分解凍処理を行うことができる。また、ユーザからの操作要求時に圧縮画像を全て解凍する必要はないので、メモリ資源を節約することができる。
なお、上記の(2)、(3)式を用いた座標変換のしかたは一例であり、本発明はこれに限定されるものではない。
次に、第2の実施の形態を説明する。本実施の形態は、主メモリ上にある部分解凍された画像を有効に利用して、より迅速にユーザの操作要求に応答させるものである。図15は、第2の実施の形態による画像部分伸長方法を実現する画像処理装置の機能ブロック図である。図1の画像処理装置1との主な違いは、主メモリ上の部分解凍画像を削除する部分解凍画像削除手段33を追加し、使用ブロック判定手段28と部分解凍手段29の処理内容を後述するように変更したこと、および、縮小画像出力手段27は高精細縮小画像の出力処理については部分解凍手段29から処理停止要求を受けることによって表示出力処理を停止するようにしたことである。
また、本実施の形態では、主メモリ40上に、現在使用中のマクロブロックIDとその部分解凍画像データを保存するバッファ1、現在の高精細縮小画像の表示範囲に対応するマクロブロックIDを保存するバッファ2に加えて、表示範囲外ではあるがバッファ2のマクロブロックIDに隣接するマクロブロックIDを保存するバッファ3を設ける。
その他の機能は、図1と同様であり、同一機能には同一符号を付して説明を省略する。
次に、上記の構成を有する画像処理装置1の動作を説明する。
操作要求入力があると、縮小画像出力手段27によって起動された使用ブロック判定手段28は、現在の表示範囲に対応するマクロブロックIDを主メモリ40上のバッファ2に保存して、部分解凍手段29を起動する。そして、部分解凍処理の後、後述するマクロブロック追加ルーチンを実行する。
部分解凍手段29は起動されると、バッファ2に保存されているマクロブロックIDを抽出する。そして、バッファ1内にバッファ2の全てのマクロブロックIDが存在するか否かを判定し、全てのマクロブロックIDが存在する場合は、縮小画像出力手段27に対して、高精細縮小画像の表示出力処理の停止指令を出力する。これにより、縮小画像出力手段27は、高精細縮小画像の表示出力処理を停止する。
一方、一つでもマクロブロックIDが存在しない場合は、部分解凍手段29は、縮小画像出力手段27に対して停止指令を出力せず、存在しないマクロブロックIDのブロックを部分解凍して、バッファ1に追加する。存在しない全てのマクロブロックの解凍が終了すると、部分解凍画像出力手段30を起動する。部分解凍画像出力手段30の動作は、第1の実施の形態と同様である。
次に、図16を用いて、使用ブロック判定手段28の実行するマクロブロック追加ルーチンについて説明する。
マクロブロック追加ルーチンは起動されると、バッファ2に保存されているマクロブロックIDに隣接するマクロブロックIDを求め(S501)、バッファ2に保存されていないマクロブロックIDについてのみバッファ3に保存する(S502)。
そして、バッファ3に保存されているマクロブロックIDを抽出して、抽出したマクロブロックIDがバッファ1に存在するか否かを判定し(S503)、存在しない場合は、部分解凍手段29によって、そのマクロブロックIDのブロックを部分解凍してバッファ1に追加する(S504)。バッファ3の全てのマクロブロックIDについてステップS504の処理が終了すると、部分解凍画像削除手段33を起動する。
部分解凍画像削除手段33は、起動されると、まず、バッファ1から最初のマクロブロックIDを抽出して(S601)、抽出したマクロブロックIDがバッファ2に存在するか否かを判定し(S603)、存在しない場合は次にバッファ3に存在するか否かを判定する(S604)、存在しない場合は、そのマクロブロックIDおよび当該IDの部分解凍画像データを削除する(S605)。上記のステップS603〜S605の処理をステップS601で抽出した全てのマクロブロックIDについて繰り返す(S602a,S602b)。
なお、タスク処理の場合、部分解凍画像削除手段33は、使用ブロック判定手段28,部分解凍手段29,部分解凍画像出力手段30など他の手段よりも優先順位を下げておくようにする。これにより、部分解凍画像削除手段33の動作中に、新たな操作要求が発生した場合でも、その操作要求を優先させることができる。
本実施の形態によれば、主メモリ上には、常に、現在表示中の部分解凍画像データが保存され、その隣接ブロックについても予め準備されるので、スクロール等の操作要求に対して、より高精細の部分解凍画像で迅速に表示させることができる。また、処理が間に合わないような場合についてのみ、高精細縮小画像を表示することにより、第1の実施の形態に比べてより効果的な画像表示が可能となる。さらに、隣接しているマクロブロックよりも離れた位置のマクロブロックの部分解凍画像データは逐次削除していくので、主メモリを有効に使用することができる。
なお、隣接する画像を解凍する場合、ユーザの操作指示が画像の縮小(ズームアウト)操作のときは、全ての隣接画像を解凍し、スクロール操作の時はスクロールの方向に隣接する画像のみを解凍するようにしても良い。これにより、主メモリを有効に利用して、効果的な予測解凍処理が可能となる。
使用ブロック判定手段28の実行する予測解凍手順の一例を図19、図20に示す。この手順例は、図18に示すように、表示範囲の各頂点の移動方向と、各頂点とマクロブロックの画像境界との距離が所定の条件を満たした場合には、その隣のマクロブロックについても解凍するものである。
左上の頂点(X1,Y1)を例にさらに詳しく説明する。使用ブロック判定手段28は、上記の式(2)によって、(X1,Y1)の属するマクロブロックIDを算出して変数Iに代入する(S701)。そして、操作要求入力手段24から渡される操作情報により、この頂点がx軸の負の方向へ移動している場合は(S702で「YES」)、現在の表示範囲の頂点座標(X1,Y1)とその頂点が属するマクロブロックのX負方向の境界との距離が一定値以下か否かを判定する(S703)。一定値以下の場合は(S703で「YES」)、X負方向に「I-1」のマクロブロックが存在するか否かを判定する(S704)。すなわち、現在(X1,Y1)が属するマクロブロックが左端にないか否かを判定するものである。これは、マクロブロックの分割条件(m×n)と現在のマクロブロックIDから求めることができるし、図2に示すように、幾何学的な配列情報を記憶することによっても求めることもできる。この判定の結果、X負方向にI-1のマクロブロックが存在する場合は(S704で「YES」)、部分解凍手段29を起動して、マクロブロックID「I-1」の解凍をする(S705)。
続いて、使用ブロック判定手段28は、上記と同様にY軸上の負方向へ移動しているか否かを判定し(S706)、この頂点がY軸の負の方向へ移動している場合は(S706で「YES」)、現在の表示範囲の頂点座標(X1,Y1)とその頂点が属するマクロブロックのY負方向の境界との距離が一定値以下か否かを判定する(S707)。一定値以下の場合は、Y負方向に「I-m」のマクロブロックが存在するか否かを判定する(S708)。すなわち、現在(X1,Y1)が属するマクロブロックが上端にないか否かを判定するものである。この判定の結果、Y負方向にI-mのマクロブロックが存在する場合は(S708で「YES」)、部分解凍手段29を起動して、マクロブロックID「I-m」の解凍をする(S709)。さらに、部分解凍手段29によって、マクロブロックID「I-m-1」の解凍をする(S710)。これは、頂点(X1,Y1)が斜め左上方向に移動しており、斜め方向のマクロブロックに近づいているからである。
一方、ステップS702,ステップS703,ステップS704の判定で「NO」の場合は、ステップS711へ移行して、ステップS706〜S709と同様の処理を実行する。
以上が表示範囲の画面左上の頂点の動きによるマクロブロックの予測解凍処理であるが、右上(X3,Y3)、左下(X4,Y4)、右下(X2,Y2)の頂点についても、図19、図20に示した手順によって同様に予測解凍処理をすることができる。
この予測解凍処理により、表示範囲外であっても表示可能性の高いマクロブロックを事前に解凍するので、上記実施形態の効果に加えて、さらに応答性能を向上させることができる。
本発明は、上述の実施の形態に限定されることなく、その要旨を逸脱しない範囲で種々変形して実現することができる。また、各実施の形態で説明した各機能(手段)は、実施の形態を跨って単独でまた組み合わせて実現することが可能である。
1 画像処理装置
11 入力装置(入力デバイス)
12 表示装置(表示デバイス)
20 演算処理部
21 入力処理手段
22 メモリインタフェース手段
23 画像データ登録手段
24 操作要求入力手段
25 キャッシュファイル生成制御手段
26 キャッシュファイル生成手段
27 縮小画像出力手段
28 使用ブロック判定手段
29 部分解凍手段
30 部分解凍画像出力手段
31 表示処理手段
32 キャッシュファイル削除手段
33 部分解凍画像削除手段
40 主メモリ
50 キャッシュデータ
51 マップデータ
52 高精細縮小画像
53 低精細縮小画像
60 2次メモリ
61 圧縮画像
62 キャッシュファイル

Claims (5)

  1. コンピュータを用いて、圧縮単位であるマクロブロックごとに圧縮された圧縮画像を部分伸長する方法であって、
    圧縮画像をコンピュータの記憶装置へ保存するステップと、
    前記圧縮画像のビットストリームから一または二以上のマクロブロック単位で解凍するために必要なデータであるマップデータを、前記圧縮画像を一旦解凍して生成すると共に、表示装置の画面解像度に基づいて所定サイズの縮小画像を生成し、該圧縮画像に関連付けて前記生成したマップデータと縮小画像とを記憶装置に保存するステップと、
    入力装置から入力される画像操作要求があると、表示対象の圧縮画像に関連付けられた前記縮小画像を前記表示装置へ出力するステップと、
    前記縮小画像のサイズがa×bであり、元画像のブロック分割数がm×n個であり、前記縮小画像の座標(x,y)に対応する元画像上の座標の属するマクロブロックのIDを次の式で表し、画像左上頂点を座標原点としたときの、矩形表示範囲の対角関係になる頂点座標で指定された前記縮小画像の表示範囲から解凍すべき一または二以上のマクロブロックを特定するステップと、
    マクロブロックのID=<m・x/a>+m・<n・y/b>
    ここで、<v>は、v以下となる最大の整数を表す。
    特定されたマクロブロックについて、前記マップデータを用いて前記圧縮画像を部分解凍するステップと、
    部分解凍された画像のうち前記表示範囲の画像を前記表示装置へ出力するステップと、
    を含むことを特徴とする部分伸長方法。
  2. 圧縮単位であるマクロブロックごとに圧縮された圧縮画像を保存する手段と、
    前記圧縮画像のビットストリームから一または二以上のマクロブロック単位で解凍するために必要なデータであるマップデータを、前記圧縮画像を一旦解凍して生成すると共に、表示装置の画面解像度に基づいて所定サイズの縮小画像を生成し、該圧縮画像に関連付けて前記生成したマップデータと縮小画像とを生成するキャッシュファイル生成手段と、
    入力装置から入力される画像操作要求があると、表示対象の圧縮画像に関連付けられた前記縮小画像を前記表示装置へ出力する縮小画像出力手段と、
    前記縮小画像のサイズがa×bであり、元画像のブロック分割数がm×n個であり、前記縮小画像の座標(x,y)に対応する元画像上の座標の属するマクロブロックのIDを次の式で表し、画像左上頂点を座標原点としたときの、矩形表示範囲の対角関係になる頂点座標で指定された前記縮小画像の表示範囲から解凍すべき一または二以上のマクロブロックを特定する使用ブロック判定手段と、
    マクロブロックのID=<m・x/a>+m・<n・y/b>
    ここで、<v>は、v以下となる最大の整数を表す。
    前記使用ブロック判定手段によって特定されたマクロブロックについて、前記マップデータを用いて前記圧縮画像を部分解凍する部分解凍手段と、
    前記部分解凍手段によって、部分解凍された画像のうち前記表示範囲の画像を前記表示装置へ出力する部分解凍画像出力手段と、
    を備えたことを特徴とする画像処理装置
  3. 前記使用ブロック判定手段は、さらに前記表示範囲および前記画像操作要求の内容に基づいて、前記使用ブロック判定手段によって特定されたマクロブロックに隣接するマクロブロックであって、前記部分解凍手段によって部分解凍すべきマクロブロックを追加することを特徴とする請求項2に記載の画像処理装置。
  4. 前記部分解凍画像出力手段は、前記表示装置へ出力するための部分解凍画像が存在するか否かを判定し、部分解凍画像が存在する場合は前記縮小画像出力手段の動作を停止することを特徴とする請求項に記載の画像処理装置。
  5. 前記表示範囲および前記画像操作要求の内容に基づいて、前記部分解凍手段によって部分解凍された画像をマクロブロック単位で削除する部分解凍画像削除手段を備えたことを特徴とする請求項3に記載の画像処理装置。
JP2010048478A 2010-03-04 2010-03-04 圧縮画像の部分伸長方法および画像処理装置 Expired - Fee Related JP4848462B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2010048478A JP4848462B2 (ja) 2010-03-04 2010-03-04 圧縮画像の部分伸長方法および画像処理装置
US12/925,678 US8532406B2 (en) 2010-03-04 2010-10-27 Partial expansion method of encoded images and image processing apparatus
EP10189190.1A EP2364023B1 (en) 2010-03-04 2010-10-28 Partial decoding method of encoded images and image processing apparatus
CN2010105682441A CN102196260A (zh) 2010-03-04 2010-12-01 压缩图像的部分伸展方法以及图像处理装置
CN201410140920.3A CN103957416B (zh) 2010-03-04 2010-12-01 部分伸展方法以及图像处理装置
US13/953,388 US9275474B2 (en) 2010-03-04 2013-07-29 Partial expansion method of encoded images and image processing apparatus
US14/989,624 US9760251B2 (en) 2010-03-04 2016-01-06 Partial expansion method of encoded images and image processing apparatus
US15/014,019 US9703453B2 (en) 2010-03-04 2016-02-03 Image display apparatus and processing method for a thumbnail index mode in a device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010048478A JP4848462B2 (ja) 2010-03-04 2010-03-04 圧縮画像の部分伸長方法および画像処理装置

Publications (2)

Publication Number Publication Date
JP2011188041A JP2011188041A (ja) 2011-09-22
JP4848462B2 true JP4848462B2 (ja) 2011-12-28

Family

ID=44279026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010048478A Expired - Fee Related JP4848462B2 (ja) 2010-03-04 2010-03-04 圧縮画像の部分伸長方法および画像処理装置

Country Status (4)

Country Link
US (4) US8532406B2 (ja)
EP (1) EP2364023B1 (ja)
JP (1) JP4848462B2 (ja)
CN (2) CN103957416B (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090037840A1 (en) * 2007-08-03 2009-02-05 Siemens Medical Solutions Usa, Inc. Location Determination For Z-Direction Increments While Viewing Medical Images
JP4848462B2 (ja) * 2010-03-04 2011-12-28 株式会社モルフォ 圧縮画像の部分伸長方法および画像処理装置
JP2011244031A (ja) * 2010-05-14 2011-12-01 Fujifilm Corp 画像データ伸張装置および画像データ圧縮装置,ならびにそれらの動作制御方法
US9697628B2 (en) * 2011-03-18 2017-07-04 Paypal, Inc. On-demand image spriting
WO2012164806A1 (ja) * 2011-06-03 2012-12-06 株式会社ソニー・コンピュータエンタテインメント 電子メール受信装置および方法
US9377940B2 (en) * 2013-02-28 2016-06-28 Facebook, Inc. Predictive pre-decoding of encoded media item
US9854052B2 (en) * 2013-09-27 2017-12-26 Sap Se Business object attachments and expiring URLs
US10757164B2 (en) 2014-10-22 2020-08-25 Paypal, Inc. Performance improvement of web pages by on-demand generation of composite images
US10410398B2 (en) * 2015-02-20 2019-09-10 Qualcomm Incorporated Systems and methods for reducing memory bandwidth using low quality tiles
US9930354B2 (en) * 2015-12-11 2018-03-27 Google Llc Skip scanlines on JPEG image decodes
US10284861B2 (en) * 2016-12-09 2019-05-07 Advanced Micro Devices, Inc. Concurrent image compression and thumbnail generation
EP3980965A1 (en) * 2019-06-25 2022-04-13 Huawei Technologies Co., Ltd. Image processing method and apparatus and computer program product for the same
CN113283971A (zh) * 2021-07-22 2021-08-20 北京达佳互联信息技术有限公司 信息显示方法和装置、电子设备和存储介质
CN117528226B (zh) * 2023-07-03 2024-08-30 荣耀终端有限公司 一种处理图像的方法、电子设备及存储介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5065447A (en) * 1989-07-05 1991-11-12 Iterated Systems, Inc. Method and apparatus for processing digital data
US4979915A (en) 1989-09-20 1990-12-25 Amp Incorporated Wire to wire electrical connector with blade contact
JP3074914B2 (ja) 1992-03-25 2000-08-07 富士通株式会社 光コネクタ
JP3108283B2 (ja) 1994-08-29 2000-11-13 三洋電機株式会社 部分伸長装置及び方法
JP3399743B2 (ja) 1996-05-31 2003-04-21 シャープ株式会社 画像圧縮データ処理装置
US6008853A (en) * 1996-11-15 1999-12-28 Texas Instruments Incorporated Sub-frame decoder with area dependent update rate for digital camcorder transmission standard
US6298166B1 (en) * 1998-03-30 2001-10-02 Seiko Epson Corporation Image transformations in the compressed domain
US6466624B1 (en) * 1998-10-28 2002-10-15 Pixonics, Llc Video decoder with bit stream based enhancements
US6381371B1 (en) 1999-03-17 2002-04-30 Hewlett-Packard Company Method and apparatus for processing image files
JP2001148833A (ja) * 1999-09-12 2001-05-29 Sony Computer Entertainment Inc 圧縮画像データを復号処理する方法及び電子装置、並びに補助記録装置
US7100203B1 (en) * 2000-04-19 2006-08-29 Glenayre Electronics, Inc. Operating session reauthorization in a user-operated device
FR2833796B1 (fr) * 2001-12-19 2004-04-09 Thomson Licensing Sa Procede et dispositif de compression de donnees video codees par paquets video
JP3747914B2 (ja) 2002-04-12 2006-02-22 カシオ計算機株式会社 画像記録装置、画像記録方法及びプログラム
US20050055647A1 (en) * 2003-09-05 2005-03-10 Chung-Hui Chen System and method for switching software functions
US7589738B2 (en) * 2004-07-14 2009-09-15 Integrated Device Technology, Inc. Cache memory management system and method
JP4371982B2 (ja) * 2004-11-08 2009-11-25 キヤノン株式会社 画像処理装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US7830409B2 (en) * 2005-03-25 2010-11-09 Cherng-Daw Hwang Split screen video in a multimedia communication system
JP2006262496A (ja) * 2006-04-03 2006-09-28 Casio Comput Co Ltd 画像記録再生装置、カメラ装置、画像記録再生方法及びプログラム
JP4706567B2 (ja) * 2006-06-12 2011-06-22 ソニー株式会社 画像処理方法、画像処理方法のプログラム、画像処理方法のプログラムを記録した記録媒体、画像処理装置
US8515194B2 (en) * 2007-02-21 2013-08-20 Microsoft Corporation Signaling and uses of windowing information for images
JP4848462B2 (ja) * 2010-03-04 2011-12-28 株式会社モルフォ 圧縮画像の部分伸長方法および画像処理装置

Also Published As

Publication number Publication date
US20110216981A1 (en) 2011-09-08
US9760251B2 (en) 2017-09-12
US9275474B2 (en) 2016-03-01
EP2364023A2 (en) 2011-09-07
US20160147394A1 (en) 2016-05-26
CN102196260A (zh) 2011-09-21
US20160117801A1 (en) 2016-04-28
EP2364023B1 (en) 2016-04-13
EP2364023A3 (en) 2011-09-21
US9703453B2 (en) 2017-07-11
US8532406B2 (en) 2013-09-10
JP2011188041A (ja) 2011-09-22
CN103957416A (zh) 2014-07-30
CN103957416B (zh) 2017-05-24
US20140029861A1 (en) 2014-01-30

Similar Documents

Publication Publication Date Title
JP4848462B2 (ja) 圧縮画像の部分伸長方法および画像処理装置
EP1037165A2 (en) Method and apparatus for processing image files
JP5082153B2 (ja) 映像変換装置、映像再生装置、映像変換再生システム及びプログラム
JPWO2006072985A1 (ja) 映像表示装置
JP5938935B2 (ja) 動画像符号化装置及び動画像符号化方法
JP4446447B2 (ja) 画像形成装置
US8731311B2 (en) Decoding device, decoding method, decoding program, and integrated circuit
EP2166770A2 (en) Moving-image reproducing apparatus and moving-image reproducing method
JP2006303937A (ja) 画像表示装置、画像表示方法および方法を実行させるプログラム
JP2004112260A (ja) 画像処理装置、画像形成装置、プログラム及び記憶媒体
JP4030014B2 (ja) 画像表示装置およびそのプログラム
US8509548B2 (en) Image decoding apparatus and control method for speeding up decoding processing
JP5331432B2 (ja) 画像処理装置および画像処理方法
US9646403B2 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
JP2015015699A (ja) 画像処理装置、情報処理方法及びプログラム
JP6327939B2 (ja) 撮像装置及び撮像装置の制御方法
JP2010087904A (ja) 画像処理装置および画像処理方法
JP2015076815A (ja) 画像表示装置、撮像装置、画像表示装置の制御方法、コンピュータプログラム
JP2009053543A (ja) 画像表示装置
JP2001238087A (ja) 画像データ圧縮方法とjbig方式符号化処理方法とその装置
JP2008079221A (ja) 画像処理システム
JP2008193326A (ja) 画像再生表示装置および方法
JP2019110367A (ja) 撮像装置
KR20070089458A (ko) 응용 프로그램의 이미지 데이터 관리 장치 및 방법
JP2008193169A (ja) 画像記録再生装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110829

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111017

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

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4848462

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees