视频编码方法、装置、计算机设备及存储介质与流程

文档序号:24347328发布日期:2021-03-19 12:31阅读:86来源:国知局
视频编码方法、装置、计算机设备及存储介质与流程

本申请涉及音视频技术领域,特别涉及一种视频编码方法、装置、计算机设备及存储介质。



背景技术:

随着音视频技术的发展和终端功能的多样化,用户能够通过终端随时随地观看视频。服务器在向终端传输视频时,需要对视频进行压缩(也即编码),以节约通信开销。在编码过程中,需要将视频图像划分为多个块,并对每个块进行编码模式的决策,选择最优的编码模式。上述编码模式的决策流程繁琐,因此亟需一种在不损失编码效率的基础上提升编码速率的方式。



技术实现要素:

本申请实施例提供了一种视频编码方法、装置、计算机设备及存储介质,能够在不损失编码效率的基础上提升编码速率。该技术方案如下:

一方面,提供了一种视频编码方法,该方法包括:

获取当前视频帧中的静止宏块,所述静止宏块与参考视频帧中同一位置的参考宏块相同;

响应于所述参考视频帧为前向参考帧,获取所述静止宏块的质量参数;

响应于所述静止宏块的质量参数大于或等于所述参考宏块的质量参数,获取所述静止宏块的运动矢量;

响应于所述运动矢量符合目标条件,跳过对其他编码模式的代价预测,并基于目标编码模式对所述静止宏块进行编码,所述其他编码模式是除了所述目标编码模式之外的编码模式。

一方面,提供了一种视频编码装置,该装置包括:

第一获取模块,用于获取当前视频帧中的静止宏块,所述静止宏块与参考视频帧中同一位置的参考宏块相同;

第二获取模块,用于响应于所述参考视频帧为前向参考帧,获取所述静止宏块的质量参数;

第三获取模块,用于响应于所述静止宏块的质量参数大于或等于所述参考宏块的质量参数,获取所述静止宏块的运动矢量;

编码模块,用于响应于所述运动矢量符合目标条件,跳过对其他编码模式的代价预测,并基于目标编码模式对所述静止宏块进行编码,所述其他编码模式是除了所述目标编码模式之外的编码模式。

在一种可能实施方式中,所述第三获取模块用于:

获取所述静止宏块的多个相邻宏块的编码模式;

基于所述多个相邻宏块的编码模式,确定所述静止宏块的运动矢量。

在一种可能实施方式中,所述装置还包括:

第一确定模块,用于响应于所述静止宏块的质量参数小于所述参考宏块的质量参数,确定所述静止宏块的离散余弦变换系数;

所述编码模块,还用于响应于所述离散余弦变换系数映射为零,执行跳过对其他编码模式的代价预测,并基于目标编码模式对所述静止宏块进行编码的步骤。

在一种可能实施方式中,所述装置还包括:

预测模块,用于响应于所述离散余弦变换系数不能映射为零,基于具有目标块大小的目标帧间模式,预测所述目标帧间模式的目标率失真代价;

所述预测模块,还用于基于具有不同块大小的多种帧内模式,预测所述多种帧内模式的多个第一率失真代价;

第二确定模块,用于基于所述目标率失真代价和所述多个第一率失真代价中的最小值,确定与所述最小值对应的编码模式。

在一种可能实施方式中,所述装置还包括:

预测模块,用于响应于所述参考视频帧不是所述前向参考帧,基于具有不同块大小的多种帧间模式,预测所述多种帧间模式的多个第二率失真代价;

所述预测模块,还用于基于具有不同块大小的多种帧内模式,预测所述多种帧内模式的多个第一率失真代价;

第三确定模块,用于基于所述多个第一率失真代价和所述多个第二率失真代价中的最小值,确定与所述最小值对应的编码模式。

在一种可能实施方式中,所述装置还包括:

预测模块,用于对于所述当前视频帧中的非静止宏块,基于具有不同块大小的多种帧间模式,预测所述多种帧间模式的多个第二率失真代价;

所述预测模块,还用于基于具有不同块大小的多种帧内模式,预测所述多种帧内模式的多个第一率失真代价;

第三确定模块,用于基于所述多个第一率失真代价和所述多个第二率失真代价中的最小值,确定与所述最小值对应的编码模式。

在一种可能实施方式中,所述目标条件为所述运动矢量为零向量。

一方面,提供了一种计算机设备,该计算机设备包括一个或多个处理器和一个或多个存储器,该一个或多个存储器中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器加载并执行以实现如上述任一种可能实现方式的视频编码方法。

一方面,提供了一种存储介质,该存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行以实现如上述任一种可能实现方式的视频编码方法。

一方面,提供一种计算机程序产品或计算机程序,所述计算机程序产品或所述计算机程序包括一条或多条程序代码,所述一条或多条程序代码存储在计算机可读存储介质中。计算机设备的一个或多个处理器能够从计算机可读存储介质中读取所述一条或多条程序代码,所述一个或多个处理器执行所述一条或多条程序代码,使得计算机设备能够执行上述任一种可能实施方式的视频编码方法。

本申请实施例提供的技术方案带来的有益效果至少包括:

通过当前待编码的宏块是静止宏块且参考视频帧是前向参考p帧,基于静止宏块的质量参数大于或等于参考宏块的质量参数且运动矢量符合目标条件,直接将静止宏块的编码模式确定为目标编码模式,跳过了对其他编码模式的预测判决,无需逐个帧内模式和帧间模式计算率失真代价,能够在不损失编码效率的情况下大大提升了编码速率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还能够根据这些附图获得其他的附图。

图1是本申请实施例提供的一种视频编码方法的实施环境示意图;

