欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

處理視頻流的方法和終端與流程

文檔序號(hào):11935339閱讀:420來源:國知局
處理視頻流的方法和終端與流程

本專利文件披露的內(nèi)容包含受版權(quán)保護(hù)的材料。該版權(quán)為版權(quán)所有人所有。版權(quán)所有人不反對(duì)任何人復(fù)制專利與商標(biāo)局的官方記錄和檔案中所存在的該專利文件或者專利披露。

技術(shù)領(lǐng)域

本公開涉及圖像處理領(lǐng)域,更具體地涉及使用圖形處理單元(GPU)來處理視頻流的方法和終端。



背景技術(shù):

隨著終端,尤其是可移動(dòng)終端(例如,智能手機(jī)、平板電腦等)的日益普及,其已經(jīng)成為了人們?cè)谏a(chǎn)、生活中不可或缺的一部分。終端提供了豐富的各種功能,包括例如針對(duì)圖像/視頻的錄制、處理、和直播等等。作為視頻處理應(yīng)用的重要功能之一是為用戶提供修圖功能(或更通俗地,美顏瘦臉功能)。用戶可以通過對(duì)攝像頭采集到的原始圖像進(jìn)行修正處理,來實(shí)現(xiàn)令用戶滿意的圖像/視頻效果。



技術(shù)實(shí)現(xiàn)要素:

根據(jù)本公開的第一方面,提出了一種在終端的處理器處使用圖形處理單元(GPU)來處理視頻流的方法。該方法包括:獲取所述視頻流中的至少一幀圖像的圖像數(shù)據(jù);確定所述圖像數(shù)據(jù)中的至少一個(gè)特征點(diǎn);以及指示所述GPU基于所述至少一個(gè)特征點(diǎn)對(duì)所述圖像數(shù)據(jù)進(jìn)行圖像處理。

在一些實(shí)施例中,所述視頻流是具有4K或更高分辨率的視頻流。在一些實(shí)施例中,所述至少一幀圖像包括人臉,以及所述至少一個(gè)特征點(diǎn)包括以下至少一項(xiàng):臉部、眼睛、鼻子、嘴、耳朵、頭發(fā)、或眉毛。在一些實(shí)施例中,所述圖像處理包括以下至少一項(xiàng):輪廓修正、顏色修正、亮度修正、以及模糊處理。在一些實(shí)施例中,所述方法還包括:針對(duì)經(jīng)過圖像處理的所述圖像數(shù)據(jù),指示所述GPU執(zhí)行視頻錄制操作、視頻顯示操作、對(duì)象跟蹤操作、或視頻直播操作中的至少一項(xiàng)。在一些實(shí)施例中,指示所述GPU執(zhí)行視頻錄制操作、視頻顯示操作、對(duì)象跟蹤操作、或視頻直播操作中的至少一項(xiàng)包括:指示所述GPU并行執(zhí)行視頻錄制操作、視頻顯示操作、對(duì)象跟蹤操作、或視頻直播操作中的至少兩項(xiàng)。在一些實(shí)施例中,在所述GPU基于所述至少一個(gè)特征點(diǎn)對(duì)所述圖像數(shù)據(jù)進(jìn)行圖像處理之前,對(duì)所述圖像數(shù)據(jù)進(jìn)行坐標(biāo)變換,以使其能夠由所述GPU進(jìn)行圖像處理。在一些實(shí)施例中,在所述GPU基于所述至少一個(gè)特征點(diǎn)對(duì)所述圖像數(shù)據(jù)進(jìn)行圖像處理之后,如果所述GPU是首次針對(duì)所述視頻流進(jìn)行圖像處理,則創(chuàng)建新的紋理,否則在所述圖像數(shù)據(jù)的寬高比不改變的情況下,僅更新已有的紋理。在一些實(shí)施例中,如果所述GPU不是首次針對(duì)所述視頻流進(jìn)行圖像處理且所述圖像數(shù)據(jù)的寬高比發(fā)生了改變,則創(chuàng)建新的紋理。在一些實(shí)施例中,所述圖像數(shù)據(jù)的寬高比的改變是由變更攝像頭和/或旋轉(zhuǎn)所述終端引起的。

根據(jù)本公開的第二方面,提出了一種使用圖形處理單元(GPU)來處理視頻流的終端。該終端包括:圖像數(shù)據(jù)獲取裝置,用于獲取所述視頻流中的至少一幀圖像的圖像數(shù)據(jù);特征點(diǎn)確定裝置,用于確定所述圖像數(shù)據(jù)中的至少一個(gè)特征點(diǎn);以及圖像處理指示裝置,用于指示所述GPU基于所述至少一個(gè)特征點(diǎn)對(duì)所述圖像數(shù)據(jù)進(jìn)行圖像處理。

