JP2007318694A - 画像処理方法、画像処理装置 - Google Patents

画像処理方法、画像処理装置 Download PDF

Info

Publication number
JP2007318694A
JP2007318694A JP2006149022A JP2006149022A JP2007318694A JP 2007318694 A JP2007318694 A JP 2007318694A JP 2006149022 A JP2006149022 A JP 2006149022A JP 2006149022 A JP2006149022 A JP 2006149022A JP 2007318694 A JP2007318694 A JP 2007318694A
Authority
JP
Japan
Prior art keywords
data
image
tile
encoded
resolution
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.)
Withdrawn
Application number
JP2006149022A
Other languages
English (en)
Inventor
Chie Ishikawa
智恵 石川
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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP2006149022A priority Critical patent/JP2007318694A/ja
Priority to US11/753,040 priority patent/US7899259B2/en
Publication of JP2007318694A publication Critical patent/JP2007318694A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • 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/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/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/34Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
    • 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
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • 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
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • 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
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/645Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

【課題】 ファイルサイズを大きくせず、かつ、個々のアプリケーションが必要な解像度の画像のみが保存されるようなファイルフォーマットを有する画像ファイルを生成するための技術を提供すること。
【解決手段】 画像を複数のタイルに分割する。それぞれのタイルを複数の解像度で復号可能なように符号化することで得られるそれぞれのタイルの符号化データを含む符号化画像データがグルーピングフォーマットに従っていない場合、それぞれのタイルの符号化データにおいて、指定仕様を有する画像を得るために復号する復号部分を特定し、それぞれのタイルの符号化データにおいて特定した復号部分を、タイルの並び順に並べたデータ群として保持すべく、符号化画像データを再構成する。
【選択図】 図10

Description

