VLC 2.0.0 之後聲音飽和的現象,為何不算是一個 bug 或者設計缺陷?除了降低音量,還有什麼解決方法?

有幾個 bug 報告,但是官方不認為是 bug 。

http://trac.videolan.org/vlc/ticket/6327

http://trac.videolan.org/vlc/ticket/7001

飽和後的音效見這個視頻:

http://www.youtube.com/watch?v=ESw9JE33Qakfeature=youtu.be

我也碰到了同樣的問題。音量調節最高是 200%,此時有嚴重的噪音。必須調到中間 100% 處才正常。之前的版本調整到最高音量 (400%) 時似乎沒有這個問題。和 Totem 比較後,確認 VLC 100% 的音量和 Totem 的最高音量效果一樣。既然如此,為何要設計 200% 的音量呢?

剛從官方論壇上看到 http://forum.videolan.org/viewtopic.php?f=2t=98564 新的 200% 比舊的 400% 還要響(何必……),並且非線性(看上去是功率 x^3)。

我現在將默認音量設在 100%,不過如果有其他解決方法就更好了。


瀉藥,這種題目答著會很累還好@夏曉昊 已經幫我回答了一部分,我說一下提升響度的其他方式和衡量輸出百分比的可能演算法。

1,除了壓縮與限制器以外其實在演算法中我們可以加入擴展器,與壓縮器同理,壓縮器是把超出閾值部分等比例縮小,當然也可以有一定非線性,參數呈現可以有很多種,HOLD或者KNEE都可以,擴展器是低於某一個電平自動增益,對於動態範圍過大有比較好的效果。

2,這個涉及到一些模擬時代無法達到的手段,WAVES最出名的L系列就是基於這個技術,叫做峰值預探,就是說在限制器啟動之前會預讀前邊幾秒的採樣,這樣如果有需要限制的信號會提前壓縮,這樣可以減少方波的產生,算是一種ATTACK吧,也就是說為了不像普通限制器一樣直接削波造成失真,他會在極短的時間內提前降低電平,比較平滑的處理峰值信號。放眼到視頻領域其實這個技術可以更廣泛的應用,比如預讀通篇宏觀上電平分部,近似的部分分割成不同的段落,自動調整擴展器增益或者限制器,造成一種智能化的AUTOGAIN我想會是比較自然的。比如說片子中對白段落平均電平小自動增益,戰爭段落平均電平大自動限制然後統一提升響度(因為系統可承受的電平輸出是恆定的,如果所謂的增大音量只是造成了後級失真,那麼工程師的智力也著實就欠妥了)不過實現到演算法上可能比較複雜,我是代碼盲,業內人士可以考慮下我說的這種設計實現的困難程度。

最後說一下常用的表頭,對於微觀上的平均響度我們通常用兩個表,一個是不帶記權的RMS平均電平表,可以看做是一個啟動和釋放都比較慢的電平表,來表示平均的電平,而做唱片更多的用響度表(LOUDNESS),其實只是加入了A記權,反映了人耳對不同頻率的敏感程度。使用這樣的響度計量應該比較容易判斷增加了百分之多少,當然因為dB是對數增長,他說的百分比應該是跟輸出電平能量有關係。


根據問題補充當中視頻聽到的結果還有 VLC 上討論的情況,我認為上述問題就是 VLC 的壓縮限幅演算法本身造成的問題。我強烈建議將默認音量設置回 100%,如果需要更大的音量請使用音箱or簡易耳機放大器。原理請聽我扯來(如果需要更好的解決方案,我幫忙邀請了業內人士 @闞歐禮 老師)。

壓縮限幅演算法貌似也就是近兩年才普遍被引入視頻播放軟體當中的,也許是專門針對某些電影動態範圍過大導致的用戶產生的訴求。

所謂動態範圍就是指錄音中最小音量到最大音量之間的差值。如果我們認為某部戰爭電影中,出征前男女主人公的床頭私語的音量很小,而戰爭場景中大炮響起的音量很大的話,那麼這部電影當中的主要音量就集中在這之間。如果動態範圍過大,則意味著也許你將自己的音箱聲音扭到最大,也聽不清楚男女主人公在床頭說些什麼,這個時候你是否心癢難耐?是否會抱怨,這錄音師怎麼搞的?聲音錄這麼小?

於是視頻軟體非常貼心地提供了「音量智能增大」功能,所謂音量增大其實並不能提高最大音量,因為最大音量已經是計算機解碼器能夠滿量程輸出的最大信號了。音量增大的主要方法,就是提高最小音量,將最小音量變大。如何變大這一音量?可以採用過去國內高校教授的老辦法:

有一次,老教授出的題太難了,一大半人都考了50多分,老教授一看,這不行,總不能讓這麼多人不及格啊?於是他想了個辦法,把所有人的成績,先開個平方根,再乘以10。這樣的話,就變成了:

x軸是學生們原本的成績,y軸是學生們經過老教授修改後的成績。同學們驚喜地發現,之前的成績只要夠 36 分就可以過 60 分及格線了,而曾考50多分的人則驚訝地發現自己的成績已經被提到70多分了。而在老教授看來,學生們原來的成績排名保持不變,某位滿分的學霸還是可以穩拿滿分,眾人皆大歡喜——換做音量,我們就可以驚喜地發現,看電影時用了這個視頻軟體既可以聽到戰爭場面上的大炮嗡嗡作響,也可以聽到床頭的細語嚶嚶。

以上就是壓縮器的基本原理,而限幅器最早的作用,是為了防止信號過載,從而將輸入信號振幅強制壓制在預設的閾值以內的設備,但是由於與壓縮器的目的相近,所以後來人們就將這兩個東西統稱為壓縮限幅器,簡稱壓限器。模電時代,人們使用可變增益放大器來進行這一過程,針對不同振幅的輸入電平設置不同的放大倍數,總體滿足振幅越小放大倍數越大,這樣的話就可以壓縮最小音量到最大音量之間的差值。進入到計算機時代以後,這一過程就代之以各種各樣的數字演算法來實現。

但是,這一過程決不會像老教授和他的學生們那樣最終達到各方滿意。其代價就是,壓限演算法為整個錄音增加了非線性失真,以及在大音量處由於演算法缺陷而導致的破音。雖然理論上來說,壓縮是完全可以將輸入信號壓縮在一定範圍內的,但是會造成音質整體的劣化。而限制器由於削峰引起的大量奇次諧波,很容易就能被人耳察覺到。雖然壓限器在錄音領域被廣泛使用,但這一事實的基本前提卻是,操作他們的人是技術嫻熟的混音師,手頭的設備也都非常專業,遠非視頻播放器面對的受眾和設備可比。

最後,我沒有聽說過壓限器有任何公認的,音量增大多少算200%還是400%的規範(國產的射手播放器甚至還能增大至 1000%!),如果希望客觀衡量的話,無非兩個標準,其一是衡量最小音量在壓限前後的實際信號電平對比,其二是衡量平均音量經過壓限前後的實際信號電平對比。但是在我看來上述的,無論是 200% 還是 1000%,更像是宣傳的噱頭(當然,作為一個堅決反對播放軟體進行壓限做法的人,我也不關心他們到底到底能把音量提高多少)。


推薦閱讀:

開一個音樂吧,有人想去嗎?
B&O 新推出的BeoSound2 值不值得入?和A9差距有多大?

TAG:VLC | 音響 | 播放器 |