视频编码方法和用于减小编码视频的文件大小的方法与流程

文档序号:24387749发布日期:2021-03-23 11:22阅读:127来源:国知局
视频编码方法和用于减小编码视频的文件大小的方法与流程

本发明涉及视频编码方法。本发明还涉及一种减小根据该视频编码方法编码的编码视频流的文件大小的方法。另外,被配置为执行该视频编码方法的解码器以及处理器形成本发明的部分,该处理器被配置为执行减小根据该视频编码方法编码的编码视频流的文件大小的方法。



背景技术:

针对捕获的视频(例如,针对监控视频),存在对长期视频存储的日益增长的需求。然而,长期视频存储需要存储空间。一些用于减小长期视频存储的存储空间的可用选项是接受针对已被长时间存储的未使用视频的较低质量和/或较低帧速率。然而,这通常需要对未使用视频的转码。

另一不需要转码的选项是,针对编码视频流首先移除增量帧(在h.264情况下的p-帧和/或b-帧),并且其后移除关键帧(在h.264情况下的i-帧)。因为关键帧是文件大小的主要贡献者,从仅移除增量帧(deltaframe)中将会收益甚微。因此,为了节省文件大小,视频流中的许多信息需要被移除。

因此,存在对不需要转码和/或不用牺牲太多视频流的信息而减小未使用视频的文件大小的方法的需要。



技术实现要素:

目标在于缓解、减轻或消除本领域中的上述缺陷和单一或任何组合中的不足中的一个或多个,并且至少部分解决上述问题。

根据第一方面,提供了一种视频编码方法。该视频编码方法包括:将原始视频数据的一系列图像编码成包括关键帧和增量帧的编码视频流。结合编码,增量帧以包括多个时间层的分层预测模式被组织。该方法进一步包括:针对关键帧中的至少一些关键帧,将隐藏增量帧添加到编码视频流,其中,每个隐藏增量帧:对应于关键帧、基于与所对应的关键帧相同的原始视频数据并且参考编码视频流中的先前关键帧。

本方法提供具有帧结构的编码视频流,该帧结构提供对编码视频流的方便和容易处理的文件大小减小。这因为至少一些关键帧可稍后被对应的隐藏增量帧取代。因此,具有通过本方法所得到的帧结构的编码视频流的文件大小,可稍后通过用对应的隐藏增量帧取代一个或多个关键帧的容易处理的技巧而被减小。相应地,提供了具有改进的帧结构的编码视频流。在该编码视频流中的改进层可以以简单且容易的处理方式在稍后的时间点上被减小文件大小。

每个隐藏增量帧可直接参考编码视频流中的先前关键帧。

编码视频流中的至少两个随后隐藏增量帧可直接参考编码视频流中的同一先前关键帧。

在编码视频流中,奇数增量帧可直接或间接参考每个关键帧。

分层预测模式可包括两个或更多个时间层。

根据第二方面,提供了一种非瞬态计算机可读存储介质。该非瞬态计算机可读存储介质具有存储在其上的指令,指令用于当在具有处理能力的设备上执行时,实现根据第一方面所述的方法。

根据第三方面,提供了一种减小根据第一个方面所述的方法编码的编码视频流的文件大小的方法。减小编码视频流的文件大小的方法包括:用对应的增量帧取代编码视频流中的一个或多个关键帧。通过以下方式执行取代:从编码视频流中移除一个或多个关键帧以及取消对与所移除的一个或多个关键帧相对应的隐藏增量帧的隐藏。从而,形成具有减小的文件大小的编码视频流。这是因为,通常增量帧比关键帧占用更少的存储器空间。

减小编码视频流的文件大小的方法可进一步包括:移除分层预测模式的上部时间层中的增量帧。这样做,文件大小可被进一步减小。进一步,通过这样做,可减小(通常减半)编码视频流的帧速率。

用增量帧取代编码视频流中的一个或多个关键帧的步骤可针对编码视频流中的每一个第二关键帧执行。

