视频数据中的静止帧检测的制作方法

未命名 09-18 阅读:129 评论:0

视频数据中的静止帧检测


背景技术:

1.当两个或更多个连续帧具有相同或非常相似的内容时,此类帧被称为静止帧、静止图像或静态场景。在参考其他帧对静止帧进行编码的情况下,静止帧需要较少的位来编码,并且通常将不使用分配用于其编码的全部位。所累积的位可导致用于编码的量化参数减少,从而随时间增加经编码的静止帧的大小,同时不产生明显可感知的质量增加。
附图说明
2.图1是根据一些实施方案的用于视频数据中的静止帧检测的示例性计算机的框图。
3.图2是根据一些实施方案的用于视频数据中的静止帧检测的示例性方法的流程图。
4.图3是根据一些实施方案的用于视频数据中的静止帧检测的示例性方法的流程图。
5.图4是根据一些实施方案的用于视频数据中的静止帧检测的示例性方法的流程图。
6.图5是根据一些实施方案的用于视频数据中的静止帧检测的示例性方法的流程图。
7.图6是根据一些实施方案的用于视频数据中的静止帧检测的示例性方法的流程图。
8.图7是根据一些实施方案的用于视频数据中的静止帧检测的示例性方法的流程图。
具体实施方式
9.在一些实施方案中,一种视频数据中的静止帧检测的方法包括:确定视频数据的帧的平均量化参数下降到量化参数阈值以下;确定帧中的跳过宏块的量是否满足跳过宏块阈值;以及响应于跳过宏块的量超过跳过宏块阈值,将帧识别为静止帧。
10.在一些实施方案中,该方法还包括:响应于跳过宏块的量下降到跳过宏块阈值以下,确定帧的帧间编码宏块的量满足帧间宏块阈值;确定帧的跳过宏块相对于帧的非跳过宏块的速率-失真成本比率下降到速率-失真成本比率阈值以下;以及响应于速率-失真成本比率下降到速率-失真成本比率阈值以下,将帧识别为静止帧。在一些实施方案中,该方法还包括:响应于帧被识别为静止帧,修改下一帧的一个或多个编码属性;以及根据一个或多个所修改的编码属性对下一帧进行编码。在一些实施方案中,该方法还包括生成指示帧为静止帧的数据。在一些实施方案中,该方法还包括在视频数据的分析期间基于该数据跳过一个或多个所识别的静止帧。在一些实施方案中,视频数据包括单通视频数据。在一些实施方案中,平均量化参数包括用于对帧的每个宏块进行编码的每个量化参数的平均值。
11.在一些实施方案中,一种用于视频数据中的静止帧检测的装置执行包括以下操作
的步骤:确定视频数据的帧的平均量化参数下降到量化参数阈值以下;确定帧中的跳过宏块的量是否满足跳过宏块阈值;以及响应于跳过宏块的量超过跳过宏块阈值,将帧识别为静止帧。
12.在一些实施方案中,这些步骤还包括:响应于跳过宏块的量下降到跳过宏块阈值以下,确定帧的帧间编码宏块的量满足帧间宏块阈值;确定帧的跳过宏块相对于帧的非跳过宏块的速率-失真成本比率下降到速率-失真成本比率阈值以下;以及响应于速率-失真成本比率下降到速率-失真成本比率阈值以下,将帧识别为静止帧。在一些实施方案中,这些步骤还包括:响应于帧被识别为静止帧,修改下一帧的一个或多个编码属性;以及根据一个或多个所修改的编码属性对下一帧进行编码。在一些实施方案中,这些步骤还包括生成指示帧为静止帧的数据。在一些实施方案中,这些步骤还包括在视频数据的分析期间基于该数据跳过一个或多个所识别的静止帧。在一些实施方案中,视频数据包括单通视频数据。在一些实施方案中,平均量化参数包括用于对帧的每个宏块进行编码的每个量化参数的平均值。
13.在一些实施方案中,一种设置在非暂态计算机可读介质上的计算机程序产品包括用于视频数据中的静止帧检测的计算机程序指令,该计算机程序指令在被执行时使得计算机系统执行包括以下项的步骤:确定视频数据的帧的平均量化参数下降到量化参数阈值以下;确定帧中的跳过宏块的量是否满足跳过宏块阈值;以及响应于跳过宏块的量超过跳过宏块阈值,将帧识别为静止帧。
14.在一些实施方案中,这些步骤还包括:响应于跳过宏块的量下降到跳过宏块阈值以下,确定帧的帧间编码宏块的量满足帧间宏块阈值;确定帧的跳过宏块相对于帧的非跳过宏块的速率-失真成本比率下降到速率-失真成本比率阈值以下;以及响应于速率-失真成本比率下降到速率-失真成本比率阈值以下,将帧识别为静止帧。在一些实施方案中,这些步骤还包括:响应于帧被识别为静止帧,修改下一帧的一个或多个编码属性;以及根据一个或多个所修改的编码属性对下一帧进行编码。在一些实施方案中,这些步骤还包括生成指示帧为静止帧的数据。在一些实施方案中,这些步骤还包括在视频数据的分析期间基于该数据跳过一个或多个所识别的静止帧。在一些实施方案中,视频数据包括单通视频数据。
15.在视频编码中,特别是在单通视频编码中,速率控制算法分配一定量的位以对每个帧进行编码。例如,速率控制算法将基于视频数据整体的目标位速率来为帧分配位。速率控制算法然后基于所分配的位来确定用于对帧进行编码或用于帧的每个块的量化参数(qp)。量化参数是定义在对帧进行编码时要应用的量化程度的参数(例如,在每帧基础上、在每块基础上)。因此,较高的量化参数指示将应用较高的量化程度,从而导致压缩增加、质量降低和文件大小减小。
16.当两个或更多个连续帧具有相同或非常相似的内容时,此类帧被称为静止帧、静止图像或静态场景。例如,没有人类活动的场景的视频将在大多数部分中具有相同的内容。在将若干连续静止帧编码于视频数据中的情况下,可参考其他帧将静止帧编码为帧间帧。因此,静止帧需要较少的位来编码,并且通常将不使用分配用于其编码的全部位。在现有的解决方案中,特别是对于单通视频编码,这使得速率控制算法减小qp,从而使用更多的所分配的位。所得经编码的静止帧然后将具有高峰值信噪比(psnr)。当静止帧的周期已经结束并且具有更多运动的帧被编码时,速率控制算法将以较小的qp对这些帧进行编码,因为编
码器未获知静止帧的周期已经结束。通过对具有运动的帧使用低qp,编码器将很快用完所分配的位,从而触发用于帧中的后续经编码宏块的增加的qp以便保持位用量接近目标。这可导致各种可感知的质量差异,诸如具有高质量上部部分(归因于以低qp编码的宏块)和低质量下部部分(归因于以高qp编码的后面的宏块)的帧。
17.增加的位分配和超过特定点的高psnr(例如,对于psnr为40db)没有视觉质量益处,特别是在静止帧的情况下。换句话讲,一旦静止帧达到特定psnr,分配另外的位以进一步增加psnr将不导致静止帧中的明显质量改进。相反,对于捕获运动的帧,由于增加的位分配引起的psnr的增益将导致可感知的质量增加,因为运动帧的psnr通常低于静止帧的psnr。因此,有利的是在视频编码期间识别静止帧以便控制用于后续经编码帧的位的分配,特别是在单通视频编码应用中。通过识别视频数据中的静止帧还提供了另外的优点。例如,在需要对视频数据执行一些分析(例如,对安全性或监控录像的分析)的情况下,移除或跳过所识别的静止帧通过减少要分析的帧的数量来提高分析的效率。
18.根据本技术的视频数据中的静止帧检测通常是使用计算机实现的,即使用自动计算机器实现。因此,为了进一步解释,图1列出了根据某些实施方案的包括被配置用于视频数据中的静止帧检测的示例性计算机100的计算机器的框图。示例性计算机100以及本文所阐述的方法可用于各种设备或场景,包括个人计算机、安全装备、摄像机、移动设备、游戏设备、机顶盒等。图1的计算机100包括至少一个计算机处理器102或“cpu”以及随机存取存储器104(“ram”),该ram通过高速存储器总线106和总线适配器108连接到处理器102和计算机100的其他部件。
19.存储在ram 104中的是操作系统110。根据某些实施方案,在被配置用于视频数据中的静止帧检测的计算机中有用的操作系统包括:unix
tm
、linux
tm
、microsoft windows
tm
以及本领域技术人员可想到的其他操作系统。虽然在ram 104中示出了图1的示例中的操作系统110,但此类软件的许多部件通常也存储于非易失性存储器中,诸如例如存储在数据存储装置112(诸如磁盘驱动器)上。根据某些实施方案,还存储在ram中的是编码模块114,即用于视频数据中的静止帧检测的模块。
20.图1的计算机100包括通过扩展总线118和总线适配器108耦接到处理器102和计算机100的其他部件的磁盘驱动器适配器116。磁盘驱动器适配器116以数据存储装置112的形式将非易失性数据存储装置连接到计算机100。根据某些实施方案,在被配置用于视频数据中的静止帧检测的计算机中有用的磁盘驱动器适配器包括:集成驱动电子设备(“ide”)适配器、小型计算机系统接口(“scsi”)适配器以及本领域技术人员可想到的其他适配器。在一些实施方案中,非易失性计算机存储器被实现为光盘驱动器、电可擦除可编程只读存储器(所谓的“eeprom”或“闪存”存储器)、ram驱动器等,如本领域技术人员可想到的。
21.图1的示例性计算机100包括一个或多个输入/输出(“i/o”)适配器120。i/o适配器通过例如软件驱动程序和计算机硬件实现面向用户的输入/输出,以用于控制到诸如计算机显示屏的显示设备的输出以及来自诸如键盘和鼠标的用户输入设备122的用户输入。图1的示例性计算机100包括视频适配器124,该视频适配器是专门设计用于向诸如显示屏或计算机监视器的显示设备126进行图形输出的i/o适配器的示例。视频适配器124通过高速视频总线128、总线适配器108和也是高速总线的前端总线130连接到处理器102。
22.图1的示例性计算机100包括用于与其他计算机进行数据通信以及用于与数据通
信网络进行数据通信的通信适配器132。通过rs-232连接、通过诸如通用串行总线(“usb”)的外部总线、通过诸如ip数据通信网络的数据通信网络、和/或以本领域技术人员可想到的其他方式来串行地执行此类数据通信。通信适配器实现数据通信的硬件级,通过该硬件级,一台计算机直接地或通过数据通信网络向另一台计算机发送数据通信。根据某些实施方案,在被配置用于视频数据中的静止帧检测的计算机中有用的通信适配器的示例包括:用于有线拨号通信的调制解调器、用于有线数据通信的以太网(ieee 802.3)适配器以及用于无线数据通信的802.11适配器。
23.为了在视频数据中执行静止帧检测,计算机100(例如,编码模块114)对视频数据的帧进行编码。根据一些先前确定的位的分配和量化参数来对视频数据的帧进行编码。在一些实施方案中,参考一个或多个先前编码的帧将帧编码为帧间帧。为了开始确定帧是否为静止帧,编码模块114确定帧的平均qp是否低于qp阈值。例如,假设帧被编码为多个宏块,每个宏块包括该帧的像素的连续部分。如本文所述,宏块是帧的处理或功能单元,并且不限于或限制于任何特定视频标准。因此,在本文中被描述为关于宏块执行的步骤或过程还可在帧或视频编码的其他功能单元或处理单元上执行。根据所确定的qp对每个宏块进行编码。因此,帧的平均qp(qp
avg
)是用于对帧的每个宏块进行编码的所有qp的平均值。qp阈值(qp
thr
)是预定义的阈值。例如,在一些实施方案中,qp阈值被选择为产生期望的视频质量(例如,主观上“良好”的视频质量)的阈值。例如,qp阈值被选择为25或根据如可了解的工程或设计考虑而选择的另一值。
24.例如,在qp
avg
》qp
thr
的情况下,帧不被识别为静止帧。否则,在qp
avg
《=qp
thr
的情况下,编码模块114前进至确定经编码的帧是否是静止帧的下一步骤。接着,编码模块114确定帧中的跳过宏块的量(mb
skip
)是否满足预定义的阈值(例如,跳过宏块阈值(mb
skip_thr
))。如上所述,在参考先前编码的帧将帧编码为帧间帧的情况下,帧中的一个或多个宏块被编码为对先前帧的一个或多个对应宏块的参考。跳过宏块(例如,skip宏块)是参考先前编码的宏块的特定类型的帧间宏块编码。例如,通过参考先前编码的宏块而不编码任何残差或运动向量来对跳过宏块进行编码。视频数据的解码器然后将基于其他经解码的宏块的其他运动向量来推断跳过宏块的运动向量。编码器通常由于以下两种场景中的一种场景而将宏块编码为跳过宏块:由于待编码的宏块与其参考项相同,或由于用于编码宏块的qp较高并且不具有用于编码的足够的位。作为mb
skip
》=mb
skip_thr
是否发生的评估,如果qp
avg
《=qp
thr
,则减少或消除后一种场景的可能性。
25.在一些实施方案中,帧中跳过宏块的量mb
skip
被定义为跳过宏块相对于帧中其他宏块的百分比或比率。因此,mb
skip_thr
被定义为百分比或比率阈值。本领域的技术人员将会理解,在一些实施方案中,根据另一方法来表达mb
skip
,并且相应地定义mb
skip_thr
。如果mb
skip
满足mb
skip_thr
(例如,mb
skip
》=mb
skip_thr
),则编码模块114将帧识别为静止帧。
26.如果mb
skip
未能满足mb
skip_thr
(例如,mb
skip
《mb
skip_thr
),则仍然存在帧是静止帧的可能性。例如,在一些实施方案中,主要使用帧间宏块编码而不是跳过宏块来对帧进行编码。例如,在根据较高位速率对帧进行编码的情况下,即使帧与先前的帧高度类似,编码器也将由于具有大量可用的位而将一些宏块编码为非跳过宏块。因此,如果mb
skip
《mb
skip_thr
,则编码模块114确定帧的帧间编码宏块的量mb
inter
是否满足帧间宏块阈值mb
inter thr
。在一些实施方案中,帧的帧间编码宏块的量mb
inter
被定义为帧间编码宏块相对于帧中其他宏块的百
分比或比率。因此,mb
inter_thr
被定义为百分比或比率阈值。本领域的技术人员将会理解,在一些实施方案中,根据另一方法来表达mb
inter
,并且相应地定义mb
inter_thr