本発明は、複数の解像度で復号可能なように符号化された画像を扱う技術に関するものである。
近年普及したデジタルカメラは画素数も膨大になり、200万画素から500万画素程度のものが一般的になっている。さらに、プロ向けのデジタルカメラになると、1000万画素クラスのものが普及し始め、今後も高精細化が進むことは想像に難くない。
このような大きなサイズを有する画像を扱うアプリケーションでは、複数の解像度データを生成し、一つのファイルに保存することがある。この複数解像度データの保存方法は、主に2つある。
一つは、オリジナルの画像から完全に独立した複数の解像度データを作成し、1つのファイルに保存する方法である。もう一つは、解像度スケーラビリティを持つ符号化方法を用いてオリジナル画像を符号化し、保存する方法である。前者は、デジタルスチルカメラが作成するExif/DCFが、後者は、JPEG2000ファイルフォーマットが例として挙げられる。
特開平06−078157号公報
複数の独立したデータを保存する前者の方法を使った例としては、デジタルスチルカメラが作成するExif/DCFなどがある。Exif/DCFでは、オリジナル画像から、サムネイル画像を独立した画像データとして作成し、1つのファイルの中にサムネイル画像とオリジナル画像とを保存している。このように必要な解像度の画像を1つのファイルに保存する場合、アプリケーションが常に利用するサムネイル表示や全画面表示と1対1に対応する解像度の画像のみを保存しているため、アプリケーションが利用しやすい。
しかし、すべての画像が、それぞれが独立した符号化データであるため、冗長なデータも多く含まれる。また、1つのファイルの中に保存される画像サイズの種類が増えると、画像ファイルサイズが大きくなるという問題がある。
解像度スケーラビリティを持つ符号化方法を使って保存する後者の方法としては、たとえば、JPEG2000が挙げられる。JPEG2000符号化方式は、各解像度の間の差分データを使っているので、複数解像度の画像を持っても、そのファイルサイズが大きくなることはない。しかし、JPEG2000では、ある解像度の画像は必ず、それより一つ上の解像度画像の縦横を半分にした大きさになっており、よく利用する解像度以外にも多くの解像度を有している。
また、その符号化データは、自由度が高いため、表示に必要なデータが必ずしも一塊になっておらず、ファイル全体に散逸している可能性もある。そのため、アプリケーションは、必要な解像度の画像を得るために、デコードすべきデータを捜す必要があり、ファイル内のシーク回数が増え、表示時間の短縮は難しい。
高精細画像を扱うアプリケーションが必要とする解像度画像のみを保存しようとすれば、各解像度が独立した画像データとなり、もともとデータサイズの大きい画像データが、さらに大きなデータサイズのファイルとなるという問題が生じる。また、差分データを利用した、解像度スケーラビリティをもつ符号化データを用いて、アプリケーションの必要とする解像度の画像を用意する方法では、ファイルサイズは大きくならないが、不必要な解像度の画像までも用意されることになる。更にこの方法では、アプリケーションが画像を利用するたびに、複数の解像度画像の中から、符号化データを解析して、必要な解像度画像を選択する必要がある。
本発明は以上の問題に鑑みてなされたものであり、ファイルサイズを大きくせず、かつ、個々のアプリケーションが必要な解像度の画像のみが保存されるようなファイルフォーマットを有する画像ファイルを生成するための技術を提供することを目的とする。
本発明の目的を達成する為に、例えば、本発明の画像処理方法は以下の構成を備える。
即ち、画像を複数のタイルに分割し、それぞれのタイルを複数の解像度で復号可能に符号化することにより得られるそれぞれのタイルの符号化データ、を含む符号化画像データを取得する取得工程と、
それぞれのタイルの符号化データにおいて、指定された画質を有する画像を得るために必要な部分を復号する復号工程と、
前記復号工程により復号されたそれぞれのタイルを出力する出力工程と
を備える画像処理方法であって、
前記取得工程で取得した符号化画像データが第1のフォーマットに従っていない場合には、それぞれのタイルの符号化データにおいて、指定された画質を有する画像を得るために復号する復号部分を特定する特定工程と、
それぞれのタイルの符号化データにおいて前記特定工程で特定した復号部分を、タイルの並び順に並べたデータ群として保持すべく、前記符号化画像データを再構成する再構成工程と
を備えることを特徴とする。
本発明の目的を達成する為に、例えば、本発明の画像処理装置は以下の構成を備える。
即ち、画像を複数のタイルに分割し、それぞれのタイルを複数の解像度で復号可能に符号化することにより得られるそれぞれのタイルの符号化データ、を含む符号化画像データを取得する取得手段と、
それぞれのタイルの符号化データにおいて、指定された画質を有する画像を得るために必要な部分を復号する復号手段と、
前記復号工程により復号されたそれぞれのタイルを出力する出力手段と
を備える画像処理方法であって、
前記取得手段が取得した符号化画像データが第1のフォーマットに従っていない場合には、それぞれのタイルの符号化データにおいて、指定された画質を有する画像を得るために復号する復号部分を特定する特定手段と、
それぞれのタイルの符号化データにおいて前記特定手段が特定した復号部分を、タイルの並び順に並べたデータ群として保持すべく、前記符号化画像データを再構成する再構成手段と
を備えることを特徴とする。
本発明の構成によれば、ファイルサイズを大きくせず、かつ、個々のアプリケーションが必要な解像度の画像のみが保存されるようなファイルフォーマットを有する画像ファイルを生成することができる。
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
[第1の実施形態]
図1は、本実施形態に係る画像処理装置に適用可能なコンピュータのハードウェア構成を示すブロック図である。なお、このようなコンピュータとしては、周知のPC(パーソナルコンピュータ)やWS(ワークステーション)が適用可能である。
CPU101はRAM102にロードされたプログラムやデータを用いてコンピュータ全体の制御を行うと共に、本コンピュータを適用する画像処理装置が行う後述の各処理を実行する。
RAM102は、ハードディスク103からロードされたプログラムやデータを一時的に記憶するエリアや、CPU101が各種の処理を実行するために使用するワークエリア等を有する。即ち、RAM102は、各種のエリアを適宜提供することができる。
ハードディスク103は、OS(オペレーティングシステム)や、後述の各処理をCPU101に実行させるためのプログラムやデータを保存するためのものである。このプログラムやデータはCPU101による制御によって適宜RAM102にロードされ、CPU101による処理対象となる。
入力デバイス104は、例えばマウスやキーボードなどに代表される指示入力装置であって、本コンピュータの操作者が操作することで、各種の指示をCPU101に対して入力することができる。
出力デバイス105は、例えばディスプレイやプリンタに代表される装置であって、本コンピュータで処理した画像を表示やプリントアウト等、様々な形態で出力することのできる装置である。
106は上記各部を繋ぐバスである。なお、本実施形態に係る画像処理装置に適用可能なコンピュータのハードウェア構成については、図1に示した構成に限定されるものではない。
次に、一般的なJPEG2000に従ったビットストリームについて説明する。図2はLayer−resolution level−component−position progression(以下、LRCPと記す)に従ったJPEG2000のビットストリームの構成を示す図である。LRCPに準じた場合、符号化データ(同図において”Data”で示された部分)は、Layer/Resolution/Component/Positionの順にデータが配置された構成を備える。このような構成はprogression order(プログレッションオーダ)と呼ばれる。また、ここで記されているpositionとは、JPEG2000符号化データにおけるprecinctのことである。
同図に示す如く、JPEG2000に従ったビットストリームは、メインヘッダ(Main Header)201と、複数のタイルデータと、で構成されている。更に、タイルデータは、タイルヘッダ(Tile Header)と符号化データ(Data)とで構成されている。
メインヘッダ201には、resolution level数、layer数等、画像全体の符号化条件が記されている。
タイルデータは、圧縮符号化元の画像を所定のサイズの矩形(タイル)毎に分割し、分割したそれぞれのタイルを符号化することで生成されるものであり、1つのタイルに1つ生成されるものである。従って、ビットストリーム内には、分割したタイルの数だけタイルデータが存在する。タイルデータは、上述の通り、ヘッダ部分(タイルヘッダ)と符号化データ本体部分(符号化データ)とで構成されている。
同図に示す如く、符号化データは大まかにはLayer毎のデータに分けることができる。各Layerのデータは公知のビットプレーン符号化による各ビットプレーンの符号化データであり、MSB側のビットプレーン(Layer0)から順にLSBのビットプレーン(LayerL)までが配置される。Layer番号は復元する画像の原画に対するS/N比に対応し、Layer番号が小さいほどS/N比が悪く(低く)なる。すなわち、同図のJPEG2000のデータは、S/Nの悪い順に各Layerのデータが配置されていることになる。
更に各Layerのデータは各Resolutionのデータにより構成されている。各Resolutionのデータは解像度(画像のサイズ)に応じたResolution番号に従った順序で配置されている。最も小さい解像度の画像のResolution番号を0とし、Resolution番号が一つ増加するごとに画像の幅と高さが倍になっていく。各Layer内は、Resolution番号の小さい順にデータが格納されている。
各Resolutionのデータは各Componentのデータにより構成されている。各Componentのデータは画像の各色データに対応している。例えば画像がRGBの各データにより構成されている場合には、Component0のデータはR成分のデータ、Component1のデータはG成分のデータ、Component2のデータはB成分のデータである。すなわち、Component数は画像の色空間の次元数に一致する。
また各Componentデータには圧縮符号化元の画像における空間的な各位置のデータ(Positionデータ)が順番に記録されている。各Positionデータには、各Resolutionの各タイル内において、空間的な順番通りに番号(ポジション番号)が付けられている。つまり、あるResolutionのタイルの左上隅を0としてタイルの右方向に1つずつ番号が増加し、右端に達したら1つ下、且つ左端からタイルの右方向に番号が増加する。
一つのJPEG2000ファイル内でのResolution番号とレイヤ番号、コンポーネント番号、position番号の最大値は、エンコーダによって予め設定されている。圧縮符号化元の画像はそのパラメータに従ってエンコードされており、その情報はメインヘッダに記録されている。また各パケット(packet)は、そのパケットに格納されているコードブロック(code−block)の情報を管理しているパケットヘッダ(packet header)部と、各コードブロックの符号化データから構成されている。同図では1つのPositionデータがパケットに相当する。この「パケット」なるものは、論理単位の一種である。
ここで、図2では説明を簡単にするために、1つのタイルデータは1まとまりのタイルヘッダと1まとまりの符号化データとで構成されているものとしているが、実際には、1つのタイルデータを複数のタイルパートデータに分割している。
図3(a)は、タイルデータを示す図である。同図に示したタイルデータ300は図2に示したタイルデータと同様の構成を有しており、タイルヘッダ301と符号化データ302とで構成されている。タイルヘッダ301は、タイルXについて圧縮符号化した場合に得られるヘッダデータで、符号化データ302はこの圧縮符号化によるタイルXの符号化データである。ここで、このタイルXのタイルデータ300を3つのタイルパートに分割した場合について図3(b)に示す。
図3(b)は、図3(a)に示したタイルデータ300を3つのタイルパートデータに分割した場合に、それぞれのタイルパートデータの構成例を示す図である。図3(b)に示した3つのタイルパートデータは、図3(a)に示した符号化データ302を構成する各部分310,311,312のそれぞれを符号化データ部分として保持する。符号化データ部分310にはタイルパートヘッダ320(タイルパート番号=0)が付加されている。符号化データ部分311にはタイルパートヘッダ321(タイルパート番号=1)が付加されている。符号化データ部分312にはタイルパートヘッダ322(タイルパート番号=2)が付加されている。
このように、タイルデータを複数のタイルパートデータに分割する場合には、上述のパケットを単位として分割する。つまり、パケットの途中でタイルデータを分割することはできない。以下では、タイル番号=NのタイルデータをタイルデータNと呼称する場合があるし、タイルパート番号=NのタイルパートデータをタイルパートデータNと呼称する場合がある。
図3(c)は、タイルパートヘッダの構成例を示す図である。同図に示す如く、タイルパートヘッダには、タイル番号、タイルパートのデータ長、タイルパート番号、このタイル中におけるタイルパート総数(いくつのタイルパートに分割したか)が記述されている。
図4(a)は、ビットストリーム中における各タイルパートデータの配置例を示す図である。同図ではメインヘッダの直後に、各タイルデータにおけるタイルパートデータ0がタイル番号順に配置されている。即ち、タイルデータ0のタイルパートデータ0,タイルデータ1のタイルパートデータ0,タイルデータ2のタイルパートデータ0がこの順に配置されている。もちろん、タイルの数が3以上であれば、それ以降のタイルデータのタイルパートデータ0がこれに後続して配置される。
そして次に、各タイルデータにおけるタイルパート1のデータがタイル番号順に配置されている。即ち、タイルデータ0のタイルパートデータ1,タイルデータ1のタイルパートデータ1,タイルデータ2のタイルパートデータ1がこの順に配置されている。もちろん、タイルの数が3以上であれば、それ以降のタイルデータのタイルパートデータ1がこれに後続して配置される。
このように、同図では、各タイルデータから同じタイルパート番号を有するタイルパートデータを抽出し、抽出したタイルパートデータを自身が属するタイルデータのタイル番号の小さい順に並べてビットストリーム中に配置する。また、同じタイルパート番号を有するタイルパートデータ群は、タイルパート番号の小さい順に配置される。
図4(b)は、タイルパートデータがランダムにビットストリーム中に配置されている場合のビットストリームの構成例を示す図である。
次に、JPEG2000のファイルフォーマットについて説明する。図5は、JPEG2000のファイルフォーマットの概略を示す図である。
ISO/IECでは、JPEG2000ビットストリームを格納するファイルのフォーマットをオプショナルとして定義している。JPEG 2000 Part 1で定義しているファイルフォーマットは、JP2ファイルフォーマットと呼ばれている。JP2ファイルフォーマットは、"box structure"と呼ばれる構造を持つ。これは、boxと呼ばれるデータ単位を積み重ねることで構成されるフォーマットである。
JPEG 2000符号化データも、JP2ファイルフォーマットの中では、Contiguous Codestream boxと呼ばれる一つのboxに格納される。また、boxのコンテンツとして、複数のboxを格納しているboxも存在する。このようなboxをsuper boxと呼ぶ。JP2ファイルフォーマットで定義されているJP2 Header boxもその一つである。このJP2 Header boxには、画像の基本情報を格納しているImage Header box, 色空間を指定するColour Specification boxなどがコンテンツとして格納される。
図5に示されるboxは、JP2ファイルフォーマットで定義されている必須boxである。この他に、XML boxやuuid boxが規定されている。JP2ファイルフォーマット内のBoxの格納順番は、JPEG2000 Signature boxがファイルの先頭に格納され、その直後に、File Type boxを格納することは決められている。その他のboxの格納順番は、基本的に自由に決められる。したがって、同じ種類のboxを持つ2つのファイルがあっても、そのboxの格納順番が異なることもある。
図6は、ボックスの基本構成を示す図である。Box Length601にbox全体のデータ長のバイト数が格納されており、Box Type 602にはこのboxのタイプが格納されており、Box contentsにはこのボックスに対して定義されたデータが格納されている。
Box Length 601とBox Type 602とを合わせて、Box Headerと呼ぶ。たとえば、”JPEG 2000 Signature box”であれば、Box Typeの値は’jp(スペース)(スペース)’(0x6A50 2020)で、’Box contentsとして、4バイトのデータ(0x0D0A 870A)を格納する。よって、Box Length 601には、12(=0x0000 000C)、Box Type 602には、’jp ‘(=0x6A50 2020)、Box Contents 603には、0x0D0A 870Aが格納されることになる。
次に、操作者から指示された解像度で画像を表示する為に、本実施形態に係る画像処理装置が行う処理について説明する。この説明では、操作者は、図7(a)〜7(c)に示す3種類の画像表示形態のうち何れかの表示形態(解像度)を指示するものとする。
図7(a)は、ハードディスク103に保持されているそれぞれの画像(実際にはビットストリーム)のサムネイルを一覧表示している場合の表示例を示している。サムネイルのサイズは、256画素×256画素相当のサイズとする。ここで「相当」としているのは、ハードディスク103に保持されているオリジナルの画像のアスペクト比によっては、必ずしも256画素×256画素のサイズには成らない場合があるからである。例えば、4992画素×3328画素のサイズの画像のサムネイルのサイズは、256画素×170画素となる。
同図の画面で1つのサムネイルを操作者が入力デバイス104を用いて指示すると、図7(b)に示す如く、指示した画像を、出力デバイス(ここでは表示装置)105の表示画面のサイズに合わせて表示(全画面表示)する。または、図7(c)に示す如く、出力デバイス105の表示画面上に等倍のサイズで表示する。何れの表示を行うのかは、操作者が指示する。
図7(b)は、指示された画像を全画面表示した場合の表示例を示す図である。本実施形態では説明上、出力デバイス105の表示画面のサイズは、1920画素×1200画素とする。従って、画像を全画面表示する場合には、この画像を1920画素×1200画素にリサイズしてから表示する必要がある。
図7(c)は、指示された画像を等倍表示した場合の表示例を示す図である。本実施形態では説明上、指示した画像のオリジナルのサイズは、4992画素×3328画素であるとする。
図8は、出力デバイス105の表示画面上に画像を表示する為に画像処理装置が行う処理のフローチャートである。なお、同図のフローチャートを含め、以下説明する各フローチャートに従った処理を画像処理装置に実行させるためのプログラムやデータはハードディスク103に保存されている。このプログラムやデータはCPU101による制御に従って適宜RAM102にロードされる。CPU101はこのロードされたプログラムやデータを用いて処理を実行することで、画像処理装置は以下説明する各処理を実行することになる。
画像処理装置の操作者が入力デバイス104を用いて、画像表示に係る指示(表示対象の画像とその表示サイズ(表示形態)の指示を含む)を入力すると、ステップS801では、CPU101はこの指示から、表示対象の画像とその表示サイズを取得する。
例えば、図7(a)に示した表示形態が指示された場合には、表示対象の画像は、ハードディスク103に保持されている全ての画像であり、個々の画像の表示サイズは256画素×256画素相当である。図7(b)に示した表示形態が指示された場合には、表示対象の画像も指示することになるので、この指示された画像を表示対象とするし、表示サイズは1920画素×1200画素である。図7(c)に示した表示形態が指示された場合には、表示対象の画像はこの表示を指示したときに指示した画像若しくは従前に全画面表示されている画像を表示対象とするし、表示サイズは4992画素×3328画素である。
以下の説明では一例としてサムネイル表示(図7(a)に示した表示形態)が指示されたものとする。この場合、ステップS801では、表示対象の画像としてハードディスク103に保持されている全ての画像を選択するし、表示サイズを256画素×256画素相当として設定する。
次に、ステップS802では、ステップS801で表示対象として選択された画像のビットストリームのフォーマット(画像フォーマット)を判別する。この判別処理の詳細については図9を用いて後述する。
そして、ステップS802での判断別処理の結果、画像フォーマットが後述するグルーピングフォーマットである場合には処理をステップS803を介してステップS804に進める。もし、グルーピングフォーマットではない場合には処理をステップS803を介してステップS810に進める。
ステップS804では、ビットストリーム中のuuid boxからタイルパート情報を読み出す。本実施形態では、画像フォーマットがグルーピングフォーマットである場合、後述するステップS813による処理で、このuuid box内にタイルパート情報が格納される。従って、ステップS804では、このuuid box内に格納されたタイルパート情報を読み出すことができる。このタイルパート情報は図11(b)に示す構成を有する。図11(b)は、タイルパート情報の構成を示す図である。本実施形態ではこのような構成を有するタイルパート情報として、図11(c)に示したものを用いるものとする。そしてこのタイルパート情報を読み出すことで、ビットストリーム中のタイルパートについては以下の情報が得られるものとする。
タイルパート数は3
タイルパートデータ0を復号することで得られる画像のサイズは312画素×208画素
タイルパートデータ1を復号することで得られる画像のサイズは2496画素×1664画素
タイルパートデータ2を復号することで得られる画像のサイズは4992画素×3328画素
図8に戻って、次にステップS805では、この3つのタイルパートデータのうち、何れを復号するのかを、ステップS801で設定した表示サイズに基づいて決定する。ここでは、ステップS801において表示サイズとして256画素×256画素相当が設定されたので、これに最も近いサイズである312画素×208画素の画像を復号すべく、タイルパートデータ0を復号対象として決定する(X=0)。
ステップS806では、ビットストリーム中の全てのタイルのうち、復号するタイルDispTを決定する。ここでは、サムネイル、即ち、画像を構成する全てのタイルを表示することになるので、必然的にビットストリーム中の全てのタイルを復号対象とすることになる。仮に、出力デバイス105の表示画面のサイズが1500画素×1000画素であり、1つのタイルのサイズが512画素×512画素であり、表示対象の画像を等倍表示する場合には、縦3つ、横2つの合計6つのタイルを表示する必要がある。この場合、この6つのタイルがDispTとなる。この復号対象タイルDispTの求め方については、ここでの説明の趣旨ではないので、その説明は省略する。
次にステップS807では、ステップS806で復号対象として決定したタイルのそれぞれについて、ステップS805で決定したタイルパートデータのみを復号する処理を行う。ここでは、全てのタイルについてタイルパートデータ0を復号すると決定したので、この決定したタイルパートデータを復号する。これにより、312画素×208画素の画像が得られる。
そしてステップS808では、復号した画像のサイズが256画素×256画素相当となるようにリサイズし、ステップS809では、このリサイズした画像を出力デバイス105の表示画面上に表示する。
一方、ステップS810では、表示対象の画像のビットストリームをデコードし、表示対象の画像を復元する。なお、このデコードの際には、ビットストリームを一端コピーし、このコピーしたビットストリームをデコードする。つまり、ビットストリームのデータは後述するステップS813における処理対象となるので、そのまま残しておく。
上述の通り、この復元した画像のオリジナルのサイズは4992画素×3328画素である。従ってステップS811では、この復元した画像のサムネイルを表示するために、この画像のサイズを256画素×256画素相当にリサイズする。実際にはこの画像は256画素×170画素のサイズにリサイズされることになる。
そしてステップS812では、このリサイズした画像をサムネイルとして出力デバイス105の表示画面上に表示する。そして、ステップS813では、ステップS810でデコードした画像のビットストリームを再構成し、そのフォーマットをグルーピングフォーマットに変換する。ステップS813における処理の詳細については図10を用いて後述する。
図9は、上記ステップS802における判別処理の詳細を示すフローチャートである。
先ず、ステップS901では、表示対象の画像のビットストリームの拡張子を取得する。ステップS902では、この取得した拡張子が”.jp2”であるのか否かをチェックする。このチェックの結果、拡張子が”.jp2”であれば、処理をステップS903に進め、その他の拡張子であれば処理をステップS906に進める。ステップS906では、この画像のビットストリームのフォーマットがグルーピングフォーマットではないと判断し、処理を上記ステップS803にリターンする。
一方、ステップS903では、ビットストリーム(jp2ファイル)の中に、uuid boxが格納されているか否かをチェックする。格納されている場合には処理をステップS904に進めるし、格納されていない場合には処理をステップS906に進める。
ステップS904では、uuid boxのIDがグルーピングフォーマット識別子と一致しているか否かをチェックする。
図11(a)は、uuid boxのBox Contents603のフォーマットを示す図である。上記ステップS904では、16[Byte]のID 1101の値を参照し、この値がグルーピングフォーマットを示すものであるのか否かをチェックする。本実施形態では、グルーピングフォーマットのIDの値は図11(c)に示す如く、「0x6369 7A65 6772 6F75 7065 666F 726D 6174」としている。よって、ID 1101の値が「0x6369 7A65 6772 6F75 7065 666F 726D 6174」と一致すれば、uuid boxのIDがグルーピングフォーマット識別子と一致しているので、処理をステップS905に進める。一方、一致していない場合には処理をステップS906に進める。
ステップS905では、表示対象の画像のビットストリームのフォーマットはグルーピングフォーマットであると判断し、処理を上記ステップS803にリターンする。
図10は、上記ステップS813における処理の詳細を示すブロック図である。
先ず、ステップS1001では、上記ステップS810で行ったデコードがJPEG2000に従ったものであるのか否かをチェックする。即ち、表示対象の画像のビットストリームがJPEG2000に従ったものであるのか否かをチェックする。
このチェックの結果、JPEG2000に従ったものではない場合には処理をステップS1002に進める。ステップS1002では、上記ステップS810でデコードした画像に対してJPEG2000に従った圧縮処理を行うことで、表示対象の画像のビットストリームを新たに生成する。この圧縮処理では以下のようなビットストリームを生成する。
最高解像度時のタイルサイズ:512画素×512画素
Layer数:1
Position数:1タイルにつき1position
Resolution level:最小解像度時の画像サイズがサムネイルサイズ相当となるまで、離散ウェーブレット変換処理を繰り返す
Progression order:RLCP
本実施形態の場合には、オリジナル画像の横サイズが4992画素であるため、横サイズが512のタイルを横に並べると10個必要となる。またオリジナル画像の縦サイズが3328画素であるため、縦サイズが512のタイルを縦に並べると7個必要となる。よって10×7=70となり、タイル数は70である。また、resolution level数は5になる。
また、表示対象の画像のビットストリームがJPEG2000に従ったものであったとしても、本実施形態では、最高解像度時のタイルサイズを512画素×512画素、ビットストリームを復号したときの最小画像サイズを312画素×208画素としている。従って、タイル数は70、resolution level数は5になる。
一方、上記ステップS1001におけるチェックの結果、上記ステップS810で行ったデコードがJPEG2000に従ったものである場合には処理をステップS1003に進める。
ステップS1003では、上記ステップS810でデコードした元のビットストリーム中のメインヘッダを参照し、このビットストリームを復号した場合に得られる最小サイズ(最小解像度)の画像が、サムネイルサイズよりも小さいか否かをチェックする。即ち、このビットストリームを復号することで、要求される最小サイズの画像が得られるのか否かをチェックする。
要求される最小サイズ(サムネイルサイズ)の2倍未満の画像サイズが、ビットストリームを復号することで得られるのであれば、このビットストリームを復号した場合に得られる最小サイズ(最小解像度)の画像が、サムネイルサイズよりも小さいと判断する。本実施形態の場合には、サムネイルサイズは256画素×256画素相当である。従って、resolution level 0の画像サイズが511画素×511画素以下のサイズであれば、このビットストリームを復号した場合に得られる最小サイズ(最小解像度)の画像が、サムネイルサイズよりも小さいと判断する。Resolution level 0の画像サイズは、JPEG2000のメインヘッダを解析することで用意に計算できる。
ビットストリームを復号した場合に得られる最小サイズ(最小解像度)の画像が、サムネイルサイズよりも小さくない場合には処理をステップS1002に進め、上記処理を行う。一方、最小解像度がサムネイルサイズよりも小さい場合には、処理をステップS1004に進める。
ステップS1004では、ビットストリームのメインヘッダ、及び各タイルのヘッダを参照し、ビットストリームのprogression orderがRLCPの順になっているか否かをチェックする。このチェックの結果、RLCPであれば処理をステップS1006に進め、RLCPではない場合には処理をステップS1005に進める。ステップS1005では、ビットストリーム中のパケットデータを並び替え、progression orderをRLCPにし、main headerのprogression order情報をRLCPに書き換える。
次に、ステップS1006では、全ての表示形態における表示サイズを取得する。本実施形態の場合、全ての表示形態は図7(a)〜7(c)に示した3種類の表示形態であり、それぞれの画像表示サイズは、256画素×256画素相当、1920画素×1200画素、4992画素×3328画素である。従って本実施形態では、この3種類の表示サイズを取得する。例えば、全画面表示における画像表示サイズの取得を、C言語でインプリメントされたプログラムを実行することで取得する場合には、以下のコード
SystemParametersInfo(SPI_GETWORKAREA, 0, &rect, 0);
等を用いる。
ステップS1007では、ステップS1006で取得した各表示サイズと、resolution levelとの対応付けを行う。本実施形態では、表示対象の画像の元のサイズは4992画素×3328画素であり、ビットストリームを復号したときの最小画像サイズが312画素×208画素である。よって、この画像に対して4レベルの離散ウェーブレット変換処理が施されていることになる。従って、resolution levelと画像サイズとの関係は以下のようになる。
resolution level 0: 312画素× 208画素
resolution level 1: 624画素× 416画素
resolution level 2:1248画素× 832画素
resolution level 3:2496画素×1664画素
resolution level 4:4992画素×3328画素
これにより、この画像のサムネイル表示を行う場合には、resolution level0を復号すれば良いし、この画像の全画面表示を行う場合には、resolution level0に加えてresolution level1,resolution level2、resolution level3を復号すればよいし、この画像の等倍表示を行う場合には、resolution level0、1,2,3に加えてresolution level4を復号すればよい。従って、サムネイル表示にはresolution level0が対応するし、全画面表示にはresolution level3が対応するし、等倍表示にはresolution level4が対応する。ステップS1007ではこの対応付けを決定する。
ステップS1008では、各タイルデータを複数のタイルパートデータに分割し、それぞれのタイルパートデータを図4(a)に示す如く配置する。即ち、全てのタイルパートデータを同じタイルパート番号を有するタイルパートデータ毎にグループ分割し、それぞれのグループをタイルパート番号の小さい順に配置する。グループ内におけるタイルパートデータは、自身が属するタイルデータのタイル番号の小さい順に配置される。
本実施形態では、タイルパートデータ0にはresolution level 0のデータを格納し、タイルパートデータ1には、resolution level 1, 2, 3のデータを格納し、タイルパートデータ2にはresolution level 4のデータを格納する。以上のようにして、画像のビットストリームを再構成する。
図12は、上記ステップS1008における処理の結果、再構成されたビットストリームの構成を示す図である。
同図に示す如く、各タイルデータにおけるタイルパートデータ0のデータ群1201,タイルパートデータ1のデータ群1202、タイルパートデータ2のデータ群1203がこの順にビットストリーム中に配置されている。
また、データ群1201内には、タイルデータ0におけるタイルパートデータ0、タイルデータ1におけるタイルパートデータ0、、、タイルデータ69におけるタイルパートデータ0がこの順に配置されている。また、同図に示す如く、タイルデータ1におけるタイルパートデータ0内には、タイルパートヘッダとタイルデータ1におけるresolution level 0のデータとが格納されている。このように、タイルデータXにおけるタイルパートデータ0内には、タイルパートヘッダとタイルデータXにおけるresolution level 0のデータとが格納されている。
また、データ群1202内には、タイルデータ0におけるタイルパートデータ1、タイルデータ1におけるタイルパートデータ1、、、タイルデータ69におけるタイルパートデータ1がこの順に配置されている。また、同図に示す如く、タイルデータ1におけるタイルパートデータ1内には、タイルパートヘッダとタイルデータ1におけるresolution level1,2,3のデータとが格納されている。このように、タイルデータXにおけるタイルパートデータ1内には、タイルパートヘッダとタイルデータXにおけるresolution level1,2,3のデータとが格納されている。
また、データ群1203内には、タイルデータ0におけるタイルパートデータ2、タイルデータ1におけるタイルパートデータ2、、、タイルデータ69におけるタイルパートデータ2がこの順に配置されている。また、同図に示す如く、タイルデータ1におけるタイルパートデータ2内には、タイルパートヘッダとタイルデータ1におけるresolution level4のデータとが格納されている。このように、タイルデータXにおけるタイルパートデータ2内には、タイルパートヘッダとタイルデータXにおけるresolution level4のデータとが格納されている。
なお、各タイルパートヘッダは、基本的には、タイルパートデータ長Psot、tile-part番号Tpsot、tile-part総数Tnsotの3つのデータを使って容易に作成できる。
以上のようにして、ビットストリームをグルーピングフォーマットに従ったものに再構成することができる。
図10に戻って、次にステップS1009では、タイルパート情報、即ち、タイルパート数と各タイルパートの画像サイズを上記uuid boxに書き込む。本実施形態では、図11(c)に示すuuid boxがJP2ファイルの中に書き込まれる。
このように、全ての表示形態それぞれが要求する表示サイズ毎に、タイルパートを使って解像度データをグループ化することで、低・中解像度の全体画像を表示する際には、シーク回数を削減し、表示までの時間を短縮することができる。
また、タイルパート情報をファイルの中に保存することで、メインヘッダを解析し、各タイルパートのパケット数を調べなくても、必要な画像サイズを得るためのタイルパート数が容易に分かる。
さらに、タイル分割しておくことで、高解像度で画像の一部分しか表示しない場合には、タイル単位で必要な部分をデコードすればよいので、高解像度部分のランダムアクセス性を確保でき、表示までの時間の短縮が期待できる。
また、uuid boxの中に格納するため、その識別子を見るだけで、このファイルの構成が、解像度毎のタイルパートに分割されており、ファイルの中にタイルパートが昇順で並んでいることがわかる。さらに同じ理由で、各タイルパートはタイル番号の昇順に並んでいることも分かる。アプリケーション側で、目的の解像度のデータをデコードする際に、符号化データの先頭から順にデコードすればよいので、ファイル内のシーク回数が減り、表示までの時間が短縮される。
さらに、以上の処理で再構成されたビットストリームは、JPEG2000のJP2ファイルフォーマットに準拠しているため、このフォーマットを知らない端末・アプリケーションがこのデータを受け取っても、画像のデコードに影響はない。
なお、本実施形態で用いた表示画像サイズや、各resolution levelにおける画像サイズ等、説明上用いた具体的な数値についてはあくまで一例であり、本実施形態はこれらの数値に限定されるものではない。
また、上記説明による処理は、表示形態が複数ではなく、1つの場合であっても適用可能である。
また、上記3つの表示形態の何れで画像を表示するのかを指定する形態については操作者がアプリケーションを操作することで、アプリケーションがその操作に応じた表示形態に切り替えても良いし、操作者がダイレクトに指定しても良い。即ち、その指定方法は限定するものではなく、どのように指定しても良い。
[第2の実施形態]
第1の実施形態では、図8のフローチャートにおけるステップS802でビットストリームがグルーピングフォーマットであると判断した場合には、このビットストリームにおいて、要求された表示の為に復号すべき部分を復号し、復号した結果を表示していた。
画像データを一つの端末・アプリケーションで利用する場合には常に、その端末・アプリケーションに最適化されたフォーマットであるので、第1の実施形態に係る処理でじゅうぶんである。しかし、このフォーマットに準拠したファイルを、他の端末・アプリケーションで利用するときには、修正した方が使いやすい事もある。
本実施形態では、第1の実施形態に係る処理で再構成されたビットストリームを、表示画面サイズが1024画素×768画素であるノートPCに入力し、この表示画面にこのビットストリームに基づいた画像を表示する。以下ではこの状況を想定し、事前に画像処理装置側で行う処理について説明する。ここで、第1の実施形態に係る処理で再構成されたビットストリームに係る情報は以下の通りである。
画像サイズ:4992×3328[pixel]
タイルサイズ:512×512[pixel]
resolution level数:5
resolution level 0の画像サイズ:312×208[pixel]
resolution level 1の画像サイズ:624×416[pixel]
resolution level 2の画像サイズ:1248×832[pixel]
resolution level 3の画像サイズ:2496×1664[pixel]
resolution level 4の画像サイズ:4992×3328[pixel]
タイルパートデータ0はresolution level 0のデータを格納
タイルパートデータ1はresolution level 1, 2, 3のデータを格納
タイルパートデータ2はresolution level 4のデータを格納
また、本実施形態においても、全ての表示形態は、図7(a)〜7(c)に示すものとする(しかし、全画面表示では、ノートPCの画面サイズ(1024画素×768画素)に対して全画面表示を行う)。また、以下の説明では、第1の実施形態と同じ画像処理装置を用いるものとし、特に本実施形態が第1の実施形態と同じものについては説明を省略し、異なる点については詳細に説明する。これは以下の各実施形態についても同様である。
図13は、出力デバイス105の表示画面上に画像を表示する為に画像処理装置が行う処理のフローチャートである。同図のフローチャートにおいて、図8に示したステップと同じものについては同じステップ番号を付け、その説明は省略する。即ち、図13のフローチャートが図8に示したフローチャートと異なる点は、ステップS809の次に、ステップS1301,S1302の処理を実行する点のみである。従って以下では、このステップS1301,S1302について説明する。
ますステップS1301では、上記ステップS808で行ったリサイズによる拡大/縮小率が50%以下であるか、若しくは200%以上であるのかをチェックする。このチェックの結果、拡大/縮小率が50%から200%である場合には本処理を終了する。一方、拡大/縮小率が50%以下であるか、若しくは200%以上である場合には処理をステップS1302に進める。
ここで、JPEG2000では、resolution levelの番号が一つ小さくなると、画像のサイズが半分になる。従って、あるresolution levelにおける画像を2倍以上拡大すること、若しくは1/2倍以下に縮小することは、別のresolution levelにおける画像を使用することに他ならない。従って、上記ステップS805でデコード対象のタイルパートデータを選択したにもかかわらず、これを2倍以上拡大した、若しくは1/2倍以下に縮小したということは、デコード対象のタイルパートの構成そのものが間違いとなる。本実施形態の場合、上記ステップS808でタイルパートデータ2を復号して表示しようとすると、表示画像サイズが2496画素×1664画素となるが、ノートPCの画面サイズが1024画素×768画素であるので、画像を約40%に縮小する必要がある。
従って、このよう場合には処理をステップS1302に進める。ステップS1302では、再度タイルパート分割処理を行うと共に、タイルパート情報において該当する箇所の更新を行う。
図14は、ステップS1302における処理の詳細を示すフローチャートである。
先ずステップS1401では、全ての表示形態(表示サイズ)の数Kを取得する。本実施形態の場合、全ての表示形態は図7(a)〜7(c)に示した3種類の表示形態であるので、K=3となる(しかし、全画面表示では、ノートPCの画面サイズ(1024画素×768画素)に対して全画面表示を行う)。
次にステップS1402では、タイルパートデータの数をカウントするために用いる変数TPnを0に初期化すると共に、上記表示サイズの数をカウントするために用いる変数Kxを1に初期化する。
ステップS1403では、タイルパートデータTPnを復号した場合に得られる画像のサイズを、Kx番目に小さい表示サイズで割った結果の小数点以下を切り捨てた結果Aを求める。より具体的には、タイルパートデータTPnを復号した場合に得られる画像の縦サイズを、Kx番目に小さい表示サイズの縦サイズで割った結果の小数点以下を切り捨てた結果A1を求める。そして、タイルパートデータTPnを復号した場合に得られる画像の横サイズを、Kx番目に小さい表示サイズの横サイズで割った結果の小数点以下を切り捨てた結果A2を求め、A1とA2のうち大きい方をAとする。
なお、タイルパートデータTPnを復号した場合に得られる画像のサイズについては、このタイルパートデータTPnを復号しなくても、タイルパートヘッダを参照すれば取得可能である。
そしてステップS1404では、この求めたAが2以上であるのか否かをチェックする。このチェックの結果、A≧2であれば処理をステップS1405に進め、A<2であれば処理をステップS1410に進める。
本実施形態では、TPn=0、Kx=1であれば、ステップS1403で、タイルパートデータ0を復号して得られる画像の縦サイズ312画素を、最も小さい表示サイズの縦サイズ256画素で割った結果の小数点以下を切り捨てた結果A1=1を求める。更に、タイルパートデータ0を復号して得られる画像の横サイズ208画素を、最も小さい表示サイズの横サイズ256画素で割った結果の小数点以下を切り捨てた結果A2=0を求める。そして、A1とA2のうち大きい方であるA1=1をAとする。従って、この場合には処理をステップS1410に進めることになる。
また、TPn=2、Kx=2であれば、ステップS1403で、タイルパートデータ2を復号して得られる画像の縦サイズ2496画素を、2番目に小さい表示サイズの縦サイズ1024画素で割った結果の小数点以下を切り捨てた結果A1=2を求める。更に、タイルパートデータ2を復号して得られる画像の横サイズ1664画素を、2番目に小さい表示サイズの横サイズ768画素で割った結果の小数点以下を切り捨てた結果A2=2を求める。そして、A1とA2のうち大きい方であるA1(A2)=2をAとする。従って、この場合には処理をステップS1405に進めることになる。
ステップS1405では、タイルデータの数をカウントするために用いる変数Tを0に初期化する。
ステップS1406では、タイルデータTにおける各タイルパートデータのうち、復号画像サイズの大きい方から(A−1)個のresolution levelのデータを抜き出す。これは、タイルパートの先頭からパケット数を数えることで可能である。
本実施形態の場合、タイルパートデータ2にはresolution level1,2,3のデータが含まれているので、復号画像サイズの大きい方(resolution level3)から1(A=2であるので、2−1=1)個のresolution levelのデータを抜き出す。そのために、タイルパートの先頭から、layer数×component数×position数×2=1×3×1×2=6パケットを残し、残り3パケットを抜き出す。ここで、抜き出すということは、元のタイルパートデータから取り除くということである。この結果、タイルパートデータ2内には、resolution level1,2のデータが保持されていることになる。
次にステップS1407では、タイルパートデータTPnのタイルパートヘッダを更新する。即ち、タイルパートデータTPnのデータ長を示すPsotの値を、ステップS1406で抜き出したデータ長分少ない値に書き換え、更に、タイルパートの総数を示すTNsotをステップS1401で取得した表示形態の数Kで書き換える。本実施形態の場合、ステップS1406で抜き出されたresolution level 3のデータ量を50[byte]、もともとPsotに格納されていた値を350とすると、Psotの値として300(=350−50)を上書きする。また、タイルパート数TNsotは、表示形態の数K=3であるので、書き換えても変わらない。
ステップS1408では、ステップS1406で抜き出したresolution levelのデータをタイルデータTにおけるタイルパートデータ(TPn+1)のタイルパートヘッダの直後に移動させる。そして、タイルパートデータ(TPn+1)のタイルパートヘッダ中のデータ長を示すPsotと、タイルパートの総数を示すTNsotを更新する。
本実施形態の場合、タイルパートデータ1から抜き出したresolution data 3のデータ量が50[Byte]、タイルパートデータ2のタイルパートヘッダにおいてPsot=200, TNsot=3とする。この場合、タイルパートデータ2のヘッダの直後にresolution data 3のデータを挿入し、タイルパートデータ2のタイルパートヘッダのPsotを250(=200+50)に更新し、TNsotの値を表示形態の数K=3に書き換えて更新する。
ステップS1409では、変数Tの値に1を加えることで変数Tの値を更新し、更新後の変数Tの値が総タイル数に一致するか否かをチェックする。一致する場合には、全てのタイルについてステップS1406からステップS1408の処理が終わったものとして判断されるので、処理をステップS1410に進める。
一方、一致しない場合には、全てのタイルについてステップS1406からステップS1408の処理が終わっていないものとして判断されるので、処理をステップS1406に戻し、以降の処理を繰り返す。
ステップS1410では、変数TPnの値に1を加えることで変数TPnの値を更新すると共に、変数Kxの値に1を加えることで変数Kxの値を更新する。
そしてステップS1411では、変数Kxの値が、上記Kの値に達したか否かを判断する。達した場合には本処理を終了するが、達していない場合には処理をステップS1403に戻し、以降の処理を繰り返す。
以上の処理の結果、本実施形態の場合には、タイルパートデータ0,1,2は以下のようになる。
タイルパートデータ0が保持するresolution levelデータ:resolution level 0→resolution level 0
タイルパートデータ1が保持するresolution levelデータ:resolution level 1, 2, 3 → resolution level 1, 2
タイルパートデータ2が保持するresolution levelデータ:resolution level 4 → resolution level 3, 4
図15は、図14に示したフローチャートに従った処理を実行する前におけるタイルパートデータ0,1,2のデータ構成と実行後のタイルパートデータ0,1,2のデータ構成とを示す図である。同図左側が実行前における構成を示し、同図右側が実行後における構成を示している。
本実施形態では、第1の実施形態のように、グルーピングフォーマットであるかの判断だけでなく、各タイルパートデータが使用目的に適したものであるのか否かをチェックし、そのチェック結果によっては、再度、タイルパートデータの再構成処理を行う。また、この再構成処理は、表示の際に行ったリサイズの割合のみで判断できるので、大きな負荷にはならない。
また、タイルパートデータを再分割し、タイルパートヘッダを書き直すことで、ディスプレイサイズの異なる端末との間でデータを交換しても、それぞれに適したファイルフォーマットとすることができる。また、表示サイズの種類が異なるアプリケーションとの間でデータを交換しても、それぞれに適したファイルフォーマットとすることができる。
さらに、タイルパートデータの再分割の際には、再デコードする必要がなく、パケットデータの入れ替えとtile-part headerの書き換えのみで実現できるので、処理が軽く、この処理によるオーバーヘッドも少ない。
[第3の実施形態]
第1,2の実施形態では、JP2ファイルフォーマットのuuid boxの中に、バイナリ形式でタイルパート情報を格納していたが、これをXMLで記述し、XML boxの中に格納しても良い。この場合、第1,2の実施形態と異なるのは、図9におけるステップS903,S904における処理である。
本実施形態では、ステップS903の時点において、JP2ファイルの中からXML boxを探す。そしてステップS904の時点において、XML boxの中のXMLをパースして、グルーピングフォーマット定義のタグが書かれているかどうかを判断することで、グルーピングフォーマットであるか否かを判断する。これは、本実施形態では、XML形式でタイルパート情報を格納しているためである。たとえば、XMLのNamespaceが”http://www.format.cano.co.jp”であるタグが、グルーピングフォーマットのタグである、と定義されていれば、このnamespaceのタグがXML内に記述されている場合に、グルーピングフォーマットであると言える。
図16は、XML形式で記述したタイルパート情報の一例を示す図である。同図のタイルパート情報は、タイルパート数が3、タイルパートデータ0を復号して得られる画像のサイズが312画素×208画素であることを示す。またこの情報は、タイルパートデータ1を復号して得られる画像のサイズが2496画素×1664画素、タイルパートデータ2を復号して得られる画像のサイズが4992画素×3328画素であることを示す。
namespaceとして、”http://www.format.cano.co.jp”を使い、タイルパート数はnumTilePartタグの値として、各タイルパートの画像サイズは、sizeTilePartImageタグの値として、タイルパート番号はsizeTilePartImageタグの属性idの値として記述すると定義する。同様に、タイルパート情報の読み出しおよび書き出しも変更すればよい。
XMLで記述すると、バイナリによる記述よりもデータ量が大きくなる可能性があるが、バイナリによる記述よりも拡張性が高くなる。たとえば、タイル数の情報をタイルパート情報に追加することも、バイナリよりは容易に可能になる。
[第4の実施形態]
タイルパート情報に符号化データの先頭から各タイルパートの最後までのデータ長を含めても良い。すなわち、タイルパートデータ0のデータ長として、メインヘッダのデータ長とタイルパートデータ0のデータ長とを合わせた値をタイルパート情報として保存する。タイルパートデータ1のデータ長としてメインヘッダのデータ長とタイルパートデータ0のデータ長及タイルパートデータ1のデータ長を足し合わせた値を、各タイルパートデータを復号した場合に得られる画像のサイズと共に、タイルパート情報として保存する。
例えば、図12に示したようなフォーマットを有するビットストリームにおいて、XMLを使ってタイルパート情報を記述した例を図17に示す。ここではメインヘッダ1200のデータ長が100byte、タイルパートデータ0のデータ群1201のデータ長が200byteとする。また、タイルパートデータ1のデータ群1202のデータ長が300byte、タイルパートデータ2のデータ群1203のデータ長が400byteとする。また、タイルパート情報にタイルパートデータのデータ長を含めた場合に、uuid boxに記述するバイナリデータの構造の例を図18に示す。
このように、各タイルパートデータのデータ長を記すことで、画像処理装置は、必要なバイト数のみを先頭から取得して、デコードすればよい。特に、画像処理装置と画像データの保存装置がネットワークで結ばれている際には、このタイルパート情報を先に画像処理装置に送信することで、画像処理装置はダウンロードすべきバイト数をあらかじめ把握することができる。従って、一般的にインターネットで利用されているHTTPプロトコルのContent-rangeの様に、ファイルの必要な範囲のデータのみを受信できる通信プロトコルを利用するクライアントならば、画像ファイル全体を受信する必要はない。またこのようなクライアントならば、あらかじめ取得したダウンロードすべき範囲を指定して、データの受信を行うことができ、無駄なデータ転送を抑制できる。
[第5の実施形態]
上記第1から4の実施形態では、タイルパート情報をファイルフォーマットの中に格納していた。本実施形態では、符号化データの中に格納する。
JPEG2000符号化データの中に、COMマーカという形式でコメントを格納することが可能になっている。COMマーカの構造を図19に示す。COMマーカは、メインヘッダに含めることも可能であるし、また、各タイルパートヘッダの後ろに含めることも可能である。Rcom 1901の値が0であれば、続くCcom 1902はバイナリで記述されており、Rcom 1901の値が1であれば、続くCcom 1902は、ISO8859-15で定義される文字コードを使って記述されていることを示す。
したがって、COMマーカをメインヘッダに格納し、Rcom = 0として、uuid boxに格納したバイナリ形式のタイルパート情報をCcom 1902に格納しても良い。また、Rcom = 1として、XML boxに記述したテキスト形式のデータをCcomに格納しても良い。
このようにメインヘッダの中に格納することで、ファイルフォーマットの中からタイルパート情報を探さなくても符号化データの先頭にあるメインヘッダを解析するだけで、JPEG2000のエンコード条件と同時にタイルパートの情報を取得ことができる。
[第6の実施形態]
COMマーカは各タイルヘッダに格納しても良い。COMマーカに、上記第1から5の実施形態に示すような、画像全体のタイルパート情報を格納しても良いが、本実施形態では、タイルパート毎のデータを一緒に記述する場合について、図20を用いて説明する。
タイルパートヘッダに、タイルパート情報を持つCOMマーカを記述する場合には、符号化データを並べ変えるので、上記ステップS1008におけるタイルパートへの分割処理と、ステップS1009における書き込み処理とを同時に処理する。
図20において、ステップS2001では、タイルパートデータの数をカウントするために用いる変数TPnを0に初期化する。ステップS2002では、上記ステップS1007における対応付け処理の結果を参照し、タイルパートデータTPnを復号した場合に得られる画像のサイズと、resolution levelのデータの数Rtとを取得する。
本実施形態では、TPn=0の場合には、画像サイズとして312画素×208画素を取得すると共に、数Rtとして1を取得する。また、TPn=1の場合には、画像サイズとして、2496画素×1664画素を取得すると共に、数Rtとして3を取得する。TPn=2の場合には、画像サイズとして4992画素×3328画素を取得すると共に、数Rtとして1を取得する。
次にステップS2003では、タイルデータの数をカウントするための変数Tを0に初期化する。ステップS2004では、タイルパートデータTPnのヘッダを初期化する。本実施形態では、TPn=1の場合には、図3(c)に示すタイルパートヘッダのタイル番号にT、タイルパート番号に1、タイルパート総数に3を代入する。さらに、タイルパートヘッダの後ろに続くCOMマーカのCcom 1902として、図21に示す箱2101を用意する。タイルパートデータ1に含まれるresolution levelのデータは、resolution level 1, 2, 3の3つのデータである。このタイルパートデータを復号することで得られる画像サイズは2496画素×1664画素であるので、Rinside 2102には3、WIDTH 2103には2496、HEIGHT 2104には1664が入る。RDLen 2105は3つ用意しておく。
図20に戻って、ステップS2005では、resolution levelのデータの数をカウントする為に用いる変数Rxを0に初期化する。ステップS2006では、タイルパートデータTPnに入るRx番目のresolution levelのパケットデータと、そのデータ長を取得する。本実施形態の場合、まず、resolution level 1のパケットデータが対象となる。
ステップS2007では、ステップS2006で取得したデータをCOMマーカの後ろに書き込み、さらに、Rx番目のRDLenにそのデータ長を書き込む。ステップS2008では、Rxの値に1を加えることでRxの値を更新し、その後、Rx=Rtであるのか否かをチェックする。Rx≠Rtであれば処理をステップS2006に戻し、以降の処理を繰り返す。本実施形態の場合、TPn=1であれば、ステップS2006,S2007における処理を3回行えば処理をステップS2009に進める。
一方、Rx=Rtであれば処理をステップS2009に進め、変数Tの値に1を加えることで変数Tの値を更新し、その後変数Tの値がタイルの総数と一致するか否かをチェックする。一致しない場合には処理をステップS2004に戻し、以降の処理を繰り返す。
一方、一致する場合には処理をステップS2010に進め、変数TPnの値に1を加えることで変数TPnの値を更新し、その後、TPnの値がタイルパートデータの総数と一致するか否かをチェックする。このチェックの結果、一致する場合には本処理を終了するが、一致しない場合には、処理をステップS2002に戻し、以降の処理を繰り返す。
以上説明した、図20のフローチャートに従った処理を実行すると、タイルパートデータ1のCOMマーカは、たとえば、
Rinside 2101 = 3
WIDTH 2102 = 2103
HEIGHT 2104 = 1664
RDLen0 = 30
RDLen1 = 40
RDLen2 = 50
となる。
このように、タイルパートデータ毎に、含まれている各resolution levelのデータ長を記述することで、タイルパートを再分割する際に、処理を容易にすることができる。すなわち、パケットを解析し、抜き出すパケット数を計算しなくても、COMマーカに記載されているバイト数だけ、タイルパートデータの後方から抜き出すだけで、簡単にresolutionデータを分離できるようになる。
[第7の実施形態]
上記第1から6の実施形態では、3つの解像度を持つファイルフォーマットとなっていたが、DCFファイルと同様に、サムネイルと主画像の2つ解像度から構成されるようにしても良い。
また、上記第1から6の実施形態では、ビットストリームのプログレッション・オーダーをRLCPとしたが、RPCLでもresolution levelで分割する場合には同じことである。
また、上記第1から6の実施形態では、各タイルパートデータはresolution levelで分割していたが、layerまたは、色成分等、他の仕様で分割しても良い。
Layerで分割する場合には、JPEG2000符号化データのプログレッション・オーダーをLRCPとし、タイルパート情報として、各タイルパートの画像サイズではなく、画質のデータ(e.g. bpp)を保存すればよい。Layerによる分割は、複数画質を提供する画像表示システムに、特に有効である。
また、Componentで分割する場合には、JPEG2000符号化データのプログレッション・オーダーは、CPRLとし、各タイルパートの情報として画像サイズではなく、各タイルパートの色成分情報を保存すればよい。これは、特に、JPEG2000データの色成分がYCbCrであり、モノクロとカラーの表示を使い分ける画像表示システムに有効である。
さらに、resolution levelによって分割されたフォーマットと、layerによって分割されたフォーマットを、画像の種類に応じて、使い分けても良い。この場合には、タイルパート情報として、タイルパート分割が、resolution、layer、componentのいずれで行われているのかを記述し、それぞれに応じたデータ、画像サイズ、画質、色成分の記述を行えばよい。
上記各実施形態によれば、グルーピングフォーマットに従った、解像度間の差分データからなるJPEG2000符号化データを利用することで、ファイルサイズを大きくせずに済む。また、画像表示で必要となる解像度画像を用意し、かつ、個々のアプリケーションが必要な解像度(または、画質/色成分)の画像のみに、タイルパートとタイルパート情報を使って、素早くアクセスできる。
また、タイルパートに分割することで、一本のJPEG2000符号化データから必要なデータをピックアップする必要がなく、先頭からデータをデコードすればよいので、シーク回数が減り、表示までの時間を短縮することができる。
さらに、画像を格納する装置と画像を表示する装置が異なり、それらがネットワークでつながれた状況において、画像の表示までの時間を短縮できる。特に、タイルパート情報に各タイルパートデータのデータ長を入れることで、画像データに先立ってタイルパート情報を取得すれば、必要なデータ量だけダウンロードすればよいので、トラフィックを削減し、画像の表示までの時間の短縮につながる。
さらに、画像をタイル分割することで、画像の部分領域へのランダムアクセス性を確保できる。よって、高解像度画像の一部のみ表示する場合に、必要なタイルデータのみをデコードするだけで画像を表示でき、高精細画像も短時間で表示できる。
[その他の実施形態]
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
本発明の第1の実施形態に係る画像処理装置に適用可能なコンピュータのハードウェア構成を示すブロック図である。 Layer−resolution level−component−position progressionに従ったJPEG2000のビットストリームの構成を示す図である。 (a)は、タイルデータを示す図、(b)は、図3(a)に示したタイルデータ300を3つのタイルパートデータに分割した場合に、それぞれのタイルパートデータの構成例を示す図、(c)は、タイルパートヘッダの構成例を示す図である。 (a)は、ビットストリーム中における各タイルパートデータの配置例を示す図、(b)は、タイルパートデータがランダムにビットストリーム中に配置されている場合のビットストリームの構成例を示す図である。 JPEG2000のファイルフォーマットの概略を示す図である。 ボックスの基本構成を示す図である。 (a)は、ハードディスク103に保持されているそれぞれの画像(実際にはビットストリーム)のサムネイルを一覧表示している場合の表示例を示す図、(b)は、指示された画像を全画面表示した場合の表示例を示す図、(c)は、指示された画像を等倍表示した場合の表示例を示す図である。 出力デバイス105の表示画面上に画像を表示する為に画像処理装置が行う処理のフローチャートである。 ステップS802における判別処理の詳細を示すフローチャートである。 ステップS813における処理の詳細を示すブロック図である。 (a)は、uuid boxのBox Contents603のフォーマットを示す図、(b)は、タイルパート情報の構成を示す図、(c)は、本発明の第1の実施形態に係るタイルパート情報を示す図である。 ステップS1008における処理の結果、再構成されたビットストリームの構成を示す図である。 出力デバイス105の表示画面上に画像を表示する為に画像処理装置が行う処理のフローチャートである。 ステップS1302における処理の詳細を示すフローチャートである。 図14に示したフローチャートに従った処理を実行する前におけるタイルパートデータ0,1,2のデータ構成と実行後のタイルパートデータ0,1,2のデータ構成とを示す図である。 XML形式で記述したタイルパート情報の一例を示す図である。 XMLを使ってタイルパート情報を記述した例を示す図である。 タイルパート情報にタイルパートデータのデータ長を含めた場合に、uuid boxに記述するバイナリデータの構造の例を示す図である。 COMマーカの構造を示す図である。 タイルパート毎のデータを一緒に記述する処理のフローチャートである。 COMマーカの内部構造を示す図である。
符号の説明
101 CPU
102 RAM
103 ハードディスク
104 入力デバイス
105 出力デバイス