减小编码视频流的文件大小的方法可进一步包括:用增量帧取代具有减小的文件大小的编码视频流中的一个或多个关键帧。再次,该取代可通过以下方式执行:从具有减小的文件大小的编码视频流中移除一个或多个关键帧,以及取消对与所移除的一个或多个关键帧相对应的隐藏增量帧的隐藏。从而形成具有进一步减小的文件大小的编码视频流。

根据第四方面,提供了一种非瞬态计算机可读存储介质。该非瞬态计算机可读存储介质具有存储在其上的指令,指令用于当在具有处理能力的设备上执行时,实现根据第三方面所述的方法。

根据第五方面,提供了一种视频编码器。该视频编码器被配置为将视频数据的一系列图像编码成包括关键帧和增量帧的编码视频流,其中,增量帧以包括多个时间层的分层预测模式被组织。该编码器进一步被配置为:针对关键帧中的至少一些关键帧,将隐藏增量帧添加到编码视频流。每个隐藏增量帧:对应于关键帧、基于与所对应的关键帧相同的原始视频数据并且参考编码视频流中的先前关键帧。

视频编码器可被实现在视频摄像机中。

根据第六方面,提供了一种视频管理服务器。该视频管理服务器被配置为:减小根据第一方面所述的方法编码的或由根据第五方面所述的视频编码器编码的编码视频流的文件大小。该视频管理服务器包括处理电路,该处理电路被配置为:使用关键帧取代功能来用对应的增量帧取代编码视频流中的一个或多个关键帧,其中,关键帧取代功能被配置为:从编码视频流中移除一个或多个关键帧以及取消对与所移除的一个或多个关键帧相对应的隐藏增量帧的隐藏。

处理电路可进一步被配置为:使用增量帧移除功能来移除编码视频流的分层预测模式的上部时间层中的增量帧。

本发明的进一步的适应性范围将从下面给出的详细描述中变得明显。然而,应理解的是,虽然指示本发明的优选实施例,但是详细描述和特定示例仅通过说明的方式给出,因为从该详细描述中本发明范围内的各种变化和修改对于本领域技术人员将变得明显。

因此,要理解的是,本发明不限于所述设备的特定组成部分或所述方法的动作,因此设备和方法可改变。还要理解的是,本文所使用的术语仅是为了描述特定实施例的目的,并且不意在限制。必须注意的是,如说明书和所附权利要求书中所使用的,冠词“一”、“该”以及“所述”意在意味着存在一个或多个元件,除非上下文另外明确规定。因此,例如,对“一单元”或“该单元”的参考可包括几个设备等。此外,词语“包括”、“包含”、“含有”以及类似用词不排除其他元件或步骤。

附图说明

现在将参照附图更详细地描述本发明的上面和其他方面。附图不应被认为是限制性的,相反它们用于解释和理解。

如在图中所图示的,层和区域的大小可为了图示的目的而被夸大,并且因此,被提供以图示一般结构。贯穿全文,相同的附图标记指的是相同的元件。

图1示意性地图示编码器。

图2示意性地图示包括图1的编码器的摄像机。

图3示意性地图示根据现有技术的编码视频流的帧结构。

图4示意性地图示根据本发明的编码视频流的帧结构。

图5是视频编码方法的框图。

图6是减小编码视频流的文件大小的方法的框图。

图7示意性地图示图4中图示的编码视频流的文件大小的减小。

图8示意性地图示图7中图示的编码视频流的文件大小的减小。

图9示意性地图示视频管理服务器。

具体实施方式

现在,在下文中将参照其中示出了本发明的当前优选实施例的附图更充分地描述本发明。然而,本发明可以以许多不同的形式体现并且不应被解释为限于本文阐述的实施例;相反,这些实施例为了彻底性和完整性而被提供,并且被提供以向技术人员充分地传达本发明的范围。