在一些實(shí)施例中,所述視頻流是具有4K或更高分辨率的視頻流。在一些實(shí)施例中,所述至少一幀圖像包括人臉,以及所述至少一個(gè)特征點(diǎn)包括以下至少一項(xiàng):臉部、眼睛、鼻子、嘴、耳朵、頭發(fā)、或眉毛。在一些實(shí)施例中,所述圖像處理包括以下至少一項(xiàng):輪廓修正、顏色修正、亮度修正、以及模糊處理。在一些實(shí)施例中,所述終端還包括:操作指示裝置,用于針對(duì)經(jīng)過圖像處理的所述圖像數(shù)據(jù),指示所述GPU執(zhí)行視頻錄制操作、視頻顯示操作、對(duì)象跟蹤操作、或視頻直播操作中的至少一項(xiàng)。在一些實(shí)施例中,所述操作指示裝置還用于:指示所述GPU并行執(zhí)行視頻錄制操作、視頻顯示操作、對(duì)象跟蹤操作、或視頻直播操作中的至少兩項(xiàng)。在一些實(shí)施例中,在所述GPU基于所述至少一個(gè)特征點(diǎn)對(duì)所述圖像數(shù)據(jù)進(jìn)行圖像處理之前,對(duì)所述圖像數(shù)據(jù)進(jìn)行坐標(biāo)變換,以使其能夠由所述GPU進(jìn)行圖像處理。在一些實(shí)施例中,在所述GPU基于所述至少一個(gè)特征點(diǎn)對(duì)所述圖像數(shù)據(jù)進(jìn)行圖像處理之后,如果所述GPU是首次針對(duì)所述視頻流進(jìn)行圖像處理,則創(chuàng)建新的紋理,否則在所述圖像數(shù)據(jù)的寬高比不改變的情況下,僅更新已有的紋理。在一些實(shí)施例中,如果所述GPU不是首次針對(duì)所述視頻流進(jìn)行圖像處理且所述圖像數(shù)據(jù)的寬高比發(fā)生了改變,則創(chuàng)建新的紋理。在一些實(shí)施例中,所述圖像數(shù)據(jù)的寬高比的改變是由變更攝像頭和/或旋轉(zhuǎn)所述終端引起的。

根據(jù)本公開的第三方面,提出了一種用于處理視頻流的終端。該終端包括:處理器;圖形處理單元(GPU);存儲(chǔ)器,存儲(chǔ)指令,所述指令在由所述處理器執(zhí)行時(shí)使得所述處理器:獲取所述視頻流中的至少一幀圖像的圖像數(shù)據(jù);確定所述圖像數(shù)據(jù)中的至少一個(gè)特征點(diǎn);以及指示所述GPU基于所述至少一個(gè)特征點(diǎn)對(duì)所述圖像數(shù)據(jù)進(jìn)行圖像處理。

在一些實(shí)施例中,所述視頻流是具有4K或更高分辨率的視頻流。在一些實(shí)施例中,所述至少一幀圖像包括人臉,以及所述至少一個(gè)特征點(diǎn)包括以下至少一項(xiàng):臉部、眼睛、鼻子、嘴、耳朵、頭發(fā)、或眉毛。在一些實(shí)施例中,所述圖像處理包括以下至少一項(xiàng):輪廓修正、顏色修正、亮度修正、以及模糊處理。在一些實(shí)施例中,所述指令在由所述處理器執(zhí)行時(shí),還使得所述處理器:針對(duì)經(jīng)過圖像處理的所述圖像數(shù)據(jù),指示所述GPU執(zhí)行視頻錄制操作、視頻顯示操作、對(duì)象跟蹤操作、或視頻直播操作中的至少一項(xiàng)。在一些實(shí)施例中,所述指令在由所述處理器執(zhí)行時(shí),還使得所述處理器:針對(duì)經(jīng)過圖像處理的所述圖像數(shù)據(jù),指示所述GPU并行執(zhí)行視頻錄制操作、視頻顯示操作、對(duì)象跟蹤操作、或視頻直播操作中的至少兩項(xiàng)。在一些實(shí)施例中,在所述GPU基于所述至少一個(gè)特征點(diǎn)對(duì)所述圖像數(shù)據(jù)進(jìn)行圖像處理之前,對(duì)所述圖像數(shù)據(jù)進(jìn)行坐標(biāo)變換,以使其能夠由所述GPU進(jìn)行圖像處理。在一些實(shí)施例中,在所述GPU基于所述至少一個(gè)特征點(diǎn)對(duì)所述圖像數(shù)據(jù)進(jìn)行圖像處理之后,如果所述GPU是首次針對(duì)所述視頻流進(jìn)行圖像處理,則創(chuàng)建新的紋理,否則在所述圖像數(shù)據(jù)的寬高比不改變的情況下,僅更新已有的紋理。在一些實(shí)施例中,如果所述GPU不是首次針對(duì)所述視頻流進(jìn)行圖像處理且所述圖像數(shù)據(jù)的寬高比發(fā)生了改變,則創(chuàng)建新的紋理。在一些實(shí)施例中,所述圖像數(shù)據(jù)的寬高比的改變是由變更攝像頭和/或旋轉(zhuǎn)所述終端引起的。

根據(jù)本公開的第四方面,提出了一種計(jì)算機(jī)程序,在由處理器執(zhí)行時(shí)使得所述處理器執(zhí)行根據(jù)本公開的第一方面中任一項(xiàng)所述的方法。

根據(jù)本公開的第五方面,提出了一種計(jì)算機(jī)程序產(chǎn)品,包括根據(jù)本公開的第四方面所述的計(jì)算機(jī)程序。

附圖說明

為了更完整地理解本公開實(shí)施例及其優(yōu)勢(shì),現(xiàn)在將參考結(jié)合附圖的以下描述,其中:

圖1是示出了根據(jù)本公開實(shí)施例的終端的硬件結(jié)構(gòu)示意圖。

圖2是示出了圖1所示的終端中各組件之間數(shù)據(jù)/指令交互的示意圖。

圖3是示出了根據(jù)本公開實(shí)施例的在終端的主處理器處執(zhí)行的使用GPU來處理視頻流的方法的流程圖。

圖4是示出了根據(jù)本公開實(shí)施例的用于執(zhí)行圖3所示的方法的終端的示例功能架構(gòu)框圖。

