JP4194583B2 - データ記憶装置 - Google Patents

データ記憶装置 Download PDF

Info

Publication number
JP4194583B2
JP4194583B2 JP2005207682A JP2005207682A JP4194583B2 JP 4194583 B2 JP4194583 B2 JP 4194583B2 JP 2005207682 A JP2005207682 A JP 2005207682A JP 2005207682 A JP2005207682 A JP 2005207682A JP 4194583 B2 JP4194583 B2 JP 4194583B2
Authority
JP
Japan
Prior art keywords
data
buffer
block
image data
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005207682A
Other languages
English (en)
Other versions
JP2007028221A (ja
Inventor
範之 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2005207682A priority Critical patent/JP4194583B2/ja
Publication of JP2007028221A publication Critical patent/JP2007028221A/ja
Application granted granted Critical
Publication of JP4194583B2 publication Critical patent/JP4194583B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Description

本発明は、動画データ等の大容量・高転送速度データと、当該動作データ等から生成されるサムネイル等のインデックス情報とを、同時かつ高速に記憶することが可能なデータ記憶装置に関するものである。
近年、動画データや音声データなどを従来のテープメディアに代えて、ハードディスクドライブに記憶するデータ記憶装置が広く普及しつつある。ハードディスクドライブはランダムアクセス性に優れているため、所望のコンテンツを瞬時に再生したり、記録のための空き領域を速やかに探し出すことができるなど、従来のテープメディアにはない使い勝手の良さを有している。またパーソナルコンピュータ等の情報機器においても、チューナーやコーデック(CODEC)LSIを搭載して、動画データ等を内蔵/外付けハードディスクドライブに記憶する機能を備えた機種が多数市販されている。
ところで動画データ等は連続的なデータであり、単にデータが誤りなく記憶媒体上に記憶されるだけでは十分でなく、時間軸上の記録・再生速度、すなわちデータの転送速度が所定値以上に維持される必要がある。一方でハードディスクドライブは、記憶媒体上の物理的に連続した領域に対するアクセスでは高速のデータ転送を実現できるが、分散された領域に対するアクセスでは、ヘッドシーク時間や回転待ち時間といった実質的にはデータ転送に寄与しない動作期間が増大することから、低速のデータ転送しか得られないという特性を有している。
さて記憶したデータはファイルシステムによりファイル単位でのアクセスが可能となるわけだが、どのようなファイルシステムを採用しても記憶データの削除・更新を繰り返せば記憶領域の断片化(フラグメンテーション)が引き起こされ、一つのファイルを連続した領域に記憶することができなくなる。このことは結果として、ハードディスク記憶装置に対するデータ転送速度を低下させることとなり、動画データ等の記録・再生にとっては極めて都合が悪い。
高速なデータ転送を実現するための一つの方法は、特許文献1にも記載されているように、アクセスの単位であるブロック(クラスタ)のサイズを大きくすることである。ブロックサイズを大きくしても断片化が完全になくなるわけではないが、断片化はブロック単位でしか起こらないことから断片化の度合が相対的に小さく(少なく)なり、結果としてデータ転送速度の低下は低減される。
ところで動画データを記憶するデータ記憶装置においては、記憶メディアに当該動画データだけでなく、当該動画データから生成されるインデックス情報(例えばサムネイル画像データ等)を併せて記憶するデータ記憶装置が存在する。例えば特許文献2には動画データのシーン変化から最適のサムネイル動画を切出し、当該動画データとサムネイル動画とを同一の記憶媒体に格納する画像処理装置が、また特許文献3には動画データから検索用の静止画データを作成し、当該動画データと検索用静止画データとを同一の記憶媒体に記録する記録再生装置が開示されている。(特許文献1、特許文献2、特許文献3参照)。
特開2000−339868号公報 特開2004−166131号公報 特開2004−193695号公報
特許文献2、特許文献3に開示されている例では、動画データと当該動画データから生成されるインデックス情報(それぞれの明細書中での呼称は、サムネイル動画、検索用静止画データ)は、同一の記憶媒体上の異なる記憶領域に記憶するようになっている。
しかしながら、この方法は動画データを一旦記憶した後に、当該記憶した動画データを改めて再生してインデックス情報を生成し記憶する場合にはさしたる問題にならないが、動画データを記憶しつつ、当該動画データからインデックス情報を自動生成して、動画データとインデックス情報とを同時に記憶する場合には、あまりより方法とは言えない。
先にも述べたようにハードディスクドライブは、記憶媒体上の物理的に連続した領域に対するアクセスでは高速のデータ転送を実現できるが、分散された領域に対するアクセスでは低速のデータ転送しか実現できない。つまり動画データの記憶中に当該動画データから自動生成されたインデックス情報を異なる記憶領域に記憶させようとすると、磁気ヘッドの移動処理が必要となってしまうためハードディスクドライブのデータ転送速度が著しく低下してしまうことになる。
ハードディスクドライブのデータ転送速度が、動画データで要求される転送速度よりも十分に高速なのであれば、上記データ転送速度の低下は無視することも可能であるが、動画データは高精細、大画面の要望により、ますます大容量化、高転送速度化する傾向にあり、今後のハードディスクドライブのデータ転送速度の進歩、向上を考慮したとしても余裕のある状態とは言いがたい。
ところで、生成したインデックス情報を一時的にメモリに保持しておき、動画データの記憶が終了した後に、メモリに保持しておいたインデックス情報を記憶媒体に記憶するという方法が考えられる。この方法であれば、ハードディスクドライブのデータ転送速度を低下させることはない。
しかしながら、サムネイル画像は静止画とは限らず動画の場合も考えられるし、静止画の場合もシーン変化毎などでサムネイルを生成するのであれば、多数枚の静止画データの記憶が必要となってくる。したがって一時的な保持に必要なメモリの総容量を考えると、一時保持用のメモリとして半導体メモリを使用するのであれ、第2の記憶媒体(ハードディスクドライブ等)を使用するのであれコスト的には著しく不利である。
特許文献2(4頁〜5頁)にも記載してあるように、インデックス情報は動画データを一旦記録した後にではなく、動画データの記憶と同時に生成・記憶するのが望ましいわけであるが、従来技術においてはハードディスクドライブのデータ転送速度に影響を与えずに、あるいは低コストにこのことを実現することが極めて困難であった。
本発明はこうした従来技術の欠点に鑑みてなされたものであり、その目的は 動画データ等の大容量データを高速に記憶しつつ、当該動画データから生成されるサムネイル画像等のインデックス情報を、上記動画データの高速記憶を損なうことなく同一の記憶媒体に、同時に記録することが可能なデータ記憶装置を提供することにある。
本発明のデータ記憶装置は、記憶媒体上のデータ記憶領域を所定サイズの第一ブロック、および当該第一ブロックが一定個数集まった第二ブロックで分割し、読み込み時は前記第一ブロック単位で、また書き込み時は前記第二ブロック単位でデータを記憶するデータ記憶装置であって、入力される第一データを一時格納する第一バッファと、前記第一データから所定の第二データを生成する第二データ生成手段と、前記第二データを一時格納する第二バッファと、
1)前記第一データの入力が終了しておらず、前記第一バッファのデータ格納量が第一の所定量以上且つ前記第二バッファのデータ格納量が第二の所定量未満であるとき、
または、前記第一データの入力が終了していて、前記第一バッファのデータ格納量が0でなく且つ前記第二バッファのデータ格納量が第二の所定量未満であって、前記第二データの生成が終了していない(図10のステップ312)ときには、
前記第一バッファに格納された前記第一データのみを、
2)前記第一データの入力が終了しておらず、前記第一バッファのデータ格納量が第三の所定量以上、前記第二バッファのデータ格納量が第二の所定量以上であるとき、
または、前記第一データの入力が終了していて、前記第一バッファのデータ格納量が0でなく且つ前記第二バッファのデータ格納量が第二の所定量以上もしくは前記第二データの生成が終了しているときには、
前記第一及び第二バッファに格納された前記第一及び第二データの混在データを、
3)前記第一データの入力が終了していて、前記第一バッファのデータ格納量が0であり且つ前記第二バッファのデータ格納量が0でないときには、前記第二バッファに格納された前記第二データのみを、
前記第二ブロック単位の書き込みデータとして書き込み動作を行う書き込み動作制御手段と、前記データ記憶領域内の個々の前記第二ブロック毎に、前記1)の前記第一データのみ、前記2)の前記第一及び第二データの混在データ、前記3)の前記第二データのみ、のいずれの書き込みを行ったのかを記憶する管理情報記憶手段と、前記第一、第二データの全てを前記データ記憶領域に書き込んだ後、前記管理情報記憶手段の記憶内容に基づいて、前記第一データと第二データとが異なるファイルとなるように、前記記憶媒体上に記憶されたファイル管理情報を更新するファイル管理情報更新手段とを有する。
この際、上記第一ブロックはファイル管理で使用するアクセス単位であって、上記書き込み動作制御手段が上記第一、第二データを混在させて書き込みを行う場合に、第二ブロック中の所定数の第一ブロックに上記第一データ、第二ブロック中の残余数の第一ブロックに上記第二データを書き込むことが望ましい。
また、本発明のデータ記憶装置は、上記第一データが動画データであり、上記第二データが当該動画データの代表画像データ、特徴データ、インデックス情報のいずれかの場合に好適である。
本発明によれば、動画データ等の大容量データを高速に記憶しつつ、当該動画データから生成されるサムネイル画像等のインデックス情報を、上記動画データの高速記憶を損なうことなく同一の記憶媒体に、同時に記録することが可能である。
しかも本発明は、単一の記憶媒体を使用するだけであるので、極めて低コストに実現可能であるという利点も有する。
以下、本発明の実施形態を、図面を参照しながら説明する。
(第1の実施形態)
図1は本発明を実施したデータ記憶装置のブロック図である。図中10は装置全体の制御を司るCPUである。CPU10のバス(システムバス)上には、後述するROM11、RAM12、NIC13、外部機器接続インターフェース14、デコーダ15、サムネイル生成制御回路16、ライトバッファメモリ17、書き込みDMA要求制御回路18、DMAC19、ディスクコントローラ20、グラフィック・サウンドコントローラ22が接続されていて、全体としてデータ記憶装置30を構成する。
13はデータ記憶装置30をLANに接続するためのネットワークコントローラ(NIC)である。14はデータ記憶装置30を31の映像機器(デジタルビデオカメラ等)と接続する外部機器接続インターフェース(USBやIEEE1394等)のコントローラである。
20は、21のハードディスクドライブ(HDD)の動作を制御するディスクコントローラである。データ記憶装置30では、ネットワークカメラや画像配信サーバなどからLAN経由で転送された動画・音声データ、あるいは外部機器接続インターフェース14を介して接続された映像機器31から出力された動画・音声データを、HDD21に記憶(すなわち録画・録音)する。
HDD21に記憶する動画・音声データは、通常MPEG、MotionJPEG等、周知のフォーマットで圧縮(符号化)されている。15はこの圧縮データを伸長するためのデコーダ回路である。データの再生時、デコーダ回路15で伸長された動画・音声データは22のグラフィック・サウンドコントローラを介して、外部に接続されたモニタ装置32に出力される。またデータの記憶(記録)時には、伸長されたデータは16のサムネイル生成制御回路にも送られ、当該伸長データからサムネイル用の静止画データがハードウェアにより自動的に生成されるようになっている。
11はROMであり、CPU10の動作プログラムや各種テーブルデータ等が格納される。12はRAMでCPU10の動作メモリとして使用されるほか、バス上の各ブロック間で行われるデータ転送のバッファメモリとしても使用される。17はHDD21への書き込みデータを一時的に蓄積するライトバッファメモリである。18はライトバッファメモリに蓄積された書き込みデータを、所定のアルゴリズムに基づいてディスクコントローラ20へDMA転送するためのDMA要求の生成を制御する書き込みDMA要求制御回路である。なお説明の都合上、ライトバッファメモリ17はRAM12と独立したブロックになっているが、実際にはRAM12の一部をライトバッファメモリとして使用するのでも、もちろんよい。
19は各ブロックからのDMA要求を受け付けて、所定の優先順位でDMAが実施されるように制御を行うDMACである。なお詳細な図示は省略するが、書き込みDMA要求制御回路18以外にも、DMA転送を必要とするブロックにはDMA要求制御回路が内包されている。
23はCPU10の入出力ポートに接続された操作パネルであり、ボタンスイッチ、LCD等で構成される。ユーザーは操作パネル23を操作することで、データ記憶装置30に対する所望の動作指示を行うことができる。
以上の構成によりデータ記憶装置30は、LAN経由で転送された動画・音声データおよび映像機器31から出力された動画・音声データをHDD21に記憶して、当該記憶したデータをモニタ装置22に出力する、録画・再生装置として機能する。この際インデックス情報として、サムネイル静止画が自動生成され、動画・音声データの記録と同時にサムネイル静止画の記録も行われるようになっている。
つぎに図2、3を用いて、HDD21の論理的な構成(領域の区分等)について説明する。図2はHDD21のフォーマット状態を示す図である。HDD21の記憶領域は大きく二つに区分されており、記憶媒体上の外周側にシステム領域、内周側にデータ領域が割り当てられている。システム領域内のFATエントリはファイルを構成するクラスタのアロケーションテーブルであり、一つのファイルが構成される複数のクラスタのチェーン情報(次のクラスタ番号)が記憶される。なおFATの値にはチェーン情報のほかに、未使用クラスタ、欠陥クラスタ、ファイルの終端(EOF)が定義される。
ディレクトリエントリにはファイル名(パス情報を含む)と、当該ファイルの最初のクラスタ番号が記憶される。FATとディレクトリエントリにより、記憶データは「ファイル」という単位で取り扱うことが可能となる。なおブロック管理領域については後述する。
データ領域は外周側から順に0〜nの「ブロック」に分割されている。個々のブロックは所定数(本実施形態では128個)の連続したクラスタの集まりである。データ領域の大きさを72Gバイト(72Gバイト×1024×1024=75,497,472Kバイト)、クラスタの大きさを32Kバイト、ブロックの大きさを4Mバイト(128×32Kバイト=4096Kバイト)とした場合には
n=18432
となり、データ領域全体には2,359,296個のクラスタ、18,432個のブロックが存在する。
本実施形態におけるデータ記憶装置は、基本的にはFATを用いてクラスタを単位としてHDD21にアクセスを行うのであるが、書き込み時は図3に示すように、128個のクラスタをまとめてブロック単位でHDD21にアクセスを行う。この際、書き込むべきデータが動画データだけである場合は、図4(a)に示すようにブロック全体を動画データとして書き込みを行うが、書き込むべきデータが動画データと静止画データである場合は、図4(b)に示すようにブロックの一部のクラスタ(本実施形態では後端の2クラスタ)を静止画データとして書き込みを行う。なお書き込むべきデータが静止画データだけである場合は、図4(c)に示すようにブロック全体を静止画データとして書き込みを行う。(ところで図4で示した「動画データ」の一部は、実際には音声データの場合もあるが、ここでは説明を解りやすくするため、一括して動画データと呼ぶこととする。)
ここで、ブロックには未使用(何のデータも記憶していない)のもの、動画データだけを記憶しているもの、静止画データだけを記憶しているもの、動画データと静止画データを混在して記憶しているもの、の四つの状態が存在することが容易に理解されよう。図2に戻り、図中のシステム領域内のブロック管理テーブルは、この四状態を識別するためのものである。ブロック管理テーブルはブロック数×2ビット(本実施形態では18432×2ビット=36864ビット=4608バイト)分の大きさを持っており、各ブロック毎に以下の状態情報を記憶しておく。
00b:未使用のブロック
01b:動画データだけを記憶したブロック
10b:静止画データだけを記憶したブロック
11b:動画データと静止画データを混在して記憶したブロック
なお上記クラスタ、ブロックの具体的な大きさ(バイト数)、個数はあくまで一例であり、使用するHDDの特性と、データ記憶装置として要求されるデータ転送速度の仕様を勘案して適宜変更可能であることは言うまでもない。
つぎに図5を用いてサムネイル生成制御回路16の詳細な構成を説明する。LANないしは映像機器31から入力された入力データ(エンコードされたデータ)はDMA転送によりシーンチェンジ検出回路40に入力される。シーンチェンジ検出回路40では、隣接する2フレーム間のデータの異なり具合(MotionJPEGの場合)や、時間的に隣り合ったIピクチャデータ間のデータの異なり具合、ないしはPピクチャデータ(あるいはBピクチャデータ)の大きさ(MPEGの場合)からシーンの変わり目を検出し、そのフレームの情報を解像度変換回路41に出力する。解像度変換回路41にはデコーダ回路15からの伸長されたデコード済みの動画データが常時入力されており、解像度変換回路41はシーンチェンジ検出回路40からのシーンチェンジフレーム情報出力に基づいて、シーンチェンジがあったときだけデコード済みの動画データから当該フレームの縮小静止画(サムネイル静止画)を生成するようになっている。解像度変換回路41で生成された静止画データは、エンコーダ回路42でJPEG形式に圧縮(符号化)される。エンコーダ回路42での圧縮が終了すると、その情報はDMA要求生成回路43に出力され、DMA要求生成回路(1)43の生成するDMA要求に基づいて、JPEGエンコード済みのサムネイル静止画データは図6で説明するライトバッファメモリ17中の第一バッファ領域にDMA転送される。サムネイルはシーンの変化毎に生成されるため、一つの動画データに対して複数枚生成されることになる。そこでサムネイル生成制御回路16からは、個々の静止画がJPEGで圧縮されたTIFFのマルチページ形式でデータが出力されるようになっている。
なお以上の説明では、入力データ、すなわちエンコードされたデータからシーンチェンジを検出する構成となっているが、デコード済みの動画データからシーンチェンジを検出するのでもよい。さらにシーンチェンジではなく、他の方法によって代表画像を抽出する構成としても、もちろんよい。
図6はライトバッファメモリ17と書き込みDMA要求制御回路18の詳細な構成である。ライトバッファメモリ17には、第一バッファ45と第二バッファ46の二つの領域が設定される。第一バッファ45、第二バッファ46はいずれもリングバッファ(もしくはFIFOバッファ)として機能し、第一バッファ45には、LANないしは映像機器31からの入力データがDMA転送により格納される。また第二バッファ46には、図5で説明したようにサムネイル生成制御回路16で生成されたサムネイル静止画データが格納される。なお第一バッファ45、第二バッファ46は、それぞれ少なくとも4Mバイトを越える容量、64Kバイト越える容量を有している。
第一バッファ45、第二バッファ46のポインタ情報(入力ポインタ、出力ポインタ)およびベースアドレ情報は、それぞれDMA転送判定回路47に出力される。DMA転送判定回路47では、第一バッファ45と第二バッファ46の使用量(格納してあるデータ数)に基づいて、異なったDMA転送を引き起こすよう判定がなされる。
DMA転送判定回路47の判定結果は、DMA要求生成回路(2)49に出力され、DMA要求生成回路(2)49の生成するDMA要求に基づいて、第一バッファ45、第二バッファ46に格納されたデータが、1ブロック分ディスクコントローラ20にDMA転送されて、最終的にHDD21に記憶される(書込まれる)。
書き込みDMA要求制御回路18の詳細な動作は、後述の図9〜11を用いて説明するが、基本的な動作は、
1)第一バッファ45の使用量が4Mバイト以上で、第二バッファ46の使用量が64Kバイト未満であるときは、第一バッファ45中の4MバイトのデータをDMA転送する、
2)第一バッファ45の使用量が(4M−64K)バイト以上で、第二バッファ46の使用量が64Kバイト以上であるときは、第一バッファ45中の(4M−64K)バイトのデータと、第二バッファ46中の64KバイトのデータをDMA転送する、
3)第一バッファ45にデータが存在せず、第二バッファ46にデータが存在する場合は、第二バッファ46のデータをDMA転送する、
というものである。
この際、あるブロックに対して上記1)〜3)の、どのDMA転送を実行したのかが混在書き込み管理テーブル48に記憶される。混在書き込み管理テーブル48は、ブロック数×2ビット(本実施形態では18432×2=36864ビット=4608バイト)分の大きさを持つRAMで、DMA転送の度毎にDMA転送判定回路47によって各ブロックに対応する位置に以下の情報が記憶される。
00b:(未使用のコード)
01b:動画データだけを記憶したブロック
10b:静止画データだけを記憶したブロック
11b:動画データと静止画データを混在して記憶したブロック
なお、混在書き込み管理テーブル48は、通常のメモリとしてシステムバス上にもマッピングされており、CPU10で読み取ること、またCPU10から書き換えることができるようになっている。
つぎに図7〜12のフローチャートを用いて、データ記憶装置30の本発明の主旨に関る動作について詳細に説明する。図7はHDD21の初期化時の動作フローである。本動作フローはCPU10のプログラム動作により実行されるものである。
物理フォーマットが終了した後、まずステップ100において、HDD21の総容量、クラスタサイズ、ブロックの大きさ(または個数)から、システム領域、データ領域、それぞれの大きさを計算する。
つぎにステップ101でシステム領域内にブロック管理テーブルを作成する。この際、全てのブロックについて「未使用のブロック」としておく。ついでステップ102でシステム領域内にFAT(ファイルアロケーションテーブル)を作成する。この際、個々のクラスタに対するFAT値については「未使用クラスタ」としておく。
つぎにステップ103で、ディレクトリエントリにルートディレクトリを作成する。ついでステップ104で、混在書き込み管理テーブル48を初期化する。具体的には全てのブロックについて「01b」とする。この初期化ではデフォルト値として、全てのブロックを「動画データだけを記憶したブロック」としておく。
図8はデータを書き込むときの動作フローである。本動作フローはCPU10のプログラム動作により実行されるものである。まずステップ200で、記憶すべきデータの入力を待機する。LANないしは映像機器31からデータの入力がなされたら、そのデータのサイズを判定する。サイズが判定不能である場合、あるいはサイズを指定しないでデータの入力を行う場合には、例えば2Gバイトなどといった所定の大きさをデータサイズと看做して、またはデータ記憶領域の全空き容量をデータサイズと看做して以下の処理を行えばよい。なおトータルのデータ入力が上記所定の大きさを越える場合には、複数回に分けてデータの記憶を行うことで対処可能である。
つぎにステップ202でブロック管理テーブルをサーチして、上記サイズ分の空きブロックを検索する。空きブロックが有る場合には、ステップ203で上記検索したサイズ分の空きブロック全てについて、ブロック管理テーブルを「01b(動画データだけを記憶したブロック)」に更新する。ここではデフォルト値として全てのブロックを「動画データだけを記憶したブロック」としておく。そしてステップ204において、当該ブロックの使用順序(書き込みの順序)を設定するとともに、その設定結果を図1のRAM12上に設定したワークエリアに記憶しておく。使用順序は単純にブロック番号の昇べき順(または降べき順)であってもよいし、なるべく平均的なデータ転送速度となるように、HDD21の記憶媒体上のより外周側に位置するブロックと、より内周側に位置するブロックとを交互に使用する順番としてもよい。
つぎにステップ205で、ディレクトリエントリにファイル情報を追記する。ここでファイル名は、データ入力がLAN経由であってファイル名を知り得る場合にはその名前を、映像機器31がファイル名を指定する場合にはその名前を使用する。ファイル名が外部から指定されない場合には、英数字などを適宜組み合わせたファイル名とする。また操作パネル23などを用いて使用者がファイル名やパス情報を指定した場合にはそれに従う。
つぎにステップ206で、上記使用することとしたブロック内の全てのクラスタが、ステップ204で設定した使用順序に沿って、一つのファイルとなるようにFATを更新する。なお一つのブロック内でのクラスタチェーンは、単純にクラスタ番号順とする。
ついでステップ207でHDD21への書き込みのためのDMA転送の開始を指示する。書き込み動作は、CPU10の関与なくDMA転送によりハードウェア処理で行われる。基本的には、ライトバッファメモリ17に格納されたデータが1ブロック単位毎に、ステップ204で設定した使用順序に沿ったブロックに書き込みが行われるよう、ライトバッファメモリ17からディスクコントローラ20にDMA転送される。なお、より詳細な動作フローは図9〜11で説明する。
つぎにステップ208で書き込みの終了を待機する。書き込みが終了したか否かは、サムネイル生成制御回路16での静止画データの生成が終了し、第一、第二バッファ(45、46)に格納されたデータが全てDMA転送されたか否かで判定することができる。
データサイズを指定しない(あるいは不明)でデータの入力を行う場合には、第一バッファ45へのデータの格納が所定時間行われず、かつサムネイル生成制御回路16での静止画データの生成が終了し、第二バッファ46に格納されたデータが全てDMA転送されたか否かで判定することができる。この他、使用者の中断指示によっても書き込みの終了を判定することができる。
ステップ208で書き込みの終了を判定したら、ステップ209で混在書き込みテーブル48をサーチして、動画データと静止画データを混在して記憶したブロックおよび静止画データのみを記憶したブロックを検索する。混在書き込みブロック(すなわちサムネイル静止画データを記憶したブロック)が存在する場合は、ステップ210において混在書き込みテーブル48の記憶データに基づいて、ブロック管理テーブルを更新する。
混在書き込みテーブル48の値が「11b」の場合は、ブロック管理テーブルの対応するブロックの値を「11b」に、混在書き込みテーブル48の値が「10b」の場合は、ブロック管理テーブルの対応するブロックの値を「10b」に更新する。この処理を混在書き込み管理テーブル48の値が「11b」か「10b」である全てのブロックについて実行する。そしてステップ211で、混在書き込み管理テーブル48の値を全て「01b」にクリア(再初期化)する。
つぎにステップ212で、ディレクトリエントリにサムネイル静止画データのファイルの情報を追記する。ここでファイル名は、ステップ205で使用したファイル名に(またはファイル名の一部に)「.tif」の拡張子を追加したものとする。この他、英数字などを適宜組み合わせたファイル名としてもよい。
さてステップ204で設定・記憶しておいたブロックの使用順序、およびステップ209のサーチで取得した混在書き込み管理テーブル48の記憶内容の二者を組み合わせることで、どのクラスタに静止画データを書き込んだのかを同定することが可能となる。そこで、その同定結果に基づきステップ213で、HDD21に記録した動画データとサムネイル静止画データが二つのファイルに分割されるようにFATの更新を行う。そして最後にステップ214において、ステップ204で記憶しておいたブロックの使用順序の記憶を破棄して処理を終了する。
なお、特に図示しないが、ステップ201で所定の大きさをデータサイズと看做して、またはHDD21の全空き容量をデータサイズと看做していた場合で、実際にはそれ以下の大きさの記録しか行わなかったときは、未使用のブロックを開放するために、ステップ213に続いてブロック管理テーブルおよびFATの更新処理を実行する。
ステップ208に戻り、混在書き込みブロック(すなわちサムネイル静止画データを記憶したブロック)が存在しなかった場合は、そのまま処理を終了する。さらにステップ202に戻り、所定サイズ分の空きブロックが存在しなかった場合は、ステップ215でデータを書き込むことができない場合のエラー処理を実行して終了する。
図9〜11はDMA転送によるHDD21へのデータ書き込みの動作フローである。本動作フローはCPU10の関与なくDMA転送によりハードウェア処理で実行されるものである。
まず、ステップ300で第二バッファ46の使用量を判定する。使用量が64Kバイト未満である場合は、ステップ301、302で動画データの入力が終了するか、または第一バッファ45の使用量が4Mバイト以上になるのを待機する。動画データの入力が終了したか否かは、図8のステップ201で判定したデータサイズ分の動画データを第一バッファ45に格納し終えたか否かで判定することができる。データサイズを指定しない(あるいは不明)でデータの入力を行った場合には、第一バッファ45へのデータの格納が所定時間行われないことで動画データの入力の終了を判定する。この他、使用者の中断指示によっても動画データの入力終了を判定することができる。
ステップ302で第一バッファ45の使用量が4Mバイトを越えたら、ステップ303で第一バッファ45から1ブロック分のデータ(第一バッファ45の出力ポインタの位置から4Mバイト分のデータ)をディスクコントローラ20にDMA転送し、ステップ304で転送されたデータをHDD21に書き込む。
ステップ300に戻り、第二バッファ46の使用量が64Kバイト以上である場合は、ステップ305、306で動画データの入力が終了するか、または第一バッファ45の使用量が(4M−64K)バイト以上になるのを待機する。
ステップ306で第一バッファ45の使用量が(4M−64K)バイトを越えたら、ステップ307で第一バッファ45と第二バッファ46から1ブロック分のデータをディスクコントローラ20にDMA転送する。ここで第一バッファ45からは出力ポインタの位置から(4M−64K)バイト分のデータを、また第二バッファ46からは出力ポインタから64Kバイト分のデータを取り出し、それぞれをブロックの先頭の126クラスタと後端の2クラスタに配置してDMA転送する。
ついでステップ308で、混在書き込み管理テーブル48の対応するブロックの位置の値を「11b」に更新し、ステップ309で転送されたデータをHDD21に書き込む。以上の処理を動画データの入力が終了するまでステップ300から繰り返し実行する。
ステップ301、305で動画データの入力が終了したと判定した場合は、図10のステップ310で第一バッファ45の使用量を判定する。使用量が1バイト以上、すなわち第一バッファ45に動画データが格納されている場合には、ステップ311で第二バッファ46の使用量を判定する。使用量が64Kバイト未満である場合は、ステップ312でサムネイル生成制御回路16でのサムネイル静止画の生成が終了するのを待機する。サムネイル静止画の生成が終了したことは、全ての静止画データが第二バッファ46にDMA転送されたか否かで判定することができる。
サムネイル静止画の生成が未了の場合は、ステップ313で第一バッファ45から1ブロック分のデータ(第一バッファ45の出力ポインタの位置から4Mバイト分のデータ)をディスクコントローラ20にDMA転送する。この際、第一バッファ45に格納されているデータが4Mバイト未満のときは、4Mバイトに不足する部分にNullデータを充填してDMA転送を行う。そしてステップ314で転送されたデータをHDD21に書き込む。
ステップ311、312に戻り、第二バッファ46の使用量が64Kバイト以上である場合、およびサムネイル静止画の生成が終了している場合は、ステップ315で第一バッファ45と第二バッファ46から1ブロック分のデータをディスクコントローラ20にDMA転送する。ここで第一バッファ45からは出力ポインタの位置から(4M−64K)バイト分のデータを、また第二バッファ46からは出力ポインタから64Kバイト分のデータを取り出し、それぞれをブロックの先頭の126クラスタと後端の2クラスタに配置してDMA転送する。この際、第一バッファ45に格納されているデータが(4M−64K)バイト未満であるときは(4M−64K)バイトに不足する部分に、またサムネイル静止画の生成が終了していて、第二バッファ46に格納されているデータが64Kバイト未満であるときは64Kバイトに不足する部分に、それぞれNullデータを充填してDMA転送を行う。
ついでステップ316で、混在書き込み管理テーブル48の対応するブロックの位置の値を「11b」に更新し、ステップ317で転送されたデータをHDD21に書き込む。以上の処理を第一バッファ45の使用量が0バイトになるまでステップ310から繰り返し実行する。
ステップ310で第一バッファ45の使用量を0バイトと判定した場合は、図11のステップ318でサムネイル静止画の生成が終了するのを待機する。
サムネイルの生成が終了したら(または終了していたら)、ステップ319で第二バッファ46の使用量を判定する。使用量が1バイト以上、すなわち第二バッファ46に静止画データが格納されている場合には、ステップ320で第二バッファ46から1ブロック分のデータ(第二バッファ46の出力ポインタの位置から4Mバイト分のデータ)をディスクコントローラ20にDMA転送する。この際、第二バッファ46に格納されているデータが4Mバイト未満のときは、4Mバイトに不足する部分にNullデータを充填してDMA転送を行う。
ついでステップ321で、混在書き込み管理テーブル48の対応するブロックの位置の値を「10b」に更新し、ステップ322で転送されたデータをHDD21に書き込む。以上の処理を第二バッファ46の使用量が0バイトになるまでステップ319から繰り返し実行する。ステップ319で第二バッファ46の使用量が0バイトと判定されたら、全ての書き込み動作が終了する。
なお、ファイルを読み込む場合についての動作フローは特に図示しないが、周知のとおり読み込みについてはFATを参照してチェーンクラスタを順次読み込めばよい。つまり本実施形態においては、読み込み時には「クラスタ」を、書き込み時には複数個(128個)のクラスタが集まった「ブロック」を単位にHDD21へのアクセスを行うわけである。
図12は、ファイルを削除するときの動作フローである。まずステップ400で削除しようとしているファイルの種別、すなわち動画であるのかサムネイル静止画であるのかを判定する。どちらであるかは、ファイル名の拡張子から判定することができる。なお拡張子ではなく、データの内容(例えば、ヘッダ情報等)を確認してファイルの種別を判定してもよい。
動画である場合は、ステップ401で削除しようとするファイルの構成するクラスタが属するブロックの、ブロック管理テーブルの値を更新する。具体的には、値の1ビット目だけを0にする。すなわち(元の値 AND 10b)の操作を行う。ここで1ビット目だけを0にするのは、動画ファイルを削除しても当該ブロックには静止画ファイルが記憶されているかもしれないので、ブロック管理テーブルの値を単純に「00b」としてしまうわけにはいかないからである。
一方、サムネイル静止画である場合は、ステップ402で削除しようとするファイルの構成するクラスタが属するブロックの、ブロック管理テーブルの値を更新する。具体的には、値の2ビット目だけを0にする。すなわち(元の値 AND 01b)の操作を行う。ステップ401の場合と同様に、静止画ファイルを削除しても当該ブロックには動画ファイルが記憶されているかもしれないので、ブロック管理テーブルの値を単純に「00b」としてしまうわけにはいかない。
処理が異なるのはステップ401、402だけであり、以後はステップ403でディレクトリエントリに書き込んだファイル情報(ファイル名等)を削除し、ついでステップ404で当該ファイルを構成するクラスタのFAT値を「未使用クラスタ」に更新する。以上でファイルの削除処理が終了する。
以上説明してきたように、本実施形態では、
a)書き込み時に、複数個のクラスタ(128クラスタ)をまとめた「ブロック」を単位にHDDにアクセスを行うことで、動画データの高速記憶を実現し、
b)動画データから生成させるサムネイル静止画データが、所定サイズ(2クラスタ分)以上生成されて第二バッファに蓄積されている場合には、「ブロック」の一部のクラスタ(後端の2クラスタ)にサムネイル静止画データをインタリーブして書き込みを行うとともに、そのことを混在書き込み管理テーブルに記憶しておく。
c)動画データとサムネイル静止画データの書き込みが終了した後、混在書き込み管理テーブルの記憶内容に基づいて、動画データとサムネイル静止画データが異なるファイルに分割されるよう、FATの更新を行うことで、動画データの高速記憶を損なうことなくサムネイル静止画データを、同一の記憶媒体に同時に記録することを可能とした。
また、ファイルを読み込む場合は、従来技術と同様にFATを参照してチェーンクラスタを順次読み込めばよい。この際、動画データは少なくとも1ブロック内において、所定数(126クラスタ)以上の連続したクラスタに記憶されているので、動画データに必要とされるデータ転送速度は読み込み時においても維持される。
なお、上記の実施形態では、動画データから生成される「第二データ」をサムネイル静止画データとして説明を行ったが、本発明はこれに限定されるわけではなく、「第二データ」は、例えばサムネイル動画データや、画像内の文字を認識してコード化したテキストデータなどといった、動画データに対する代表画像データ、特徴データ、インデックス情報とすることができる。
(第2の実施形態)
上記第1の実施形態ではTIFFのマルチページ形式を用いることで、複数枚生成されるサムネイル静止画データを一つのファイルにまとめて記憶するようになっている。しかしながら、アプリケーションによっては1枚1枚のサムネイル静止画が、個別のファイルであるほうが望ましい場合も考えられる。本実施形態はこのことに対処したものである。
図13に第2の実施形態におけるサムネイル生成制御回路16の詳細な構成図を示す。図5で説明した構成に加えて、個別データ管理テーブル44が追加されている。本実施形態におけるエンコーダ回路42は、32Kバイト、すなわちクラスタサイズを単位にデータを出力するようになっており、圧縮した結果が32Kバイトの整数倍にならない場合でも、不足部分にNullデータが補填されるようになっている。
そこで、個々のサムネイル静止画データをDMA転送するごとに、何クラスタ分のデータであったのかを別途記憶しておけば、後にHDD21に記憶したデータを複数のファイルに分割することが可能となる。44はこのことを記憶しておく、3072バイト(3072×8=24576ビット)分の大きさのRAMで構成された個別データ管理テーブルである。
個別データ管理テーブル44は12ビットずつのフィールドに別れており、各フィールドが、個々のサムネイル静止画データのデータサイズに対応している。DMA転送判定回路47は、1枚1枚のサムネイル静止画データをDMA転送する度に、そのデータサイズをクラスタの個数として個別管理テーブル44に記憶していく。24576ビット÷12ビット=2048個、2^12×32Kバイト÷1024=128Mバイト(「^」はべき乗を表す記号)であるから、3072バイトのRAMで、最大128Mバイトまでの静止画データを、都合2048枚分管理することができる。
なお、個別データ管理テーブル44は、通常のメモリとしてシステムバス上にもマッピングされており、CPU10で読み取ること、またCPU10から書き換えることができるようになっている。
図14は第2の実施形態におけるHDD21の初期化時の動作フローである。図7で説明したステップ100〜104に加えて、ステップ104−1で個別データ管理テーブル44を初期化(全てのフィールドの記憶内容を0に)する。
図15は第2の実施形態におけるデータを書き込むときの動作フローである。図中のステップ200〜211、214、215は図8で説明したときと全く同一である。以下、差異部分のみを説明する。
ステップ211に続き、ステップ211−1において個別データ管理テーブル44の記憶内容を取得する。ステップ204で設定・記憶しておいたブロックの使用順序、ステップ209のサーチで取得した混在書き込み管理テーブル48の記憶内容、ならびに本ステップで取得した個別データ管理テーブル44の記憶内容の三者を組み合わせることで、どのクラスタにどれだけの大きさの静止画データを何枚書き込んだのかを同定することが可能となる。
そこで、その同定結果に基づきステップ212−1でディレクトリエントリにサムネイル静止画データのファイルの情報を書き込んだ枚数分だけ追記する。ここでファイル名は、ステップ205で使用したファイル名に(またはファイル名の一部に)「番号.jpg」の添え字および拡張子を追加したものとする。この他、英数字などを適宜組み合わせたファイル名としてもよい。
つぎにステップ213−1で、HDD21に記録した動画データと複数枚のサムネイル静止画データが所定の数のファイルに分割されるようにFATの更新を行う。そしてステップ213−2において、個別データ管理テーブル44の記憶内容をクリア(最初期化)する。
以上説明してきたように、本実施形態では1枚1枚のサムネイル静止画データの大きさを記憶しておく、個別データ管理テーブル44を備えたことで、個々のサムネイル静止画データを個別のファイルとしてHDD21に記憶することができる。
本発明を実施したデータ記憶装置のブロック図である。 HDD21の論理的な構成を説明する図である。 HDD21の論理的な構成を説明する図である。 HDD21の論理的な構成を説明する図である。 サムネイル生成制御回路16の詳細な構成図である。 ライトバッファメモリ17と書き込みDMA要求制御回路18の詳細な構成図である。 本発明の主旨に関る動作を説明するフローチャートである。 本発明の主旨に関る動作を説明するフローチャートである。 本発明の主旨に関る動作を説明するフローチャートである。 本発明の主旨に関る動作を説明するフローチャートである。 本発明の主旨に関る動作を説明するフローチャートである。 本発明の主旨に関る動作を説明するフローチャートである。 第2の実施形態におけるサムネイル生成制御回路16の詳細な構成図である。 第2の実施形態における動作を説明するフローチャートである。 第2の実施形態における動作を説明するフローチャートである。
符号の説明
10 CPU
11 ROM
12 RAM
13 NIC(ネットワークコントローラ)
14 外部機器接続インターフェース
15 デコーダ回路
16 サムネイル生成制御回路
17 ライトバッファメモリ
18 書き込みDMA要求制御回路
19 DMAC
20 ディスクコントローラ
21 HDD(ハードディスクドライブ)
22 グラフィック・サウンドコントローラ
23 操作パネル
30 データ記憶装置
31 映像機器
32 モニタ装置

