CN111093096A - 视频编码方法及装置、存储介质 - Google Patents

视频编码方法及装置、存储介质 Download PDF

Info

Publication number
CN111093096A
CN111093096A CN201911354790.2A CN201911354790A CN111093096A CN 111093096 A CN111093096 A CN 111093096A CN 201911354790 A CN201911354790 A CN 201911354790A CN 111093096 A CN111093096 A CN 111093096A
Authority
CN
China
Prior art keywords
data
video image
video
rgba
terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911354790.2A
Other languages
English (en)
Inventor
郭军
谢导
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Kugou Computer Technology Co Ltd
Original Assignee
Guangzhou Kugou Computer Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Kugou Computer Technology Co Ltd filed Critical Guangzhou Kugou Computer Technology Co Ltd
Priority to CN201911354790.2A priority Critical patent/CN111093096A/zh
Publication of CN111093096A publication Critical patent/CN111093096A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs

Abstract

本申请公开一种视频编码方法及装置、存储介质,属于计算机技术领域。该方法包括:获取视频图像的目标纹理数据;通过终端中的图形处理器根据该目标纹理数据,确定该视频图像的待编码数据,该待编码数据的数据格式与该终端中的视频编码器的采样格式匹配;通过该视频编码器对该待编码数据进行编码。本申请有助于提高终端的视频编码效率。

Description