结合图1的视频编码系统100。视频编码系统100包括视频源102、编码器110以及存储器120。编码器110被配置为将视频数据的一系列图像编码成编码视频流。采用一系列图像形式的视频数据从视频源102接收。视频源可以是图像传感器。视频编码器110可被设定为使用任何合适的编码方案。非限制性的示例是h.264、h.265以及av1。视频编码器100可与存储器120进行通信。存储器120在视频数据的编码期间可被用作缓冲存储器。存储器120可包括多个存储器部分中的一个。特定存储器部分可以是易失性存储器部分。特定存储器部分可以是非易失性存储器部分。因此,存储器120可包括易失性存储器部分和非易失性存储器部分两者。

如图2中所图示,视频编码系统100可在视频摄像机200中实现。视频摄像机200可以是数字视频摄像机。视频摄像机200可以是监控摄像机。视频摄像机200可以是被安装在诸如车辆的运动物体上的视频摄像机。视频摄像机200可由人穿戴。

视频编码器100被配置为将视频数据的一系列图像编码成编码视频流。视频编码器100被配置为将视频流的一些图像编码为关键帧。关键帧是不需要来自要被解码的其他编码视频帧的信息的编码视频帧。因此,关键帧基于来自视频数据的被设定为与之相对应的图像的信息被编码。通常,图像内的相似度被用来将图像编码成关键帧。在视频编码中,关键帧也被认为是帧内帧,经常被称为i-帧。视频编码器100进一步被配置为将视频流的在两个关键帧中间的图像编码为增量帧。通常,增量帧只包括从一帧到下一帧所发生的变化。增量帧通常比关键帧包括更少的数据。在视频编码中,增量帧也被认为是帧间帧,经常被称为p-帧或b-帧。p-帧参考先前帧以用于数据参考。因此,为了对p-帧进行解码,先前帧的内容必须是已知的。b-帧可参考先前帧和前向帧两者以用于数据参考。因此,为了对b-帧进行解码,先前帧和前向帧两者的内容必须是已知的。

进一步,视频编码器100被配置为以包括多个时间层的分层预测模式被组织。因此,编码视频流以多个分层组织的图片组(gop)被编码。每个分层组织的gop包括关键帧和多个分层组织的增量帧。分层组织的增量帧以时间层被组织。

这种包括i-帧和p-帧的分层预测模式的示例在图3中被图示。在图3中,每四帧为一i-帧示例被图示,并且分层预测模式导致p-帧的两个时间层。这种编码方式通常指的是分层编码结构。在分层编码结构中,参考结构的分层帧导致编码视频流的时间分层。值得注意的是,帧结构应被视为连续的帧流。向上扩展的分支的使用仅是用来明确分层编码结构的结构和分层预测模式的分层结构。

至此,视频编码器100被设定为根据已知的编码方案进行编码。因此,结合图3所公开的是根据分层编码结构的现有技术编码方案。然而,根据本发明,视频编码器100进一步被配置为针对关键帧中的至少一些关键帧将隐藏增量帧添加到编码视频流。隐藏增量帧被视为编码视频流中的当解码器对视频流进行解码时通常不被在解码器侧处的解码器输出的帧。因此,隐藏增量帧例如可以是非显示帧或辅助帧。另一种用于指示隐藏帧的方式是根据可用的标准(非指定的)使用报头中的位或位组合。例如,在h.264和h.265标准中,网络抽象层(nal)单元被提供有包括nal单元的类型的报头信息。指示可通过设定与增量帧相关联的nal值、nal单元的单元类型来提供。该值可被设定为指示nal单元不应被标准化的解码器解码。因此,通过以这种方式提供指示,标准化的编码器将自动无视与nal单元相关联的增量帧。因此,提供了隐藏增量帧。nal值可稍后被重写以“取消”对隐藏增量帧的“隐藏”。

