仕事上CD/DVDからの取り込みに苦労している
仕事関係(医療機関)で、DICOMという医療画像をPACSシステムに取り込む作業があります。
外来のスタッフより、患者さんが他の病院で検査を受けた結果(検査画像)を持参して診察待ちしているので、「急いで取り込んで欲しい」とCD/DVDが持ち込まれることがあるのです。普通は別に大した問題ではありません。急いでいる分を優先的に取り込み端末にセットして取り込み、完了したら電話して完了報告するだけです。
しかし検査方法(画像の種類)にもよりますが、DISC(CD-R/DVD-R)に記録されているDICOMファイルが数千枚以上という場合もあるし、数千枚入りのDISCが更に複数枚のDVD-Rに焼き込まれて持参される場合もあります。
「急ぎって言われても流石にこれは無理やろ!」と言いたくなる場面が今まで何度もありました。結局1時間以上お待たせしたことも何度もあります。
こういう膨大なデータが含まれているDISC(特にDVD-R)を普通に光学ドライブにセットして取り込んでいると、光学ドライブの読み取りが遅いので一時間以上かかることが本当にあるのです。他に取り込み方法が用意されていないので仕方ありません。原因はDVD-Rに含まれている画像データのファイル数が多すぎるのです。
更に、魔の悪いことに別の科からも立て続けで「急いで欲しい」と持ってきて頼まれることもあり、取り込みのPCは1台しか無いので塞がってしまい非常に困っていました。
そこで余裕のある時に検証して、少しでも時間短縮する方法をついに見つけたので、同種の場面で困っている人のために記しておきます。参考になれば幸いです。
光学メディアCD-R、DVD-Rのコストは安い
しばらく暇を見つけてリサーチしたり検証したりしてわかったことがあります。そもそもCD-RやDVD-Rは前世代の記憶メディアであり、大容量データを迅速に取り扱うためには時代遅れだと言うことです。
しかし普及率が非常に高いので、メディアの質がピンキリとは言えコスパがとても良いのでCD/DVDで持ち込まれる事がほぼ100%です。CD-RやDVD-Rは価格的に安いのでどこの医療機関も使用しています。医療機関に限定せずとも世間一般の認識は同じだと思います。
例えば、大容量ファイル(データ)を人に渡す(差し上げる)場合は、ほぼCD-RやDVD-Rを使用することになるでしょう。医療機関の場合は診療情報を外に出す訳ですから有料だと思いますがメディア代が安いので工学メディアを使用するのは現実的です。
他にはUSBメモリーに保存して渡すという方法も考えられますが、USBメモリを使い捨てにするにはコスト的に割高です。常識的に考えてコストを節約したいのでCD-RやDVD-Rが最有力な媒体になります。
これは長い間ずっと変わらず現在に至っています。ブルーレイDISCは容量的にも中途半端でコスパが悪いので、期待したほど普及しませんでからコストも下がらずとうとう最近になって製造中止を迎えましたし・・当面はCD-R/DVD-Rの時代は続くのでしょうね。
そもそも遅い原因は光学ドライブの動作原理と性能の限界
私の職場で直面しているのは、よその病院で検査を受けた結果の診断画像をCD-RやDVD-Rで提供して貰い、自前のPACS画像ライブラリサーバー(とでも言っておきましょう)に検査画像を保存する際に、直接CD-RやDVD-Rから読み込ませるとべらぼう時間がかかる(遅い)という問題があります。
CD-R/DVD-Rは、もはや古(いにしえ)の記憶媒体ですから時代に合わないのは当然です。でもこれを超えるコスパの良い記憶媒体が未だに出てきません。世間一般で普及するかどうかはコストダウンに関係するのでとても重要です。
この光学メディアの読み取りが遅い傾向は、検査画像の数(つまりファイル数)が多いほど遅くなる傾向があり、1枚のディスクに数千枚の検査画像が含まれている場合などには、1時間以上かかります。この「読み込みの遅さをなんとか回避する方法は無いか」と考えて調べたら、工夫の余地ありだということが判明しました。
ちなみに、SATA/USB接続なので「PIO病」ではないと認識しています(旧式のインターフェースであるIDE/ATAPIではありません)。またCD/DVDドライブを複数使い速度差を比べてみたのですが大差が無いのでドライブの性能差も関係なさそうです。
Nero DiscSpeedでテストしてみた
Nero DiscSpeedでドライブで読み取り速度を調べてみて、ドライブによって違いが出るか検証してみた結果を記しておきます。

