本発明の実施例について、図面を参照して以下に説明する。
図1は、本発明による動画像記録再生装置の一実施例を説明するためのブロック図であり、図1中、1はデータ処理部、2は記録(ディスク)メディア、3は記録メディアコントローラ、4は符号化データ管理部、5はメモリコントローラ、5aはビデオ記録情報管理部、5bはオーディオ記録情報管理部、5cは多重化記録情報管理部、6はメモリである。
データ処理部1は、エンコーダから入力される多重符号化データや符号化データ管理部4から入力されるデータをセクタ単位に分割し、記録メディア2の所定のセクタに記録するように出力する。セクタ番号は、記録メディアコントローラ3から入力される。
該記録メディアコントローラ3は、記録メディア2の読み出し,書き込みを制御する記録メディア制御データを出力するとともに、データ処理部1にデータを書き込みあるいは読み出す記録メディア2上でのセクタ番号を出力する。符号化データ管理部4には、予め記録メディアに記録されているあるいは新たに記録メディアに記録するビデオシーケンスに対応する管理データが記録されている。
符号化データ管理部4は、ビデオ記録情報管理部5aとオーディオ記録情報管理部5bと多重化記録情報管理部5cとから成るメモリコントローラ5を有し、該メモリコントローラ5はメモリ6と接続されており、該メモリ6に格納されている管理データを制御する。
また、符号化データ管理部4は、ビデオデータを高能率に符号化したビデオ符号化データと、オーディオデータを高能率に符号化したオーディオ符号化データと、前記ビデオ符号化データと前記オーディオ符号化データとを多重化するための付加データとからなる多重符号化データに対して、該多重符号化データを記録メディアに蓄積するための管理を行うもので、フレーム内符号化されたビデオフレームもしくは前方向から予測符号化されたビデオフレームをキーフレームとして管理に用い、該キーフレームに対応する前記ビデオ符号化データと、前記オーディオ符号化データと、前記多重符号化データとのうちの1つもしくは2つもしくは全ての符号化データの記録メディア上での記録位置情報及び前後の符号化データとの連結情報を管理データして与えるものである。
以下に説明する実施例では、符号化方式として従来の符号化方式の例で挙げたMPEG方式を用い、エンコーダから入力される多重符号化データは、図21に示した構造であるとする。また、キーフレームのビデオ符号化データの先頭位置とキーフレームに対応するオーディオ符号化データの先頭位置のうち、先に記録されている先頭位置を含むパックをキーパックと呼ぶことにする。
まず、記録,再生装置に記録メディアが挿入されたときの動作について説明する。記録メディアコントローラ3は、記録メディア2に記録されている管理データを読み出すように記録メディア制御データを出力する。データ処理部1には記録メディア2から管理データが入力され、符号化データ管理部4に出力される。該符号化データ管理部4では、入力される管理データを所定のアドレスに記録する。
次に、符号化データの記録時の動作について説明する。この動作は、動画像再生専用装置の場合ではなく、記録可能な装置の場合の動作である。まず、データ処理部1では、エンコーダから入力される多重符号化データをセクタ単位に分割する。そして、記録メディアコントローラ3から入力されるセクタ番号に従って、記録メディア2上の所定のセクタに記録されるように符号化データを出力する。
また、データ処理部1は、エンコーダから入力される多重符号化データを記録メディア2に記録するに際して、記録領域が連続した部分について、最初のセクタ番号と最後のセクタ番号を符号化データ管理部4に出力する。記録時には、時間的に連続したビデオシーケンスを複数の領域に分割して記録できる記録装置もあれば、連続した領域にしか記録できない記録装置もある。前者の場合は、複数の領域に分割して記録した場合、それぞれの領域に対して、最初のセクタ番号と最後のセクタ番号が符号化データ管理部4に出力されることになる。
さらに、データ処理部1では、エンコーダで付加される図21の第1のヘッダを検出する検出部と、キーフレームのビデオ符号化データ及びキーフレームに対応するオーディオ符号化データの開始と終了を検出する検出部を設けておき、キーフレームに対応するビデオ符号化データ,多重符号化データが記録される記録メディア上での位置情報を符号化データ管理部4に出力する。
ここで、キーフレームのビデオ符号化データの開始と終了は、ビデオ符号化データにおいて、ビデオフレーム単位に存在するヘッダを検出することで可能である。また、キーフレームに対応するオーディオ符号化データの開始と終了は、ビデオ符号化データ及びオーディオ符号化データに付加される時間情報から知ることができる。
また、第1のヘッダの開始を示すフラグ,キーフレームのビデオ符号化データ及びキーフレームに対応するオーディオ符号化データの開始と終了を示すフラグを出力するようにエンコーダを構成すれば、データ処理部1で第1のヘッダを検出する出力部及びキーフレームのビデオ符号化データ及びキーフレームに対応するオーディオ符号化データの開始と終了を検出する検出部を備える必要はない。
符号化データ管理部4内のメモリコントーラ5では、データ処理部1から入力されるデータから連結情報を生成する。このとき、ビデオ符号化データの記録位置情報はビデオ記録情報管理部5aで管理し、オーディオ符号化データの記録位置情報はオーディオ記録位置情報管理部5bで管理し、多重符号化データの記録位置情報は多重化記録情報管理部5cで管理する。
そして、メモリ6の内容からビデオシーケンス,記録メディア上での記録領域,記録領域に記録されているキーフレームの連結情報を生成し、記録位置情報とともにメモリ6に記録する。この動作で、記録メディア2に符号化データが新たに記録された場合に、符号化データ管理部4には常に記録メディア2に記録されている符号化データに対応する最新の管理データが記録されていることになる。
記録メディア2に新たなデータを記録した場合、符号化データ管理部4には最新の管理データが記録されるが、記録メディア2に記録されている管理データは更新されていない。そこで、例えば、記録が終了した時点や装置から記録メディア2を取り出す時点で、符号化データ管理部4に記録されている管理データを記録メディア2に記録する必要がある。また、記録メディア2に符号化データ記録中であっても、定期的に管理データを更新すべく記録メディア2を制御してもよい。
この手順は、記録メディアコントローラ3が記録メディア2に管理データを書き込むように記録メディア2を制御し、符号化データ管理部4のデータを順次データ処理部1に入力するように制御する。データ処理部1では、符号化データ管理部4から入力されるデータを記録メディア2に出力する。
次に、通常再生時の動作を説明する。ここで、符号化データ管理部4には、既に記録メディア2から読み出した管理データが記録されているものとする。まず、符号化データ管理部4から再生しようとする多重符号化データが記録されている最初のセクタ番号と最後のセクタ番号が読み出され、記録メディアコントローラ3に入力される。
符号化データは、記録メディア2上で複数の領域に分割して記録していることもあるが、その場合には、各記録領域毎に領域の最初のセクタ番号と最後のセクタ番号が符号化データ管理部4から記録メディアコントローラ3に入力される。
図2は、符号化データが斜線で示した2つの領域に分割して記録されている場合の例を示す図である。実際の記録メディア2の記録領域は、複数の同心円状又はスパイラル状であるが、ここでは、横軸に時間軸を取って表している。
図2で符号化データを1,2の順番で読み出すとすると、符号化データ管理部4からは最初にa,bの位置のセクタ番号が出力され、次にc,dの位置のセクタ番号が出力される。記録メディアコントローラ3は、符号化データ管理部4から入力されるセクタ番号に従って、記録メディア2から多重符号化データを読み出すように記録メディア制御データを出力する。データ処理部1には、記録メディア2から連続した多重符号化データが入力され、デコーダに出力される。
次に、頭出し時の動作について説明する。頭出し時には、符号化データ管理部4から再生すべきキーフレームに対応する多重符号化データの記録メディア上での記録位置情報が記録メディアコントローラ3に出力される。該記録メディアコントローラ3では、入力される記録位置情報を用いて、記録メディア2をキーパックの符号化データが記録されているセクタにアクセスするように制御する。データ処理部1の動作は通常再生と同一である。
次に、高速再生時の動作について説明する。高速再生時には、記録メディアコントローラ3は、キーフレームに対応する符号化データに連続してアクセスするように記録メディアを制御する。MPEG方式では、キーフレーム間に前方向,後方向の両方向から予測符号化するBフレームがあるが、高速再生時には、Bフレームのビデオ符号化データは読み出さない。
まず、高速再生が指定された場合、符号化データ管理部4から再生すべきキーフレームの記録メディア上での位置情報が順序に記録メディアコントローラ3に出力される。該記録メディアコントローラ3では、入力される記録位置情報を用いて、記録メディア2をキーフレームのビデオ符号化データが記録されているセクタにアクセスするように制御する。
なお、ポインタ編集の再生時の動作は、高速再生とほぼ同一であり、高速再生の場合にはキーフレームに対応する符号化データに順序にランダムアクセスするが、ポインタ編集の再生の場合は、管理データで示された連結情報に従って、不連続な領域に記録されている符号化データにランダムアクセスする。
このように、本実施例では、ランダムアクセス時に読み出すべきデータの記録メディア上での記録位置を管理データとして符号化データ管理部4に格納しているため、不要なデータをほとんど読み出すことがなく、高速なランダムアクセスが可能になる。
次に、本発明の他の実施例について説明する。本実施例のブロック図は、図1に示したブロック図と同一である。本実施例では、符号化データ管理部4に記録される管理データは、多重符号化データの記録メディア上での記録位置情報として、キーパックの先頭位置を示すセクタ番号、ビデオ符号化データのメディア上での記録位置情報として、キーフレームのビデオ符号化データの先頭位置及び後尾位置を示すセクタ番号を含むものである。
図3(a),(b)は、キーパックの先頭位置の例を示す図である。キーパックとは、キーフレームのビデオ符号化データの先頭位置とキーフレームに対応するオーディオ符号化データの先頭位置のうち、先に記録されている先頭位置を含むパックを示す。図3(a)は、キーフレームのビデオ符号化データの先頭が先に記録されている場合、図3(b)は、キーフレームに対応するオーディオ符号化データの先頭が先に記録されている場合の例である。なお、図中m1,m2,…,m8は多重化用付加データである。
図4は、図1におけるデータ処理部のヘッダ検出回路のブロック図で、図4中、7は第1のヘッダ検出部、8はビデオヘッダ検出部、9はオーディオヘッダ検出部、10は判定回路である。本実施例のデータ処理部1では、図4に示すようなヘッダを検出するヘッダ検出回路を有し、符号化データ記録時には、キーパックが記録される最初のセクタ番号及びキーフレームの符号化データの先頭と後尾が記録されるセクタ番号を符号化データ管理部4に出力する。
図4に示すヘッダ検出回路は、第1のヘッダ検出部7とビデオヘッダ検出部8とオーディオヘッダ検出部9と判定回路10とで構成されており、第1のヘッダ検出部7,ビデオヘッダ検出部8,オーディオヘッダ検出部9には、エンコーダから多重符号化データが入力され、それぞれ図21で示した第1のヘッダ、ビデオフレームの先頭に付加されているヘッダ,オーディオフレームの先頭に付加されているヘッダを検出する。
そして、ヘッダが検出された場合、判定回路10にフラグを入力する。該判定回路10では、第1のヘッダ検出部7,ビデオヘッダ検出部8,オーディオヘッダ検出部9から入力されるヘッダと、記録メディアコントローラ3から入力されるセクタ番号から、キーパックが記録される最初のセクタ番号及びキーフレームのビデオ符号化データの先頭と後尾が記録されるセクタ番号を符号化データ管理部4に出力する。
なお、図4の例で検出されるヘッダは、データ処理部1の前段にあるエンコーダで付加される。そこで、エンコーダからデータ処理部1に図21で示した第1のヘッダ、ビデオフレームの先頭に付加されているヘッダ、オーディオフレームの先頭に付加されているヘッダが入力されることを示すフラグを入力する構成としておけば、データ処理部1に図4の第1のヘッダ検出部7,ビデオヘッダ検出部8,オーディオヘッダ検出部9を備える必要はない。
また、再生時において、通常は記録メディア2から読み出すデータはセクタ単位で得られるため、再生に必要な多重符号化データの先頭がセクタの途中に記録されている場合には、最初に不要なデータが存在することになる。そこで、データ処理部1の後段のデコーダでは、図4に示した第1のヘッダ検出部7,ビデオヘッダ検出部8,オーディオヘッダ検出部9と同一の回路を有し、ヘッダを検出し、ヘッダ以前に得られる不要なデータを取り除く必要がある。
しかしながら、本実施例のように、データ処理部1に図4で示した回路を備えている場合は、データ処理部1でヘッダ以前に得られる不要なデータを取り除くことができるので、後段のデコーダにヘッダを検出する検出回路を備える必要はない。
このように、本実施例では、キーフレームに対応するビデオ符号化データ,オーディオ符号化データ,多重符号化データの管理に、キーフレームに対応したそれぞれの符号化データの先頭もしくは後尾が記録されるセクタ番号を用いるため、キーフレームへのアクセスが効率良く行える。すなわち、頭出し,高速再生,ポインタ編集を行う際に必要となるキーフレームに対応した記録位置へのアクセスが、前記管理データを利用することにより可能となる。
この際、ビデオとオーディオを共に出力するのであれば、前記管理データのうち多重符号化データに関するものだけを使用すればよく、ビデオ符号化データ及びオーディオ符号化データに関する管理データは不要である。一方、ビデオ符号化データのみ、もしくはオーディオ符号化データのみにアクセスする場合は、管理データとしてビデオ符号化データ及びオーディオ符号化データに関するものを用いることになる。
次に、本発明の別の実施例について説明する。本実施例のブロック図は、図1に示したブロック図を同一であるが、符号化データ管理部4の動作が異なる。本実施例では、ランダムアクセスを伴う再生のうち、頭出し,ポインタ編集の再生の場合は、多重符号化データの記録メディア上での記録位置情報を用いて多重符号化データを読み出し、高速再生の場合は、ビデオ符号化データの記録メディア上での記録位置情報を用いてビデオ符号化データを読み出す。
従って、頭出し,ポインタ編集の再生の場合は、符号化データ管理部4から記録メディアコントローラ3にキーパックの先頭位置を示すセクタ番号を入力し、高速再生の場合は、キーフレームのビデオ符号化データの先頭位置と後尾位置を示すセクタ番号を入力する。
これは、頭出し,ポインタ編集の再生の場合は、オーディオ出力とビデオ出力を同期して再生する必要があり、高速再生の場合は、ビデオ出力だけのためである。本実施例によると、高速再生時には、不要なオーディオ符号化データを読み出すことがなくなり、単位時間当たりに再生できる画像の枚数がより多くなる。
前述した実施例においては、管理データに多重符号化データの記録メディア上での位置情報として、キーパックの先頭位置が記録されるセクタ番号を、ビデオ符号化データの記録メディア上での位置情報として、キーフレームのビデオ符号化データの先頭位置と後尾位置を示すセクタ番号を用いるものである。
さらに、他の実施例として、管理データにキーパックの先頭位置とキーフレームのビデオ符号化データの後尾位置を示すセクタ番号を用い、キーフレームのビデオ符号化データの先頭位置を示すセクタ番号を用いない実施例も考えられる。この場合、オーディオ出力とビデオ出力を同期再生する場合も、ビデオ出力だけの場合も、ランダムアクセス時にキーパックの先頭位置にアクセスする。
従って、ビデオ出力だけ必要とする場合は、不要なオーディオ符号化データを読み出す場合があり、例えば、高速再生の場合には、単位時間当たりに再生できるビデオフレーム数が少なくなるが、管理データの容量は少なくすることができる。
また、再生時にビデオデコーダからビデオフレームの終了を示すフラグを入力するようにしておけば、キーフレームのビデオ符号化データの後尾位置を記録する必要がなくなり、管理データをさらに少なくすることができる。この場合、管理データとして用いるのは、キーパックの先頭位置を示すセクタ番号だけになる。
次に、本発明の他の実施例について説明する。図5は、図1の符号化データ管理部のブロック図で、図中、11はメモリコントローラ、12〜14はメモリである。
符号化データ管理部4は、図5に示すように、管理データを格納する3つのメモリ12,13,14と、それらを制御するメモリコントローラ11とで構成される。メモリ12,13,14には、それぞれビデオシーケンスを管理する第1のテーブル(以下、シーケンステーブルと呼ぶ)、記録メディア上での記録領域を管理する第2のテーブル(以下、領域テーブルと呼ぶ)、キーフレームに対応するビデオ符号化データもしくはオーディオ符号化データもしくは多重符号化データを管理する第3のテーブル(以下、キーフレームテーブルと呼ぶ)が記録される。
図6は、図5に示す各メモリに記録される管理データの内容の一例を示す図で、図5中、21は次のシーケンスアドレス、22は領域テーブルアドレス、23は次の領域のアドレス、24は開始セクタ番号、25は終了セクタ番号、26は開始フレームアドレス、27は次のフレームアドレス、28はパック開始セクタ番号、29はキー開始セクタ番号、30はキー終了セクタ番号であり、アドレス21,22,23,26,27はポインタ(連結情報)で、セクタ番号24,25,28,29,30は記録位置情報である。
メモリ12のシーケンステーブルは、1つのビデオシーケンスに対して1ワードのデータがある。1ワードデータは、次のワードを示すポインタ「次のシーケンスアドレス」21及び領域テーブルの位置を示すポインタ「領域テーブルアドレス」22からなる。
「次のシーケンスアドレス」21は、ビデオシーケンスの再生順序を示し、「領域テーブルアドレス」22はビデオシーケンスに対応する領域テーブルのアドレスを示す。ここで、「次のシーケンスアドレス」21は、メモリ12のアドレスを示すが、ポインタ「次のシーケンスアドレス」21でつながれた最後のデータは‘終了’を示す特別な値を有する。
メモリ13の領域テーブルには、記録メディア上の連続した記録領域毎に1ワードのデータがある。1ワードデータは、次のワードを示すポインタ「次の領域のアドレス」23、連続した記録領域の最初のセクタ番号である「開始セクタ番号」24、連続した記録領域の最後のセクタ番号である「終了セクタ番号」25、連続した記録領域に含まれるキーフレームに対応するキーフレームテーブルの開始アドレスを示すポインタ「開始フレームアドレス」26の4つからなる。
シーケンステーブルの1ワードデータに対応する領域テーブルは、シーケンステーブルの「領域テーブルアドレス」22で示された領域テーブルアドレスから、ポインタ「次の領域のアドレス」23でつながった領域テーブルの一連となる。
「次の領域のアドレス」23は、メモリ13のアドレスを示すが、ポインタ「次の領域のアドレス」23でつながれた最後のデータは‘終了’を示す特別な値を持つ。また、領域テーブルの1ワードデータで示された開始セクタ番号から終了セクタ番号の領域にキーフレームが記録されない場合は、「開始フレームアドレス」26は‘データなし’を示す特別な値を有する。
メモリ14のキーフレームテーブルには、1つのキーフレーム毎に1ワードのデータがある。1ワードのデータは、次のワードを示すポインタ「次のフレームアドレス」27,キーパックの先頭が記録されているセクタ番号を示す「パック開始セクタ番号」28,キーフレームのビデオ符号化データの先頭が記録されているセクタ番号を示す「キー開始セクタ番号」29,後端が記録されているセクタ番号を示す「キー終了セクタ番号」30である。
「次のフレームアドレス」27は、メモリ14のアドレスを示すが、ポインタ「次のフレームアドレス」27でつながれた最後のデータは‘終了’を示す特別な値を有する。
図6の例では、図5のメモリ14のキーフレームテーブルに記録されているデータがIフレームの符号化データを示すのか、Pフレームの符号化データを示すのかを示す情報はない。そこで、後述するように、キーフレームテーブルの1ワードデータ毎にIフレームのビデオ符号化データを示すのか、Pフレームのビデオ符号化データを示すのかを示すフラグを付加する、あるいはキーフレームテーブルをIフレームのテーブルとPフレームのテーブルに分離するという手法を用いる。
図7は、図5に示すメモリの各テーブルに記録される管理データと記録領域との関係を示す図である。記録メディア2上には、複数のビデオシーケンスを記録することができ、1つのビデオシーケンスが記録メディア2上で連続した記録領域に記録されることもあれば、複数の記録領域に分割して記録されることもある。
図7の例では、3つのビデオシーケンスが記録されており、ビデオシーケンス1は、3つの領域に分割して記録されている。再生順序はビデオシーケンス1,2,3の順であるとする。
図7の例の場合、シーケンステーブルにはビデオシーケンス1,2,3それぞれに対応した3つの1ワードデータがあることになる。最初の1ワードデータは、ビデオシーケンス1に対応するデータであり、ビデオシーケンス1の「次のシーケンスアドレス」がビデオシーケンス2に対応する1ワードデータを示し、ビデオシーケンス2の「次のシーケンスアドレス」がビデオシーケンス3に対応する1ワードデータを示すことになる。そして、シーケンステーブルの「領域テーブルアドレス」がビデオシーケンスに対応する最初の領域テーブルデータのアドレスを示す。
領域テーブルは、記録メディア2上で連続した記録領域に1ワードデータが対応する。すなわち、図7の場合、ビデオシーケンス1に対応する領域テーブルの1ワードデータは3つあることになる。このように、複数の領域テーブルがある場合は、領域テーブルの「次の領域のアドレス」が次の領域テーブルデータを示す。
領域テーブルの1ワードデータのうち、「開始セクタ番号」は連続する記録領域の最初のセクタ番号を示し、「終了セクタ番号」は最後のセクタ番号を示す。この連続した記録領域には、複数のキーフレームの符号化データが記録される。このうち、最初のキーフレームの符号化データが記録されるセクタ番号は、「開始フレームアドレス」によって示されるキーフレームテーブルにより管理される。
キーフレームテーブルの1ワードデータのうち、「パック開始セクタ番号」がキーパックの先頭が記録されるセクタ番号を示し、「キー開始セクタ番号」がキーフレームのビデオ符号化データの先頭が記録されるセクタ番号を示し、「キー終了セクタ番号」がビデオ符号化データの後尾が記録されるセクタ番号を示す。そして、「次のフレームアドレス」が次のキーフレームテーブルデータを示す。
図8は、同一のキーフレームの符号化データが複数の領域テーブルで管理された領域にまたがる特別な場合の例を示す図である。図8の例では、キーフレームiの符号化データが記録領域1,記録領域2,記録領域3の3つの記録領域にまたがって記録されている。
図8の場合、記録領域1に対応する最後のキーフレームテーブルの「キー開始セクタ番号」には、キーフレームiのビデオ符号化データの先頭を示すセクタ番号が、「キー終了セクタ番号」には後尾を示すセクタ番号が記録されており、「キー終了セクタ番号」は記録領域3のセクタ番号である。
また、記録領域2に対応するキーフレームテーブルはないので、記録領域2の「開始フレームアドレス」には‘データなし’を示すデータを記録する。そして、記録領域3の「開始フレームアドレス」は、キーフレームi+1のキーフレームテーブルを示す。
高速再生時には、キーフレームテーブルに記録されている「キー開始セクタ番号」と「キー終了セクタ番号」が記録メディアコントローラ3に入力され、該記録メディアコントローラ3は「キー開始セクタ番号」から「キー終了セクタ番号」までのデータを読み出すように、記録メディア2を制御する。
このとき、図8で示したキーフレームiを再生する場合は、前述したように、キーフレームテーブルのキーフレームiに対応する「キー開始セクタ番号」と「キー終了セクタ番号」が異なる記録領域を示すことになる。しかし、このような場合でも、領域テーブルに記録された情報によって記録領域1,記録領域2,記録領域3の順に再生することは知ることができる。
そこで、記録メディアコントローラ3は記録領域1,記録領域2,記録領域3の順に記録メディア2にアクセスし、「キー終了セクタ番号」までのデータを読み出す。
なお、ビデオシーケンスを複数の領域に分割して記録せず連続した領域のみに記録する装置で、かつ再生時も編集を行わず、順序を変更しない場合には、例えば、図6において、領域テーブルの「次の領域のアドレス」23がビデオシーケンスの再生順序を示すことにすれば、シーケンステーブルは不要になる。
次に、図5に示すメモリコントローラ及びメモリの動作についてさらに詳細に説明する。装置に記録メディア2が挿入された場合は、該記録メディア2に記録されている管理データが順次入力されるので、メモリコントローラ11は、管理データを所定のメモリに記録するようにメモリ12,13,14を制御する。
図9は、記録メディアに符号化データを記録する場合のメモリの動作を説明するためのフローチャートである。ここで、各テーブルは図6の構造に基づくものであるとし、管理データの変化の様子を図10に図示する。
図6のメモリ12のシーケンステーブルでは、既に記録されているデータの後端に1ワードのデータを追加し、追加されたシーケンステーブルのデータに対応するメモリ13の領域テーブル、メモリ14のキーフレームテーブルのデータを追加記録する。図10では、実線部分が既に格納されている管理データ、点線部分が追加記録される管理データである。
なお、以下の説明では、ad12,adl12,はメモリ12のアドレスを、ad13,adn13はメモリ13のアドレスを、ad14,adn14はメモリ14のアドレスを各々示す。また、記録に際しては、予め図1の記録メディアコントローラ3が管理データに基づき、記録メディア2の空き領域を管理し、空き領域の各セクタにデータを記録する制御を行うものとする。
以下、図9のフローチャートに基づき、各ステップ(S)に従って順に説明する。まず、ステップS101〜ステップS104でメモリ12のシーケンステーブルを設定する。メモリ12の空き領域とメモリ13の空き領域を探索し、それぞれad12,ad13とする(S101)。そして、ad12の「領域テーブルアドレス」をad13、「次のシーケンスアドレス」を‘終了’と設定する(S102)。
次に、メモリ12のシーケンステーブルのポインタ「次のシーケンスアドレス」でつながったデータのうち、最後のデータのアドレスをadl12とする(S103)。そして、adl12の「次のシーケンスアドレス」をad12と設定する(S104)。以上の操作でシーケンステーブルの後端に新たな1ワードデータad12が追加されたことになる。
次に、メモリ13の領域テーブルを設定する。符号化データ管理部2には、記録メディア2上での連続した記録領域の最初のセクタ番号が入力されるので、この入力データをad13の「開始セクタ番号」とする(S105)。そして、メモリ14のキーフレームテーブルの空き領域を探索し、ad14とする(S106)。そして、ad13の「開始フレームアドレス」をad14と設定する(S107)。
次に、キーパックの先頭が記録されるセクタ番号、キーフレームのビデオ符号化データの先頭及び後尾を示すセクタ番号の3つのセクタ番号が入力されるので、この3つのセクタ番号をad14の「パック開始セクタ番号」,「キー開始セクタ番号」,「キー終了セクタ番号」とする(S108)。
そして、記録メディア2の連続した記録領域が終了かどうかを判定し(S109)、終了でない場合はメモリ14の空き領域を探索し、adn14とする(S110)。そして、ad14の「次のフレームアドレス」をand14と設定し、ad14がadn14を示すように更新する(S111)。
次に、ステップS108に戻る。ステップS108〜ステップS111のループで記録メディア2上で連続した記録領域に記録されるキーフレームの符号化データを示すセクタ番号をキーフレームテーブルに書き込むことになる。
ステップS109で記録メディア2の連続した記録領域が終了である場合は、入力セクタ番号である記録領域の最後のセクタ番号を領域テーブルad13の「終了セクタ番号」に記録し(S112)、キーフレームテーブルad14の「次のフレームアドレス」を‘終了’とする。ステップS105〜ステップS113で1ワードの領域テーブルのデータが設定されることになる。
次に、ステップS114で入力データが終了かどうかを判定し、終了でない場合は、領域テーブルの空き領域を探索し、adn13とし(S115)、ad13の「次の領域のアドレス」をadn13と設定し、ad13がadn13を示すように更新する(S116)。
そして、ステップS105に戻る。ステップS105〜ステップS116のループで前の領域テーブルデータからポインタで接続された新たな領域テーブルデータが作成され、その領域テーブルデータが示す一連のキーフレームテーブルにセクタ番号が記録されることになる。そして、ステップS114でデータが終了と判定された場合は、ad13の「次の領域のアドレス」を‘終了’と設定し(S117)、動作を終了する。
次に、通常再生時の動作を説明する。通常再生時には、記録メディアコントローラ3に再生するビデオシーケンスに対応する領域テーブルの「開始セクタ番号」と「終了セクタ番号」が出力される。図11は、通常再生時の動作をフローチャートで示す図である。
ここでは、再生中のデータに対応するシーケンステーブル,領域テーブルそれぞれのアドレスを示す「シーケンスアドレス」,「領域アドレス」という2つのポインタを用いる。また、各テーブルは図6の構造に基づくものである。
以下、各ステップ(S)に従って順に説明する。まず、「シーケンスアドレス」,「領域アドレス」の設定をする(S121〜S122)。次に、「領域アドレス」の「開始セクタ番号」の値と「終了セクタ番号」の値を記録メディアコントローラ3に出力する(S123,S124)。
記録メディアコントローラ3では、符号化データ管理部4から入力される連続した記録領域の最初のセクタ番号と最後のセクタ番号を用いて、連続した記録領域に記録されているデータを読み出すように記録メディア2を制御する。
そして、「領域アドレス」の「次の領域のアドレス」が‘終了’かどうかを判定する(S125)。‘終了’でないと判定された場合は、「シーケンスアドレス」に対応する領域テーブルデータが残っているので、「領域アドレス」を「領域アドレス」の「次の領域のアドレス」とし、ポインタを進め(S126)、ステップS123に戻る。
ステップS123〜ステップS126のループでシーケンステーブルの1ワードデータに対応する記録メディア2上での複数の連続した記録領域毎に、記録領域の最初のセクタ番号と最後のセクタ番号が順次出力される。
ステップ125で‘終了’と判定された場合は、「シーケンスアドレス」の「次のシーケンスアドレス」が‘終了’かどうかを判定する(S127)。‘終了’でないと判定された場合は、記録メディア2に記録されているビデオシーケンスが残っているので、「シーケンスアドレス」を「シーケンスアドレス」の「次のシーケンスアドレス」とし、ポインタを進め(S128)、ステップS122に戻る。
ステップS122〜ステップS128のループで記録メディア2に記録されているビデオシーケンスが終了するまで連続した記録領域毎に最初のセクタ番号と最後のセクタ番号が順次出力される。
図12は、高速再生の場合の動作を説明するためのフローチャートである。高速再生時には、キーフレームテーブルに記録されているキーフレームのビデオ符号化データの先頭と後尾が記録されているセクタ番号を読み出し、記録メディアコントローラ3に出力する。
ここでは、再生中のデータに対応するシーケンステーブル,領域テーブル,キーフレームテーブルそれぞれのアドレスを示す「シーケンスアドレス」,「領域アドレス」,「キーフレームアドレス」という3つのポインタを用いる。
以下、各ステップ(S)に従って順に説明する。まず、「シーケンスアドレス」,「領域アドレス」,「キーフレームアドレス」の設定をする(S131〜S133)。次に、「キーフレームアドレス」の「キー開始セクタ番号」と「キー終了セクタ番号」を記録メディアコントローラ3に出力する(S134)。
記録メディアコントローラ3では、符号化データ管理部4から入力される最初のセクタ番号と最後のセクタ番号から、キーフレームのビデオ符号化データを読み出すように、記録メディア2を制御する。
そして、「キーフレームアドレス」の「次のキーフレームアドレス」が‘終了’かどうかを判定する(S135)。‘終了’でない場合は、「次のキーフレームテーブル」に次にアクセスすべきセクタ番号が記録されているので、「キーフレームアドレス」を「キーフレームアドレス」の「次のキーフレームアドレス」とし、ポインタを進め(S136)、ステップS134に戻る。
ステップS134〜ステップS136のループで領域テーブルの1ワードデータに対応するキーフレームテーブルに記録されている複数のセクタ番号が記録メディアコントローラ3に出力される。
ステップS135で‘終了’と判定された場合は、「領域アドレス」の「次の領域アドレス」が‘終了’かどうかを判定する(S137)。‘終了’でないと判定された場合は、「シーケンスアドレス」に対応する領域テーブルデータが残っているので、「領域アドレス」を「領域アドレス」の「次の領域アドレス」とし、ポインタを進め(S138)、ステップS133に戻る。
ステップS133〜ステップS138のループでシーケンステーブルの1ワードデータに対応するキーフレームのビデオ符号化データに対するセクタ番号が順次出力される。
ステップS137で‘終了’と判定された場合は、「シーケンスアドレス」の「次のシーケンスアドレス」が‘終了’かどうかを判定する(S139)。‘終了’でないと判定された場合は、記録メディア2に記録されているビデオシーケンスが残っているので、「シーケンスアドレス」を「シーケンスアドレス」の「次のシーケンスアドレス」とし、ポインタを進め(S140)、ステップS132に戻る。
ステップS132〜ステップS140のループで記録メディア2に記録されているビデオシーケンスが終了するまで、キーフレームのビデオ符号化データに対応するセクタ番号が順次出力される。
図12の例では、キーフレームテーブルに記録されているセクタ番号を全て出力する。すなわち、全てのキーフレームを再生することになるが、高速再生の速度が速い場合は、いくつかのフレームを間引いた出力をしてもよい。
ここで、Pフレームを復号するためには、過去のIフレーム又はPフレームの復号画像が必要になる。従って、GOP内のIフレームやPフレームを間引いた場合、そのGOP内で間引いたフレーム以降のPフレームは復号できないことになる。
例えば、図13に示すようなGOP構造の場合、フレーム(c)を間引いた場合、フレーム(d)は参照するフレーム(c)の復号画像が得られないため、復号でないことになる。同様に、フレーム(b)を間引いた場合は、フレーム(c),(d)は復号できず、フレーム(a)を間引いた場合、フレーム(b),(c),(d)は復号できないことになる。このように、間引くフレームによって復号できなくなるフレーム数が異なるため、高速再生の速度からどのフレームを間引くかを計算することになる。
図14は、図1の符号化データ管理部に記録される管理データのその他の例を示す図で、図中の参照番号は図6と同じである。これは、デコーダからキーフレームの終了を示す信号が入力される場合の例で、図6に示した符号化データ管理部4に記録される管理データの一例から、キーフレームテーブルの要素「キー終了セクタ番号」を除いたものである。従って、本実施例の方が符号化データ管理部4の容量はより小さくなる。
この例の場合の動作は、図6の例に比べ、高速再生の場合だけ異なる。すなわち、図6の例では、高速再生時にキーフレームテーブルの「キー終了セクタ番号」を出力し、記録メディアコントローラ3はキーフレームの終了をこのデータで検知できるが、この例においては、キーフレームテーブルからキーフレームの終了を示すデータは出力せず、記録メディアコントローラ3はデコーダからの入力信号でキーフレームの終了を検知する。通常再生やポインタ編集の再生の場合は、キーフレームの終了位置は用いる必要がなく、図6の例と同じ動作となる。
図15は、管理データのその他の例を示す図で、図15中の参照番号は図14と同じである。これは、デコーダからキーフレームの終了を示す信号が入力され、オーディオ出力とビデオ出力を同期再生する場合も、ビデオ出力だけの場合もランダムアクセス時にキーパックの先頭位置にアクセスするものである。
前述したように、この例の場合は、ビデオ出力だけ必要とする場合は、不要なオーディオ符号化データを読み出す場合があるので、例えば、高速再生の場合には、単位時間当たりに再生できるビデオフレーム数が少なくなるが、管理データの容量はより少なくすることができる。
頭出しや高速再生,ポインタ編集の再生では、管理しているキーフレームのうち、どのフレームがIフレームかを知る必要がある。キーフレームテーブルでIフレームだけを管理する場合は、図6,図14,図15の例でどのキーフレームがIフレームであるかを知ることができるが、キーフレームテーブルでIフレームとPフレームを管理する場合は、図6,図14,図15の例では、キーフレームがIフレームであるかPフレームであるかを知ることは困難である。
そこで、例えば、図16に示すように、キーフレームテーブルの1ワードデータ毎にIフレームのデータかPフレームのデータであるかを示す1ビットのフラグ31を付加すれば、キーフレームがIフレームを示すのかPフレームを示すのかがわかる。
図16は、図6で示したキーフレームテーブルに1ビットのフラグ31を付加したものであるが、図14,図15のキーフレームテーブルについても同様に1ビットのフラグを付加することで、IフレームとPフレームを区別できる。
次に、本発明のさらに別の実施例について説明する。図17は、図1の符号化データ管理部の他の例を示すブロック図で、図中、32はメモリコントローラ、33,34はメモリで、その他、図5と同じ作用をする部分は同一の符号を付してある。符号化データ管理部4は4つのメモリ12,13,33,34とそれらを制御するメモリコントローラ32で構成される。
メモリ12,13は、図5のそれと同一で、メモリ33にはキーフレームのうち、Iフレームの記録メディア上での記録位置情報を管理する第4のテーブル(以下、Iフレーム用キーフレームテーブルと呼ぶ)、メモリ34にはPフレームの記録メディア上での記録位置情報を管理する第5のテーブル(以下、Pフレーム用キーフレームテーブルと呼ぶ)が格納される。
図18は、Iフレーム用キーフレームテーブルとPフレーム用キーフレームテーブルに記録するデータの一例を示す図で、図中、41はIの次のフレームアドレス、42はパック開始セクタ番号、43はIのキー開始セクタ番号、44はIのキー終了セクタ番号、45はPのフレームアドレス、46はPの次のフレームアドレス、47はPのキー開始セクタ番号、48はPのキー終了セクタ番号であり、アドレス41,45,46はポインタ(連結情報)で、セクタ番号42,43,44,47,48は記録位置情報である。
各テーブルの構成は、図6のキーフレームテーブルと同様であり、Iフレーム用キーフレームテーブルは、Pフレーム用キーフレームテーブルのアドレスを示すポインタを備えている点だけが異なる。Pフレーム用キーフレームテーブルはパック開始セクタ番号がない点だけが異なる。Pフレーム用キーフレームテーブルは高速再生の場合だけ用いることを前提としているため、キーパックの位置情報は必要ない。
図18の例では、1枚のIフレームに対応するキーフレームテーブルが、Iフレーム用キーフレームテーブルの1ワードデータとそのデータの「Pのフレームアドレス」45で示されたPフレーム用キーフレームテーブルのデータから「Pの次のフレームアドレス」46でつながった一連のPフレーム用キーフレームテーブルのワードデータとなっている。
本発明を用いた動画像記録再生装置では、ビデオシーケンスやその一部の再生順序を変更する場合や消去する場合は、メモリ12のシーケンステーブルやメモリ13の領域テーブル,メモリ14のキーフレームテーブルの変更だけで済み、記録メディアに記録されている符号化データを変更する必要はない。例えば、1つのビデオシーケンスを消去する場合は、消去するビデオシーケンスに対応するシーケンステーブルの1ワードデータを「次のシーケンスアドレス」でつながっているポインタからはずすだけでよい。
ビデオシーケンスの再生順序を変更する場合も、シーケンステーブルの「次のシーケンスアドレス」でつながっているポインタの順序を変更するだけでよい。また、シーケンス内の一部分を残して、それ以外を消去する場合は、消去する部分に対応する領域テーブルのデータを「次の領域のテーブルアドレス」でつながったポインタからはずし、残す部分に対応した「開始セクタ番号」と「終了セクタ番号」を新たに設定するだけでよい。
また、ポインタ編集の場合には、もとの管理データから編集後の新たな再生順序を示す管理データを再構築し、もとの管理データと別に格納しておけば、もとの再生順序を保存したまま、様々な再生が可能である。
なお、各テーブルに新たなデータを書き込むためには、各テーブルで未使用のアドレスを管理する必要がある。未使用のアドレスを管理する方法は、テーブル毎に空きアドレスを管理するテーブルを備える、各テーブルのポインタをたどり使用のアドレスを調べることで、未使用のアドレスを知るといった方法が考えられるが、図19のように、未使用のアドレスを管理することもできる。
次に、本発明の他の実施例について説明する。図19は、各テーブルの1ワードデータ毎に使用か未使用かを示す1ビットのフラグを付加した図で、図19中、51〜53は使用か未使用かを示すフラグで、その他、図6と同じ作用をする部分は同一の符号を付してある。
図19の実施例は、図6で示した構成例の各ワードに使用か未使用かを示すフラグ51〜53を付加したものであるが、図14,図15,図16,図18で示した例にも同様に適用できる。
前述の実施例は、符号化データ記録時に管理データを構築し、その管理データを用いてランダムアクセスを伴う再生を高速に行うものである。従って、符号化データ記録時に管理データが記録されていないメディアの場合は、管理データを構築する必要がある。
次に、図1の実施例において、管理データを構築する手段について、以下に説明する。まず、記録メディアコントローラ3は、記録メディア2に記録されているデータを最初から最後まで読み出すように記録メディア制御データを出力する。
データ処理部1では、ビデオシーケンス,パック,キーフレームそれぞれの開始と終了を検出する検出回路を設けておき、ビデオシーケンスの先頭,後尾が記録されているセクタ番号,キーパックの先頭が記録されているセクタ番号,キーフレームのビデオ符号化データの先頭と後尾が記録されているセクタ番号を符号化データ管理部4に出力する。該符号化データ管理部4では、符号化データ記録時と同様に、順序に管理データを追加記録する。
なお、前述の実施例では、記録メディア上での記録位置情報としてセクタ番号を用いているが、これに限定するものではない。記録メディアによっては、トラック番号とセクタ番号の組など、別の表記の場合もあるが、その場合は記録メディアに応じた表記を用いればよい。
以上の説明から明らかなように、本発明によると、以下のような効果がある。キーフレームに対応するビデオ符号化データ,オーディオ符号化データ,多重符号化データの記録メディア上での記録位置情報を管理データとして格納するため、ランダムアクセスを伴う再生の場合に、アクセスするキーフレームの記録メディア上での位置がわかる。従って、ランダムアクセス時に不要なデータを読み出すことがなく、高速なランダムアクセスが可能になる。
管理データとして、キーフレームに対応するビデオ符号化データ及び多重符号化データそれぞれの先頭位置や後尾位置を利用することにより、ランダムアクセス時に不要なデータを読み出すことがなく、高速な頭出しが可能になる。すなわち、高速再生時には、単位時間当たりに再生できるビデオフレームが多くなり、ポインタ編集の再生時には、シーンのつなぎ位置へのアクセスを効率良く行うことができる。
ビデオ出力とオーディオ出力を同期して再生する場合は、同期再生に必要な多重符号化データにアクセスし、ビデオ出力だけの再生の場合には、ビデオ符号化データのみにアクセスするようにすれば、高速再生などビデオ出力だけが要求される際に、単位時間当たりより多くの画像を再生することができる。
管理データとして、第1階層がビデオシーケンス、第2階層が記録メディア上での記録領域、第3階層が記録領域に記録されるキーフレーム位置とする階層構造を用いれば、新たにビデオシーケンスを記録,消去する場合、あるいは再生順序を入れ換える場合でも、容易に管理データを更新することができる。
前記記録領域に記録されるキーフレームに対応する管理データを、IフレームとIフレームに続くPフレームの階層構造で記録すれば、IフレームとPフレームを分離して管理することができる。そのため、例えば、高速再生時には、Iフレーム及びPフレームの種別及び記録メディア上での記録位置がわかるので、高速再生の速度に応じて使用するフレームを柔軟に選択することができる。
また、管理データの各階層内および各階層間の連結情報として、各テーブル内の再生順序を示すポインタ及び各テーブル間の連結関係を示すポインタを用いるので、これらのポインタを変更することで、ビデオシーケンスの記録,消去,再生順序の変更,ビデオシーケンス内の一部の消去,再生順序の変更等が容易に行える。
管理データの各ワード毎に、そのワードが使用か未使用かを示す1ビットのフラグを付加すれば、管理データを記録するメモリが使われているのか空いているのかがわかるので、メモリの空き領域管理が容易になる。
管理データが記録されていない場合でも、管理データを新たに構築すれば、管理データが記録されていない記録メディアの場合でも、ランダムアクセスを伴う再生を高速に行うことができる。
以上のように、MPEG方式など動画像符号化にフレーム間予測を用いるために、ランダムアクセスが特定のキーフレームに対してしか許されない場合に、キーフレームに対するビデオ符号化データやオーディオ符号化データ及びその多重符号化データの記録位置を管理しているため、所望のキーフレームに直接アクセスすることが可能となる。このため、高速再生やポインタ編集を容易かつ効率良く行えることになり、また、オーディオを伴った動画を扱えるため、その効果は顕著である。
1…データ処理部、2…記録メディア、3…記録メディアコントローラ、4…符号化データ管理部、5…メモリコントローラ、5a…ビデオ記録情報管理部、5b…オーディオ記録情報管理部、5c…多重化記録情報管理部、6…メモリ、7…第1のヘッダ検出部、8…ビデオヘッダ検出部、9…オーディオヘッダ検出部、10…判定回路、11…メモリコントローラ、12,13,14…メモリ、32メモリコントローラ、33,34…メモリ、21…次のシーケンスアドレス、22…領域テーブルアドレス、23…次の領域のアドレス、24…開始セクタ番号、25…終了セクタ番号、26…開始フレームアドレス、27…次のフレームアドレス、28…パック開始セクタ番号、29…キー開始セクタ番号、30…キー終了セクタ番号、31…IフレームかPフレームかを示すフラグ、41…Iの次のフレームアドレス、42…パック開始セクタ番号、43…Iのキー開始セクタ番号、44…Iのキー終了セクタ番号、45…Pのフレームアドレス、46…Pの次のフレームアドレス、47…Pのキー開始セクタ番号、48…Pのキー終了セクタ番号、51〜53…使用か未使用かを示すフラグ。