專利名稱:編碼失真消除方法、視頻編碼方法、視頻解碼方法、裝置及其程序的制作方法
技術領場本發明涉及用來消除編碼視頻信號時發生的編碼失真的編碼失真消除方法,利用該編碼失真消除方法增加壓縮率的編碼方法和解碼方法,以及用來存儲用軟件實現這些方法的程序的數據記錄介質。
背景技術:
通過將數字技術與多種音頻、視頻、和其它種類的像素流結合成單一傳輸流的先進技術,傳統的信息媒介,即,與公眾交流信息的方式,如報紙、雜志、電視、電臺和電話現在可以用作多媒體通信。“多媒體”通常是指在單一傳輸流中鏈接在一起的文本、圖形、音頻和視頻,但是傳統的信息媒介必須先進行數字化才能夠用多媒體的格式來處理信息。
當轉換為數字數據時,存儲傳統信息媒介所攜帶的信息所需的存儲容量估計對于文本來說每個字符只需要1或2個字節,而對于1秒鐘電話質量的音頻需要64kbits,對于1秒鐘具有當前電視接收機質量的視頻需要100Mbits。因此,以數字形式在上述信息媒介上處理這些大信息量不太實際。例如,可視電話業務可以使用具有64Kbps到1.5Mbps傳輸速率的ISDN(綜合業務數字網)線路,而電視攝像機等級的視頻就不能通過ISDN線路來發送。
因此數據壓縮變得很重要。例如,可視電話業務是利用ITU-T(國際電信聯盟,電信標準化段)的建議書H.261和H.263推薦的國際標準的視頻壓縮技術實現可視電話業務的。利用MPEG-1規定的數據壓縮方法,視頻信息可以與音頻一起記錄在常規的音頻CD(密致盤)上。
MPEG(運動圖像專家組)是用來數字地壓縮運動圖像信號(視頻)的國際標準。MPEG-1能夠將視頻信號壓縮到1.5Mbps,即,壓縮電視信號中的信息大約為100∶1。另外,因為MPEG-1視頻的傳輸速率被限制在大約1.5Mbps,為滿足更高圖像質量要求而標準化的MPEG-2能夠將運動圖像信號壓縮到2Mbps到15Mbps。
具有更高壓縮率的MPEG-4已經由工作組(ISO/IECJTC1/SC29/WG11)制定為比MPEG-1和MPEG-2更先進的標準。MPEG-4不僅能夠降低比特率,提高編碼效率,而且還引入了即使在傳輸路徑發生錯誤時也能夠降低主觀圖像惡化的強大的錯誤阻止技術。ITU-T還正在致力于將建議書H.26L作為下一代圖像編碼方法的標準。
與常規的視頻編碼技術不同,H.26L使用伴隨有復雜處理過程的編碼失真消除方法來消除編碼失真。利用象廣泛用于視頻編碼的DCT技術的正交變換的塊單元編碼方法能夠解決編碼塊邊界塊失真的網格類失真。因為在低頻分量損失的圖像質量比在高頻分量損失的圖像質量明顯,所以在塊單元編碼中對低頻分量的編碼比高頻分量更可靠。此外,因為由照相機捕捉到的自然圖像包含的低頻分量多于高頻分量,所以編碼塊包含的低頻分量比高頻分量多。因此,編碼塊實際上往往不包含高頻分量,并且塊中相鄰像素實際上往往具有相同的像素值。
此外,由于編碼是以塊為單位的,因此不能保證相鄰塊邊界具有相同的像素值,就是說,即使像素值在每個塊中是相同的,像素值在穿過塊邊界時會不斷變化。結果就是,如圖31中所示的編碼失真消除的概念,當像素中的變化在跨越如圖31(a)所示的虛線表示的塊邊界的源圖像中是平滑且連續,并且通過塊單元對源圖像編碼后,像素值在如圖31(b)所示的每個塊中連續變化,產生塊失真,即,只在塊邊界的像素值中的不連續性。塊失真是圖像編碼導致的明顯的圖像質量問題,但是可以通過糾正使像素在穿過圖31(c)所示的塊邊界時連續來減小塊失真。這個減小塊失真的過程被稱作編碼失真消除(也稱作“去塊”)。
當在視頻解碼階段采用“去塊”時,可以使用去塊濾波器作為如圖32中利用常規解碼方法的視頻解碼器方框圖中所示的后置濾波器,或者可以用作如圖33中利用常規解碼方法的視頻解碼器方框圖中所示的環路(in-loop)濾波器。下面將描述這些方框圖中所示的配置。
在圖32所示的利用常規解碼方法的視頻解碼器的方框圖中,可變長度解碼器52對編碼后的信號Str進行可變長度的解碼并且輸出頻率編碼分量DCoef。去Z字形掃描單元54重新排列二維塊中頻率編碼分量DCoef的頻率分量,并且輸出頻率分量FCoef、塊單元頻率分量。反余弦變換單元56對頻率分量Fcoef進行去量化和反DCT操作,然后輸出差分(difference)圖像DifCoef。
運動補償器60從存儲器64中累加的參考圖像Ref中輸出由外部輸入運動矢量MV表示的位置上的像素作為運動補償圖像MCpel。加法器58將差分圖像DifCoef和運動補償圖像Mcpel相加,以輸出重構的圖像Coef。去塊濾波器62編碼失真消除應用于重構圖像Coef,并輸出解碼的圖像信號Vout。重構的圖像Coef存儲在存儲器64中,并且用作下一個圖像解碼的參考圖像Ref。
圖33中利用常規解碼方法的視頻解碼器的方框圖與圖32所示的視頻解碼器的方框圖基本相同,不同之處在于去塊濾波器62的位置。如從圖33得知的,從去塊濾波器62輸出的已解碼圖像信號Vout存儲在存儲器64中。
圖32中利用常規解碼方法的視頻解碼器的方框圖示出了MPEG-1、MPEG-2、MPEG-4和H.263中使用的配置和方法。圖33中利用常規解碼方法的視頻解碼器的方框圖示出了用于H.261和H.26L TM8的配置和方法。
對于圖32中的利用常規解碼方法的視頻解碼器的方框圖,存儲在存儲器64中的重構圖像Coef不依賴于去塊濾波器62所采用的方法。這樣允許開發和實現各種去塊濾波器62,根據可用硬件和指定應用的性能包括復數高性能濾波器和效果相對較差的簡單濾波器。它的優點在于可使用適合于該設備的去塊濾波器62。
對于圖33中的利用常規解碼方法的視頻解碼器的方框圖,存儲在存儲器64中的已解碼圖像信號Vout取決于去塊濾波器62采用的方法。這里的問題終于濾波器不能為適應硬件或應用程序而改變,但是它的優點在于在每個設備中能夠保證相同等級的編碼失真消除。
圖34是利用常規編碼失真消除方法的編碼失真消除單元的方框圖。圖34示出了圖32和圖33中去塊濾波器62的詳細配置。為了有效地從包含編碼失真的圖像信號中只消除編碼失真,關鍵是確定圖像信號中編碼失真的量和趨勢,然后采用合適的濾波以便不降低實際的圖像質量。
因為高頻分量是導致許多編碼失真的原因,所以編碼失真消除背后的通用概念是調查圖像信號來確定圖像信號中高頻分量的比例,識別圖像信號像素中通常被認為不包含作為編碼失真的高頻分量的高頻分量,然后對編碼失真采用高頻分量抑制濾波。因為圖像信號中相鄰像素之間存在很高的相關性,所以包含高頻分量的像素集中在邊緣區域,因此,可以認為分散的高頻分量為編碼失真。
去塊濾波器62是本發明的發明者根據ITU-T建議書H.26L TML8中內容創造的。
濾波像素計數控制器84利用重構圖像Coef來確定包含編碼失真的像素位置,然后輸出濾波后的像素計數FtrPel。濾波器系數控制器86利用濾波像素計數FtrPel和重構圖像Coef來確定適合從指示的像素中消除編碼失真的濾波器系數(包括濾波器抽頭數量),然后輸出濾波器系數FtrTap。濾波處理器88利用濾波器系數FtrTap指示的濾波器系數進行濾波,以便從重構圖像Coef中消除編碼失真,并輸出解碼后的圖像信號Vout。
發明內容
上述常規的編碼失真消除方法在消除編碼失真時特別有效,但是過程極其復雜并且難以實現。
另一個問題是每個單位時間的數據處理量很大。
另外,無論該編碼失真消除方法多么有效,但是如果沒有其它附加信息它也無法精確地區分圖像信號和編碼失真,因此,存在著編碼失真消除會降低圖像質量的可能性。這個問題對如圖33中利用常規解碼方法的視頻解碼器的方框圖中所示的配置尤為嚴重,這是因為去塊的結果被用作參考圖像,并因此影響對每個后續圖面編碼的結果。
因此,本發明的一個目的是提供一種簡便的編碼失真消除法。
另一個目的是提供編碼失真消除方法、編碼方法和解碼方法,由此可通過應用高性能編碼失真消除,以使作為消除編碼失真結果的圖像信號質量降低的可能性比現有技術小來減小圖像信號質量降低的可能性。
為獲得這個目的,根據本發明用來從畫面中消除編碼失真的編碼失真消除方法使用不同的方法來消除運動補償單元邊界與編碼單元邊界匹配的邊界,以及當運動補償塊的大小大于編碼塊大小時,取決于該邊界是否為運動補償塊的邊界的編碼失真。
由于在運動補償單元邊界處的編碼失真在質量上不同于在編碼單元邊界處的編碼失真,因此可以通過根據單元來改變用于去塊的濾波器來有效地從包含編碼失真的圖像信號中消除編碼失真。
此外,當編碼后的運動補償錯誤為0時,最好只在運動補償塊邊界消除編碼失真。
本發明的另一個方面是通過從包含編碼失真的畫面中提取畫面參數的步驟從畫面中消除編碼失真的編碼失真消除方法;第一步是利用畫面參數識別要執行編碼失真消除的像素;第二步是利用畫面參數識別要使用的編碼失真消除的方法;第三步是利用由第二步識別的編碼失真消除方法從第一步中識別的像素中消除編碼失真。
通過首先計算可以在識別要從其消除編碼失真的像素的第一步和識別用于消除編碼失真的方法的第二步中使用的畫面參數,可利用這些公共畫面參數簡化第一步和第二步中執行的操作,并且可以減少編碼失真消除方法的處理過程而不降低圖像質量。
本發明的另一個方面是用來從畫面消除編碼失真的編碼失真消除方法,由此通過基于塊進行的是否以塊為單位消除編碼失真的確定,和針對由基于塊進行的確定要消除的確定的塊中的每個像素,基于像素進行是否消除編碼失真的確定來識別要進行編碼失真消除處理的像素。
通過首先以塊為單位確定是否需要進行編碼失真消除,可以省略對那些塊中不需要去塊的像素單元進行評估,因此可減少由編碼失真消除方法執行的處理。如果使用圖像編碼信息,可以很容易確定不需要去塊的塊(例如,像素與參考圖像完全匹配的靜態圖像塊)。
本發明的再一個方面是一種用于對位于具有形成運動畫面圖像的多個塊的畫面中的第一個塊和相鄰的第二個塊之間的塊邊界兩側的區域中進行消除編碼失真的編碼失真消除方法。該方法具有比較步驟,用于將第一個塊的像素值和第二個塊的像素中的像素值的差值與用來確定消除編碼失真方法的參數比較,該參數對應于第一個塊的量化參數和第二個塊的量化參數的平均值;消除步驟,用于根據比較步驟的結果來消除編碼失真。
這樣當在不同量化參數之間的塊邊界在編碼失真消除過程中對塊邊界的兩側進行濾波時能夠使用相鄰塊的量化參數的平均值。
另一個用于消除位于具有形成運動畫面圖像的多個塊的畫面中的第一個塊和相鄰的第二個塊之間的邊界線兩側的區域中的編碼失真的編碼失真消除方法具有當消除編碼失真時對參數進行解碼來設置閾值的解碼步驟;將第一個塊的像素中的像素值和第二個塊的像素中的像素值的差值與基于解碼參數的指定閾值進行比較的比較步驟;以及根據比較步驟的結果切換消除編碼失真的方法的消除步驟。
這樣通過向每一個已編碼信號疊加用于編碼失真消除的閾值參數,然后在編碼失真消除之前檢測適合于每個已編碼信號的閾值并利用它消除編碼失真,可以有效地從包含編碼失真的圖像信號中消除編碼失真。
最好,運動畫面包含由多個塊組成的片(slice);并且參數存儲在通過對運動畫面的圖像數據編碼獲得的碼流中的片頭信息中。
本發明的再一個方面是通過參考多個參考圖像中的至少一個的畫面編碼的運動畫面編碼裝置,其中利用多種方法消除編碼失真獲得的多個編碼圖像是參考圖像。
利用由至少兩種方法去塊的多個圖像作為參考圖像并且隨后選擇一個合適的用于參考,可將通過從包含編碼失真的圖像信號中有效地消除編碼失真獲得的畫面用作參考圖像,并且可以增加運動圖像編碼的壓縮率。
最好,多種方法中的第一個方法是不消除編碼圖像中的編碼失真的方法,第二個方法是消除編碼圖像中的編碼失真的方法。
本發明的另一個方面是通過參考多個參考圖像中的至少一個進行解碼的運動圖像解碼裝置,其中通過利用多種方法消除編碼失真獲得的多個解碼圖像是參考圖像。
利用由至少兩種方法去塊的多個圖像作為參考圖像并且隨后選擇一個合適的用于參考,可將通過從包含編碼失真的圖像信號中有效地消除編碼失真后獲得的畫面用作參考圖像,并且可以正確地解碼編碼信號。
最好,這些方法中的第一個方法是不消除解碼畫面中的編碼失真的方法,第二個方法是消除解碼畫面中的編碼失真的方法。
本發明的另一個方面是用于消除由奇數行像素和偶數行像素組成的隔行畫面中的編碼失真的編碼失真消除方法。該方法具有確定畫面是包含具有指定數量的奇數行像素和指定數量的偶數行像素的幀結構塊的畫面,還是包含一個場結構由指定數量的奇數行像素組成的塊的畫面,或者是包含另一個場結構由指定數量的偶數行像素組成的塊的畫面的評估步驟;當要進行編碼失真消除的目的塊是所有塊都是幀結構塊的畫面中的塊時用來消除相鄰幀結構塊之間的編碼失真,以及當要進行編碼失真消除的目的塊是所有塊都是場結構塊的畫面中的塊時用來消除相鄰場結構塊之間的編碼失真的消除步驟。
這樣根據塊是幀結構塊的畫面還是場結構塊的畫面可以改變要進行編碼失真消除的塊的處理。
最好是,如果要進行編碼失真消除的目的塊是包含幀結構塊和場結構塊的畫面的塊,那么編碼失真消除方法也具有將場結構塊轉換為幀結構塊的轉換步驟;將場結構塊的像素中的像素值和轉換塊的像素中的像素值的差值與指定的閾值進行比較的比較步驟;以及根據比較步驟的結果消除編碼失真的消除步驟。
在另一個用來消除位于具有形成運動畫面圖像的多個塊的畫面中的第一個塊和相鄰的第二個塊之間的邊界線兩側的區域中的編碼失真的編碼失真消除方法中,第一個塊是在由奇數行像素和偶數行像素組成的隔行畫面中具有指定數量的奇數行像素和指定數量的偶數行像素的幀結構塊,第二個塊是具有在由奇數行像素和偶數行像素組成的隔行畫面中由指定數量的奇數行像素組成一場,和在由奇數行像素和偶數行像素組成的隔行畫面中由指定數量的偶數行像素組成的另一場的場結構塊。編碼失真消除方法包括將幀結構的第一個塊轉換成場結構塊的轉換步驟;將場結構的第二個塊的像素中的像素值與轉換塊的像素中的像素值的差值和指定閾值比較的比較步驟;以及根據比較步驟的結果消除編碼失真的消除步驟。
當場結構塊和幀結構塊相鄰時,可以自適應地處理要進行編碼失真消除的目的塊。
從幀結構的第一塊向場結構的轉換最好由宏塊單元和兩個垂直相鄰宏塊的單元來切換。
另外,場結構的第二個塊最好不轉換為幀結構塊。
在用來消除位于具有形成運動畫面圖像的多個塊的畫面中第一個塊和相鄰的第二個塊之間的邊界線兩側的區域中的編碼失真的另一種編碼失真消除方法中,第一個塊是在由奇數行像素和偶數行像素組成的隔行畫面中具有指定數量的奇數行像素和指定數量的偶數行像素的幀結構塊,第二個塊是具有在由奇數行像素和偶數行像素組成的隔行畫面中具有由指定數量的奇數行像素組成的一個場,和在由奇數行像素和偶數行像素組成的隔行畫面由指定數量的偶數行像素組成的另一場的場結構塊。編碼失真消除方法具有確定要進行編碼失真消除的目的塊是幀結構塊還是場結構塊的評估步驟;當目的塊為場結構的第二個塊時將幀結構的第一個塊轉換為場結構塊,和當目的塊為幀結構的第一個塊時將場結構的第二個塊轉換為幀結構塊的轉換步驟;比較目的塊的像素中的像素值和指定閾值的比較步驟;以及根據比較步驟的結果消除編碼失真的消除步驟。
當場結構塊和幀結構塊相鄰時,可以自適應地處理要進行編碼失真消除的目的塊。
最好,從幀結構塊到場結構塊的轉換步驟中的轉換在從幀結構塊中的奇數行像素轉換后產生一個場,在從幀結構塊中的偶數行像素轉換后產生另一個場;比較步驟中差值和閾值的比較是在轉換后將第二個塊的一個場中的像素的像素值和第一個塊的一個場中的像素的像素值比較,或在轉換后將第二個塊中另一個場的像素中的像素值和第一個塊中另一個場的像素中的像素值比較。
在用來消除位于具有形成運動畫面圖像的多個塊的畫面中的第一個塊和相鄰的第二個塊之間的邊界線兩側的區域中的編碼失真的另一個編碼失真消除方法中,第一個塊是在由奇數行像素和偶數行像素組成的隔行畫面中具有指定數量的奇數行像素和指定數量的偶數行像素的幀結構塊,而第二個塊是在由奇數行像素和偶數行像素組成的隔行畫面中具有指定數量的奇數行像素組成的一場,和在由奇數行像素和偶數行像素組成的隔行畫面中具有指定數量的偶數行像素組成的另一場的結構塊。該編碼失真消除方法具有用來將場結構的第二個塊轉換為幀結構塊的轉換步驟;將幀結構的第一個塊的像素中的像素值與轉換塊的像素中的像素值的差值和指定閾值比較的比較步驟;以及根據比較步驟的結果消除編碼失真的消除步驟。
當場結構塊和幀結構塊相鄰時,可以自適應地處理要進行編碼失真消除的目的塊。
另外,從場結構的第二塊向場結構的轉換最好由宏塊單元和兩個垂直相鄰宏塊的單元來切換。
另外,場結構的第二個塊最好不轉換為幀結構塊。
另外,從場結構塊向幀結構塊的轉換步驟中,轉換從一場的塊中的像素和另一個場的塊中的像素產生一個轉換的幀,將轉換后的第一個塊中奇數行像素中的像素值和第二個塊中奇數行像素中的像素值比較,或者將轉換后的第一個塊中偶數行像素中的像素值和第二個塊偶數行像素中的像素值比較。
另外,最好是比較步驟按在與邊界線對稱的位置沿與邊界線同方向在行中對齊的多個像素的組比較該差值和閾值。
這樣能以多個像素為組來消除編碼失真。
本發明的另一個方面是畫面編碼裝置,該裝置具有用于對編碼的差分畫面解碼并且輸出差分畫面的解碼單元;用來從參考圖像輸出運動補償畫面的運動補償單元;用來將差分畫面和運動補償畫面相加,和輸出合并畫面的加法器;用來消除合并畫面中的編碼失真,和輸出重構畫面的編碼失真消除單元;和用來存儲重構畫面作為參考圖像的存儲器。編碼失真消除單元利用本發明上述任何一種方法來消除編碼失真。
本發明的另一個方面是利用本發明上述任何一種方法用來從畫面中消除編碼失真的程序。
本發明的另一個方面是使用用于對編碼的差分畫面解碼和輸出差分畫面的解碼單元;用來從參考圖像中輸出運動補償畫面的運動補償單元;用來將差分畫面和運動補償畫面相加,并輸出合并畫面的加法器;用來消除合并畫面中的編碼失真,和輸出重構畫面的編碼失真消除單元;以及用來存儲重構畫面作為參考圖像的存儲器來進行畫面編碼的程序。編碼失真消除單元利用本發明上述任何一種方法來消除編碼失真。
通過結合附圖參考下面的說明書和權利要求,本發明的目的和實現以及對其更全面的理解將更加明顯。
圖1是利用根據本發明解碼方法的視頻解碼裝置的方框圖;圖2是利用根據本發明第一個實施例的編碼失真消除法的編碼失真消除單元的方框圖;圖3(a)、3(b)、3(c)、3(d)、3(e)、3(f)和3(g)顯示了運動補償塊大小的實例;圖4是根據本發明第二個實施例的編碼失真消除方法的流程圖;圖5顯示了本發明第二個實施例中的量化參數QP和編碼失真消除參數之間的相關性;圖6是根據本發明第二個實施例用來確定在編碼失真消除方法中要濾波的像素數量的流程圖;圖7是根據本發明第二個實施例用來確定在編碼失真消除方法中的濾波系數的流程圖;圖8(a)和8(b)是利用根據本發明第二個實施例的編碼失真消除方法的編碼失真消除單元的方框圖,以及顯示像素調整的示意圖;圖9是利用根據本發明第三個實施例的編碼方法的編碼裝置方框圖;圖10是利用根據本發明第三個實施例的解碼方法的解碼裝置方框圖;圖11是利用根據本發明第四個實施例的編碼失真消除方法的編碼失真消除單元的方框圖;圖12(a)、12(b)、12(c)和12(d)顯示了根據本發明第四個實施例的編碼失真消除方法中編碼信號Str的結構;圖13是顯示利用環路濾波器的視頻編碼過程的方框圖;圖14是顯示視頻編碼環路中自動閾值選擇的位置的方框圖;圖15是顯示收集用來尋找最佳閾值的數據的方法的流程圖;圖16是顯示收集用來尋找最佳閾值的數據的另一種方法的流程圖;圖17是顯示用來選擇最佳閾值的方法的流程圖;圖18顯示了具有可以跳過去塊的公共邊界的相鄰塊;圖19顯示了包含多個像素的組;圖20(a)描述了幀結構,圖20(b)描述了場結構;圖21(a)描述了幀結構和場結構混合在一個畫面中的結構,圖21(b)和21(c)描述了在場結構和幀結構邊界的編碼失真消除過程的步驟;圖22是當幀和場結構混合時使用的編碼失真消除過程的流程圖;圖23是圖22中存儲器64和67的步驟組合后的流程圖;圖24是圖23中存儲器65和68的步驟組合后的流程圖;圖25是當幀結構塊和場結構塊在塊邊界相對側時使用的過程的流程圖;圖26(a)、26(b)和26(c)描述了根據本發明第六個實施例用來存儲實現本發明第一和第二實施例的可變長度編碼和可變長度解碼方法的計算機可執行程序的記錄介質;圖27是顯示內容提供系統整體配置的方框圖;圖28顯示了利用視頻編碼方法和視頻解碼方法的典型蜂窩電話的實例;圖29是蜂窩電話的方框圖;圖30顯示了數字廣播系統的實例;圖31(a)、31(b)和31(c)顯示了描述編碼失真消除方法的概念的像素信號電平示意圖;圖32是利用現有技術的解碼方法的視頻解碼裝置的方框圖;
圖33是利用現有技術的解碼方法的視頻解碼裝置的方框圖;以及圖34是利用根據現有技術的編碼失真消除方法的編碼失真消除單元的方框圖。
具體實施例方式
下面參考附圖描述本發明的優選實施例。
實施例1在利用視頻解碼方法的視頻解碼裝置的方框圖中,可變長度解碼器52對編碼信號Str進行可變長度地解碼并輸出頻率編碼分量DCoef。去Z字形掃描單元54在二維塊中重新排列頻率編碼分量DCoef的頻率分量,并且輸出頻率分量Fcoef、塊單元頻率分量。反余弦變換單元56對頻率分量實施去量化和反DCT操作,并輸出差分圖像DifCoef。
運動補償器60從存儲器64中累加的參考圖像Ref輸出由外部輸入運動矢量MV指示的位置上的像素作為運動補償圖像MCpel,和輸出表示運動補償塊的大小的運動補償塊大小MCsize。加法器58將差分圖像DifCoef和運動補償圖像Mcpel相加以輸出重構圖像Coef。
去塊濾波器62接收重構圖像Coef,運動補償塊大小MCsize和差分圖像DifCoef,實施編碼失真消除,然后輸出解碼后的圖像信號Vout。重構圖像Coef存儲在存儲器64中,并且當作下一個圖像解碼的參考圖像Ref。
圖2是利用根據本發明的編碼失真消除方法的去塊濾波器62(也稱為編碼失真消除單元)的方框圖。該去塊濾波器62是由本發明的發明人參考ITU-T建議書H.26L TML8中描述的去塊濾波器的內容創造的。
已濾波像素計數控制器4確定每個重構圖像Coef中包含編碼失真的像素位置,然后輸出已濾波的像素計數FtrPel。已濾波的像素計數FtrPel表示需要濾波的像素位置。
濾波系數控制器6利用已濾波像素計數FtrPel和重構圖像Coef來確定適合從指定像素中消除編碼失真的濾波系數(包括濾波抽頭的數量),然后輸出濾波系數FtrTap。
濾波處理器8利用由濾波系數FtrTap指示的濾波系數,應用濾波處理從重構圖像Coef中消除編碼失真,并輸出解碼后的圖像信號Vout。
差分圖像DifCoef和運動補償塊大小MCsize輸入到運動補償塊邊界檢測單元2,運動補償塊邊界檢測單元2確定該處理塊的差分圖像DifCoef是否小于或等于給定值,例如,是否為0,檢測運動補償塊的邊界,然后輸出運動補償塊邊界標志IsEdge。
圖3顯示了ITU-T建議書H.26L TML8中使用的運動補償塊大小的實例。如這些例子中所示,最大的運動補償塊大小為16×16個像素,與被稱為宏塊的大小相同。圖3(a)到(g)所示的運動補償塊大小為4×4、4×8、8×4、8×8、8×16、16×8和16×16個像素。在ITU-T建議書H.26LTML8中,從這七種運動補償塊大小中選出適合宏塊單元大小的,然后用于編碼和解碼。應該注意的是,編碼和解碼可以應用于在垂直方向相鄰的兩個宏塊的適當單元,這些宏塊的單元稱為“宏塊對”。
在ITU-T建議書H.26L TML8中用于頻率變換和編碼的單元為4×4像素。該4×4像素的單元被稱為“編碼單元”。如圖3(a)所示,16個塊A到P中的每個塊都是4×4像素的塊。4×4像素編碼單元只在圖3(a)所示情況下于運動補償塊的大小匹配。因為作為編碼失真特別直觀地分裂的塊失真以4×4像素的最小編碼單元大小出現,所以常規編碼失真消除方法總是處理4×4像素單元。
如果在運動補償編碼后畫面之間的相關性特別強,那么畫面之間編碼運動補償差錯為0。在這種情況下,因為4×4像素單元中已編碼和解碼的差分圖像DifCoef也是0,所以除了運動補償塊邊界外的地方不會發生在編碼和解碼過程中從編碼失真導致的像素值不連續。因此,如果選擇如圖3(b)所示的運動補償塊,那么在圖3(a)所示的塊AC、BD、EG、FH、IK、JL、MO和NP之間由虛線表示的4×4像素單元邊界不需要編碼失真消除處理。由圖3(a)所示的塊AB、CD、EF、GH、IJ、KL、MN和OP之間的虛線表示的4×4像素單元邊界同樣不需要去塊。如果用于4×4像素單元中編碼/解碼的差分圖像DifCoef也是0,那么只在運動補償塊的邊界應用去塊,而在運動補償塊內的4×4像素單元的邊界處不應用去塊。與對所有塊邊界進行去塊相比,這樣能夠減少編碼失真消除處理中的操作次數。
如果過程塊的差分圖像DifCoef是0并且不是運動補償塊的邊界,那么運動補償塊邊界檢測單元2將選擇器10a和10b都設置為關閉(由實線表示),并且選擇器10b輸出重構圖像Coef作為解碼的圖像信號Vout。通過設置運動補償塊邊界標志IsEdge來切換選擇器10a和10b。通過關閉選擇器10a和10b來省略已濾波像素計數控制器4、濾波系數控制器6和濾波處理器8的處理。除了上述情況外,選擇器10a和10b工作(由虛線表示),來自濾波處理器8的輸出被從選擇器10b輸出,作為解碼圖像信號Vout。該選擇器的狀態也通過施加運動補償塊邊界標志IsEdge來設置。
本發明通過施加恰當地設置的運動補償塊邊界標志IsEdge引入了省略已濾波像素計數控制器4、濾波系數控制器6和濾波處理器8的操作的能力,通過跳過這些單元可以更快地加速進行處理并且減小這些處理的功耗。
應該注意的是,按照不施加任何編碼失真消除處理簡單地描述了本實施例,可使用簡單的編碼失真消除處理替代跳過過程,并且可以在復雜的編碼失真消除處理和4×4像素單元中的編碼失真消除處理之間進行切換。
實施例2下面參考圖4所示的根據本發明的編碼失真消除方法的流程圖描述在該實施例中可以容易地實現編碼失真消除的特定過程。
首先在步驟S18確定目標塊是否為編碼失真消除塊。如果是,控制進行到步驟S19。如果不是,控制進行到步驟S24。
在步驟S19中選擇合適的編碼失真消除濾波器,在步驟S20中,利用選擇的濾波器實施編碼失真消除過程,然后在步驟S21中將目的像素改變為該塊中下一個未處理的像素。如果該塊中沒有未處理的像素(步驟S22返回否),那么控制進行到步驟S24,如果有未處理的像素(步驟S22返回是),那么控制返回到步驟S19重復該過程。
步驟S24檢測畫面中是否有另一個未處理的塊。如果有,控制進行到步驟S23。如果所有塊都已經被處理(步驟S24返回否),那么該畫面的編碼失真消除過程結束。
如果還有未處理的塊,那么在步驟S23中將目的塊變為下一個未處理的塊,控制環路返回到步驟S18并且重復該過程。
圖6顯示了在本發明的編碼失真消除方法中如何確定要濾波的像素數量(下面稱為“已濾波像素計數”)的流程圖。該流程圖描述了圖2所示已濾波像素計數控制器4可以操作的實例。圖6顯示了運動補償塊為圖8(a)所示時的情況。如圖8(b)所示,要進行編碼失真消除的目的像素值為如圖8(b)所示的p3、p2、p1、p0、q0、q1、q2、q3,經過編碼失真消除后的像素值為P3、P2、P1、P0、Q0、Q1、Q2、Q3。這些像素值按照與像素位置相同的順序依次分配,p0到p3和P0到P3表示同一個塊中對應像素,而q0到q3和Q0到Q3表示同一個塊中對應像素。
隨著量化參數QP增加,量化步長變大(更粗糙)并且編碼失真的大小也隨著增加。因此要根據量化參數QP的大小有效地改變濾波器。圖5的表示量化參數QP和編碼失真消除參數之間相關性的表。下面的表1顯示了用來確定表示已濾波像素計數的參數n的去塊過程的參數Π、Ω和n之間相關性。應該注意的是,如果像素差分較大則不應該施加濾波器,因為它代表邊緣,并且最好設置Π以便不對像素差分小于Π的像素施加濾波器。另外,如果像素差分較小,隨著像素差分減小,像素不在邊緣的可能性增加,因此,最好設置Ω,以便根據像素差分是否極低(小于Ω)或有點小(小于2×Ω)來施加較強的濾波器(即,n較高)。
表1條件A條件Bndif1a>Πdif2a<Ω0dif1a>ΠΩ≤dif2a≤2×Ω 0dif1a>Πdif2a≥2×Ω 0dif1a≤Πdif2a<Ω2dif1a≤ΠΩ≤dif2a≤2×Ω 1dif1a≤Πdif2a≥2×Ω 0
其中dif1=p0-q0dif2=p1-q1dif1a=|dif1|dif2a=|dif2|換句話說,表1總結了本發明的編碼失真消除方法中確定已濾波像素計數的流程。
步驟S27計算像素差分DifPel,它是要在編碼失真消除過程中重復計算的參數。注意,像素差分DifPel是指步驟S27中計算的dif1a和dif2a。
然后,在步驟S28比較dif1a和Π。如果dif1a大于Π,那么在驟S29中設置n=0并且不運行編碼失真消除處理就結束該過程。如果dif1a小于或等于Π,那么控制進行到步驟S30。
在步驟S30比較dif2a和Ω。如果dif2a小于Ω,那么在步驟S31中設置n=2(就是說,從每個相鄰塊的邊界向第二個像素實施編碼失真消除),然后進程結束。如果dif2a大于或等于Ω,那么控制進行到步驟S32。
在步驟S32,比較dif2a和2×Ω。如果dif2a小于2×Ω,那么在步驟S33中設置n=1(就是說,從每個相鄰塊的邊界向第一個像素實施編碼失真消除),然后進程結束。dif2是靠近邊界的像素值中的差分的絕對值,并且因為隨著該差分的減小,接近邊界的高頻分量的數量也減小,所以隨著dif2變小,通過增加為去塊處理的像素的數量可從邊界區域有效地消除編碼失真。
圖7是本發明的編碼失真消除方法中用來確定濾波系數的過程的流程圖,并且是圖2中濾波系數控制器的操作實例。
利用步驟S37中的n、dif1、dif2和φ比較三個條件。如果三個條件都為真,那么在步驟S39設置三個抽頭濾波處理。即,φ是用來確定濾波抽頭數量的閾值,當高頻分量為低(n=2)并且在邊界的像素值幾乎沒變化時(|dif2a-dif1a|<φ)采用三個抽頭的濾波器。三個抽頭的濾波器通常比一個抽頭的濾波器能提供更強的高頻分量抑制。因為利用n值可以改變濾波過程,所以可以使用參數n代替施加濾波器的像素數量來改變濾波器類型。這樣獲得的參數n還可以用來改變已濾波的像素數量和所采用的濾波器類型。
如果在步驟S37中三個條件不為真,則在S38檢測n的值。如果n≥1,步驟S40設置一個抽頭的濾波過程。如果n=0,那么步驟S42關閉濾波器。
應該注意的是,可以針對每個塊來改變量化參數QP。然而,編碼失真消除過程在具有不同量化參數QP的塊之間的邊界會變得更復雜。當量化參數QP在邊界塊中改變時,本發明利用*相鄰塊的平均量化參數QP(分數可以四舍五入),*相鄰塊的最高量化參數QP,*相鄰塊的最低量化參數QP,或*左鄰或上鄰塊的量化參數QP作為用于對邊界兩邊的塊濾波的量化參數QP來防止其變復雜。應該注意的是,利用這四個量化參數QP之間的差別很小,可以預先選定一個使用。
通過上述方法可以很容易地消除編碼失真。
圖8(a)是圖1所示去塊濾波器62的另一個實施例的方框圖,和圖2中虛線包圍的部分的一個分開實施例。應該注意的是,圖8和圖34所示利用常規編碼失真消除方法的編碼失真消除單元的方框圖中的相同部分用相同的參考標號表示,并且在這里省略了對它們的進一步描述。
像素差分計算器20從重構圖像Coef計算在塊邊界的像素差分,并且輸出像素差分DifPel。該像素差分DifPel包含等同于dif1a和dif2a的信號。通過比較編碼單元塊之間邊界的左右對稱或上下對稱位置的像素,并且利用其之間的差值d1、d2、d3、d4(色差和亮度差)來獲得像素差分DifPel。如果這些差值的平均值(例如,(d1+d2+d3+d4)/4)小于或等于給定值,那么圖像邊界線不可能出現在用來確定d4的寬度范圍中,因此要實施去塊濾波。另一方面,如果平均值大于或等于給定值,則存在圖像邊界并且不實施去塊濾波。應該注意的是,這種比較可以使用d1、d2、d3和d4中的任何一個、任何兩個,或任何三個。與其說利用平均值,不如說是用最大差分來替代與給定值的比較。
用來確定已濾波像素計數的流程圖可以用作已濾波像素計數控制器4操作的實例。圖7所示的用來確定濾波系數的流程圖中顯示了該實施例中濾波系數控制器6的操作實例。通過參考如圖8(b)所示的像素差分DifPel,可以減小已濾波像素計數控制器4和濾波系數控制器6的像素差分計算量。已濾波像素計數控制器4和濾波系數控制器6可以因此不參考重構圖像Coef而設置已濾波像素計數和濾波系數。
很明顯,通過重復利用作為像素差分DifPel計算的值可以減小計算量。
實施例3本發明的這個實施例描述了實施本發明另一個實施例中描述的編碼失真消除方法的編碼裝置和解碼裝置。
圖9是編碼裝置的方框圖。
運動檢測單元30將分別從第一存儲器38和第二存儲器40輸出的參考圖像Ref1和參考圖像Ref2與圖像信號Vin進行比較,并且檢測運動矢量MV,即,與參考圖像有關的圖像信號Vin中的運動量。應該注意的是,通過參考參考圖像Ref1或參考圖像Ref2表示預測差錯是否會少的信息也包含在運動矢量MV中并且被報告給運動補償單元32。運動補償單元32從參考圖像Ref1或參考圖像Ref2中提取由運動矢量MV指示的位置上的圖像,然后將它作為運動補償后的圖像MCpel輸出。
減法器42獲得圖像信號Vin和運動補償圖像MCpel的差分,并且輸出到余弦變換單元(DCT)46。余弦變換單元46計算DCT并且量化該輸入的差分,然后輸出頻率分量FCoef。Z字形掃描儀48輸出重排頻率分量Fcoef的順序的頻率碼分量DCoef,可變長度編碼單元50對頻率碼分量進行可變長度編碼以輸出編碼信號Str。
DCT單元(余弦變換單元)46的輸出也輸入到反DCT單元(反余弦變換單元)44。合成器34合并頻率分量FCoef和從運動補償單元32輸出的運動補償圖像MCpel,并輸出合并后的圖像。合并后的圖像Coef照原樣存儲到第一存儲器38,并且還由去塊濾波器36處理,并將已被消除編碼失真的解碼圖像信號Vout存儲到第二存儲器40。
圖10是解碼裝置的流程圖。該解碼裝置對由圖9中方框圖所示的編碼裝置編碼的編碼信號Str正確地進行解碼。圖10中的操作與圖32或圖33中對應部分相同的部分由相同的參考標號識別,在此省略對它們的描述。反DCT單元(反余弦變換單元)56去量化頻率分量并且計算反DCT以輸出差分圖像DifCoef。加法器58將差分圖像DifCoef和運動補償圖像MCpel相加以獲得重構圖像Coef。重構圖像Coef存儲到第一存儲器64,由去塊濾波器62從重構圖像Coef消除編碼失真后獲得的解碼圖像信號Vout存儲到第二存儲器66。
這種操作的結果是沒有被消除編碼失真的圖像存儲到第一存儲器38和第一存儲器64,已被消除編碼失真的圖像存儲到第二存儲器40和第二存儲器66。編碼失真消除過程不總是只消除編碼失真,部分真實圖像信號也可能會丟失。因此,配置圖9中所示的編碼裝置,以使運動檢測單元30總是可以從第一存儲器38和第二存儲器40二者中選擇最好的輸出。
如果利用本實施例的配置通過消除編碼失真而丟失了一部分原始圖像信號,那么可以通過參考第一存儲器38來選擇合適的參考圖像。同樣,可以由圖10所示的解碼裝置選擇適當的參考圖像。
應該注意的是,本發明中該實施例使用DCT作為正交變換,也可以使用Hadamard變換或小波變換。
實施例4圖11是根據本發明優選實施例,并且對應例如圖1所示的去塊濾波器62的編碼失真消除單元的方框圖。該編碼失真消除單元通過確定用來設置濾波器的閾值來區分。應該注意的是,執行與圖34中所示編碼失真消除單元相同操作的部分具有相同的參考標號并且在這里省略了對它們的描述。
濾波器設置參數解碼器22對濾波器設置參數信號FtrStr解碼,然后輸出濾波器參數FtrPrm。該濾波器設置參數信號FtrStr不是閾值,而是用來設置閾值的參數。濾波器參數FtrPrm等同于圖5中的Π、Ω和φ。通過解碼和從濾波器設置參數信號FtrStr獲得用來優化每個畫面的這些參數Π、Ω和φ的數據,可以對圖像進行合適的編碼失真消除。
圖12顯示了本發明的編碼失真消除方法中已編碼信號Str的結構。圖12(a)是一個畫面的編碼信號,并且包含保存一個畫面的數據的畫面數據PicData,和一個畫面中所有數據公共的畫面頭PicHdr。該畫面頭PicHdr包含濾波器設置參數信號FtrStr。
圖12(b)顯示了畫面數據PicData的結構。該畫面數據PicData包含片信號SliceStr,包含一組多個塊單元的一片的編碼信號。
圖12(c)顯示了片信號SliceStr的結構,它包含保存一片的數據的片數據SliceData,和一片中所有數據公用的片頭SliceHdr。通過向片頭SliceHdr寫入濾波器設置參數信號FtrStr,可以正確地對片數據SliceData單元中接收的編碼信號解碼。
如果在畫面數據PicData中包含多個片信號SliceStr,那么濾波器設置參數信號FtrStr只能寫入某些片頭SliceHdr,而不能將濾波器設置參數信號FtrStr寫入所有片頭SliceHdr。如果濾波器設置參數信號FtrStr對每個片公用的,并且濾波器設置參數信號FtrStr不寫入如圖12(c)中所示的片頭SliceHdr,那么通過從另一個片頭SliceHdr替換濾波器設置參數信號FtrStr可以抑制由于重復濾波器設置參數信號FtrStr所造成的比特數的增加。
如果編碼信號Str發送到象分組這樣的小數據單元而不是單個連續的比特流,那么頭和非頭部分可以分開發送。在這種情況下,頭和數據部分如圖12所示不在一個比特流中。然而,即使頭和數據部分的發送順序不是連續的,但是由于特定數據包的頭可以很容易地在另一個分組中發送,因此即使該發送不是一個單獨的比特流,其概念與圖12中所示的比特流相同。
圖13是編碼裝置的方框圖。應注意,圖13中與圖9中相同的部分用相同的參考標號表示,并且在這里省略了對它的進一步描述。
存儲器217存儲圖像信號Vin,即為編碼而輸入的圖像信號。圖像質量比較單元216比較從存儲器217讀取的編碼目標圖像信號和解碼的圖像信號Vout。從由圖像質量比較單元216比較后獲得的差錯大小與用于解碼圖像的去塊濾波閾值一起存儲在比較存儲器218中。選擇單元219將對應于存儲在比較存儲器218中最小差錯的去塊濾波的閾值選擇作為優化閾值。所選擇的優化閾值被作為相對附加比特流復用到對應畫面的比特流中。根據選擇單元219輸出的優化閾值,閾值控制單元215產生用于下一個畫面的去塊濾波的候選閾值,通知去塊濾波器36并且改變編碼失真消除過程的閾值,然后將當前正在使用的閾值發送到比較存儲器218。
圖14是圖13中的方框圖所示的指定編碼裝置的概念表示。在圖14中,優化閾值選擇單元226執行除了Z字形掃描儀48、可變長度編碼單元50和閾值附加單元220以外的圖13中的件的分操作,相當于存儲器27、圖像質量比較單元216、比較存儲器218、選擇單元219和閾值控制單元215的操作。視頻解碼器227對應圖13中的存儲器217、圖像質量比較單元216、比較存儲器218、選擇單元219和閾值控制單元215以外的部件的操作。閾值228等同于上述優化閾值。
優化閾值選擇單元226選擇優化閾值。該優化閾值等同于為圖5中的每個量化參數QP確定的Π、Ω和φ值的設置。所選擇的優化閾值存儲在閾值存儲器228,并施加到視頻編碼器227作為濾波器設置參數信號FtrStr。圖11中所示的濾波器設置參數解碼器22,例如,在解碼器中,處理編碼濾波器設置參數信號FtrStr。
應該注意的是,優化閾值可以存儲在圖13所示的閾值控制單元215中的存儲器中,并且閾值數據由閾值控制單元215發送到閾值附加單元220。
下面描述消除編碼失真時確定濾波器設置參數信號FtrStr的操作。圖15、圖16和圖17顯示了圖13和圖14描述的編碼裝置的操作流程圖。
圖15是測量圖像質量的操作的流程圖。
首先設置目的幀target_frame,并輸出第一個畫面(步驟229)。目的幀target_frame是用來獲得閾值的畫面。
接著,閾值控制單元215設置閾值范圍(步驟230),然后從閾值控制單元215輸出該范圍一側的值作為初始閾值(步驟231)。
利用該初始閾值,去塊濾波器36消除編碼失真,開始對目的幀target_frame的畫面編碼(步驟232),然后,圖像質量比較單元216測量該首先被編碼的畫面的畫面質量和圖像信號Vin(步驟233)。
該比較結果存儲在比較存儲器218(步驟234),然后遞增當前幀編號Current_frame(步驟235)。就是說,正在被處理的畫面從第一個畫面變為下一個畫面,然后,下一個畫面輸出到,例如,圖14所示的優化閾值選擇單元226和視頻編碼器227,或圖13所示的存儲器217、運動檢測單元30和減法器42。
然后,步驟236確定當前幀編號current_frame是否已經到達目的幀target_frame。如果還沒有,重復步驟223到235。圖像質量比較單元216測量輸入畫面的圖像質量,將結果存儲到比較存儲器218。如果當前幀編號current_frame等于目的編號target_frame,控制進行到步驟237,并且當前幀編號current_frame重新設置為第一個畫面。
然后,閾值控制單元215遞增該閾值(步驟238A),即,將該閾值設置為下一個值。“下一個值”是從第一個值按指定遞增增加后的值。
然后,確定所有閾值是否到了已測試的設置范圍的另一端的閾值(步驟238B)。如果已經測試了所有閾值,則結束確定優化閾值的過程。如果還沒有測試所有的閾值,控制環路到步驟232并且對目的幀target_frame的畫面進行編碼。
這樣可以利用一個閾值通過測量所有目的幀target_frame的圖像質量來測量圖像質量,然后將閾值遞增指定量,再次測量所有目的幀target_frame的圖像質量。
下面參見圖16的流程圖,描述了利用設置閾值范圍中的所有閾值測量一個畫面中的圖像質量,然后進行到下一個畫面并且利用設置閾值范圍中的所有閾值測量圖像質量的方法。
首先設置目的幀target_frame并且輸出第一個畫面(步驟239)。然后將當前幀編號current_frame初始化為0(步驟240)。
然后,閾值控制單元215設置閾值范圍(步驟241),并將閾值設置到去塊濾波器36(步驟242)。
此后,利用初始化閾值對第一個畫面編碼(編碼失真消除過程)(步驟243),由圖像質量比較單元216測量編碼畫面的圖像質量(步驟244)。
圖像質量比較單元216輸出的結果存儲到比較存儲器218(步驟245),閾值控制單元215將閾值遞增到下一個值(步驟246A)。
然后確定是否已經測試了所有閾值(步驟246B)。如果還沒有測試所有的閾值,控制環路到步驟242并且利用不同的閾值測量同一個畫面的圖像質量。如果已經測試了所有閾值,控制進行到步驟247。
然后在步驟247遞增當前幀編號current_frame。即,正在處理的畫面從第一畫面(第一幀)變為第二畫面(第二幀),并且下一個畫面輸出到,例如,圖14中所示的優化閾值選擇單元226和視頻編碼器227或圖13中所示的存儲器217、運動檢測單元30和減法器42。
然后,步驟248確定當前幀編號current_frame是否已經達到目的幀target_frame。如果還沒有達到,重復步驟241到247。如果current_frame等于target_frame,結束圖像質量測量過程。
圖17是用來根據圖15或圖16所描述的閾值選擇優化閾值的方法的流程圖和以該閾值測量圖像質量的結果。
選擇單元219得到圖像質量測量結果和圖17中步驟249中相應的閾值數據。
然后,按指定順序排列測量結果(步驟250)。
然后,根據指定條件選擇具有最佳圖像質量的畫面(步驟251),選擇這個圖像的閾值作為最佳閾值。這些指定條件可以是下列中的任何一個或組合低S/N比,重構圖像(在該閾值被去塊的畫面)和原始畫面(輸入圖像信號Vin)之間的最小差值,和該差值的最低均方。
然后,將所選擇的優化閾值作為濾波設置參數信號FtrStr輸出到,例如,圖14中的視頻編碼器227(步驟252)。
利用參考圖17描述的方法可以選擇最佳閾值。
如上所述,該優選實施例測量指定范圍內所有閾值的圖像質量,收集圖像質量測量結果,并且從結果中選擇優化閾值。還可以在閾值范圍內按所有閾值的順序測量圖像質量,當檢測出具有最佳圖像質量的點后結束圖像質量的測量,選擇產生該圖像質量結果的閾值作為優化閾值。該方法可以減少執行圖像質量測量的次數。
給定塊的編碼失真消除過程將該塊中的像素值和相鄰塊中的像素值比較。在這種情況下,相鄰塊是已經結束編碼失真消除過程和已經結束像素值糾正的塊。
當從圖18中的塊G消除編碼失真后,例如,可以通過與四個相鄰塊E、D、H和M中任何一個比較來消除編碼失真。但是,通過利用已經結束編碼失真消除過程的塊,可以更精確地消除編碼失真。
最好按掃描順序以線性序列消除編碼失真。就是說,按水平掃描線序列中沿畫面的水平掃描線的掃描方向消除編碼失真。
換句話說,參見圖18,首先對第一掃描行的塊A、B、E、F執行編碼失真消除過程,然后處理下一行的塊C、D、G、H,依次類推。每個塊有四個邊界,但是最好利用與上邊界和左邊界接觸的相鄰塊來實施編碼失真消除過程。
這種情況下,因為相鄰塊與它的上邊界或左邊界接觸,所以不對塊A實施編碼失真消除處理。
同樣,沒有與塊B的上邊界接觸的相鄰塊,因此利用與塊B的左邊界接觸的塊A來實施去塊。
塊E和D分別與塊G的上邊界和左邊界相鄰,因此當不使用塊H和M時,利用塊E和D從塊G消除編碼失真。
通過從新塊和編碼失真已經消除的相鄰塊之間消除編碼失真,并且不參考還沒有進行編碼失真處理的相鄰塊,可以更精確地消除編碼失真。
實施例5本實施例首先描述將像素分割為分別有多個像素的組,如一列中包含4個像素的組,然后將組配對,對組對實施編碼失真消除。本實施例中使用的編碼失真消除過程是指確定是否對塊邊界兩側的區域實施去塊,以及去塊操作本身這二種過程或其中的一個過程。塊可以是16個像素的4×4塊,即,最小編碼單元,或參考圖3的上述施加運動補償的任何塊。
如圖19所示,一個組中的4個像素是利用塊邊界按行排列的4個像素的組。圖19中示出了4個這樣的組,r1、r2、r3和r4。來自這4個組r1、r2、r3和r4的數據可以存儲到4個寄存器中(例如,SIMD寄存器)。組r1、r2和組r3、r4對稱地位于塊邊界的左側和右側。組r1中的像素值與組r2中的像素值比較,然后利用得到的差值實施編碼失真消除。
更準確地說,獲得組r1中的頂端像素和組r2中的頂端像素之間的差值1,組r1中的頂端之次行的像素和組r2中的頂端之次行的像素之間的差值2,組r1中底端之上一行的像素和組r2中底端之上一行的像素的差值3和組r1底端像素和組r2底端像素的差值4。差值1、差值2、差值3和差值4的平均值,或是差值1、差值2、差值3和差值4的絕對值之和用作典型差值,并且將該典型差值與給定的閾值比較。也可以用其它方法。因為這些操作是以同組中的4個像素為單位來執行,所以與一次處理一個像素相比,采用并行處理明顯地提高了整體速度。
雖然上面描述了僅利用組r1和組r2進行的比較,如果要求更精確,可以比較組r3中的像素亮度和組r4中的像素亮度,然后把來自組r1和組r2的比較結果的典型差值加到來自組r3和組r4的典型差值,或者與組r3和組r4的典型差值平均來消除編碼失真。
上述操作應用于垂直塊邊界,但是也可以通過沿著水平邊界簡單地組配4個像素一組的水平組來實施實質上相同的操作。
圖20(a)和(b)示出了屏幕上掃描線交替的情況。隔行畫面是指由在不同時間表示的兩個場組成一幀的畫面。可以通過將一個幀處理為一個幀,兩個場,或者通過一個幀中的幀結構或場結構來完成對隔行畫面的編碼和解碼。在圖20中,小灰方塊代表奇數行像素,小白方塊代表偶數行像素。奇數行的灰色像素形成一幀的一場,而偶數行上的白色像素形成同一幀上的另一場。
在隔行畫面信號中,一幀由在不同時刻的兩場(偶數場和奇數場)組成。在靜態畫面中像素值不隨時間改變,并且一幀中垂直相鄰行之間的相關性比一場中垂直相鄰行之間的相關性強。然而,在運動畫面中,畫面隨時間的變化很大,兩個場中的像素值有很大不同,并且一場中垂直相鄰行之間的相關性比一幀中垂直相鄰行之間的相關性強。因此,按幀處理靜態畫面而按場處理運動畫面會更有效。
在隔行畫面中,(1)所有塊都可以是幀結構塊(下面會進一步描述幀結構塊),(2)所有塊都可以是場結構塊(下面會進一步描述場結構塊),或者(3)畫面可以包含幀結構和場結構二者。
如果畫面包含所有幀結構塊(1),那么由幀結構單元實施所有去塊。如果畫面包含所有場結構塊(2),那么由場結構單元實施所有去塊。如果畫面包含幀結構和場結構塊(3),那么通過從場結構向幀結構或從幀結構向場結構的自適應轉換來實施去塊。下面將更詳細地描述這些操作。
如圖20(a)(以下稱“幀結構”)所示,用由奇數場和偶數場組成的幀單元處理靜止圖像或包含輕微運動的隔行畫面。在幀結構中,如圖20(a)的右側所示,16個像素的塊包含奇數行像素和偶數行像素。利用幀結構在塊之間實施編碼失真消除過程。即,如參考圖8(b)所描述的,對塊邊界實施編碼失真消除過程。
如圖20(b)(以下稱“場結構”)所示,由分為奇數場和偶數場的場單元處理劇烈運動的隔行畫面。如圖20(b)的右側所示,畫面分為奇數行的奇數場和偶數行的偶數場;奇數場包含奇數行的塊,而偶數場包含偶數行的塊。只在僅奇數行的場結構塊或僅偶數行的場結構塊之間實施編碼失真消除過程。
圖21(a)示出了隔行畫面的一部分由幀結構塊組成,而另一部分由場結構塊組成的情況。最好是,圖像的運動畫面部分包含場結構塊,而靜態畫面部分包含幀結構塊。由場結構或幀結構形成的最小單位稱為宏塊,即,實施DCT或其它正交變換或運動補償的最大單位(或多個宏塊的超級宏塊)。下面假設圖21(a)中包含汽車的長方形中包含場結構塊,而畫面的其余部分包含幀結構塊。
接下來描述如何向場結構部分和幀結構部分之間的邊界實施編碼失真消除。
參見圖21(b),列C1、C2、C3和C4中的塊屬于包含汽車的圖像區域,并且因為在該圖像區域中有運動所以具有場結構。列C5、C6、C7和C8中的塊屬于汽車不在的圖像區域,即,靜態畫面區域,因此具有有效幀結構。應注意,在這個例子中,宏塊在每側有16個像素,而塊在每側有4個像素。圖21(b)中所示的列C4和C5是分開的,但實際上在畫面中是相鄰的。在列C3和C4之間的塊邊界和列C5和C6之間的塊邊界實施如圖8(b)所示的編碼失真消除。
為處理列C4和C5之間的塊邊界,列C5中的幀結構塊首先被轉換為如圖21(c)所示的場結構塊。它是通過將圖21(b)中所示的列C5中的奇數行像素轉換為如圖21(c)中所示的列C5中的灰色像素塊,并且將圖21(b)中所示的列C5中的偶數行像素轉換為如圖21(c)中所示的列C5中的白色像素塊來進行的。然后如圖8(b)所示消除列C4和C5之間的塊邊界的編碼失真。
當畫面中有運動時因為如果將場結構塊轉換為幀結構塊,那么像素之間的垂直相關性會丟失,并且如果在垂直相鄰塊之間實施編碼失真消除過程會發生非自然衰減,因此要將幀結構塊轉換為場結構塊。另一方面,如果在靜態畫面中將幀結構塊轉換為場結構塊,那么會減小在垂直方向上高頻分量的編碼錯誤抑制,因此像素之間的垂直相關性不會丟失并且也不容易發生非自然的圖像質量下降。
在上述例子中,將幀結構塊轉換為場結構塊以減少處理量(只將幀轉換為場)。但是,如果不關心操作次數,可以使用另一種方法,即將幀轉換為場并將場轉換為幀,由于需要將場轉換為幀的額外處理,因此與前一個例子相比增加了操作次數。更準確地說,首先確定要進行編碼失真消除的目的像素(即,要通過去塊來改變像素值的當前像素)是在幀結構塊中還是在場結構塊中。如果要進行編碼失真消除的目的像素在場結構塊中,那么將幀結構塊轉換為場結構塊(即,目的像素的塊類型),而如果要進行編碼失真消除的目的像素在幀結構塊中,那么將場結構塊轉換為幀結構塊(即,目的像素的塊類型)。
接下來參考圖22中的流程圖描述幀結構和場結構混合在一起時的操作。
隔行圖像信號流中的幀由兩個在不同時刻掃描的場組成。因此可以通過將兩個場組合為一個編碼單元對一幀進行幀編碼(幀結構編碼),或者可以利用分開編碼和處理的兩場進行場編碼(場結構編碼)。這些編碼方法也可以分組成下面的兩類,固定編碼和自適應編碼。對于固定編碼,在幀編碼或場編碼之間切換整個畫面。對于自適應編碼,將圖像畫面分割為若干個塊,并且每個塊為幀編碼或場編碼。
固定編碼還包括應用在幀結構塊的固定幀編碼,和應用在場結構塊的固定場編碼。對于固定編碼,總是用幀編碼或場編碼來對隔行視頻序列編碼,而與內容無關。
但是,對于自適應編碼,可以根據內容、畫面、或畫面中的編碼塊單元自適應選擇幀編碼或場編碼。這些畫面中的編碼塊可以象宏塊一樣小。對于自適應編碼,可以因此利用幀編碼或場編碼對單個宏塊進行編碼。用宏塊作為下面的編碼單元。
可以利用應用于非隔行視頻的相同技術對幀編碼塊,即,具有幀結構的塊進行編碼失真消除的處理。
對于場編碼塊,即具有場結構的塊,將場劃分為偶數場和奇數場,每個場作為單獨的畫面處理,然后對每個場實施去塊。
參考圖22中的流程圖,首先要確定目的塊是場編碼還是幀編碼(步驟63)。如果塊是場編碼,運行步驟64到69。如果塊是幀編碼,運行步驟70到72。
步驟64到66處理偶數場結構塊,而步驟67到69處理奇數場結構塊。步驟64到66消除圖21(b)中列C3和C4之間的邊界處白色像素之間的編碼失真,而步驟67到69消除圖21(b)中列C3和C4之間的邊界處灰色像素之間的編碼失真。
更準確地說,在步驟64中比較像素亮度以確定是否需要編碼失真消除。接著,在步驟65中確定要濾波的像素數量。然后在步驟66中以場模式消除編碼失真。
步驟67、68和69分別執行與步驟64、65和66相同的操作。
步驟70到72處理幀結構塊以消除圖21(b)中列C5和C6之間邊界處的編碼失真。更準確地說,在步驟70中比較像素亮度以確定是否需要編碼失真消除。然后,在步驟71中確定要濾波的像素數量。然后在步驟72中以幀模式消除編碼失真。
在步驟73中確定是否所有的塊都已經被處理,以及它們的操作是否結束。
圖23顯示了另一種方法,其中將圖22中的步驟64和67組合為一個單個步驟。更準確地說,確定是否需要從偶數場塊和奇數場塊消除編碼失真,以及是否需要對偶數和奇數場塊實施去塊。這樣做簡化了編碼失真消除過程。
圖24顯示了另一種方法,其中將圖23中的步驟65和68組合為一個單個操作來確定要去塊的偶數場塊和奇數場塊中像素的數量。然后根據該結果對偶數和奇數場塊實施編碼失真消除。該方法進一步簡化了編碼失真消除過程。
圖25是在幀編碼塊和場編碼塊混合在一個單個畫面中,并且塊邊界在幀結構塊和場結構塊之間時使用的處理的流程圖。
首先,步驟95確定正在要進行編碼失真消除處理的塊之間的邊界線是否為指定的邊界線,即,是否為幀結構塊在該線的一側而場結構塊在線的另一側。這與確定該線是否在圖21(b)中列C4和C5之間類似。如果是(步驟95返回是),那么控制進行到步驟96。
然后,將邊界一側的幀結構塊轉換為場結構塊(步驟96)。這個轉換過程與圖21(b)中列C5中的塊轉換到圖21(c)中列C5中的塊類似。以下稱轉換后的塊為“轉換塊”。
然后,確定在轉換塊和邊界另一側的場結構塊之間是否需要編碼失真消除(步驟97)。這一步與確定在圖21(c)中的列C4和C5之間邊界是否需要去塊類似。如果需要,控制進行到步驟98。
接著確定要濾波的像素數量(步驟98),然后以場模式消除編碼失真(步驟99)。
圖25顯示了幀結構塊轉換為場結構塊并且當自適應編碼的幀結構和場結構塊相鄰時從場中消除編碼失真的方法,但是也可以反過來將場結構塊轉換為幀結構塊,然后基于幀消除編碼失真。
如圖25中所示的基于場消除編碼失真的優點在于操作可以阻止非自然圖像質量的下降,這是因為即使在快速運動的圖像信號中只使用在相同時刻的像素來消除編碼失真。另一方面,由于在幀中垂直方向上的像素之間的相關性比具有輕微運動的圖像信號中場的強,因此基于幀的去塊產生的高頻分量的惡化比基于場進行去塊的惡化要小。兩種方法都有優勢,設備制造商可以選擇提供優選的方法或裝置,以便用戶可以選擇想要的方法。
還可以利用畫面單元(幀或場)而不是具有自適應編碼的塊單元來實施編碼失真消除。通過提供用來處理畫面單元的一種場模式或幀模式去塊濾波器來簡化去塊濾波器。濾波器可以固定為場模式或幀模式,或者可以基于畫面切換。如果濾波器是基于畫面切換的,那么編碼裝置可以確定適合的模式,并且表示解碼裝置的去塊濾波器以場模式操作還是以幀模式操作的識別信號可以添加到代碼流頭部然后發送到解碼器。
另外,當場或幀模式操作可以基于塊單元切換,并且禁止基于場的去塊和切換(例如,通過設置畫面參數來禁止在畫面中切換)時,可以由幀單元來消除編碼失真。
應該注意的是,上述第一到第五個實施例中的去塊濾波器可以用作圖32所示的后置濾波器或圖33中所示的環路濾波器。
通過在去塊操作前將數據存儲到存儲器64中,還沒有消除塊失真的圖像在被用作環路濾波器時被稱作為預定畫面,與使用去塊畫面作為預定畫面相比,編碼圖像質量的下降得稍微多一些。
另一方面,當用作后置濾波器時,由于消除編碼失真后的結果不作為參考圖像,與使用的去塊濾波器的類型無關,解碼圖像質量不會下降很多。例如,可以用執行最少操作的簡單濾波器作為優先要求低功率消耗的設備,如蜂窩電話中的去塊濾波器62,而可以用高精度、高圖像質量的濾波器作為實現要求圖像質量的固定娛樂系統中的去塊濾波器62。
實施例6通過將前面實施例中所述的實現編碼失真消除方法、編碼方法和解碼方法的步驟的程序記錄在軟盤或其它計算機可讀的數據記錄介質上,可以很容易在獨立的計算機系統上執行上面實施例中描述的過程。
圖26顯示了利用存儲上面第一到第五實施例所述的編碼失真消除方法、編碼方法和解碼方法的數據存儲介質(在這個例子中是軟盤)來獲得本發明另一個實施例的計算機系統。
圖26(b)顯示了從前面看的軟盤,軟盤截面,和實際的盤介質,圖26(a)顯示了典型的軟盤記錄介質的物理格式。軟盤FD內置在盒F中。從盤表面的外圓周向內圓周形成了多個同心軌跡Tr,軌跡沿角方向分成16個扇區Se。根據本發明存儲上述程序的軟盤FD中具有本發明的編碼失真消除方法、編碼方法和解碼方法作為計算機可執行程序記錄在軟盤FD中指定的區域。
圖26(c)顯示了利用軟盤FD記錄和讀取這些程序的裝置。為了將這些程序記錄到軟盤FD上,計算機系統Cs通過軟盤驅動器FDD將編碼失真消除方法、編碼方法、和解碼方法作為程序寫入。為了在計算機系統上從存儲到軟盤FD的程序編碼失真消除方法、編碼方法、和解碼方法,通過軟盤驅動器從軟盤FD上讀取程序然后傳送到計算機系統。
應該注意的是,雖然上面描述軟盤作為數據記錄介質,也可以使用光盤或其它類型的計算機可讀介質,包括CD-ROM、存儲卡、ROM盒,或其它類似的可記錄程序的任何介質。
下面將描述根據上述實施例實施視頻編碼方法和視頻解碼方法的系統。
圖27是表示用來提供內容發布服務的內容提供系統ex100的整體配置的示意圖。該通信系統的服務區被分為指定大小的小區,每個小區中安裝了基站ex107到ex110(固定無線基站)。
該內容提供系統ex100有大量例如通過因特網服務提供商ex102、電話網ex104,和基站ex107到ex110連接到因特網ex101的獨立設備,如計算機ex111、PDA(個人數字助理)ex112、攝像機ex113、蜂窩電話ex114和帶照相機的蜂窩電話ex115。
然而,該內容提供系統ex100不應該僅限于圖27所示的配置,還應該可以選擇地連接需要的設備。單個設備也可以不通過固定基站ex107到ex110而直接連接到電話網ex104。
攝像機ex113是數字視頻攝像機或其它能捕獲視頻圖像的裝置。蜂窩電話可以使用各種協議中的任何一種,包括PDC(個人數字通信)、CDMA(碼分多址)、W-CDMA(寬帶碼分多址)、GSM(全球移動通信系統),和PHS(個人手持系統)。
攝像機ex113可以通過基站ex109和電話網ex104連接到可以將用戶利用攝像機ex113發送的已編碼內容制作為流實況廣播的流服務器ex103。從攝像機ex113接收的內容可以由攝像機ex113或由服務器編碼。由照相機ex116捕獲的視頻數據也可以通過計算機ex111發送到流服務器ex103。該照相機ex116是數字照像機或其它可以捕獲靜態畫面和視頻的裝置。從照相機ex116接收的視頻數據可以由照相機ex116或計算機ex111編碼。任何一種情況下,視頻數據由計算機ex111中的LSI裝置ex117或照相機ex116處理。用于視頻編碼和解碼的軟件可以存儲在任何計算機ex111可以訪問的計算機可讀數據記錄介質上(如CD-ROM、軟盤或硬盤)。
視頻數據也可以由帶照相機的蜂窩電話ex115發送。在這種情況下,視頻數據由帶照相機的蜂窩電話ex115中的LSI裝置來編碼。
利用該內容提供系統ex100,可以對由用戶利用攝像機ex113、照相機ex116,或其它裝置記錄的內容(如內容的現場錄制)如本發明上面實施例描述的進行編碼并發送到流服務器ex103中。然后,流服務器ex103向請求數據的客戶端輸出內容數據。客戶端可以是任何能夠對已編碼內容解碼的裝置,包括計算機ex111、PDA ex112、攝像機ex113、以及蜂窩電話ex114。內容提供系統ex110可以使客戶端接收和再現已編碼的內容數據,可以使客戶端實時接收、解碼、和播放內容,因此是各能夠進行個人廣播的系統。
上面實施例所述的本發明的視頻編碼裝置和視頻解碼裝置可以通過該內容提供系統ex100中的單個裝置來用于編碼和解碼。
下面通過實例描述用于該內容提供系統ex100的蜂窩電話。
圖28顯示了利用根據本發明上述視頻編碼方法和視頻解碼方法的蜂窩電話ex115。如圖28所示,這個帶有照相機的蜂窩電話ex115有一個用來與基站ex110交換RF信號的天線ex201、諸如CCD照相機之類用來捕獲視頻和靜態畫面的攝像頭ex203、諸如LCD之類用來顯示由攝像頭ex203捕獲的圖像或由天線ex201接收的圖像然后解碼的顯示單元ex202;具有鍵盤ex204和其它控制的操作面板;諸如揚聲器ex208之類用來輸出音頻的音頻輸出單元;麥克風ex205或其它類型的音頻輸入裝置;用來存儲由攝像頭ex203捕獲的諸如視頻或靜止圖像之類的已編碼或已解碼數據、接收到的e-mail、或其它視頻或靜態畫面數據的記錄介質ex207;以及用來將記錄介質ex207裝載到蜂窩電話ex115上的插槽ex206。記錄介質ex207可以是SD卡或其它類型的閃存裝置,例如內置在塑料盒中的EEPROM(電可擦可編程只讀存儲器)。
通過參考圖29進一步描述蜂窩電話ex115。通過同步總線ex313連接到主控制器ex311,用于系統地控制包括顯示單元ex202和鍵盤ex204蜂窩電話ex115的每一部分的是電源電路ex310、操作輸入控制器ex304、圖像編碼單元ex312、攝像頭接口ex303、LCD控制器ex302、圖像解碼單元ex309、多路復用器/多路分解器ex308、讀/寫單元ex307、調制器/解調器單元ex306、和音頻處理單元ex305。
當用戶將通話結束和電源鍵設置為開的位置時,電源電路ex310從電池組向蜂窩電話ex115的每個部分供電,并且將帶有攝像頭的數字蜂窩電話設置為工作模式。
由主控制器ex311控制,通常包括CPU、ROM和RAM的蜂窩電話ex115將通話模式時由麥克風ex205采集的音頻信號由音頻處理單元ex305轉換為數字音頻數據。然后調制器/解調器單元ex306對音頻處理單元ex305的輸出擴頻,通信電路ex301實施D/A轉換和頻率轉換處理,然后通過天線ex201輸出。在通話模式時,蜂窩電話ex115放大通過天線ex201接收到的信號并實施頻率轉換和A/D處理,調制器/解調器單元ex306對信號解擴展,然后,音頻處理單元ex305將解擴展的信號轉換為模擬音頻信號,并從揚聲器ex208輸出模擬音頻信號。
如果在數據通信模式時發送電子郵件,利用鍵盤ex204輸入電子郵件消息的文本數據,然后通過操作輸入控制器ex304發送到主控制器ex311。接著,主控制器ex311利用調制器/解調器單元ex306對文本數據擴頻,利用通信電路ex301進行D/A轉換和頻率轉換處理,然后從天線ex201發送到基站ex110。
為了在數據通信模式時發送圖像數據,利用攝像頭ex203捕獲到的圖像數據通過攝像頭接口ex303提供給圖像編碼單元ex312。如果圖像數據沒有發送,那么由攝像頭ex302捕獲到的圖像數據可以通過攝像頭接口ex303和LCD控制器ex302直接顯示在顯示單元ex202上。
圖像編碼單元ex312具有根據本發明的圖像編碼裝置的配置。它利用前面實施例中描述的圖像編碼裝置中使用的編碼方法通過壓縮編碼將攝像頭ex203提供的圖像數據轉換為已編碼圖像數據,然后將編碼圖像數據輸出到多路復用器/多路分解器ex308。當攝像頭ex203記錄時,由蜂窩電話ex115的麥克風ex205捕獲的音頻由音頻處理單元ex305也發送到多路復用器/多路分解器ex308作為數字音頻數據。
多路復用器/多路分解器ex308將從圖像編碼單元ex312提供的編碼畫面數據與從音頻處理單元ex305提供的音頻數據多路復用。然后由調制器/解調器單元ex306對多路復用的數據進行擴頻,由通信電路ex301實施D/A轉換和頻率轉換,然后從天線ex201發送該信號。
如果在數據通信模式接收到來自從因特網上的站點訪問的視頻文件的數據,那么由調制器/解調器單元ex306對通過天線ex201從基站ex110接收到的信號解擴頻,并將得到的多路復用數據發送到多路復用器/多路分解器ex308。
為了對通過天線ex201接收的多路復用數據解碼,多路復用器/多路分解器ex308多路分解該多路復用數據以分開編碼視頻數據比特流和編碼音頻數據比特流。然后,通過同步總線ex313將編碼視頻數據比特流提供給圖像解碼單元ex309,和將編碼音頻數據比特流提供給音頻處理單元ex305。
圖像解碼單元ex309具有與上面實施例所述的圖像解碼裝置相同的配置。它利用與上述編碼方法對應的解碼方法通過對編碼視頻數據比特流解碼來產生重構視頻數據,并通過LCD控制器ex302將解碼視頻數據提供給顯不單元ex202。這樣,可以顯不從因特網上的主頁訪問的視頻文件的視頻數據。音頻處理單元ex305還同時將音頻數據轉換為模擬音頻信號,并且將結果提供給揚聲器ex208。這樣,從因特網的主頁訪問到的視頻文件中包含的音頻數據也可以從揚聲器再現。
本發明的通信系統不僅限于上述配置。例如,該系統可以利用本發明的圖像編碼裝置和/或圖像解碼裝置采用如圖30所示的數字廣播系統來訪問通過衛星或地面網發射的數字廣播。
更具體地說,廣播站ex409通過無線電波向通信或廣播衛星ex410發射編碼的視頻數據比特流。接收到該發射的廣播衛星ex410發射例如利用衛星廣播接收機由家中的天線ex406接收的廣播信號。然后,由電視接收機ex401、機頂盒(STB)ex407,或其它裝置對編碼的比特流解碼和重構。
本發明的視頻解碼裝置也可以由用來讀取和解碼記錄在諸如CD、DVD或其它存儲介質ex402之類的記錄介質上的已編碼比特流的播放裝置ex403來實現。在這種情況下,重構的視頻信號顯示在例如監視器ex404上。
本發明的圖像解碼裝置也可以內置在與衛星或地面廣播天線ex406或用來接入有線電視的有線天線ex405相連的機頂盒ex407中。該機頂盒ex407的輸出也可以顯示在電視機的顯示器ex408上。
圖像解碼裝置還可以內置在電視機中而不是機頂盒中。
也可以從天線ex410或基站ex107由具有相應天線ex411的汽車ex412接收信號,并將解碼的視頻可以顯示在汽車ex412中的汽車導航系統的顯示器上。
視頻信號還可以由根據本發明實施例的視頻編碼裝置來編碼然并記錄在數據記錄介質上。更具體地說,DVD記錄機可以將圖像信號錄制到DVD盤ex421上,或者硬盤記錄器ex420可以記錄圖像信號。視頻信號還可以記錄到SD卡ex422。如果記錄器ex420具有根據本發明的視頻解碼裝置,那么它還可以在監視器ex408上播放和顯示記錄到DVD盤ex421、SD卡ex422,或其它存儲介質上的視頻信號。
應該注意的是,汽車導航系統ex413可以不配置圖29中所示的攝像頭ex203、攝像頭接口ex303和圖像編碼單元ex312。這樣也可以應用到,例如計算機ex111和電視(接收機)ex401。
蜂窩電話ex114或其它終端可以作為具有上述編碼器和解碼器的收發機終端,或者它可以作為只有編碼器的發射終端,或只有解碼器的接收終端。
很明顯,本發明的編碼裝置和解碼裝置不只限于上述第一到第六個實施例所述的配置,可以有多種變化方式。
上面實施例描述的視頻編碼方法和視頻解碼方法可以用于上述任何一種裝置和系統,并且獲得這些實施例的效果。
本發明的編碼失真消除方法提供了具有簡單處理的編碼失真消除方法,一種幾乎沒有因編碼失真而造成圖像信號的圖像質量降低的可能性的編碼失真消除方法,以及可以減小作為消除編碼失真的結果而降低圖像信號的圖像質量的可能性的編碼方法和解碼方法。因此本發明具有很高的實用價值。
雖然已參考附圖結合優選實施例描述了本發明,應該指出,各種變化和改進對本領域技術人員來說是顯而易見的。可以理解,該變化和改進包括在由所附權利要求定義的本發明的范圍中,除非它們脫離了本發明的范圍。
權利要求
1.一種編碼方法,對輸入圖像進行編碼,包括步驟將所述輸入圖像分成多個塊,并按塊對所述輸入圖像進行編碼;將按塊編碼的所述輸入圖像按塊解碼以獲得再生圖像;設定用于決定每個量化參數的閾值的濾波選擇參數,所述閾值用于切換是對構成所述再生圖像的塊實施使用濾波的編碼失真消除、或是不對所述塊實施所述編碼失真消除;比較步驟,在構成所述再生圖像的塊,即夾著相鄰的兩個塊的邊界線的區域中,對所述相鄰的兩個塊的像素的像素值之差與由所述濾波決定參數決定的閾值進行比較;編碼失真消除步驟,在所述像素值的值比所述閾值大的情況下,不實施所述編碼失真的消除,在所述像素值的值比所述閾值小的情況下,用所述濾波實施所述編碼失真消除;以及,將所述濾波決定參數編碼后進行輸出的參數編碼步驟。
2.根據權利要求1所述的編碼方法,其中所述再生圖像具有由多個塊構成的片,所述濾波決定參數位于通過對所述片進行編碼獲取的片編碼信號的片首部中,所述閾值被應用于所述片內的再生圖像。
全文摘要
當再現壓縮的視頻信號時會產生馬賽克狀的塊噪聲。消除這種塊噪聲,但是利用去塊濾波器從每個塊中消除塊噪聲給去塊濾波器增加了明顯的負荷。通過確定是否需要執行編碼失真消除(去塊),并且只在需要時實施去塊濾波來減小這種負荷。
文檔編號H04N7/64GK1984343SQ20061009088
公開日2007年6月20日 申請日期2002年11月29日 優先權日2001年11月29日
發明者薛忠, 申省梅, 符式偉, 李作裕, 角野真也 申請人:松下電器產業株式會社