图2是本申请实施例提供的一种视频编码方法的流程图;

图3是本申请实施例提供的一种视频编码方法的流程图;

图4是本申请实施例提供的一种视频编码方法的流程图;

图5是本申请实施例提供的一种视频编码方法的原理性流程图;

图6是本申请实施例提供的一种视频编码装置的结构示意图;

图7是本申请实施例提供的一种计算机设备的结构示意图;

图8是本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。

本申请中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上,例如,多个第一位置是指两个或两个以上的第一位置。

在介绍本申请实施例之前,需要引入一些云技术领域内的基本概念:

云技术(cloudtechnology):是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术,也即是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成云技术领域的重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,均能通过云计算来实现。

云计算(cloudcomputing):云计算指it(internettechnology,互联网技术)基础设施的交付和使用模式,通过网络以按需、易扩展的方式获得所需资源。换言之,云计算是一种计算模式,能够将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(infrastructureasaservice,iaas,基础设施即服务平台,简称云平台),在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备等。按照逻辑功能划分,在iaas层上可以部署paas(platformasaservice,平台即服务)层,paas层之上再部署saas(softwareasaservice,软件即服务)层,也可以直接将saas层部署在iaas层上。paas层为软件运行的平台,如数据库、web(网页)容器等。saas层为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,saas层和paas层相对于iaas层来说是上层。

广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是it和软件、互联网相关,也可是其他服务。云计算是网格计算(gridcomputing)、分布式计算(distributedcomputing)、并行计算(parallelcomputing)、效用计算(utilitycomputing)、网络存储(networkstoragetechnologies)、虚拟化(virtualization)、负载均衡(loadbalance)等传统计算机和网络技术发展融合的产物。

随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。

云会议:云会议是基于云计算技术的一种高效、便捷、低成本的会议形式。使用者只需要通过互联网界面,进行简单易用的操作,便可快速高效地与全球各地团队及客户同步分享语音、数据文件及视频,而会议中数据的传输、处理等复杂技术由云会议服务商帮助使用者进行操作。目前国内云会议主要集中在以saas模式为主体的服务内容,包括电话、网络、视频等服务形式,基于云计算的视频会议就叫云会议。

在云会议时代,数据的传输、处理、存储全部由视频会议厂家的计算机资源处理,用户完全无需再购置昂贵的硬件和安装繁琐的软件,只需打开浏览器,登录相应界面,就能进行高效的远程会议。

云会议系统支持多服务器动态集群部署,并提供多台高性能服务器,大大提升了会议稳定性、安全性、可用性。近年来,视频会议因能大幅提高沟通效率,持续降低沟通成本,带来内部管理水平升级,而获得众多用户欢迎,已广泛应用在政府、军队、交通、运输、金融、运营商、教育、企业等各个领域。毫无疑问,视频会议运用云计算以后,在方便性、快捷性、易用性上具有更强的吸引力,必将激发视频会议应用新高潮的到来。

此外,本申请实施例对一些视频编码领域中的基本术语进行解释说明:

宏块(macroblock,mb):宏块是视频编码技术中的一个基本概念。通过将画面分成一个个大小不同的块以对不同位置实行不同的压缩策略。在视频编码中,一个视频帧通常划分成若干宏块组成,一个宏块由一个亮度像素块和附加的两个色度像素块组成。一般来说,亮度像素块为16x16大小的像素块,而两个色度像素块的大小依据其视频帧的采样格式而定,如:对于yuv420采样视频帧,色度像素块为8x8大小的像素块。每个视频帧中,若干宏块被排列成片的形式,视频编码算法以宏块为单位,逐个宏块进行编码,组织成连续的视频码流。

帧间预测(inter):帧间预测是利用视频帧间的相关性,即时间相关性,来达到图像压缩的目的,广泛用于普通电视、会议电视、视频电话、高清晰度电视的压缩编码。在视频传输技术中,活动图像是由时间上以帧周期为间隔的连续视频帧组成的时间图像序列,它在时间上比在空间上具有更大的相关性。大多数电视图像相邻帧间细节变化是很小的,即视频帧间具有很强的相关性,利用帧所具有的相关性的特点进行帧间编码,可获得比帧内编码高得多的压缩比。对于静止图像或活动很慢的图像,可以少传一些帧,如隔帧传输,未传输的帧,利用接收端的帧存储器中前一帧的数据作为该帧数据,对视觉没有什么影响。因为人眼对图像中静止或活动慢的部分,要求有较高的空间分辨率,而对时间分辨率的要求可低些。这种方法叫帧重复方法,广泛应用于视频电话、视频会议系统中,其视频帧速率一般为1~15帧/秒。

帧内预测(intra):指的是h.264采用的一种新技术,在h.264中,当编码视频帧时可用帧内预测。对于每种可能的块大小的块(除了边缘块特别处置以外),每个像素都可用17个最接近的先前已编码的像素的不同加权和(有的权值可为0)来预测,即此像素所在块的左上角的17个像素。其中,每种可能的块大小包括4×4、8×8或者16×16中至少一项。显然,这种帧内预测不是在时间上,而是在空间域上进行的预测编码算法,可以除去相邻块之间的空间冗余度,取得更为有效的压缩。按照所选取的预测参考的点不同,亮度共有9类不同的模式,但色度的帧内预测只有1类模式。

跳过模式(skip):跳过模式是帧间预测的一种特殊编码模式,如果一个宏块被决策为跳过模式,则该宏块无像素残差且无运动矢量残差。在解码时,直接利用相邻块的mv信息预测当前块的mv以得到像素预测值。也即是说,跳过模式下像素重构值等于像素预测值。

