本申請(qǐng)涉及視頻技術(shù)領(lǐng)域,尤其涉及一種視頻圖像編碼、解碼方法及裝置。
背景技術(shù):
視頻壓制是將原始錄制的高清晰視頻,在不損傷分辨率的情況下,盡量減小視頻文件的大小。
現(xiàn)有技術(shù)中的視頻壓制是通過(guò)格式工廠等視頻壓制工具進(jìn)行壓制,壓制的過(guò)程包括:將獲取到的RGBA圖像直接轉(zhuǎn)碼為YUV420數(shù)據(jù),對(duì)YUV420進(jìn)行視頻編碼并依據(jù)相應(yīng)的格式進(jìn)行數(shù)據(jù)封裝,形成視頻文件。對(duì)壓制后的視頻播放過(guò)程包括:讀取視頻文件中的一幀一幀的數(shù)據(jù),將一幀一幀的數(shù)據(jù)輸入視頻解碼器進(jìn)行解碼,將解碼后的數(shù)據(jù)進(jìn)行轉(zhuǎn)碼操作,完成最終的視頻圖像顯示。
現(xiàn)有技術(shù)對(duì)視頻圖像的轉(zhuǎn)碼、壓縮和視頻解碼、轉(zhuǎn)碼的處理過(guò)程中,非常耗費(fèi)性能。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種視頻圖像編碼、解碼方法及裝置,能夠提升視頻圖像處理過(guò)程中的性能。
第一方面,本發(fā)明實(shí)施例提供了一種視頻圖像編碼方法,該方法包括:
獲取視頻源文件中的多幀視頻幀圖像,針對(duì)多幀視頻幀圖像中的目標(biāo)視頻幀圖像,確定目標(biāo)視頻幀圖像的裁剪圖像,裁剪圖像包括目標(biāo)視頻幀圖像中的有效像素,目標(biāo)視頻幀圖像為多幀視頻幀圖像中的任意一幀視頻幀圖像;對(duì)裁剪圖像進(jìn)行輪廓掃描生成裁剪圖像的輪廓數(shù)據(jù),根據(jù)輪廓數(shù)據(jù)對(duì)裁剪圖像進(jìn)行轉(zhuǎn)碼得到轉(zhuǎn)碼后的圖像;對(duì)轉(zhuǎn)碼后的圖像進(jìn)行壓縮得到目標(biāo)視頻幀圖像對(duì)應(yīng)的壓縮圖像。
第二方面,本發(fā)明實(shí)施例提供了一種視頻圖像解碼方法,該方法包括:
對(duì)視頻文件進(jìn)行解碼得到解碼后的圖像;獲取輪廓數(shù)據(jù),根據(jù)輪廓數(shù)據(jù)對(duì)解碼后的圖像進(jìn)行轉(zhuǎn)碼得到裁剪圖像;獲取裁剪圖像的空間位置數(shù)據(jù),根據(jù)空間位置數(shù)據(jù)和裁剪圖像生成視頻圖像,空間位置數(shù)據(jù)指示裁剪圖像在視頻圖像中的空間位置。
第三方面,本發(fā)明實(shí)施例提供了一種視頻圖像編碼裝置,該裝置包括:
獲取單元,用于獲取視頻源文件中的多幀視頻幀圖像;
圖像裁剪單元,用于針對(duì)多幀視頻幀圖像中的目標(biāo)視頻幀圖像,確定目標(biāo)視頻幀圖像的裁剪圖像,裁剪圖像包括目標(biāo)視頻幀圖像中的有效像素,目標(biāo)視頻幀圖像為多幀視頻幀圖像中的任意一幀視頻幀圖像;
輪廓數(shù)據(jù)生成單元,用于對(duì)裁剪圖像進(jìn)行輪廓掃描生成裁剪圖像的輪廓數(shù)據(jù);
圖像轉(zhuǎn)碼單元,用于根據(jù)輪廓數(shù)據(jù)對(duì)裁剪圖像進(jìn)行轉(zhuǎn)碼得到轉(zhuǎn)碼后的圖像;
圖像壓縮單元,用于對(duì)轉(zhuǎn)碼后的圖像進(jìn)行壓縮得到目標(biāo)視頻幀圖像對(duì)應(yīng)的壓縮圖像。
第四方面,本發(fā)明實(shí)施例還提供了一種視頻圖像解碼裝置,該裝置包括:
解碼單元,用于對(duì)視頻文件進(jìn)行解碼得到解碼后的圖像;
轉(zhuǎn)碼單元,用于獲取輪廓數(shù)據(jù),根據(jù)輪廓數(shù)據(jù)對(duì)解碼后的圖像進(jìn)行轉(zhuǎn)碼得到裁剪圖像;
視頻圖像生成單元,用于獲取裁剪圖像的空間位置數(shù)據(jù),根據(jù)空間位置數(shù)據(jù)和裁剪圖像生成視頻圖像,空間位置數(shù)據(jù)指示裁剪圖像在視頻圖像中的空間位置。
從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):
本發(fā)明實(shí)施例在視頻壓制過(guò)程中,獲取視頻源文件中的多幀視頻幀圖像,針對(duì)多幀視頻幀圖像中的任意一幀視頻幀圖像的處理方式為:確定該視頻幀圖像的裁剪圖像,裁剪圖像包括該視頻幀圖像中的有效像素,然后對(duì)裁剪圖像進(jìn)行輪廓掃描生成裁剪圖像的輪廓數(shù)據(jù),根據(jù)輪廓數(shù)據(jù)對(duì)裁剪圖像進(jìn)行轉(zhuǎn)碼得到轉(zhuǎn)碼后的圖像,對(duì)轉(zhuǎn)碼后的圖像進(jìn)行壓縮得到該視頻幀圖像對(duì)應(yīng)的壓縮圖像。本發(fā)明實(shí)施例在對(duì)視頻圖像處理中,不是對(duì)視頻圖像的整幅圖像進(jìn)行處理,而是先裁剪出視頻圖像中包括有效像素的裁剪圖像,再進(jìn)行輪廓掃描,獲取輪廓數(shù)據(jù),根據(jù)輪廓數(shù)據(jù)進(jìn)行轉(zhuǎn)碼,對(duì)轉(zhuǎn)碼后的圖像進(jìn)行壓縮,因此本發(fā)明實(shí)施例只對(duì)視頻圖像中的有效像素進(jìn)行轉(zhuǎn)碼和壓縮,能夠減少視頻圖像處理過(guò)程中的像素量,從而能夠提升視頻圖像處理的性能。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例中的一種視頻圖像編碼方法的流程圖;
圖2為本發(fā)明實(shí)施例中的從視頻圖像中確定裁剪圖像的示意圖;
圖3為本發(fā)明實(shí)施例中從裁剪圖像中確定輪廓數(shù)據(jù)的過(guò)程示意圖;
圖4為本發(fā)明實(shí)施例中確定裁剪圖像的空間位置數(shù)據(jù)的過(guò)程示意圖;
圖5為本發(fā)明實(shí)施例中的視頻信息文件組成示意圖;
圖6為本發(fā)明實(shí)施例中的一種視頻圖像解碼方法流程圖;
圖7為本發(fā)明實(shí)施例中的對(duì)視頻信息文件進(jìn)行處理的示意圖;
圖8為本發(fā)明實(shí)施例中的待壓制的視頻源文件中的其中兩幀視頻圖像的示意圖;
圖9為本發(fā)明實(shí)施例中圖8中的兩幀圖像裁剪后的得到的裁剪圖像示意圖;
圖10為本發(fā)明實(shí)施例中對(duì)計(jì)算圖像中的輪廓數(shù)據(jù)的方法示意圖;
圖11為本發(fā)明實(shí)施例中按照空間位置數(shù)據(jù)還原裁剪圖像后得到視頻圖像的示意圖;
圖12為本發(fā)明實(shí)施例中的視頻圖像編碼裝置的功能模塊結(jié)構(gòu)示意圖;
圖13為本發(fā)明實(shí)施例中的視頻圖像解碼裝置的功能模塊結(jié)構(gòu)示意圖;
圖14為本發(fā)明實(shí)施例中的終端設(shè)備的硬件結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。
視頻壓制是將原始視頻文件進(jìn)行轉(zhuǎn)碼、壓縮后,在不影響效果的條件下,減小視頻文件的大小,在播放過(guò)程中,對(duì)壓制后的視頻文件進(jìn)行解壓、轉(zhuǎn)碼播放。
現(xiàn)有的技術(shù)的視頻壓制方法,沒(méi)有能夠有效的去除冗余,會(huì)使得在視頻壓制的轉(zhuǎn)碼、壓碼以及播放中解碼、轉(zhuǎn)碼、圖像顯示的各個(gè)處理過(guò)程都是全圖處理,非常耗費(fèi)性能。本發(fā)明實(shí)施例中,在視頻壓制時(shí),只對(duì)視頻圖像中的有效像素進(jìn)行處理,能夠極大的減少壓制以及播放中的冗余信息,減少處理過(guò)程中的性能消耗。
下面結(jié)合圖1對(duì)本發(fā)明實(shí)施例中的視頻圖像處理方法進(jìn)行詳細(xì)介紹。
101、獲取視頻源文件中的多幀視頻幀圖像;
視頻源文件由一幀一幀的圖像組成,在視頻壓制時(shí),獲取待處理的視頻源文件,一幀一幀地讀取視頻源文件中的視頻圖像,逐幀對(duì)視頻圖像進(jìn)行處理。
102、針對(duì)多幀視頻幀圖像中的目標(biāo)視頻幀圖像,確定目標(biāo)視頻幀圖像的裁剪圖像;
目標(biāo)視頻幀圖像為視頻圖像中的任意一幀視頻圖像,對(duì)目標(biāo)視頻幀圖像執(zhí)行步驟102至步驟104進(jìn)行處理,可以理解為對(duì)視頻圖像中每一幀圖像都執(zhí)行步驟102到步驟104的處理過(guò)程。
人眼對(duì)Alpha通道值過(guò)小的像素不敏感,Alpha通道值過(guò)小的像素透明度高,屬于無(wú)效像素。本發(fā)明實(shí)施例中將像素的Alpha通道值小于或等于預(yù)設(shè)的通道閾值的像素定義為無(wú)效像素,將Alpha通道值大于該預(yù)設(shè)的通道閾值的像素定義為有效像素??蛇x的,預(yù)設(shè)的通道值可以為30,即Alpha通道值小于30的像素為無(wú)效像素。
在掃描視頻圖像時(shí),掃描確定目標(biāo)視頻幀圖像的有效像素,獲取包含這些有效像素的矩形圖,該矩形圖為目標(biāo)視頻幀圖像的裁剪圖像。
如圖2所示,視頻圖像的大小為512*480,裁剪圖像的大小為386*230,裁剪圖像中包括了視頻圖像中的有效像素。
103、對(duì)裁剪圖像進(jìn)行輪廓掃描生成裁剪圖像的輪廓數(shù)據(jù),根據(jù)輪廓數(shù)據(jù)對(duì)裁剪圖像進(jìn)行轉(zhuǎn)碼得到轉(zhuǎn)碼后的圖像;
獲取的目標(biāo)視頻幀圖像的裁剪圖像中包含了目標(biāo)視頻幀圖像的有效像素,因?yàn)槭蔷匦螆D,因此裁剪圖像中可能還包括了一部分無(wú)效像素。
因此,對(duì)裁剪圖像進(jìn)行輪廓掃描,獲取該裁剪圖像中的有效像素的輪廓數(shù)據(jù),輪廓數(shù)據(jù)為裁剪圖像中的有效像素的最邊緣的像素點(diǎn)的集合。根據(jù)輪廓數(shù)據(jù)對(duì)裁剪圖像進(jìn)行轉(zhuǎn)碼得到轉(zhuǎn)碼后的圖像。
可選的,對(duì)所述裁剪圖像進(jìn)行輪廓掃描生成該裁剪圖像的輪廓數(shù)據(jù)具體可以是:逐行掃描所述裁剪圖像,記錄每行的有效像素在所述裁剪圖像中的開始位置點(diǎn)和結(jié)束位置點(diǎn),所述裁剪圖像的每行的有效像素在所述裁剪圖像中的開始位置點(diǎn)和結(jié)束位置點(diǎn)為所述裁剪圖像的輪廓數(shù)據(jù)。
圖3所示為計(jì)算出裁剪圖像的其中一行的有效像素的開始位置點(diǎn)為距離裁剪圖像的左邊界40個(gè)像素,結(jié)束位置點(diǎn)為距離裁剪圖像的右邊界30個(gè)像素。
可選的,根據(jù)輪廓數(shù)據(jù)對(duì)裁剪圖像進(jìn)行轉(zhuǎn)碼實(shí)際是:對(duì)所述輪廓數(shù)據(jù)對(duì)應(yīng)的輪廓以內(nèi)的像素進(jìn)行轉(zhuǎn)碼,對(duì)輪廓數(shù)據(jù)對(duì)應(yīng)的輪廓以外的像素置零,從而相當(dāng)于只需要對(duì)裁剪圖像中的有效像素進(jìn)行轉(zhuǎn)碼。
104、對(duì)轉(zhuǎn)碼后的圖像進(jìn)行壓縮得到目標(biāo)視頻幀圖像對(duì)應(yīng)的壓縮圖像。
根據(jù)輪廓數(shù)據(jù)對(duì)裁剪圖像進(jìn)行轉(zhuǎn)碼得到轉(zhuǎn)碼后的圖像后,對(duì)轉(zhuǎn)碼后的圖像進(jìn)行壓縮得到壓縮圖像,壓縮的方法可以采用無(wú)損壓縮方法,也可以采用有損壓縮,或者采用有損壓縮結(jié)合無(wú)損壓縮的方法進(jìn)行壓縮。
在對(duì)視頻圖像中每一幀圖像都執(zhí)行步驟102到步驟104的處理過(guò)程,將獲得的視頻圖像中的每一幀圖像對(duì)應(yīng)的壓縮圖像存儲(chǔ)為視頻文件。
本發(fā)明實(shí)施例在對(duì)視頻圖像處理中,不是對(duì)視頻圖像的整幅圖像進(jìn)行處理,而是先裁剪出視頻圖像中包括有效像素的裁剪圖像,再進(jìn)行輪廓掃描,獲取輪廓數(shù)據(jù),根據(jù)輪廓數(shù)據(jù)進(jìn)行轉(zhuǎn)碼,對(duì)轉(zhuǎn)碼后的圖像進(jìn)行壓縮,因此本發(fā)明實(shí)施例只對(duì)視頻圖像中的有效像素進(jìn)行轉(zhuǎn)碼和壓縮,能夠減少視頻圖像處理過(guò)程中的像素量,從而能夠提升視頻圖像處理的性能。
可選的,確定目標(biāo)視頻幀圖像的裁剪圖像的具體方式為:對(duì)進(jìn)行壓制的視頻圖像序列進(jìn)行掃描,根據(jù)各視頻幀圖像的有效像素點(diǎn)確定裁剪矩形,裁剪矩形用于指示視頻圖像的裁剪大小,即在確定各視頻圖像的裁剪圖像時(shí),按照裁剪矩形的大小確定各視頻圖像的裁剪圖像,裁剪圖像與裁剪矩形等長(zhǎng)等寬,每一幀視頻圖像的裁剪圖像應(yīng)能包括該視頻幀圖像中的有效像素。
根據(jù)各視頻幀圖像的有效像素點(diǎn)確定裁剪矩形的具體過(guò)程可以為:
獲取多幀視頻幀圖像中的每一幀視頻幀圖像,確定每一幀視頻幀圖像的有效矩形,每一幀視頻幀圖像的有效矩形為包含該視頻幀圖像的有效像素點(diǎn)的最小矩形區(qū)域;然后,從各視頻幀圖像對(duì)應(yīng)的有效矩形中確定裁剪矩形,裁剪矩形的寬度值為各視頻幀圖像的有效矩形的寬度值中的最大寬度值,裁剪矩形的長(zhǎng)度值為各視頻幀圖像的有效矩形中的長(zhǎng)度值中的最大的長(zhǎng)度值;即將所有幀中的有效矩形的最大長(zhǎng)和最大寬,定位成裁剪矩形的長(zhǎng)和寬。
另外,為了能夠在視頻文件播放過(guò)程中能夠還原視頻文件,在視頻圖像處理過(guò)程中,確定目標(biāo)視頻幀圖像的裁剪圖像后,還需要確定裁剪圖像在目標(biāo)視頻幀圖像中的空間位置得到所述裁剪圖像的空間位置數(shù)據(jù)。
可選的,確定裁剪圖像在目標(biāo)視頻幀圖像中的空間位置數(shù)據(jù)具體的方式為:計(jì)算裁剪圖像在目標(biāo)視頻幀圖像中的偏移向量,偏移向量具體是以視頻圖像的左下角為坐標(biāo)原點(diǎn),計(jì)算裁剪圖像的矩形的左下角相對(duì)于坐標(biāo)原點(diǎn)的坐標(biāo)值。此偏移向量即為所述裁剪圖像在所述目標(biāo)視頻幀圖像中的空間位置數(shù)據(jù)。
如圖4所示,在圖2的基礎(chǔ)上,裁剪圖像相對(duì)于視頻圖像的偏移向量為(50,60)。
在得到裁剪圖像的空間位置數(shù)據(jù)后,將各視頻圖像對(duì)應(yīng)的裁剪圖像的空間位置數(shù)據(jù)存儲(chǔ)為空間位置文件。
另外,為了能夠在視頻文件播放過(guò)程中能夠還原視頻文件,還需要將各視頻幀圖像對(duì)應(yīng)的裁剪圖像的輪廓數(shù)據(jù)存儲(chǔ)為輪廓數(shù)據(jù)文件。
如圖5所示,經(jīng)過(guò)圖1所示的視頻圖像編碼后形成的視頻信息文件包括視頻文件、空間位置文件以及輪廓數(shù)據(jù)文件。
下面結(jié)合圖6介紹本發(fā)明實(shí)施例中,對(duì)經(jīng)過(guò)圖1所示的視頻編碼方法生成的視頻信息文件進(jìn)行視頻圖像解碼的方法進(jìn)行詳細(xì)介紹。
601、對(duì)視頻文件進(jìn)行解碼得到解碼后的圖像;
在播放視頻時(shí),先獲取視頻文件信息,如圖7所示,視頻文件信息中包括視頻文件、空間位置文件以及輪廓數(shù)據(jù)文件,根據(jù)視頻文件信息對(duì)圖像進(jìn)行解碼、轉(zhuǎn)碼,最終獲得視頻圖像的顯示。
從視頻文件信息中獲取視頻文件,對(duì)視頻文件進(jìn)行解碼得到解碼后的各圖像。
602、獲取輪廓數(shù)據(jù),根據(jù)輪廓數(shù)據(jù)對(duì)解碼后的圖像進(jìn)行轉(zhuǎn)碼得到裁剪圖像;
從視頻文件信息中獲取輪廓數(shù)據(jù)文件,從輪廓數(shù)據(jù)文件中獲取各圖像的對(duì)應(yīng)的輪廓數(shù)據(jù)。
可選的,輪廓數(shù)據(jù)包括每行的有效像素的開始位置點(diǎn)和結(jié)束位置點(diǎn)。根據(jù)輪廓數(shù)據(jù)對(duì)所述解碼后的圖像進(jìn)行轉(zhuǎn)碼得到裁剪圖像具體為:針對(duì)解碼后的圖像中的每行的像素,對(duì)從該行對(duì)應(yīng)的開始位置點(diǎn)到結(jié)束位置點(diǎn)中間的像素進(jìn)行轉(zhuǎn)碼得到裁剪圖像。
603、獲取裁剪圖像的空間位置數(shù)據(jù),根據(jù)空間位置數(shù)據(jù)和裁剪圖像生成視頻圖像。
從視頻文件信息中獲取空間位置文件,從空間位置文件中獲取各裁剪圖像對(duì)應(yīng)的空間位置數(shù)據(jù),各裁剪圖像的空間位置數(shù)據(jù)指示裁剪圖像在視頻圖像中的空間位置。
然后,根據(jù)空間位置數(shù)據(jù)將裁剪圖像還原成視頻圖像。例如:視頻圖像的大小為512*480,該裁剪圖像對(duì)應(yīng)的空間位置數(shù)據(jù)為(50,60),需將其還原成512*480大小的視頻圖像,且裁剪圖像的左下角坐標(biāo)距離視頻圖像左下角的坐標(biāo)的向量為(50,60)。
本發(fā)明實(shí)施例中,在通過(guò)圖1所示的視頻編碼方法將視頻圖像處理后,能夠?qū)⒁曨l文件進(jìn)行解碼得到解碼后的圖像,獲取輪廓數(shù)據(jù),根據(jù)輪廓數(shù)據(jù)對(duì)所述解碼后的圖像進(jìn)行轉(zhuǎn)碼得到裁剪圖像,再獲取所述裁剪圖像的空間位置數(shù)據(jù),根據(jù)所述空間位置數(shù)據(jù)和所述裁剪圖像生成視頻圖像。本發(fā)明實(shí)施例的視頻文件中只包含有效像素的信息,而不是全圖信息,在視頻播放過(guò)程中,是根據(jù)視頻文件、輪廓數(shù)據(jù)件以及空間位置數(shù)據(jù)進(jìn)行相應(yīng)的解碼、轉(zhuǎn)碼得到最終顯示的視頻圖像,并不需要對(duì)全圖信息進(jìn)行解碼、轉(zhuǎn)碼,從而能夠減少播放過(guò)程中的冗余信息,減少視頻圖像的處理過(guò)程中的耗時(shí)。
下面結(jié)合具體的應(yīng)用場(chǎng)景對(duì)本發(fā)明實(shí)施中的方法進(jìn)行介紹。
輸入待壓制的視頻源文件,視頻源文件的幀圖像格式為RGBA,根據(jù)輸入圖像RGBA中的Alpha通道信息進(jìn)行空間位置掃描得到裁剪圖像,以及空間位置文件,對(duì)于裁剪后的圖像進(jìn)行輪廓掃描生成輪廓文件。具體的過(guò)程為:
對(duì)待壓制的視頻源文件中的幀圖像序列進(jìn)行掃描,獲取每一幀視頻圖像的有效像素的有效矩形的長(zhǎng)和寬,從所有幀的有效矩形中選擇出最大長(zhǎng)和最大寬,定位成裁剪矩形的長(zhǎng)和寬,對(duì)每一幀進(jìn)行裁剪時(shí),按照裁剪矩形的大小進(jìn)行裁剪。
例如,待壓制的視頻源文件中的一共有3920幀視頻圖像,圖8展示的為輸入圖像序列中的第1024幀以及2275幀視頻圖像,展示的圖像大小為512*480。
對(duì)視頻源文件中的3920幀視頻圖像進(jìn)行掃描,確定每一幀圖像的有效像素的有效矩形區(qū)域,從這些有效像素的有效矩形區(qū)域中確定最大的長(zhǎng)為352px,最大的寬為420px,則最終確定的裁剪圖像的矩形大小為352*420。
按照352*420的矩形大小分別裁剪第1024幀圖像以及2275幀視頻圖像,得到的裁剪圖像如圖9所示。從圖9可以看出,通過(guò)Alpha的裁剪,圖像明顯減少了,但是圖像中的有效像素卻完整的保留了。
與此同時(shí),為了便于在播放視頻時(shí),能夠恢復(fù)視頻圖像,在對(duì)圖像處理時(shí),還需要保存裁剪圖像的相應(yīng)的空間位置數(shù)據(jù),空間位置數(shù)據(jù)是裁剪后相對(duì)于裁剪前的偏移向量。如圖9所示的兩幀圖像分別保留了兩個(gè)向量(10,50)、(160,50),保存在空間位置文件中。
若在圖像處理過(guò)程中,沒(méi)有獲取到Alpha通道等標(biāo)明無(wú)效像素的信息,則可以進(jìn)行默認(rèn)的全幅圖像處理。
每幅視頻圖像經(jīng)過(guò)裁剪后得到的裁剪圖像還是存在有很大的冗余,接下來(lái),對(duì)裁剪圖像進(jìn)行逐行掃描,記錄每行有效像素開始點(diǎn)以及結(jié)束點(diǎn)。
如圖10所示,Start以及End分別標(biāo)明了這一行像素的有效開始點(diǎn)以及結(jié)束點(diǎn)。所有行的開始點(diǎn)以及結(jié)束點(diǎn)標(biāo)明了這幅圖像的有效輪廓,然后將每行像素的開始點(diǎn)及結(jié)束點(diǎn)存儲(chǔ)在輪廓數(shù)據(jù)文件中。如果一行像素中的開始點(diǎn)及結(jié)束點(diǎn)都等于裁剪圖像的長(zhǎng)度值,則說(shuō)明該行中沒(méi)有有效像素。
如果在掃描裁剪圖像的過(guò)程中,沒(méi)有類似獲取到Alpha通道等標(biāo)明無(wú)效像素的信息,則可以默認(rèn)每一個(gè)像素點(diǎn)都是有效像素點(diǎn),對(duì)裁剪圖像的全幅圖像進(jìn)行處理。
在獲取到輪廓數(shù)據(jù)后,根據(jù)輪廓數(shù)據(jù)進(jìn)行有針對(duì)的轉(zhuǎn)碼,不必進(jìn)行全屏轉(zhuǎn)碼,只對(duì)輪廓內(nèi)的有效像素進(jìn)行轉(zhuǎn)碼。根據(jù)輪廓數(shù)據(jù)對(duì)裁剪圖像進(jìn)行轉(zhuǎn)碼生成編碼需要的YUV文件,再將得到的YUV文件輸入到編碼器中進(jìn)行壓縮形成最終的視頻文件。
在視頻的播放過(guò)程中先對(duì)視頻文件進(jìn)行解壓操作得到Y(jié)UV圖像。
再依據(jù)輪廓數(shù)據(jù)文件中的輪廓的有效像素的標(biāo)示進(jìn)行相應(yīng)YUV圖像轉(zhuǎn)碼得到裁剪圖像,每一行均會(huì)根據(jù)輪廓數(shù)據(jù)文件中標(biāo)示的起始以及結(jié)束點(diǎn)進(jìn)行轉(zhuǎn)碼,能夠極大的提升轉(zhuǎn)碼效率。
之后,獲取空間位置數(shù)據(jù),根據(jù)空間位置數(shù)據(jù)對(duì)轉(zhuǎn)碼后的裁剪圖像進(jìn)行最終顯示。具體是:在獲取到裁剪圖像后,會(huì)根據(jù)每一幀的空間位置數(shù)據(jù)進(jìn)行顯示還原,如圖11所示,該裁剪圖像對(duì)應(yīng)的空間位置數(shù)據(jù)為向量(10,50),按照(10,50)進(jìn)行位置還原后得到最終顯示的視頻圖像,需要說(shuō)明的是,圖11中的里面的裁剪圖像的矩形框線是用來(lái)說(shuō)明裁剪圖像的邊界,并不會(huì)顯示在視頻圖像中。
從圖11可以看出,圖像通過(guò)本發(fā)明實(shí)施例中的視頻圖像編碼方法處理后,在視頻圖像解碼播放的時(shí)候又能完整的恢復(fù)回來(lái),顯示效果和現(xiàn)有技術(shù)中的全幅圖像處理一樣,但是采用本發(fā)明實(shí)施例中的方法,能夠降低圖像處理中的像素量提升處理效率。
如圖圖8至圖11中的圖像,圖像紋理刷新從512*480降為了352*420,紋理刷新降低了30%,提升了刷新速度。
通過(guò)本發(fā)明實(shí)施例中的技術(shù)方案,在視頻壓制中的轉(zhuǎn)碼、壓碼以及視頻播放中的解碼、轉(zhuǎn)碼操作處理都因?yàn)樘幚硐袼亓康臏p少,性能得到極大的提升。處理像素量的減少是因?yàn)橛捎谳喞獢?shù)據(jù)文件以及空間位置文件,指明了一幅圖像的有效像素,只對(duì)圖像中的有效像素進(jìn)行處理。
本發(fā)明實(shí)施例中的方案,在移動(dòng)客戶端平臺(tái):安卓(Android)平臺(tái)以及IOS平臺(tái),以及嵌入式平臺(tái)(Arm平臺(tái)以及X86平臺(tái)上)上性能提升非常明顯。在Android中,如圖8至圖11中的示例圖像每一幀圖像從512*480的長(zhǎng)寬處理降為了352*420長(zhǎng)寬的處理,使得編碼、解碼以及顯示刷新像素量減少了30%,而壓制以及視頻播放中的轉(zhuǎn)碼像素處理量減少了75%,處理速度提升了3倍。
以上是對(duì)本發(fā)明實(shí)施例中的方法進(jìn)行的介紹,下面從功能模塊的角度對(duì)本發(fā)明實(shí)施例中的視頻圖像編碼裝置以及視頻圖像解碼裝置進(jìn)行介紹。
本發(fā)明實(shí)施例提供的視頻圖像編碼裝置的功能模塊結(jié)構(gòu)如圖12所示,該裝置具體實(shí)現(xiàn)對(duì)應(yīng)于上述圖1至圖11所提供的視頻圖像編碼方法的功能。所述功能可以通過(guò)硬件實(shí)現(xiàn),也可以通過(guò)硬件執(zhí)行相應(yīng)的軟件程序?qū)崿F(xiàn)。硬件和軟件包括一個(gè)或多個(gè)與上述功能相對(duì)應(yīng)的單元模塊,所述單元模塊可以是軟件和/或硬件。
具體的,該視頻圖像編碼裝置包括:
獲取單元1201,用于獲取視頻源文件中的多幀視頻幀圖像;
圖像裁剪單元1202,用于針對(duì)多幀視頻幀圖像中的目標(biāo)視頻幀圖像,確定目標(biāo)視頻幀圖像的裁剪圖像,裁剪圖像包括目標(biāo)視頻幀圖像中的有效像素,目標(biāo)視頻幀圖像為多幀視頻幀圖像中的任意一幀視頻幀圖像;
輪廓數(shù)據(jù)生成單元1203,用于對(duì)裁剪圖像進(jìn)行輪廓掃描生成裁剪圖像的輪廓數(shù)據(jù);
圖像轉(zhuǎn)碼單元1204,用于根據(jù)輪廓數(shù)據(jù)對(duì)裁剪圖像進(jìn)行轉(zhuǎn)碼得到轉(zhuǎn)碼后的圖像;
圖像壓縮單元1205,用于對(duì)轉(zhuǎn)碼后的圖像進(jìn)行壓縮得到目標(biāo)視頻幀圖像對(duì)應(yīng)的壓縮圖像。
在一些具體的實(shí)施例中,該裝置還包括:
空間位置確定單元1206,用于確定裁剪圖像在目標(biāo)視頻幀圖像中的空間位置得到裁剪圖像的空間位置數(shù)據(jù);
存儲(chǔ)單元1207,用于保存壓縮圖像、裁剪圖像的輪廓數(shù)據(jù)和裁剪圖像的空間位置數(shù)據(jù)。
在一些具體的實(shí)施例中,圖像裁剪單元1202,具體用于根據(jù)多幀視頻幀圖像中各視頻幀圖像的有效像素點(diǎn)確定裁剪矩形,根據(jù)裁剪矩形確定目標(biāo)視頻幀圖像的裁剪圖像,裁剪圖像與裁剪矩形等長(zhǎng)等寬。
在一些具體的實(shí)施例中,圖像裁剪單元1202,具體用于針對(duì)多幀視頻幀圖像中的每一幀視頻幀圖像,獲取該視頻幀圖像的有效矩形,有效矩形包括該視頻幀圖像的有效像素點(diǎn)的最小矩形區(qū)域,從多幀視頻幀圖像的各視頻幀圖像的有效矩形中確定裁剪矩形,裁剪矩形的寬度值為各視頻幀圖像的有效矩形的寬度值中的最大寬度值,裁剪矩形的長(zhǎng)度值為各視頻幀圖像的有效矩形中的長(zhǎng)度值中的最大的長(zhǎng)度值;根據(jù)裁剪矩形確定目標(biāo)視頻幀圖像的裁剪圖像,裁剪圖像與裁剪矩形等長(zhǎng)等寬。
在一些具體的實(shí)施例中,空間位置確定單元1206,具體用于計(jì)算裁剪圖像在目標(biāo)視頻幀圖像中的偏移向量,偏移向量為裁剪圖像在目標(biāo)視頻幀圖像中的空間位置數(shù)據(jù)。
在一些具體的實(shí)施例中,輪廓數(shù)據(jù)生成單元1203,具體用于逐行掃描裁剪圖像,記錄每行的有效像素在裁剪圖像中的開始位置點(diǎn)和結(jié)束位置點(diǎn),裁剪圖像的每行的有效像素在裁剪圖像中的開始位置點(diǎn)和結(jié)束位置點(diǎn)為裁剪圖像的輪廓數(shù)據(jù)。
在一些具體的實(shí)施例中,圖像轉(zhuǎn)碼單元1204,具體用于對(duì)輪廓數(shù)據(jù)對(duì)應(yīng)的輪廓以內(nèi)的像素進(jìn)行轉(zhuǎn)碼得到轉(zhuǎn)碼后的圖像。
本發(fā)明實(shí)施例提供的視頻圖像解碼裝置的功能模塊結(jié)構(gòu)如圖13所示,該裝置具體實(shí)現(xiàn)對(duì)應(yīng)于上述圖1至圖11所提供的視頻圖像解碼方法的功能。所述功能可以通過(guò)硬件實(shí)現(xiàn),也可以通過(guò)硬件執(zhí)行相應(yīng)的軟件程序?qū)崿F(xiàn)。硬件和軟件包括一個(gè)或多個(gè)與上述功能相對(duì)應(yīng)的單元模塊,所述單元模塊可以是軟件和/或硬件。
具體的,該視頻圖像解碼裝置包括:
解碼單元1301,用于對(duì)視頻文件進(jìn)行解碼得到解碼后的圖像;
轉(zhuǎn)碼單元1302,用于獲取輪廓數(shù)據(jù),根據(jù)輪廓數(shù)據(jù)對(duì)解碼后的圖像進(jìn)行轉(zhuǎn)碼得到裁剪圖像;
視頻圖像生成單元1303,用于獲取裁剪圖像的空間位置數(shù)據(jù),根據(jù)空間位置數(shù)據(jù)和裁剪圖像生成視頻圖像,空間位置數(shù)據(jù)指示裁剪圖像在視頻圖像中的空間位置。
在一些具體的實(shí)施例中,輪廓數(shù)據(jù)包括每行的有效像素的開始位置點(diǎn)和結(jié)束位置點(diǎn);
轉(zhuǎn)碼單元1302,具體用于針對(duì)解碼后的圖像中的每行的像素,對(duì)從該行對(duì)應(yīng)的開始位置點(diǎn)到結(jié)束位置點(diǎn)中間的像素進(jìn)行轉(zhuǎn)碼,得到裁剪圖像。
本發(fā)明實(shí)施例中的視頻圖像編碼裝置及視頻圖像解碼裝置可以以一個(gè)終端設(shè)備(例如:計(jì)算機(jī))的形式存在。該發(fā)明的終端設(shè)備,包括臺(tái)式計(jì)算機(jī)、手持設(shè)備、車載設(shè)備、可穿戴設(shè)備,以及各種形式的用戶設(shè)備。手持設(shè)備可以為包括手機(jī)、平板電腦、PDA(Personal Digital Assistant,個(gè)人數(shù)字助理)、等任意終端設(shè)備。
圖14是本發(fā)明實(shí)施例提供的一種終端設(shè)備的結(jié)構(gòu)示意圖,該終端設(shè)備14可因配置或性能不同而產(chǎn)生比較大的差異,可以包括處理器(central processing units,CPU)1410和存儲(chǔ)器1450。其中,存儲(chǔ)器1450上存儲(chǔ)有一個(gè)或一個(gè)以上存儲(chǔ)應(yīng)用程序、數(shù)據(jù)和操作系統(tǒng),存儲(chǔ)在存儲(chǔ)器1450的程序可以包括一個(gè)或一個(gè)以上模塊,每個(gè)模塊包括一系列指令操作。具體的,存儲(chǔ)器1450中存儲(chǔ)了游戲應(yīng)用程序。
處理器1410與存儲(chǔ)器1450通信,處理器1410調(diào)用存儲(chǔ)在所述存儲(chǔ)器1450中的視頻圖像編碼方法和視頻圖像解碼方法,以實(shí)現(xiàn)上述圖1至圖11所描述的方案。
此外,本發(fā)明還提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),該介質(zhì)存儲(chǔ)有應(yīng)用程序,該程序執(zhí)行時(shí)包括上述視頻圖像編碼方法和視頻圖像解碼方法(圖1到圖11所示的實(shí)施例)中的部分或者全部步驟。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng),裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(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盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。