具體實(shí)施方式

根據(jù)結(jié)合附圖對(duì)本公開示例性實(shí)施例的以下詳細(xì)描述,本公開的其它方面、優(yōu)勢(shì)和突出特征對(duì)于本領(lǐng)域技術(shù)人員將變得顯而易見。

在本公開中,術(shù)語“包括”和“含有”及其派生詞意為包括而非限制;術(shù)語“或”是包含性的,意為和/或。

在本說明書中,下述用于描述本公開原理的各種實(shí)施例只是說明,不應(yīng)該以任何方式解釋為限制公開的范圍。參照附圖的下述描述用于幫助全面理解由權(quán)利要求及其等同物限定的本公開的示例性實(shí)施例。下述描述包括多種具體細(xì)節(jié)來幫助理解,但這些細(xì)節(jié)應(yīng)認(rèn)為僅僅是示例性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)認(rèn)識(shí)到,在不脫離本公開的范圍和精神的情況下,可以對(duì)本文中描述的實(shí)施例進(jìn)行多種改變和修改。此外,為了清楚和簡潔起見,省略了公知功能和結(jié)構(gòu)的描述。此外,貫穿附圖,相同附圖標(biāo)記用于相同或相似的功能和操作。

在正式介紹本公開各實(shí)施例之前,將首先大致說明本文中可能用到的各種術(shù)語。

1080P:其為美國電影電視工程師協(xié)會(huì)(SMPTE)制定的高清數(shù)字電視的格式標(biāo)準(zhǔn),有效分辨率為:1920×1080。其是一種在逐行掃描下達(dá)到1920×1080的分辨率的顯示格式。

4K:4K分辨率并不特指某個(gè)特定數(shù)值,它指的是水平方向約有4000個(gè)像素點(diǎn)左右,根據(jù)不同的應(yīng)用領(lǐng)域而存在細(xì)微差距。4K分辨率發(fā)展的趨勢(shì)即4096×2160的像素分辨率,它是2K投影機(jī)和高清電視分辨率的4倍,屬于超高清分辨率。比如常說的4K電影,其影片分辨率4096×2160,是由4K攝像機(jī)的成像格式?jīng)Q定。而在人們時(shí)論的電視領(lǐng)域,由于屏幕16∶9已成主流,因此電視屏的4K指的是3840×2160的物理分辨率,相當(dāng)于給1920×1080(即,1080P)在橫向和豎向上各翻了一番,仍然是標(biāo)準(zhǔn)的16∶9規(guī)格。在本公開的上下文中,如無特別指明,所提到的4K包含各種已知的或事實(shí)上的4K分辨率,包括但不限于前述兩種4K分辨率。此外,類似地目前還定義有2K、8K等標(biāo)準(zhǔn)。

對(duì)象跟蹤:指的是當(dāng)某一對(duì)象出現(xiàn)在攝像頭的視野/畫面中時(shí),可以通過對(duì)象識(shí)別算法來確定該對(duì)象的存在,并指示攝像頭去跟拍該確定對(duì)象,直到對(duì)象超出攝像頭的可拍攝范圍為止。對(duì)象跟蹤廣泛應(yīng)用于視頻監(jiān)控、無人機(jī)駕駛等領(lǐng)域中。

本申請(qǐng)的發(fā)明人注意到:現(xiàn)有的視頻美顏軟件的美顏瘦臉功能的相關(guān)操作是在中央處理單元(CPU)上執(zhí)行的,其最多僅能支持1080P的視頻分辨率。即使在顯示流程方面采用GPU來執(zhí)行,其也無法實(shí)現(xiàn)針對(duì)具有4K或以上分辨率的視頻的實(shí)時(shí)修圖處理。此外,其更無法支持以下各種操作的并發(fā)執(zhí)行:轉(zhuǎn)屏、拍照、錄像、直播、顯示和/或?qū)ο蟾櫋8话愕?,本申?qǐng)的公開人注意到:現(xiàn)有的終端上并未充分利用GPU強(qiáng)大的并行圖像處理能力,而使得CPU負(fù)擔(dān)了過多的圖像處理工作,造成了無法充分利用現(xiàn)有硬件資源的問題。

本實(shí)施例中,所述終端可以為可移動(dòng)終端,如手機(jī)、筆記本電腦、手持拍攝裝置等;也可為桌上計(jì)算機(jī)等。

大體上,本公開實(shí)施例提出了一種利用GPU來實(shí)現(xiàn)對(duì)視頻流中的圖像幀進(jìn)行高速處理的方案。在該方案中,通過GPU對(duì)圖像幀中的數(shù)據(jù)進(jìn)行坐標(biāo)旋轉(zhuǎn)、美顏,并在CPU的輔助下進(jìn)行瘦臉,能夠顯著提升針對(duì)高清晰度(例如,4K或更高分辨率)的人臉圖像的高速處理。此外,通過使用GPU和CPU上的紋理數(shù)據(jù)的替換、對(duì)資源合理調(diào)度,來解決在4K或更高分辨率的條件下能夠在美顏瘦臉之后還能并發(fā)地執(zhí)行顯示、錄像、拍照、直播和/或?qū)ο蟾?Tracking)等功能。

首先,將結(jié)合圖1來詳細(xì)描述根據(jù)本公開實(shí)施例的用于進(jìn)行視頻流處理的終端的構(gòu)架。圖1示出了根據(jù)本公開實(shí)施例的用于進(jìn)行視頻流處理的終端100的硬件示意圖。如圖1所示,終端100可以包括主處理器(以下有時(shí)也可稱為中央處理單元或CPU或host processor)102、圖形處理單元(以下有時(shí)也稱為GPU)104和顯示器106。

