本发明实施例涉及视频处理领域,尤其涉及视频压缩方法、装置、设备及存储介质。
背景技术:
随着多媒体信息技术的不断发展,视频信息大量涌现。视频数据作为一种表达信息的综合媒体,已成为现实生活中一个重要的信息载体。
视频数据中包含了大量的图像以及声音信息,一般体积较大,在一些场景中需要对视频数据进行压缩编码,以便于视频的传输或存储等。目前,常规的压缩编码方式可包括软编码和硬编码。其中,软编码一般指利用中央处理器(centralprocessingunit,cpu)进行压缩编码运算,速度较慢;硬编码一般指利用非cpu进行压缩编码运算,如图像处理器(graphicsprocessingunit,gpu)或专用的数字信号处理器(digitalsignalprocessing,dsp)等,速度较慢。对于移动设备来说,在一些对压缩效率有一定要求的应用场景来说,需要采用硬编码方式,但目前硬编码方式的压缩效果并不够理想,需要改进。
技术实现要素:
本发明实施例提供了视频压缩方法、装置、设备及存储介质,可以优化现有的视频压缩方案。
第一方面,本发明实施例提供了一种视频压缩方法,该方法包括:
在视频硬编码压缩事件被触发时,获取原始视频数据中预设时长的第一视频数据;
利用恒定质量cq模式对所述第一视频数据进行压缩处理,并根据压缩结果确定预估码率;
根据所述预估码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频,其中,所述预设模式与所述cq模式不同。
第二方面,本发明实施例提供了一种视频压缩装置,该装置包括:
数据提取模块,用于在视频硬编码压缩事件被触发时,获取原始视频数据中预设时长的第一视频数据;
预估码率确定模块,用于利用恒定质量cq模式对所述第一视频数据进行压缩处理,并根据压缩结果确定预估码率;
视频压缩模块,用于根据所述预估码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频,其中,所述预设模式与所述cq模式不同。
第三方面,本发明实施例提供了一种移动设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的视频压缩方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的视频压缩方法。
本发明实施例中提供的视频压缩方案,在需要对视频进行硬编码压缩时,获取原始视频数据中预设时长的第一视频数据,利用cq模式对第一视频数据进行压缩处理,并根据压缩结果确定预估码率,根据预估码率采用cq模式以外的预设模式对原始视频数据进行压缩处理,得到目标压缩视频。通过采用上述技术方案,可以合理地确定硬编码压缩时所采用的码率,兼顾视频压缩质量以及压缩效率,有效提升视频压缩效果。
附图说明
图1为本发明实施例提供的一种视频压缩方法的流程示意图;
图2为本发明实施例提供的又一种视频压缩方法的流程示意图;
图3为本发明实施例提供的一种视频压缩装置的结构框图;
图4为本发明实施例提供的一种移动设备的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
为了便于理解本发明实施例,下面对相关内容进行介绍。在一些应用场景中,例如,在使用实时聊天工具过程中,经常需要分享视频,比如向对方发送一段视频,或者在朋友圈分享一段视频,当原始视频较大(如分辨率或码率超过一定阈值)时,需要先在本地进行压缩编码,以减小视频体积,然后再上传至服务器进行中转或直接发送给对方。其中,压缩编码可采用软编码或硬编码。对于软编码来说,一般应用于非实时通话场景,一般使用恒定速率因子(constantratefactor,crf)模式,即指定一个质量因子,并设置一个最大的码率,让编码器根据视频复杂度自适应选择合适的码率档位进行编码,但是软编码的速度较慢,特别是性能较差的低端设备,编码耗时过长,这是软编最大的缺点。相对软编码,硬编码的压缩速度较快,但压缩的效果与具体的系统版本以及硬件芯片等关系较大。目前,对于移动设备来说,在硬编码上的支持远远没有软编码的友好,大多数只支持可变码率(variablebitrate,vbr)一种码控模式,部分支持恒定码率(constantbitrate,cbr)码控模式,只有很少部分能够真正较好地支持恒定质量(constantquantizer,cq)码控模式。其中,码率指单位时间内的比特率,用于衡量视频的单位时间体积;vbr指视频编码的每一帧的比特率是变化的;cbr指视频编码的每一帧的比特率是恒定的;cq指视频编码的每一帧的质量是恒定的,这里的质量可以参考图像的峰值信噪比(peaksignaltonoiseratio,psnr)来衡量。vbr和cbr需要预先指定压缩的码率大小,无论源视频复杂程度如何,都按照设定的固定码率进行编码。由于原始视频内容的多样性,固定的码率值无法适应不同的视频内容,当视频画面比较复杂时,固定的码率值可能因为过低导致编码出来的视频质量很差,相反的,当视频画面比较简单时,固定的码率值可能因为过高导致产生不必要的码率浪费,增加传输的带宽成本。对于cq模式来说,视频编码的每一帧的质量是恒定的,也就是说,cq模式能够根据视频画面的复杂程度动态地调整码率。而cq模式尽管大部分移动设备都可用,但受到设备内部硬件配置以及操作系统等方面的限制,编码结果往往是不可控制的,因此很难将cq模式直接应用在实际的硬编码压缩中。本发明实施例中结合cq模式和其他编码模式,合理地确定硬编码压缩时所采用的码率,兼顾视频压缩质量与码率平衡,有效提升视频压缩效果。需要说明的是,上述使用场景仅作为示意性说明,本发明实施例的视频压缩方案可适用于任意涉及视频硬编码压缩的场景。
图1为本发明实施例提供的一种视频压缩方法的流程示意图,该方法可以由视频压缩装置执行,其中该装置可由软件和/或硬件实现,一般可集成在移动设备中。如图1所示,该方法包括:
步骤101、在视频硬编码压缩事件被触发时,获取原始视频数据中预设时长的第一视频数据。
示例性的,可依据具体的应用场景确定视频硬编码压缩事件的触发条件。以视频分享场景为例,假设用户在使用即时通信应用程序时,在一对一聊天或多人聊天时发送视频,或者在朋友圈、社区、论坛或贴吧等分享视频时,根据所采用的应用程序设置的视频硬编码压缩事件触发条件确定需要对所分享的视频进行硬编码压缩处理时,确定视频硬编码压缩事件被触发。示例性的,视频硬编码压缩事件触发条件例如可以是原始视频对应的码率超过预设码率阈值或原始视频对应的分辨率达到预设分辨率阈值,且满足硬编码压缩条件。当不满足视频硬编码压缩事件触发条件时,可以不对原始视频进行压缩。若不对原始视频进行压缩,可直接对原始视频进行分享,如将原始视频上传至对应的服务器。另外,可将原始视频对应的码率超过预设码率阈值或检测到原始视频对应的分辨率超过预设分辨率阈值作为视频压缩条件,若满足视频压缩条件,但不满足硬编码压缩条件时,可采用软编码进行视频压缩。其中,硬编码压缩条件可以根据应用程序的自身设置决定。
本发明实施例中,预设时长可以根据实际情况进行设置,可以是固定的数值,如1秒或2秒,也可以是动态的数值,例如根据原始视频的总时长确定(如总时长的预设比例,预设比例也可自由设置,如10%等)。第一视频数据相对于原始视频数据中的具体位置以及具体获取方式不做限定。以预设时长为2秒为例,具体位置可以是原始视频的开始位置,如前2秒,具体位置也可以是原始视频的结束位置,如倒数2秒,具体位置还可以是任意位置,如随机获取原始视频中2秒长的视频数据。
可选的,可预先设定一个码率值,也即预设码率。当原始视频的总长度小于或等于预设时长时,可直接采用预设码率进行压缩处理。预设码率可根据实际情况进行设置,如根据需要进行视频分享的应用程序的实际情况进行设置。
步骤102、利用恒定质量cq模式对所述第一视频数据进行压缩处理,并根据压缩结果确定预估码率。
如前文所述,对于多数移动设备来说,虽然cq模式是可用的,但受到设备内部硬件配置以及操作系统等方面的限制,编码结果往往是不可控制的,因此很难将cq模式直接应用在实际的硬编码压缩中。也就说,若整个原始视频全部采用cq模式进行压缩处理,整体上压缩效果并不理想,在压缩效率、视频画面质量以及稳定性等方面可能并不如vbr模式和cbr模式。而本发明实施例中,先提取出原始视频数据中的部分数据,利用cq模式对该部分数据进行压缩,进而估算出合理的码率,供其他模式采用,从而达到根据视频画面的复杂程度动态确定码率的效果。
本发明实施例中,根据压缩结果确定预估码率的具体方式不做限定。示例性的,利用cq模式对第一视频数据中包含的视频帧进行压缩处理,得到压缩视频帧,根据所述压缩视频帧对应的比特大小确定预估码率。可选的,可根据对应比特大小最大的压缩视频帧确定预估码率,也可根据对应比特大小最大的压缩视频帧确定预估码率,也可根据压缩视频帧对应的总比特大小确定预估码率。在根据某一压缩视频帧确定预估码率时,可根据该压缩视频帧的比特大小与压缩视频帧对应的时长的商确定预估码率。在根据压缩视频帧对应的总比特大小确定预估码率时,可根据所述压缩视频帧对应的总比特大小与所述预设时长的商确定预估码率。
步骤103、根据所述预估码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频。
示例性的,所述预设模式可以包括可变码率vbr模式和/或恒定码率cbr模式。以上两种模式如前文所述,需要预先指定压缩的码率大小,而本发明实施例中可以根据预估码率来动态确定该预先指定的码率,在进行压缩处理后,所得到的目标压缩视频能够保证较好的压缩效果。
本发明实施例中提供的视频压缩方法,在需要对视频进行硬编码压缩时,获取原始视频数据中预设时长的第一视频数据,利用cq模式对第一视频数据进行压缩处理,并根据压缩结果确定预估码率,根据预估码率采用cq模式以外的预设模式对原始视频数据进行压缩处理,得到目标压缩视频。通过采用上述技术方案,可以合理地确定硬编码压缩时所采用的码率,兼顾视频压缩质量以及压缩效率,有效提升视频压缩效果。
在一些实施例中,所述根据所述预估码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频,包括:在所述预估码率与预设码率相同的情况下,根据所述预估码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频。这样设置的好处在于,当预估码率与预先设置的预设码率相同时,说明预设码率是合理的,无需再进行其他变换,直接采用预估码率进行压缩,提升压缩效率。
在一些实施例中,还可包括:在所述预估码率与预设码率不相同的情况下,基于等值映射原理,参考预设码率将所述预估码率从预估码率范围映射至设定映射码率范围,得到映射码率,其中,所述预设码率包含于所述预估码率范围内以及所述设定映射码率范围内;根据所述映射码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频。这样设置的好处在于,能够通过设置预估码率范围和设定映射码率范围对最终所采用的映射码率进行更加合理的限制。其中,预估码率范围和设定映射码率范围可根据实际情况进行设置,如根据需要进行视频分享的应用程序的实际情况进行设置。
进一步的,记所述预估码率范围的上限值为第一码率,下限值为第二码率;记所述设定映射码率范围的上限值为第三码率,下限值为第四码率;所述基于等值映射原理,利用所述预估码率、预设码率、预估码率范围以及设定映射码率范围,确定映射码率,包括:
当所述预估码率小于所述预设码率时,所述映射码率通过以下公式确定:
(预估码率-第二码率)/(预设码率-第二码率)=(映射码率-第四码率)/(预估码率-第四码率);
当所述预估码率大于所述预设码率时,所述映射码率通过以下公式确定:
(预估码率-预设码率)/(第一码率-预设码率)=(映射码率-预设码率)/(第三码率-预设码率)。
通过以上公式的计算,能够快速准确地得到映射码率,根据所述映射码率采用预设模式对所述原始视频数据进行压缩处理,能够快速得到画面质量较高的目标压缩视频,进一步提升视频压缩效果。
在一些实施例中,当所述预估码率小于或等于所述第二码率时,确定映射码率为所述第二码率;当所述预估码率大于或等于所述第一码率时,确定映射码率为所述第一码率。这样设置的好处在于,根据应用程序的具体需求将预估码率限制在合理的码率范围内。
在一些实施例中,所述利用cq模式对所述第一视频数据进行压缩处理,包括:配置设备本地的cq模式,并启动硬编码器;在所述硬编码器启动成功的情况下,利用所述硬编码器对所述第一视频数据进行压缩处理。这样设置的好处在于,可以快速判断出设备是否支持cq模式。示例性的,可以通过设备的操作系统中的用于配置硬编码器的接口进行cq模式的配置。例如,设备的操作系统为安卓时,可通过安卓提供的解耦配置cq模式。在配置完cq模式后,若硬编码器能够成功启动,则说明设备支持cq模式,则可利用硬编码器对第一视频数据进行压缩处理。
在一些实施例中,还可包括:在所述硬编码器启动失败的情况下,将所述第一视频数据发送至对应的服务器,以指示所述服务器利用cq模式对所述第一视频数据进行压缩处理,根据压缩结果确定预估码率,并返回所述预估码率。这样设置的好处在于,当设备本地不支持cq模式时,可以将第一视频数据发送至服务器,由服务器代为确定预估码率,并根据服务器返回的预估码率进行后续操作,提高本发明实施例视频压缩方案的可靠性。
在一些实施例中,所述根据所述预估码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频,包括:配置设备本地的预设模式,并重启硬编码器;根据所述预估码率通过所述硬编码器对所述原始视频数据进行压缩处理,得到目标压缩视频。这样设置的好处在于,通过配置预设模式并重启硬编码器,可以快速准确地实现采用预设模式进行视频压缩。
图2为本发明实施例提供的又一种视频压缩方法的流程示意图,该方法结合cq模式和vbr模式对视频进行压缩处理,如图2所示,该方法包括:
步骤201、在视频硬编码压缩事件被触发时,获取原始视频数据中预设时长的第一视频数据。
示例性的,在本步骤之前,还可包括:初始化预设码率br_preset,预估码率的有效范围,即预估码率范围[br_estimate_down,br_estimate_up],可映射的动态码率范围,即设定映射码率范围[br_map_down,br_map_up],其中br为bitrate(比特率)的简写。
原始视频数据可理解为被分享的源视频对应的数据,在检测到原始视频对应的码率超过预设码率阈值时或检测到原始视频对应的分辨率超过预设分辨率阈值,且满足硬编码压缩条件时,则可确定视频硬编码压缩事件被触发。在确定视频硬编码压缩事件被触发后,可先判断原始视频的总时长是否大于预设时长(t秒),若是,则进入码率探测流程,并估算出合理的编码码率,也即预估码率br_estimate。若判断出原始视频的总时长小于或等于预设时长,则可直接令预估码率等于预设码率,即br_estimate=br_preset。
示例性的,码率探测流程的首步即获取原始视频数据中预设时长的第一视频数据。可选的,获取原视频的帧率fps,假设探测的时长(即预设时长)为t秒,则预编码的视频帧的帧数为n=fps*t,也即第一视频数据包含n帧视频帧数据。
步骤202、配置设备本地的cq模式,并启动硬编码器,在硬编码器启动成功的情况下,利用硬编码器对第一视频数据进行压缩处理,得到压缩视频帧。
示例性的,通过操作系统提供的接口配置cq模式,并启动硬编码器,若启动成功,则说明cq模式可用,可循环编码n帧,得到n帧压缩后的视频帧。
可选的,若硬编码器启动失败,则可返回错误码并退出码率探测流程,直接根据预设码率采用vbr模式对原始视频数据进行压缩处理,得到目标压缩视频;也可将第一视频数据发送至对应的服务器,以指示服务器利用cq模式对第一视频数据进行压缩处理,根据压缩结果确定预估码率,并返回预估码率。
步骤203、根据压缩视频帧对应的总比特大小与所述预设时长的商确定预估码率。
示例性的,累计每一帧编码压缩之后压缩视频帧的比特大小s(i),其中i=0,1,…,n-1。最终计算出编码n帧的总大小,size=s(0) s(1) … s(n-1)。通过以下公式估算视频合理的编码码率br_estimate=size/t,随后,可关闭硬编码器并返回所估算的编码码率值,即预估码率。
步骤204、判断预估码率与预设码率是否相同,若是,则执行步骤206;否则,执行步骤205。
步骤205、基于等值映射原理,参考预设码率将预估码率从预估码率范围映射至设定映射码率范围,得到映射码率。
其中,所述预设码率包含于所述预估码率范围内以及所述设定映射码率范围内。记所述预估码率范围的上限值为第一码率(br_estimate_up),下限值为第二码率(br_estimate_down);记所述设定映射码率范围的上限值为第三码率(br_map_up),下限值为第四码率(br_map_down);所述基于等值映射原理,利用所述预估码率、预设码率、预估码率范围以及设定映射码率范围,确定映射码率,包括:
当预估码率(br_estimate)小于预设码率(br_preset)时,映射码率(br_map)通过以下公式1确定:
(br_estimate–br_estimate_down)/(br_preset–br_estimate_down)=(br_map–br_map_down)/(br_preset–br_map_down)公式1
当预估码率(br_estimate)大于预设码率(br_preset)时,映射码率(br_map)通过以下公式2确定:
(br_estimate–br_preset)/(br_estimate_up–br_preset)=(br_map–br_preset)/(br_map_up–br_preset)公式2
为了便于理解,下面进行举例说明:
假设预设码率为1mbps,预估码率范围为200kbps~2mbps,设定映射码率范围为400kbs~1.6mbps。采用cq模式预编码视频1秒(即预设时长为1秒)得到预估码率,并将预估码率限制在200k~2m范围内。
1)假设得到的预估码率为1mbps。不需要计算映射码率,即令映射码率直接等于1mbps。
2)假设得到的预估码率为600kbps。由于600k小于1m,则根据公式1将预估的600k映射到[400k,1m]区间内,即映射码率等于(600-200)/(1000-200)*(1000-400) 400,即700kbps。
3)假设得到的预估码率为1.2mbps。由于1.2m大于1m,则根据公式2将预估的1.2m映射到[1m,1.6m]区间内,即映射码率等于(1200-1000)/(2000-1000)*(1600-1000) 1000,即1120kbs。
步骤206、配置设备本地的vbr模式,并重启硬编码器。
步骤207、根据映射码率利用硬编码器对原始视频数据进行压缩处理,得到目标压缩视频。
本发明实施例提供的视频压缩方法,针对当前移动设备在采用硬编码方式对视频进行压缩时只能按照固定的码率进行视频压缩,在追求快速压缩前提下无法平衡视频质量和码率的问题,提出一种结合cq和vbr模式的动态码率硬编码压缩方案,利用cq模式先进行码率探测,得到合理的预估码率,再依据预设码率、预估码率范围映射以及设定映射码率范围进一步确定vbr模式所采用的编码码率,既保留硬编快速压缩的优点,同时兼顾了视频质量与码率平衡,从而实现更佳的视频压缩效果。
图3为本发明实施例提供的一种视频压缩装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在移动设备中,可通过执行视频压缩方法来对视频进行压缩处理。如图3所示,该装置包括:
数据提取模块301,用于在视频硬编码压缩事件被触发时,获取原始视频数据中预设时长的第一视频数据;
预估码率确定模块302,用于利用恒定质量cq模式对所述第一视频数据进行压缩处理,并根据压缩结果确定预估码率;
视频压缩模块303,用于根据所述预估码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频,其中,所述预设模式与所述cq模式不同。
本发明实施例提供的视频压缩装置,在需要对视频进行硬编码压缩时,获取原始视频数据中预设时长的第一视频数据,利用cq模式对第一视频数据进行压缩处理,并根据压缩结果确定预估码率,根据预估码率采用cq模式以外的预设模式对原始视频数据进行压缩处理,得到目标压缩视频。通过采用上述技术方案,可以合理地确定硬编码压缩时所采用的码率,兼顾视频压缩质量以及压缩效率,有效提升视频压缩效果。
在一些实施例中,所述利用cq模式对所述第一视频数据进行压缩处理,并根据压缩结果确定预估码率,包括:
利用cq模式对第一视频数据中包含的视频帧进行压缩处理,得到压缩视频帧;
根据所述压缩视频帧对应的比特大小确定预估码率。
在一些实施例中,所述根据所述压缩视频帧对应的比特大小确定预估码率,包括:
根据所述压缩视频帧对应的总比特大小与所述预设时长的商确定预估码率。
在一些实施例中,所述根据所述预估码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频,包括:
在所述预估码率与预设码率相同的情况下,根据所述预估码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频。
在一些实施例中,视频压缩模块还用于:
在所述预估码率与预设码率不相同的情况下,基于等值映射原理,参考预设码率将所述预估码率从预估码率范围映射至设定映射码率范围,得到映射码率,其中,所述预设码率包含于所述预估码率范围内以及所述设定映射码率范围内;
根据所述映射码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频。
在一些实施例中,记所述预估码率范围的上限值为第一码率,下限值为第二码率;记所述设定映射码率范围的上限值为第三码率,下限值为第四码率;所述基于等值映射原理,利用所述预估码率、预设码率、预估码率范围以及设定映射码率范围,确定映射码率,包括:
当所述预估码率小于所述预设码率时,所述映射码率通过以下公式确定:
(预估码率-第二码率)/(预设码率-第二码率)=(映射码率-第四码率)/(预估码率-第四码率);
当所述预估码率大于所述预设码率时,所述映射码率通过以下公式确定:
(预估码率-预设码率)/(第一码率-预设码率)=(映射码率-预设码率)/(第三码率-预设码率)。
在一些实施例中,当所述预估码率小于或等于所述第二码率时,确定映射码率为所述第二码率;当所述预估码率大于或等于所述第一码率时,确定映射码率为所述第一码率。
在一些实施例中,所述利用cq模式对所述第一视频数据进行压缩处理,包括:
配置设备本地的cq模式,并启动硬编码器;
在所述硬编码器启动成功的情况下,利用所述硬编码器对所述第一视频数据进行压缩处理。
在一些实施例中,视频压缩模块还用于:
在所述硬编码器启动失败的情况下,将所述第一视频数据发送至对应的服务器,以指示所述服务器利用cq模式对所述第一视频数据进行压缩处理,根据压缩结果确定预估码率,并返回所述预估码率。
在一些实施例中,所述根据所述预估码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频,包括:
配置设备本地的预设模式,并重启硬编码器;
根据所述预估码率利用所述硬编码器对所述原始视频数据进行压缩处理,得到目标压缩视频。
在一些实施例中,所述预设模式包括可变码率vbr模式和/或恒定码率cbr模式。
在一些实施例中,所述视频硬编码压缩事件被触发,包括:
检测到原始视频对应的码率超过预设码率阈值或检测到原始视频对应的分辨率超过预设分辨率阈值,且满足硬编码压缩条件时,确定视频硬编码压缩事件被触发。
本发明实施例提供了一种移动设备,该移动设备中可集成本发明实施例提供的视频压缩装置。图4为本发明实施例提供的一种移动设备的结构框图。移动设备400包括存储器401、处理器402及存储在存储器401上并可在处理器402上运行的计算机程序,所述处理器402执行所述计算机程序时实现本发明实施例提供的视频压缩方法。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例提供的视频压缩方法。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如cd-rom、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如dram、ddrram、sram、edoram,兰巴斯(rambus)ram等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
上述实施例中提供的视频压缩装置、设备以及存储介质可执行本发明任意实施例所提供的视频压缩方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的视频压缩方法。
注意,上述仅为本发明的较佳实施例。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由权利要求范围决定。
1.一种视频压缩方法,其特征在于,包括:
在视频硬编码压缩事件被触发时,获取原始视频数据中预设时长的第一视频数据;
利用恒定质量cq模式对所述第一视频数据进行压缩处理,并根据压缩结果确定预估码率;
根据所述预估码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频,其中,所述预设模式与所述cq模式不同。
2.根据权利要求1所述的方法,其特征在于,所述利用cq模式对所述第一视频数据进行压缩处理,并根据压缩结果确定预估码率,包括:
利用cq模式对第一视频数据中包含的视频帧进行压缩处理,得到压缩视频帧;
根据所述压缩视频帧对应的比特大小确定预估码率。
3.根据权利要求2所述的方法,其特征在于,所述根据所述压缩视频帧对应的比特大小确定预估码率,包括:
根据所述压缩视频帧对应的总比特大小与所述预设时长的商确定预估码率。
4.根据权利要求1所述的方法,其特征在于,所述根据所述预估码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频,包括:
在所述预估码率与预设码率相同的情况下,根据所述预估码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频。
5.根据权利要求4所述的方法,其特征在于,还包括:
在所述预估码率与预设码率不相同的情况下,基于等值映射原理,参考预设码率将所述预估码率从预估码率范围映射至设定映射码率范围,得到映射码率,其中,所述预设码率包含于所述预估码率范围内以及所述设定映射码率范围内;
根据所述映射码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频。
6.根据权利要求5所述的方法,其特征在于,记所述预估码率范围的上限值为第一码率,下限值为第二码率;记所述设定映射码率范围的上限值为第三码率,下限值为第四码率;所述基于等值映射原理,利用所述预估码率、预设码率、预估码率范围以及设定映射码率范围,确定映射码率,包括:
当所述预估码率小于所述预设码率时,所述映射码率通过以下公式确定:
(预估码率-第二码率)/(预设码率-第二码率)=(映射码率-第四码率)/(预估码率-第四码率);
当所述预估码率大于所述预设码率时,所述映射码率通过以下公式确定:
(预估码率-预设码率)/(第一码率-预设码率)=(映射码率-预设码率)/(第三码率-预设码率)。
7.根据权利要求6所述的方法,其特征在于,当所述预估码率小于或等于所述第二码率时,确定映射码率为所述第二码率;当所述预估码率大于或等于所述第一码率时,确定映射码率为所述第一码率。
8.根据权利要求1所述的方法,其特征在于,所述利用cq模式对所述第一视频数据进行压缩处理,包括:
配置设备本地的cq模式,并启动硬编码器;
在所述硬编码器启动成功的情况下,利用所述硬编码器对所述第一视频数据进行压缩处理。
9.根据权利要求8所述的方法,其特征在于,还包括:
在所述硬编码器启动失败的情况下,将所述第一视频数据发送至对应的服务器,以指示所述服务器利用cq模式对所述第一视频数据进行压缩处理,根据压缩结果确定预估码率,并返回所述预估码率。
10.根据权利要求8所述的方法,其特征在于,所述根据所述预估码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频,包括:
配置设备本地的预设模式,并重启硬编码器;
根据所述预估码率利用所述硬编码器对所述原始视频数据进行压缩处理,得到目标压缩视频。
11.根据权利要求1-10所述的方法,其特征在于,所述预设模式包括可变码率vbr模式和/或恒定码率cbr模式。
12.根据权利要求11所述的方法,其特征在于,所述视频硬编码压缩事件被触发,包括:
检测到原始视频对应的码率超过预设码率阈值或检测到原始视频对应的分辨率超过预设分辨率阈值,且满足硬编码压缩条件时,确定视频硬编码压缩事件被触发。
13.一种视频压缩装置,其特征在于,包括:
数据提取模块,用于在视频硬编码压缩事件被触发时,获取原始视频数据中预设时长的第一视频数据;
预估码率确定模块,用于利用恒定质量cq模式对所述第一视频数据进行压缩处理,并根据压缩结果确定预估码率;
视频压缩模块,用于根据所述预估码率采用预设模式对所述原始视频数据进行压缩处理,得到目标压缩视频,其中,所述预设模式与所述cq模式不同。
14.一种移动设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-12任一项所述的方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-12中任一所述的方法。
技术总结