專利名稱:差分編碼與解碼方法以及相應的電路的制作方法
技術領域:
本發明涉及一種用于差分編碼與解碼的方法和電路。
通常用來減少所傳輸的信息量的一種方法是求傳輸信號與它的預測信號之間的差分。
這里面產生的問題,在于輸入信號被限定在某一數值幅度內時,那么通過求輸入信號和預測信號之間的差分而得到的信號會有一個兩倍的幅度。
人們已經知道一些能夠將差分信號維持在原信號的幅度之內的簡單算法。
本發明的一個目的就是提供一種能夠有效地減少傳輸冗余信息的差分編碼與解碼的方法。
為此,根據本發明的編碼方法構成如權利要求1所述,解碼方法構成如權利要求8所述,相應的電路構成如權利要求9和10所述,而本方法對視頻信號的一個應用特例則如權利要求3所述。
根據下面的敘述,本發明將變得更容易理解些。
差分編碼是以求出輸入信號和它的預測信號之間的差分代替直接對輸入信號編碼的一種特殊型式的編碼。
為要預測輸入信號,可以使用任何型式的預測器,在最簡單的情形,用前面已經編過碼的數值作為預測信號。
假定輸入信號數值包括在集合(一幅值,……,幅值-1)中,幅值是一個正整數,其結果是,這一信號和它的預測信號之間的差分有一個雙倍數的幅值。
因此,產生的問題就是如何能將差分信號導入原幅度內。
這里所述的算法可由文獻得知,是維持差分信號在原幅度信號內的最簡單的方法。
令Val為被預測的樣本數值pred為預測數值算式如下<pre listing-type="program-listing"><![CDATA[Δ=val-pred;if(Δ<-range)Δ=Δ+2 range;elseif(Δ>range-1)Δ=Δ-2range;]]></pre>在其一個實施例中,本發明除維持差分信號的數值在原幅值之內外,還對它執行進一步的壓縮。
基本的想法是,給定預測的信號,就這樣規定差分數值,使它具有盡可能靠近預測值的較小數值,這樣一來,就對更多可能出現的數值賦以較小的數字。
算式如下<pre listing-type="program-listing"><![CDATA[Δ=val-pred;rangeΔ=range;if(pred>0)rangeΔ=range-pred-1;else if(pred<0)rangeΔ=range+pred;if(Δ>rangeΔ)if((Δ-rangeΔ+1)mod 2==0)sn=-1;else if((ΔrangeΔ+1)mod 2==1)sn=+1;Δ=( rangeΔ+(Δ-rangeΔ+1)/2)sn;]]></pre>
如果輸入信號長時間為零,對前面的零信號的差分運算勢必刪去一些存在的零。
保持這一零序列是適當的,這是由于在后面可能發生的信息壓縮中,這些零能以一種很有效的方式編碼。
在本發明的另一個實施例中,通過執行一種當信號值為零時的信號絕對編碼法,即使工作在差分方式下,零的數目也維持不變。
算式如下<pre listing-type="program-listing"><![CDATA[if(val==0)Δ=0;else if(pred==0)Δ=val;else if(pred>0) Δ=val-pred; if((Δ≥0)∨(Δ<-pred))Δ=Δ+1;else if(pred<0) Δ= val-pred;if((Δ≤0)∨(Δ>-pred))Δ=Δ-1;]]></pre>在這里沒有引入對差分信號幅度的任何控制,不過,前面敘述的算法能夠擴廣到這里來。
現在將敘述上面提到的方法對視頻信號的一個應用。
系統的基本部件是使較高能量變換系數的變化幅度得以減小的預測器,被傳輸的差分信號具有對后面的編碼很方便的統計特性。
此方法應用于對視頻圖像成分即亮度和色度的編碼,其中需要用到DCT(離散余弦變換)。
一幅數字圖像由若干行組成,每一行又由一般稱為“像素”的若干個小點組成。
這里所講的視頻編碼技術,先將圖像分解成8×8像素的方陣,然后對每一個方陣應用二維DCT,這樣的操作就使得在每個方陣中占著空間的冗余像素減少了。
在這里,每個方陣內的DCT系數互不相關;但相鄰的方陣之間的冗余關系仍可看得出來。
在本發明的方法中,沿著圖像的色條來研究各方陣,特別是,每一色條的第一個方陣未經任何處理就傳輸了,從第二個方陣開始應用本發明的方法,以達到減小高加權系數的數值。
本算法只考慮每個8×8變換方陣的第一列系數;這些系數一般都是那些加權比較高的,這是由于它們在隔行掃描中代表最重要的幀頻率的關系。
因此,當一個人處理當前方陣的時候,他知道整個前一個方陣以及當前方陣除了有待估算的第一列系數之外的全部系數。
本方法的要點是對當前方陣與前一方陣之間的邊界鏈接波形(在區間定義域中)為要做到這一點,前一方陣作列的逆變換并定出最后一列;當前方陣也作列的逆變換以定出第一列,不過在這一情形下,第一列的DCT系數不知道,因而作為未知數出現在逆變式中。
在這里,通過鏈接共同邊界上的兩個列(在區間定義域中)使得兩個方陣連續。
由這樣得出的方程組求得第一列的各未知項。
整個這一過程全都包括在下面的計算中PRx0=Cx0pre-Cx1pre-Cx1att+Cx2pre-Cx2att]]>-Cx3pre-Cx3att+Cx4pre-Cx4att]]>-Cx5pre-Cx5att+Cx6pre-Cx6att]]>-Cx7pre-Cx7att]]>X=0,...,7其中PRx0為當前方陣指標為X,0的DCT系數的預測值。
Cprexy為前一方陣指標為x,y的DCT系數。
Cattxy為當前方陣指標為x,y的DCT系數。
從真值中減去這樣得到的預測值,并將差分傳送出去。
注意,通過上面的公式估算的值也可以假定為允許幅度以外的數值在這一情形下,僅出現最近端的飽和。
下一步的要點是為每一對同調系數引進適當的加權系數。這樣,特別是在圖像從一個方陣到另一個方陣改變太多時,就認為對邊界上列的鏈接不正確,這樣的校正過程特別對高階系數是必不可少的。
在這一情形下,公式變為PRx0=K0Cx0pre-K1(Cx1pre+Cx1att)+K2(Cx2pre-Cx2att)]]>-K3(Cx3pre+Cx3att)+K4(Cx4pre-Cx4att)]]>-K5(Cx5pre+Cx5att)+K6(Cx6pre-Cx6att)]]>-K7(Cx7pre+Cx7att)]]>X=0,...,7其中Kx為加權系數。
根據所做的模擬試驗,發現此系統的性能對加權系數的變化并不很敏感,因此把它們選得全都相等,并用基波的兩個功率之和給出的數,以簡化相應的硬件。
在這一情況下,所估計的值一般都要占用一個大于允許值的比特數,由一種簡單的平均飽和量化法把信號再重新導入正確的幅度。
通過下面兩種不同的算法從真值減去預測值,一種是在/DCT系數具有00指標時,一種適用于其他系數。
當DCT系數的指標為00時,使用所述的第一種算法,能使預測誤差幅度減小,事實上,這類系數具有準平均的概率分布;對預測值的差分運算則將這樣的分布變換為更適于連續編碼的拉普拉斯分布。
對其他所要預測的系數,由于它們長時間為零,則使用保持各個零的差分算法。
在高階系數的情形,這樣求出的預測值達不到有效壓縮信號,在這樣的情況下,系數未經任何處理就傳送了。
至于說到差分信號解碼,只要對編碼算法中所述的那些執行反演運算就足夠了。
實現根據本發明所述的方法的電路至少包括一個預測器,一個加法器(或減法器),以及例如像數字信號處理器這樣能夠執行計算的機構。
在最簡單的情形,預測器可以是就像一根延遲線,并輸出前面已傳送的數值。
顯然,如上所述的方法和電路的若干變例不管怎樣,完全屬于本發明的范圍之內都是可以接受的。
權利要求
1.一種差分信號編碼方法,其求出一個輸入信號與它的預測值之間的差分并使差分信號的數值維持在原來幅度之內,其特征在于對差分數值這樣編碼,即對更多可能出現的數值賦以較小的數字。
2.根據權利要求1或2的方法,其特征在于信號為零時執行信號的絕對編碼法。
3.根據權利要求1或2的方法,其特征在于差分信號來自一個視頻信號。
4.根據權利要求3的方法,其特征在于為計算各預測值,考慮各用于計算預測值的y行x列視頻信號方陣,并計算所述方陣的離散余弦變換。
5.根據權利要求4的方法,其特征在于僅考慮所述方陣的第一列系數。
6.根據權利要求5的方法,其特征在于區間定義域的共同邊界上的兩列是鏈接的。
7.根據權利要求6的方法,其特征在于區間定義域的共同邊界上的兩列的鏈接是通過引入適當的加權系數完成的。
8.一種對差分信號解碼的方法,其方法是求出一個輸入信號與它的預測值之和并使差分信號值維持在原來幅度之內,其特征在于它根據前面各權利要求的反演方法對信號解碼。
9.一種編碼電路,包括一個預測器、一個減法電路、一個數字信號處理器、一個輸入信號、一個預測信號,數字信號處理器加在輸入信號和預測信號之間的差分信號上,其特征在于所述處理器根據要求1至7的編碼方法處理信號。
10.一種解碼電路,包括一個預測器、一個加法電路、一個數字信號處理器、一個輸入信號、一個預測信號,所述數字信號處理器的饋入信號是一個輸入信號與預測信號之和,其特征在于所述處理器根據權利要求8的解碼方法處理信號。
全文摘要
公開了一種用于差分編碼和解碼的方法和相關電路,差分編碼是一種特殊的編碼,不是直接對輸入信號編碼,而是求出輸入信號和預測信號之間的差分。這樣減少了要傳輸的信息。本發明的方法進一步減少了信號冗余及要傳輸的信息。
文檔編號H04N7/34GK1121759SQ94191941
公開日1996年5月1日 申請日期1994年4月29日 優先權日1993年4月29日
發明者西爾維奧·卡奇, 莫里早·拉澤 申請人:阿爾卡塔爾有限公司