
Disc Image Studio:你想不想在光盘上「画」点什么?
Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。
以下正文同步自 少数派,版权归原站所有,已转换为易读排版。
Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。
前段时间出于某些契机,在GitHub上认识了这样一个有趣的项目,它支持你利用任何刻录光驱与任何光盘在数据区刻录出肉眼可见的图案。
但这个开源项目 Disc Image Studio 极其炫酷:只需要普通刻录机 + 普通空白 CD、DVD 或单层 BD-R,通过一些算法把图像信息转为数据,再把它写进数据区。放在台灯下看数据面就能看到图案了。
光驱在光盘上烧录数据时,激光在盘片上留下微小的坑点(或变色点),两者的反光不同,光驱读到亮暗变化就是 0 和 1。很明显,宏观上,这些坑也可以呈现出光学性质。这就是在数据区刻图的原理。
刻录时,光驱头从中心向外沿一条螺旋轨道走。以 DVD 为例,数据区在内半径 24 mm 到外半径 58 mm 之间。
光驱处理数据时,数据将被切成固定长度的扇区:一个 DVD 扇区约 5.16 mm,全盘固定 2,297,888 个,所以整条轨道的总长度也是固定的。每个扇区在盘面上的位置——半径加角度——由内外半径和轨距(相邻两圈之间的距离)共同决定,这就是地址表。
基于如图演示的这套流程,Disc Image Studio 将最终生成一段数据,刻录上去即呈现出图案。
所以在这套方法里,图像是「一圈一圈印上去」,沿螺旋一路采样铺开的。只要地址表里的内外半径和盘片真实尺寸一致,每个像素就会落在该在的位置。
但这实际上成了最难的一步:光盘尺寸虽有国际标准,但光盘毕竟本不是用来画画的,每个厂家每个型号光盘的真实内外半径与扇区数都是有细微差别的!
写这篇文章的主要目的就是教大家如何计算标定每个型号光盘的真实物理参数,所以让我们先看看当参数不准确时,会发生什么。
地址表是按软件以为的半径算的。盘片的真实内外半径只要差一点,同一个扇区实际落下的角度,就会和软件预期差一点;偏差不断累积,越靠外错得越多。
沿用第一节我们展示的标准图案,这套数据生成时采用的参数是内半径 24 mm、外半径 58 mm。现在我们分别模拟一张内半径实际情况为 24.002 mm 和 24.05 mm的光盘,看看印上去会呈现怎样的图案:
按 DVD 的螺旋几何估算,内半径差 0.002 mm 时,外圈累计的角度偏差约为 1.1 圈;差 0.05 mm 时约为 28 圈。
所以如果你不打算在标定上花时间,只是想刻几张玩玩或者送朋友,最简单的做法是买作者已经标定过的型号。软件内置了几个实测过的预设参数,新建工程时直接选就行了:
买盘时务必认准型号、产品编号!同一个品牌的不同型号、不同批次,参数不一定相同。就算你确保买对了,也建议先刻一张测试图看看效果。
前文的示例用了一组从靠外处向里伸的黑色短横条,建议你就用它。把这张图放进工程,用当前参数刻一张。
刻录速度选一个固定值,比如「自动(最低速率,推荐)」,之后尽量每次都用这一个速度不要变。理论上速度不影响结果,但还是不要引入新的变量为好了。
方向确定之后,每次把改动量减半:0.025 → 0.01 → 0.005 → 0.002 → 0.001。到小数点后三四位就够了,跳转第五节。
打开左侧的预览页,确认上方选的是「设计投影」(预览用的就是设计页的合成图),然后展开左边面板里的实测参数与预览精度(高级)。
这里的「内半径、外半径」,填的是你猜测的盘片真实尺寸。右边的预览会按这个猜测重新投影,显示「如果盘片真的是这样,刻出来会是什么样」。
所以我们现在需要反向拟合,反复改半径,直到预览里的原本方正的形状与实际上的螺旋形状、方向和疏密基本一致。 (DVD的三次轨距参数不用理会,这是第五节的内容)
同上文一样,这一步容易忘。预览里的实测参数只影响预览,不会改变刻录。 刻录用的始终是工程自己的参数。
第一次不熟,刻掉二十多张盘是正常的。理解了「预览对应盘面」这一层关系以后,一般 5 到 10 张就行。
当图案已经呈现出来,但是「略有扭曲」,自己对参数也很难对了。这时就可以用软件自带的辅助标定,你只需要拍一张照,它可以利用高雅的算法来算。
随后,这套新的参数将会被自动保存到工程上,软件界面左上角工程头部会出现「参数已更新」的提示以及一个炫酷的特效。记得保存工程,然后重新反复进行上面的三步,大概一两次就大功告成了。
A3: 可以。导出的 ISO、WAV+CUE、RAW 都是通用格式。个别软件处理方式不同,盘面可能出现重影,但标定的参数仍然是准的。最好还是用软件内自带的即时刻录。
A8: 如果是已经等待半天,数据已经写入,在最终清理缓存的阶段报错,那不用理会,这是已知bug。如果是一开始就报错,检查光驱连接,盘片是否为空等问题。
标定耗费时间精力巨大。如果你标定成功,欢迎在 issue 中将你标定完成的宝贵参数分享出来。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。