以下、本発明の実施形態について図面を参照しながら説明する。
第1の実施形態
図1は、本発明の実施形態に係るデータ処理装置100の構成例を示すブロック図である。
図1において、入力部101は、動画データや音声データを取得して出力する。本実施形態では、入力部101はデータ処理装置100の外部から供給された動画データや音声データを入力している。しかし、入力部101を撮像部やマイクロフォンを含む構成とし、撮像部で撮影された動画やマイクで収集された音声をそれぞれデータとして取得する構成としてもよい。
信号処理部102は、記録時においては、入力部101により入力された動画データや音声データをH.264(MPEG4 AVC)等の公知の符号化形式に従って符号化して、その情報量を圧縮する。また、動画データや音声データを記録するために必要な処理も行なう。また、信号処理部102は、再生時においては、再生された動画データや音声データを復号し、その情報量を伸張する。また、信号処理部102は、記録時において、符号化された動画データや音声データの符号量(データ量)の情報を制御部102に出力する。
メモリ103は、動画データや音声データを記憶する。データ処理装置100の各ブロックは、メモリ103に対してアクセスすることにより、必要な動画データや音声データを処理する。また、メモリ103は、動画データや音声データの他に、ファイルシステムの情報や、動画ファイルの管理情報など、各種の情報を記憶し、更に、制御部106による制御のためのワークメモリ等の役割を果たす。
ファイルデータ処理部104は、記録時においては、後述の様に、MP4ファイルにて規定された各種の管理情報を生成し、再生時には、再生された管理情報を処理し、その内容を制御部106に知らせる。表示部105は、入力または再生された動画、或いは、メニュー情報などの各種の情報を表示する。
制御部106は、操作入力部107からの入力に応じてデータ処理装置100の動作全体を制御する。制御部106はマイクロコンピュータやメモリ等を含み、不図示のメモリに記憶されたプログラムに従ってデータ処理装置100を制御する。操作入力部107は、ユーザにより操作可能な各種のスイッチを含み、ユーザによる各種の指示などを受け付けて制御部106へ通知する。また、操作入力部107は、電源スイッチや記録の開始、停止を指示するためのスイッチ、データ処理装置100のモードを切り替えるためのスイッチ等を含む。
記録再生部108は、記録媒体109に動画データや音声データ、或いは、各種の情報を記録すると共に、記録媒体109からこれらのデータを再生する。記録再生部108は、記録時においては、メモリ103に蓄積された管理情報や動画データ、或いは音声データを、後述するようにファイル形式で記録媒体109に記録する。また、記録再生部106は、再生時においては、記録媒体109から動画ファイルの管理情報や動画データ、音声データを再生し、メモリ103に記憶する。本実施形態では、記録媒体109はハードディスク(HDD)、フラッシュメモリカード等、ランダムアクセス可能な記録媒体である。
また、記録再生部108は、記録媒体109に記録する動画ファイルや、各種の情報を、FAT(File Allocation Table)等のファイルシステムに従い、ファイルとして管理する。また、不図示の装着、排出機構により、データ処理装置100に対して記録媒体109を容易に装着、排出することができるように構成するが、データ処理装置100に記録媒体109が内蔵される構成でもよい。
制御部106は、記録媒体109に動画ファイルの書き込み、読み出しを行う場合、記録再生部108を制御して、記録媒体109からファイルシステムデータ(管理データ)を再生してメモリ103に記憶する。このファイルシステムデータは、記録媒体109に記録されたデータのファイル名やファイルのサイズ、データの記録アドレスなどを示すデータであり、ファイルを管理するための管理情報である。そして、制御部106は、読み出したファイルシステムデータに従ってファイルの書き込み、読み出しを制御する。制御部106は、記録媒体109へのファイルの書き込みに応じて、メモリ103に記憶されたファイルシステムデータを更新する。そして、更新したファイルシステムデータを、記録再生部108により記録媒体109に記録する。
外部インターフェイス(IF)110は、データ処理装置100が外部送信モードに設定されている場合に、ユーザの記録指示により生成された動画ファイルを受け取り、ネットワーク112を介して外部装置113に動画ファイルを送信する。
次に、本実施形態で扱う情報ファイルについて説明する。本実施形態では、動画データや音声データを、MP4ファイル形式に従って記録、或いは、送信する。MP4ファイルはボックス(box)と呼ばれる単位で構成される。図2に一つのボックス201の構成を示す。一つのボックス201は、box-size、box-type、box-dataの領域を含む。box-sizeにはこのボックスのデータ長(バイト)の情報(サイズ情報)が格納される。box-typeにはbox-dataに格納されるデータ種別を示す情報が格納され、box-dataには実データが格納される。box-typeは32ビットの固定長のデータ領域であり、box-dataは可変長の領域である。box-sizeが32ビットであるため、一つのボックスのサイズは通常0xFFFFFFFFバイト以下である。
図2の202、203は本実施形態において扱うMP4ファイル(情報ファイル)の構成例を示す図である。ファイル202、203は、複数のボックス201から構成される。ファイル202は、FileTypeBox(ftyp-box)、MovieBox(moov-box)、MediaDataBox(mdat-box)の三つの格納単位から構成される。
ftypは、box-typeがftypであり、ファイルの互換性に関する情報が格納されるボックスである。ftypに記述されたbox-dataに基づいて、MP4ファイルに格納された動画データや音声データの符号化方式等を判別することができる。
moovは、box-typeがmoovであり、動画データや音声データに関する管理情報が格納されるボックスである。moovのbox-dataには、動画データや音声データのチャンクのファイル先頭からのオフセットを示すチャンクオフセット、各チャンクのサンプル数、サンプルサイズなどの情報が格納される。moovボックスの様子を図2の204に示す。moovは、mvhdと1以上のtrakを含む。trakボックスは、1以上のビデオトラック、ビデオ、オーディオトラックを定義する情報である。trakは、tkhdとmdiaを含む。mdiaは各トラックのメディアタイプなどを記述した情報である。mdiaはmdhdとstblを含む。stblには、動画データや音声データのチャンクのファイル先頭からのオフセットを示すチャンクオフセット、各チャンクのサンプル数、サンプルの表示時間、サンプルサイズなどの情報が格納される。ここで、動画データの1サンプルはフレームに対応し、音声データの1サンプルは音声フレームに対応する。
mdatは、box-typeがmdatであり、動画データや音声データの各サンプルが格納されるボックスである。符号化された動画データや音声データは、それぞれチャンクという単位に分割されて格納される。本実施形態では、動画データの1チャンクを、H.264方式で規定された1GOPの動画データとする。また、音声データの1チャンクを、この1GOPに対応したフレーム数の音声データとする。
また、ファイル203に示すように、mdatボックスを複数に分割して配置するためのMovieFragmentBox(moof-box)を使うことも可能である。moofは、box-typeがmoofであり、moovと後に続くmdatボックスの管理情報がbox-dataに格納される。ファイル203では、一つのmoovボックスとn個のmoofボックスを含む。moofボックスの構成を図2の205に示す。moofのbox-dataには、mfhdと1以上のtrafを含む。mfhdには、fragment sequence numberが格納される。trafボックスは、1以上のビデオトラック、或いは、ビデオ、オーディオトラックを定義する情報である。各trafは、tfhdとtrunを含む。tfhdは、後に続くmdatに格納された各チャンクの長さ(duration)とサイズのデフォルト値を格納する。trunは、後に続くmdatに格納された各チャンクに格納されるサンプルの表示時間、サイズがサンプル単位で変化する場合に、これらの値を格納する。また、mdatに格納された各チャンクのサイズが異なる場合には、mdatの先頭からの各チャンク先頭までのオフセット値の情報もtrunに格納される。
なお、moovのmdia,stblは、各トラックを構成する複数のチャンクに関するサイズやオフセットなどの情報が一つのbox-dataに格納される。一方、moofのtrunには、一つのチャンクに関するサイズやオフセットなどの情報が格納される。そのため、moofには、後にmdatに格納されたチャンクの数と同じ数のtrunボックスが格納される。
この様に、一つのmoovボックスと、1以上のmdatボックス(複数の第1の格納単位)、及び1以上のmoofボックス(複数の第2の格納単位)により一つのMP4形式のファイル203を構成することができる。また、moov、mdat、moofの各サイズは、動画や音声のサンプルデータ数、つまり記録時間や、圧縮後の動画、音声データのデータ量によって変わる。
次に、動画の記録処理、及び、外部への送信処理について説明する。本実施形態において図のフローチャートを用いて説明する処理は、制御部106が図示しないメモリに記憶されたプログラムをロードして実行することで各部を制御することにより実現される。
図3は、記録時の処理を示すフローチャートである。ユーザは、操作入力部107を操作することにより、入力された動画や音声を記録媒体108に記録する記録モードと、入力された動画や音声を記録するのではなく、外部に送信する送信モードの何れかを選択することができる。制御部106は、この様に記録モードと送信モードの何れかが選択された状態で、操作入力部107より記録開始の指示を受けると、設定されているモードを判別する(S301)。
制御部106は、記録モードが設定されていた場合、第1のモード処理を実行し(S302)、送信モードが設定されていた場合には、第2のモード処理を実行する(S303)。各モード処理により、出力先に適した形式の情報ファイルが生成される。
第1のモード処理を説明する。図4は第1のモード処理のフローチャートを示す図である。また、図5は、第1のモード処理において、メモリ102に格納されるデータと、記録媒体108に記録されるデータの状態を示す図である。
記録開始の指示を受けると、制御部106は、ファイルデータ処理部104に対し、ftyp、moov、mdatのデータを生成するように指示する。ファイルデータ処理部104は、ftypを生成してメモリ103に記憶する(S401)。また、ファイルデータ処理部104は、box-sizeとbox-dataに無効値(ダミーデータ)を格納したmoovボックスを生成してメモリ103に記憶する(S402)。更に、ファイルデータ処理部104は、box-sizeに無効値(ダミーデータ)を格納したmdatボックスを生成し、メモリ103に記憶する(S403)。このときメモリ103に記憶されているデータの構成を図5の501に示す。図5において、(d)で示した領域は無効値(ダミーデータ)が格納されている。
次に、制御部106は、信号処理部102に動画データと音声データの符号化を開始させる。信号処理部102は、メモリ103に順次記憶された動画データと音声データを符号化し、符号化した動画データと音声データを、メモリ103に記憶する(S404)。この際、信号処理部102は、動画データと音声データを、moovボックスにおけるbox-data領域に格納する。また、信号処理部102は、符号化された動画データと音声データのサンプルデータサイズなどの情報を、ファイルデータ処理部104と制御部107に出力する。このときメモリ103に記憶されているデータの構成を図5の502に示す。
この様に、動画データと音声データの符号化を継続し、メモリ103に記憶された未記録データのデータ量が所定量に達したことに応じて、制御部107は、記録再生部108に対してデータを記録する様に指示する。記録再生部108は、メモリ103より未記録のデータをftyp、moov、mdatの順に読み出して、記録媒体109に記録する(S405)。
そして、制御部106は、記録停止の指示があるまで、符号化された動画データと音声データをメモリ103に続けて記憶させ、更に、記録媒体109への記録処理を継続する。このときメモリ103に記憶されているデータと記録媒体109に記録されているデータの構成を図5の503に示す。
操作入力部107より記録停止の指示を受けた場合(S406)、制御部106は、信号処理部102に対して動画と音声の符号化処理を停止するよう指示すると共に、記録再生部108に対し、記録媒体109への記録停止を指示する。記録再生部108は、メモリ103に記憶された未記録のmdatのデータを読み出して記録媒体109に記録すると、記録を停止する(S407)。このときメモリ103に記憶されているデータと記録媒体109に記録されているデータの様子を図5の504に示す。
次に、制御部106は、記録再生部108に対し、記録媒体109に記録済のMP4ファイルから、moovボックスのデータと、mdatボックスにおけるbox-sizeのデータを読み出すように指示する(S408)。記録再生部108は、記録媒体109に記録済のMP4ファイルから、moovボックスのデータと、mdatボックスにおけるbox-sizeのデータを読み出し、メモリ103に記憶する。このときメモリ103に記憶されているデータと記録媒体109に記録されているデータの様子を図5の505に示す。505に示す様に、メモリ103に記憶されたmoovボックスのデータと、mdatボックスにおけるbox-sizeのデータはそれぞれ無効値を含んでいる。
次に、制御部106は、ファイルデータ処理部104に対し、メモリ103に記憶されたmoovボックスのデータと、mdatボックスにおけるbox-sizeのデータの無効値を正しい値に変更する様に指示する。ファイルデータ処理部104は、動画と音声の記録中に信号処理部102から出力されたサンプルデータサイズなどの情報に基づいて、moovボックスのサイズとmdatボックスのサイズを算出する。また、ファイルデータ処理部104は、記録中に信号処理部102から出力されたサンプルデータサイズなどの情報に基づいて、moovボックスのデータを生成し、moovのbox-dataを変更する(S409)。このときメモリ103に記憶されているデータと記録媒体109に記録されているデータの様子を図5の506に示す。
この様に、ファイルデータ処理部104により、メモリ103に記憶された無効値が変更されると、制御部106は、更新されたデータを記録するように記録再生部108に指示する。記録再生部108は、メモリ103から、moovボックスのデータと、mdatボックスにおけるbox-sizeのデータを読み出し、読み出したデータにより、元のMP4ファイルに記録されていたデータを更新する(S410)。このときメモリ103に記憶されているデータと記録媒体109に記録されているデータの様子を図5の507に示す。
この結果、最終的に記録媒体109に記録されているMP4ファイルのデータは、図2の202の形式となる。
次に、第2のモード処理を説明する。図6は第2のモード処理のフローチャートを示す図である。また、図7は、第2のモード処理において、メモリ102に格納されるデータと、外部IF110により送信済みのデータの構成を示す図である。
送信開始の指示を受けると、制御部106は、ファイルデータ処理部104に対し、ftyp、moov、mdatのデータを生成するように指示する。ファイルデータ処理部104は、ftypを生成してメモリ103に記憶する(S601)。また、ファイルデータ処理部104は、box-sizeとbox-dataに無効値(ダミーデータ)を格納したmoovボックスを生成してメモリ103に記憶する(S602)。更に、ファイルデータ処理部104は、box-sizeに無効値(ダミーデータ)を格納したmdatボックスを生成し、メモリ103に記憶する(S603)。このときメモリ103に記憶されているデータの様子を図7の701に示す。図7において、(d)で示した領域は無効値(ダミーデータ)が格納されている。
次に、制御部106は、信号処理部102により動画データと音声データの符号化を開始させる。信号処理部102は、メモリ103に順次記憶された動画データと音声データを符号化し、符号化した動画データと音声データを、メモリ103に記憶する(S604)。即ち、信号処理部102は、動画データと音声データを、mdatボックスにおけるbox-data領域に格納する。また、信号処理部102は、符号化された動画データと音声データのサンプルデータサイズなどの情報を、ファイルデータ処理部104と制御部107に出力する。このときメモリ103に記憶されているデータの構成を図7の702に示す。
この様に、操作入力部107より送信停止の指示があるまで動画データと音声データの符号化を継続する。送信停止の指示が無い場合(S605)、制御部106は、信号処理部102からの符号化済みの動画データと音声データのデータ量の情報に基づいて、メモリ103に記憶された未送信の符号化データのデータ量が所定量Lに達したか否かを判別する(S609)。
メモリ103に記憶された未送信の符合化データのデータ量がLに達していない場合には、そのまま動画データと音声データの符号化を継続する。ここで、所定値Lは、例えば、メモリ103に対して記憶可能な符号化動画データと音声データのデータ量に基づいて決めることができる。即ち、符号化された動画データと音声データの平均データレートに基づいて、メモリ103に記憶可能な動画データのフレーム数に基づいて決めることも可能である。
また、メモリ103に記憶された未送信の符号化データのデータ量が所定値Lに達した場合、制御部106は、その時点でメモリ103に記憶されている圧縮動画データのうち、所定値に達する直前のフレームを検出する。更に、制御部106は、メモリ103に記憶されている圧縮音声データのうち、この所定値に達する直前のフレームに対応した音声データのフレームを検出する。そして、送信開始の指示から、この所定値に達する直前のフレームまでの動画データと、それに対応した音声フレームまでの音声データにより一つのmdatボックスを生成して、mdatボックスを分割する。本実施形態では、符号化された動画データのデータ量がフレーム毎に異なる。そのため、所定値Lに対応した符号化動画データのフレーム数は一定にならない。そして、本実施形態では、メモリ103に記憶された未送信の符号化データのデータ量が所定値Lに達した場合、フレーム単位で動画データを分割する。また、分割された動画データのフレームに対応する音声データを音声フレーム単位で分割する。
制御部106は、ファイルデータ処理部104に対して、メモリ103に記憶されたmoovボックスのデータと、mdatボックスにおけるbox-sizeのデータの無効値を正しい値に変更する様に指示する。
ファイルデータ処理部104は、動画と音声の記録中に信号処理部102から出力されたサンプルデータサイズなどの情報に基づいて、moovボックスのサイズとmdatボックスのサイズを算出し、box-sizeのデータを変更する。また、ファイルデータ処理部104は、記録中に信号処理部102から出力されたサンプルデータサイズなどの情報に基づいて、moovボックスのデータを生成し、moovのbox-dataを変更する(S610)。また、ファイルデータ処理部104は、動画データや音声データのトラック情報(圧縮形式など、動画や音声の再生互換に関するデータ)をmoovのdata-boxに格納する。この処理により、一つのmoovボックスが生成される。このときメモリ103に記憶されているデータの構成を図7の702に示す。
そして、制御部106は、ftypボックスと、この様に更新された一つのmoovボックスと一つのmdatボックスを含む未送信のデータを外部に送信するように外部IF110に指示する。外部IF110は、メモリ103より未送信のデータを読み出してネットワーク112に送信する(S611)。このとき、外部IF110は、最初にftypボックスを送信し、続いてmoovボックス、mdatボックスの順に送信する。そして、外部IF110は、指定された未送信のデータの送信が完了すると、送信を停止する。
次に、制御部106は、ファイルデータ処理部104に対し、新たにmoofボックスとmdatボックスを生成するように指示する。ファイルデータ処理部104は、box-sizeとbox-dataに無効値(ダミーデータ)を格納したmoofボックスを新たに生成してメモリ103に記憶する(S612)。ファイルデータ処理部104は、box-sizeに無効値(ダミーデータ)を格納したmdatボックスを生成し、メモリ103に記憶する(S603)。このときメモリ103に記憶されているデータと送信済みのデータの様子を図7の703に示す。
そして、動画データと音声データの符号化を継続する。送信停止の指示が無く、メモリ103に記憶された未送信の符号化動画データと音声データのデータ量がLに達した場合、制御部106は、その時点でメモリ103に記憶されている動画データと、対応する音声データにより一つのmdatボックスを生成する。
そして、制御部106は、ファイルデータ処理部104に対して、メモリ103に記憶されたmoofボックスのデータと、mdatボックスにおけるbox-sizeのデータの無効値をMP4のファイル形式に従って正しい値に変更する様に指示する。ファイルデータ処理部104は、動画と音声の記録中に信号処理部102から出力されたサンプルデータサイズなどの情報に基づいて、moofボックスのサイズとmdatボックスのサイズを算出し、box-sizeのデータを変更する。また、ファイルデータ処理部104は、記録中に信号処理部102から出力されたサンプルデータサイズなどの情報に基づいて、moofボックスのデータを生成し、moofのbox-dataを変更する(S610)。このときメモリ103に記憶されているデータと送信済みのデータの構成を図7の704に示す。ここで、moofには、前述の様に、このmoofの後に続いて送信されるmdatに格納された動画データの管理情報が格納される。
そして、制御部106は、この様に更新されたmoofボックスとmdatボックスを含む、未送信のデータを外部に送信するように外部IF110に指示する。外部IF110は、メモリ103より未送信のデータを読み出してネットワーク112に送信する(S611)。そして、外部IF110は、指定された未送信のデータの送信が完了すると、送信を停止する。
次に、制御部106は、ファイルデータ処理部104に対し、新たにmoofボックスとmdatボックスを生成するように指示する。ファイルデータ処理部104は、box-sizeとbox-dataに無効値(ダミーデータ)を格納したmoofボックスデータを新たに生成してメモリ103に記憶する(S612)。ファイルデータ処理部104は、box-sizeに無効値(ダミーデータ)を格納したmdatボックスを生成し、メモリ103に記憶する(S603)。このときメモリ103に記憶されているデータと送信済みのデータの構成を図7の705に示す。
以下、同様に送信停止の指示を受けるまで処理を繰り返す。そして、操作入力部107より送信停止の指示を受けると(S605)、制御部106は、信号処理部102に対し、動画と音声の符号化を停止する様に指示する。また、制御部106は、送信停止の指示があった時点でメモリ103に記憶されている動画データと音声データにより一つのmdatボックスを生成する。
そして、制御部106は、ファイルデータ処理部104に対して、メモリ103に記憶されたmoofボックスのデータと、mdatボックスにおけるbox-sizeのデータの無効値を正しい値に変更する様に指示する。ファイルデータ処理部104は、動画と音声の記録中に信号処理部102から出力されたサンプルデータサイズなどの情報に基づいて、moofボックスのサイズとmdatボックスのサイズを算出し、box-sizeのデータを変更する。また、ファイルデータ処理部104は、記録中に信号処理部102から出力されたサンプルデータサイズなどの情報に基づいて、moofボックスのデータを生成し、moofのbox-dataを変更する(S606)。このときメモリ103に記憶されているデータと送信済みのデータの構成を図7の706に示す。
そして、制御部106は、この様に更新されたmoofボックスとmdatボックスを含む、未送信のデータを外部に送信するように外部IF110に指示する。外部IF110は、メモリ103より未送信のデータを読み出してネットワーク112に送信する(S607)。そして、外部IF110は、指定された未送信のデータの送信が完了すると、送信を停止する(S608)。このときメモリ103に記憶されているデータと送信済みのデータの構成を図7の707に示す。この結果、送信される動画ファイルの形式は図2の203に示す形式となる。
この様に、本実施形態では、動画や音声などの情報データを符号化しながら、符号化されたデータをMP4ファイル形式に従って記録媒体に記録する場合には、管理情報に無効値を格納して記録媒体に記録する。そして、記録停止後に、記録媒体に記録された管理情報の値を更新する。そのため、記録中に管理情報を記憶するため、大容量のメモリを用意する必要がない。
また、本実施形態では、動画と音声を符号化しながら、符号化されたデータをMP4ファイル形式に従って外部に送信する場合には、符号化された動画と音声のデータ量が所定値に達したことに応じて、mdatボックスを一つずつ複数生成する。そして、各mdatボックスと共にmoov(moof)データを送信する。この際、ftyp→moov(moof)→mdatボックスの順にデータを送信する。そのため、受信側の装置では、受信したデータを順次復号して出力することができる。
なお、本実施形態では、動画と音声を符号化し、MP4ファイル形式に従って記録、或いは送信する構成だったが、他の形式を用いることも可能である。例えば、動画データと音声データの前に、データサイズなどの管理情報を設ける構成であれば、同様に本発明を適用可能である。
また、本実施形態では、記録モードと送信モードのうち、選択されたモードに応じて第1のモード処理と第2のモード処理を切り替えていた。しかし、本実施形態はこれに限られるものではない。例えば、書き替え可能な記録媒体にデータを記録するためのファイルの生成では第1のモード処理を実行し、記録データの書き替えができないライトワンスの記録媒体にデータを記録するためのファイルの生成では第2のモード処理を実行する様にしてもよい。即ち、生成したファイルの出力先によって、ファイルの形式を、図2のファイル202に示すタイプと、ファイル203に示すタイプの何れかに決定する構成としてもよい。
また、本実施形態では、メモリ103に記憶された未送信の符号化動画、音声データのデータ量が所定値Lに達したことに応じて(所定量毎に)mdatを分割していたが、moofのデータ量が所定値Mに達したことに応じてmdatを分割する構成としてもよい。
例えば、メモリ103において、moof用の記憶領域とmdat用の記憶領域を予め割り当てておく。そして、moofの記憶領域に記憶されたデータが所定値M(M<L)に達したことに応じて、mdatを分割し、送信する構成とする。この場合、mdatの記憶領域に記憶された未送信の符合化動画、音声データのデータ量が所定値Lに達していなくても、その時点でmdatを分割する。
第2の実施形態
次に、第2の実施形態を説明する。本実施形態では、記録されたMP4形式のデータを再生して、外部に送信する処理について説明する。本実施形態においても、図のフローチャートを用いて説明する処理は、制御部106が図示しないメモリに記憶されたプログラムをロードして実行することで各部を制御することにより実現される。
図8は、第2の実施形態におけるデータ処理装置100の構成を示す図である。図8の装置では、図1の構成に対して変換部114が追加されている。そして、本実施形態では、記録媒体109から再生された動画データの1画面の画素数を変更し、変更された動画データを外部に送信することができる。図8の装置においても、第1の実施形態と同様に、図3、図4、図6の処理を実行することができる。以下、図8の装置において、記録媒体109に記録された動画ファイルの送信処理について説明する。
ユーザは、記録媒体109に記録された動画ファイルを送信する前に、操作入力部107より、送信する動画の画素数を変更するか否かを設定することができる。本実施形態では、図4の処理により記録媒体109に記録される動画データの1画面あたりの画素数を第1の画素数とする。そして、ユーザは、記録媒体109に記録された動画の画素数を、第1の画素数よりも少ない第2の画素数に変換して外部に送信するように指示することができる。
図9は記録媒体109に記録された動画ファイルの装置外部への送信処理を示すフローチャートである。図9の処理は制御部106が各部を制御することにより実行される。
ユーザにより送信する動画の画素数が設定され、動画ファイルの送信が指示されると処理が開始される。制御部106は、まず、送信する動画の画素数を判別する(S901)。送信する動画の画素数が、記録された動画と同じ第1の画素数であった場合、制御部106は、記録再生部108に対し、指定された動画ファイルを再生するように指示する。記録再生部108は、指定された動画ファイルを記録媒体109より順次読み出してメモリ103に記憶する。そして、制御部106は、外部IF110に対し、メモリ103に記憶された動画ファイルのデータを外部に送信するように指示する。外部IF110は、メモリ103に記憶された動画ファイルのデータを読み出して、順次ネットワーク112を介して外部装置113に送信する(S902)。
そして、操作入力部107より送信停止の指示を受けた場合、或いは再生中の動画ファイルの最後まで再生が完了した場合(S903)、制御部106は、記録再生部108による動画ファイルの再生を停止させる。同時に、外部IF110によるMP4ファイルの送信も停止させる(S904)。
一方、S901において、送信する動画の画素数が第2の画素数であった場合、制御部106は、記録再生部108に対し、指定された動画ファイルを再生するように指示する。記録再生部108は、指定された動画ファイルを記録媒体109より順次読み出してメモリ103に記憶する(S905)。次に、ファイルデータ処理部104は、メモリ103に記憶されたMP4ファイルのデータをパース(parse(構文解析))しながら、再生された動画ファイルに含まれるmoovボックスのデータを検出する。そして、このmoov内のサンプルデータサイズなどの必要なデータを取得して制御部106に送る。制御部106は、ファイルデータ処理部104より送られたデータに基づいて、動画ファイルのデータを記録媒体109より順次読み出すように記録再生部108に指示する。また、制御部106は、mdatボックスの動画データと音声データを復号するように信号処理部102に指示する。信号処理部102は、メモリ103より符号化された動画データと音声データを読み出して復号し、メモリ103に記憶する(S906)。
制御部106は、変換部114に対し、復号された動画データの画素数を第2の画素数に変更するように指示する。変換部114は、メモリ103より復号された動画データの各フレームを順次読み出して、各フレームの画素数を第1の画素数から第2の画素数に変更する。そして、変換部114は、第2の画素数の動画データをメモリ103に記憶する(S907)。
次に、制御部106は、前述の第2のモード処理を実行し、メモリ103に記憶された第2の画素数の動画データと音声データをMP4ファイル形式に変換して、外部IF110より送信する(S908)。なお、第1の実施形態では、入力部101により得られた動画データと音声データを符号化して、MP4ファイル形式に変換して送信した。本実施形態では、入力部101からの動画データと音声データではなく、前述の様に、記録媒体109より再生され、変換部114により第2の画素数に変換された動画データと、再生された音声データを符号化する。そして、符号化された動画データと音声データとを、図6の処理によりMP4ファイル形式に変換し、外部IF110よりネットワーク112を介して外部装置113に送信する。
この様に、記録媒体から再生された動画の画素数を変換し、再び符号化して送信する場合、送信対象のファイルの動画を全て符号化するまで、動画データのサイズが確定されない。
そのため、本実施形態では、再生された動画の画素数を変換した後、再び符号化して外部に送信する場合には、所定量の動画と音声が符号化されたことに応じて、一つのmdatボックスを生成する。そして、このmdatボックスと共にmoov(moof)データを送信する。そのため、受信側の装置では、受信したデータを順次復号して出力することができる。
本実施形態では、再生された符号化動画データに画素数の変換を行なって外部に送信することを例にして本件発明を説明したが、これに限るものではない。例えば、画素数の変換に代えて、またはそれに追加してフレームレートの変換(例えばフレームの間引き)を行なって送信する場合にも、再生データの復号、再符号化において本件発明を適用できるのは明らかである。
第3の実施形態
次に、第3の実施形態を説明する。第3の実施形態におけるデータ処理装置100は、図8と同様である。第3の実施形態においても、第1、第2の実施形態と同様に、図3、図4、図6、図9の処理を実行することができる。第3の実施形態では、動画ファイルを外部機器に送信する際に、外部機器が受信した動画ファイルを一時記憶するためのバッファメモリのサイズに基づいて、所定値Lを設定する。
以下、第3の実施形態における動画ファイルの送信処理について説明する。本実施形態においても、図のフローチャートを用いて説明する処理は、制御部106が図示しないメモリに記憶されたプログラムをロードして実行することで各部を制御することにより実現される。
図10は、第3の実施形態における、記録時の処理のフローチャートを示す図である。なお、図3と同様の処理については同一の番号を付加し、詳細な説明は省略する。記録開始の指示を受けたときに、送信モードが設定されていた場合、制御部106は、外部IF110により、外部装置113が受信した動画ファイルを一時記憶するためのバッファメモリのサイズを外部機器113に問い合わせる。外部IF110は、外部装置113より、バッファメモリのサイズに関する情報を受信し、制御部106に知らせる(S1001)。制御部106は、外部IF110により受信されたバッファメモリのサイズに基づき、送信モードで用いる所定値Lを、このバッファメモリのサイズよりも小さく設定する(S1002)。その後、前述の様に、第2のモード処理を実行する(S303)。
この様に、本実施形態においては、送信モードにおいて、動画ファイルの送信先の外部機器におけるバッファメモリのサイズを取得する。そして、このバッファメモリのサイズを超えない様に、所定値Lを設定する。
そのため、送信モードにおいて送信される動画ファイルの各mdatボックスのサイズが、受信側の外部装置113のバッファメモリのサイズよりも小さくなる。従って、外部114は、データ処理装置100から送信された動画ファイルを良好に受信し、デコードすることが可能となる。
なお、本実施形態では、動画データや音声データを記録する装置について説明したが、入力された他の情報データを記録する装置に対しても同様に本発明を適用可能である。
その他の実施形態
前述した本発明の実施形態における記録装置を構成する各手段、並びに記録方法の各工程は、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記憶したコンピュータ読み取り可能な記憶媒体は本発明に含まれる。
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図2、図5及び図7に示すフローチャートに対応したプログラム)を、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM、DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、その他の方法として、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、その他の方法として、まず記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。