Creative 即將發表 Audigy2?

音效卡的問題在此討論。

版主: DearHoney

回覆文章
Silky
大師
文章: 82
註冊時間: 2001-01-09 08:00
來自: Phantasmagoria

文章 Silky »

tyf 寫:我前面弄錯了
舉另一個例子好了..
原始資料:1564
電影廠商編碼器 f(x)=(√x)/5 編碼後的值為 8
公板解碼器 g(y)=(y*5)^2   反算得 1600
如果有一家 DVD Player 公司不爽用公板的 g(y),自行研發...
自家解碼器 h(y)=[(y*1.1111)^2]*20 反算得 1580

癥結就在這裡,為何解碼器只有一種 g(y)?
你說的癥結,意思是指自行設計的解碼器解出來的誤差可能會更小,為什麼要只使用公版解碼器?是這個意思嗎?
我先說明一下你上面舉的例子。
你舉的例子和前面的例子意義是一樣的,只是數字比較複雜。

一般有 dead-zone 的量化器,在正負量化間距之間的數字都會被量化為 0,譬如說量化間距 10, -10<~<+10 之間的數字量化後都為 0。
所以你舉的例子,量化後的數字應該為 7。
假設你的意思是要將除出來的數字作四捨五入變成整數,所以結果會得到 8,我把兩種解碼器的算式重寫一遍
q 是量化後的數字
"公版解碼器" = q^2 * 5^2 = q^2 * 25(完全整數運算)
"自家解碼器" = (q^2 * 1.1111^2) * 20 = q^2 * 1.23454321 *20 = q^2 * 24.6908642(浮點數運算(雖然可以改為整數運數),計算結果四捨五入為整數)

那麼,如果原始資料中有一個數字是 1800,照你的量化器量化後得到的數字為 8,以公版解碼得到 1600,誤差 200,以自家解碼得到 1580,誤差 220。自家解碼器解出來的誤差比公版解碼器還大。
再舉極端一點的例子,如果原始資料中有一筆資料是 1600,以公版解碼器解碼得到的數字是 1600,完全沒有誤差,以自家解碼器解碼會誤差 20。

也就是說,當資料超過 1590 以上,到 1812 以下,以自家解碼器解碼的誤差都將會比公版解碼器來得大。只有當數字落在 1590~1388 之間時,自家解碼器解出來的誤差才會小於公版解碼器,而這個解碼結果較好的範圍比公版解碼器結果較好的範圍來得小。(因為公版解碼器解出來的結果位於量化間距的中間)

所以平均來講,公版解碼器會得到較好的解碼結果。
一般來說量化間距是多少,解碼時自然乘以量化間距,不會隨便亂乘一個數字,這樣也才符合量化的概念,否則我們就不是在壓縮資料,而是在亂破壞資料了。
當然壓縮檔會包含使用的量化間距的資訊,告知解碼器,該乘上那個數字來解碼,這些在制訂標準的時候就會先考慮好。

回過頭來說,那什麼情況下解碼器可能會解出不同的結果?
像 kouyoumin 大大大大(用力),上面說的,當算式中有用到 根號.sin.cos 之類的計算,這些計算會產生小數,這些小數要精確到第幾位,不同解碼器會有不同的作法,這個時候就會產生差異了。
譬如說在影音資料壓縮方面,對解碼時間的要求很嚴苛,影音資料的解碼多半要求要能夠做到即時解碼,不希望看到或聽到影音延遲中斷的現象。如果我今天要把解碼器做到硬體上面,我就會考慮這個 DSP 能不能做浮點數運算?浮點數運算精確度是多少?如果沒有浮點運算,能不能用整數運算模擬浮點運算?模擬計算的速度會不會很慢?... 等等等等,會有一堆考量。如果我是要寫軟體 decoder,我會考慮 CPU 的解碼速度夠不夠快,譬如說原本算式中會用到大量的乘、除運算,我能不能改寫成簡單的加、減計算來取代,我能不能用整數計算取代浮點運算,這樣便可以使用 MMX 來加速計算.....
因為會有這些考量,作出來的 decoder 就有所不同,有的是計算精度的差異,有的是重新改寫了計算式,減少了複雜運算的次數,有的是使用新的改良式計算法..... 等等,不過不管如何,解出來的結果必須和 Reference 的 decoder 相差在規定的範圍內,這樣才算是 compliance 的 decoder。
這些在制訂標準的時候都會一併制訂進去。