27.如果mb
inter
下降到mb
inter_thr
以下(例如,mb
inter
《mb
inter_thr
),则编码模块114将帧识别为非静止帧。否则,如果mb
inter
》=mb
inter_thr
,则编码模块114将非跳过宏块的速率-失真成本(rdcost)与跳过宏块的rdcost进行比较以确定rdratio
non-skip
。例如,编码模块114计算帧中的跳过宏块的总rdcost(rdcostskip
frame
)和帧中所有帧间宏块(包括跳过和非跳过帧间宏块)的总rdcost(rdcostinter
frame
)。编码模块114将跳过宏块的平均rdcost(rdcostskip
mb
)计算为rdcostskip
frame
/num_skip_mb,其中num_skip_mb是帧中的跳过宏块的数量。编码模块114还将非跳过帧间宏块的平均rdcost(rdcostnonskip
mb
)计算为(rdcostinter
frame-rdcostskip
frame
)/(picture_size_in_mbs-num_skip_mb),其中picture_size_in_mbs是帧中宏块的总数。然后将比率rdratio
non-skip
计算为(rdcostnonskip
mb

rdcostskip
mb
)/(rdcostnonskip
mb
)。编码模块114然后将比率rdratio
non-skip
与阈值rdratio
non-skip_thr
进行比较。如果rdratio
non-skip
下降到阈值以下(例如,rdratio
non-skip
《rdratio
non-skip_thr
),则将帧识别为静止帧。
28.在一些实施方案中,编码模块114响应于将帧识别为静止帧而采取一个或多个动作。例如,在一些实施方案中,类似于单通视频编码,编码模块114修改待编码的下一帧(例如,在被识别为静止帧的帧之后顺序出现的帧)的一个或多个编码属性。作为示例,修改用于编码下一帧或下一帧的至少一部分(例如,下一帧的一个或多个宏块)的qp。在一些实施方案中,修改qp包括增加qp或防止如由速率控制算法确定的qp的减小。因此,将针对下一帧使用更少的位。在一系列帧被识别为静止帧的情况下,该系列帧的减少的位分配允许稍后经编码的运动帧具有另外的经分配的位,从而允许在保持目标位速率的同时提高运动帧的质量。
29.在一些实施方案中,作为编码模块114响应于识别静止帧而采取的动作的另一示例,编码模块114生成指示静止帧的数据。例如,视频数据的标签或其他元数据指示帧为静止帧。将帧和潜在的其他帧指示为静止帧的数据有利于编码模块114或如可了解的另一服务的各种操作。例如,在一些实施方案中,在视频数据中跳过一个或多个所识别的静止帧。因此,当执行视频数据的手动或计算机辅助分析时,要分析的视频的总量得以减少。例如,假设视频数据包括安全性录像,绕过静止帧有助于审查安全性录像,因为静止帧将可能不包含任何重要信息。
30.根据上述方法,各种比较将导致帧被识别为静止帧。因此,此类比较还将导致帧被识别为非静止帧(例如,运动帧),其中该比较生成相反的结果。例如,在qp
avg
》qp
thr
的情况下,帧不被识别为静止帧。作为另一示例,在qp
avg
《=qp
thr
,但mb
skip
《mb
skip_thr
并且mb
inter
《mb
inter_thr
的情况下,帧不被识别为静止帧。作为又一示例,在qp
avg
《=qp
thr
并且mb
skip
《mb
skip_thr
,同时mb
inter
》=mb
inter_thr
但rdratio
non-skip
》=rdratio
non-skip_thr
的情况下,帧不被识别为静止帧。在一些实施方案中,在帧未被识别为静止帧的情况下,编码模块114允许速率控制算法在必要时修改下一帧的qp。本领域的技术人员将会理解,对qp或其他编码属性的特定修改将根据所实施的特定速率控制算法而变化。
31.为了进一步解释,图2列出了示出用于视频数据中的静止帧检测的示例性方法的流程图,该示例性方法包括:确定202(例如,通过编码模块114)视频数据的帧的平均量化参
数下降到量化参数阈值以下。在一些实施方案中,参考一个或多个先前编码的帧将帧编码为帧间帧。假设帧被编码为多个宏块,每个宏块包括该帧的像素的连续部分。根据所确定的qp对每个宏块进行编码。因此,帧的平均qp(qp
avg
)是用于对帧的每个宏块进行编码的所有qp的平均值。qp阈值(qp
thr
)是预定义的阈值。例如,在一些实施方案中,qp阈值被选择为产生期望的视频质量(例如,主观上“良好”的视频质量)的阈值。例如,qp阈值被选择为25或根据如可了解的工程或设计考虑而选择的另一值。
32.图2的方法还包括:确定204(例如,通过编码模块204)帧中的跳过宏块的量(mb
skip
)是否满足跳过宏块阈值(mb
skip_thr
)。如上所述,在参考先前编码的帧将帧编码为帧间帧的情况下,帧中的一个或多个宏块被编码为对先前帧的一个或多个对应宏块的参考。跳过宏块(例如,skip宏块)是参考先前编码的宏块的特定类型的帧间宏块编码。例如,通过参考先前编码的宏块而不编码任何残差或运动向量来对跳过宏块进行编码。在一些实施方案中,帧中跳过宏块的量mb
skip
被定义为跳过宏块相对于帧中其他宏块的百分比或比率。因此,mb
skip_thr
被定义为百分比或比率阈值。本领域的技术人员将会理解,在一些实施方案中,根据另一方法来表达mb
skip
,并且相应地定义mb
skip_thr
。如果帧中的跳过宏块的量满足跳过宏块阈值,则图2的方法前进至将帧识别206(例如,通过编码模块114)为静止帧。换句话讲,如果mb
skip
满足mb
skip_thr
(例如,mb
skip
》=mb
skip_thr
),则编码模块114将帧识别为静止帧。
33.为了进一步解释,图3列出了示出用于视频数据中的静止帧检测的示例性方法的流程图,该示例性方法包括:确定202(例如,通过编码模块114)视频数据的帧的平均量化参数下降到量化参数阈值以下;确定204(例如,通过编码模块204)帧中的跳过宏块的量是否满足跳过宏块阈值;以及将帧识别206(例如,由编码模块114响应于帧中的跳过宏块的量满足跳过宏块阈值)为静止帧。
34.图3的方法与图2的方法的不同之处在于,如果确定204帧中的跳过宏块的量下降到跳过宏块阈值以下(例如,如果mb
skip
《mb
skip_thr
),则图3的方法前进至确定302帧的帧间编码宏块的量满足帧间宏块阈值。在一些实施方案中,帧的帧间编码宏块的量mb
inter
被定义为帧间编码宏块相对于帧中其他宏块的百分比或比率。因此,mb
inter_thr
被定义为百分比或比率阈值。本领域的技术人员将会理解,在一些实施方案中,根据另一方法来表达mb
inter
,并且相应地定义mb
inter_thr