Claims (3)

  1. 記憶媒体上のデータ記憶領域を所定サイズの第一ブロック、および当該第一ブロックが一定個数集まった第二ブロックで分割し、読み込み時は前記第一ブロック単位で、また書き込み時は前記第二ブロック単位でデータを記憶するデータ記憶装置であって、
    入力される第一データを一時格納する第一バッファと、
    前記第一データから所定の第二データを生成する第二データ生成手段と、
    前記第二データを一時格納する第二バッファと、
    1)前記第一データの入力が終了しておらず、前記第一バッファのデータ格納量が第一の所定量以上且つ前記第二バッファのデータ格納量が第二の所定量未満であるとき、
    または、前記第一データの入力が終了していて、前記第一バッファのデータ格納量が0でなく且つ前記第二バッファのデータ格納量が第二の所定量未満であって、前記第二データの生成が終了していないときには、
    前記第一バッファに格納された前記第一データのみを、
    2)前記第一データの入力が終了しておらず、前記第一バッファのデータ格納量が第三の所定量以上、前記第二バッファのデータ格納量が第二の所定量以上であるとき、
    または、前記第一データの入力が終了していて、前記第一バッファのデータ格納量が0でなく且つ前記第二バッファのデータ格納量が第二の所定量以上もしくは前記第二データの生成が終了しているときには、
    前記第一及び第二バッファに格納された前記第一及び第二データの混在データを、
    3)前記第一データの入力が終了していて、前記第一バッファのデータ格納量が0であり且つ前記第二バッファのデータ格納量が0でないときには、前記第二バッファに格納された前記第二データのみを、
    前記第二ブロック単位の書き込みデータとして書き込み動作を行う書き込み動作制御手段と、
    前記データ記憶領域内の個々の前記第二ブロック毎に、前記1)の前記第一データのみ、前記2)の前記第一及び第二データの混在データ、前記3)の前記第二データのみ、のいずれの書き込みを行ったのかを記憶する管理情報記憶手段と、
    前記第一、第二データの全てを前記データ記憶領域に書き込んだ後、前記管理情報記憶手段の記憶内容に基づいて、前記第一データと第二データとが異なるファイルとなるように、前記記憶媒体上に記憶されたファイル管理情報を更新するファイル管理情報更新手段と
    を有することを特徴とするデータ記憶装置。
  2. 上記第一ブロックは、ファイル管理で使用するアクセス単位であって、上記書き込み動作制御手段が上記第一、第二データを混在させて書き込みを行う場合に、第二ブロック中の所定数の第一ブロックに上記第一データ、第二ブロック中の残余数の第一ブロックに上記第二データを書き込むことを特徴とする請求項1に記載のデータ記憶装置。
  3. 上記第一データが動画データであり、上記第二データが当該動画データの代表画像データ、特徴データ、インデックス情報のいずれかであることを特徴とする請求項1に記載のデータ記憶装置。