DTS 使用的 ADPCM 壓縮法,就很接近上面那種簡單的量化法(切成好幾個 Subband,每個 Subband 紀錄 DPCM,根據心理聲學的判斷,決定每個 Subband 要分配多少 bit(要給多大的量化間距)),其中沒有用到這些複雜的轉換計算,所以每個 decoder 解出來的結果都一樣。
再者,DTS 的規格封閉,外人沒有辦法自行設計一個 DTS decoder,所有 decoder 都是向 DTS 公司買的解碼引擎,用同一個 source,所以各個 decoder 就更不可能有差異。
tyf 寫:一般來說,只有不失真壓縮才能拍胸脯保證大家解回去都一樣.
既然已經失真了,只要各家演算法稍有不同,就很難保證有相同解.
這個不是事實。如果您興趣,可以買一本資料壓縮的書回去研讀,相信你可以從中找到正確的答案。
ctca
大師
文章: 139
註冊時間: 2002-09-23 08:00
來自: 台灣

文章 ctca »

Silky 寫:
tyf 寫:再者,DTS 的規格封閉,外人沒有辦法自行設計一個 DTS decoder,所有 decoder 都是向 DTS 公司買的解碼引擎,用同一個 source,所以各個 decoder 就更不可能有差異。。
您的意思是說軟解, 硬解都一樣嗎? 您是軟體工程師吧?!
Silky
大師
文章: 82
註冊時間: 2001-01-09 08:00
來自: Phantasmagoria

文章 Silky »

ctca 寫:您的意思是說軟解, 硬解都一樣嗎? 您是軟體工程師吧?!
工... 其實我是工友 ^^;
不用在意我是做什麼的,在這裡不管是誰只要是胡說八道還是一樣會被站上的大大指正。

理論上是一樣的,不過因為軟解、硬解後面使用的 DAC 不同,電路不同,音質聽起來就會有差異。
還有人提到不同軟體解碼聽起來也會有差,這可能有許多原因。譬如說 DTS 沒有動態壓縮,很多人抱怨 DTS 怎麼聽起來這麼小聲,和 DD 完全不能比。結果軟體就自行加了動態壓縮,讓 DTS 的音量聽起來很大,大到聲音也變得很粗糙難聽。又譬如說 DTS downmix 成兩聲道的時候,各軌音量要降低幾 dB,以免混音的時候破音。結果軟體忘了做,聲音破得要命。又譬如說 DTS 混音的時候,各軌要按照一定的係數混成兩聲道,前中後環繞的聲音大小才會均衡。結果軟體的係數搞錯,後環繞完全消失。
以上都是軟體解碼音質會不同的可能原因,純屬猜測,請工程師別打我 :P

前面說的那種 DTS 壓縮法,是用在 DVD 上面的壓縮法,叫做 CAC(Coherent Acoustics Coding)。一般在電影院用的 DTS 壓縮法是另一種,叫做 apt-X。apt-X 的壓縮法更簡單,沒有心理聲學模型,概念是聲音在各個頻帶的能量大小都不同,通常低頻的音量比較大,高頻比較小。所以用 QMF(Quadrature Mirror Filter)把聲音切成 4 個 Subband,由低頻到高頻,每個 Subband 的取樣頻率為原本的 1/4。然後四個 Subband 分別給固定的 bits 數:8, 4, 2, 2,總共 16bits,假設原本是 48K * 16bits,切成 4 個 Subband 之後總 bits 數是 8*12K + 4*12K + 2*12K + 2*12K = 16*12K
所以壓縮比可達 4:1。
怕會引起誤會,因此補充說明。
erato
神人
文章: 342
註冊時間: 2001-09-03 08:00
來自: 台中

文章 erato »

狂人 寫: 你當然看了會煩, 你本來高高興興的來這邊胡扯, 結果變成自爆, 我想一定很過癮吧?
有出錯機率又如何呢? 出錯機率又是多少? 只要放入極其簡單的判斷線路就可以很輕易的修正單 sample 的錯誤, 何況不是每個錯誤都無法修正. 等到錯到無法修正, 那你也該把 CD 扔了. 畢竟很少有人會拿 50 號的砂紙去虐待 CD 吧.
給你個小建議, 以老賣老只會讓人覺得你不可尊重, 以老賣老結束之後又在那邊亂扯, 扯完之後才說你也不清楚... 這只會令人生厭.
你們要吵 就來吵吧.閣下一直攻擊我賣老........原由是T大丟了一句"小孩子".
這是非常不禮貌的.是他先把問題的討論 扯到什麼年齡的.你在那邊白痴什麼?

我引過我說法的來源了.......吵了半天 麻煩正面回應一下.

本來就在爭 audio cd 理論上資料讀取完全正確嗎? 你又在那邊白痴什麼?

