(57)【要約】【課題】撮像された画像を符号化した符号化データを記憶するメモリが圧迫されるのを回避しつつ、高い画質を維持可能にすることを課題とする。【解決手段】周波数変換部（１０３）はプレーンデータを周波数変換した変換係数データを生成する。量子化部（１０４）は、変換係数データを量子化して量子化データを生成する。エントロピー符号化部（１０５）は、プレーンデータと変換係数データと量子化データの何れかを符号化する。制御部（１１０）は、符号化データを記憶するメモリ（１０７）の使用容量が閾値未満の場合、プレーンデータを符号化し、メモリ使用容量が閾値以上になった場合、１フレーム分の変換係数データを符号化した後、量子化データを符号化するように制御する。【選択図】図１
2018011120.tif 000002
【特許請求の範囲】
【請求項１】
フレーム画像に対して周波数変換を行って第１の係数データを生成する周波数変換手段と、
前記第１の係数データを、量子化パラメータに基づいて量子化して第２の係数データを生成する量子化手段と、
入力されたデータを符号化して符号化データを生成する符号化手段と、
前記符号化を制御する制御手段と、を有し、
前記制御手段は、
複数のフレーム画像から生成された複数の符号化データをメモリに記憶させる際に、メモリ内で前記符号化データの占める容量が所定の閾値未満である場合には、前記フレーム画像のデータを符号化し、
前記メモリ内で前記符号化データの占める容量が所定の閾値以上となった場合には、少なくとも１フレーム分の前記第１の係数データを符号化した後、前記第２の係数データを符号化するように制御することを特徴とする撮像装置。
【請求項２】
前記制御手段は、前記メモリ内で前記符号化データの占める容量が所定の閾値以上となった場合には、少なくとも１フレーム分の前記第１の係数データを符号化した後、１フレーム前の発生符号量に応じた量子化パラメータを用いて前記量子化がなされた前記第２の係数データを符号化するように制御することを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記周波数変換は、前記フレーム画像を複数のサブバンドに分解して、前記複数のサブバンド毎の前記第１の係数データを生成し、
前記量子化手段は、前記複数のサブバンド毎に、1フレーム前のサブバンドの発生符号量に応じて決定された量子化パラメータを用いて量子化を行うことを特徴とする請求項２に記載の撮像装置。
【請求項４】
前記制御手段は、前記メモリから前記符号化データが読み出されて転送される際のデータ転送速度に基づいて、前記所定の閾値を制御することを特徴とする請求項１乃至３の何れか１項に記載の撮像装置。
【請求項５】
前記制御手段は、前記メモリに対する前記フレームの符号化データの読み出し開始時間と読み出し完了時間との差分に応じて前記所定の閾値を制御することを特徴とする請求項１乃至４の何れか１項に記載の撮像装置。
【請求項６】
前記制御手段は、前記メモリに対する単位時間当たりの前記符号化データの書き込み量と読み出し量との比に応じて前記所定の閾値を制御することを特徴とする請求項１乃至３の何れか１項に記載の撮像装置。
【請求項７】
前記制御手段は、前記メモリから読み出された前記符号化データが転送されて記録される記録媒体の処理性能に応じて前記所定の閾値を制御することを特徴とする請求項１乃至６の何れか１項に記載の撮像装置。
【請求項８】
前記撮像によるフレーム画像のＲＡＷデータを色成分毎のプレーンに変換したプレーンデータを生成するプレーン変換手段を有し、
前記周波数変換手段は、前記フレーム画像のＲＡＷデータから変換された前記色成分毎の各プレーンデータを、前記周波数変換により複数のサブバンドに分解して、前記複数のサブバンド毎の前記第１の係数データを生成し、
前記量子化手段は、前記サブバンド毎の前記符号化による発生符号量に応じたサブバンド毎の量子化パラメータを用いて、前記サブバンド毎の前記第１の係数データを量子化して、前記サブバンド毎の第２の係数データを生成することを特徴とする請求項１乃至７の何れか１項に記載の撮像装置。
【請求項９】
前記フレーム画像のデータと前記第１の係数データと前記第２の係数データとが入力されて、前記入力されたデータの中から何れかのデータを切り替え選択して前記符号化手段に出力する選択手段を有し、
前記制御手段は、
前記メモリ内で前記符号化データの占める容量が所定の閾値未満である場合には、前記選択手段から、前記フレーム画像のデータを前記符号化手段に出力させ、
前記メモリ内で前記符号化データの占める容量が所定の閾値以上となった場合には、前記選択手段から、少なくとも１フレーム分の前記第１の係数データを前記符号化手段に出力させた後、以降は１フレーム前の前記第２の係数データを前記符号化手段に出力させることを特徴とする請求項１乃至８の何れか１項に記載の撮像装置。
【請求項１０】
前記フレーム画像は、連写撮影された静止画像の各フレーム画像、又は、動画撮影された動画の各フレーム画像であることを特徴とする請求項１乃至９の何れか１項に記載の撮像装置。
【請求項１１】
フレーム画像に対して周波数変換を行って第１の係数データを生成する変換工程と、
前記第１の係数データを、量子化パラメータに基づいて量子化して第２の係数データを生成する量子化工程と、
入力されたデータを符号化して符号化データを生成する符号化工程と、を有し、
前記符号化工程では、
複数のフレーム画像から生成された複数の符号化データをメモリに記憶させる際に、メモリ内で前記符号化データの占める容量が所定の閾値未満である場合には、前記フレーム画像のデータを符号化し、
前記メモリ内で前記符号化データの占める容量が所定の閾値以上となった場合には、少なくとも１フレーム分の前記第１の係数データを符号化した後、前記第２の係数データを符号化することを特徴とする撮像装置の制御方法。
【請求項１２】
撮像装置が有するコンピュータを、請求項１乃至１０の何れか１項に記載の撮像装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像された画像データを符号化する撮像装置、撮像装置の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、デジタルカメラやデジタルカムコーダーの普及により、デジタル方式により静止画像や動画像を撮影することが広く普及してきている。これらのカメラは、ＪＰＥＧやＨ.２６４に代表される符号化技術を用いて、静止画像や動画像の画像データを圧縮して記録することが一般的であるが、特許文献１には、撮像されたＲＡＷ（生）画像データを圧縮して記録できる撮像装置も開示されている。
【０００３】
ＪＰＥＧやＨ.２６４に代表される符号化技術では、記録されるデータ量を抑制するために、比較的重要度が低い情報に対して量子化を行うロッシー符号化によりデータ量を削減するのが一般的であるが、量子化を行わないロスレス符号化を行うこともある。また、特許文献２には、ロスレス符号化とロッシー符号化を切り替える構成を有する画像圧縮装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１７９８５３号公報
【特許文献２】国際公開第２０１２／１６０６２６号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、ロスレス符号化とロッシー符号化の切り替えが行われる場合の想定例としては、連写撮影された静止画像や動画像等の画像データを一時記憶するメモリの圧迫回避などが挙げられる。例えば、メモリの空き容量が十分残っている場合には画質劣化が無いロスレス符号化を行うようにし、メモリの空き容量が少なくなったときに、ロッシー符号化に切り替えて発生符号量を減らすことで、メモリの圧迫を回避する。特に、ロスレス符号化では、画像によって、発生符号量が非常に大きくなることがあり、その発生符号量がメモリの空き容量を超えてしまう場合にはメモリが破綻してしまう。このため、メモリの空き容量が少なくなった場合に、ロスレス符号化からロッシー符号化に切り替えて発生符号量を減らすことにより、メモリの圧迫による破綻を回避する。
【０００６】
しかしながら、ロスレス符号化からロッシー符号化に切り替えられた直後は、ロッシー符号化であっても、符号化により発生する符号量が、ロスレス符号化の場合とさほど変わらないことがあり、この場合、メモリの圧迫回避が不十分になる虞がある。一方、ロッシー符号化による発生符号量を抑えるために、比較的重要度が低い情報を大幅に削減するような量子化を行うと、画質が大きく劣化することになり、符号化の切り替えがなされた箇所での画質変動が目立つようになってしまう。
【０００７】
そこで、本発明は、撮像された画像を符号化した符号化データを記憶するメモリの圧迫を回避しつつ、符号化の切り替えの際の画質の変動を少なくすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、フレーム画像に対して周波数変換を行って第１の係数データを生成する周波数変換手段と、第１の係数データを量子化パラメータに基づいて量子化して第２の係数データを生成する量子化手段と、入力されたデータを符号化して符号化データを生成する符号化手段と、符号化を制御する制御手段と、を有し、制御手段は、複数のフレーム画像から生成された複数の符号化データをメモリに記憶させる際に、メモリ内で符号化データの占める容量が所定の閾値未満である場合にはフレーム画像のデータを符号化し、メモリ内で符号化データの占める容量が所定の閾値以上となった場合には少なくとも１フレーム分の第１の係数データを符号化した後、第２の係数データを符号化するように制御することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、撮像された画像を符号化した符号化データを記憶するメモリが圧迫されるのを回避しつつ、符号化の切り替えの際の画質の変動を少なくすることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態の撮像装置の概略構成例を示す図である。
【図２】プレーン変換の説明に用いる図である。
【図３】プレーンデータをＤＷＴ処理した際のサブバンドの説明に用いる図である。
【図４】量子化ステップ値を決定する際の参照先の説明に用いる図である。
【図５】想定例におけるメモリ使用容量遷移と符号化部への入力を示す図である。
【図６】制御部の動作を示すフローチャートである。
【図７】第１の実施形態のメモリ使用容量遷移と符号化部への入力を示す図である。
【図８】第２の実施形態の撮像装置の概略構成例を示す図である。
【図９】第２の実施形態のメモリ使用容量遷移と符号化部への入力を示す図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明の一実施形態について説明する。
＜第１の実施形態＞
図１は、第１の実施形態の撮像装置１００の概略構成を示す図である。
本実施形態の撮像装置１００は、撮像部１０１、プレーン変換部１０２、周波数変換部１０３、量子化部１０４、エントロピー符号化部１０５、メモリＩ／Ｆ部１０６、メモリ１０７、記録処理部１０８、記録媒体１０９、制御部１１０、ＭＵＸ１１１を有する。
【００１２】
制御部１１０は、少なくとも、プレーン変換部１０２と、周波数変換部１０３と、量子化部１０４と、エントロピー符号化部１０５と、ＭＵＸ１１１とを制御する。
【００１３】
撮像部１０１は、レンズ光学系、絞り、レンズ光学系と絞りの制御及び駆動を行う駆動部、撮像素子等を有する。レンズ光学系は、焦点調整を可能にするフォーカス光学系と光学ズームを可能にするズーム光学系等を含む。駆動部は、フォーカス光学系に対するフォーカス制御及びレンズ駆動部と、絞りに対する絞り制御及び絞り駆動部を有しており、さらにズーム光学系に対するズーム制御及びレンズ駆動部を有していてもよい。撮像素子は、ＣＣＤイメージセンサー又はＣＭＯＳセンサーからなり、レンズ光学系により撮像面上に結像された光学像を電気信号に変換する。そして、撮像部１０１は、撮像素子により得られた電気信号をデジタル信号へ変換したＲＡＷ（生）データを、撮像によるフレーム画像（以下、フレームと表記する。）のデータとしてプレーン変換部１０２へ送る。
【００１４】
プレーン変換部１０２は、撮像部１０１から供給されたＲＡＷデータを、色成分毎のデータに変換する。以下、ＲＡＷデータを色成分毎のデータに変換することをプレーン変換と呼ぶ。図２は、プレーン変換の説明図である。図２において、ＲＡＷデータ２００は、いわゆるベイヤー配列に対応したデータであり、図中のＲは赤色、Ｇ（Ｇ１，Ｇ２）は緑色、Ｂは青色の各画素を表している。プレーン変換部１０２は、ＲＡＷデータ２００を、Ｒ成分のプレーン２０１Ｒと、Ｇ１成分のプレーン２０１Ｇ１と、Ｇ２成分のプレーン２０１Ｇ２と、Ｂ成分のプレーン２０１Ｂとの、四つのプレーンの画像データに変換する。本実施形態では、ＲＡＷデータをプレーン変換した各色成分のプレーンの画像データが、後述する周波数変換部１０３と後述するＭＵＸ１１１とに送られる。以下、プレーン変換により得られた各色成分の各プレーンの画像データをプレーンデータと呼ぶ。
【００１５】
周波数変換部１０３は、プレーン変換部１０２から供給された色成分毎のプレーンデータに対して、それぞれ周波数変換処理を行う。周波数変換処理の一例として、いわゆる離散ウェーブレット変換（Ｄｉｓｃｒｅｔｅ Ｗａｖｅｌｅｔ Ｔｒａｎｓｆｏｒｍ：以下、ＤＷＴと表記する。）処理が行われる場合について、図３を用いて説明する。図３において、プレーンデータ３００は、前述した四つのプレーンデータのうちの何れか一つであるとする。周波数変換部１０３は、プレーンデータ３００をＤＷＴ処理により複数の周波数帯に分解する周波数分解処理を３回行うことにより、周波数帯毎の変換係数データからなるサブバンドデータ３０１を生成する。本実施形態では、このサブバンドデータ３０１における周波数帯毎の変換係数データが本発明に係る第１の係数データに相当する。以下、プレーンデータ３００がＤＷＴ処理された各周波数帯をサブバンドと表記する。図３のサブバンドデータ３０１のうち、サブバンド"０"はＤＣ（直流）成分の変換係数データを表しており、サブバンド"１"〜"９"はＡＣ（交流）成分の変換係数データを表している。周波数変換部１０３により生成されたサブバンドデータは、後述する量子化部１０４と後述するＭＵＸ１１１とに送られる。
【００１６】
量子化部１０４は、サブバンドデータ内の各サブバンドの各変換係数データを、量子化パラメータの一つである量子化ステップ値で除算して量子化データを生成する。すなわち、各サブバンドの各変換係数データは、量子化ステップ値で除算されることにより圧縮されることになる。本実施形態では、この量子化データが本発明に係る第２の係数データに相当する。量子化部１０４による量子化処理で得られた量子化データは、後述するＭＵＸ１１１に送られる。
【００１７】
ＭＵＸ１１１は、制御部１１０からの制御信号に基づいて、複数の入力データから１つのデータを選択して出力するマルチプレクサである。ＭＵＸ１１１から出力されたデータは、エントロピー符号化部１０５へ送られる。本実施形態の場合、ＭＵＸ１１１には、前述したプレーン変換部１０２から出力されたプレーンデータと、周波数変換部１０３から出力されたサブバンドデータと、量子化部１０４から出力された量子化データとの、三つのデータが入力される。本実施形態では、撮像装置１００の動作モードが、第１の動作モードである場合、制御部１１０は、プレーン変換部１０２からのプレーンデータを、エントロピー符号化部１０５へ出力するようにＭＵＸ１１１を制御する。また、撮像装置１００の動作モードが、第２の動作モードである場合、制御部１１０は、周波数変換部１０３からのサブバンドデータを、エントロピー符号化部１０５へ出力するようにＭＵＸ１１１を制御する。また、撮像装置１００の動作モードが、第３の動作モードである場合、制御部１１０は、量子化部１０４からの量子化データをエントロピー符号化部１０５へ出力するようにＭＵＸ１１１を制御する。
【００１８】
エントロピー符号化部１０５は、ＭＵＸ１１１から供給されたデータに対してエントロピー符号化を行う。具体的には、撮像装置１００が例えば第１の動作モードである場合、エントロピー符号化部１０５は、ＭＵＸ１１１を介して供給されたプレーンデータに対してエントロピー符号化を行う。また、撮像装置１００が第２の動作モードである場合、エントロピー符号化部１０５は、ＭＵＸ１１１を介して供給されたサブバンドデータに対してエントロピー符号化を行う。また、撮像装置１００が第３の動作モードである場合、エントロピー符号化部１０５は、ＭＵＸ１１１を介して供給された量子化データに対してエントロピー符号化を行う。なお、エントロピー符号化の方式としては、ゴロム符号化や、ランレングス符号化、ハフマン符号化、算術符号化等の可逆符号化が考えられるが、ここではその方式については限定せず、どのような方式が用いられてもよい。エントロピー符号化部１０５での符号化により生成された符号化データは、メモリＩ／Ｆ部１０６に送られる。
【００１９】
また、エントロピー符号化部１０５による符号化で発生した符号量を示す情報は、量子化部１０４にフィードバックされる。本実施形態の場合、例えば第２の動作モードでサブバンドデータの符号化が行われた場合、１フレーム分の発生符号量の情報とともに、サブバンド毎の変換係数データの符号化によるサブバンド毎の発生符号量の情報が、量子化部１０４に送られる。また、第３の動作モードでサブバンド毎の量子化データの符号化が行われた場合にも、１フレーム分の発生符号量の情報とともに、サブバンド毎の量子化データの符号化によるサブバンド毎の発生符号量の情報が、量子化部１０４に送られる。このように、エントロピー符号化部１０５は、第２及び第３の動作モードにおけるサブバンド毎の発生符号量の情報を、１フレーム分の発生符号量の情報とともに量子化部１０４にフィードバックする。
【００２０】
量子化部１０４は、エントロピー符号化部１０５からフィードバックされた発生符号量の情報を参照して、量子化パラメータの一つである量子化ステップ値を決定する。本実施形態の場合、量子化部１０４には、１フレーム分の発生符号量とサブバンド毎の発生符号量の情報が、フィードバックされる。したがって、量子化部１０４は、１フレーム分の発生符号量だけでなく、サブバンド毎の発生符号量をも参照して、サブバンド毎の細かな量子化ステップ値を決定する。
【００２１】
以下、図４を用い、量子化部１０４が、サブバンド毎の発生符号量を参照して、サブバンド毎の細かな量子化ステップ値を決定する処理の動作について説明する。量子化ステップ値の決定の際には、１フレーム分の発生符号量も参照されるが、以下の説明では、１フレーム分の発生符号量の参照動作については省略する。
【００２２】
図４の横軸は時間を示し、時点Ｔａは例えば静止画像を連続撮像する連写により取得された時系列の各フレームのうち、１枚目のフレームの撮影タイミングを示し、時点Ｔｂは２枚目のフレームの撮影タイミングを示しているとする。なお、時点ＴａとＴｂは動画撮影による連続した時系列の各フレームのうち１枚目と２枚目のフレームの撮影タイミングであってもよい。以下、静止画像の連写撮影がなされる場合のみを例に挙げて説明する。図４のサブバンドデータ４０１は、時点Ｔａで撮影されたフレームの一つのプレーンデータから周波数変換処理により生成された各サブバンドの変換係数データを表しているとする。また、サブバンドデータ４０２は、時点Ｔｂで撮影されたフレームの同プレーンデータから周波数変換処理により生成された各サブバンドの変換係数データを表しているとする。
【００２３】
ここで、例えば静止画像の連写撮影が行われている場合、時系列順の各フレームの画像は、時間方向において相関が高くなっていると考えられる。なお、動画撮影が行われている場合も、その動画撮影による時系列順の各フレームの画像は、時間方向で相関が高いと考えられる。このため、量子化部１０４は、時点Ｔｂで得られたサブバンドデータ４０２の量子化を行う際には、１フレーム前の時点Ｔａで得られたサブバンドデータ４０１のサブバンド毎の発生符号量を参照して、サブバンド毎に量子化ステップ値を決定する。例えば、サブバンドデータ４０２内のサブバンド"５"の変換係数データを量子化する際には、サブバンドデータ４０１内の同サブバンド"５"での発生符号量を参照して、そのサブバンド"５"に対応した量子化ステップ値が決められる。このように、量子化部１０４は、各サブバンドの量子化ステップ値を決定する際には、時間方向で相関が高いと考えられる１フレーム前の同サブバンドにおける発生符号量を参照値として利用する。このため量子化部１０４は、エントロピー符号化部１０５からフィードバックされる１フレーム前の各発生符号量の情報を記憶する記憶素子を有している。
【００２４】
図１に説明を戻す。メモリＩ／Ｆ部１０６は、撮像装置１００の各部からのメモリ・アクセス要求を調停し、メモリ１０７に対する読み出し・書き込みの制御を行う。前述したエントロピー符号化部１０５によるエントロピー符号化後の符号化データは、メモリＩ／Ｆ部１０６を介して、メモリ１０７に一時的に記憶される。
【００２５】
メモリ１０７は、エントロピー符号化後の符号化データや、撮像装置１００の各部から出力される各種データを一時的に記憶するための例えば揮発性メモリからなる記憶領域である。メモリ１０７に一時的に記憶された符号化データは、メモリＩ／Ｆ部１０６を介して記録処理部１０８に送られる。
【００２６】
記録処理部１０８は、メモリ１０７から読み出された符号化データから、記録媒体１０９への記録に適した記録データを生成し、その記録データを記録媒体１０９に記録する。記録媒体１０９は、例えば不揮発性メモリで構成される記録メディアである。なお、本実施形態の撮像装置１００は、記録媒体１０９から記録データを再生することも可能となされているが、その再生のための構成等の説明及び図示は省略する。
【００２７】
＜ロスレス符号化とロッシー符号化の切り替え想定例＞
ここで、連写撮影等による各フレームの符号化データをバッファメモリに一時記憶させた後に記録媒体に記録する際に、バッファメモリ内で符号化データが占める容量に応じてロスレス符号化とロッシー符号化を切り替える例について想定してみる。なお、この想定例は、ロスレス符号化とロッシー符号化の切り替えにより生ずる可能性がある問題点について説明するための例であって、図１に示した本実施形態による後述する符号化の切り替え制御との差異を説明するための例である。
【００２８】
本想定例において、ロスレス符号化では、撮像されたＲＡＷデータをプレーン変換したプレーンデータに対して、エントロピー符号化が行われるとする。一方、ロッシー符号化では、プレーンデータを周波数変換処理した各サブバンドデータに量子化処理を行った後の量子化データに対して、エントロピー符号化が行われるとする。また本想定例において、ロスレス符号化からロッシー符号化への切り替えは、バッファメモリ内で符号化データが占める容量（以下、使用容量と表記する。）が、所定の閾値以上になったときに行われるとする。
【００２９】
図５は、本想定例において、連写撮影された静止画像の各フレームの符号化データをバッファメモリに一時的に記憶した後、記録媒体へ転送して記録する場合のバッファメモリの使用容量の遷移例を示す図である。図５の例では、エントロピー符号化されてバッファメモリに記憶される符号化データの単位時間当たりの符号量が、バッファメモリから読み出されて記録媒体へ転送される単位時間当たりの転送データ量を超えている場合を示している。
【００３０】
図５のグラフ５００の横軸は時間を示しており、縦軸はバッファメモリの容量を示しており、折れ線５０２がバッファメモリの使用容量の遷移を表している。また、図５のグラフ５００の横軸の各目盛は、連写撮影による１枚分のフレームの符号化データがバッファメモリに記憶される時間を示している。また、図５の時点Ｔ１は、連写撮影された例えば１枚目のフレームの符号化データがバッファメモリに記憶されたタイミングを示している。以下同様であり、時点Ｔ２〜Ｔ１３・・・は２枚目〜１３枚目・・・の各フレームの符号化データがバッファメモリに記憶されたタイミングを示している。また、時点Ｔ０は撮影開始のタイミングを表し、時点Ｔ０からＴ２までの間では、折れ線５０２で示されるメモリ使用量は徐々に増加するが、時点Ｔ２ではメモリ使用容量が低下する。これはバッファメモリから記録媒体へのデータ転送処理が終了したことでバッファメモリ内に１枚目の符号化データ分だけ容量の空きができたことを表している。なお、バッファメモリから記録媒体へのデータ転送は、実際には１枚目のフレームがバッファメモリに記憶された時点Ｔ１から始まっている。図５の例では、説明を分かりやすくするために、時点Ｔ２のデータ転送完了のタイミングで、メモリ使用量が１枚目の符号化データ分だけ空くような（データ量が差し引かれるような）イメージで折れ線５０２が描かれている。
【００３１】
また、図５のタイムチャート５０１は、エントロピー符号化処理へ入力されるデータの入力タイミングを表している。本想定例の場合、連写撮影の開始直後はバッファメモリの使用容量に余裕があるため、連写撮影による各フレームのプレーンデータがエントロピー符号化処理への入力データとなされて、ロスレス符号化が行われる。このため、図５の入力データＩＮ０やＩＮ１は、プレーンデータ、つまり周波数変換処理及び量子化処理が行われていないデータである。
【００３２】
一方、図５のグラフ５００の時点Ｔｘは、折れ線５０２で示されるバッファメモリの使用容量が、所定の閾値以上（Ｔｈ以上）となったタイミングを表している。このようにバッファメモリの使用容量が所定の閾値Ｔｈ以上になった場合、バッファメモリへ記憶されるデータ量を抑えるために、これ以降は符号化方式がロッシー符号化に切り替えられる。ロスレス符号化は、画像によって発生符号量が大きくなる可能性があり、発生符号量がバッファメモリの空き容量を超えてしまうと、符号化データの記憶が出来なくなり破綻してしまうため、これ以降は符号化方式がロッシー符号化に切り替えられる。本想定例の場合は、周波数変換部処理及び量子化処理がなされた後の量子化データをエントロピー符号化するようなロッシー符号化を行って発生符号量を抑える。図５の場合、バッファメモリの使用容量が閾値Ｔｈ以上になった時点Ｔｘの次の時点Ｔ１２以降は、周波数変換処理及び量子化処理がなされた後の量子化データＩＮ１２，ＩＮ１３・・・を、エントロピー符号化処理への入力データとする。
【００３３】
ここで、量子化処理では、量子化ステップ値を決め、周波数変換処理によるサブバンド毎の変換係数データを、その量子化ステップ値で除算することにより、データの圧縮が行われる。量子化ステップ値は、例えば連写撮影された各フレームの画像が時間方向において有している相関を利用することにより決めている。具体的には、１フレーム前に符号化された画像の発生符号量を参照し、その発生符号量に基づいて量子化ステップ値が決められる。また、発生符号量を参照する際には、前述の図４で説明したように、１フレーム分の発生符号量だけでなく、サブバンド毎の量子化データの符号化により発生したサブバンド毎の発生符号量が参照される。このように、サブバンド毎の発生符号量に応じてサブバンド毎に量子化ステップ値を変えることで、より細かな量子化ステップ値が設定されることになる。
【００３４】
ただし、図５の想定例の場合、時点Ｔ１２以降でロッシー符号化への切り替えが行われるが、時点Ｔ１２より前ではロスレス符号化が行われており、周波数変換処理及び量子化処理は行われていない。このため、入力データＩＮ１２の量子化データを生成する際に使用される量子化ステップ値は、１フレーム前に行われたロスレス符号化によるプレーンデータ毎の発生符号量のみを参照して決定された値となされている。したがって、入力データＩＮ１２は、周波数変換処理によるサブバンド毎の変換係数データを、プレーンデータ毎の発生符号量を参照して決定した量子化ステップ値を用いて量子化したデータとなる。すなわち、入力データＩＮ１２は、サブバンド毎の発生符号量に応じた細かく適切な量子化ステップ値ではなく、プレーンデータ毎の発生符号量に応じた大まかな量子化ステップ値を用いて、サブバンド毎の変換係数データを量子化したデータとなる。
【００３５】
この入力データＩＮ１２のような量子化データをエントロピー符号化した場合、例えば図５の折れ線５０３に示すように、ロスレス符号化が行われた場合の発生符号量とあまり変わらない符号量が発生してしまうことがある。逆に、図５の折れ線５０４に示すように、発生符号量は少なくなるが、符号化による画質劣化が大きくなってしまうこともあり得る。折れ線５０３の例のように、ロスレス符号化の場合とさほど変わらない符号量が発生した場合には、時点Ｔ１３でもバッファメモリの使用容量が減らずにバッファメモリの空き容量が少なくなって、符号化データの記憶が出来なくなる虞がある。一方、折れ線５０４の例のように発生符号量を少なくできれば、バッファメモリの使用容量を減らすことができ、バッファメモリの破綻を回避できる可能性が高くなる。しかしながら、この場合、符号化による画質劣化が大きくなったことで、符号化方式がロスレス符号化からロッシー符号化へ切り替えられた箇所での画質変動が目立つようになる。
【００３６】
このように、図５の想定例の場合、ロスレス符号化とロッシー符号化を切り替える際に、量子化ステップ値を定めるための参照情報が不足し、符号量の制御が荒くなって、メモリ容量の圧迫、或いは、画質の劣化と画質変動が目立つという問題が生ずる虞がある。
【００３７】
＜本実施形態におけるロスレス符号化とロッシー符号化の切り替え制御＞
そこで、本実施形態の撮像装置１００は、連写撮影された静止画像や動画のフレームに対する符号化においてロスレス符号化とロッシー符号化の切り替えを行う際、メモリ１０７の圧迫と画質劣化及び画質変動を回避可能とする切り替え制御を実現している。
【００３８】
図６は、本実施形態の撮像装置１００が例えば静止画像の連写撮影を行っている際の制御フローチャートであり、撮影されたフレームの符号化に関連する各処理ステップを示している。
図６のフローチャートに示した各処理は、図１に示した撮像装置１００のハードウェア構成により実現される場合だけでなく、本実施形態に係るプログラムをＣＰＵ等で実行することにより実現されてもよい。以下の説明では、フローチャートの各処理のステップＳ２０１〜ステップＳ２１４をＳ２０１〜Ｓ２１４と略記する。図６のフローチャートの処理は、静止画像の連写撮影開始によりスタートする。
【００３９】
静止画像の連写撮影が開始されると、制御部１１０は、先ず、撮像装置１００の動作モードを初期化する。初期化された動作モードを初期動作モードと呼ぶ。本実施形態において、動作モードには、初期動作モードと、前述した第１の動作モード、第２の動作モード、第３の動作モードがあり、各動作モードにおける制御の詳細は後述する。制御部１１０は、初期動作モードへの設定を行った後、Ｓ２０１の制御処理に進む。
【００４０】
また、撮像装置１００において連写撮影が開始されると、撮像部１０１からは連写撮影による各フレームのＲＡＷデータが出力され、そのＲＡＷデータがプレーン変換部１０２に供給される。制御部１１０は、Ｓ２０１において、プレーン変換部１０２を制御して、ＲＡＷデータのプレーン変換処理を行わせる。Ｓ２０１の後、制御部１１０は、Ｓ２０２の制御処理に進む。
【００４１】
Ｓ２０２では、制御部１１０は、撮像装置１００の動作モードが、第２又は第３の動作モードか否かを判断する。制御部１１０は、Ｓ２０２において、第２又は第３の動作モードであると判断した場合（ＹＥＳ）にはＳ２０７の制御処理に進む。一方、制御部１１０は、Ｓ２０２において、第２又は第３の動作モードでないと判断した場合（ＮＯ）には、Ｓ２０３の制御処理に進む。静止画像の連写撮影が開始されたときには、動作モードは前述のように初期動作モードに設定されているため、制御部１１０は、Ｓ２０２において、第２又は第３の動作モードでないと判断し、Ｓ２０３に制御処理を進める。
【００４２】
Ｓ２０３に進むと、制御部１１０は、メモリ１０７の使用容量が所定の閾値以上（Ｔｈ以上）になったか否か判定する。閾値Ｔｈは、メモリ使用量の閾値であり、メモリ１０７が記憶可能な最大容量よりも小さい値として、制御部１１０に予め設定されている。制御部１１０は、メモリ１０７の最大容量と書き込み及び読み出しの速度を把握しており、また、エントロピー符号化部１０５による符号化で発生した符号量を監視することにより、メモリ１０７の使用容量がどのように推移しているかを認識している。このため、制御部１１０は、メモリ１０７の使用容量が所定の閾値Ｔｈ以上になったか否かを判定可能である。なお、図１には図示していないが、メモリＩ／Ｆ部１０６がメモリ使用容量の情報を生成して制御部１１０に通知し、制御部１１０は、そのメモリ使用容量の情報を用いて、メモリ１０７の使用容量が閾値Ｔｈ以上か否かを判定してもよい。制御部１１０は、Ｓ２０３において、メモリ１０７の使用容量が閾値Ｔｈ以上であると判定した場合（ＹＥＳ）はＳ２０５に処理を進め、閾値未満（Ｔｈ未満）であると判定した場合（ＮＯ）にはＳ２０４の制御処理に進む。静止画像の連写撮影が開始されたときには、メモリ１０７の容量は余裕があり、閾値Ｔｈ未満であるため、制御部１１０は、Ｓ２０４に制御処理を進める。
【００４３】
Ｓ２０４に進むと、制御部１１０は、静止画像の連写撮影が開始された際の初期動作モードを第１の動作モードに変更した後、Ｓ２１０の制御処理に進む。Ｓ２１０では、制御部１１０は、エントロピー符号化部１０５を制御してエントロピー符号化を行わせる。この時点では第１の動作モードに設定されており、第１の動作モードは、前述したように、プレーンデータを、直接、エントロピー符号化する動作モードとなされている。したがって、Ｓ２１０において、制御部１１０は、プレーン変換部１０２によるプレーンデータ（つまり周波数変換部１０３及び量子化部１０４を介していないプレーンデータ）が、直接、エントロピー符号化部１０５に入力されるようにＭＵＸ１１１を制御する。そして、エントロピー符号化部１０５により生成された符号化データは、メモリＩ／Ｆ部１０６を介してメモリ１０７に記憶される。したがって、このときのメモリ１０７には、周波数変換処理及び量子化処理が行われていないプレーンデータをエントロピー符号化した符号化データ、つまりロスレス符号化による符号化データが記憶されることになる。
【００４４】
前述したようにＳ２１０において第１の動作モードでのエントロピー符号化が行われた後、制御部１１０は、Ｓ２１１の制御処理に進む。Ｓ２１１では、制御部１１０は、撮像装置１００の動作モードが第１の動作モードか否かを判断する。制御部１１０は、Ｓ２１１において第１の動作モードであると判断した場合（ＹＥＳ）にはＳ２１３の制御処理に進み、一方、第１の動作モードでないと判断した場合（ＮＯ）にはＳ２１２の制御処理に進む。静止画像の連写撮影が開始された際には、前述したように第１の動作モードに設定されているため、制御部１１０は、Ｓ２１１において第１の動作モードであると判断して、Ｓ２１３の制御処理に進む。
【００４５】
Ｓ２１３では、制御部１１０は、連写撮影による全てのフレームのＲＡＷデータについて前述したエントロピー符号化が終わったか否かを判定する。制御部１１０は、Ｓ２１３において、全てのフレームのＲＡＷデータに対する符号化処理が終わっていないと判定した場合（ＮＯ）には、Ｓ２０１に処理を戻し、次のフレームのＲＡＷデータについて、前述したＳ２０１以降の制御処理を行う。
【００４６】
Ｓ２０１の処理に戻ると、制御部１１０は、前述同様に、プレーン変換部１０２を制御して、連写撮影によるフレームのＲＡＷデータのプレーン変換処理を行わせた後、Ｓ２０２の制御処理に進む。この時点の動作モードは、前述したように第１の動作モードに設定されているため、制御部１１０は、Ｓ２０２において第２又は第３の動作モードでないと判断して、Ｓ２０３に制御処理を進める。Ｓ２０３において、制御部１１０は、メモリ１０７の使用容量が所定の閾値Ｔｈ以上になったか否か判定し、使用容量が所定の閾値Ｔｈ未満であると判定した場合には、Ｓ２０４以降に処理を進める。
【００４７】
そして、制御部１１０は、連写撮影による各フレームについて前述した一連の処理を繰り返し、Ｓ２１３において、連写撮影による全てのフレームのＲＡＷデータについてエントロピー符号化が終わったと判断した場合（ＹＥＳ）には、Ｓ２１４の制御処理に進む。Ｓ２１４では、制御部１１０は、撮像装置１００の動作モードを初期動作モードに設定した後、図６のフローチャートの連写撮影処理を終了する。
【００４８】
一方、制御部１１０は、連写撮影による各フレームについて前述した一連の処理を繰り返し、Ｓ２０３において、メモリ１０７の使用容量が所定の閾値Ｔｈ以上になったと判定した場合に、Ｓ２０５に制御処理を進める。
【００４９】
Ｓ２０５では、制御部１１０は、動作モードを第２の動作モードに設定した後、Ｓ２０６の制御処理に進む。Ｓ２０６では、制御部１１０は、周波数変換部１０３を制御して周波数変換処理を行わせた後、Ｓ２１０の制御処理に進む。なお、Ｓ２０６では、周波数変換処理としてサブバンド分解（周波数分解）を３回行う例を挙げているが、サブバンド分解の回数は２回以上であればよい。本実施形態において、第２の動作モードは、前述したように、プレーンデータを周波数変換処理した後のサブバンドデータを、エントロピー符号化する動作モードとなされている。第２の動作モードの場合、制御部１１０は、プレーンデータを周波数変換部１０３で周波数変換した後のサブバンドデータ（つまり量子化部１０４を介していないサブバンドデータ）が、エントロピー符号化部１０５に入力されるようにＭＵＸ１１１を制御する。そして、Ｓ２１０において、エントロピー符号化部１０５により生成された符号化データは、メモリＩ／Ｆ部１０６を介してメモリ１０７に記憶される。第２の動作モードの場合、メモリ１０７には、サブバンドデータがエントロピー符号化された符号化データ、つまりサブバンド毎の変換係数データを符号化した符号化データが、記憶されることになる。また、第２の動作モードの場合、サブバンド毎の変換係数データが符号化されたことで発生する、サブバンド毎の発生符号量の情報が得られることになる。
【００５０】
前述したように第２の動作モードにおいて、Ｓ２１０の制御処理がなされた後、制御部１１０は、Ｓ２１１の制御処理に進む。この時点では第２の動作モードに設定されているため、制御部１１０は、Ｓ２１１において第１の動作モードでないと判断してＳ２１２の制御処理に進む。
【００５１】
Ｓ２１２に進んだ場合、制御部１１０は、第２の動作モードにおける符号化で得られるサブバンド毎の発生符号量の情報を、量子化部１０４内の記憶素子に記憶させる。Ｓ２１２の後、制御部１１０は、Ｓ２１３の制御処理に進む。そして、制御部１１０は、Ｓ２１３において、全てのフレームのＲＡＷデータに対する符号化処理が終わっていないと判定した場合、Ｓ２０１に処理を戻し、次のフレームのＲＡＷデータについて、前述したＳ２０１以降の制御処理を行う。
【００５２】
このときの制御部１１０は、Ｓ２０１において連写撮影によるフレームのＲＡＷデータのプレーン変換処理を行わせた後、Ｓ２０２の制御処理に進む。この時点の動作モードは、前述したように第２の動作モードに設定されているため、制御部１１０は、Ｓ２０２において第２の動作モードであると判断して、Ｓ２０７に制御処理を進める。
【００５３】
Ｓ２０７に進んだ場合、制御部１１０は、動作モードを第３の動作モードに設定した後、Ｓ２０８の制御処理に進む。Ｓ２０８では、制御部１１０は、周波数変換部１０３を制御して周波数変換処理を行わせた後、Ｓ２０９の制御処理に進む。なお、Ｓ２０８においてもＳ２０６の場合と同様に、周波数変換処理としてサブバンド分解（周波数分解）を３回行う例を挙げているが、サブバンド分解の回数は２回以上であればよい。Ｓ２０９では、制御部１１０は、量子化部１０４を制御して量子化処理を行わせた後、Ｓ２１０の制御処理に進む。このときの量子化部１０４では、第２の動作モードに設定された際にＳ２１２で記憶素子に記憶したサブバンド毎の発生符号量の情報を参照して、量子化処理を行う。つまり、１フレーム前の同じサブバンドの発生符号量を参照して、サブバンド毎の量子化ステップ値を決定し、その量子化ステップ値を用いて量子化処理が行われる。
【００５４】
前述したように第３の動作モードにおいて、Ｓ２１０の制御処理がなされた後、制御部１１０は、Ｓ２１１の制御処理に進む。この時点では第３の動作モードに設定されているため、制御部１１０は、Ｓ２１１において第１の動作モードでないと判断してＳ２１２の制御処理に進む。
【００５５】
Ｓ２１２に進んだ場合、制御部１１０は、第３の動作モードにおける符号化で得られるサブバンド毎の発生符号量の情報を、量子化部１０４内の記憶素子に記憶させる。Ｓ２１２の後、制御部１１０は、Ｓ２１３の制御処理に進む。そして、制御部１１０は、Ｓ２１３において、全てのフレームのＲＡＷデータに対する符号化処理が終わっていないと判定した場合、Ｓ２０１に処理を戻し、次のフレームのＲＡＷデータについて、前述したＳ２０１以降の制御処理を行う。
【００５６】
制御部１１０は、Ｓ２０１において連写撮影によるフレームのＲＡＷデータのプレーン変換処理を行わせた後、Ｓ２０２の制御処理に進む。この時点の動作モードは、前述したように第３の動作モードに設定されているため、制御部１１０は、Ｓ２０２において第３の動作モードであると判断して、Ｓ２０７に制御処理を進める。
【００５７】
Ｓ２０７に進んだ場合、制御部１１０は、動作モードが既に第３の動作モードに設定済みであるため、第３の動作モードのまま次のＳ２０８の制御処理に進む。Ｓ２０８では、制御部１１０は、周波数変換部１０３を制御して周波数変換処理を行わせた後、Ｓ２０９の制御処理に進む。Ｓ２０９では、制御部１１０は、量子化部１０４を制御して量子化処理を行わせた後、Ｓ２１０の制御処理に進む。このときの量子化部１０４では、前のフレームの符号化が行われた際のＳ２１２で記憶素子に記憶したサブバンド毎の発生符号量の情報を参照して、サブバンド毎の量子化ステップ値を決定し、その量子化ステップ値を用いたサブバンド毎の量子化処理が行われる。
【００５８】
制御部１１０は、これ以降の各フレームについては第３の動作モードによる符号化が行われるように各部を制御する。そして、第３の動作モードにおいて、連写撮影による全てのフレームのＲＡＷデータについてエントロピー符号化が終わった場合、制御部１１０は、撮像装置１００の動作モードを初期動作モードに設定した後に処理を終了する。
【００５９】
なお、図６のフローチャートでは省略しているが、第３の動作モードによる符号化が行われている際に、メモリ１０７の使用容量が閾値Ｔｈ未満になった場合には、第１の動作モードに戻して、図６のフローチャートのＳ２０１以降の処理を行うようにしてもよい。
【００６０】
図７は、本実施形態の撮像装置１００において前述の図６のフローチャートの処理が行われ、連写撮影されたフレームの符号化データをメモリ１０７に一時的に記憶した後、記録媒体１０９に記録する際のメモリ１０７の使用容量の遷移例を示す図である。図７の例においても前述の図５の例と同様、エントロピー符号化されてメモリ１０７に記憶される符号化データの単位時間当たりの符号量が、メモリ１０７から記録媒体１０９へ転送される単位時間当たりの転送データ量を超えているとする。
【００６１】
図７のグラフ７００の横軸は時間を示しており、縦軸はメモリ１０７の容量を示しており、折れ線７０２がメモリ１０７の使用容量の遷移を表している。また、図７のグラフ７００の横軸の各目盛は、連写撮影により１枚のフレームが撮影され、そのフレームのデータが符号化されてメモリ１０７に記録される時間を示している。また、図７中の時点Ｔ１は、連写撮影された１枚目のフレームの符号化データがメモリ１０７に記憶されたタイミングを示している。以下同様に、時点Ｔ２〜Ｔ２９は２枚目〜２９枚目の各フレームの符号化データがメモリ１０７に記憶されたタイミングを示している。また、時点Ｔ０は撮影開始のタイミングを表し、時点Ｔ０からＴ２までの間では、折れ線７０２で示されるメモリ使用量は徐々に増加するが、時点Ｔ２ではメモリ使用容量は低下する。これはメモリ１０７から記録媒体１０９へのデータ転送処理が終了したことでメモリ１０７内に１枚目の符号化データ分だけ容量の空きができたことを表している。図７の例でも前述の図５の例と同様に、メモリ１０７から記録媒体１０９へのデータ転送は、実際には１枚目のフレームがメモリ１０７に記憶された時点Ｔ１から始まっている。また、図７の例では、説明を分かりやすくするために、時点Ｔ２のデータ転送完了のタイミングで、メモリ使用量が１枚目の符号化データ分だけ空くようなイメージで折れ線７０２が描かれている。
【００６２】
また、図７のタイムチャート７０１は、エントロピー符号化部１０５に対して入力されるデータのタイミングを表している。この図７の例の場合、連写撮影の開始直後はメモリ１０７の容量に余裕があるため、前述した第１の動作モードにより、連写撮影による各フレームのプレーンデータがエントロピー符号化部１０５に入力されてエントロピー符号化が行われる。このため、図７の入力データＩＮ０やＩＮ１は、プレーン変換部１０２からのプレーンデータであって、周波数変換処理及び量子化処理が行われていないデータである。
【００６３】
一方、図７のグラフ７００の時点Ｔｘは、折れ線７０２で示されるメモリ１０７の使用容量が、所定の閾値Ｔｈ以上になったタイミングを表している。本実施形態では、メモリ１０７の使用容量が所定の閾値Ｔｈ以上になった場合、時点Ｔｘの後で少なくとも１フレーム分に相当する時点Ｔ１２からＴ１３の間は、第２の動作モードに設定される。これにより、時点Ｔ１２からＴ１３までの間は、周波数変換部１０３による周波数変換処理後のサブバンドデータが、エントロピー符号化部１０５への入力データＩＮ１２となされる。したがって、このときのエントロピー符号化部１０５では、サブバンド毎の変換係数データがエントロピー符号化され、それらサブバンド毎の符号化データが、メモリＩ／Ｆ部１０６を介してメモリ１０７に記憶される。また、エントロピー符号化部１０５による符号化で発生した、サブバンド毎の発生符号量の情報は、量子化部１０４に送られて内部の記憶素子に記憶される。
【００６４】
本実施形態において、時点Ｔ１２の次のフレームの時点Ｔ１３では、第３の動作モードが設定される。これにより、時点Ｔ１３のフレームでは、周波数変換部１０３による周波数変換処理後のサブバンドデータを更に量子化部１０４で量子化処理した後の量子化データが、エントロピー符号化部１０５への入力データＩＮ１３となされる。このとき、量子化部１０４の内部の記憶素子には、時点Ｔ１２からＴ１３までの間で行われたサブバンド毎の符号化により得られた、サブバンド毎の発生符号量の情報が記憶されている。したがって、量子化部１０４は、時点Ｔ１３のフレームに対しては、１フレーム前に得られているサブバンド毎の発生符号量の情報を参照した、サブバンド毎の量子化ステップ値を決定することができる。そして、量子化部１０４においてサブバンド毎の量子化ステップ値を用いて量子化処理が行われた後の量子化データ（ＩＮ１３）が、エントロピー符号化部１０５により符号化される。このサブバンド毎の符号化データは、メモリＩ／Ｆ部１０６を介してメモリ１０７に記憶される。また、時点Ｔ１３のフレームについて、エントロピー符号化部１０５による符号化で発生したサブバンド毎の発生符号量の情報は、量子化部１０４にフィードバックされて内部の記憶素子に記憶される。なお、発生符号量の情報は制御部１１０が保持するようにしてもよく、この場合、制御部１１０が発生符号量の情報に基づいて量子化部１０４の量子化ステップ値を決定してもよい。
【００６５】
以下、時点Ｔ１３以降の各フレームについても同様に、それぞれ１フレーム前のサブバンド毎の発生符号量を基に量子化ステップ値が決定されて量子化が行われてからエントロピー符号化が行われることになる。そして、例えば時点Ｔ２０で連写撮影が終了したとすると、メモリ１０７に残っている各フレームの符号化データが全て読み出されて無くなる時点Ｔ２９まで、メモリ１０７から記録媒体１０９へのデータ転送が行われる。
【００６６】
以上のように、本実施形態の撮像装置１００は、可能な限りロスレス符号化を行って高画質の画像を記録可能としている。そして、本実施形態の撮像装置１００は、メモリ１０７の使用容量が閾値Ｔｈ以上になってロスレス符号化の継続が困難になった場合、ロッシー符号化に切り替えることでメモリの圧迫を回避しつつ、符号化方式の切り替えによる画質劣化を低減可能とする。また、ロスレス符号化からロッシー符号化への切り替えの際には、少なくとも１フレーム分の画像に対して周波数変換処理によるサブバンドデータの符号化処理が行われ、その際のサブバンド毎の発生符号量の情報が記憶される。そして、次のフレームでは、周波数変換処理によるサブバンドデータに対する量子化処理が行われるが、その量子化の際には、１フレーム前の符号化の際の発生符号量を参照して量子化ステップ値が決定される。これにより、符号化方式が切り替えられた後の量子化処理では、サブバンド毎の発生符号量を参照した最適な量子化ステップ値を用いた量子化が可能となり、符号化方式の切り替わりの際の画質劣化を低減可能となる。
【００６７】
＜第２の実施形態＞
図８は、第２の実施形態の撮像装置８００の概略構成を示す図である。
本実施形態の撮像装置８００は、撮像部８０１、プレーン変換部８０２、周波数変換部８０３、量子化部８０４、エントロピー符号化部８０５、メモリＩ／Ｆ部８０６、メモリ８０７、記録処理部８０８、記録媒体８０９、制御部８１０、ＭＵＸ８１１を有する。図８の撮像装置８００において、前述した図１の撮像装置１００と同一の構成についての説明は省略する。
【００６８】
図８に示す第２の実施形態の撮像装置８００は、記録処理部８０８と制御部８１０の動作が、図１の撮像装置１００の記録処理部１０８と制御部１１０とは異なる。これら記録処理部８０８と制御部８１０の動作の詳細については後述する。以下、第２の実施形態の撮像装置８００において、前述した第１の実施形態の撮像装置１００とは異なる部分についてのみ説明する。
【００６９】
例えば、図８には図示していない各種処理部や撮像装置１００に接続された外部装置等により、メモリ８０７に対して多数のアクセスが発生するような場合には、メモリ８０７からのデータ読み出し速度が低下する。ここで、例えば、メモリ８０７に対し、連写撮影等による各フレームの符号化データの書き込みが行われている状態で、メモリ８０７のデータ読み出し速度が低下すると、メモリ８０７の容量が圧迫されることになる。
【００７０】
図９（ａ）は、連写撮影等による各フレームの符号化データをメモリ８０７に一時的に記憶した後、記録媒体８０９に記録する際、メモリ８０７の読み出し速度が低下した場合の、メモリ８０７の使用容量の遷移例を示す図である。図９（ａ）の例において、符号化されてメモリ８０７に記憶される符号化データの単位時間当たりの符号量は、メモリ８０７から記録媒体８０９へ転送される単位時間当たりの転送データ量を超えているとする。また、図９（ａ）の遷移例において、メモリＩ／Ｆ部８０６は、メモリ８０７に対する符号化データの書き込みと読み出しについて、読み出しよりも書き込みの優先度を高くするように設定されているとする。
【００７１】
図９（ａ）のグラフ９００の横軸は時間を示し、縦軸はメモリ８０７の容量を示しており、折れ線９０２がメモリ８０７の使用容量の遷移を表している。図９（ａ）のグラフ９００の横軸の各目盛は、連写撮影により１枚のフレームが撮影され、そのフレームのデータが符号化されてメモリ８０７に記憶される時間を示している。図９（ａ）中の時点Ｔ０，Ｔ１，〜，Ｔ１２，・・・は、図７の例と同様、撮影開始タイミング以降の各フレームの符号化データがメモリ８０７に記憶されたタイミングを示している。図９（ａ）の遷移例の場合、前述の図７の例よりもメモリ８０７の読み出し速度が低下しているため、時点Ｔ０〜Ｔ４までの間ではメモリ使用量が徐々に増加している。そして、図９（ａ）の遷移例の場合、時点Ｔ４において、メモリ８０７から記録媒体８０９へ１枚目のフレームの符号化データの転送処理が終了したことで、メモリ８０７内に１フレームの符号化データ分だけ容量の空きができたことを表している。なお、図９（ａ）の例でも前述の図７の例と同様に、メモリ８０７から記録媒体８０９へのデータ転送は、実際には１枚目のフレームの符号化データがメモリ８０７に記憶された時点Ｔ１から始まっている。
【００７２】
図９（ａ）のタイムチャート９０１は、図７の例と同様に、エントロピー符号化部８０５に対して入力されるデータのタイミングを表している。連写撮影の開始後でメモリ８０７の使用容量に余裕がある期間は前述同様に第１の動作モードとなされるため、図９（ａ）の入力データＩＮ０やＩＮ１は、周波数変換処理及び量子化処理が行われていないプレーンデータである。
【００７３】
図９（ａ）のグラフ９００の時点Ｔｘは、折れ線９０２で示すメモリ８０７の使用容量が、予め設定されている所定の閾値Ｔｈ以上になったタイミングを表している。第２の実施形態においても第１の実施形態と同様、メモリ８０７の使用容量が所定の閾値Ｔｈ以上になった場合、時点Ｔｘの後の時点Ｔ８からＴ９の間は、第２の動作モードに設定される。これにより、時点Ｔ８からＴ９の間は、周波数変換部８０３による周波数変換処理後のサブバンドデータが、エントロピー符号化部８０５への入力データＩＮ８となされる。このときのエントロピー符号化部８０５では、サブバンド毎の変換係数データが符号化され、それらサブバンド毎の符号化データがメモリＩ／Ｆ部８０６を介してメモリ８０７に記憶される。また、エントロピー符号化部８０５による符号化で発生した、サブバンド毎の発生符号量の情報は、量子化部８０４の内部の記憶素子に記憶される。
【００７４】
第２の実施形態においても第１の実施形態と同様に、時点Ｔ８の次のフレームの時点Ｔ９では、第３の動作モードが設定される。これにより、時点Ｔ９のフレームでは、周波数変換処理後のサブバンドデータを更に量子化処理した後の量子化データが、エントロピー符号化部８０５への入力データＩＮ９となされる。またこのとき、量子化部８０４は、時点Ｔ９のフレームに対しては、時点Ｔ８〜Ｔ９の間の第２の動作モードの際に得られたサブバンド毎の発生符号量の情報を参照してサブバンド毎の量子化ステップ値を決定する。そして、量子化部８０４においてサブバンド毎の量子化ステップ値を用いて量子化処理が行われた後の量子化データ（ＩＮ９の量子化データ）はエントロピー符号化部８０５により符号化され、そのサブバンド毎の符号化データがメモリ８０７に記憶される。これ以降は第３の動作モードが継続される。
【００７５】
ここで、図９（ａ）の遷移例の場合、第３の動作モードによる符号化を行って発生符号量を抑えたとしても、メモリ８０７の読み出し速度が低下しているため、例えば時点Ｔ１２においてメモリ８０７の使用容量が最大容量に達してしまう可能性がある。この場合、例えば量子化部８０４の量子化ステップ値を、発生符号量が大幅に少なくなるような値にして量子化を行わせることにより、メモリ８０７が最大容量に達しないように制御することが考えられる。しかしながら、発生符号量が大幅に少なくなるような量子化ステップ値による量子化を行うと、画質が急激に劣化してしまうようになる。
【００７６】
そこで、第２の実施形態では、メモリ８０７のデータ転送速度に応じて、メモリ使用容量に対する所定の閾値Ｔｈを制御することにより、メモリ８０７の使用容量が最大容量に達してしまうのを防ぐとともに、画質の急激な劣化をも防止可能としている。
【００７７】
第２の実施形態の撮像装置８００において、記録処理部８０８は、メモリ８０７からデータが読み出されて記録媒体８０９に記録される際のデータ転送速度を求める。例えば、記録処理部８０８は、メモリＩ／Ｆ部８０６によるメモリ８０７の符号化データ読み出し開始時間と、メモリ８０７の符号化データ読み出し完了時間との差分により、メモリ８０７のデータ読み出し際の単位時間当たりの転送量を推定する。また例えば、記録処理部８０８は、メモリＩ／Ｆ部８０６によるメモリ８０７のデータ書き込み量と読み出し量との比により、メモリ８０７のデータ読み出しの際の単位時間当たりの転送量を推定してもよい。このような単位時間当たりの転送量の情報は、メモリ８０７から読み出されて記録媒体８０９に記録される際のデータ転送速度を示す情報として、制御部８１０に送られる。制御部８１０は、記録処理部８０８から受け取ったデータ転送速度の情報に基づいて、所定の閾値Ｔｈを変更する。具体的には、メモリ使用容量に対する閾値Ｔｈは、データ転送速度が遅くなればなるほど下げられるように変更される。
【００７８】
なお、データ転送速度に応じた閾値の変更は、一例として、複数のデータ転送速度と複数の閾値との対応テーブルを参照するような手法を用いることで実現可能である。例えば、制御部８１０は、異なる複数のデータ転送速度と複数の閾値との対応テーブルを内部の記憶素子等に保持しており、記録処理部８０８から供給されたデータ転送速度に応じた閾値を対応テーブルから読み出すことで、閾値を変更する。もちろん対応テーブルを参照する手法は一例であり、この例に限定されるものではなく、データ転送速度に応じた閾値を演算により求めるようにしてもよい。
【００７９】
図９（ｂ）は、メモリ８０７のデータ転送速度が低下していることで、図９（ａ）で説明した所定の閾値Ｔｈが、閾値Ｔｈ１のように低い値に変更された例を示す図である。図９（ｂ）のグラフ９２０及び折れ線９２２とタイムチャート９２１は、前述した図９（ａ）のグラフ９００及び折れ線９０２とタイムチャート９０１と同様に表されているものでるため、それらの詳細な説明は省略する。
【００８０】
図９（ｂ）の例の場合、閾値Ｔｈ１は図９（ａ）の閾値Ｔｈよりも低い値に変更されているため、その閾値Ｔｈ１をメモリ８０７の使用容量が超える時点Ｔｘは、図９（ａ）の例よりも時間軸上で前になる。図９（ｂ）の例の場合、メモリ８０７の使用容量が所定の閾値Ｔｈ１以上になるのは時点Ｔ６とＴ７の間であり、このため第１の動作モードから第２の動作モードへの切り替えは時点Ｔ７で行われる。したがって、時点Ｔ７からＴ８の間は、周波数変換処理後のサブバンドデータが、エントロピー符号化部８０５への入力データＩＮ７となされる。
【００８１】
そして、図９（ｂ）の例の場合、第２の動作モードから第３の動作モードへの切り替えは、時点Ｔ７の次のフレームの時点Ｔ８において行われる。これにより、時点Ｔ８のフレームでは、周波数変換処理及び量子化処理が行われ、その量子化データがエントロピー符号化部８０５への入力データＩＮ８となされる。これ以降は第３の動作モードが継続されることになる。
【００８２】
図９（ｂ）の例の場合、図９（ａ）の閾値Ｔｈよりも低い閾値Ｔｈ１に変更されているため、第１の動作モードから第２の動作モードへの遷移、更には第３の動作モードへの遷移が、メモリ８０７の使用容量が少ない（空き容量が多い）段階で行われる。すなわち、メモリ８０７に十分な空き容量が残っている早い段階で、第３の動作モードへの切り替えが行われるため、メモリ８０７の読み出し速度が低下していたとしても、メモリ８０７の使用容量が最大容量に達してしまう可能性が低くなる。したがって、第３の動作モードにおいて、量子化部８０４の量子化ステップ値を、発生符号量が大幅に少なくなるような値にしなくてもよくなり、その結果、画質が急激に劣化するような事態になることを防止可能となる。
【００８３】
以上説明したように、第２の実施形態においては、メモリ８０７へのアクセスが多く、メモリ８０７のデータ転送速度が遅くなる場合でも、可能な限りロスレス符号化を行って高画質の画像を記録可能としている。また、第１の実施形態と同様に、第２の実施形態の撮像装置８００は、メモリ８０７の使用容量が閾値以上になった場合には、ロッシー符号化に切り替えることでメモリの圧迫を回避しつつ、符号化方式の切り替えによる画質劣化を低減可能としている。また、符号化方式の切り替えの際には、前述同様、少なくとも１フレーム分の画像に対して周波数変換処理によるサブバンドデータの符号化を行い、次のフレームでは、１フレーム前の符号化の際の発生符号量を参照して量子化ステップ値が決定される。これにより、符号化方式の切り替わりの際の画質劣化が低減される。更に、第２の実施形態の撮像装置８００は、データ転送速度に応じて閾値Ｔｈを変更可能となされており、メモリ８０７のデータ転送速度が遅くなる場合には、メモリ使用容量に対する閾値Ｔｈを、より低い閾値Ｔｈ１に変更する。したがって、第２の実施形態によれば、メモリ８０７の使用容量が最大容量に達してしまうのを防ぐことができるとともに、動作モードを第３の動作モードに遷移させた後に画質が急激に劣化するのを防止可能である。
【００８４】
なお、第２の実施形態では、メモリ８０７の単位時間当たりのデータ転送量（転送速度）に応じて閾値を変更する例を挙げたが、制御部８１０は、例えば記録媒体８０９におけるデータ転送処理性能（記録処理能力）を基に閾値を制御してもよい。この例の場合、メモリ８０７へのアクセス量が多い場合ではなく、記録処理部８０８の転送速度が高く維持されている場合において効果を発揮する。例えば、制御部８１０は、記録媒体８０９が高速な転送処理能力を有する場合には閾値を高く設定し、記録媒体８０９が低速な転送処理能力を有する場合には閾値を低く設定するように制御する。また、制御部８１０は、メモリ８０７のデータ転送速度と記録媒体８０９のデータ転送処理性能の両者を基に閾値を制御してもよい。例えば、制御部８１０は、メモリ８０７のデータ転送速度と記録媒体８０９のデータ転送処理性能の両者が高ければ閾値を高くし、何れか一方でも低ければ閾値を低く制御するようにしてもよい。また例えば、制御部８１０は、メモリ８０７のデータ転送速度と記録媒体８０９のデータ転送処理性能の何れか一方が低い場合であっても、他方によりメモリ８０７の圧迫を回避できるのであれば、閾値を低く制御しないようにしてもよい。
【００８５】
また、図８の例では、記録処理部８０８が制御部８１０による制御を受けていない構成となっているが、記録処理部８０８も制御部８１０により制御される構成であってもよい。この場合、制御部８１０が前述したデータ転送速度や記録処理部８０８の単位時間当たりの読み出し速度を管理して、前述のように閾値の制御を行う。また、前述した発生符号量の情報は制御部８１０が保持していてもよく、制御部８１０が発生符号量を基に量子化部８０４の量子化ステップ値を決定してもよい。
【００８６】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８７】
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００８８】
１００，８００  撮像装置、１０１，８０１  撮像部、１０２，８０２  プレーン変換部、１０３，８０３  周波数変換部、１０４，８０４  量子化部、１０５，８０５  エントロピー符号化部、１０６，８０６  メモリＩ／Ｆ部、１０７，８０７  メモリ、１０８，８０８  記録処理部、１０９，８０９  記録媒体、１１０，８１０  制御部、１１１，８１１  ＭＵＸ
【図１】
2018011120.tif 000003
【図２】
2018011120.tif 000004
【図３】
2018011120.tif 000005
【図４】
2018011120.tif 000006
【図５】
2018011120.tif 000007
【図６】
2018011120.tif 000008
【図７】
2018011120.tif 000009
【図８】
2018011120.tif 000010
【図９】
2018011120.tif 000011