首先,請(qǐng)注意到:盡管圖1中將主處理器102和圖形處理單元104示出為單獨(dú)的兩個(gè)模塊,然而實(shí)際上本公開不限于此。在一些實(shí)施例中,圖形處理單元104可以作為主處理器102中內(nèi)嵌的圖形處理核心。例如,在華為推出的手機(jī)Mate8中,其主處理器麒麟950包括了8個(gè)通用處理器核心(由ARM公司推出的4個(gè)Cortex A72和4個(gè)Cortex A53)以及1個(gè)GPU核心(由ARM公司推出的Mali T880)。因此,在這樣的示例中,盡管主處理器102和圖形處理單元104實(shí)際上為一個(gè)物理硬件,但在邏輯上依然可將其視為兩個(gè)單獨(dú)的邏輯模塊。實(shí)際上,對(duì)于程序員而言,由8個(gè)通用處理器核心組成的8核CPU依然需要調(diào)用諸如OpenGL之類的圖形程序接口才能指揮GPU進(jìn)行圖形計(jì)算工作。因此,可以在邏輯上將主處理器102與圖形處理單元104加以區(qū)分,然而這并不代表它們二者必然是不同的物理硬件。

GPU 104作為專門用于圖形處理的處理器,其與CPU 102相比,具有更多的計(jì)算核心以及因此具有更強(qiáng)大的并行計(jì)算能力,也更適用于圖像處理。事實(shí)上,在圖像處理方面,如后文中詳細(xì)描述的,針對(duì)相同的圖像處理,GPU 104可以具有比CPU 102至少高100倍的計(jì)算速度。然而,如前文所述,在現(xiàn)有的圖像處理過程中,并沒有完全利用GPU 104這種強(qiáng)大的并行圖像處理能力,從而導(dǎo)致了現(xiàn)有的終端無法實(shí)時(shí)處理分辨率較大的圖像和/或視頻(例如,具有4K或更高分辨率的圖像和/或視頻)。

此外,終端100的顯示器106可以與GPU 104相連,以在GPU 104的控制下顯示各種圖像、文字等。顯示器106可以包括(但不限于):CRT(陰極射線管)顯示器、LCD(液晶)顯示器、LED(發(fā)光二極管)顯示器、OLED(有機(jī)發(fā)光二極管)顯示器等等。此外,顯示器106上顯示的內(nèi)容可以在GPU 104的控制下進(jìn)行旋轉(zhuǎn),以例如適應(yīng)終端100的當(dāng)前設(shè)備定向。例如,在觀看視頻時(shí),可以將終端100從縱向定向改變?yōu)闄M向定向,以使得視頻能夠全屏顯示,占據(jù)整個(gè)屏幕,而非在屏幕的一部分上顯示。此外,請(qǐng)注意顯示器106不是終端100的必要組件。事實(shí)上,終端100可以外接顯示器或以其他方式向遠(yuǎn)程顯示器流傳輸顯示畫面,而無需內(nèi)置顯示器106。

通信單元108可以是使得終端100能夠與外部設(shè)備進(jìn)行通信的模塊或單元。通信單元108可以是有線通信單元或無線通信單元或這二者的結(jié)合。當(dāng)通信單元108是有線通信單元時(shí),其可以包括(但不限于):USB模塊、IEEE 1394模塊、以太網(wǎng)模塊、數(shù)字訂戶線路(DSL或更一般地xDSL)調(diào)制解調(diào)器、串口模塊等等。當(dāng)通信單元108是無線通信單元時(shí),其可以包括例如(但不限于):各種2G模塊(例如,GSM/GPRS模塊等)、3G模塊(例如WCDMA模塊、CDMA2000模塊、TD-SCDMA模塊等)、4G模塊(例如,TD-LTE模塊等)、正在發(fā)展中且將要出現(xiàn)的各種5G模塊等遠(yuǎn)距離通信模塊。此外,通信單元108還可以包括近距離無線通信模塊,例如(但不限于):Wi-Fi模塊、藍(lán)牙模塊、NFC模塊、RFID模塊、紅外模塊等。事實(shí)上,通信單元108不限于上述任何模塊,而是可以使得主處理器102能夠與外部通信的任何模塊,甚至可以是具有共享內(nèi)存形式的模塊,使得主處理器102可以用“寫入/讀取”的方式與外部設(shè)備/處理器共享數(shù)據(jù)。同樣地,請(qǐng)注意通信單元108也不是終端100的必要組件。事實(shí)上,終端100可以外接通信單元以與其他外部設(shè)備通信,而無需內(nèi)置通信單元108。