JP2005207682A 2005-07-15 2005-07-15 データ記憶装置 Expired - Fee Related JP4194583B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005207682A JP4194583B2 (ja) 2005-07-15 2005-07-15 データ記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005207682A JP4194583B2 (ja) 2005-07-15 2005-07-15 データ記憶装置

Publications (2)

Publication Number Publication Date
JP2007028221A JP2007028221A (ja) 2007-02-01
JP4194583B2 true JP4194583B2 (ja) 2008-12-10

Family

ID=37788390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005207682A Expired - Fee Related JP4194583B2 (ja) 2005-07-15 2005-07-15 データ記憶装置

Country Status (1)

Country Link
JP (1) JP4194583B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8824080B2 (en) 2009-02-10 2014-09-02 International Business Machines Corporation Data recording and reading device and method

Also Published As

Publication number Publication date
JP2007028221A (ja) 2007-02-01

Similar Documents

Publication Publication Date Title
JP5098145B2 (ja) データ管理装置および記録媒体の管理方法
US20040105331A1 (en) Method and apparatus for controlling the recording of digital information, and recording medium therefor
JP4256075B2 (ja) ファイルシステム及び記憶領域の管理方法
JP4036056B2 (ja) 記録装置および方法、記録媒体、並びにプログラム
JP2001189915A (ja) 録画装置
JP3603079B2 (ja) カメラレコーダおよびデータ記録媒体
JP2005339262A (ja) ファイルシステムおよびその制御方法
JP2001265628A (ja) ファイル記録管理システム
JP4194583B2 (ja) データ記憶装置
JP2000267904A (ja) データ記録装置及び方法
JP2011028386A (ja) キャッシュメモリ制御方法およびキャッシュメモリを備えた情報記憶装置
JP4324993B2 (ja) データ転送方法および装置
US7424573B2 (en) Information processing apparatus, method, and program for formatting multiple recording media integrated as one
JP2003150416A (ja) ファイル管理装置及びファイル管理方法
JP2007059004A (ja) 情報処理装置および方法、プログラム並びに記録媒体
JP2009065387A (ja) 映像記録装置、映像記録方法及びプログラム
JP5335215B2 (ja) データ記憶装置、データ記憶方法及びプログラム
JP2001211411A (ja) 高速av情報サーバー及び高速av情報記録再生方法
JP2008158572A (ja) データ記憶装置
JP2001211412A (ja) 高速av情報サーバー及びその磁気ディスク装置増設方法
JP4356011B2 (ja) 記録装置および方法、撮像装置、記録媒体、並びにプログラム
JP3919630B2 (ja) 情報記録装置、情報記録方法
JPH10340533A (ja) データ記録装置及び方法
JPH0797351B2 (ja) 画像データのファイル装置
JP4815680B2 (ja) ディスク再生装置、プログラム、およびファイル読み出し方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080617

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080815

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080916

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080922

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111003

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111003

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121003

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131003

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees