(57)【特許請求の範囲】
【請求項１】
動画データを圧縮し、圧縮された動画データの各フレームに識別情報を割り当てる圧縮手段と、
記録指示に応じて、前記圧縮された動画データを記録媒体に記録する手段であって、前記記録媒体に既に記録されている動画ファイルに前記圧縮された動画データを追加する記録手段と、
前記記録指示に応じて、前記圧縮された動画データを前記動画ファイルに追加するための追加開始フレームを決定し、前記追加開始フレームから前記圧縮された動画データを前記動画ファイルに追加するように前記記録手段を制御する制御手段とを有し、
前記制御手段は、前記動画ファイルに格納された動画データの最後のフレームの識別情報が、前記圧縮された動画データのうち前記記録指示の所定フレーム数前の所定のフレームの識別情報と一致する場合、前記最後のフレームの識別情報と一致しない識別情報が割り当てられた、前記所定のフレームから決められたフレーム数だけ前、或いは後のフレームを前記追加開始フレームとして決定することを特徴とする画像処理装置。
【請求項２】
前記制御手段は、前記最後のフレームの識別情報が、前記所定のフレームの識別情報と一致しない場合、前記所定のフレームを前記追加開始フレームとして決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記記録手段は、前記動画ファイルに格納された動画データの最後のフレームに続けて前記追加開始フレームが再生されるように、前記圧縮された動画データを前記動画ファイルに追加することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
少なくとも前記所定フレーム数の前記圧縮された動画データを記憶可能なメモリを有し、
前記圧縮手段は、前記圧縮された動画データを前記メモリに書き込み、
前記記録手段は、前記追加開始フレームから前記記録指示に対応するフレームまでの、前記圧縮された動画データを前記メモリから読みだして前記記録媒体に記録することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記圧縮手段は、前記圧縮された動画データにおける隣接したフレームに対し、互いに異なる前記識別情報を割り当てることを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記圧縮手段は、前記動画データの各フレームを、フレーム内予測符号化を用いて符号化することにより圧縮することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
撮像手段と、
前記記録指示に応じて、前記撮像手段により得られた画像データを用いて静止画データを生成する静止画処理手段とを有し、
前記圧縮手段は前記撮像手段により得られた動画データを圧縮し、
前記記録手段は、前記記録指示に応じて、前記静止画処理手段により生成された静止画データを前記記録媒体に記録することを特徴とする請求項１に記載の画像処理装置。
【請求項８】
音声データを取得する手段を備え、
前記記録手段は、前記記録指示に応じて前記音声データを前記記録媒体に記録し、前記動画ファイルに対して前記音声データを追加することを特徴とする請求項１に記載の画像処理装置。
【請求項９】
動画データを圧縮し、圧縮された動画データの各フレームに識別情報を割り当てる圧縮工程と、
記録指示に応じて、前記圧縮された動画データを記録媒体に記録し、前記記録媒体に既に記録されている動画ファイルに前記圧縮された動画データを追加する記録工程と、
前記記録指示に応じて、前記圧縮された動画データを前記動画ファイルに追加するための追加開始フレームを決定し、前記追加開始フレームから前記圧縮された動画データを前記動画ファイルに追加するように前記記録工程を制御する制御工程とを有し、
前記制御工程は、前記動画ファイルに格納された動画データの最後のフレームの識別情報が、前記圧縮された動画データのうち前記記録指示の所定フレーム数前の所定のフレームの識別情報と一致する場合、前記最後のフレームの識別情報と一致しない識別情報が割り当てられた、前記所定のフレームから決められたフレーム数だけ前、或いは後のフレームを前記追加開始フレームとして決定することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置に関し、特に、記録媒体に記録された既存の動画ファイルの動画データに、動画データを追記することができる画像処理装置に関する。
【背景技術】
【０００２】
従来、記録媒体に記録された既存の動画ファイルの動画データに、撮影中の動画データを追記することができる撮像装置が登場してきている（例えば、特許文献１）。特許文献１では、記録媒体に記録されている既存の動画ファイルに格納された動画データに対して、新規に撮影して得られた動画データを追加記録することができる撮像装置が開示されている。
【０００３】
一方、近年、動画の圧縮符号化の規格としてＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４が注目されている。ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４は、従来のＭＥＰＧ２等の圧縮方式よりも高い圧縮率を実現しており、撮像装置の動画データの圧縮方式としても用いられるようになってきたものである。特に、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４では、新しくＩＤＲ（Ｉｎｓｔａｎｔａｎｅｏｕｓ  Ｄｅｃｏｄｉｎｇ  Ｒｅｆｒｅｓｈ）フレームが定義された。ＩＤＲフレームとは、フレーム内の情報のみから符号化するフレーム内符号化されたＩ（イントラ）フレームである。ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４においては、後続のフレーム間符号化を行うＰフレームやＢフレームは、このＩＤＲフレーム以前のフレームを参照することができないように定められている。また、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４においては、ＩＤＲフレームに対してＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）が付与されており、隣接するＩＤＲフレームにおいては、異なるＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）を割り当てなければならない（ＩＳＯ／ＩＥＣ１４４９６−１０参照）、と規定されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２１８３８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術を用いて、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４の圧縮符号化規格を用いた動画データを連結する場合、以下のような問題が生じる。すなわち、記録媒体に記録されている既存の動画ファイルに格納された動画データの最後のフレームのＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）と、新規に撮影して得られた動画データの最初のフレームのＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）とが重複してしまうことがある。
【０００６】
本発明は、このような問題を解決し、前述のような「隣接するＩＤＲフレームにおいては、異なるＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）を割り当てなければならない」といった制約のある圧縮方式の動画データを連結したとしても、制約に違反しない動画データを生成することができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の画像処理装置は、動画データを圧縮し、圧縮された動画データの各フレームに識別情報を割り当てる圧縮手段と、記録指示に応じて、前記圧縮された動画データを記録媒体に記録する手段であって、前記記録媒体に既に記録されている動画ファイルに前記圧縮された動画データを追加する記録手段と、前記記録指示に応じて、前記圧縮された動画データを前記動画ファイルに追加するための追加開始フレームを決定し、前記追加開始フレームから前記圧縮された動画データを前記動画ファイルに追加するように前記記録手段を制御する制御手段とを有し、前記制御手段は、前記動画ファイルに格納された動画データの最後のフレームの識別情報が、前記圧縮された動画データのうち前記記録指示の所定フレーム数前の所定のフレームの識別情報と一致する場合、前記最後のフレームの識別情報と一致しない識別情報が割り当てられた、前記所定のフレームから決められたフレーム数だけ前、或いは後のフレームを前記追加開始フレームとして決定する。
【発明の効果】
【０００８】
本発明によれば、「隣接するＩＤＲフレームにおいては、異なるＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）を割り当てなければならない」といった制約のある圧縮方式の動画データを連結したとしても、制約に違反しない動画データを生成することができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態における撮像装置の構成を示すブロック図である。
【図２】ムービーダイジェストモードの処理を示すフローチャートである。
【図３】ムービーダイジェストモードの撮影による動画データの状態を示すフローチャートである。
【図４】追記処理を示すフローチャートである。
【図５】動画ファイルの状態を説明するための図である。
【図６】本実施形態の符号化復号化処理部の構成を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施例を詳細に説明するが、この発明は以下の実施の形態に限定されない。
【００１１】
［第１の実施形態］
本実施例においては、動画撮影中に静止画撮影を行うことができる撮像装置について説明する。本実施例の撮像装置は、動画データの圧縮方式として、「ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４」を使用するものとして説明する。しかし、これは一例であり、「隣接するＩＤＲフレームにおいては、異なるＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）を割り当てなければならない」といった制約のある圧縮方式であればどのような圧縮方式であってもよい。すなわち、圧縮方式が「ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４」に限定されるものではない。
【００１２】
ＩＤＲフレームとは、フレーム内の情報のみから符号化するフレーム内符号化されたＩ（イントラ）フレームである。ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４においては、後続のフレーム間符号化を行うＰフレームやＢフレームは、このＩＤＲフレーム以前のフレームを参照することができないように定められている。また、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４においては、ＩＤＲフレームに対してＩＤＲフレームの識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）が付与されており、隣接するＩＤＲフレームにおいては、異なるＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）を割り当てなければならない（ＩＳＯ／ＩＥＣ１４４９６−１０参照）、と規定されている。
【００１３】
また、静止画データについては、ＪＰＥＧ方式で圧縮されるものとして説明するが、これは一例であり、どのような圧縮方式を用いても良いし、圧縮を行わなくてもよい。
【００１４】
また、これらの動画データ、静止画データは、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）ファイルシステムやｅｘＦＡＴファイルシステムでフォーマットされた記録媒体に記録され、ファイルとして管理されるものを例にとって説明する。しかし、これは一例であって、これ以外のファイルシステムであってもかまわない。
【００１５】
本実施例の撮像装置は、動画撮影モードの一つである、「ムービーダイジェストモード」に移行すると、撮像部により得られた画像データを順次、前述のＩＤＲフレームとして、圧縮、符号化し圧縮された動画データをＲＡＭに記憶していく。このＲＡＭには、少なくとも最新の所定のフレーム数の動画データを常に保持する。そして、静止画撮影の指示が入力されると、静止画撮影を行うとともに、ＲＡＭに保持されている最新の所定の数のＩＤＲフレームを動画データとして記録媒体に記録する。本実施例の撮像装置は、このとき、所定の条件下以外では、記録媒体に記録されている既存の動画ファイルの動画データに対して、ＲＡＭに保持されていた所定フレーム数の動画データを追記して記録することができる。なお、ＲＡＭに保持されている最新の所定のフレーム数のよりにＲＡＭに記憶されたフレームについては消去してもよい。
【００１６】
本実施例の撮像装置の特徴的な構成の一つは、以下である。
【００１７】
「ムービーダイジェストモード」において、記録媒体に記録されている既存の動画ファイルの動画データの最後のフレームと、追記する動画データの最初のフレームのＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）とが同じにならないようにすることができる。
【００１８】
そのために、「ムービーダイジェストモード」に移行すると、ＩＤＲフレームとして圧縮、符号化されたフレームの数を順次カウントする。そして、そのフレーム数から、静止画記録の指示が入力された時点より、所定フレーム数前に圧縮、符号化されてＲＡＭに記憶されたフレームのＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）に対応する情報を算出する。
【００１９】
静止画記録の指示が入力された時点より、所定フレーム数前のフレームのＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）に対応する情報の算出方法は、以下である。まず、静止画記録の指示が入力された時点で、カウントされているＩＤＲフレームとして圧縮、符号化されたフレームの数から、所定フレーム数前のフレーム番号を算出する。そして、符号化復号化処理部のＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）の付与周期で所定フレーム数前のフレーム番号を除算して、「あまり」を算出する。そして、その「あまり」から静止画記録の指示が入力された時点より、所定フレーム数前に圧縮、符号化されてＲＡＭに記憶されたフレームのＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）を求める。
【００２０】
なお、既存の動画ファイルは、ＭＯＶ形式の動画ファイルであって、ストリームデータの「ｍｄａｔアトム」、動画データのストリームデータに関連する情報の「ｍｏｏｖアトム」を有する。そして、「ｍｏｏｖアトム」のユーザーデータアトム「ｕｄｔａアトム」に、既存動画ファイルの動画データの最後のフレームのＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）に対応する情報が記録されている。
【００２１】
本実施例の撮像装置はこれらの情報に基づいて、記録媒体に記録されている既存の動画ファイルの動画データの最後のフレームと、追記する予定の動画データの最初のフレームのＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）とが同じであるか否かを判定する。
【００２２】
そして、ＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）が異なると判定した場合には、既存動画ファイルの動画データの最後に連続するようにＲＡＭに保持された所定フレーム数の動画データを追記して記録する。このとき、追記する動画データの先頭フレームは、静止画記録の指示が入力された時点より、所定フレーム数前に圧縮、符号化されてＲＡＭに記憶されたフレームである。
【００２３】
逆に、ＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）が同じであると判定した場合には、静止画記録の指示が入力された時点より、所定フレーム数前に圧縮、符号化されてＲＡＭに記憶されたフレームとは異なるフレームを先頭フレームとして追記を行う。具体的には、静止画記録の指示が入力された時点より、所定フレーム数前に圧縮、符号化されてＲＡＭに記憶されたフレームよりも１５フレーム後（新しい）または前（古い）のフレームを追記する動画の先頭フレームとして追記を行う。
【００２４】
このようにすることで、本実施例の撮像装置は、追記を行う際に、隣接するＩＤＲフレームのＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）を重複させないようにすることができる。
【００２５】
本実施例の撮像装置は、追記後の動画データを既存動画ファイルに格納し、「ｍｏｏｖアトム」のユーザーデータアトム「ｕｄｔａアトム」に、追記後の動画データの最後のフレームのＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）に対応する情報を記録する。これは、追記する動画データの最後のフレームのＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）に対応する情報を用いる。なお、動画ファイルの「ｍｏｏｖアトム」のユーザーデータアトム「ｕｄｔａアトム」に、動画データの最後のフレームのＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）に対応する情報を記録するものとしたが、動画ファイルのヘッダに記録してもよい。
【００２６】
本実施例の撮像装置は、このような特徴的な構成により、記録媒体に記録されている既存の動画ファイルの動画データの最後のフレームと、追記する動画データの最初のフレームのＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）とが同じにならないようにすることができる。すなわち、「隣接するＩＤＲフレームにおいては、異なるＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）を割り当てなければならない」といった制約のある圧縮方式の動画データを連結（追記）したとしても、制約に違反しない動画データを生成することができる。なお、ＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）は、符号化されたＩＤＲフレームの複数のマクロブロックからなるスライスのスライスヘッダに格納され、圧縮、符号化時に付与されるものである。
【００２７】
以下、このような撮像装置について説明する。
【００２８】
なお、本実施例においては、ＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）（ＩＤＲフレーム識別情報）を簡単にするため、「ＩＤＲ＿ＩＤ」と呼称するものとする。
【００２９】
図１は、本実施例の撮像装置１００の構成を示すブロック図である。
【００３０】
撮像装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＦｌａｓｈＲＯＭ１０３、操作部１０４を有する。また、撮像装置１００は、撮像部１１０、画像処理部１１１、音声入力部１２０、音声処理部１２１、表示部１３０、表示制御部１３１、音声出力部１３２、記録媒体１４０、記録再生部１４１、通信部１５０を有する。また、撮像装置１００は、符号化復号化処理部１６０を有する。
【００３１】
図１において、ＣＰＵ１０１は、ＦｌａｓｈＲＯＭ１０３に記録された撮像装置１００の制御プログラムをＲＡＭ１０２に展開し、ＲＡＭ１０２をワークメモリとして使用しながら、撮像装置１００の各ブロックを制御するものである。操作部１０４は、例えば、電源ボタン、記録ボタン、ズーム調整ボタン、オートフォーカスボタンなどの撮影に関連する各種操作を入力するスイッチ類を有する。また、メニュー表示ボタン、決定ボタン、その他カーソルキー、ポインティングデバイス、タッチパネル等を備え、ユーザによりこれらのキーやボタン、タッチパネルが操作されるとＣＰＵ１０１に操作信号を送信する。
【００３２】
撮像部１１０は、レンズにより取り込まれた被写体の光学像を、絞りにより光量を制御して、ＣＣＤセンサやＣＭＯＳセンサ等の撮像素子により画像信号に変換し、得られたアナログ画像信号をデジタル画像信号に変換して一時的にＲＡＭ１０２に記憶するものである。ＲＡＭ１０２に記憶されたデジタル画像信号は、その後、画像処理部１１１に送信される。画像処理部１１１は、次の処理を実行するプログラムを搭載したマイクロコンピュータである。画像処理部１１１は、デジタル画像信号のホワイトバランスや色、明るさなどをユーザに設定された設定値や画像の特性から自動的に判定した設定値に基づいて調整する画質調整処理を行い、処理をしたデジタル画像信号を再びＲＡＭ１０２に記憶させるものである。なお、画像処理部１１１の処理は、ＣＰＵ１０１がＦｌａｓｈＲＯＭ１０３に記録された前述の処理を実行する為のプログラムをＲＡＭ１０２に展開して実行するようにしてもよい。
【００３３】
音声入力部１２０は、たとえば、内蔵された無指向性のマイクまたは音声入力端子を介して接続された外部マイク等により、撮像装置１００の周囲の音声を集音（収音）し、取得したアナログ音声信号をデジタル信号に変換してＲＡＭ１０２に一時的に記憶させるものである。ＲＡＭ１０２に記憶されたデジタル音声信号は、その後、音声処理部１２１に送信される。音声処理部１２１は、次の処理を実行するプログラムを搭載したマイクロコンピュータである。音声処理部１２１では、記録時においては、ＲＡＭ１０２に記憶されたデジタル音声信号の、レベルの適正化処理や雑音低減処理等の処理を行い、処理をしたデジタル音声信号を再びＲＡＭ１０２に記憶させるものである。また、必要に応じて、音声信号を圧縮する処理を行う。音声圧縮方式については、ＡＣ３、ＡＡＣ等の公知の一般的な音声圧縮方式を用いており、本発明の特徴とは関係ないので説明を省略する。また、再生時においては、記録媒体１４０から記録再生部１４１によって読出された音声ファイルや動画ファイルに含まれる圧縮音声データ復号する処理も行う。なお、音声処理部１２１の処理は、ＣＰＵ１０１がＦｌａｓｈＲＯＭ１０３に記録された前述の処理を実行する為のプログラムをＲＡＭ１０２に展開して実行するようにしてもよい。
【００３４】
また、表示制御部１３１は、表示部１３０に画像を表示するための表示制御を行うマイクロコンピュータであって、メモリ１０４に一時的に記憶されたデジタル画像信号を読み出して、表示部１３０に表示させる処理を行う。また、記録媒体１４０から記録再生部１４１によって読出された動画ファイルや静止画ファイルに含まれる画像データの画像を表示部１３０に表示させる処理も行う。表示部１３０は、たとえば撮像装置１００に搭載された液晶パネルや有機ＥＬパネル等であっても良いし、撮像装置１００とは別の表示装置（たとえば、テレビ、モニタ、プロジェクタ）であってもよい。なお、表示制御部１３１の処理は、ＣＰＵ１０１がＦｌａｓｈＲＯＭ１０３に記録された前述の処理を実行する為のプログラムをＲＡＭ１０２に展開して実行するようにしてもよい。
【００３５】
符号化復号化処理部１６０は、次の処理を実行するプログラムを搭載したマイクロコンピュータである。符号化復号化処理部１６０では、記録時においては、画像処理部１１１により処理されＲＡＭ１０２に記憶されたデジタル画像信号に基づいて、画像圧縮処理を行い、圧縮された動画データや静止画データを生成し、ＲＡＭ１０２に一時的に記憶する処理を行う。また、再生時においては、記録媒体１４０から読出された画像ファイルの圧縮された動画データや静止画データを復号してデジタル画像信号を抽出し、ＲＡＭ１０２に記憶していく処理を行う。なお、ＣＰＵ１０１がＦｌａｓｈＲＯＭ１０３に記録された前述の処理を実行する為のプログラムをＲＡＭ１０２に展開して実行するようにしてもよい。
【００３６】
本実施例においては、符号化復号化処理部１６０は、「ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４」方式で、撮像部１１０により得られた画像データを圧縮して動画データを生成する。「ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４」方式においては、入力された画像データを、フレーム内予測符号化方式（イントラ符号化方式）、動き補償前方予測フレーム間符号化方式を用いて圧縮、符号化を行う。また、フレーム内予測符号化方式を用いて符号化したフレームのうち指定したフレームを、前述の動き補償前方予測フレーム間符号化方式のフレームがその指定したフレームよりも前のフレームを参照できなくするためのフラグを付加することができる。これがＩＤＲフレームとなり、このＩＤＲフレームには、ＩＤＲ＿ＩＤを付加する機能を有する。ＩＤＲ＿ＩＤは、周知の「ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４」規格（ＩＳＯ／ＩＥＣ  １４４９６−１０参照）に記載されているように、複数のマクロブロックからなるスライスのスライスヘッダに格納される。そのため、通常、ＩＤＲ＿ＩＤを確認するためには、ＩＤＲフレームとして圧縮、符号化されたフレームを復号化しなければならない。
【００３７】
なお、本実施例の符号化復号化処理部１６０は、すべてのフレームをＩＤＲフレームとして圧縮、符号化し、すべてのフレームにＩＤＲ＿ＩＤを付加することもできる。
【００３８】
また、本実施例の符号化復号化処理部１６０は、ＩＤＲ＿ＩＤを０から２５５の番号を順番に使用して符号化を行うものとする。すなわち、すべてのフレームをＩＤＲフレームとして圧縮符号化する場合は、１フレーム目には、ＩＤＲ＿ＩＤとして「０」が付与され、２フレーム目には、ＩＤＲ＿ＩＤとして「１」が付与される。また、２５６フレーム目には、ＩＤＲ＿ＩＤとして「２５５」が付与され、２５７フレーム目には、ＩＤＲ＿ＩＤとして「０」が付与される。すなわち、ＩＤＲ＿ＩＤの最終番号の次はまた最初の番号を使用する。従って、すべてのフレームをＩＤＲフレームとして圧縮符号化する場合は、ｎフレーム目には、ｎを２５６で除算した「あまり」から１を減算した値がＩＤＲ＿ＩＤとなる。なお、本実施例では、０から２５５までを使用するものとしたが、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４」規格（ＩＳＯ／ＩＥＣ  １４４９６−１０参照）の範囲内の６５５３５番までであれば何番までを使用しても構わない。
【００３９】
また、本実施例の符号化復号化処理部１６０は、画像信号の圧縮符号化作業を一度中断すると、次に画像信号をＩＤＲフレームとして圧縮符号化する場合には、再びＩＤＲ＿ＩＤを「０」から順番に付与していく。
【００４０】
なお、本実施例においては、フレーム内予測符号化方式（イントラ符号化方式）で符号化されたフレームをＩフレームと呼び、動き補償前方予測フレーム間符号化方式で符号化されたフレームをＰフレームと呼ぶ。
【００４１】
後述する、「ムービーダイジェストモード」では、撮影された動画の全てのフレームがＩフレームとして符号化され、ＩＤＲフレームに設定される。また、「動画撮影モード」では、１５フレーム毎に１フレームがＩフレームとして符号化され、残りの１４フレームがＰフレームとして符号化される。また、「動画撮影モード」において、前方予測フレーム間圧縮、後方予測フレーム間圧縮、両方向予測フレーム間圧縮のいずれかを選択的に使用できるＢフレームを使用しても構わない。
【００４２】
次に、記録再生部１４１は、次の処理を実行するプログラムを搭載したマイクロコンピュータである。記録再生部１４１では、動画記録時においては、ＲＡＭ１０２に記憶されている、符号化復号化処理部１６０により生成された圧縮動画データ、音声処理部１２１で生成された音声データ、撮影日等の各種情報とともに、動画ファイルとして記録媒体１４０に書き込む。また静止画記録時においては、ＲＯＭ１０２に記憶されている静止画データを撮影日等の各種情報とともに静止画ファイルとして記録媒体１４０に記録する。動画ファイルを記録媒体１４０に記録する際は、圧縮動画データと音声データとからなるデータストリームを形成し、順次記録媒体１４０に記録していき、ファイルヘッダ等を付加してＦＡＴやｅｘＦＡＴ等のファイルフォーマットに適合した形で動画ファイルを記録媒体に記録する。また、再生時においては、記録媒体１４０に記録された動画ファイルや静止画ファイルを前述のファイルフォーマットに従って読出す。読出された動画ファイルや静止画ファイルは、ＣＰＵ１０１によりヘッダが解析され、圧縮された動画データ、静止画データが抽出される。抽出された圧縮動画データ、静止画データは、ＲＡＭ１０２に記憶されて、符号化復号化処理部１６０により復号される。なお、記録再生部１４１の処理は、ＣＰＵ１０１がＦｌａｓｈＲＯＭ１０３に記録された前述の処理を実行する為のプログラムをＲＡＭ１０２に展開して実行するようにしてもよい。
【００４３】
また、記録媒体１４０は、撮像装置に内蔵された記録媒体でも、取外し可能な記録媒体でもよい。例えば、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−Ｒ、ＤＶＤ−Ｒ、磁気テープ、不揮発性の半導体メモリ、フラッシュメモリ、などのあらゆる方式の記録媒体を含む。取り外し可能な記録媒体を用いる場合には、記録再生部１４１は、それらの取り外し可能な記録媒体を受け入れるためのインタフェースを含む。
【００４４】
次に音声出力部１３２は、例えばスピーカや音声出力端子（アナログ端子／デジタル端子）である。例えばスピーカであれば、ＣＰＵ１０１によりｆｌａｓｈＲＯＭ１０３に記録されている所定のデジタル音声信号の出力が指示されたときにデジタル音声信号をアナログ音声外部に変換し、外部に音声として出力する。また、動画ファイルに格納された音声データの示すデジタル音声信号をアナログ音声信号に変換し、外部に音声として出力する。また、音声出力端子であれば、動画ファイルに格納された音声データの示すデジタル音声信号をアナログ音声信号に変換して外部装置（外付けスピーカなど）に出力するか、デジタル音声信号をそのまま外部装置（光デジタル端子搭載のオーディオコンポなど）に出力する。
【００４５】
また、通信部１５０は、撮像装置１００とは異なる外部装置との間で、制御信号や動画ファイル、静止画ファイル、各種データ等を送受信するものであり、有線接続、無線接続を問わず接続可能である。なお、通信方式はどのような方式であっても良い。
【００４６】
ここで、本実施例の撮像装置１００の通常の動作について説明する。
【００４７】
本実施例の撮像装置１００は、ユーザが操作部１０４の電源ボタンを操作すると、操作部１０４から制御部１０１に起動の指示が出される。この指示を受けて、制御部１０１は、不図示の電源供給部を制御して、撮像装置１００の各ブロックに対して電源を供給させる。
【００４８】
電源が供給されると、制御部１０１は、例えば、操作部１０４のモード切り換えスイッチが、例えば、「静止画撮影モード」、「ムービーダイジェストモード」、「動画撮影モード」、「再生モード」等のどのモードであるかを操作部１０４からの指示信号により確認する。
【００４９】
本実施例の撮像装置１００は、特に「動画撮影モード」、「ムービーダイジェストモード」において、動画データを「ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４」の圧縮方式で圧縮する例について説明する。
【００５０】
（「静止画撮影モード」）
「静止画撮影モード」であれば、ＣＰＵ１０１は、撮像装置１００の各ブロックに、静止画撮影の準備をさせる。操作部１０４から撮影開始の指示が入力されるまでは、ＣＰＵ１０１は、撮像部１１０により得られたデジタル画像信号をＲＡＭ１０２に記憶させ、ＲＡＭ１０２に記憶されたデジタル画像信号を読出させて表示部１３０に画像を表示させように表示制御部１３１を制御する。なお、画像処理部１１１により処理され、ＲＡＭ１０２に記憶されたデジタル画像信号を読出させて表示部１３０に画像を表示させるように表示制御部１３１を制御しても良い。なお、本実施形態では、撮像部１１０から出力されるデジタル画像信号のフレームレートは、３０フレーム／秒であるとする。また、本実施形態では、記録する静止画のサイズ（画素数）を複数のサイズから選択した一つのサイズに設定することができる。
【００５１】
この状態で、ＣＰＵ１０１は、操作部１０４により撮影開始の指示が入力されたか否かを判定する。撮影開始の指示があると、撮像部１１０のシャッター速度、絞り、フォーカス位置などを調整し、撮像部１１０のシャッター開放中に撮像素子により得られたアナログ画像信号をデジタル画像信号に変換して出力させる。ＣＰＵ１０１は、撮像部１１０により得られたデジタル画像信号をＲＡＭ１０２に記憶させ、ＲＡＭ１０２に記憶されたデジタル画像信号に対して設定値に基づいて画質調整処理を施すように画像処理部１１１を制御する。そして、ＣＰＵ１０１は、画像処理部１１１で処理されたデジタル画像信号をＲＡＭ１０２に記憶させ、ＲＡＭ１０２に記憶されたデジタル画像信号を符号化して静止画データを生成するように符号化復号化処理部１６０を制御する。次にＣＰＵ１０１は、符号化復号化処理部１６０で処理された静止画データをＲＡＭ１０２に再び記憶させ、記憶された静止画データを静止画ファイルとして記録媒体１４０に記録するように記録再生部１４１を制御する。
【００５２】
この処理が終了すると、ＣＰＵ１０１は、再び静止画撮影の準備状態に各ブロックを戻す。
【００５３】
（「動画撮影モード」）
次に、「動画撮影モード」であれば、ＣＰＵ１０１は、撮像装置１００の各ブロックに、動画撮影の準備をさせる。操作部１０４から撮影開始の指示が入力されるまでは、ＣＰＵ１０１は、撮像部１１０により得られたデジタル画像信号をＲＡＭ１０２に記憶させ、ＲＡＭ１０２に記憶されたデジタル画像信号を読出させて表示部１３０に画像を表示させように表示制御部１３１を制御する。なお、画像処理部１１１により処理され、ＲＡＭ１０２に記憶されたデジタル画像信号を読出させて表示部１３０に画像を表示させるように表示制御部１３１を制御しても良い。なお、本実施形態では、撮像部１１０から出力されるデジタル画像信号のフレームレートは、３０フレーム／秒であるとする。また、本実施形態では、記録する動画のサイズ（画素数）を複数のサイズから選択した一つのサイズに設定することができる。また、本実施例の撮像装置１００は、動画データを記録媒体に記録する場合、１５フレームの符号化されたフレーム画像と、０．５秒分の圧縮または非圧縮の音声データとを一組として、記録媒体に記録するものとする。
【００５４】
この状態で、ＣＰＵ１０１は、操作部１０４により撮影開始の指示が入力されたか否かを判定する。撮影開始の指示があると、ＣＰＵ１０１は、撮像部１１０により得られたデジタル画像信号をＲＡＭ１０２に記憶させ、ＲＡＭ１０２に記憶されたデジタル画像信号に対して設定値に基づいて画質調整処理を施すように画像処理部１１１を制御する。ＣＰＵ１０１は動画撮影を継続している間、３０フレーム／秒で撮像部１１０により出力されるデジタル画像信号を順次、画像処理部１１１に処理させる。そして、ＣＰＵ１０１は、画像処理部１１１で処理されたデジタル画像信号を、順次ＲＡＭ１０２に記憶させる。
【００５５】
次に、ＣＰＵ１０１は、ＲＡＭ１０２に記憶された複数フレームのデジタル画像信号を順次符号化して動画データを生成するように符号化復号化処理部１６０を制御する。そして、ＣＰＵ１０１は、符号化復号化処理部１６０で符号化された各フレーム画像を順次ＲＡＭ１０２に記憶させていく。
【００５６】
一方、撮影開始の指示があると、ＣＰＵ１０１は、音声に関する処理をするようにも各ブロックを制御する。ＣＰＵ１０１は、音声入力部１２０から出力されるデジタル音声信号を順次ＲＡＭ１０２に記憶し、ＲＡＭ１０２に記憶されたデジタル音声信号に音質調整処理を施すように音声処理部１２１を制御する。また、音声圧縮の設定がされている場合には、ＣＰＵ１０１は設定に従って、例えばＡＣ３、ＡＡＣの音声圧縮方式で音声信号を圧縮するように音声処理部１２１を制御する。そして、ＣＰＵ１０１は、音声処理部１２１で処理した音声データをＲＡＭ１０２に順次記憶させていく。
【００５７】
次にＣＰＵ１０１は、ＲＡＭ１０２に記憶された動画データ、音声データを順次、記録媒体１４０に記録するように、記録再生部１４１を制御する。このとき例えば、１５フレーム分（０．５秒分）の符号化された画像データと、０．５秒分の音声データとを一組にし、必要な各種情報を付加したデータストリームを形成し、ファイルシステムに従って記録媒体１４０に記録するように、記録再生部１４１を制御する。なお、３０フレーム分（１秒分）の動画データと、１秒分の音声データを一組としても良い。ＣＰＵ１０１は、これらの動作を動画撮影の停止の指示があるまで継続する。
【００５８】
そして、操作部１０４により撮影停止の指示が入力されると、ＣＰＵ１０１は、画像処理部１１１の処理を停止させ、ＲＡＭ１０２に記憶されたデジタル画像信号の符号化が終了した時点で符号化復号化処理部１６０の符号化処理を停止させる。そして、ＣＰＵ１０１は、ＲＡＭ１０２に記憶されている符号化済みの動画データ、音声データを最後まで記録媒体１４０に記録してから動作を停止するように記録再生部１４１を制御する。なお、必要に応じて、記録終了後に、動画ファイルの動画データの先頭のフレームや先頭から数フレームの画像データを符号化復号化処理部１６０に送信して復号させ、復号されたデジタル画像信号の画素数を間引いたサムネイル画像データを生成して、動画ファイルに関連づけて記録するようにしても良い。
【００５９】
この処理が終了すると、ＣＰＵ１０１は、再び動画撮影の準備状態に各ブロックを戻す。
【００６０】
（「再生モード」）
「再生モード」であれば、ＣＰＵ１０１は、記録媒体１４０に記録されている動画ファイル、静止画ファイルのうち指定されたファイルに関連づけられたサムネイル画像データを読出すように記録再生部１４１を制御する。そして、ＣＰＵ１０１は、これらのサムネイル画像データを示す画像を表示部１３０に表示するよう表示制御部１３１を制御する。
【００６１】
そして、操作部１０４から指定されたサムネイルに対応するファイルを再生する指示が入力されると、ＣＰＵ１０１は、指定された動画ファイルや静止画ファイルを記録媒体１４０から読出すように記録再生部１４１を制御する。そして、ＣＰＵ１０１は、読出した動画ファイルや静止画ファイルに含まれる各種情報、動画データ、音声データ、静止画データを抽出してＲＡＭ１０２に記憶させる。
【００６２】
静止画ファイルを再生する場合は、ＣＰＵ１０１は、ＲＡＭ１０２に記憶された静止画データを復号するように符号化復号化処理部１６０を制御し、復号されたデジタル画像信号をＲＡＭ１０２に記憶させる。そして、ＲＡＭ１０２に記憶させた復号されたデジタル画像信号を表示部１３０に表示するように表示制御部１３１を制御する。
【００６３】
また、動画ファイルを再生する場合は、ＣＰＵ１０１は、ＲＡＭ１０２に記憶された動画データを復号するように符号化復号化処理部１６０を制御し、復号された各フレームのデジタル画像信号を順次、ＲＡＭ１０２に記憶させる。そして、ＲＡＭ１０２に記憶させた復号された各フレームのデジタル画像信号を表示部１３０に、順次表示するように表示制御部１３１を制御する。また、ＣＰＵ１０１は、ＲＡＭ１０２に記憶された音声データを動画の復号、表示のタイミングに合わせて、音声出力部１３２に送信し、音声を出力させる。なお、音声データが圧縮されたものである場合には、ＲＡＭ１０２に記憶された音声データを復号するように音声処理部１２１を制御し、復号された音声データを音声出力部１３２に送信する。
【００６４】
（「ムービーダイジェストモード」）
次に、「ムービーダイジェストモード」であれば、ＣＰＵ１０１は、撮像部１１０により得られたデジタル画像信号をＲＡＭ１０２に記憶させ、ＲＡＭ１０２に記憶されたデジタル画像信号を読出させて表示部１３０に画像を表示させように表示制御部１３１を制御する。なお、画像処理部１１１により処理され、ＲＡＭ１０２に記憶されたデジタル画像信号を読出させて表示部１３０に画像を表示させるように表示制御部１３１を制御しても良い。なお、本実施形態では、撮像部１１０から出力されるデジタル画像信号のフレームレートは、３０フレーム／秒であるとする。また、本実施形態では、記録する動画のサイズ（画素数）を複数のサイズから選択した一つのサイズに設定することができる。
【００６５】
ここで、「ムービーダイジェストモード」であれば、表示部１３０に画像を表示させるだけでなく、ＣＰＵ１０１は、以下の制御を行う。ＣＰＵ１０１は、ＲＡＭ１０２に記憶されたデジタル画像信号に対して設定値に基づいて画質調整処理を施すように画像処理部１１１を制御する。ＣＰＵ１０１は動画撮影を継続している間、３０フレーム／秒で撮像部１１０により出力されるデジタル画像信号を順次、画像処理部１１１に処理させる。次に、ＣＰＵ１０１は、画像処理部１１１で画像処理が施された各フレームのデジタル画像信号を順次動画データの各フレームとして圧縮、符号化して、ＲＡＭ１０２に記憶するように符号化復号化処理部１６０を制御する。順次動画データとして圧縮、符号化される各フレームは、ＩＤＲフレームとして圧縮、符号化される。
【００６６】
このとき、ＣＰＵ１０１は、ＲＡＭ１０２に少なくとも、所定のフレーム数のＩＤＲフレームとして圧縮、符号化されたフレーム画像を保持する。このとき保持されるのは常に最新の所定フレーム数のＩＤＲフレームであって、それ以前にＲＡＭ１０２に記憶されたＩＤＲフレームのフレーム画像に関しては、削除してもかまわない。なお、本実施例においては、４秒分のフレーム画像、すなわち、３０フレーム×４秒の１２０フレームのＩＤＲフレームとして圧縮、符号化されたフレーム画像をＲＡＭ１０２に保持する。
【００６７】
また、ＣＰＵ１０１は、ＲＡＭ１０２に符号化復号化処理部１６０により圧縮、符号化されたフレーム数をカウントした値を同時に記憶する。
【００６８】
このように、本実施例の撮像装置１００は、「ムービーダイジェストモード」にモードが設定されると、ＲＡＭ１０２に所定のフレーム数のＩＤＲフレームとして圧縮、符号化されたフレーム画像が保持する。
【００６９】
また、「ムービーダイジェストモード」にモードが設定されると、ＣＰＵ１０１は、音声に関する処理をするようにも各ブロックを制御する。ＣＰＵ１０１は、音声入力部１２０から出力されるデジタル音声信号を順次ＲＡＭ１０２に記憶し、ＲＡＭ１０２に記憶されたデジタル音声信号に音質調整処理を施すように音声処理部１２１を制御する。また、音声圧縮の設定がされている場合には、ＣＰＵ１０１は設定に従って、例えばＡＣ３、ＡＡＣの音声圧縮方式で音声信号を圧縮するように音声処理部１２１を制御する。そして、ＣＰＵ１０１は、音声処理部１２１で処理した音声データをＲＡＭ１０２に順次記憶させていく。
【００７０】
この状態で、操作部１０４により静止画撮影の指示が入力されると、ＣＰＵ１０１は、動画データのフレーム画像用の撮影を停止し、静止画撮影を行うように撮像部１１０を制御する。すなわち、ＣＰＵ１０１は、撮像部１１０のシャッター速度、絞り、フォーカス位置などを調整し、撮像部１１０のシャッター開放中に撮像素子により得られたアナログ画像信号をデジタル画像信号に変換して出力させる。ＣＰＵ１０１は、撮像部１１０により得られたデジタル画像信号をＲＡＭ１０２に記憶させ、ＲＡＭ１０２に記憶されたデジタル画像信号に対して設定値に基づいて画質調整処理を施すように画像処理部１１１を制御する。そして、ＣＰＵ１０１は、画像処理部１１１で処理されたデジタル画像信号をＲＡＭ１０２に記憶させ、ＲＡＭ１０２に記憶されたデジタル画像信号を符号化して静止画データを生成するように符号化復号化処理部１６０を制御する。次にＣＰＵ１０１は、符号化復号化処理部１６０で処理された静止画データをＲＡＭ１０２に再び記憶させ、記憶された静止画データを静止画ファイルとして記録媒体１４０に記録するように記録再生部１４１を制御する。
【００７１】
ここで、「ムービーダイジェストモード」であれば、ＣＰＵ１０１は、操作部１０４により静止画撮影の指示が入力されると、以下の制御も行う。ＣＰＵ１０１は、ＲＡＭ１０２に保持されている、所定のフレーム数のＩＤＲフレームとして圧縮、符号化されたフレーム画像（ＩＤＲフレーム）を動画データとして、記録媒体１４０に記録するように記録再生部１４１を制御する。このとき、ＣＰＵ１０１は、記録媒体１４０に記録されている既存の動画ファイルの動画データに対して、ＲＡＭ１０２に保持されている所定のフレーム数のフレーム画像（ＩＤＲフレーム）からなる動画データを追記して記録する処理を行う。
【００７２】
追記するフレームの先頭フレームは、基本的には、静止画記録の指示が入力された時点から所定フレーム数前に符号化復号化処理部１６０に圧縮、符号化されたフレームであり、本実施例においては、例えば１２０フレーム前のフレームを先頭フレームとしている。すなわち、静止画記録の指示が入力された時点で、ＲＡＭ１０２に最後に記憶されたフレームの番号が１５００であるとすると、１３８１フレーム目を先頭フレームとし、１５００フレーム目までのフレームを追記対象のフレームとする。
【００７３】
具体的には後述するが、ＣＰＵ１０１は、まず、記録媒体１４０に記録されている既存の動画ファイルの動画データが追記対象とするべき動画データであるかを判定し、追記記録を行うか、追記せずに新規記録を行うかを決定する。そして、追記を行う際、ＣＰＵ１０１は、静止画記録の指示が入力された時点より、所定フレーム数前（１２０フレーム前）に、圧縮、符号化されてＲＡＭに記憶されたフレームのフレーム番号を算出する。そのフレーム番号からＩＤＲ＿ＩＤに関する情報（ｄ）を算出する。また、ＣＰＵ１０１は、さらに既存動画ファイルの動画データの最後のフレームのＩＤＲ＿ＩＤに関する情報（ｅ）を取得する。
【００７４】
そして、これらのフレームのＩＤＲ＿ＩＤに関する情報が同一であるか否かを判定する。これは、ＲＡＭ１０２に保持されている追記対象の動画データと、記録媒体１４０に記録されている既存動画ファイルの動画データの連結部において、ＩＤＲ＿ＩＤが一致してしまうか否かを判定するために行う判定である。
【００７５】
そして、ＣＰＵ１０１は、追記対象の動画データの静止画記録の指示が入力された時点より、所定フレーム数前に圧縮、符号化されてＲＡＭに記憶されたフレームと既存動画ファイルの動画データの最後のフレームとが一致しない場合には、追記処理を行う。一方で、一致する場合には、ＣＰＵ１０１は、追記対象の動画データの静止画記録の指示が入力された時点より、所定フレーム数前に圧縮、符号化されてＲＡＭに記憶されたフレームから１５フレームを削除し、１６フレーム目からを追記を開始するフレームとする。すなわち、追記対象としていた動画データの追記の開始フレームを１５フレーム後にずらして、追記記録を行う。また、本実施例では、追記対象としていた動画データの先頭の１５フレーム削除するものとしたが、１フレーム以上削除すれば何フレーム削除してもよい。なお、削除しなくてもよい。すなわち、静止画記録の指示が入力された時点より、所定フレーム数前に圧縮、符号化されてＲＡＭに記憶されたフレームより後のフレームを追記の開始フレームとしてもよい。また、逆に、追記対象の動画データを１５フレームまたは１フレーム以上増加させてもよい。すなわち、静止画記録の指示が入力された時点より、所定フレーム数前に圧縮、符号化されてＲＡＭに記憶されたフレームより前のフレームを追記対象としてもよい。
【００７６】
すなわち、ＣＰＵ１０１は、ＲＡＭ１０２に記憶された動画データの、静止画記録の指示が入力された時点より、所定フレーム数前に圧縮、符号化されてＲＡＭに記憶されたフレームと既存動画ファイルの動画データの最後のフレームとが一致する場合には、次の処理を行う。ＣＰＵ１０１は、追記対象の動画データの追記開始フレームの位置を静止画記録の指示が入力された時点より、所定フレーム数前に圧縮、符号化されてＲＡＭに記憶されたフレームではない、フレームに変更するのである。変更は、静止画記録の指示が入力された時点から所定フレーム数前の圧縮、符号化されたフレームを基準として、それより所定フレーム後に圧縮、符号化されたフレームに変更するか、または、それよりも所定フレーム前に圧縮、符号化されたフレームに変更する。
【００７７】
例えば、追記する動画データの先頭のフレームのＩＤＲ＿ＩＤに関する情報（ｄ）が、１４０である場合には、先頭フレームをそれより後に圧縮、符号化された１５４フレーム目に変更する。または、先頭フレームをそれよりも前に圧縮、符号化された１２６フレーム目に変更しても良い。なお、追記対象の動画データを増加させる場合には、ＲＡＭ１０２には、通常追記するフレーム数に加えて、増加させるのに必要なフレーム数のＩＤＲフレームを余分にバッファリングする。
【００７８】
この処理により、追記対象の動画データと既存動画ファイルの動画データの連結部分において、ＩＤＲ＿ＩＤが一致してしまう可能性を低減することができる。
【００７９】
そして、追記記録、新規記録が終了すると、追記が完了した動画データの最終フレームのＩＤＲ＿ＩＤに関する情報を、追記後の動画ファイルの「ｍｏｏｖアトム」のユーザーデータアトム「ｕｄｔａアトム」に格納する。追記が完了した動画データの最終フレームのＩＤＲ＿ＩＤは、追記対象の動画データの最終フレームのＩＤＲ＿ＩＤと同じである。
【００８０】
なお、音声についても同様に、ＣＰＵ１０１は、ＲＡＭ１０２に保持されている音声データを動画ファイルの音声として、記録媒体１４０に記録するように記録再生部１４１を制御する。そして、ＣＰＵ１０１は、フレーム画像と同様に、記録媒体１４０に記録されている既存の動画ファイルの音声データに対して、ＲＡＭ１０２に保持されている音声データを追記して記録する処理を行う。
【００８１】
ＣＰＵ１０１は、ＲＡＭ１０２に記憶された動画データ、音声データを記録媒体１４０に記録する際は、通常の動画データと同様に、以下のように処理を行う。すなわち、１５フレーム分（０．５秒分）の符号化された画像データと、０．５秒分の音声データとを一組にし、必要な各種情報を付加したデータストリームを形成し、ファイルシステムに従って記録媒体１４０に記録するように、記録再生部１４１を制御する。なお、３０フレーム分（１秒分）の動画データと、１秒分の音声データを一組としても良い。
【００８２】
このように、「ムービーダイジェストモード」においては、静止画撮影の指示が入力されると、ＣＰＵ１０１は、静止画撮影、静止画記録、動画追記記録などの動作を行う。そして、これらの動作が完了すると、ＣＰＵ１０１は、再び、動画のフレーム画像を撮影し、ＩＤＲフレームとして圧縮、符号化して、ＲＡＭ１０２に記憶するように符号化復号化処理部１６０を制御する。
【００８３】
なお、記録媒体１４０に記録されている既存の動画ファイルの動画データが追記対象とするべき動画データでない場合には、ＣＰＵ１０１は、新規に動画ファイルとして動画データと音声データとを記録媒体１４０に記録するように、記録再生部１４１を制御する。
【００８４】
なお、「ムービーダイジェストモード」においては、フレームレートや動画のサイズは、所定の値に固定される。
【００８５】
ここで、本実施例の撮像装置の「ムービーダイジェストモード」の動作について図２のフローチャートを用いて、詳細に説明する。
【００８６】
図２は、本実施例の撮像装置１００が「ムービーダイジェストモード」で動画記録を開始してから終了するまでの動作を示すフローチャートである。図２のフローチャートは、ＣＰＵ１０１が、撮像装置１００の各ブロックを制御することにより実行される動作を示すものである。
【００８７】
（Ｓ２１０）
まず、操作部１０４からの入力により、「ムービーダイジェストモード」に切り替える指示が入力されると、ＣＰＵ１０１は、ＲＡＭ１０２に記憶されている、符号化復号化処理部１６０により符号化されたフレーム数（ａ）を初期化して、ａ＝０とする。
【００８８】
（Ｓ２１１）
次に、ＣＰＵ１０１は、動画の１フレームに相当する画像を撮像するように撮像部１１０を制御し、得られた画像に動画用の所定の画像処理を施すように画像処理部１１１を制御する。
【００８９】
（Ｓ２１２）
次に、ＣＰＵ１０１は、Ｓ２１１で撮像された１フレームの画像信号をＩＤＲフレームとして符号化するように符号化復号化処理部１６０を制御する。前述したように、このとき符号化復号化処理部１６０は、符号化されたＩＤＲフレームのスライスヘッダに「ＩＤＲＩＤ」を付加する。なお、符号化復号化処理部１６０は、前述したように、ＩＤＲフレームとして符号化を行うたびに、ＩＤＲ＿ＩＤとして、「０」から「２５５」までの数字を順次インクリメントしながら付与する。
【００９０】
（Ｓ２１３）
次に、ＣＰＵ１０１は、Ｓ２１２で圧縮、符号化されたＩＤＲフレームをＲＡＭ１０２にバッファ（一時的に記憶）する。
【００９１】
（Ｓ２１４）
次に、ＣＰＵ１０１は、ＲＡＭ１０２に記憶されている、符号化復号化処理部１６０により符号化されたフレーム数「ａ」を「１」インクリメントして、ａ＝ａ＋１とする。
【００９２】
なお、本実施例ではＲＡＭ１０２に、圧縮、符号化されたＩＤＲフレームおよび、符号化復号化処理部１６０により符号化されたフレーム数「ａ」を記憶するものとしているが、同一のＲＡＭに記憶する必要は特になく、別々のＲＡＭに記憶しても良い。
【００９３】
（Ｓ２２０）
次に、ＣＰＵ１０１は、操作部１０４により静止画撮影の指示が入力されたか否かを判定する。そして、静止画撮影の指示が入力されていない場合（Ｓ２２０でＮｏ）、ＣＰＵ１０１は、Ｓ２１１からＳ２１４の処理を繰り返す。すなわち、静止画撮影の指示が入力されるまでは、撮像部１１０により得られ、画像処理部１１１により処理された画像信号を順次、符号化復号化処理部１６０によりＩＤＲフレームとして圧縮、符号化させ、ＲＡＭ１０２に順次記憶する。そして、ＲＡＭ１０２に記憶されている、圧縮、符号化されたフレーム数「ａ」を順次インクリメントしていく。
【００９４】
なお、本実施例の撮像装置１００においては、例えば２秒分のフレーム画像（６０フレーム）がＲＡＭ１０２に記憶されるまでは、Ｓ２１１からＳ２１４の処理を繰り返すようにしてもよい。
【００９５】
（Ｓ２２１）
そして、静止画撮影の指示が入力された場合（Ｓ２２０でＹｅｓ）、ＣＰＵ１０１は、動画用の撮像を停止するように撮像部１１０を制御し、同様に動画用の画像処理を停止するように画像処理部１１１を制御する。
【００９６】
（Ｓ２２２）
次に、ＣＰＵ１０１は、静止画撮影の指示に基づく静止画撮影を行う。すなわち、ＣＰＵ１０１は、静止画撮影用の設定に従って、撮像部１１０のシャッター速度、絞り、フォーカス位置などを調整させ、撮像部１１０にシャッター開放中に撮像素子により得られたアナログ画像信号をデジタル画像信号に変換して出力させる。そして、ＣＰＵ１０１は、得られた画像信号に静止画用画像処理を施すように画像処理部１１１を制御する。そして、画像処理部１１１で処理された画像信号をＲＡＭ１０２に記憶させる。
【００９７】
（Ｓ２２３）
次に、ＣＰＵ１０１は、画像処理部１１１に処理された画像信号をたとえばＪＰＥＧとして圧縮、符号化して静止画データを生成するように符号化復号化処理部１６０を制御する。次にＣＰＵ１０１は、符号化復号化処理部１６０で処理された静止画データをＲＡＭ１０２に再び記憶させる。
【００９８】
（Ｓ２２４）
次に、ＣＰＵ１０１は、ＲＡＭ１０２に記憶された静止画データを静止画ファイルとして記録媒体１４０に記録するように記録再生部１４１を制御する。
【００９９】
次に、ＣＰＵ１０１は、記録媒体１４０に記録されている既存の動画ファイルの動画データに対して、ＲＡＭ１０２に記憶されているＩＤＲフレームの動画データを追記する処理を行う。
【０１００】
（Ｓ２３０）
まず、ＣＰＵ１０１は、記録媒体１４０に記録されている既存の動画ファイルの動画データが追記対象とするべき動画データであるかを判定し、追記記録を行うか（Ｓ２３０でＹｅｓ）、追記せずに新規記録を行うか（Ｓ２３０でＮｏ）を決定する。追記記録を行わない条件については、後述する。
【０１０１】
（Ｓ２３１）
そして、既存の動画ファイルの動画データが追記対象とするべき動画データであると判定した場合には（Ｓ２３０でＹｅｓ）、ＣＰＵ１０１は、以下の処理を行う。ＣＰＵ１０１は、追記する予定の動画データの先頭のＩＤＲフレームのＩＤＲ＿ＩＤに関する情報（ｄ）を算出する。
【０１０２】
具体的には、まず、符号化復号化処理部１６０により符号化されたフレーム数（ａ）をＲＡＭ１０２から読出し、追記する動画データの所定フレーム数（ｂ）から、追記する予定の動画データの先頭のフレーム番号（ｃ）を算出する。そして、先頭のフレーム番号（ｃ）と、符号化復号化処理部１６０において付与されるＩＤＲ＿ＩＤの周期とから、追記する予定の動画データの先頭フレームのＩＤＲ＿ＩＤに関する情報（ｄ）を算出する。すなわち、ＲＡＭ１０２に記憶された動画データの、静止画記録の指示が入力された時点より、所定フレーム数（ｂ）前に圧縮、符号化されてＲＡＭに記憶されたＩＤＲフレームのＩＤＲ＿ＩＤに関する情報（ｄ）を算出する。
【０１０３】
ここで、符号化復号化処理部１６０により符号化されたフレーム数（ａ）は、ムービーダイジェストモードに移行してから符号化復号化処理部１６０により圧縮、符号化されたフレーム数と同じ数を示しているといえる。そして、追記する動画データの所定のフレーム数（ｂ）は、本実施例のように静止画撮影の指示が入力される前の４秒のＩＤＲフレームの動画データを追記する設定の場合には、３０フレーム／秒の４秒分であるため１２０フレームである。そうすると、追記する動画データの先頭のフレーム番号（ｃ）は「ｃ＝ａ−ｂ」で算出される。さらに、前述したように、符号化復号化処理部１６０において、付与するＩＤＲ＿ＩＤは０から２５５の２５６個であるので、追記する動画データの先頭のフレーム番号（ｃ）を２５６で除算した「あまり」から１を減算した値が、ＩＤＲ＿ＩＤと同じ数を示すといえる。ここでは、この「あまり」を算出し１を減算して、追記する動画データの先頭フレームのＩＤＲ＿ＩＤに関する情報（ｄ）としている。
【０１０４】
すなわち、図３Ａに示すように、ＲＡＭ１０２には、複数のＩＤＲフレームが記憶されており、静止画記録の指示が入力された時点から１２０（ｂ）フレーム遡ったフレームが追記する動画データの先頭となり、フレーム番号は（ｃ）となる。そして、追記する動画データの先頭フレームのＩＤＲ＿ＩＤに関する情報（ｄ）は、前述の計算より求めることができる。
【０１０５】
例えば、ａ＝１３５５である場合、ｃ＝１２３６であり、これを２５６で除算すると「あまり」は、２１２となり、ｄ＝２１１となる。
【０１０６】
なお、ＲＡＭ１０２に記憶されているＩＤＲフレームの数が１２０フレーム無い場合には、追記する動画ファイルの先頭のフレーム番号は１（ｃ＝１）となり、よって、追記する動画データの先頭フレームのＩＤＲ＿ＩＤに関する情報は０（ｄ＝０）となる。
【０１０７】
（Ｓ２３２）
次に、ＣＰＵ１０１は、図３Ｂに示すように、既存動画ファイルの「ｍｏｏｖアトム」のユーザーデータアトム「ｕｄｔａアトム」を読出すように記録再生部１４１を制御し、既存動画ファイルの動画データの最終フレームのＩＤＲ＿ＩＤに関する情報（ｅ）を取得する。
【０１０８】
（Ｓ２４０）
次に、ＣＰＵ１０１は、追記する予定の動画データの先頭のフレームのＩＤＲ＿ＩＤに関する情報（ｄ）と、既存動画ファイルの動画データの最後のフレームのＩＤＲ＿ＩＤに関する情報（ｅ）とが同一であるか否かを判定する。ここでいう、追記する予定の動画データの先頭のフレームとは、ＲＡＭ１０２に記憶された動画データの、静止画記録の指示が入力された時点より、所定フレーム数（ｂ）前に圧縮、符号化されてＲＡＭに記憶されたフレームである。
【０１０９】
（Ｓ２４１）
そして、ｄ＝ｅである場合には（Ｓ２４０でＹｅｓ）、ＣＰＵ１０１は、追記する動画データの先頭の（時間的に古い）１５フレームをＲＡＭ１０２から削除する。
【０１１０】
このようにすることで、追記する動画データの先頭のＩＤＲ＿ＩＤは、（ｄ＋１５）または、（ｄ−２５６＋１５）のいずれかになり、追記する動画データと、既存動画ファイルの動画データの連結位置においてＩＤＲ＿ＩＤが隣接しないようにすることができる。
【０１１１】
すなわち、図３Ｃに示すように、ＲＡＭ１０２に記憶されている追記する予定の動画データの先頭フレーム（ｃ）から１５フレームを削除し、追記開始フレームの位置をｃ＋１５フレーム目とするのである。
【０１１２】
なお、本実施例では、１５フレーム削除するようにしたが、これは一例であって、１フレームであっても、２フレームであってもよい。ただし、符号化復号化処理部１６０のＩＤＲ＿ＩＤで使用する番号の周期が２５６フレームであるため、２５６フレーム削除したとすると、削除後の先頭フレームのＩＤＲ＿ＩＤは、削除前と同じになってしまう。つまり、符号化復号化処理部１６０のＩＤＲ＿ＩＤで使用する番号の倍数を除いた整数フレーム以外であれば何フレームであってもよい。なお、符号化復号化処理部１６０により符号化されたフレーム数（ａ）と、追記する動画データのフレーム数（ｂ）とから求められた、追記する動画データの先頭のフレーム（ｃ）以降を追記すれば、フレームをＲＡＭ１０２から削除しなくても良い。
【０１１３】
また、本実施例では、追記する予定の動画データの追記開始フレームを時間的に後方向に変更する例について説明したが、時間的に前方向に変更しても良い。すなわち、前述の例を用いて説明すると、図３Ｄに示すように追記開始フレームをｃ−１５フレーム目としてもよい。この場合も符号化復号化処理部１６０のＩＤＲ＿ＩＤで使用する番号の周期に合わせて２５６フレーム前を追記開始フレームとはしないようにする。
【０１１４】
すなわち、本実施例においては、追記する予定の動画データの先頭フレームのＩＤＲ＿ＩＤに関する情報（ｄ）と、既存の動画データの最終フレームのＩＤＲ＿ＩＲに関する情報（ｅ）が一致する場合には、ＣＰＵ１０１は、以下の処理を行う。ＣＰＵ１０１は、追記する予定の動画データの先頭フレームとは異なるフレームが追記を開始するフレームとなるように追記対象の動画データを決定する。ここで、追記する予定の動画データの先頭のフレームとは、ＲＡＭ１０２に記憶された動画データの、静止画記録の指示が入力された時点より、所定フレーム数（ｂ）前に圧縮、符号化されてＲＡＭに記憶されたフレームである。
【０１１５】
（Ｓ２４２）
次に、ＣＰＵ１０１は、追記する動画データのフレーム数が６０フレーム未満になっているか否かを判定する。判定の結果、追記する動画データのフレーム数が６０フレーム未満になった場合には（Ｓ２４２でＹｅｓ）、後述する追記処理（Ｓ２５０）は行わない。
【０１１６】
これは、２秒未満の動画データは、追記を行ってもかえって見にくくなってしまうので、このような場合には追記処理を行わないようにするためである。すなわちフレーム数が所定数未満になった場合には、追記処理を行わないのである。
【０１１７】
（Ｓ２５０）
ＣＰＵ１０１は、ｄ＝ｅでない場合（Ｓ２４０でＮｏ）、追記する動画データのフレーム数が６０フレーム未満になっていない場合（Ｓ２４２でＮｏ）、追記記録処理を行う。
【０１１８】
追記記録処理については、図４、５を用いて後述するが、Ｓ２４１間での処理により、図３Ｅに示すように、既存動画ファイルの動画データの最終フレームと、追記する動画データの先頭フレームのＩＤＲ＿ＩＤが同一にならない状態で、追記を行うことができる。
【０１１９】
（Ｓ２６０）
ＣＰＵ１０１は、既存の動画ファイルの動画データが追記対象とするべき動画データでないと判定した場合（Ｓ２３０でＮｏ）、既存動画ファイルの動画データに対する動画データの追記は行わない。この場合には、ＲＡＭ１０２に記憶されているＩＤＲフレームの動画データを記録媒体１４０に記録するように記録再生部１４１を制御する。そして、記録した動画データの再生に必要なオフセット情報などの情報を作成し、新規な動画ファイルのヘッダ（またはｍｏｏｖアトム）として、記録媒体１４０に記録するように記録再生部１４１を制御する。
【０１２０】
（Ｓ２７０）
ＣＰＵ１０１は、追記記録処理（Ｓ２５０）または、新規記録処理（Ｓ２６０）が終了すると、記録した動画ファイルの「ｍｏｏｖアトム」のユーザーデータアトム「ｕｄｔａアトム」に、記録した動画ファイルの最終フレームのＩＤＲ＿ＩＤに関する情報（ｅ）を記録する。
【０１２１】
ここでは、追記する動画データの最終フレームのＩＤＲ＿ＩＤに関する情報が最終フレームとなるので、符号化復号化処理部１６０により符号化されたフレーム数（ａ）を２５６で除算し、「あまり」から１を減算することで最終フレームのＩＤＲ＿ＩＤに関する情報（ｅ）を算出する。そして、算出された情報を、記録した動画ファイルの「ｍｏｏｖアトム」のユーザーデータアトム「ｕｄｔａアトム」に、記録した動画ファイルの最終フレームのＩＤＲ＿ＩＤに関する情報（ｅ）として記録する。
【０１２２】
（Ｓ２８０）
次に、ＣＰＵ１０１は、操作部１０４により「ムービーダイジェストモード」以外のモードへ切り替えられたか否かを判定し、モードが切り替えられると（Ｓ２８０でＹｅｓ）、「ムービーダイジェストモード」の撮影動作を終了する。モードの切替えがない場合には（Ｓ２８０でＮｏ）、再び処理をＳ２１０に戻して、一連の処理を再開する。
【０１２３】
以上の処理により、本実施例の撮像装置１００は、「隣接するＩＤＲフレームにおいては、異なるＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）を割り当てなければならない」といった制約のある圧縮方式の動画データを連結したとしても、制約に違反しない動画データを生成することができる。
【０１２４】
ここで、Ｓ２５０の追記処理の動作について図４、５を用いて説明する。
【０１２５】
図４は、動画データの連結（追記）をする編集を行う場合の撮像装置の制御動作を示す図であり、図５は、図４の各ステップに対応し、記録媒体１４０内の動画ファイルの状態を示す図である。図４の動作は、ＣＰＵ１０１が、撮像装置１００の各ブロックを制御することにより実行される処理である。
【０１２６】
まず、ＣＰＵ１０１は、Ｓ２０２で、ＲＡＭ１０２に記憶させた所定時間分の動画データを記録媒体１４０の空き領域に記録するように記録再生部１４１を制御する（Ｓ４１０）。このとき、ファイルシステムとしては、ＦＡＴを用いているため、基本的なルールに則り、空いているクラスタに動画データを記録する。
【０１２７】
図５（ａ）は、ＲＡＭ１０２のＩＤＲフレームの追記する動画データを記録媒体１４０に記録する前の既存の動画ファイルの記録状態を示す図である。図５（ａ）においては、クラスタ１から２にかけて、既存の動画ファイルの動画データが記録されており、クラスタ３に既存の動画ファイルのヘッダが記録されている。動画ファイルは、このように、クラスタ１から３に記録されている。そして、ＦＡＴ領域には、クラスタ番号３→１→２の順でファイルが記録されていることを示すようにＦＡＴエントリーにクラスタ番号が記録されている。すなわち、クラスタ番号３のＦＡＴエントリーには「１」が記録されており、クラスタ番号１のＦＡＴエントリーには「２」が記録されており、クラスタ番号２のＦＡＴエントリーには、ファイル終端を示す「ＦＦ」が記録されている。そのため、既存の動画ファイルは、クラスタ番号３→１→２の順で記録媒体からデータを読み出せばよいのである。
【０１２８】
そして、Ｓ４１０で、ＲＡＭ１０２に記憶された追記する動画データを記録媒体１４０に記録した状態を示す図が、図５（ｂ）である。図５（ｂ）では、クラスタ４、５に、所定時間分の動画データが記録された状態を示している。この状態では、ＦＡＴ領域のＦＡＴエントリーを確認してもわかるように、追記する動画データは、クラスタ１から３に記録された既存の動画ファイルとは、別のクラスタ４、５に記録されたデータとなっている。
【０１２９】
次に、Ｓ４２０の処理を説明する。ここで、Ｓ４１０の処理が開始していれば、Ｓ４１０の処理が終了していなくても、Ｓ４２０の処理を開始しても良い。
【０１３０】
ＣＰＵ１０１は、ＲＡＭ１０２に記憶された追記する動画データの記録が開始した後に、記録媒体１４０に記録された既存の動画ファイルの動画データを解析し、連結位置を特定する。連結位置は、本実施例では、既存の動画ファイルの動画データの後とする。この処理は、既存の動画ファイルのサイズが大きいほど、ファイルの読み出しや解析に時間がかかるので、連結位置の特定までにも時間がかかることがある。
【０１３１】
次に、ＣＰＵ１０１は、記録媒体１４０に記録された、所定時間分の動画データを既存の動画ファイルに連結（追記）するために、ＦＡＴエントリーを書き換えるように、記録再生部１４１を制御する（Ｓ４３０）。すなわち、図５（ｃ）に示すように、既存の動画ファイルの終端がクラスタ番号２である状態を変更し、クラスタ２の後、続けて、クラスタ４、５を読むように修正する。具体的には、ＦＡＴのクラスタ番号２のＦＡＴエントリーをファイル終端を示す「ＦＦ」から、新規動画データの記録されているクラスタの先頭であるクラスタ４を読むように、「４」に書き換えるのである。
【０１３２】
そして、ＣＰＵ１０１は、既存の動画ファイルのｍｏｏｖアトムを読み出して、新規動画データのデータを管理する情報を追記するように、ｍｏｏｖアトムに記録された情報を編集し、記録媒体１４０に記録する（Ｓ４４０）。ｍｏｏｖアトムにはたとえば、動画の特定のフレーム、または特定のＧＯＰの開始位置が動画ファイルのどの位置のデータであるかを示すようなオフセット管理情報が記録されることになる。このような処理により、図５（ｃ）に示すように、連結編集後の動画ファイルは、クラスタ１から５からなり、クラスタ番号３→１→２→４→５の順で記録された状態になる。
【０１３３】
以上のように追記記録処理は実行される。
【０１３４】
このように、本実施例の撮像装置１００のＣＰＵ１０１は、撮影の指示が入力されると、撮影の指示が入力されるまでに、ＲＡＭ１０２に記憶された所定時間分の動画データを記録媒体１４０に記録するように記録再生部１４１を制御する（Ｓ４１０）。そして、ＲＡＭ１０２に記憶された所定時間分の動画データの記録が開始した後に、ＣＰＵ１０１は、記録媒体１４０に記録された既存の動画ファイルの動画データを解析し、連結位置を特定する（Ｓ４２０）。その後、連結位置に続けて前記所定時間分の動画データが再生されるように前記既存の動画ファイルを編集するようにＦＡＴやヘッダを編集している。
【０１３５】
これにより、本実施例の撮像装置は、記録媒体１４０に記録された既存の動画ファイルの動画データに新規に撮影された動画データを連結する場合。既存動画ファイルの連結位置を解析する前に、ＲＡＭに一時的に記憶されている新規動画データを記録媒体に記録するようにし、ＲＡＭ１０２の動画データ記憶領域を解放することができるようにしている。そのため、既存動画ファイルの連結位置を特定する前に、ＲＡＭ１０２の動画データ記憶領域に、次の動画データを記憶できるようにすることができ、次に動画データを撮影するまでの時間が長くならないようにすることができる。
【０１３６】
ここで、本実施例の符号化復号化処理部１６０の詳細な構成について説明する。
【０１３７】
図６は、符号化復号化処理部１６０における符号化処理のブロックを示す図である。図６において、ＲＡＭ１０２より読み出された動画用のデジタル画像信号が水平、垂直それぞれ所定数の画素からなるマクロブロック毎に入力され、演算部６０１、フレーム内予測部６０８、動き予測部６１１に出力される。演算部６０１は、切り替え部６１３から出力された予測画像データと入力された画像データとの差分を演算し、整数変換部６０２に出力する。整数変換部６０２は、演算部６０１からのデータに対して直交変換の一つである整数変換処理を施し、入力されたデータを空間成分から周波数成分に変換して量子化部６０３に出力する。量子化部６０３は、量子化テーブル選択部６１２から供給された量子化テーブルに従って、各マクロブロックの変換係数を量子化し、エントロピー符号化部６０４と逆量子化部６０５に出力する。本実施形態では、マクロブロックの各変換係数に対する量子化幅（量子化ステップ）が割り当てられた量子化テーブルを複数用意し、量子化テーブル選択部６１２はこれらの量子化テーブルを保持している。量子化テーブル選択部６１２は、後述の様に、ＣＰＵ１０１からの圧縮強度Ｑの値に対応した量子化テーブルを選択し、量子化部６０３に送る。
【０１３８】
逆量子化部６０５は、入力されたデータを逆量子化し、逆整数変換部６０６に出力する。逆整数変換部６０６は、逆量子化部６０５からのデータに対して逆整数変換処理を施して、元の空間成分のデータに変換し、演算部６０７に出力する。演算部６０７は、切り替え部６１３からの予測画像データと逆整数変換処理されたデータとを加算し、フレーム内予測部６０８、ループフィルタ６０９に出力する。ループフィルタ６０９は、演算部６０７からの局部復号データに対して指定されたフィルタ処理を施し、蓄積部６１０に記憶する。蓄積部６１０はループフィルタ６０９からの画像データを記憶する。動き予測部６１１は、第２の圧縮モードにおいて、Ｐフレームを処理する際に、蓄積部６１０に記憶された参照フレームの画像データのうち、入力された画像データとの間の予測誤差（差分）が最も少なくなるマクロブロックを検出し、検出したマクロブロックに対する動きベクトルを動き補償部６１１に知らせる。動き補償部６１２は、動きベクトルに従い、蓄積部６１０から予測画像データとしてのマクロブロックのデータを読み出し、切り替え部６１３に出力する。
【０１３９】
一方、フレーム内予測部６０８は、「ムービーダイジェストモード」、或いは、「動画撮影モード」においてＩフレーム、ＩＤＲフレームを処理する際に、フレーム内予測処理を行う。即ち、フレーム内予測部６０８は、演算部６０７からの、入力されたマクロブロックの画像データに対して画面上で上、もしくは左に隣接する画素のデータと、入力された画像データとに基づいて、最適なイントラ予測モードを検出する。そして、検出したイントラ予測モードで処理するために必要な予測画像データを切り替え部６１３に出力する。Ｈ．２６４では、互いに異なる所定数のイントラ予測モードが用意されている。フレーム内予測部６０８は、これらの予測モードのうち、予測誤差が最も少なくなる予測モードを検出する。
【０１４０】
切り替え部６１３は、ＣＰＵ１０１からの指示に従い、フレーム内予測部６０８と動き補償部６１２からの予測画像データの一方を選択し、演算部６０１と６０７に出力する。切り替え部６１３は、「ムービーダイジェストモード」においては、動画の記録中は常にＩＤＲフレームとして画像を圧縮するため、常にフレーム内予測部６０８からの予測画像データを選択して出力する。また、切り替え部６１３は、「動画撮影モード」においては、Ｉフレームを処理する際にはフレーム内予測部６０８からの予測画像データを選択し、Ｐフレームを処理する際には動き補償部６１２からの予測画像データを選択する。
【０１４１】
フレーム内予測部６０８が検出した予測モードを示す情報と、動き予測部６１１が検出した動きベクトルのデータはエントロピー符号化部６０４に出力される。エントロピー符号化部６０４は、量子化部６０３からのデータと、量子化テーブル選択部６１２により選択されている量子化テーブルの番号、予測モードを示す情報、或いは、動きベクトルのデータを符号化し、圧縮された動画データとして出力する。また、このとき、マクロブロックの集合からなるスライスのスライスヘッダに「ＩＤＲＩＤ」を付加する。
【０１４２】
なお、本実施例の撮像装置１００は、基本的に、既存動画ファイルの動画データに対して、ＲＡＭ１０２に記憶されているＩＤＲフレームの動画データを追記するが、以下のような条件を満たす場合には、追記しないようにしている。すなわち、Ｓ２３０でＮｏとなる条件は以下のとおりである。なお、以下の説明においては、説明を簡単にするために、ＲＡＭ１０２に記憶されているＩＤＲフレームの動画データを「新規動画データ」と呼称する。
【０１４３】
・追記対象の既存動画ファイルがプロテクトされている場合
記録媒体１４０に記録されている特定の動画ファイル「ＭＤＧ＿０００Ｘ．ＭＯＶ」がプロテクトされている場合には、ユーザがファイルの改変を望まないファイルである可能性が高いので、追記不可能とする。
【０１４４】
・追記撮影によりファイルサイズが所定のサイズを超える場合
記録媒体１４０は、前述したようにたとえばＦＡＴファイルシステムで管理されている。その場合、たとえば、ＦＡＴ３２では、１ファイルあたり４ＧＢ以上になると読み込めなくなってしまう。そのため、次の撮影により「追記動画ファイル」が４ＧＢを超える場合には、追記不可能とする。
【０１４５】
・追記対象の既存動画ファルの動画のＧＯＰ構造に異常がある場合
記録媒体１４０に記録されている追記対象である特定の動画ファイル「ＭＤＧ＿０００Ｘ．ＭＯＶ」のチェックの結果、ＧＯＰ構造に異常がある場合には、追記する動画データにまで影響が出てしまう可能性があるので、追記不可能とする。
【０１４６】
・追記対象のファイルが無い場合
「ムービーダイジェストモード」で撮影された動画には、ファイル名として、「ＭＤＧ＿０００Ｘ．ＭＯＶ」という、ＭＤＧという識別子と通し番号４桁が付加されるようになっている。しかし、ファイル名に「ＭＤＧ」を含む識別子の動画がない場合には、「ムービーダイジェストモード」で撮影された動画ファイルが存在しないので、追記不可能とする。また、撮像装置１００の不図示の不揮発性メモリに最後に「ムービーダイジェストモード」で記録した動画ファイルのファイル名を記録させておき、そのファイルが存在しない場合にも、追記不可能とする。
【０１４７】
・追記対象の動画ファイルの撮影日が撮像装置に設定された日と異なる場合
「ムービーダイジェストモード」で同一撮影日に撮影された動画データを順次追記する場合には、日付の変更に伴って、別の動画ファイルを記録することになるので、追記不可能とする。
【０１４８】
・追記対象の動画ファイルに関連づけられた地域設定が撮像装置に設定された地域と異なる場合
「ムービーダイジェストモード」で同一地域で撮影された動画データを順次追記する場合には、地域の変更に伴って、別の動画ファイルを記録することになるので、追記不可能とする。たとえば地域情報は、ＧＰＳユニットを用いて、得られた位置情報を用いても良いし、撮像装置の時計の設定時に選択する、「国」の情報を用いても良い。
【０１４９】
・追記対象の動画ファイルに関連づけられた撮像装置の情報が、新規動画データを撮影する撮像装置と異なる場合
同一の撮像装置で、「ムービーダイジェストモード」で撮影された動画データのみを追記する場合には、記録媒体に記録された追記対象の動画ファイルに関連づけられた撮像装置の識別情報が、撮影を行う撮像装置と一致するかを確認する。そして、異なる場合には追記不可とする。
【０１５０】
・動画記録設定が追記元の既存動画ファイルと同一でない場合
本実施例のように、既存動画ファイルに新規動画データを追記する場合には、動画の途中で、フレームレートや画像サイズ、ＧＯＰ構成、動画符号化方式が変更されてしまうと、シームレスに再生できなくなってしまう可能性がある。そのため、既存動画ファイルの動画データと、新規動画データの動画記録設定が同一でない場合には、追記不可能とする。フレームレートや画像サイズ、ＧＯＰ構成、動画符号化方式等の情報は、既存動画ファイルのファイルヘッダ等に記録されている。
【０１５１】
・音声記録設定が追記元の既存動画ファイルと同一でない場合
本実施例のように、既存動画ファイルに新規動画データを追記する場合には、動画の途中で、音声のサンプリングレート、チャンネル数、ビット深度や、音声符号化方式等が変更されてしまうと、再生できなくなってしまう可能性がある。そのため、既存動画ファイルの動画データと、新規動画データファイルの音声記録設定が同一でない場合には、追記不可能とする。音声のサンプリングレートや、音声符号化方式等の情報は、既存動画ファイルのファイルヘッダ等に記録されている。
【０１５２】
・記録媒体１４０の挿抜履歴がある場合
撮像装置１００の起動時に、制御部１０１は、最後に連続動画撮影モードにおいて撮影した後に、記録媒体１４０が挿抜された履歴が、不図示の不揮発性メモリに残っている場合には、追記不可能とする。これは、記録媒体１４０に記録されている「ＭＤＧ＿０００Ｘ．ＭＯＶ」がコンピュータなどにより編集されてしまい、画像サイズなどが変更され、追記により動画ファイル自体が壊れたりする可能性を低減するためである。そのためには、追記対象の「ＭＤＧ＿０００Ｘ．ＭＯＶ」のファイルヘッダに記録されている撮影日時情報と、不揮発性メモリに残っている挿抜履歴の時間情報とを比較する。追記動画ファイル「ＭＤＧ＿０００Ｘ．ＭＯＶ」は、その動画に記録されている複数のシーンの動画データのうち、最初に撮影された時間情報をファイルヘッダに記録されるようになっている。
【０１５３】
・追記撮影により動画再生時間が所定時間を超える場合
撮像装置１００においては、所定時間（たとえば、３０分）を超える撮影を望まない場合を考慮し、連続動画撮影モードにおいて、新たな撮影をすることにより、「追記動画ファイル」の動画データの再生時間が３０分を超える場合には、追記不可能とする。そのためには、たとえば、ファイルヘッダに記載されている「追記動画ファイル」の再生時間を読み出して、２９分５８秒等であれば、追記不可能とするのである。
【０１５４】
・追記元の動画ファイルの記録されているフォルダ内のファイル数が所定数以上になる場合
撮像装置１００においては、静止画ファイルや動画ファイルを記録媒体１４０に記録するファイル数をＤＣＦという規格に基づいて記録している。このＤＣＦ規格では、１つのフォルダ内に最大９９９９個のファイルを記録可能としているが、本実施例のように撮影を行った際に、静止画ファイルが新たに生成されるため、静止画ファイルが追記元の動画ファイルの格納されているフォルダに記録できないことがある。その場合には、関連する静止画ファイルと、追記元の動画ファイルとが異なるフォルダに格納されてしまい、ユーザが後で閲覧するときに見づらくなってしまう。そこで、このような場合には、追記をせずに、動画を新規なファイルとして記録し、なおかつ新しいフォルダに格納するものとする。ここでは９９９９個のファイルを上限として説明したが、９９９個でも良いし、９００個でも良いし、１００個でも良い。
【０１５５】
・著作権者情報が一致しない場合
撮像装置１００は、ユーザが操作部１０４を操作することで、著作権者名や作成者名を不図示の不揮発性メモリに記憶させることが可能である。そして、不揮発性メモリに記憶された著作権者名や作成者名は、動画ファイルや静止画ファイルを記録媒体１４０に記録する際に制御部１０１により読出され、動画ファイルや静止画ファイル内にメタデータとして格納される。つまり、記録媒体１４０に格納されている複数の動画ファイルや静止画ファイルにはそれぞれ異なる著作権者名や作成者名がメタデータとして格納されることがある。本実施例においては、記録媒体１４０に記録されている追記対象である特定の動画ファイル「ＭＤＧ＿０００Ｘ．ＭＯＶ」の著作権者名や作成者名が、今回記録を行った際に不揮発性メモリに記憶されている著作権者名や作成者名と一致しない場合には、追記を禁不可能とする。このようにすることで異なる著作権者名や作成者名が一つの動画ファイル内に混在することを避けることができる。
【０１５６】
また、記録媒体１４０もしくは既存動画ファイルが壊れているなどの原因により、正常にチェックすることができなかった場合も、追記不可と判定する。
【０１５７】
以上説明したように、本実施例の撮像装置１００は、「隣接するＩＤＲフレームにおいては、異なるＩＤＲフレーム識別ＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）を割り当てなければならない」といった制約のある圧縮方式の動画データを連結したとしても、制約に違反しない動画データを生成することができる。
【０１５８】
なお、本実施例においては、「ムービーダイジェストモード」において、静止画撮影の指示が入力されたときに、ＲＡＭ１０２に記憶していたＩＤＲフレームの動画データを、記録媒体１４０に記録されている既存の動画ファイルに追記して記録する場合について説明した。しかしながら、追記記録するのは、静止画撮影の指示に応じて行わなくとも、動画記録の指示が入力されたときに、ＲＡＭ１０２に記憶していたＩＤＲフレームの動画データを、記録媒体１４０に記録されている既存の動画ファイルに追記して記録してもよい。すなわち、静止画撮影を行わなくても良い。
【０１５９】
また、静止画撮影の指示が入力された場合に動画の撮影を中断しなくても良い。動画の撮影を中断しない場合には、動画の記録停止の指示が入力された時点で、最後のフレームの番号、すなわち、符号化復号化処理部１６０で圧縮、符号化されたフレームの数が確定する。そのため、動画の記録停止の指示が入力された場合に、ＣＰＵ１０１は、符号化復号化処理部１６０で圧縮、符号化されたフレームの数を２５６で除算した「あまり」を算出し、その数から１を減算した値を、最終フレームのＩＤＲ＿ＩＤに関する情報（ｅ）とする。そして、追記した動画ファイルのｍｏｏｖアトムのユーザーデータアトムに、最終フレームのＩＤＲ＿ＩＤに関する情報（ｅ）を格納するように記録再生部１４１を制御する。また、静止画撮影の指示ではなく、動画記録の指示が入力されたときに、静止画撮影を行わずに、同様の動作を行っても良い。
【０１６０】
本実施例では、撮像装置について説明した。撮像装置としては、一般的なコンパクトデジタルカメラ、デジタル一眼カメラ、ビデオカメラ、携帯電話が含まれる。また、本発明の技術を適用可能な装置は、撮像装置に限らず、たとえば、カメラを接続したパーソナルコンピュータであっても良い。
【０１６１】
（他の実施形態）
上述の実施形態は、システム或は装置のコンピュータ（或いはＣＰＵ、ＭＰＵ等）によりソフトウェア的に実現することも可能である。従って、上述の実施形態をコンピュータで実現するために、該コンピュータに供給されるコンピュータプログラム自体も本発明を実現するものである。つまり、上述の実施形態の機能を実現するためのコンピュータプログラム自体も本発明の一つである。
【０１６２】
なお、上述の実施形態を実現するためのコンピュータプログラムは、コンピュータで読み取り可能であれば、どのような形態であってもよい。例えば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等で構成することができるが、これらに限るものではない。上述の実施形態を実現するためのコンピュータプログラムは、記憶媒体又は有線／無線通信によりコンピュータに供給される。プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記憶媒体、ＭＯ、ＣＤ、ＤＶＤ等の光／光磁気記憶媒体、不揮発性の半導体メモリなどがある。
【０１６３】
有線／無線通信を用いたコンピュータプログラムの供給方法としては、コンピュータネットワーク上のサーバを利用する方法がある。この場合、本発明を形成するコンピュータプログラムとなりうるデータファイル（プログラムファイル）をサーバに記憶しておく。プログラムファイルとしては、実行形式のものであっても、ソースコードであっても良い。そして、このサーバにアクセスしたクライアントコンピュータに、プログラムファイルをダウンロードすることによって供給する。この場合、プログラムファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに分散して配置することも可能である。つまり、上述の実施形態を実現するためのプログラムファイルをクライアントコンピュータに提供するサーバ装置も本発明の一つである。
【０１６４】
また、上述の実施形態を実現するためのコンピュータプログラムを暗号化して格納した記憶媒体を配布し、所定の条件を満たしたユーザに、暗号化を解く鍵情報を供給し、ユーザの有するコンピュータへのインストールを許可してもよい。鍵情報は、例えばインターネットを介してホームページからダウンロードさせることによって供給することができる。また、上述の実施形態を実現するためのコンピュータプログラムは、すでにコンピュータ上で稼働するＯＳの機能を利用するものであってもよい。さらに、上述の実施形態を実現するためのコンピュータプログラムは、その一部をコンピュータに装着される拡張ボード等のファームウェアで構成してもよいし、拡張ボード等が備えるＣＰＵで実行するようにしてもよい。
【図１】
0005773855.tif 000002
【図２】
0005773855.tif 000003
【図３】
0005773855.tif 000004
【図４】
0005773855.tif 000005
【図５】
0005773855.tif 000006
【図６】
0005773855.tif 000007