終端100還可以包括一個(gè)或多個(gè)攝像頭110。在圖1所示示例中,終端100包括了第一攝像頭110-1和第二攝像頭110-2(下文中,將其統(tǒng)稱為攝像頭110)。這兩個(gè)攝像頭可以具有不同的技術(shù)參數(shù)。例如,第一攝像頭110-1可以位于終端100的背部,以在能夠同時(shí)查看拍攝畫面的情況下拍攝對(duì)象。第二攝像頭110-2可以位于終端100的正面,以對(duì)用戶自身進(jìn)行自拍。此外,在另一些實(shí)施例中,第一攝像頭110-1可以旋轉(zhuǎn)以同時(shí)實(shí)現(xiàn)第一攝像頭110-1和第二攝像頭110-2的拍攝功能。在另一些實(shí)施例中,第一攝像頭110-1甚至可以包括兩個(gè)鏡頭,以實(shí)現(xiàn)3D拍攝、獲取更清晰的圖像等。這兩個(gè)攝像頭110-1和110-2可以具有不同的分辨率、變焦范圍/固定焦距、快門速度、光圈、景深、感光度(ISO)等。此外,這兩個(gè)攝像頭110與主處理器102的連接方式也不限于圖1所示的方式,而是可以分別與主處理器102的不同管腳相連,或者都連接到某個(gè)數(shù)據(jù)/控制總線上,本公開不限于此。同樣地,請(qǐng)注意攝像頭110-1和110-2也不是終端100的必要組件。盡管將第二攝像頭110-2示出為虛線框,以表明其為可選攝像頭,然而這并不暗示著攝像頭1是必選攝像頭。事實(shí)上,終端100可以外接攝像頭以獲取圖像和/或視頻,而無需內(nèi)置攝像頭110-1和110-2。此外,終端100甚至可以通過通信單元108來獲取圖像/視頻流或從存儲(chǔ)器112中獲取圖像/視頻流,而無需任何內(nèi)置/外部攝像頭。