视频编码方法及装置、存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种视频编码方法及装置、存储介质。
背景技术
视频直播系统通常包括主播终端和观众客户端,主播终端可以采集视频图像的视频数据,将视频数据编码后发送给观众客户端,使得观众终端能够显示视频图像。其中,主播终端采集到的视频数据通常为纹理(英文:texture)数据,主播终端编码的视频数据(本文中称为待编码数据)通常为YUV数据。
目前,主播终端采集到视频图像的纹理数据后,主播终端中的图形处理器(英文:Graphics Processing Unit;简称:GPU)从该纹理数据中确定RGBA(英文:Red Green BlueAlpha)数据,主播终端中的中央处理器(英文:CentralProcessing Unit;简称:CPU)将该RGBA数据转换为YUV数据,并对该YUV数据进行编码。
但是,CPU的处理速度较慢,因此CPU将RGBA数据转换为YUV数据的耗时较长,导致主播终端获取待编码数据的效率较低,视频编码效率较低。
发明内容
本申请提供一种视频编码方法及装置、存储介质,有助于提高获取待编码数据的效率,从而提高视频编码效率。本申请的技术方案如下:
第一方面,提供一种视频编码方法,所述方法包括:
获取视频图像的目标纹理数据;
通过终端中的图形处理器根据所述目标纹理数据,确定所述视频图像的待编码数据,所述待编码数据的数据格式与所述终端中的视频编码器的采样格式匹配;
通过所述视频编码器对所述待编码数据进行编码。
可选地,所述通过终端中的图形处理器根据所述目标纹理数据,确定所述视频图像的待编码数据,包括:
通过所述图形处理器从所述目标纹理数据中,确定所述视频图像的RGBA数据;
通过所述图形处理器将所述RGBA数据转换为YUV数据;
将所述YUV数据确定为所述视频图像的待编码数据。
可选地,所述通过所述图形处理器将所述RGBA数据转换为YUV数据,包括:通过所述图形处理器,采用着色器将所述RGBA数据转换为YUV数据。
可选地,在通过所述图形处理器从所述目标纹理数据中,确定所述视频图像的RGBA数据之后,所述方法还包括:通过所述图形处理器将所述RGBA数据存储至图形存储区;
在通过所述图形处理器将所述RGBA数据转换为YUV数据之前,所述方法还包括:通过所述图形处理器从所述图形存储区中获取所述RGBA数据。
可选地,所述图形存储区为开放式图形库(英文:Open Graphics Library;简称:OpenGL)存储区。
可选地,所述获取视频图像的目标纹理数据,包括:
获取所述视频图像的初始纹理数据;
根据所述初始纹理数据对所述视频图像进行预处理,得到预处理图像;
将所述预处理图像的纹理数据确定为所述视频图像的所述目标纹理数据。
可选地,所述待编码数据为YUV420p数据。
第二方面,提供一种视频编码装置,所述装置包括:
第一获取模块,用于获取视频图像的目标纹理数据;
确定模块,用于通过终端中的图形处理器根据所述目标纹理数据,确定所述视频图像的待编码数据,所述待编码数据的数据格式与所述终端中的视频编码器的采样格式匹配;
编码模块,用于通过所述视频编码器对所述待编码数据进行编码。
可选地,所述确定模块,用于:
通过所述图形处理器从所述目标纹理数据中,确定所述视频图像的RGBA数据;
通过所述图形处理器将所述RGBA数据转换为YUV数据;
将所述YUV数据确定为所述视频图像的待编码数据。
可选地,所述确定模块,用于通过所述图形处理器,采用着色器将所述RGBA数据转换为YUV数据。
可选地,所述装置还包括:
存储模块,用于在通过所述图形处理器从所述目标纹理数据中,确定所述视频图像的RGBA数据之后,通过所述图形处理器将所述RGBA数据存储至图形存储区;
第二获取模块,用于在通过所述图形处理器将所述RGBA数据转换为YUV数据之前,通过所述图形处理器从所述图形存储区中获取所述RGBA数据。
可选地,所述图形存储区为OpenGL存储区。
可选地,所述第一获取模块,用于:
获取所述视频图像的初始纹理数据;
根据所述初始纹理数据对所述视频图像进行预处理,得到预处理图像;
将所述预处理图像的纹理数据确定为所述视频图像的所述目标纹理数据。
可选地,所述待编码数据为YUV420p数据。
第三方面,提供一种视频编码装置,包括:处理器和存储器,
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器上所存储的计算机程序,实现第一方面或第一方面的任一可选方式所述的视频编码方法。
第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的程序由处理器执行时,能够实现第一方面或第一方面的任一可选方式所述的视频编码方法。
本申请提供的技术方案带来的有益效果是:
本申请提供的视频编码方法及装置、存储介质,终端获取视频图像的目标纹理数据后,通过终端中的图形处理器根据该目标纹理数据确定该视频图像的待编码数据,通过终端中的视频编码器对该待编码数据进行编码,该待编码数据的数据格式与该视频编码器的采样格式匹配。由于终端通过图形处理器根据视频图像的目标纹理数据确定该视频图像的待编码数据(也即是终端中的图形处理器根据视频图像的目标纹理数据确定该视频图像的待编码数据),图形处理器的处理速度较快,使得终端获取待编码数据的耗时较短,效率较高,有助于终端提高视频编码效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种视频编码方法的方法流程图;
图2是本申请实施例提供的另一种视频编码方法的方法流程图;
图3是本申请实施例提供的一种视频编码装置的框图;
图4是本申请实施例提供的另一种视频编码装置的框图;
图5是本申请实施例提供的一种视频编码装置的结构示意图。
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
具体实施方式
为了使本申请的原理、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在视频直播过程中,为了提高直播视频的画面美观性,主播终端通常基于视频数据对视频图像进行美颜、贴图(例如在视频图像中主播用户的人脸鼻翼所在位置贴附猫咪胡须)等特效处理,对特效处理后的视频数据进行编码后发送给观众客户端,使得观众终端能够显示特效处理后的视频图像。其中,主播终端通常使用GPU或专用芯片,在开放式图形库(英文:Open Graphics Library;简称:OpenGL)环境中基于视频数据对视频图像进行特效处理。主播终端采集到的视频数据以及特效处理后的视频数据通常为纹理(英文:texture)数据,
视频数据的编码方式通常包括硬编码和软编码。在硬编码中,主播终端根据硬编码的表面(英文:surface)数据对视频图像的纹理数据(例如特效处理后的视频数据)进行编码,也即是主播终端直接将视频图像的纹理数据贴到硬编码的表面数据中。但是硬编码的可调参数较少,编码精度较低,导致硬编码之后的视频图像的画面品质较差。在软编码中,主播终端中的GPU在OpenGL环境中从视频图像的纹理数据中拷贝(也即是读取)RGBA数据,主播终端中的CPU将该RGBA数据转换为YUV数据,并对该YUV数据进行编码。软编码之后的视频图像的画面品质较好,但是,软编码需要CPU将RGBA数据转换为YUV数据,CPU的处理速度较慢,导致CPU将RGBA数据转换为YUV数据的耗时较长,并且软编码本身耗时较长,这导致软编码在视频直播中难以实现。
鉴于此,本申请实施例提供一种视频编码方案,在该视频编码方案中,由GPU将根据视频图像的纹理数据确定待编码数据(GPU从纹理数据中确定RGBA数据,将RGBA数据转换为YUV数据),GPU的处理速度较快,使得终端获取待编码数据的耗时较短,效率较高,有助于终端提高视频编码效率,使得软编码在视频直播中易于实现。
本申请实施例提供的视频编码方法可以由终端执行,该终端可以是智能手机、平板电脑、智能电视、智能手表、动态影像专家压缩标准音频层面5(英文:Moving PictureExperts Group Audio Layer V;简称:MP5)播放器、膝上型便携计算机或台式计算机等等。可选地,该终端中可以安装有视频客户端,由该视频客户端进行视频编码,该视频客户端可以是直播客户端、视频录制客户端、视频编辑客户端等具备视频编码功能的客户端。在一些实施场景中,客户端又称为应用程序(英文:Application;简称:APP),本申请实施例对此不做限定。
请参考图1,其示出本申请实施例提供的一种视频编码方法的方法流程图,该视频编码方法可以由终端执行。参见图1,该方法可以包括如下步骤:
步骤101、获取视频图像的目标纹理数据。
步骤102、通过终端中的图形处理器根据该目标纹理数据,确定该视频图像的待编码数据,该待编码数据的数据格式与该终端中的视频编码器的采样格式匹配。
步骤103、通过该视频编码器对该待编码数据进行编码。
综上所述,本申请实施例提供的视频编码方法,由于终端通过图形处理器根据视频图像的目标纹理数据确定该视频图像的待编码数据,图形处理器的处理速度较快,使得终端获取待编码数据的耗时较短,效率较高,有助于终端提高视频编码效率。
可选地,步骤102包括:
通过图形处理器从目标纹理数据中,确定视频图像的RGBA数据;
通过该图形处理器将该RGBA数据转换为YUV数据;
将该YUV数据确定为该视频图像的待编码数据。
可选地,通过该图形处理器将该RGBA数据转换为YUV数据,包括:通过该图形处理器,采用着色器将该RGBA数据转换为YUV数据。
可选地,在通过图形处理器从目标纹理数据中,确定视频图像的RGBA数据之后,该方法还包括:将该RGBA数据存储至图形存储区;
在通过该图形处理器将该RGBA数据转换为YUV数据之前,该方法还包括:通过该图形处理器从该图形存储区中获取该RGBA数据。
可选地,该图形存储区为OpenGL存储区。
可选地,步骤101包括:
通过终端的摄像组件获取视频图像的初始纹理数据;
根据该初始纹理数据对该视频图像进行预处理,得到预处理图像;
将该预处理图像的纹理数据确定为该视频图像的该目标纹理数据。
可选地,该待编码数据为YUV420p数据。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
请参考图2,其示出了本申请实施例提供的另一种视频编码方法的方法流程图,该视频编码方法可以由终端执行。参见图2,该方法可以包括如下步骤:
步骤201、获取视频图像的初始纹理数据。
可选地,终端可以具有摄像组件,摄像组件可以是摄像头等具备拍摄功能的组件,终端可以通过摄像组件获取视频图像的初始纹理数据。其中,该视频图像可以是视频直播过程中的任意一帧图像,该视频图像的初始纹理数据也即是该视频图像的视频数据,该初始纹理数据的数据格式可以为纹理格式。
可选地,在该步骤201之前,终端可以设置摄像组件的数据输出格式为纹理格式,以使得终端能够通过摄像组件获取视频图像的初始纹理数据。可选地,终端可以提供摄像组件的格式设置入口,用户可以通过该格式设置入口触发终端设置摄像组件的数据输出格式为纹理格式。
步骤202、根据该初始纹理数据对该视频图像进行预处理,得到预处理图像。
可选地,终端可以创建OpenGL环境,在OpenGL环境中根据该初始纹理数据对该视频图像进行预处理。其中,该预处理可以包括旋转处理或特效处理中的至少一种。
可选地,该初始纹理数据对应的该视频图像通常存在一定角度旋转(例如90度或270度),终端可以在OpenGL环境中,根据该初始纹理数据对该视频图像进行旋转处理,以将视频图像摆正。
可选地,终端可以在OpenGL环境中,从该初始纹理数据中确定该视频图像的初始RGBA数据,根据该初始RGBA数据从该视频图像中确定至少一个目标特征点,根据该至少一个目标特征点和该初始纹理数据对该视频图像进行特效处理。其中,该目标特征点可以是人脸特征点,该特效处理可以包括美颜处理或贴图处理中的至少一种。可选地,该特效处理还可以是其他特效处理,例如人脸整形处理,本申请实施例对此不做限定。
步骤203、将该预处理图像的纹理数据确定为该视频图像的目标纹理数据。
终端对视频图像进行预处理后,可以将预处理图像的纹理数据确定为该视频图像的目标纹理数据。容易理解,该目标纹理数据可以位于OpenGL环境中,该目标纹理数据的数据格式可以为纹理格式。
需要说明的是,该步骤201至步骤203为终端获取视频图像的目标纹理数据的过程,该步骤201至步骤203可以对应于图1所示实施例的步骤101。
步骤204、通过终端中的图形处理器从该目标纹理数据中,确定该视频图像的RGBA数据。
可选地,目标纹理数据可以位于OpenGL环境中,OpenGL可以提供数据读取接口,终端的图形处理器可以调用该数据读取接口,从OpenGL环境中的该目标纹理数据中读取(或者拷贝)该视频图像的RGBA数据。其中,该数据读取接口可以是glReadPixels(gl读像素)应用程序接口(英文:Application Programming Interface;简称:API)。
示例地,假设视频图像为4*8的图像(也即是视频图像包括4*8个像素),则该视频图像的RGBA数据可以如下表1所示:
表1
R1 G1 B1 A1 R2 G2 B2 A2 R3 G3 B3 A3 R4 G4 B4 A4
R5 G5 B5 A5 R6 G6 B6 A6 R7 G7 B7 A7 R8 G8 B8 A8
R9 G9 B9 A9 R10 G10 B10 A10 R11 G11 B11 A11 R12 G12 B12 A12
R13 G13 B13 A13 R14 G14 B14 A14 R15 G15 B15 A15 R16 G16 B16 A16
R17 G17 B17 A17 R18 G18 B18 A18 R19 G19 B19 A19 R20 G20 B20 A20
R21 G21 B21 A21 R22 G22 B22 A22 R23 G23 B23 A23 R24 G24 B24 A24
R25 G25 B25 A25 R26 G26 B26 A26 R27 G27 B27 A27 R28 G28 B28 A28
R29 G29 B29 A29 R30 G30 B30 A30 R31 G31 B31 A31 R32 G32 B32 A32
如表1所示,R1、G1、B1和A1表示像素1的RGBA数据,其中,R1表示像素1的红色分量值,G1表示像素1的绿色分量值、B1表示像素1的蓝色分量值,A1表示像素1的透明度;R2、G2、B2和A2表示像素2的RGBA数据,其中,R2表示像素2的红色分量值,G2表示像素2的绿色分量值、B2表示像素2的蓝色分量值,A2表示像素2的透明度;R3、G3、B3和A3表示像素3的RGBA数据,其中,R3表示像素3的红色分量值,G3表示像素3的绿色分量值、B3表示像素3的蓝色分量值,A3表示像素3的透明度;依次类推。由表1可以看出,该视频图像为4*8的图像,该视频图像包括8行4列像素,每行包括4个像素,每列包括8个像素。
步骤205、通过该图形处理器将该RGBA数据存储至图形存储区。
可选地,该图形存储区为OpenGL存储区,终端可以通过终端中的图形处理器将RGBA数据写入该OpenGL存储区,以将该RGBA数据存储至OpenGL存储区。示例地,终端将表1所示的RGBA数据存储至OpenGL存储区。
容易理解,终端在将RGBA数据存储至OpenGL存储区之前,可以先创建该OpenGL存储区,本申请实施例对此不做限定。
步骤205、通过该图形处理器从该图形存储区中获取该RGBA数据。
可选地,该图形存储区可以为OpenGL存储区,终端可以通过图形处理器从OpenGL存储区中读取RGBA数据,以从该OpenGL存储区中获取该RGBA数据。
步骤207、通过该图形处理器将该RGBA数据转换为YUV数据。
可选地,终端可以通过图形处理器,采用着色器(英文:shader)将该RGBA数据转换为YUV数据。也即是,终端的图形处理器采用着色器将该RGBA数据转换为YUV数据。可选地,该图形处理器可以采用着色器,使用转换公式将RGBA数据转换为YUV数据。其中,该转换公式可以如下所示:
Y=0.299×R+0.587×G+0.114×B;
U=-0.1687×R-0.3313×G+0.5×B+128;
V=0.5×R-0.4187×G-0.0813×B+12;
其中,Y表示像素的亮度分量值,U表示像素的蓝色色度分量值,V表示像素的红色色度分量值。终端可以将每个像素的RGBA数据中的红色分量值(也即是R值)、绿色分量值(也即是G值)和蓝色分量值(也即是B值)分别代入上述公式进行计算,得到每个像素的YUV数据,从而得到视频图像的YUV数据,其中,每个像素的YUV数据包括该像素的亮度分量值(Y值)、蓝色色度分量值(U值)和红色色度分量值(V值)。
可选地,上述YUV数据可以为YUV420数据、YUV444数据、YUV422数据或YUV411数据中的任意一种,终端通过图形处理器将RGBA数据转换为YUV数据后,可以按照终端中的视频编码器的采样格式排列该YUV数据,使该YUV数据的排列方式与该视频编码器的采样格式匹配,便于视频编码器对该YUV数据进行采样。本申请实施例以该YUV数据为YUV420p数据为例,则终端对上述表1所示的RGBA数据进行转换得到的YUV数据可以如下表2所示:
表2
Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Y11 Y12 Y13 Y14 Y15 Y16
Y17 Y18 Y19 Y20 Y21 Y22 Y23 Y24 Y25 Y26 Y27 Y28 Y29 Y30 Y31 Y32
U1 U2 U3 U4 U5 U6 U7 U8 V1 V2 V3 V4 V5 V6 V7 V8
如表2所示,Y1、U1和V1表示像素1的YUV数据,其中,Y1表示像素1的亮度分量值,U1表示像素1的蓝色色度分量值、V1表示像素1的红色色度分量值;Y2、U1和V1表示像素2的YUV数据,其中,Y2表示像素2的亮度分量值,U1表示像素2的蓝色色度分量值、V1表示像素2的红色色度分量值;Y3、U1和V1表示像素3的YUV数据,其中,Y3表示像素3的亮度分量值,U1表示像素3的蓝色色度分量值、V1表示像素3的红色色度分量值;Y4、U1和V1表示像素4的YUV数据,其中,Y4表示像素4的亮度分量值,U1表示像素4的蓝色色度分量值、V1表示像素4的红色色度分量值;依次类推。可见,在YUV420数据中,每4个像素具有4个亮度分量值,2个色度分量值(包括蓝色色度分量值和红色色度分量值)。
步骤208、将该YUV数据确定为该视频图像的待编码数据。
终端获取到视频图像的YUV数据后,可以将该视频图像的YUV数据确定为该视频图像的待编码数据。根据前述容易理解,在本申请实施例中,该待编码数据的数据格式与该终端中的视频编码器的采样格式匹配。
可选地,该待编码数据为YUV420p数据,该视频编码器的采样格式可以为4:2:0。示例地,终端将表2所示的YUV420p数据确定为视频图像的待编码数据。
需要说明的是,上述步骤204至步骤208为终端通过终端中的图形处理器根据目标纹理数据确定该视频图像的待编码数据的过程,该步骤204至步骤208可以对应于图1所示实施例的步骤102。
步骤209、通过视频编码器对该待编码数据进行编码。
终端获取到视频图像的待编码数据后,可以通过终端中的视频编码器对该待编码数据进行编码,如前所述,该视频编码器的数据格式与该视频编码器的采样格式匹配。
可选地,视频编码器可以根据视频编码器的采样格式,对该待编码数据进行采样,并对采样数据进行编码,以对该待编码数据进行编码。
需要说明的是,对于同一视频图像,YUV数据的数据量通常小于RGBA数据的数据量,对比表1和表2,对于同一视频图像YUV420p数据的数据量可以是RGBA数据的数据量的3/8(八分之三)。因此将YUV数据确定为待编码数据并进行编码,可以降低视频编码器的编码压力,缩短编码耗时,从而提高视频编码效率。
还需要说明的是,在视频直播场景中,执行本申请实施例提供的视频编码方法的终端可以是主播终端,主播终端在对待编码数据进行编码后可以得到编码数据,主播终端可以向观众终端发送编码数据,使得观众终端能够根据编码数据显示视频图像,在本申请实施例中,观众终端显示的视频图像可以是预处理后的视频图像,例如是经过特效处理的视频图像,本申请实施例对此不做限定。
综上所述,本申请实施例提供的视频编码方法,由于终端通过图形处理器根据视频图像的目标纹理数据确定该视频图像的待编码数据,图形处理器的处理速度较快,使得终端获取待编码数据的耗时较短,效率较高,有助于终端提高视频编码效率。
本申请实施例提供的视频编码方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图3,其示出了本申请实施例提供的一种视频编码装置300的框图,该视频编码装置300可以为终端中的程序组件。参见图3,该视频编码装置300可以包括但不限于:
第一获取模块310,用于获取视频图像的目标纹理数据;
确定模块320,用于通过终端中的图形处理器根据该目标纹理数据,确定该视频图像的待编码数据,该待编码数据的数据格式与该终端中的视频编码器的采样格式匹配;
编码模块330,用于通过该视频编码器对该待编码数据进行编码。
综上所述,本申请实施例提供的视频编码装置,由于终端通过图形处理器根据视频图像的目标纹理数据确定该视频图像的待编码数据,图形处理器的处理速度较快,使得终端获取待编码数据的耗时较短,效率较高,有助于终端提高视频编码效率。
可选地,确定模块320,用于:
通过图形处理器从目标纹理数据中,确定视频图像的RGBA数据;
通过图形处理器将该RGBA数据转换为YUV数据;
将该YUV数据确定为该视频图像的待编码数据。
可选地,确定模块320,用于通过图形处理器,采用着色器将该RGBA数据转换为YUV数据。
可选地,请参考图4,其示出了本申请实施例提供的另一种视频编码装置300的框图,参见图4,在图3的基础上,该视频编码装置300还可以包括:
存储模块340,用于在通过图形处理器从目标纹理数据中,确定视频图像的RGBA数据之后,通过该图形处理器将该RGBA数据存储至图形存储区;
第二获取模块350,用于在通过图形处理器将RGBA数据转换为YUV数据之前,通过该图形处理器从该图形存储区中获取RGBA数据。
可选地,该图形存储区为OpenGL存储区。
可选地,第一获取模块310,用于:
获取视频图像的初始纹理数据;
根据该初始纹理数据对该视频图像进行预处理,得到预处理图像;
将该预处理图像的纹理数据确定为该视频图像的目标纹理数据。
可选地,待编码数据为YUV420p数据。
综上所述,本申请实施例提供的视频编码装置,由于终端通过图形处理器根据视频图像的目标纹理数据确定该视频图像的待编码数据,图形处理器的处理速度较快,使得终端获取待编码数据的耗时较短,效率较高,有助于终端提高视频编码效率。
本申请实施例提供了一种视频编码装置,包括:处理器和存储器,
该存储器,用于存储计算机程序。
该处理器,用于执行该存储器上所存储的计算机程序,实现上述实施例提供的视频编码方法。
请参考图5,其示出了本申请实施例提供的一种视频编码装置500的结构示意图。该装置500可以是终端,比如:智能手机、平板电脑、动态影像专家压缩标准音频层面4(英文:Moving Picture Experts Group Audio Layer IV;简称:MP4)播放器、笔记本电脑或台式电脑。装置500还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,装置500包括有:处理器501和存储器502。
处理器501可以包括一个或多个处理核心,比如4核心处理器、5核心处理器等。处理器501可以采用数字信号处理(英文:Digital Signal Processing;简称:DSP)、现场可编程门阵列(英文:Field-Programmable Gate Array;简称:FPGA)、可编程逻辑阵列(英文:Programmable Logic Array;简称:PLA)中的至少一种硬件形式来实现。处理器501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(英文:Central Processing Unit;简称:CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器501可以在集成有图像处理器(英文:Graphics Processing Unit;简称:GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器501还可以包括人工智能(英文:ArtificialIntelligence;简称:AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器501所执行以实现本申请实施例提供的视频编码方法。
在一些实施例中,装置500还可选包括有:外围设备接口503和至少一个外围设备。处理器501、存储器502和外围设备接口503之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口503相连。具体地,外围设备包括:射频电路504、显示屏505、摄像头组件506、音频电路507、定位组件508或电源509中的至少一种。
外围设备接口503可被用于将输入/输出(英文:Input/Output;简称:I/O)相关的至少一个外围设备连接到处理器501和存储器502。在一些实施例中,处理器501、存储器502和外围设备接口503被集成在同一芯片或电路板上;在一些其他实施例中,处理器501、存储器502和外围设备接口503中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路504用于接收和发射射频(英文:Radio Frequency;简称:RF)信号,也称电磁信号。射频电路504通过电磁信号与通信网络以及其他通信设备进行通信。射频电路504将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路504包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路504可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或无线保真(英文:Wireless Fidelity;简称:WiFi)网络。在一些实施例中,射频电路504还可以包括近距离无线通信(英文:Near FieldCommunication;简称:NFC)有关的电路,本申请对此不加以限定。
显示屏505用于显示用户界面(英文:User Interface;简称:UI)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏505是触摸显示屏时,显示屏505还具有采集在显示屏505的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器501进行处理。此时,显示屏505还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏505可以为一个,设置装置500的前面板;在另一些实施例中,显示屏505可以为至少两个,分别设置在装置500的不同表面或呈折叠设计;在再一些实施例中,显示屏505可以是柔性显示屏,设置在装置500的弯曲表面上或折叠面上。甚至,显示屏505还可以设置成非矩形的不规则图形,也即异形屏。显示屏505可以为有机发光二极管(英文:Organic Light-EmittingDiode;简称:OLED)显示屏。
摄像头组件506用于采集图像或视频。可选地,摄像头组件506包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及虚拟现实(英文:Virtual Reality;简称:VR)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件506还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路507可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器501进行处理,或者输入至射频电路504以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在装置500的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器501或射频电路504的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路507还可以包括耳机插孔。
定位组件508用于定位装置500的当前地理位置,以实现导航或基于位置的服务(英文:Location Based Service;简称:LBS)。定位组件508可以是基于美国的全球定位系统(英文:Global Positioning System;简称:GPS)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源509用于为装置500中的各个组件进行供电。电源509可以是交流电、直流电、一次性电池或可充电电池。当电源509包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,装置500还包括有一个或多个传感器510。该一个或多个传感器510包括但不限于:加速度传感器511、陀螺仪传感器512、压力传感器513、指纹传感器514、光学传感器515以及接近传感器516。
加速度传感器511可以检测以装置500建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器511可以用于检测重力加速度在三个坐标轴上的分量。处理器501可以根据加速度传感器511采集的重力加速度信号,控制触摸显示屏505以横向视图或纵向视图进行用户界面的显示。加速度传感器511还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器512可以检测装置500的机体方向及转动角度,陀螺仪传感器512可以与加速度传感器511协同采集用户对装置500的3D动作。处理器501根据陀螺仪传感器512采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器513可以设置在装置500的侧边框和/或触摸显示屏505的下层。当压力传感器513设置在装置500的侧边框时,可以检测用户对装置500的握持信号,由处理器501根据压力传感器513采集的握持信号进行左右手识别或快捷操作。当压力传感器513设置在触摸显示屏505的下层时,由处理器501根据用户对触摸显示屏505的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器514用于采集用户的指纹,由处理器501根据指纹传感器514采集到的指纹识别用户的身份,或者,由指纹传感器514根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器501授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器514可以被设置装置500的正面、背面或侧面。当装置500上设置有物理按键或厂商Logo时,指纹传感器514可以与物理按键或厂商Logo集成在一起。
光学传感器515用于采集环境光强度。在一个实施例中,处理器501可以根据光学传感器515采集的环境光强度,控制触摸显示屏505的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏505的显示亮度;当环境光强度较低时,调低触摸显示屏505的显示亮度。在另一个实施例中,处理器501还可以根据光学传感器515采集的环境光强度,动态调整摄像头组件506的拍摄参数。
接近传感器516,也称距离传感器,通常设置在装置500的前面板。接近传感器516用于采集用户与装置500的正面之间的距离。在一个实施例中,当接近传感器516检测到用户与装置500的正面之间的距离逐渐变小时,由处理器501控制触摸显示屏505从亮屏状态切换为息屏状态;当接近传感器516检测到用户与装置500的正面之间的距离逐渐变大时,由处理器501控制触摸显示屏505从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图5中示出的结构并不构成对装置500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例提供了一种计算机可读存储介质,当该计算机可读存储介质中的程序由处理器执行时,能够实现上述实施例提供的视频编码方法。该计算机可读存储介质可以是非暂态的。例如,该计算机可读存储介质可以是只读存储器(英文:Read-Only Memory;简称:ROM)、随机存取存储器(英文:Random Access Memory;简称:RAM)、紧凑型光盘只读储存器(英文:Compact Disc Read-Only Memory;简称:CD-ROM)、磁带、软盘和光数据存储设备等。
本申请中术语“A或B的至少一种”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A或B的至少一种,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。同理,“A、B或C的至少一种”表示可以存在七种关系,可以表示:单独存在A,单独存在B,单独存在C,同时存在A和B,同时存在A和C,同时存在C和B,同时存在A、B和C这七种情况。同理,“A、B、C或D的至少一种”表示可以存在十五种关系,可以表示:单独存在A,单独存在B,单独存在C,单独存在D,同时存在A和B,同时存在A和C,同时存在A和D,同时存在C和B,同时存在D和B,同时存在C和D,同时存在A、B和C,同时存在A、B和D,同时存在A、C和D,同时存在B、C和D,同时存在A、B、C和D,这十五种情况。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。术语“第一”、“第二”、“第三”和“第四”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非另有明确的限定。术语“至少一种”表示一种或多种,多种表示两种或两种以上。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种视频编码方法,其特征在于,所述方法包括:
获取视频图像的目标纹理数据;
通过终端中的图形处理器根据所述目标纹理数据,确定所述视频图像的待编码数据,所述待编码数据的数据格式与所述终端中的视频编码器的采样格式匹配;
通过所述视频编码器对所述待编码数据进行编码。
2.根据权利要求1所述的方法,其特征在于,
所述通过终端中的图形处理器根据所述目标纹理数据,确定所述视频图像的待编码数据,包括:
通过所述图形处理器从所述目标纹理数据中,确定所述视频图像的RGBA数据;
通过所述图形处理器将所述RGBA数据转换为YUV数据;
将所述YUV数据确定为所述视频图像的待编码数据。
3.根据权利要求2所述的方法,其特征在于,
所述通过所述图形处理器将所述RGBA数据转换为YUV数据,包括:
通过所述图形处理器,采用着色器将所述RGBA数据转换为YUV数据。
4.根据权利要求1所述的方法,其特征在于,
在通过所述图形处理器从所述目标纹理数据中,确定所述视频图像的RGBA数据之后,所述方法还包括:
通过所述图形处理器将所述RGBA数据存储至图形存储区;
在通过所述图形处理器将所述RGBA数据转换为YUV数据之前,所述方法还包括:
通过所述图形处理器从所述图形存储区中获取所述RGBA数据。
5.根据权利要求1至4任一所述的方法,其特征在于,
所述获取视频图像的目标纹理数据,包括:
获取所述视频图像的初始纹理数据;
根据所述初始纹理数据对所述视频图像进行预处理,得到预处理图像;
将所述预处理图像的纹理数据确定为所述视频图像的所述目标纹理数据。
6.一种视频编码装置,其特征在于,所述装置包括:
第一获取模块,用于获取视频图像的目标纹理数据;
确定模块,用于通过终端中的图形处理器根据所述目标纹理数据,确定所述视频图像的待编码数据,所述待编码数据的数据格式与所述终端中的视频编码器的采样格式匹配;
编码模块,用于通过所述视频编码器对所述待编码数据进行编码。
7.根据权利要求5所述的装置,其特征在于,所述确定模块,用于:
通过所述图形处理器从所述目标纹理数据中,确定所述视频图像的RGBA数据;
通过所述图形处理器将所述RGBA数据转换为YUV数据;
将所述YUV数据确定为所述视频图像的待编码数据。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
存储模块,用于在通过所述图形处理器从所述目标纹理数据中,确定所述视频图像的RGBA数据之后,通过所述图形处理器将所述RGBA数据存储至图形存储区;
第二获取模块,用于在通过所述图形处理器将所述RGBA数据转换为YUV数据之前,通过所述图形处理器从所述图形存储区中获取所述RGBA数据。
9.一种视频编码装置,其特征在于,包括:处理器和存储器,
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器上所存储的计算机程序,实现权利要求1至5任一所述的视频编码方法。
10.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的程序由处理器执行时,能够实现权利要求1至5任一所述的视频编码方法。
CN201911354790.2A 2019-12-25 2019-12-25 视频编码方法及装置、存储介质 Pending CN111093096A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911354790.2A CN111093096A (zh) 2019-12-25 2019-12-25 视频编码方法及装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911354790.2A CN111093096A (zh) 2019-12-25 2019-12-25 视频编码方法及装置、存储介质

Publications (1)

Publication Number Publication Date
CN111093096A true CN111093096A (zh) 2020-05-01

Family

ID=70397165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911354790.2A Pending CN111093096A (zh) 2019-12-25 2019-12-25 视频编码方法及装置、存储介质

Country Status (1)

Country Link
CN (1) CN111093096A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115225881A (zh) * 2021-04-19 2022-10-21 广州视源电子科技股份有限公司 一种数据传输方法、装置、设备和存储介质
WO2022257750A1 (zh) * 2021-06-11 2022-12-15 腾讯科技(深圳)有限公司 图像处理方法、装置、电子设备、程序及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160042550A1 (en) * 2014-08-05 2016-02-11 Qualcomm Incorporated High order filtering in a graphics processing unit
CN106127673A (zh) * 2016-07-19 2016-11-16 腾讯科技(深圳)有限公司 一种视频处理方法、装置及计算机设备
CN108154539A (zh) * 2017-12-18 2018-06-12 北京酷我科技有限公司 一种基于Opengl ES的颜色空间数据转化算法
CN108322722A (zh) * 2018-01-24 2018-07-24 阿里巴巴集团控股有限公司 基于增强现实的图像处理方法、装置及电子设备
CN108711191A (zh) * 2018-05-29 2018-10-26 北京奇艺世纪科技有限公司 一种视频处理方法和vr设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160042550A1 (en) * 2014-08-05 2016-02-11 Qualcomm Incorporated High order filtering in a graphics processing unit
CN106127673A (zh) * 2016-07-19 2016-11-16 腾讯科技(深圳)有限公司 一种视频处理方法、装置及计算机设备
CN108154539A (zh) * 2017-12-18 2018-06-12 北京酷我科技有限公司 一种基于Opengl ES的颜色空间数据转化算法
CN108322722A (zh) * 2018-01-24 2018-07-24 阿里巴巴集团控股有限公司 基于增强现实的图像处理方法、装置及电子设备
CN108711191A (zh) * 2018-05-29 2018-10-26 北京奇艺世纪科技有限公司 一种视频处理方法和vr设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115225881A (zh) * 2021-04-19 2022-10-21 广州视源电子科技股份有限公司 一种数据传输方法、装置、设备和存储介质
WO2022257750A1 (zh) * 2021-06-11 2022-12-15 腾讯科技(深圳)有限公司 图像处理方法、装置、电子设备、程序及可读存储介质

Similar Documents

Publication Publication Date Title
CN110502954B (zh) 视频分析的方法和装置
WO2020192458A1 (zh) 一种图像处理的方法及头戴式显示设备
CN111372126B (zh) 视频播放方法、装置及存储介质
CN111476911A (zh) 虚拟影像实现方法、装置、存储介质与终端设备
CN111028144B (zh) 视频换脸方法及装置、存储介质
CN108769738B (zh) 视频处理方法、装置、计算机设备和存储介质
CN110996117B (zh) 视频转码方法、装置、电子设备和存储介质
CN111447389B (zh) 视频生成方法、装置、终端及存储介质
CN109451248B (zh) 视频数据的处理方法、装置、终端及存储介质
CN111935542A (zh) 视频处理方法、视频播放方法、装置、设备及存储介质
CN110839174A (zh) 图像处理的方法、装置、计算机设备以及存储介质
CN110662105A (zh) 动画文件的生成方法、装置及存储介质
CN111010588B (zh) 直播处理方法、装置、存储介质及设备
CN113384880A (zh) 虚拟场景显示方法、装置、计算机设备及存储介质
CN109819314B (zh) 音视频处理方法、装置、终端及存储介质
CN111093096A (zh) 视频编码方法及装置、存储介质
CN111586413A (zh) 视频调整方法、装置、计算机设备及存储介质
CN111083554A (zh) 直播礼物显示的方法和装置
WO2022033272A1 (zh) 图像处理方法以及电子设备
CN108492339B (zh) 获取资源压缩包的方法、装置、电子设备及存储介质
CN111478915B (zh) 直播数据的推流方法、装置、终端及存储介质
CN111050211B (zh) 视频处理方法、装置及存储介质
CN112235650A (zh) 视频处理方法、装置、终端及存储介质
CN111901679A (zh) 封面图像的确定方法、装置、计算机设备及可读存储介质
CN112419143A (zh) 图像处理方法、特效参数设置方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20200501

RJ01 Rejection of invention patent application after publication