视频编码器100被配置为基于视频数据的与特定的隐藏增量帧所对应的关键帧相同的图像对特定的隐藏增量帧进行编码。因此,特定的隐藏增量帧基于与对应的关键帧所基于的相同的原始视频数据被编码。因此,每个隐藏增量帧与关键帧相对应。进一步,视频编码器100被配置为将先前关键帧用作隐藏增量帧的参考帧。因此,隐藏增量帧被设定为参考编码视频流中的先前关键帧。更准确地,可以说,隐藏增量帧被设定为直接参考编码视频流中的先前关键帧。

根据本发明的通过视频编码器100被编码的编码视频流的结构结合图4被图示。在图4中,隐藏增量帧被使用虚线图示。进一步,在图4中,隐藏增量帧被图示为p-帧,但也可使用其他种类的增量帧。使用先前关键帧作为隐藏增量帧的参考帧在图4中被用虚线箭头图示。

视频编码器100可进一步被配置为在编码视频流中使用同一先前关键帧作为两个或更多个后续隐藏增量帧的参考帧。因此,两个或更多个后续隐藏增量帧可直接参考编码视频流中的同一先前关键帧。

结合图5,将论述被配置为将原始视频数据的一系列图像编码成编码视频流的视频编码方法500。视频编码方法可被配置为对由摄像机捕获的视频数据进行编码。摄像机可以是监控摄像机。视频处理方法包括以下步骤/动作。

将原始视频数据的一系列图像编码s502成包括关键帧和增量帧的编码视频流。上面结合视频编码器100论述了关键帧和增量帧,并且参考上面的论述以避免过度的重复。在编码s502期间,增量帧以包括多个时间层的分层预测模式被组织。上面结合视频编码器100论述了分层预测模式,并且参考上面的论述以避免过度的重复。

针对关键帧中的至少一些关键帧,将隐藏增量帧添加s504到编码视频流。隐藏增量帧例如可以是非显示帧或辅助帧。每个特定的隐藏增量帧基于视频数据的与它所对应的关键帧相同的图像。因此,特定的隐藏增量帧基于与对应的关键帧所基于的相同的原始视频数据被编码。因此,每个隐藏增量帧与关键帧相对应。进一步,先前关键帧被用作隐藏增量帧的参考帧。因此,隐藏增量帧被设定为参考编码视频流中的先前关键帧。根据本方法500编码的编码视频流的结构结合图4被图示。如上所述,在图4中,隐藏增量帧使用虚线被图示。进一步,在图4中,隐藏增量帧被图示为p-帧,但也可使用其他种类的增量帧。

结合图6,将论述减小根据视频编码方法500编码的编码视频流的文件大小的方法600。减小编码视频流的文件大小的方法600包括用对应的增量帧取代s602编码视频流中的一个或多个关键帧的步骤。取代s602通过从编码视频流中移除一个或多个关键帧以及取消对与所移除的一个或多个关键帧相对应的隐藏增量帧的隐藏而执行。由此,减小了编码视频流的文件大小。因此,可形成具有减小的文件大小的编码视频流。这是因为,与增量帧相比,通常关键帧占用更多的存储器空间。因此,通过用增量帧取代关键帧,减小了编码视频流的文件大小。

用增量帧取代s602编码视频流中的一个或多个关键帧的步骤可针对编码视频流中的每一个第二关键帧执行。

减小编码视频流的文件大小的方法600可进一步包括移除s604分层预测模式的上部时间层中的增量帧。由此,具有减小的文件大小的编码视频流的文件大小可被进一步减小。这是因为,帧被从编码视频流中删除。这个步骤也导致编码视频流的帧速率被减小,其被减半。

结合图7,将减小文件大小的方法600第一次应用于由视频编码方法500编码的、结合图5所图示的编码视频流的结果被图示。如图5的顶部中可看出,每一个第二关键帧(在每一个第二i-帧的情况下)被对应的隐藏增量帧(在隐藏p-帧的情况下)取代。进一步,如通过在上部时间层p-帧上画叉字形所图示,在分层预测模式的上部时间层中的增量帧(在p-帧的情况下)被移除。具有减小的文件大小的结果编码视频流在图7的下部中被图示。

