算法精度那些事,所以結(jié)論是啥
我們宏觀意義上的采樣精度通常指數(shù)據(jù)的采樣格式去向的那些區(qū)別,所以 采樣的精度大方向影響的還是在介質(zhì)保存時(shí)的結(jié)果為多,那么,我們這次來稍微展開一下這里面會(huì)發(fā)生的區(qū)別吧。
1.時(shí)鐘偏移
偏移時(shí)鐘的應(yīng)用
在諸多場合,產(chǎn)品需要打印2個(gè)日期,即生產(chǎn)日期和有效期,作為規(guī)模性生產(chǎn)企業(yè),為了減少人工干涉帶來的錯(cuò)誤率,這種設(shè)定好能夠自動(dòng)生成。

這就是時(shí)鐘校準(zhǔn)最早的應(yīng)用,
在音頻和視頻領(lǐng)域,應(yīng)用通常采用人為或更加準(zhǔn)確的精度計(jì)算的方式得到更加準(zhǔn)確的結(jié)果

也是這種量化的結(jié)果讓我們的多軌音頻和視頻能夠在多軌道合成的時(shí)候不發(fā)生偏移和失真,因?yàn)槎嘤嗟牟糠忠呀?jīng)被截?cái)嗔恕?/p>
2.運(yùn)算方式
浮點(diǎn)運(yùn)算就是實(shí)數(shù)運(yùn)算,因?yàn)橛?jì)算機(jī)只能存儲(chǔ)整數(shù),所以實(shí)數(shù)都是約數(shù),這樣浮點(diǎn)運(yùn)算是很慢的而且會(huì)有誤差。
大多數(shù)機(jī)器都是有32位的,也就是說32位都用來表示整數(shù)的話,那么對(duì)于無符號(hào)整數(shù)就是0 到 2^32-1,對(duì)于有符號(hào)的話就是-2^31 到 2^31-1。
當(dāng)我們用不同的電腦計(jì)算圓周率時(shí),會(huì)發(fā)現(xiàn)一臺(tái)電腦的計(jì)算較另一臺(tái)來講結(jié)果更加精確?;蛘呶覀?cè)谶M(jìn)行槍戰(zhàn)游戲的時(shí)候,當(dāng)一粒子彈擊中墻壁時(shí),墻上剝落下一塊墻皮,同樣的場面在一臺(tái)電腦上的表現(xiàn)可能會(huì)非常的呆板、做作;而在另外一臺(tái)電腦上就會(huì)非常生動(dòng)形象,甚至與我們?cè)诂F(xiàn)實(shí)中看到的所差無幾。這都是浮點(diǎn)運(yùn)算能力的差異導(dǎo)致的。
如果是實(shí)數(shù)的話,就不是這樣了,
機(jī)器有兩種辦法表示實(shí)數(shù),
一種是定點(diǎn),就是小數(shù)點(diǎn)位置是固定的
一種是浮點(diǎn),就是小數(shù)點(diǎn)位置不固定,計(jì)算方法也比較麻煩,通常會(huì)比整數(shù)運(yùn)算代價(jià)大很多
宏觀上的區(qū)別???
??? 從宏觀上講,浮點(diǎn)dsp比定點(diǎn)dsp的動(dòng)態(tài)范圍大得多。定點(diǎn)運(yùn)算中,程序員必須時(shí)刻關(guān)注溢出的發(fā)生,為了防止溢出,要么不斷進(jìn)行移位定標(biāo),要么做截尾。前者耗費(fèi)大量時(shí)間和空間,后者則帶來精度的損失。相反,浮點(diǎn)運(yùn)算dsp擴(kuò)大了動(dòng)態(tài)范圍,提高了精度,節(jié)省了運(yùn)算時(shí)間和存儲(chǔ)空間,因?yàn)榇蟠鬁p少了定標(biāo),移位和溢出檢查。
結(jié)論: 在計(jì)算層面上 音頻視頻工作站的算法會(huì)導(dǎo)致在數(shù)據(jù)處理層面對(duì)數(shù)據(jù)截?cái)嗟牧康亩嗌?,以及最終是否保留了足夠的信息量,但主觀而言,如果不是追求真實(shí)還原數(shù)據(jù)的前提下,在實(shí)用角度上為了不可聞和不可視的變量投入過多的做法并不可取
(就像以win為主的音頻工作站的主要格式是vst,以logic為主的主要格式是AU,以pro tools為主的主要格式是AXX,最終影響的大方向是對(duì)數(shù)據(jù)處理層面截?cái)嗟狞c(diǎn),也就是以vst和AU為主的定點(diǎn)運(yùn)算結(jié)果和以AXX為主的浮點(diǎn)運(yùn)算結(jié)果之間的區(qū)別,而這個(gè)區(qū)別,是否值得被大家買單,則因人而異)
?1.?攝像機(jī)DSP芯片和CCD芯片在使用和技術(shù)參數(shù)上有什么區(qū)別?
CCD是攝像機(jī)的成像芯片,DSP是數(shù)字處理芯片,簡單說就是將CCD獲得的數(shù)據(jù)進(jìn)一步優(yōu)化、視頻圖像更好。CCD用戶可以選擇的主要有sony、sharp等,松下、三星也有自己的CCD。國產(chǎn)的一般sony的比sharp的好。DSP一般廠家不公布的,用戶也無法單獨(dú)選擇
首先是分辨率,分辨率的定義是在影像像素的基礎(chǔ)上的:
1)影像像素在25萬像素(pixel)左右、彩色分辨率為330線、黑白分辨率400線左右的低檔型。
2)影像像素在25-38萬像素左右、彩色分辨率為420線、黑白分辨率500線左右的中檔型。
3)影像像素在25萬像素左右、彩色分辨率為480線、黑白分辨率600線左右的高檔型。
攝像機(jī)參數(shù)標(biāo)得越來越玄糊,決定探究竟:
??? CCD的結(jié)構(gòu)為三層,第一層是“微型鏡頭”,第二層是“分色濾色片”以及第三層“感光層”。
??? Super HAD CCD中文就是超級(jí)HAD CCD傳感器,增加了聚光鏡頭,比普通CCD效果大有改善。
??? Sony Super Had Ⅱ CCD感度提升了136%,同時(shí)噪點(diǎn)更低。多用于低照度槍機(jī)。
2.攝像機(jī)WDR和HDR的區(qū)別是什么?
HDR 高動(dòng)態(tài)
通過采集多次不同曝光情況的照片,通過軟件合成一張光線動(dòng)態(tài)范圍大的靜態(tài)照片
WDR?寬動(dòng)態(tài)
硬件光線明亮拍照?qǐng)D片處理,動(dòng)態(tài)/靜態(tài)圖片
HDR 和 WDR 本質(zhì)是一樣的,都是因?yàn)闊o法用一種ISO適配所有的光感度環(huán)境,所以需要用不同ISO拍攝多張照片進(jìn)行合成。
區(qū)別是WDR對(duì)于不同ISO圖像的采集,是在一個(gè)快門周期內(nèi)完成的,所以需要硬件DSP 和高速感光元件的支持。
舉個(gè)例子,你的快門設(shè)到1/16秒,WDR會(huì)在1/256秒,1/128秒,1/64秒,1/32秒,1/16秒的時(shí)候分別記錄5張圖像,然后用于合成一幀畫面。如果你在以60Hz的速率拍攝視頻,那輸出的視頻也是60Hz,并不會(huì)降低幀數(shù)。
而HDR則是在傳統(tǒng)慢速感光元件的硬件基礎(chǔ)上,做的軟件方案,但是會(huì)大幅降低幀數(shù),所以基本用在拍攝靜態(tài)照片上用,而很少用于攝像。當(dāng)然也有比較精巧的設(shè)計(jì),比如sony就有專業(yè)產(chǎn)品,內(nèi)部通過分光鏡將光送到兩個(gè)不同圖像傳感器從而實(shí)現(xiàn)實(shí)時(shí)HDR合成的,不過這樣成本和精度要求太高,并不普及。
硬件上???
??? 暫時(shí)拋開這些宏觀的特點(diǎn)對(duì)比,單純從技術(shù)的角度來看,定點(diǎn)與浮點(diǎn)的區(qū)別主要在兩個(gè)方面,即硬件和軟件。硬件上的區(qū)別來自于:浮點(diǎn)dsp處理器具有浮點(diǎn)/整數(shù)乘法器,整數(shù)/浮點(diǎn)算術(shù)邏輯運(yùn)算單元ALU,適合存放擴(kuò)展精度的浮點(diǎn)結(jié)果的寄存器等。

軟件上???
??? 再看看在軟件開發(fā)上的不同之處,主要有浮點(diǎn)dsp編程的特點(diǎn)以及注意事項(xiàng);定點(diǎn)dsp進(jìn)行浮點(diǎn)運(yùn)算時(shí)的定標(biāo),移位,檢測(cè)溢出操作。比較兩個(gè)浮點(diǎn)數(shù)時(shí),永遠(yuǎn)不要使用操作符==來判斷是否相等。即使比較兩個(gè)相同的數(shù),還是可能有微小的舍入差別。甚至定義精確的0,也不是很安全,盡管C語言中有0的表示,永遠(yuǎn)不要寫這樣的代碼(x==0),而應(yīng)該寫成(fabs(x)<TINY),其中TINY定義為一個(gè)很小的值,也就是處理器的浮點(diǎn)格式舍入誤差。
應(yīng)用例子
??? 另外一個(gè)比較重要區(qū)別涉及應(yīng)用場合對(duì)定點(diǎn)與浮點(diǎn)dsp處理器的選擇。設(shè)計(jì)師關(guān)心的是最后的系統(tǒng)性能、成本以及上市時(shí)間,定價(jià),經(jīng)濟(jì)效應(yīng)等等問題
移動(dòng)電視
這是另一個(gè)易于決定的選擇。在移動(dòng)電視中完全沒有必要進(jìn)行浮點(diǎn)處理。大部分的信號(hào)鏈處理是在標(biāo)準(zhǔn)解碼器中進(jìn)行的,如MPEG-2, MPEG-4, JPEG-2000和H.264。這些算法被設(shè)計(jì)由定點(diǎn)運(yùn)算來執(zhí)行。更高精度和更大動(dòng)態(tài)范圍的浮點(diǎn)運(yùn)算不僅毫無幫助,而且根本無法使用,因?yàn)檫@些算法通常都只精確到比特。
例如,在視頻編解碼器中使用的頻域的變換實(shí)際上是某種形式的DCT變換(離散余弦變換)。表面上,似乎浮點(diǎn)運(yùn)算更適合于DCT計(jì)算,就像適合FFT計(jì)算一樣。浮點(diǎn)運(yùn)算確實(shí)會(huì)產(chǎn)生更加精確的DCT。不幸的是,視頻編解碼器中的DCT是被設(shè)計(jì)在定點(diǎn)處理器上完成的,并且只精確到比特,因此在這里追求更高的精度是完全錯(cuò)誤的。
更何況,視頻編解碼器的大部分工作量都用于控制代碼,那里同樣也不需要浮點(diǎn)編碼。比如,視頻編解碼器中使用的熵編碼器占了整個(gè)工作量的很大一部分(在H.264算法中使用的CABAC編碼器更是如此)
所以在移動(dòng)播放器領(lǐng)域的高精度要求失去了意義。