USB接続の光学ドライブを別の機種に変えてみても多分、誤差?と思われる程度しか違いは無さそうです。思っていたより速度が上がりません。

DVD-Rを読ませてみましたが、CD-R以上に速度が上がりません。

使用している記録媒体(CD-R、DVD-R)の性能によっても速度が変わってくるみたいです。安いメディアは読み取りも遅いと割り切る必要があるかも知れません。
検証1:USBメモリーにコピーして読ませた
急ぎでは無い取り込み依頼CD/DVDを受け取り、これは明らかにファイル数が多いというDVD-Rを検証に使いました。急いでと言われていないので猶予がありますから検証にはもってこいです。
事前作業の第一弾として、他のPC(Windows上のエクスプローラー)でUSBメモリーにコピーをする下処理をやってみました。するとこのコピー処理がべらぼう時間がかかることがわかりました。
コピーの遅さはWindowsエクスプローラーにも改善の余地ありだと感じます。しかしFastCopyも試してみたのですが期待したほど速度が上がらないので、コピーの遅さの原因は、光学ドライブの読み取り速度が遅いせいだと言いきれそうです。また、保存先に指定したUSBメモリーの書き込みが遅い訳ではありませんでした。PC本体のSSDに書き込んだ場合でも読み込みが遅いのです。
DISCに含まれるファイルをWindowsエクスプローラーでUSBメモリーにコピーしたものを、PACS画像ライブラリサーバーに取り込みする専用端末に接続してから読み込ませました。普段はこの専用端末にCD/DVDを直接読み取らせていますが、比較検証のためにUSBメモリーから読ませてみた訳です。
結果は、時間短縮の効果ありで時間にすると1/3以下には間違いなく短縮できることがわかりました。場面にもよりますが複数枚のDISCが持ち込まれた場合など、画像ライブラリサーバーに取り込みが終わるまでボケーッと待っている時間があるなら、並行処理で別のDISCを別端末でDISC->USBにコピーする準備手順を組み込む価値はあります。
検証1でわかったこととして、CD/DVDからUSBメモリーにコピーするのが非常に時間がかかります。Windowsエクスプローラーに任せておくと、コピーに1時間以上かかる場合もあります。別端末のLinuxで試してみたところ、PCハードの違いの影響もあるかも知れませんがLinuxの方が速かったです。でもかかる時間が半分になるとか画期的と言えるほどの時短は無理そうです。OSの違いは微々たるものの様です。やはり光学メディアから読み出すという方式の限界です。
それでも、急ぎでは無いDISCを取り込む場合は、下処理としてUSBメモリーにコピーしておくことで、取り込み専用端末にUSBメモリーから読ませることができて時短できます。CD/DVDから直に読むよりUSBメモリーから読む方が速いのです。
つまり取り込み専用端末を「占有する時間」を短縮できるというわけです。これが案外重要であり、急いでないけどデータがいっぱい入っているDVDを取り込んでいる時に、「大至急取り込んで欲しい」と持ち込まれることがあるからです。端末を占有する時間をなるだけ短くしたいのです。
やはり速度を求めて記憶媒体としてはシリコンデバイスに代わっています。それでもUSBメモリーは遅いと言われポータブルSSDという選択肢もあります。ところが元のデータがCD/DVDに記録されている以上、そこからデータをコピーするのに時間がかかってしまうのが根本的な課題です。
検証2:DISCイメージファイル(ISO)にぶっこ抜く
次に気づいたこととして、ファイル数が多いDISCは忙しく光学ドライブがキュン、キュン、と音がしてメカ的な動きを繰り返していることです。しかも読み取り進行が遅いDISCの回転はだいたい遅くてブーンという高速な回転音がしてません。「もっと高速に回転してちゃっちゃと読み込んでくれよ!」と思うのですが、高速に回転出来ないなにか事情があるようです。
それはどうやら「ランダムアクセス」でファイル一個ずつを読んでいる動作中のために、光学ドライブが高速回転できず、結果として読み取りが遅いという事態に陥っています。昔の様な「のどかな時代」はとっくに終わっているので、もっと高速に回転して読み取り可能な最大速度でビューンと読んでくれることを求めています。でもそういう動作をしてくれません。
連続的に読めば速いのでは?(シーケンシャル・リード)
そこで考えたのは「シーケンシャル・リード」です。連続的な読み取りが実現すれば、高速回転で最初から最後までぶっ通しで読み取ることができます。読み取りヘッドの無駄な動きが無ければより高速に読み取れます。ファイルをエクスプローラーでコピーすると、どうしても「ランダム・アクセス」が発生するので速度が上がらないので、シーケンシャルリードが可能なイメージぶっこ抜きを試すことにしました。
ISOファイルとかFCDファイルにDISCイメージをぶっこ抜きしちゃえば良いじゃん!
今の人は知らないかも知れませんが、一昔以上前はCD/DVDが大容量メディアコンテンツの配布手段として一般的でした。ネットがそこまで普及していませんでしたからね。その時代にDISCをイメージとしてぶっこ抜くのは日常的だったのです(持ち運びが楽なため)。
DISCイメージ化(ISOファイル)処理すれば良いのでは?
当時はDISCとドライブを持ち運ぶのが不便なので、イメージでぶっこ抜いて仮想DISCファイルとしてHDDに保存しておき、必要な時に仮想ドライブにマウントするという使い方をしたものです。
これは当時は画期的な技術で、私自身もIBM ThinkPadに色々なDISCのイメージファイルを保存して持ち運んで使っていたものです。地図アプリは本体にインストールしておいて、地図DISC複数枚をイメージ化してました。あー懐かしい。

