專利名稱:多圖像塊劃分的編解碼方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻編解碼技術(shù),特別涉及多圖像塊劃分的編解碼方法和裝置。
背景技術(shù):
視頻編碼壓縮的基本原理是,利用空域、時域和碼字之間的相關(guān)性,盡可能去除冗余。目前流行的做法是采用基于塊的混合視頻編碼框架,通過預測、變換、量化、熵編碼等步驟來實現(xiàn)視頻編碼壓縮。這一編碼框架,顯示了很強的生命力,從最早的MPEG-I到現(xiàn)在最新的視頻編碼標準H. 264/AVC,甚至JCTVC工作組(MPEG和VECG成立的聯(lián)合工作組)正在制定的下一代視頻編碼壓縮標準HEVC,仍然沿用這種基于塊的混合視頻編碼框架。在視頻編解碼中一般都采用基于塊的空域預測編碼技術(shù),基本原理是利用相鄰塊之間的相關(guān)性去除空域冗余。即利用相鄰塊作為參考塊,對當前塊進行預測。為了提高像素預測的準度,現(xiàn)有技術(shù)中一般都會將當前圖像塊進行分割,得到四個完全相同的正方形的子圖像塊,然后分別以這四個子圖像塊為單位,根據(jù)所述當前圖像塊的相鄰塊的像素值進行預測。有時候為了進一步的提高預測的準度,還會對這四個子圖像塊中的一個進行進一步的劃分,已得到四個更小的正方形的子圖象塊。比如,64X64規(guī)格的當前圖像塊可以劃分成4個32 X 32規(guī)格的子圖像快,一個32 X 32規(guī)格的子圖像快可以劃分成4個16 X 16規(guī)格的子圖像快。很顯然,現(xiàn)有技術(shù)中的這種圖像塊的劃分和預測方式,只是單存的將圖像塊劃分成四個正方形的子圖像塊,而子圖像塊也是單存的依照當前圖像塊的相鄰塊進行預測,缺乏靈活性,很難保證預測的準度和編解碼的效果。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種多圖像塊劃分方式的編碼方法,包括確定當前幀內(nèi)編碼對象的劃分方式,其中,所述當前幀內(nèi)編碼對象的劃分方式包括方塊劃分和非方塊劃分;當所述當前幀內(nèi)編碼對象采用非方塊劃分時,確定所述當前幀內(nèi)編碼對象的劃分方向,所述劃分方向包括水平劃分和垂直劃分;根據(jù)所述劃分方式和劃分方向?qū)λ霎斍皫瑑?nèi)編碼對象進行劃分,得到沿水平方向或垂直方向依次排列的子圖像塊;確認所述子圖像塊是否還需要再進行劃分,如果不需要的話,則根據(jù)所述子圖像塊對所述幀內(nèi)編碼對象進行預測,得到殘差數(shù)據(jù);對所述殘差數(shù)據(jù)進行變換、量化和熵編碼,以得到編碼后的殘差數(shù)據(jù);將所述當前幀內(nèi)編碼對象的劃分方式、所述當前幀內(nèi)編碼對象的劃分方向、以及所述用于指示所述子圖像塊是否需要劃分的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中,或者當所述子圖像塊無法再被劃分成預設的子圖像塊規(guī)格時,將所述劃分方向和所述劃分方式的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中。本發(fā)明又一實施例還提供一種多圖像塊劃分方式的編碼方法,其包括采用遍歷的方式對所述當前幀內(nèi)編碼對象進行劃分,并分別進行預測編碼,從預測編碼結(jié)果中選擇碼率失真代價最小的劃分過程所對應的劃分方式、劃分方向、以及子圖像塊是否劃分信息,其中,所述劃分方式包括方塊劃分和非方塊劃分,所述劃分方向包括水平劃分和垂直劃分;當所述劃分方式為非方塊劃分時,根據(jù)所述劃分方向,將所述當前幀內(nèi)編碼對象劃分成沿水平方向或垂直方向依次排列的子圖像塊;確認所述子圖像塊是否需要再進行劃分,當確認所述子圖像塊不需要再進行劃分時,根據(jù)所述子圖像塊對所述幀內(nèi)編碼對象進行預測,得到殘差數(shù)據(jù);對所述殘差數(shù)據(jù)進行變換、量化和熵編碼,以得到編碼后的殘差數(shù)據(jù);將所述劃分方式、所述劃分方向、以及所述用于指示所述子圖像塊的是否需要劃分的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中,或者,當所述子圖像塊無法再被劃分成預設的子圖像塊規(guī)格時,將所述劃分方式和所述劃分方向的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中。本發(fā)明實施例還提供一種相應的多圖像塊劃分方式的解碼方法,其包括從碼流中解析當前幀內(nèi)解碼對象的劃分方式、劃分方向、用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識,以及當前幀內(nèi)解碼對象的殘差數(shù)據(jù),其中,所述劃分方式包括方塊劃分和非方塊劃分,所述劃分方向包括垂直劃分和水平劃分;根據(jù)所述劃分方式和所述劃分方向?qū)λ霎斍皫瑑?nèi)解碼對象進行劃分,得到沿水平方向或垂直方向依次排列的子圖像塊;根據(jù)碼流中的所述用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識,來判斷是否對所述子圖像塊進行進一步的劃分;如果所述用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識顯示所述子圖像塊不需要進一步的劃分或者所述子圖像塊無法再被劃分成預設的子圖像塊規(guī)格時,則根據(jù)所述殘差數(shù)據(jù),對所述子圖像塊進行解碼。本發(fā)明實施例還相應提供了應用上述編解碼方法的編碼裝置和解碼裝置。采用本發(fā)明實施例所提供的編解碼方法,在進行圖像塊劃分時,將圖像塊劃分成沿水平方向排列或者垂直方向排列的矩形子圖像塊,當圖像塊在水平方向或垂直方向的像素值的變化較小時,可以得到更佳的預測準度。
圖1所示為本發(fā)明實施例提供的多圖像塊劃分方式的編碼方法的示意圖。圖2為方塊劃分的示意圖。圖3為非方塊劃分的示意4為本發(fā)明又一實施例所提供的多圖像塊劃分方式的編碼方法的示意圖。圖5為本發(fā)明實施例所提供的多圖像塊劃分方式的解碼方法的示意圖。圖6本發(fā)明實施例所提供的編碼裝置的示意圖。圖7為本發(fā)明實施例所提供的解碼裝置的示意圖。
具體實施例方式請參照圖1,本發(fā)明實施例提供了一種多圖像塊劃分方式的編碼方法,其包括步驟101 確定當前幀內(nèi)編碼對象的劃分方式;其中,在本發(fā)明實施例中,所述當前幀內(nèi)編碼對象的劃分方式包括方塊劃分和非方塊劃分。在本發(fā)明實施例中,所述方塊劃分是指將當前幀內(nèi)編碼對象劃分成四個大小相同的正方形的子圖像塊。所述非方塊劃分是指將所述當前幀內(nèi)編碼對象劃分成沿垂直方向或水平方向排列的、形狀相同的子圖像塊。顯然,在本發(fā)明實施例中,矩形的子圖像塊是較佳的選擇,如將NxN的圖像塊劃分成數(shù)個MxN或NxM的子圖像塊,其中M、N是大于1的正整數(shù),N是M的整數(shù)倍,在本發(fā)明實施例中,N是M的四倍。甚至于,將NxN的圖像塊劃分成數(shù)個IxN或Nxl的線型子圖像塊。不過也不排除會有技術(shù)人員想到將當前幀內(nèi)編碼對象劃分成其它形狀的、可以“依次排列”的子圖像塊在本發(fā)明實施例中,所述當前幀內(nèi)編碼對象可以為一個32X32規(guī)格的圖像塊,也可以為一個32X32規(guī)格圖像塊的子圖像塊,更或者是具有更小尺寸規(guī)格的圖像塊的子圖像塊。步驟102 當所述當前幀內(nèi)編碼對象采用非方塊劃分時,確定所述當前幀內(nèi)編碼對象的劃分方向;具體的,首先請參照圖2,圖2所示即為方塊劃分的示意圖,其是指將當前幀內(nèi)編碼對象按照現(xiàn)有技術(shù)的劃分方法,將當前幀內(nèi)編碼對象劃分成四個正方形的子圖像塊。通過方塊劃分得到的子圖像快為正方形,大小相等,且分居所述當前幀內(nèi)編碼對象的四個角。其中,可以看到圖2所示的圖像塊被劃分成了 4個正方形的子圖像塊,而其右上方的子圖像塊又被方塊劃分成了 1,2,3和4個正方形的次級子圖像塊。在本發(fā)明實施例中非方塊劃分按照劃分方向還包括水平劃分和垂直劃分。請參照圖3,圖3所示為本發(fā)明實施例中所述的非方塊劃分的示意圖,在本發(fā)明實施例中,所述非方塊劃分包括垂直劃分和水平劃分。在圖3中所示的圖像塊的右上方的子圖像塊即被水平劃分成1、2、3、4這四個子圖像塊。在本發(fā)明實施例中,水平劃分就是指將所述當前幀內(nèi)編碼對象劃分成多個沿垂直方向排列的相同的子圖像塊。圖3所示的圖象塊的左上塊則被垂直劃分成了 A、B、C、D四個子圖像塊,在本發(fā)明實施例中,垂直劃分就是指將當前圖像塊劃分成多個沿水平方向排列的相同的子圖像塊。步驟103 據(jù)所述劃分方式和劃分方向?qū)λ霎斍皫瑑?nèi)編碼對象進行劃分,得到沿水平方向或垂直方向依次排列的子圖像塊;步驟104 確認所述子圖像塊是否還需要再進行劃分,如果不需要的話,則根據(jù)所述子圖像塊對所述幀內(nèi)編碼對象進行預測,得到殘差數(shù)據(jù);否則,對所述子圖像塊進一步劃分為預先定義的其它規(guī)格的多個劃分。如圖3中即將一個虹16劃分進一步劃分為4個1x16劃分。步驟105 對所述殘差數(shù)據(jù)進行變換、量化和熵編碼,以得到編碼后的殘差數(shù)據(jù);步驟106 將所述當前幀內(nèi)編碼對象的劃分方式、所述當前幀內(nèi)編碼對象的劃分方向、以及所述用于指示所述子圖像塊是否需要劃分的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中,或者當所述子圖像塊無法再被劃分成預設的子圖像塊規(guī)格時,將所述劃分方向和所述劃分方式的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中。在本發(fā)明實施例中,將所述劃分方式、所述劃分方向、以及所述用于指示所述多個子圖像塊的是否需要劃分的標識,寫入碼流中包括將所述劃分方式的標識、所述劃分方向的標識、以及用于指示所述多個子圖像塊石佛需要劃分的標識寫入碼流中,
或者,在其他可選擇的實施例中,所述將所述劃分方式、所述劃分方向、以及所述用于指示所述多個子圖像塊的是否需要劃分的標識,寫入碼流中可以包括根據(jù)所述劃分方式、劃分方向、以及所述多個子圖像塊是否需要劃分查找相對應的組合列表,獲得相應的索引值;將所述索引值寫入碼流中。更或者,所述將所述劃分方式、所述劃分方向、以及所述用于指示所述多個子圖像塊的是否需要劃分的標識,寫入碼流中也可以包括根據(jù)所述劃分方式和劃分方向,查找相對應的組合列表,獲得相應的索引值;將所述多個子圖像塊是否需要劃分的標識,以及所述索引值寫入碼流。在可選擇的實施例中,所述將所述劃分方向和所述劃分方式的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中葉可以包括將所述劃分方式的標識以及所述劃分方向的標識寫入碼流中;或者根據(jù)所述劃分方式和劃分方向查找相對應的組合列表,獲得相應的索引值,將所述索引值寫入碼流中。在本發(fā)明實施例中,所述用于指示所述子圖像塊是否需要劃分的標識可以為一個比特,用來指示所有多個子圖像塊是否需要進一步的劃分,比如0或1。所述用于指示所述多個子圖像塊是否需要劃分的標識也可以為多個比特分別用于指示每個子圖像塊是否需要劃分。更或者,用于指示所述多個子圖像塊是否需要劃分的標識也可以為一個索引值,用于對應多個子圖像塊中的每一個是否需要劃分所構(gòu)成的組合。很明顯的,當判斷需要對子圖像塊進行進一步劃分時,也只不過是將需要進一步劃分的子圖像塊當作當前幀內(nèi)編碼對象重新再從步驟101、102、103執(zhí)行一遍,直到不需要再對子圖像塊進行劃分為止,這一過程是一個循環(huán)的過程,比如所述確認所述子圖像塊是否還需要再進行劃分包括根據(jù)預設的子圖像塊的規(guī)格將子圖像塊劃分成多種規(guī)格的次級子圖像塊,如果對所述劃分為多種規(guī)格的所有次級子圖像塊進行編碼的碼率失真代價之和大于直接對所述不進行進一步劃分的所述子圖象塊進行編碼的碼率失真代價,則所述子圖像塊不需要再進行劃分;以及確認子圖像塊是否還能被劃分成預設的子圖像塊規(guī)格,如果不能,則所述子圖像塊不需要再進行劃分。其中,在實際應用中,編碼端和解碼端都會預設一些圖像塊的尺寸規(guī)格,只有當圖像塊能被劃分成這些規(guī)格時,或者說只有當圖像塊的尺寸規(guī)格大于這些預設的尺寸規(guī)格時,圖像塊才能被劃分。而由于這種原因造成子圖像塊不進行劃分時,編碼端也可以選擇不將用于指示所述子圖像塊是否需要劃分的標識寫到碼流中。在本發(fā)明實施例中,判斷所述當前幀內(nèi)編碼對象的劃分方式、劃分方向以及子圖像快是否需要劃分,可以依照傳統(tǒng)的遍歷或者部分遍歷的方式進行,也就是將所有或部分的劃分方式、劃分方向、以及子圖像快是否劃分的可能性都嘗試一遍,或者針對當前編碼對象的特性預先設定一些比較可能的組合方式進行進行遍歷,并進行像素預測,從中選擇對當前編碼對象進行編碼的編碼性能最優(yōu)的組合,從而采用所述最優(yōu)的組合所采用的劃分方式、劃分方向以及子圖像快是否劃分,來對當前幀內(nèi)編碼對象進行編碼操作。遍歷的方式是視頻編解碼領(lǐng)域中決定預測方向和圖像塊劃分的常用方法,其只是單純的通過實踐的方式去嘗試并選擇最優(yōu)結(jié)果,在此不再贅述。不過相應的,從另一角度來看,請參照圖4,本發(fā)明又一實施例所提供的多圖像塊劃分方式的編碼方法也可以包括步驟401 采用遍歷的方式對所述當前幀內(nèi)編碼對象進行劃分,并分別進行預測編碼,從預測編碼結(jié)果中選擇碼率失真代價最小的劃分過程所對應的劃分方式、劃分方向、以及子圖像塊是否劃分信息;其中,所述劃分方式包括方塊劃分和非方塊劃分,所述劃分方向包括水平劃分和垂直劃分。步驟402 當所述劃分方式為非方塊劃分時,根據(jù)所述劃分方向,將所述當前幀內(nèi)編碼對象劃分成沿水平方向或垂直方向依次排列的子圖像塊,其中,當所述劃分方向為水平劃分時,將所述當前幀內(nèi)編碼對象劃分成多個沿垂直方向排列的相同的子圖像塊,當所述劃分方向為垂直劃分時,將所述當前幀內(nèi)編碼對象劃分成多個沿水平方向排列的相同的子圖像塊;步驟403 確認所述子圖像塊是否需要再進行劃分,當確認所述子圖像塊不需要再進行劃分時,根據(jù)所述子圖像塊對所述幀內(nèi)編碼對象進行預測,得到殘差數(shù)據(jù);步驟404 對所述殘差數(shù)據(jù)進行變換、量化和熵編碼,以得到編碼后的殘差數(shù)據(jù);步驟405 將所述劃分方式、所述劃分方向、以及所述用于指示所述子圖像塊的是否需要劃分的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中,或者,當所述子圖像塊無法再被劃分成預設的子圖像塊規(guī)格時,將所述劃分方式和所述劃分方向的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中。其中,當所述碼流中不存在所述用于指示所述子圖像塊的是否需要劃分的標識時,這也等同于說明了,相對應的子圖像塊無法再被劃分成預設的子圖像塊規(guī)格。當然,本領(lǐng)域的普通技術(shù)人員應該了解,編碼端在對子圖像塊進行遍歷或預測時,還需要記錄下每個子圖像塊的預測方向,并確定子圖像塊的參考圖像塊,根據(jù)所述預測方向和所述參考圖像塊的像素值進行預測,并在最后將預測方向?qū)懭氪a流中,以便解碼端可以進行相同的預測過程。不過這些過程涉及到的是具體的像素預測的方法,完全可以參照現(xiàn)有技術(shù)進行,與本發(fā)明的主題無關(guān),因此在這里不再贅述。總體來說,采用本發(fā)明實施例所提供的多圖像塊劃分方式的編碼方法,在進行圖像塊劃分時,將圖像塊劃分成沿水平方向排列或者垂直方向排列的矩形子圖像塊,當圖像塊在水平方向或垂直方向的像素值的變化較小時,相對于現(xiàn)有技術(shù)中的僅將圖像塊劃分成四個角的正方形子圖像塊的劃分方式來說,可以得到更佳的預測準度。本發(fā)明實施例還提供一種相應的解碼方法,請參照圖5,本發(fā)明實施例所提供的多圖像塊劃分方式的解碼方法,包括步驟501 從碼流中解析當前幀內(nèi)解碼對象的劃分方式、劃分方向、用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識,以及當前幀內(nèi)解碼對象的殘差數(shù)據(jù);其中,所述劃分方式包括方塊劃分和非方塊劃分,所述劃分方向包括垂直劃分和水平劃分。在本發(fā)明實施例中,所述方塊劃分是指將當前幀內(nèi)解碼對象劃分成四個大小相同的正方形的子圖像塊。所述非方塊劃分是指將所述當前幀內(nèi)解碼對象劃分成沿垂直方向或水平方向排列的、形狀相同的子圖像塊。顯然,在本發(fā)明實施例中,矩形的子圖像塊是較佳的選擇。不過也不排除會有技術(shù)人員想到將當前幀內(nèi)解碼對象劃分成其它形狀的、可以“依次排列”的子圖像塊。另外需要理解的是,當碼流中沒有包括用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識時,也可以理解為相對應的子圖像塊不需要再進行劃分,或者說,相對應的子圖像塊無法被劃分成預設的子圖像塊規(guī)格,此時不需要解析當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識。在本發(fā)明實施例中,所述從碼流中解析當前幀內(nèi)解碼對象的劃分方式、劃分方向、用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識包括從碼流中解析所述劃分方式的標識、所述劃分方向的標識、以及用于指示所述子圖像塊是否需要劃分的標識,或者從碼流中解析根據(jù)所述劃分方式、劃分方向、以及所述子圖像塊是否需要劃分查找相對應的組合列表的索引值;根據(jù)所述索引值查找相應的劃分方式、劃分方向、以及所述子圖像塊是否需要劃分的信息,或者從碼流中解析所述子圖像塊是否需要劃分的標識,以及所述劃分方式和劃分方向相對應的組合列表的索引值;根據(jù)所述索引值獲得所述劃分方式、劃分方向的信息。步驟502 根據(jù)所述劃分方式和所述劃分方向?qū)λ霎斍皫瑑?nèi)解碼對象進行劃分,得到沿水平方向或垂直方向依次排列的子圖像塊;其中,當所述劃分方式為非方塊劃分,所述劃分方向為水平劃分時,將所述當前幀內(nèi)解碼對象劃分成多個沿垂直方向排列的相同的子圖像塊,當所述劃分方式為非方塊劃分,所述劃分方向為垂直劃分時,將所述當前幀內(nèi)解碼對象劃分成多個沿水平方向排列的相同的子圖像塊;步驟503 根據(jù)碼流中的所述用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識,來判斷是否對所述子圖像塊進行進一步的劃分;步驟504 如果所述用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識顯示所述子圖像塊不需要進一步的劃分,或者所述子圖像塊無法再被劃分成預設的子圖像塊規(guī)格時,根據(jù)所述殘差數(shù)據(jù),對所述子圖像塊進行解碼。否則,對所述子圖像塊進一步劃分為預先定義的其它規(guī)格的多個劃分。如圖3中即將一個虹16劃分進一步劃分為4個1x16劃分。本發(fā)明還相應提供了應用本發(fā)明實施例所提供的編碼方法的編碼裝置。請參照圖6,圖6所示為本發(fā)明實施例所提供的編碼裝置的示意圖。本發(fā)明實施例所提供的編碼裝置包括劃分確認模塊601,用于采用遍歷的方式對所述當前幀內(nèi)編碼對象進行劃分,并分別進行預測編碼,從預測編碼結(jié)果中選擇碼率失真代價最小的劃分過程所對應的劃分方式、劃分方向、以及子圖像塊是否劃分信息,其中,所述劃分方式包括方塊劃分和非方塊劃分,所述劃分方向包括水平劃分和垂直劃分;劃分模塊602,用于當所述劃分方式為非方塊劃分時,根據(jù)所述劃分方向,將所述當前幀內(nèi)編碼對象劃分成沿水平方向或垂直方向依次排列的子圖像塊,其中,當所述劃分方向為水平劃分時,將所述當前幀內(nèi)編碼對象劃分成多個沿垂直方向排列的相同的子圖像塊,當所述劃分方向為垂直劃分時,將所述當前幀內(nèi)編碼對象劃分成多個沿水平方向排列的相同的子圖像塊;像素預測模塊603,用于確認所述子圖像塊是否需要再進行劃分,當確認所述子圖像塊不需要再進行劃分時,根據(jù)所述子圖像塊對所述幀內(nèi)編碼對象進行預測,得到殘差數(shù)據(jù);否則,對所述子圖像塊進一步劃分為預先定義的其它規(guī)格的多個劃分。如圖3中即將一個虹16劃分進一步劃分為4個1x16劃分。處理模塊604,用于對所述殘差數(shù)據(jù)進行變換、量化和熵編碼,以得到編碼后的殘差數(shù)據(jù);寫碼流模塊605,用于將所述劃分方式、所述劃分方向、以及所述用于指示所述子圖像塊的是否需要劃分的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中,或者,當所述子圖像塊無法再被劃分成預設的子圖像塊規(guī)格時,將所述劃分方式和所述劃分方向的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中。當然,為了便于解碼,所述像素預測模塊603還用于獲得所述多個子圖像塊進行預測時的預測方向。相應地,所述寫碼流模塊605還用于將所述預測方向?qū)懭氪a流中。本發(fā)明實施例還提供了相應的解碼裝置,請參照圖7,本發(fā)明實施例所提供的解碼裝置包括參數(shù)獲得模塊701,用于從碼流中解析當前幀內(nèi)解碼對象的劃分方式、劃分方向、用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識,以及當前幀內(nèi)解碼對象的殘差數(shù)據(jù),其中,所述劃分方式包括方塊劃分和非方塊劃分,所述劃分方向包括垂直劃分和水平劃分;劃分模塊702,用于根據(jù)所述劃分方式和所述劃分方向?qū)λ霎斍皫瑑?nèi)解碼對象進行劃分,得到沿水平方向或垂直方向依次排列的子圖像塊,并且根據(jù)碼流中的所述用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識,來判斷是否對所述子圖像塊進行進一步的劃分;其中,當所述劃分方式為非方塊劃分,所述劃分方向為水平劃分時,將所述當前幀內(nèi)解碼對象劃分成多個沿垂直方向排列的相同的子圖像塊,當所述劃分方式為非方塊劃分,所述劃分方向為垂直劃分時,將所述當前幀內(nèi)解碼對象劃分成多個沿水平方向排列的相同的子圖像塊;像素值獲得模塊703,用于當當所述用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識顯示所述子圖像塊不需要進一步的劃分,或者所述子圖像塊無法再被劃分成預設的子圖像塊規(guī)格時,則根據(jù)所述殘差數(shù)據(jù),對所述子圖像塊進行解碼。否則,對所述子圖像塊進一步劃分為預先定義的其它規(guī)格的多個劃分。如圖3中即將一個虹16劃分進一步劃分為4個1x16劃分。當然,在本發(fā)明實施例中,所述參數(shù)獲得模塊701還用于從碼流中獲得所述多個子圖像塊的預測方向。所述像素值獲得模塊703是根據(jù)所述預測方向和所述編碼后的殘差數(shù)據(jù)對所述多個子圖像塊進行解碼。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助
13軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。
權(quán)利要求
1.一種多圖像塊劃分方式的編碼方法,其特征在于,包括確定當前幀內(nèi)編碼對象的劃分方式,其中,所述當前幀內(nèi)編碼對象的劃分方式包括方塊劃分和非方塊劃分;當所述當前幀內(nèi)編碼對象采用非方塊劃分時,確定所述當前幀內(nèi)編碼對象的劃分方向,所述劃分方向包括水平劃分和垂直劃分;根據(jù)所述劃分方式和劃分方向?qū)λ霎斍皫瑑?nèi)編碼對象進行劃分,得到沿水平方向或垂直方向依次排列的子圖像塊;確認所述子圖像塊是否還需要再進行劃分,如果不需要的話,則根據(jù)所述子圖像塊對所述幀內(nèi)編碼對象進行預測,得到殘差數(shù)據(jù);對所述殘差數(shù)據(jù)進行變換、量化和熵編碼,以得到編碼后的殘差數(shù)據(jù);將所述當前幀內(nèi)編碼對象的劃分方式、所述當前幀內(nèi)編碼對象的劃分方向、以及所述用于指示所述子圖像塊是否需要劃分的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中,或者當所述子圖像塊無法再被劃分成預設的子圖像塊規(guī)格時,將所述劃分方向和所述劃分方式的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中。
2.如權(quán)利要求1中所述的編碼方法,其特征在于,還包括獲得所述子圖像塊的預測方向信息,將所述預測方向信息寫入碼流中。
3.如權(quán)利要求1中所述的編碼方法,其特征在于,所述將所述劃分方式、所述劃分方向、以及所述用于指示所述子圖像塊的是否需要劃分的標識,寫入碼流中包括將所述劃分方式的標識、所述劃分方向的標識、以及用于指示所述子圖像塊是否需要劃分的標識寫入碼流中,或者根據(jù)所述劃分方式、劃分方向、以及所述子圖像塊是否需要劃分查找相對應的組合列表,獲得相應的索引值,將所述索引值寫入碼流中,或者根據(jù)所述劃分方式和劃分方向,查找相對應的組合列表,獲得相應的索引值,將所述子圖像塊的是否需要劃分的標識以及所述索引值寫入碼流,所述將所述劃分方向和所述劃分方式的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中包括將所述劃分方式的標識以及所述劃分方向的標識寫入碼流中,或者根據(jù)所述劃分方式和劃分方向查找相對應的組合列表,獲得相應的索引值,將所述索引值寫入碼流中。
4.如權(quán)利要求1中所述的編碼方法,其特征在于,所述根據(jù)所述劃分方式和劃分方向?qū)λ霎斍皫瑑?nèi)編碼對象進行劃分,得到子圖像塊包括當所述劃分方式為非方塊劃分,而劃分方向為水平劃分時,將所述當前幀內(nèi)編碼對象劃分成沿垂直方向排列的相同的子圖像塊,當所述劃分方式為非方塊劃分,而劃分方向為垂直劃分時,將所述當前幀內(nèi)編碼對象劃分成沿水平方向排列的相同的子圖像塊。
5.如權(quán)利要求1中所述的編碼方法,其特征在于,所述確認所述子圖像塊是否還需要再進行劃分包括根據(jù)預設的子圖像塊的規(guī)格將子圖像塊劃分成多種規(guī)格的次級子圖像塊,如果對所述劃分為多種規(guī)格的所有次級子圖像塊進行編碼的碼率失真代價之和大于直接對所述不進行進一步劃分的所述子圖象塊進行編碼的碼率失真代價,則所述子圖像塊不需要再進行劃分;或者確認子圖像塊是否還能被劃分成預設的子圖像塊規(guī)格,如果不能,則所述子圖像塊不需要再進行劃分。
6.一種多圖像塊劃分方式的解碼方法,其特征在于,包括從碼流中解析當前幀內(nèi)解碼對象的劃分方式、劃分方向、用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識,以及當前幀內(nèi)解碼對象的殘差數(shù)據(jù),其中,所述劃分方式包括方塊劃分和非方塊劃分,所述劃分方向包括垂直劃分和水平劃分;根據(jù)所述劃分方式和所述劃分方向?qū)λ霎斍皫瑑?nèi)解碼對象進行劃分,得到沿水平方向或垂直方向依次排列的子圖像塊;根據(jù)碼流中的所述用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識,來判斷是否對所述子圖像塊進行進一步的劃分;如果所述用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識顯示所述子圖像塊不需要進一步的劃分,或者所述子圖像塊無法再被劃分成預設的子圖像塊規(guī)格時,則根據(jù)所述殘差數(shù)據(jù),對所述子圖像塊進行解碼。
7.如權(quán)利要求6中所述的解碼方法,其特征在于,包括從碼流中獲得當前幀內(nèi)解碼對象的子圖像塊的預測方向,所述根據(jù)所述殘差數(shù)據(jù),對所述子圖像塊進行解碼包括根據(jù)所述殘差數(shù)據(jù)和所述預測方向,對所述子圖像塊進行解碼。
8.如權(quán)利要求6中所述的解碼方法,其特征在于,當所述劃分方式為非方塊劃分,而劃分方向為水平劃分時,將所述當前幀內(nèi)編碼對象劃分成沿垂直方向排列的相同的子圖像塊,當所述劃分方式為方塊劃分,而劃分方向為垂直劃分時,將所述當前幀內(nèi)編碼對象劃分成沿水平方向排列的相同的子圖像塊。
9.如權(quán)利要求6中所述的解碼方法,其特征在于,所述根據(jù)碼流中的所述用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識,來判斷是否對所述子圖像塊進行進一步的劃分包括如果碼流中不存在所述用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識,則所述子圖像塊不需要進行進一步的劃分,或者確認子圖像塊是否還能被劃分成預設的子圖像塊規(guī)格,如果不能,則所述子圖像塊默認為不需要進行進一步的劃分。
10.如權(quán)利要求6中所述的解碼方法,其特征在于,所述從碼流中解析當前幀內(nèi)解碼對象的劃分方式、劃分方向、用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識包括從碼流中解析所述劃分方式的標識、所述劃分方向的標識、以及用于指示所述子圖像塊是否需要劃分的標識,或者從碼流中解析根據(jù)所述劃分方式、劃分方向、以及所述子圖像塊是否需要劃分查找相對應的組合列表的索引值;根據(jù)所述索引值查找相應的劃分方式、劃分方向、以及所述子圖像塊是否需要劃分的信息,或者從碼流中解析所述子圖像塊是否需要劃分的標識,以及所述劃分方式和劃分方向相對應的組合列表的索引值;根據(jù)所述索引值獲得所述劃分方式、劃分方向的信息。
11.一種多圖像塊劃分方式的編碼方法,其特征在于,包括采用遍歷的方式對所述當前幀內(nèi)編碼對象進行劃分,并分別進行預測編碼,從預測編碼結(jié)果中選擇碼率失真代價最小的劃分過程所對應的劃分方式、劃分方向、以及子圖像塊是否劃分信息,其中,所述劃分方式包括方塊劃分和非方塊劃分,所述劃分方向包括水平劃分和垂直劃分;當所述劃分方式為非方塊劃分時,根據(jù)所述劃分方向,將所述當前幀內(nèi)編碼對象劃分成沿水平方向或垂直方向依次排列的子圖像塊;確認所述子圖像塊是否需要再進行劃分,當確認所述子圖像塊不需要再進行劃分時,根據(jù)所述子圖像塊對所述幀內(nèi)編碼對象進行預測,得到殘差數(shù)據(jù);對所述殘差數(shù)據(jù)進行變換、量化和熵編碼,以得到編碼后的殘差數(shù)據(jù);將所述劃分方式、所述劃分方向、以及所述用于指示所述子圖像塊的是否需要劃分的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中,或者,當所述子圖像塊無法再被劃分成預設的子圖像塊規(guī)格時,將所述劃分方式和所述劃分方向的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中。
12.如權(quán)利要求11中所述的編碼方法,其特征在于,還包括獲得預測的預測方向信息,將所述預測方向信息寫入碼流中。
13.如權(quán)利要求11中所述的編碼方法,其特征在于,所述將所述劃分方式、所述劃分方向、以及所述用于指示所述子圖像塊的是否需要劃分的標識,寫入碼流中包括將所述劃分方式的標識、所述劃分方向的標識、以及用于指示所述子圖像塊石佛需要劃分的標識寫入碼流中;或者根據(jù)所述劃分方式、劃分方向、以及所述子圖像塊是否需要劃分查找相對應的組合列表,獲得相應的索引值,將所述索引值寫入碼流中;或者根據(jù)所述劃分方式和劃分方向,查找相對應的組合列表,獲得相應的索引值,將所述子圖像塊是否需要劃分的標識以及所述索引值寫入碼流。
14.如權(quán)利要求11中所述的編碼方法,其特征在于,所述將所述當前幀內(nèi)編碼對象劃分成沿水平方向或垂直方向依次排列的子圖像塊包括當所述劃分方向為水平劃分時,將所述當前幀內(nèi)編碼對象劃分成沿垂直方向排列的相同的子圖像塊,當所述劃分方向為垂直劃分時,將所述當前幀內(nèi)編碼對象劃分成沿水平方向排列的相同的子圖像塊。
15.如權(quán)利要求11中所述的編碼方法,其特征在于,所述確認所述子圖像塊不需要再進行劃分包括根據(jù)預設的子圖像塊的規(guī)格將子圖像塊劃分成多種規(guī)格的次級子圖像塊,如果對所述多種規(guī)格的次級子圖像塊進行編碼的碼率失真代價之和大于直接對所述不進行進一步劃分的所述子圖象塊進行編碼的碼率失真代價,則所述子圖像塊不需要再進行劃分;以及確認子圖像塊是否還能被劃分成預設的子圖像塊規(guī)格,如果不能,則所述子圖像塊不需要再進行劃分。
16.如權(quán)利要求15中所述的編碼方法,其特征在于,還包括當所述子圖像塊不需要再進行劃分時,則不向碼流中寫入所述子圖像塊的是否需要劃分的標識。
17.—種編碼裝置,其特征在于,包括劃分確認模塊,用于采用遍歷的方式對所述當前幀內(nèi)編碼對象進行劃分,并分別進行預測編碼,從預測編碼結(jié)果中選擇碼率失真代價最小的劃分過程所對應的劃分方式、劃分方向、以及子圖像塊是否劃分信息,其中,所述劃分方式包括方塊劃分和非方塊劃分,所述劃分方向包括水平劃分和垂直劃分;劃分模塊,用于當所述劃分方式為非方塊劃分時,根據(jù)所述劃分方向,將所述當前幀內(nèi)編碼對象劃分成沿水平方向或垂直方向依次排列的子圖像塊;像素預測模塊,用于確認所述子圖像塊是否需要再進行劃分,當確認所述子圖像塊不需要再進行劃分時,根據(jù)所述子圖像塊對所述幀內(nèi)編碼對象進行預測,得到殘差數(shù)據(jù);處理模塊,用于對所述殘差數(shù)據(jù)進行變換、量化和熵編碼,以得到編碼后的殘差數(shù)據(jù);寫碼流模塊,用于將所述劃分方式、所述劃分方向、以及所述用于指示所述子圖像塊的是否需要劃分的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中,或者,當所述子圖像塊無法再被劃分成預設的子圖像塊規(guī)格時,將所述劃分方式和所述劃分方向的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中。
18.如權(quán)利要求17中所述的編碼裝置,其特征在于,所述像素預測模塊還用于獲得所述子圖像塊進行預測時的預測方向,所述寫碼流模塊還用于將所述預測方向?qū)懭氪a流中。
19.如權(quán)利要求17中所述的編碼裝置,其特征在于,所述將所述當前幀內(nèi)編碼對象劃分成沿水平方向或垂直方向依次排列的子圖像塊包括當所述劃分方向為水平劃分時,將所述當前幀內(nèi)編碼對象劃分成沿垂直方向排列的相同的子圖像塊,當所述劃分方向為垂直劃分時,將所述當前幀內(nèi)編碼對象劃分成沿水平方向排列的相同的子圖像塊。
20.如權(quán)利要求17中所述的編碼裝置,其特征在于,所述將所述劃分方式、所述劃分方向、以及所述用于指示所述子圖像塊的是否需要劃分的標識,寫入碼流中包括將所述劃分方式的標識、所述劃分方向的標識、以及用于指示所述子圖像塊是否需要劃分的標識寫入碼流中;或者根據(jù)所述劃分方式、劃分方向、以及所述子圖像塊是否需要劃分查找相對應的組合列表,獲得相應的索引值,將所述索引值寫入碼流中;或者根據(jù)所述劃分方式和劃分方向,查找相對應的組合列表,獲得相應的索引值,將所述子圖像塊的是否需要劃分的標識以及所述索引值寫入碼流,所述將所述劃分方向和所述劃分方式的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中包括將所述劃分方式的標識以及所述劃分方向的標識寫入碼流中;或者根據(jù)所述劃分方式和劃分方向查找相對應的組合列表,獲得相應的索引值,將所述索引值寫入碼流中。
21.一種解碼裝置,其特征在于,包括參數(shù)獲得模塊,用于從碼流中解析當前幀內(nèi)解碼對象的劃分方式、劃分方向、用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識,以及當前幀內(nèi)解碼對象的殘差數(shù)據(jù),其中,所述劃分方式包括方塊劃分和非方塊劃分,所述劃分方向包括垂直劃分和水平劃分;劃分模塊,用于根據(jù)所述劃分方式和所述劃分方向?qū)λ霎斍皫瑑?nèi)解碼對象進行劃分,得到沿水平方向或垂直方向依次排列的子圖像塊,并且根據(jù)碼流中的所述用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識,來判斷是否對所述子圖像塊進行進一步的劃分;像素值獲得模塊,用于當所述用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識顯示所述子圖像塊不需要進一步的劃分,或者所述子圖像塊無法再被劃分成預設的子圖像塊規(guī)格時,則根據(jù)所述殘差數(shù)據(jù),對所述子圖像塊進行解碼。
22.如權(quán)利要求21中所述的解碼裝置,其特征在于,當所述劃分方式為非方塊劃分,所述劃分方向為水平劃分時,將所述當前幀內(nèi)解碼對象劃分成沿垂直方向排列的相同的子圖像塊,當所述劃分方式為非方塊劃分,所述劃分方向為垂直劃分時,將所述當前幀內(nèi)解碼對象劃分成沿水平方向排列的相同的子圖像塊。
23.如權(quán)利要求21中所述的解碼裝置,其特征在于,所述參數(shù)獲得模塊還用于從碼流中獲得所述子圖像塊的預測方向,所述像素值獲得模塊是根據(jù)所述預測方向和所述編碼后的殘差數(shù)據(jù)對所述子圖像塊進行解碼。
24.如權(quán)利要求21中所述的解碼裝置,其特征在于,所述根據(jù)碼流中的所述用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識,來判斷是否對所述子圖像塊進行進一步的劃分包括如果碼流中不存在所述用于指示所述當前幀內(nèi)解碼對象的子圖像塊是否需要劃分的標識,則所述子圖像塊不需要進行進一步的劃分。
全文摘要
本發(fā)明實施例提供一種多圖像塊劃分方式的編碼方法,包括確定圖像塊的劃分方式和劃分方向;根據(jù)所述劃分方式和劃分方向?qū)λ鰣D像塊進行劃分,得到沿水平方向或垂直方向依次排列的子圖像塊;確認所述子圖像塊是否還需要再進行劃分,如果不需要的話,則根據(jù)所述子圖像塊對所述幀內(nèi)編碼對象進行預測,得到殘差數(shù)據(jù);對所述殘差數(shù)據(jù)進行變換、量化和熵編碼,以得到編碼后的殘差數(shù)據(jù);將所述圖像塊的劃分方式、所述圖像塊的劃分方向、以及所述用于指示所述子圖像塊是否需要劃分的標識,以及所述編碼后的殘差數(shù)據(jù)寫入碼流中。采用本發(fā)明實施例所提供的編解碼方法,當圖像塊在水平方向或垂直方向的像素值的變化較小時,可以得到更佳的預測準度。
文檔編號H04N7/50GK102595116SQ20111000765
公開日2012年7月18日 申請日期2011年1月14日 優(yōu)先權(quán)日2011年1月14日
發(fā)明者何蕓, 劉凌志, 曹瀟然, 林永兵, 賴昌材 申請人:華為技術(shù)有限公司, 清華大學