概述
有損壓縮,在台灣、港澳又稱作破壞性資料壓縮,
有損數據壓縮方法是經過壓縮、解壓的數據與
原始數據不同但是非常接近的壓縮方法。
有損數據壓縮又稱破壞型壓縮,即將次要的信息數據壓縮掉,犧牲一些質量來減少數據量,使壓縮比提高。這種方法經常用於網際網路尤其是
流媒體以及電話領域。在這篇文章中經常成為編解碼。它是與
無損數據壓縮對應的壓縮方法。根據各種格式設計的不同,
有損數據壓縮都會有generationloss:壓縮與解壓檔案都會帶來漸進的質量下降。
人眼或人耳能夠察覺的有損壓縮帶來的缺陷稱為壓縮失真(en:compressionartifact)。
無損壓縮
無損壓縮是對檔案本身的壓縮,和其它數據檔案的壓縮一樣,是對檔案的數據存儲方式進行最佳化,採用某種算法表示重複的數據信息,檔案可以完全還原,不會影響檔案內容,對於數碼圖像而言,也就不會使圖像細節有任何損失。
基本原理是相同的顏色信息只需保存一次。壓縮圖像的軟體首先會確定圖像中哪些區域是相同的,哪些是不同的。包括了重複數據的圖像(如藍天) 就可以被壓縮,只有藍天的起始點和終結點需要被記錄下來。但是藍色可能還會有不同的深淺,天空有時也可能被樹木、山峰或其他的對象掩蓋,這些就需要另外記錄。從本質上看,無損壓縮的方法可以刪除一些重複數據,大大減少要在磁碟上保存的圖像尺寸。但是,無損壓縮的方法並不能減少圖像的記憶體占用量,這是因為,當從磁碟上讀取圖像時,軟體又會把丟失的像素用適當的顏色信息填充進來。如果要減少圖像占用記憶體的容量,就必須使用有損壓縮方法。
有損壓縮的特點是保持顏色的逐漸變化,刪除圖像中顏色的突然變化。
類型
有損變換編解碼
首先對圖像或者聲音進行
採樣、切成小塊、變換到一個新的空間、
量化,然後對量化值進行
熵編碼。
預測編解碼
先前的數據以及隨後解碼數據用來預測當前的聲音採樣或者
圖像幀,預測數據與實際數據之間的誤差以及其它一些重現預測的信息進行量化與編碼。
有些系統中同時使用這兩種技術,變換編解碼用於壓縮預測步驟產生的誤差信號。
優點與不足
有損方法的一個優點就是在有些情況下能夠獲得比任何已知無損方法小得多的檔案大小,同時又能滿足系統的需要。當用戶得到有損
壓縮檔案的時候,譬如為了節省下載時間,解壓檔案與原始檔案在
數據位的層面上看可能會大相逕庭,但是對於多數實用目的來說,人耳或者人眼並不能分辨出二者之間的區別。
音頻能夠在沒有察覺的質量下降情況下實現10:1的壓縮比,
視頻能夠在稍微觀察質量下降的情況下實現如300:1這樣非常大的壓縮比。
有損壓縮
圖像的特點是保持顏色的逐漸變化,刪除圖像中顏色的突然變化。生物學中的大量實驗證明,人類大腦會利用與附近最接近的顏色來填補所丟失的顏色。例如,對於藍色天空背景上的一朵白雲,有損壓縮的方法就是刪除
圖像中景物邊緣的某些顏色部分。當在·螢幕上看這幅圖時,大腦會利用在景物上看到的顏色填補所丟失的顏色部分。利用有損
壓縮技術,某些數據被有意地刪除了,而被取消的數據也不再恢復。
有損靜態
圖像壓縮經常如
音頻那樣能夠得到原始大小的1/10,但是無可否認,利用有損
壓縮技術是會影響
圖像質量,尤其是在仔細觀察的時候,質量下降更加明顯,。另外,如果使用了有損壓縮的
圖像僅在
螢幕上顯示,可能對圖像質量影響不太大,至少對於人類眼睛的識別程度來說區別不大,因為人的眼睛對光線比較敏感,光線對景物的作用比顏色的作用更為重要。可是,如果要把一幅經過有損
壓縮技術處理的圖像用高解析度印表機列印出來,那么圖像質量就會有明顯的受損痕跡。
一些方法將人體解剖方面的特質考慮進去,例如人眼只能看到一定頻率的光線。心理聲學模型描述的是
聲音如何能夠在不降低聲音感知質量的前提下實現最大的壓縮。
常見格式
——MP3(MP3PRO\MP3SURROUND)、AAC(*.3gp/*.mp4/*.m4a)、ATRAC3/ATRAC3+(*.aa3)。
先來明白
音頻壓縮的原理:利用人耳聽覺的心理聲學特性(頻譜掩蔽特性和時間掩蔽特性等)以及人耳對信號幅度、頻率、時間的有限分辨能力,編碼時凡是人耳感覺不到的頻率不編碼、不傳送,即凡是對人耳辨別
聲音信號的強度、聲調、方位沒有貢獻的部分(稱為不相關部分或無關部分)都不編碼和傳送。對感覺不到的部分進行編碼時,允許有較大的量化失真、並使其處於聽閾(即人耳所能聽到的最低音量)以下,人耳仍然感覺不到。
音頻的壓縮就是利用這些特點來工作的。
心理聲學的幾個基本概念
人的聽覺的靈敏度隨著頻率而改變。即通常兩個功率一樣但頻率不同的音調聽起來並不一樣響。通過等響度
曲線,我們可以看出,人耳對4KHz的頻率最靈敏,即在4KHz下能被察覺出來的
聲音壓力水平(響度),在其他頻率下並不能被察覺。這就給在一些不太靈敏的頻率下失真提供了條件。
2、禁止
我們上高中物理時學過禁止。就是強的
聲音信號把弱的聲音信號覆蓋,導致我們無法察覺。而且,當兩個
聲音在時間和頻率上很接近時,禁止效應就會很強。因此,我們可以在編碼時對被禁止的部分不編碼、不傳送。這樣,音質依然沒有大的損失,人耳也不易察覺。
3、臨界頻帶
對於人類的聽覺來說,對
聲音的感知特性並不是以線形頻率為尺度來變化的(人的聽覺還沒那么好),而是可以用被稱為臨界頻帶的一系列有限的頻段來表達。簡單的說,把整個頻帶劃分成幾段,在這每個頻段里,人耳的聽覺感知是相同的,即心理聲學特性都是一樣的。
言歸正傳,編碼的精髓就是算法。
主流編碼及其算法
1、MP3(MP3PRO\MP3SURROUND)
MP3應該算目前套用最廣泛的有損壓縮數字
音頻格式了。它的全稱是MPEG(
MovingPictureExpertsGroup)AudioLayer-3。1987年
德國Fraunhofer研究院研製成功的一種有損壓縮
數字音頻格式,並於1989年取得專利。起初,它並不完善,它更像一個編碼標準框架,留待人們去完善。1992年,這一技術併入了MPEG規範,並有了正式名號——MP3。
MP3檔案是由幀(
frame)構成的,幀是MP3檔案最小的組成單位。什麼是幀?還記得最初的動畫是怎么做的嗎?不同的連續畫面切換以達到動態效果,每幅畫面就是一個“幀”,不同的是MP3裡面的幀記錄的是
音頻數據而不是圖形數據。MP3的幀速度大概是30幀/秒。
每個幀又由幀頭和幀數據組成,幀頭記錄著該幀的基本信息,包括位率索引和採樣率索引(這對理解ABR和VBR
編碼方式很重要)。幀數據,顧名思義就是記錄著主體
音頻數據。
上面說的都是MP3編碼的基礎,但事實上,早期的編碼器都非常不完善,壓縮算法近於粗暴,音質很不理想。MP3的音質有兩次飛躍:人體聽覺心理學模型(PerceptualModel)的導入和VBR技術的套用。
PS:VBR是
variablebitrate的縮寫,意思是可變比率,就是MP3檔案壓制的時候
聲音元素較多,比率較高時,將自動減低壓縮
比特率,在比特率需求比較低時自動升高比特率,這樣做的目的是在保證音質基本不被損害的情況下增加檔案線上播放時的速度,和減少在本機播放時所占的
系統資源……這是Xing發展的算法,他們將一首歌的複雜部分用高Bitrate編碼,簡單部分用低Bitrate編碼。主意雖然不錯,可惜Xing編碼器的VBR算法很差,音質與CBR相去甚遠。幸運的是,Lame完美地最佳化了VBR算法,使之成為MP3的最佳編碼模式。這是以質量為前提兼顧檔案大小的方式,推薦編碼模式。
MP3能生存到今天,它的發展仍未止步。2001年6月14日,
法國湯姆森與
美國RCA兩家公司聯合推出了一種新的
壓縮格式:MP3PRO。MP3PRO是基於MP3技術改良而來,它利用了
CodingTechnologies公司開發的編解碼增強技術,該術稱為SBR(
SpectralBandReplication)。當製作MP3PRO檔案時,編碼器將
音頻分為兩部分。一部分是將
音頻數據中的低頻部分分離出來,通過傳統的MP3技術編碼得出正常的MP3
音頻流。此舉使MP3編碼器專注於低頻段信號的壓縮從而獲得更好的質量,而且使原來的
MP3播放器也能播放MP3PRO檔案。另一部分則是將分離出來的高頻信號進行編碼並嵌入MP3流中。傳統的MP3播放器會將其忽略掉,而新的MP3PRO播放器會將其還原出來並進行組合,得到高質量的全頻寬的
聲音。通過這項技術,使得MP3PRO64Kbps的編碼率便可提供128Kbps的MP3相同的質量,且具有相差無幾的音質,而體積只有MP3的一半大小。
PSP就支持MP3PRO,而且支持MP3PRO的格式轉換
軟體也很多,大家可以去網上找找。有興趣的話可以試試,絕對比
mp3強啊。
Thomson在2004年12月初正式宣布世界上最流行的音樂
壓縮格式MP3邁進多聲道時代。MP3SURROUND是由FraunhoferIIS和Agere聯合開發的,使用了binauralCueCoding(BCC)技術心理聲學編碼,可以在實現多聲道環繞的同時保證檔案的大小。同時加入的
AgereSystems公司則主要負責將多聲道MP3格式——MP3SURROUND進行推廣。MP3SURROUND技術實現了5.1聲道環繞的高品質
音頻,套用範圍相當廣泛,可以在
網路音樂發布、
廣播系統、PC視聽套用、遊戲音效、
消費電子產品和車載音響等方面發揮作用。儘管集成了多個聲道,但是Thomson表示MP3SURROUND檔案相對於普通MP3(採樣率相當)並沒有太大的增加,相對於其他環繞多聲道
音頻格式就只有它們的一半了。更為重要的,MP3SURROUND提供了良好的兼容性,可以在現有的MP3
軟體、MP3播放器上正常使用。
2、AAC(*.3gp/*.mp4/*.m4a)
AAC是高級
音頻編碼(
AdvancedAudioCoding)的縮寫,它是由Fraunhofer研究院、
杜比和AT&T共同研發的。AAC是
MPEG-2規範的一部分,它適用於從速率8Kbps的單聲道電話音質到160Kbps多聲道的超高質量
音頻範圍內的編碼。AAC與MP3相比,增加了諸如對立體聲的完美再現、碼流效果音掃描、
多媒體控制、降噪最佳化等MP3
音頻格式所沒有的特性,使得在音頻壓縮後仍能完美地再現CD音質。它還同時支持多達48個音軌、15個低頻音軌、更多種採樣率和
比特率、多種語言的兼容性、更高的解碼效率。總之,AAC可以在比MP3檔案縮小30%的前提下提供更好的音質。
現將其中的幾個模組作一些說明:
增益控制(Gaincontrol)
增益控制模組用在可變採樣率配置中,它由多相正交濾波器PQF(polyphasequadraturefilter)、增益檢測器(gaindetector)和增益修正器(gainmodifier)組成。這個模組把輸入信號分離到4個相等頻寬的頻帶中。在解碼器中也有增益控制模組,通過忽略PQF的高子帶信號獲得低採樣率輸出信號。
濾波器組(FilterBank)
濾波器組是把輸入信號從
時域變換到頻域的轉換模組,它是MPEG-2AAC系統的基本模組。這個模組採用了改進
離散餘弦變換MDCT,它是一種線性正交交迭變換,使用了一種稱為時域混迭取消TDAC(
timedomainaliasingcancellation)技術。MDCT使用KBD(
Kaiser-Besselderived)視窗或者使用正弦(sine)視窗,正向MDCT變換可使用下式表示:
逆向MDCT變換可使用下式表示:
其中,
n=樣本號,
N=變換塊長度,
i=塊號,
以上兩個離散餘弦變換公式在《
離散函式》和《數理方程》中有詳細介紹,只為幫助有興趣的玩家了解,不必深究。
瞬時噪聲定形TNS
在感知
聲音編碼中,TNS模組是用來控制量化噪聲的瞬時形狀的一種方法,解決掩蔽閾值和量化噪聲的錯誤匹配問題。這種技術的基本想法是,在時域中的音調聲信號在頻域中有一個瞬時尖峰,TNS使用這種雙重性來擴展已知的
預測編碼技術,把量化噪聲置於實際的信號之下以避免錯誤匹配。
聯合立體聲編碼
聯合立體聲編碼(
jointstereocoding)是一種空間編碼技術,其目的是為了去掉空間的冗餘信息。MPEG-2AAC系統包含兩種空間編碼技術:M/S編碼(
Mid/Sideencoding)和聲強/耦合(
Intensity/Coupling)。M/S編碼使用
矩陣運算,因此把M/S編碼稱為矩陣立體聲編碼(
matrixedstereocoding)。M/S編碼不傳送左右聲道信號,而是使用標稱化的“和”信號與“差”信號,前者用於中央M(middle)聲道,後者用於邊S(side)聲道,因此M/S編碼也叫做“和-差編碼(sum-differencecoding)”。聲強/耦合編碼的名稱也很多,有的叫做聲強立體聲編碼(
intensitystereocoding),或者叫做聲道耦合編碼(
channelcouplingcoding),它們探索的基本問題是聲道間的不相關性(irrelevance)。
預測(Prediction)
這是在話音編碼系統中普遍使用的一種技術,它主要用來減少平穩(stationary)信號的冗餘度。
量化器(Quantizer)
使用了非均勻量化器。
無噪聲編碼(Noiselesscoding)
無噪聲編碼實際上就是
霍夫曼編碼,它對被量化的譜係數、比例因子和方向信息進行編碼。
PS:我個人比較喜歡AAC,所以寫的較為詳細,大家也不妨試試,絕對比MP3優秀。大家可以使用iTunes6來轉換AAC(*.m4a)。iTunes6AAC的操作很簡單,你可以直接把AAC(*.3gp\*.mp4\*.m4a)拷貝到[MUSIC]就能播。
可以說,aac是目前最好的有損壓縮方式。
最高質量的普較無損看(肉眼)不出區別。
3、ATRAC3/ATRAC3+(*.aa3)
早年玩MD的朋友都知道SONY專為MD量身定做的ATRAC
音頻格式算法,後來又廣泛套用於SONY的NetworkWalkman和其他便攜音頻設備。“ATRAC3plus”代表“自適應轉換
聲音編碼3+”,是一套基於心理聲學原理的
音頻壓縮技術,從ATRAC3格式發展而來,到2002年這項技術才日趨完美。這一技術是把MD
隨身聽的體積縮小到很小的理論基礎。
要分析ATRAC3/ATRAC3+,我們先要談談它的大哥——ATRAC算法。當
數字音頻數據被壓縮時,通常都會把一定數量的量化噪音帶入信號。為了不讓這些信號被人耳感知,通常的做法是,
音頻編碼把信號分解為一組單元,每組單元都對應著特定的時間頻率範圍。編碼器會依據前文提到的心理聲學原理來分析,對重要的單元進行高精度編碼,對不敏感的單元可以保留一些量化的噪音但不影響人耳的感知質量。解碼時,量化頻譜會根據比特分配重新建立,然後合成
音頻信號。
ATRAC也不例外,但有一些改進。ATRAC還套用了子頻帶解碼和轉換解碼技術,輸入的信號被分配得到不均勻的強調重要低音區的頻率分割。另外,ATRAC使用一個可變塊長度改變輸入的信號,這可以確保在穩定通過時高效的解碼,不會在瞬間通過時影響時間的解析度。具體說,輸入的信號在5.5125KHz和11.025KHz被分為3個頻帶。子頻帶的分解使用QMF(
QuadratureMirrorFilters積分映射過濾器)來完成;這3個頻帶被MDCT(
ModifiedDiscreteCosineTransform變址離散餘弦變換——類似於通常的
快速傅立葉變換,《高等數學二》和《數理方程》中有相關介紹。)轉換成頻譜值,MDCT允許塊之間有達50%的交迭,使得在維持臨界採樣時能提高頻率解析度。塊的長度可以根據信號的種類改變,這就是ATRAC的自適應部分(這一做法主要是為了利用禁止掩蓋初始量化噪音)。
當ATRAC算法發展了10年,已經滿足不了市場的需求,
SONY於2002年8月推出了新的算法——
ATRAC3/ATRAC3+。其核心算法較ATRAC沒有本質的大改變,只是採用了改進的頻帶分離過濾和MDCT,並使用增益調節、音調成分分離、聯合立體聲(Joint-Stereo)等技術,使得
音頻壓縮數據的體積進一步縮小。
4、AAL(ATRACAdvancedLossless)
AAL是ATRACAdvancedLossless(自適應聲學轉換高級無損編碼)的縮寫,是SONY新開發的一個
音頻壓縮格式其特點是
無損壓縮,不損失一點音頻信息,一張CD可以壓縮到原來的30%--80%。
5、Ogg
Ogg全稱應該是OGG Vobis(ogg Vorbis) 是一種新的
音頻壓縮格式,類似於MP3等現有的
音樂格式。但有一點不同的是,它是完全免費、開放和沒有專利限制的。OGG Vobis有一個很出眾的特點,就是支持多聲道,隨著它的流行,以後用隨身聽來聽DTS編碼的多聲道作品將不會是夢想。
Vorbis 是這種
音頻壓縮機制的名字,而Ogg則是一個計畫的名字,該計畫意圖設計一個完全開放性的
多媒體系統。
Ogg Vorbis檔案的擴展名是.OGG。這種檔案的設計格式是非常先進的。創建的OGG檔案可以在任何播放器上播放,因此,這種
檔案格式可以不斷地進行大小和音質的改良,而不影響舊有的編碼器或播放器。
較aac而言,低頻方面略有優勢,高頻方面比aac差。
最高質量的普較無損看(肉眼)不出區別。
最高質量,即Q10,體積比aac使用faac編碼最高質量Q500體積大差不多一倍。
編碼開源。