DISCイメージのぶっこ抜きか。
CD革命を思い出しちゃったよ。
この案がひらめいた時に、行けるんじゃないか?と経験的に思いました。
やはりイメージ抽出だとコピーも速い
先述の通り通常のファイルコピーだとランダムアクセスが発生するためコピーに時間がかかります。そこでシーケンシャルリードによるコピーが可能なイメージファイルに変換すれば、この原理(光学ドライブの性能が引き出せる)が使えるんじゃないか!と閃きました。いや動作原理上間違いなく高速にDISCをコピーできるはずです。
問題はWindowsは標準ではDISC(CD-R/DVD-R)からイメージファイルにする方法がありません。サードバーティ製のアプリやフリーウェア「ImgBurn」などを使うことになるでしょう。個人的にはポータブル版を使わせてもらっています。
xxxx.paf.exeファイルは、PortableApps(ランチャーソフト)にインストールする用途に作られていますが、私は「c:\works\」という感じの野良アプリインストール場所を決めているのでそこにインストールしています。削除が簡単なのでこの方法が良いかなと思っています。

使用する機能はもちろん「ディスクからイメージを作成」です。

CD/DVDはBUFFALOの光学ドライブにセットしています。これをUSBメモリー(Eドライブ)にISOファイルとしてイメージ抽出します。進行状況が進むにしたがってぐんぐんドライブの回転速度が上がってきます。
DISC(メディア)によって速度が変わる
ImgBurnのログを見ていてきづいたことがあります。結構参考になる情報がログに記されています。使用されているCD-R/DVD-Rメディアによって読み取り速度がかなり左右されることがここでも確認できました。
Source Media Supported Read Speeds:2x,4x,6x,8xCode language: CSS (css)