运动矢量(motionvector,mv):在帧间预测中,用运动矢量表示当前宏块与其参考视频帧中的最佳匹配块(也即参考宏块)之间的相对位移。每个划分的块都有相应的运动信息需要传送到解码端。如果对每个块的mv进行独立编码和传输,特别是划分成小尺寸的块,需要消耗相当多的比特。

量化参数(quantizationparameter,qp):量化参数反映了空间细节压缩情况。qp值越小,量化越精细,图像质量越高,产生的码流也越长。如qp小,大部分的细节都会被保留;qp增大,一些细节丢失,码率降低,但图像失真加强和质量下降。现有的码率控制算法主要是通过调整离散余弦变换的qp大小输出目标码率,qp和比特率成反比的关系,而且随着视频源复杂度的提高,这种反比关系会更明显。

率失真代价(rate-distortioncost,rdcost):在h.264编码过程中有许多的模式可以选择,有些模式的图像失真较小,但是码率却很大;有些模式的图像失真较大,但是码率却很小。率失真代价是率失真优化的参数,率失真优化的目标是:在一定的码率限制下,减少视频的失真;在允许一定的失真下,将视频压缩到最小。由于码率表现为数据压缩的程度,码率越低,数据压缩程度越高,而失真表现为视频的主观质量,失真越低,视频的主观质量越高,因此率失真优化的目标也可以认为是:按照某种策略选取最优的编码模式,以实现最优的编码性能。率失真优化也即是选取率失真代价最小的模式进行视频编码。

前向参考帧(p帧):在针对连续动态视频帧编码时,将连续若干幅视频帧分成p、b、i三种类型,p帧由在它前面的p帧或者i帧预测而来,它比较与它前面的p帧或者i帧之间的相同信息或数据,也即考虑运动的特性进行帧间压缩。p帧的编码模式在判决时需要进行帧内模式判决和帧间模式判决,最多允许有一个参考视频帧。

离散余弦变换(discretecosinetransform,dct):dct变换是对实信号定义的一种变换,变换后在频域中得到的也是一个实信号。dct变换是与傅里叶变换相关的一种变换,类似于离散傅里叶变换(discretefouriertransform,dft),但是只使用实数。dct变换相比dft变换而言,能够减少一半以上的计算。dct变换还有一个很重要的性质,称为能量集中特性:大多数自然信号(如声音、图像)的能量都集中在dct变换后的低频部分,因而dct变换在声音、图像等自然信号的数据压缩中得到了广泛的使用。

在云会议场景中,常常涉及到主讲人和与会人员之间进行屏幕分享,屏幕分享则主要集中在ppt(powerpoint,演示文稿)分享和文档浏览两类应用场景中,在上述两类场景中,大部分区域(如背景区域)是不发生变化的,只有少数文字或图片会发生改变。传统的h.264编码模式的决策算法没有考虑到区域的变化信息,对输入视频帧的所有宏块都进行完整的模式判决,即对当前宏块进行所有划分模式的帧间预测和帧内预测,导致视频编码耗时较长、编码效率损失严重,影响用户的主观视觉体验。

有鉴于此,本申请实施例提供一种视频编码方法,能够利用检测到的当前视频帧和参考视频帧之间的区域变化信息,进行快速地编码模式决策,节省位于静止区域的宏块进行模式决策的时间开销,以在尽量不损失编码效率的同时提升编码速率。换言之,对当前视频帧按照宏块级别进行静止区域检测,识别出静止宏块,在对每个宏块进行模式决策时,利用检测到的静止区域信息,对当前宏块进行分析,决定当前宏块需要决策的模式类型,针对不同的情况提前跳过一些不必要的模式决策,从而降低编码复杂度。

图1是本申请实施例提供的一种视频编码方法的实施环境示意图。参见图1,在该实施环境中可以包括终端101和服务器102,终端101和服务器102均为一种计算机设备。

终端101用于运行视频应用,例如,该视频应用包括云会议应用、直播应用、短视频应用等能够提供视频流传输服务的应用程序,终端101安装视频应用,响应于用户对视频应用的触发操作,启动该视频应用,从服务器102中拉取视频流。

终端101通过有线或无线通信方式与服务器102进行直接或间接地连接,本申请在此不做限制。

服务器102用于为视频应用提供后台服务。可选地,服务器102对原始视频流进行编码,并将编码后的目标视频流输出至终端101。服务器102包括一台服务器、多台服务器、云计算平台或者虚拟化中心中的至少一种。可选地,服务器102承担主要计算工作,终端101承担次要计算工作;或者,服务器102承担次要计算工作,终端101承担主要计算工作;或者,终端101和服务器102之间采用分布式计算架构进行协同计算。

在一些实施例中,服务器102对原始视频流进行编码,将编码后的目标视频流推送至终端101,或者,由终端录制原始视频流后,终端对原始视频流进行编码,将编码后的目标视频流发送至服务器102,由服务器102转发至请求观看该目标视频流的其他终端。

