世界を動かす技術を、日本語で。

コンパクトディスク表面に可視画像を焼き付けるためのツール (2022)

概要

  • CDImage は、CD表面に画像を「焼く」ツール
  • 過去のプロジェクト (argon, unDEFER)に影響を受けて開発
  • Qt6 対応GUIとWindowsバイナリを提供
  • ディスクごとの幾何学的違い でキャリブレーションが難航
  • 人手・AI活用のキャリブレーション改善案 も提案

CDImage:CD表面に画像を焼くツールの概要

  • CDImage は、CD表面に 視覚的な画像 を焼き付けるツール
  • InstructablesユーザーargonunDEFER による過去の試みから着想
  • 座標変換コード はunDEFERの実装を基に改良
  • 画像の 階調やCDの種類 に応じた調整機能を搭載
  • GUIプレビュー やユーザーフレンドリーな操作性を重視
  • 2008年にキャリブレーション問題で一度開発中止
  • 最近コードを Qt6 に移植し、バグ修正とともに公開
  • C++ での実装理由は オーディオトラック生成処理の高速化

ビルド方法とWindows対応

  • Qt 6ライブラリ がビルドに必要
  • qmakemake コマンドでビルド可能
  • Qt Creator 利用によるビルドも推奨
  • Windowsユーザー向け にバイナリも配布
  • CDレコーダー未所持 のため、Windows上での動作検証は限定的
  • 今後Windowsでの焼き方手順 も公開予定

使用上の注意点

  • トラック生成ダイアログ にCDモデルがない場合は失敗リスク大
  • CDごとに 幾何学的パラメータ が異なるため、画像計算に大きく影響
  • 未登録ディスクの場合は 手動入力 が必要だが、調整は困難
  • 同一モデルでも個体差 が存在し、試行錯誤が必要
  • CD-RWの再利用 や完全に同じディスクの利用が推奨
  • メーカー側はこの用途を想定していない ため、品質にばらつき

操作方法

  • メニューの Edit→Load image で画像ファイルを選択
    • 高コントラスト画像 推奨、カラー画像は自動でグレースケール化
  • 画像調整操作
    • 左クリック で移動
    • ダブルクリック で中央配置
    • マウスホイール でズーム
  • Edit→Create track でCDモデルを選択
    • 未登録ディスクは 手動で幾何学パラメータ入力 が必要
  • モデルが判明している場合は 連絡すれば追加対応 も可能
  • 変換処理は ハードウェア性能 により所要時間が変動
  • 生成されるトラックは約800MB のAudio CD形式
  • 任意のライティングソフト(例: cdrecord)で Audio CDとして書き込み

キャリブレーションの考察

  • 数学的には多目的最適化問題 (特に二目的最適化)
  • 「綺麗な画像」を得るには 専門家のフィードバック が不可欠
  • 各パラメータを均等に変化させて多数のディスクを焼く 反復手法
  • 画像内でパラメータを段階的に変化 させ、特徴的な部分を見つける手法
  • CD PAINTプロジェクト のdefcdparamsツールによる幾何学測定事例
  • 人手による評価がボトルネック で、プロジェクト中止の要因
  • キャリブレーションの自動化案
    • ディスクごとに幾何学が異なるため、シークタイム遅延も異なる
    • 理想的な遅延値 を使えば理論上は自動化可能
    • ただし ドライブ依存性 やハードウェア要因が課題
    • AIや画像認識技術 の進歩で自動化の可能性拡大
  • 他のアイデアや提案も歓迎

参考文献・関連情報

  • 「Red Book」 (CD-ROM ECMA標準)
  • Hackaday の本プロジェクト紹介記事
  • 光学ドライブのリバースエンジニアリング 関連プロジェクト
  • CD PAINT やdefcdparamsツールの存在
  • ハードウェアアプローチ のヒントになる外部プロジェクト紹介

Hackerたちの意見

いいアイデアだね。ライトスクリプのもっと手軽なバージョンみたい。 (両面ディスクを使うなら)DVDやブルーレイでは、すごく小さいピットのせいで無理だと思うけど。

DVDやブルーレイでは、もっと小さいピットのせいで無理なんじゃないかな。あと、解像度が高い画像もね。

GitHubのユーザー名、めっちゃ好き!

それって、ポップシンガーのアドリアーノ・チェレンターノのことかな?

ライトスクリプのこと、懐かしく思い出すな。あれはかなりすごい技術だったよね。

まだ開封してないLightscribeのDVDが5枚パックで箱に入ってるんだけど、特別なものを保存するために取っておいたんだ。でも、結局特別すぎるものなんてなかったから、使うことはなかったな。今はもう作られてないから、使うのはなんかもったいない気がするし、4.7GBの容量じゃ今の時代には全然足りないよね。

まだいくつか持ってるけど、USBじゃ全然違うよね。

ちょっと手間がかかるプロジェクトだけど、tmbincはDVDの表面に任意の画像を書き込むことに成功したみたいだよ。

昔、Yamahaのバーナーに「DiscT@2」って機能があったんだ。CD-ROMの未使用エリアに画像やテキストを焼けるやつ。どうしても欲しくて手に入れたら、ちょっと楽しめたよ。

特にかっこよかったのは、2002年に出たCRW-F1ってモデル番号のやつ。書き込み中に紫(オレンジ+青)に点滅するのもクールだった。青いLEDが流行ってた時期に際立ってたね。

同じく。98年か99年にこれを持ってたよ。ディスクは普通のトレイには入らなくて、ディスクを完全に包み込むキャディを使わなきゃいけなかった。

あのヤマハのバーナー(CRW-F1)まだ持ってるよ。DiscT@2を使って色んな役立つ情報を焼いてたけど、焼き品質もすごく良かった。良いブランドを使ってたから、10年経ってもディスクが腐ったりデータが消えたりすることはなかったよ。

これらの形はすごく詳細に作れると思う。何かしらのアプリケーションがありそうだね。

まさに特注の回折格子プリンターだね。もしかして、ホログラフィック画像を印刷できるかも?

著者におめでとう!数十年前に同じことを試みたけど、あまり成功しなかった(データトラックを使ったから、音声じゃなかったのが失敗だったかも)。私が思うに、ドライブは各セクターでレーザーの状態を切り替えるオプションがあって、これがデータをひっくり返すこともできるんだ。レーザーの状態をコントロールするには、ドライブが切り替えるかどうかを完璧に予測する必要がある。予測できないビットがあると、レーザーの状態が切り替わって画像が台無しになっちゃう。

切り替えの決定をコントロールできるなら、役立つデータを焼きながら何かを描くこともできるのかな?もちろん、精度はすごく低くなるけど。それでも、アウトラインとかは描けるかも。

コンピュータ歴30年以上だけど、こんなことができるなんて全然知らなかった!こういうのにワクワクするんだよね!

3年前にhackdayプロジェクトが初めて公開されたときに試してみたんだけど、パラメータの選択がディスクによってかなり依存することがわかった。どのディスクも少しずつ違うからね(同じタイプのロット間でも違うかも、どこにも公表されてないし、かなり敏感)。私が持ってるCD-Rではうまくいったけど、良いパラメータを見つけるのに約50回の実験が必要だった(画像は結構良かったけど、ディスクの一部ではまだ揺れてた)。それでも、最終的な結果はかなりクールだよ、写真に撮るのは難しいけど。

スクラッチホログラムみたいに、ホログラムをエンコードできるの?