减小文件大小的方法600可进一步被应用于通过对由视频编码方法500编码的编码视频流第一次应用方法600而获得的、具有减小的文件大小的结果编码视频流。减小文件大小的方法600的这种第二次运行的结果结合根据与图7相同的方案制作的图8被图示。

结合图9,视频管理服务器900被配置为减小由上述视频编码器100编码的或根据上述视频编码方法500编码的编码视频流的文件大小。视频管理服务器900可包括处理电路902、收发器906和存储器908。

收发器906被配置为从视频管理服务器900接收信息和/或将信息发送到视频管理服务器900。具体地,收发器906可被配置为接收由上述视频编码器100编码的或根据上述视频编码方法500编码的编码视频流。

存储器908可以是缓冲器、闪存、硬盘驱动器、可移动介质、易失性存储器、非易失性存储器、随机存取存储器(ram)或另一合适的设备中的一个或多个。在典型设置中,存储器908可包括用于长期数据存储的非易失性存储器和用作处理电路902的系统存储器的易失性存储器。处理器908可在数据总线之上与处理电路902交换数据。还可以存在存储器908和处理电路908之间的伴随控制线和地址总线。存储器可进一步被配置为存储编码视频流。

处理电路902被配置为执行视频管理服务器900的整体功能。处理电路902可包括诸如中央处理单元(cpu)、微控制器或微处理器的处理器904。处理器904被配置为执行存储在存储器908中的程序代码,以便执行视频管理服务器900的功能。

视频管理服务器900的功能可以以存储在视频管理服务器900的非瞬态计算机可读介质(例如,存储器908)上且由处理电路902(例如,使用处理器904)执行的可执行逻辑例程(例如,代码行、软件程序等)的形式体现。此外,视频管理服务器900的功能可以是独立的软件应用或形成执行与视频管理服务器900有关的附加任务的软件应用的一部分。所述功能可被认为是对应的设备被配置以执行的方法。另外,尽管所述功能可以以软件实现,但是这种功能也可经由专用硬件或固件、或某些硬件、固件和/或软件的组合来执行。

处理电路902可执行关键帧取代功能910。关键帧取代功能910被配置为用对应的增量帧取代编码视频流中的一个或多个关键帧。更准确地,关键帧取代功能910被配置为通过从编码视频流中移除一个或多个关键帧以及取消对与所移除的一个或多个关键帧相对应的隐藏增量帧的隐藏来执行取代。通过执行关键帧取代功能910,可减小编码视频流的文件大小,并且形成减小的大小的编码视频流。这在上面结合减小编码视频流的文件大小的方法600更详细地论述了。参考以上以避免过度的重复。

处理电路902可执行增量帧移除功能912。增量帧移除功能912被配置为移除编码视频流的分层预测模式的上部时间层中的增量帧。通过执行增量帧移除功能912,可减小编码视频流的文件大小,并且形成减小的大小的编码视频流。这在上面结合减小编码视频流的文件大小的方法600更详细地论述了。参考以上以避免过度的重复。

本领域技术人员会意识到,本发明决不限于上述优选实施例。相反,在所附的权利要求范围内的许多修改和变型是可能的。

例如,视频编码器100可被配置为将视频数据的一系列图像编码成编码视频流,使得奇数增量帧直接或间接参考特定关键帧。

而且,结合移除分层预测模式的上部时间层中的增量帧,所移除的增量帧可用空帧取代。这样做,尽管视频流中的信息将被减少,但是帧速率将被维持。空帧不包括信息,相反空帧参考更早的帧,这种更早的帧还可被称为跳帧。用空帧取代增量帧可尤其适用于需要修复两个帧之间的时间段的解码器。

此外,上面提到的用于视频编码的方法可使用诸如svc、shvc和svt的可扩展的视频编解码器来使用。

此外,公开的实施例的变型可在由技术人员通过学习附图、公开的内容和所附的权利要求而实践所要求保护的发明时理解和实现。

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