GigaStorageDV計画 - ギガ単位のデータバックアップ手段

現在までの進行状況 : 複数ファイルをAVI形式(無圧縮)に変換成功(スクリーンショット等).

(以下のアイディアに興味のあるかたは御連絡ください.
   AVI形式に関する知識が不足しています.
     私の代わりに作成してくれる方,大歓迎!)

近頃,20GB程度のHDDが手頃な価格で手に入ります.
しかしそれをバックアップする手段が存在しない.
もちろん,テープメディアによるバックアップも考えられるが,値段が高価な割には最大記憶容量に制限がある.
MO,CD−R,あるいはDVD−RAM,選択肢は色々と考えられるが,20GBクラスのHDDをバックアップするのは容易ではない.

i-Linkを搭載したVAIOなどのPCとデジタルビデオデッキ,この2つを持っているならば,新たな投資なしに大容量HDDのバックアップが可能になります.それが GigaStorageDV計画です.

原理はいたって単純,HDD内のデータを”映像(+音声)”化して,それをデジタルビデオデッキに録画してしまおう,というものです.

使用機器 i-Link搭載Personal Computer,i-Link対応デジタルビデオデッキ(あるいはカメラ)
使用ソフト DV-motion,AVI-maidなど
記録メディア 家庭用デジタルビデオデッキ(miniDV30分を想定)
記録フォーマット SONY DV codec

もっと安価なシステムで大容量のHDDデータバックアップを行うための,GigaStorageAnalog計画については,こちらを参照してください.

ちなみに,これはステガノグラフィ(隠し文書)の一種なんでしょうか.まあ,人に見られては困る映像をわざわざバイナリー化してDVに書き戻すことができるので,悪用したければいくらでもできますねぇ.市販のステガノグラフィソフトとしては,http://www.demcom.com/english/のようなものがあるようです.

1.基本原理

 (a) バックアップ
 Personal Computer中のファイル(あるいはディレクトリ単位)のバイナリイメージをSONY DV codec形式のAVIファイルに,
”映像(+音声)”に変換し,デジタルビデオテープに記録する.

 (b) リストア
 SONY DV codec形式のAVIファイルをビデオデッキよりPersonal Computerに読み込み,”映像(+音声)”として記録されている
データをバイナリイメージに復元する.

2.記憶容量(音声データ: 16bitPCMステレオ?については知識がないので省略)

 (a) 最大記憶容量
   30分テープには,30[frame/sec] × 60[sec] ×30[min] = 54,000[frame]の映像および音声が記録できる.
   1[frame]は,720×480[pixel]で構成されている.
   1[pixel]を8[bit](=256色)と仮定すると,

   1[frame]あたり720×480=345,600[byte]のバイナリデータに相当する.
   したがって,30分テープ1本には,345,600[byte/frame]×54,000[frame]=18,225,000[KB]≒17.38[GB]

   のバイナリデータが記録可能である.1[pixel]がRGB(255,255,255),つまり24bitフルカラー(=3[byte])であるならば,
   その3倍の52.14[GB]の記録が可能である.

   (*)この試算は音声データの利用を考慮に入れていないので,更に記憶容量を増やすことができる.

 (b) 現在考えている実用的なフォーマットにおける最大記憶容量
   安全性を考えて,30分テープに,まったく同一の画像化したバイナリデータを記録する,つまり記録可能時間を15分とする.
   1[pixel]あたり1[bit],つまり true (0以外)/false(0)の二値とする.
   (これはデータ変換に用いる補助ソフトが画像の明暗・コントラスト・色合いなどを変えてしまっても,画質調整でデータを復元できるようにするため)

   1[frame]あたり ('720×480)[pixel] / 8[bit] = 43,200[byte]のバイナリデータに相当する.
   したがって,30分テープ1本には,43,200[byte/frame]×27,000[frame]=
1.08[GB]

   となる.実際には,ファイル情報(ファイル名,ディレクトリ名,作成日時,属性,サイズ)をバイナリデータとして記録(あるいは
   映像としても記録)する必要があるため,ファイル数が多くなる分だけ記憶容量は減る.

(*)参照型AVI形式ではない通常のAVIファイルは1ファイルあたり2GBが上限なので,それを超えるような場合には,複数のAVIファイルに分割する必要がある.
(*)たとえばHDD(20GBなど)を一気にAVIファイル化するには,少なくとも20GB以上のワークエリアが必要となる.したがって,十分なサイズの空き容量がHDDに存在しない場合は,適当なサイズのAVIファイルを作成するたびにデジタルビデオデッキに録画,再び続きをAVIファイル化する,などの手順が必要となる.

3.現在までの製作状況

  Windows対応アプリケーションの製作(Borland C++ Builder5)を始めたのが3月末からなので,まだまだ分からないことだらけである.
  AVI形式のデータを簡単に作ることのできるclassが C++Builder にはないため,とりあえずは BMPファイル(TBitmap)を作成し,それを
  連番で出力,それを AVImaidでAVIファイル化,最終的にはSONY VAIO上のDV motionによりデジタルビデオデッキに記録する方針である.

  いまは,特定のファイルを選択,それを一つのAVIファイル(無圧縮)化するところまでは完成している.
  ファイル情報を格納するフォーマットなどの仕様がまだ固まっていない.

 [モード]
 A.[AVIファイルへとバイナリファイルの対応]
 ・1つのAVIファイルに1つのバイナリファイル
 ・1つのAVIファイルに複数のバイナリファイル
 ・複数のAVIファイル(2GBの制限があるため)に複数のバイナリファイル

 B.[画像化:効率と安全性のバランス]
 ・1Pixelが1bitに対応 :非常に頑強
 ・1Pixelが1byte(256色)に対応
 ・1Pixelが3byte(24bit)に対応

 C.[パッキングの効率]
 ・小さなファイルでも最低1frameを消費する
 ・frameの切れ目とは無関係にギュウギュウと押し込む

 いずれのモードでも,まずAVIファイルの先頭にリストの情報をバイナリ形式で記録する予定です.
 AVIファイルを作成するときに,”このAVIファイルは何frameあるのか?」を教える必要がありますので,
まず最初にファイルリストと必要なframe数を調査します.この情報をまず先頭に書き込みます.
ですので,復号するには,このリストを元にして,ターゲットのファイルが何frame目から何frame目にあるのか,
が分かります.そこまでダーッと読み飛ばして復号します.この方法をとるには,Cのモードは”小さなファイルでも最低1frameを消費する”形式だと非常に楽チンです(小さなファイルが沢山ある場合は効率が悪いのですが...)
 オプションとして,映像によるインデックスを挿入することで,アーカイブを映像編集ソフトで操作することができるようにする予定です.

4.今後の予定

の順で,基本原理が実現可能であるかどうかを確認する.基本原理が確認されたら,実用性を高めるために,

といった,バックアップソフトに必要な機能を実現する.それと平行して,ダイレクトにAVI形式のファイルを作成するための情報の収集を行う.

Defrag.exeをBMPファイル(720x480/2値)化した結果.画面一枚で約42KBの情報をもつ.
249KBなので,約6[frame]ほど必要となる.これをDVに記録すると1/5[sec]である.

<戻る>