視頻編碼方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及視頻壓縮技術(shù)領(lǐng)域,特別涉及一種視頻編碼方法及裝置。
【背景技術(shù)】
[0002]隨著社會的不斷進(jìn)步,各種類型的視頻大量涌現(xiàn),豐富了人們的日常工作和學(xué)習(xí)。在制作視頻時,一個視頻通常包含的數(shù)據(jù)量巨大,這對存儲該視頻及傳輸該視頻均造成了很大的困擾。例如,一張DVD (Digital Versatile Disc,數(shù)字多功能光盤)僅能存儲時長為幾秒鐘的視頻,而I兆的帶寬傳輸時長為I秒的視頻會需要大約4分鐘。無論是基于成本還是用戶體驗(yàn)度的考慮,上述存儲及傳輸視頻的方式均有很多弊端。因此,為了解決視頻存儲及傳輸困難的問題,如何對視頻進(jìn)行編碼,以降低視頻的數(shù)據(jù)量,成為了本領(lǐng)域技術(shù)人員一個亟待解決的問題。
[0003]現(xiàn)有技術(shù)在對視頻進(jìn)行編碼時,通常以宏塊為編碼單位,每個宏塊的大小為16X16。經(jīng)由預(yù)測編碼、變換編碼、量化及熵編碼四個過程實(shí)現(xiàn)對當(dāng)前編碼塊的編碼,而預(yù)測編碼又分為幀間預(yù)測編碼及幀內(nèi)預(yù)測編碼。
[0004]針對幀間預(yù)測編碼,在對當(dāng)前編碼塊進(jìn)行編碼之前,先在各個預(yù)測模式下根據(jù)參考塊預(yù)測得到預(yù)測塊,并計算當(dāng)前編碼塊與預(yù)測塊之間的殘差數(shù)據(jù);之后,根據(jù)各個預(yù)測模式下的殘差數(shù)據(jù)及當(dāng)前編碼塊的紋理復(fù)雜度信息確定當(dāng)前編碼塊的最佳預(yù)測模式。之后,根據(jù)確定的當(dāng)前編碼塊的最佳預(yù)測模式,得到參考塊與預(yù)測塊之間的殘差數(shù)據(jù),并對當(dāng)前編碼塊與預(yù)測塊之間的殘差數(shù)據(jù)依次進(jìn)行變換編碼、量化編碼及熵編碼,得到編碼結(jié)果,完成當(dāng)前編碼塊的編碼。
[0005]針對幀內(nèi)預(yù)測編碼,在對當(dāng)前編碼塊進(jìn)行編碼之前,先根據(jù)當(dāng)前編碼塊中各個像素的亮度值獲取當(dāng)前編碼塊的紋理豐富程度;其次,根據(jù)當(dāng)前編碼塊的紋理豐富程度選擇當(dāng)前編碼塊的亮度預(yù)測策略;之后,根據(jù)當(dāng)前編碼塊的紋理方向性在選擇的當(dāng)前編碼塊的亮度預(yù)測策略中確定當(dāng)前編碼塊的最佳亮度預(yù)測模式,并根據(jù)當(dāng)前編碼塊的紋理方向性在當(dāng)前編碼塊的色度預(yù)測策略中確定當(dāng)前編碼塊的最佳色度預(yù)測模式。之后,在確定的當(dāng)前編碼塊的最佳亮度預(yù)測模式及最佳色度預(yù)測模式下,根據(jù)參考塊預(yù)測得到預(yù)測塊,并計算當(dāng)前編碼塊與預(yù)測塊之間的殘差數(shù)據(jù)。最后,對參考塊與預(yù)測塊之間的殘差數(shù)據(jù)依次進(jìn)行變換編碼、量化編碼及熵編碼,得到編碼結(jié)果,完成當(dāng)前編碼塊的編碼。
[0006]針對現(xiàn)有技術(shù)中的視頻編碼方式,由于在進(jìn)行幀間預(yù)測編碼時僅利用了當(dāng)前編碼塊的紋理復(fù)雜度信息,而在進(jìn)行幀內(nèi)預(yù)測編碼時僅利用了紋理方向性信息,因此,在根據(jù)參考塊對當(dāng)前編碼塊進(jìn)行編碼的過程中,當(dāng)前編碼塊與參考塊之間的殘差數(shù)據(jù)較大,進(jìn)而對視頻的編碼比特率和視覺質(zhì)量造成不良影響。
【發(fā)明內(nèi)容】
[0007]為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實(shí)施例提供了一種視頻編碼方法及裝置。所述技術(shù)方案如下:
[0008]第一方面,提供了一種視頻編碼方法,所述方法包括:
[0009]確定當(dāng)前編碼塊的參考塊;
[0010]根據(jù)所述參考塊判斷所述當(dāng)前編碼塊是否滿足鏡像編碼條件;
[0011]如果所述當(dāng)前編碼塊滿足鏡像編碼條件,則根據(jù)所述參考塊的鏡像紋理塊對所述當(dāng)前編碼塊進(jìn)行編碼;
[0012]其中,所述鏡像紋理塊由所述參考塊做鏡像處理得到。
[0013]在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述確定當(dāng)前編碼塊的參考塊,包括:
[0014]當(dāng)所述當(dāng)前編碼塊為幀內(nèi)編碼幀的子塊時,將所述當(dāng)前編碼塊所在幀中所述當(dāng)前編碼塊的相鄰塊確定為所述當(dāng)前編碼塊的參考塊;
[0015]當(dāng)所述當(dāng)前編碼塊為幀間編碼幀的子塊時,將所述當(dāng)前編碼塊所在幀的參考幀中與所述當(dāng)前編碼塊相匹配的編碼塊確定為所述當(dāng)前編碼塊的參考塊。
[0016]結(jié)合第一方面,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述參考塊判斷所述當(dāng)前編碼塊是否滿足鏡像編碼條件,包括:
[0017]計算所述當(dāng)前編碼塊與所述參考塊之間的紋理對稱性強(qiáng)度;
[0018]判斷所述紋理對稱性強(qiáng)度是否大于閾值;
[0019]如果所述紋理對稱性強(qiáng)度大于閾值,則確定所述當(dāng)前編碼塊滿足所述鏡像編碼條件。
[0020]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述計算所述當(dāng)前編碼塊與所述參考塊之間的紋理對稱性強(qiáng)度,包括:
[0021]在所述參考塊對應(yīng)進(jìn)行鏡像處理的方向上,計算所述當(dāng)前編碼塊與所述參考塊之間的各個對應(yīng)位置上的像素值相等的像素點(diǎn)數(shù)占全部像素點(diǎn)數(shù)的百分比。
[0022]結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述參考塊的鏡像紋理塊對所述當(dāng)前編碼塊進(jìn)行編碼之前,所述方法還包括:
[0023]對所述參考塊進(jìn)行所述參考塊對應(yīng)進(jìn)行鏡像處理方向上的鏡像處理,得到所述參考塊的鏡像紋理塊。
[0024]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述計算所述當(dāng)前編碼塊與所述參考塊之間的紋理對稱性強(qiáng)度,包括:
[0025]在至少一個預(yù)設(shè)方向上,計算所述當(dāng)前編碼塊與所述參考塊之間的各個對應(yīng)位置上的像素值相等的像素點(diǎn)數(shù)占全部像素點(diǎn)數(shù)的百分比。
[0026]結(jié)合第一方面的第五種可能的實(shí)現(xiàn)方式,在第一方面的第六種可能的實(shí)現(xiàn)方式中,所述判斷所述紋理對稱性強(qiáng)度是否大于閾值,包括:
[0027]在計算的所有紋理對稱性強(qiáng)度中確定紋理對稱性強(qiáng)度最大值;
[0028]判斷所述紋理對稱性強(qiáng)度最大值是否大于所述閾值。
[0029]結(jié)合第一方面的第六種可能的實(shí)現(xiàn)方式,在第一方面的第七種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述參考塊的鏡像紋理塊對所述當(dāng)前編碼塊進(jìn)行編碼之前,所述方法還包括:
[0030]確定所述紋理對稱性強(qiáng)度最大值對應(yīng)的預(yù)設(shè)方向,并對所述參考塊進(jìn)行所述紋理對稱性強(qiáng)度最大值對應(yīng)的預(yù)設(shè)方向上的鏡像處理,得到所述參考塊的鏡像紋理塊。
[0031]結(jié)合第一方面,在第一方面的第八種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述參考塊判斷所述當(dāng)前編碼塊是否滿足鏡像編碼條件,包括:
[0032]根據(jù)所述參考塊對所述當(dāng)前編碼塊進(jìn)行預(yù)測,得到第一預(yù)測編碼塊;
[0033]對所述參考塊進(jìn)行所述參考塊對應(yīng)方向上的鏡像處理,得到所述參考塊的鏡像紋理塊;
[0034]根據(jù)所述鏡像紋理塊對所述當(dāng)前編碼塊進(jìn)行預(yù)測,得到第二預(yù)測編碼塊;
[0035]計算所述當(dāng)前編碼塊與所述第一預(yù)測編碼塊之間的第一殘差數(shù)據(jù)、所述當(dāng)前編碼塊與所述第二預(yù)測編碼塊之間的第二殘差數(shù)據(jù);
[0036]判斷所述第二殘差數(shù)據(jù)是否小于所述第一殘差數(shù)據(jù);
[0037]如果所述第二殘差數(shù)據(jù)小于所述第一殘差數(shù)據(jù),則判斷所述當(dāng)前編碼塊滿足所述鏡像編碼條件。
[0038]結(jié)合第一方面,在第一方面的第九種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述參考塊判斷所述當(dāng)前編碼塊是否滿足鏡像編碼條件,包括:
[0039]根據(jù)所述參考塊對所述當(dāng)前編碼塊進(jìn)行預(yù)測,得到第一預(yù)測編碼塊;
[0040]對所述參考塊進(jìn)行至少一個預(yù)設(shè)方向上的鏡像處理,得到所述參考塊在各個預(yù)設(shè)方向上的鏡像紋理塊;
[0041]根據(jù)所述參考塊在各個預(yù)設(shè)方向上的鏡像紋理塊分別對所述當(dāng)前編碼塊進(jìn)行預(yù)測,得到所述各個預(yù)設(shè)方向?qū)?yīng)的預(yù)測編碼塊;
[0042]計算所述當(dāng)前編碼塊與所述第一預(yù)測編碼塊之間的第一殘差數(shù)據(jù),并計算所述各個預(yù)設(shè)方向?qū)?yīng)的預(yù)測編碼塊分別與所述當(dāng)前編碼塊之間的殘差數(shù)據(jù),并將數(shù)值最小的殘差數(shù)據(jù)作為第三殘差數(shù)據(jù);
[0043]判斷所述第三殘差數(shù)據(jù)是否小于所述第一殘差數(shù)據(jù);
[0044]如果所述第三殘差數(shù)據(jù)小于所述第一殘差數(shù)據(jù),則判斷所述當(dāng)前編碼塊滿足所述鏡像編碼條件。
[0045]結(jié)合第一方面的第九種可能的實(shí)現(xiàn)方式,在第一方面的第十種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述鏡像紋理塊對所述當(dāng)前編碼塊進(jìn)行編碼,包括:
[0046]根據(jù)所述第三殘差數(shù)據(jù)對應(yīng)的鏡像紋理塊對所述當(dāng)前編碼塊進(jìn)行編碼。
[0047]第二方面,提供了一種視頻編碼裝置,所述裝置包括:
[0048]確定模塊,用于確定當(dāng)前編碼塊的參考塊;
[0049]判斷模塊,用于根據(jù)所述確定模塊確定的參考塊判斷所述當(dāng)前編碼塊是否滿足鏡像編碼條件;
[0050]編碼模塊,用于當(dāng)所述判斷模塊判斷當(dāng)前編碼塊滿足鏡像編碼條件時,根據(jù)所述參考塊的鏡像紋理塊對所述當(dāng)前編碼塊進(jìn)行編碼;
[0051 ] 其中,所述鏡像紋理塊由所述參考塊做鏡像處理得到。
[0052]在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述確定模塊用于當(dāng)所述當(dāng)前編碼塊為幀內(nèi)編碼幀的子塊時,將所述當(dāng)前編碼塊所在幀中所述當(dāng)前編碼塊的相鄰塊確定為所述當(dāng)前編碼塊的參考塊;當(dāng)所述當(dāng)前編碼塊為幀間編碼幀的子塊時,將所述當(dāng)前編碼塊所在幀的參考幀中與所述當(dāng)前編碼塊相匹配的編碼塊確定為所述當(dāng)前編碼塊的參考塊。
[0053]結(jié)合第二方面,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述判斷模塊,包括:
[0054]第一計算單元,用于計算所述當(dāng)前編碼塊與所述參考塊之間的紋理對稱性強(qiáng)度;
[0055]第一判斷單元,用于判斷所述第一計算單元計算的紋理對稱性強(qiáng)度是否大于閾值;
[0056]第一確定單元,用于當(dāng)所述第一判斷單元判斷紋理對稱性強(qiáng)度大于閾值時,確定所述當(dāng)前編碼塊滿足所述鏡像編碼條件。
[0057]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述第一計算單元,用于在所述參考塊對應(yīng)進(jìn)行鏡像處理的方向上,計算所述當(dāng)前編碼塊與所述參考塊之間的各個對應(yīng)位置上的像素值相等的像素點(diǎn)數(shù)占全部像素點(diǎn)數(shù)的百分比。
[0058]結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述判斷1吳塊,包括:
[0059]第一處理單元,用于對所述參考塊進(jìn)行所述參考塊對應(yīng)進(jìn)行鏡像處理方向上的鏡像處理,得到所述參考塊的鏡像紋理塊。
[0060]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第二方面的第五種可能的實(shí)現(xiàn)方式中,所述第一計算單元,用于在至少一個預(yù)設(shè)方向上計算所述當(dāng)前編碼塊與所述參考塊之間的各個對應(yīng)位置上的像素值相等的像素點(diǎn)數(shù)占全部像素點(diǎn)數(shù)的百分比。
[0061]結(jié)合第二方面的第五種可能的實(shí)現(xiàn)方式,在第二方面的第六種可能的