執(zhí)行視頻編碼的裝置及方法
【專利摘要】本發(fā)明提供了一種執(zhí)行視頻編碼的裝置及方法,所述裝置包括:幀類型判斷單元,用于判斷視頻的原始圖像幀中的當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀;宏塊劃分模式確定單元,用于從多個(gè)宏塊劃分模式中確定幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式和幀間預(yù)測(cè)圖像幀的宏塊劃分模式;預(yù)測(cè)單元,用于在確定的幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀內(nèi)預(yù)測(cè)圖像幀進(jìn)行幀內(nèi)預(yù)測(cè),并在確定的幀間預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀間預(yù)測(cè)圖像幀進(jìn)行幀間預(yù)測(cè);編碼單元,用于對(duì)幀內(nèi)預(yù)測(cè)后的幀內(nèi)預(yù)測(cè)圖像幀和幀間預(yù)測(cè)后的幀間預(yù)測(cè)圖像幀進(jìn)行變換、量化和編碼,以得到編碼后的當(dāng)前圖像幀。根據(jù)所述裝置和方法,能夠在很大程度上提高編碼過程的速度。
【專利說明】執(zhí)行視頻編碼的裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及視頻編碼技術(shù),更具體地講,涉及一種執(zhí)行視頻編碼的裝置及方法。
【背景技術(shù)】
[0002]隨著多媒體信號(hào)處理技術(shù)的飛速發(fā)展,出現(xiàn)了很多用于執(zhí)行視頻編碼的裝置和方法。
[0003]在現(xiàn)有的視頻編碼方案中,無論執(zhí)行幀內(nèi)預(yù)測(cè)還是幀間預(yù)測(cè),均需要進(jìn)行宏塊劃分。具體說來,根據(jù)不同的宏塊劃分模式,每個(gè)幀內(nèi)預(yù)測(cè)圖像幀或幀間預(yù)測(cè)圖像幀可被劃分為多個(gè)宏塊,這里,不同的宏塊劃分模式對(duì)應(yīng)于不同的宏塊大小。例如,根據(jù)16X16的宏塊劃分模式所劃分出的每個(gè)宏塊可包含16 X 16個(gè)像素點(diǎn)。
[0004]在現(xiàn)有的視頻編碼方案中,為了確定宏塊劃分模式,將串行地針對(duì)各個(gè)宏塊進(jìn)行運(yùn)算,這種方式不僅速度慢,且執(zhí)行過程復(fù)雜繁瑣,編碼效率比較低下。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的示例性實(shí)施例在于提供了一種執(zhí)行視頻編碼的裝置和方法,通過所述裝置和方法,可提高編碼速度。
[0006]根據(jù)本發(fā)明的一方面,提出了一種執(zhí)行視頻編碼的裝置,所述裝置包括:幀類型判斷單元,用于判斷視頻的原始圖像幀中的當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀;宏塊劃分模式確定單元,用于從多個(gè)宏塊劃分模式中確定幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式和幀間預(yù)測(cè)圖像幀的宏塊劃分模式;預(yù)測(cè)單元,用于在確定的幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀內(nèi)預(yù)測(cè)圖像幀進(jìn)行幀內(nèi)預(yù)測(cè),并在確定的幀間預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀間預(yù)測(cè)圖像幀進(jìn)行幀間預(yù)測(cè);編碼單元,用于對(duì)幀內(nèi)預(yù)測(cè)后的幀內(nèi)預(yù)測(cè)圖像幀和幀間預(yù)測(cè)后的幀間預(yù)測(cè)圖像幀進(jìn)行變換、量化和編碼,以得到編碼后的當(dāng)前圖像幀,其中,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,宏塊劃分模式確定單元利用圖形處理器的多個(gè)線程并行地計(jì)算幀內(nèi)預(yù)測(cè)圖像幀在所述每一個(gè)宏塊劃分模式下劃分的所有宏塊各自的最小匹配誤差,將所有宏塊各自的最小匹配誤差求和以獲得幀內(nèi)預(yù)測(cè)圖像幀的宏塊匹配誤差和,并將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式;并且,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,宏塊劃分模式確定單元利用圖形處理器的多個(gè)線程并行地計(jì)算幀間預(yù)測(cè)圖像幀在所述每一個(gè)宏塊劃分模式下劃分的所有宏塊各自的最小匹配誤差,將所有宏塊各自的最小匹配誤差求和以獲得幀間預(yù)測(cè)圖像幀的宏塊匹配誤差和,并將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀間預(yù)測(cè)圖像幀的宏塊劃分模式。
[0007]在所述裝置中,宏塊劃分模式確定單元可將以下各項(xiàng)中的至少一個(gè)分別存儲(chǔ)于圖形處理器的顯存中的紋理內(nèi)存,并利用圖形處理器的多個(gè)線程基于紋理內(nèi)存中存儲(chǔ)的所述以下各項(xiàng)中的至少一個(gè)來確定幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式和幀間預(yù)測(cè)圖像幀的宏塊劃分模式:幀內(nèi)預(yù)測(cè)圖像幀的各個(gè)像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的各個(gè)像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的參考幀的各個(gè)像素點(diǎn)的像素值。
[0008]在所述裝置中,所述紋理內(nèi)存可包括第一通道、第二通道、第三通道和第四通道,并且,四個(gè)相鄰像素點(diǎn)的像素值被存儲(chǔ)在同一紋理中。
[0009]在所述裝置中,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,宏塊劃分模式確定單元可利用圖形處理器的多個(gè)線程并行地通過鉆石搜索方式確定幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊各自的幀內(nèi)匹配宏塊,其中,所述幀內(nèi)匹配宏塊是指針對(duì)幀內(nèi)預(yù)測(cè)圖像幀的每個(gè)宏塊,在幀內(nèi)預(yù)測(cè)圖像幀的鉆石搜索區(qū)域中與所述每個(gè)宏塊之間具有最小匹配誤差的宏塊,其中,宏塊劃分模式確定單元利用圖形處理器的所述多個(gè)線程計(jì)算幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊與各自的幀內(nèi)匹配宏塊之間的匹配誤差,作為幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊各自的最小匹配誤差;并且,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,宏塊劃分模式確定單元可利用圖形處理器的多個(gè)線程并行地通過鉆石搜索方式確定幀間預(yù)測(cè)圖像幀的所有宏塊各自的幀間匹配宏塊,其中,所述幀間匹配宏塊是指針對(duì)幀間預(yù)測(cè)圖像幀的每個(gè)宏塊,在幀間預(yù)測(cè)圖像幀的參考幀的鉆石搜索區(qū)域中與所述每個(gè)宏塊之間具有最小匹配誤差的宏塊,其中,宏塊劃分模式確定單元利用圖形處理器的所述多個(gè)線程計(jì)算幀間預(yù)測(cè)圖像幀的所有宏塊與各自的幀間匹配宏塊之間的匹配誤差,作為幀間預(yù)測(cè)圖像幀的所有宏塊各自的最小匹配誤差。
[0010]在所述裝置中,所述匹配誤差可為宏塊與各自的幀內(nèi)匹配宏塊或幀間匹配宏塊之間的像素值絕對(duì)誤差的和。
[0011]在所述裝置中,幀類型判斷單元可分別對(duì)當(dāng)前圖像幀和當(dāng)前圖像幀的前一幀進(jìn)行降采樣以得到當(dāng)前縮放幀和先前縮放幀,并基于當(dāng)前縮放幀與先前縮放幀之間的差異判斷當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀。
[0012]在所述裝置中,幀類型判斷單元可計(jì)算當(dāng)前縮放幀的所有宏塊與各自的匹配宏塊之間的匹配誤差,將所述所有宏塊與各自的匹配宏塊之間的匹配誤差求和以獲得當(dāng)前縮放幀的匹配誤差和,當(dāng)所述匹配誤差和大于預(yù)定縮放幀運(yùn)動(dòng)閾值時(shí),判斷當(dāng)前圖像幀為幀內(nèi)預(yù)測(cè)圖像幀,其中,所述匹配宏塊是指針對(duì)當(dāng)前縮放幀的每個(gè)宏塊,在先前縮放幀中與所述每個(gè)宏塊之間的匹配誤差小于預(yù)定宏塊運(yùn)動(dòng)閾值的對(duì)應(yīng)宏塊或在先前縮放幀中與所述每個(gè)宏塊之間的匹配誤差最小的宏塊。
[0013]在所述裝置中,幀類型判斷單元可通過鉆石搜索方式計(jì)算當(dāng)前縮放幀的所有宏塊與各自的匹配宏塊之間的匹配誤差。
[0014]在所述裝置中,所述裝置可還包括去塊濾波單元,用于對(duì)反量化和反變換后的當(dāng)前圖像幀進(jìn)行去塊濾波,以得到當(dāng)前圖像幀的重構(gòu)幀,其中,反量化和反變換后的當(dāng)前圖像幀通過編碼單元執(zhí)行的以下處理獲得:在對(duì)幀內(nèi)預(yù)測(cè)后的幀內(nèi)預(yù)測(cè)圖像幀和幀間預(yù)測(cè)后的幀間預(yù)測(cè)圖像幀進(jìn)行變換、量化之后,對(duì)得到的結(jié)果進(jìn)行反量化和反變換。
[0015]在所述裝置中,去塊濾波單元可將反量化和反變換后的當(dāng)前圖像幀劃分成包含16X16個(gè)像素點(diǎn)的多個(gè)宏塊,其中,去塊濾波單元利用圖形處理器的多個(gè)線程按照以下步驟并行地對(duì)所述多個(gè)宏塊進(jìn)行去塊濾波:(I)對(duì)宏塊中位于第O行到第15行并位于第9列到第14列的像素點(diǎn)進(jìn)行垂直濾波;(2)對(duì)宏塊中位于第9列到第15列并位于第9行到第12行的像素點(diǎn)進(jìn)行水平濾波;(3)對(duì)宏塊中位于第9列到第12列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波;(4)對(duì)宏塊中位于第9行到第15行并位于第O列到第8列和第13列到第15列的像素點(diǎn)進(jìn)行垂直濾波;(5)對(duì)宏塊中位于第13列到第15列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波;(6)對(duì)宏塊中位于第O行到第8行并位于第O列到第8列和第13列到第15列的像素點(diǎn)進(jìn)行垂直濾波;(7)對(duì)宏塊中位于第9行到第13行并位于第O列到第8列的像素點(diǎn)進(jìn)行水平濾波;(8)對(duì)宏塊中位于第O列到第8列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波。
[0016]根據(jù)本發(fā)明的另一方面,提供了一種執(zhí)行視頻編碼的方法,所述方法包括以下步驟:(a)判斷視頻的原始圖像幀中的當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀;
(b)從多個(gè)宏塊劃分模式中確定幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式和幀間預(yù)測(cè)圖像幀的宏塊劃分模式;(C)在確定的幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀內(nèi)預(yù)測(cè)圖像幀進(jìn)行幀內(nèi)預(yù)測(cè),并在確定的幀間預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀間預(yù)測(cè)圖像幀進(jìn)行幀間預(yù)測(cè);(d)對(duì)幀內(nèi)預(yù)測(cè)后的幀內(nèi)預(yù)測(cè)圖像幀和幀間預(yù)測(cè)后的幀間預(yù)測(cè)圖像幀進(jìn)行變換、量化和編碼,以得到編碼后的當(dāng)前圖像幀,其中,在步驟(b)中,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,利用圖形處理器的多個(gè)線程并行地計(jì)算幀內(nèi)預(yù)測(cè)圖像幀在所述每一個(gè)宏塊劃分模式下劃分的所有宏塊各自的最小匹配誤差,將所有宏塊各自的最小匹配誤差求和以獲得幀內(nèi)預(yù)測(cè)圖像幀的宏塊匹配誤差和,并將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式;并且,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,利用圖形處理器的多個(gè)線程并行地計(jì)算幀間預(yù)測(cè)圖像幀在所述每一個(gè)宏塊劃分模式下劃分的所有宏塊各自的最小匹配誤差,將所有宏塊各自的最小匹配誤差求和以獲得幀間預(yù)測(cè)圖像幀的宏塊匹配誤差和,并將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀間預(yù)測(cè)圖像幀的宏塊劃分模式。
[0017]在所述方法中,在步驟(b)中,可將以下各項(xiàng)中的至少一個(gè)分別存儲(chǔ)于圖形處理器的顯存中的紋理內(nèi)存,并利用圖形處理器的多個(gè)線程基于紋理內(nèi)存中存儲(chǔ)的所述以下各項(xiàng)中的至少一個(gè)來確定幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式和幀間預(yù)測(cè)圖像幀的宏塊劃分模式:將以下各項(xiàng)中的至少一個(gè)分別存儲(chǔ)于圖形處理器的顯存中的紋理內(nèi)存:幀內(nèi)預(yù)測(cè)圖像幀的各個(gè)像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的各個(gè)像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的參考幀的各個(gè)像素點(diǎn)的像素值。
[0018]在所述方法中,所述紋理內(nèi)存可包括第一通道、第二通道、第三通道和第四通道,并且,四個(gè)相鄰像素點(diǎn)的像素值被存儲(chǔ)在同一紋理中。
[0019]在所述方法中,在步驟(b)中,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,可通過利用圖形處理器的多個(gè)線程并行地通過鉆石搜索方式確定幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊各自的幀內(nèi)匹配宏塊,其中,所述幀內(nèi)匹配宏塊是指針對(duì)幀內(nèi)預(yù)測(cè)圖像幀的每個(gè)宏塊,在幀內(nèi)預(yù)測(cè)圖像幀的鉆石搜索區(qū)域中與所述每個(gè)宏塊之間具有最小匹配誤差的宏塊,其中,通過利用圖形處理器的所述多個(gè)線程計(jì)算幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊與各自的幀內(nèi)匹配宏塊之間的匹配誤差,作為幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊各自的最小匹配誤差;并且,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,可通過利用圖形處理器的多個(gè)線程并行地通過鉆石搜索方式確定幀間預(yù)測(cè)圖像幀的所有宏塊各自的幀間匹配宏塊,其中,所述幀間匹配宏塊是指針對(duì)幀間預(yù)測(cè)圖像幀的每個(gè)宏塊,在幀間預(yù)測(cè)圖像幀的參考幀的鉆石搜索區(qū)域中與所述每個(gè)宏塊之間具有最小匹配誤差的宏塊,其中,通過利用圖形處理器的所述多個(gè)線程計(jì)算幀間預(yù)測(cè)圖像幀的所有宏塊與各自的幀間匹配宏塊之間的匹配誤差,作為幀間預(yù)測(cè)圖像幀的所有宏塊各自的最小匹配誤差。
[0020]在所述方法中,所述匹配誤差可為宏塊與各自的幀內(nèi)匹配宏塊或幀間匹配宏塊之間的像素值絕對(duì)誤差的和。
[0021]在所述方法中,步驟(a)可包括:(al)分別對(duì)當(dāng)前圖像幀和當(dāng)前圖像幀的前一幀進(jìn)行降采樣以得到當(dāng)前縮放幀和先前縮放幀;(a2)基于當(dāng)前縮放幀與先前縮放幀之間的差異判斷當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀。
[0022]在所述方法中,步驟(a2)可包括:計(jì)算當(dāng)前縮放幀的所有宏塊與各自的匹配宏塊之間的匹配誤差,將所述所有宏塊與各自的匹配宏塊之間的匹配誤差求和以獲得當(dāng)前縮放幀的匹配誤差和,當(dāng)所述匹配誤差和大于預(yù)定縮放幀運(yùn)動(dòng)閾值時(shí),判斷當(dāng)前圖像幀為幀內(nèi)預(yù)測(cè)圖像幀,其中,所述匹配宏塊是指針對(duì)當(dāng)前縮放幀的每個(gè)宏塊,在先前縮放幀中與所述每個(gè)宏塊之間的匹配誤差小于預(yù)定宏塊運(yùn)動(dòng)閾值的對(duì)應(yīng)宏塊或在先前縮放幀中與所述每個(gè)宏塊之間的匹配誤差最小的宏塊。
[0023]在所述方法中,在步驟(a2)中,可通過鉆石搜索方式計(jì)算當(dāng)前縮放幀的所有宏塊與各自的匹配宏塊之間的匹配誤差。
[0024]在所述方法中,所述方法可還包括:(e)對(duì)反量化和反變換后的當(dāng)前圖像幀進(jìn)行去塊濾波,以得到當(dāng)前圖像幀的重構(gòu)幀,其中,反量化和反變換后的當(dāng)前圖像幀通過進(jìn)行以下處理后獲得:在對(duì)幀內(nèi)預(yù)測(cè)后的幀內(nèi)預(yù)測(cè)圖像幀和幀間預(yù)測(cè)后的幀間預(yù)測(cè)圖像幀進(jìn)行變換、量化之后,對(duì)得到的結(jié)果進(jìn)行反量化和反變換。
[0025]在所述方法中,在步驟(e)中,可將反量化和反變換后的當(dāng)前圖像幀劃分成包含16 X 16個(gè)像素點(diǎn)的多個(gè)宏塊,并利用圖形處理器的多個(gè)線程按照以下步驟并行地對(duì)所述多個(gè)宏塊進(jìn)行去塊濾波:(I)對(duì)宏塊中位于第O行到第15行并位于第9列到第14列的像素點(diǎn)進(jìn)行垂直濾波;(2)對(duì)宏塊中位于第9列到第15列并位于第9行到第12行的像素點(diǎn)進(jìn)行水平濾波;(3)對(duì)宏塊中位于第9列到第12列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波;(4)對(duì)宏塊中位于第9行到第15行并位于第O列到第8列和第13列到第15列的像素點(diǎn)進(jìn)行垂直濾波;(5)對(duì)宏塊中位于第13列到第15列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波;(6)對(duì)宏塊中位于第O行到第8行并位于第O列到第8列和第13列到第15列的像素點(diǎn)進(jìn)行垂直濾波;(7)對(duì)宏塊中位于第9行到第13行并位于第O列到第8列的像素點(diǎn)進(jìn)行水平濾波;(8)對(duì)宏塊中位于第O列到第8列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波。
[0026]在根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行視頻編碼的裝置和方法中,通過在確定宏塊劃分模式時(shí)采用并行的處理方式,可縮短確定宏塊劃分模式的處理時(shí)間,提高了編碼速度。
【專利附圖】
【附圖說明】
[0027]通過下面結(jié)合附圖對(duì)本發(fā)明的示例性實(shí)施例進(jìn)行的描述,本發(fā)明的上述和其他目的和特點(diǎn)將會(huì)變得更加清楚,其中:
[0028]圖1示出根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行視頻編碼的裝置的框圖;
[0029]圖2示出根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行視頻編碼的裝置中的預(yù)測(cè)單元的框圖;
[0030]圖3A和圖3B示出根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行鉆石搜索的模板的示例;
[0031]圖4示出根據(jù)本發(fā)明示例性實(shí)施例的紋理內(nèi)存的數(shù)據(jù)存儲(chǔ)方式的示例;
[0032]圖5示出根據(jù)本發(fā)明另一示例性實(shí)施例的紋理內(nèi)存的數(shù)據(jù)存儲(chǔ)方式的示例;
[0033]圖6A至圖6H示出根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行去塊濾波的示例;
[0034]圖7示出根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行視頻編碼的方法的流程圖;
[0035]圖8示出根據(jù)本發(fā)明示例性實(shí)施例的確定宏塊劃分模式的步驟的流程圖;
[0036]圖9示出根據(jù)本發(fā)明示例性實(shí)施例的對(duì)當(dāng)前圖像幀進(jìn)行預(yù)測(cè)的步驟的流程圖;
[0037]圖10示出根據(jù)本發(fā)明示例性實(shí)施例的判斷當(dāng)前圖像幀的預(yù)測(cè)類型的步驟的流程圖;
[0038]圖11示出根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行去塊濾波的步驟的流程圖。
【具體實(shí)施方式】
[0039]現(xiàn)將詳細(xì)參照本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中,相同的標(biāo)號(hào)始終指的是相同的部件。
[0040]圖1示出根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行視頻編碼的裝置的框圖。
[0041]如圖1所示,根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行視頻編碼的裝置可包括:幀類型判斷單元100、宏塊劃分模式確定單元200、預(yù)測(cè)單元300、編碼單元400。這些單元可由數(shù)字信號(hào)處理器、現(xiàn)場(chǎng)可編程門陣列等通用硬件處理器來實(shí)現(xiàn),也可通過專用芯片等專用硬件處理器來實(shí)現(xiàn),還可完全通過計(jì)算機(jī)程序來以軟件方式實(shí)現(xiàn),例如,被實(shí)現(xiàn)為安裝在多媒體編碼設(shè)備中用于執(zhí)行視頻編碼的各個(gè)模塊。這里,執(zhí)行視頻編碼時(shí)所遵循的視頻編碼標(biāo)準(zhǔn)可以是基于巾貞內(nèi)或巾貞間預(yù)測(cè)的視頻編碼標(biāo)準(zhǔn),例如,H.264視頻編碼標(biāo)準(zhǔn)、HEVC視頻編碼標(biāo)準(zhǔn)等。
[0042]具體說來,幀類型判斷單元100用于判斷視頻的原始圖像幀中的當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀。這里,作為示例,視頻的原始圖像幀中的各個(gè)圖像幀可具有YUV格式、RGB格式或各種其他圖像格式。
[0043]作為示例,幀類型判斷單元100可將原始圖像幀中的當(dāng)前圖像幀和當(dāng)前圖像幀的前一幀分別劃分為Z個(gè)宏塊,其中,Z為大于I的自然數(shù)。然后,幀類型判斷單元100基于當(dāng)前圖像幀的Z個(gè)宏塊和當(dāng)前圖像幀的前一幀的Z個(gè)宏塊之間的差異來判斷當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀。具體說來,幀類型判斷單元100可將與前一幀差異較大的當(dāng)前圖像幀判斷為幀內(nèi)預(yù)測(cè)圖像幀,并將與前一幀差異較小的當(dāng)前圖像幀判斷為幀間預(yù)測(cè)圖像幀。
[0044]宏塊劃分模式確定單元200用于從多個(gè)宏塊劃分模式中確定幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式和幀間預(yù)測(cè)圖像幀的宏塊劃分模式。
[0045]具體地講,當(dāng)幀類型判斷單元100判斷當(dāng)前圖像幀為幀內(nèi)預(yù)測(cè)圖像幀時(shí),針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,宏塊劃分模式確定單元200利用圖形處理器的多個(gè)線程并行地計(jì)算幀內(nèi)預(yù)測(cè)圖像幀在所述每一個(gè)宏塊劃分模式下劃分的所有宏塊各自的最小匹配誤差,將所有宏塊各自的最小匹配誤差求和以獲得幀內(nèi)預(yù)測(cè)圖像幀的宏塊匹配誤差和,并將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式。當(dāng)幀類型判斷單元100判斷當(dāng)前圖像幀為幀間預(yù)測(cè)圖像幀時(shí),針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,宏塊劃分模式確定單元200利用圖形處理器的多個(gè)線程并行地計(jì)算幀間預(yù)測(cè)圖像幀在所述每一個(gè)宏塊劃分模式下劃分的所有宏塊各自的最小匹配誤差,將所有宏塊各自的最小匹配誤差求和以獲得幀間預(yù)測(cè)圖像幀的宏塊匹配誤差和,并將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀間預(yù)測(cè)圖像幀的宏塊劃分模式。
[0046]作為示例,宏塊劃分模式可表示為PXQ,其指示相應(yīng)劃分的宏塊大小為PXQ,其中,P表示宏塊中每行的像素點(diǎn)個(gè)數(shù),P為16或8 ;0表示宏塊中每列像素點(diǎn)的個(gè)數(shù),Q為16或8。相應(yīng)地,宏塊劃分模式可進(jìn)一步表示為16X16、16X8、8X16或8X8,即,每個(gè)宏塊可包含16X16、16X8、8X16或8X8個(gè)像素點(diǎn)。
[0047]例如,宏塊劃分模式確定單元200可計(jì)算幀內(nèi)預(yù)測(cè)圖像幀或幀間預(yù)測(cè)圖像幀分別在16X 16、16X8、8X 16、8X8這四種宏塊劃分模式下的宏塊匹配誤差和,并將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀內(nèi)預(yù)測(cè)圖像幀或幀間預(yù)測(cè)圖像幀的宏塊劃分模式。
[0048]預(yù)測(cè)單元300用于在確定的幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀內(nèi)預(yù)測(cè)圖像幀進(jìn)行幀內(nèi)預(yù)測(cè),并在確定的幀間預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀間預(yù)測(cè)圖像幀進(jìn)行幀間預(yù)測(cè)。
[0049]作為示例,以下參照?qǐng)D2來描述根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行視頻編碼的裝置中的預(yù)測(cè)單元300的示例性結(jié)構(gòu)。
[0050]圖2示出根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行視頻編碼的裝置中的預(yù)測(cè)單元的框圖。參照?qǐng)D2,根據(jù)本發(fā)明示例性實(shí)施例的預(yù)測(cè)單元300可包括:運(yùn)動(dòng)估計(jì)單元301、運(yùn)動(dòng)補(bǔ)償單元302和幀內(nèi)預(yù)測(cè)單元303。
[0051]具體地講,運(yùn)動(dòng)估計(jì)單元301用于在確定的幀間預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀間預(yù)測(cè)圖像幀進(jìn)行運(yùn)動(dòng)估計(jì),以得到運(yùn)動(dòng)估計(jì)后的幀間預(yù)測(cè)圖像幀。
[0052]作為示例,運(yùn)動(dòng)估計(jì)單元301可搜索幀間預(yù)測(cè)圖像幀在確定的宏塊劃分模式下劃分的各個(gè)宏塊在幀間預(yù)測(cè)圖像幀的參考幀中的匹配宏塊,計(jì)算各個(gè)宏塊相對(duì)于各自的匹配宏塊的位置移動(dòng)以作為所述各個(gè)宏塊的運(yùn)動(dòng)矢量。這里,幀間預(yù)測(cè)圖像幀的每個(gè)宏塊與它的匹配宏塊之間具有最小匹配誤差。
[0053]運(yùn)動(dòng)補(bǔ)償單元302用于在確定的幀間預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)運(yùn)動(dòng)估計(jì)后的幀間預(yù)測(cè)圖像幀進(jìn)行運(yùn)動(dòng)補(bǔ)償,以得到運(yùn)動(dòng)補(bǔ)償后的幀間預(yù)測(cè)圖像幀。
[0054]作為示例,運(yùn)動(dòng)補(bǔ)償單元302可基于運(yùn)動(dòng)估計(jì)的結(jié)果來產(chǎn)生幀間預(yù)測(cè)圖像幀的預(yù)測(cè)幀,并獲取幀間預(yù)測(cè)圖像幀與它的預(yù)測(cè)幀之間的殘差信息。
[0055]幀內(nèi)預(yù)測(cè)單元303用于在確定的幀內(nèi)預(yù)測(cè)圖像的宏塊劃分模式下對(duì)幀內(nèi)預(yù)測(cè)圖像幀進(jìn)行幀內(nèi)預(yù)測(cè),以得到幀內(nèi)預(yù)測(cè)后的幀內(nèi)預(yù)測(cè)圖像幀。
[0056]作為示例,幀內(nèi)預(yù)測(cè)單元303可在確定的幀內(nèi)預(yù)測(cè)圖像的宏塊劃分模式下對(duì)幀內(nèi)預(yù)測(cè)圖像幀的各個(gè)宏塊進(jìn)行幀內(nèi)預(yù)測(cè),具體說來,幀內(nèi)預(yù)測(cè)單元303可利用幀內(nèi)預(yù)測(cè)圖像幀中的已編碼像素點(diǎn)來預(yù)測(cè)幀內(nèi)預(yù)測(cè)圖像幀中的待編碼像素點(diǎn)。例如,假設(shè)幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式為4X4,因此,待編碼宏塊的像素值可由與待編碼宏塊在空間位置上最接近的已編碼像素點(diǎn)的像素值加權(quán)求和得到。
[0057]應(yīng)該理解,上述對(duì)運(yùn)動(dòng)估計(jì)、運(yùn)動(dòng)補(bǔ)償、幀內(nèi)預(yù)測(cè)的描述僅作為示例,本領(lǐng)域技術(shù)人員可采用適當(dāng)?shù)姆绞絹韴?zhí)行上述處理,例如,運(yùn)動(dòng)補(bǔ)償可通過全局運(yùn)動(dòng)補(bǔ)償、分塊運(yùn)動(dòng)補(bǔ)償、可變分塊運(yùn)動(dòng)補(bǔ)償或重疊分塊運(yùn)動(dòng)補(bǔ)償?shù)确绞絹韺?shí)現(xiàn)。
[0058]再次參照?qǐng)D1,編碼單元400用于對(duì)幀內(nèi)預(yù)測(cè)后的幀內(nèi)預(yù)測(cè)圖像幀和幀間預(yù)測(cè)后的幀間預(yù)測(cè)圖像幀進(jìn)行變換、量化和編碼,以得到編碼后的當(dāng)前圖像幀。
[0059]作為示例,所述變換可包括離散余弦變換、離散傅里葉變換、小波變換等。所述編碼可包括熵編碼(例如,香農(nóng)編碼、哈夫曼編碼、算術(shù)編碼)等。
[0060]可以看出,通過在確定宏塊劃分模式時(shí)采用并行的處理方式,可縮短確定宏塊劃分模式的處理時(shí)間,提高了編碼速度。
[0061]以下,將結(jié)合具體示例對(duì)根據(jù)本發(fā)明的示例性實(shí)施例的執(zhí)行視頻編碼的裝置中的幀類型判斷單元100進(jìn)行更加詳細(xì)的描述。
[0062]優(yōu)選地,幀類型判斷單元100可分別對(duì)當(dāng)前圖像幀和當(dāng)前圖像幀的前一幀進(jìn)行降采樣以得到當(dāng)前縮放幀和先前縮放幀,并基于當(dāng)前縮放幀與先前縮放幀之間的差異判斷當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀。
[0063]作為示例,幀類型判斷單元100可將原始圖像幀中的當(dāng)前圖像幀根據(jù)降采樣表進(jìn)行縮放以得到當(dāng)前縮放幀,將當(dāng)前圖像幀的前一幀根據(jù)相同的降采樣表進(jìn)行縮放以得到先前縮放幀,并基于當(dāng)前縮放幀與先前縮放幀之間的差異判斷當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀。具體說來,如果當(dāng)前縮放幀與先前縮放幀之間的差異較大,則幀類型判斷單元100可將相應(yīng)的當(dāng)前圖像幀判斷為幀內(nèi)預(yù)測(cè)圖像幀,否則,幀類型判斷單元100可將相應(yīng)的當(dāng)前圖像幀判斷為幀間預(yù)測(cè)圖像幀。
[0064]這里,降采樣表可包括映射矩陣,該映射矩陣是基于當(dāng)前圖像幀的分辨率和當(dāng)前縮放幀的分辨率所得到的。當(dāng)前縮放幀的分辨率可以是預(yù)先設(shè)定的分辨率。例如,當(dāng)前圖像幀的分辨率為AXB,當(dāng)前縮放幀的分辨率被預(yù)先設(shè)定為CXD,利用A與C可計(jì)算得到像素寬度映射矩陣,利用B與D可計(jì)算得到像素高度映射矩陣,相應(yīng)地,所述降采樣表可包括所述像素寬度映射矩陣和所述像素高度映射矩陣。
[0065]可選地,幀類型判斷單元100可計(jì)算當(dāng)前縮放幀的所有宏塊與各自的匹配宏塊之間的匹配誤差,將所有宏塊與各自的匹配宏塊之間的匹配誤差求和以獲得當(dāng)前縮放幀的匹配誤差和,當(dāng)所述匹配誤差和大于預(yù)定縮放幀運(yùn)動(dòng)閾值時(shí),判斷當(dāng)前圖像幀為幀內(nèi)預(yù)測(cè)圖像幀,其中,匹配宏塊是指針對(duì)當(dāng)前縮放幀的每個(gè)宏塊,在先前縮放幀中與所述每個(gè)宏塊之間的匹配誤差小于預(yù)定宏塊運(yùn)動(dòng)閾值的對(duì)應(yīng)宏塊或在先前縮放幀中與所述每個(gè)宏塊之間的匹配誤差最小的宏塊。
[0066]作為示例,匹配誤差可用于衡量兩個(gè)宏塊之間的匹配程度,具體說來,可將匹配誤差表示為兩個(gè)宏塊之間的像素值的絕對(duì)誤差的和(即,絕對(duì)誤差和)。相應(yīng)地,當(dāng)前縮放幀的匹配誤差和即為當(dāng)前縮放幀的所有宏塊與各自的匹配宏塊之間的絕對(duì)誤差和的和。
[0067]作為示例,幀類型判斷單元100可通過鉆石搜索方式計(jì)算當(dāng)前縮放幀的所有宏塊與各自的匹配宏塊之間的匹配誤差。例如,幀類型判斷單元100可通過鉆石搜索方式確定當(dāng)前縮放幀的每一個(gè)宏塊在先前縮放幀中的匹配宏塊,從而計(jì)算所述每一個(gè)宏塊與它的匹配宏塊之間的匹配誤差。
[0068]具體地講,在執(zhí)行鉆石搜索時(shí),可采用大鉆石搜索模板(LDSP)(如圖3A所示)和小鉆石搜索模板(SDSP)(如圖3B所示)。參照?qǐng)D3A和圖3B,LDSP可包含9個(gè)點(diǎn),SDSP可包含5個(gè)點(diǎn),這里的每個(gè)點(diǎn)都對(duì)應(yīng)一個(gè)宏塊。
[0069]具體說來,針對(duì)當(dāng)前縮放幀中的某個(gè)當(dāng)前宏塊,首先以所述某個(gè)當(dāng)前宏塊為中心點(diǎn),基于LDSP在先前縮放幀中搜索與所述當(dāng)前宏塊之間的匹配誤差(例如,絕對(duì)誤差和)小于預(yù)定宏塊運(yùn)動(dòng)閾值的宏塊。如果搜索到了與所述當(dāng)前宏塊之間的匹配誤差小于預(yù)定宏塊運(yùn)動(dòng)閾值的宏塊,則將搜索到的宏塊確定為所述當(dāng)前宏塊的匹配宏塊。如果未能搜索到與所述當(dāng)前宏塊之間的匹配誤差小于預(yù)定宏塊運(yùn)動(dòng)閾值的宏塊,則以先前縮放幀中通過鉆石搜索方式得到的匹配誤差最小的宏塊為中心點(diǎn),基于SDSP繼續(xù)搜索與所述當(dāng)前宏塊之間的匹配誤差小于預(yù)定宏塊運(yùn)動(dòng)閾值的宏塊。如果搜索到了與所述當(dāng)前宏塊之間的匹配誤差小于預(yù)定宏塊運(yùn)動(dòng)閾值的宏塊,則將搜索到的宏塊確定為所述當(dāng)前宏塊的匹配宏塊。如果仍舊不存在與所述當(dāng)前宏塊之間的匹配誤差小于預(yù)定宏塊運(yùn)動(dòng)閾值的宏塊,則將通過鉆石搜索方式得到的匹配誤差最小的宏塊確定為匹配宏塊。在如上搜索到匹配宏塊之后,幀類型判斷單元100可計(jì)算當(dāng)前宏塊與匹配宏塊之間的匹配誤差。
[0070]如上所述,根據(jù)本發(fā)明示例性實(shí)施例的幀類型判斷單元100通過采用降采樣和鉆石搜索方式來實(shí)現(xiàn)幀內(nèi)和幀間預(yù)測(cè)圖像幀的判斷,不僅降低了計(jì)算量,還在保證準(zhǔn)確度的前提下提高了判斷幀類型的速度。
[0071]以下,將結(jié)合具體示例對(duì)根據(jù)本發(fā)明的示例性實(shí)施例的執(zhí)行視頻編碼的裝置中的宏塊劃分模式確定單元200進(jìn)行更加詳細(xì)的描述。
[0072]作為示例,宏塊劃分模式確定單元200可將以下各項(xiàng)中的至少一個(gè)分別存儲(chǔ)于圖形處理器的顯存中的紋理內(nèi)存,并利用圖形處理器的多個(gè)線程基于紋理內(nèi)存中存儲(chǔ)的所述以下各項(xiàng)中的至少一個(gè)來確定幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式和幀間預(yù)測(cè)圖像幀的宏塊劃分模式:幀內(nèi)預(yù)測(cè)圖像幀的各個(gè)像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的各個(gè)像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的參考幀的各個(gè)像素點(diǎn)的像素值。
[0073]這里,具體說來,當(dāng)幀類型判斷單元100判斷當(dāng)前圖像幀為幀間預(yù)測(cè)圖像幀時(shí),宏塊劃分模式確定單元200將當(dāng)前圖像幀的各個(gè)像素點(diǎn)的像素值和當(dāng)前圖像幀的參考幀的各個(gè)像素點(diǎn)的像素值存儲(chǔ)于紋理內(nèi)存。當(dāng)幀類型判斷單元100判斷當(dāng)前圖像幀為幀內(nèi)預(yù)測(cè)圖像幀時(shí),宏塊劃分模式確定單元200將當(dāng)前圖像幀的各個(gè)像素點(diǎn)的像素值存儲(chǔ)于紋理內(nèi)存。
[0074]圖4示出根據(jù)本發(fā)明示例性實(shí)施例的紋理內(nèi)存的數(shù)據(jù)存儲(chǔ)方式的示例。如圖4所示,紋理內(nèi)存可包括四個(gè)通道(圖4中的R、G、B、A)。假設(shè)將存儲(chǔ)編號(hào)為O到63的64個(gè)像素點(diǎn)的像素值,則可如圖4所示依次將所述64個(gè)像素點(diǎn)的像素值存儲(chǔ)在R、G、B、A這四個(gè)通道中。如圖4所示,編號(hào)為O到3的像素點(diǎn)的像素值被存儲(chǔ)在同一紋理中,以此類推,編號(hào)為4i到4i+3的像素點(diǎn)的像素值被存儲(chǔ)在同一紋理中,其中,i為O到15之間的正整數(shù)。
[0075]在圖4所示的數(shù)據(jù)存儲(chǔ)方式下,當(dāng)宏塊劃分模式確定單元200利用圖形處理器的多個(gè)線程基于紋理內(nèi)存中存儲(chǔ)的像素值執(zhí)行運(yùn)算時(shí),期望讀取的相鄰四個(gè)像素常常會(huì)位于兩個(gè)紋理中(例如,編號(hào)為5到8的像素點(diǎn)的像素值即被存儲(chǔ)在兩個(gè)紋理中),這需要連續(xù)讀取兩個(gè)紋理中的數(shù)據(jù),降低了運(yùn)算速度。
[0076]為此,優(yōu)選地,可按照?qǐng)D5所示的數(shù)據(jù)存儲(chǔ)方式在紋理內(nèi)存中存儲(chǔ)像素值。具體說來,圖5所示的紋理內(nèi)存包括第一通道(例如,R通道)、第二通道(例如,G通道)、第三通道(例如,B通道)和第四通道(例如,A通道),并且,四個(gè)相鄰像素點(diǎn)的像素值被存儲(chǔ)在同一紋理中。
[0077]具體地講,假設(shè)幀內(nèi)預(yù)測(cè)圖像幀、幀間預(yù)測(cè)圖像幀、幀間預(yù)測(cè)圖像幀的參考幀均具有N個(gè)像素點(diǎn),依次編號(hào)為第O像素點(diǎn)到第N-1像素點(diǎn),其中,N為大于I的正整數(shù)。
[0078]第一通道(例如,R通道)存儲(chǔ)以下項(xiàng)中的至少一個(gè):幀內(nèi)預(yù)測(cè)圖像幀的第O像素點(diǎn)到第N-4像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的第O像素點(diǎn)到第N-4像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的參考幀的第O像素點(diǎn)到第N-4像素點(diǎn)的像素值。
[0079]第二通道(例如,G通道)存儲(chǔ)以下項(xiàng)中的至少一個(gè):幀內(nèi)預(yù)測(cè)圖像幀的第I像素點(diǎn)到第N-3像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的第I像素點(diǎn)到第N-3像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的參考幀的第I像素點(diǎn)到第N-3像素點(diǎn)的像素值。
[0080]第三通道(例如,B通道)存儲(chǔ)以下項(xiàng)中的至少一個(gè):幀內(nèi)預(yù)測(cè)圖像幀的第2像素點(diǎn)到第N-2像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的第2像素點(diǎn)到第N-2像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的參考幀的第2像素點(diǎn)到第N-2像素點(diǎn)的像素值。
[0081]第四通道(例如,A通道)存儲(chǔ)以下項(xiàng)中的至少一個(gè):幀內(nèi)預(yù)測(cè)圖像幀的第3像素點(diǎn)到第N-1像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的第3像素點(diǎn)到第N-1像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的參考幀的第3像素點(diǎn)到第N-1像素點(diǎn)的像素值。
[0082]也就是說,第一通道的存儲(chǔ)空間在平移一個(gè)地址、兩個(gè)地址和三個(gè)地址后被分別填充到第二通道、第三通道和第四通道。特別地,對(duì)于第二通道的最后一個(gè)地址、第三通道的最后兩個(gè)地址和第四通道的最后三個(gè)地址,相應(yīng)地填充順序編號(hào)的后續(xù)像素點(diǎn)的像素值。
[0083]參照?qǐng)D5,編號(hào)為O到15的像素點(diǎn)的像素值被存儲(chǔ)在R通道中,編號(hào)為I到16的像素點(diǎn)的像素值被存儲(chǔ)在G通道中,編號(hào)為2到17的像素點(diǎn)的像素值被存儲(chǔ)在B通道中,編號(hào)為3到18的像素點(diǎn)的像素值被存儲(chǔ)在A通道中。
[0084]通過采用根據(jù)本發(fā)明示例性實(shí)施例的數(shù)據(jù)存儲(chǔ)方式,當(dāng)宏塊劃分模式確定單元200利用圖形處理器的多個(gè)線程基于紋理內(nèi)存中存儲(chǔ)的像素值執(zhí)行運(yùn)算時(shí),不論期望從哪個(gè)像素開始讀取連續(xù)的四個(gè)像素,均可僅通過讀取一個(gè)紋理來實(shí)現(xiàn),由此提高了運(yùn)算速度。
[0085]在將相關(guān)圖像幀的像素值存儲(chǔ)在紋理內(nèi)存之后,作為優(yōu)選方式,針對(duì)多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,宏塊劃分模式確定單元200可利用圖形處理器的多個(gè)線程并行地通過鉆石搜索方式確定幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊各自的幀內(nèi)匹配宏塊,其中,幀內(nèi)匹配宏塊是指針對(duì)幀內(nèi)預(yù)測(cè)圖像幀的每個(gè)宏塊,在幀內(nèi)預(yù)測(cè)圖像幀的鉆石搜索區(qū)域中與所述每個(gè)宏塊之間具有最小匹配誤差的宏塊,其中,宏塊劃分模式確定單元200利用圖形處理器的所述多個(gè)線程計(jì)算幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊與各自的幀內(nèi)匹配宏塊之間的匹配誤差,作為幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊各自的最小匹配誤差。并且,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,宏塊劃分模式確定單兀200可利用圖形處理器的多個(gè)線程并行地通過鉆石搜索方式確定幀間預(yù)測(cè)圖像幀的所有宏塊各自的幀間匹配宏塊,其中,幀間匹配宏塊是指針對(duì)幀間預(yù)測(cè)圖像幀的每個(gè)宏塊,在幀間預(yù)測(cè)圖像幀的參考幀的鉆石搜索區(qū)域中與所述每個(gè)宏塊之間具有最小匹配誤差的宏塊,其中,宏塊劃分模式確定單元200利用圖形處理器的所述多個(gè)線程計(jì)算幀間預(yù)測(cè)圖像幀的所有宏塊與各自的幀間匹配宏塊之間的匹配誤差,作為幀間預(yù)測(cè)圖像幀的所有宏塊各自的最小匹配誤差。
[0086]這里,宏塊劃分模式確定單元200可利用圖像處理器的多個(gè)線程對(duì)幀內(nèi)預(yù)測(cè)圖像幀或幀間預(yù)測(cè)圖像幀中的各個(gè)宏塊并行地執(zhí)行上述處理過程以確定所有宏塊各自的最小匹配誤差,將所有宏塊各自的最小匹配誤差求和以獲得幀內(nèi)預(yù)測(cè)圖像幀或幀間預(yù)測(cè)圖像幀的宏塊匹配誤差和,并將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀內(nèi)預(yù)測(cè)圖像幀或幀間預(yù)測(cè)圖像幀的宏塊劃分模式。
[0087]可選地,匹配誤差可為宏塊與各自的幀內(nèi)匹配宏塊或幀間匹配宏塊之間的像素值絕對(duì)誤差的和。
[0088]在一個(gè)示例中,當(dāng)幀類型判斷單元100判斷當(dāng)前圖像幀為幀內(nèi)預(yù)測(cè)圖像幀時(shí),針對(duì)多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,宏塊劃分模式確定單兀200利用圖形處理器的多個(gè)線程并行地通過鉆石搜索方式確定當(dāng)前圖像幀的所有宏塊各自的幀內(nèi)匹配宏塊。具體地講,針對(duì)幀內(nèi)預(yù)測(cè)圖像幀中的某個(gè)當(dāng)前宏塊,首先以所述某個(gè)當(dāng)前宏塊為中心點(diǎn),基于LDSP在幀內(nèi)預(yù)測(cè)圖像幀中搜索與所述當(dāng)前宏塊之間的匹配誤差(例如,絕對(duì)誤差和)最小的宏塊。然后以基于LDSP搜索到的匹配誤差最小的宏塊為中心點(diǎn),基于SDSP在幀內(nèi)預(yù)測(cè)圖像幀中繼續(xù)搜索與所述當(dāng)前宏塊之間的匹配誤差最小的宏塊。將基于SDSP搜索到的匹配誤差最小的宏塊確定為所述當(dāng)前宏塊的幀內(nèi)匹配宏塊。
[0089]在另一個(gè)示例中,當(dāng)幀類型判斷單元100判斷當(dāng)前圖像幀為幀間預(yù)測(cè)圖像幀時(shí),針對(duì)多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,宏塊劃分模式確定單元200利用圖形處理器的多個(gè)線程并行地通過鉆石搜索方式確定當(dāng)前圖像幀的所有宏塊各自的幀間匹配宏塊。具體地講,針對(duì)幀間預(yù)測(cè)圖像幀中的某個(gè)當(dāng)前宏塊,首先以所述某個(gè)當(dāng)前宏塊為中心點(diǎn),基于LDSP在幀間預(yù)測(cè)圖像幀的參考幀中搜索與所述當(dāng)前宏塊之間的匹配誤差(例如,絕對(duì)誤差和)最小的宏塊。然后以以基于LDSP搜索到的匹配誤差最小的宏塊為中心點(diǎn),基于SDSP在幀間預(yù)測(cè)圖像幀的參考幀中繼續(xù)搜索與所述當(dāng)前宏塊之間的匹配誤差最小的宏塊。將基于SDSP搜索到的匹配誤差最小的宏塊確定為所述當(dāng)前宏塊的幀間匹配宏塊。
[0090]根據(jù)本發(fā)明示例性實(shí)施例的宏塊劃分模式確定單元200可并行地計(jì)算各個(gè)宏塊的最小匹配誤差,從而縮短了用于確定宏塊劃分模式的時(shí)間,提高了編碼速度。
[0091]可選地,根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行視頻編碼的裝置可還包括去塊濾波單元。去塊濾波單元可對(duì)反量化和反變換后的當(dāng)前圖像幀進(jìn)行去塊濾波,以得到當(dāng)前圖像幀的重構(gòu)幀,其中,反量化和反變換后的當(dāng)前圖像幀可通過編碼單元400執(zhí)行的以下處理獲得:在對(duì)幀內(nèi)預(yù)測(cè)后的幀內(nèi)預(yù)測(cè)圖像幀和幀間預(yù)測(cè)后的幀間預(yù)測(cè)圖像幀進(jìn)行變換、量化之后,對(duì)得到的結(jié)果進(jìn)行反量化和反變換。
[0092]進(jìn)一步地,當(dāng)前圖像幀的重構(gòu)幀可被用作在當(dāng)前圖像幀之后進(jìn)行編碼的圖像幀的參考中貞。
[0093]以下參照?qǐng)D6A至圖6H來描述根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行視頻編碼的裝置中的去塊濾波單元執(zhí)行去塊濾波的過程。
[0094]具體地講,去塊濾波單元可將反量化和反變換后的當(dāng)前圖像幀劃分成包含16 X 16個(gè)像素點(diǎn)的多個(gè)宏塊,其中,去塊濾波單元利用圖形處理器的多個(gè)線程按照以下步驟并行地對(duì)所述宏塊進(jìn)行去塊濾波。
[0095]第一步,如圖6A所示,對(duì)宏塊中位于第O行到第15行并位于第9列到第14列的像素點(diǎn)進(jìn)行垂直濾波。
[0096]第二步,如圖6B所示,對(duì)宏塊中位于第9列到第15列并位于第9行到第12行的像素點(diǎn)進(jìn)行水平濾波。
[0097]第三步,如圖6C所示,對(duì)宏塊中位于第9列到第12列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波。
[0098]第四步,如圖6D所示,對(duì)宏塊中位于第9行到第15行并位于第O列到第8列和第13列到第15列的像素點(diǎn)進(jìn)行垂直濾波。
[0099]第五步,如圖6E所示,對(duì)宏塊中位于第13列到第15列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波。
[0100]第六步,如圖6F所示,對(duì)宏塊中位于第O行到第8行并位于第O列到第8列和第13列到第15列的像素點(diǎn)進(jìn)行垂直濾波。
[0101]第七步,如圖6G所示,對(duì)宏塊中位于第9行到第13行并位于第O列到第8列的像素點(diǎn)進(jìn)行水平濾波。
[0102]第八步,如圖6H所示,對(duì)宏塊中位于第O列到第8列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波。
[0103]這里,應(yīng)該理解,通過上述方式,去塊濾波單元可利用圖形處理器的多個(gè)線程并行地對(duì)多個(gè)宏塊進(jìn)行去塊濾波,而且各步濾波運(yùn)算的獨(dú)立性好,采用的線程數(shù)量相對(duì)較少,節(jié)省了系統(tǒng)資源。
[0104]以下,將結(jié)合圖7到圖11來描述根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行視頻編碼的方法。所述方法可以由圖1到圖6所示的裝置來完成,也可通過計(jì)算機(jī)程序來實(shí)現(xiàn)。
[0105]圖7示出根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行視頻編碼的方法的流程圖。
[0106]在步驟S100,判斷視頻的原始圖像幀中的當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀。這里,作為示例,視頻的原始圖像幀中的各個(gè)圖像幀可具有YUV格式、RGB格式或各種其他圖像格式。
[0107]作為示例,在步驟SlOO,可將原始圖像幀中的當(dāng)前圖像幀和當(dāng)前圖像幀的前一幀分別劃分為Z個(gè)宏塊,其中,Z為大于I的自然數(shù)。然后,基于當(dāng)前圖像幀的Z個(gè)宏塊和當(dāng)前圖像幀的前一幀的Z個(gè)宏塊之間的差異來判斷當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀。具體說來,可將與前一幀差異較大的當(dāng)前圖像幀判斷為幀內(nèi)預(yù)測(cè)圖像幀,并將與前一幀差異較小的當(dāng)前圖像幀判斷為幀間預(yù)測(cè)圖像幀。
[0108]在步驟S200,從多個(gè)宏塊劃分模式中確定幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式和幀間預(yù)測(cè)圖像幀的宏塊劃分模式。
[0109]作為示例,宏塊劃分模式可表示為PXQ,其指示相應(yīng)劃分的宏塊大小為PXQ,其中,P表示宏塊中每行的像素點(diǎn)個(gè)數(shù),P為16或8 ;0表示宏塊中每列像素點(diǎn)的個(gè)數(shù),Q為16或8。相應(yīng)地,宏塊劃分模式可進(jìn)一步表示為16X16、16X8、8X16或8X8,即,每個(gè)宏塊可包含16X16、16X8、8X16或8X8個(gè)像素點(diǎn)。
[0110]例如,在步驟S200,可計(jì)算幀內(nèi)預(yù)測(cè)圖像幀或幀間預(yù)測(cè)圖像幀分別在16 X 16、16X8、8X16、8X8這四種宏塊劃分模式下的宏塊匹配誤差和,并將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀內(nèi)預(yù)測(cè)圖像幀或幀間預(yù)測(cè)圖像幀的宏塊劃分模式。
[0111]以下,參照?qǐng)D8對(duì)圖7中確定宏塊劃分模式的步驟進(jìn)行具體的闡述。圖8示出根據(jù)本發(fā)明示例性實(shí)施例的確定宏塊劃分模式的步驟的流程圖。
[0112]參照?qǐng)D8,在步驟S210,確定在步驟SlOO中當(dāng)前圖像幀被判斷為幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀。
[0113]當(dāng)在步驟S210確定當(dāng)前圖像幀被判斷為幀內(nèi)預(yù)測(cè)圖像幀時(shí),在步驟S201,針對(duì)多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,利用圖形處理器的多個(gè)線程并行地計(jì)算幀內(nèi)預(yù)測(cè)圖像幀在每一個(gè)宏塊劃分模式下劃分的所有宏塊各自的最小匹配誤差。
[0114]在步驟S202,將每一個(gè)宏塊劃分模式下所有宏塊各自的最小匹配誤差求和以獲得幀內(nèi)預(yù)測(cè)圖像幀的宏塊匹配誤差和。
[0115]在步驟S203,將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀內(nèi)預(yù)測(cè)圖像中貞的宏塊劃分模式。
[0116]當(dāng)在步驟S210確定當(dāng)前圖像幀被判斷為幀間預(yù)測(cè)圖像幀時(shí),在步驟S204,針對(duì)多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,利用圖形處理器的多個(gè)線程并行地計(jì)算幀間預(yù)測(cè)圖像幀在每一個(gè)宏塊劃分模式下劃分的所有宏塊各自的最小匹配誤差。
[0117]在步驟S205,將每一個(gè)宏塊劃分模式下所有宏塊各自的最小匹配誤差求和以獲得幀間預(yù)測(cè)圖像幀的宏塊匹配誤差和。
[0118]在步驟S206,將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀間預(yù)測(cè)圖像中貞的宏塊劃分模式。
[0119]再次參照?qǐng)D7,在步驟S300,在確定的幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀內(nèi)預(yù)測(cè)圖像幀進(jìn)行幀內(nèi)預(yù)測(cè),并在確定的幀間預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀間預(yù)測(cè)圖像幀進(jìn)行幀間預(yù)測(cè)。
[0120]以下,參照?qǐng)D9對(duì)圖7中對(duì)當(dāng)前圖像幀進(jìn)行預(yù)測(cè)的步驟進(jìn)行具體闡述。圖9示出根據(jù)本發(fā)明示例性實(shí)施例的對(duì)當(dāng)前圖像幀進(jìn)行預(yù)測(cè)的步驟的流程圖。
[0121]參照?qǐng)D9,在步驟S310,確定在步驟SlOO中當(dāng)前圖像幀被判斷為幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀。
[0122]當(dāng)在步驟S310確定當(dāng)前圖像幀被判斷為幀內(nèi)預(yù)測(cè)圖像幀時(shí),在步驟S301,在確定的幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀內(nèi)預(yù)測(cè)圖像幀進(jìn)行幀內(nèi)預(yù)測(cè)。具體地講,作為示例,可利用幀內(nèi)預(yù)測(cè)圖像幀中的已編碼像素點(diǎn)來預(yù)測(cè)幀內(nèi)預(yù)測(cè)圖像幀中的待編碼像素點(diǎn)。例如,假設(shè)幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式為4X4,因此,待編碼宏塊的像素值可由與待編碼宏塊在空間位置上最接近的已編碼像素點(diǎn)的像素值加權(quán)求和得到。
[0123]當(dāng)在步驟S310確定當(dāng)前圖像幀被判斷為幀間預(yù)測(cè)圖像幀時(shí),在步驟S302,在確定的幀間預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀間預(yù)測(cè)圖像幀進(jìn)行運(yùn)動(dòng)估計(jì)。具體地講,作為示例,可搜索幀間預(yù)測(cè)圖像幀在確定的宏塊劃分模式下劃分的各個(gè)宏塊在幀間預(yù)測(cè)圖像幀的參考幀中的匹配宏塊,計(jì)算各個(gè)宏塊相對(duì)于各自的匹配宏塊的位置移動(dòng)以作為所述各個(gè)宏塊的運(yùn)動(dòng)矢量。這里,幀間預(yù)測(cè)圖像幀的每個(gè)宏塊與它的匹配宏塊之間具有最小匹配誤差。
[0124]在步驟S303,對(duì)運(yùn)動(dòng)估計(jì)后的幀間預(yù)測(cè)圖像幀進(jìn)行運(yùn)動(dòng)補(bǔ)償。具體地講,作為示例,可基于運(yùn)動(dòng)估計(jì)的結(jié)果來產(chǎn)生幀間預(yù)測(cè)圖像幀的預(yù)測(cè)幀,并獲取幀間預(yù)測(cè)圖像幀與它的預(yù)測(cè)幀之間的殘差信息。
[0125]再次參照?qǐng)D7,在步驟S400,對(duì)幀內(nèi)預(yù)測(cè)后的幀內(nèi)預(yù)測(cè)圖像幀和幀間預(yù)測(cè)后的幀間預(yù)測(cè)圖像幀進(jìn)行變換、量化和編碼,以得到編碼后的當(dāng)前圖像幀。
[0126]作為示例,所述變換可包括離散余弦變換、離散傅里葉變換、小波變換等。所述編碼可包括熵編碼(例如,香農(nóng)編碼、哈夫曼編碼、算術(shù)編碼)等。
[0127]應(yīng)該理解,當(dāng)在步驟SlOO中判斷當(dāng)前圖像幀為幀內(nèi)預(yù)測(cè)圖像幀時(shí),在步驟S200,從多個(gè)宏塊劃分模式中確定當(dāng)前圖像幀的幀內(nèi)宏塊劃分模式,在步驟S300,在確定的幀內(nèi)宏塊劃分模式下對(duì)當(dāng)前圖像幀進(jìn)行幀內(nèi)預(yù)測(cè),在步驟S400,對(duì)幀內(nèi)預(yù)測(cè)后的當(dāng)前圖像幀進(jìn)行變換、量化和編碼,以得到編碼后的當(dāng)前圖像幀。并且,當(dāng)在步驟SlOO中判斷當(dāng)前圖像幀為幀間預(yù)測(cè)圖像幀時(shí),在步驟S200,從多個(gè)宏塊劃分模式中確定當(dāng)前圖像幀的幀間宏塊劃分模式,在步驟S300,在確定的幀間宏塊劃分模式下對(duì)當(dāng)前圖像幀進(jìn)行幀間預(yù)測(cè),在步驟S400,對(duì)幀間預(yù)測(cè)后的當(dāng)前圖像幀進(jìn)行變換、量化和編碼,以得到編碼后的當(dāng)前圖像幀。
[0128]可以看出,通過在確定宏塊劃分模式時(shí)采用并行的處理方式,可縮短確定宏塊劃分模式的處理時(shí)間,提高了編碼速度。
[0129]以下,將結(jié)合具體示例對(duì)根據(jù)本發(fā)明的示例性實(shí)施例的執(zhí)行視頻編碼的方法中的步驟SlOO進(jìn)行更加詳細(xì)地描述和說明。
[0130]優(yōu)選地,在步驟S100,可分別對(duì)當(dāng)前圖像幀和當(dāng)前圖像幀的前一幀進(jìn)行降采樣以得到當(dāng)前縮放幀和先前縮放幀,并基于當(dāng)前縮放幀與先前縮放幀之間的差異判斷當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀。
[0131]作為示例,在步驟S100,可將原始圖像幀中的當(dāng)前圖像幀根據(jù)降采樣表進(jìn)行縮放以得到當(dāng)前縮放幀,將當(dāng)前圖像幀的前一幀根據(jù)相同的降采樣表進(jìn)行縮放以得到先前縮放幀,并基于當(dāng)前縮放幀與先前縮放幀之間的差異判斷當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀。具體說來,如果當(dāng)前縮放幀與先前縮放幀之間的差異較大,則可將相應(yīng)的當(dāng)前圖像幀判斷為幀內(nèi)預(yù)測(cè)圖像幀,否則,可將相應(yīng)的當(dāng)前圖像幀判斷為幀間預(yù)測(cè)圖像幀。
[0132]這里,降采樣表可包括映射矩陣,該映射矩陣是基于當(dāng)前圖像幀的分辨率和當(dāng)前縮放幀的分辨率所得到的。當(dāng)前縮放幀的分辨率可以是預(yù)先設(shè)定的分辨率。例如,當(dāng)前圖像幀的分辨率為AXB,當(dāng)前縮放幀的分辨率被預(yù)先設(shè)定為CXD,利用A與C可計(jì)算得到像素寬度映射矩陣,利用B與D可計(jì)算得到像素高度映射矩陣,相應(yīng)地,所述降采樣表可包括所述像素寬度映射矩陣和所述像素高度映射矩陣。
[0133]以下,將結(jié)合圖10對(duì)在步驟SlOO中判斷當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀的具體步驟進(jìn)行詳細(xì)描述。圖10示出根據(jù)本發(fā)明示例性實(shí)施例的判斷當(dāng)前圖像幀的預(yù)測(cè)類型的具體步驟的流程圖。
[0134]在步驟S101,將原始圖像幀中的當(dāng)前圖像幀和當(dāng)前圖像幀的前一幀根據(jù)降采樣表分別進(jìn)行縮放,得到當(dāng)前縮放幀和先前縮放幀。
[0135]在步驟S102,計(jì)算當(dāng)前縮放幀的所有宏塊與各自的匹配宏塊之間的匹配誤差,其中,匹配宏塊是指針對(duì)當(dāng)前縮放幀的每個(gè)宏塊,在先前縮放幀中與每個(gè)宏塊之間的匹配誤差小于預(yù)定宏塊運(yùn)動(dòng)閾值的對(duì)應(yīng)宏塊或在先前縮放幀中與所述每個(gè)宏塊之間的匹配誤差最小的宏塊。作為示例,匹配誤差可用于衡量兩個(gè)宏塊之間的匹配程度,具體說來,可將匹配誤差表示為兩個(gè)宏塊之間的像素值的絕對(duì)誤差的和(即,絕對(duì)誤差和)。相應(yīng)地,當(dāng)前縮放幀的匹配誤差和即為當(dāng)前縮放幀的所有宏塊與各自的匹配宏塊之間的絕對(duì)誤差和的和。
[0136]在步驟S103,將所有宏塊與各自的匹配宏塊之間的匹配誤差求和以獲得當(dāng)前縮放幀的匹配誤差和。
[0137]在步驟S104,判斷匹配誤差和是否大于預(yù)定縮放幀運(yùn)動(dòng)閾值,如果匹配誤差和大于預(yù)定縮放幀運(yùn)動(dòng)閾值,則在步驟S105,判斷當(dāng)前圖像幀為幀內(nèi)預(yù)測(cè)圖像幀;如果匹配誤差和小于或等于預(yù)定縮放幀運(yùn)動(dòng)閾值,則在步驟S106,判斷當(dāng)前圖像幀為幀間預(yù)測(cè)圖像幀。
[0138]作為示例,在步驟S102,可通過鉆石搜索方式計(jì)算當(dāng)前縮放幀的所有宏塊與各自的匹配宏塊之間的匹配誤差。例如,可通過鉆石搜索方式確定當(dāng)前縮放幀的每一個(gè)宏塊在先前縮放幀中的匹配宏塊,從而計(jì)算所述每一個(gè)宏塊與它的匹配宏塊之間的匹配誤差。
[0139]具體地講,在執(zhí)行鉆石搜索時(shí),可采用大鉆石搜索模板(LDSP)(如圖3A所示)和小鉆石搜索模板(SDSP)(如圖3B所示)。參照?qǐng)D3A和圖3B,LDSP可包含9個(gè)點(diǎn),SDSP可包含5個(gè)點(diǎn),這里的每個(gè)點(diǎn)都對(duì)應(yīng)一個(gè)宏塊。
[0140]如上所述,在步驟S100,通過采用降采樣和鉆石搜索方式來實(shí)現(xiàn)幀內(nèi)和幀間預(yù)測(cè)圖像幀的判斷,不僅降低了計(jì)算量,還在保證編碼的準(zhǔn)確度的前提下提高了判斷幀類型的速度。
[0141]此外,在步驟S200,可將以下各項(xiàng)中的至少一個(gè)分別存儲(chǔ)于圖形處理器的顯存中的紋理內(nèi)存,并利用圖形處理器的多個(gè)線程基于紋理內(nèi)存中存儲(chǔ)的所述以下各項(xiàng)中的至少一個(gè)來確定幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式和幀間預(yù)測(cè)圖像幀的宏塊劃分模式:幀內(nèi)預(yù)測(cè)圖像幀的各個(gè)像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的各個(gè)像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的參考幀的各個(gè)像素點(diǎn)的像素值。
[0142]這里,具體說來,當(dāng)在步驟SlOO中判斷當(dāng)前圖像幀為幀間預(yù)測(cè)圖像幀時(shí),在步驟S200,可將當(dāng)前圖像幀的各個(gè)像素點(diǎn)的像素值和當(dāng)前圖像幀的參考幀的各個(gè)像素點(diǎn)的像素值存儲(chǔ)于紋理內(nèi)存。當(dāng)在步驟SlOO中判斷當(dāng)前圖像幀為幀內(nèi)預(yù)測(cè)圖像幀時(shí),在步驟S200,可將當(dāng)前圖像幀的各個(gè)像素點(diǎn)的像素值存儲(chǔ)于紋理內(nèi)存。這里,可按照?qǐng)D4或圖5的數(shù)據(jù)存儲(chǔ)方式將像素值存儲(chǔ)在紋理內(nèi)存中。
[0143]在將相關(guān)圖像幀的像素值存儲(chǔ)在紋理內(nèi)存之后,作為優(yōu)選方式,針對(duì)多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,可利用圖形處理器的多個(gè)線程并行地通過鉆石搜索方式確定幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊各自的幀內(nèi)匹配宏塊,其中,幀內(nèi)匹配宏塊是指針對(duì)幀內(nèi)預(yù)測(cè)圖像幀的每個(gè)宏塊,在幀內(nèi)預(yù)測(cè)圖像幀的鉆石搜索區(qū)域中與所述每個(gè)宏塊之間具有最小匹配誤差的宏塊,其中,利用圖形處理器的所述多個(gè)線程計(jì)算幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊與各自的幀內(nèi)匹配宏塊之間的匹配誤差,作為幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊各自的最小匹配誤差。并且,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,可利用圖形處理器的多個(gè)線程并行地通過鉆石搜索方式確定幀間預(yù)測(cè)圖像幀的所有宏塊各自的幀間匹配宏塊,其中,幀間匹配宏塊是指針對(duì)幀間預(yù)測(cè)圖像幀的每個(gè)宏塊,在幀間預(yù)測(cè)圖像幀的參考幀的鉆石搜索區(qū)域中與所述每個(gè)宏塊之間具有最小匹配誤差的宏塊,其中,利用圖形處理器的所述多個(gè)線程計(jì)算幀間預(yù)測(cè)圖像幀的所有宏塊與各自的幀間匹配宏塊之間的匹配誤差,作為幀間預(yù)測(cè)圖像幀的所有宏塊各自的最小匹配誤差。
[0144]這里,可利用圖像處理器的多個(gè)線程對(duì)幀內(nèi)預(yù)測(cè)圖像幀或幀間預(yù)測(cè)圖像幀中的各個(gè)宏塊并行地執(zhí)行上述處理過程以確定所有宏塊各自的最小匹配誤差,將所有宏塊各自的最小匹配誤差求和以獲得幀內(nèi)預(yù)測(cè)圖像幀或幀間預(yù)測(cè)圖像幀的宏塊匹配誤差和,并將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀內(nèi)預(yù)測(cè)圖像幀或幀間預(yù)測(cè)圖像幀的宏塊劃分模式。
[0145]可選地,匹配誤差可為宏塊與各自的幀內(nèi)匹配宏塊或幀間匹配宏塊之間的像素值絕對(duì)誤差的和。
[0146]關(guān)于鉆石搜索方式,以上以參照宏塊劃分模式確定單元200進(jìn)行了詳細(xì)的描述,這里將不再贅述。
[0147]在根據(jù)本發(fā)明示例性實(shí)施例的宏塊劃分模式確定步驟中,可并行地計(jì)算各個(gè)宏塊的最小匹配誤差,從而縮短了用于確定宏塊劃分模式的時(shí)間,提高了編碼速度。
[0148]此外,圖7所示的方法還可包括去塊濾波步驟(未示出)。以下,將結(jié)合具體示例對(duì)在執(zhí)行視頻編碼過程中進(jìn)行去塊濾波的具體步驟進(jìn)行詳細(xì)描述。
[0149]具體地講,在對(duì)幀內(nèi)預(yù)測(cè)后的幀內(nèi)預(yù)測(cè)圖像幀和幀間預(yù)測(cè)后的幀間預(yù)測(cè)圖像幀進(jìn)行變換和量化之后,對(duì)變換和量化后的當(dāng)前圖像幀進(jìn)行反量化和反變換。對(duì)反量化和反變換后的當(dāng)前圖像幀進(jìn)行去塊濾波,以得到當(dāng)前圖像幀的重構(gòu)幀。這里,進(jìn)一步地,當(dāng)前圖像幀的重構(gòu)幀可被用作在當(dāng)前圖像幀之后進(jìn)行編碼的圖像幀的參考幀。
[0150]以下參照?qǐng)D11來描述根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行視頻編碼的方法中執(zhí)行去塊濾波的具體步驟。圖11示出根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行去塊濾波的具體步驟的流程圖。這里,反量化和反變換后的當(dāng)前圖像幀被劃分成包含16X16個(gè)像素點(diǎn)的多個(gè)宏塊,并利用圖形處理器的多個(gè)線程按照?qǐng)D11中示出的步驟并行地對(duì)所述多個(gè)宏塊執(zhí)行去塊濾波。
[0151]具體地講,在步驟S5021,對(duì)宏塊中位于第O行到第15行并位于第9列到第14列的像素點(diǎn)進(jìn)行垂直濾波。
[0152]在步驟S5022,對(duì)宏塊中位于第9列到第15列并位于第9行到第12行的像素點(diǎn)進(jìn)行水平濾波。
[0153]在步驟S5023,對(duì)宏塊中位于第9列到第12列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波。
[0154]在步驟S5024,對(duì)宏塊中位于第9行到第15行并位于第O列到第8列和第13列到第15列的像素點(diǎn)進(jìn)行垂直濾波。
[0155]在步驟S5025,對(duì)宏塊中位于第13列到第15列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波。
[0156]在步驟S5026,對(duì)宏塊中位于第O行到第8行并位于第O列到第8列和第13列到第15列的像素點(diǎn)進(jìn)行垂直濾波。
[0157]在步驟S5027,對(duì)宏塊中位于第9行到第13行并位于第O列到第8列的像素點(diǎn)進(jìn)行水平濾波。
[0158]在步驟S5028,對(duì)宏塊中位于第O列到第8列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波。
[0159]通過上述方式,可利用圖形處理器的多個(gè)線程并行地對(duì)多個(gè)宏塊進(jìn)行去塊濾波,而且各步濾波運(yùn)算的獨(dú)立性好,采用的線程數(shù)量相對(duì)較少,節(jié)省了系統(tǒng)資源。
[0160]作為示例,可在計(jì)算機(jī)或嵌入式多媒體播放系統(tǒng)中實(shí)現(xiàn)根據(jù)本發(fā)明示例性實(shí)施例的執(zhí)行視頻編碼的方案。例如,表I示出在基于Win7操作系統(tǒng)、NvidIA GT630顯卡、4G內(nèi)存的計(jì)算機(jī)中,根據(jù)本發(fā)明示例性實(shí)施例的視頻編碼方案與現(xiàn)有技術(shù)的視頻編碼方案在性能上的對(duì)比。
[0161]表I
[0162]
【權(quán)利要求】
1.一種執(zhí)行視頻編碼的裝置,其特征在于,包括: 幀類型判斷單元,用于判斷視頻的原始圖像幀中的當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀; 宏塊劃分模式確定單元,用于從多個(gè)宏塊劃分模式中確定幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式和幀間預(yù)測(cè)圖像幀的宏塊劃分模式; 預(yù)測(cè)單元,用于在確定的幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀內(nèi)預(yù)測(cè)圖像幀進(jìn)行幀內(nèi)預(yù)測(cè),并在確定的幀間預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀間預(yù)測(cè)圖像幀進(jìn)行幀間預(yù)測(cè); 編碼單元,用于對(duì)幀內(nèi)預(yù)測(cè)后的幀內(nèi)預(yù)測(cè)圖像幀和幀間預(yù)測(cè)后的幀間預(yù)測(cè)圖像幀進(jìn)行變換、量化和編碼,以得到編碼后的當(dāng)前圖像幀, 其中,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,宏塊劃分模式確定單元利用圖形處理器的多個(gè)線程并行地計(jì)算幀內(nèi)預(yù)測(cè)圖像幀在所述每一個(gè)宏塊劃分模式下劃分的所有宏塊各自的最小匹配誤差,將所有宏塊各自的最小匹配誤差求和以獲得幀內(nèi)預(yù)測(cè)圖像幀的宏塊匹配誤差和,并將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式;并且,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,宏塊劃分模式確定單元利用圖形處理器的多個(gè)線程并行地計(jì)算幀間預(yù)測(cè)圖像幀在所述每一個(gè)宏塊劃分模式下劃分的所有宏塊各自的最小匹配誤差,將所有宏塊各自的最小匹配誤差求和以獲得幀間預(yù)測(cè)圖像幀的宏塊匹配誤差和,并將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀間預(yù)測(cè)圖像幀的宏塊劃分模式。
2.如權(quán)利要求1所述的裝置,其特征在于,宏塊劃分模式確定單元將以下各項(xiàng)中的至少一個(gè)分別存儲(chǔ)于圖形處理器的顯存中的紋理內(nèi)存,并利用圖形處理器的多個(gè)線程基于紋理內(nèi)存中存儲(chǔ)的所述以下各項(xiàng)中的至少一個(gè)來確定幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式和幀間預(yù)測(cè)圖像幀的宏塊劃分模式:幀內(nèi)預(yù)測(cè)圖像幀的各個(gè)像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的各個(gè)像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的參考幀的各個(gè)像素點(diǎn)的像素值。
3.如權(quán)利要求2所述的裝置,其特征在于,所述紋理內(nèi)存包括第一通道、第二通道、第三通道和第四通道,并且,四個(gè)相鄰像素點(diǎn)的像素值被存儲(chǔ)在同一紋理中。
4.如權(quán)利要求3所述的裝置,其特征在于,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,宏塊劃分模式確定單元利用圖形處理器的多個(gè)線程并行地通過鉆石搜索方式確定幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊各自的幀內(nèi)匹配宏塊,其中,所述幀內(nèi)匹配宏塊是指針對(duì)幀內(nèi)預(yù)測(cè)圖像幀的每個(gè)宏塊,在幀內(nèi)預(yù)測(cè)圖像幀的鉆石搜索區(qū)域中與所述每個(gè)宏塊之間具有最小匹配誤差的宏塊,其中,宏塊劃分模式確定單元利用圖形處理器的所述多個(gè)線程計(jì)算幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊與各自的幀內(nèi)匹配宏塊之間的匹配誤差,作為幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊各自的最小匹配誤差;并且,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,宏塊劃分模式確定單元利用圖形處理器的多個(gè)線程并行地通過鉆石搜索方式確定幀間預(yù)測(cè)圖像幀的所有宏塊各自的幀間匹配宏塊,其中,所述幀間匹配宏塊是指針對(duì)幀間預(yù)測(cè)圖像幀的每個(gè)宏塊,在幀間預(yù)測(cè)圖像幀的參考幀的鉆石搜索區(qū)域中與所述每個(gè)宏塊之間具有最小匹配誤差的宏塊,其中,宏塊劃分模式確定單元利用圖形處理器的所述多個(gè)線程計(jì)算幀間預(yù)測(cè)圖像幀的所有宏塊與各自的幀間匹配宏塊之間的匹配誤差,作為幀間預(yù)測(cè)圖像幀的所有宏塊各自的最小匹配誤差。
5.如權(quán)利要求4所述的裝置,其特征在于,所述匹配誤差為宏塊與各自的幀內(nèi)匹配宏塊或幀間匹配宏塊之間的像素值絕對(duì)誤差的和。
6.如權(quán)利要求1所述的裝置,其特征在于,幀類型判斷單元分別對(duì)當(dāng)前圖像幀和當(dāng)前圖像幀的前一幀進(jìn)行降采樣以得到當(dāng)前縮放幀和先前縮放幀,并基于當(dāng)前縮放幀與先前縮放幀之間的差異判斷當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀。
7.如權(quán)利要求6所述的裝置,其特征在于,幀類型判斷單元計(jì)算當(dāng)前縮放幀的所有宏塊與各自的匹配宏塊之間的匹配誤差,將所述所有宏塊與各自的匹配宏塊之間的匹配誤差求和以獲得當(dāng)前縮放幀的匹配誤差和,當(dāng)所述匹配誤差和大于預(yù)定縮放幀運(yùn)動(dòng)閾值時(shí),判斷當(dāng)前圖像幀為幀內(nèi)預(yù)測(cè)圖像幀,其中,所述匹配宏塊是指針對(duì)當(dāng)前縮放幀的每個(gè)宏塊,在先前縮放幀中與所述每個(gè)宏塊之間的匹配誤差小于預(yù)定宏塊運(yùn)動(dòng)閾值的對(duì)應(yīng)宏塊或在先前縮放幀中與所述每個(gè)宏塊之間的匹配誤差最小的宏塊。
8.如權(quán)利要求7所述的裝置,其特征在于,幀類型判斷單元通過鉆石搜索方式計(jì)算當(dāng)前縮放幀的所有宏塊與各自的匹配宏塊之間的匹配誤差。
9.如權(quán)利要求1所述的裝置,其特征在于,所述裝置還包括去塊濾波單元,用于對(duì)反量化和反變換后的當(dāng)前圖像幀進(jìn)行去塊濾波,以得到當(dāng)前圖像幀的重構(gòu)幀,其中,反量化和反變換后的當(dāng)前圖像幀通過編碼單元執(zhí)行的以下處理獲得:在對(duì)幀內(nèi)預(yù)測(cè)后的幀內(nèi)預(yù)測(cè)圖像幀和幀間預(yù)測(cè)后的幀間預(yù)測(cè)圖像幀進(jìn)行變換、量化之后,對(duì)得到的結(jié)果進(jìn)行反量化和反變換。
10.如權(quán)利要求9所述的裝置,其特征在于,去塊濾波單元將反量化和反變換后的當(dāng)前圖像幀劃分成包含16X16個(gè)像素點(diǎn)的多個(gè)宏塊,其中,去塊濾波單元利用圖形處理器的多個(gè)線程按照以下步驟并行地對(duì)所述多個(gè)宏塊進(jìn)行去塊濾波: (1)對(duì)宏塊中位于第O行到第15行并位于第9列到第14列的像素點(diǎn)進(jìn)行垂直濾波; (2)對(duì)宏塊中位于第9列到第15列并位于第9行到第12行的像素點(diǎn)進(jìn)行水平濾波; (3)對(duì)宏塊中位于第9列到第12列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波; (4)對(duì)宏塊中位于第9行到第15行并位于第O列到第8列和第13列到第15列的像素點(diǎn)進(jìn)行垂直濾波; (5)對(duì)宏塊中位于第13列到第15列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波; (6)對(duì)宏塊中位于第O行到第8行并位于第O列到第8列和第13列到第15列的像素點(diǎn)進(jìn)行垂直濾波; (7)對(duì)宏塊中位于第9行到第13行并位于第O列到第8列的像素點(diǎn)進(jìn)行水平濾波; (8)對(duì)宏塊中位于第O列到第8列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波。
11.一種執(zhí)行視頻編碼的方法,其特征在于,包括: (a)判斷視頻的原始圖像幀中的當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀; (b)從多個(gè)宏塊劃分模式中確定幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式和幀間預(yù)測(cè)圖像幀的宏塊劃分模式; (C)在確定的幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀內(nèi)預(yù)測(cè)圖像幀進(jìn)行幀內(nèi)預(yù)測(cè),并在確定的幀間預(yù)測(cè)圖像幀的宏塊劃分模式下對(duì)幀間預(yù)測(cè)圖像幀進(jìn)行幀間預(yù)測(cè); (d)對(duì)幀內(nèi)預(yù)測(cè)后的幀內(nèi)預(yù)測(cè)圖像幀和幀間預(yù)測(cè)后的幀間預(yù)測(cè)圖像幀進(jìn)行變換、量化和編碼,以得到編碼后的當(dāng)前圖像幀, 其中,在步驟(b)中,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,利用圖形處理器的多個(gè)線程并行地計(jì)算幀內(nèi)預(yù)測(cè)圖像幀在所述每一個(gè)宏塊劃分模式下劃分的所有宏塊各自的最小匹配誤差,將所有宏塊各自的最小匹配誤差求和以獲得幀內(nèi)預(yù)測(cè)圖像幀的宏塊匹配誤差和,并將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式;并且,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,利用圖形處理器的多個(gè)線程并行地計(jì)算幀間預(yù)測(cè)圖像幀在所述每一個(gè)宏塊劃分模式下劃分的所有宏塊各自的最小匹配誤差,將所有宏塊各自的最小匹配誤差求和以獲得幀間預(yù)測(cè)圖像幀的宏塊匹配誤差和,并將與最小宏塊匹配誤差和對(duì)應(yīng)的宏塊劃分模式確定為幀間預(yù)測(cè)圖像幀的宏塊劃分模式。
12.如權(quán)利要求11所述的方法,其特征在于,在步驟(b)中,將以下各項(xiàng)中的至少一個(gè)分別存儲(chǔ)于圖形處理器的顯存中的紋理內(nèi)存,并利用圖形處理器的多個(gè)線程基于紋理內(nèi)存中存儲(chǔ)的所述以下各項(xiàng)中的至少一個(gè)來確定幀內(nèi)預(yù)測(cè)圖像幀的宏塊劃分模式和幀間預(yù)測(cè)圖像幀的宏塊劃分模式:幀內(nèi)預(yù)測(cè)圖像幀的各個(gè)像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的各個(gè)像素點(diǎn)的像素值、幀間預(yù)測(cè)圖像幀的參考幀的各個(gè)像素點(diǎn)的像素值。
13.如權(quán)利要求12所述的方法,其特征在于,所述紋理內(nèi)存包括第一通道、第二通道、第三通道和第四通道,并且,四個(gè)相鄰像素點(diǎn)的像素值被存儲(chǔ)在同一紋理中。
14.如權(quán)利要求13所述的方法,其特征在于,在步驟(b)中,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,通過利用圖形處理器的多個(gè)線程并行地通過鉆石搜索方式確定幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊各自的幀內(nèi)匹配宏塊,其中,所述幀內(nèi)匹配宏塊是指針對(duì)幀內(nèi)預(yù)測(cè)圖像幀的每個(gè)宏塊,在幀內(nèi)預(yù)測(cè)圖像幀的鉆石搜索區(qū)域中與所述每個(gè)宏塊之間具有最小匹配誤差的宏塊,其中,通過利用圖形處理器的所述多個(gè)線程計(jì)算幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊與各自的幀內(nèi)匹配宏塊之間的匹配誤差,作為幀內(nèi)預(yù)測(cè)圖像幀的所有宏塊各自的最小匹配誤差;并且,針對(duì)所述多個(gè)宏塊劃分模式中的每一個(gè)宏塊劃分模式,通過利用圖形處理器的多個(gè)線程并行地通過鉆石搜索方式確定幀間預(yù)測(cè)圖像幀的所有宏塊各自的幀間匹配宏塊,其中,所述幀間匹配宏塊是指針對(duì)幀間預(yù)測(cè)圖像幀的每個(gè)宏塊,在幀間預(yù)測(cè)圖像幀的參考幀的鉆石搜索區(qū)域中與所述每個(gè)宏塊之間具有最小匹配誤差的宏塊,其中,通過利用圖形處理器的所述多個(gè)線程計(jì)算幀間預(yù)測(cè)圖像幀的所有宏塊與各自的幀間匹配宏塊之間的匹配誤差,作為幀間預(yù)測(cè)圖像幀的所有宏塊各自的最小匹配誤差。
15.如權(quán)利要求14所述的方法,其特征在于,所述匹配誤差為宏塊與各自的幀內(nèi)匹配宏塊或幀間匹配宏塊之間的像素值絕對(duì)誤差的和。
16.如權(quán)利要求11所述的方法,其特征在于,步驟(a)包括: (al)分別對(duì)當(dāng)前圖像幀和當(dāng)前圖像幀的前一幀進(jìn)行降采樣以得到當(dāng)前縮放幀和先前縮放幀; (a2)基于當(dāng)前縮放幀與先前縮放幀之間的差異判斷當(dāng)前圖像幀是幀內(nèi)預(yù)測(cè)圖像幀還是幀間預(yù)測(cè)圖像幀。
17.如權(quán)利要求16所述的方法,其特征在于,步驟(a2)包括:計(jì)算當(dāng)前縮放幀的所有宏塊與各自的匹配宏塊之間的匹配誤差,將所述所有宏塊與各自的匹配宏塊之間的匹配誤差求和以獲得當(dāng)前縮放幀的匹配誤差和,當(dāng)所述匹配誤差和大于預(yù)定縮放幀運(yùn)動(dòng)閾值時(shí),判斷當(dāng)前圖像幀為幀內(nèi)預(yù)測(cè)圖像幀,其中,所述匹配宏塊是指針對(duì)當(dāng)前縮放幀的每個(gè)宏塊,在先前縮放幀中與所述每個(gè)宏塊之間的匹配誤差小于預(yù)定宏塊運(yùn)動(dòng)閾值的對(duì)應(yīng)宏塊或在先前縮放幀中與所述每個(gè)宏塊之間的匹配誤差最小的宏塊。
18.如權(quán)利要求17所述的方法,其特征在于,在步驟(a2)中,通過鉆石搜索方式計(jì)算當(dāng)前縮放幀的所有宏塊與各自的匹配宏塊之間的匹配誤差。
19.如權(quán)利要求11所述的方法,其特征在于,所述方法還包括: (e)對(duì)反量化和反變換后的當(dāng)前圖像幀進(jìn)行去塊濾波,以得到當(dāng)前圖像幀的重構(gòu)幀,其中,反量化和反變換后的當(dāng)前圖像幀通過進(jìn)行以下處理后獲得:在對(duì)幀內(nèi)預(yù)測(cè)后的幀內(nèi)預(yù)測(cè)圖像幀和幀間預(yù)測(cè)后的幀間預(yù)測(cè)圖像幀進(jìn)行變換、量化之后,對(duì)得到的結(jié)果進(jìn)行反量化和反變換。
20.如權(quán)利要求19所述的方法,其特征在于,在步驟(e)中,將反量化和反變換后的當(dāng)前圖像幀劃分成包含16X16個(gè)像素點(diǎn)的多個(gè)宏塊,并利用圖形處理器的多個(gè)線程按照以下步驟并行地對(duì)所述多個(gè)宏塊進(jìn)行去塊濾波: (1)對(duì)宏塊中位于第O行到第15行并位于第9列到第14列的像素點(diǎn)進(jìn)行垂直濾波; (2)對(duì)宏塊中位于第9列到第15列并位于第9行到第12行的像素點(diǎn)進(jìn)行水平濾波; (3)對(duì)宏塊中位于第9列到第12列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波; (4)對(duì)宏塊中位于第9行到第15行并位于第O列到第8列和第13列到第15列的像素點(diǎn)進(jìn)行垂直濾波; (5)對(duì)宏塊中位于第13列到第15列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波; (6)對(duì)宏塊中位于第O行到第8行并位于第O列到第8列和第13列到第15列的像素點(diǎn)進(jìn)行垂直濾波; (7)對(duì)宏塊中位于第9行到第13行并位于第O列到第8列的像素點(diǎn)進(jìn)行水平濾波; (8)對(duì)宏塊中位于第O列到第8列并位于第O行到第8行和第13行到第15行的像素點(diǎn)進(jìn)行水平濾波。
【文檔編號(hào)】H04N19/103GK104202602SQ201410407515
【公開日】2014年12月10日 申請(qǐng)日期:2014年8月18日 優(yōu)先權(quán)日:2014年8月18日
【發(fā)明者】郝冬寧, 杜逢博, 王左龍, 孫曄, 崔環(huán)宇 申請(qǐng)人:三星電子(中國)研發(fā)中心, 三星電子株式會(huì)社