Claims (8)

  1. 画像を複数のタイルに分割し、それぞれのタイルを複数の解像度で復号可能に符号化することにより得られるそれぞれのタイルの符号化データ、を含む符号化画像データを取得する取得工程と、
    それぞれのタイルの符号化データにおいて、指定された画質を有する画像を得るために必要な部分を復号する復号工程と、
    前記復号工程により復号されたそれぞれのタイルを出力する出力工程と
    を備える画像処理方法であって、
    前記取得工程で取得した符号化画像データが第1のフォーマットに従っていない場合には、それぞれのタイルの符号化データにおいて、指定された画質を有する画像を得るために復号する復号部分を特定する特定工程と、
    それぞれのタイルの符号化データにおいて前記特定工程で特定した復号部分を、タイルの並び順に並べたデータ群として保持すべく、前記符号化画像データを再構成する再構成工程と
    を備えることを特徴とする画像処理方法。
  2. 前記指定された画質を有する画像とは、指定された解像度を有する画像、指定された色数を有する画像を含むことを特徴とする請求項1に記載の画像処理方法。
  3. 前記指定された画質が複数指定されている場合には、前記特定工程、前記再構成工程による処理を指定された画質毎に行うことで、それぞれのタイルの符号化データにおいて、指定された画質の画像を得るために復号する復号部分をタイルの並び順に並べたデータ群を指定された画質毎に生成し、
    指定された画質毎に生成したデータ群を並べることで前記符号化画像データを再構成することを特徴とする請求項1に記載の画像処理方法。
  4. 前記第1のフォーマットは、前記再構成工程で得られる符号化画像データのフォーマットであることを特徴とする請求項1に記載の画像処理方法。
  5. 更に、
    前記再構成工程で再構成された符号化画像データを構成する各タイルの符号化データのうち、第1の指示解像度の画像を得るために復号する復号部分を復号することで得られる復号画像のサイズが、当該第1の指示解像度のN倍(N≧2となる整数)である場合には、
    当該復号部分を構成する各resolution levelのデータのうち、resolution levelが大きい方からN個分のresolution levelのデータを、当該第1の指示解像度の次に大きい第2の指示解像度の画像を得るために復号する復号部分を構成する各resolution levelの先頭部分に移動させる工程を備えることを特徴とする請求項1乃至5の何れか1項に記載の画像処理方法。
  6. 画像を複数のタイルに分割し、それぞれのタイルを複数の解像度で復号可能に符号化することにより得られるそれぞれのタイルの符号化データ、を含む符号化画像データを取得する取得手段と、
    それぞれのタイルの符号化データにおいて、指定された画質を有する画像を得るために必要な部分を復号する復号手段と、
    前記復号工程により復号されたそれぞれのタイルを出力する出力手段と
    を備える画像処理方法であって、
    前記取得手段が取得した符号化画像データが第1のフォーマットに従っていない場合には、それぞれのタイルの符号化データにおいて、指定された画質を有する画像を得るために復号する復号部分を特定する特定手段と、
    それぞれのタイルの符号化データにおいて前記特定手段が特定した復号部分を、タイルの並び順に並べたデータ群として保持すべく、前記符号化画像データを再構成する再構成手段と
    を備えることを特徴とする画像処理装置。
  7. コンピュータに請求項1乃至5の何れか1項に記載の画像処理方法を実行させるためのプログラム。
  8. 請求項7に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