35.图3的方法还包括:确定304(例如,由编码模块114响应于mb
inter
》=mb
inter_thr
)帧的跳过宏块相对于帧的非跳过宏块的速率-失真成本比率下降到速率-失真成本比率阈值以下。例如,编码模块114计算帧中的跳过宏块的总rdcost(rdcostskip
frame
)和帧中所有帧间宏块(包括跳过和非跳过帧间宏块)的总rdcost(rdcostinter
frame
)。编码模块114将跳过宏块的平均rdcost(rdcostskip
mb
)计算为rdcostskip
frame
/num_skip_mb,其中num_skip_mb是帧中的跳过宏块的数量。编码模块114还将非跳过帧间宏块的平均rdcost(rdcostnonskip
mb
)计算为(rdcostinter
frame-rdcostskip
frame
)/(picture_size_in_mbs-num_skip_mb),其中picture_size_in_mbs是帧中宏块的总数。然后将比率rdratio
non-skip
计算为(rdcostnonskip
mb

rdcostskip
mb
)/rdcostnonskip
mb
。编码模块114然后将比率rdratio
non-skip
与阈值rdratio
non-skip_thr
进行比较。图3的方法还包括:响应于速率-失真成本比率下降到速率-失真成本阈值以下(例如,rdratio
non-skip
《rdratio
non-skip_thr
),将帧识别306(例如,通过编码模块114)为静止帧。
36.为了进一步解释,图4列出了示出用于视频数据中的静止帧检测的示例性方法的流程图,该示例性方法包括:确定202(例如,通过编码模块114)视频数据的帧的平均量化参数下降到量化参数阈值以下;确定204(例如,通过编码模块204)帧中的跳过宏块的量是否满足跳过宏块阈值;以及将帧识别206(例如,由编码模块114响应于帧中的跳过宏块的量满足跳过宏块阈值)为静止帧。
37.图4的方法与图2的方法的不同之处在于,图4的方法包括修改402下一帧的一个或多个编码属性。作为示例,修改用于编码下一帧或下一帧的至少一部分(例如,下一帧的一个或多个宏块)的qp。在一些实施方案中,修改qp包括增加qp或防止如由速率控制算法确定的qp的减小。因此,将针对下一帧使用更少的位。在一系列帧被识别为静止帧的情况下,该系列帧的减少的位分配允许稍后经编码的运动帧具有另外的经分配的位,从而允许在保持目标位速率的同时提高运动帧的质量。图4的方法还包括根据一个或多个所修改的编码属性对下一帧进行编码404。
38.为了进一步解释,图5列出了示出用于视频数据中的静止帧检测的示例性方法的流程图,该示例性方法包括:确定202(例如,通过编码模块114)视频数据的帧的平均量化参数下降到量化参数阈值以下;确定204(例如,通过编码模块204)帧中的跳过宏块的量是否满足跳过宏块阈值;以及将帧识别206(例如,由编码模块114响应于帧中的跳过宏块的量满足跳过宏块阈值)为静止帧。
39.图5的方法与图2的方法的不同之处在于,图5的方法包括生成502指示帧为静止帧的数据。例如,编码模块114生成指示帧为静止帧的视频数据的标签或其他元数据。当另外的帧被编码并且潜在地被识别为静止帧时,编码模块114因此生成指示一个或多个所识别的静止帧的视频数据的数据。
40.为了进一步解释,图6列出了示出用于视频数据中的静止帧检测的示例性方法的流程图,该示例性方法包括:确定202(例如,通过编码模块114)视频数据的帧的平均量化参数下降到量化参数阈值以下;确定204(例如,通过编码模块204)帧中的跳过宏块的量是否满足跳过宏块阈值;将帧识别206(例如,由编码模块114响应于帧中的跳过宏块的量满足跳过宏块阈值)为静止帧;以及生成502指示帧为静止帧的数据。
41.图6的方法与图5的方法的不同之处在于,图6的方法包括从视频数据跳过602一个或多个所识别的静止帧。例如,编码模块114或如可了解的另一模块访问指示视频数据中的静止帧的所生成的数据。然后从视频数据跳过(例如,绕过)所识别的静止帧。因此,由于静止帧不太可能包括与数据的手动或机器辅助分析相关的信息,所以要分析的视频数据的总量得以减少。
42.为了进一步解释,图7列出了示出用于视频数据中的静止帧检测的示例性方法的流程图。图7与图3的相似之处在于,图7包括:确定202(例如,通过编码模块114)视频数据的帧的平均量化参数下降到量化参数阈值以下;确定204(例如,通过编码模块204)帧中的跳过宏块的量是否满足跳过宏块阈值;以及将帧识别206(例如,由编码模块114响应于帧中的跳过宏块的量满足跳过宏块阈值)为静止帧;响应于帧中的跳过宏块的量下降到跳过宏块阈值以下,确定302帧的帧间编码宏块的量满足帧间宏块阈值;确定304帧的跳过宏块相对于帧的非跳过宏块的速率-失真成本比率下降到速率-失真成本比率阈值以下;以及响应于速率-失真成本比率下降到速率-失真成本比率阈值以下,将视频数据中的帧识别306为静
止帧。
43.图7的方法与图3的方法的不同之处在于,图7的方法包括修改702下一帧的一个或多个编码属性。作为示例,修改用于编码下一帧或下一帧的至少一部分(例如,下一帧的一个或多个宏块)的qp。在一些实施方案中,修改qp包括增加qp或防止如由速率控制算法确定的qp的减小。因此,将针对下一帧使用更少的位。在一系列帧被识别为静止帧的情况下,该系列帧的减少的位分配允许稍后经编码的运动帧具有另外的经分配的位,从而允许在保持目标位速率的同时提高运动帧的质量。图7的方法还包括根据一个或多个所修改的编码属性对下一帧进行编码704。
44.鉴于以上阐述的解释,读者将认识到视频数据中的静止帧检测的有益效果包括:
45.·
通过基于所识别的静止帧修改帧的编码来改进计算系统的性能,从而通过增加分配给非静止运动帧的位的量来保持或改进总体视频质量。
46.·
通过跳过所识别的静止帧来增加分析视频数据时的计算效率,从而改进计算系统的性能。
47.本公开的示例性实施方案主要在用于视频数据中的静止帧检测的全功能计算机系统的上下文中描述。然而,熟悉本领域的读者将认识到,本公开还可体现在设置在计算机可读存储介质上的用以与任何合适的数据处理系统一起使用的计算机程序产品中。此类计算机可读存储介质可以是用于机器可读信息的任何存储介质,包括磁介质、光介质或其他合适的介质。此类介质的示例包括硬盘驱动器或软盘中的磁盘、光盘驱动器的光盘、磁带以及本领域的技术人员可想到的其他介质。本领域的技术人员将立即认识到,具有适当编程装置的任何计算机系统将能够执行如在计算机程序产品中体现的本公开的方法的步骤。本领域的技术人员还将认识到,尽管本说明书中描述的一些示例性实施方案针对在计算机硬件上安装和执行的软件,然而,被实现为固件或硬件的另选实施方案也在本公开的范围内。
48.本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本公开的各方面的计算机可读程序指令的计算机可读存储介质(或媒介)。
49.计算机可读存储介质可以是可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是(例如但不限于)电子存储设备、磁存储设备、光学存储设备、电磁存储设备、半导体存储设备或前述项的任何合适组合。计算机可读存储介质的更具体示例的不完全列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码的设备(诸如其上记录有指令的槽中的穿孔卡片或凸起结构)以及前述项的任何合适组合。如本文所用的计算机可读存储介质不能被理解为瞬时信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)或通过导线传输的电信号。
50.本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计
算机可读程序指令,并转发该计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
51.用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集体系结构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者以一种或多种编程语言的任何组合编写的源代码或目标代码,编程语言包括诸如smalltalk、c++等面向对象的编程语言,以及诸如“c”编程语言或类似编程语言的常规过程编程语言。计算机可读程序指令可整个地在用户计算机上执行、部分地在用户计算机上执行、作为独立的软件包、部分地在用户计算机上执行并且部分地在远程计算机上执行或者整个地在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户计算机,或者可连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施方案中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可执行计算机可读程序指令,具体通过利用计算机可读程序指令的状态信息来个性化处理电子电路,以便执行本公开的各方面。
52.本公开的各方面在此参考根据本公开的实施方案的方法、装置(系统)和计算机程序产品的流程图图示和/或框图进行描述。应当理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可由计算机可读程序指令来实现。
53.这些计算机可读程序指令可提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以得到机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令形成用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的构件。这些计算机可读程序指令还可存储在可指示计算机、可编程数据处理装置和/或其他设备以特定方式起作用的计算机可读存储介质中,使得其中存储有指令的计算机可读存储介质包括包含实现在流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令的制品。
54.计算机可读程序指令还可被加载到计算机、其他可编程数据处理装置或其他设备上,导致在计算机、其他可编程装置或其他设备上执行一系列操作步骤以得到计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的一个或多个框中指定的功能/动作。
55.图中的流程图和框图示出了根据本公开的各种实施方案的系统、方法和计算机程序产品的可能具体实施的体系结构、功能和操作。就这一点而言,流程图或框图中的每个框可表示指令的包括用于实现指定逻辑功能的一个或多个可执行指令的模块、段或部分。在一些另选的具体实施中,框中指出的功能可不按照图中指出的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可基本上同时执行,或者这些框有时可以相反顺序执行。还将注意到,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可由执行指定功能或动作或者执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现。
56.从前面的描述将理解,可在本公开的各种实施方案中进行修改和改变。本说明书中的描述仅用于说明目的,而不应以限制性意义进行解释。本公开的范围仅由所附权利要求书的语言限定。