可选地,服务器102是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式系统,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(contentdeliverynetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。

可选地,终端101的设备类型包括:智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、电子书阅读器、mp3(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)播放器、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器等,但并不局限于此。例如,终端101可以是智能手机,或者其他手持便携式投影设备。以下实施例,以终端101包括智能手机来举例说明。

本领域技术人员可以知晓,上述终端101的数量可以更多或更少。比如上述终端101可以仅为一个,或者上述终端101为几十个或几百个,或者更多数量。本申请实施例对终端101的数量和设备类型不加以限定。

图2是本申请实施例提供的一种视频编码方法的流程图。参见图2,该实施例应用于计算机设备,下面以计算机设备为服务器为例(还可以是其他终端设备)进行说明,该实施例包括:

201、服务器获取当前视频帧中的静止宏块,该静止宏块与参考视频帧中同一位置的参考宏块相同。

可选地,服务器用于向终端提供视频推送服务,例如,服务器接收第一终端发送的原始视频流,对原始视频流进行编码或转码,输出不同码率的目标视频流,并根据第二终端的拉取需求,将不同码率的目标视频流发送至不同的第二终端。在一个示例中,以直播场景为例,第一终端为主播终端、第二终端为观众终端;在另一个示例中,以云会议场景为例,第一终端为主讲人终端、第二终端为参会人终端。本申请实施例不对第一终端和第二终端的类型进行具体限定。

在一些实施例中,将服务器当前正在处理的视频帧称为当前视频帧,服务器将当前视频帧划分为多个宏块,并以宏块为单位进行视频编码,不同的宏块可采取不同的编码模式,例如编码模式划分为帧内预测和帧间预测,在帧间预测中又涉及一种特殊的编码模式即跳过模式。

可选地,服务器对于当前视频帧中当前正在处理的任一宏块(简称为当前宏块),基于当前宏块的位置坐标,在参考视频帧中确定出与该位置坐标对应的参考宏块,响应于当前宏块与参考宏块完全一致,则确定当前宏块为静止宏块,执行下述步骤202。反之,响应于当前宏块与参考宏块不完全一致,确定当前宏块是非静止宏块。

可选地,服务器对于该当前视频帧中的非静止宏块,基于具有不同块大小的多种帧间模式,预测该多种帧间模式的多个第二率失真代价;基于具有不同块大小的多种帧内模式,预测该多种帧内模式的多个第一率失真代价;基于该多个第一率失真代价和该多个第二率失真代价中的最小值,确定与该最小值对应的编码模式。

在一些实施例中,如果当前宏块是非静止宏块,那么服务器首先遍历所有块大小,计算每种块大小的帧间模式的率失真代价,将拥有最小帧间率失真代价(第二率失真代价)的帧间模式确定为当前最优的帧间模式,并记录当前的最小帧间率失真代价为min_inter_cost;然后对当前宏块进行帧内模式决策,遍历不同块大小的帧内模式的率失真代价,将用于最小帧内率失真代价(第一率失真代价)的帧内模式确定为当前最优的帧内模式,并记录当前的最小帧内率失真代价为min_intra_cost;进一步地比较最小帧间率失真代价min_inter_cost和最小帧内率失真代价min_intra_cost,将两者之中的最小值所对应的编码模式确定为当前宏块的编码模式,也即选择率失真代价最小的模式作为最优的预测模式。

在上述过程中,如果当前宏块是非静止宏块,服务器仍然需要对各个帧间模式和各个帧内模式分别预测其各自的率失真代价,并选取与最小率失真代价对应的编码模式,这样能够保证不损失当前宏块的编码效率。

202、服务器响应于该参考视频帧为前向参考帧(p帧),获取该静止宏块的质量参数。

在一些实施例中,在当前宏块为静止宏块的情况下,响应于当前视频帧的参考视频帧为p帧,则服务器计算静止宏块的质量参数,并计算参考宏块的质量参数。服务器响应于该静止宏块的质量参数大于或等于该参考宏块的质量参数,执行下述步骤203。服务器响应于该静止宏块的质量参数小于该参考宏块的质量参数,确定该静止宏块的dct变换系数;响应于该dct变换系数能够映射为零,执行下述步骤204中基于目标编码模式对该静止宏块进行编码的步骤。

在一个示例中,该质量参数为量化参数qp,此时服务器分别计算静止宏块和参考宏块各自的qp,响应于静止宏块的qp大于或等于参考宏块的qp,执行下述步骤203,否则,确定静止宏块的dct变换系数,如果该dct变换系数能够映射为零,执行下述步骤204中跳过对其他编码模式的代价预测,并基于目标编码模式对该静止宏块进行编码的步骤。

在上述过程中,在该静止宏块的质量参数小于该参考宏块的质量参数时,相当于服务器对当前宏块(静止宏块)进行目标编码模式的判决,可选地,服务器对当前宏块进行运动补偿、dct变换和量化,若能够将dct变换系数清零,则当前宏块适合选择目标编码模式,执行下述步骤204。例如,该目标编码模式为跳过模式。

在另一些实施例中,服务器响应于该dct变换系数不能映射为零,基于具有目标块大小的目标帧间模式,预测该目标帧间模式的目标率失真代价;基于具有不同块大小的多种帧内模式,预测该多种帧内模式的多个第一率失真代价;基于该目标率失真代价和该多个第一率失真代价中的最小值,确定与该最小值对应的编码模式。

在上述过程中,由于dct变换系数不能清零,说明当前宏块不适合选择目标编码模式,因此需要对其他编码模型进行进一步判断,此时直接将目标块大小的目标帧间模式视为具有最小率失真代价的帧间模式,并逐个判断其他各个帧内模式的率失真代价,将上述计算出的所有率失真代价中的最小值所对应的编码模式确定为当前宏块的编码模式。通过仅计算目标帧间模式的目标率失真代价,这样避免了逐个判断所有帧间模式的率失真代价,从而大大提升了编码速率。

在一个示例中,该目标块大小为16×16块大小,若服务器不能将dct变换系数清零,则对当前宏块进行16×16块大小的帧间模式预测,并计算当前模式的目标率失真代价,将目标率失真代价记为min_inter_cost,跳过其他块大小的帧间模式判决,也即直接将16×16块大小的帧间模式下的率失真代价视为所有块大小的帧间模式中的最小率失真代价,这样节约了逐个帧间模式计算率失真代价的耗时,提升了编码速率。

在一些实施例中,服务器响应于该参考视频帧不是p帧,基于具有不同块大小的多种帧间模式,预测该多种帧间模式的多个第二率失真代价;基于具有不同块大小的多种帧内模式,预测该多种帧内模式的多个第一率失真代价;基于该多个第一率失真代价和该多个第二率失真代价中的最小值,确定与该最小值对应的编码模式。

在一些实施例中,如果参考视频帧不是p帧,那么服务器首先遍历所有块大小,计算每种块大小的帧间模式的率失真代价,将拥有最小帧间率失真代价(第二率失真代价)的帧间模式确定为当前最优的帧间模式,并记录当前的最小帧间率失真代价为min_inter_cost;然后对当前宏块进行帧内模式决策,遍历不同块大小的帧内模式的率失真代价,将用于最小帧内率失真代价(第一率失真代价)的帧内模式确定为当前最优的帧内模式,并记录当前的最小帧内率失真代价为min_intra_cost;进一步地比较最小帧间率失真代价min_inter_cost和最小帧内率失真代价min_intra_cost,将两者之中的最小值所对应的编码模式确定为当前宏块的编码模式,也即选择率失真代价最小的模式作为最优的预测模式。

在上述过程中,如果参考视频帧不是p帧,服务器仍然需要对各个帧间模式和各个帧内模式分别预测其各自的率失真代价,并选取与最小率失真代价对应的编码模式,这样能够保证不损失当前宏块的编码效率。

203、服务器响应于该静止宏块的质量参数大于或等于该参考宏块的质量参数,获取该静止宏块的运动矢量。

在一些实施例中,服务器响应于静止宏块的质量参数大于或等于参考宏块的质量参数,可以获取该静止宏块的多个相邻宏块的编码模式;基于该多个相邻宏块的编码模式,确定该静止宏块的运动矢量。可选地,该多个相邻宏块的数量为大于或等于2的任一整数,例如,该多个相邻宏块的数量为3。

在一些实施例中,服务器获取当前宏块周围的3个相邻宏块预测出来的目标编码模式的运动矢量为pskip_mv,若pskip_mv符合目标条件,执行下述步骤204,否则,若pskip_mv不符合目标条件,则确定当前宏块的dct变换系数;响应于该dct变换系数能够映射为零,执行下述步骤204中跳过对其他编码模式的代价预测,并基于目标编码模式对该静止宏块进行编码的步骤,否则,对当前宏块进行完整的各个块大小的帧内模式和各个帧间模式的预测。

204、服务器响应于该运动矢量符合目标条件,跳过对其他编码模式的代价预测,并基于目标编码模式对该静止宏块进行编码,该其他编码模式是除了该目标编码模式之外的编码模式。

可选地,该目标条件为该运动矢量为零向量,也即pskip_mv为(0,0),该目标条件表示参考宏块和当前宏块位置相同。

在一些实施例中,服务器响应于该运动矢量符合目标条件,无需对其他编码模式进行代价预测,直接将当前宏块的编码模式确定为目标编码模式,并基于该目标编码模式对当前宏块进行编码。例如,该目标编码模式为跳过模式(skip模式)。通过在运动矢量符合目标条件时,直接确定目标编码模式进行编码,不需要对其他编码模式进行逐一判断,大大提高了编码速率。

上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。

本申请实施例提供的方法,通过当前待编码的宏块是静止宏块且参考视频帧是p帧,基于静止宏块的质量参数大于或等于参考宏块的质量参数且运动矢量符合目标条件,直接将静止宏块的编码模式确定为目标编码模式,跳过了对其他编码模式的预测判决,无需逐个帧内模式和帧间模式计算率失真代价,能够在不损失编码效率的情况下大大提升了编码速率。

图3是本申请实施例提供的一种视频编码方法的流程图。参见图3,该实施例应用于计算机设备,下面以计算机设备为服务器为例进行说明,该实施例包括:

301、服务器获取当前视频帧中的静止宏块,该静止宏块与参考视频帧中同一位置的参考宏块相同。

上述步骤301与上述步骤201类似,这里不做赘述。

302、服务器响应于该参考视频帧为p帧,获取该静止宏块的质量参数。

上述步骤302与上述步骤202类似,这里不做赘述。

303、服务器响应于该静止宏块的质量参数小于该参考宏块的质量参数,确定该静止宏块的dct变换系数。

304、服务器响应于该dct变换系数映射为零,跳过对其他编码模式的代价预测,并基于目标编码模式对该静止宏块进行编码,该其他编码模式是除了该目标编码模式之外的编码模式。

在上述过程中,在该静止宏块的质量参数小于该参考宏块的质量参数时,相当于服务器对当前宏块(静止宏块)进行目标编码模式的判决,可选地,服务器对当前宏块进行运动补偿、dct变换或者量化中至少一项,若能够将dct变换系数清零,则当前宏块适合选择目标编码模式,跳过对其他编码模式的代价预测,并基于目标编码模式对静止宏块进行编码。例如,该目标编码模式为跳过模式。

本申请实施例提供的方法,通过当前待编码的宏块是静止宏块且参考视频帧是p帧,基于静止宏块的质量参数小于参考宏块的质量参数且dct变换系数能够清零,直接将静止宏块的编码模式确定为目标编码模式,跳过了对其他编码模式的预测判决,无需逐个帧内模式和帧间模式计算率失真代价,能够在不损失编码效率的情况下大大提升了编码速率。

图4是本申请实施例提供的一种视频编码方法的流程图。参见图4,该实施例应用于计算机设备,下面以计算机设备为服务器为例进行说明,该实施例包括:

401、服务器获取当前视频帧中的静止宏块,该静止宏块与参考视频帧中同一位置的参考宏块相同。

上述步骤401与上述步骤201类似,这里不做赘述。

402、服务器响应于该参考视频帧为p帧,获取该静止宏块的质量参数。

例如,该质量参数为量化参数qp。

上述步骤402与上述步骤202类似,这里不做赘述。

403、服务器响应于该静止宏块的质量参数小于该参考宏块的质量参数,确定该静止宏块的dct变换系数。

上述步骤403与上述步骤303类似,这里不做赘述。

404、服务器响应于该dct变换系数不能映射为零,基于具有目标块大小的目标帧间模式,预测该目标帧间模式的目标率失真代价。

在上述过程中,由于dct变换系数不能清零,说明当前宏块不适合选择目标编码模式,因此需要对其他编码模型进行进一步判断,此时直接将目标块大小的目标帧间模式视为具有最小率失真代价的帧间模式,仅计算目标帧间模式的目标率失真代价即可。通过仅计算目标帧间模式的目标率失真代价,这样避免了逐个判断所有帧间模式的率失真代价,从而大大提升了编码速率。

在一个示例中,该目标块大小为16×16块大小,若服务器不能将dct变换系数清零,则对当前宏块进行16×16块大小的帧间模式预测,并计算当前模式的目标率失真代价,将目标率失真代价记为min_inter_cost,跳过其他块大小的帧间模式判决,也即直接将16×16块大小的帧间模式下的率失真代价视为所有块大小的帧间模式中的最小率失真代价,这样节约了逐个帧间模式计算率失真代价的耗时,提升了编码速率。

405、服务器基于具有不同块大小的多种帧内模式,预测该多种帧内模式的多个第一率失真代价。

在上述过程中,服务器逐个判断其他各个帧内模式的率失真代价,得到多个第一率失真代价。

406、服务器基于该目标率失真代价和该多个第一率失真代价中的最小值,确定与该最小值对应的编码模式。

在上述过程中,服务器将上述步骤404和上述步骤405中计算出的所有率失真代价中的最小值所对应的编码模式确定为当前宏块的编码模式。

本申请实施例提供的方法,通过当前待编码的宏块是静止宏块且参考视频帧是p帧,基于静止宏块的质量参数小于参考宏块的质量参数且dct变换系数不能够清零,直接将目标块大小的目标帧间模式视为具有最小率失真代价的帧间模式,仅计算目标帧间模式的目标率失真代价,这样避免了逐个判断所有帧间模式的率失真代价,从而大大提升了编码速率。

图5是本申请实施例提供的一种视频编码方法的原理性流程图,请参考500,以目标编码模式为skip模式(跳过模式)为例进行说明,该方法包括:

步骤一、服务器检测输入的当前宏块和参考视频帧同一位置的参考宏块是否完全一致,若完全一致,则判定为静止宏块,否则判定为非静止宏块(也称为变化宏块)。

步骤二、服务器对当前宏块进行判断:若当前宏块为静止宏块,并且当前视频帧的参考视频帧为p帧,执行步骤三;若任意一个条件不满足,比如当前宏块为非静止宏块,或者,参考视频帧不是p帧,执行步骤八。

步骤三、服务器对当前宏块的qp进行判断:若当前宏块量化所使用的qp大于或等于参考视频帧同一位置的参考宏块所使用的qp,执行步骤四;否则执行步骤五。

步骤四、服务器记由当前宏块周围的三个相邻宏块预测出来的skip模式的mv为pskip_mv,对pskip_mv进行判断:若pskip_mv为(0,0),即参考宏块和当前宏块位置相同,执行步骤六;否则执行步骤五。

步骤五、服务器对当前宏块进行skip模式判决,包括运动补偿、dct变换以及量化等过程,若能将dct系数清0,则当前宏块适合选择skip模式。若当前宏块可以被选择为skip模式,则执行步骤六;否则执行步骤七。

步骤六、服务器将当前宏块选择skip模式,不需要进行其他模式判决,结束当前宏块的模式决策,以下步骤不需要执行。

步骤七、服务器对当前宏块进行16x16块大小的帧间模式预测,并计算当前模式的rdcost,记录为min_inter_cost,跳过其他块大小的帧间模式判决,直接执行步骤九。

步骤八、服务器对当前宏块进行完整的帧间模式决策,即遍历所有块大小,计算每种块大小帧间模式的rdcost,选择当前最优的帧间模式为拥有最小帧间rdcost的块划分类型,并记录当前最小的帧间rdcost为min_inter_cost,执行步骤九。

步骤九、服务器对当前宏块进行帧内模式决策,即遍历计算不同块大小的帧内模式rdcost,选择当前最优的帧内模式为拥有最小帧内rdcost的块划分类型,并记录当前最小的帧内rdcost为min_intra_cost,执行步骤十。

步骤十、服务器比较min_inter_cost和min_intra_cost,选择rdcost最小的模式为当前宏块最优的预测模式,结束当前宏块的模式选择。

本申请实施例提供的方法,通过引入宏块级别的静止区域信息检测模块(也即从宏块级别检测静止宏块),并基于检测到的信息设计的快速模式决策算法,有效地减少了相邻帧之间没有发生变化的静止宏块进行模式决策的复杂度,从而降低了编码复杂度、降低了编码时间、提高了编码速率。

上述基于精致区域的快速编码模式决策算法,能够在基本不损失压缩效率的前提下,尽可能减少编码复杂度,以缩短编码耗时、提高编码速率。如表1所示,针对不同类型的视频流,示出了在传统h.264编码时编码效率和编码速率的各类指标,其中,qp表示量化参数,kbps表示数字信号传输的千比特率,ypsnr表示亮度信号y的psnr(peaksignaltonoiseratio,峰值信噪比),upsnr表示色度信号u的psnr,vpsnr表示色度信号v的psnr,encfps表示编码得到的视频流的每秒传输帧数(也即帧率)。

表1

如表2所示,针对不同类型的视频流,示出了在基于本申请实施例提供的视频编码方法进行视频编码时,编码效率和编码速率的各类指标。

表2

如表3所示,示出了表1和表2两种不同视频编码方式之间的对比结果,针对不同类型的视频流,给出了亮度信号y、色度信号u和色度信号v各自的bd-rate(bjontegaard-deltarate,bd率)。

表3

实验证明,利用上述方法,在bd-rate损失0.9%的前提下,有效节省30%左右的编码时间。

图6是本申请实施例提供的一种视频编码装置的结构示意图,请参考图6,该装置包括:

第一获取模块601,用于获取当前视频帧中的静止宏块,该静止宏块与参考视频帧中同一位置的参考宏块相同;

第二获取模块602,用于响应于该参考视频帧为前向参考帧,获取该静止宏块的质量参数;

第三获取模块603,用于响应于该静止宏块的质量参数大于或等于该参考宏块的质量参数,获取该静止宏块的运动矢量;

编码模块604,用于响应于该运动矢量符合目标条件,跳过对其他编码模式的代价预测,并基于目标编码模式对该静止宏块进行编码,该其他编码模式是除了该目标编码模式之外的编码模式。

本申请实施例提供的装置,通过当前待编码的宏块是静止宏块且参考视频帧是前向参考p帧,基于静止宏块的质量参数大于或等于参考宏块的质量参数且运动矢量符合目标条件,直接将静止宏块的编码模式确定为目标编码模式,跳过了对其他编码模式的预测判决,无需逐个帧内模式和帧间模式计算率失真代价,能够在不损失编码效率的情况下大大提升了编码速率。

在一种可能实施方式中,该第三获取模块603用于:

获取该静止宏块的多个相邻宏块的编码模式;

基于该多个相邻宏块的编码模式,确定该静止宏块的运动矢量。

在一种可能实施方式中,基于图6的装置组成,该装置还包括:

第一确定模块,用于响应于该静止宏块的质量参数小于该参考宏块的质量参数,确定该静止宏块的离散余弦变换系数;

该编码模块,还用于响应于该离散余弦变换系数能够映射为零,执行跳过对其他编码模式的代价预测,并基于目标编码模式对该静止宏块进行编码的步骤。

在一种可能实施方式中,基于图6的装置组成,该装置还包括:

预测模块,用于响应于该离散余弦变换系数不能映射为零,基于具有目标块大小的目标帧间模式,预测该目标帧间模式的目标率失真代价;

该预测模块,还用于基于具有不同块大小的多种帧内模式,预测该多种帧内模式的多个第一率失真代价;

第二确定模块,用于基于该目标率失真代价和该多个第一率失真代价中的最小值,确定与该最小值对应的编码模式。

在一种可能实施方式中,基于图6的装置组成,该装置还包括:

预测模块,用于响应于该参考视频帧不是该前向参考帧,基于具有不同块大小的多种帧间模式,预测该多种帧间模式的多个第二率失真代价;

该预测模块,还用于基于具有不同块大小的多种帧内模式,预测该多种帧内模式的多个第一率失真代价;

第三确定模块,用于基于该多个第一率失真代价和该多个第二率失真代价中的最小值,确定与该最小值对应的编码模式。

在一种可能实施方式中,基于图6的装置组成,该装置还包括:

预测模块,用于对于该当前视频帧中的非静止宏块,基于具有不同块大小的多种帧间模式,预测该多种帧间模式的多个第二率失真代价;

该预测模块,还用于基于具有不同块大小的多种帧内模式,预测该多种帧内模式的多个第一率失真代价;

第三确定模块,用于基于该多个第一率失真代价和该多个第二率失真代价中的最小值,确定与该最小值对应的编码模式。

在一种可能实施方式中,该目标条件为该运动矢量为零向量。

上述所有可选技术方案,能够采用任意结合形成本公开的可选实施例,在此不再一一赘述。

需要说明的是:上述实施例提供的视频编码装置在视频编码时,仅以上述各功能模块的划分进行举例说明,实际应用中,能够根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频编码装置与视频编码方法实施例属于同一构思,其具体实现过程详见视频编码方法实施例,这里不再赘述。

图7是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备700可因配置或性能不同而产生比较大的差异,该计算机设备700包括一个或一个以上处理器(centralprocessingunits,cpu)701和一个或一个以上的存储器702,其中,该存储器702中存储有至少一条计算机程序,该至少一条计算机程序由该一个或一个以上处理器701加载并执行以实现上述各个实施例提供的视频编码方法。可选地,该计算机设备700还具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机设备700还包括其他用于实现设备功能的部件,在此不做赘述。

图8是本申请实施例提供的一种计算机设备的结构示意图。如图8所示,以计算机设备为终端800为例说明,该终端800的设备类型包括:智能手机、平板电脑、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端800还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端800包括有:处理器801和存储器802。

可选地,处理器801包括一个或多个处理核心,比如4核心处理器、8核心处理器等。可选地,处理器801采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。在一些实施例中,处理器801包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

在一些实施例中,存储器802包括一个或多个计算机可读存储介质,可选地,该计算机可读存储介质是非暂态的。可选地,存储器802还包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个程序代码,该至少一个程序代码用于被处理器801所执行以实现本申请中各个实施例提供的视频编码方法。

在一些实施例中,终端800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间能够通过总线或信号线相连。各个外围设备能够通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:射频电路804、显示屏805、摄像头组件806、音频电路807、定位组件808和电源809中的至少一种。

外围设备接口803可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。在一些实施例中,处理器801、存储器802和外围设备接口803被集成在同一芯片或电路板上;在一些其他实施例中,处理器801、存储器802和外围设备接口803中的任意一个或两个在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路804用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路804将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路804包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。可选地,射频电路804通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路804还包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏805用于显示ui(userinterface,用户界面)。可选地,该ui包括图形、文本、图标、视频及其它们的任意组合。当显示屏805是触摸显示屏时,显示屏805还具有采集在显示屏805的表面或表面上方的触摸信号的能力。该触摸信号能够作为控制信号输入至处理器801进行处理。可选地,显示屏805还用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏805为一个,设置终端800的前面板;在另一些实施例中,显示屏805为至少两个,分别设置在终端800的不同表面或呈折叠设计;在再一些实施例中,显示屏805是柔性显示屏,设置在终端800的弯曲表面上或折叠面上。甚至,可选地,显示屏805设置成非矩形的不规则图形,也即异形屏。可选地,显示屏805采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

摄像头组件806用于采集图像或视频。可选地,摄像头组件806包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件806还包括闪光灯。可选地,闪光灯是单色温闪光灯,或者是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,用于不同色温下的光线补偿。

在一些实施例中,音频电路807包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器801进行处理,或者输入至射频电路804以实现语音通信。出于立体声采集或降噪的目的,麦克风为多个,分别设置在终端800的不同部位。可选地,麦克风是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器801或射频电路804的电信号转换为声波。可选地,扬声器是传统的薄膜扬声器,或者是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅能够将电信号转换为人类可听见的声波,也能够将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路807还包括耳机插孔。

定位组件808用于定位终端800的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。可选地,定位组件808是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。

电源809用于为终端800中的各个组件进行供电。可选地,电源809是交流电、直流电、一次性电池或可充电电池。当电源809包括可充电电池时,该可充电电池支持有线充电或无线充电。该可充电电池还用于支持快充技术。

在一些实施例中,终端800还包括有一个或多个传感器810。该一个或多个传感器810包括但不限于:加速度传感器811、陀螺仪传感器812、压力传感器813、指纹传感器814、光学传感器815以及接近传感器816。

在一些实施例中,加速度传感器811检测以终端800建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器811用于检测重力加速度在三个坐标轴上的分量。可选地,处理器801根据加速度传感器811采集的重力加速度信号,控制显示屏805以横向视图或纵向视图进行用户界面的显示。加速度传感器811还用于游戏或者用户的运动数据的采集。

在一些实施例中,陀螺仪传感器812检测终端800的机体方向及转动角度,陀螺仪传感器812与加速度传感器811协同采集用户对终端800的3d动作。处理器801根据陀螺仪传感器812采集的数据,实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。

可选地,压力传感器813设置在终端800的侧边框和/或显示屏805的下层。当压力传感器813设置在终端800的侧边框时,能够检测用户对终端800的握持信号,由处理器801根据压力传感器813采集的握持信号进行左右手识别或快捷操作。当压力传感器813设置在显示屏805的下层时,由处理器801根据用户对显示屏805的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器814用于采集用户的指纹,由处理器801根据指纹传感器814采集到的指纹识别用户的身份,或者,由指纹传感器814根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器801授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。可选地,指纹传感器814被设置终端800的正面、背面或侧面。当终端800上设置有物理按键或厂商logo时,指纹传感器814能够与物理按键或厂商logo集成在一起。

光学传感器815用于采集环境光强度。在一个实施例中,处理器801根据光学传感器815采集的环境光强度,控制显示屏805的显示亮度。具体地,当环境光强度较高时,调高显示屏805的显示亮度;当环境光强度较低时,调低显示屏805的显示亮度。在另一个实施例中,处理器801还根据光学传感器815采集的环境光强度,动态调整摄像头组件806的拍摄参数。

接近传感器816,也称距离传感器,通常设置在终端800的前面板。接近传感器816用于采集用户与终端800的正面之间的距离。在一个实施例中,当接近传感器816检测到用户与终端800的正面之间的距离逐渐变小时,由处理器801控制显示屏805从亮屏状态切换为息屏状态;当接近传感器816检测到用户与终端800的正面之间的距离逐渐变大时,由处理器801控制显示屏805从息屏状态切换为亮屏状态。

本领域技术人员能够理解,图8中示出的结构并不构成对终端800的限定,能够包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

在示例性实施例中,还提供了一种计算机可读存储介质,例如包括至少一条计算机程序的存储器,上述至少一条计算机程序可由终端中的处理器执行以完成上述各个实施例中视频编码方法。例如,该计算机可读存储介质包括rom(read-onlymemory,只读存储器)、ram(random-accessmemory,随机存取存储器)、cd-rom(compactdiscread-onlymemory,只读光盘)、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供了一种计算机程序产品或计算机程序,包括一条或多条程序代码,该一条或多条程序代码存储在计算机可读存储介质中。计算机设备的一个或多个处理器能够从计算机可读存储介质中读取该一条或多条程序代码,该一个或多个处理器执行该一条或多条程序代码,使得计算机设备能够执行以完成上述实施例中视频编码方法。

本领域普通技术人员能够理解实现上述实施例的全部或部分步骤能够通过硬件来完成,也能够通过程序来指令相关的硬件完成,可选地,该程序存储于一种计算机可读存储介质中,可选地,上述提到的存储介质是只读存储器、磁盘或光盘等。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1