一張CD 裝10首.WAV 去100台PC copy出來會不一樣嗎?
一張 AUDIO CD 去100台PC抓音軌 會抓出一樣的結果嗎?
(當然 機器 CD都是正常的 靜音秒數不同不算)

我不想登錄這個站 想請DH砍掉我的帳號 那個路人甲又在白痴什麼?
(DH大 我罵人了 帳號可以砍了吧?)
tyf
初學者
文章: 10
註冊時間: 2002-10-16 02:52
來自: 烏托邦

文章 tyf »

Silky 寫:DTS 使用的 ADPCM 壓縮法,就很接近上面那種簡單的量化法(切成好幾個 Subband,每個 Subband 紀錄 DPCM,根據心理聲學的判斷,決定每個 Subband 要分配多少 bit(要給多大的量化間距)),其中沒有用到這些複雜的轉換計算,所以每個 decoder 解出來的結果都一樣。
再者,DTS 的規格封閉,外人沒有辦法自行設計一個 DTS decoder,所有 decoder 都是向 DTS 公司買的解碼引擎,用同一個 source,所以各個 decoder 就更不可能有差異。
喔~~
簡言之就是先天體質已定,加上技術壟斷.
所以只有唯一解...
狂人
神人
文章: 1121
註冊時間: 2001-02-05 08:00
來自: 台灣
聯繫:

文章 狂人 »

erato 寫:
狂人 寫: 你當然看了會煩, 你本來高高興興的來這邊胡扯, 結果變成自爆, 我想一定很過癮吧?
有出錯機率又如何呢? 出錯機率又是多少? 只要放入極其簡單的判斷線路就可以很輕易的修正單 sample 的錯誤, 何況不是每個錯誤都無法修正. 等到錯到無法修正, 那你也該把 CD 扔了. 畢竟很少有人會拿 50 號的砂紙去虐待 CD 吧.
給你個小建議, 以老賣老只會讓人覺得你不可尊重, 以老賣老結束之後又在那邊亂扯, 扯完之後才說你也不清楚... 這只會令人生厭.
你們要吵 就來吵吧.閣下一直攻擊我賣老........原由是T大丟了一句"小孩子".
這是非常不禮貌的.是他先把問題的討論 扯到什麼年齡的.你在那邊白痴什麼?

我引過我說法的來源了.......吵了半天 麻煩正面回應一下.

本來就在爭 audio cd 理論上資料讀取完全正確嗎? 你又在那邊白痴什麼?

一張CD 裝10首.WAV 去100台PC copy出來會不一樣嗎?
一張 AUDIO CD 去100台PC抓音軌 會抓出一樣的結果嗎?
(當然 機器 CD都是正常的 靜音秒數不同不算)
100 台 PC 各自在硬碟複製 WAV 可以造成資料不同啊, 非常簡單... 你拿到有 686A/B 南橋的主機板就可以了.

100 台 PC 抓音軌可以完全一樣, 只要 CD 本身沒有被過度虐待, 用 EAC 抓就好了.

好啦, 我已經說出來了, 全部可以抓取正常, 你現在該住嘴了嗎? 老不休, 你是五年級剛生出來
就被拿去冷凍, 直到最近才解凍的啊?

真的跟網路上謠傳的 12 ~ 16 歲小白很像喔. 最近打線上遊戲果然就有看到像你這種老小白...
erato 寫: 我不想登錄這個站 想請DH砍掉我的帳號 那個路人甲又在白痴什麼?
(DH大 我罵人了 帳號可以砍了吧?)
你不想登錄? 那你怎麼還會回來看到我的留言? 還會回應我的留言? 原來你不只是小白老不休, 還是口是心非小白老不休...
Tiberius 濫用權力公報私仇,真是行為自律的典範啊。
不管他人死活為己任,狂人也... :lol: :!: :lol:
DearHoney
神人
文章: 6487
註冊時間: 2001-01-03 08:00
聯繫:

文章 DearHoney »

erato 網友,你以為我沒看到你自請處分的文章嗎?沒刪除你帳號是我們大可不必做到如此,你真有心不吵架的話,這個站你根本就不會再來了,來了又想要吵架,還要我們把帳號刪除,你到底想怎麼樣?

帳號我留著,你夠水準的話就不要再參與你那個自以為是的 Audio CD 規格討論(對!我也認為你講的不正確,只是想給你一個討論的空間讓你好好的自我成長)。

如果有人要繼續與 erato 討論 Audio CD 規格,請到數位音訊討論區的「冷飯」,其實 erato 在那邊闢了主題,只是知道的人不多。附帶一提的是,erato 你取這樣的標題「冷飯」,其實已經違反本站的規定。
回覆文章