算法精度那些事,所以结论是啥
我们宏观意义上的采样精度通常指数据的采样格式去向的那些区别,所以 采样的精度大方向影响的还是在介质保存时的结果为多,那么,我们这次来稍微展开一下这里面会发生的区别吧。
1.时钟偏移
偏移时钟的应用
在诸多场合,产品需要打印2个日期,即生产日期和有效期,作为规模性生产企业,为了减少人工干涉带来的错误率,这种设定好能够自动生成。

这就是时钟校准最早的应用,
在音频和视频领域,应用通常采用人为或更加准确的精度计算的方式得到更加准确的结果

也是这种量化的结果让我们的多轨音频和视频能够在多轨道合成的时候不发生偏移和失真,因为多余的部分已经被截断了。
2.运算方式
浮点运算就是实数运算,因为计算机只能存储整数,所以实数都是约数,这样浮点运算是很慢的而且会有误差。
大多数机器都是有32位的,也就是说32位都用来表示整数的话,那么对于无符号整数就是0 到 2^32-1,对于有符号的话就是-2^31 到 2^31-1。
当我们用不同的电脑计算圆周率时,会发现一台电脑的计算较另一台来讲结果更加精确。或者我们在进行枪战游戏的时候,当一粒子弹击中墙壁时,墙上剥落下一块墙皮,同样的场面在一台电脑上的表现可能会非常的呆板、做作;而在另外一台电脑上就会非常生动形象,甚至与我们在现实中看到的所差无几。这都是浮点运算能力的差异导致的。
如果是实数的话,就不是这样了,
机器有两种办法表示实数,
一种是定点,就是小数点位置是固定的
一种是浮点,就是小数点位置不固定,计算方法也比较麻烦,通常会比整数运算代价大很多
宏观上的区别
从宏观上讲,浮点dsp比定点dsp的动态范围大得多。定点运算中,程序员必须时刻关注溢出的发生,为了防止溢出,要么不断进行移位定标,要么做截尾。前者耗费大量时间和空间,后者则带来精度的损失。相反,浮点运算dsp扩大了动态范围,提高了精度,节省了运算时间和存储空间,因为大大减少了定标,移位和溢出检查。
结论: 在计算层面上 音频视频工作站的算法会导致在数据处理层面对数据截断的量的多少,以及最终是否保留了足够的信息量,但主观而言,如果不是追求真实还原数据的前提下,在实用角度上为了不可闻和不可视的变量投入过多的做法并不可取
(就像以win为主的音频工作站的主要格式是vst,以logic为主的主要格式是AU,以pro tools为主的主要格式是AXX,最终影响的大方向是对数据处理层面截断的点,也就是以vst和AU为主的定点运算结果和以AXX为主的浮点运算结果之间的区别,而这个区别,是否值得被大家买单,则因人而异)
1. 摄像机DSP芯片和CCD芯片在使用和技术参数上有什么区别?
CCD是摄像机的成像芯片,DSP是数字处理芯片,简单说就是将CCD获得的数据进一步优化、视频图像更好。CCD用户可以选择的主要有sony、sharp等,松下、三星也有自己的CCD。国产的一般sony的比sharp的好。DSP一般厂家不公布的,用户也无法单独选择
首先是分辨率,分辨率的定义是在影像像素的基础上的:
1)影像像素在25万像素(pixel)左右、彩色分辨率为330线、黑白分辨率400线左右的低档型。
2)影像像素在25-38万像素左右、彩色分辨率为420线、黑白分辨率500线左右的中档型。
3)影像像素在25万像素左右、彩色分辨率为480线、黑白分辨率600线左右的高档型。
摄像机参数标得越来越玄糊,决定探究竟:
CCD的结构为三层,第一层是“微型镜头”,第二层是“分色滤色片”以及第三层“感光层”。
Super HAD CCD中文就是超级HAD CCD传感器,增加了聚光镜头,比普通CCD效果大有改善。
Sony Super Had Ⅱ CCD感度提升了136%,同时噪点更低。多用于低照度枪机。
2.摄像机WDR和HDR的区别是什么?
HDR 高动态
通过采集多次不同曝光情况的照片,通过软件合成一张光线动态范围大的静态照片
WDR 宽动态
硬件光线明亮拍照图片处理,动态/静态图片
HDR 和 WDR 本质是一样的,都是因为无法用一种ISO适配所有的光感度环境,所以需要用不同ISO拍摄多张照片进行合成。
区别是WDR对于不同ISO图像的采集,是在一个快门周期内完成的,所以需要硬件DSP 和高速感光元件的支持。
举个例子,你的快门设到1/16秒,WDR会在1/256秒,1/128秒,1/64秒,1/32秒,1/16秒的时候分别记录5张图像,然后用于合成一帧画面。如果你在以60Hz的速率拍摄视频,那输出的视频也是60Hz,并不会降低帧数。
而HDR则是在传统慢速感光元件的硬件基础上,做的软件方案,但是会大幅降低帧数,所以基本用在拍摄静态照片上用,而很少用于摄像。当然也有比较精巧的设计,比如sony就有专业产品,内部通过分光镜将光送到两个不同图像传感器从而实现实时HDR合成的,不过这样成本和精度要求太高,并不普及。
硬件上
暂时抛开这些宏观的特点对比,单纯从技术的角度来看,定点与浮点的区别主要在两个方面,即硬件和软件。硬件上的区别来自于:浮点dsp处理器具有浮点/整数乘法器,整数/浮点算术逻辑运算单元ALU,适合存放扩展精度的浮点结果的寄存器等。

软件上
再看看在软件开发上的不同之处,主要有浮点dsp编程的特点以及注意事项;定点dsp进行浮点运算时的定标,移位,检测溢出操作。比较两个浮点数时,永远不要使用操作符==来判断是否相等。即使比较两个相同的数,还是可能有微小的舍入差别。甚至定义精确的0,也不是很安全,尽管C语言中有0的表示,永远不要写这样的代码(x==0),而应该写成(fabs(x)<TINY),其中TINY定义为一个很小的值,也就是处理器的浮点格式舍入误差。
应用例子
另外一个比较重要区别涉及应用场合对定点与浮点dsp处理器的选择。设计师关心的是最后的系统性能、成本以及上市时间,定价,经济效应等等问题
移动电视
这是另一个易于决定的选择。在移动电视中完全没有必要进行浮点处理。大部分的信号链处理是在标准解码器中进行的,如MPEG-2, MPEG-4, JPEG-2000和H.264。这些算法被设计由定点运算来执行。更高精度和更大动态范围的浮点运算不仅毫无帮助,而且根本无法使用,因为这些算法通常都只精确到比特。
例如,在视频编解码器中使用的频域的变换实际上是某种形式的DCT变换(离散余弦变换)。表面上,似乎浮点运算更适合于DCT计算,就像适合FFT计算一样。浮点运算确实会产生更加精确的DCT。不幸的是,视频编解码器中的DCT是被设计在定点处理器上完成的,并且只精确到比特,因此在这里追求更高的精度是完全错误的。
更何况,视频编解码器的大部分工作量都用于控制代码,那里同样也不需要浮点编码。比如,视频编解码器中使用的熵编码器占了整个工作量的很大一部分(在H.264算法中使用的CABAC编码器更是如此)
所以在移动播放器领域的高精度要求失去了意义。