このメディアは2x、4x、6x、8xまでサポートされている様ですから、上限は8xということの様です。別のDVD-RもISOにぶっこ抜いてみたりしてみましたが、メディアによって違うらしく、15x以上の速度が出るDISCもありました。
他院で使われているメディアはこちらでコントロール出来ないので、遅いメディアが届いた場合はそれが上限ですから遅くても我慢するしかありません。

この様にして今回は3枚組になったDVD-RをISOファイルとしてUSBメモリー(32GB)に保存しました。メディアの読み取り性能によって上限は違うということは変わりありませんが、それでもイメージでの抽出はシーケンシャルリードなので、普通のファイルコピーと比べると劇的に速いです。
この部分はかなり時短出来る要素なので、もし複数枚のDISCを持ち込まれた場合には1枚のDISCは直接取り込み処理を走らせておいて、他のPCで平行処理でISO化すれば時短に有効だと感じています。USBメモリーにISOファイル化してしまえばDISCの読み取りの遅さともサヨナラできます。
ISOファイルのマウント
USBメモリーにISOファイルとしてぶっこ抜いたので、このUSBメモリーを取り込み端末に接続します。企業さんではUSBメモリーの使用が制限されるなどあると思いますが、私は取り込み端末の操作権限を与えられているのでUSBメモリーも問題なく使用できます。(ここが制限されている場合は諦めるしか無いです・・)
さて、Windows 10/11のエクスプローラーにはISOファイルをマウントする機能が標準装備です。USBメモリーからPC本体のSSDにコピーする時間は惜しいので直接USBメモリーにあるISOファイルをWindowsにマウントします。マウントしたいISOファイルを右クリックしてマウントを実行すると、EドライブとかFドライブとかにマウントされると思います。

無事に取り込み端末(Windows10)でマウントすることが出来て(Fドライブ)として見えています。仮想的にDVDドライブとして扱われている様ですから都合が良いです。
この状態からDICOMファイルを取り込むアプリを起動して取り込んでみました。患者IDや患者氏名などを設定して取り込みを開始してみると、めちゃくちゃ順調に進んでとても速いです。体感ですがかかった時間は1/5以下ではないでしょうかね。とても速いので「やった!大成功!」と思いました。
マウントを解除する(取り出す)
DICOMファイルの取り込みが終わったら、マウントしたISOファイルをアンマウントしなくてはなりません。Windowsでは仮想DVDドライブとして認識されているので「取り出す」という操作になります。
アンマウントに成功すると、仮想DVDドライブ(Fドライブ)のアイコンは消えます。これで一連の操作の流れは終了です。後は残った2枚のDISCイメージをマウントして、取り込んで、取り出して・・の繰り返しです。DICOMファイルの読み込みがとても速いので取り込み端末を占有する時間を短縮できます。
DVD-Rと仮想DVDの読み取り速度比較
実際に読み取り速度の改善効果が確認できたので、データとして取得してみました。
Nero DiscSpeedでDVD-Rを直接ドライブから読み込んだ結果が下図です。
平均速度に注目してみると、5.65xとあまり速度が出ていないのがわかります。これがランダムアクセスなしの目一杯の速度と考えて良いでしょう。ランダムアクセス(ファイルコピー)だともっと遅いですからね。

次に、ISOファイルにしたファイルをUSBメモリーに保存しておき、Windows標準のISOマウント機能で仮想DVDドライブとして認識させた状態で速度チェックした結果です。
なぜ右下がりなのかわからないですがいきなり16x近い速度が出ていて上下にブレながら10x程度で終息しています。この動作には何か理由があるのでしょうか?仮想ドライブなので物理的なDISCの回転は関係ないと考えます。つまりDISCの内周と外周の差という概念は無いと思います。詳しい人の解説を聞いてみたいものです。