JP2006149022A 2006-05-29 2006-05-29 画像処理方法、画像処理装置 Withdrawn JP2007318694A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006149022A JP2007318694A (ja) 2006-05-29 2006-05-29 画像処理方法、画像処理装置
US11/753,040 US7899259B2 (en) 2006-05-29 2007-05-24 Image processing method and image processing apparatus for images decodable at multiple resolutions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006149022A JP2007318694A (ja) 2006-05-29 2006-05-29 画像処理方法、画像処理装置

Publications (1)

Publication Number Publication Date
JP2007318694A true JP2007318694A (ja) 2007-12-06

Family

ID=38749582

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006149022A Withdrawn JP2007318694A (ja) 2006-05-29 2006-05-29 画像処理方法、画像処理装置

Country Status (2)

Country Link
US (1) US7899259B2 (ja)
JP (1) JP2007318694A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019050623A (ja) * 2018-11-28 2019-03-28 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
US10581725B2 (en) 2014-10-07 2020-03-03 Canon Kabushiki Kaisha Information processing apparatus having a multi-connection communication function for transmitting and receiving data blocks by using a plurality of connections, method for controlling the same, and storage medium

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050131962A1 (en) * 2003-12-16 2005-06-16 Deshpande Sachin G. Systems and methods for implementing a cache model
US10038902B2 (en) 2009-11-06 2018-07-31 Adobe Systems Incorporated Compression of a collection of images using pattern separation and re-organization
JP5515758B2 (ja) * 2010-01-18 2014-06-11 ソニー株式会社 画像処理装置および方法
US8760453B2 (en) * 2010-09-01 2014-06-24 Microsoft Corporation Adaptive grid generation for improved caching and image classification
TWI562644B (en) * 2012-01-30 2016-12-11 Samsung Electronics Co Ltd Method for video decoding in spatial subdivisions and computer-readable recording medium
KR20170042431A (ko) * 2015-10-08 2017-04-19 삼성전자주식회사 디스플레이 모양에 따라 영상 데이터를 불균일하게 인코딩/디코딩하도록 구성되는 전자 장치
US11049219B2 (en) 2017-06-06 2021-06-29 Gopro, Inc. Methods and apparatus for multi-encoder processing of high resolution content
US11228781B2 (en) 2019-06-26 2022-01-18 Gopro, Inc. Methods and apparatus for maximizing codec bandwidth in video applications
CN110677692B (zh) * 2019-09-27 2022-12-06 腾讯科技(深圳)有限公司 视频解码方法及装置、视频编码方法及装置
US11481863B2 (en) 2019-10-23 2022-10-25 Gopro, Inc. Methods and apparatus for hardware accelerated image processing for spherical projections

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0678157A (ja) 1992-08-26 1994-03-18 Fujitsu Ltd 画像データ格納方法
JP4420415B2 (ja) * 1998-07-03 2010-02-24 キヤノン株式会社 符号化方法及び符号化装置
US7200272B2 (en) * 2002-01-31 2007-04-03 Canon Kabushiki Kaisha Image processing method storing input encoded data into a memory
US7245775B2 (en) * 2002-08-26 2007-07-17 Ricoh Company, Ltd. Image processing apparatus for compositing images
JP2004140668A (ja) * 2002-10-18 2004-05-13 Canon Inc 情報処理方法
JP4251610B2 (ja) * 2003-01-10 2009-04-08 キヤノン株式会社 画像処理装置
CN100531292C (zh) * 2003-02-20 2009-08-19 株式会社理光 图像处理方法及装置
JP4416611B2 (ja) * 2003-10-01 2010-02-17 キヤノン株式会社 画像処理方法、画像処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10581725B2 (en) 2014-10-07 2020-03-03 Canon Kabushiki Kaisha Information processing apparatus having a multi-connection communication function for transmitting and receiving data blocks by using a plurality of connections, method for controlling the same, and storage medium
JP2019050623A (ja) * 2018-11-28 2019-03-28 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム

Also Published As

Publication number Publication date
US7899259B2 (en) 2011-03-01
US20070274599A1 (en) 2007-11-29

Similar Documents

Publication Publication Date Title
JP2007318694A (ja) 画像処理方法、画像処理装置
US10448031B2 (en) Method of generating media file and storage medium storing media file generation program
Clark Pillow (pil fork) documentation
JP6590925B2 (ja) 動画像を作成するための方法
US8019166B2 (en) Image data compression method and apparatuses, image display method and apparatuses
US20060269147A1 (en) Accelerated image rendering
EA032859B1 (ru) Многоуровневое декодирование сигнала и восстановление сигнала
EP3804348A1 (en) Adaptive panoramic video streaming using overlapping partitioned sections
US10462495B2 (en) Progressive lossless compression of image data
CN112929705B (zh) 纹理压缩和解压方法、装置、计算机设备和存储介质
JP2008278464A (ja) 多次元データの符号化装置及び復号装置並びにその制御方法
JP4812585B2 (ja) 符号変換装置、符号変換方法、プログラム及び記録媒体
KR20200094364A (ko) 이미지 파일의 블록 간 차이를 통한 압축율 향상 방법 및 시스템
AU2018233015A1 (en) System and method for image processing
JP2003169333A (ja) 符号列作成装置、画像伸長システム、画像伸長装置、画像提供システム、符号列作成方法、プログラム及び記録媒体
US20210256734A1 (en) Texture Compression
JP2006325186A (ja) 画像処理装置
JP5614122B2 (ja) 画像データ復号装置
JP2007005844A (ja) 符号化処理装置、符号化処理方法、プログラム及び情報記録媒体
JP2004173125A (ja) 符号化復号化装置、符号化復号化用プログラム及び記憶媒体
JP2002532996A (ja) ウェブに基づく映像編集方法及びシステム
JP2007074412A (ja) 固定長圧縮画像と属性情報のパッキングデータを処理する画像処理装置
KR102481009B1 (ko) 크로마 서브 샘플링된 이미지들에 대한 빠른 참조 객체 저장 형식에 대한 방법
JP3863023B2 (ja) テクスチャ生成装置、テクスチャマッピング装置、テクスチャ生成方法、テクスチャマッピング方法、テクスチャ生成プログラム、及び、テクスチャマッピングプログラム
US11189006B2 (en) Managing data for transportation

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20090804