終端100還可以包括一個(gè)或多個(gè)存儲(chǔ)器112。存儲(chǔ)器112可以是易失性存儲(chǔ)器或非易失性存儲(chǔ)器。例如,作為易失性存儲(chǔ)器,存儲(chǔ)器112可以包括(但不限于):隨機(jī)存取存儲(chǔ)器(RAM)、動(dòng)態(tài)RAM(DRAM)、靜態(tài)RAM(SRAM)、同步DRAM(SDRAM)、高速緩存、寄存器等。例如,作為非易失性存儲(chǔ)器,存儲(chǔ)器112還可以包括(但不限于):一次性可編程只讀存儲(chǔ)器(OTPROM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、掩膜ROM、閃存ROM、閃存、硬盤驅(qū)動(dòng)器、固態(tài)驅(qū)動(dòng)器等等。此外,存儲(chǔ)器112還可以包括例如(但不限于)高密度閃存(CF)、安全數(shù)字(SD)、微型SD、迷你SD、極速數(shù)字(xD)、多媒體卡(MMC)、或記憶棒等等。存儲(chǔ)器112可以存儲(chǔ)供主處理器102和/或GPU 104所執(zhí)行的指令和/或要處理或已處理的數(shù)據(jù)。在一些實(shí)施例中,例如當(dāng)GPU 104與CPU 102共享存儲(chǔ)器112時(shí),存儲(chǔ)器112可以用傳遞指針的方式在GPU104和CPU 102之間傳輸數(shù)據(jù),例如待處理和/或已處理的視頻流中的圖像數(shù)據(jù)。例如,如圖1中GPU 104與存儲(chǔ)器112之間的虛線箭頭所示,其可以可選地在物理上直接連接到存儲(chǔ)器112,從而與CPU 102以時(shí)分的方式來共享存儲(chǔ)器。此外,GPU 104也可以通過主處理器102來訪問存儲(chǔ)器112中存儲(chǔ)的指令和/或數(shù)據(jù)。本公開不限于此。

終端100還可以包括統(tǒng)稱為其它模塊114的各種其它功能單元,包括(但不限于):例如,電源模塊、傳感器模塊、輸入輸出模塊(例如,鍵盤、按鈕等、音頻模塊)、振動(dòng)模塊、加密模塊等等。然而它們的存在與否并不影響對(duì)本公開實(shí)施例的主旨的理解和實(shí)現(xiàn),因此此處省略了對(duì)它們的詳細(xì)描述。

接下來將參考圖2來詳細(xì)描述在圖1所示的終端100中各組件之間的數(shù)據(jù)/指令交互,該交互使得終端100能夠使用其GPU 104來處理視頻流。

在圖2所示的實(shí)施例中,在步驟S201處,由攝像頭110所拍攝的視頻流數(shù)據(jù)可以通過各種方式向主處理器102、GPU 104和/或存儲(chǔ)器112傳輸,例如,通過數(shù)據(jù)總線直接向各個(gè)組件傳輸,或傳輸給CPU 102,并由CPU 102向其它各個(gè)組件轉(zhuǎn)發(fā)。請(qǐng)注意:在一些實(shí)施例中,該視頻流數(shù)據(jù)可以不向存儲(chǔ)器112和/或CPU 102傳輸,而僅由GPU 104來獲取。

接下來,在步驟S202,GPU 104對(duì)攝像頭110采集到的視頻流數(shù)據(jù)的每一幀圖像數(shù)據(jù)執(zhí)行可選的坐標(biāo)旋轉(zhuǎn),以將攝像頭拍攝到的圖像數(shù)據(jù)變換為可由GPU 104正確處理的數(shù)據(jù)格式(例如,變換到GPU 104的坐標(biāo)系下)。然后,在步驟S203,GPU 104從該視頻流數(shù)據(jù)中提取出每一幀原始圖像數(shù)據(jù),并在步驟S204向主處理器102和/或存儲(chǔ)器112發(fā)送。

在接收到該原始圖像數(shù)據(jù)之后,主處理器102可以在步驟S205中對(duì)該原始數(shù)據(jù)執(zhí)行人臉識(shí)別和/或人臉特征點(diǎn)確定算法,以確定每一幀圖像中是否包含人臉,以及如果包含人臉,則確定人臉中各個(gè)臉部特征(例如,臉部、眼睛、鼻子、嘴、耳朵、頭發(fā)、或眉毛等)的位置、輪廓、顏色、亮度等中的一項(xiàng)或多項(xiàng)。然后,主處理器102可以在步驟S206中將上述特征數(shù)據(jù)發(fā)送給GPU 104。該人臉識(shí)別/特征點(diǎn)確定算法之所以在CPU 102上執(zhí)行的原因在于GPU 104本身不像CPU 102一樣具備較多的控制單元(例如,分支預(yù)測(cè)、緩存等),因此在執(zhí)行這類算法時(shí),GPU 104通常并不如CPU 102一樣高效。所以,該算法主要可以由主處理器102來執(zhí)行,而不是讓其在GPU 104上執(zhí)行。然而,在另一些實(shí)施例中,也可以讓GPU 104來執(zhí)行這些操作。此外,該算法并不是本文關(guān)注的重點(diǎn),且存在多種用于人臉識(shí)別的算法,因此本文不再對(duì)其詳細(xì)描述,然而這并不影響本領(lǐng)域技術(shù)人員實(shí)現(xiàn)本公開實(shí)施例。此外,盡管本文中使用特征點(diǎn)來代表人臉上的特征,但不代表其就是圖像中單一的點(diǎn)或像素,而是可以代表具有一定形狀和面積的區(qū)域,例如眼睛特征點(diǎn)可以包括與圖像中眼睛部分大致相同形狀和面積的像素塊。

接下來,在步驟S207和S208中,GPU 104可以根據(jù)CPU 102找到的各個(gè)特征點(diǎn)來執(zhí)行圖像處理(例如,修圖操作)。圖像處理可以包括以下至少一項(xiàng):輪廓修正(例如,瘦臉、眼部放大等)、顏色修正(例如,膚色、眼睛顏色、嘴唇顏色修正等)、亮度修正(例如,面部打光等)、以及模糊處理(例如,高斯模糊,或者俗稱為“磨皮”)。此外,諸如瘦臉、美顏(整體效果包括例如磨皮、美白等,具體地可以包括例如雙邊濾波、邊緣檢測(cè)、銳化、膚色調(diào)節(jié)、和/或其他部位顏色/亮度調(diào)節(jié)等中的一項(xiàng)或多項(xiàng))之類的修圖操作的順序并無一定之規(guī)。盡管在圖2所示實(shí)施例中,先執(zhí)行了瘦臉操作S207,然后執(zhí)行了美顏操作S208,然而也可以顛倒執(zhí)行,或甚至并行執(zhí)行。此外,在一些實(shí)施例中,至少部分美顏操作S208可以不需要特征點(diǎn)的存在,且因此其或其一部分甚至可以在特征點(diǎn)確認(rèn)之前(即,步驟S204之前)進(jìn)行。

此外,本申請(qǐng)發(fā)明人發(fā)現(xiàn):在移動(dòng)設(shè)備中,一秒鐘只要顯示30張具有4K分辨率的圖像就毫無卡頓感。根據(jù)本公開實(shí)施例,使用GPU 104來處理美顏的時(shí)間約為7.5ms(而使用CPU 102來執(zhí)行同樣操作至少要750ms以上),處理瘦臉的時(shí)間約為12ms(包括CPU 102確定特征點(diǎn)的時(shí)間約9.5ms和GPU 104執(zhí)行瘦臉操作的時(shí)間約2.5ms)。從而,可以實(shí)現(xiàn)每幀4K圖像處理僅需要約19.5ms,從而使得視頻流沒有卡頓感。

然后,在步驟S209,在GPU 104首次處理某一視頻流的圖像數(shù)據(jù)的情況下,GPU 104可以用經(jīng)處理的數(shù)據(jù)或原始數(shù)據(jù)來創(chuàng)建一個(gè)新的紋理,在寬高(或分辨率)不變的情況下,以后來一次數(shù)據(jù)只要更新一次紋理數(shù)據(jù),而無需重新創(chuàng)建新的紋理。從而減少了數(shù)據(jù)資源的反復(fù)創(chuàng)建,能夠進(jìn)一步提升計(jì)算性能。此外,在例如切換前后攝像頭110-1和110-2的情況下或在旋轉(zhuǎn)終端100(例如,縱向變橫向或反之)的情況下,分辨率(或?qū)捀?通常會(huì)發(fā)生改變,且此時(shí)可以重新創(chuàng)建新的紋理。盡管有時(shí)可能會(huì)造成零點(diǎn)幾秒的卡頓,但是用戶通常也不會(huì)注意到這樣的卡頓。在紋理數(shù)據(jù)處理完成之后,GPU 104可以繼續(xù)用紋理去渲染到GPUBuffer上。

在步驟S210,GPU 104可以向顯示器106發(fā)送在步驟S209中創(chuàng)建或更新的顯示數(shù)據(jù),以使得用戶能夠在顯示器106上看到經(jīng)過修圖的視頻。同時(shí),在步驟S210中,GPU 104還可以向CPU 102和/或存儲(chǔ)器112發(fā)送該顯示數(shù)據(jù),以使得CPU 102可以執(zhí)行后續(xù)處理,并使得存儲(chǔ)器112能夠存儲(chǔ)該顯示數(shù)據(jù),從而實(shí)現(xiàn)視頻錄制功能。

在步驟S211和/或S212,CPU 102可以根據(jù)該顯示數(shù)據(jù)來分別生成針對(duì)通信單元108的直播數(shù)據(jù)(例如,將顯示數(shù)據(jù)按網(wǎng)絡(luò)流傳輸?shù)母鞣N格式加以封裝、打包等)和/或針對(duì)攝像頭110的跟蹤指令,以分別實(shí)現(xiàn)視頻直播和/或?qū)ο蟾櫋?/p>

