基本介紹
- 中文名:傳輸誤碼對恢復圖像質量的影響
- 外文名:Effects of transmission errors on the reconstructed image quality
- 套用學科:通信
影響圖像傳輸質量的因素,誤碼對編碼圖像的影響,
影響圖像傳輸質量的因素
引起圖像傳輸質量下降的原因很多,例如隨機性的誤碼、突發性的誤碼、傳輸中的丟包、時延過大或不均勻、定時抖動、傳輸包倒序等等。從實際套用的情況來看,對實時圖像通信影響最大的是時延和誤碼這兩項。
(1)時延
幾乎圖像通信過程的每個步驟都會引起時延,但可歸納為編碼、解碼和傳輸三種時延。
編碼時延:在基於分塊的DCT編碼方法中,在每幀的每行方塊被傳輸以前,需要存儲好8行或16行,這樣能產生幾毫秒的時延。一個恆定比特率編碼器中的傳送快取也會產生一個不固定的快取時延。一般說來,對快取器的大小的選擇要折中考慮。大的快取器允許更靈活的速率控制,但會引入較大的延時,而較小的快取器引入較小的延時,但需更嚴格的速率控制。如採用雙向預測則引入的時延更大,因為在B圖像編碼之前,其前面和後面的I幀或P幀都需要讀入編碼器。
傳輸時延:對於電路交換,傳輸過程引入的時延是固定不變的和可預測的;對於分組交換,其傳輸時延是變化的,且難以預測。隨著網路的擁擠程度的不同可能有相當大的變化。
解碼時延:解碼時延和編碼時延的原因是相反的。
(2)誤碼與數據包丟失
由於所傳的數據為經壓縮算法去除了圖像中的大部分的內在相關性的已編碼數據,即使相對輕微的誤碼和包丟失,對解碼圖像數據也會有嚴重的影響。單個比特的誤碼就會在解碼序列中引起一大部分空間和時間區域的質量下降。在編碼圖像序列的一幀之內,量化後的DCT係數經熵編碼後成為一系列不等長碼字(VLC),解碼器預先並不知道當前碼字的長度,如果一個碼字出錯,那么解碼器就會對後面整個的變長編碼序列錯誤地解碼形成了所謂的誤碼擴散。誤碼擴散的一個示例如圖41.63所示,可以看到,1碼字上的比特誤碼,導致解碼端對應碼字的碼長改變,隨後的2碼字、3碼字等一連串碼字的碼長也隨之發生了變化。另外,有些數據是與前面的數據進行差分編碼的,例如DCT中的DC係數和運動估計中的運動矢量。在這些數據中的一個誤差就會導致後續數據的錯誤預測。
圖1誤碼擴散示意圖
運動補償幀間預測所引起的誤差不僅在空間上傳播,同時也在時間上傳播。如果出錯的幀還用作後面預測幀的參考幀,那么,這些幀將在錯誤幀的基礎上重建,誤差將在後續的解碼幀中傳播。一個發生I幀或P幀圖像中的誤差就會產生這種誤碼的傳播作用。在B幀編碼存在的情況下,誤差既向前傳播也向後傳播,直到碰到序列中下一幅I幀圖像時,時間上的誤差傳播才會停止。
如上所述,影響到一幀圖像中較大區域的誤差,特別是連續傳播幾幀的誤差對觀察者是非常明顯。為此,編碼圖像只能允許很有限的誤碼或數據包丟失,以使質量的下降為不可見的,例如,高於10-6的誤碼率就能產生嚴重的視覺質量損失。
誤碼對編碼圖像的影響
(1)誤碼分析
實際的數字通信線路中由於存在干擾噪聲,必然引起傳輸誤碼,誤碼率的高低直接影響到通信的質量,尤其在圖像的傳輸中,這種情況就更為嚴重。
圖2 傳輸模型
如圖2所示,由於信道中的干擾噪聲,在信息位引入誤碼ec,因此解碼端的輸入為eN+ec,如果編解碼系統可簡化為線性系統,則可用線性運算符L(·)表示解碼運算,於是輸出為:
X‘N=L(eN+ec)=L(eN)+L(ec) (41.145)
式(41.145)中的第一項L(eN)是無誤碼時的解碼結果。因此,解碼端的恢復圖像可以看作無誤碼的恢復圖像和傳輸誤碼引起的“誤碼圖案”(L(ec))兩部分疊加而成。在分析傳輸誤碼對圖像的影響時,可以只分析上式中的“誤碼圖案”,它是單個誤碼ec與解碼器的單位衝激回響hR的卷積。
X’ec=ec·hR (41.146)
通過實驗可以發現,一維DPCM(前值預測)的單誤碼影響為水平線狀,其原因是後面的像素要依賴於前面像素的正確性。二維DPCM的單誤碼圖案為慧星狀的扇形,它與誤碼在圖像中的位置、預測公式以及誤碼的強度等因素有關。如果是幀間預測,則誤碼的作用一直向後續幀傳播。對於二維DCT,誤碼效應只在子塊中分配,而且解碼時從變換域到圖像域轉換後,誤碼的作用分散而不明顯。因此從抗誤碼的角度來看,變換編碼比預測編碼要好。
當採用混合編碼後,其中包括VLC,情況變得更為複雜,對抗誤碼的要求更高。實踐中為了降低誤碼圖案的效果,可以採用一些輔助措施。例如對於H.261混合編碼器,通常採用定期刷新(即定期使用幀內編碼模式)的方法來降低幀間編碼時信道誤碼以及運算的累積誤差對圖像質量的影響。
(2)對信道誤碼率的要求
電視信號在編碼傳輸後,要求復原的圖像質量儘量達到覺察不出有差錯的效果,這就對傳輸信道的誤碼率e提出了一定的要求。實際表明,對於PCM編碼,要求傳輸誤碼率e<5x10-6,對壓縮編碼圖像要求e<10-9。假定數字信道的傳輸誤碼率為10-6,則PCM編碼的視頻信號在傳輸時不需要傳輸誤碼保護措施。但對於壓縮後的視頻信號,它承受傳輸誤碼的能力不強,必須有傳輸誤碼保護措施。此外,為了提高壓縮效率,混合編碼器中還使用了VLC編碼,誤碼造成的危害更大,則對傳輸提出了更高的要求。理論和實踐都已證明,採用3%冗餘度的糾錯編碼,可以使誤碼率的要求由10-9降到10-6。例如,在H.261建議中,可選擇採用BCH(511,493)的糾錯編碼。
(3)誤碼在不同位置的影響
數字圖像的碼流可分兩類,一類是經壓縮的圖像數據本身,如DCT係數、量化步長、運動矢量等,如果誤碼落在這裡,對圖像的影響往往是局部的,擴散範圍較小;另一類是表征壓縮圖像數據特點的所謂的“頭信息”,如圖像頭、GOB頭等,如果誤碼落在這裡,對圖像的影響往往是大範圍的,有時可延續數幀,更嚴重的會造成圖像不能繼續解碼。下面以MPEG圖像為例,簡要討論發生在不同位置的誤碼對圖像的影響。
序列頭:序列頭含有解碼器正確解碼所需的重要信息,如每一幀的空間解析度說明,幀速率和採用的量化表類型等。這些參數中的誤碼會使解碼器無法對序列正確解碼,但是,從統計意義上來講,除非誤碼率非常高,否則序列頭髮生誤碼的可能性很小,因為數據頭只占據編碼比特率的很小一部分。
圖像組頭:圖像組頭對於序列的準確解碼影響一般不很嚴重,所以其中發生的誤碼影響不很嚴重。
圖像頭:發生在圖像頭中的誤碼可使下一幅圖像無法正確理解,例如,一個發生在“圖像起始碼”中的誤碼可能使解碼器不能識別圖像的起始點,最壞的情況是整幅圖像被解碼器丟棄。如果該幅圖像需要用作後續預測圖像的參考圖像,會產生更嚴重的影響。
宏塊條頭:如果在圖像條頭中發生誤碼,將使整個條不能正確地解碼。由於條頭地信息主要是用於誤碼恢復的,每個條頭的起始碼都是位元組對齊的,所以總能在下一個沒有誤碼的條的起始點恢復正確的解碼。
宏塊條、宏塊和塊數據:由於這些單元的編碼數據都是經過VLC編碼的,此時誤碼對它們的影響可產生多種可能的結果。大多數情況下,誤碼影響不出本宏塊條的範圍,個別情況下誤碼可能擴散到宏塊條外。