(57)【要約】【課題】符号化データの管理が容易で、符号化においてＤＲＡＭ等のメモリの容量消費を抑えることを可能にすることを課題とする。【解決手段】画像符号化部（１１３）は、入力画像から、ウェーブレット変換による複数のサブバンドの係数データを生成して、サブバンドごとに係数データを符号化して符号化データを生成する。制御部（１０９）のアドレス管理部（１１２）は、複数の各サブバンドに対応した符号化データ領域をＤＲＡＭ（１０８）内に確保して、サブバンドごとの符号化データを符号化データ領域に記憶させる。このときのアドレス管理部（１１２）は、所定数の入力画像ごとに、サブバンドの符号化データに対して確保する符号化データ領域を変更する。【選択図】図１
2018050263.tif 000002
【特許請求の範囲】
【請求項１】
入力画像から、所定の周波数変換による複数の周波数帯の係数データを生成して、前記周波数帯ごとに係数データを符号化して符号化データを生成する符号化手段と、
前記複数の各周波数帯に対応した複数の記憶領域をメモリに確保して、前記周波数帯ごとの符号化データをそれぞれの周波数帯に対応した前記記憶領域に記憶させる制御手段と、を有し、
前記制御手段は、所定数の入力画像ごとに、前記周波数帯の符号化データに対して確保する前記記憶領域を変更することを特徴とする符号化装置。
【請求項２】
前記制御手段は、入力画像ごとに、前記周波数帯の符号化データに対して確保する前記記憶領域を変更することを特徴とする請求項１に記載の符号化装置。
【請求項３】
前記制御手段は、前記各周波数帯の符号化データに対し、それぞれ均一でない重みを付けた大きさの前記記憶領域を確保することを特徴とする請求項１又は２に記載の符号化装置。
【請求項４】
前記符号化手段は、前記入力画像のコンポーネントごとに前記所定の周波数変換であるウェーブレット変換による複数のサブバンドの係数データを生成して、前記コンポーネントごとに各サブバンドの符号化データを生成し、
前記制御手段は、前記コンポーネントごとに、前記サブバンドの数に応じた前記複数の記憶領域を前記メモリに確保することを特徴とする請求項１乃至３の何れか１項に記載の符号化装置。
【請求項５】
前記制御手段は、前記コンポーネントごとに重みを付けた大きさの前記記憶領域を、前記コンポーネントに含まれる各サブバンドに対して確保することを特徴とする請求項４に記載の符号化装置。
【請求項６】
前記制御手段は、前記ウェーブレット変換のレベルごとに重みを付けた大きさの前記記憶領域を、前記ウェーブレット変換のレベルに含まれる各サブバンドに対して確保することを特徴とする請求項４又は５に記載の符号化装置。
【請求項７】
前記符号化手段は、前記ウェーブレット変換のレベルごとに設定された量子化パラメータに基づいて、前記サブバンドごとの係数データに対してそれぞれ量子化を行い、前記サブバンドごとに前記量子化された係数データを前記符号化して前記符号化データを生成し、
前記制御手段は、前記ウェーブレット変換のレベルごとに、前記量子化パラメータに基づいて重みを付けた大きさの前記記憶領域を、前記ウェーブレット変換のレベルに含まれる各サブバンドに対して確保することを特徴とする請求項４乃至６の何れか１項に記載の符号化装置。
【請求項８】
前記制御手段は、前記記憶領域を確保するための複数の方法の中から、前記メモリの使用可能な容量に応じた方法を選択することを特徴とする請求項４に記載の符号化装置。
【請求項９】
前記制御手段は、
前記メモリの使用可能な容量が第１の閾値より大きい場合には、全てのコンポーネントの各サブバンドに対して均一な大きさの前記記憶領域を確保する第１の方法を選択し、
前記メモリの使用可能な容量が前記第１の閾値以下で且つ第２の閾値より大きい場合には、前記コンポーネントごとに重みを付けた大きさの前記記憶領域を、前記コンポーネントに含まれる各サブバンドに対して確保する第２の方法を選択することを特徴とする請求項８に記載の符号化装置。
【請求項１０】
前記制御手段は、前記メモリの使用可能な容量が前記第２の閾値以下で且つ第３の閾値より大きい場合には、前記ウェーブレット変換のレベルごとに重みを付けた大きさの前記記憶領域を、前記ウェーブレット変換のレベルに含まれる各サブバンドに対して確保する第３の方法を選択することを特徴とする請求項９に記載の符号化装置。
【請求項１１】
前記符号化手段は、前記ウェーブレット変換のレベルごとに設定された量子化パラメータに基づいて、前記サブバンドごとの係数データに対してそれぞれ量子化を行い、前記サブバンドごとに前記量子化された係数データを前記符号化して前記符号化データを生成し、
前記制御手段は、前記メモリの使用可能な容量が前記第３の閾値以下である場合には、前記ウェーブレット変換のレベルごとに、前記量子化パラメータに基づく重みを付けた大きさの前記記憶領域を、前記ウェーブレット変換のレベルに含まれる各サブバンドに対して確保する第４の方法を選択することを特徴とする請求項１０に記載の符号化装置。
【請求項１２】
前記制御手段は、前記入力画像ごとに、前記周波数帯の符号化データに対して確保する前記記憶領域を、前記メモリの中で一つずつずらすように変更することを特徴とする請求項１乃至１１の何れか１項に記載の符号化装置。
【請求項１３】
前記制御手段は、前記入力画像ごとに、一つ前の入力画像の符号化で発生した符号量に応じて、前記周波数帯の符号化データに対して確保する前記記憶領域を変更することを特徴とする請求項１乃至１２の何れか１項に記載の符号化装置。
【請求項１４】
前記制御手段は、前記入力画像の前記周波数帯のうち、一つ前の入力画像の符号化で発生符号量が多かった周波数帯に対しては、前記メモリの中で空きの大きい領域を、前記記憶領域として指定することを特徴とする請求項１３に記載の符号化装置。
【請求項１５】
入力画像から、所定の周波数変換による複数の周波数帯の係数データを生成して、前記周波数帯ごとに係数データを符号化して符号化データを生成する符号化工程と、
前記複数の各周波数帯に対応した複数の記憶領域をメモリに確保して、前記周波数帯ごとの符号化データをそれぞれの周波数帯に対応した前記記憶領域に記憶させる制御工程と、を有し、
前記制御工程では、所定数の入力画像ごとに、前記周波数帯の符号化データに対して確保する前記記憶領域を変更することを特徴とする符号化装置の制御方法。
【請求項１６】
コンピュータを、請求項１乃至１４の何れか１項に記載の符号化装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力画像を符号化する符号化装置、符号化装置の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来の撮像装置は、撮像センサーにより撮像された生の画像情報（ＲＡＷ画像）をデベイヤー処理（デモザイク処理）し、輝度と色差から成る信号に変換し、各信号についてノイズ除去、光学的な歪の補正処理、画像の適正化などのいわゆる現像処理を行う。そして、撮像装置は、現像処理した輝度及び色差の信号を圧縮符号化して記録媒体に記録する。
【０００３】
一方で、ＲＡＷ画像を記録できる撮像装置も存在する。ＲＡＷ画像は、記録に必要なデータ量が膨大になるが、オリジナル画像に対する補正や劣化を最低限に抑えられ、撮影後に編集できる利点があるので、上級者によって好んで使われている。また、近年、ＲＡＷ画像の記録は、静止画のみならず、動画にも適用されている。
【０００４】
ＲＡＷ画像の圧縮方式は、従来の圧縮方式であるＪＰＥＧ２０００のように、符号化によるブロック歪が発生しない方式が適していると考えられる。具体的には、ブロック単位でＤＣＴ（離散コサイン変換）をかけて圧縮せずに、ウェーブレット変換等の周波数変換を用いて、周波数帯であるサブバンドに分解し、各サブバンドを圧縮する方式が適していると考えられる。この場合、ウェーブレット変換により生成された各サブバンドの係数は、一旦ＤＲＡＭに出力されて保持され、そのＤＲＡＭに保持された各サブバンドの係数が、一つずつ順番に圧縮符号化される。
【０００５】
また、近年の撮像装置は、画素数が増加し、扱う情報量が膨大になったため、ＤＲＡＭのバス帯域が設計上のボトルネックの一つになっている。これに対し、例えば特許文献１には、ＪＰＥＧ２０００の圧縮符号化方式において、ＤＲＡＭ上に符号化データをまとめて配置することで、ＤＲＡＭ上に確保する領域の数を削減可能とし、ＤＲＡＭのバス帯域の消費低減を実現している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４６６５８９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、特許文献１に記載の符号化装置は、ウェーブレット変換を用いた圧縮符号化において、同一階層のウェーブレット分解レベルで且つ空間的に同一位置に属する交流サブバンドの係数を組として符号化する。そして、特許文献１に記載の符号化装置は、同一階層のウェーブレット分解レベル内で係数組が抽出された順序で連結し、高周波サブバンドの符号化データを形成することにより、ＤＲＡＭに確保する領域の数を削減可能となされている。しかしながら、特許文献１に記載の技術の場合、同一階層のウェーブレット分解レベルの各サブバンドの符号化データが一つの領域内に混在してしまい、符号化データの管理が煩雑になるといった問題がある。
【０００８】
そこで、本発明は、符号化データの管理が容易で、符号化においてＤＲＡＭ等のメモリの容量消費を抑えることを可能にすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、入力画像から、所定の周波数変換による複数の周波数帯の係数データを生成して、前記周波数帯ごとに係数データを符号化して符号化データを生成する符号化手段と、前記複数の各周波数帯に対応した複数の記憶領域をメモリに確保して、前記周波数帯ごとの符号化データをそれぞれの周波数帯に対応した前記記憶領域に記憶させる制御手段と、を有し、前記制御手段は、所定数の入力画像ごとに、前記周波数帯の符号化データに対して確保する前記記憶領域を変更することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、符号化データの管理が容易で、符号化においてＤＲＡＭ等のメモリの容量消費を抑えることが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る撮像装置の概略構成例を示す図である。
【図２】画素配列、画像データ入力、画素プレーンの説明図である。
【図３】画素配列とプレーン、サブバンドの関係を示す図である。
【図４】符号化ストリームの概略構造を示す図である。
【図５】第１の実施形態のＤＲＡＭ内の符号化データ領域の説明図である。
【図６】ＤＲＡＭ内の符号化データ領域とその指定先の説明図である。
【図７】入力画像とプレーン内の各サブバンドの発生符号量を示す図である。
【図８】第２の実施形態のＤＲＡＭ内の符号化データ領域の説明図である。
【図９】符号化データの領域指定方法を示すフローチャートである。
【図１０】第３の実施形態のＤＲＡＭ内の符号化データ領域の説明図である。
【図１１】符号化領域の確保の方法を選択する処理のフローチャートである。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照しながら、本発明の一実施形態を詳細に説明する。
＜第１の実施形態＞
図１は、本発明の符号化装置、符号化装置の制御方法、及びプログラムの一適用例である本実施形態に係る撮像装置の概略構成例を示すブロック図である。
本実施形態の撮像装置１００は、撮像により取得した画像データを圧縮符号化し、その圧縮符号化による符号化データを、記録媒体１１１に記憶するものである。詳細は後述するが、撮像装置１００は、撮像された画像データを離散ウェーブレット変換（ＤＷＴ）により複数のサブバンドの係数データに変換し、それら各サブバンドの係数データを内部ＳＲＡＭに保持する。そして、撮像装置１００は、内部ＳＲＡＭに保持した各サブバンドの係数データを所定の単位ごとに順番に圧縮符号化し、その圧縮符号化による符号化データを、後述するようにＤＲＡＭ１０８内に確保した記憶領域を指定して保持させる。その後、撮像装置１００は、ＤＲＡＭ１０８から読み出した符号化データから符号化ストリームを生成して記録媒体１１１に記憶させる。
【００１３】
また、本実施形態では、ウェーブレット変換を水平方向と垂直方向にそれぞれ二回行った場合を例に挙げている。ウェーブレット変換を水平方向と垂直方向にそれぞれ二回行った場合、ウェーブレット分解レベル"２"までのサブバンドが存在することになる。なお、ウェーブレット分解レベルとは、ウェーブレット変換の階層（解像度レベル）である。以下、ウェーブレット分解レベルを分解Ｌｖと表記し、ウェーブレット分解レベル"２"を分解Ｌｖ２、ウェーブレット分解レベル"１"を分解Ｌｖ１と表記する。
【００１４】
図１に示した本実施形態の撮像装置１００において、制御部１０９は、ＣＰＵと当該ＣＰＵが実行する制御プログラムを格納するメモリとを有し、撮像装置１００の全体及び各処理を制御する。制御部１０９は、後述するアドレス管理部１１２をも有している。
【００１５】
撮像光学部１０１は、レンズ等の光学系の他、絞り、シャッター等を有し、撮像対象である被写体等の光学像を、撮像センサー部１０２の撮像面上に結像させる。撮像センサー部１０２は、撮影動作の開始が指示されると、画素ごとに配置された赤（Ｒ）、緑（Ｇ）、青（Ｂ）のカラーフィルタを透過した光を受光してアナログ電気信号に変換する。そして、撮像センサー部１０２は、そのアナログ電気信号をアナログ／デジタル変換したデジタルデータを、撮像データとして出力する。本実施形態では、撮像センサー部１０２からは、動画の連続した各フレームの撮像データや、静止画撮影によるフレームの撮像データが、いわゆるラスタースキャンの順に出力されるとする。以下の説明では、特に区別が必要な場合を除き、動画のフレームと静止画のフレームを区別せず、単にフレームとのみ表記する。
【００１６】
図２（Ａ）は、撮像センサー部１０２に配置される各画素２００の一部と、各画素２００に対応したカラーフィルタの一部とを示している。図２（Ａ）に示すように、カラーフィルタは、Ｒ，Ｇ（Ｇ１，Ｇ２），Ｂのフィルタが画素２００ごとにモザイク状に配置されている。具体的には、カラーフィルタは、水平方向２画素と垂直方向２画素の４画素につき、Ｒが１画素、Ｇが２画素（Ｇ１，Ｇ２）、Ｂが１画素で１セットとなされ、それらが規則的に並べられた構造となされている。このような画素ごとのカラーフィルタの配置は、一般にベイヤー配列と呼ばれており、Ｒ，Ｇ（Ｇ１，Ｇ２），Ｂの１セットで一つの色が決定される。撮像センサー部１０２からは、図２（Ｂ）に示すようなベイヤー配列の１セット２１０の撮像データが、ラスタースキャンの順２１１に出力されて、センサー信号処理部１０３に送られる。
【００１７】
センサー信号処理部１０３は、撮像センサー部１０２から供給された撮像データに対し、画素の修復処理を行う。修復処理の対象となされる画素は、撮像センサー部１０２における欠落画素や信頼性の低い画素である。センサー信号処理部１０３は、修復処理として、修復対象の画素の値に対し、その周辺画素の画素値を用いた補間処理や、所定のオフセット値を減算する処理等を行う。本実施形態では、センサー信号処理部１０３から出力される画像情報を生（未現像）の画像を意味するＲＡＷ画像と称し、１フレーム分のＲＡＷ画像のデータが本実施形態における入力画像のデータである。その後、センサー信号処理部１０３は、それら処理を行った後のＲＡＷ画像を、図２（Ｃ）のように、Ｒ，Ｇ（Ｇ１，Ｇ２），Ｂの各色別のコンポーネントに分離して、そのコンポーネントのデータを入力画像バッファ１０４に出力する。本実施形態では、１フレーム分のＲＡＷ画像からＲ，Ｇ（Ｇ１，Ｇ２），Ｂの各色別に分離されたコンポーネントを、プレーン（２２０）と表記する。そして、センサー信号処理部１０３は、Ｒ，Ｇ（Ｇ１，Ｇ２），Ｂの所定数のプレーン２２０のデータを、ラスタースキャンのライン順に入力画像バッファ１０４に出力する。本実施形態では、センサー信号処理部１０３からは、一例として、Ｇ１，Ｇ２，Ｒ，Ｂのプレーン順で、且つ各プレーンではそれぞれラスタースキャンのライン順にデータが出力される例を挙げて説明する。なお、センサー信号処理部１０３からは、各色のプレーンで並列するようにして、ラスタースキャンのライン順にデータが出力されてもよい。
【００１８】
入力画像バッファ１０４は、前述したラスタースキャン順の少なくとも複数ライン分のデータを、保持することが可能なバッファメモリとなされている。本実施形態では、入力画像バッファ１０４は、後述する画像符号化部１１３の周波数変換部１０５で行われるプレーンごとのウェーブレット変換処理に必要な最低限のライン数分だけのデータを保持可能なメモリとなされている。一例として、周波数変換部１０５において、５タップの低域通過フィルタと３タップの高域通過フィルタとで構成される５−３フィルタを用いたウェーブレット変換が行われる場合、５ライン分のデータがあればウェーブレット変換処理の実行が可能となる。したがってこの例の場合、入力画像バッファ１０４は、少なくとも５ライン分のデータを保持可能なメモリとなされる。なお、センサー信号処理部１０３から各色のプレーンで並列してライン順のデータが出力されるような場合には、入力画像バッファ１０４は、各色のプレーンごとの複数ライン分のデータを、保持可能なメモリとなされる。その他にも、入力画像バッファ１０４は、後段のウェーブレット変換に必要なデータ量以上のデータ（例えば１フレーム分に相当するデータ）を保持するメモリであってもよい。
【００１９】
そして、ウェーブレット変換処理に必要なデータが入力画像バッファ１０４に保持されると、制御部１０９は、画像符号化部１１３に対し、入力画像バッファ１０４からのデータ読み出しと符号化処理の開始を指示する。画像符号化部１１３は、制御部１０９からの指示に従い、入力画像バッファ１０４に保持されているデータを読み出して、符号化処理を開始する。なお、以下の説明では、例えばＧ１，Ｇ２，Ｒ，Ｂのプレーンの順番で符号化処理が行われる例を挙げて説明するが、各色のプレーンで並列して符号化処理が行われてもよい。
【００２０】
画像符号化部１１３は、周波数変換部１０５、量子化部１０６、符号化部１０７を有して構成されている。
周波数変換部１０５は、入力画像バッファ１０４から読み出された複数ライン分のデータに対し、所定の周波数変換の一例である離散ウェーブレット変換を行うことにより、複数の周波数帯であるサブバンドごとの係数データを生成する。ウェーブレット変換により生成されるサブバンドの詳細については後述する。また、周波数変換部１０５は、ウェーブレット変換により得られた複数ラインごとの各サブバンドの係数データを、不図示の内部ＳＲＡＭに保持可能となされている。周波数変換部１０５は、その内部ＳＲＡＭに保持した各サブバンドの係数データをライン単位でサブバンドの順に読み出して、量子化部１０６に出力する。具体的には、内部ＳＲＡＭからは、ライン単位でサブバンド順に係数データが読み出されて、量子化部１０６に出力される。なお、内部ＳＲＡＭは、周波数変換部１０５の内部ではなく、周波数変換部１０５に併設、つまり画像符号化部１１３内の一つの構成要素として配設されていてもよい。
【００２１】
量子化部１０６は、周波数変換部１０５からライン単位で各サブバンドの順番に供給された係数データ、つまり内部ＳＲＡＭから読み出された係数データを、制御部１０９により設定された量子化ステップの値に基づいて量子化して、符号化部１０７に出力する。符号化部１０７は、量子化部１０６にて量子化された係数データを圧縮符号化して符号化データを生成する。なお、本実施形態において、圧縮符号化は、例えばゴロム符号化のようなエントロピー符号化により行われるとする。
【００２２】
また、このときの画像符号化部１１３の符号化部１０７には、制御部１０９のアドレス管理部１１２からアドレス情報が通知される。詳細は後述するが、符号化部１０７は、アドレス管理部１１２から通知されたアドレス情報に基づいて、サブバンドごとの符号化データをＤＲＡＭ１０８に記憶させる。ＤＲＡＭ１０８は、記憶保持動作が必要なダイナミックランダムアクセスメモリである。
【００２３】
ここで、一般に、ウェーブレット変換による各サブバンドの係数データを符号化する場合には、各サブバンドの係数データ、つまり符号化前の係数データを一旦ＤＲＡＭに保持させ、そのＤＲＡＭに保持した係数データを順番に圧縮符号化するようになされている。このように、符号化前の係数データを一旦ＤＲＡＭに保持させた後、そのＤＲＡＭに保持した係数データを順番に読み出して圧縮符号化する場合、ＤＲＡＭのバス帯域を消費してしまう。これに対し、本実施形態では、前述したように、画像符号化部１１３は、ウェーブレット変換による各サブバンドの係数データを内部ＳＲＡＭに保持し、その内部ＳＲＡＭに保持した各サブバンドの係数データをライン単位ごとに符号化している。すなわち、本実施形態では、符号化される前の係数データをＤＲＡＭに保持させず、係数データを符号化した後の符号化データをＤＲＡＭに記憶されるようにしている。このため、本実施形態の場合、符号化前の係数データをＤＲＡＭに保持させる場合のように、ＤＲＡＭのバス帯域を消費してしまうことはない。ただしこの場合、内部ＳＲＡＭに保持した各サブバンドの係数データをライン単位でサブバンドの順に読み出して符号化しなければならない。このため、その符号化データをＤＲＡＭに保持させる際には、予めサブバンドの数だけの記憶領域をＤＲＡＭ内に確保しておく必要がある。また、ＤＲＡＭ内に予めサブバンドの数だけ確保した記憶領域に符号化データを記憶させる際には、ＤＲＡＭ内で符号化データが重複しないようにする必要がある。これらＤＲＡＭに対する記憶領域の確保や符号化データの重複を避けるためのアドレス管理が適切に行われない場合には、ＤＲＡＭの容量を大量に消費してしまう虞がある。
【００２４】
このようなことから、本実施形態では、制御部１０９のアドレス管理部１１２において、適切なアドレス情報の管理と生成を行うことにより、ＤＲＡＭの消費を抑えることを可能にしている。すなわち、アドレス管理部１１２は、ウェーブレット変換によるサブバンドの数に応じた各記憶領域を後段のＤＲＡＭ１０８に確保するための領域指定のアドレス情報と、サブバンドごとの符号化データを格納する記憶領域の開始アドレスとを生成する。そして、アドレス管理部１１２は、それらアドレス情報を、符号化部１０７に通知する。符号化部１０７は、サブバンドごとの符号化データを、それらアドレス情報により指定されたＤＲＡＭ１０８内の記憶領域に出力する。これにより、ＤＲＡＭ１０８には、それらアドレス情報に基づく記憶領域に、サブバンドごとの符号化データが記憶されることになる。なお、アドレス情報によりＤＲＡＭ１０８内に確保される記憶領域についての詳細な説明は後述する。
【００２５】
画像符号化部１１３により、少なくとも１フレーム分の符号化が完了すると、記録部１１０は、ＤＲＡＭ１０８からサブバンドごとに符号化データを読み出して記録媒体１１１に記録する。具体的には、記録部１１０は、１フレーム分の各色のプレーンごとの各サブバンドの符号化データから、符号化ストリームを生成して、その符号化ストリームを記録媒体１１１に記録する。記録部１１０により生成される１フレーム分の符号化ストリームの詳細については後述する。
【００２６】
＜各プレーン別のサブバンドと符号化ストリームの構造＞
図３は、ベイヤー配列３０１と各色別のプレーン３０２〜３０５、各色別のプレーン３０２〜３０５にそれぞれ対応したサブバンド３０６〜３０９の関係を示す概念図である。なお、プレーン３０２はＧ１の色に対応したＧ１プレーン、プレーン３０３はＧ２の色に対応したＧ２プレーン、プレーン３０４はＲの色に対応したＲプレーン、プレーン３０５はＢの色に対応したＢプレーンである。サブバンド３０６は、Ｇ１プレーン３０２に対してウェーブレット変換を行ったことで生成されたサブバンドである。以下同様に、サブバンド３０７はＧ２プレーン３０３に対応したサブバンド、サブバンド３０８はＲプレーン３０４に対応したサブバンド、サブバンド３０９はＢプレーン３０５に対応したサブバンドである。
【００２７】
図３のサブバンド３０６〜３０９の例は、各プレーン３０２〜３０５に対し、離散ウェーブレット変換を水平方向と垂直方向でそれぞれ二回行った場合を示しており、ウェーブレット分解レベル"２"（分解Ｌｖ２）までのサブバンドが存在している。図３の各サブバンド３０６〜３０９の中で、サブバンド２ＬＬ，２ＬＨ，２ＨＬ，２ＨＨは分解Ｌｖ２のサブバンドであり、サブバンド１ＬＨ，１ＨＬ，１ＨＨは分解Ｌｖ１のサブバンドである。また各サブバンド３０６〜３０９の中で、左上のサブバンド２ＬＬが最も低域のサブバンドであり、右下方向のサブバンドになるにしたがって高域のサブバンドとなる。
【００２８】
図３に示すように、ウェーブレット変換では、プレーン３０２〜３０５の四つのプレーンから、それぞれサブバンド２ＬＬ，２ＬＨ，２ＨＬ，２ＨＨ，１ＬＨ，１ＨＬ，１ＨＨの七つのサブバンドが生成される。このため、１フレーム分に相当するサブバンド数は、全部で２８個（４×７＝２８）となる。
【００２９】
図４は、１フレーム分に相当する符号化ストリーム４０１の構造を示す概念図である。ここでは、図３の例と同様に、各プレーン３０２〜３０５に対し、離散ウェーブレット変換を水平方向と垂直方向でそれぞれ二回行った場合の分解Ｌｖ２までのサブバンドから生成される符号化ストリームの例を挙げている。
【００３０】
図４に示すように、符号化ストリーム４０１は、ヘッダ４１０と、Ｇ１，Ｇ２，Ｒ，Ｂの各プレーンのサブバンドから各々生成された符号化データ４１１〜４１４とで構成されている。すなわち、記録部１１０は、デコードに必要な情報であるヘッダ４１０を先頭に付加した後、Ｇ１，Ｇ２，Ｒ，Ｂの各プレーンの各サブバンドの符号化データ４１１〜４１４を順番に配置して結合した、符号化ストリーム４０１を生成する。各プレーンの各符号化データ４１１〜４１４の中には、サブバンド２ＬＬ，２ＨＬ，２ＬＨ，２ＨＨ，１ＨＬ，１ＬＨ，１ＨＨの順、つまり分解Ｌｖ２の低域から分解Ｌｖ１の高域までの順に、各サブバンドの符号化データが配置される。なお、図４では、Ｒプレーンの符号化データ４１３についてのみ七つのサブバンド２ＬＬ，・・・，１ＨＨの配置例を挙げているが、他の各プレーンの符号化データについても同様にそれぞれ七つのサブバンドが配置される。記録部１１０は、この図４に示したような符号化ストリーム４０１を、記録媒体１１１に記録する。
【００３１】
＜ＤＲＡＭに対する領域確保とアドレス管理＞
図５（Ａ）と図５（Ｂ）は、アドレス管理部１１２が、アドレス情報を介して、ＤＲＡＭ１０８内に各サブバンドの符号化データを保持するために確保する複数の記憶領域（以下、符号化データ領域と表記する。）を示す概念図である。なお、以下に説明する各符号化データ領域は、アドレス管理部１１２がアドレス情報を介してＤＲＡＭ１０８内に確保する領域であるが、ＤＲＡＭ１０８への各符号化データの記録は、符号化部１０７がアドレス情報に基づいて行う。
【００３２】
図５（Ａ）は、Ｇ１，Ｇ２，Ｒ，Ｂの各色のプレーンにおける全てのサブバンドに対して、ＤＲＡＭ１０８内にそれぞれ均等な符号化データ領域５０１〜５０４が確保された場合を表す概念図である。すなわち、図５（Ａ）の例では、Ｇ１，Ｇ２，Ｒ，Ｂの各色のプレーンにおいて、分解Ｌｖ２から分解Ｌｖ１までの各サブバンド２ＬＬ，・・・，１ＨＨに対して、それぞれ均等な符号化データ領域５０１，５０２，５０３，５０４が確保されている。
【００３３】
一方、図５（Ｂ）は、Ｇ１，Ｇ２，Ｒ，Ｂの各色のプレーンごとに重みを付けた大きさの符号化データ領域５１１〜５１４を、ＤＲＡＭ１０８に確保した例を表す概念図である。図５（Ｂ）の例は、Ｇ１とＧ２のプレーンについて、ＲとＢのプレーンよりも大きい重みが付けられた例を表している。この例の場合、アドレス管理部１１２は、Ｇ１とＧ２のプレーンの符号化データ領域５１１と５１２については、ＲとＢのプレーンの符号化データ領域５１３と５１４よりも大きい領域を割り当てる。また、図５（Ｂ）の例の場合、アドレス管理部１１２は、Ｇ１，Ｇ２，Ｒ，Ｂの各色のプレーンにおいて、分解Ｌｖ２から分解Ｌｖ１までの各サブバンド２ＬＬ，・・・，１ＨＨに対しては、それぞれ均等な大きさの符号化データ領域を確保している。
【００３４】
この図５（Ｂ）の例のように、各色のプレーンごとに重みを付けて符号化データ領域の大きさを変更した場合、以下に説明するような理由から、ＤＲＡＭ１０８の領域の使用効率を高めることが可能となる。
量子化部１０６では、符号化効率がよくなるように、輝度成分を多く含むＧ１とＧ２のプレーンのサブバンドに対しては符号量を多く割り当て、それ以外のＲとＢのプレーンのサブバンドに対しては符号量を削減するように量子化を行うのが一般的である。この場合、例えば図５（Ａ）のように各プレーンに対して重み付けを行わずに符号化データ領域を確保したとすると、Ｇ１とＧ２のプレーンの符号化データ領域では、ＲとＢのプレーンに対する符号化データ領域よりも空き領域の割合が少なくなる。一方、Ｒ，Ｂのプレーンの符号化データ領域では、Ｇ１とＧ２のプレーンの領域よりも空き領域の割合が多くなる。
【００３５】
したがって、図５（Ｂ）に示したように、Ｇ１とＧ２のプレーンに対し、より大きい符号化データ領域を割り当てるようにすれば、Ｇ１，Ｇ２，Ｒ，Ｂの各符号化データ領域の空き領域の割合を近づけることができるようになる。これにより、ＤＲＡＭ１０８の領域の使用効率を高めることができるようになり、その結果、より小さいサイズのＤＲＡＭ１０８を使用することも可能となる。
【００３６】
例えば図５（Ｂ）のような各符号化データ領域５１１〜５１４を確保する場合、アドレス管理部１１２は、それら確保する領域と各サブバンドに対応した符号化データの出力先とを表すアドレス情報を、符号化部１０７へ通知する。これにより、符号化部１０７は、そのアドレス情報に基づいて、Ｇ１，Ｇ２，Ｒ，Ｂのプレーンのサブバンドの符号化データを、ＤＲＡＭ１０８に効率よく保持させることができる。
【００３７】
図５（Ａ）や図５（Ｂ）は、入力されるフレームの各サブバンドに割り当てられる符号化データ領域が固定された例であるが、アドレス管理部１１２は、入力されるフレームごとに、各サブバンドに割り当てる符号化データ領域を変更することも可能である。図６（Ａ）、図６（Ｂ）、図６（Ｃ）は、例えば動画のフレームのように時間軸上で連続したフレームごとに、各サブバンドに割り当てられる符号化データ領域を順次変更する場合の説明に用いる図である。以下、図６（Ａ）、図６（Ｂ）、図６（Ｃ）を用いて、アドレス管理部１１２が、時間軸上で連続したフレームごとに、各サブバンドに対して割り当てる符号化データ領域を順次変更する場合の領域指定方法について説明する。
【００３８】
図６（Ａ）は、一つのフレームに対応した各色のプレーンのうち、一つのプレーンの各サブバンドに対して、ＤＲＡＭ１０８内に割り当てられる符号化データ領域を表した概念図である。なお、他のプレーンの各サブバンドに対して割り当てられる符号化データ領域についても同様であるとする。すなわち、図６（Ａ）中の"０"，"１"，・・・の各数字は、一つのプレーンの各サブバンド２ＬＬ，・・・，１ＨＨに対して割り当てられる、符号化データ領域を概念的に表す番号である。なお、図６（Ａ）に示すように、各サブバンドに割り当てられる符号化データ領域は、それぞれ大きさが全て均等になされているとする。
【００３９】
図６（Ｂ）は、例えば動画のように時間軸上で連続した各フレームについて、一つのプレーンの各サブバンドに対してそれぞれ割り当てられる符号化データ領域が固定化されている場合を表している。図６（Ｂ）では、時間順に入力された各フレームをそれぞれＰ１，Ｐ２，Ｐ３，・・・で表している。また、図６（Ｂ）では、一つのフレームの中の一つのプレーンの各サブバンド２ＬＬ，・・・，１ＨＨに対して割り当てられた符号化データ領域を、それぞれ"０"，"１"，・・・の各数字で表している。図６（Ｂ）では、例えばフレームＰ１の符号化がなされた場合、そのフレームＰ１の一つのプレーンの各サブバンド２ＬＬ，２ＨＬ，・・・，１ＨＨに対し、"６"，"５"，・・・，"０"の順に符号化データ領域が割り当てられている。次のフレームＰ２についても同様に、そのフレームＰ２の同プレーンの各サブバンド２ＬＬ，２ＨＬ，・・・，１ＨＨに対しては、"６"，"５"，・・・，"０"の順に符号化データ領域が割り当てられている。以下、フレームＰ３以降も同様の割り当てがなされる。
【００４０】
図６（Ｃ）は、時間順に入力されたフレームごとに、同プレーンの各サブバンドに対してそれぞれ割り当てられる符号化データ領域が変更される場合を表している。図６（Ｃ）でも図６（Ｂ）と同様に、時間順に入力された各フレームがそれぞれＰ１，Ｐ２，Ｐ３，・・・で表され、各サブバンドに割り当てられた符号化データ領域がそれぞれ"０"，"１"，・・・で表されている。図６（Ｃ）では、フレームＰ１の符号化がなされた場合、そのフレームＰ１の一つのプレーンの各サブバンド２ＬＬ，２ＨＬ，・・・，１ＨＨに対し、"６"，"５"，・・・，"０"の順に符号化データ領域が割り当てられている。これに対し、次のフレームＰ２では、そのフレームＰ２の同プレーンの各サブバンド２ＬＬ，２ＨＬ，・・・，１ＨＨに対しては、"５"，"４"，・・・，"６"の順に符号化データ領域が割り当てられる。さらに次のフレームＰ３では、そのフレームＰ３の同プレーンの各サブバンド２ＬＬ，２ＨＬ，・・・，１ＨＨに対しては、"４"，"３"，・・・，"５"の順に符号化データ領域が割り当てられる。すなわち、図６（Ｃ）に示した例の場合、アドレス管理部１１２は、時間順に入力された各フレームＰ１，Ｐ２，Ｐ３，・・・の同プレーンの各サブバンドに割り当てる符号化データ領域が、例えば一つずつずらされるように変更されている。
【００４１】
この図６（Ｃ）のように、時間順に入力されたフレームごとに、同プレーンの各サブバンドに割り当てる符号化データ領域を変更した場合、以下に説明するような理由から、ＤＲＡＭ１０８の領域の使用効率を高めることが可能となる。
図７（Ａ）は、本実施形態の撮像装置１００の画像符号化部１１３へ入力される、一つのフレームの入力画像７０１の例を示す図であり、図７（Ｂ）は、その入力画像７０１を画像符号化部１１３で符号化した際に発生する符号量を示す図である。なお、図７（Ｂ）は、図７（Ａ）の入力画像７０１のフレームの一つのプレーンにおける、各サブバンド２ＬＬ，２ＨＬ，２ＬＨ，２ＨＨ，１ＨＬ，１ＬＨ，１ＨＨ別の発生符号量を示している。
【００４２】
図７（Ａ）に示すように、入力画像７０１は例えば縦縞の多く含まれる画像であるとする。この入力画像７０１をウェーブレット変換すると、水平方向の係数が多く発生することになる。その結果、図７（Ｂ）のように、例えば分解Ｌｖ２のサブバンド２ＨＬと分解Ｌｖ２のサブバンド１ＨＬの発生符号量が、分解Ｌｖ２の他のサブバンド２ＬＬ，２ＬＨ，２ＨＨや分解Ｌｖ１の他のサブバンド１ＬＨ，１ＨＨの発生符号量と比較して多くなる。このように、サブバンド２ＨＬと１ＨＬの発生符号量が多くなる場合、例えば図６（Ｂ）のようにフレームごとの各サブバンドに割り当てられる符号化データ領域を固定化すると、サブバンド２ＨＬと１ＨＬの符号化データ領域の空き領域が少なくなってしまう。一方、他のサブバンドに対する空き領域は大きくなる。
【００４３】
一方、図６（Ｃ）のように、各サブバンドに対して割り当てられる符号化データ領域を、時間順に入力されたフレームごとに一つずつずらすように変更した場合、各符号化データ領域の空き領域が平滑化されることになる。すなわち、図６（Ｃ）の例のような"０"〜"６"で符号化データ領域の割り当て先が一巡する例の場合、７フレーム分で符号化データ領域の空き領域が平滑化されることになる。このように、ＤＲＡＭ１０８内で各サブバンドの符号化データの割り当て先を変更する制御を行うことで、ＤＲＡＭ１０８の領域の使用効率を高めることができるようになり、その結果、従来よりも、より小さいサイズのＤＲＡＭ１０８を使用することも可能となる。
【００４４】
以上説明したように、第１の実施形態の撮像装置１００においては、各サブバンドに対して割り当てる符号化データ領域と、ＤＲＡＭ１０８の出力先（アドレス）とを適切に制御している。これにより、第１の実施形態によれば、効率よくＤＲＡＭ１０８を使うことができ、より少ない容量のＤＲＡＭ１０８を用いて、符号化処理を行うことが可能な撮像装置１００を実現できる。また、第１の実施形態によれば、従来の技術のように同一階層の分解Ｌｖの各サブバンドの符号化データが一つの符号化データ領域内に混在することがないため、符号化データの管理が容易である。
第１の実施形態の撮像装置１００では、１フレーム毎に、各サブバンドに対して割り当てる符号化データ領域と、ＤＲＡＭ１０８の出力先（アドレス）とを制御するものとした。しかし、必ず１フレーム毎で変更する必要はない。１フレーム毎ではなく、複数フレーム（例えば、４フレーム）毎に各サブバンドに対して割り当てる符号化データ領域と、ＤＲＡＭ１０８の出力先（アドレス）とを変更するようにしてもよい。ただし、より少ない枚数のフレーム毎に更新したほうが、効率よくＤＲＡＭ１０８を使うことができる。
【００４５】
＜第２の実施形態＞
次に、第２の実施形態について説明する。第２の実施形態の撮像装置１００の構成は前述の図１と同様であるため、その図示と説明は省略する。第２の実施形態の場合、アドレス管理部１１２が、ＤＲＡＭ１０８に対して符号化データ領域を確保する際の、各サブバンドに対する割り当て方法が第１の実施形態とは異なり、それ以外には前述した第１の実施形態と同様である。以下、第１の実施形態とは異なる処理を中心に、第２の実施形態について説明する。
【００４６】
第２の実施形態の場合、アドレス管理部１１２は、各色プレーン単位の重み付けと、各プレーン内の分解Ｌｖごとの重み付けとにより、プレーンごとに異なる大きさで、且つ分解Ｌｖごとに異なる大きさの符号化データ領域を確保する。なお、第２の実施形態では、色プレーンごとの重み付けと、各プレーン内の分解Ｌｖごとの重み付けとを行って符号化データ領域を確保する場合だけでなく、分解Ｌｖごとの重み付けのみで符号化データ領域を確保してもよい。以下の説明では、色プレーンごとの重み付けと、各プレーン内の分解Ｌｖごとの重み付けの両方を行って符号化データ領域を確保する例を挙げて説明する。
【００４７】
図８（Ａ）、図８（Ｂ）を用い、第２の実施形態のアドレス管理部１１２が、ＤＲＡＭ１０８に確保する符号化データ領域について説明する。
図８（Ａ）は、各色のプレーンごとに、全てのサブバンドに対する符号化データ領域が均等に確保された場合の各符号化データ領域８０１〜８０４を示す概念図である。図８（Ａ）の各符号化データ領域８０１〜８０４は、図５（Ａ）の各符号化データ領域５０１〜５０４と同様のものであり、その詳細な説明は省略する。なお、本実施形態において、図８（Ａ）は、図５（Ａ）と同様の図であるが、図８（Ｂ）に示す本実施形態の符号化データ領域の割り当て方法を、より判り易く説明するために用いている。
【００４８】
図８（Ｂ）は、各色のプレーンごとに重み付けがなされ、更に、各色プレーン内の分解Ｌｖごとに重みが付けられた割り当てにより確保した各サブバンドの符号化データ領域８１１〜８１４の例を示す図である。図８（Ｂ）の例では、アドレス管理部１１２は、Ｇ１とＧ２のプレーンの符号化データ領域８１１と８１２について、ＲとＢのプレーンの符号化データ領域８１３と８１４よりも大きい領域を割り当てる。このようなプレーンごとの重み付けは、前述の図５（Ｂ）で説明したのと同様の理由により行われる。
【００４９】
更に、第２の実施形態の場合、アドレス管理部１１２は、分解Ｌｖごとに重み付けを行った符号化データ領域を、各色プレーン内の各サブバンドに対して割り当てるようにする。図８（Ｂ）の例の場合、アドレス管理部１１２は、分解Ｌｖ２の各サブバンド２ＬＬ，２ＨＬ，２ＬＨ，２ＨＨよりも、分解Ｌｖ１の各サブバンド１ＨＬ，１ＬＨ，２ＨＨに対して、より大きい符号化データ領域を割り当てている。なお、同じ分解Ｌｖ内の各サブバンドに対する符号化データ領域の大きさは均等な大きさとして確保されている。
【００５０】
第２の実施形態において、図８（Ｂ）のように、分解Ｌｖ２の各サブバンドよりも、分解Ｌｖ１の各サブバンドに対して大きい符号化データ領域を割り当てるのは、以下のような理由による。
前述の図３に示された各サブバンド３０６〜３０９の例からも判るように、ウェーブレット変換により生成された各サブバンドのうち、分解Ｌｖ１に含まれる各サブバンドの係数の数は、分解Ｌｖ２に含まれる各サブバンドの係数の数に対して約４倍となる。したがって、各サブバンドに対する符号化がなされた場合、分解Ｌｖ１に含まれるサブバンドの方が、分解Ｌｖ２よりも、符号化で発生する符号量が多くなる。ここで、図８（Ａ）の例のように、各サブバンドの符号化データ領域の大きさを固定化したとすると、分解Ｌｖ１に含まれるサブバンドに対する符号化データ領域の空き領域が少なくなってしまう。一方で、分解Ｌｖ２に含まれるサブバンドに対する符号化データ領域の空き領域は大きくなる。
【００５１】
したがって、図８（Ｂ）に示したように、分解Ｌｖ２の各サブバンドよりも、分解Ｌｖ１の各サブバンドに大きい符号化データ領域を割り当てれば、分解Ｌｖ１と分解Ｌｖ２とで各符号化データ領域の空き領域の割合を近づけることができるようになる。これにより、ＤＲＡＭ１０８の領域の使用効率を高めることができるようになり、その結果、より小さいサイズのＤＲＡＭ１０８を使用することも可能となる。
【００５２】
また、第２の実施形態では、時間順に入力されるフレームの各プレーンの各サブバンドに対して割り当てられる符号化データ領域は、一つ前のフレームの符号化の際に各サブバンドで発生した符号量と、ＤＲＡＭ１０８の空き容量とに基づいて決定される。具体的には、入力されたフレームの各プレーンの各サブバンドのうち、符号化の発生符号量が最も多くなると考えられるサブバンドには、一つ前のフレームの符号化の際に最も空きが大きい領域を割り当てるようにする。これにより、時間順に入力された各フレームが符号化される場合、各フレームの各プレーン内における各サブバンドの符号化データ領域の空き領域が平滑化されることになる。
【００５３】
なお、各サブバンドのうち何れのサブバンドの発生符号量が多くなるかは、例えば一つ前のフレームの符号化でサブバンドごとに発生した符号量を基に判定することができる。すなわち、一つ前のフレームの符号化時のサブバンドのうち、発生符号量が多かったサブバンドは、次のフレームの符号化においても発生符号量が多くなると考えられる。したがって、一つ前のフレームの符号化の際に各サブバンドで発生した発生符号量をみれば、何れのサブバンドの発生符号量が多くなるかを判定することができる。
【００５４】
図９は、第２の実施形態において、アドレス管理部１１２が、一つ前のフレームにおけるサブバンドごとの発生符号量を基に、入力されたフレームの各サブバンドに対する符号化データ領域を確保する処理の流れを示すフローチャートである。図９のフローチャートに示した各処理は、図１に示したハードウェア構成により実現される場合だけでなく、本実施形態に係るプログラムをＣＰＵ等で実行することにより実現されてもよい。以下の説明では、フローチャートの各処理のステップＳ９０１〜ステップＳ９０３をＳ９０１〜Ｓ０３と略記する。図９のフローチャートの処理は、画像符号化部１１３による符号化処理が開始されることでスタートする。
【００５５】
アドレス管理部１１２は、画像符号化部１１３が一つ前のフレームの符号化処理を行った際のサブバンドごとの発生符号量の情報を取得している。そして、Ｓ９０１では、アドレス管理部１１２は、未だ符号化データ領域を設定していないサブバンドのうち、一つ前のフレームの符号化の際の発生符号量が最も多かったサブバンドを選択する。なお、符号化処理の開始時点のように一つ前のフレームの符号化結果が存在しない場合には、予め決められているサブバンドを選択してもよい。Ｓ９１０の後、アドレス管理部１１２は、Ｓ９０２に処理を進める。
【００５６】
Ｓ９０２では、アドレス管理部１１２は、Ｓ９０１で選択したサブバンドの符号化データに対して確保する符号化データ領域を、ＤＲＡＭ１０８内で未だ符号化データ領域として設定されていない領域のうち、空き領域が最も大きい領域を指定する。Ｓ９０３の後、アドレス管理部１１２は、Ｓ９０３に処理を進める。
【００５７】
Ｓ９０３では、アドレス管理部１１２は、全てのサブバンドについて符号化データ領域を設定したかどうか判断し、全てのサブバンドに対する符号化データ領域の設定が完了したと判断した場合（Ｙｅｓ）には図９のフローチャートの処理を終了する。一方、アドレス管理部１１２は、Ｓ９０３において、未だ符号化データ領域が設定されていないサブバンドが残っている場合には、Ｓ９０１に処理を戻し、そのサブバンドに対するＳ９０１以降の処理を行う。
【００５８】
この図９のフローチャートの処理を時間順に入力される各フレームの符号化の際に繰り返すことにより、最も発生符号量が大きいと思われるサブバンドの符号化データには、空きが大きい符号化データ領域を割り当てることができる。一方、発生符号量が少ないと思われるサブバンドの符号化データには、空きが少ない符号化データ領域を割り当てることができる。これにより、時間順に入力される各フレームの符号化の際に使用されるＤＲＡＭ１０８内の各空き領域の平滑化が可能となる。
【００５９】
以上説明したように、第２の実施形態においては、時間順に入力されたフレームの各プレーンの各サブバンドに対して符号化データ領域を確保する際には、一つ前のフレームのサブバンドごとの発生符号量に基づく領域を割り当てている。これにより、第２の実施形態によれば、ＤＲＡＭ１０８内の空き領域を平滑化でき、効率よくＤＲＡＭ１０８を使うことが出来るため、より少ないＤＲＡＭ１０８による符号化処理が可能な撮像装置１００を実現できる。また、第２の実施形態によれば、従来の技術のように同一階層の分解Ｌｖの各サブバンドの符号化データが一つの符号化データ領域内に混在することがないため、符号化データの管理が容易である。
【００６０】
＜第３の実施形態＞
次に、第３の実施形態について説明する。第３の実施形態の撮像装置１００の構成は前述の図１と同様であるため、その図示と説明は省略する。第３の実施形態の場合、アドレス管理部１１２が、ＤＲＡＭ１０８に対して符号化データ領域を確保する際の、各サブバンドに対する割り当て方法が第１、第２の実施形態とは異なり、それ以外には前述した第１、第２の実施形態と同様である。以下、第１、第２の実施形態とは異なる処理を中心に、第３の実施形態について説明する。
【００６１】
第３の実施形態の場合、アドレス管理部１１２は、第２の実施形態と同様に、各色プレーン単位で重みを付け、また、各プレーン内の分解Ｌｖごとに重みを付ける。これらに加え、第３の実施形態では、アドレス管理部１１２は、量子化パラメータに基づいて分解Ｌｖ内のサブバンドごとに重みを付けるようにして符号化データ領域の割り当てを制御する。なお、第３の実施形態では、色プレーンごとの重み付けと、量子化パラメータに基づく分解Ｌｖ内のサブバンドごとの重み付けの二つを行って符号化データ領域を確保してもよい。また、第３の実施形態では、各プレーン内の分解Ｌｖごとの重み付けと、量子化パラメータに基づく分解Ｌｖ内のサブバンドごとの重み付けの二つを行って符号化データ領域を確保してもよい。以下の説明では、色プレーンごとの重み付けと、各プレーン内の分解Ｌｖごとの重み付けと、量子化パラメータに基づく分解Ｌｖ内のサブバンドごとの重み付けとを行って符号化データ領域を確保する例を挙げて説明する。
【００６２】
図１０（Ａ）、図１０（Ｂ）を用い、第３の実施形態のアドレス管理部１１２が、ＤＲＡＭ１０８に確保する符号化データ領域について説明する。
図１０（Ａ）は、各色のプレーンごとに、全てのサブバンドに対する符号化データ領域が均等に確保された場合の各符号化データ領域１００１〜１００４を示す概念図である。図１０（Ａ）の各符号化データ領域１００１〜１００４は、図５（Ａ）の各符号化データ領域５０１〜５０４と同様のものであり、その詳細な説明は省略する。なお、本実施形態において、図１０（Ａ）は、図５（Ａ）と同様の図であるが、図１０（Ｂ）に示す第３の実施形態の符号化データ領域の割り当て方法を、より判り易く説明するために用いている。
【００６３】
図１０（Ｂ）は、各色のプレーンごとの重み付け、各色プレーン内の分解Ｌｖごとの重み付け、更に量子化パラメータに基づく分解Ｌｖ内のサブバンドごとの重み付けに基づいて確保した各サブバンドの符号化データ領域１０１１〜１０１４の例を示す図である。図１０（Ｂ）の例では、アドレス管理部１１２は、Ｇ１とＧ２のプレーンの符号化データ領域１０１１と１０１２について、ＲとＢのプレーンの符号化データ領域１０１３と１０１４よりも大きい領域を割り当てる。このようなプレーンごとの重み付けは、前述の図５（Ｂ）で説明したのと同様の理由により行われる。
【００６４】
また、第３の実施形態の場合、アドレス管理部１１２は、各色プレーン内の各サブバンドに対して符号化データ領域を確保する際には、分解Ｌｖごとに重みを付けて決定した領域を割り当てるようにする。図１０（Ｂ）の例の場合、アドレス管理部１１２は、分解Ｌｖ２の各サブバンド２ＬＬ，２ＨＬ，２ＬＨ，２ＨＨよりも、分解Ｌｖ１の各サブバンド１ＨＬ，１ＬＨ，２ＨＨに対して、より大きい符号化データ領域を割り当てている。このような分解Ｌｖごとの各サブバンドに対する重み付けは、前述した第２の実施形態で説明したのと同様の理由により行われる。
【００６５】
更に、第３の実施形態では、各色のプレーンごとの重み付け、各色プレーン内の分解Ｌｖごと重み付けに加え、更に量子化パラメータに基づく分解Ｌｖ内のサブバンドごとの重み付けに基づき各サブバンドの符号化データ領域１０１１〜１０１４が確保される。図１０（Ｂ）の例では、アドレス管理部１１２は、分解Ｌｖ２のサブバンド２ＬＬ，２ＨＬ，２ＬＨにはそれぞれ同じ大きさの符号化データ領域を確保する一方で、サブバンド２ＨＨには小さい符号化データ領域を割り当てる。また、アドレス管理部１１２は、分解Ｌｖ１のサブバンド１ＨＬ，１ＬＨにはそれぞれ同じ大きさの符号化データ領域を確保する一方で、サブバンド１ＨＨには小さい符号化データ領域を割り当てる。
【００６６】
第３の実施形態において、図１０（Ｂ）に示すように、分解Ｌｖ２のサブバンド２ＨＨと分解Ｌｖ１のサブバンド１ＨＨに対して割り当てられる符号化データ領域が、他のサブバンドより小さくなされるのは、以下のような理由による。
【００６７】
一般的に、同一分解Ｌｖ内では、サブバンドＬＨの係数とサブバンドＨＬの係数に対して、サブバンドＨＨの係数の方が高周波成分を多く含んでいる。したがって、サブバンドＬＨ，ＨＬとサブバンドＨＨとの係数を比較した場合、サブバンドＨＨの係数データに対してより量子化ステップ幅が大きい量子化処理を行うことで、符号化効率を上げることができる。すなわち、量子化によって、各サブバンドの発生符号量には傾斜がつくことになる。
【００６８】
このため、第３の実施形態では、量子化の際により符号化効率を高めるような量子化処理がなされるサブバンド、つまり、分解Ｌｖ２のサブバンド２ＨＨと分解Ｌｖ１のサブバンド１ＨＨに対しては、他のサブバンドより少ない符号化データを割り当てる。すなわち、第３の実施形態においては、量子化により各サブバンドの発生符号量に傾斜がつくことを予め予測して、ＤＲＡＭ１０８内に符号化データ領域が確保されるため、より少ない容量のＤＲＡＭ１０８で符号化が可能となる。
【００６９】
このように、第３の実施形態においては、各色のプレーンごとの重み付け、各色プレーン内の分解Ｌｖごとの重み付け、更に量子化パラメータに基づく分解Ｌｖ内のサブバンドごとの重み付けに基づいて各サブバンドの符号化データ領域を確保している。これにより、第３の実施形態によれば、効率よくＤＲＡＭ１０８を使うことが出来るため、より少ないＤＲＡＭ１０８による符号化処理が可能な撮像装置１００を実現できる。また、第３の実施形態によれば、従来の技術のように同一階層の分解Ｌｖの各サブバンドの符号化データが一つの符号化データ領域内に混在することがないため、符号化データの管理が容易である。
【００７０】
＜第４の実施形態＞
次に、第４の実施形態について説明する。第４の実施形態の撮像装置１００の構成は前述の図１と同様であるため、その図示と説明は省略する。第４の実施形態の場合、アドレス管理部１１２が、ＤＲＡＭ１０８に対して符号化データ領域を確保する際の、各サブバンドに対する割り当て方法が第１〜第３の実施形態とは異なり、それ以外には前述した第１〜第３の実施形態と同様である。以下、第１〜第３の実施形態とは異なる処理を中心に、第４の実施形態について説明する。
【００７１】
第４の実施形態の場合、アドレス管理部１１２は、ＤＲＡＭ１０８内で使用可能な容量に応じて、ＤＲＡＭ１０８内の各サブバンドの符号化データ領域の確保の方法を選択する（切り替える）。
図１１は、第４の実施形態のアドレス管理部１１２が、ＤＲＡＭ１０８内で使用可能な容量に応じてサブバンドごとに符号化データ領域の確保の方法を選択する処理の流れを示すフローチャートである。図１１のフローチャートに示した各処理は、図１に示したハードウェア構成により実現される場合だけでなく、本実施形態に係るプログラムをＣＰＵ等で実行することにより実現されてもよい。以下の説明では、フローチャートの各処理のステップＳ１１０１〜ステップＳ１１０７をＳ１１０１〜Ｓ１１０７と略記する。図１１のフローチャートの処理は、画像符号化部１１３において、動画や静止画の各フレームの符号化処理が行われるごとに実行される。図１１のフローチャートの処理は、一つのフレームの符号化処理の開始によりスタートする。
【００７２】
アドレス管理部１１２は、Ｓ１１０１において、ＤＲＡＭ１０８内で使用可能な容量が閾値ＴＨ１より大きいかどうか判定する。アドレス管理部１１２は、Ｓ１１０１において、使用可能な容量が閾値以下（閾値ＴＨ１以下）であると判定した場合（Ｎｏ）にはＳ１１０２の処理に進む。一方、アドレス管理部１１２は、Ｓ１１０１において、使用可能な容量が閾値ＴＨ１より大きいと判定した場合（Ｙｅｓ）にはＳ１１０４の処理に進む。Ｓ１１０４では、アドレス管理部１１２は、第１の方法として、図５（Ａ）で説明したように、全ての符号化データ領域を均等な大きさにしてＤＲＡＭ１０８内に確保する。Ｓ１１０４の後、アドレス管理部１１２は、図１１のフローチャートの処理を一旦終了し、次のフレームの符号化が行われる際に図１１のフローチャートの処理を開始する。
【００７３】
Ｓ１１０２では、アドレス管理部１１２は、ＤＲＡＭ１０８内で使用可能な容量が閾値ＴＨ２より大きいかどうか判定する。なお、閾値ＴＨ２は閾値ＴＨ１より小さい値として設定されている。アドレス管理部１１２は、Ｓ１１０２において、使用可能な容量が閾値以下（閾値ＴＨ２以下）であると判定した場合（Ｎｏ）にはＳ１１０３の処理に進む。一方、アドレス管理部１１２は、Ｓ１１０２において、使用可能な容量が閾値ＴＨ２より大きいと判定した場合（Ｙｅｓ）にはＳ１１０５の処理に進む。Ｓ１１０５では、アドレス管理部１１２は、第２の方法として、図５（Ｂ）で説明したように、各色のプレーン単位で重みを付け、各プレーン内の各サブバンドについては均一な大きさの符号化データ領域を確保する。Ｓ１１０５の後、アドレス管理部１１２は、図１１のフローチャートの処理を一旦終了し、次のフレームの符号化が行われる際に図１１のフローチャートの処理を開始する。
【００７４】
Ｓ１１０３では、アドレス管理部１１２は、ＤＲＡＭ１０８内で使用可能な容量が閾値ＴＨ３より大きいかどうか判定する。なお、閾値ＴＨ３は閾値ＴＨ２より小さい値として設定されている。アドレス管理部１１２は、Ｓ１１０３において、使用可能な容量が閾値以下（閾値ＴＨ３以下）であると判定した場合（Ｎｏ）にはＳ１１０７の処理に進む。一方、アドレス管理部１１２は、Ｓ１１０３において、使用可能な容量が閾値ＴＨ３より大きいと判定した場合（Ｙｅｓ）にはＳ１１０６の処理に進む。Ｓ１１０６では、アドレス管理部１１２は、第３の方法として、図８（Ｂ）で説明したように、プレーン単位の重み付けと、分解Ｌｖごとの重み付けとを行い、分解Ｌｖ内の各サブバンドでは均一となる符号化データ領域を確保する。Ｓ１１０６の後、アドレス管理部１１２は、図１１のフローチャートの処理を一旦終了し、次のフレームの符号化が行われる際に図１１のフローチャートの処理を開始する。
【００７５】
Ｓ１１０７では、アドレス管理部１１２は、第４の方法として、図１０（Ｂ）で説明したように、プレーン単位の重み付け、分解Ｌｖごとの重み付け、量子化パラメータに基づく分解Ｌｖ内での各サブバンドに対する重み付けを行って符号化データ領域を確保する。Ｓ１１０７の後、アドレス管理部１１２は、図１１のフローチャートの処理を一旦終了し、次のフレームの符号化が行われる際に図１１のフローチャートの処理を開始する。
【００７６】
このように、第４の実施形態では、ＤＲＡＭ１０８の使用可能な容量が多い場合は、第１の方法のような簡易な制御を行って制御性をよくする。一方、ＤＲＡＭ１０８の使用可能な容量が少なくなるにしたがい、ＤＲＡＭ１０８の使用可能な容量を重視して、第２，第３、第４の方法の順で領域確保の細かな制御が行われる。これにより、第４の実施形態によれば、ＤＲＡＭ１０８の使用可能な容量に応じて、制御性とＤＲＡＭの容量のバランスをとった符号化が可能な撮像装置１００を実現できる。
【００７７】
＜その他の実施形態＞
前述した第１〜第４の実施形態では、ＲＡＷ画像のコンポーネントの一例としてＲ，Ｇ（Ｇ１，Ｇ２），Ｂの各色別のプレーンを挙げたが、コンポーネントはこれらプレーンには限定されない。コンポーネントは、一例として、Ｒの色成分からなる画像、Ｂの色成分からなる画像、Ｇ１とＧ２の差分色成分（Ｇ１−Ｇ２）からなる画像、Ｇ１とＧ２の加算色成分（Ｇ１＋Ｇ２）からなる画像であってもよい。なお、Ｇ１とＧ２の差分色成分（Ｇ１−Ｇ２）の画像（コンポーネント）は、Ｇの差分の色成分であるため、人が視認し難い成分の画像となる。このため、それら差分色成分（Ｇ１−Ｇ２）のコンポーネントについては、例えば量子化処理で情報量を大きく減らしたとしても、それによる画質劣化が視認され難い。したがって、差分色成分（Ｇ１−Ｇ２）のコンポーネントの量子化処理による情報量を削減することで、符号化効率を上げることも可能となる。
【００７８】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７９】
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００８０】
１００  撮像装置、１０１  撮像光学部、１０２  撮像センサー部、１０３  センサー信号処理部、１０４  バッファ、１０５  周波数変換部、１０６  量子化部、１０７  符号化部、１０８  ＤＲＡＭ、１０９  制御部、１１０  記録部、１１１  記録媒体、１１２  アドレス管理部、１１３  画像符号化部
【図１】
2018050263.tif 000003
【図２】
2018050263.tif 000004
【図３】
2018050263.tif 000005
【図４】
2018050263.tif 000006
【図５】
2018050263.tif 000007
【図６】
2018050263.tif 000008
【図７】
2018050263.tif 000009
【図８】
2018050263.tif 000010
【図９】
2018050263.tif 000011
【図１０】
2018050263.tif 000012
【図１１】
2018050263.tif 000013