(57)【要約】【課題】画像処理フレームレートが動画記録フレームレートより低い場合に、高画質な圧縮動画を生成できない。【解決手段】動画記録フレームレートよりも低いフレームレートで画像処理が行われた画像データを用いて、動画記録フレームレートで動画を記録できるようにするとともに、画像処理フレームレートと動画記録フレームレートとに基づいて、フレーム内圧縮間隔を決定する。また、動画圧縮時の目標符号量、フレーム内圧縮用目標符号量、および、フレーム間圧縮用目標符号量を算出し、フレーム内圧縮間隔およびフレーム内圧縮用目標符号量に基づいて、フレーム内圧縮を行い、フレーム間圧縮用目標符号量に基づいて、フレーム間圧縮を行う。また、動画圧縮時の目標符号量と、動画圧縮を行った後の符号量との差分を、フレーム間圧縮用目標符号量に加算した値と、所定の最大符号量とを比較して小さい方の値を、新たなフレーム間圧縮用目標符号量に設定する。【選択図】図１２
2013046205.tif 000002
【特許請求の範囲】
【請求項１】
単一の画像データを用いて圧縮するフレーム内圧縮と、複数の画像データを用いて圧縮するフレーム間圧縮とを混在して行うことにより、連続した画像データを圧縮した動画データを生成する動画圧縮装置において、
動画記録時のフレームレートよりも低いフレームレートで画像処理が行われた画像データを用いて補完画像データを生成することによって、前記動画記録時のフレームレートで動画を記録できるようにするフレームレート変換部と、
画像処理時のフレームレートと、前記動画記録時のフレームレートとに基づいて、前記フレーム内圧縮を行う間隔を決定するフレーム内圧縮間隔決定部と、
動画圧縮時の目標符号量、前記フレーム内圧縮を行うためのフレーム内圧縮用目標符号量、および、前記フレーム間圧縮を行うためのフレーム間圧縮用目標符号量を算出する目標符号量算出部と、
前記フレーム内圧縮間隔決定部で決定された間隔、および、前記フレーム内圧縮用目標符号量に基づいて、前記フレーム内圧縮を行うフレーム内圧縮部と、
前記フレーム間圧縮用目標符号量に基づいて、前記フレーム間圧縮を行うフレーム間圧縮部と、
前記動画圧縮時の目標符号量と、実際に動画圧縮を行った後の符号量との差分を、前記フレーム間圧縮用目標符号量に加算した値と、所定の最大符号量とを比較して小さい方の値を、新たなフレーム間圧縮用目標符号量に設定するフレーム間圧縮用目標符号量更新部と、
を備えることを特徴とする動画圧縮装置。
【請求項２】
圧縮対象の画像が前記フレーム間圧縮部で用いる他の画像と異なる画像であるか否かを判定する画像更新判定部をさらに備え、
前記フレーム間圧縮用目標符号量更新部は、前記画像更新判定部によって、前記圧縮を行う対象の画像が前記フレーム間圧縮部で用いる他の画像と異なると判定されると、前記新たなフレーム間圧縮用目標符号量を設定する処理を行う、
ことを特徴とする請求項１に記載の動画圧縮装置。
【請求項３】
前記フレーム間圧縮用目標符号量更新部は、前記画像更新判定部によって、圧縮対象の画像が前記フレーム間圧縮部で用いる他の画像と同じと判定されると、前記フレーム間圧縮用目標符号量を更新する処理を行わない、
ことを特徴とする請求項２に記載の動画圧縮装置。
【請求項４】
前記動画圧縮時の目標符号量と、実際に動画圧縮を行った後の符号量との差分を、前記フレーム内圧縮用目標符号量に加算した値と、所定の最大符号量とを比較して小さい方の値を、新たなフレーム内圧縮用目標符号量に設定するフレーム内圧縮用目標符号量更新部をさらに備える、
ことを特徴とする請求項１から請求項３のいずれか一項に記載の動画圧縮装置。
【請求項５】
前記画像処理時のフレームレートは、設定された画像処理モードに応じた値である、
ことを特徴とする請求項１から請求項４のいずれか一項に記載の動画圧縮装置。
【請求項６】
前記画像処理時のフレームレートは、動画の滑らかさを優先する動画記録モードおよび画質を優先する動画記録モードを少なくとも含む複数の動画記録モードの中から設定された動画記録モードに応じた値である、
ことを特徴とする請求項１から請求項４のいずれか一項に記載の動画圧縮装置。
【請求項７】
前記フレーム間圧縮用目標符号量更新部は、前記フレーム間圧縮を行った後の符号量が前記目標符号量を超えた場合、再度フレーム間圧縮を行った後の符号量が前記フレーム間圧縮用目標符号量以下となるように、新たなフレーム内圧縮用目標符号量を設定する、
ことを特徴とする請求項１から請求項６のいずれか一項に記載の動画圧縮装置。
【請求項８】
前記フレーム内圧縮間隔決定部は、前記画像更新判定部によって、圧縮対象の画像が直前に圧縮を行った画像と異なると判定された場合に、前記フレーム内圧縮が行われるように、前記フレーム内圧縮を行う間隔を決定する、
ことを特徴とする請求項２または請求項３に記載の動画圧縮装置。
【請求項９】
前記フレーム間圧縮部で前記圧縮対象の画像を圧縮する際に用いる前記他の画像は、直前のフレームで圧縮した画像である、
ことを特徴とする請求項２または請求項３に記載の動画圧縮装置。
【請求項１０】
単一の画像データを用いて圧縮するフレーム内圧縮と、複数の画像データを用いて圧縮するフレーム間圧縮とを混在して行うことにより、連続した画像データを圧縮した動画データを生成する動画圧縮方法において、
動画記録時のフレームレートよりも低いフレームレートで画像処理が行われた画像データを用いて補完画像データを生成することによって、前記動画記録時のフレームレートで動画を記録できるようにするステップと、
画像処理時のフレームレートと、前記動画記録時のフレームレートとに基づいて、前記フレーム内圧縮を行う間隔を決定するステップと、
動画圧縮時の目標符号量、前記フレーム内圧縮を行うためのフレーム内圧縮用目標符号量、および、前記フレーム間圧縮を行うためのフレーム間圧縮用目標符号量を算出するステップと、
前記フレーム内圧縮を行う間隔、および、前記フレーム内圧縮用目標符号量に基づいて、前記フレーム内圧縮を行うステップと、
前記フレーム間圧縮用目標符号量に基づいて、前記フレーム間圧縮を行うステップと、
前記動画圧縮時の目標符号量と、前記フレーム内圧縮および前記フレーム間圧縮を行った後の符号量との差分を、前記フレーム間圧縮用目標符号量に加算した値と、所定の最大符号量とを比較して小さい方の値を、新たなフレーム間圧縮用目標符号量に設定するステップと、
を含むことを特徴とする動画圧縮方法。
【請求項１１】
単一の画像データを用いて圧縮するフレーム内圧縮と、複数の画像データを用いて圧縮するフレーム間圧縮とを混在して行うことにより、連続した画像データを圧縮した動画データを生成するための動画圧縮プログラムであって、
動画記録時のフレームレートよりも低いフレームレートで画像処理が行われた画像データを用いて補完画像データを生成することによって、前記動画記録時のフレームレートで動画を記録できるようにするステップと、
画像処理時のフレームレートと、前記動画記録時のフレームレートとに基づいて、前記フレーム内圧縮を行う間隔を決定するステップと、
動画圧縮時の目標符号量、前記フレーム内圧縮を行うためのフレーム内圧縮用目標符号量、および、前記フレーム間圧縮を行うためのフレーム間圧縮用目標符号量を算出するステップと、
前記フレーム内圧縮を行う間隔、および、前記フレーム内圧縮用目標符号量に基づいて、前記フレーム内圧縮を行うステップと、
前記フレーム間圧縮用目標符号量に基づいて、前記フレーム間圧縮を行うステップと、
前記動画圧縮時の目標符号量と、前記フレーム内圧縮および前記フレーム間圧縮を行った後の符号量との差分を、前記フレーム間圧縮用目標符号量に加算した値と、所定の最大符号量とを比較して小さい方の値を、新たなフレーム間圧縮用目標符号量に設定するステップと、
をコンピュータに実行させるための動画圧縮プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画の圧縮技術に関する。
【背景技術】
【０００２】
Ｈ．２６４などの動画圧縮方式では、圧縮するフレームの画像データのみを用いて圧縮するフレーム内圧縮と、複数のフレームの画像データを用いて圧縮するフレーム間圧縮がある。フレーム間圧縮は、画像間の相関性を利用して圧縮を行うため、フレーム内圧縮に比べて高圧縮が期待できるが、圧縮歪の蓄積等により画質劣化が起こりやすい。一方、フレーム内圧縮は、圧縮率は低めであるが、圧縮歪の蓄積による画質劣化は起きない。そのため、Ｈ．２６４などでは、フレーム間圧縮を基本として、一定間隔でフレーム内圧縮を行うことにより、高圧縮かつ高画質の動画圧縮を実現している。
【０００３】
一般に、フレーム内圧縮として、フレーム間予測を用いずに符号化されるフレームは、Ｉフレーム（Intra-coded Frame）と呼ばれる。また、フレーム間圧縮として、前方向予測のみを用いて符号化されるフレームは、Ｐフレーム（Predicted Frame）と呼ばれ、前方向予測、後方向予測、両方向予測のうちいずれかを選択して符号化されるフレームは、Ｂフレーム（Bi-directional Predicted Frame）と呼ばれる。
【０００４】
また、動画圧縮では、同じ圧縮パラメータを用いて圧縮を行っても、シーンやノイズの程度により、圧縮率が変化してしまう。そのため、圧縮率を制御する符号量制御を行うのが一般的である。例えば、特許文献１では、目標符号量を補正し、補正による符号量の差分を蓄積していくことにより、平均符号量をある程度一定に保ちながら、動画像の高画質化を図る技術が開示されている。
【０００５】
一方、人間が見ているシーンと同様な自然な色再現の動画を記録するモード以外に、フィルムのような粒状感（ノイズ感）があり、ハイコントラストなモノクロ動画を記録するモード（特許文献２参照）や、周辺が減光された動画を生成するモード（特許文献３参照）などの特殊効果モードでの撮影が可能なカメラが知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１３０８１０号公報
【特許文献２】特開２０１０−６２８３６号公報
【特許文献３】特開２０１０−７４２４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
動画を記録する場合、記録する方式によって予め決められたフレームレート（例えば、３０ｆｐｓ）で記録する必要がある。また、記録した動画データの編集などを考慮すると、３０ｆｐｓや２４ｆｐｓ、６０ｆｐｓなど、特定のフレームレートで記録することが好ましい場合もある。
【０００８】
上述した特殊効果モードで動画を記録する場合、例えば、上記のモノクロ動画を記録する場合には、ノイズパターンの重畳およびハイコントラストへのコントラスト変換などを行う必要があるため、画像処理に時間を要してしまうことがある。その結果、記録する動画ファイルのフレームレートよりも低いフレームレートでしか記録する画像を生成できない場合もある。また、特殊効果により、意図的に低いフレームレートで記録することで、独特の雰囲気を生むこともある。例えば、上記の周辺が減光された動画を記録する場合、低いフレームレート（例えば、２ｆｐｓ）の方が３０ｆｐｓなどの高いフレームレートに比べて、古びた印象のある動画になる。
【０００９】
このような、記録する動画のフレームレートより低いフレームレートで記録する画像を更新するような場合、従来の符号量制御方法では、十分な画質を維持することができないという問題が生じる。特に、デジタルカメラでは、撮影と記録を同時に行う必要があるため、１つのフレームを圧縮するための時間について制約が大きく、演算コストの大きな符号量制御方法や、圧縮とパラメータ変更を繰り返し行う符号量制御を行うことができない。
【００１０】
本発明は、画像処理時のフレームレートが動画記録時のフレームレートより低い場合でも、高画質かつ高圧縮率で動画を圧縮する技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明のある態様に係る動画圧縮装置は、単一の画像データを用いて圧縮するフレーム内圧縮と、複数の画像データを用いて圧縮するフレーム間圧縮とを混在して行うことにより、連続した画像データを圧縮した動画データを生成する動画圧縮装置であって、動画記録時のフレームレートよりも低いフレームレートで画像処理が行われた画像データを用いて補完画像データを生成することによって、前記動画記録時のフレームレートで動画を記録できるようにするフレームレート変換部と、画像処理時のフレームレートと、前記動画記録時のフレームレートとに基づいて、前記フレーム内圧縮を行う間隔を決定するフレーム内圧縮間隔決定部と、動画圧縮時の目標符号量、前記フレーム内圧縮を行うためのフレーム内圧縮用目標符号量、および、前記フレーム間圧縮を行うためのフレーム間圧縮用目標符号量を算出する目標符号量算出部と、前記フレーム内圧縮間隔決定部で決定された間隔、および、前記フレーム内圧縮用目標符号量に基づいて、前記フレーム内圧縮を行うフレーム内圧縮部と、前記フレーム間圧縮用目標符号量に基づいて、前記フレーム間圧縮を行うフレーム間圧縮部と、前記動画圧縮時の目標符号量と、実際に動画を行った後の符号量との差分を、前記フレーム間圧縮用目標符号量に加算した値と、所定の最大符号量とを比較して小さい方の値を、新たなフレーム間圧縮用目標符号量に設定するフレーム間圧縮用目標符号量更新部と、を備えることを特徴とする。
【００１２】
本発明の別の態様に係る動画圧縮方法は、単一の画像データを用いて圧縮するフレーム内圧縮と、複数の画像データを用いて圧縮するフレーム間圧縮とを混在して行うことにより、連続した画像データを圧縮した動画データを生成する動画圧縮方法であって、動画記録時のフレームレートよりも低いフレームレートで画像処理が行われた画像データを用いて補完画像データを生成することによって、前記動画記録時のフレームレートで動画を記録できるようにするステップと、画像処理時のフレームレートと、前記動画記録時のフレームレートとに基づいて、前記フレーム内圧縮を行う間隔を決定するステップと、動画圧縮時の目標符号量、前記フレーム内圧縮を行うためのフレーム内圧縮用目標符号量、および、前記フレーム間圧縮を行うためのフレーム間圧縮用目標符号量を算出するステップと、前記フレーム内圧縮を行う間隔、および、前記フレーム内圧縮用目標符号量に基づいて、前記フレーム内圧縮を行うステップと、前記フレーム間圧縮用目標符号量に基づいて、前記フレーム間圧縮を行うステップと、前記動画圧縮時の目標符号量と、実際に動画圧縮を行った後の符号量との差分を、前記フレーム間圧縮用目標符号量に加算した値と、所定の最大符号量とを比較して小さい方の値を、新たなフレーム間圧縮用目標符号量に設定するステップと、を含むことを特徴とする。
【００１３】
本発明のさらに別の態様に係る動画圧縮プログラムは、単一の画像データを用いて圧縮するフレーム内圧縮と、複数の画像データを用いて圧縮するフレーム間圧縮とを混在して行うことにより、連続した画像データを圧縮した動画データを生成するための動画圧縮プログラムであって、動画記録時のフレームレートよりも低いフレームレートで画像処理が行われた画像データを用いて補完画像データを生成することによって、前記動画記録時のフレームレートで動画を記録できるようにするステップと、画像処理時のフレームレートと、前記動画記録時のフレームレートとに基づいて、前記フレーム内圧縮を行う間隔を決定するステップと、動画圧縮時の目標符号量、前記フレーム内圧縮を行うためのフレーム内圧縮用目標符号量、および、前記フレーム間圧縮を行うためのフレーム間圧縮用目標符号量を算出するステップと、前記フレーム内圧縮を行う間隔、および、前記フレーム内圧縮用目標符号量に基づいて、前記フレーム内圧縮を行うステップと、前記フレーム間圧縮用目標符号量に基づいて、前記フレーム間圧縮を行うステップと、前記動画圧縮時の目標符号量と、実際に動画圧縮を行った後の符号量との差分を、前記フレーム間圧縮用目標符号量に加算した値と、所定の最大符号量とを比較して小さい方の値を、新たなフレーム間圧縮用目標符号量に設定するステップと、をコンピュータに実行させるための動画圧縮プログラムである。
【発明の効果】
【００１４】
本発明によれば、画像処理時のフレームレートが動画記録時のフレームレートより低い場合に、フレーム内圧縮を行う間隔を適切に決定することができ、また、目標符号量と実際の符号量との差分を、フレーム間圧縮用目標符号量に加算するので、高画質の圧縮動画を生成することができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態における動画圧縮装置を適用したデジタルスチルカメラの構成を示すブロック図である。
【図２】第１の実施形態における動画圧縮装置を適用したデジタルスチルカメラで行われるメインの処理フローを示すフローチャートである。
【図３】画像処理の詳細を示すフローチャートである。
【図４】特殊画像処理の詳細を示すフローチャートである。
【図５】特殊効果フィルタの種類に応じた効果概要、特殊画像処理、フレームレート、および、フレーム内圧縮間隔の一例を示す図である。
【図６】動画記録処理の詳細を示すフローチャートである。
【図７】平均符号量算出処理の詳細を示すフローチャートである。
【図８】フレーム内圧縮目標符号量算出処理の詳細を示すフローチャートである。
【図９】フレーム間圧縮目標符号量算出処理の詳細を示すフローチャートである。
【図１０】フレーム内圧縮処理の詳細を示すフローチャートである。
【図１１】フレーム間圧縮処理の詳細を示すフローチャートである。
【図１２】図１２（ａ）は、第１の実施形態における動画圧縮装置によって動画圧縮が行われた場合の符号量の変化を示す図であり、図１２（ｂ）は、従来の動画圧縮装置によって動画圧縮が行われた場合の符号量の変化を示す図である。
【図１３】直前の画像と異なる画像を記録する全てのタイミングにおいて、フレーム内圧縮を行う場合の符号量変化を示す図である。
【図１４】フレーム内圧縮回数を増やした場合の符号量変化を示す図である。
【図１５】第３の実施形態における動画圧縮装置によって行われる動画記録処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【００１６】
＜第１の実施形態＞
図１は、第１の実施形態における動画圧縮装置を適用したデジタルスチルカメラの構成を示すブロック図である。図１に示すデジタルスチルカメラは、カメラ本体１と交換式レンズ２から構成される。
【００１７】
交換式レンズ２は、レンズ１０１０と、Ｆｌａｓｈメモリ１０１１と、マイクロコンピュータ１０１２と、ドライバ１０１３と、絞り１０１４と、を有している。交換式レンズ２は、Ｉ／Ｆ９９９を介して、カメラ本体１と通信可能に接続されている。
【００１８】
カメラ本体１は、メカシャッター１０１と、撮像素子１０２と、アナログ処理部１０３と、アナログ/デジタル変換部１０４（以下、Ａ/Ｄ変換部１０４）と、バス１０５と、ＳＤＲＡＭ１０６と、画像処理部１０７と、ＡＥ処理部１０８と、ＡＦ処理部１０９と、静止画・動画圧縮伸張部１１０と、メモリインターフェース１１１（以下、メモリＩ/Ｆ１１１）と、記録媒体１１２と、ＬＣＤドライバ１１３と、ＬＣＤ１１４と、マイクロコンピュータ１１５と、操作部１１６と、Ｆｌａｓｈメモリ１１７と、を有している。
【００１９】
レンズ１０１０は、被写体の光学像を撮像素子１０２に集光させる。レンズ１０１０は、単焦点レンズであってもよいし、ズームレンズであってもよい。
【００２０】
マイクロコンピュータ１０１２は、Ｉ／Ｆ９９９、Ｆｌａｓｈメモリ１０１１、および、ドライバ１０１３と接続されていて、Ｆｌａｓｈメモリ１０１１に記憶されている情報の読み出し・書き込みを行うとともに、ドライバ１０１３を制御する。Ｆｌａｓｈメモリ１０１１に記憶されている情報には、交換式レンズ２の焦点距離のデータなどが含まれる。
【００２１】
マイクロコンピュータ１０１２は、さらに、Ｉ／Ｆ９９９を介して、マイクロコンピュータ１１５と通信することができ、様々な情報をマイクロコンピュータ１１５へ送信し、また、マイクロコンピュータ１１５から絞り値等の情報を受信する。
【００２２】
ドライバ１０１３は、マイクロコンピュータ１０１２の指示を受けて、レンズ１０１０を駆動させて、焦点距離やフォーカス位置の変更を行うとともに、絞り１０１４を駆動する。絞り１０１４は、レンズ１０１０の近傍に設けられ、被写体の光量を調節する。
【００２３】
メカシャッター１０１は、マイクロコンピュータ１１５の指示を受けて駆動し、撮像素子１０２に被写体を露光する時間を制御する。
【００２４】
撮像素子１０２は、各画素を構成するフォトダイオードの前面に、ベイヤー配列のカラーフィルタが配置された撮像素子である。ベイヤー配列は、水平方向にＲ（赤色）画素とＧ（Ｇｒ：緑色）画素が交互に配置されたラインと、Ｇ（Ｇｂ：緑色）画素とＢ（青色）画素が交互に配置されたラインとを有し、さらにその２つのラインを垂直方向にも交互に配置することで構成されている。この撮像素子１０２は、レンズ１０１０により集光された光を、画素を構成するフォトダイオードで受光して光電変換し、光の量を電荷量としてアナログ処理部１０３へ出力する。なお、撮像素子１０２は、ＣＭＯＳ方式のものでもＣＣＤ方式のものでも良い。また、ベイヤー配列以外のカラー撮像素子を用いてもよい。
【００２５】
アナログ処理部１０３は、撮像素子１０２から読み出された電気信号（アナログ画像信号）に対し、リセットノイズ等を低減した上で波形整形を行い、さらに目的の明るさとなるように、ゲインアップを行う。Ａ/Ｄ変換部１０４は、アナログ処理部１０３から出力されたアナログ画像信号をデジタル画像信号（以後、画像データという）に変換する。
【００２６】
バス１０５は、デジタルカメラ内部で発生した各種データをデジタルカメラ内の各部に転送するための転送路である。バス１０５は、Ａ/Ｄ変換部１０４と、ＳＤＲＡＭ１０６と、画像処理部１０７と、ＡＥ処理部１０８と、ＡＦ処理部１０９と、静止画・動画圧縮伸張部１１０と、メモリＩ/Ｆ１１１と、ＬＣＤドライバ１１３と、マイクロコンピュータ１１５に接続されている。
【００２７】
Ａ/Ｄ変換部１０４から出力される画像データは、バス１０５を介して一旦ＳＤＲＡＭ１０６に記憶される。ＳＤＲＡＭ１０６は、Ａ/Ｄ変換部１０４において得られた画像データや、画像処理部１０７、静止画・動画圧縮伸張部１１０において処理された画像データ等の各種データが一時的に記憶される記憶部である。
【００２８】
画像処理部１０７は、基本画像処理部１０７１と、特殊画像処理部１０７２とを含み、ＳＤＲＡＭ１０６から読み出した画像データに対して様々な画像処理を施す。画像処理部１０７によって各処理が行われた後の画像データは、ＳＤＲＡＭ１０６に記憶される。
【００２９】
基本画像処理部１０７１は、いずれも既知の、オプティカルブラック減算処理、ホワイトバランス補正処理、同時化処理、カラーマトリックス演算処理、ガンマ変換処理、エッジ強調処理、ノイズ低減処理などの基本的な画像処理を行う。
【００３０】
特殊画像処理部１０７２は、シェーディング付加処理、周辺ぼかし処理、ソフトフォーカス処理、ノイズ付加処理、クロスフィルター処理、周辺輝度持ち上げ処理などの特殊画像処理を行う。特殊画像処理のそれぞれの処理の詳細は後述する。
【００３１】
ＡＥ処理部１０８は、画像データから被写体輝度を算出する。被写体輝度を算出するためのデータは、専用の測光センサの出力であってもよい。ＡＦ処理部１０９は、画像データから高周波成分の信号を取り出し、ＡＦ（Auto Focus）積算処理により、合焦評価値を取得する。
【００３２】
静止画・動画圧縮伸張部１１０は、符号量制御部１１０１と圧縮伸張部１１０２とを備える。静止画・動画圧縮伸張部１１０は、静止画像データの記録時には、ＳＤＲＡＭ１０６から画像データを読み出し、読み出した画像データをＪＰＥＧ圧縮方式に従って圧縮して、圧縮したＪＰＥＧ画像データを、ＳＤＲＡＭ１０６に一旦記憶する。マイクロコンピュータ１１５は、ＳＤＲＡＭ１０６に記憶されたＪＰＥＧ画像データに対して、ＪＰＥＧファイルを構成するために必要なＪＰＥＧヘッダを付加してＪＰＥＧファイルを作成し、作成したＪＰＥＧファイルを、メモリＩ/Ｆ１１１を介して記録媒体１１２に記録する。
【００３３】
静止画・動画圧縮伸張部１１０は、また、動画データの記録時には、ＳＤＲＡＭ１０６から動画データを読み出し、読み出した動画データを、例えば、Ｈ．２６４方式に従って、単一の画像データを用いて圧縮するフレーム内圧縮もしくは複数の画像データを用いて圧縮するフレーム間圧縮を行って、圧縮動画データを生成する。
【００３４】
符号量制御部１１０１は、フレーム内圧縮を行うためのフレーム内圧縮用目標符号量と、フレーム間圧縮を行うためのフレーム間圧縮用目標符号量を算出する。圧縮伸張部１１０２は、符号量制御部１１０１で算出されるフレーム内圧縮用目標符号量に基づいて、フレーム内圧縮を行うとともに、フレーム間圧縮用目標符号量に基づいて、フレーム間圧縮を行う。
【００３５】
静止画・動画圧縮伸張部１１０は、さらに、マイクロコンピュータ１１５からの指令に基づいて、圧縮データを伸張する処理を行う。
【００３６】
記録媒体１１２は、例えばカメラ本体１に着脱可能なメモリカードからなる記録媒体であるが、これに限定されるものではない。
【００３７】
ＬＣＤドライバ１１３は、ＬＣＤ１１４に静止画または動画を表示させる。ＬＣＤ１１４への画像の表示には、撮影直後の画像データを短時間だけ表示するレックビュー表示、記録媒体１１２に記録されたＪＰＥＧファイルの再生表示、および、ライブビュー表示を含む動画の表示が含まれる。記録媒体１１２に記録された圧縮データを再生する場合、静止画・動画圧縮伸張部１１０は、記録媒体１１２に記録されている圧縮データを読み出して伸張処理を施した上で、展開したデータを一旦ＳＤＲＡＭ１０６に記憶させる。ＬＣＤドライバ１１３は、伸張されたデータをＳＤＲＡＭ１０６から読み出し、読み出したデータを映像信号へ変換した後でＬＣＤ１１４へ出力して表示を行う。
【００３８】
制御部としての機能を有するマイクロコンピュータ１１５は、デジタルカメラ本体１の各種シーケンスを統括的に制御する。マイクロコンピュータ１１５には、操作部１１６およびＦｌａｓｈメモリ１１７が接続されている。
【００３９】
操作部１１６は、電源ボタン、レリーズボタン、動画ボタン、再生ボタン、各種入力キー等の操作部材である。ユーザによって、操作部１１６の何れかの操作部材が操作されることにより、マイクロコンピュータ１１５は、ユーザの操作に応じた各種シーケンスを実行する。電源ボタンは、当該デジタルカメラの電源のオン／オフ指示を行うための操作部材である。電源ボタンが押されると、当該デジタルカメラの電源がオンとなる。再度、電源ボタンが押されると当該デジタルカメラの電源はオフとなる。レリーズボタンは、ファーストレリーズスイッチとセカンドレリーズスイッチの２段スイッチを有して構成されている。レリーズボタンが半押しされて、ファーストレリーズスイッチがオンされた場合に、マイクロコンピュータ１１５は、ＡＥ処理やＡＦ処理等の撮影準備シーケンスを行う。また、レリーズボタンが全押しされて、セカンドレリーズスイッチがオンされた場合に、マイクロコンピュータ１１５は、撮影シーケンスを実行して撮影を行う。
【００４０】
再生ボタンは、撮影により得られた静止画または動画をＬＣＤ１１４に表示させるためのボタンである。
【００４１】
動画ボタンは、動画の撮影を開始させ、また終了させるためのボタンである。初期状態では動画未撮影状態であるので、この状態で動画ボタンを押すと動画の撮影を開始し、動画撮影中に動画ボタンを押すと、動画の撮影を終了する。従って、動画ボタンを押すたびに、動画の撮影開始と終了を交互に繰り返す。
【００４２】
Ｆｌａｓｈメモリ１１７は、ホワイトバランスモードに応じたホワイトバランスゲインやカラーマトリクス係数、ローパスフィルタ係数等のデジタルカメラの動作に必要な各種パラメータ、銀塩粒子による粒状感に似せた粒状パターンのノイズデータ、および、デジタルスチルカメラを特定するための製造番号などを記憶している。また、Ｆｌａｓｈメモリ１１７は、マイクロコンピュータ１１５にて実行する各種プログラムも記憶している。マイクロコンピュータ１１５は、Ｆｌａｓｈメモリ１１７に記憶されているプログラムに従い、またＦｌａｓｈメモリ１１７から各種シーケンスに必要なパラメータを読み込み、各処理を実行する。
【００４３】
図２は、第１の実施形態における動画圧縮装置を適用したデジタルスチルカメラで行われるメインの処理フローを示すフローチャートである。ユーザにより電源ボタンが押されて、デジタルスチルカメラの電源がオンになると、マイクロコンピュータ１１５は、ステップＳ２０１の処理を開始する。
【００４４】
ステップＳ２０１では、記録中フラグをオフに初期化する。記録中フラグは、動画撮影中にオン、動画を撮影していない時にオフとなるフラグである。
【００４５】
ステップＳ２０２では、ユーザによって、再生ボタンが操作されたか否かを判定する。再生ボタンが操作されたと判定するとステップＳ２０３に進み、操作されていないと判定すると、ステップＳ２０４に進む。
【００４６】
ステップＳ２０３では、記録媒体１１２に記録されている静止画および動画のうち、ユーザによって選択された静止画または動画を再生する処理を行って、ステップＳ２０２に戻る。
【００４７】
ステップＳ２０４では、ユーザによって、メニューボタンが押されたか否かを判定する。メニューボタンが押されたと判定するとステップＳ２０５に進み、メニューボタンが押されていないと判定すると、ステップＳ２０６に進む。
【００４８】
ユーザによってメニューボタンが押されると、カメラの設定を変更するメニューをＬＣＤ１１４に表示する。カメラの設定としては、例えば、「仕上がり」、「静止画記録モード」、「画質」がある。仕上がりの設定としては、自然な色合いで表現する「Ｎａｔｕｒａｌ」、被写体の輪郭をやや強調して、色合いが見た目に鮮やかに映るように表現する「Ｖｉｖｉｄ」、階調の変化を緩やかにする「Ｆｌａｔ」、特殊効果処理を施すための「特殊効果フィルタ」がある。静止画記録モードの設定としては、「ＪＰＥＧ記録」、「ＪＰＥＧ＋ＲＡＷ記録」、「ＲＡＷ記録」がある。画質の設定としては、画質の良い（圧縮率の低い）「Ｆｉｎｅ」、通常の画質の「Ｎｏｒｍａｌ」がある。
【００４９】
ステップＳ２０５では、ユーザによるカメラの設定変更操作に基づいて、カメラの設定を変更して、ステップＳ２０２に戻る。
【００５０】
ステップＳ２０６では、ユーザによって、動画ボタンが操作されたか否かを判定する。動画ボタンが操作されたと判定するとステップＳ２０７に進み、操作されていないと判定すると、ステップＳ２１２に進む。
【００５１】
ステップＳ２０７では、記録中フラグを反転させて、ステップＳ２０８に進む。前述したように、動画ボタンは押されるたびに、動画撮影開始と終了を交互に繰り返すので、このステップでは、記録中フラグがオフであった場合にはオンに、またオンであった場合にはオフに、記録中フラグを反転させる。
【００５２】
ステップＳ２０８では、動画記録中であるか否か、すなわち、記録中フラグがオンであるか否かを判定する。記録中フラグがオンであると判定すると、ステップＳ２０９に進み、記録中フラグがオフであると判定すると、ステップＳ２１２に進む。ステップＳ２０９では、記録用に新しい動画ファイルを生成する。
【００５３】
ステップＳ２１０では、動画の圧縮処理に必要な平均符号量（目標符号量）を算出する。平均符号量を算出する処理の詳細については、図７に示すフローチャートを用いて後述する。
【００５４】
ステップＳ２１１では、動画ファイルにおけるフレーム数をカウントするカウンタを０にリセットする。
【００５５】
ステップＳ２１２では、動画記録中であるか否か、すなわち、記録中フラグがオンであるか否かを判定する。記録中フラグがオフであると判定すると、ステップＳ２１３に進む。
【００５６】
ステップＳ２１３では、ユーザによってレリーズボタンが半押しされて、ファーストレリーズスイッチがオンされたか否かを判定する。ファーストレリーズスイッチがオンされたと判定すると、ステップＳ２１４に進む。
【００５７】
ステップＳ２１４では、ＡＥ処理およびＡＦ処理を行う。ＡＥ処理では、ＡＥ処理部１０８において、被写体輝度を算出し、算出した被写体輝度に基づいて、Ｆｌａｓｈメモリ１１７に記憶されている露出条件決定テーブルを参照することにより、撮影時のＩＳＯ感度、絞り、およびシャッター速を決定する。ＡＦ処理では、まず、ＡＦ処理部１０９において、合焦評価値を算出する。マイクロコンピュータ１１５は、合焦評価値に基づいて、レンズ１０１０を駆動させる指令をドライバ１０１３に出す。ドライバ１０１３は、この指令に基づいて、レンズ１０１０を駆動させて、焦点距離やフォーカス位置の変更を行う。ＡＦ処理は、公知の位相差ＡＦ方式でもよい。
【００５８】
ステップＳ２１３において、ファーストレリーズスイッチがオンされなかった場合、または、ファーストレリーズスイッチがオンされたままの状態の場合には、ステップＳ２１５に進む。ステップＳ２１５では、ユーザによってレリーズボタンが全押しされて、セカンドレリーズスイッチがオンされたか否かを判定する。セカンドレリーズスイッチがオンされたと判定するとステップＳ２１６に進み、セカンドレリーズスイッチがオンされていないと判定すると、ステップＳ２１９に進む。
【００５９】
ステップＳ２１６では、メカシャッター１０１による静止画撮影を行う。
【００６０】
ステップＳ２１７では、ステップＳ２１６の静止画撮影により得られた画像データに対して、画像処理を施す。画像処理の詳細については、図３に示すフローチャートを用いて後述する。
【００６１】
ステップＳ２１８では、画像処理が施された画像データに対して、静止画・動画圧縮伸張部１１０によって、ＪＰＥＧ圧縮が行われた後、生成されたＪＰＥＧファイルを、メモリＩ/Ｆ１１１を介して記録媒体１１２に記録する。
【００６２】
ステップＳ２１２において、動画記録中フラグがオフの場合、または、ステップＳ２１５において、セカンドレリーズスイッチがオンされないと判定すると、ステップＳ２１９に進む。
【００６３】
ステップＳ２１９では、動画撮影／ライブビュー表示のためにＡＥ処理を行う。
【００６４】
ステップＳ２２０では、いわゆる電子シャッターを制御して撮影を行う。
【００６５】
ステップＳ２２１では、ステップＳ２２０の撮影により得られた画像データに対して、画像処理を施す。画像処理の詳細については、図３に示すフローチャートを用いて後述する。
【００６６】
ステップＳ２２２では、ＬＣＤドライバ１１３により、画像処理後の画像データをＬＣＤ１１４に表示させる。この表示は、いわゆるライブビュー表示である。
【００６７】
ステップＳ２２３では、動画記録中であるか否か、すなわち、記録中フラグがオンであるか否かを判定する。記録中フラグがオンであると判定すると、ステップＳ２２４に進み、オフであると判定すると、ステップＳ２２５に進む。
【００６８】
ステップＳ２２４では、ステップＳ２２１で画像処理が施された画像データ（動画データ）を記録媒体１１２に記録する。動画データの記録処理の詳細については、図６に示すフローチャートを用いて後述する。
【００６９】
ステップＳ２２５では、デジタルスチルカメラの電源がオフされたか否かを判定する。電源がオフされていないと判定すると、ステップＳ２０２に戻り、上述した処理を行う。一方、ユーザにより電源ボタンが押されて、電源がオフされると、フローチャートの処理を終了する。
【００７０】
図３は、図２に示すフローチャートのステップＳ２１７の処理、および、ステップＳ２２１の処理、すなわち、画像処理の詳細を示すフローチャートである。ステップＳ３１０からステップＳ３７０までの処理は、基本画像処理部１０７１によって行われ、ステップＳ３９０の処理は、特殊画像処理部１０７２によって行われる。
【００７１】
ステップＳ３１０では、撮影により得られた画像データから、撮像時に得られたＯＢ値を減算するＯＢ減算処理を施す。
【００７２】
ステップＳ３２０では、ＯＢ減算処理が施された画像データに対して、ホワイトバランスモードに応じたホワイトバランスゲインを乗じて、ホワイトバランスを補正する処理を行う。なお、ホワイトバランスモードは、ユーザが操作部１１６に含まれる入力キーを操作することによって設定することができる。マイクロコンピュータ１１５は、ユーザによる操作部１１６の操作に基づいて、ホワイトバランスモードを設定する。また、デジタルスチルカメラがホワイトバランスを自動的に調整するオートホワイトバランス機能を備えている場合、マイクロコンピュータ１１５は、撮影時の光源に応じたホワイトバランスゲインを自動的に算出する。
【００７３】
ステップＳ３３０では、ホワイトバランス補正処理が施された画像データに対して、同時化処理を施すことにより、１画素あたりＲ、Ｇ、Ｂの情報からなる画像データを生成する。
【００７４】
ステップＳ３４０では、同時化処理が施された画像データに対して、ホワイトバランスモードに応じたカラーマトリクス係数を乗じるカラーマトリクス演算を行う。
【００７５】
ステップＳ３５０では、カラーマトリクス演算が行われた画像データに対して、ガンマ補正処理、および、画像の色味を変化させる色再現処理を行う。
【００７６】
ステップＳ３６０では、ガンマ補正処理および色再現処理が行われた画像データに対して、エッジ強調処理を行う。
【００７７】
ステップＳ３７０では、エッジ強調処理が行われた画像データに対して、ノイズを低減する処理を行う。ノイズ低減処理は、コアリングパラメータに基づいたコアリング処理、または、ノイズ低減パラメータに基づいて、高周波を低減するフィルタを用いた処理を行う。
【００７８】
ステップＳ３８０では、ノイズ低減処理が行われた画像データに対して、特殊画像処理を施すか否かを判定する。この判定は、デジタルスチルカメラの仕上がりの設定が特殊効果フィルタモードに設定されているか否かに基づいて行う。デジタルスチルカメラが特殊効果フィルタモードに設定されている場合には、ステップＳ３９０に進み、特殊効果フィルタモードに設定されていない場合には、図３に示すフローチャートの処理を終了する。
【００７９】
ステップＳ３９０では、ノイズ低減処理が行われた画像データに対して、特殊画像処理を施す。特殊画像処理の詳細については、図４に示すフローチャートを用いて後述する。
【００８０】
図４は、図３に示すフローチャートのステップＳ３９０の処理、すなわち、特殊画像処理の詳細を示すフローチャートである。ステップＳ４１０からステップＳ４６５までの処理は、特殊画像処理部１０７２によって行われる。
【００８１】
ユーザは、デジタルスチルカメラを特殊効果フィルタモードに設定した場合、さらに、特殊効果フィルタの種類を選択することができる。
【００８２】
図５は、ユーザが選択可能な特殊効果フィルタの種類の一例を示す図である。ユーザが選択可能な特殊効果フィルタとして、「ファンタジックフォーカス」、「ファンタジックフォーカス＋スターライト」、「ポップアート」、「ポップアート＋スターライト」、「ポップアート＋ピンホール」、「ポップアート＋ホワイトエッジ」、「トイフォト」、「ラフモノクローム」、「ジオラマ」がある。図５では、各特殊効果フィルタに応じて、フィルタの効果の概要、対応する特殊画像処理、フレームレート（ｆｐｓ）、フレーム内圧縮間隔（フレーム）が定義されている。
【００８３】
例えば、特殊効果フィルタとして、「ファンタジックフォーカス」が選択されると、特殊画像処理部１０７２は、特殊画像処理として、ソフトフォーカス処理を行う。また、「ファンタジックフォーカス＋スターライト」が選択されると、特殊画像処理部１０７２は、特殊画像処理として、ソフトフォーカス処理およびクロスフィルター処理を行う。
【００８４】
ステップＳ４１０では、ユーザによって選択された特殊効果フィルタに基づいて、クロスフィルター処理を行うか否かを判定する。クロスフィルター処理を行うと判定するとステップＳ４１５に進み、クロスフィルター処理を行わないと判定すると、ステップＳ４２０に進む。
【００８５】
ステップＳ４１５では、画像の高輝度部分を検出し、検出した高輝度部分に光条を描画するクロスフィルター処理を行う。
【００８６】
ステップＳＳ４２０では、ユーザによって選択された特殊効果フィルタに基づいて、ソフトフォーカス処理を行うか否かを判定する。ソフトフォーカス処理を行うと判定するとステップＳ４２５に進み、ソフトフォーカス処理を行わないと判定すると、ステップＳ４３０に進む。
【００８７】
ステップＳ４２５では、画像全体にぼかし処理を行い、ぼかす前の画像とぼかした後の画像を一定の割合（例えば、元画像：ぼかし画像＝３：２）で合成して、やわらかな雰囲気の画像を生成するソフトフォーカス処理を行う。
【００８８】
ステップＳ４３０では、ユーザによって選択された特殊効果フィルタに基づいて、ノイズ付加処理を行うか否かを判定する。ノイズ付加処理を行うと判定するとステップＳ４３５に進み、ノイズ付加処理を行わないと判定すると、ステップＳ４４０に進む。
【００８９】
ステップＳ４３５では、予め作成したノイズパターンを画像に付加するノイズ付加処理を行う。
【００９０】
ステップＳ４４０では、ユーザによって選択された特殊効果フィルタに基づいて、シェーディング処理を行うか否かを判定する。シェーディング処理を行うと判定するとステップＳ４４５に進み、シェーディング処理を行わないと判定すると、ステップＳ４５０に進む。
【００９１】
ステップＳ４４５では、画像の中心からの距離が遠い位置ほど輝度が低くなるように、画像の中心からの距離に応じた係数を輝度信号に乗じるシェーディング処理を行う。
【００９２】
ステップＳ４５０では、ユーザによって選択された特殊効果フィルタに基づいて、周辺輝度持ち上げ処理を行うか否かを判定する。周辺輝度持ち上げ処理を行うと判定するとステップＳ４５５に進み、周辺輝度持ち上げ処理を行わないと判定すると、ステップＳ４６０に進む。
【００９３】
ステップＳ４５５では、画像の中心からの距離が遠い位置ほど白く表現されるように画素値を変更する周辺輝度持ち上げ処理を行う。
【００９４】
ステップＳ４６０では、ユーザによって選択された特殊効果フィルタに基づいて、周辺ぼかし処理を行うか否かを判定する。周辺ぼかし処理を行うと判定するとステップＳ４６５に進み、周辺ぼかし処理を行わないと判定すると、図４に示すフローチャートの処理を終了する。
【００９５】
ステップＳ４６５では、画像の中心からの距離が遠い位置ほど、ボケる度合いが大きくなるように、画像の位置に応じてローパス係数を変更しながらローパスフィルタ処理を行う周辺ぼかし処理を行う。なお、画像の上下方向の外側の位置だけ、または左右方向の外側の位置だけぼかすようにしてもよい。
【００９６】
図６は、図２に示すフローチャートのステップＳ２２４の処理、すなわち、動画記録処理の詳細を示すフローチャートである。
【００９７】
ステップＳ５１０では、記録回数を算出する。本実施の形態における動画圧縮装置では、特殊画像処理のフレームレートが動画記録時のフレームレートより低い場合に、同じ画像を複数回記録することにより、動画記録時のフレームレートと同じにする。従って、本ステップでは、特殊画像処理を施すか否か、および、特殊画像処理を施す場合には、特殊効果フィルタの種類に応じて、記録回数を算出する。
【００９８】
ここでは、特殊画像処理を施さない場合の記録回数を１とする。また、特殊画像処理を施す場合には、動画記録時のフレームレートを、特殊効果フィルタの種類に応じて定められたフレームレートで除算することによって得られる値を記録回数とする。ここでは、動画記録時のフレームレートを３０（ｆｐｓ）とする。
【００９９】
上述した図５において、特殊効果フィルタの種類とフレームレートの関係について定義している。例えば、特殊効果フィルタの種類がトイフォトの場合には、フレームレートが２（ｆｐｓ）である。従って、記録回数は、動画記録時のフレームレート３０（ｆｐｓ）を、トイフォトのフレームレート２（ｆｐｓ）で除算することによって得られる値１５となる。
【０１００】
ステップＳ５１５では、フレーム内圧縮を行う間隔（以下、フレーム内圧縮間隔と呼ぶ）を算出する。ここでは、ステップＳ５１０で算出した記録回数が１の場合、すなわち、３０ｆｐｓで画像処理する場合には、フレーム内圧縮間隔を１５フレームとする。ステップＳ５１０で算出した記録回数が１以外の場合には、特殊効果フィルタの種類に応じて定められているフレーム内圧縮間隔（図５参照）を用いる。特殊効果フィルタの種類に応じたフレーム内圧縮間隔は、少なくとも、直前の画像と同一の画像を記録する場合にはフレーム内圧縮が行われないように設定しておく。すなわち、フレーム内圧縮が行われるのは、直前の画像と異なる画像を記録する時である。ただし、直前の画像と異なる画像を記録する全てのタイミングで、フレーム内圧縮が行われなくてもよい。
【０１０１】
ステップＳ５２０では、同一の画像を記録する回数をカウントするカウンタｉを０にセットする。
【０１０２】
ステップＳ５２５では、フレーム内圧縮を行うか否かを判定する。動画ファイルのフレーム数をカウントするフレームカウンタが０の場合、および、フレームカウンタがステップＳ５１５で算出したフレーム内圧縮間隔で割り切れる場合（フレームカウンタがフレーム内圧縮間隔の倍数の場合）には、フレーム内圧縮を行うと判定して、ステップＳ５３０に進み、それ以外の場合には、フレーム間圧縮を行うと判定して、ステップＳ５４０に進む。
【０１０３】
ステップＳ５３０では、フレーム内圧縮で用いる目標符号量を算出する。フレーム内圧縮で用いる目標符号量を算出する処理の詳細については、図８に示すフローチャートを用いて後述する。
【０１０４】
ステップＳ５３５では、ステップＳ５３０で算出した目標符号量に基づいて、フレーム内圧縮処理を行う。フレーム内圧縮処理の詳細については、図１０に示すフローチャートを用いて後述する。
【０１０５】
ステップＳ５４０では、フレーム間圧縮で用いる目標符号量を算出する。フレーム間圧縮で用いる目標符号量を算出する処理の詳細については、図９に示すフローチャートを用いて後述する。
【０１０６】
ステップＳ５４５では、ステップＳ５４０で算出した目標符号量に基づいて、フレーム間圧縮処理を行う。フレーム間圧縮処理の詳細については、図１１に示すフローチャートを用いて後述する。
【０１０７】
ステップＳ５５０では、ステップＳ５３５で行ったフレーム内圧縮処理後の画像データまたは、ステップＳ５４５で行ったフレーム間圧縮後の画像データを一時的にＳＤＲＡＭ１０６に記憶させる処理を行う。一時的に記憶された画像データは、その後、記録媒体１１２に記録される。
【０１０８】
ステップＳ５５５では、フレームカウンタをインクリメント（１を加算）する。
【０１０９】
ステップＳ５６０では、カウンタｉに１を加算する。
【０１１０】
ステップＳ５６５では、カウンタｉが記録回数よりも小さいか否かを判定する。カウンタｉが記録回数よりも小さいと判定するとステップＳ５２５に戻り、カウンタｉが記録回数以上であると判定すると、図６に示すフローチャートの処理を終了する。
【０１１１】
図７は、図２に示すフローチャートのステップＳ２１０の処理、すなわち、平均符号量算出処理の詳細を示すフローチャートである。ステップＳ７１０〜ステップＳ７４０までの処理は、符号量制御部１１０１によって行われる。
【０１１２】
ステップＳ７１０では、平均符号量（目標符号量）を決定する。ここでは、カメラの設定に応じて、平均符号量を決定する。例えば、カメラの画質の設定が「Ｆｉｎｅ」に設定されている場合には、平均符号量を２２Ｍｂｐｓ（ｍｅｇａｂｉｔ  ｐｅｒ  ｓｅｃｏｎｄ）とし、「Ｎｏｒｍａｌ」に設定されている場合には、平均符号量を１７Ｍｂｐｓとする。カメラの設定と、平均符号量との関係は、予め決めておけばよい。
【０１１３】
ステップＳ７２０では、フレーム内圧縮用の平均符号量（フレーム内圧縮用目標符号量）を算出する。ここでは、ステップＳ７１０で決定した平均符号量に、所定の値（例えば、０．４）を乗じた値を、さらに、１秒間あたりのフレーム内圧縮フレーム数で除算した値を、フレーム内圧縮用の平均符号量とする。例えば、ステップＳ７１０で決定した平均符号量が２２Ｍｂｐｓであり、特殊効果フィルタの種類がトイフォトの場合には、２２×０．４／２＝４．４Ｍｂｉｔとなる。
【０１１４】
ステップＳ７３０では、フレーム間圧縮用の平均符号量（フレーム間圧縮用目標符号量）を算出する。ここでは、ステップＳ７１０で決定した平均符号量に、（１−所定の値）を乗じた値を、さらに、１秒間あたりのフレーム間圧縮フレーム数で除算した値を、フレーム間圧縮用の平均符号量とする。例えば、ステップＳ７１０で決定した平均符号量が２２Ｍｂｐｓであり、所定の値が０．４で、特殊効果フィルタの種類がトイフォトの場合には、２２×０．６／２８＝０．４７Ｍｂｉｔとなる。
【０１１５】
ステップＳ７４０では、圧縮した動画データを記録する形式に応じた最大符号量を決定する（例えば、６Ｍｂｉｔ）。
【０１１６】
図８は、図６に示すフローチャートのステップＳ５３０の処理、すなわち、フレーム内圧縮目標符号量算出処理の詳細を示すフローチャートである。ステップＳ８１０〜ステップＳ８３０の処理は、符号量制御部１１０１によって行われる。
【０１１７】
ステップＳ８１０では、前の圧縮処理結果に基づいて、所定時間（例えば１秒間）における圧縮後の動画データの合計符号量を算出する。なお、１回目の圧縮処理時には、前の圧縮処理結果が存在しないので、例えば、所定の値を合計符号量として設定する。
【０１１８】
ステップＳ８２０では、所定時間（例えば１秒間）に、図７のステップＳ７１０で算出した平均符号量を乗算した値と、ステップＳ８１０で算出した所定時間の合計符号量との差分を算出する。例えば、記録フレームレートよりも画像を生成するフレームレートが低い場合には、同じ画像が繰り返しフレーム間圧縮される。その場合、前フレームと完全に一致したデータを圧縮するため、符号量は非常に小さくなる。例えば、動画の圧縮形式がＨ．２６４の場合には、圧縮時の最小サイズであるマクロブロック単位で、フレーム間圧縮時に参照しているフレームと同じデータであることを示す符号があり、データ量は非常に小さい。従って、所定時間に平均符号量を乗算した値と、ステップＳ８１０で算出した実際の合計符号量との差分は、正の値となる。
【０１１９】
ステップＳ８３０では、ステップＳ８２０で算出した差分に基づいて、フレーム内圧縮用目標符号量を算出する。具体的には、図７のステップＳ７２０で算出したフレーム内圧縮用の平均符号量に、ステップＳ８２０で算出した差分を加算した符号量と、図７のステップＳ７４０で算出した最大符号量とを比較して、小さい方の値を、フレーム内圧縮用目標符号量とする。
【０１２０】
図９は、図６に示すフローチャートのステップＳ５４０の処理、すなわち、フレーム間圧縮目標符号量算出処理の詳細を示すフローチャートである。ステップＳ９１０〜ステップＳ９５０の処理は、符号量制御部１１０１によって行われる。
【０１２１】
ステップＳ９１０では、圧縮対象の画像が更新されたか否かを判定する。ここでは、図６に示すフローチャートで説明したカウンタｉが０か否かを判断する。カウンタｉが０の場合には、圧縮対象の画像が更新されたと判定してステップＳ９２０に進み、カウンタｉが０ではない場合には、圧縮対象の画像が更新されていない（圧縮対象の画像が直前の画像と同一）と判定して、ステップＳ９５０に進む。
【０１２２】
ステップＳ９２０では、前の圧縮処理結果に基づいて、所定時間（例えば１秒間）における圧縮後の動画データの合計符号量を算出する。この処理は、図８に示すフローチャートのステップＳ８１０の処理と同じである。
【０１２３】
ステップＳ９３０では、所定時間（例えば１秒間）に、図７のステップＳ７１０で算出した平均符号量を乗算した値と、ステップＳ９２０で算出した所定時間の合計符号量との差分を算出する。この処理は、図８に示すフローチャートのステップＳ８２０の処理と同様である。
【０１２４】
ステップＳ９４０では、ステップＳ９３０で算出した差分に基づいて、フレーム間圧縮用目標符号量を算出する。具体的には、図７のステップＳ７３０で算出したフレーム間圧縮用の平均符号量に、ステップＳ９３０で算出した差分を加算した符号量と、図７のステップＳ７４０で算出した最大符号量とを比較して、小さい方の値を、フレーム間圧縮用目標符号量とする。
【０１２５】
ステップＳ９５０では、図７のステップＳ７３０で算出したフレーム間圧縮用の平均符号量を、フレーム間圧縮用目標符号量とする。これは、フレーム間圧縮を行う場合であって、かつ、同じ画像を繰り返し圧縮する場合、圧縮結果はフレーム間圧縮用の平均符号量よりも非常に小さい符号量となるからである。これにより、目標符号量の演算負荷を低減することができる。
【０１２６】
図１０は、図６に示すフローチャートのステップＳ５３５の処理、すなわち、フレーム内圧縮処理の詳細を示すフローチャートである。ステップＳ１０１０〜ステップＳ１０５０までの処理は、圧縮伸張部１１０２によって行われる。
【０１２７】
ステップＳ１０１０では、これまでのフレーム内圧縮結果に応じて、圧縮率を制御するパラメータ（例えば、量子化を行うための量子化係数や、圧縮前に適用するプレフィルターの係数など）を算出する。これは、既知の方法を用いて行うことができる。
【０１２８】
ステップＳ１０２０では、ステップＳ１０１０で算出したパラメータに基づいて、フレーム内圧縮処理を行う。この処理も既知の方法を用いて行うことができる。
【０１２９】
ステップＳ１０３０では、圧縮後の符号量が、図８に示すフローチャートのステップＳ８３０で算出したフレーム内圧縮用目標符号量以下であるか否かを判定する。圧縮後の符号量がフレーム内圧縮用目標符号量以下であると判定すると、図１０に示すフローチャートの処理を終了し、フレーム内圧縮用目標符号量より多いと判定すると、ステップＳ１０４０に進む。
【０１３０】
ステップＳ１０４０では、ステップＳ１０１０で算出した圧縮率を制御するパラメータを変更する。このとき、ハードウェアの処理時間の都合上、圧縮後の符号量が必ずフレーム内圧縮用目標符号量以下になるようなパラメータ（高圧縮になるパラメータ）に変更する。これは、圧縮後の符号量とフレーム内圧縮用目標符号量とに基づいて新たにパラメータを設定してもよいし、高圧縮となる所定のパラメータを設定してもよい。
【０１３１】
ステップＳ１０５０では、ステップＳ１０４０で変更したパラメータに基づいて、フレーム内圧縮処理を再度行う。すなわち、本実施形態では、１つの画像について圧縮を行う回数は２回までとする。
【０１３２】
図１１は、図６に示すフローチャートのステップＳ５４５の処理、すなわち、フレーム間圧縮処理の詳細を示すフローチャートである。ステップＳ１１１０〜ステップＳ１１５０までの処理は、圧縮伸張部１１０２によって行われる。
【０１３３】
ステップＳ１１１０では、これまでのフレーム間圧縮結果に応じて、圧縮率を制御するパラメータ（例えば、量子化を行うための量子化係数や、圧縮前に適用するプレフィルターの係数など）を算出する。このとき、圧縮対象の画像が更新された場合と、それ以外の場合とで、異なるパラメータを算出する。具体的には、画像が更新された場合、すなわち、図６に示すフローチャートで説明したカウンタｉが０の場合には、更新されたフレームのこれまでの圧縮結果を用いて、パラメータを算出する。また、画像が更新されていない場合、すなわち、カウンタｉが０ではない場合には、更新されたフレーム以外のフレームの圧縮結果を用いて、パラメータを算出する。ここで、画像が更新されていない場合、直前のフレームと同じフレームであることを示す符号が定義されている圧縮形式の場合には、その符号を圧縮結果として出力し、ステップＳ１１２０以後の処理は省略するようにしてもよい。
【０１３４】
ステップＳ１１２０では、ステップＳ１１１０で算出したパラメータに基づいて、フレーム間圧縮を行う。フレーム間圧縮は、既知の方法を用いて行うことができる。
【０１３５】
ステップＳ１１３０では、圧縮後の符号量が、図９に示すフローチャートのステップＳ９４０で算出したフレーム間圧縮用目標符号量以下であるか否かを判定する。圧縮後の符号量がフレーム間圧縮用目標符号量以下であると判定すると、図１１に示すフローチャートの処理を終了し、フレーム間圧縮用目標符号量より多いと判定すると、ステップＳ１１４０に進む。
【０１３６】
ステップＳ１１４０では、ステップＳ１１１０で算出した圧縮率を制御するパラメータを変更する。このとき、ハードウェアの処理時間の都合上、圧縮後の符号量が必ずフレーム間圧縮用目標符号量以下になるようなパラメータ（高圧縮になるパラメータ）に変更する。これは、圧縮後の符号量とフレーム間圧縮用目標符号量とに基づいて新たにパラメータを設定してもよいし、高圧縮となる所定のパラメータを設定してもよい。
【０１３７】
ステップＳ１１５０では、ステップＳ１１４０で変更したパラメータに基づいて、フレーム間圧縮処理を再度行う。すなわち、本実施形態では、１つの画像について圧縮を行う回数は２回までとする。
【０１３８】
図１２（ａ）は、第１の実施形態における動画圧縮装置によって動画圧縮が行われた場合の符号量の変化を示す図であり、図１２（ｂ）は、従来の動画圧縮装置によって動画圧縮が行われた場合の符号量の変化を示す図である。図１２（ａ）および図１２（ｂ）において、フレーム番号が１のフレームは、記録された動画ファイルにおける最初のフレームを示している。動画記録のフレームレートは３０ｆｐｓ、画像作成のフレームレートは５ｆｐｓとする。また、図５に示すように、画像作成のフレームレートが５ｆｐｓの場合、フレーム内圧縮間隔は１２フレームである。
【０１３９】
図１２（ｂ）に示すように、従来の動画圧縮装置では、フレーム内圧縮を行う際の目標符号量、および、フレーム間圧縮を行う際の目標符号量をそれぞれ固定値としている。また、フレーム内圧縮を行う間隔も、画像処理時のフレームレートに関係なく、固定値としている。この場合、動画を記録するフレームレートよりも低いフレームレートで画像を生成して動画とすることを想定していないため、目標符号量が小さくなってしまい、全体的に画質が低下してしまう。また、圧縮対象の画像が直前のフレームと同じ画像であっても、フレーム内圧縮を行ってしまい、無駄な圧縮が行われる場合があった。
【０１４０】
これに対して、第１の実施形態における動画圧縮装置では、図１２（ａ）に示すように、繰り返して記録する同一フレームに対しては、フレーム間圧縮を行うので、符号量のロスを抑制することができる。また、繰り返して記録する同一フレームの圧縮後の符号量は小さくなるので、その余裕分を、画像が更新されて最初に圧縮するフレームに割り当てる。さらに、フレーム内圧縮は、画像が更新されるフレームに対して行う。これにより、高画質な圧縮動画を記録することができる。
【０１４１】
なお、直前の画像と異なる画像を記録する全てのタイミングで、フレーム内圧縮を行わなくてもよいと説明したが、直前の画像と異なる画像を記録する全てのタイミングにおいて、フレーム内圧縮を行うようにすることもできる。
【０１４２】
図１３は、直前の画像と異なる画像を記録する全てのタイミングにおいて、フレーム内圧縮を行う場合の符号量変化を示す図である。動画記録のフレームレートは３０ｆｐｓ、画像作成のフレームレートは２ｆｐｓとする。この場合、同一の画像を記録する記録回数は１５回（３０／２）となる。また、図５に示すように、画像作成のフレームレートが２ｆｐｓの場合、フレーム内圧縮間隔は１５フレームである。すなわち、直前の画像と異なる画像を記録する全てのタイミングにおいて、フレーム内圧縮が行われることになる。
【０１４３】
図１３に示す例では、１５フレームごとにフレーム内圧縮を行うが、画質向上のために、フレーム内圧縮の回数を増やすようにしてもよい。
【０１４４】
図１４は、フレーム内圧縮回数を増やした場合の符号量変化を示す図である。図１３に示す例と同様に、動画記録のフレームレートは３０ｆｐｓ、画像作成のフレームレートは２ｆｐｓとする。図１３に示す例では、１５フレームに１回、フレーム内圧縮を行っているが、図１４に示す例では、１５フレームに２回、フレーム内圧縮を行っている。これにより、圧縮動画の画質を向上させることができる。
【０１４５】
以上、第１の実施形態における動画圧縮装置は、単一の画像データを用いて圧縮するフレーム内圧縮と、複数の画像データを用いて圧縮するフレーム間圧縮とを混在して行うことにより、連続した画像データを圧縮した動画データを生成する。この動画圧縮装置において、動画記録時のフレームレートよりも低いフレームレートで画像処理が行われた画像データを用いて補完画像データを生成することによって、動画記録時のフレームレートで動画を記録できるようにする。また、画像処理時のフレームレートと、動画記録時のフレームレートとに基づいて、フレーム内圧縮を行う間隔を決定し、動画圧縮時の目標符号量、フレーム内圧縮を行うためのフレーム内圧縮用目標符号量、および、フレーム間圧縮を行うためのフレーム間圧縮用目標符号量を算出する。そして、決定したフレーム内圧縮間隔、および、フレーム内圧縮用目標符号量に基づいて、フレーム内圧縮を行うとともに、フレーム間圧縮用目標符号量に基づいて、フレーム間圧縮を行う。また、動画圧縮時の目標符号量と、実際に動画圧縮を行った後の符号量との差分を、フレーム間圧縮用目標符号量に加算した値と、所定の最大符号量とを比較して小さい方の値を、新たなフレーム間圧縮用目標符号量に設定する。これにより、フレーム内圧縮を行う間隔を適切に決定することができる。また、目標符号量と実際の符号量との差分を、フレーム間圧縮用目標符号量に加算するので、例えば、直前の画像と異なる画像を圧縮する際の目標符号量を大きくすることができ、高画質の圧縮動画を生成することができる。
【０１４６】
特に、圧縮対象の画像が直前に圧縮を行った画像と異なる場合に、目標符号量と実際の符号量との差分に基づいた新たなフレーム間圧縮用目標符号量を設定するので、画像が更新されない場合に比べて、画像が更新された場合の目標符号量を大きくして、高画質の圧縮動画を生成することができる。
【０１４７】
また、圧縮対象の画像が直前に圧縮を行った画像と同じと判定されると、動画圧縮時の目標符号量を、新たなフレーム間圧縮用目標符号量として設定する。繰り返して記録する同一フレームの圧縮後の符号量は、動画圧縮時の目標符号量よりも非常に小さい符号量となるので、新たにフレーム間圧縮用目標符号量を演算する演算負荷を低減することができる。
【０１４８】
また、第１の実施形態における動画圧縮装置では、動画圧縮時の目標符号量と、実際に動画圧縮を行った後の符号量との差分を、フレーム内圧縮用目標符号量に加算した値と、所定の最大符号量とを比較して小さい方の値を、新たなフレーム内圧縮用目標符号量に設定する。これにより、圧縮余裕量に基づいて、フレーム内圧縮の目標符号量を大きくすることができるので、高画質の圧縮動画を生成することができる。
【０１４９】
さらに、フレーム間圧縮を行った後の符号量が目標符号量を超えた場合、再度フレーム間圧縮を行った後の符号量がフレーム間圧縮用目標符号量以下となるように、新たなフレーム内圧縮用目標符号量を設定するので、最大で２回の圧縮処理により、目標符号量以下とすることができる。これにより、動画記録に要する時間が長くなるのを防ぐことができる。
【０１５０】
＜第２の実施形態＞
第１の実施形態における動画圧縮装置では、特殊効果フィルタの種類に応じて、同一のフレームを繰り返し記録する回数や、フレーム内圧縮用の目標符号量、フレーム間圧縮用の目標符号量等を算出して、フレーム内圧縮およびフレーム間圧縮を行った。第２の実施形態における動画圧縮装置では、動画記録モードの設定に応じて、同一のフレームを繰り返し記録する回数や、フレーム内圧縮用の目標符号量、フレーム間圧縮用の目標符号量等を算出して、フレーム内圧縮およびフレーム間圧縮を行う。
【０１５１】
動画記録モードは、動画の滑らかさを優先する記録モードと、画質を優先する記録モードとの間で、画像処理フレームレートを４段階で設定することができる。動画の滑らかさを優先する記録モードから、画質を優先する記録モードへと４段階で設定を切り替えていくと、画像処理フレームレートは、２４０ｆｐｓ、１２０ｆｐｓ、６０ｆｐｓ、３０ｆｐｓと変わる。
【０１５２】
第２の実施形態においても、第１の実施形態と同様に、画像処理フレームレートに応じて、同一のフレームを繰り返し記録する記録回数を算出し、フレーム内圧縮用の目標符号量およびフレーム間圧縮用の目標符号量を算出する。ただし、第２の実施形態では、動画記録時のフレームレートを２４０ｆｐｓとする。従って、画像処理フレームレートが２４０ｆｐｓ、１２０ｆｐｓ、６０ｆｐｓ、３０ｆｐｓのそれぞれに応じた記録回数は、１回（２４０／２４０）、２回（２４０／１２０）、４回（２４０／６０）、８回（２４０／３０）となる。フレーム内圧縮用の目標符号量およびフレーム間圧縮用の目標符号量の算出方法は、第１の実施形態と同様である。
【０１５３】
なお、動画記録モードは、撮影中、常に同じとしてもいいし、撮影中に切り替えてもよい。
【０１５４】
以上、第２の実施形態における動画圧縮装置によれば、特殊画像処理を行わない場合でも、動画記録モードに応じて、画像処理フレームレートを動画記録時のフレームレートよりも低くすることによって、第１の実施形態と同様の効果を得ることができる。すなわち、画像処理フレームレートを低くすることによって、同じ動画記録フレームレートでも、高画質な圧縮動画を記録することができる。
【０１５５】
＜第３の実施形態＞
第３の実施形態における動画圧縮装置が第１の実施形態における動画圧縮装置と異なるのは、動画記録時の処理である。
【０１５６】
図１５は、第３の実施形態における動画圧縮装置によって行われる動画記録処理の詳細を示すフローチャートである。図６に示すフローチャートの処理と同じ処理を行うステップについては、同一の符号を付して、詳しい説明は省略する。
【０１５７】
ステップＳ５１０Ａでは、記録回数を算出する。ここでは、特殊画像処理を施さない場合の記録回数を１とする。また、特殊画像処理を施す場合には、動画記録時のフレームレート（３０ｆｐｓ）を、特殊効果フィルタの種類に応じて定められたフレームレートで除算することによって得られる値を記録回数とする。ただし、動画記録開始後に、最初に動画記録を実行する場合には、記録回数を１とする。
【０１５８】
ステップＳ５２０に続くステップＳ１３００では、記録画像を生成する処理を行う。具体的には、前回、動画記録を実行するときに入力された画像と、今回入力された画像とを合成することによって、記録画像を生成する。例えば、合成係数αを次式（１）より算出して、前回の画像にαを乗じ、今回の画像に（１−α）を乗じて、二つの画像を加算することによって、記録画像を生成する。
【０１５９】
α＝１／記録回数×（ｉ＋１）                …（１）
ただし、ステップＳ１３００において、動画記録開始後に最初に記録処理を行う場合には、前回の画像が存在しないため、画像処理された画像をそのまま記録画像とする。
【０１６０】
ステップＳ５６０に続くステップＳ１３１０では、今回入力された画像をＳＤＲＡＭ１０６に一時的に記憶させる。記憶させた画像は、次回の動画記録時に用いられる。
【０１６１】
以上、第３の実施形態における動画圧縮装置によれば、前回、動画記録を実行するときに入力された画像と、今回入力された画像とを合成することによって、記録画像を生成する場合でも、第１の実施形態と同様の効果を得ることができる。
【０１６２】
なお、上述した第１〜第３の実施形態の説明では、動画圧縮装置が行う処理としてハードウェアによる処理を前提としていたが、このような構成に限定される必要はない。例えば、コンピュータにより、ソフトウェアにて処理する構成も可能である。この場合、コンピュータは、ＣＰＵ、ＲＡＭ等の主記憶装置、上記処理の全て或いは一部を実現させるためのプログラムが記憶されたコンピュータ読み取り可能な記憶媒体を備えている。ここでは、このプログラムを動画圧縮プログラムと呼ぶ。そして、ＣＰＵが上記記憶媒体に記憶されている動画圧縮プログラムを読み出して、情報の加工・演算処理を実行することにより、上述の動画圧縮装置と同様の処理を実現させる。
【０１６３】
ここで、コンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、この動画圧縮プログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該動画圧縮プログラムを実行するようにしても良い。
【０１６４】
本発明は、上記実施形態にそのまま限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素の幾つかの構成要素を削除してもよい。
【０１６５】
上述した実施形態では、動画圧縮装置を搭載したカメラをデジタルカメラとして説明したが、動画撮影機能を有するカメラであれば、ビデオカメラやムービーカメラでもよく、さらに、携帯電話や携帯情報端末（ＰＤＡ：Personal Digital Assist）、ゲーム機器等に内蔵されるカメラでもよい。また、デジタルカメラは、カメラ本体とレンズが着脱可能なものに限定されず、カメラ本体とレンズが一体型のものでもよい。
【０１６６】
第１の実施形態において、フレーム内圧縮間隔は、特殊効果フィルタの種類に応じて定めたが（図５参照）、例えば、動画記録時のフレームレートが３０ｆｐｓであれば、フレーム内圧縮間隔を３０フレーム（１秒に１回、フレーム内圧縮を行う）としてもよい。
【０１６７】
図７に示すフローチャートのステップＳ７４０で決定する最大符号量は、フレーム内圧縮、フレーム間圧縮で同じ符号量を設定してもよいし、それぞれの圧縮方式に対応した異なる符号量を設定してもよい。また、フレーム内圧縮時の圧縮方法が複数存在する場合や、フレーム間圧縮時の圧縮方法が複数存在する場合は、各圧縮方法で別々の最大符号量を設定してもよいし、同じ最大符号量としてもよい。
【０１６８】
また、例えば、Ｈ．２６４の動画圧縮形式では、動画を生成するときの表示フレーム順と、圧縮データに格納されているフレームデータの順は、一致しなくてもよい。このような圧縮形式の場合には、上述したように、表示フレーム順に同様な目標符号量の補正を行ってもよいし、圧縮データに格納されているフレーム順に、所定時間と平均符号量の積と、所定時間の合計符号量との差分を算出して、その差分に基づいて目標符号量を変更するようにしてもよい。
【符号の説明】
【０１６９】
１０７…画像処理部
１１０…静止画・動画圧縮伸張部
１１２…記録媒体
１１５…マイクロコンピュータ（フレーム内圧縮間隔決定部、画像更新判定部）
１０７１…基本画像処理部
１０７２…特殊画像処理部
１１０１…符号量制御部（目標符号量算出部、フレーム間圧縮用目標符号量更新部）
１１０２…圧縮伸張部（フレームレート変換部、フレーム内圧縮部、フレーム間圧縮部）
【図１】
2013046205.tif 000003
【図２】
2013046205.tif 000004
【図３】
2013046205.tif 000005
【図４】
2013046205.tif 000006
【図５】
2013046205.tif 000007
【図６】
2013046205.tif 000008
【図７】
2013046205.tif 000009
【図８】
2013046205.tif 000010
【図９】
2013046205.tif 000011
【図１０】
2013046205.tif 000012
【図１１】
2013046205.tif 000013
【図１２】
2013046205.tif 000014
【図１３】
2013046205.tif 000015
【図１４】
2013046205.tif 000016
【図１５】
2013046205.tif 000017