編解碼方法和裝置的制造方法
【技術領域】
[0001] 本發明涉及圖像處理領域,并且更具體地,涉及編解碼方法和裝置。
【背景技術】
[0002] 視頻壓縮編碼技術在多媒體服務、廣播通信、視頻通信、存儲等領域都有 廣泛應用。由國際電信聯盟電信標準化組(InternationalTelecommunication Union-Telecommunicationstandardizationsector,ITU-T)和國際標準化組 織(InternationalOrganizationforStandardization,ISO) / 國際電工委員會 (InternationalElectrotechnicalCommission,IEC)聯合開發的H. 264 和先進視頻編碼 (AdvancedVideoCoding,AVC)標準是現今應用最廣泛的視頻編碼標準,然而H. 264/AVC不 適用于高分辨率視頻的壓縮編碼。隨著人們對高清、超高清以及3D視頻的需求不斷增大, 視頻編碼聯合工作組(JointCollaborativeTeamonVideoCoding,JCT-VC)提出了高效 視頻編碼標準(HighEfficiencyVideoCoding,HEVC),其壓縮效率相對于H. 264/AVC提高 了大約50%。
[0003] 在HEVC標準中,待編碼圖像被劃分為不重疊的圖像塊,編碼器按行掃描依次處理 每一個圖像塊,上述圖像塊可以進一步劃分為多個子塊,而每個子塊可獨立確定其編碼參 數。在HEVC慣用術語中,上述不重疊的圖像塊被稱為編碼樹單元(CodingTreeUnit,CTU), 其大小一般設置為64x64像素。可采用一種四叉樹的結構將CTU進一步劃分為多個所述子 塊,在HEVC中通常稱作編碼單元(CodingUnit,⑶)。一個CTU內部的⑶以Z字形掃描的 順序編碼,一幀內的所有CTU以行掃描的順序編碼。HEVC中的幀內預測模式包括直流預測, 平面預測和角度預測,待編碼塊使用左面和上面已重建的編碼塊塊作為參考進行預測,已 重建塊中用來進行預測的像素稱為參考像素。直流預測適用于圖像中紋理平坦區域的塊, 塊中所有像素使用參考像素的平均值作為預測值。平面預測使用參考像素進行雙線性插值 得到塊中所有像素的預測值,因此適用于紋理平滑變化的塊。角度預測利用當前編碼塊包 含的紋理與鄰近已重建塊高度相關的特性,沿某一角度以復制對應參考像素的值作為當前 塊中的像素的預測值。
[0004] 在H. 264/AVC標準中,編碼塊被稱為宏塊(MacroBlock,MB),宏塊的大小固定為 16X16像素,每個宏塊只能劃分為4X4、8X8或16X16的子宏塊(SubMacroBlock,SMB) 進行預測編碼。其中,MB和SMB分別對應于HEVC中的CTU和⑶。MB的編碼順序與CTU相 類似,都是以行掃描的順序編碼,SMB的編碼順序也是Z字形逐行掃描。H. 264/AVC中幀內 預測也是采用均值預測和角度預測,但最多只有9種預測模式。
[0005] 也就是說,在傳統的視頻編碼標準編碼一幅圖像時,先將待編碼圖像劃分為不重 疊的編碼塊,然后以固定的順序(行掃描順序)依次編碼每一塊,從而編碼壓縮效率較低。
【發明內容】
[0006] 本發明實施例提供一種編解碼方法和裝置,能夠充分利用視頻信息中的空間相關 性,從而提高編解碼中的壓縮效率。
[0007] 第一方面,提供了一種編碼方法,包括:根據目標圖像的總編碼代價確定所述目標 圖像包含的多個編碼塊組的第一處理次序;根據所述第一處理次序對所述多個編碼塊組中 的編碼塊組進行編碼以生成碼流;并且將所述第一處理次序寫入所述碼流。
[0008] 結合第一方面,在第一方面的第一種實現方式中,根據目標圖像的總編碼代價確 定所述目標圖像包含的多個編碼塊組的第一處理次序,包括:確定所述多個編碼塊組的所 有處理次序中每種處理次序對應的總編碼代價,其中所述每種處理次序對應的總編碼代價 為所述多個編碼塊組按照所述每種處理次序進行編碼的編碼代價之和;確定所述每種處理 次序對應的總編碼代價中的最小總編碼代價對應的處理次序為所述第一處理次序。
[0009] 結合第一方面及其上述實現方式,在第一方面的第二種實現方式中,所述根據所 述第一處理次序對所述多個編碼塊組中的編碼塊組進行編碼以生成碼流,包括:根據所述 第一處理次序確定所述編碼塊組包含的多個編碼塊的處理次序;根據所述第一處理次序和 所述編碼塊組包含的多個編碼塊的處理次序對所述編碼塊組進行編碼。
[0010] 結合第一方面及其上述實現方式,在第一方面的第三種實現方式中,所述根據所 述第一處理次序確定所述編碼塊組包含的多個編碼塊的處理次序之前,還包括:確定編碼 塊的多種候選處理次序;并且確定所述多種候選處理次序與多種位置關系的對應關系,其 中所述多種位置關系為當前處理的編碼塊組與和所述當前處理的編碼塊組相鄰的已處理 的編碼塊組的多種相對位置關系。
[0011] 結合第一方面及其上述實現方式,在第一方面的第四種實現方式中,所述根據所 述第一處理次序確定所述編碼塊組包含的多個編碼塊的處理次序,包括:根據所述第一處 理次序確定所述編碼塊組與和所述編碼塊組相鄰的已處理的編碼塊組的相對位置關系;并 且根據所述對應關系和所述相對位置關系確定所述編碼塊組包含的多個編碼塊的處理次 序。
[0012] 結合第一方面及其上述實現方式,在第一方面的第五種實現方式中,確定編碼塊 的多種候選處理次序,包括:使用預先設定的編碼塊的多種候選處理次序。
[0013] 結合第一方面及其上述實現方式,在第一方面的第六種實現方式中,所述根據所 述第一處理次序確定所述編碼塊組包含的多個編碼塊的處理次序,包括:根據所述第一處 理次序確定所述編碼塊組與和所述編碼塊組相鄰的已處理的編碼塊組的相對位置關系;并 且根據預設的多種候選處理次序與多種位置關系的對應關系和所述相對位置關系確定所 述編碼塊組包含的多個編碼塊的處理次序,其中所述多種位置關系為當前處理的編碼塊組 與和所述當前處理的編碼塊組相鄰的已處理的編碼塊組的多種相對位置關系。
[0014] 結合第一方面及其上述實現方式,在第一方面的第七種實現方式中,所述將所述 第一處理次序寫入所述碼流,包括:根據所述第一處理次序排列所述編碼塊組的索引;編 碼經過排列的所述編碼塊組的索引并寫入所述碼流;或者根據所述第一處理次序排列所述 編碼塊組的坐標;編碼經過排列的所述編碼塊組的坐標并寫入所述碼流。
[0015] 結合第一方面及其上述實現方式,在第一方面的第八種實現方式中,所述編碼塊 組的編碼代價包含以下至少一種:編碼所述編碼塊組消耗的比特數;所述編碼塊組的失 真。
[0016] 第二方面,提供了一種解碼方法,包括:從碼流中獲取目標圖像的多個編碼塊組的 第一處理次序;根據所述第一處理次序確定所述多個編碼塊組中的編碼塊組包含的多個編 碼塊的處理次序;根據所述第一處理次序和所述編碼塊組包含的多個編碼塊的處理次序解 碼所述碼流。
[0017] 結合第二方面,在第二方面的第一種實現方式中,所述根據所述第一處理次序確 定所述多個編碼塊組中的編碼塊組包含的多個編碼塊的處理次序之前,還包括:確定編碼 塊的多種候選處理次序;并且確定所述多種候選處理次序與多種位置關系的對應關系,其 中所述多種位置關系為當前處理的編碼