本發(fā)明涉及通信領(lǐng)域,具體而言,本發(fā)明涉及一種視頻壓縮編碼及解碼系統(tǒng),特別是基于混合色度采樣率的圖像壓縮方法和裝置。
背景技術(shù):
計(jì)算機(jī)和信息處理已經(jīng)進(jìn)入以“遠(yuǎn)程屏幕”為特征的“云計(jì)算”與“移動(dòng)計(jì)算”相結(jié)合的時(shí)代。實(shí)時(shí)遠(yuǎn)程屏幕傳輸已成為當(dāng)前迫切的需求。由于需要傳輸?shù)钠聊灰曨l數(shù)據(jù)量很大,以1920*1200像素分辨率且60幀/秒刷新率的24位真彩色屏幕圖像為例,需要傳輸?shù)臄?shù)據(jù)超過(guò)每秒3千兆比特,如此多的數(shù)據(jù)要想在當(dāng)前的網(wǎng)絡(luò)條件下實(shí)現(xiàn)實(shí)時(shí)傳輸是不可能的,因此有效的屏幕圖像數(shù)據(jù)壓縮是必不可少的。
屏幕圖像的數(shù)字視頻信號(hào)的自然形式是圖像的序列。一幅圖像通常是由若干像素組成的矩形區(qū)域,如果一個(gè)數(shù)字視頻信號(hào)每秒有50幅圖像,那么一個(gè)30分鐘的數(shù)字視頻信號(hào)就是一個(gè)由30x60x50=90000幅圖像組成的視頻圖像序列,有時(shí)也簡(jiǎn)稱(chēng)為視頻序列或序列。對(duì)數(shù)字視頻信號(hào)進(jìn)行編碼就是對(duì)一幅一幅圖像進(jìn)行編碼。為了降低編碼和解碼的延遲,需要把一幅圖像劃分成若干塊子圖像,稱(chēng)為編碼單元,以編碼單元為基本編碼單位,對(duì)子圖像一塊一塊進(jìn)行編碼。一種常用的編碼單元的大小是16x16個(gè)像素,這種編碼單元稱(chēng)為宏塊。因此,對(duì)一個(gè)視頻圖像序列進(jìn)行編碼就是對(duì)各個(gè)編碼單元依次進(jìn)行編碼。同樣,解碼時(shí)也是對(duì)各個(gè)編碼單元依次進(jìn)行解碼,最終重構(gòu)出整個(gè)視頻圖像序列。
像素有各種格式,如:1個(gè)像素由1個(gè)紅色分量、1個(gè)綠色分量、1個(gè)藍(lán)色分量組成的rgb像素格式;1個(gè)像素由1個(gè)亮度y分量、1個(gè)色度u分量、1個(gè)色度v分量組成的yuv4:4:4像素格式;左右相鄰的2個(gè)像素由2個(gè)亮度y分量、1個(gè)色度u分量、1個(gè)色度v分量組成的yuv4:2:2像素格式;左右上下相鄰按2x2空間位置排列的4個(gè)像素由4個(gè)亮度y分量、1個(gè)色度u分量、1個(gè)色度v分量組成的yuv4:2:0像素格式。一個(gè)分量一般用1個(gè)8-16比特的數(shù)字來(lái)表示。yuv4:2:2像素格式和yuv4:2:0像素格式都是對(duì)yuv4:4:4像素格式施行色度分量的下采樣得到,下采樣后,數(shù)據(jù)率分別降低了33%和50%。
圖像可以分為兩類(lèi):1)計(jì)算機(jī)生成的文字、背景、圖形等非自然圖像,具有非連續(xù)色調(diào)的特性,線(xiàn)條精細(xì),棱角分明,色彩相對(duì)簡(jiǎn)單;2)攝像機(jī)拍攝的自然圖像,具有連續(xù)色調(diào)的特性,色彩豐富,但少有很細(xì)的線(xiàn)條和尖銳的棱角。對(duì)自然圖像,色度下采樣幾乎沒(méi)有視覺(jué)影響又可降低數(shù)據(jù)率。所以對(duì)自然圖像的壓縮編碼,絕大多數(shù)都是針對(duì)yuv4:2:0像素格式的圖像的編碼。另一方面,色度下采樣對(duì)非自然圖像中的線(xiàn)條和棱角有非常明顯的視覺(jué)影響。所以對(duì)非自然圖像的高質(zhì)量壓縮編碼,必須是直接對(duì)yuv4:4:4像素格式的圖像進(jìn)行編碼。
包括屏幕圖像在內(nèi)的各種類(lèi)型圖像和視頻序列的編碼技術(shù)中,使用最多的現(xiàn)有技術(shù)的編碼方法的流程示意圖如圖1所示?,F(xiàn)有技術(shù)的編碼方法包括如下步驟:
讀入具有同一像素格式的一個(gè)圖像編碼單元;
對(duì)該編碼單元進(jìn)行有損編碼;
對(duì)步驟2)的編碼結(jié)果繼續(xù)進(jìn)行無(wú)損編碼,并輸出編碼得到的壓縮碼流數(shù)據(jù);
對(duì)步驟2)的編碼結(jié)果進(jìn)行所述有損編碼的逆運(yùn)算,即重構(gòu)出所述編碼單元的像素,并把重構(gòu)編碼單元的像素放入歷史像素暫存區(qū),用作后續(xù)編碼的參考像素,由于編碼是有損的,重構(gòu)像素不等于原先輸入的像素;
判斷是否已經(jīng)完成對(duì)所有編碼單元的編碼,如果是,則結(jié)束編碼,否則回到步驟1),開(kāi)始對(duì)下一個(gè)編碼單元的編碼。
現(xiàn)有技術(shù)的解碼方法的流程示意圖如圖2所示?,F(xiàn)有技術(shù)的解碼方法包括如下步驟:
讀入一段對(duì)應(yīng)與一個(gè)圖像編碼單元的部分輸入視頻碼流數(shù)據(jù);
解碼并重構(gòu)具有同一像素格式的一個(gè)編碼單元,并把重構(gòu)編碼單元的像素放入歷史像素暫存區(qū),用作后續(xù)解碼的參考像素;
輸出重構(gòu)編碼單元;
判斷是否已經(jīng)完成對(duì)所有編碼單元的壓縮碼流數(shù)據(jù)的解碼,如果是,則結(jié)束解碼,否則回到步驟1),開(kāi)始對(duì)下一個(gè)編碼單元的解碼。
現(xiàn)有技術(shù)的編碼裝置示意圖如圖3所示。整個(gè)編碼裝置由以下模塊組成:
可以存儲(chǔ)至少一個(gè)編碼單元的像素的存儲(chǔ)模塊;
單一像素格式的有損編碼模塊;
單一像素格式的無(wú)損編碼模塊;
像素的重構(gòu)模塊;
同一像素格式的歷史像素暫存模塊。
現(xiàn)有技術(shù)的的解碼裝置示意圖如圖4所示。整個(gè)解碼裝置由以下模塊組成:
單一像素格式的解碼重構(gòu)模塊;
同一像素格式的歷史像素暫存模塊。
如上所述,現(xiàn)有技術(shù)中,對(duì)一幅圖像中的所有編碼單元,都是采用同樣的單一的像素格式直接對(duì)其進(jìn)行編碼。在整幅圖像都是自然圖像或非自然圖像的場(chǎng)合,現(xiàn)有技術(shù)是有效的。隨著多媒體技術(shù)在計(jì)算機(jī)中的普及,今天和未來(lái)的計(jì)算機(jī)屏幕圖像中,如瀏覽中的多媒體網(wǎng)頁(yè),部分屏幕區(qū)域是自然圖像而另一部分屏幕區(qū)域則是非自然圖像,兩種區(qū)域交錯(cuò)混合。因此,現(xiàn)有技術(shù)不適用于對(duì)含自然圖像區(qū)域和非自然圖像區(qū)域的復(fù)合圖像進(jìn)行既有高質(zhì)量又有高壓縮率的編碼。
技術(shù)實(shí)現(xiàn)要素:
為了解決復(fù)合圖像視頻編碼和解碼的現(xiàn)有技術(shù)中的這一問(wèn)題,本發(fā)明提供了一種基于混合色度采樣率的圖像編碼與解碼的方法和裝置。
本發(fā)明的主要技術(shù)特征如圖5所示。
本發(fā)明的編碼方法和裝置中,輸入圖像是亮度采樣率和色度采樣率完全一致的圖像,如圖5所示yuv4:4:4像素格式的圖像。輸入圖像被分割成具有一定像素的基本編碼單位,稱(chēng)為編碼單元(codingunit簡(jiǎn)稱(chēng)cu),對(duì)cu逐個(gè)進(jìn)行編碼。
對(duì)一個(gè)cu進(jìn)行編碼時(shí),首先讀入一個(gè)yuv4:4:4像素格式的cu(稱(chēng)為4:4:4編碼單元或簡(jiǎn)稱(chēng)4:4:4cu)的全部像素。這個(gè)4:4:4cu有3個(gè)分量。對(duì)該4:4:4cu的兩個(gè)色度分量進(jìn)行下采樣,得到對(duì)應(yīng)的4:2:0cu。如果在對(duì)一幅yuv4:4:4圖像進(jìn)行編碼前,已經(jīng)對(duì)該圖像的所有色度分量進(jìn)行了下采樣而產(chǎn)生了對(duì)應(yīng)的yuv4:2:0圖像,那么所述對(duì)應(yīng)的4:2:0cu也可以從所述對(duì)應(yīng)的yuv4:2:0圖像中直接讀入。
然后,本發(fā)明同時(shí)使用兩組不同類(lèi)型的編碼工具,分別對(duì)4:4:4cu和4:2:0cu進(jìn)行壓縮編碼。兩組編碼完成后,分別計(jì)算兩種編碼結(jié)果的率-失真特性,選擇率-失真特性最優(yōu)的那組編碼工具的編碼結(jié)果作為對(duì)該cu的最后編碼結(jié)果,并把相應(yīng)的壓縮碼流數(shù)據(jù)寫(xiě)入輸出壓縮碼流。最終的輸出壓縮碼流是既含有yuv4:4:4像素格式的壓縮碼流數(shù)據(jù)又含有yuv4:2:0像素格式的壓縮碼流數(shù)據(jù)的具有混合色度采樣率的壓縮碼流。
在壓縮碼流的解碼端,本發(fā)明從碼流中不斷讀入部分碼流數(shù)據(jù),按照cu在碼流中的順序,逐個(gè)進(jìn)行以cu為單位的解碼。解碼端有兩組不同類(lèi)型的解碼工具:yuv4:4:4解碼工具和yuv4:2:0解碼工具。對(duì)一個(gè)cu的碼流數(shù)據(jù)進(jìn)行解碼時(shí),首先解析出該cu是以yuv4:4:4還是yuv4:2:0像素格式進(jìn)行編碼的,然后把碼流數(shù)據(jù)送往相應(yīng)的那組解碼工具進(jìn)行解碼。從yuv4:4:4解碼工具得到的是yuv4:4:4像素格式的重構(gòu)cu,而從yuv4:2:0解碼工具得到的是yuv4:2:0像素格式的重構(gòu)cu。后者還必須經(jīng)過(guò)色度上采樣,得到y(tǒng)uv4:4:4像素格式的重構(gòu)cu。這樣,就得到最終的完整的yuv4:4:4像素格式的重構(gòu)圖像。
本發(fā)明的編碼方法的流程示意圖如圖6所示。本發(fā)明對(duì)一幅圖像的編碼方法包括如下步驟:
1)讀入具有第一像素格式的一個(gè)圖像編碼單元,稱(chēng)其為第一編碼單元;
2)對(duì)所述第一編碼單元的色度分量進(jìn)行下采樣,保持亮度分量不變,生成第二像素格式的編碼單元,稱(chēng)其為第二編碼單元;
3)用第一組編碼工具對(duì)所述第一編碼單元進(jìn)行第一編碼,產(chǎn)生第一組編碼工具的編碼結(jié)果;
4)用第二組編碼工具對(duì)所述第二編碼單元進(jìn)行第二有損編碼;
5)用所述第二組編碼工具繼續(xù)對(duì)步驟4)的編碼結(jié)果進(jìn)行第二無(wú)損編碼,產(chǎn)生第二組編碼工具的編碼結(jié)果;
6)對(duì)步驟3)的編碼結(jié)果進(jìn)行所述第一編碼的逆運(yùn)算,產(chǎn)生出第一重構(gòu)編碼單元,并把所述第一重構(gòu)編碼單元的像素放入第一像素格式的歷史像素暫存區(qū),用作所述第一組編碼工具的后續(xù)編碼的參考像素,由于編碼可能是有損的,所述第一重構(gòu)編碼單元的像素不一定等于所述第一編碼單元的像素;
7)對(duì)步驟4)的編碼結(jié)果進(jìn)行所述第二有損編碼的逆運(yùn)算,產(chǎn)生出第二重構(gòu)編碼單元,并把所述第二重構(gòu)編碼單元的像素放入第二像素格式的歷史像素暫存區(qū),用作所述第二組編碼工具的后續(xù)編碼的參考像素,由于編碼是有損的,所述第二重構(gòu)編碼單元的像素不一定等于所述第二編碼單元的像素;
8)使用步驟3)的編碼結(jié)果和步驟6)的重構(gòu)結(jié)果,計(jì)算第一組編碼工具的編碼結(jié)果的率-失真特性;
9)對(duì)所述第二重構(gòu)編碼單元進(jìn)行色度上采樣,得到第一像素格式的第二重構(gòu)上采樣編碼單元;
10)使用步驟5)的編碼結(jié)果和步驟9)的重構(gòu)上采樣結(jié)果,計(jì)算第二組編碼工具的編碼結(jié)果的率-失真特性;
11)選擇率-失真特性最優(yōu)的那組編碼工具的編碼結(jié)果作為對(duì)所述第一編碼單元的最后編碼結(jié)果,并輸出相應(yīng)壓縮碼流數(shù)據(jù);
12)判斷率-失真特性最優(yōu)的那組編碼工具是否是第一組編碼工具,如果是,則順序執(zhí)行下一步驟,否則跳至步驟14);
13)對(duì)所述第一重構(gòu)編碼單元進(jìn)行色度下采樣,得到第二像素格式的第一重構(gòu)下采樣編碼單元,并用所述第一重構(gòu)下采樣編碼單元的像素更新和替換步驟7)中放入第二像素格式的歷史像素暫存區(qū)的第二重構(gòu)編碼單元的像素,然后跳至步驟15);
14)用所述第二重構(gòu)上采樣編碼單元的像素更新和替換步驟6)中放入第一像素格式的歷史像素暫存區(qū)的第一重構(gòu)編碼單元的像素;
15)判斷是否已經(jīng)完成對(duì)一幅圖像所有編碼單元的編碼,如果是,則結(jié)束編碼,否則回到步驟1),開(kāi)始對(duì)下一個(gè)編碼單元的編碼。
本發(fā)明的解碼方法的流程示意圖如圖7所示。本發(fā)明對(duì)壓縮碼流的解碼方法包括如下步驟:
1)從輸入壓縮碼流中讀入屬于一個(gè)被編碼的編碼單元,稱(chēng)其為被編碼單元,的一段壓縮碼流數(shù)據(jù);
2)從所述一段壓縮碼流數(shù)據(jù)中解析出該段壓縮碼流數(shù)據(jù)所含的當(dāng)前被編碼單元采用第一像素格式還是第二像素格式,并把該段壓縮碼流數(shù)據(jù)送往對(duì)應(yīng)的第一組解碼工具或第二組解碼工具;
3)所述當(dāng)前被編碼單元采用第一像素格式的場(chǎng)合,本步驟包括下列子步驟:
3a)用所述第一組解碼工具對(duì)壓縮碼流進(jìn)行解碼,產(chǎn)生出第一像素格式的第一重構(gòu)編碼單元,并把所述第一重構(gòu)編碼單元的像素放入第一像素格式的歷史像素暫存區(qū),用作所述第一組解碼工具的后續(xù)解碼的參考像素;
3b)對(duì)所述第一重構(gòu)編碼單元進(jìn)行色度下采樣,得到第二像素格式的第一重構(gòu)下采樣編碼單元,并把所述第一重構(gòu)下采樣編碼單元的像素放入第二像素格式的歷史像素暫存區(qū),用作所述第二組解碼工具的后續(xù)解碼的參考像素;
3c)輸出所述第一重構(gòu)編碼單元;
4)所述當(dāng)前被編碼單元采用第二像素格式的場(chǎng)合,本步驟包括下列子步驟:
4a)用所述第二組解碼工具對(duì)壓縮碼流進(jìn)行解碼,產(chǎn)生出第二像素格式的第二重構(gòu)編碼單元,并把所述第二重構(gòu)編碼單元的像素放入第二像素格式的歷史像素暫存區(qū),用作所述第二組解碼工具的后續(xù)解碼的參考像素;
4b)對(duì)所述第二重構(gòu)編碼單元進(jìn)行色度上采樣,得到第一像素格式的第二重構(gòu)上采樣編碼單元,并把所述第二重構(gòu)上采樣編碼單元的像素放入第一像素格式的歷史像素暫存區(qū),用作所述第一組解碼工具的后續(xù)解碼的參考像素;
4c)輸出所述第二重構(gòu)上采樣編碼單元;
5)判斷是否已經(jīng)完成對(duì)一幅圖像或一個(gè)視頻序列所有被編碼單元壓縮碼流數(shù)據(jù)的解碼,如果是,則結(jié)束解碼,否則回到步驟1),開(kāi)始對(duì)下一個(gè)被編碼單元的解碼。
本發(fā)明的編碼裝置示意圖如圖8所示。整個(gè)編碼裝置由以下模塊組成:
1)第一像素格式像素存儲(chǔ)模塊,用于存儲(chǔ)至少一個(gè)編碼單元的第一輸入像素;
2)使用第一組編碼工具的編碼模塊,用于對(duì)第一像素格式的第一輸入像素編碼單元進(jìn)行編碼;
3)第一重構(gòu)模塊,用于重構(gòu)產(chǎn)生第一重構(gòu)編碼單元,第一重構(gòu)編碼單元的一個(gè)用途是用于第一組編碼工具所需的參考像素,另一個(gè)用途是用于計(jì)算第一率-失真特性;
4)第一像素格式的歷史像素暫存模塊,用于暫存第一組編碼工具所需的參考像素;
5)第一率-失真特性計(jì)算模塊,用于計(jì)算所述使用第一組編碼工具的編碼模塊產(chǎn)生的編碼結(jié)果的第一率-失真特性;
6)色度下采樣模塊,有兩個(gè)用途:
6a)對(duì)第一像素格式的第一輸入像素進(jìn)行色度下采樣,產(chǎn)生第二像素格式的第二輸入像素;
6b)對(duì)第一像素格式的參考像素進(jìn)行色度下采樣,產(chǎn)生第二組編碼工具所需的第二像素格式的參考像素;
7)第二像素格式像素存儲(chǔ)模塊,用于存儲(chǔ)至少一個(gè)編碼單元的第二輸入像素;
8)使用第二組編碼工具的有損編碼模塊,用于對(duì)第二像素格式的第二輸入像素編碼單元進(jìn)行有損編碼;
9)使用第二組編碼工具的無(wú)損編碼模塊,用于對(duì)所述使用第二組編碼工具的有損編碼模塊產(chǎn)生的編碼結(jié)果繼續(xù)進(jìn)行無(wú)損編碼;
10)第二重構(gòu)模塊,用于重構(gòu)產(chǎn)生第二重構(gòu)編碼單元,第二重構(gòu)編碼單元的一個(gè)用途是用于第二組編碼工具所需的參考像素,另一個(gè)用途是經(jīng)過(guò)色度上采樣后用于計(jì)算第二率-失真特性;
11)第二像素格式的歷史像素暫存模塊,用于暫存第二組編碼工具所需的參考像素;
12)色度上采樣模塊,有兩個(gè)用途:
12a)對(duì)第二重構(gòu)編碼單元進(jìn)行色度上采樣,提供給第二率-失真特性計(jì)算模塊用于計(jì)算第二率-失真特性;
12b)對(duì)第二像素格式的參考像素進(jìn)行色度上采樣,產(chǎn)生第一組編碼工具所需的第一像素格式的參考像素;
13)第二率-失真特性計(jì)算模塊,用于計(jì)算所述使用第二組編碼工具的編碼模塊產(chǎn)生的編碼結(jié)果的第二率-失真特性;
14)最優(yōu)編碼工具選擇模塊,連接于所述第一和第二率-失真特性計(jì)算模塊,用于對(duì)所述率-失真特性計(jì)算結(jié)果進(jìn)行分析,并選擇出率-失真特性最優(yōu)的那組編碼工具的編碼結(jié)果作為對(duì)當(dāng)前第一輸入像素編碼單元的最后編碼結(jié)果;
15)碼流暫存輸出模塊,連接于所述最優(yōu)編碼工具選擇模塊,用于暫存所述最優(yōu)編碼工具編碼模塊所產(chǎn)生的壓縮碼流數(shù)據(jù),并在特定的時(shí)間,把所述的壓縮碼流數(shù)據(jù)輸出到壓縮碼流。
本發(fā)明的解碼裝置示意圖如圖9所示。整個(gè)解碼裝置由以下模塊組成:
1)碼流像素格式解析模塊,用于接收從一外部裝置輸入的視頻壓縮碼流,解析出接收到的一段壓縮碼流數(shù)據(jù)內(nèi)壓縮的當(dāng)前編碼單元,稱(chēng)為當(dāng)前被編碼單元,是第一像素格式編碼單元還是第二像素格式編碼單元,選擇相對(duì)應(yīng)的第一組解碼工具或第二組解碼工具對(duì)所述一段壓縮碼流數(shù)據(jù)進(jìn)行解碼,并把所述一段壓縮碼流數(shù)據(jù)輸出至相對(duì)應(yīng)的第一解碼重構(gòu)模塊或第二解碼重構(gòu)模塊;
2)第一解碼重構(gòu)模塊,在所述當(dāng)前被編碼單元是第一像素格式的場(chǎng)合,使用第一組解碼工具對(duì)第一像素格式的壓縮碼流數(shù)據(jù)進(jìn)行解碼,重構(gòu)產(chǎn)生出第一像素格式的第一重構(gòu)編碼單元;
3)第一像素格式的歷史像素暫存模塊,用于暫存第一組解碼工具所需的參考像素;
4)第二解碼重構(gòu)模塊,在所述當(dāng)前被編碼單元是第二像素格式的場(chǎng)合,使用第二組解碼工具對(duì)第二像素格式的壓縮碼流數(shù)據(jù)進(jìn)行解碼,重構(gòu)產(chǎn)生出第二像素格式的第二重構(gòu)編碼單元;
5)第二像素格式的歷史像素暫存模塊,用于暫存第二組解碼工具所需的參考像素;
6)色度下采樣模塊,在所述當(dāng)前被編碼單元是第一像素格式的場(chǎng)合,對(duì)所述第一重構(gòu)編碼單元的像素進(jìn)行色度下采樣,產(chǎn)生第二組解碼工具后續(xù)解碼所需的第二像素格式的參考像素;
7)色度上采樣模塊,在所述當(dāng)前被編碼單元是第二像素格式的場(chǎng)合,對(duì)所述第二重構(gòu)編碼單元的像素進(jìn)行色度上采樣,產(chǎn)生符合最終輸出像素格式要求的第一像素格式的重構(gòu)像素,同時(shí)也是第一組解碼工具后續(xù)解碼所需的參考像素;
8)重構(gòu)圖像暫存輸出模塊,連接于所述的第一解碼重構(gòu)模塊和所述的色度上采樣模塊,用以暫存解碼重構(gòu)的一幅或多幅圖像,并在預(yù)設(shè)的時(shí)間按照?qǐng)D像的顯示順序,把圖像輸出。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種圖像編碼方法,包括:
讀入第一編碼單元和第二編碼單元,其中,所述第二編碼單元為所述第一編碼單元通過(guò)指定處理方式得到,所述第一編碼單元和第二編碼單元采用不同的像素格式;根據(jù)第一組編碼工具對(duì)所述第一編碼單元進(jìn)行編碼得到第一編碼結(jié)果,以及采用第二組編碼工具對(duì)所述第二編碼單元進(jìn)行編碼得到第二編碼結(jié)果,其中,所述第一組編碼工具和第二組編碼工具部分相同;根據(jù)所述第一編碼結(jié)果和第二編碼結(jié)果分別確定所述第一編碼結(jié)果對(duì)應(yīng)的第一率-失真特性和所述第二編碼結(jié)果對(duì)應(yīng)的第二率-失真特性;從所述第一率-失真特性和第二率-失真特性中選擇最優(yōu)的率-失真特性所對(duì)應(yīng)的編碼結(jié)果,并輸出最優(yōu)的率-失真特性所對(duì)應(yīng)的編碼結(jié)果的碼流數(shù)據(jù)。
可選地,通過(guò)以下指定處理方式得到所述第二編碼單元:對(duì)所述第一編碼單元的色度分量進(jìn)行下采樣,保持亮度分量不變,得到所述第二編碼單元。
可選地,所述第一編碼單元和所述第二編碼單元分別對(duì)應(yīng)編碼器的編碼單元原始輸入值和解碼單元重建恢復(fù)值。
可選地,所述第一編碼單元對(duì)應(yīng)的第一組編碼方法和所述第二編碼單元對(duì)應(yīng)的第二組編碼方法在不同的緩沖區(qū)存儲(chǔ)有:用于所述第一組編碼方法或第二組編碼方法所參考的重建像素,其中,第二組編碼方法對(duì)應(yīng)的恢復(fù)像素值,用于更新所述第一組編碼方法對(duì)應(yīng)的緩沖區(qū),或第一組編碼方法對(duì)應(yīng)的恢復(fù)像素值,用于更新所述第二組編碼方法對(duì)應(yīng)的緩沖區(qū)。
可選地,所述第一編碼單元的第一像素格式是yuv4:4:4格式,所述第二編碼單元的第二像素格式是yuv4:2:0格式,或者,所述第一編碼單元的第一像素格式是yuv4:4:4格式,所述第二編碼單元的第二像素格式是yuv4:2:2格式;或者,所述第一編碼單元的第一像素格式是yuv4:2:2格式,所述第二編碼單元的第二像素格式是yuv4:2:0格式。
根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種圖像解碼方法,包括:
從輸入的碼流數(shù)據(jù)中讀取被編碼的編碼單元相關(guān)的碼流數(shù)據(jù),并確定所述編碼單元所采用的像素格式,其中,所述像素格式包括:第一像素格式和第二像素格式;根據(jù)所述編碼單元對(duì)應(yīng)的像素格式從第一組解碼工具和第二組解碼工具中選擇出一組解碼工具,對(duì)讀取的所述編碼單元相關(guān)的碼流數(shù)據(jù)進(jìn)行解碼。
需要說(shuō)明的是,編碼單元相關(guān)的碼流數(shù)據(jù)指的是該編碼單元的解碼過(guò)程中需要使用的碼流數(shù)據(jù)。
可選地,根據(jù)所述編碼單元對(duì)應(yīng)的像素格式從第一組解碼工具和第二組解碼工具中選擇出一組解碼工具,對(duì)讀取的所述編碼單元相關(guān)的碼流數(shù)據(jù)進(jìn)行解碼,包括:
當(dāng)所述編碼單元采用第一像素格式時(shí),采用所述第一組解碼工具對(duì)所述編碼單元相關(guān)的碼流數(shù)據(jù)進(jìn)行解碼,產(chǎn)生出第一像素格式的第一重構(gòu)編碼單元,并把所述第一重構(gòu)編碼單元的像素放入第一像素格式對(duì)應(yīng)的歷史像素暫存區(qū),用作所述第一組解碼工具的后續(xù)解碼的參考像素;
對(duì)所述第一重構(gòu)編碼單元進(jìn)行色度下采樣,得到第二像素格式的第一重構(gòu)下采樣編碼單元,并把所述第一重構(gòu)下采樣編碼單元的像素放入第二像素格式的歷史像素暫存區(qū),用作所述第二組解碼工具的后續(xù)解碼的參考像素;
輸出所述第一重構(gòu)編碼單元。
可選地,根據(jù)所述編碼單元對(duì)應(yīng)的像素格式從第一組解碼工具和第二組解碼工具中選擇出一組解碼工具,對(duì)讀取的所述編碼單元相關(guān)的碼流數(shù)據(jù)進(jìn)行解碼,包括:
當(dāng)所述編碼單元采用第二像素格式時(shí),采用所述第二組解碼工具對(duì)所述編碼單元相關(guān)的碼流數(shù)據(jù)進(jìn)行解碼,產(chǎn)生出第二像素格式的第二重構(gòu)編碼單元,并把所述第二重構(gòu)編碼單元的像素放入第二像素格式的歷史像素暫存區(qū),用作所述第二組解碼工具的后續(xù)解碼的參考像素;
對(duì)所述第二重構(gòu)編碼單元進(jìn)行色度上采樣,得到第一像素格式的第二重構(gòu)上采樣編碼單元,并把所述第二重構(gòu)上采樣編碼單元的像素放入第一像素格式的歷史像素暫存區(qū),用作所述第一組解碼工具的后續(xù)解碼的參考像素;
輸出所述第二重構(gòu)上采樣編碼單元。
可選地,所述編碼單元包括:第一編碼單元和第二編碼單元,所述第一編碼單元的第一像素格式是yuv4:4:4格式,所述第二編碼單元的第二像素格式是yuv4:2:0格式;或者,
所述第一編碼單元的第一像素格式是yuv4:4:4格式,所述第二編碼單元的第二像素格式是yuv4:2:2格式;或者,
所述第一編碼單元的第一像素格式是yuv4:2:2格式,所述第二編碼單元的第二像素格式是yuv4:2:0格式。
根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種圖像編碼裝置,包括:
讀取模塊,用于讀入第一編碼單元和第二編碼單元,其中,所述第二編碼單元為所述第一編碼單元通過(guò)指定處理方式得到,所述第一編碼單元和第二編碼單元采用不同的像素格式;第一確定模塊,用于根據(jù)第一組編碼工具對(duì)所述第一編碼單元進(jìn)行編碼得到第一編碼結(jié)果,以及采用第二組編碼工具對(duì)所述第二編碼單元進(jìn)行編碼得到第二編碼結(jié)果,其中,所述第一組編碼工具和第二組編碼工具部分相同;第二確定模塊,用于根據(jù)所述第一編碼結(jié)果和第二編碼結(jié)果分別確定所述第一編碼結(jié)果對(duì)應(yīng)的第一率-失真特性和所述第二編碼結(jié)果對(duì)應(yīng)的第二率-失真特性;第一選擇模塊,用于從所述第一率-失真特性和第二率-失真特性中選擇最優(yōu)的率-失真特性所對(duì)應(yīng)的編碼結(jié)果,并輸出最優(yōu)的率-失真特性所對(duì)應(yīng)的編碼結(jié)果的碼流數(shù)據(jù)。
可選地,通過(guò)以下指定處理方式得到所述第二編碼單元:對(duì)所述第一編碼單元的色度分量進(jìn)行下采樣,保持亮度分量不變,得到所述第二編碼單元。
可選地,所述第一編碼單元和所述第二編碼單元分別對(duì)應(yīng)編碼器的編碼單元原始輸入值和解碼單元重建恢復(fù)值。
可選地,所述第一編碼單元對(duì)應(yīng)的第一組編碼方法和所述第二編碼單元對(duì)應(yīng)的第二組編碼方法在不同的緩沖區(qū)存儲(chǔ)有:用于所述第一組編碼方法或第二組編碼方法所參考的重建像素,其中,第二組編碼方法對(duì)應(yīng)的恢復(fù)像素值,用于更新所述第一組編碼方法對(duì)應(yīng)的緩沖區(qū),或第一組編碼方法對(duì)應(yīng)的恢復(fù)像素值,用于更新所述第二組編碼方法對(duì)應(yīng)的緩沖區(qū)。
根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種圖像解碼裝置,包括:
第三確定單元,用于從輸入的碼流數(shù)據(jù)中讀取被編碼的編碼單元相關(guān)的碼流數(shù)據(jù),并確定所述編碼單元所采用的像素格式,其中,所述像素格式包括:第一像素格式和第二像素格式;第二選擇模塊,用于根據(jù)所述編碼單元對(duì)應(yīng)的像素格式從第一組解碼工具和第二組解碼工具中選擇出一組解碼工具,對(duì)讀取的所述編碼單元相關(guān)的碼流數(shù)據(jù)進(jìn)行解碼。
可選地,解碼模塊,包括:
第一解碼單元,用于當(dāng)所述編碼單元采用第一像素格式時(shí),采用所述第一組解碼工具對(duì)所述編碼單元相關(guān)的碼流數(shù)據(jù)進(jìn)行解碼,產(chǎn)生出第一像素格式的第一重構(gòu)編碼單元,并把所述第一重構(gòu)編碼單元的像素放入第一像素格式對(duì)應(yīng)的歷史像素暫存區(qū),用作所述第一組解碼工具的后續(xù)解碼的參考像素;
第一確定單元,用于對(duì)所述第一重構(gòu)編碼單元進(jìn)行色度下采樣,得到第二像素格式的第一重構(gòu)下采樣編碼單元,并把所述第一重構(gòu)下采樣編碼單元的像素放入第二像素格式的歷史像素暫存區(qū),用作所述第二組解碼工具的后續(xù)解碼的參考像素;
第一輸出單元,用于輸出所述第一重構(gòu)編碼單元。
可選地,所述解碼模塊,包括:
第二解碼單元,用于當(dāng)所述編碼單元采用第二像素格式時(shí),采用所述第二組解碼工具對(duì)所述編碼單元相關(guān)的碼流數(shù)據(jù)進(jìn)行解碼,產(chǎn)生出第二像素格式的第二重構(gòu)編碼單元,并把所述第二重構(gòu)編碼單元的像素放入第二像素格式的歷史像素暫存區(qū),用作所述第二組解碼工具的后續(xù)解碼的參考像素;
第二確定單元,用于對(duì)所述第二重構(gòu)編碼單元進(jìn)行色度上采樣,得到第一像素格式的第二重構(gòu)上采樣編碼單元,并把所述第二重構(gòu)上采樣編碼單元的像素放入第一像素格式的歷史像素暫存區(qū),用作所述第一組解碼工具的后續(xù)解碼的參考像素;
第二輸出單元,用于輸出所述第二重構(gòu)上采樣編碼單元。
附圖說(shuō)明
圖1、現(xiàn)有技術(shù)中編碼方法流程示意圖;
圖2、現(xiàn)有技術(shù)中解碼方法流程示意圖;
圖3、現(xiàn)有技術(shù)中編碼裝置的模塊組成示意圖;
圖4、現(xiàn)有技術(shù)中解碼裝置的模塊組成示意圖;
圖5、本發(fā)明的主要技術(shù)特征說(shuō)明圖;
圖6、本發(fā)明的編碼方法流程示意圖;
圖7、本發(fā)明的解碼方法流程示意圖;
圖8、本發(fā)明的編碼裝置的模塊組成示意圖;
圖9、本發(fā)明的解碼裝置的模塊組成示意圖;
圖10、混合yuv4:4:4和yuv4:2:0像素格式的編碼方法流程示意圖。
具體實(shí)施方式
以下通過(guò)特定的具體實(shí)例說(shuō)明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說(shuō)明書(shū)所揭示的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過(guò)另外不同的具體實(shí)施方式加以實(shí)施或應(yīng)用,本說(shuō)明書(shū)中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在不背離本發(fā)明的精神下進(jìn)行各種修飾或改變。
實(shí)施例中所提供的圖示僅以示意方式說(shuō)明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實(shí)際實(shí)施時(shí)的組件數(shù)目、形狀及尺寸繪制,其實(shí)際實(shí)施時(shí)各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。
實(shí)施例:混合yuv4:4:4和yuv4:2:0像素格式的編碼方法
第一個(gè)實(shí)施例是圖6所表示的編碼方法的一個(gè)具體和優(yōu)化的實(shí)施,其中第一像素格式是yuv4:4:4格式而第二像素格式是yuv4:2:0格式;第一組編碼工具是無(wú)損編碼工具,即第一重構(gòu)編碼單元的像素完全等同于第一編碼單元的像素,故相應(yīng)的重構(gòu)步驟和重構(gòu)之后的下采樣步驟都可省略;第一組編碼工具僅使用選擇了第一組編碼工具的編碼結(jié)果作為最后編碼結(jié)果的那些編碼單元的像素為參考像素,故當(dāng)選擇了第二組編碼工具的編碼結(jié)果作為最后編碼結(jié)果的時(shí)候,不需要用第二重構(gòu)上采樣編碼單元的像素更新和替換放入第一像素格式的歷史像素暫存區(qū)的第一編碼單元的像素。
本實(shí)施例的編碼方法的流程示意圖如圖10所示。本實(shí)施例的編碼方法包括如下步驟:
1)讀入yuv4:4:4格式的一個(gè)圖像編碼單元,稱(chēng)其為第一編碼單元;
2)對(duì)所述第一編碼單元的色度分量進(jìn)行下采樣,生成yuv4:2:0格式的編碼單元,稱(chēng)其為第二編碼單元;
3)用無(wú)損的第一組編碼工具對(duì)所述第一編碼單元進(jìn)行第一編碼,產(chǎn)生第一組編碼工具的編碼結(jié)果;
4)用第二組編碼工具對(duì)所述第二編碼單元進(jìn)行第二有損編碼;
5)用所述第二組編碼工具繼續(xù)對(duì)步驟4)的編碼結(jié)果進(jìn)行第二無(wú)損編碼,產(chǎn)生第二組編碼工具的編碼結(jié)果;
6)對(duì)步驟4)的編碼結(jié)果進(jìn)行所述第二有損編碼的逆運(yùn)算,產(chǎn)生出第二重構(gòu)編碼單元,并把所述第二重構(gòu)編碼單元的像素放入yuv4:2:0格式的歷史像素暫存區(qū),用作所述第二組編碼工具的后續(xù)編碼的參考像素,由于編碼是有損的,所述第二重構(gòu)編碼單元的像素不一定等于所述第二編碼單元的像素;
7)使用步驟3)的編碼結(jié)果,計(jì)算第一組編碼工具的編碼結(jié)果的率-失真特性,由于第一組編碼工具是無(wú)損的,失真為零;
8)對(duì)所述第二重構(gòu)編碼單元進(jìn)行色度上采樣,得到y(tǒng)uv4:4:4格式的第二重構(gòu)上采樣編碼單元;
9)使用步驟5)的編碼結(jié)果和步驟8)的重構(gòu)上采樣結(jié)果,計(jì)算第二組編碼工具的編碼結(jié)果的率-失真特性;
10)選擇率-失真特性最優(yōu)的那組編碼工具的編碼結(jié)果作為對(duì)所述第一編碼單元的最后編碼結(jié)果,并輸出相應(yīng)壓縮碼流數(shù)據(jù);
11)判斷率-失真特性最優(yōu)的那組編碼工具是否是第一組編碼工具,如果是,則順序執(zhí)行下一步驟,否則跳至步驟14);
12)把所述第一編碼單元的像素放入yuv4:4:4格式的歷史像素暫存區(qū);
13)用所述第二編碼單元的像素更新和替換步驟6)中放入第二像素格式的歷史像素暫存區(qū)的第二重構(gòu)編碼單元的像素;
14)判斷是否已經(jīng)完成對(duì)一幅圖像所有編碼單元的編碼,如果是,則結(jié)束編碼,否則回到步驟1),開(kāi)始對(duì)下一個(gè)編碼單元的編碼。
第二個(gè)實(shí)施例也是圖6所表示的編碼方法的一個(gè)具體和優(yōu)化的實(shí)施,其中第一像素格式是yuv4:4:4格式而第二像素格式是yuv4:2:2格式,其他方面與第一個(gè)實(shí)施例相同。
第三個(gè)實(shí)施例也是圖6所表示的編碼方法的一個(gè)具體和優(yōu)化的實(shí)施,其中第一像素格式是yuv4:2:2格式而第二像素格式是yuv4:2:0格式,其他方面與第一個(gè)實(shí)施例相同。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過(guò)其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以?xún)蓚€(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤(pán)、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、移動(dòng)硬盤(pán)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。