それはさておき、まず注目したいのはやはり平均速度で「20.33x」出ています。また開始〜終了まで速度があまり変動していません。比較的安定して読み取れているという裏付けが取れました。
リアルなDVDディスクとISOマウントによる仮想ドライブの読み取り速度の違いが、単純比較で「6x」対「20x」と大差が出ていることが確認できましたので、一手間かけてISOファイル(USBメモリに保存)にする意味はあると思います。
もちろんDISCに含まれているファイルの数とサイズが大きくない場合は、ISOに変換する手間(時間)が無駄になるので、大したことないデータ量のDISCはそのまま読み込ませることにしたいと思います。ケースバイケースで上手く使い分けるのが時短のポイントとなりそうです。
DVDビデオDISCはなぜ読み取り速度的に大丈夫なのか?
DVDディスクをPCで再生する場合は、もうかなり昔のPCでも普通に再生出来ていました。
DVDドライブが普及し始めた頃から言えば、現在はドライブの速度もPCの処理能力も上がっています。しかしながらDVDドライブが当たり前になって、コストダウンがはかられているのでDVDドライブの品質は落ちている可能性は無きにしもあらずです。
インターフェースはIDE(USB2.0時代)からSATA(USB3.0時代)に高速化しています。しかし光学部分は構造も動作原理も変わっていないので進化してないと思います。時代に取り残されているというか過去の遺物みたいなものが未だに現役だったりするのです。
そんなDVDディスクでも映画などの視聴は問題ありません。なぜ?というところに疑問を持つかも知れません。実は動画視聴用のDVDディスクを作成する場合には、オーサリングソフトを使って焼付前の下処理をします。
オーサリングソフトでは、チャプター(動画の区切り)で複数の動画に分離しますが、オーサリングソフトは動画を連続データとして配置するので、視聴時にはレコード盤の様にシーケンシャルに読み取ることが出来るように配慮されています。またそもそも動画ファイルは1つのファイルのサイズが大きいので連続して書き込まれます。
つまり、映画などのDVD動画は、ほぼシーケンシャルリードと言っても良いデータ構造なので、光学ドライブの読み取りが遅くても、先読みしてキャッシュに蓄えているので結果的に途切れなく視聴できます。ヘッドの動きが最小限に抑えられるので読み取り精度も高く、動画視聴時にDVDドライブは結構な高速回転をしていることに気づきます。
一方、DVDディスクをデータ(多数のファイル)書き込み用として使用すると、ディスクの内容は沢山のファイルが配置されているので、一つ一つのファイルを読み取るのにいちいちヘッドが移動する時間がかかります。(詳しいことは知りませんが実際には読み取りミスが結構発生していてリトライをしている様です。)
データディスクとして使用すると、どうしてもランダムアクセスに近い動作となり、今回の様な読み取りの遅さにつながるというカラクリです。ましてや数千枚の画像ファイルが含まれている場合などはドライブのヘッドが忙しく移動してファイルを探しているため、高速回転させられず、読み取りが遅いということに繋がるというのが動作の仕組みから分かります。ヘッドがデータの位置を見つけ出すまでディスクも高速には回転させることが出来ません。とても効率が悪いのです。
副次的にDVDドライブ(メカ)を温存できる
光学ドライブは絶えずヘッドが忙しく動くメカニカルな構造になっています。どうしても機械的な動作になるので動作部分が消耗劣化します。DVDディスクで映像を視聴する場合でも、何度も繰り返し再生する映像はISOファイルにイメージ抽出してファイル化したものをマウントして視聴する様にすれば、DVDドライブを温存でき、ストレスな途切れや細切れ等を回避できるという事が想像出来ます。
光学ドライブもイメージ抽出の際にはシーケンシャル動作で連続的にデータを読み取れるのでヘッドにかかる負担も軽いです。光学ドライブをメカ的に温存したい場合(負担をかけたく無い場合)は、一発でイメージ抽出し、ISOファイル等の仮想ディスクとして視聴する様にすれば寿命を長く維持することが可能なことが想像できるでしょう。この知識はちょっとしたTIPSです。
ImgBurn(フリーウェア)を使えない場合
昨今、情報セキュリティ問題もあって、フリーウェアを使うことが許可されない組織団体もあると思います。責任の所在が不明確なソフトウェアを使用することが許されないことや、動作保証や情報の安全や不具合時のサポートが確保されないという理由が大きいでしょう。
そういう場合は、キチンとした有償アプリを使用することで保証も得られるしサポートも受けられます。個人的には仮想DISCドライブの一時代を築いて現在も製品を販売している「アーク情報システム」の「CD革命」をオススメしておきます。CD革命でも同様の効果(時短)が可能だと思いますので、同様の課題を持っている方は検証してみると良いでしょう。
CD革命Ver.14でもISOファイルで保存出来るのでImgBurnと同様に(Windows10/11でマウント)使用することが出来ると思います(CD革命を所有してないので未検証ですが)。
情報セキュリティ関係が厳しく管理されている組織では有償アプリを選択する必要があると思います。キチンと管理部門に申請して許可を貰ってから導入する様にしましょう。
最後にまとめ
DICOMファイルを取り込むための専用端末にCD/DVDディスクをセットして、画像取り込みアプリから取り込むと、光学ドライブの遅さのせいで非常に時間がかかるため、非常に慌ただしく、また現場(患者さん)を待たせることになるので改善方法を探りました。
行き着いた改善方法として、CD/DVDからDISCイメージをISO形式で抽出(コピー)する方法を採用しました。他端末でImgBurnを使用してUSBメモリーにDISCイメージを取りました。もちろんウィルスチェック機能は有効になっていた方が良いです。なんならISO形式で抽出した後にマウントしてウィルスチェックをしたら万全だと思います。
次に、USBメモリーに保存したISOファイルを今度は取り込み端末に接続して、Windows10/11に標準搭載されている機能でマウントし、仮想DVDドライブとして認識させました。その状態で取り込み端末のアプリを起動して仮想DVDドライブを指定して取り込みを行いました。結果的にとても高速に取り込み処理が行われ時間を短縮出来ました。
DICOMデータの取り込みが終わったら、必ず仮想DVDドライブから取り出し(ISOファイルのアンマウント)操作を行って、それからUSBメモリーを取り外す必要があります。仮想ドライブにISOファイルがマウントされているためUSBメモリーをいきなり引っこ抜くのは駄目です。
以上の操作手順によってかなりの時短が実現できました。つまりImgBurnでISO形式のファイルにイメージぶっこ抜きしてUSBメモリーに保存することさえできれば、取り込み端末で高速にDICOMファイルを取り込むことが出来るという事が実証できました。
実際、急ぎの取り込み依頼が立て続けに来ることがあり、DVD-RにビッチリとDICOMファイルが書き込まれていると取り込み処理に時間がかかるので、バタバタとすることがしばしばあります。
考えられる対処方法としては、取り込み端末を2台、3台と増やせば複数端末で平行処理が出来るので確実な方法だと思いますが、現実的にそこまで余剰な設備投資をしてくれる程に潤沢な資金を持っている組織は少ないと思うので、私は技術(知識)で工夫できることを検証してやってみた次第です。
もちろんDISCに含まれるDICOMファイルの数が少ない、容量が少ない場合はいちいちISOファイルにする時間が勿体ないので、直接CD/DVDを取り込み端末にセットして多少時間がかかろうともそのまま処理させます。
「これは明らかに1時間以上かかるヤツだ・・」と判断した場合は、ImgBurnでISOファイルにする手順を入れるとかなり時短出来るということは実際に我が身で経験して実証済みです。
今回のブログ記事は実体験からの実例でした。同様にCD-R/DVD-Rの読み取りが遅くて時間に追われている人は、ISOイメージファイルに変換する一手間を入れるなど参考にしてみて下さい。




コメント