(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-12
(45)【発行日】2024-07-23
(54)【発明の名称】撮像装置、記録方法、及びプログラム
(51)【国際特許分類】
H04N 5/91 20060101AFI20240716BHJP
H04N 23/60 20230101ALI20240716BHJP
【FI】
H04N5/91
H04N23/60 300
(21)【出願番号】P 2020068651
(22)【出願日】2020-04-06
【審査請求日】2023-03-09
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】中▲濱▼ 孝之
【審査官】鈴木 隆夫
(56)【参考文献】
【文献】特開2006-074391(JP,A)
【文献】特開2007-006140(JP,A)
【文献】特開2003-289495(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 5/782-5/784
H04N 5/80-5/907
H04N 5/91-5/956
H04N 23/60
(57)【特許請求の範囲】
【請求項1】
動画像を撮影する撮像手段と、
撮影した動画像をファイルとして記録媒体に記録する制御手段とを有し、
前記制御手段は、
動画記録を停止したときには、動画像よりも後の位置にヘッダを配置する場合のオフセットを用いて前記ファイルにおける動画像の位置を示す第1のヘッダを前記ファイルに書き込み、前記第1のヘッダを書き込んだ後に、前記第1のヘッダを、前記動画像よりも前の位置にヘッダを配置する場合のオフセットを用いて前記ファイルにおける動画像の位置を示す第2のヘッダに書き換え
、
前記第1のヘッダは、前記動画像が記録されるデータ領域の先頭位置に基づくオフセットを用いて前記動画像の位置を示し、
前記第2のヘッダは、前記ファイルの先頭に基づくオフセットを用いて前記動画像の位置を示す、
ことを特徴とする撮像装置。
【請求項2】
前記制御手段は、動画記録中には前記第1のヘッダを生成し、前記動画記録の停止に応じて前記第1のヘッダを前記ファイルに書き込むと共に前記第2のヘッダの生成を開始し、前記第2のヘッダの生成が完了したことに応じて、前記第2のヘッダを書き込むことを特徴とする請求項1に記載の撮像装置。
【請求項3】
前記制御手段は、前記第1のヘッダは、前記ファイルにおいて前記動画像が記録されるデータ領域よりも後ろの位置に記録し、前記第2のヘッダは、前記ファイルにおいて前記データ領域よりも前の位置に記録することを特徴とする請求項1
または2に記載の撮像装置。
【請求項4】
前記データ領域よりも後ろの位置は、前記ファイルの末尾部であり、前記データ領域よりも前の位置は、前記ファイルの先頭部であることを特徴とする請求項
3に記載の撮像装置。
【請求項5】
前記制御手段は、前記第1のヘッダを前記第2のヘッダに書き換える際に、前記第1のヘッダを前記第2のヘッダで上書きすると共に、前記第2のヘッダが前記データ領域よりも前の位置に配置されるようにFATを更新することを特徴とする請求項
3または
4に記載の撮像装置。
【請求項6】
前記制御手段は、前記第2のヘッダを生成しているときにユーザからの停止指示があった場合、前記第2のヘッダの生成を終了することを特徴とする請求項1乃至
5のいずれか1項に記載の撮像装置。
【請求項7】
前記制御手段は、前記停止指示に応じて終了したときに保存された前記第2のヘッダに基づいて、前記第2のヘッダの生成を再び行い、前記第2のヘッダの生成が完了したことに応じて、前記第2のヘッダを前記ファイルに書き込むことを特徴とする請求項
6に記載の撮像装置。
【請求項8】
前記制御手段は、動画記録を停止したときに、前記ファイルに前記第1のヘッダを書き込むか否かを制御することを特徴とする請求項1乃至
7のいずれか1項に記載の撮像装置。
【請求項9】
前記制御手段は、動画記録の時間が一定以下である場合、前記ファイルに前記第1のヘッダを書き込まないことを特徴とする請求項1乃至
8のいずれか1項に記載の撮像装置。
【請求項10】
前記制御手段は、長時間記録することがないモードで動画記録を行う場合、前記ファイルに前記第1のヘッダを書き込まないことを特徴とする請求項1乃至
9のいずれか1項に記載の撮像装置。
【請求項11】
前記長時間記録することがないモードは、ショートクリップであることを特徴とする請求項
10に記載の撮像装置。
【請求項12】
撮像手段が動画像を撮影する工程と、
撮影した動画像をファイルとして記録媒体に記録する工程と、
動画記録を停止したときに、動画像よりも後の位置にヘッダを配置する場合のオフセットを用いて前記ファイルにおける動画像の位置を示す第1のヘッダを前記ファイルに書き込む工程と、
前記第1のヘッダを書き込んだ後に、前記第1のヘッダを、前記動画像よりも前の位置にヘッダを配置する場合のオフセットを用いて前記ファイルにおける動画像の位置を示す第2のヘッダに書き換える工程とを有
し、
前記第1のヘッダは、前記動画像が記録されるデータ領域の先頭位置に基づくオフセットを用いて前記動画像の位置を示し、
前記第2のヘッダは、前記ファイルの先頭に基づくオフセットを用いて前記動画像の位置を示す、
ことを特徴とする記録方法。
【請求項13】
動画像を撮影する撮像手段を有する撮像装置のコンピュータに、
撮影した動画像をファイルとして記録媒体に記録するステップと、
動画記録を停止したときに、動画像よりも後の位置にヘッダを配置する場合のオフセットを用いて前記ファイルにおける動画像の位置を示す第1のヘッダを前記ファイルに書き込むステップと、
前記第1のヘッダを書き込んだ後に、前記第1のヘッダを、前記動画像よりも前の位置にヘッダを配置する場合のオフセットを用いて前記ファイルにおける動画像の位置を示す第2のヘッダに書き換えるステップとを実行させ
、
前記第1のヘッダは、前記動画像が記録されるデータ領域の先頭位置に基づくオフセットを用いて前記動画像の位置を示し、
前記第2のヘッダは、前記ファイルの先頭に基づくオフセットを用いて前記動画像の位置を示す、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像装置、記録方法、及びプログラムに関する。
【背景技術】
【0002】
カメラから入力される動画像情報を符号化して動画像符号化情報を生成し、マイクから入力される音声情報を符号化して音声符号化情報を生成し、動画像符号化情報と音声符号化情報を多重化して記録し、またそれを再生する動画像処理装置が知られている。そのような装置において、動画像情報に関し、MPEG-4(Moving Picture Experts Group Phase 4)の圧縮技術を用いたものがある。
【0003】
MPEG-4の動画像を構成する画像は、Iピクチャ(キーフレームともいう)、Pピクチャ、及びBピクチャの3種類に分類することができる。Iピクチャは、Intra符号化画像、つまりフレーム内符号化画像である。Pピクチャは、Predictive符号化画像、つまりフレーム間順方向予測符号化画像である。Bピクチャは、Bidirectionally Predictive符号化情報、つまり双方向予測符号化画像である。
【0004】
このようなIピクチャ、Pピクチャ、Bピクチャから構成されているMPEG-4動画像符号化ストリームの任意の動画像にアクセスして再生する場合、完全な画像が復号されない可能性がある。例えば、ファイル化されたMPEG-4動画像符号化ストリームにおいて、ユーザがファイルにランダムアクセスして再生するとする(頭出し再生等の特殊再生)。このとき、Pピクチャ又はBピクチャの位置から再生を開始しようとすると、これらは予測符号化画像であるため、画像を復元するにはそのフレーム以前のフレーム情報が必要となり、完全な画像が復元されない。このような状況を回避するためには、ユーザがランダムアクセスによりPピクチャ又はBピクチャにアクセスしようとした場合、自動的にその直前のIピクチャから復号を開始させるように制御する必要がある。
【0005】
また、MPEG-4の動画圧縮技術により生成された動画像符号化ストリームと、音声符号化ストリームを多重化して1つのファイルとして保存するためのファイルフォーマットとして、MPEG-4ファイルフォーマット(以下、MP4という)がある。MP4のヘッダには、すべてのフレームの保存位置がファイルの先頭からのオフセットのバイト数を用いて記録されており、またIピクチャのフレーム番号が列挙されているため、ランダムアクセスでの再生に対応可能なファイルフォーマットとなっている。
【0006】
MP4ファイルフォーマットで記録する場合、ストリームデータは時間とともに増大し、そのサイズも非常に大きいため、記録中にもファイルへストリームデータを書き出す必要がある。しかしながら、MP4ヘッダ部分も記録時間に応じてサイズが増加し、記録が終了するまではMP4ヘッダのサイズも不明であるため、ストリームデータのファイル中への書き出しオフセット位置を決定することができない。
【0007】
したがって、一般的な動画処理装置での記録では、MP4ファイルフォーマットの柔軟性を利用し、以下の(1)~(3)の何れかのような対応を行う。
(1)ストリームデータ領域(Mdat領域と呼ぶ)をファイルの先頭に配置し、記録終了時にMP4ヘッダ(Moov領域と呼ぶ)をストリームデータの後ろ、すなわちファイルの末尾に配置する。
(2)特許文献1に提案されるように、MP4ヘッダのサイズを予め決めてしまい、ストリームデータの書き出しオフセット位置を決定して記録を行う。記録時間が短くてMP4ヘッダのサイズが小さく、ヘッダ領域が余る場合でも、その領域はFree領域として残す。ヘッダサイズを越えて記録する場合には、随時Iピクチャのフレーム番号の情報を間引いて記録することで、ヘッダサイズを予め決定したサイズで維持する。
(3)ストリームデータをファイルの末尾に配置し、記録終了時にMP4ヘッダをストリームデータの先頭、すなわちファイルの先頭に配置する。
【先行技術文献】
【特許文献】
【0008】
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、前述した(1)~(3)の構成では、以下のような問題がある。
(1)の構成では、再生時に、ファイルの末尾に記録されているMP4ヘッダが読み込まれるまでは再生や頭出しを行うことができない。これは特に、ネットワークを通じてMP4ファイルをダウンロードするような用途の場合、ストリームデータを完全にダウンロードした後、MP4ヘッダ部分をダウンロードするまで再生できないという問題がある。ここで、(3)の構成のようにMP4ヘッダがファイルの先頭にあれば、MP4ヘッダが最初にダウンロードされ、さらに所定量のストリームデータがダウンロードされた時点で、再生を開始でき、その後はダウンロードと並行して再生することができる。
【0010】
(2)の構成では、Iピクチャ(キーフレーム)の情報が削減されるため、本来のキーフレームの間隔でのランダムアクセスができなくなり、ユーザが望むアクセス位置と実際に再生される位置とのずれが大きくなりやすいという問題がある。
また、(3)の構成では、MP4ヘッダに書き込むストリームデータのオフセットが記録終了時まで決めることができない。そのため、長時間の動画を連続で記録した場合、オフセットの更新に時間がかかることで動画ファイルの生成完了までの時間が長くなってしまう。
【0011】
本発明は、このような事情に鑑みてなされたものであり、動画の記録終了時にユーザを待たせない選択肢を提供し、撮像装置のユーザビリティを向上させることを目的とする。
【課題を解決するための手段】
【0012】
本発明に係る撮像装置は、動画像を撮影する撮像手段と、撮影した動画像をファイルとして記録媒体に記録する制御手段とを有し、前記制御手段は、動画記録を停止したときには、動画像よりも後の位置にヘッダを配置する場合のオフセットを用いて前記ファイルにおける動画像の位置を示す第1のヘッダを前記ファイルに書き込み、前記第1のヘッダを書き込んだ後に、前記第1のヘッダを、前記動画像よりも前の位置にヘッダを配置する場合のオフセットを用いて前記ファイルにおける動画像の位置を示す第2のヘッダに書き換え、前記第1のヘッダは、前記動画像が記録されるデータ領域の先頭位置に基づくオフセットを用いて前記動画像の位置を示し、前記第2のヘッダは、前記ファイルの先頭に基づくオフセットを用いて前記動画像の位置を示すことを特徴とする。
【発明の効果】
【0013】
本発明によれば、動画の記録終了時にユーザを待たせない選択肢を提供でき、撮像装置のユーザビリティを向上させることができる。
【図面の簡単な説明】
【0014】
【
図1】本実施形態における撮像装置の構成例を示す図である。
【
図2】動画記録処理中のメモリマップを説明する図である。
【
図4】本実施形態における撮像装置の動画記録処理の例を示すフローチャートである。
【
図6】本実施形態における撮像装置の動画記録処理の他の例を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態を図面に基づいて説明する。
【0016】
図1は、本発明の一実施形態における撮像装置100の構成例を示す図である。本実施形態における撮像装置100は、動画像を撮影可能な撮像装置である。また、本実施形態における撮像装置100は、MP4ファイルフォーマットに従って撮影した動画像を含むデータをファイルとして記録媒体に記録するものとする。使用するファイルフォーマットは、これに限定されるものではなく、撮影した動画像を含むデータの記録・再生に用いられるメタ情報が記録されるヘッダを、任意にファイルの先頭及び末尾に配置可能なファイルフォーマットが適用可能である。
【0017】
図1において、制御部101は、撮像装置100全体の制御を行う。また、制御部101は、後述するファイル生成機能を有する。レンズ102は、焦点距離や絞りの状態を変更可能となっている。撮像素子103は、例えばCCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)のような撮像素子(イメージセンサ)である。撮像素子103は、レンズ102により結像した光を電気信号に変換する機能を有する。
【0018】
信号処理部104は、撮像素子103より入力される動画像信号に対して、ホワイトバランス処理やガンマ補正処理等の所定の信号処理を行う。動画像信号符号/復号化部105は、信号処理部104より入力される動画像信号を所定の符号化方式で符号化する。また、動画像信号符号/復号化部105は、所定の符号化方式の符号化データから動画像信号を復号する。符号化方式としては、本実施形態ではMPEG4 Videoを用いるものとする。
【0019】
マイク107は、音声を音声信号に変換する。音声信号符号/復号化部108は、マイク107より入力された音声信号を所定の符号化方式で符号化する。また、音声信号符号/復号化部108は、所定の符号化方式の符号化データから音声信号を復号する。符号化方式としては、本実施形態ではMPEG4 Audio AAC(Advanced Audio Codec)を用いるものとする。スピーカ109は、音声信号符号/復号化部108により復号された音声信号を出力する。
【0020】
フラッシュメモリ110は、制御部101が実行するプログラムの格納、及びプログラムの実行に係る各種設定データの保存等に利用される。フラッシュメモリ110に記録されたデータ等は、撮像装置100の電源が切られた状態でも保持される。メモリ111は、ワーク領域等として機能し、各種データ等を一時記憶する。表示部112は、復号された画像データの表示デバイスとしての利用、また、撮影時のビューファインダーとしての機能も有する。また、表示部112は、利用者が撮像装置100を操作する場合の、操作画面としての機能も兼ね備える。
【0021】
カードスロット113は、メモリカード114が挿抜されるカードスロットである。メモリカード114には、所定のファイルフォーマットのファイルが格納される。本実施形態のメモリカード114には、MP4ファイルフォーマットのファイルが記録される。データバス115は、制御部101から、各機能ブロックへのアクセスや、メモリ111を介しての各機能ブロック間のデータ転送等に使用される。
【0022】
図2は、撮像装置100の動画記録処理中のメモリマップを説明する図である。
図2には、動画記録中のメモリ111の内容をモデル化して示している。MPEG4-Video(映像)データバッファ201は、動画像信号符号/復号化部105から出力される符号化データを一時的に保持する領域である。動画像信号符号/復号化部105から出力される符号化データ(MPEG4-Videoデータ)は、記録時間とともに増加するので、随時データバッファ201からメモリカードへファイルデータとして書き出される。データバッファ201内の領域は、リング状に(リングバッファのように)利用される。
【0023】
同様に、MPEG4-Audio(音声)データバッファ202は、音声信号符号/復号化部108から出力される符号化データを一時的に保持する領域である。一時保持された符号化データは、随時データバッファ202からメモリカードへファイルデータとして書き出される。データバッファ202内の領域は、リング状に(リングバッファのように)利用される。
【0024】
ファイルのデータ領域(Mdat領域)に格納されるMPEG4-VideoデータとMPEG4-Audioデータとは、多重化されてMdat領域に書き出される。ファイル上のMdat領域のどの位置にどのようなデータが記録されたかについては、MP4ワークメモリ203上にMoovの形式で保持される。Moovはさらに細かい領域に分けられており、それぞれの領域が記録時間に応じて増加していく。そのため、Moovのデータを直接ファイル上に記録するとファイルデータの書き換えが頻繁に発生し、処理負荷が増加してしまう。したがって、MP4ワークメモリ203上でMoovを形成し、メモリ111に空き領域がなくなった時点、あるいは記録処理の終了時に、まとめてファイルへと書き出される。
【0025】
MPEG4-Videoデータバッファ201のサイズや、MPEG4-Audioデータバッファ202のサイズは、記録するデータの特性によって決定する。例えば、
図2(a)及び
図2(b)に示すように、記録する動画像の画素数に応じてMPEG4-Videoデータバッファ201のサイズは増減する。例えば、QCIFサイズで画像を記録する場合には、CIFサイズで画像を記録する場合よりもバッファサイズを小さくすることが可能である。この場合、MPEG4-Videoデータバッファ201において削減されたメモリ領域は、MP4ワークメモリ203として利用することができ、さらには、MP4ワークメモリ203上に確保するMoov形成のためのメモリ領域も拡大することができる。
【0026】
図3は、MP4ファイルフォーマットに基づいたMP4ファイルの構成を説明する図である。
図3(a)には、ファイルの先頭にMdat領域310を配置し、その後ろにMoov領域320を配置する、すなわちファイルの末尾にMoov領域320を配置する例を示している。また、
図3(b)には、ファイルの先頭にMoov領域330を配置し、その後ろにMdat領域340を配置する、すなわちファイルの先頭にMoov領域330を配置する例を示している。
【0027】
図3(a)において、Mdat領域310には、動画像の符号化データ311、313、315、及び音声の符号化データ312、314、316が記録されている。また、Moov領域320には、ファイルの先頭を基準とした、動画像データ311、313、315のそれぞれのオフセット位置を示すデータ321、及び音声データ312、314、316のそれぞれのオフセット位置を示すデータ322が記録されている。実際には、ファイルの先頭には、ファイルがどのタイプに準拠しているかを示す情報を格納するftyp領域を配置する必要があるため、ftyp領域の次にmdat領域310が配置されることになる。
【0028】
また、
図3(b)において、Mdat領域340には、動画像の符号化データ341、343、345、及び音声の符号化データ342、344、346が記録されている。また、Moov領域330には、ファイルの先頭を基準とした、動画像データ341、343、345のそれぞれのオフセット位置を示すデータ331、及び音声データ342、344、346のそれぞれのオフセット位置を示すデータ332が記録されている。実際には、ファイルの先頭には、ファイルがどのタイプに準拠しているかを示す情報を格納するftyp領域を配置する必要があるため、ftyp領域の次に先頭用のMoov領域330が配置されることになる。
【0029】
次に、
図4を参照して、本実施形態における撮像装置100の動画記録処理について説明する。
図4は、本実施形態における撮像装置100の動画記録処理の例を示すフローチャートである。以下の説明において、「後尾用のヘッダ」とは、
図3(a)に示したようにファイルの末尾部にMoov領域320を配置した場合にMoov領域に格納されるMP4ヘッダを指すものとする。後尾用のヘッダは、Mdat領域の先頭位置に基づくオフセットを用いて符号化データの位置を示す。また、「先頭用のヘッダ」とは、
図3(b)に示したようにファイルの先頭部にMoov領域330を配置した場合にMoov領域に格納されるMP4ヘッダを指すものとする。先頭用のヘッダは、ファイルの先頭に基づくオフセットを用いて符号化データの位置を示す。
【0030】
ステップS401にて、ユーザにより記録開始の指示があると、ステップS402にて、制御部101は、撮影により得られる動画像や音声の符号化データ等を記録するためのMP4ファイルをオープン(Open)する。また、撮像装置100では、動画像信号符号化部105及び音声信号符号化部108は、撮影動作によって得られる動画像や音声の符号化データをメモリ111の所定領域、つまりは
図2に示したデータバッファ201、202に記録する動作を開始する。このとき、記録を行っていることをユーザに知らせるために、例えば
図5(a)に示すような画面表示を行う。その後、制御部101は、フレーム記録周期毎に発生する割り込み待ち状態となる。
【0031】
ステップS403にて、制御部101は、割り込みを受け付けるとステップS404へ進む。ステップS404にて、制御部101は、データバッファ202に記録されている音声の符号化データ(MPEG4-Audioデータ)のMP4ファイルへの書き込み(ライト)処理を行う。また、ステップS405にて、制御部101は、データバッファ201に記録されている動画像の符号化データ(MPEG4-Videoデータ)のMP4ファイルへの書き込み(ライト)処理を行う。なお、このステップS404、S405の処理を行う順序は、順不同である。
【0032】
また、ステップS406にて、制御部101は、ステップS404、S405での処理に基づいて、ヘッダ情報をMP4ワークメモリ203上に保持する(Moov更新)。ここで、更新するヘッダ情報は、
図3(a)に示したように、ヘッダをMdat領域の後尾に置く、すなわちファイルの末尾部にMoov領域を配置する場合のオフセットを用いて情報を更新する。ユーザによる記録停止の指示があるまで、制御部101は、ステップS403~S407までの処理(Mdat記録処理)を繰り返す。
【0033】
ステップS407において、制御部101は、ユーザによる記録停止の指示に応じた記録停止の割り込みを受けると、Mdat記録処理を終了して、ステップS408へ進む。ステップS408にて、制御部101は、MP4ワークメモリ203上に保持されている後尾用のヘッダ(Moov)をMP4ファイルに書き込む(ライト)。次に、ステップS409にて、制御部101は、MP4ファイルをクローズ(Close)する。
【0034】
次に、ステップS410にて、制御部101は、
図3(b)に示したようなヘッダをMdat領域の前に置く、すなわちファイルの先頭部にMoov領域を配置する場合のオフセットを用いた先頭用のヘッダの生成を開始する。先頭用のヘッダを生成するためには、例えば数秒から数十秒の時間を要する。そのため、ステップS411にて、ユーザにヘッダ更新中を知らせるために、例えば
図5(b)に示すような警告画面の表示を行う。
【0035】
次に、ステップS412にて、制御部101は、先頭用のヘッダに応じた情報への、MP4ワークメモリ203上のヘッダ情報の更新処理を開始する。MP4ワークメモリ203上のヘッダ情報の更新中において、ステップS413にて、制御部101は、ユーザにより、先頭用のヘッダの生成処理の停止指示がなされたか否かを確認する。ここで、ユーザによる停止指示があった場合(ステップS413のYes)、制御部101は、先頭用のヘッダの生成処理を終了し、動画記録処理を終了する。なお、先頭用のヘッダの生成処理の停止指示を受けた場合、制御部101は、先頭用のヘッダへの書き換え処理は中止するが、その後の空き時間に先頭用のヘッダの生成を行い、後尾用のヘッダを先頭用ヘッダに書き換えてもよい。そのために、生成途中の先頭用のヘッダは、MP4ワークメモリ203から別の領域にコピーして保存しておくようにしてもよい。
【0036】
ステップS413においてユーザによる停止指示がないと判断した場合(No)、ステップS414にて、制御部101は、先頭用のヘッダが完成したか否かを確認する。制御部101は、先頭用のヘッダが完成していないと判断した場合(S414のNo)、ステップS412へ戻り、先頭用のヘッダ情報の更新が完了するまでステップS412~S414の処理を繰り返し行う。
【0037】
ステップS414において先頭用のヘッダが完成したと判断した場合(Yes)、ステップS415にて、制御部101は、ステップS409においてクローズした、対象となるMP4ファイルを再度オープンする。次に、ステップS416にて、制御部101は、ステップS408においてファイルに書き込んだ後尾用のヘッダを上書きして、生成した先頭のヘッダ(Moov)に書き換える。後尾用のヘッダと先頭のヘッダとはサイズが同じため、上書きすることで置き換えることができる。そして、ヘッダがファイルの先頭部(データが記録されるmdat領域よりも前の位置)となるように、FATを更新してチェーンを繋ぎ変える。これにより、ヘッダ(Moov)とデータ(mdat)の位置を変更して再構成して再記録しなくても、FATを更新することにより、ヘッダ(moov)をファイルの末尾からファイルの先頭部に移動させることができる。次に、ステップS417にて、制御部101は、MP4ファイルをクローズして、動画記録処理を終了する。
【0038】
以上説明したように、本実施形態では、動画記録の終了時に後尾用のヘッダを用いて動画ファイルの生成を一旦完了させる。そして、引き続き先頭用のヘッダの生成を開始し、ユーザによる停止指示がない場合には、動画ファイルの後尾用のヘッダを生成した先頭用のヘッダで更新することで、先頭用のヘッダで動画ファイルを生成することができる。また、ユーザが次の操作に移りたい場合には、ユーザによる停止指示に応じて、動画ファイルの後尾用のヘッダを先頭用のヘッダへ置き換える処理を中止することで、ユーザが次の操作等を行うことが可能になる。したがって、動画の記録終了時にユーザを待たせない選択肢を提供でき、撮像装置100のユーザビリティを向上させることができる。
【0039】
なお、前述した説明では、動画記録処理において、動画記録の終了時に必ず後尾用のヘッダをMP4ファイルに書き込むようにしているが、後尾用のヘッダの書き込みを行うか否かを制御するようにしてもよい。例えば、動画記録の開始から停止までの時間が一定以下である場合、のちに更新する先頭用のヘッダの生成は短時間で完了する。また、記録する動画のモードがショートクリップなど、長時間記録することはないモードである場合も、先頭用のヘッダの生成は短時間で完了する。このような場合、ユーザを待たせる時間が少ないため、後尾用のヘッダを書き込む必要性は低く、後尾用のヘッダの書き込みを行わないように制御してもよい。
【0040】
以下、
図6を参照して、後尾用のヘッダの書き込みを行うか否かを制御する場合の本実施形態における撮像装置100の動画記録処理について説明する。
図6は、本実施形態における撮像装置100の動画記録処理の他の例を示すフローチャートである。
【0041】
ステップS601にて、ユーザにより記録開始の指示があると、ステップS602にて、制御部101は、撮影により得られる動画像や音声の符号化データ等を記録するためのMP4ファイルをオープンする。また、撮像装置100では、動画像信号符号化部105及び音声信号符号化部108は、撮影動作によって得られる動画像や音声の符号化データをメモリ111の所定領域(データバッファ201、202)に記録する動作を開始する。その後、制御部101は、フレーム記録周期毎に発生する割り込み待ち状態となる。
【0042】
ステップS603にて、制御部101は、割り込みを受け付けるとステップS604へ進む。ステップS604にて、制御部101は、データバッファ202に記録されている音声の符号化データ(MPEG4-Audioデータ)のMP4ファイルへの書き込み処理を行う。また、ステップS605にて、制御部101は、データバッファ201に記録されている動画像の符号化データ(MPEG4-Videoデータ)のMP4ファイルへの書き込み処理を行う。なお、このステップS604、S605の処理を行う順序は、順不同である。
【0043】
また、ステップS606にて、制御部101は、ステップS604、S605での処理に基づいて、ヘッダ情報をMP4ワークメモリ203上に保持する。ここで、更新するヘッダ情報は、後尾用のヘッダに対応するものである。ユーザによる記録停止の指示があるまで、制御部101は、ステップS603~S607までの処理(Mdat記録処理)を繰り返す。ステップS607において、制御部101は、ユーザによる記録停止の指示に応じた記録停止の割り込みを受けると、Mdat記録処理を終了して、ステップS608へ進む。
【0044】
ステップS608にて、制御部101は、後尾用のヘッダをMP4ファイルに書き込むか否かを判断する。例えば、動画記録の開始から停止までの時間が一定以下である場合、のちに更新する先頭用のヘッダの生成は短時間で完了する。また、記録する動画のモードがショートクリップなどの長時間記録することはないモードである場合も、先頭用のヘッダの生成は短時間で完了する。このような場合、制御部101は、MP4ファイルへの後尾用のヘッダの書き込みは行わないと判断することができる。
【0045】
ステップS608において後尾用のヘッダのMP4ファイルへの記録が必要であると判断した場合(Yes)、ステップS609へ進む。ステップS609にて、制御部101は、MP4ワークメモリ203上に保持されている後尾用のヘッダ(Moov)をMP4ファイルに書き込み、ステップS610へ進む。一方、ステップS608において後尾用のヘッダのMP4ファイルへの記録が必要ないと判断した場合(No)、制御部101は、ステップS609の処理を行わずにステップS610へ進む。ステップS610にて、制御部101は、MP4ファイルをクローズする。
【0046】
次に、ステップS611にて、制御部101は、先頭用のヘッダの生成を開始する。ステップS612にて、ユーザにヘッダ更新中を知らせるための画面表示を行う。
【0047】
次に、ステップS613にて、制御部101は、先頭用のヘッダに応じた情報への、MP4ワークメモリ203上のヘッダ情報の更新処理を開始する。MP4ワークメモリ203上のヘッダ情報の更新中において、ステップS614にて、制御部101は、ユーザにより、先頭用のヘッダの生成処理の停止指示がなされたか否かを確認する。ここで、ユーザによる停止指示がないと判断した場合(No)にはステップS615へ進み、ユーザによる停止指示があったと判断した場合(Yes)にはステップS616へ進む。
【0048】
ステップS616にて、制御部101は、ステップS609の処理、すなわち後尾用のヘッダの書き込みを行っているか否かを判断する。ステップS609において後尾用のヘッダの書き込みを行っていると判断した場合(S616のYes)、制御部101は、先頭用のヘッダの生成処理を終了し、動画記録処理を終了する。一方、ステップS609において後尾用のヘッダの書き込みを行っていないと判断した場合(S616のNo)、動画ファイルとしては完了していないので、制御部101は、先頭用のヘッダの生成を停止せずに継続して、ステップS615へ進む。
【0049】
ステップS615にて、制御部101は、先頭用のヘッダが完成したか否かを確認する。制御部101は、先頭用のヘッダが完成していないと判断した場合(S615のNo)、ステップS613へ戻り、先頭用のヘッダ情報の更新が完了するまでステップS613~S614の処理を繰り返し行う。
【0050】
ステップS615において先頭用のヘッダが完成したと判断した場合(Yes)、ステップS617にて、制御部101は、ステップS610においてクローズした、対象となるMP4ファイルを再度オープンする。次に、ステップS618にて、制御部101は、ファイルの後尾用のヘッダを上書きして、生成した先頭のヘッダ(Moov)に置き換える。そして、FATを更新してチェーンを繋ぎ変えて、ヘッダがファイルの先頭部となるようにする。次に、ステップS619にて、制御部101は、MP4ファイルをクローズして、動画記録処理を終了する。
【0051】
このように、条件によって後尾用のヘッダをファイルに書き込むか否かを制御することで、不要にヘッダの更新処理をすることがなくなり、動画記録の停止処理に要する時間を短くすることが可能となる。
【0052】
(本発明の他の実施形態)
本発明は、前述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0053】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0054】
100:撮像装置 101:制御部 102:レンズ 103:撮像素子 104:信号処理部 105:動画像信号符号/復号化部 107:マイク 108:音声信号符号/復号化部 110:フラッシュメモリ 111:メモリ 112:表示部 114:メモリカード 115:データバス