一種視頻畫面的繪制方法及裝置的制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種視頻畫面的繪制方法及裝置,其中,所述方法包括:創(chuàng)建GLSurface View以及與所述GLSurface View相對(duì)應(yīng)的第一渲染器和第二渲染器;為所述第一渲染器配置第一渲染參數(shù),所述第一渲染參數(shù)至少包括視頻發(fā)起方的畫面位置和畫面尺寸;為所述第二渲染器配置第二渲染參數(shù),所述第二渲染參數(shù)至少包括視頻接收方的畫面位置和畫面尺寸;當(dāng)視頻通話建立時(shí),所述第一渲染器和所述第二渲染器分別根據(jù)所述第一渲染參數(shù)和所述第二渲染參數(shù),對(duì)接收的每一幀圖片進(jìn)行繪制。本發(fā)明實(shí)施例提供一種視頻畫面的繪制方法及裝置,能夠減少對(duì)手機(jī)資源的占用,以保證視頻通話的質(zhì)量。
【專利說明】
一種視頻畫面的繪制方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明實(shí)施例涉及圖像處理技術(shù)領(lǐng)域,尤其涉及一種視頻畫面的繪制方法及裝 置。
【背景技術(shù)】
[0002] 從計(jì)算機(jī)誕生的那天開始,對(duì)現(xiàn)實(shí)世界的真實(shí)模擬就是圖形學(xué)領(lǐng)域追求的最終目 標(biāo)。渲染技術(shù)在計(jì)算機(jī)繪圖中,是指用軟件從模型生成圖像的過程。在圖形顯示操作中,渲 染是最后一項(xiàng)重要步驟,通過它得到模型與動(dòng)畫最終顯示效果。渲染技術(shù)被廣泛用于計(jì)算 機(jī)與視頻游戲、模擬、電影或者電視特效以及可視化設(shè)計(jì)等實(shí)際應(yīng)用場景。針對(duì)渲染顯示的 方式不同,可以大致分為兩類:預(yù)植染(pre-rendering或者off linerendering)和實(shí)時(shí)植染 (real-timerendering或者onlinerendering)。其中,預(yù)植染就是由開發(fā)人員將待植染內(nèi)容 預(yù)先放置在服務(wù)器上進(jìn)行渲染,預(yù)渲染的計(jì)算強(qiáng)度很大,通常用于復(fù)雜場景處理,比如酷炫 的3D電影制作等。實(shí)時(shí)渲染要求實(shí)時(shí)體驗(yàn),經(jīng)常用于各類3D游戲等場景,通常需要依靠硬件 加速器完成這個(gè)過程。
[0003]目前通??梢圆捎帽镜劁秩净蛟贫虽秩炯夹g(shù)來實(shí)現(xiàn)對(duì)畫面的繪制。本地渲染技術(shù) 就是用戶設(shè)備(UserEquipment,UE)的硬件設(shè)備,如:中央處理器(CentralProcessingUni t, CPU)、圖形處理器(GraphicProcessingUnit,GPU)對(duì)模型進(jìn)行植染,植染結(jié)束后,顯示設(shè)備 調(diào)取渲染結(jié)果進(jìn)行顯示。云端渲染技術(shù)就是將用戶設(shè)備的操作移到云端運(yùn)行,然后把最終 的結(jié)果,通過圖片方式傳送給用戶設(shè)備進(jìn)行顯示。
[0004]隨著通信技術(shù)的不斷發(fā)展,人們已經(jīng)越來越習(xí)慣于利用手機(jī)進(jìn)行視頻通話。在視 頻通話的過程中也會(huì)涉及上述的圖像渲染技術(shù)。視頻通話往往涉及視頻通話的發(fā)起方以及 視頻通話的接收方?,F(xiàn)在技術(shù)中對(duì)于視頻通話中畫面的繪制可以如下所述:
[0005 ] 首先,可以針對(duì)視頻通話的發(fā)起方和接收方分別建立不同的GLSurf ace Vi ew,然后 通過這兩個(gè)GLSurfaceView分別對(duì)視頻通話發(fā)起方和接收方的圖像進(jìn)行繪制,從而可以實(shí) 現(xiàn)視頻通話的過程。
[0006] 然而上述的現(xiàn)有技術(shù)中會(huì)存在這樣的缺陷:倉Il建兩個(gè)GLSurfaceView無疑會(huì)消耗 更多的內(nèi)存并且會(huì)占用更多的cpu使用率,從而造成手機(jī)資源的浪費(fèi),另外,基于兩個(gè) GLSurfaceView來進(jìn)行畫面的繪制,得到的畫面位置往往都不方便進(jìn)行調(diào)節(jié)。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明實(shí)施例提供一種視頻畫面的繪制方法及裝置,能夠減少對(duì)手機(jī)資源的占 用,以保證視頻通話的質(zhì)量。
[0008] 本發(fā)明實(shí)施例提供一種視頻畫面的繪制方法,包括:倉Il建GLSurf ac eVi ew以及與所 述GLSurfaceView相對(duì)應(yīng)的第一渲染器和第二渲染器;為所述第一渲染器配置第一渲染參 數(shù),所述第一渲染參數(shù)至少包括視頻發(fā)起方的畫面位置和畫面尺寸;為所述第二渲染器配 置第二渲染參數(shù),所述第二渲染參數(shù)至少包括視頻接收方的畫面位置和畫面尺寸;當(dāng)視頻 通話建立時(shí),所述第一渲染器和所述第二渲染器分別根據(jù)所述第一渲染參數(shù)和所述第二渲 染參數(shù),對(duì)接收的每一幀圖片進(jìn)行繪制。
[0009]本發(fā)明實(shí)施例提供的一種視頻畫面的繪制裝置,包括:渲染器創(chuàng)建單元,用于創(chuàng)建 GLSurfaceView以及與所述GLSurf aceView相對(duì)應(yīng)的第一渲染器和第二渲染器;第一渲染參 數(shù)配置單元,用于為所述第一渲染器配置第一渲染參數(shù),所述第一渲染參數(shù)至少包括視頻 發(fā)起方的畫面位置和畫面尺寸;第二渲染參數(shù)配置單元,用于為所述第二渲染器配置第二 渲染參數(shù),所述第二渲染參數(shù)至少包括視頻接收方的畫面位置和畫面尺寸;繪制單元,用于 當(dāng)視頻通話建立時(shí),所述第一渲染器和所述第二渲染器分別根據(jù)所述第一渲染參數(shù)和所述 第二渲染參數(shù),對(duì)接收的每一幀圖片進(jìn)行繪制。
[0010]本發(fā)明實(shí)施例提供的視頻畫面的繪制方法及裝置,僅設(shè)置一個(gè)GLSurfaceView,同 時(shí)在該GLSurfaceView下生成對(duì)應(yīng)的兩個(gè)渲染器。其中一個(gè)渲染器用來渲染視頻通話發(fā)起 方的畫面,另一個(gè)渲染器則用來渲染視頻通話接收方的畫面。通過預(yù)先設(shè)置的視頻通話發(fā) 起方的畫面位置和畫面尺寸以及視頻接收方的畫面位置和畫面尺寸,從而可以限定渲染得 到的畫面的位置和尺寸。這樣,通過一個(gè)GLSurfaceView便可以實(shí)現(xiàn)視頻通話雙方畫面的繪 制過程,節(jié)省了手機(jī)的資源。進(jìn)一步地,通過對(duì)視頻通話過程中的網(wǎng)絡(luò)狀態(tài)進(jìn)行監(jiān)測,從而 可以根據(jù)實(shí)際的網(wǎng)絡(luò)狀態(tài),對(duì)分辨率或者幀率進(jìn)行調(diào)節(jié),以保證視頻通話的順暢。此外,通 過監(jiān)測手機(jī)觸摸屏上的觸控指令,從而可以根據(jù)觸控指令對(duì)視頻通話雙方的畫面位置進(jìn)行 調(diào)節(jié),保證了視頻通話過程的便捷性。
【附圖說明】
[0011] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖逐一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā) 明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根 據(jù)這些附圖獲得其他的附圖。
[0012] 圖1為本申請(qǐng)實(shí)施例提供的一種視頻畫面的繪制方法流程圖;
[0013] 圖2為本申請(qǐng)實(shí)施例提供的一種視頻畫面的繪制裝置功能模塊圖。
【具體實(shí)施方式】
[0014] 為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是 本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0015] 圖1為本申請(qǐng)實(shí)施例提供的一種視頻畫面的繪制方法流程圖。雖然下文描述流程 包括以特定順序出現(xiàn)的多個(gè)操作,但是應(yīng)該清楚了解,這些過程可以包括更多或更少的操 作,這些操作可以順序執(zhí)行或并行執(zhí)行(例如使用并行處理器或多線程環(huán)境)。如圖1所示, 所述方法可以包括:
[0016] SI:創(chuàng)建GLSurfaceView以及與所述GLSurfaceView相對(duì)應(yīng)的第一渲染器和第二渲 染器。
[0017] 所述的GLSurfaceView是一個(gè)視圖,其內(nèi)嵌的surf ace可以負(fù)責(zé)OpenGL植染。所述 GLSurf aceVi ew往往可以提供以下特性:
[0018] 1)管理一個(gè)surf ace,該surf ace可以為一塊內(nèi)存,能夠直接排版到Android的視圖 上;
[0019] 2)管理一個(gè)EGL display,該EGL display能夠?qū)?nèi)容植染到上述的surface上;
[0020] 3)支持用戶自定義渲染器;
[0021] 4)讓渲染器在獨(dú)立的線程里運(yùn)作,將渲染器運(yùn)作的線程與UI線程分離;
[0022] 5)支持按需植染(on-demand)和連續(xù)植染(continuous)。
[0023] 在創(chuàng)建了所述GLSurfaceView之后,可以對(duì)所述GLSurfaceView進(jìn)行初始化。具體 地,由于GLSurfaceView在創(chuàng)建時(shí)往往會(huì)具備一些默認(rèn)的配置,這些默認(rèn)的配置往往可以不 進(jìn)行修改。因此在初始化的過程中,主要是在所述GLSurfaceView中設(shè)置預(yù)設(shè)數(shù)量的渲染 器,以分別對(duì)視頻通話的發(fā)起方和接收方進(jìn)行畫面渲染。具體地,本申請(qǐng)實(shí)施例可以通過 setRenderer(Renderer)指令設(shè)置一個(gè)植染器。
[0024] 另外,所述GLSurfaceView會(huì)默認(rèn)創(chuàng)建像素格式為PixelFormat · RGB_565的 surface。當(dāng)然,用戶可以根據(jù)實(shí)際需求對(duì)該像素格式進(jìn)行更改,例如可以通過調(diào)用 getHolder( )· setFormat(PixelFormat · TRANSLUCENT)指令來更改透明效果。透明的 surface的像素格式都是32位的,每個(gè)色彩單元都是8位深度,這就說明該像素格式可能是 ARGB 或者 RGBA。
[0025] 在Android設(shè)備中往往支持多種EGL配置,在本申請(qǐng)實(shí)施例中可以使用不同數(shù)目的 通道(channel),也可以指定每個(gè)通道具有不同數(shù)目的位(bits)深度。因此,在渲染器工作 之前就應(yīng)該指定EGL的配置。所述GLSurfaceView默認(rèn)EGL配置的像素格式為RGB_656,16位 的深度緩存(depth buffer),默認(rèn)不開啟遮罩緩存(stencil buffer)。當(dāng)然,如果需要選擇 不同的EGL配置,則可以調(diào)用setEGLConfigChooser指令進(jìn)行更換。
[0026] 在對(duì)所述GLSurfaceView中的配置參數(shù)進(jìn)行修改以及設(shè)置預(yù)設(shè)數(shù)量的渲染器后, 便可以指定渲染器的渲染模式,在本申請(qǐng)實(shí)施例中由于需要對(duì)視頻通話的畫面進(jìn)行實(shí)時(shí)渲 染,因此可以將渲染器的渲染模式都設(shè)置為連續(xù)渲染。
[0027] 在使用GLSurfaceView對(duì)視頻通話的畫面進(jìn)行繪制時(shí),可以通過交互式或者非交 互式的方法進(jìn)行繪制。具體地,所述非交互式的繪制方法得到的視頻通話畫面不能夠與用 戶進(jìn)行互動(dòng),例如不能響應(yīng)于用戶的觸控指令進(jìn)行相應(yīng)的調(diào)整。在本申請(qǐng)一優(yōu)選實(shí)施例中, 為了能夠根據(jù)用戶的觸控指令對(duì)視頻畫面的位置進(jìn)行調(diào)節(jié),可以采用交互式的繪制方法對(duì) 視頻通話的畫面進(jìn)行繪制。具體地,由于渲染的對(duì)象是在獨(dú)立進(jìn)程中,當(dāng)需要對(duì)渲染的對(duì)象 進(jìn)行交互時(shí),則需要采用跨線程的機(jī)制來進(jìn)行事件的處理。具體地,在本申請(qǐng)實(shí)施例中可以 使用queueE vent (Runnab I e)指令來進(jìn)行設(shè)置。這樣,由所述GLSurf ace Vi ew繪制的視頻畫面 便可以響應(yīng)于用戶的觸控指令,與用戶進(jìn)行交互。
[0028] 在本申請(qǐng)實(shí)施例中,可以在GLSurfaceView中設(shè)置第一渲染器和第二渲染器,其 中,所述第一渲染器可以為本地渲染器,用于渲染本地采集的視頻信息;所述第二渲染器可 以為遠(yuǎn)程渲染器,用于渲染視頻通話的接收方遠(yuǎn)程發(fā)來的視頻信息。
[0029] S2:為所述第一渲染器配置第一渲染參數(shù),所述第一渲染參數(shù)至少包括視頻發(fā)起 方的畫面位置和畫面尺寸。
[0030] 在設(shè)置了第一渲染器之后,可以為所述第一渲染器配置第一渲染參數(shù)。所述第一 渲染參數(shù)是對(duì)視頻信息進(jìn)行渲染的規(guī)則,例如渲染后的畫面位于什么位置以及渲染后的畫 面大小是多少。所述第一渲染參數(shù)中至少可以包括視頻發(fā)起方的畫面位置和畫面尺寸。所 述視頻發(fā)起方的視頻信息可以由本地的攝像頭采集后送入所述第一渲染器中,并由所述第 一渲染器進(jìn)行渲染,成為本地的視頻畫面。所述本地的視頻畫面的位置以及尺寸則可以由 所述第一渲染參數(shù)進(jìn)行限定。例如,本地的視頻畫面可以位于整體畫面的左下角,大小為整 體畫面的1/8。
[0031] 本地的攝像頭在采集到視頻信息后,會(huì)將采集到的視頻信息按照一定的幀率發(fā)送 至所述第一渲染器。所述第一渲染器對(duì)接收到的每一幀視頻信息均進(jìn)行渲染成像,并將渲 染后的畫面按照同樣的幀率展示給用戶,從而給用戶提供視頻通話的畫面。
[0032] S3:為所述第二渲染器配置第二渲染參數(shù),所述第二渲染參數(shù)至少包括視頻接收 方的畫面位置和畫面尺寸。
[0033] 同樣的,在設(shè)置了第二渲染器之后,可以為所述第二渲染器配置第二渲染參數(shù)。所 述第二渲染參數(shù)同樣是對(duì)視頻信息進(jìn)行渲染的規(guī)則,例如渲染后的畫面位于什么位置以及 渲染后的畫面大小是多少。所述第二渲染參數(shù)中至少可以包括視頻接收方的畫面位置和畫 面尺寸。所述視頻接收方的視頻信息可以由本地的攝像頭采集后,通過網(wǎng)絡(luò)發(fā)送至視頻發(fā) 起方所在的通訊地址。這樣,當(dāng)所述視頻接收方的視頻信息到達(dá)視頻發(fā)起方時(shí),可以由所述 第二渲染器對(duì)其進(jìn)行渲染,渲染后的畫面便可以呈現(xiàn)給視頻通話的發(fā)起方進(jìn)行觀看。所述 視頻通話接收方的畫面位置以及尺寸則可以由所述第二渲染參數(shù)進(jìn)行限定。例如,視頻通 話接收方的視頻畫面可以在整體畫面的正中間,大小為鋪滿整體畫面。
[0034] 所述視頻通話的接收方的視頻信息同樣可以按照一定的幀率發(fā)送至視頻通話的 發(fā)起方,在經(jīng)過所述第二渲染器進(jìn)行渲染后,便可以按照同樣的幀率呈現(xiàn)給視頻通話的發(fā) 起方,從而形成視頻通話的畫面。
[0035] S4:當(dāng)視頻通話建立時(shí),所述第一渲染器和所述第二渲染器分別根據(jù)所述第一渲 染參數(shù)和所述第二渲染參數(shù),對(duì)接收的每一幀圖片進(jìn)行繪制。
[0036] 在視頻通話的接收方接收了視頻通話請(qǐng)求后,在視頻通話發(fā)起方和視頻通話接收 方之間便建立了視頻通話,此時(shí),首先可以根據(jù)視頻接收方的畫面位置和畫面尺寸對(duì)所述 第二渲染器接收的每一幀圖片進(jìn)行繪制,得到第二圖片流。該第二圖片流中的圖片是按照 預(yù)設(shè)幀率進(jìn)行傳輸,該預(yù)設(shè)幀率例如可以為24幀/秒或者30幀/秒。在得到所述第二圖片流 之后,可以根據(jù)視頻發(fā)起方的畫面位置和畫面尺寸對(duì)所述第一渲染器接收的每一幀圖片進(jìn) 行繪制,得到第一圖片流。同樣的,該第一圖片流中的圖片也是按照預(yù)設(shè)幀率進(jìn)行傳輸,該 預(yù)設(shè)幀率例如可以為24幀/秒或者30幀/秒。在進(jìn)行視頻通話的過程中,所述第二圖片流往 往可以作為背景鋪滿視頻通話的窗口,而所述第一圖片流則可以懸浮在所述第二圖片流 上,這樣所述第二圖片流便不會(huì)遮擋住所述第一圖片流。也就是說,在得到第二圖片流和第 一圖片流后,可以將所述第一圖片流加載于所述第二圖片流之上,構(gòu)成視頻畫面。如上所 述,所述可以作為背景鋪滿視頻通話的窗口,而所述第一圖片流則可以位于視頻通話窗口 的左下角,并且占整個(gè)窗口的1/8大小。
[0037] 在進(jìn)行視頻通話的過程中,每一幀畫面的分辨率和相鄰兩幀之間傳輸?shù)膸释?會(huì)決定視頻畫面的質(zhì)量。每一幀畫面的分辨率越高,那么視頻畫面則越清晰,但同時(shí)也會(huì)占 用較多的網(wǎng)絡(luò)資源,對(duì)網(wǎng)絡(luò)狀態(tài)的要求較高。同樣地,相鄰兩幀之間傳輸?shù)膸试礁撸曨l 畫面就會(huì)越流暢,但同時(shí)同樣會(huì)占用較多的網(wǎng)絡(luò)資源,對(duì)網(wǎng)絡(luò)狀態(tài)的要求較高。因此,在本 申請(qǐng)一優(yōu)選實(shí)施例中,為了保證視頻通話的順暢,可以根據(jù)網(wǎng)絡(luò)狀態(tài)的不同,對(duì)所述視頻接 收方的畫面進(jìn)行相應(yīng)的調(diào)整。具體地,本申請(qǐng)實(shí)施例可以監(jiān)測視頻發(fā)起方的網(wǎng)絡(luò)狀態(tài),當(dāng)所 述網(wǎng)絡(luò)狀態(tài)滿足預(yù)設(shè)條件時(shí),將所述視頻接收方的畫面分辨率調(diào)節(jié)為預(yù)設(shè)分辨率。例如,當(dāng) 所述網(wǎng)絡(luò)狀態(tài)較好,其網(wǎng)絡(luò)延遲低于預(yù)設(shè)閾值時(shí),可以將當(dāng)前畫面的分辨率調(diào)高,以增加畫 面的清晰度。相反的,當(dāng)所述網(wǎng)絡(luò)狀態(tài)較差,其網(wǎng)絡(luò)延遲高于預(yù)設(shè)閾值時(shí),可以將當(dāng)前畫面 的分辨率調(diào)低,以保證畫面的流暢度。
[0038] 同樣的,本申請(qǐng)實(shí)施例還可以監(jiān)測視頻發(fā)起方的網(wǎng)絡(luò)狀態(tài),當(dāng)所述網(wǎng)絡(luò)狀態(tài)滿足 預(yù)設(shè)條件時(shí),將所述視頻接收方的畫面渲染幀率按照預(yù)設(shè)規(guī)則進(jìn)行調(diào)節(jié)。例如,當(dāng)所述網(wǎng)絡(luò) 狀態(tài)較好,其網(wǎng)絡(luò)延遲低于預(yù)設(shè)閾值時(shí),可以將當(dāng)前畫面的幀率調(diào)高,以增加畫面的流暢 度。相反的,當(dāng)所述網(wǎng)絡(luò)狀態(tài)較差,其網(wǎng)絡(luò)延遲高于預(yù)設(shè)閾值時(shí),可以將當(dāng)前畫面的幀率調(diào) 低,以保證畫面不至于中斷。實(shí)際上,為了保證動(dòng)態(tài)圖像的畫面渲染質(zhì)量在可控范圍內(nèi),還 可以限定畫面渲染所用的幀率處于最小幀率和最大幀率之間,其中最大幀率是能夠完美地 運(yùn)行動(dòng)態(tài)圖像所需要的最大幀率值,最小幀率是運(yùn)行動(dòng)態(tài)圖像時(shí)可以容忍的最小幀率值。 即,將畫面渲染所用的幀率同該最小幀率及最大幀率進(jìn)行比較,如果上述畫面渲染所用的 幀率小于該最小幀率,則將上述畫面渲染所用的幀率設(shè)定成該最小幀率;如果上述畫面渲 染所用的幀率大于該最大幀率,則將上述畫面渲染所用的幀率設(shè)定成該最大幀率。所述的 最小幀率例如可以為20幀/秒,所述的最大幀率例如可以為60幀/秒。
[0039] 在本申請(qǐng)一優(yōu)選實(shí)施中,可以按照下述公式對(duì)所述視頻接收方的畫面渲染幀率進(jìn) 行調(diào)節(jié):
[0040]
[0041] 其中,INT為取整函數(shù),δ為調(diào)節(jié)后的畫面渲染幀率,N為每次渲染時(shí)的畫面幀數(shù),T 為渲染N幀畫面所需的時(shí)間,k為調(diào)節(jié)系數(shù)。所述調(diào)節(jié)系數(shù)可以根據(jù)網(wǎng)絡(luò)狀態(tài)進(jìn)行調(diào)整,其范 圍為0.1至1之間。本申請(qǐng)實(shí)施例可以建立網(wǎng)絡(luò)延遲與所述調(diào)節(jié)系數(shù)之間的關(guān)系,該關(guān)系可 以用反比例函數(shù)來表示,當(dāng)網(wǎng)絡(luò)延遲越高時(shí),其對(duì)應(yīng)的調(diào)節(jié)系數(shù)則越??;當(dāng)網(wǎng)絡(luò)延遲越低 時(shí),其對(duì)應(yīng)的調(diào)節(jié)系數(shù)則越大。
[0042] 由上可見,本發(fā)明實(shí)施例提供的視頻畫面的繪制方法,僅設(shè)置一個(gè) GLSurfaceView,同時(shí)在該GLSurfaceView下生成對(duì)應(yīng)的兩個(gè)植染器。其中一個(gè)植染器用來 渲染視頻通話發(fā)起方的畫面,另一個(gè)渲染器則用來渲染視頻通話接收方的畫面。通過預(yù)先 設(shè)置的視頻通話發(fā)起方的畫面位置和畫面尺寸以及視頻接收方的畫面位置和畫面尺寸,從 而可以限定渲染得到的畫面的位置和尺寸。這樣,通過一個(gè)GLSurfaceView便可以實(shí)現(xiàn)視頻 通話雙方畫面的繪制過程,節(jié)省了手機(jī)的資源。進(jìn)一步地,通過對(duì)視頻通話過程中的網(wǎng)絡(luò)狀 態(tài)進(jìn)行監(jiān)測,從而可以根據(jù)實(shí)際的網(wǎng)絡(luò)狀態(tài),對(duì)分辨率或者幀率進(jìn)行調(diào)節(jié),以保證視頻通話 的順暢。此外,通過監(jiān)測手機(jī)觸摸屏上的觸控指令,從而可以根據(jù)觸控指令對(duì)視頻通話雙方 的畫面位置進(jìn)行調(diào)節(jié),保證了視頻通話過程的便捷性。
[0043] 本申請(qǐng)實(shí)施例還提供一種視頻畫面的繪制裝置。圖2為本申請(qǐng)實(shí)施例提供的一種 視頻畫面的繪制裝置功能模塊圖。如圖2所示,所述裝置可以包括:
[0044] 植染器創(chuàng)建單元100,用于創(chuàng)建GLSurfaceView以及與所述GLSurfaceView相對(duì)應(yīng) 的第一植染器和第二植染器;
[0045] 第一渲染參數(shù)配置單元200,用于為所述第一渲染器配置第一渲染參數(shù),所述第一 渲染參數(shù)至少包括視頻發(fā)起方的畫面位置和畫面尺寸;
[0046] 第二渲染參數(shù)配置單元300,用于為所述第二渲染器配置第二渲染參數(shù),所述第二 渲染參數(shù)至少包括視頻接收方的畫面位置和畫面尺寸;
[0047]繪制單元400,用于當(dāng)視頻通話建立時(shí),所述第一渲染器和所述第二渲染器分別根 據(jù)所述第一渲染參數(shù)和所述第二渲染參數(shù),對(duì)接收的每一幀圖片進(jìn)行繪制。
[0048]在本申請(qǐng)一優(yōu)選實(shí)施例中,所述繪制單元400具體包括:
[0049] 第二圖片流獲取模塊,用于當(dāng)視頻通話建立時(shí),根據(jù)視頻接收方的畫面位置和畫 面尺寸對(duì)所述第二渲染器接收的每一幀圖片進(jìn)行繪制,得到第二圖片流;
[0050] 第一圖片流獲取模塊,用于根據(jù)視頻發(fā)起方的畫面位置和畫面尺寸對(duì)所述第一渲 染器接收的每一幀圖片進(jìn)行繪制,得到第一圖片流;
[0051] 加載模塊,用于將所述第一圖片流加載于所述第二圖片流之上,構(gòu)成視頻畫面。
[0052] 其中,在所述加載模塊之后,所述裝置還包括:
[0053]觸控指令監(jiān)測模塊,用于監(jiān)測所述視頻畫面上的觸控指令,并響應(yīng)于監(jiān)測到的觸 控指令,將所述第一圖片流或者第二圖片流的位置進(jìn)行移動(dòng)。
[0054]在本申請(qǐng)另一優(yōu)選實(shí)施例中,所述裝置還可以包括:
[0055] 分辨率調(diào)節(jié)單元,用于監(jiān)測視頻發(fā)起方的網(wǎng)絡(luò)狀態(tài),當(dāng)所述網(wǎng)絡(luò)狀態(tài)滿足預(yù)設(shè)條 件時(shí),將所述視頻接收方的畫面分辨率調(diào)節(jié)為預(yù)設(shè)分辨率。
[0056] 在本申請(qǐng)另一優(yōu)選實(shí)施例中,所述裝置還可以包括:
[0057] 幀率調(diào)節(jié)單元,用于監(jiān)測視頻發(fā)起方的網(wǎng)絡(luò)狀態(tài),當(dāng)所述網(wǎng)絡(luò)狀態(tài)滿足預(yù)設(shè)條件 時(shí),將所述視頻接收方的畫面渲染幀率按照預(yù)設(shè)規(guī)則進(jìn)行調(diào)節(jié)。
[0058]具體地,在本申請(qǐng)實(shí)施例中可以按照下述公式對(duì)所述視頻接收方的畫面渲染幀率 進(jìn)行調(diào)節(jié):
[0059]
[0060]其中,INT為取整函數(shù),δ為調(diào)節(jié)后的畫面渲染幀率,N為每次渲染時(shí)的畫面幀數(shù),T 為渲染N幀畫面所需的時(shí)間,k為調(diào)節(jié)系數(shù)。
[0061] 需要說明的是,本申請(qǐng)實(shí)施例上述各個(gè)功能模塊的具體實(shí)現(xiàn)方式與步驟Sl至S4中 一致,這里便不再贅述。
[0062] 由上可見,本發(fā)明實(shí)施例提供的視頻畫面的繪制裝置,僅設(shè)置一個(gè) GLSurfaceView,同時(shí)在該GLSurfaceView下生成對(duì)應(yīng)的兩個(gè)植染器。其中一個(gè)植染器用來 渲染視頻通話發(fā)起方的畫面,另一個(gè)渲染器則用來渲染視頻通話接收方的畫面。通過預(yù)先 設(shè)置的視頻通話發(fā)起方的畫面位置和畫面尺寸以及視頻接收方的畫面位置和畫面尺寸,從 而可以限定渲染得到的畫面的位置和尺寸。這樣,通過一個(gè)GLSurfaceView便可以實(shí)現(xiàn)視頻 通話雙方畫面的繪制過程,節(jié)省了手機(jī)的資源。進(jìn)一步地,通過對(duì)視頻通話過程中的網(wǎng)絡(luò)狀 態(tài)進(jìn)行監(jiān)測,從而可以根據(jù)實(shí)際的網(wǎng)絡(luò)狀態(tài),對(duì)分辨率或者幀率進(jìn)行調(diào)節(jié),以保證視頻通話 的順暢。此外,通過監(jiān)測手機(jī)觸摸屏上的觸控指令,從而可以根據(jù)觸控指令對(duì)視頻通話雙方 的畫面位置進(jìn)行調(diào)節(jié),保證了視頻通話過程的便捷性。
[0063] 在本說明書中,諸如第一和第二這樣的形容詞僅可以用于將一個(gè)元素或動(dòng)作與另 一元素或動(dòng)作進(jìn)行區(qū)分,而不必要求或暗示任何實(shí)際的這種關(guān)系或順序。在環(huán)境允許的情 況下,參照元素或部件或步驟(等)不應(yīng)解釋為局限于僅元素、部件、或步驟中的一個(gè),而可 以是元素、部件、或步驟中的一個(gè)或多個(gè)等。
[0064] 本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部 分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí) 施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例 的部分說明即可。
[0065] 本申請(qǐng)可用于眾多通用或?qū)S玫挠?jì)算機(jī)系統(tǒng)環(huán)境或配置中。例如:個(gè)人計(jì)算機(jī)、月艮 務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置 頂盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備 的分布式計(jì)算環(huán)境等等。
[0066]最后應(yīng)說明的是:上面對(duì)本申請(qǐng)的各種實(shí)施方式的描述以描述的目的提供給本領(lǐng) 域技術(shù)人員。其不旨在是窮舉的、或者不旨在將本發(fā)明限制于單個(gè)公開的實(shí)施方式。如上所 述,本申請(qǐng)的各種替代和變化對(duì)于上述技術(shù)所屬領(lǐng)域技術(shù)人員而言將是顯而易見的。因此, 雖然已經(jīng)具體討論了一些另選的實(shí)施方式,但是其它實(shí)施方式將是顯而易見的,或者本領(lǐng) 域技術(shù)人員相對(duì)容易得出。本申請(qǐng)旨在包括在此已經(jīng)討論過的本發(fā)明的所有替代、修改、和 變化,以及落在上述申請(qǐng)的精神和范圍內(nèi)的其它實(shí)施方式。
【主權(quán)項(xiàng)】
1. 一種視頻畫面的繪制方法,其特征在于,包括: 創(chuàng)建化如rfaceViewW及與所述化如rfaceView相對(duì)應(yīng)的第一擅染器和第二擅染器; 為所述第一擅染器配置第一擅染參數(shù),所述第一擅染參數(shù)至少包括視頻發(fā)起方的畫面 位置和畫面尺寸; 為所述第二擅染器配置第二擅染參數(shù),所述第二擅染參數(shù)至少包括視頻接收方的畫面 位置和畫面尺寸; 當(dāng)視頻通話建立時(shí),所述第一擅染器和所述第二擅染器分別根據(jù)所述第一擅染參數(shù)和 所述第二擅染參數(shù),對(duì)接收的每一帖圖片進(jìn)行繪制。2. 根據(jù)權(quán)利要求1所述的視頻畫面的繪制方法,其特征在于,所述第一擅染器為本地擅 染器,所述第二擅染器為遠(yuǎn)程擅染器。3. 根據(jù)權(quán)利要求1所述的視頻畫面的繪制方法,其特征在于,當(dāng)視頻通話建立時(shí),所述 第一擅染器和所述第二擅染器分別根據(jù)所述第一擅染參數(shù)和所述第二擅染參數(shù),對(duì)接收的 每一帖圖片進(jìn)行繪制具體包括: 當(dāng)視頻通話建立時(shí),根據(jù)視頻接收方的畫面位置和畫面尺寸對(duì)所述第二擅染器接收的 每一帖圖片進(jìn)行繪制,得到第二圖片流; 根據(jù)視頻發(fā)起方的畫面位置和畫面尺寸對(duì)所述第一擅染器接收的每一帖圖片進(jìn)行繪 審IJ,得到第一圖片流; 將所述第一圖片流加載于所述第二圖片流之上,構(gòu)成視頻畫面。4. 根據(jù)權(quán)利要求3所述的視頻畫面的繪制方法,其特征在于,在得到第二圖片流之后, 所述方法還包括: 監(jiān)測視頻發(fā)起方的網(wǎng)絡(luò)狀態(tài),當(dāng)所述網(wǎng)絡(luò)狀態(tài)滿足預(yù)設(shè)條件時(shí),將所述視頻接收方的 畫面分辨率調(diào)節(jié)為預(yù)設(shè)分辨率。5. 根據(jù)權(quán)利要求3所述的視頻畫面的繪制方法,其特征在于,在得到第二圖片流之后, 所述方法還包括: 監(jiān)測視頻發(fā)起方的網(wǎng)絡(luò)狀態(tài),當(dāng)所述網(wǎng)絡(luò)狀態(tài)滿足預(yù)設(shè)條件時(shí),將所述視頻接收方的 畫面擅染帖率按照預(yù)設(shè)規(guī)則進(jìn)行調(diào)節(jié)。6. 根據(jù)權(quán)利要求5所述的視頻畫面的繪制方法,其特征在于,按照下述公式對(duì)所述視頻 接收方的畫面擅染帖率進(jìn)行調(diào)1?:其中,INT為取整函數(shù),S為調(diào)節(jié)后的畫面擅染帖率,N為每次擅染時(shí)的畫面帖數(shù),T為擅 染N帖畫面所需的時(shí)間,k為調(diào)節(jié)系數(shù)。7. 根據(jù)權(quán)利要求3所述的視頻畫面的繪制方法,其特征在于,在將所述第一圖片流加載 于所述第二圖片流之上,構(gòu)成視頻畫面之后,所述方法還包括: 監(jiān)測所述視頻畫面上的觸控指令,并響應(yīng)于監(jiān)測到的觸控指令,將所述第一圖片流或 者第二圖片流的位置進(jìn)行移動(dòng)。8. -種視頻畫面的繪制裝置,其特征在于,包括: 擅染器創(chuàng)建單元,用于創(chuàng)建化Su計(jì)aceViewW及與所述化Su計(jì)aceView相對(duì)應(yīng)的第一擅 染器和第二擅染器; 第一擅染參數(shù)配置單元,用于為所述第一擅染器配置第一擅染參數(shù),所述第一擅染參 數(shù)至少包括視頻發(fā)起方的畫面位置和畫面尺寸. 第二擅染參數(shù)配置單元,用于為所述第二擅染器配置第二擅染參數(shù),所述第二擅染參 數(shù)至少包括視頻接收方的畫面位置和畫面尺寸. 繪制單元,用于當(dāng)視頻通話建立時(shí),所述第一擅染器和所述第二擅染器分別根據(jù)所述 第一擅染參數(shù)和所述第二擅染參數(shù),對(duì)接收的每一帖圖片進(jìn)行繪制。9. 根據(jù)權(quán)利要求8所述的視頻畫面的繪制裝置,其特征在于,所述繪制單元具體包括: 第二圖片流獲取模塊,用于當(dāng)視頻通話建立時(shí),根據(jù)視頻接收方的畫面位置和畫面尺 寸對(duì)所述第二擅染器接收的每一帖圖片進(jìn)行繪制,得到第二圖片流; 第一圖片流獲取模塊,用于根據(jù)視頻發(fā)起方的畫面位置和畫面尺寸對(duì)所述第一擅染器 接收的每一帖圖片進(jìn)行繪制,得到第一圖片流; 加載模塊,用于將所述第一圖片流加載于所述第二圖片流之上,構(gòu)成視頻畫面。10. 根據(jù)權(quán)利要求9所述的視頻畫面的繪制裝置,其特征在于,在所述加載模塊之后,所 述裝置還包括: 觸控指令監(jiān)測模塊,用于監(jiān)測所述視頻畫面上的觸控指令,并響應(yīng)于監(jiān)測到的觸控指 令,將所述第一圖片流或者第二圖片流的位置進(jìn)行移動(dòng)。
【文檔編號(hào)】H04N21/431GK105916052SQ201510934280
【公開日】2016年8月31日
【申請(qǐng)日】2015年12月15日
【發(fā)明人】成寧, 李英杰, 于水龍, 徐珣
【申請(qǐng)人】樂視致新電子科技(天津)有限公司