(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024135171
(43)【公開日】2024-10-04
(54)【発明の名称】撮像装置
(51)【国際特許分類】
H04N 5/91 20060101AFI20240927BHJP
H04N 5/77 20060101ALI20240927BHJP
H04N 5/92 20060101ALI20240927BHJP
H04N 23/60 20230101ALI20240927BHJP
H04N 23/62 20230101ALI20240927BHJP
H04N 23/63 20230101ALI20240927BHJP
【FI】
H04N5/91
H04N5/77 200
H04N5/92 010
H04N23/60 300
H04N23/62
H04N23/63 300
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023045722
(22)【出願日】2023-03-22
(71)【出願人】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】100132241
【弁理士】
【氏名又は名称】岡部 博史
(74)【代理人】
【識別番号】100135703
【弁理士】
【氏名又は名称】岡部 英隆
(72)【発明者】
【氏名】岡本 渉
(72)【発明者】
【氏名】瀬戸 聡
(72)【発明者】
【氏名】山本 真一
【テーマコード(参考)】
5C122
【Fターム(参考)】
5C122DA03
5C122EA61
5C122FK28
5C122FK37
5C122FK38
5C122FK40
5C122GA21
5C122GA34
5C122HB01
5C122HB05
(57)【要約】
【課題】動画ファイルの修復を行い易くすることができる撮像装置を提供する。
【解決手段】撮像装置(100)は、撮像部(115)と、制御部(135)と、操作部(150)とを備える。撮像部は、被写体像を撮像して撮像データを生成する。制御部は、撮像データが示す動画を再生可能な動画ファイルとしての欠損を有する破損ファイルから、動画ファイルを生成する修復処理を実行する(S7)。操作部は、修復処理に関するユーザ操作を入力する(S1,S5)。制御部は、操作部において一又は複数の破損ファイルから特定の破損ファイルを選択するユーザ操作を受け付けて(S5)、当該ユーザ操作に応じて、選択された破損ファイルに修復処理を実行する(S7)。
【選択図】
図7
【特許請求の範囲】
【請求項1】
被写体像を撮像して、撮像データを生成する撮像部と、
前記撮像データが示す動画を再生可能な動画ファイルとしての欠損を有する破損ファイルから、前記動画ファイルを生成する修復処理を実行する制御部と、
前記修復処理に関するユーザ操作を入力する操作部とを備え、
前記制御部は、
前記操作部において一又は複数の破損ファイルから特定の破損ファイルを選択するユーザ操作を受け付けて、
当該ユーザ操作に応じて、前記選択された破損ファイルに前記修復処理を実行する
撮像装置。
【請求項2】
情報を表示する表示部をさらに備え、
前記制御部は、
前記操作部における所定のメニュー操作に応じて、前記一又は複数の破損ファイルが格納された記録媒体から、各破損ファイルに関するファイル情報を取得して、
前記表示部において前記取得したファイル情報を表示させる
請求項1に記載の撮像装置。
【請求項3】
前記制御部は、前記表示部において前記取得したファイル情報を表示させた状態で前記操作部において前記特定の破損ファイルを選択するユーザ操作を受け付ける
請求項2に記載の撮像装置。
【請求項4】
前記ファイル情報は、前記破損ファイルの記録開始時刻と、記録時間と、識別番号と、ファイル名とのうちの少なくとも一つを含む
請求項2に記載の撮像装置。
【請求項5】
情報を表示する表示部をさらに備え、
前記制御部は、前記特定の破損ファイルに対する前記修復処理の実行中または実行前に、当該修復処理の実行時間を示す情報を前記表示部に表示させる
請求項1に記載の撮像装置。
【請求項6】
前記制御部は、
前記特定の破損ファイルの修復処理を実行中に、前記操作部において、前記修復処理の中断を指示するユーザ操作を受け付けて、
前記中断を指示するユーザ操作に応じて、前記特定の破損ファイルの修復処理を中断する
請求項1に記載の撮像装置。
【請求項7】
前記制御部は、
前記特定の破損ファイルの修復処理を中断した後で、前記操作部において、前記特定の破損ファイルの修復処理の再開を指示するユーザ操作を受け付けて、
前記再開を指示するユーザ操作に応じて、前記特定の破損ファイルの修復処理を再開する
請求項6に記載の撮像装置。
【請求項8】
前記破損ファイルにおける欠損は、前記動画の再生に用いられる管理情報であり、
前記制御部は、前記破損ファイルに基づいて前記管理情報を生成することにより、前記破損ファイルの修復処理を行う
請求項1に記載の撮像装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、動画ファイルを記録媒体に記録する撮像装置に関する。
【背景技術】
【0002】
特許文献1は、可変長符号化データを含む動画ファイルの再生に必要な管理情報を修復または作成するデジタルカメラを開示する。MP4形式の動画ファイルでは、ビデオ及びオーディオの符号化データが格納されるMedia Data Box(mdat)に加え、管理情報が格納されるMovie Box(mооv)が含まれ、動画ファイルの生成において、mооvの作成はmdatの完成後に行われる。このため、機械トラブル等で動画ファイルの生成処理が中断されると、動画ファイルにはmооvが含まれていない場合があり、この場合、符号化データが存在しても当該動画ファイルを再生できない。
【0003】
特許文献1のデジタルカメラは、動画ファイルの生成に用いられる生成ルールに関する情報を含んだダミーmооvを生成した後、動画撮影処理を開始し、mdatの完成前に予め動画ファイルにダミーmооvを含める。これにより、動画ファイルの生成が中断されても、ダミーmооvを参照して残されたmdatを解析することで、正式なmооvが復元できる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示は、動画ファイルの修復を行い易くすることができる撮像装置を提供する。
【課題を解決するための手段】
【0006】
本開示において、撮像装置は、撮像部と、制御部と、操作部とを備える。撮像部は、被写体像を撮像して撮像データを生成する。制御部は、撮像データが示す動画を再生可能な動画ファイルとしての欠損を有する破損ファイルから、動画ファイルを生成する修復処理を実行する。操作部は、修復処理に関するユーザ操作を入力する。制御部は、操作部において一又は複数の破損ファイルから特定の破損ファイルを選択するユーザ操作を受け付けて、当該ユーザ操作に応じて、選択された破損ファイルに修復処理を実行する。
【発明の効果】
【0007】
本開示によると、撮像装置において動画ファイルの修復を行い易くすることができる。
【図面の簡単な説明】
【0008】
【
図1】本開示の実施形態1に係るデジタルカメラの構成を示す図
【
図4】デジタルカメラにおける動画ファイルの記録動作を説明するための図
【
図5】動画ファイルにおけるサンプル及びチャンクを説明するための図
【
図6】デジタルカメラにおける動画記録時の破損ファイルを説明するための図
【
図7】実施形態1のデジタルカメラにおける動画修復の動作を例示するフローチャート
【
図9】実施形態1のデジタルカメラにおける動画ファイルの修復処理を例示するフローチャート
【
図10A】実施形態1のデジタルカメラにおけるMDTファイルの解析処理を例示するフローチャート
【
図11】実施形態1のデジタルカメラにおける記録モード情報を説明するための図
【
図12】実施形態1のデジタルカメラにおける修復残り時間の表示処理を例示するフローチャート
【
図14】修復残り時間の表示処理における表示例を示す図説明するための図
【
図15】実施形態2のデジタルカメラにおけるMDTファイルの解析処理を例示するフローチャート
【
図16】実施形態1の変形例のデジタルカメラにおける修復時間の表示例を示す図
【発明を実施するための形態】
【0009】
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。なお、発明者(ら)は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
【0010】
(実施形態1)
実施形態1では、本開示に係る撮像装置の一例として、被写体を撮像して動画データを記録可能なデジタルカメラについて説明する。
【0011】
1.構成
図1は、本実施形態に係るデジタルカメラ100の構成を示す図である。本実施形態のデジタルカメラ100は、イメージセンサ115と、画像処理エンジン120と、表示モニタ130と、コントローラ135とを備える。さらに、デジタルカメラ100は、バッファメモリ125と、カードスロット140と、フラッシュメモリ145と、操作部150と、通信モジュール155とを備える。また、デジタルカメラ100は、マイク160と、マイク用のアナログ/デジタル(A/D)コンバータ165と、音声処理エンジン170とを備える。また、デジタルカメラ100は、例えば光学系110及びレンズ駆動部112を備える。
【0012】
光学系110は、フォーカスレンズ、ズームレンズ、光学式手ぶれ補正レンズ(OIS)、絞り、シャッタ等を含む。フォーカスレンズは、イメージセンサ115上に形成される被写体像のフォーカス状態を変化させるためのレンズである。ズームレンズは、光学系で形成される被写体像の倍率を変化させるためのレンズである。フォーカスレンズ等は、それぞれ1枚又は複数枚のレンズで構成される。
【0013】
レンズ駆動部112は、光学系110におけるフォーカスレンズ等を駆動する。レンズ駆動部112はモータを含み、コントローラ135の制御に基づいてフォーカスレンズを光学系110の光軸に沿って移動させる。レンズ駆動部112においてフォーカスレンズを駆動する構成は、DCモータ、ステッピングモータ、サーボモータ、または超音波モータなどで実現できる。レンズ駆動部112は、コントローラ135の制御に基づいて光学系110における絞りを駆動する絞りアクチュエータを含む。
【0014】
イメージセンサ115は、光学系110を介して形成された被写体像を撮像して、撮像データを生成する。撮像データは、イメージセンサ115による撮像画像を示す画像データを構成する。イメージセンサ115は、所定のフレームレート(例えば、30フレーム/秒)で新しいフレームの画像データを生成する。イメージセンサ115における、撮像データの生成タイミングおよび電子シャッタ動作は、コントローラ135によって制御される。イメージセンサ115は、CMOSイメージセンサ、CCDイメージセンサ、またはNMOSイメージセンサなど、種々のイメージセンサを用いることができる。
【0015】
イメージセンサ115は、動画像、静止画像、またはスルー画像の撮像動作等を実行する。スルー画像は主に動画像であり、ユーザが例えば静止画像の撮像のための構図を決めるために表示モニタ130に表示される。イメージセンサ115は、露光、電子シャッタ等の各種動作を実行する。イメージセンサ115は、本実施形態における撮像部の一例である。
【0016】
画像処理エンジン120は、イメージセンサ115から出力された撮像データに対して各種の処理を施して画像データを生成したり、画像データに各種の処理を施して、表示モニタ130に表示するための画像を生成したりする。各種処理としては、ホワイトバランス補正、ガンマ補正、YC変換処理、電子ズーム処理、圧縮処理、伸張処理等が挙げられるが、これらに限定されない。画像処理エンジン120は、ハードワイヤードな電子回路で構成してもよいし、プログラムを用いたマイクロコンピュータ、プロセッサなどで構成してもよい。
【0017】
表示モニタ130は、種々の情報を表示する表示部の一例である。例えば、表示モニタ130は、イメージセンサ115で撮像され、画像処理エンジン120で画像処理された画像データが示す画像(スルー画像)を表示する。また、表示モニタ130は、ユーザがデジタルカメラ100に対して種々の設定を行うためのメニュー画面等を表示する。表示モニタ130は、例えば液晶ディスプレイデバイスまたは有機ELデバイスで構成できる。表示モニタ130等の表示部は、本実施形態においてユーザに提示する情報を出力する出力部の一例である。
【0018】
操作部150は、デジタルカメラ100の外装に設けられた操作ボタンや操作ダイヤル等のハードキー及びソフトキーの総称であり、ユーザによる操作を受け付ける。操作部150は、例えば、レリーズボタン、モードダイヤル、表示モニタ130のタッチパネル、ジョイスティックなどを含む。また、操作部150は、表示モニタ130上に表示される仮想的なボタンやアイコンも含む。操作部150の具体例については後述する。
【0019】
コントローラ135は、ハードウェアコントローラであり、デジタルカメラ100全体の動作を統括制御する。コントローラ135はCPU等を含み、CPUがプログラム(ソフトウェア)を実行することで所定の機能を実現する。コントローラ135は、CPUに代えて、所定の機能を実現するように設計された専用の電子回路で構成されるプロセッサを含んでもよい。すなわち、コントローラ135は、CPU、MPU、GPU、DSU、FPGA、ASIC等の種々のプロセッサで実現できる。コントローラ135は1つまたは複数のプロセッサで構成してもよい。また、コントローラ135は、画像処理エンジン120などと共に1つの半導体チップで構成してもよい。
【0020】
バッファメモリ125は、画像処理エンジン120やコントローラ135のワークメモリとして機能する記録媒体である。バッファメモリ125は、DRAM(Dynamic Random Access Memory)などにより実現される。フラッシュメモリ145は不揮発性の記録媒体である。例えばバッファメモリ125は、デジタルカメラ100における各種設定情報などを記憶する。
【0021】
また、図示していないが、コントローラ135は各種の内部メモリを有してもよく、例えばROMを内蔵してもよい。ROMには、コントローラ135が実行する様々なプログラムが記憶されている。また、コントローラ135は、CPUの作業領域として機能するRAMを内蔵してもよい。
【0022】
カードスロット140は、着脱可能なメモリカード142が挿入される手段である。カードスロット140は、メモリカード142を電気的及び機械的に接続可能であり、メモリカード142に対して画像データの書き込み及び読み出しを行う。メモリカード142は、内部にフラッシュメモリ等の記録素子を備えた外部メモリである。メモリカード142は、画像処理エンジン120で生成される画像データなどのデータを格納できる。メモリカード142には、デジタルカメラ100で撮影された動画データが記録される。
【0023】
通信モジュール155は、通信規格IEEE802.11またはWi-Fi規格等に準拠した通信を行う通信モジュール(回路)である。デジタルカメラ100は、通信モジュール155を介して、他の機器と通信することができる。デジタルカメラ100は、通信モジュール155を介して、他の機器と直接通信を行ってもよいし、アクセスポイント経由で通信を行ってもよい。通信モジュール155は、インターネット等の通信ネットワークに接続可能であってもよい。また、通信モジュール155は、USBまたはHDMI(登録商標)規格等に準拠して他の機器にデータを出力する回路または端子を含んでもよい。通信モジュール155は、デジタルカメラ100における出力部を構成してもよい。
【0024】
マイク160は、音を収音する収音部の一例である。マイク160は、収音した音声を電気信号であるアナログ信号に変換して出力する。マイク160は、1つ又は複数のマイクロフォン素子から構成されてもよい。
【0025】
マイク用のA/Dコンバータ165は、マイク160からのアナログ信号をデジタル信号の音声データに変換する。マイク用のA/Dコンバータ165は、音声取得部の一例である。なお、マイク160は、デジタルカメラ100の外部にあるマイクロフォン素子を含んでもよい。この場合、デジタルカメラ100は音声取得部として、外部のマイク160に対するインタフェース回路を備える。
【0026】
音声処理エンジン170は、マイク用のA/Dコンバータ165等の音声取得部から出力された音声データを受信して、受信した音声データに対して種々の音声処理を施す。音声処理エンジン170は、画像処理エンジン120と一体的に実装されてもよい。
【0027】
1-1.操作部について
操作部150の具体例を、
図2を用いて説明する。
図2は、デジタルカメラ100の背面を示した図である。
【0028】
図2では、操作部150の例として、レリーズボタン151、選択ボタン152、決定ボタン153、およびタッチパネル154が示されている。操作部150は、ユーザによる操作を受け付けると、コントローラ135に種々の指示信号を送信する。コントローラ135は、指示信号に基づいてユーザ操作を入力する。
【0029】
レリーズボタン151は、押下式のボタンである。レリーズボタン151がユーザにより操作されると、コントローラ135は、押下操作のタイミングに撮像された画像データを記録画像としてメモリカード142等に記録する。
【0030】
選択ボタン152は、上下左右方向に設けられた押下式ボタンである。ユーザは、上下左右方向のいずれかの選択ボタン152を押下することにより、表示モニタ130に表示される各種条件項目を選択したり、カーソルを移動したりすることができる。
【0031】
決定ボタン153は、押下式ボタンである。デジタルカメラ100が撮影モードあるいは再生モードにあるときに、決定ボタン153がユーザにより押下されると、コントローラ135は表示モニタ130にメニュー画面を表示する。メニュー画面は、撮影/再生のための各種条件を設定するための画面である。各種条件の設定項目が選択されているときに決定ボタン153が押下される決定操作に応じて、コントローラ135は、選択された項目の設定を確定する。
【0032】
タッチパネル154は、表示モニタ130の表示画面と重畳して配置され、ユーザの指による表示画面上へのタッチ操作を検出する。これにより、ユーザは、表示モニタ130に表示されたメニュー画面上の各種選択等の操作を行える。
【0033】
1-2.動画ファイルの構成について
本実施形態のデジタルカメラ100では、メモリカード142に動画データを記録する際に、MOV及びMP4形式等のファイル形式が利用可能である。
図3を用いて、MOV形式またはMP4形式による動画ファイルの構成を説明する。
【0034】
図3は、動画ファイルの構成を説明するための図である。
図3に例示する動画ファイルDmのデータ構造では、映像及び音声を含む動画データがMOVまたはMP4のコンテナ規格により格納される。動画ファイルDmは、ボックスと称される基本単位から構成され、ボックスの階層構造を有する。動画ファイルDmの最上位の階層には、ファイルタイプボックス(File Type Box:ftyp)、ムービーボックス(moov)、及びメディアデータボックス(mdat)が設けられる。
【0035】
ftypは、動画ファイルDmの先頭に配置されて、動画ファイルDmが準拠する規格を示す。moovは、動画ファイルDmについてのメタ情報など各種のヘッダ情報を格納する。動画ファイルDmのメタ情報は、例えば動画データのフレームレベルのサイズなどの情報を管理する。mdatは、動画の撮影時に順次記録されるストリームデータとして、映像及び音声をそれぞれ符号化した符号化データを格納する。
【0036】
mооvには、ムービーヘッダボックス(Movie Header Box:mvhd)の他、映像及び音声の各トラックボックス(Track Box:trak)などが格納される。例えば映像のtrak以下の階層には、サンプルテーブルボックス(Sample Table Box:stbl)が含まれる。stblには、動画ファイルDmにおいて、どのようにストリームデータが格納されるかを示す情報が記録され、例えば格納位置を示すアドレス情報などが含まれる。
図3は、IEC_14496-12規格によるstblの構成を例示する。stblは、後述する複数のボックスを含み、例えば映像及び音声の各々について設けられる。
【0037】
mdatには、映像及び音声のフレームあるいはサンプルの集合であるチャンク毎に、映像データと音声データとが交互に格納される。こうした動画ファイルDmの記録については後述する。動画ファイルDmの再生時には、mооvのメタ情報を参照して、例えば所望の再生時刻に対応するストリームデータがmdatから取得される。
【0038】
stblは、stsd(sample descriptions)、stts(decoding time to sample)、ctts(composition time to sample)、stsc(sample to chunk)、stsz(sample sizes)、stcо(chunk offset)及びstss(sync sample table)を含む。stsdは映像ES(Video Elementary Stream)または音声ES(Audio Elementary Stream)といったサンプルの構成要素に関する情報、sttsは動画の復号時刻とサンプル番号とのテーブル、cttsは復号時刻と表示時刻とのテーブル、及びstscはチャンク毎のサンプル数をそれぞれ示す。
【0039】
stszは、各サンプルのサンプルサイズを示し、サンプル毎に可変または固定の値である。stcоは、チャンクへのオフセット(すなわちMDTファイルD1内のチャンク先頭の位置)を示し、各チャンクについて当該チャンクまでのチャンクサイズを積算した値に対応する。scsz及びstcоは、例えば記録されるMDTファイルD1に応じて決定される。
【0040】
また、stssは、MDTファイルD1における単独で再生可能なIフレームの位置を示す。例えば上記のstsz及びstcоとは異なり、stsd,stts,ctts,stsc及びstssは、MDTファイルD1の記録モード情報から決定される。
【0041】
2.動作
以上のように構成されるデジタルカメラ100の動作を以下説明する。
【0042】
2-1.動画ファイルの記録動作
本実施形態に係るデジタルカメラ100が、メモリカード142に動画ファイルDmを記録する動作について、
図4及び
図5を用いて説明する。
【0043】
図4は、デジタルカメラ100における動画ファイルDmの記録動作を説明するための図である。例えばコントローラ135は、動画の記録中に、ストリームデータとして得られる撮像データ及び音声データに基づき、MDTファイルD1を生成してメモリカード142に記録する。MDTファイルD1は、mdatを含む。
【0044】
図5は、動画ファイルDmにおけるサンプル及びチャンクを説明するための図である。
図5(A)は、映像のサンプル及びチャンクを例示する。
図5(B)は、音声のサンプル及びチャンクを例示する。
【0045】
図5(A)に示す映像の例では、撮像データに基づき、動き補償予測の利用に応じたI(Intra Coded)、B(Bi-directional Predictive Coded)及びP(Predictive Coded)の各フレームが、動画のフレーム周期等で1つのサンプルとして生成される。デジタルカメラ100は、例えば連続した複数のサンプルをまとめたチャンク単位で、生成したサンプルをmdatに記録する。チャンクは、例えば1つのIフレームと各々1つ以上のB及びPフレームとで構成されるGOP(Group of Pictures)に対応する。
【0046】
図5(B)に示す音声の例では、音声データに基づき、各フレームが1つのサンプルとして生成される。例えば各サンプルは、音声規格がAAC(Advanced Audio Coding)であれば、16.6ミリ秒周期、音声規格がLPCM(Linear Pulse Code Modulation)であれば、サンプリング周期で生成される。デジタルカメラ100は、例えば映像と同様に、連続した複数のサンプルをチャンク単位でmdatに記録する。本実施形態のデジタルカメラ100では、例えば映像及び音声の各チャンクが約0.5秒単位でmdatに記録される。
【0047】
コントローラ135は、
図4に示すように、メモリカード142において、映像及び音声をチャンク単位でmdatに記録することによって、MDTファイルD1を順次、更新する。本実施形態のデジタルカメラ100は、こうしたMDTファイルD1の更新毎に、MDTファイルD1に格納するストリームデータについてのメタ情報D10をバッファメモリ125等に記録する。各更新時には、メタ情報D10は、例えば前回の更新時からの差分のみが記録されてもよい。
【0048】
コントローラ135は、例えば操作部150におけるユーザ操作に応じて動画の記録を停止し、バッファメモリ125に保持された最新のメタ情報D10に基づいて、MVDファイルDhを生成する。MVDファイルDhは、ftyp及びmoovを含む。生成されたMVDファイルDhは、例えばメモリカード142に記録される。
【0049】
コントローラ135は、生成したMVDファイルDhと、最新のMDTファイルD1とを結合することで動画ファイルDmを生成して、メモリカード142に記録する。動画ファイルDmの生成時には、例えばMP4形式またはMOV形式に応じて、ファイル名がリネームされる。
【0050】
2-2.破損ファイルについて
以上のような動画ファイルの記録中に、例えばデジタルカメラ100の電源断等により、記録動作が異常終了すると、動画ファイルDmが正常に生成されず、破損した動画ファイル、すなわち破損ファイルが記録される。こうした破損ファイルについて、
図6を用いて説明する。
【0051】
図6は、デジタルカメラ100における動画記録時の破損ファイルを説明するための図である。デジタルカメラ100において動画の記録動作中に電源断等が生じると、メモリカード142に記録されたMDTファイルD1は残っても、バッファメモリ125に保持されていたメタ情報D10は消失してしまう。この場合、メタ情報D10に基づくMVDファイルを作成できず、残ったMDTファイルD1は、メタ情報D10等が欠損して再生できない破損ファイルとなる。
【0052】
本実施形態のデジタルカメラ100は、上述の破損ファイルを再生可能に修復する動作を実行可能である。デジタルカメラ100は、例えばメモリカード142に残ったMDTファイルD1等に基づいて、再生可能な動画ファイルDmを生成する。
【0053】
ここで、動画の記録中にMDTファイルD1の更新毎にメタ情報D10もメモリカード142に記録しておき、破損ファイルが生じた際に当該メタ情報D10に基づいて修復を行う手法が考えられる。この手法では、例えばデジタルカメラ100の電源断により破損ファイルが生じた後、次回の起動時に、記録された直近のメタ情報D10を当該破損ファイルと対応付けて、当該破損ファイルについて自動で修復を行うことが考えられる。
【0054】
しかし、上記の手法では、メタ情報D10をメモリカード142に記録する処理負荷が増え、撮像動作等に利用可能な処理能力が制限され得る。また、当該手法による自動修復では、メタ情報D10を更新前に用いるため、デジタルカメラ100の起動直後に修復が実行され、修復の完了まで次の撮影を行えないといった課題がある。
【0055】
そこで、本実施形態のデジタルカメラ100は、修復対象として特定の破損ファイルを選択するユーザ操作に応じて、選択された破損ファイルについて修復を実行する。これにより、デジタルカメラ100では、例えば複数の破損ファイルがあっても、ユーザ操作に応じて選択的に修復を実行でき、過剰な処理能力の利用が回避できる。さらに、デジタルカメラ100の起動直後に限らず、ユーザが修復したい破損ファイルを選択することで、意図しない修復の待ち時間を回避でき、ユーザの利便性を高めることができる。
【0056】
また、本実施形態のデジタルカメラ100は、例えばユーザの選択操作に応じて、破損ファイルとして残ったMDTファイルD1の解析により、moov等のMDVファイルを生成して、当該破損ファイルを再生可能な動画ファイルDmに修復する。このように破損ファイルの選択に応じて修復を行うデジタルカメラ100では、例えば上記のように自動修復に用いるメタ情報D10をメモリカード142に記録するよりも、記録中の処理負荷を低減でき、より高画質な動画の撮像動作等が実行し易くなる。
【0057】
2-3.動画修復の動作
本実施形態のデジタルカメラ100が破損した動画ファイルDmを修復する動画修復の動作について、
図7及び
図8を用いて説明する。
【0058】
図7は、本実施形態のデジタルカメラ100における動画修復の動作を例示するフローチャートである。本フローチャートの各処理は、コントローラ135により実行される。
図8は、動画修復の動作を説明するための図である。
【0059】
まず、コントローラ135は、操作部150により、設定メニュー等において動画修復の動作を開始するためのユーザ操作を入力する(S1)。
図8(A)は、デジタルカメラ100の表示モニタ130における設定メニュー画面の表示例を示す。例えば、コントローラ135は、設定メニュー画面(
図8(A))におけるメニュー項目が選択ボタン152等のユーザ操作により選択されて、決定ボタン153等のユーザ操作により決定された結果を取得する。
【0060】
図8(A)の表示例は、設定メニュー画面において、画像の再生に関する諸情報を設定するためのタブ42が選択され、かつメモリカード142に記録されたファイルに関して設定を行うためのアイコン43が選択された状態を示す。この際のメニュー項目として、表示モニタ130は、動画修復の動作に関する「動画修復」などを表示している。
【0061】
コントローラ135は、ステップS1で取得したユーザ操作の結果に基づいて、選択されたメニュー項目が
図8(A)の設定メニュー画面における「動画修復」であるか否かを判断する(S2)。動画修復のメニュー項目が選択されていない場合(S2でNO)、コントローラ135は、ステップS1~S2の処理を繰り返す。
【0062】
動画修復のメニュー項目が選択された場合(S2でYES)、コントローラ135は、メモリカード142に記録された修復可能な破損ファイルを抽出して、各破損ファイルに関するファイル情報を取得する(S3)。例えば、コントローラ135は、メモリカード142内で拡張子が「MDT」であるファイルを破損ファイルとして抽出する。ファイル情報は、例えば各ファイルの記録開始時刻、各ファイルを識別するクリップ番号、各ファイルのファイルサイズ、及び後述する記録モード情報など含む。
【0063】
ステップS3において、コントローラ135は、抽出した各ファイルについて、例えばファイルの作成日時から記録開始時刻61を取得し、ファイル名からクリップ番号62を取得する。また、コントローラ135は、例えば各ファイルのファイルサイズと、当該ファイルの記録モード情報に記録された映像のビットレートとに基づいて、記録された動画の長さを示す記録時間63の推定値を算出する。記録モード情報は、例えばビットレート等の撮影設定といった記録モードにより定まる情報であり、動画の記録開始時に、MDTファイルD1等に記録される。
【0064】
コントローラ135は、取得したファイル情報に基づいて、修復可能な破損ファイルを修復対象の選択肢として表示モニタ130に表示させる(S4)。
図8(B)は、メモリカード142に2つの破損ファイルがあった場合の表示例である。コントローラ135は、例えば
図8(B)の画面において、選択肢の各破損ファイルについてのファイル情報を表示させる(S4)。
【0065】
例えば、
図8(A)の設定メニュー画面においてユーザが当該メニュー項目を選択して決定操作を入力すると(S1,S2でYES)、表示モニタ130は、
図8(B)に示す破損ファイルの選択画面に遷移する。この際、
図7(A)の設定メニュー画面から、修復可能なファイルを抽出中であることを示すメッセージ等の表示画面に遷移した後、抽出が完了すると、
図8(B)の選択画面が表示されてもよい。
【0066】
図8(B)の表示例において、表示モニタ130は、修復対象の破損ファイルの選択肢として「ファイル1」及び「ファイル2」と、記録開始時刻61と、クリップ番号62と、記録時間63とを表示している。こうした選択画面の表示によれば、各ファイルの記録開始時刻61等を参照して、ユーザが修復対象のファイルを選択できる。
【0067】
また、
図8(B)の例では、タッチ操作のためのリターンアイコン54、及び決定アイコン55が表示されている。リターンアイコン54は、表示中のメニュー画面から上位の階層のメニュー画面等に戻るためのユーザ操作を受け付ける。決定アイコン55は、決定ボタン153と同様の決定操作を受け付ける。
【0068】
コントローラ135は、操作部150において、ステップS3で表示された修復可能な破損ファイルの選択肢から、修復対象のファイルを選択するユーザ操作を入力する(S5)。例えば、コントローラ135は、
図8(B)の選択画面における選択肢が選択ボタン152等のユーザ操作で選択された結果を取得する。
【0069】
さらに、コントローラ135は、ステップS5で選択されたファイルの修復を指示するユーザ操作が入力されたか否かを判断する(S6)。コントローラ135は、例えば破損ファイルの選択を決定ボタン153等で確定するユーザ操作の結果に基づいて、こうした修復指示の有無を判断する。選択されたファイルの修復指示がない場合(S6でNO)、コントローラ135は、ステップS5~S6の処理を繰り返す。
【0070】
選択されたファイルの修復指示がある場合(S6でYES)、コントローラ135は、当該選択された破損ファイルに修復処理を実行する(S7)。修復処理は、破損ファイルとなったMDTファイルD1に基づいて、MVDファイルDhを含む再生可能な動画ファイルDm(
図4及び
図6参照)を生成する処理である。こうした動画ファイルの修復処理(S7)について、詳細は後述する。
【0071】
図8(C)は、
図8(B)の選択画面から修復対象のファイルが選択されたときに遷移する画面の表示例を示す。本実施形態では、コントローラ135は、動画ファイルの修復処理(S7)を実行中、表示モニタ130に、修復処理の進捗状況を示す進捗バー65を表示させる。例えば、コントローラ135は、修復処理を実行中の破損ファイルについて、修復処理が完了するまでの残り時間の推定値を逐次、算出し、修復処理の開始から算出時までの時間と、算出した残り時間とに応じて進捗バー65の表示を更新する。こうした修復残り時間の表示処理について、詳細は後述する。
【0072】
また、動画ファイルの修復処理(S7)において、コントローラ135は、例えば
図8(C)に示すように、中止アイコン56を表示モニタ130に表示させる。中止アイコン56は、修復の処理を中断するためのユーザ操作を受け付ける。コントローラ135は、当該ユーザ操作に応じて実行中の修復処理を中断する。こうした修復処理の中断によれば、修復処理の開始後、完了前であっても、例えば次の撮影動作を実行できるなどユーザの利便性をさらに高めることができる。
【0073】
コントローラ135は、選択された破損ファイルについて修復処理が終了すると、例えば
図8(D)に示すように、修復が完了したことを示すメッセージを表示モニタ130に表示させる(S8)。
図8(D)は、修復処理を実行中の画面(
図8(C))から、当該処理の終了に応じて遷移する画面の表示例を示す。その後、表示モニタ130は、さらに修復された動画ファイルの再生画面に遷移してもよい。
【0074】
また、例えば
図8(C)の中止アイコン56をタッチするユーザ操作により、動画ファイルの修復処理(S7)が中断された場合、ステップS8では修復処理が中断されたことを示すメッセージが表示されてもよい。
【0075】
コントローラ135は、修復処理の完了を示すメッセージ等を表示後(S8)、本フローチャートの処理を終了する。
【0076】
以上の処理によると、動画修復のメニュー項目を選択するユーザ操作に応じて(S1,S2)、メモリカード142内のファイルから抽出した修復可能な破損ファイルが、表示モニタ130においてユーザに提示される(S3,S4)。そして、表示された破損ファイルから修復対象のファイルを選択するユーザ操作を受けて(S5)、修復指示に応じて、選択されたファイルに動画ファイルの修復処理が実行される(S6,S7)。
【0077】
これにより、ユーザが修復したい破損ファイルを選択する操作に応じて、動画ファイルの修復処理(S7)が選択的に実行でき、ユーザの利便性を向上させるとともに、過剰な修復処理が回避できる。このように、デジタルカメラ100において動画ファイルの修復を行い易くすることができる。
【0078】
また、以上の処理によると、修復可能な破損ファイルについて、取得したファイル情報に基づき(S3)、例えば
図8(B)の選択画面に示すように各ファイルの記録開始時刻61、クリップ番号62、及び記録時間63が表示される(S4)。これにより、ユーザが意図に沿ったファイルを修復対象として選択し易くすることができる。上記のステップS3では、ファイル情報において各ファイルのクリップ番号62を取得する例を説明したが、クリップ番号62に代えてファイル名が取得されてもよく、ステップS4でファイル名が表示されてもよい。
【0079】
図8(B)では、2つの破損ファイルが選択肢として表示される例を説明したが、1つの破損ファイルが表示されてもよく(S4)、ステップS5で当該1つのファイルを選択するユーザ操作が入力されてもよい。また、
図8(B)では、複数の破損ファイルについてのファイル情報が表示モニタ130の1画面に表示される例を説明したが、こうした複数ファイルのファイル情報が複数の画面にわたって表示されてもよい。例えば1画面毎に1ファイルのファイル情報が表示されてもよい。この場合、例えば左右方向の選択ボタン152等のユーザ操作で画面を切り替えることに応じて、ステップS5における破損ファイルの選択が行われてもよい。
【0080】
2-3.動画ファイルの修復処理
図8のステップS7における動画ファイルの修復処理の詳細を、
図9~
図14を用いて説明する。
【0081】
図9は、本実施形態のデジタルカメラ100における動画ファイルの修復処理(S7)を例示するフローチャートである。
図9のフローチャートは、修復対象として選択された破損ファイルについて修復指示があった場合に開始される(S6でYES)。
【0082】
コントローラ135は、MDTファイルD1として記録された修復対象の破損ファイルを解析する(S11)。欠損のない動画ファイルDmでは、MVDファイルDhに、メタ情報D10を格納するmoov等が含まれる。コントローラ135は、ステップS11におけるMDTファイルD1の解析により、例えばMVDファイルDhの生成に用いる情報を解析結果として出力する。こうしたMDTファイルの解析処理(S11)について詳細は後述する。
【0083】
コントローラ135は、例えば、MDTファイルD1の解析処理(S11)が、
図8(B)の中止アイコン56等によるユーザ操作に応じて終了したか否かに応じて、実行中の修復処理が中断されたか否かを判断する(S12)。
【0084】
修復処理が中断されず、例えばステップS11の処理がMDTファイルD1の終端まで解析を完了して終了した場合(S12でNO)、コントローラ135は、ステップS11での解析結果に基づいて、MVDファイルDhを生成する(S13)。例えばステップS13において、
図3に例示するmoovのstbl配下の各ボックスが生成される。
【0085】
コントローラ135は、解析結果からMVDファイルを生成すると(S13)、MDTファイルD1と生成したMVDファイルDhとを結合して、動画ファイルDmを生成する(S14)。コントローラ135は、例えばMP4またはMOVのファイル形式に応じて、結合したファイルの拡張子を変更する。
【0086】
その後、コントローラ135は、
図7のステップS8に進み、例えば修復処理の完了を示すメッセージ画面(
図8(D))を表示モニタ130に表示させる。
【0087】
一方、修復処理が中断された場合(S12でYES)、コントローラ135は、ステップS13,S14の処理を実行せずに
図7のステップS8に進み、例えば修復処理の中断を示すメッセージ等を表示させる。
【0088】
以上の処理によると、破損ファイルとして記録されたMDTファイルD1を解析して(S11)、解析結果からMVDファイルDhを生成し(S13)、MDTファイルD1とMVDファイルDhとの結合により動画ファイルDmが生成される(S14)。このように、再生できないMDTファイルD1から、解析によりMVDファイルDhにおけるメタ情報等が修復され、再生可能な動画ファイルDmが得られる。
【0089】
2-3-1.MDTファイルの解析処理
図9のステップS11におけるMDTファイルの解析処理の詳細を、
図10及び
図11を用いて説明する。
【0090】
図10Aは、本実施形態のデジタルカメラ100におけるMDTファイルの解析処理(S11)を例示するフローチャートである。
図10Bは、
図10Aに続くMDTファイルの解析処理(S11)を例示するフローチャートである。
図10A,10Bのフローチャートは、修復対象の破損ファイルとしてMDTファイルが選択された状態で開始される。
【0091】
まず、コントローラ135は、例えばMDTファイルD1に記録された記録モード情報を読み出す(S21)。
図11は、本実施形態のデジタルカメラ100における記録モード情報を説明するための図である。
【0092】
図11(A)は、動画を記録中のMDTファイルD1を例示する。本実施形態では、記録モード情報は、例えば動画の記録開始時等に、
図11(A)に示すようにスキップボックス(skip)として、MDTファイルD1の先頭に格納される。動画の記録中には、mdatのストリームデータが更新される。
【0093】
図11(B)は、正常に動画の記録が停止された場合の動画ファイルDmを例示する。
図11(B)の例では、skipを残した状態で動画ファイルDmが生成されている。skipは、MP4またはMOV形式の規格に準拠して記録され、再生時に残っていても動画ファイルDmを再生可能である。動画ファイルDmの生成時にskipが削除されてもよい。
【0094】
図11(C)は、記録モード情報としてskipに記録される情報を例示する。例えば、記録モード情報は、MOVまたはMP4のファイル形式に対応するコンテナ規格、映像のフレームレート、パラメータセット情報、ビットレート及びチャンク毎のフレーム数等を含む。また、
図11(C)の例では、記録モード情報は、さらにLPCMまたはAACといった音声データの記録形式を示す音声規格、音声の1サンプルのサイズ等を含む。
【0095】
MDTファイルD1では、
図6等に例示するように、映像のチャンクと音声のチャンクとが交互にmdatに記録される。MDTファイルの解析処理(S11)において、コントローラ135は、mdatの先頭のデータから順次、解析して、映像のチャンクの解析(S23~S35)と、音声のチャンクの解析(S37~S40)との各処理をチャンク単位で繰り返し実行する。
【0096】
(1)映像のチャンク解析
まず、
図10Aを参照して、映像のチャンクを解析する処理(S23~S35)を説明する。コントローラ135は、例えば映像データのフレーム番号i及びチャンク番号jをゼロ値に初期化する(S22)。フレーム番号i及びチャンク番号jは、それぞれフレーム(すなわちサンプル)及びチャンクのインデックスを示す変数である。
【0097】
コントローラ135は、例えばチャンクサイズを格納する配列において、j番目のチャンクサイズ、すなわちチャンク番号jのチャンクサイズをゼロ値に初期化する(S23)。例えば、ステップS22の初回の実行時には、チャンク番号「0」のチャンクサイズが「0」に初期化される。
【0098】
MP4またはMOV形式では、ストリームデータが階層構造で管理され、ネットワーク抽象化層(Network Abstraction Layer:NAL)に含まれる情報等を用いて復号される。NALは複数のNALユニットで構成される。
【0099】
コントローラ135は、MDTファイルD1における次の(すなわち未解析の)NALユニットの先頭を検出し、当該NALユニットの先頭に4バイトで記録されたサイズ情報を取得する(S24)。ステップS24では、例えばMDTファイルD1の読み取り位置をNALユニット先頭に移動させるシーク動作が適宜実行される。コントローラ135は、更に、サイズ情報を取得したNALユニットが、フレーム間の境界に対応するアクセスユニット境界(Access Unit Delimiter:AUD)であるか否かを判断する(S24)。
【0100】
サイズ情報を取得したNALユニットがAUDではない場合(S24でNO)、コントローラ135は、次のNALユニット先頭にシークして、ステップS24を繰り返す。
【0101】
NALユニットがAUDである場合(S24でYES)、コントローラ135は、例えばフレームサイズを格納する配列において、i番目のフレームサイズ、すなわちフレーム番号iのフレームサイズをゼロ値に初期化する(S25)。このように、MDTファイルD1における解析位置がフレームの先頭にあるとき、フレームサイズが初期化される。
【0102】
コントローラ135は、フレーム番号iのフレームサイズに、NALユニットから取得したサイズ情報、すなわちNALサイズを加算する(S26)。
【0103】
続いて、コントローラ135は、ステップS24と同様に、次のNALユニット先頭にシークしてNALサイズを取得する(S27)。ステップS27において、コントローラ135は、当該NALユニットが、符号化された映像のデータを含むビデオ符号化層(Video Coding Layer:VCL)以外のユニット、すなわち非VCL(non-VCL)であるか否かを判断する。1つのフレーム内には、AUDに続いて、それぞれ1つ以上の非VCL及びVCLのNALユニットが格納される。
【0104】
NALユニットが非VCLであれば(S27でYES)、コントローラ135は、ステップS26以降の処理を繰り返して、フレーム番号iのフレームサイズに、当該非VCLのNALサイズを加算する。
【0105】
一方、NALユニットが非VCLではない場合(S27でNO)、コントローラ135はNALサイズをフレーム番号iのフレームサイズに加算後(S28)、次のNALユニットのサイズを取得すると、当該NALユニットがVCLか否かを判断する(S29)。
【0106】
NALユニットがVCLである場合(S29でYES)、コントローラ135は、ステップS28以降の処理を繰り返して、フレーム番号iのフレームサイズに、当該VCLのNALサイズを加算する。
【0107】
NALユニットがVCLではない場合(S29でNO)、コントローラ135は、当該NALユニットがAUDであるか否かを判断して(S30)。AUDでなければ(S30でNO)、再度ステップS28以降の処理を繰り返す。
【0108】
以上の処理で解析位置を進めたNALユニットがAUDである場合(S30でYES)、コントローラ135は、チャンク番号jのチャンクサイズに、フレーム番号iの1フレーム分のNALサイズが加算されたフレームサイズを加算する(S31)。
【0109】
コントローラ135は、フレーム番号iをインクリメントして(S32)、例えば記録モード情報を参照することで、当該フレーム番号iがチャンク毎のフレーム数以上であるか否かを判断する(S33)。このように、解析中のチャンク番号jのチャンクに未解析のフレームがあるか否かを判断できる。
【0110】
フレーム番号iがチャンク毎のフレーム数以上ではない場合(S33でNO)、コントローラ135は、ステップS25に戻ってフレーム番号iのフレームサイズを初期化し、以降の処理を繰り返す。
【0111】
一方、1つのチャンクが解析されて、フレーム番号iがチャンク毎のフレーム数以上の場合(S33でYES)、コントローラ135は、チャンク番号jをインクリメントする(S34)。
【0112】
さらに、コントローラ135は、例えば操作部150において、修復の中断を指示するユーザ操作が入力されたか否か、すなわち中断指示があるか否かを判断する(S35)。本実施形態のデジタルカメラ100では、このように1つのチャンクを解析する毎に中断の有無が判断される。
【0113】
中断指示がある場合(S35でYES)、コントローラ135は、本フローチャートの処理を終了して、
図8のステップS8に進む(
図9のS12でYES)。
【0114】
一方、中断指示がない場合(S35でNO)、コントローラ135は、音声のチャンクを解析する処理(S37~S40)に進む。
【0115】
(2)音声のチャンク解析
図10Bのフローチャートにおいて、コントローラ135は、例えば記録モード情報を参照して、音声データについてサンプルサイズ、及び当該チャンクのチャンクサイズを算出する(S37)。例えば記録モード情報に基づき、音声規格がLPCMである場合、サンプルサイズは1チャンネルのサイズとチャンネル数とを乗じた値として、チャンクサイズは当該サンプルサイズにチャンク毎のサンプル数とを乗じた値として算出される。
【0116】
ステップS37で1つのチャンクが解析されると、コントローラ135は、音声のチャンク数をインクリメントする(S38)。
【0117】
その後、コントローラ135は、例えば、解析位置がMDTファイルD1の終端に到達したか、すなわちMDTファイルD1が終端まで解析されたか否かを判断する(S39)。
【0118】
解析位置がMDTファイルD1の終端に到達していない場合(S39でNO)、コントローラ135は、ステップS35と同様に中断指示の有無を判断する(S40)。
【0119】
中断指示がない場合(S40でNO)、コントローラ135は、ステップS23に戻り、次の映像のチャンクを解析する(S23~S35)。
【0120】
一方、中断指示がある場合(S40でYES)、本フローチャートの処理を終了して、
図8のステップS8に進む(
図9のS12でYES)。
【0121】
また、解析位置がMDTファイルD1の終端に到達した場合には(S39でYES)、コントローラ135は、解析結果をメモリカード142等に記録して、本フローチャートの処理を終了する。例えば解析結果としては、記録モード情報、映像についてのフレーム番号i、チャンク番号j、フレームサイズの配列、チャンクサイズの配列、及びチャンク番号jに応じた映像のチャンク数、及び音声のチャンク数等が記録される。その後、当該解析結果からMVDファイルDhが生成される(
図9のS12でNO,S13)。
【0122】
以上の処理によると、MDTファイルD1において映像及び音声の各チャンクが交互に記録されることに応じて、各々のチャンクを解析する処理(S23~S35,S37~S40)がチャンク毎に実行される。また、各解析の処理は、例えば中断指示に応じて解析結果を記録した上で、中断可能である(S35でYES,S40でYES,S36)。
【0123】
上記の処理では、音声のチャンク毎にサンプルサイズ及びチャンクサイズを算出する例を説明した(S37)。LPCM形式の音声データについては、ステップS37と同様の処理が、例えばチャンク毎に限らず、記録モード情報の読み出し後(S21)に実行されてもよく、算出された値が各チャンクにおけるサンプルサイズ及びチャンクサイズとして記録されてもよい。一方、AAC形式の音声データについては、チャンク毎に、例えば映像のチャンクを解析する処理(S23~S35)と同様にステップS37の算出が実行され得る。
【0124】
上記の処理では、音声のチャンクを解析後、MDTファイルD1が終端まで解析されたか否かを判断する例を説明した(S39)。当該判断は、例えば映像のチャンクを解析中、NALサイズの取得におけるシーク時に行われてもよい(S24等)。また、当該判断は、MDTファイルの解析処理(S11)におけるファイル等の読み出し時に行われてもよい。
【0125】
2-3-2.修復残り時間の表示処理
本実施形態のデジタルカメラ100は、例えば
図8(C)に示すように、動画ファイルの修復処理(S7)を実行中、修復が完了するまでの残り時間を表示する。こうした修復残り時間の表示処理について、
図12~
図14を用いて説明する。
【0126】
図12は、本実施形態のデジタルカメラ100における修復残り時間の表示処理を例示するフローチャートである。本フローチャートの処理は、例えば
図9のフローチャートに示す処理と並行して、コントローラ135により実行される。
【0127】
まず、コントローラ135は、例えば動画ファイルの修復処理(S7)におけるMDTファイルの解析処理(S11)での解析位置に基づき、MDTファイルD1における解析済みのファイルサイズが所定サイズであるか否かを判断する(S51)。所定サイズは、例えば比較的短い時間で残り時間の表示を更新可能とする観点から、200メガバイト(MB)の倍数等に設定される。
【0128】
解析済みのファイルサイズが所定サイズである場合(S51でYES)、コントローラ135は、MDTファイルD1のファイルサイズと、解析済みのファイルサイズとに基づいて、修復残り時間を算出する(S52)。
図13は、このような修復残り時間の算出を説明するための図である。
【0129】
図13(A)は、MDTファイルD1の解析を開始直後、未解析の領域が残り2000MBである状態を示す。この場合、後述のステップS53では、
図8(C)の画面において進捗バー65が空白の状態で、表示モニタ130に表示されてもよい。
図13(A)~(C)では、2000MBのMDTファイルD1を先頭から読み込んで解析する例を示す。
【0130】
図13(B)は、
図13(A)の後、MDTファイルD1の先頭から200MB、解析が進んだ状態を示す。
図13(B)の例において、コントローラ135は、解析開始から200MBの解析にかかった経過時間と、未解析の残り1800MBのファイルサイズとに基づき、例えば分単位で修復残り時間を算出する(S52)。コントローラ135は、例えば所定サイズ毎の解析位置と経過時間とを進捗情報として取得する。
【0131】
図13(C)は、
図13(B)の例から、さらに200MBの解析が進んだ状態を示す。本例では、解析開始から400MBを解析するまでの経過時間と、残り1600MBのファイルサイズとに基づき、修復残り時間が算出される。
【0132】
コントローラ135は、修復残り時間を算出後(S52)、算出した残り時間に応じて、表示モニタ130における表示を更新する(S53)。例えば
図8(C)の画面では、残り時間に応じて進捗バー65の表示が更新される。
【0133】
図14は、修復残り時間の表示処理における表示例を示す図である。
図14(A)は、
図13(B)以降の状態で修復残り時間が算出された場合の表示例を示す。コントローラ135は、ステップS53において、
図14(A)に例示するように、
図8(C)と同様の進捗バー65に加えて、算出した修復残り時間自体を表示させてもよい。
【0134】
図14(B)は、
図14(A)とは別の表示例を示す。例えば算出した残り時間が所定の時間を超えるなど、修復に長時間かかるような場合には、
図14(B)に示すように、デジタルカメラ100への給電をユーザに促すメッセージがさらに表示されてもよい。
【0135】
コントローラ135は、修復残り時間の表示を更新すると(S53)、動画ファイルの修復処理(S7)が終了したか否かを判断する(S54)。当該処理(S7)が終了していない場合(S54でNO)、コントローラ135は、ステップS51以降の処理を繰り返す。
【0136】
動画ファイルの修復処理(S7)が終了した場合に(S54でYES)、コントローラ135は、本フローチャートの処理も終了する。その後、コントローラ135は、例えば当該修復処理(S7)の終了に応じた
図8(D)のメッセージ画面等を表示させる(
図7のS8)。
【0137】
以上の処理によると、動画ファイルの修復処理(S7)を実行中に、例えば解析の進捗に応じて修復残り時間を算出し(S52)、修復残り時間の表示が更新される(S53)。これにより、例えばユーザが修復残り時間の表示に応じて、中止アイコン56等(
図8(C)参照)で実行中の修復処理を中断するための操作を行うか否かを決定し易くすることができる。
【0138】
3.効果等
以上のように、本実施形態において、撮像装置の一例であるデジタルカメラ100は、イメージセンサ115(撮像部の一例)と、コントローラ135(制御部の一例)と、操作部150とを備える。イメージセンサ115は、被写体像を撮像して撮像データを生成する。コントローラ135は、撮像データが示す動画を再生可能な動画ファイルDmとしての欠損を有する破損ファイルの一例として、MDTファイルD1から、動画ファイルDmを生成する修復処理の一例である動画ファイルの修復処理を実行する(S7)。操作部150は、修復処理に関するユーザ操作を入力する(S1,S5)。コントローラ135は、操作部150において一又は複数の破損ファイルから特定の破損ファイルを選択するユーザ操作を受け付けて(S5)、当該ユーザ操作に応じて、選択された破損ファイルに修復処理を実行する(S7)。
【0139】
以上のように、本実施形態のデジタルカメラ100は、一又は複数の破損ファイルから修復対象として特定のファイルを選択するユーザ操作に応じて(S5)、選択された破損ファイルに修復処理を実行する(S7)。これにより、デジタルカメラ100において、ユーザが修復したい破損ファイルに選択的に修復処理を実行でき、動画ファイルの修復を行い易くすることができる。
【0140】
また、本実施形態において、コントローラ135は、ユーザ操作により選択された破損ファイル以外の破損ファイルに修復処理を実行しない(S5~S7参照)。これにより、デジタルカメラ100において、例えば複数の破損ファイルがあっても、修復対象として特定の破損ファイルを選択するユーザ操作に応じて、過剰な修復処理が回避できる。
【0141】
本実施形態において、デジタルカメラ100は、情報を表示する表示部の一例として、表示モニタ130をさらに備える。コントローラ135は、操作部150における所定のメニュー操作に応じて(S1,S2)、一又は複数の破損ファイルが格納されたメモリカード142(記録媒体の一例)から、各破損ファイルに関するファイル情報を取得して(S3)、表示モニタ130において取得したファイル情報を表示させる(S4)。これにより、ユーザがメニュー操作に応じて、例えば所望のタイミングで修復したい破損ファイルを確認でき、ユーザにとって動画ファイルの修復を行い易くすることができる。
【0142】
本実施形態において、コントローラ135は、表示モニタ130において取得したファイル情報を表示させた状態で、操作部150において特定の破損ファイルを選択するユーザ操作を受け付ける(S4,S5)。これにより、ユーザにファイル情報を提示して、修復対象の破損ファイルを選択し易くすることができる。
【0143】
本実施形態において、ファイル情報は、破損ファイルの記録開始時刻61と、記録時間63と、識別番号の一例であるクリップ番号62と、ファイル名とのうちの少なくとも一つを含む(
図8(B)参照)。こうしたファイル情報の表示によれば、ユーザにとって修復対象の選択肢における破損ファイルを特定し易くすることができる。
【0144】
本実施形態において、デジタルカメラ100は、情報を表示する表示部の一例として、表示モニタ130をさらに備える。コントローラ135は、特定の破損ファイルに対する修復処理の実行中に(S7)、当該修復処理の実行時間を示す情報の一例として修復残り時間(
図8(C)及び
図14参照)を表示モニタ130に表示させる(S51~S54)。これにより、修復処理の実行中にユーザが修復残り時間を確認でき、ユーザの利便性を高めることができる。
【0145】
本実施形態において、コントローラ135は、特定の破損ファイルの修復処理を実行中に(S7)、操作部150において、修復処理の中断を指示するユーザ操作を受け付けて、中断を指示するユーザ操作に応じて(S35,S40,S12)、特定の破損ファイルの修復処理を中断する。これにより、修復処理を一旦開始しても、完了前にユーザ操作により中断して、例えば撮影動作が実行できるなど、ユーザにとって動画ファイルの修復をさらに行い易くすることができる。
【0146】
本実施形態において、破損ファイルにおける欠損は、動画の再生に用いられる管理情報の一例として、ftyp及びmoovを含むMVDファイルDhである(
図3、
図4及び
図6参照)。コントローラ135は、破損ファイルの一例として、MDTファイルD1に基づいてMVDファイルDhを生成することにより(S11,S13)、破損ファイルの修復処理を行う(S7)。これにより、MVDファイルDhを用いて再生可能な動画ファイルDmを生成することができる(S14)。
【0147】
(実施形態2)
実施形態1では、動画ファイルの修復処理(S7)において、修復処理の中断が可能なデジタルカメラ100を説明した。実施形態2では、さらに、中断した修復処理を中断時の状態から開始する再開が可能なデジタルカメラ100を説明する。
【0148】
以下、実施形態1に係るデジタルカメラ100と同様の構成、動作の説明は適宜、省略して、本実施形態に係るデジタルカメラ100を説明する。
【0149】
図15は、本実施形態のデジタルカメラ100におけるMDTファイルの解析処理(S11A)を例示するフローチャートである。本実施形態のデジタルカメラ100は、実施形態1におけるMDTファイルの解析処理(S11)と同様の処理(S23~S35,S37~S41)に加えて、中断した修復処理を再開するための処理(S20A,S20B,S36)を実行する。
【0150】
本実施形態では、コントローラ135は、中断指示があると(S35でYES)、メモリカード142等に格納される中断情報に、中断時までの解析結果を記録する(S36)。中断情報は、例えば修復処理の完了時にステップS41で記録される解析結果と同様の情報に加えて、中断時の解析位置を含む。解析位置は、例えばチャンク毎の解析結果が既に得られたMDTファイルD1内の位置に応じたアドレス等により記録される。
【0151】
音声のチャンクを解析する処理(
図10BのS37~S40)において中断指示がある場合にも(S40でYES)、コントローラ135は、映像についての上記の場合と同様に、ステップS36に進み、中断情報の記録を行う。コントローラ135は、中断情報の記録後(S36)、本フローチャートの処理を終了する。
【0152】
その後、コントローラ135は、操作部150において、例えば修復処理が中断された破損ファイルを再び修復対象として選択して、当該ファイルの修復指示を行うユーザ操作を受け付ける(S5,S6)。この場合、本実施形態におけるMDTファイルの解析処理(S11A)では、実施形態1における記録モード情報の読み出し(S21)、及びフレーム番号i及びチャンク番号jの初期化(S22)に代えて、ステップS20A,S20Bの処理が実行される。
【0153】
まず、コントローラ135は、例えばメモリカード142を参照して、解析中のMDTファイルD1について、以前にMDTファイルの解析処理(S11A)を実行したときの中断情報が記録されているか否かを判断する(S20A)。
【0154】
中断情報がある場合(S20A)、コントローラ135は、当該中断情報を参照して、中断時の解析結果を各種の変数等に設定する(S20B)。例えば、中断情報から、記録モード情報、フレーム番号i、チャンク番号j、フレームサイズの配列、チャンクサイズの配列、映像のチャンク数、音声のチャンク数、及び解析位置が設定される。
【0155】
その後、コントローラ135は、中断時までの解析結果を用いて、ステップS23以降の処理を実行する。
【0156】
一方、中断情報がない場合(S20AでNO)、実施形態1におけるMDTファイルの解析処理(S11)と同様に、記録モード情報を読み出し(S21)、以降の解析処理を行う。
【0157】
以上の処理によると、中断情報が記録されている場合(S20AでYES)、当該中断情報に基づき、中断された解析位置からMDTファイルD1の解析が再開される(S20B)。これにより、中断後の修復にかかる時間を短縮でき、また、修復処理を中断しても、MDTファイルのD1の最初から再度実行しなくてもよいため、ユーザが修復の中断を利用し易くすることができる。このように、デジタルカメラ100における動画ファイルの修復について、ユーザ利便性をさらに向上させることができる。
【0158】
以上のように、本実施形態において、コントローラ135は、特定の破損ファイルの修復処理を中断した後で、操作部150において、当該特定の破損ファイルの修復処理の再開を指示するユーザ操作を受け付けて、再開を指示するユーザ操作に応じて(S5,S6)、特定の破損ファイルの修復処理を再開する(S20A,S20B)。これにより、例えば修復処理が中断されたMDTファイルD1の先頭から修復処理を再度実行しなくてもよく、重複する修復処理が回避できる。また、ユーザにとっても再開を念頭において修復処理の中断を指示し易くすることができる。このように、デジタルカメラ100において動画ファイルの修復を行い易くすることができる。
【0159】
(他の実施形態)
以上のように、本出願において開示する技術の例示として、実施形態1~2を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。また、上記実施の形態で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。
【0160】
上記の実施形態1では、デジタルカメラ100において、動画ファイルの修復処理(S7)を実行中に、進捗バー65等により修復残り時間を表示する例を説明した(
図8(C)、
図11参照)。本実施形態では、ステップS7の実行中に限らず、例えば修復可能なファイルを表示する際に(S4)、修復にかかる時間が表示されてもよい。こうした実施形態1の変形例について、
図16を用いて説明する。
【0161】
図16は、実施形態1の変形例のデジタルカメラ100における修復時間の表示例を示す。
図16の表示例では、表示モニタ130は、修復対象のファイルの選択画面において、実施形態1の
図8(B)と同様の項目に加えて、選択肢の各ファイルについて修復処理の開始から完了までの時間を示す「修復時間」を表示する(S4)。本変形例のデジタルカメラ100では、コントローラ135は、例えば、ファイル情報を抽出する際に(S3)、各ファイルの記録時間に加えて修復時間の推定値を算出する。
【0162】
例えば、本変形例のデジタルカメラ100は、ファイルの記録時間及び映像のフレームレート等の記録モード情報と、当該ファイルの修復にかかる時間の実測値とを関連付けるテーブルを、予めフラッシュメモリ145等に格納してもよい。コントローラ135は、例えば当該テーブルと、選択肢の各MDTファイルD1における記録モード情報とを参照して、修復時間の推定値を算出できる。
【0163】
以上のように、本変形例において、コントローラ135は、特定の破損ファイルに対する修復処理の実行前に、当該修復処理の実行時間を示す情報の一例として、修復時間を表示モニタ130に表示させる(S4)。これにより、ユーザが特定の破損ファイルについて修復指示を行うか否かを決定し易くすることができる(S6参照)。
【0164】
以上の各実施形態において、コントローラ135は、特定の破損ファイルに対する修復処理の実行中(S7)または実行前(S4)に、それぞれ当該修復処理の実行時間を示す情報の一例として、修復残り時間(
図8(C)及び
図14参照)または修復時間(
図16参照)を表示モニタ130に表示させる。こうした実行時間の表示は、修復処理の実行中と実行前との一方に限らず、実行中及び実行前の両方において行われてもよい。
【0165】
上記の各実施形態では、ファイル情報の抽出において(S3)、拡張子が「MDT」であるファイルを修復対象の選択肢として抽出する例を説明した。本実施形態では、さらに、例えばMDTファイルD1の記録モード情報を参照して、コンテナ規格がMOVとMP4との何れであるかに応じて、一方のコンテナ規格のファイルのみが抽出されてもよい。例えば、MOV形式のファイルのみが抽出され、修復可能なファイルとして表示されてもよい(S4)。
【0166】
上記の各実施形態では、MDTファイルの解析処理(S11,S11A)において、映像と音声の各チャンクについて交互に解析する例を説明した(S23~S35,S37~S40)。本実施形態では、デジタルカメラ100は、例えばステップS37の実行前に、MDTファイルD1の記録モード情報を参照して、音声データが解析可能な規格か否かを判断してもよい。例えば、音声データがLPCMとは異なる形式で記録されている場合、ステップS37以降の処理を実行せず、MDTファイルの解析処理(S11,S11A)を終了してもよいし、映像のチャンクのみを解析してもよい。また、記録モード情報の読み出し時に(S21)、上記の判断が行われてもよい。
【0167】
上記の各実施形態では、
図11(A)に示すように、MDTファイルD1の先頭に記録モード情報が格納される例を説明した。記録モード情報は、MDTファイルD1とは別のファイルに記録されてもよく、本実施形態では、例えばテキストファイル等によりメモリカード142に記録される。また、記録モード情報は、
図11(C)に例示する情報以外の情報を含んでもよいし、
図11(C)の情報の一部のみを含んでもよい。例えば、動画の画質、フレームレート及びビットレート等の組み合わせに応じた記録モードを予め設定し、当該記録モードと他の情報とを関連付けたデータベースがフラッシュメモリ145等に格納されて、記録モード情報として参照されてもよい。
【0168】
上記の各実施形態では、動画ファイルの修復処理(S7)において、修復が中断されると(S12でYES)、動画ファイルDmの生成に関する処理(S13,S14)を実行せず、修復処理を終了する例を説明した。本実施形態では、修復が中断されると(S12でYES)、ステップS13,S14と同様の処理により、中断時までのMDTファイルD1の解析結果に基づいてMVDファイルDhを生成し、解析できた時点まで再生可能な動画ファイルDmが生成されてもよい。また、MDTファイルD1の解析中に解析エラー等が生じた際にも、中断時と同様に当該エラーが生じた時点までの解析結果を用いて修復が行われてもよい。
【0169】
上記の各実施形態では、MDTファイルの解析処理(S11,S11A)において中断情報がメモリカード142に記録される例を説明した。本実施形態では、中断情報は、例えばフラッシュメモリ145等のデジタルカメラ100本体における不揮発性の記録媒体に記録されてもよい。
【0170】
上記の各実施形態では、MDTファイルの解析処理(S11,S11A)において、映像及び音声のチャンク毎に、中断指示があるか否かを判断する例を説明した(S35,S40)。本実施形態では、チャンク毎に限らず、NALユニットまたはフレーム毎の周期で中断指示の有無が判断されてもよいし、1チャンクに対応する周期よりも大きい周期で当該判断が行われてもよい。また、例えば、
図12に示す処理で算出した修復残り時間が所定時間未満である等、間もなく修復が完了すると想定される場合に中断指示があると、表示モニタ130に中断を実行するか否かをユーザに確認するメッセージ等が表示されてもよい。
【0171】
上記の各実施形態では、修復の処理を中断可能なデジタルカメラ100を説明したが、特に中断のユーザ操作を受け付けない場合があってもよい。この場合、例えば、実施形態1と同様のMDTファイルの解析処理(S11)において、中断に関する処理(S35,S36,S40)が実行されなくてもよい。
【0172】
上記の各実施形態では、記録媒体の一例として、メモリカード142に動画ファイルを記録するデジタルカメラ100を説明した。本実施形態のデジタルカメラ100は、メモリカード142に限らず、記録媒体として例えばSSD(ソリッドステートドライブ)といった外部記録装置に動画ファイルを記録してもよい。また、デジタルカメラ100は、例えば通信モジュール155により、通信ネットワークを介して、データサーバなどの外部記録装置に動画ファイルを記録してもよく、このような外部記録装置に記録された動画ファイルについて、修復の動作を実行してもよい。こうした各種の外部記録装置は、本実施形態における記録媒体の一例である。
【0173】
上記の各実施形態では、デジタルカメラ100が、表示モニタ130に破損ファイルの選択画面(
図8(B))等を表示する例を説明したが、これに限らない。例えば、本実施形態のデジタルカメラ100は、通信モジュール155を介して、外部のディスプレイ等に
図8(B)と同様の選択画面を表示してもよい。
【0174】
上記の各実施形態では、光学系110及びレンズ駆動部を備えるデジタルカメラ100を例示した。本実施形態の撮像装置は、光学系110及びレンズ駆動部を備えなくてもよく、例えば交換レンズ式のカメラであってもよい。
【0175】
上記の各実施形態では、撮像装置の例としてデジタルカメラ100を説明したが、これに限定されない。本開示の撮像装置は、動画撮影機能を有する電子機器(例えば、ビデオカメラ、スマートフォン、タブレット端末等)であればよい。
【0176】
上記の各実施形態では、撮像装置において動画修復の動作を行う例を説明したが、本開示はこれに限定されない。本開示の技術は、撮像装置に限らず、動画撮影機能を有しない情報処理装置において実現されてもよい。本実施形態の情報処理装置は、被写体像を撮像して生成された撮像データが示す動画を再生可能な動画ファイルとしての欠損を有する破損ファイルから、前記動画ファイルを生成する修復処理を実行する制御部と、前記修復処理に関するユーザ操作を入力する操作部とを備える。前記制御部は、前記操作部において一又は複数の破損ファイルから特定の破損ファイルを選択するユーザ操作を受け付けて、当該ユーザ操作に応じて、前記選択された破損ファイルに前記修復処理を実行する。
【0177】
これによっても、情報処理装置のユーザにとって、上記の各実施形態と同様に破損した動画ファイルの修復を行い易くすることができる。
【0178】
以上のように、本開示における技術の例示として、実施の形態を説明した。そのために、添付図面および詳細な説明を提供した。
【0179】
したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
【0180】
(本開示の態様)
以上説明したように、本開示は、以下の態様を含む。
【0181】
(第1態様)
被写体像を撮像して、撮像データを生成する撮像部と、
前記撮像データが示す動画を再生可能な動画ファイルとしての欠損を有する破損ファイルから、前記動画ファイルを生成する修復処理を実行する制御部と、
前記修復処理に関するユーザ操作を入力する操作部とを備え、
前記制御部は、
前記操作部において一又は複数の破損ファイルから特定の破損ファイルを選択するユーザ操作を受け付けて、
当該ユーザ操作に応じて、前記選択された破損ファイルに前記修復処理を実行する
撮像装置。
【0182】
(第2態様)
情報を表示する表示部をさらに備え、
前記制御部は、
前記操作部における所定のメニュー操作に応じて、前記一又は複数の破損ファイルが格納された記録媒体から、各破損ファイルに関するファイル情報を取得して、
前記表示部において前記取得したファイル情報を表示させる
第1態様に記載の撮像装置。
【0183】
(第3態様)
前記制御部は、前記表示部において前記取得したファイル情報を表示させた状態で前記操作部において前記特定の破損ファイルを選択するユーザ操作を受け付ける
第2態様に記載の撮像装置。
【0184】
(第4態様)
前記ファイル情報は、前記破損ファイルの記録開始時刻と、記録時間と、識別番号と、ファイル名とのうちの少なくとも一つを含む
第2態様または第3態様に記載の撮像装置。
【0185】
(第5態様)
情報を表示する表示部をさらに備え、
前記制御部は、前記特定の破損ファイルに対する前記修復処理の実行中または実行前に、当該修復処理の実行時間を示す情報を前記表示部に表示させる
第1態様から第4態様のいずれかに記載の撮像装置。
【0186】
(第6態様)
前記制御部は、
前記特定の破損ファイルの修復処理を実行中に、前記操作部において、前記修復処理の中断を指示するユーザ操作を受け付けて、
前記中断を指示するユーザ操作に応じて、前記特定の破損ファイルの修復処理を中断する
第1態様から第5態様のいずれかに記載の撮像装置。
【0187】
(第7態様)
前記制御部は、
前記特定の破損ファイルの修復処理を中断した後で、前記操作部において、前記特定の破損ファイルの修復処理の再開を指示するユーザ操作を受け付けて、
前記再開を指示するユーザ操作に応じて、前記特定の破損ファイルの修復処理を再開する
第6態様に記載の撮像装置。
【0188】
(第8態様)
前記破損ファイルにおける欠損は、前記動画の再生に用いられる管理情報であり、
前記制御部は、前記破損ファイルに基づいて前記管理情報を生成することにより、前記破損ファイルの修復処理を行う
第1態様から第7態様のいずれかに記載の撮像装置。
【産業上の利用可能性】
【0189】
本開示は、動画ファイルを記録媒体に記録する撮像装置に適用可能である。
【符号の説明】
【0190】
100 デジタルカメラ
115 イメージセンサ
120 画像処理エンジン
125 バッファメモリ
130 表示モニタ
135 コントローラ
140 カードスロット
142 メモリカード
145 フラッシュメモリ
150 操作部