技术特征:
1.一种视频数据中的静止帧检测的方法,所述方法包括:确定视频数据的帧的平均量化参数下降到量化参数阈值以下;确定所述帧中的跳过宏块的量是否满足跳过宏块阈值;以及响应于所述跳过宏块的量超过所述跳过宏块阈值,将所述帧识别为静止帧。2.根据权利要求1所述的方法,还包括:响应于所述跳过宏块的量下降到所述跳过宏块阈值以下,确定所述帧的帧间编码宏块的量满足帧间宏块阈值;确定所述帧的跳过宏块相对于所述帧的非跳过宏块的速率-失真成本比率下降到速率-失真成本比率阈值以下;以及响应于所述速率-失真成本比率下降到所述速率-失真成本比率阈值以下,将所述帧识别为所述静止帧。3.根据权利要求1所述的方法,还包括:响应于所述帧被识别为所述静止帧,修改下一帧的一个或多个编码属性;以及根据所述一个或多个所修改的编码属性对所述下一帧进行编码。4.根据权利要求1所述的方法,还包括生成指示所述帧为所述静止帧的数据。5.根据权利要求4所述的方法,还包括在所述视频数据的分析期间基于所述数据跳过一个或多个所识别的静止帧。6.根据权利要求1所述的方法,其中所述视频数据包括单通视频数据。7.根据权利要求1所述的方法,其中所述平均量化参数包括用于对所述帧的每个宏块进行编码的每个量化参数的平均值。8.一种用于视频数据中的静止帧检测的装置,所述装置被配置为执行包括以下项的步骤:确定视频数据的帧的平均量化参数下降到量化参数阈值以下;确定所述帧中的跳过宏块的量是否满足跳过宏块阈值;以及响应于所述跳过宏块的量超过所述跳过宏块阈值,将所述帧识别为静止帧。9.根据权利要求8所述的装置,其中所述步骤还包括:响应于所述跳过宏块的量下降到所述跳过宏块阈值以下,确定所述帧的帧间编码宏块的量满足帧间宏块阈值;确定所述帧的跳过宏块相对于所述帧的非跳过宏块的速率-失真成本比率下降到速率-失真成本比率阈值以下;以及响应于所述速率-失真成本比率下降到所述速率-失真成本比率阈值以下,将所述帧识别为所述静止帧。10.根据权利要求8所述的装置,其中所述步骤还包括:响应于所述帧被识别为所述静止帧,修改下一帧的一个或多个编码属性;以及根据所述一个或多个所修改的编码属性对所述下一帧进行编码。11.根据权利要求8所述的装置,其中所述步骤还包括生成指示所述帧为所述静止帧的数据。12.根据权利要求11所述的装置,还包括在所述视频数据的分析期间基于所述数据跳过一个或多个所识别的静止帧。
13.根据权利要求8所述的装置,其中所述视频数据包括单通视频数据。14.根据权利要求8所述的装置,其中所述平均量化参数包括用于对所述帧的每个宏块进行编码的每个量化参数的平均值。15.一种计算机程序产品,所述计算机程序产品设置在非暂态计算机可读介质上,所述计算机程序产品包括用于视频数据中的静止帧检测的计算机程序指令,所述计算机程序指令在被执行时使得计算机系统执行包括以下项的步骤:确定视频数据的帧的平均量化参数下降到量化参数阈值以下;确定所述帧中的跳过宏块的量是否满足跳过宏块阈值;以及响应于所述跳过宏块的量超过所述跳过宏块阈值,将所述帧识别为静止帧。16.根据权利要求15所述的计算机程序产品,其中所述步骤还包括:响应于所述跳过宏块的量下降到所述跳过宏块阈值以下,确定所述帧的帧间编码宏块的量满足帧间宏块阈值;确定所述帧的跳过宏块相对于所述帧的非跳过宏块的速率-失真成本比率下降到速率-失真成本比率阈值以下;以及响应于所述速率-失真成本比率下降到所述速率-失真成本比率阈值以下,将所述帧识别为所述静止帧。17.根据权利要求15所述的计算机程序产品,其中所述步骤还包括:响应于所述帧被识别为静止帧,修改下一帧的一个或多个编码属性;以及根据所述一个或多个所修改的编码属性对所述下一帧进行编码。18.根据权利要求15所述的计算机程序产品,其中所述步骤还包括生成指示所述帧为所述静止帧的数据。19.根据权利要求18所述的计算机程序产品,还包括在所述视频数据的分析期间基于所述数据跳过一个或多个所识别的静止帧。20.根据权利要求15所述的计算机程序产品,其中所述视频数据包括单通视频数据。

技术总结
本发明公开了用于单通视频数据的静止帧检测,包括:确定视频数据的帧的平均量化参数下降到量化参数阈值以下;确定该帧中的跳过宏块的量是否满足跳过宏块阈值;以及响应于该跳过宏块的量超过该跳过宏块阈值,将该帧识别为静止帧。静止帧。静止帧。


技术研发人员:迈赫迪
受保护的技术使用者:ATI科技无限责任公司
技术研发日:2021.12.21
技术公布日:2023/9/16
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