至此,已結(jié)合圖1和圖2詳細(xì)描述根據(jù)本公開實(shí)施例的使用GPU 104來處理視頻流的總體流程。通過使用根據(jù)本公開實(shí)施例的方法、終端和/或計(jì)算機(jī)程序,用戶可以在操作手機(jī)的時(shí)候開啟美顏瘦臉功能,并在4K高清的狀態(tài)下毫無卡頓感,還能同時(shí)進(jìn)行直播、錄像、拍照、顯示以及旋轉(zhuǎn)屏幕等操作。從而,通過GPU/CPU的合理調(diào)度的方式來讓性能達(dá)到最優(yōu)。

以下將結(jié)合圖3~4來詳細(xì)描述根據(jù)本公開實(shí)施例的終端100的使用GPU 104來處理視頻流的方法以及終端100的功能構(gòu)造。

圖3是示出了根據(jù)本公開實(shí)施例的在終端100中執(zhí)行的使用GPU 104來處理視頻流的方法300的流程圖。如圖3所示,方法300可以包括步驟S310、S320和S330。根據(jù)本公開,方法300的一些步驟可以單獨(dú)執(zhí)行或組合執(zhí)行,以及可以并行執(zhí)行或順序執(zhí)行,并不局限于圖3所示的具體操作順序。在一些實(shí)施例中,方法300可以由圖1所示的終端100和/或處理器102來執(zhí)行。

圖4是示出了根據(jù)本公開實(shí)施例的示例終端100的功能框圖。如圖4所示,終端100可以包括:圖像數(shù)據(jù)獲取裝置150、特征點(diǎn)確定裝置160和圖像處理指示裝置170。

圖像數(shù)據(jù)獲取裝置150可以用于獲取視頻流中的至少一幀圖像的圖像數(shù)據(jù)。圖像數(shù)據(jù)獲取裝置150可以是終端100的中央處理單元(例如,CPU 102)、數(shù)字信號(hào)處理器(DSP)、微處理器、微控制器等等,其可以與例如終端100的攝像頭110相配合,獲取視頻流中的至少一幀圖像的圖像數(shù)據(jù)。此外,其也可以與終端100的通信單元108和/或存儲(chǔ)器112相配合,獲得從外部設(shè)備傳送來的視頻流的至少一幀圖像的圖像數(shù)據(jù)和/或存儲(chǔ)在本地存儲(chǔ)器中的視頻流的至少一幀圖像的圖像數(shù)據(jù)。

特征點(diǎn)確定裝置160可以用于確定該圖像數(shù)據(jù)中的至少一個(gè)特征點(diǎn)。特征點(diǎn)確定裝置160也可以是終端100的中央處理單元(例如,CPU 102)、數(shù)字信號(hào)處理器(DSP)、微處理器、微控制器等等,其可以基于圖像特征點(diǎn)識(shí)別算法,來確定圖像中的特征點(diǎn)的位置、大小等參數(shù)。例如,可以根據(jù)人臉特征識(shí)別參數(shù)來確定圖像中是否存在人臉,以及人臉的各個(gè)面部器官的位置、大小、顏色等等。

圖像處理指示裝置170可以用于指示GPU 104基于所確定的至少一個(gè)特征點(diǎn)對(duì)該圖像數(shù)據(jù)進(jìn)行圖像處理。圖像處理指示裝置170也可以是終端100的中央處理單元(CPU 102)、數(shù)字信號(hào)處理器(DSP)、微處理器、微控制器等等,其可以通過例如圖形編程接口(例如,OpenGL、Direct3D等),指示GPU 104根據(jù)所檢測(cè)到的至少一個(gè)特征點(diǎn)來執(zhí)行相應(yīng)圖像處理。例如,可以指示GPU 104在圖像中檢測(cè)到面部粉刺的地方執(zhí)行模糊處理(例如,高斯模糊等),在圖像中檢測(cè)到皮膚的地方執(zhí)行亮度修正、顏色修正等處理,和/或在檢測(cè)到面部輪廓的地方執(zhí)行輪廓修正(例如,瘦臉等)處理。

此外,終端100還可以包括圖4中未示出的其它功能單元,例如操作指示裝置。在一些實(shí)施例中,操作指示裝置可以用于針對(duì)經(jīng)過圖像處理的圖像數(shù)據(jù),指示GPU 104來執(zhí)行視頻錄制操作、視頻顯示操作、對(duì)象跟蹤操作、或視頻直播操作中的至少一項(xiàng)。此外,該操作指示裝置還可以用于:指示GPU 104并行執(zhí)行視頻錄制操作、視頻顯示操作、對(duì)象跟蹤操作、或視頻直播操作中的至少兩項(xiàng)。

此外,終端100還可以包括圖4中未示出的其他功能單元,然而由于其并不影響本領(lǐng)域技術(shù)人員理解本公開的實(shí)施方式,因此在圖4中加以省略。例如,終端100還可以包括以下一項(xiàng)或多項(xiàng)功能單元:電源、存儲(chǔ)器(例如,存儲(chǔ)器112)、數(shù)據(jù)總線、天線、無線收發(fā)信機(jī)(例如,通信單元108)等等。

以下將結(jié)合圖3和圖4,對(duì)根據(jù)本公開實(shí)施例的在終端100上執(zhí)行的使用GPU 104來處理視頻流的方法300和終端100進(jìn)行詳細(xì)的描述。

