CN107343205B - 一种长期参考码流的编码方法及编码装置 - Google Patents
一种长期参考码流的编码方法及编码装置 Download PDFInfo
- Publication number
- CN107343205B CN107343205B CN201610275515.1A CN201610275515A CN107343205B CN 107343205 B CN107343205 B CN 107343205B CN 201610275515 A CN201610275515 A CN 201610275515A CN 107343205 B CN107343205 B CN 107343205B
- Authority
- CN
- China
- Prior art keywords
- frame
- code stream
- term reference
- idr
- stream data
- 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.)
- Active
Links
- 230000007774 longterm Effects 0.000 title claims abstract description 170
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013139 quantization Methods 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 3
- 230000015572 biosynthetic process Effects 0.000 abstract description 5
- 238000003786 synthesis reaction Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 14
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000002194 synthesizing effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007430 reference method Methods 0.000 description 1
Abstract
本发明公开了一种长期参考码流的编码方法及编码装置,用以解决原有码流生成设备不支持长期参考编码方式,成本较高的问题。该方法为:码流生成设备选取一个IDR帧作为当前长期参考帧,分别对除当前长期参考帧之外的其他每一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的目标P帧码流数据,分别将除当前长期参考帧之外的其他每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据。这样,利用原有码流生成设备,就可以实现长期参考码流的合成,实现过程简单、高效,保证了图像质量,降低了编码码率,节省了存储空间。
Description
技术领域
本发明涉及视频编码领域,尤其涉及一种长期参考码流的编码方法及编码装置。
背景技术
目前,码流生成设备中的编码器在对采集到的YUV数据进行编码后,生成的编码码流格式如图1(a)所示,即为IDRpp...ppIDRpp...pp,其中,即时解码刷新帧(InstantaneousDecoding Refresh,IDR)的码流大小通常是前向预测编码帧P帧的码流大小的几倍甚至是十几倍,在对重建YUV数据进行存储时,会占用大量的存储资源。
现有技术中,通常采用如图1(b)所示的单IDR帧全P帧的编码码流格式(IDRpp...ppppp...pp),降低码流大小,节省存储资源,但是,上述单IDR帧全P帧的编码码流格式中,随着P帧的延续,存在由于物体移动或者噪声引入,导致图像的画质越来越差的问题,以及存在由于任意一个P帧的码流数据出现错误,导致上述任意一个P帧后的所有P帧码流解码失败的问题。
为了解决上述单IDR帧全P帧的编码码流格式存在的问题,提出了一种长期参考编码码流的合成方法,生成的编码码流格式如图1(c)所示,具体的合成方法如下:
每一个设定间隔上的P帧(如图1(c)中的P_L1帧)均以第一个IDR帧为长期参考背景帧进行编码,其余的每一个P帧(如图1(c)中的P_L0帧)均以前一个P帧为参考帧进行编码,生成的编码码流格式为IDRpp...ppPpp...pp。
由此可知,由于设定间隔上的P_L1帧均是以第一个IDR帧为长期参考背景帧进行编码的,所以,在每一个P_L1帧对应的时刻均会对图像画质进行刷新,从而保证了图像呈现的效果,而且,若任意一个P帧的码流数据出现错误,也只能导致上述任意一个P帧所在的设定间隔内的P帧码流解码失败,不会对其它设定间隔内的P帧码流解码造成任何影响。
基于上述分析,虽然上述长期参考编码方式解决了上述单IDR帧全P帧的编码码流格式存在的问题,但是上述长期参考编码方式需要采用第一个IDR帧和设定间隔上的P_L1帧两种参考帧进行参考,大大增加了芯片的制作成本。而且,当前大多数的码流生成设备的编码器均是硬核编码器,不支持上述长期参考编码功能,若要采用上述长期参考编码方式,只能利用码流生成设备中的中央管理器(Central Processing Unit,CPU)来实现,这就对码流生成设备的性能要求更高,大多数的码流生成设备很难完成长期参考编码码流的合成。
发明内容
本发明实施例提供了一种长期参考码流的编码方法及编码装置,用以解决大多数码流生成设备均不支持现有技术中的长期参考编码方式,以及现有技术中的长期参考编码方式成本较高的问题。
本发明实施例提供的具体技术方案如下:
一种长期参考码流的编码方法,包括:
码流生成设备分别对采集到的每一个即时解码刷新IDR帧对应的原始YUV数据进行短期参考编码,生成相应的短期参考码流数据;
码流生成设备选取一个IDR帧作为当前长期参考帧,并基于所述当前长期参考帧,分别对除所述当前长期参考帧之外的其他每一个IDR帧对应的原始YUV数据进行P帧编码,并获得相应的目标P帧码流数据;
码流生成设备分别将除所述当前长期参考帧之外的其他每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据。
较佳的,码流生成设备对除所述当前长期参考帧之外的其他任意一个IDR帧对应的原始YUV数据进行P帧编码,并获得相应的目标P帧码流数据,包括:
码流生成设备获取所述任意一个IDR帧的量化参数QP值和QP变化量;
码流生成设备基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的目标P帧码流数据。
较佳的,码流生成设备获取所述任意一个IDR帧的QP变化量,包括:
码流生成设备进一步获得所述任意一个IDR帧对应的短期参考重建YUV数据;其中,所述任意一个IDR帧的短期参考重建YUV数据是:对所述任意一个IDR帧对应的原始YUV数据进行短期参考编码时生成的;
码流生成设备计算所述任意一个IDR帧的短期参考重建YUV数据,与对应的原始YUV数据之间的第一峰值信噪比PSNR;
码流生成设备基于所述第一PSNR,获取所述任意一个IDR帧的QP变化量。
较佳的,码流生成设备基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的目标P帧码流数据,包括:
码流生成设备基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行多次P帧编码,获得相应的多个P帧码流数据;
码流生成设备从所述多个P帧码流数据中,选取一个P帧码流数据,作为所述任意一个IDR帧的目标P帧码流数据。
较佳的,码流生成设备基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行多次P帧编码,获得相应的多个P帧码流数据,包括以下操作中至少两种:
码流生成设备基于所述当前长期参考帧,根据获取的所述QP值,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第一P帧码流数据;
码流生成设备基于所述当前长期参考帧,根据所述QP值与所述QP变化量之间的差值,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第二P帧码流数据;
码流生成设备基于所述当前长期参考帧,根据所述QP值与所述QP变化量之和,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第三P帧码流数据。
较佳的,码流生成设备从所述多个P帧码流数据中,选取一个P帧码流数据,作为所述任意一个IDR帧的目标P帧码流数据,包括:
码流生成设备进一步获得所述任意一个IDR帧对应的多个P帧重建YUV数据,其中,所述任意一个IDR帧对应的一个P帧重建YUV数据是:对所述任意一个IDR帧对应的原始YUV数据进行一次P帧编码时生成的,并且一个P帧重建YUV数据对应一个P帧码流数据;
码流生成设备分别计算所述任意一个IDR帧对应的每一个P帧重建YUV数据,与所述任意一个IDR帧对应的短期参考重建YUV数据之间的第二PSNR,获得所述任意一个IDR帧对应的多个第二PSNR;
码流生成设备从所述多个第二PSNR中,选取目标第二PSNR;
码流生成设备从所述多个P帧码流数据中,选取所述目标第二PSNR对应的P帧码流数据,作为所述任意一个IDR帧的目标P帧码流数据。
较佳的,码流生成设备选取一个IDR帧作为当前长期参考帧,包括:
码流生成设备将采集到的第一个IDR帧作为当前长期参考帧;或者,
码流生成设备确定任意一个目标第二PSNR不大于预设的门限值时,将所述任意一个目标第二PSNR对应的IDR帧作为当前长期参考帧。
较佳的,码流生成设备分别将除所述当前长期参考帧之外的其他每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据,包括:
码流生成设备从除所述当前长期参考帧之外的其他所有IDR帧中,筛选出所有的所述目标第二PSNR大于预设的门限值的IDR帧;
码流生成设备分别将筛选出的每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据。
较佳的,码流生成设备将筛选出的任意一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据,包括:
码流生成设备将筛选出的任意一个IDR帧的目标P帧码流数据对应的语法元素,按照预设的长期参考编码方式进行转换,并将所述任意一个IDR帧对应的短期参考码流数据,替换为转换后的目标P帧码流数据;或者,
码流生成设备直接将筛选出的任意一个IDR帧对应的短期参考码流数据,替换为相应的目标P帧码流数据。
一种长期参考码流的编码装置,包括:
第一编码单元,用于分别对采集到的每一个即时解码刷新IDR帧对应的原始YUV数据进行短期参考编码,生成相应的短期参考码流数据;
第二编码单元,用于选取一个IDR帧作为当前长期参考帧,并基于所述当前长期参考帧,分别对除所述当前长期参考帧之外的其他每一个IDR帧对应的原始YUV数据进行P帧编码,并获得相应的目标P帧码流数据;
替换单元,用于分别将除所述当前长期参考帧之外的其他每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据。
较佳的,对除所述当前长期参考帧之外的其他任意一个IDR帧对应的原始YUV数据进行P帧编码,并获得相应的目标P帧码流数据时,所述第二编码单元用于:
获取所述任意一个IDR帧的量化参数QP值和QP变化量;
基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的目标P帧码流数据。
较佳的,获取所述任意一个IDR帧的QP变化量时,所述第二编码单元用于:
进一步获得所述任意一个IDR帧对应的短期参考重建YUV数据;其中,所述任意一个IDR帧的短期参考重建YUV数据是:对所述任意一个IDR帧对应的原始YUV数据进行短期参考编码时生成的;
计算所述任意一个IDR帧的短期参考重建YUV数据,与对应的原始YUV数据之间的第一峰值信噪比PSNR;
基于所述第一PSNR,获取所述任意一个IDR帧的QP变化量。
较佳的,基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的目标P帧码流数据时,所述第二编码单元用于:
基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行多次P帧编码,获得相应的多个P帧码流数据;
从所述多个P帧码流数据中,选取一个P帧码流数据,作为所述任意一个IDR帧的目标P帧码流数据。
较佳的,基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行多次P帧编码,获得相应的多个P帧码流数据时,所述第二编码单元用于执行以下至少两种操作:
基于所述当前长期参考帧,根据获取的所述QP值,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第一P帧码流数据;
基于所述当前长期参考帧,根据所述QP值与所述QP变化量之间的差值,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第二P帧码流数据;
基于所述当前长期参考帧,根据所述QP值与所述QP变化量之和,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第三P帧码流数据。
较佳的,从所述多个P帧码流数据中,选取一个P帧码流数据,作为所述任意一个IDR帧的目标P帧码流数据时,所述第二编码单元用于:
进一步获得所述任意一个IDR帧对应的多个P帧重建YUV数据,其中,所述任意一个IDR帧对应的一个P帧重建YUV数据是:对所述任意一个IDR帧对应的原始YUV数据进行一次P帧编码时生成的,并且一个P帧重建YUV数据对应一个P帧码流数据;
分别计算所述任意一个IDR帧对应的每一个P帧重建YUV数据,与所述任意一个IDR帧对应的短期参考重建YUV数据之间的第二PSNR,获得所述任意一个IDR帧对应的多个第二PSNR;
从所述多个第二PSNR中,选取目标第二PSNR;
从所述多个P帧码流数据中,选取所述目标第二PSNR对应的P帧码流数据,作为所述任意一个IDR帧的目标P帧码流数据。
较佳的,选取一个IDR帧作为当前长期参考帧时,所述第二编码单元用于:
将采集到的第一个IDR帧作为当前长期参考帧;或者,
确定任意一个目标第二PSNR不大于预设的门限值时,将所述任意一个目标第二PSNR对应的IDR帧作为当前长期参考帧。
较佳的,分别将除所述当前长期参考帧之外的其他每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据时,所述替换单元用于:
从除所述当前长期参考帧之外的其他所有IDR帧中,筛选出所有的所述目标第二PSNR大于预设的门限值的IDR帧;
分别将筛选出的每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据。
较佳的,将筛选出的任意一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据时,所述替换单元用于:
将筛选出的任意一个IDR帧的目标P帧码流数据对应的语法元素,按照预设的长期参考编码方式进行转换,并将所述任意一个IDR帧对应的短期参考码流数据,替换为转换后的目标P帧码流数据;或者,
直接将筛选出的任意一个IDR帧对应的短期参考码流数据,替换为相应的目标P帧码流数据。
本发明实施例的有益效果如下:
本发明实施例中,既不需要对目前的码流生成设备做任何的硬件改动,也不需要修改编码协议,利用原有的码流生成设备,就可以对除当前长期参考帧之外的其他每一个IDR帧对应的原始YUV数据进行P帧编码,从而实现长期参考码流的合成,实现过程简单、高效,不占用过多的内部资源。
进一步地,码流生成设备根据获取的QP值和QP变化量,对IDR帧对应的原始YUV数据进行多次P帧编码,减小了P帧编码带来的过大损失,而且,只对目标第二PSNR大于预设的门限值的IDR帧的短期参考码流数据进行目标P帧码流数据的替换,在保证图像质量的同时,有效地降低了编码码率,节省了存储空间。
附图说明
图1(a)为现有技术中短期参考编码后生成的编码码流格式示意图;
图1(b)为现有技术中单IDR帧全P帧的编码码流格式示意图;
图1(c)为现有技术中利用长期参考方式生成的编码码流格式示意图;
图2为本发明实施例中码流生成设备的数据流结构示意图;
图3为本发明实施例中长期参考编码码流的合成方法的概况示意图;
图4为本发明实施例中长期参考编码码流的合成方法的具体流程示意图;
图5为本发明实施例中长期参考编码码流的合成装置的功能结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决大多数现有的码流生成设备均不支持现有技术中的长期参考编码方式、且合成长期参考编码码流的成本较高的问题,本发明实施例中,利用现有的码流生成设备,对采集到的每一IDR帧进行短期参考编码后,无需进行解码,可以直接选取一个IDR帧作为当前长期参考帧,并基于当前长期参考帧,分别对除当前长期参考帧之外的其他每一个IDR帧进行P帧编码,生成相应的目标P帧码流数据,以及分别将除上述当前长期参考帧之外的其他每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据。
下面通过具体实施例对本发明方案进行详细描述,当然,本发明并不限于以下实施例。
本发明实施例中,码流生成设备会实时采集监测到的数据帧(上述数据帧包括IDR帧和非IDR帧),并对采集到的数据帧进行短期参考编码,由于目前大多数码流生成设备均不支持长期参考编码方式,因此,生成的编码码流格式一般为IDRpp...ppIDRpp...pp的编码码流格式,参阅图2所示,为码流生成设备的数据流结构示意图,码流生成设备中的数据采集模块会实时采集监测到的每一个数据帧对应的原始YUV数据,并将采集到的每一个数据帧对应的原始YUV数据均存储到双倍速率同步动态随机存储器(Double Data Rate,DDR)中,码流生成设备中的编码器在对采集到的每一个数据帧对应的原始YUV数据进行短期参考编码时,需要先从DDR存储器中获取相关编码数据,再基于获取的相关编码数据,对采集到的每一个数据帧对应的原始YUV数据进行短期参考编码,以及将短期参考编码后生成的相应的短期参考码流数据和短期参考重建YUV数据存储至DDR存储器中。
参阅图3所示,本发明实施例中,一种长期参考码流的编码方法的具体流程如下:
步骤300:码流生成设备分别对采集到的每一个IDR帧对应的原始YUV数据进行短期参考编码,生成相应的短期参考码流数据。
具体地,执行步骤300时,可以采用但不限于以下方式:
码流生成设备实时采集监测到的每一个数据帧(上述数据帧包括IDR帧和非IDR帧)对应的原始YUV数据,并保存采集到的每一个数据帧对应的原始YUV数据,码流生成设备针对采集到的每一个数据帧对应的原始YUV数据进行短期参考编码时,存在但不限于以下三种情况:
第一种情况:码流生成设备确定当前进行短期参考编码的数据帧为IDR帧时,直接对上述IDR帧对应的原始YUV数据进行短期参考编码,获得相应的短期参考码流数据,进一步获得相应的短期参考重建YUV数据。
第二种情况:码流生成设备确定当前进行短期参考编码的数据帧为:相邻的两个IDR帧之间的第一个P帧时,基于相邻的两个IDR帧中的第一个IDR帧的短期参考重建YUV数据,对上述第一个P帧对应的原始YUV数据进行短期参考编码,获得相应的短期参考码流数据,进一步获得相应的短期参考重建YUV数据。
第三种情况:码流生成设备确定当前进行短期参考编码的数据帧为:相邻的两个IDR帧之间的除第一个P帧之外的其他所有P帧中的任意一个P帧时,基于上述任意一个P帧的前一个P帧的短期参考重建YUV数据,对上述任意一个P帧对应的原始YUV数据进行短期参考编码,获得相应的短期参考码流数据,进一步获得相应的短期参考重建YUV数据。
例如:码流生成设备1实时采集监测到的每一个数据帧对应的原始YUV数据,并保存采集到的每一个数据帧对应的原始YUV数据。
码流生成设备1针对采集到的每一个数据帧对应的原始YUV数据进行短期参考编码,下面仅以码流生成设备1对相邻的两个IDR帧之间的数据帧进行短期参考编码为例进行说明,假设IDR帧A与IDR帧B之间存在5个的P帧(依次为P帧1-P帧5)。
码流生成设备1确定当前进行短期参考编码的数据帧是IDR帧A时,基于IDR帧A的原始YUV数据A进行短期参考编码,生成短期参考码流数据A和短期参考重建YUV数据A。
码流生成设备1确定当前进行短期参考编码的数据帧是P帧1(即为IDR帧A与IDR帧B之间的第一个P帧)时,基于IDR帧A的短期参考重建YUV数据A,对P帧1的原始YUV数据1进行短期参考编码,生成短期参考码流数据1和短期参考重建YUV数据1。
码流生成设备1确定当前进行短期参考编码的数据帧是P帧2(即为IDR帧A与IDR帧B之间的除第一个P帧之外的其他所有P帧中的任意一个P帧)时,基于P帧1的短期参考重建YUV数据1,对P帧2的原始YUV数据2进行短期参考编码,生成短期参考码流数据2和短期参考重建YUV数据2。
码流生成设备1确定当前进行短期参考编码的数据帧是P帧3(即为IDR帧A与IDR帧B之间的除第一个P帧之外的其他所有P帧中的任意一个P帧)时,基于P帧2的短期参考重建YUV数据2,对P帧3的原始YUV数据3进行短期参考编码,生成短期参考码流数据3和短期参考重建YUV数据3。
码流生成设备1确定当前进行短期参考编码的数据帧是P帧4(即为IDR帧A与IDR帧B之间的除第一个P帧之外的其他所有P帧中的任意一个P帧)时,基于P帧3的短期参考重建YUV数据3,对P帧4的原始YUV数据4进行短期参考编码,生成短期参考码流数据4和短期参考重建YUV数据4。
码流生成设备1确定当前进行短期参考编码的数据帧是P帧5(即为IDR帧A与IDR帧B之间的除第一个P帧之外的其他所有P帧中的任意一个P帧)时,基于P帧4的短期参考重建YUV数据4,对P帧5的原始YUV数据5进行短期参考编码,生成短期参考码流数据5和短期参考重建YUV数据5。
码流生成设备1确定当前进行短期参考编码的数据帧是IDR帧B时,基于IDR帧B的原始YUV数据B进行短期参考编码,生成短期参考码流数据B和短期参考重建YUV数据B。
步骤310:码流生成设备选取一个IDR帧作为当前长期参考帧,并基于上述当前长期参考帧,分别对除上述当前长期参考帧之外的其他每一个IDR帧对应的原始YUV数据进行P帧编码,并获得相应的目标P帧码流数据。
具体地,执行步骤310时,可以采用但不限于以下步骤:
首先,码流生成设备选取一个IDR帧作为当前长期参考帧,分别计算除上述当前长期参考帧之外的其他每一个IDR帧的短期参考重建YUV数据,与对应的原始YUV数据之间的第一PSNR,并基于获得的所有第一PSNR,分别计算除上述当前长期参考帧之外的其他每一个IDR帧的QP变化量,并从编码标准中,直接获取除上述当前长期参考帧之外的其他每一个IDR帧的QP值。
然后,码流生成设备基于上述当前长期参考帧,根据获取的除上述当前长期参考帧之外的其他每一个IDR帧的QP值和对应的QP变化量,分别对除上述当前长期参考帧之外的其他每一个IDR帧对应的原始YUV数据,进行多次P帧编码,生成相应的多个P帧码流数据。
较佳的,码流生成设备对除上述当前长期参考帧之外的其他任意一个IDR帧对应的原始YUV数据,进行多次P帧编码,生成相应的多个P帧码流数据时,可以执行但不限于以下步骤中的至少两个步骤:
码流生成设备基于上述当前长期参考帧,根据获取的上述QP值,对上述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第一P帧码流数据,还可以进一步获得相应的P帧重建YUV数据。
码流生成设备基于上述当前长期参考帧,根据上述QP值与上述QP变化量之间的差值,对上述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第二P帧码流数据,还可以进一步获得相应的P帧重建YUV数据。
码流生成设备基于上述当前长期参考帧,根据上述QP值与上述QP变化量之和,对上述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第三P帧码流数据,还可以进一步获得相应的P帧重建YUV数据。
其次,码流生成设备获取除上述当前长期参考帧之外的其他每一个IDR帧对应的多个P帧重建YUV数据,并分别计算除上述当前长期参考帧之外的其他每一个IDR帧对应的多个第二PSNR,其中,一个IDR帧对应的多个第二PSNR为:上述一个IDR帧进行多次P帧编码后生成的每一个P帧重建YUV数据,与上述一个IDR帧对应的短期参考重建YUV数据之间的第二PSNR。
最后,码流生成设备从除上述当前长期参考帧之外的其他每一个IDR帧对应的多个P帧码流数据和多个P帧重建YUV数据中,分别为除上述当前长期参考帧之外的其他每一个IDR帧,选取目标P帧码流数据,较佳的,上述目标P帧码流数据可以是但不限于是:目标第二PSNR(可以是但不限于:最大第二PSNR)对应的P帧码流数据。
较佳的,码流生成设备选取一个IDR帧作为当前长期参考帧时,可以选取但不限于以下两种IDR帧作为当前长期参考帧:
第一种选取方式:选取采集到的第一个IDR帧作为当前长期参考帧。
第二种选取方式:确定任意一个目标第二PSNR(可以是但不限于:最大第二PSNR)不大于预设的门限值时,选取上述任意一个目标第二PSNR对应的IDR帧作为当前长期参考帧。
例如:继续沿用上例,假设码流生成设备1选取采集到的第一个IDR帧(即IDR帧A)作为当前长期参考帧,且当前进行P帧编码的数据帧是IDR帧B,下面仅以码流生成设备1对IDR帧B的原始YUV数据进行P帧编码为例进行说明,其中,码流生成设备1会对实时采集到的每一个IDR帧对应的原始YUV数据分别进行P帧编码。
码流生成设备1选取采集到的第一个IDR帧(即IDR帧A)作为当前长期参考帧,并计算IDR帧B的短期参考重建YUV数据,与对应的原始YUV数据之间的第一PSNR2。
码流生成设备1基于获得的第一PSNR 2,计算IDR帧B的QP变化量2,并从编码标准中,获取IDR帧B的QP值2。
码流生成设备1基于IDR帧A,分别根据QP值2,QP值2与QP变化量2之和,以及QP值2与QP变化量2之差,对IDR帧B进行3次P帧编码,获得相应的3个P帧码流数据(P帧码流数据B1、P帧码流数据B2、P帧码流数据B3),进一步获得相应的3个P帧重建YUV数据(P帧重建YUV数据B1、P帧重建YUV数据B2、P帧重建YUV数据B3)。
码流生成设备1根据IDR帧B对应的P帧重建YUV数据B1和短期参考重建YUV数据B,P帧重建YUV数据B2和短期参考重建YUV数据B,以及P帧重建YUV数据B3和短期参考重建YUV数据B,分别计算IDR帧B对应的第二PSNR B1,第二PSNR B2和第二PSNR B3。
码流生成设备1根据计算出的IDR帧B对应的3个第二PSNR(第二PSNR B1,第二PSNRB2和第二PSNR B3),选取数值最大的第二PSNR B1作为目标第二PSNR,并选取第二PSNR B1(即目标第二PSNR)对应的P帧码流数据B1作为IDR帧B的目标P帧码流数据。
步骤320:码流生成设备分别将除上述当前长期参考帧之外的其他每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据。
具体地,执行步骤320时,可以采用但不限于以下步骤:
首先,码流生成设备从除上述当前长期参考帧之外的其他所有IDR帧中,筛选出最大第二PSNR(即目标第二PSNR)大于预设的门限值的所有IDR帧。
然后,码流生成设备分别将筛选出的每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据。
较佳的,为了保证监控图像的画质清晰,码流生成设备只将最大第二PSNR(即目标第二PSNR)大于预设的门限值的IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据,不替换最大第二PSNR(即目标第二PSNR)不大于预设的门限值的IDR帧对应的短期参考码流数据。
值得说的是,码流生成设备分别将筛选出的每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据时,可以采用但不限于以下两种方式:
第一种方式:P帧硬编码方式,即由有集成解码功能的专用芯片来完成、无需操作系统和相应软件参与的编码方式。具体地,码流生成设备将筛选出的每一个IDR帧的目标P帧码流数据对应的语法元素,按照预设的长期参考编码方式进行转换,并将上述每一个IDR帧对应的短期参考码流数据,替换为相应的转换后的目标P帧码流数据。
其中,上述P帧硬编码方式,只涉及到目标P帧码流数据的片头转码,无需对短期参考码流数据进行解码再编码,实现过程简单、高效,不占用过多的内部资源,对码流生成设备的性能要求低,主流的码流生成设备均能完成长期参考编码码流的合成。
第二种方式:P帧软编码方式,即由CPU完成、需要操作系统支持且有相关软件参与的编码方式。具体地,码流生成设备直接将筛选出的每一个IDR帧对应的短期参考码流数据,替换为相应的目标P帧码流数据即可。
其中,上述P帧软编码方式,不需要进行语法元素转码,只是单帧参考编码,而且几秒钟才编码一帧,对码流生成设备的性能要求不高,主流的码流生成设备即可实现。
例如:继续沿用上例,码流生成设备1确定IDR帧B的第二PSNR B1(即目标第二PSNR)大于预设的门限值时,将IDR帧B对应的目标P帧码流数据对应的语法元素,按照长期参考编码方式进行转码,并将IDR帧B对应的短期参考码流数据B替换为转码后的目标P帧码流数据。
进一步地,码流生成设备1在将IDR帧B对应的短期参考码流数据B替换为转码后的目标P帧码流数据后,采用上述P帧编码方式,对采集到的每一个IDR帧分别进行P帧编码,并分别将最大第二PSNR(即目标第二PSNR)大于预设的门限值的所有IDR帧的短期参考码流数据替换为相应的转码后的目标P帧码流数据。
例如:码流生成设备1在将IDR帧B对应的短期参考码流数据B替换为转码后的目标P帧码流数据后,采用上述P帧编码方式,对采集到的IDR帧C的原始YUV数据进行P帧编码,确定IDR帧C的最大第二PSNR(即目标第二PSNR)小于预设的门限值时,不替换IDR帧C对应的短期参考码流数据C,以及在对采集到的下一个IDR帧(假设为IDR帧D)对应的原始YUV数据D进行相应的P帧编码时,可以选取IDR帧C作为当前长期参考帧。
下面采用具体的应用场景对上述实施例作进一步详细说明,参阅图4所示,本发明实施例中,长期参考码流的编码方法的具体流程如下:
步骤400:码流生成设备1实时采集监测到的每一个数据帧对应的原始YUV数据,并保存采集到的每一个数据帧对应的原始YUV数据。
步骤401:码流生成设备1针对采集到的每一个数据帧对应的原始YUV数据进行短期参考编码。
下面仅以码流生成设备1对相邻的两个IDR帧之间的数据帧进行短期参考编码为例进行说明,假设IDR帧A与IDR帧B之间存在5个的P帧(依次为P帧1-P帧5)。
码流生成设备1确定当前进行短期参考编码的数据帧是IDR帧A时,基于IDR帧A的原始YUV数据A进行短期参考编码,生成短期参考码流数据A和短期参考重建YUV数据A。
码流生成设备1确定当前进行短期参考编码的数据帧是P帧1(即为IDR帧A与IDR帧B之间的第一个P帧)时,基于IDR帧A的短期参考重建YUV数据A,对P帧1的原始YUV数据1进行短期参考编码,生成短期参考码流数据1和短期参考重建YUV数据1。
码流生成设备1确定当前进行短期参考编码的数据帧是P帧2(即为IDR帧A与IDR帧B之间的除第一个P帧之外的其他所有P帧中的任意一个P帧)时,基于P帧1的短期参考重建YUV数据1,对P帧2的原始YUV数据2进行短期参考编码,生成短期参考码流数据2和短期参考重建YUV数据2。
码流生成设备1确定当前进行短期参考编码的数据帧是P帧3(即为IDR帧A与IDR帧B之间的除第一个P帧之外的其他所有P帧中的任意一个P帧)时,基于P帧2的短期参考重建YUV数据2,对P帧3的原始YUV数据3进行短期参考编码,生成短期参考码流数据3和短期参考重建YUV数据3。
码流生成设备1确定当前进行短期参考编码的数据帧是P帧4(即为IDR帧A与IDR帧B之间的除第一个P帧之外的其他所有P帧中的任意一个P帧)时,基于P帧3的短期参考重建YUV数据3,对P帧4的原始YUV数据4进行短期参考编码,生成短期参考码流数据4和短期参考重建YUV数据4。
码流生成设备1确定当前进行短期参考编码的数据帧是P帧5(即为IDR帧A与IDR帧B之间的除第一个P帧之外的其他所有P帧中的任意一个P帧)时,基于P帧4的短期参考重建YUV数据4,对P帧5的原始YUV数据5进行短期参考编码,生成短期参考码流数据5和短期参考重建YUV数据5。
码流生成设备1确定当前进行短期参考编码的数据帧是IDR帧B时,基于IDR帧B的原始YUV数据B进行短期参考编码,生成短期参考码流数据B和短期参考重建YUV数据B。
步骤402:(下面仅以码流生成设备1对IDR帧B的原始YUV数据进行P帧编码为例进行说明,其中,码流生成设备1会对实时采集到的每一个IDR帧对应的原始YUV数据分别进行P帧编码)码流生成设备1选取采集到的第一个IDR帧(即IDR帧A)作为当前长期参考帧,并计算IDR帧B的短期参考重建YUV数据,与对应的原始YUV数据之间的第一PSNR2。
步骤403:码流生成设备1基于获得的第一PSNR 2,计算IDR帧B的QP变化量2,并获取IDR帧B的QP值2。
步骤404:码流生成设备1基于IDR帧A,分别根据QP值2,QP值2与QP变化量2之和,以及QP值2与QP变化量2之差,对IDR帧B进行3次P帧编码,生成相应的3个P帧码流数据(P帧码流数据B1、P帧码流数据B2、P帧码流数据B3)和3个P帧重建YUV数据(P帧重建YUV数据B1、P帧重建YUV数据B2、P帧重建YUV数据B3)。
步骤405:码流生成设备1根据IDR帧B对应的P帧重建YUV数据B1和短期参考重建YUV数据B,P帧重建YUV数据B2和短期参考重建YUV数据B,以及P帧重建YUV数据B3和短期参考重建YUV数据B,分别计算IDR帧B对应的第二PSNR B1,第二PSNR B2和第二PSNR B3。
步骤406:码流生成设备1根据计算出的IDR帧B对应的3个第二PSNR(第二PSNR B1,第二PSNR B2和第二PSNR B3),选取数值最大的第二PSNR B1作为目标第二PSNR,并选取第二PSNR B1(即目标第二PSNR)对应的P帧码流数据B1为IDR帧B的目标P帧码流数据。
步骤407:码流生成设备1确定IDR帧B的最大第二PSNR B1(即目标第二PSNR)大于预设的门限值时,将IDR帧B的目标P帧码流数据对应的语法元素,按照长期参考编码方式进行转码。
步骤408:码流生成设备1将IDR帧B对应的短期参考码流数据B,替换为转码后的目标P帧码流数据。
步骤409:码流生成设备1采用上述P帧编码方式,对采集到的每一个IDR帧分别进行P帧编码,并分别将最大第二PSNR(即目标第二PSNR)大于预设的门限值的所有IDR帧的短期参考码流数据替换为相应的转码后的目标P帧码流数据。
其中,码流生成设备1在将IDR帧B对应的短期参考码流数据B替换为转码后的目标P帧码流数据后,采用上述P帧编码方式,对采集到的IDR帧C的原始YUV数据进行P帧编码,确定IDR帧C的最大第二PSNR小于预设的门限值时,不替换IDR帧C对应的短期参考码流数据C,以及在对采集到的下一个IDR帧(假设为IDR帧D)对应的原始YUV数据D进行相应的P帧编码时,可以选取IDR帧C作为当前长期参考帧。
基于上述实施例,参阅图5所示,本发明实施例中,长期参考码流的编码装置,至少包括:
第一编码单元500,用于分别对采集到的每一个即时解码刷新IDR帧对应的原始YUV数据进行短期参考编码,生成相应的短期参考码流数据;
第二编码单元510,用于选取一个IDR帧作为当前长期参考帧,并基于上述当前长期参考帧,分别对除上述当前长期参考帧之外的其他每一个IDR帧对应的原始YUV数据进行P帧编码,并获得相应的目标P帧码流数据;
替换单元520,用于分别将除上述当前长期参考帧之外的其他每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据。
较佳的,对除上述当前长期参考帧之外的其他任意一个IDR帧对应的原始YUV数据进行P帧编码,并获得相应的目标P帧码流数据时,上述第二编码单元510用于:
获取上述任意一个IDR帧的量化参数QP值和QP变化量;
基于上述当前长期参考帧,根据获取的上述QP值和上述QP变化量,对上述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的目标P帧码流数据。
较佳的,获取上述任意一个IDR帧的QP变化量时,上述第二编码单元510用于:
进一步获得上述任意一个IDR帧对应的短期参考重建YUV数据;其中,上述任意一个IDR帧的短期参考重建YUV数据是:对上述任意一个IDR帧对应的原始YUV数据进行短期参考编码时生成的;
计算上述任意一个IDR帧的短期参考重建YUV数据,与对应的原始YUV数据之间的第一峰值信噪比PSNR;
基于上述第一PSNR,获取上述任意一个IDR帧的QP变化量。
较佳的,基于上述当前长期参考帧,根据获取的上述QP值和上述QP变化量,对上述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的目标P帧码流数据时,上述第二编码单元510用于:
基于上述当前长期参考帧,根据获取的上述QP值和上述QP变化量,对上述任意一个IDR帧对应的原始YUV数据进行多次P帧编码,获得相应的多个P帧码流数据;
从上述多个P帧码流数据中,选取一个P帧码流数据,作为上述任意一个IDR帧的目标P帧码流数据。
较佳的,基于上述当前长期参考帧,根据获取的上述QP值和上述QP变化量,对上述任意一个IDR帧对应的原始YUV数据进行多次P帧编码,获得相应的多个P帧码流数据时,上述第二编码单元510用于执行以下至少两种操作:
基于上述当前长期参考帧,根据获取的上述QP值,对上述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第一P帧码流数据;
基于上述当前长期参考帧,根据上述QP值与上述QP变化量之间的差值,对上述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第二P帧码流数据;
基于上述当前长期参考帧,根据上述QP值与上述QP变化量之和,对上述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第三P帧码流数据。
较佳的,从上述多个P帧码流数据中,选取一个P帧码流数据,作为上述任意一个IDR帧的目标P帧码流数据时,上述第二编码单元510用于:
进一步获得上述任意一个IDR帧对应的多个P帧重建YUV数据,其中,上述任意一个IDR帧对应的一个P帧重建YUV数据是:对上述任意一个IDR帧对应的原始YUV数据进行一次P帧编码时生成的,并且一个P帧重建YUV数据对应一个P帧码流数据;
分别计算上述任意一个IDR帧对应的每一个P帧重建YUV数据,与上述任意一个IDR帧对应的短期参考重建YUV数据之间的第二PSNR,获得上述任意一个IDR帧对应的多个第二PSNR;
从上述多个第二PSNR中,选取目标第二PSNR;
从上述多个P帧码流数据中,选取上述目标第二PSNR对应的P帧码流数据,作为上述任意一个IDR帧的目标P帧码流数据。
较佳的,选取一个IDR帧作为当前长期参考帧时,上述第二编码单元510用于:
将采集到的第一个IDR帧作为当前长期参考帧;或者,
确定任意一个目标第二PSNR不大于预设的门限值时,将上述任意一个目标第二PSNR对应的IDR帧作为当前长期参考帧。
较佳的,分别将除上述当前长期参考帧之外的其他每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据时,上述替换单元520用于:
从除上述当前长期参考帧之外的其他所有IDR帧中,筛选出所有的上述目标第二PSNR大于预设的门限值的IDR帧;
分别将筛选出的每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据。
较佳的,将筛选出的任意一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据时,上述替换单元520用于:
将筛选出的任意一个IDR帧的目标P帧码流数据对应的语法元素,按照预设的长期参考编码方式进行转换,并将上述任意一个IDR帧对应的短期参考码流数据,替换为转换后的目标P帧码流数据;或者,
直接将筛选出的任意一个IDR帧对应的短期参考码流数据,替换为相应的目标P帧码流数据。
综上所述,本发明实施例中,码流生成设备对采集到的每一个IDR帧进行短期参考编码后,选取一个IDR帧作为当前长期参考帧,并基于当前长期参考帧,分别对除当前长期参考帧之外的其他每一个IDR帧进行P帧编码,生成相应的目标P帧码流数据,以及分别将除所述当前长期参考帧之外的其他每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据。这样,既不需要对目前的码流生成设备做任何的硬件改动,也不需要修改编码协议,利用原有的码流生成设备,就可以对除当前长期参考帧之外的其他每一个IDR帧对应的原始YUV数据进行P帧编码,从而实现长期参考码流的合成,实现过程简单、高效,不占用过多的内部资源。
进一步地,码流生成设备根据获取的QP值和QP变化量,对IDR帧对应的原始YUV数据进行多次P帧编码,从而减小了P帧编码带来的过大损失,而且只对目标第二PSNR大于预设的门限值的IDR帧的短期参考码流数据进行目标P帧码流数据的替换,在保证图像质量的同时,有效地降低了编码码率,节省了存储空间。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (18)
1.一种长期参考码流的编码方法,其特征在于,包括:
码流生成设备分别对采集到的每一个即时解码刷新IDR帧对应的原始YUV数据进行短期参考编码,生成相应的短期参考码流数据;
码流生成设备选取一个IDR帧作为当前长期参考帧,并基于所述当前长期参考帧,分别对除所述当前长期参考帧之外的其他每一个IDR帧对应的原始YUV数据进行P帧编码,并获得相应的目标P帧码流数据;
码流生成设备分别将除所述当前长期参考帧之外的其他每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据。
2.如权利要求1所述的方法,其特征在于,码流生成设备对除所述当前长期参考帧之外的其他任意一个IDR帧对应的原始YUV数据进行P帧编码,并获得相应的目标P帧码流数据,包括:
码流生成设备获取所述任意一个IDR帧的量化参数QP值和QP变化量;
码流生成设备基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的目标P帧码流数据。
3.如权利要求2所述的方法,其特征在于,码流生成设备获取所述任意一个IDR帧的QP变化量,包括:
码流生成设备进一步获得所述任意一个IDR帧对应的短期参考重建YUV数据;其中,所述任意一个IDR帧的短期参考重建YUV数据是:对所述任意一个IDR帧对应的原始YUV数据进行短期参考编码时生成的;
码流生成设备计算所述任意一个IDR帧的短期参考重建YUV数据,与对应的原始YUV数据之间的第一峰值信噪比PSNR;
码流生成设备基于所述第一PSNR,获取所述任意一个IDR帧的QP变化量。
4.如权利要求2所述的方法,其特征在于,码流生成设备基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的目标P帧码流数据,包括:
码流生成设备基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行多次P帧编码,获得相应的多个P帧码流数据;
码流生成设备从所述多个P帧码流数据中,选取一个P帧码流数据,作为所述任意一个IDR帧的目标P帧码流数据。
5.如权利要求4所述的方法,其特征在于,码流生成设备基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行多次P帧编码,获得相应的多个P帧码流数据,包括以下操作中至少两种:
码流生成设备基于所述当前长期参考帧,根据获取的所述QP值,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第一P帧码流数据;
码流生成设备基于所述当前长期参考帧,根据所述QP值与所述QP变化量之间的差值,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第二P帧码流数据;
码流生成设备基于所述当前长期参考帧,根据所述QP值与所述QP变化量之和,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第三P帧码流数据。
6.如权利要求4所述的方法,其特征在于,码流生成设备从所述多个P帧码流数据中,选取一个P帧码流数据,作为所述任意一个IDR帧的目标P帧码流数据,包括:
码流生成设备进一步获得所述任意一个IDR帧对应的多个P帧重建YUV数据,其中,所述任意一个IDR帧对应的一个P帧重建YUV数据是:对所述任意一个IDR帧对应的原始YUV数据进行一次P帧编码时生成的,并且一个P帧重建YUV数据对应一个P帧码流数据;
码流生成设备分别计算所述任意一个IDR帧对应的每一个P帧重建YUV数据,与所述任意一个IDR帧对应的短期参考重建YUV数据之间的第二PSNR,获得所述任意一个IDR帧对应的多个第二PSNR;
码流生成设备从所述多个第二PSNR中,选取目标第二PSNR;
码流生成设备从所述多个P帧码流数据中,选取所述目标第二PSNR对应的P帧码流数据,作为所述任意一个IDR帧的目标P帧码流数据。
7.如权利要求6所述的方法,其特征在于,码流生成设备选取一个IDR帧作为当前长期参考帧,包括:
码流生成设备将采集到的第一个IDR帧作为当前长期参考帧;或者,
码流生成设备确定任意一个目标第二PSNR不大于预设的门限值时,将所述任意一个目标第二PSNR对应的IDR帧作为当前长期参考帧。
8.如权利要求6所述的方法,其特征在于,码流生成设备分别将除所述当前长期参考帧之外的其他每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据,包括:
码流生成设备从除所述当前长期参考帧之外的其他所有IDR帧中,筛选出所有的所述目标第二PSNR大于预设的门限值的IDR帧;
码流生成设备分别将筛选出的每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据。
9.如权利要求8所述的方法,其特征在于,码流生成设备将筛选出的任意一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据,包括:
码流生成设备将筛选出的任意一个IDR帧的目标P帧码流数据对应的语法元素,按照预设的长期参考编码方式进行转换,并将所述任意一个IDR帧对应的短期参考码流数据,替换为转换后的目标P帧码流数据;或者,
码流生成设备直接将筛选出的任意一个IDR帧对应的短期参考码流数据,替换为相应的目标P帧码流数据。
10.一种长期参考码流的编码装置,其特征在于,包括:
第一编码单元,用于分别对采集到的每一个即时解码刷新IDR帧对应的原始YUV数据进行短期参考编码,生成相应的短期参考码流数据;
第二编码单元,用于选取一个IDR帧作为当前长期参考帧,并基于所述当前长期参考帧,分别对除所述当前长期参考帧之外的其他每一个IDR帧对应的原始YUV数据进行P帧编码,并获得相应的目标P帧码流数据;
替换单元,用于分别将除所述当前长期参考帧之外的其他每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据。
11.如权利要求10所述的编码装置,其特征在于,对除所述当前长期参考帧之外的其他任意一个IDR帧对应的原始YUV数据进行P帧编码,并获得相应的目标P帧码流数据时,所述第二编码单元用于:
获取所述任意一个IDR帧的量化参数QP值和QP变化量;
基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的目标P帧码流数据。
12.如权利要求11所述的编码装置,其特征在于,获取所述任意一个IDR帧的QP变化量时,所述第二编码单元用于:
进一步获得所述任意一个IDR帧对应的短期参考重建YUV数据;其中,所述任意一个IDR帧的短期参考重建YUV数据是:对所述任意一个IDR帧对应的原始YUV数据进行短期参考编码时生成的;
计算所述任意一个IDR帧的短期参考重建YUV数据,与对应的原始YUV数据之间的第一峰值信噪比PSNR;
基于所述第一PSNR,获取所述任意一个IDR帧的QP变化量。
13.如权利要求11所述的编码装置,其特征在于,基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的目标P帧码流数据时,所述第二编码单元用于:
基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行多次P帧编码,获得相应的多个P帧码流数据;
从所述多个P帧码流数据中,选取一个P帧码流数据,作为所述任意一个IDR帧的目标P帧码流数据。
14.如权利要求13所述的编码装置,其特征在于,基于所述当前长期参考帧,根据获取的所述QP值和所述QP变化量,对所述任意一个IDR帧对应的原始YUV数据进行多次P帧编码,获得相应的多个P帧码流数据时,所述第二编码单元用于执行以下至少两种操作:
基于所述当前长期参考帧,根据获取的所述QP值,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第一P帧码流数据;
基于所述当前长期参考帧,根据所述QP值与所述QP变化量之间的差值,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第二P帧码流数据;
基于所述当前长期参考帧,根据所述QP值与所述QP变化量之和,对所述任意一个IDR帧对应的原始YUV数据进行P帧编码,获得相应的第三P帧码流数据。
15.如权利要求13所述的编码装置,其特征在于,从所述多个P帧码流数据中,选取一个P帧码流数据,作为所述任意一个IDR帧的目标P帧码流数据时,所述第二编码单元用于:
进一步获得所述任意一个IDR帧对应的多个P帧重建YUV数据,其中,所述任意一个IDR帧对应的一个P帧重建YUV数据是:对所述任意一个IDR帧对应的原始YUV数据进行一次P帧编码时生成的,并且一个P帧重建YUV数据对应一个P帧码流数据;
分别计算所述任意一个IDR帧对应的每一个P帧重建YUV数据,与所述任意一个IDR帧对应的短期参考重建YUV数据之间的第二PSNR,获得所述任意一个IDR帧对应的多个第二PSNR;
从所述多个第二PSNR中,选取目标第二PSNR;
从所述多个P帧码流数据中,选取所述目标第二PSNR对应的P帧码流数据,作为所述任意一个IDR帧的目标P帧码流数据。
16.如权利要求15所述的编码装置,其特征在于,选取一个IDR帧作为当前长期参考帧时,所述第二编码单元用于:
将采集到的第一个IDR帧作为当前长期参考帧;或者,
确定任意一个目标第二PSNR不大于预设的门限值时,将所述任意一个目标第二PSNR对应的IDR帧作为当前长期参考帧。
17.如权利要求15所述的编码装置,其特征在于,分别将除所述当前长期参考帧之外的其他每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据时,所述替换单元用于:
从除所述当前长期参考帧之外的其他所有IDR帧中,筛选出所有的所述目标第二PSNR大于预设的门限值的IDR帧;
分别将筛选出的每一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据。
18.如权利要求17所述的编码装置,其特征在于,将筛选出的任意一个IDR帧对应的短期参考码流数据替换为相应的目标P帧码流数据时,所述替换单元用于:
将筛选出的任意一个IDR帧的目标P帧码流数据对应的语法元素,按照预设的长期参考编码方式进行转换,并将所述任意一个IDR帧对应的短期参考码流数据,替换为转换后的目标P帧码流数据;或者,
直接将筛选出的任意一个IDR帧对应的短期参考码流数据,替换为相应的目标P帧码流数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610275515.1A CN107343205B (zh) | 2016-04-28 | 一种长期参考码流的编码方法及编码装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610275515.1A CN107343205B (zh) | 2016-04-28 | 一种长期参考码流的编码方法及编码装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107343205A CN107343205A (zh) | 2017-11-10 |
CN107343205B true CN107343205B (zh) | 2019-07-16 |
Family
ID=
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102378008A (zh) * | 2011-11-02 | 2012-03-14 | 深圳市融创天下科技股份有限公司 | 一种减少播放等待时间的视频编码方法、装置及系统 |
CN103167283A (zh) * | 2011-12-19 | 2013-06-19 | 华为技术有限公司 | 一种视频编码方法及设备 |
CN104519364A (zh) * | 2014-12-10 | 2015-04-15 | 北京中星微电子有限公司 | 一种视频编码方法及装置 |
WO2016002140A1 (ja) * | 2014-07-03 | 2016-01-07 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置 |
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102378008A (zh) * | 2011-11-02 | 2012-03-14 | 深圳市融创天下科技股份有限公司 | 一种减少播放等待时间的视频编码方法、装置及系统 |
CN103167283A (zh) * | 2011-12-19 | 2013-06-19 | 华为技术有限公司 | 一种视频编码方法及设备 |
WO2016002140A1 (ja) * | 2014-07-03 | 2016-01-07 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置 |
CN104519364A (zh) * | 2014-12-10 | 2015-04-15 | 北京中星微电子有限公司 | 一种视频编码方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102447906B (zh) | 低延时视频解码 | |
JP6233984B2 (ja) | マルチビュー・ビデオ符号化のための仮想参照デコーダ | |
KR101425602B1 (ko) | 영상 부호화/복호화 장치 및 그 방법 | |
RU2013158832A (ru) | Сокращение задержки при кодировании и декодировании видео | |
CN109391825A (zh) | 一种视频转码方法及其装置、服务器、可读存储介质 | |
CN110049336B (zh) | 视频编码方法和视频解码方法 | |
AU2007342468A1 (en) | Hypothetical reference decoder for scalable video coding | |
US9014278B2 (en) | For error correction in distributed video coding | |
US11381816B2 (en) | Method and system for real-time content-adaptive transcoding of video content on mobile devices to save network bandwidth during video sharing | |
CN107333133B (zh) | 一种码流接收设备的码流编码的方法及装置 | |
CN103098471A (zh) | 用于多层画面编码/解码的设备和方法 | |
KR100878809B1 (ko) | 비디오 신호의 디코딩 방법 및 이의 장치 | |
TW201803344A (zh) | 一種圖像編解碼方法及裝置 | |
CN109672897B (zh) | 全景视频编码方法及装置 | |
CN107005700B (zh) | 用于组成中间视频表示的方法 | |
JP2015507902A5 (ja) | 信号をデコードする方法、コンピュータプログラム及びデコーダ並びに信号をエンコードする方法、コンピュータプログラム及びエンコーダ | |
US20140185667A1 (en) | Efficient re-transcoding of key-frame-aligned unencrypted assets | |
BRPI0721178A2 (pt) | Método e sistema escolonável para extração de fluxo de bits | |
US10609383B2 (en) | Video compression using down-sampling patterns in two phases | |
AU2007201403A1 (en) | Improvement for Spatial Wyner Ziv coding | |
CN110572672B (zh) | 视频编解码方法和装置、存储介质及电子装置 | |
CN107343205B (zh) | 一种长期参考码流的编码方法及编码装置 | |
CN104168482B (zh) | 一种视频编解码方法及装置 | |
CN107343205A (zh) | 一种长期参考码流的编码方法及编码装置 | |
WO2016093752A1 (en) | Stream access for adaptive streaming of video |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |