(57)【要約】      （修正有）【課題】画像符号化の際入力段でビット数を減らさず、直交変換までの処理は、入力画像のビット数で処理し演算精度の低下を抑制し、目的符号化データを生成すること。【解決手段】色変換部２０３、ＤＣＴ部２０５は１６ビットレンジで変換可能。ベースラインＪＰＥＧ符号化の場合、量子化テーブル格納部１１１には８ビット用の量子化テーブルを格納。解析部２１７より、入力画素の色成分が１６ビットである情報が出力された場合、ビットシフト部２０９は量子化テーブル格納部１１１の量子化テーブルを２の８乗倍、もしくは２の８乗＋１倍し、量子化テーブル格納部２１１に格納。量子化部２０７は、ＤＣＴ部出力係数を、量子化テーブル格納部２１１格納の量子化テーブルで量子化し、ハフマン符号化部１０９でエントロピー符号化を行う。そして、ベースラインＪＰＥＧを示す情報並びに量子化テーブル格納部１１１格納の量子化テーブルでヘッダを作成し、符号２１３を生成する。【選択図】図２
2006005479.tif 000002
【特許請求の範囲】
【請求項１】
復号画像の各画素の色成分がＭビットとなる符号化データを生成する画像符号化装置であって、
前記Ｍビットの符号化データを生成するため第１の量子化テーブルを格納する格納手段と、
符号化対象画像の画素の各色成分のビット数がＮ（Ｎ＞Ｍ）ビットである場合、前記第１の量子化テーブルの量子化ステップ値を前記Ｍ、Ｎによって決定される倍率で乗算して得られる第２の量子化テーブルを用いて、前記符号化対象画像を直交変換した結果を量子化する量子化手段と、
該量子化手段で量子化した結果をエントロピー符号化する符号化手段と、
前記第１の量子化テーブルに応じたヘッダ情報を、前記エントロピー符号化によって生成された符号化データに付加し、出力する出力手段と
を備えることを特徴とする画像符号化装置。
【請求項２】
復号画像の各画素の色成分がＭビット、もしくはＮ（Ｎ＞Ｍ）ビットの少なくとも２種類の符号化データを生成する画像符号化装置であって、
復号画像の各色成分がＭビットの第１の符号化データを生成するか、Ｎビットの符号化データを生成するかを指示する指示手段と、
前記Ｍビットの符号化データを生成するための第１の量子化テーブルを格納する格納手段と、
符号化対象画像の画素の各色成分のビット数がＬビットである場合、前記第１の量子化テーブルを前記Ｌ，Ｍによって決定される倍率で乗算して得られる第２の量子化テーブルを用いて、前記符号化対象画像を直交変換した結果を量子化する量子化手段と、
該量子化手段で量子化した結果をエントロピー符号化する符号化手段と、
前記指示手段で第１の符号化データの生成の指示があった場合には前記第１の量子化テーブルに応じたヘッダ情報、第２の符号化データの生成指示があった場合には前記第２の量子化テーブルに応じたヘッダ情報を、前記エントロピー符号化により生成された符号化データに付加し、出力する出力手段と
を備えることを特徴とする画像符号化装置。
【請求項３】
前記第２の量子化テーブルは、前記第１の量子化テーブルの量子化ステップ値を２の「Ｍ−Ｎ」乗倍、もしくは｛２の「Ｍ−Ｎ」乗＋１｝倍して得られることを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項４】
前記生成された符号化画像データ中のヘッダ情報の、符号化種別情報、並びに、量子化テーブルを書き換えることで、別の符号化画像データに変換する手段を備えることを特徴とする画像符号化装置。
【請求項５】
復号画像の各画素の色成分がＭビットとなる符号化データを生成する画像符号化方法であって、
前記Ｍビットの符号化データを生成するため第１の量子化テーブルを格納する格納工程と、
符号化対象画像の画素の各色成分のビット数がＮ（Ｎ＞Ｍ）ビットである場合、前記第１の量子化テーブルの量子化ステップ値を前記Ｍ、Ｎによって決定される倍率で乗算して得られる第２の量子化テーブルを用いて、前記符号化対象画像を直交変換した結果を量子化する量子化工程と、
該量子化工程で量子化した結果をエントロピー符号化する符号化工程と、
前記第１の量子化テーブルに応じたヘッダ情報を、前記エントロピー符号化によって生成された符号化データに付加し、出力する出力工程と
を備えることを特徴とする画像符号化方法。
【請求項６】
復号画像の各画素の色成分がＭビット、もしくはＮ（Ｎ＞Ｍ）ビットの少なくとも２種類の符号化データを生成する画像符号化方法であって、
復号画像の各色成分がＭビットの第１の符号化データを生成するか、Ｎビットの符号化データを生成するかを指示する指示工程と、
前記Ｍビットの符号化データを生成するための第１の量子化テーブルを格納する格納工程と、
符号化対象画像の画素の各色成分のビット数がＬビットである場合、前記第１の量子化テーブルを前記Ｌ，Ｍによって決定される倍率で乗算して得られる第２の量子化テーブルを用いて、前記符号化対象画像を直交変換した結果を量子化する量子化工程と、
該量子化工程で量子化した結果をエントロピー符号化する符号化工程と、
前記指示工程で第１の符号化データの生成の指示があった場合には前記第１の量子化テーブルに応じたヘッダ情報、第２の符号化データの生成指示があった場合には前記第２の量子化テーブルに応じたヘッダ情報を、前記エントロピー符号化により生成された符号化データに付加し、出力する出力工程と
を備えることを特徴とする画像符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像データの符号化技術に関するものである。
【背景技術】
【０００２】
静止画像データの国際標準符号化方式であるＪＰＥＧでは、離散コサイン変換（ＤＣＴ）を利用した非可逆符号化方式として、各色成分８ビットのカラー画像データと１２ビットのカラー画像データの符号化・復号化処理が規定されており、８ビット画像の符号化はベースラインＪＰＥＧ、８ビットを含む１２ビット画像の符号化は拡張ＪＰＥＧとして区別されている（非特許文献１）。
【０００３】
この非特許文献の付属書ＢのＢ．２．２節の表Ｂ．２にフレームヘッダパラメータのサイズと値が規定されており、符号化・復号化する画像データのビット数が２番目のパラメータＰとして規定されている。シーケンシャルＤＣＴのベースラインは８ビット画像のみに限定され、シーケンシャルＤＣＴの拡張とプログレッシブＤＣＴは８ビットと１２ビット画像の符号化・復号化ができるようになっている。画像データ中の符号化したビット数が前記フレームヘッダパラメータに記述され、復号時は該パラメータに基づいて復号処理を行うので、いずれのビット数であっても符号化したビット数と、復号後の画像データのビット数は同じである。
【０００４】
これまでのカラー画像入力機器は、技術的な課題やコスト上の理由から、各色８ビット以下の精度でデータを生成しており、ＪＰＥＧ圧縮と言えば、８ビットデータの圧縮を行うベースラインＪＰＥＧが一般的であった。
【０００５】
近年、画像入力機器の精度が向上し、デジタルカメラやスキャナなど８ビットを越える精度を有する画像データの生成が手軽にできるようになってきた。これに対応して、１２ビットデータの圧縮が可能な拡張ＪＰＥＧの必要性が増してきている。
【０００６】
拡張ＪＰＥＧがベースラインＪＰＥＧと大きく異なる点は、入力データのビット数が４ビット分増加しており、これにより、色変換部、ＤＣＴ変換部、量子化部において１６倍の値が処理できるようビット数の拡張が図られている。
【０００７】
ビット数の拡張をさらに行い、各処理部で扱うことができる最大値を大きくすれば、量子化テーブルやハフマンテーブルをどうするかという問題は残るものの、１２ビットを超えるデータでもＪＰＥＧと同様の処理で符号化できることは容易に想像がつく。
【０００８】
しかし、１２ビットを超えるデータをＪＰＥＧのように符号化しても、そのような符号は非標準となってしまい、一般のアプリケーションでは扱うことができない。
【０００９】
ここでは、まず各色８ビットのフルカラー画像のベースラインＪＰＥＧ符号化処理フローを、図１に示すブロック図を用いて説明する。
【００１０】
同図において、１０１は入力される各色８ビットのフルカラー画像データ、１０３は色変換部、１０５はＤＣＴ変換部、１０７は量子化部、１０９はハフマン符号化部、１１１は量子化テーブル格納部、１１３は符号化処理で生成された符号である。
【００１１】
フルカラー画像の３つのコンポーネントがＲＧＢ３原色の場合、色変換部１０３では、ＲＧＢ３原色を輝度と色差信号であるＹＣｂＣｒへ変換する。この色変換は、ＩＴＵ−Ｒ  ＢＴ．６０１に準拠した以下の式１が一般的に用いられる。
Ｙ  ＝０．２９９×Ｒ＋０．５８７×Ｇ＋０．１１４×Ｂ
Ｃｂ＝（−０．２９９×Ｒ−０．５８７×Ｇ＋０．８８６×Ｂ）×０．５６４＋ｋ
Ｃｒ＝（０．７０１×Ｒ−０．５８７×Ｇ−０．１１４×Ｂ）×０．７１３＋ｋ
ここで、８ビットデータの変換では、ｋ＝１２８という値を用いる。
【００１２】
色変換されたＹＣｂＣｒは、ＤＣＴ変換部１０５にてＤＣＴ変換係数に変換され、次の量子化部１０７に送られる。量子化部１０７は、該ＤＣＴ変換係数を量子化テーブル格納部１１１から読み出した量子化ステップ値で除算して、ＤＣＴ変換係数を量子化値に変換し、ハフマン符号化部１０９へ送る。
【００１３】
ハフマン符号化部１０９は、量子化値を不図示のハフマンテーブルに基づき、ハフマン符号化して符号３１７を生成する。符号３１７にはヘッダ情報として、ベースラインＪＰＥＧ符号であることを示すＳＯＦ０マーカや画像サイズをはじめとする各種パラメータ、及び、量子化テーブル情報が書き込まれる。この量子化テーブル情報は、量子化テーブル格納部１１１から読み出す。
【００１４】
図１のベースラインＪＰＥＧ符号化処理に対応した処理系では、８ビットのフルレンジの入力を想定した実装になっている。拡張ＪＰＥＧ符号化処理に対応した処理系では、１２ビットのフルレンジの入力を想定した実装になる。
１６ビットのフルレンジの入力を想定した実装にすれば、１６ビットデータもＪＰＥＧと同様の処理で符号化できるが、生成される符号は非標準となってしまう。
【非特許文献１】ＩＴＵ−Ｔ勧告書Ｔ．８１（ＩＳＯ／ＩＥＣ  １０９１８−１）
【発明の開示】
【発明が解決しようとする課題】
【００１５】
上記、従来の処理系では、ベースラインＪＰＥＧ符号化処理では８ビット入力、拡張ＪＰＥＧ符号化処理では１２ビット入力にしか対応しておらず、次のような問題点があった。
【００１６】
たとえ拡張ＪＰＥＧで圧縮したとしても１２ビットを超えるデータは、一度１２ビットに丸める処理を行ってから符号化する必要がある。つまり、入力する画像データは１２ビット画像として処理されることになる。また、ベースラインＪＰＥＧで符号化する場合には８ビットに丸めた後に、符号化する必要がある。
【００１７】
これでは、画像入力機器の高性能化により出力ビット数が増えても無駄であり、画像データが有する高い精度を圧縮した符号に反映させることができない。すなわち、復号画像の画質はいままでと変わらず、画像入力機器の高性能化の恩恵がまったくない。
【００１８】
本発明は、上記の問題点に鑑みなされたものであり、画像符号化する際の入力時点でビット数を減らすのではなく、直交変換等の処理では、入力する画像のビット数で処理を行うことで演算精度の低下を抑制し、目的とする符号化データを生成する技術を提供しようとするものである。
【課題を解決するための手段】
【００１９】
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
復号画像の各画素の色成分がＭビットとなる符号化データを生成する画像符号化装置であって、
前記Ｍビットの符号化データを生成するため第１の量子化テーブルを格納する格納手段と、
符号化対象画像の画素の各色成分のビット数がＮ（Ｎ＞Ｍ）ビットである場合、前記第１の量子化テーブルの量子化ステップ値を前記Ｍ、Ｎによって決定される倍率で乗算して得られる第２の量子化テーブルを用いて、前記符号化対象画像を直交変換した結果を量子化する量子化手段と、
該量子化手段で量子化した結果をエントロピー符号化する符号化手段と、
前記第１の量子化テーブルに応じたヘッダ情報を、前記エントロピー符号化によって生成された符号化データに付加し、出力する出力手段とを備える。
【発明の効果】
【００２０】
本発明によれば、画像符号化する際の入力時点でビット数を減らすのではなく、直交変換までの処理では、入力する画像のビット数で処理を行うことで演算精度の低下を抑制しつつ、目的とする符号化データを生成することが可能になる。
【発明を実施するための最良の形態】
【００２１】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００２２】
＜第１の実施形態＞
本実施形態では、各色成分が１６ビットの画像データから符号化データを生成する装置において、１６ビットの画像データからベースラインＪＰＥＧ符号（復号画像の各色成分が８ビット）、拡張ＪＰＥＧ符号（復号画像の各色成分が１２ビット）を得るための符号化装置を例に説明する。
【００２３】
図２は本実施形態の符号化装置のブロック図である。図１との相違する点は、図１のハフマン符号化部１０９と量子化テーブル格納部１１１を除いた各処理部は１６ビットのフルレンジ入力に対応した処理能力を有する点が異なる。具体的には、処理するビット数が上位方向に８ビット拡張したものになっている。
【００２４】
上記２つの処理部以外は従来の８ビット対応の処理部と区別するため、以下のように別の番号を付した。
【００２５】
２０１は入力される各色１６ビットのフルカラー画像データ、２０３、２０５、２０７はそれぞれ１６ビットデータ対応の色変換部、ＤＣＴ（直交変換）部、量子化部、２１３は１６ビットデータを符号化処理して生成される符号である。
【００２６】
また、実施形態では、新たに以下の処理部と画像情報が追加となる。
【００２７】
２０９はビットシフト部、２１１は第１の量子化テーブルを記憶する量子化テーブル格納部、２１７は入力する（符号化しようとする）画像データの各色成分が何ビットで表わされているかを判定する解析部である。入力画像が画像ファイルとして記憶装置に記憶されている場合には、そのヘッダを解析することで判定する。また、外部装置と通信することで画像データを入力する場合には、通信のネゴシエーションによって通知される情報を解析することになる。解析部２１７の解析結果は、信号２１５としてビットシフト部２０９に出力される。
【００２８】
なお、従来例のブロック図から継承する量子化テーブル格納部１１１は、第２の量子化テーブルを記憶する。この量子化テーブル格納部１１１には、復号画像のビット数を８ビットと想定し、それに対応した従来の量子化テーブルを格納している。
【００２９】
ここで、第１の量子化テーブルと第２の量子化テーブルについて簡単に説明すると、符号化処理で使うのが第１の量子化テーブルであり、復号化処理で使うことを想定して符号のヘッダ情報に書き込むのが第２の量子化テーブルである。
【００３０】
なお、第３の実施形態で説明するが、通常は復号処理において第２の量子化テーブルを使用するが、符号列のヘッダ中の量子化テーブルを書き換えて符号を変換した場合、復号処理で使用するテーブルは書き換え後の量子化テーブルとなり、第２の量子化テーブルが必ず使われるとは限らない。
【００３１】
さて、以下では、図２の構成の処理内容を説明する。
【００３２】
解析部２１７が入力する画像データを解析し、各色成分Ｒ、Ｇ、Ｂが何ビットで表わされているか否かを判定し、その結果をビットシフト部２０９に出力する。ビットシフト部２０９は、入力画像の各色成分が１６ビットであることの通知を受けると、量子化テーブル格納部１１１に格納された量子化テーブル情報の量子化ステップ値を８ビット（＝１６−８）だけ上位にシフト（２５６倍）し、その結果を第１の量子化テーブルとして量子化テーブル格納部２１１に格納する。
【００３３】
そして、各色１６ビットのフルカラー画像データ２０１は、色変換部２０３にて１６ビットレンジの色変換処理が施される。この色変換は、ＩＴＵ−Ｒ  ＢＴ．６０１に準拠した先に示した式１に従って処理することになる。ただし、８ビットのデータではｋ＝１２８であったが、１６ビットのデータではｋ＝３２７６８を用いて色変換処理を行う。
【００３４】
そして、ＤＣＴ部２０５にて、１６ビットレンジの直交変換を行い、その結果である係数を量子化部２０７に出力する。量子化部２０７は、量子化テーブル２１１に格納された量子化テーブルの量子化ステップで、直交変換係数を除算することになる。ここで、注意されたい点は、量子化テーブル２１１には、先に説明したように１６ビット向けの量子化テーブルが格納されている点である。すなわち、除算結果のレベルは、各色成分が８ビットの画像をＤＣＴ変換し、それを量子化したものと実質同じになる。但し，量子化値のレベルが同じであるからと言って、値が完全に一致するわけではなく、係数位置によって値が少し違ってくる。この差は、８ビットデータを処理した時と１６ビットデータを処理した時の演算精度の違いである。
【００３５】
ハフマン符号化部１０９は、量子化後の値を、不図示のハフマンテーブルに基づき、ハフマン符号化して符号列２１３を生成する。符号列２１３のヘッダ情報には、ベースラインＪＰＥＧ符号であることを示すＳＯＦ0マーカや画像サイズをはじめとする各種パラメータ、及び、量子化テーブル１１１に格納された量子化テーブル情報を書き込む。
【００３６】
上記は、入力データの各色成分が１６ビットあり、従来の８ビットに対して約２５６倍のレンジを有する。よって、該１６ビットデータを色変換、ＤＣＴ変換して得られるＤＣＴ変換係数は従来の２５６倍もの値を有する。このＤＣＴ変換係数を従来の８ビット用の量子化テーブルを２５６（＝２＾８）倍したテーブルで除算すると、除算結果である量子化値は従来の８ビットデータの符号化時と同じレベルになる。これにより、従来の８ビットデータ符号化時のハフマンテーブルがそのまま使えることがわかる。
【００３７】
この差は、符号化時にはハフマン符号化後の符号量の差、復号化時に画質差となって現われる。共に、８ビットデータを処理した時より１６ビットデータを処理した時の方が好ましい。すなわち、１６ビットデータを処理した時の方が符号量が小さく、復号化時の画質もよくなることをシミュレーションで確認している。
【００３８】
なお、上記例は、入力画像データの各色成分のビット数が１６ビットとして説明したが、８〜１５ビットでもかまわない。
【００３９】
入力データのビット数が８＋ｎビットの場合、画像情報２１５として８＋ｎを受け取り、読み出した第２の量子化テーブルを該画像情報に基づいてｎビット左シフトしたものを第１の量子化テーブルとしてテーブル格納部２１１に記憶する。
【００４０】
例えば、入力画像データの各色成分が１２ビット（ｎ＝４となる）であると判断した場合には、ビットシフト部２０９は、量子化テーブル格納部２１１に格納された量子化テーブルの量子化ステップ値を４ビット（＝１２−８）だけ上位にシフト（１６倍）し、その結果を第１の量子化テーブルとして量子化テーブル格納部２１１に格納する。これ以外は、上記と同じである。
【００４１】
また、入力した画像の各色成分が８ビット（ｎ＝０）である場合には、ビットシフト部２０９は量子化テーブ格納部１１１に格納された量子化ステップ値の０ビットシフト、すなわち、シフト処理を行わず量子化テーブル格納部２１１に格納するだけでよい。
【００４２】
上記では、ベースラインＪＰＥＧ符号化データを生成するものであったが、拡張ＪＰＥＧ符号化データを生成することも可能である。
【００４３】
この場合には、量子化テーブル格納部１１１に格納する量子化テーブルは８ビット画像用ではなく、１２ビット画像用のテーブルを格納する。また、入力データのビット数は１２ビット以上とし、色成分が１２＋ｍビットと表現した際、ビットシフト部２０９は量子化テーブル１１１に格納された量子化ステップ値をｍビットだけ左シフト（２＾ｍ＝２m倍）する。そして。符号化データ２１３のヘッダ情報中のフレーム開始マーカをＳＯＦ1マーカとし、画像データのビット数を表すパラメータを１２に設定する（１２ビット拡張ＪＰＥＧフォーマットであることを示す情報を付加する）。
【００４４】
＜実装例の説明＞
図４は実施形態における画像符号化装置をデジタルカメラ装置（撮像装置）に実装した場合のブロック構成図である。
【００４５】
図中、１は装置全体の制御を司るＣＰＵ、２はＣＰＵ１の処理手順を記憶するＲＯＭ、３はワークエリアとして使用されるＲＡＭである。このＲＡＭ３は、撮像画像を符号化するために一時的に格納するために用いられるものであり、且つ、図１に示す量子化テーブル格納部２１１に相当する第１の量子化テーブル格納部、量子化テーブル格納部１１１に相当する第２の量子化テーブル格納部として機能する領域が確保されているものとする。
【００４６】
４は着脱自在なメモリカード（記憶媒体）５を接続するためのコネクタである。６は光学部であって、レンズ、絞り等で構成され、７は光学部６を制御する光学制御部である。８は撮像素子（ＣＣＤ）であり、９はＡ／Ｄコンバータである。このＡ／Ｄコンバータ９はＣＣＤ９からの各色成分のアナログ信号を、ＣＰＵ１からの指示に従ってビット数（８乃至１６ビット）で出力可能とする。
【００４７】
１０は液晶表示器で構成される表示部であり、１１は表示部１０の表示を制御する表示制御部である。
【００４８】
１２はシャッターボタンや、各種メニュー選択やモードダイヤル等で構成される操作部であり、１３は外部装置と接続するためのインタフェース（例えばＵＳＢインタフェース）である。
【００４９】
上記構成において、ユーザは操作部１２を操作して、撮像画像をメモリカード５に格納する際の圧縮モードとして８ビット画像の符号化であるベースラインＪＰＥＧモード、１２ビットの拡張ＪＰＥＧモードのいずれかを選択可能とする。また、操作部１２により設定された精度に従って、Ａ／Ｄコンバータ９からの出力ビット数を８乃至１６の間で切り変えることが可能とする。なお、Ａ／Ｄコンバータ９の信号線は１６本あるが、仮にＮビットを選択した場合には、下位のＮビットに有意なデータが出力され、上位の「１６−Ｎ」ビットは常に０を出力することになる。
【００５０】
また、通常、シャッターボタンを半押しの状態でＡＦ制御を行い、全押しのときに撮像した画像を圧縮してメモリカード５に書き込む処理を行う。ＡＦ処理そのものは本願発明には直接は関係がないので、シャッターボタンを全押し際の撮像画像の圧縮処理について説明することとする。
【００５１】
図５はこの際の画像圧縮処理の手順を示すフローチャートである。
【００５２】
先ず、ステップＳ１において、符号化モードとして復号結果の画素の各色成分が８ビットとなるベースラインＪＰＥＧ符号化モードが選択されているか、或いは、復号結果の画素の各色成分が１２ビットとなる拡張ＪＰＥＧ符号化モードが選択されているかを判断する。
【００５３】
ベースラインＪＰＥＧが選択されている場合には、ステップＳ２に進んで、第２の量子化テーブル格納部（ＲＡＭ３に確保されている）に８ビット画像用の量子化テーブルを格納する。一方、拡張ＪＰＥＧが選択されている場合には、ステップＳ３に進んで、第２の量子化テーブル格納部に１２ビット用画像の量子化テーブルを格納する。
【００５４】
ステップＳ４では、第２の量子化テーブル格納部の量子化テーブルを、第１の量子化テーブル格納部に格納する際のシフトするビット数Ｎを決定する。例えば、Ａ／Ｄコンバータ９から出力する有意ビット数をＭ（８≦Ｍ≦１６）とし、第２の量子化テーブル格納部に格納されたテーブルが８ビット画像用量子化テーブルであればＱ＝８、１２ビット画像用ビットテーブルであればＱ＝１２と定義したとき、シフトビット数Ｎは、
Ｎ＝Ｍ−Ｑ
として演算する。
【００５５】
上記のようにしてシフトビット数Ｎが決定されると、処理はステップＳ５に進んで、第２量子化テーブル格納部に格納された量子化テーブル（量子化ステップ値）を、決定したビット数Ｎだけ左シフト（２＾Ｎ倍）した結果を第１量子化テーブル格納部に格納する。
【００５６】
この後、ステップＳ６にて、撮像画像のＲＧＢデータを輝度と色差で表現されるＹＣｂＣｒ色空間に変換し、ステップＳ７でＤＣＴ変換を行う。このステップＳ６、７の演算は少なくとも有効レンジがＭビットである点に注意されたい。
【００５７】
ステップＳ８では、第１の量子化テーブル格納部に格納された量子化テーブル（シフト処理後の量子化テーブル）に基づいて量子化を行う。そして、ステップＳ９にてエントロピー符号化を行う。ステップＳ１０では、第２の量子化テーブル格納部に格納された量子化テーブルをＪＰＥＧ符号化データのヘッダに格納すると共に、選択されたモードを識別するための情報をヘッダ中の格納する。この結果、ヘッダ及び符号列が形成さるので、ステップＳ１１にて、メモリカード５に出力することで書き込みを行う。
【００５８】
上記において、特に注意されたい点は、例えば、ベースラインＪＰＥＧの符号データを生成する際、入力する画像データの各色成分は８ビットだけでなく、９ビット以上をも許容している点である。途中の色変換、ＤＣＴ変換もそれに応じたビット数のレンジにて演算処理を行うことになるので、演算精度は高く、丸め量も処理も少なく、結果的に符号化データを復号した際の画像の画質向上を図ることが可能となる。
【００５９】
＜変形例＞
図２では、量子化テーブル格納部１１１（図５のフローチャートでは第２の量子化テーブル格納部）に格納された量子化テーブルを量子化テーブル格納部２１１（同、第１の量子化テーブル格納部）に格納する際にビットシフトする例を示したが、次に示す方法もある。
【００６０】
量子化テーブル格納部１１１に記憶する量子化テーブルは８ビット画像用のテーブルで、該量子化テーブル格納部１１１から読み出した量子化テーブルを１６倍（４ビット左シフト）したものを、第２の量子化テーブルとしてヘッダ情報に書き込む方法である。
この変形例では、量子化テーブル格納部１１１と符号２１３との間に、新たなビットシフト処理が必要である。これをビットシフト部３０１として設け、該ビットシフト部に対する制御情報３０３を追加したのが、図３のブロック図である。
【００６１】
制御情報３０３は、ベースラインＪＰＥＧ符号を生成するか、拡張ＪＰＥＧ符号を生成するかを切り換えるものであって、操作部１２からの指示によるものである。
【００６２】
図２のブロック図では、ベースラインＪＰＥＧ符号と拡張ＪＰＥＧ符号を切り換える場合、量子化テーブル格納部１１１の内容を変更する必要があると共に、ビットシフト部２０９の制御方法も切り換える必要があった。
【００６３】
しかし、図３のブロック図では、量子化テーブル格納部１１１に記憶する量子化テーブルは８ビット画像用のテーブルに固定でき、ビットシフト部２０９の制御は入力画像データのビット数のみに依存したシフト制御を行える。あとは、制御情報３０３に基づいてビットシフト部３０３を制御し、前記マーカとパラメータを変更するだけで、ベースラインＪＰＥＧ符号と拡張ＪＰＥＧ符号を切り換えて生成することができる。
【００６４】
ここで、ビットシフト部３０３は、ベースラインＪＰＥＧ符号化データを生成する指示があった場合には、量子化テーブル格納部１１１の量子化テーブルはシフト無しに出力する。一方、拡張ＪＰＥＧ符号化データを生成するよう指示があった場合には、１２−８＝４であるので、量子化テーブル格納部１１１の量子化テーブルを４ビットだけ左（上位）にシフトして出力すればよい。
【００６５】
＜第２の実施形態＞
上記第１の実施形態において、１６ビットデータを符号化して生成したベースラインＪＰＥＧ符号と、拡張ＪＰＥＧ符号は、符号中のヘッダ情報に違いがあるだけで、ハフマン符号化して生成した部分はまったく同じである。
【００６６】
このことから、本実施形態における符号化装置で生成したベースラインＪＰＥＧ符号と拡張ＪＰＥＧ符号は、そのヘッダ情報を書き換えるだけで相互に変換可能であることが理解できる。
【００６７】
そこで、本第２の実施形態は、該符号の相互変換に関する。以下に符号を相互変換するためのヘッダ情報の書き換え処理について示す。
【００６８】
・ベースラインＪＰＥＧ符号から拡張ＪＰＥＧ符号への変換方法
１．ヘッダ情報を解析し、以下のようにマーカ・パラメータ・テーブルを書き換える
２．フレーム開始マーカをＳＯＦ０マーカからＳＯＦ１マーカに変更
３．画像データのビット数を表すパラメータを８から１２に変更
４．量子化テーブルの各量子化ステップを１６倍に変更
【００６９】
・拡張ＪＰＥＧ符号からベースラインＪＰＥＧ符号への変換方法
１．ヘッダ情報を解析し、以下のようにマーカ・パラメータ・テーブルを書き換える
２．フレーム開始マーカをＳＯＦ１マーカからＳＯＦ０マーカに変更
３．画像データのビット数を表すパラメータを１２から８に変更
４．量子化テーブルの各量子化ステップを１／１６倍に変更
【００７０】
ベースラインＪＰＥＧ符号における量子化テーブルの各量子化ステップは任意に設定しても、拡張ＪＰＥＧ符号への変換は可能であるが、拡張ＪＰＥＧ符号をベースラインＪＰＥＧ符号へと変換できるようにするには、拡張ＪＰＥＧ符号における量子化テーブルの各量子化ステップは１６の倍数に近い方が望ましい。
【００７１】
＜第３の実施形態＞
１６ビットデータと８ビットデータの最大値の比を正確に計算すると６５５３５／２５５＝２５７である。よって、１６ビットデータを符号化処理して生成した符号を８ビットデータとして復号化する場合、量子化用テーブルを逆量子化用テーブルの２５７倍にするという考え方もできる。
【００７２】
すなわち、１６ビットデータを符号化処理する時には、８ビット用量子化テーブルを２５７倍した第１の量子化テーブルで量子化処理を行い、８ビットデータとして復号化処理する時には、該８ビット用量子化テーブルを第２の量子化テーブルとして用いて逆量子化処理を行うことも可能である。
【００７３】
また、１５ビットデータと８ビットデータの最大値の比を見てみると、３２７６７／２５５≒１２８．４９８である。これを正確に四捨五入して丸めると１２８となり、２のべき乗になるが、丸める前の値が１２８．５にかなり近い値であるため、切り上げて１２９にしても大差はない。
【００７４】
前記第１、第２の実施形態では、第１の量子化テーブルと第２の量子化テーブルの比は２のべき乗に限定していたが、符号化するデータのビット数と復号化するデータのビット数の関係によっては、２つのテーブルの比は｛２のべき乗＋１｝倍でもいい場合もあるということが、上記説明から理解できる。
【００７５】
２のべき乗＋１倍する場合のブロック図は、図２、図３におけるビットシフト部２０９を乗算部に置き換え、２のべき乗＋１を乗算すればよいので、その詳細は説明するまでもない。
【００７６】
また、これまでの説明では、符号化時のビット数の方が復号化時のビット数よりも大きい場合のみを取り上げてきたが、８ビットの画像データをベースラインＪＰＥＧ符号化して生成した符号のヘッダを書き換えて拡張ＪＰＥＧ符号に変換し、１２ビットデータとして復号することも当然考えられるので、この場合には、符号化時のビット数より復号化時のビット数の方が大きい。
【００７７】
以上、本発明に係る実施形態を説明したが、上記実施形態に示した装置或いは処理方法によって生成したベースラインＪＰＥＧ符号と拡張ＪＰＥＧ符号は、ベースラインＪＰＥＧや拡張ＪＰＥＧに対応した一般の画像ビューアでも当然復号できると共に、１６ビットの画像データを符号化した符号を復号した時の画質は従来よりも良く、完全な互換性を有していることに注意されたい。
【００７８】
以上説明したように本実施形態によれば、画像データを直交変換した変換係数を第１の量子化テーブルで量子化した後、量子化値をエントロピー符号化して符号を生成する際に、前記第１の量子化テーブルと２のべき乗または２のべき乗＋１の比の関係にある第２の量子化テーブルで復号するべく、該第２の量子化テーブルをヘッダ情報に書き込むことにより、１６ビットデータを１６ビットの精度で演算・符号化処理して生成した符号をベースラインＪＰＥＧ符号、あるいは拡張ＪＰＥＧ符号として復号することができ、復号画像の画質の向上が図れる。
【図面の簡単な説明】
【００７９】
【図１】従来の符号化装置の構成を示す図である。
【図２】実施形態における符号化装置のブロック構成図である。
【図３】変形例の符号化装置のブロック構成図である。
【図４】実施形態における符号化装置をデジタルスチルカメラに適用した際の装置構成図である。
【図５】撮像画像の符号化処理手順を示すフローチャートである。
【図１】
2006005479.tif 000003
【図２】
2006005479.tif 000004
【図３】
2006005479.tif 000005
【図４】
2006005479.tif 000006
【図５】
2006005479.tif 000007