方法300開始于步驟S310,在步驟S310中,可以由終端100的圖像數(shù)據(jù)獲取裝置150獲取視頻流中的至少一幀圖像的圖像數(shù)據(jù)。

在步驟S320中,可以由終端100的特征點(diǎn)確定裝置160確定該圖像數(shù)據(jù)中的至少一個(gè)特征點(diǎn)。

在步驟S330中,可以由終端100的圖像處理指示裝置170指示GPU 104基于至少一個(gè)特征點(diǎn)對(duì)圖像數(shù)據(jù)進(jìn)行圖像處理。

在一些實(shí)施例中,該視頻流可以是具有4K或更高分辨率的視頻流。在一些實(shí)施例中,該至少一幀圖像可以包括人臉,以及至少一個(gè)特征點(diǎn)可以包括以下至少一項(xiàng):臉部、眼睛、鼻子、嘴、耳朵、頭發(fā)、或眉毛。在一些實(shí)施例中,圖像處理可以包括以下至少一項(xiàng):輪廓修正、顏色修正、亮度修正、以及模糊處理。在一些實(shí)施例中,方法300還可以包括:針對(duì)經(jīng)過圖像處理的圖像數(shù)據(jù),指示GPU 104執(zhí)行視頻錄制操作、視頻顯示操作、對(duì)象跟蹤操作、或視頻直播操作中的至少一項(xiàng)。在一些實(shí)施例中,指示GPU 104執(zhí)行視頻錄制操作、視頻顯示操作、對(duì)象跟蹤操作、或視頻直播操作中的至少一項(xiàng)可以包括:指示GPU 104并行執(zhí)行視頻錄制操作、視頻顯示操作、對(duì)象跟蹤操作、或視頻直播操作中的至少兩項(xiàng)。在一些實(shí)施例中,在GPU 104基于至少一個(gè)特征點(diǎn)對(duì)圖像數(shù)據(jù)進(jìn)行圖像處理之前,可以對(duì)圖像數(shù)據(jù)進(jìn)行坐標(biāo)變換,以使其能夠由GPU 104進(jìn)行圖像處理。在一些實(shí)施例中,在GPU 104基于至少一個(gè)特征點(diǎn)對(duì)圖像數(shù)據(jù)進(jìn)行圖像處理之后,如果GPU104是首次針對(duì)視頻流進(jìn)行圖像處理,則可以創(chuàng)建新的紋理,否則在圖像數(shù)據(jù)的寬高比不改變的情況下,僅可以更新已有的紋理。在一些實(shí)施例中,如果GPU 104不是首次針對(duì)視頻流進(jìn)行圖像處理且圖像數(shù)據(jù)的寬高比發(fā)生了改變,則可以創(chuàng)建新的紋理。在一些實(shí)施例中,圖像數(shù)據(jù)的寬高比的改變可以是由變更攝像頭和/或旋轉(zhuǎn)終端引起的。

通過使用根據(jù)本公開實(shí)施例的方法、終端和/或計(jì)算機(jī)程序,用戶可以在操作手機(jī)的時(shí)候開啟美顏瘦臉功能,并在4K高清的狀態(tài)下毫無卡頓感,還能同時(shí)進(jìn)行直播、錄像、拍照、顯示以及旋轉(zhuǎn)屏幕等操作。從而,通過GPU/CPU的合理調(diào)度的方式來讓性能達(dá)到最優(yōu)。

需要注意的是,在本文中被描述為通過純硬件、純軟件和/或固件來實(shí)現(xiàn)的功能,也可以通過專用硬件、通用硬件與軟件的結(jié)合等方式來實(shí)現(xiàn)。例如,被描述為通過專用硬件(例如,現(xiàn)場(chǎng)可編程門陣列(FPGA)、專用集成電路(ASIC)等)來實(shí)現(xiàn)的功能,可以由通用硬件(例如,中央處理單元(CPU)、數(shù)字信號(hào)處理器(DSP))與軟件的結(jié)合的方式來實(shí)現(xiàn),反之亦然。此外,例如描述為通過藍(lán)牙模塊、NFC芯片/線圈等實(shí)現(xiàn)的功能,也可以由通用處理器(例如,CPU、DSP等)結(jié)合模數(shù)轉(zhuǎn)換電路、放大電路、天線等硬件以及藍(lán)牙、NFC相關(guān)處理軟件來實(shí)現(xiàn),反之亦然。

盡管已經(jīng)參照本公開的特定示例性實(shí)施例示出并描述了本公開,但是本領(lǐng)域技術(shù)人員應(yīng)該理解,在不背離所附權(quán)利要求及其等同物限定的本公開的精神和范圍的情況下,可以對(duì)本公開進(jìn)行形式和細(xì)節(jié)上的多種改變。因此,本公開的范圍不應(yīng)該限于上述實(shí)施例,而是應(yīng)該不僅由所附權(quán)利要求來進(jìn)行確定,還由所附權(quán)利要求的等同物來進(jìn)行限定。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
仙居县| 五大连池市| 兴业县| 镇赉县| 清水县| 宜君县| 安岳县| 合阳县| 庄浪县| 台中市| 洛隆县| 寻甸| 唐河县| 彰化县| 应城市| 乌什县| 肇东市| 嫩江县| 准格尔旗| 青浦区| 安多县| 巴林右旗| 涞水县| 元阳县| 赤壁市| 宁津县| 黎城县| 武威市| 都匀市| 东丰县| 瑞金市| 广水市| 龙山县| 旬邑县| 修武县| 东乌珠穆沁旗| 大方县| 呼玛县| 昌图县| 巴林左旗| 霞浦县|