CN109743591B - 视频帧对齐的方法 - Google Patents
视频帧对齐的方法 Download PDFInfo
- Publication number
- CN109743591B CN109743591B CN201910007641.2A CN201910007641A CN109743591B CN 109743591 B CN109743591 B CN 109743591B CN 201910007641 A CN201910007641 A CN 201910007641A CN 109743591 B CN109743591 B CN 109743591B
- Authority
- CN
- China
- Prior art keywords
- video frame
- source video
- matching
- frame
- candidate
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000013507 mapping Methods 0.000 claims abstract description 94
- 238000012216 screening Methods 0.000 claims description 19
- 238000012360 testing method Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 13
- 230000001174 ascending effect Effects 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 238000000638 solvent extraction Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 abstract description 5
- 230000002411 adverse Effects 0.000 abstract 1
- 238000004364 calculation method Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000000903 blocking effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000013441 quality evaluation Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种视频帧对齐的方法,包括:从源视频帧序列中选取与当前被测视频帧匹配的候选源视频帧集合;从所述候选源视频帧集合中选取第一匹配源视频帧;生成当前被测视频帧与所述第一匹配源视频帧的第一映射关系,并将所有被测视频帧对应的第一映射关系组成第一映射集合;从所述第一映射集合中确定与当前被测视频帧对齐的目标源视频帧,得到的目标源视频帧既考虑了被测帧本身的因素,也考虑了匹配集合整体的因素,能够快速解决了视频帧在传输过程中遇到的丢帧、跳帧、停顿、帧率不一致等不良因素的影响,提高了帧对齐的准确率,为评估转码性能提供客观条件,较好的支撑了指定项目的进行。
Description
技术领域
本申请涉及直播领域,尤其涉及一种视频帧对齐的方法。
背景技术
视频质量的检测和评价技术是保障新一代网络服务质量的关键技术之一,可应用在无线通信系统的方案设计、视频压缩编码性能对比以及各类业务监控等诸多领域。国际电信联盟(ITU)远程通信标准化组在1997年成立了视频质量专家组,2008年8月,ITU发布了ITU_T J.246和J.247两个新标准。其中J.246推荐4个全参考视频质量评价模型,J.247推荐部分参考客观视频质量评价模型。但以上两者都是假定源视频帧与被测视频帧已对齐条件下进行。然而在实际的通信系统的传输过程中,由于通信系统的视频序列在传输过程中往往会存在丢帧、跳帧、停滞等现象,即接收到的视频序列并不总是和源序列逐帧对齐,因此进行视频帧对齐的研究是视频质量评价的第一步。
发明内容
有鉴于此,本申请提供一种视频帧对齐的方法。
根据本申请实施例的第一方面,提供了一种视频帧对齐的方法所述方法包括:
从源视频帧序列中选取与当前被测视频帧匹配的候选源视频帧集合;
从所述候选源视频帧集合中选取第一匹配源视频帧;
生成当前被测视频帧与所述第一匹配源视频帧的第一映射关系,并将所有被测视频帧对应的第一映射关系组成第一映射集合;
从所述第一映射集合中确定与当前被测视频帧对齐的目标源视频帧。
优选地,所述从源视频帧序列中选取与当前被测视频帧匹配的候选源视频帧集合,包括:
获取所述源视频帧序列中每个源视频帧的第一特征信息;
获取当前被测视频帧的第二特征信息;
将当前被测视频帧的第二特征信息与所述源视频帧序列中每个源视频帧的第一特征信息进行匹配,以确定与当前被测视频帧匹配的初筛源视频帧集合;
对所述初筛源视频帧集合进行排序,并选取排序在前的M个源视频帧组成候选源视频帧集合,其中,M与所述源视频帧序列中的源视频帧的帧数相关。
优选地,所述第一特征信息包括第一Y分量均值以及第一Y分量均值哈希值,所述第二特征信息包括第二Y分量均值以及第二Y分量均值哈希值;
所述将当前被测视频帧的第二特征信息与所述源视频帧序列中每个源视频帧的第一特征信息进行匹配,以确定与当前被测视频帧匹配的初筛源视频帧集合,包括:
将同时满足如下条件的源视频帧加入初筛源视频帧集合中:
所述第一Y分量均值与第二Y分量均值的差值绝对值小于第一预设阈值;
所述第一Y分量均值哈希值与所述第二Y分量均值哈希值之间存在的差异比特的数量小于第二预设阈值。
优选地,所述第一Y分量均值哈希值采用如下方式确定:
将所述源视频帧缩放成预设分辨率的灰度图像;
计算所述灰度图像的Y分量均值;
遍历所述灰度图像中每个像素点,若所述像素点的亮度值大于或等于所述灰度图像的Y分量均值,则将所述像素点对应的哈希字符设置为1;若所述像素点的亮度值小于所述灰度图像的Y分量均值,则将所述像素点对应的哈希字符设置为0,最终得到一个与所述预设分辨率对应大小的第一Y分量均值哈希值。
优选地,所述对所述初筛源视频帧集合进行排序,包括:
按照所述第一Y分量均值哈希值与所述第二Y分量均值哈希值之间存在的差异比特的数量对所述初筛源视频帧集合进行升序排序;
若所述差异比特的数量相同,则按照所述第一Y分量均值与第二Y分量均值的差值绝对值进行升序排序。
优选地,所述从所述候选源视频帧集合中选取第一匹配源视频帧,包括:
判断所述候选源视频帧集合中是否存在符合预设条件的候选源视频帧;
若所述候选源视频帧集合中存在符合预设条件的候选源视频帧,则从所述符合预设条件的候选源视频帧中选取第一匹配源视频帧。
优选地,所述判断所述候选源视频帧集合中是否存在符合预设条件的候选源视频帧,包括:
按照相同的分块策略将当前被测视频帧以及所述候选源视频帧集合中的各个候选源视频帧进行分块,获得当前被测视频帧对应的多个第一子块,以及各个候选源视频帧对应的多个第二子块;
针对各个候选源视频帧,将所述候选源视频帧的第二子块与当前被测视频帧的相同位置的第一子块进行匹配;
若某一候选源视频帧中子块匹配的结果不满足预设子块匹配条件,则判定该候选源视频帧为不符合预设条件的候选源视频帧;
若某一候选源视频帧中子块匹配的结果满足预设子块匹配条件,则判定该候选源视频帧为符合预设条件的候选源视频帧。
优选地,采用如下方式判断某一候选源视频帧中子块匹配的结果是否满足预设子块匹配条件:
计算所述候选源视频帧的第二子块与当前被测视频帧的相同位置的第一子块的子块PSNR;判断所述候选源视频帧中子块PSNR低于预设的psnrL的数量是否超过numL;
若子块PSNR低于预设的psnrL的数量超过numL,则判定子块匹配的结果不满足预设子块匹配条件;
若子块PSNR低于预设的psnrL的数量不超过numL,则判断候选源视频帧中子块PSNR低于预设的psnrM的数量是否超过numM;
若子块PSNR低于预设的psnrM的数量超过numM,则判定子块匹配的结果不满足预设子块匹配条件;
若子块PSNR低于预设的psnrM的数量不超过numM,则判断候选源视频帧中子块PSNR低于预设的psnrH的数量是否超过numH;
若子块PSNR低于预设的psnrH的数量超过numH,则判定子块匹配的结果不满足预设子块匹配条件;
若子块PSNR低于预设的psnrH的数量不超过numH,则判定子块匹配的结果满足预设子块匹配条件;
其中,psnrL<psnrM<psnrH,numL<numM<numH。
优选地,所述从所述符合预设条件的候选源视频帧中选取第一匹配源视频帧,包括:
计算各符合预设条件的候选源视频帧与当前被测视频帧的帧峰值信噪比PSNR;
选取最大的帧PSNR,若判定所述最大的帧PSNR大于或等于预设帧PSNR阈值,则将该最大的帧PSNR对应的候选源视频帧确定为第一匹配源视频帧。
优选地,所述从所述第一映射集合中确定与当前被测视频帧对齐的目标源视频帧,包括:
若所述第一映射集合中的第一匹配源视频帧没有按照帧号的顺序排序,则将所述第一映射集合中的第一匹配源视频帧按照帧号的顺序排序,以生成当前被测视频帧与第二匹配源视频帧的第二映射关系;
从所述第一匹配源视频帧与所述第二匹配源视频帧中选取目标源视频帧。
优选地,所述从所述第一匹配源视频帧与所述第二匹配源视频帧中选取目标源视频帧,包括:
获取所述第一匹配源视频帧的第一指定参数值以及所述第二匹配源视频帧的第二指定参数值;
若所述第一指定参数值大于所述第二指定参数值,则将所述第一匹配源视频帧作为目标源视频帧;
若所述第一指定参数值小于所述第二指定参数值,则将所述第二匹配源视频帧作为目标源视频帧。
优选地,在所述从所述候选源视频帧集合中选取第一匹配源视频帧之前,还包括:
获取指定缓冲区中已写入的源视频帧的映射关系数据结构,其中,所述映射关系数据结构包括已写入的源视频帧的帧号以及对应的缓存地址;
当需要将所述候选源视频帧集合中的候选源视频帧写入所述指定缓冲区时,在所述映射关系数据结构中查找待写入的候选源视频帧的帧号;
若查找成功,则获取所述候选源视频帧对应的缓存地址;
若查找失败,则将所述候选源视频帧写入所述指定缓冲区,并获取所述候选源视频帧在所述指定缓冲区的缓存地址,生成所述缓存地址与所述候选源视频帧的帧号的映射关系存入映射关系数据结构中。
优选地,所述将所述候选源视频帧写入所述指定缓冲区,包括:
判断所述指定缓冲区是否已满;
若所述指定缓冲区已满,则从所述指定缓冲区中释放帧号靠前的指定数量的源视频帧,并从所述映射关系数据结构中获取被释放的所述源视频帧的缓存地址,将所述被释放的所述源视频帧的缓存地址加入预设的可用缓存地址队列中,以及,从所述可用缓存地址队列的队首中取出一可用缓存地址分配给待写入的候选源视频帧,并将所述候选源视频帧写入所述指定缓冲区的对应缓存地址中;
若所述指定缓冲区未满,则判断所述可用缓存地址队列是否为空;
若所述可用缓存地址队列为空,则任意分配一个空闲的缓存地址给待写入的候选源视频帧,并将所述候选源视频帧写入所述缓存地址中;
若所述可用缓存地址队列不为空,则从所述可用缓存地址队列的队首中选取一可用缓存地址分配给待写入的候选源视频帧,并将所述候选源视频帧写入所述可用缓存地址中。
优选地,在所述从所述候选源视频帧集合中选取第一匹配源视频帧之后,所述方法还包括:
从所述源视频帧序列中删除所述第一匹配源视频帧。
根据本申请实施例的第二方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述方法的步骤。
根据本申请实施例的第三方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
本申请实施例提供的技术方案具有如下有益效果:
本申请实施例提出了一种新的视频帧对齐方式,当从源视频帧序列中选取与当前被测视频帧匹配的候选源视频帧集合以后,可以进一步从该候选源视频帧集合中选取第一匹配源视频帧,生成当前被测视频帧与第一匹配源视频帧的第一映射关系,并将所有被测视频帧对应的第一映射关系组成第一映射集合并从第一映射集合中选取目标源视频帧作为与当前被测视频帧对齐的源视频帧,得到的目标源视频帧既考虑了被测帧本身的因素,也考虑了匹配集合整体的因素,能够快速解决了视频帧在传输过程中遇到的丢帧、跳帧、停顿、帧率不一致等不良因素的影响,提高了帧对齐的准确率,为评估转码性能(如psnr和vmaf的计算)提供客观条件,较好的支撑了指定项目的进行。
附图说明
图1是本申请一示例性实施例示出的一种视频帧对齐的方法实施例的步骤流程图;
图2是本申请一示例性实施例示出的帧缓存步骤流程图;
图3是本申请一示例性实施例示出的帧写入流程图;
图4是本申请的装置所在设备的一种硬件结构图;
图5是本申请一示例性实施例示出的一种视频帧对齐装置实施例的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
参考图1,示出了本申请一示例性实施例示出的一种视频帧对齐的方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,从源视频帧序列中选取与当前被测视频帧匹配的候选源视频帧集合;
具体的,源视频帧序列为对源视频进行解码后得到的视频帧序列;被测视频帧选取于被测视频帧序列,而被测视频帧序列为对被测视频进行解码后得到的视频帧序列。其中,源视频为原始获取的视频,也可以称为参考视频;而被测视频为对源视频进行转码后得到的视频,被测视频也可以称为转码视频。
在一种实现方式中,可以采用ffmpeg分别对源视频和被测视频进行解码,其中,ffmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,其提供了录制、转换以及流化音视频的完整解决方案,并且包含了非常先进的音频/视频编解码库libavcodec。
作为一种示例,源视频帧以及被测视频帧的像素格式均可以为YUV420P,则对源视频和被测视频进行解码可以得到两个对应的YUV文件。在这两个YUV文件中包含的源视频帧以及被测视频帧的帧数分别为I、J。
在本申请实施例中,假定所有源视频帧以及被测视频帧的分辨率都相同,其分辨率可以记作WxH,其中,W和H分别为视频帧的宽和高(以像素为单位)。在实际中,若源视频帧与被测视频帧的分辨率不同,可以采用ffmpeg的缩放库swscale来使两者相同。
本申请实施例可以遍历被测视频帧序列的每个被测视频帧,以从源视频帧序列中选取与每个被测视频帧匹配的候选源视频帧集合。
在本申请实施例的一种优选实施例中,步骤101进一步可以包括如下子步骤:
子步骤S11,获取所述源视频帧序列中每个源视频帧的第一特征信息;
作为一种示例,第一特征信息包括第一Y分量均值以及第一Y分量均值哈希值。
在一种实现方式中,第一Y分量均值可以采用如下方式计算:
获取源视频帧中各个像素点的Y分量的值,并对所述Y分量的值进行加和求平均,得到第一Y分量均值,其计算公式可以如公式(1)所示:
其中,meanYi为第一Y分量均值;Pi y(w,h)为第i个源视频帧第w行第h列的像素点的Y分量的值;WH为源视频帧的像素点数量。
在一种实现方式中,第一Y分量均值哈希值采用如下方式确定:
将所述源视频帧缩放成预设分辨率的灰度图像;计算所述灰度图像的Y分量均值;遍历所述灰度图像中每个像素点,若所述像素点的亮度值大于或等于所述灰度图像的Y分量均值,则将所述像素点对应的哈希字符设置为1;若所述像素点的亮度值小于所述灰度图像的Y分量均值,则将所述像素点对应的哈希字符设置为0,最终得到一个与所述预设分辨率对应大小的第一Y分量均值哈希值。
例如,预设分辨率可以为8x8分辨率,将源视频帧缩放成8x8分辨率的灰度图像以后,进一步计算该灰度图像的Y分量均值(计算方式可以参考上述第一Y分量均值的计算方式),然后遍历该8x8分辨率的灰度图像的每一个像素点,如果该像素点的亮度值大于或等于灰度图像的Y分量均值,则将该像素点对应的哈希字符设置为1;否则,如果像素点的亮度值小于灰度图像的Y分量均值,则将该像素点对应的哈希字符设置为0,当遍历完灰度图像中的所有像素点时,最终得到一个长度为64位的二进制的第一Y分量均值哈希值,记作meanHashi,i=0,1,…,I-1。
在实现时,为了提高帧对齐速度,上述对第一Y分量均值以及第一Y分量均值哈希值的计算可以采用SSE4.1进行汇编加速。
子步骤S12,获取当前被测视频帧的第二特征信息;
作为一种示例,第二特征信息可以包括第二Y分量均值meanYj以及第二Y分量均值哈希值meanHashj。
其中,第二Y分量均值以及第二Y分量均值哈希值的计算方式可以参考子步骤S11中第一Y分量均值以及第一Y分量均值哈希值的计算方式。
子步骤S13,将当前被测视频帧的第二特征信息与所述源视频帧序列中每个源视频帧的第一特征信息进行匹配,以确定与当前被测视频帧匹配的初筛源视频帧集合;
得到当前被测视频帧的第二特征信息以及每个源视频帧的第一特征信息以后,可以将该第二特征信息与每个第一特征信息进行匹配,最终确定与当前被测视频帧匹配的一系列源视频帧,组成初筛源视频帧集合,其中,该初筛源视频帧集合为初步确定的源视频帧集合。
在本申请实施例的一种优选实施例中,子步骤S13进一步可以包括如下子步骤:
将同时满足如下条件的源视频帧加入初筛源视频帧集合中:
所述第一Y分量均值与第二Y分量均值的差值绝对值小于第一预设阈值;
所述第一Y分量均值哈希值与所述第二Y分量均值哈希值之间存在的差异比特的数量小于第二预设阈值。
即,将满足如下公式(2)的源视频帧加入初筛源视频帧集合中:
|meanYi-meanYj|<meanThread&&cmp(meanHashi,meanHashj)<meanHashThread (2)
其中,|·|为取绝对值,当|meanYi-meanYj|越小时,表示对应的源视频帧与当前被测视频帧的差异越小,两者越相似;cmp(x,y)代表Y分量均值哈希值x和y之间存在的差异比特的数量,例如,假设x=00100,y=00111,两者第1、2、3个比特相同,第4、5个比特不同,即两者的差异比特的数量为2。两个Y分量均值哈希值的差异比特的数量越少,表示两个视频帧越相似。
需要说明的是,第一预设阈值meanThread与第二预设阈值meanHashThread均为经验值,例如,两者可以设定如下:meanThread=1.3,meanHashThread=8。
子步骤S14,对所述初筛源视频帧集合进行排序,并选取排序在前的M个源视频帧组成候选源视频帧集合。
得到与当前被测视频帧Pj初步匹配的初筛源视频帧集合Setj以后,可以对Setj进行排序。在一种实施方式中,一种排序的方式如下:
按照所述第一Y分量均值哈希值与所述第二Y分量均值哈希值之间存在的差异比特的数量对所述初筛源视频帧集合进行升序排序;
若所述差异比特的数量相同,则按照所述第一Y分量均值与第二Y分量均值的差值绝对值进行升序排序。
具体的,总体可以按照cmp(meanHashi,meanHashj)进行升序排序,当cmp(meanHashi,meanHashj)相同时,则可以按照|meanYi-meanYj|升序排序。
对Setj排序完成以后,为了避免过多不必要的匹配,减少匹配的数据量,提高匹配效率,可以只选取排序在前的M个源视频帧组成候选源视频帧集合进行后续匹配。
其中,M与源视频帧序列中的源视频帧的帧数I相关,例如,M=min(N,I·selectRatio)。
其中,N为Setj的势;selectRatio可以为经验值,例如,selectRatio=0.035。
在本申请实施例中,确定候选源视频帧集合以后,可以将候选源视频帧集合中的每个候选源视频帧读入指定缓冲区中。然而,由于相邻的被测视频帧对应的候选源视频帧集合可能会存在重复的候选源视频帧,从而导致出现反复读取相同候选源视频帧到指定缓冲区的操作,这种重复操作会在一定程度上降低了运算速度。为了避免读取重复的候选源视频帧,提高运算速度,参考图2所示的帧缓存步骤流程图,本申请实施例采用如下的步骤写入候选源视频帧:
步骤201,获取指定缓冲区中已写入的源视频帧的映射关系数据结构,其中,所述映射关系数据结构包括已写入的源视频帧的帧号以及对应的缓存地址;
作为一种示例,映射关系数据结构可以包括平衡二叉树结构,例如,红黑树(REDBLACK TREE)结构,红黑树结构的典型用途是实现关联数组。
在本实施例中,采用红黑树等映射关系数据结构来记录已写入的源视频帧的帧号以及对应的缓存地址。其中,该缓存地址可以表示为已写入的源视频帧在指定缓冲区的缓冲区指针。
步骤202,当需要将所述候选源视频帧集合中的候选源视频帧写入所述指定缓冲区时,在所述映射关系数据结构中查找待写入的候选源视频帧的帧号;若查找成功,则执行步骤203;若查找失败,则执行步骤204;
步骤203,获取所述候选源视频帧对应的缓存地址;
步骤204,将所述候选源视频帧写入所述指定缓冲区,并获取所述候选源视频帧在所述指定缓冲区的缓存地址,生成所述缓存地址与所述候选源视频帧的帧号的映射关系存入映射关系数据结构中。
在本实施例中,当需要将候选源视频帧集合中的候选源视频帧写入指定缓冲区时,可以首先在映射关系数据结构中查找待写入的候选源视频帧的帧号,若查找成功,则表示该候选源视频帧已写入指定缓冲区,此时无需重复将该候选源视频帧再写入指定缓冲区,只需要返回该候选源视频帧对应的缓存地址。否则,若查找失败,则表示该候选源视频帧未写入指定缓冲区,此时可以将该候选源视频帧写入指定缓冲区,并获取该候选源视频帧在指定缓冲区的缓存地址,以及生成该缓存地址与该候选源视频帧的帧号的映射关系存入映射关系数据结构中。
在本申请实施例的一种优选实施例中,参考图3的帧写入流程图所示,步骤204进一步可以包括如下子步骤:
子步骤S21,判断所述指定缓冲区是否已满;若是,则执行子步骤S22,若否,则执行子步骤S23;
在具体实现中,可以预先为指定缓冲区设置最大容纳的帧数,例如,该最大容纳的帧数为256帧。当指定缓冲区中缓存的候选源视频帧的数量达到256帧,则表示该指定缓冲区已满,否则,当指定缓冲区中缓存的候选源视频帧的数量没有达到256帧,则表示该指定缓冲区未满。
子步骤S22,从所述指定缓冲区中释放帧号靠前的指定数量的源视频帧,并从所述映射关系数据结构中获取被释放的所述源视频帧的缓存地址,将所述被释放的所述源视频帧的缓存地址加入预设的可用缓存地址队列中,以及,从所述可用缓存地址队列的队首中取出一可用缓存地址分配给待写入的候选源视频帧,并将所述候选源视频帧写入所述指定缓冲区的对应缓存地址中;
具体的,如果指定缓冲区已满,则首先可以从指定缓冲区中剔除或释放帧号靠前的指定数量的源视频帧,例如,剔除指定缓冲区中帧号靠前的64帧。然后从映射关系数据结构中获取被剔除的前64帧源视频帧的缓存地址,并将该64帧源视频帧的缓存地址加入预设的可用缓存地址队列中,以此完成帧释放的过程。
接下来是帧写入的过程,具体可以为:从可用缓存地址队列的队首中取出一可用缓存地址分配给待写入的候选源视频帧,然后再将该候选源视频帧写入指定缓冲区的对应缓存地址中,并在映射关系数据结构中记录该候选源视频帧的帧号与缓存地址的映射关系。
子步骤S23,判断所述可用缓存地址队列是否为空,若是,则执行子步骤S24,若否,则执行子步骤S25;
子步骤S24,任意分配一个空闲的缓存地址给待写入的候选源视频帧,并将所述候选源视频帧写入所述缓存地址中;
子步骤S25,从所述可用缓存地址队列的队首中选取一可用缓存地址分配给待写入的候选源视频帧,并将所述候选源视频帧写入所述可用缓存地址中。
具体的,如果指定缓冲区未满,则可以首先判断可用缓存地址队列是否为空,如果可用缓存地址队列为空,表示指定缓冲区中不存在被释放的视频帧,即指定缓冲区不存在从已满到未满的状态变化,而是一直处于未满状态,此时可以为待写入的候选源视频帧任意分配一个空闲的缓存地址,并将候选源视频帧写入该缓存地址中,以及在映射关系数据结构中建立该候选源视频帧的帧号与缓存地址的映射关系。
如果可用缓存地址队列不为空,表示指定缓冲区中存在被释放的视频帧,即指定缓冲区存在从已满到未满的状态变化,此时则可以复用被释放的帧的缓存地址,从可用缓存地址队列的队首中取出一可用缓存地址分配给待写入的候选源视频帧,然后再将该候选源视频帧写入指定缓冲区的对应缓存地址中,并在映射关系数据结构中记录该候选源视频帧的帧号与缓存地址的映射关系。
步骤102,从所述候选源视频帧集合中选取第一匹配源视频帧;
具体的,当将候选源视频帧集合中的所有候选源视频帧都写入指定缓冲区以后,可以根据对各个候选源视频帧的分析,确定第一匹配源视频帧。
在本申请实施例的一种优选实施例中,步骤102进一步可以包括如下子步骤:
子步骤S31,判断所述候选源视频帧集合中是否存在符合预设条件的候选源视频帧;
在实现中,可以基于候选源视频帧与当前被测视频帧的PSNR(Peak Signal toNoise Ratio,峰值信噪比)来判断该候选源视频帧是否为符合预设条件的候选源视频帧。
在本申请实施例的一种优选实施例中,子步骤S31进一步可以包括如下子步骤:
子步骤S311,按照相同的分块策略将当前被测视频帧以及所述候选源视频帧集合中的各个候选源视频帧进行分块,获得当前被测视频帧对应的多个第一子块,以及各个候选源视频帧对应的多个第二子块;
在具体实现中,由于被测视频帧与候选源视频帧的分辨率相同,则按照相同的分块策略对两者进行分块后,得到的各个子块的位置也是一一对应的。
例如,可以分别将当前被测视频帧与候选源视频帧划分成多个分辨率为KxK的子块。
在一种实现方式中,每帧划分出的子块的数量J满足如下公式(3):
子步骤S312,针对各个候选源视频帧,将所述候选源视频帧的第二子块与当前被测视频帧的相同位置的第一子块进行匹配;
在本实施例中,为了减低算法对整个视频帧进行匹配的复杂度,可以首先将视频帧进行分块匹配,将每个候选源视频帧的第二子块与当前被测视频帧的相同位置的第一子块进行匹配。
子步骤S313,若某一候选源视频帧中子块匹配的结果不满足预设子块匹配条件,则判定该候选源视频帧为不符合预设条件的候选源视频帧;
子步骤S314,若某一候选源视频帧中子块匹配的结果满足预设子块匹配条件,则判定该候选源视频帧为符合预设条件的候选源视频帧。
在本申请实施例的一种优选实施例中,可以采用如下方式判断某一候选源视频帧中子块匹配的结果是否满足预设子块匹配条件:
子步骤S41,计算所述候选源视频帧的第二子块与当前被测视频帧的相同位置的第一子块的子块PSNR;
在实现中,对于两个分辨率均为wxh的图像A和B,两者的PSNR的计算公式如公式(4)所示:
n为每个采样点的位深,例如n可以设置为8。
与上述第一Y分量均值以及第一Y分量均值哈希值的计算相似,本实施例在计算PSNR时也可以采用SSE4.1进行汇编加速。
则针对第二子块与对应位置的第一子块而言,两者的分辨率均为KxK,可以根据上述公式(4)计算两者的PSNR,作为子块PSNR。其中,PSNR越大表示两个子块越匹配。
子步骤S42,判断所述候选源视频帧中子块PSNR低于预设的psnrL的数量是否超过numL;若是,则执行子步骤S43,若否,则执行子步骤S44;
子步骤S43,判定子块匹配的结果不满足预设子块匹配条件;
子步骤S44,判断候选源视频帧中子块PSNR低于预设的psnrM的数量是否超过numM;若是,则执行子步骤S43,若否,则执行子步骤S45;
子步骤S45,判断候选源视频帧中子块PSNR低于预设的psnrH的数量是否超过numH;若是,则执行子步骤S43,若否,则执行子步骤S46;
子步骤S46,判定子块匹配的结果满足预设子块匹配条件。其中,psnrL<psnrM<psnrH,numL<numM<numH。
具体的,可以对当前候选源视频帧中各个第二子块与对应位置的第一子块的子块PSNR进行统计。当候选源视频帧中子块PSNR低于预设的psnrX的数量超过预设numX时,则可以直接判定子块匹配的结果不满足预设子块匹配条件,并进一步判定当前候选源视频帧为不符合预设条件的候选源视频帧。
如果候选源视频帧中子块PSNR低于预设的psnrX的数量小于预设numX时,则可以判定子块匹配的结果满足预设子块匹配条件,并判定当前候选源视频帧为符合预设条件的候选源视频帧。
在一种实施方式中,可以采用多级阈值的方式设置psnrX与numX。例如,psnrX包括如下三级阈值:psnrH、psnrM、psnrL;numX相应地包括如下三级阈值:numH、numM、numL。则当上述三级阈值任意一级不满足时,就可以判定子块匹配的结果不满足预设子块匹配条件;当上述三级阈值均满足时,则子块匹配的结果满足预设子块匹配条件。
子步骤S32,若所述候选源视频帧集合中存在符合预设条件的候选源视频帧,则从所述符合预设条件的候选源视频帧中选取第一匹配源视频帧。
在一种实施方式中,从符合预设条件的候选源视频帧中选取第一匹配源视频帧,包括:
计算各符合预设条件的候选源视频帧与当前被测视频帧的帧峰值信噪比PSNR;选取最大的帧PSNR,若判定所述最大的帧PSNR大于或等于预设帧PSNR阈值,则将该最大的帧PSNR对应的候选源视频帧确定为第一匹配源视频帧。
在具体实现中,可以通过公式(4)计算各符合预设条件的候选源视频帧与当前被测视频帧的帧PSNR。然后选取最大的帧PSNR,如果该最大的帧PSNR大于或等于预设帧PSNR阈值,则将该最大的帧PSNR对应的候选源视频帧作为第一匹配源视频帧。
其中,预设帧PSNR阈值可以为经验值,例如,预设帧PSNR阈值psnrThreadMin=23.5。
在一种实施例中,当确定与当前被测视频帧匹配的第一匹配源视频帧以后,可以从源视频帧序列中删除该第一匹配源视频帧,使得在进行后续的被测视频帧的匹配时,不考虑已被匹配的源视频帧,提高匹配效率。
当然,在其他实施例中,也可以不在源视频帧序列中删除第一匹配源视频帧,例如,在源视频帧序列中为第一匹配源视频帧添加已匹配标记,则在进行后续的被测视频帧的匹配时,不考虑已添加匹配标记的源视频帧。
步骤103,生成当前被测视频帧与所述第一匹配源视频帧的第一映射关系,并将所有被测视频帧对应的第一映射关系组成第一映射集合;
当确定与当前被测视频帧匹配的第一匹配源视频帧时,可以生成该当前被测视频帧与对应的第一匹配源视频帧的第一映射关系。
则当所有被测视频帧都遍历完成,获得对应的第一匹配源视频帧以后,则所有被测视频帧对应的第一映射关系可以组成第一映射集合X。
步骤104,从所述第一映射集合中确定与当前被测视频帧对齐的目标源视频帧。
在本实施例中,当前被测视频帧对应的第一匹配源视频帧不一定是与当前被测视频帧对齐的目标源视频帧,为了提高对齐的准确度,本申请实施例可以根据生成的第一映射集合,确定最终与当前被测视频帧对齐的目标源视频帧。
在本申请实施例的一种优选实施例中,步骤104进一步可以包括如下子步骤:
子步骤S51,若所述第一映射集合中的第一匹配源视频帧没有按照帧号的顺序排序,则将所述第一映射集合中的第一匹配源视频帧按照帧号的顺序排序,以生成当前被测视频帧与第二匹配源视频帧的第二映射关系;
在实际中,在第一映射集合X中被测视频帧是按照帧号的播放顺序排序的,但源视频帧未必是按照帧号的播放顺序排序的,则本实施例可以将第一映射集合X中的各个第一匹配源视频帧按照帧号的播放顺序排序,得到另一个映射集合Y,在集合Y中,当前被测视频帧与第二匹配源视频帧存在第二映射关系。
例如,第一映射集合X为{1→1,2→3,3→2,4→4},其中,箭头左边的字符为被测视频帧,箭头右边的字符为源视频帧。则将源视频帧按照帧号的顺序进行排序后,得到的集合Y为{1→1,2→2,3→3,4→4}。即对于帧号为2的被测视频帧,其第一匹配源视频帧为帧号为3的源视频帧,第二匹配源视频帧为帧号为2的源视频帧。同理,对于帧号为3的被测视频帧,其第一匹配源视频帧为帧号为2的源视频帧,第二匹配源视频帧为帧号为3的源视频帧。
另一方面,如果第一映射集合中的第一匹配源视频帧都按照帧号的顺序排序,则将该第一匹配源视频帧作为当前被测视频帧的目标源视频帧。
子步骤S52,从所述第一匹配源视频帧与所述第二匹配源视频帧中选取目标源视频帧。
当当前被测视频帧存在第一匹配源视频帧以及第二匹配源视频帧时,则可以从该第一匹配源视频帧以及第二匹配源视频帧中选取目标源视频帧。
在本申请实施例的一种优选实施例中,子步骤S52进一步可以包括如下子步骤:
获取所述第一匹配源视频帧的第一指定参数值以及所述第二匹配源视频帧的第二指定参数值;若所述第一指定参数值大于所述第二指定参数值,则将所述第一匹配源视频帧作为目标源视频帧;若所述第一指定参数值小于所述第二指定参数值,则将所述第二匹配源视频帧作为目标源视频帧。
作为一种示例,指定参数值可以包括但不限于帧PSNR。例如,可以根据上述公式(4)计算当前被测视频帧与第二匹配源视频帧对应的第二帧PSNR,并将该第二帧PSNR与第一匹配源视频帧对应的第一帧PSNR进行比较,选取最大者作为目标源视频帧,即如果第一帧PSNR大于第二帧PSNR,则将第一匹配源视频帧作为目标源视频帧,若第一帧PSNR小于第二帧PSNR,则将第二匹配源视频帧作为目标源视频帧。
得到当前被测视频帧对应的目标源视频帧以后,可以将该目标源视频帧加入最终的匹配集合中,至此完成帧对齐的过程。
本申请实施例提出了一种新的视频帧对齐方式,当从源视频帧序列中选取与当前被测视频帧匹配的候选源视频帧集合以后,可以进一步从该候选源视频帧集合中选取第一匹配源视频帧,生成当前被测视频帧与第一匹配源视频帧的第一映射关系,并将所有被测视频帧对应的第一映射关系组成第一映射集合并从第一映射集合中选取目标源视频帧作为与当前被测视频帧对齐的源视频帧,得到的目标源视频帧既考虑了被测帧本身的因素,也考虑了匹配集合整体的因素,能够快速解决了视频帧在传输过程中遇到的丢帧、跳帧、停顿、帧率不一致等不良因素的影响,提高了帧对齐的准确率,为评估转码性能(如psnr和vmaf的计算)提供客观条件,较好的支撑了指定项目的进行。
与前述方法的实施例相对应,本申请还提供了视频帧对齐装置实施例。
本申请的装置实施例可以应用在终端设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请的装置所在设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该装置的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图5,示出了本申请一示例性实施例示出的一种视频帧对齐装置实施例的结构框图,所述装置包括如下模块:
候选源视频帧集合确定模块501,用于从源视频帧序列中选取与当前被测视频帧匹配的候选源视频帧集合;
第一匹配源视频帧选取模块502,用于从所述候选源视频帧集合中选取第一匹配源视频帧;
映射模块503,用于生成当前被测视频帧与所述第一匹配源视频帧的第一映射关系,并将所有被测视频帧对应的第一映射关系组成第一映射集合;
目标源视频帧确定模块504,用于从所述第一映射集合中确定与当前被测视频帧对齐的目标源视频帧。
在本申请实施例的一种优选实施例中,所述候选源视频帧集合确定模块501包括:
第一特征信息获取子模块,用于获取所述源视频帧序列中每个源视频帧的第一特征信息;
第二特征信息获取子模块,用于获取当前被测视频帧的第二特征信息;
初筛源视频帧集合确定子模块,用于将当前被测视频帧的第二特征信息与所述源视频帧序列中每个源视频帧的第一特征信息进行匹配,以确定与当前被测视频帧匹配的初筛源视频帧集合;
候选源视频帧集合确定子模块,用于对所述初筛源视频帧集合进行排序,并选取排序在前的M个源视频帧组成候选源视频帧集合,其中,M与所述源视频帧序列中的源视频帧的帧数相关。
在本申请实施例的一种优选实施例中,所述第一特征信息包括第一Y分量均值以及第一Y分量均值哈希值,所述第二特征信息包括第二Y分量均值以及第二Y分量均值哈希值;
所述初筛源视频帧集合确定子模块具体用于:
将同时满足如下条件的源视频帧加入初筛源视频帧集合中:
所述第一Y分量均值与第二Y分量均值的差值绝对值小于第一预设阈值;
所述第一Y分量均值哈希值与所述第二Y分量均值哈希值之间存在的差异比特的数量小于第二预设阈值。
在本申请实施例的一种优选实施例中,所述第一特征信息获取子模块具体用于:
将所述源视频帧缩放成预设分辨率的灰度图像;
计算所述灰度图像的Y分量均值;
遍历所述灰度图像中每个像素点,若所述像素点的亮度值大于或等于所述灰度图像的Y分量均值,则将所述像素点对应的哈希字符设置为1;若所述像素点的亮度值小于所述灰度图像的Y分量均值,则将所述像素点对应的哈希字符设置为0,最终得到一个与所述预设分辨率对应大小的第一Y分量均值哈希值。
在本申请实施例的一种优选实施例中,所述候选源视频帧集合确定子模块具体用于:
按照所述第一Y分量均值哈希值与所述第二Y分量均值哈希值之间存在的差异比特的数量对所述初筛源视频帧集合进行升序排序;
若所述差异比特的数量相同,则按照所述第一Y分量均值与第二Y分量均值的差值绝对值进行升序排序。
在本申请实施例的一种优选实施例中,所述第一匹配源视频帧选取模块502包括:
预设条件判断子模块,用于判断所述候选源视频帧集合中是否存在符合预设条件的候选源视频帧;
第一匹配源视频帧确定子模块,用于若所述候选源视频帧集合中存在符合预设条件的候选源视频帧,则从所述符合预设条件的候选源视频帧中选取第一匹配源视频帧。
在本申请实施例的一种优选实施例中,所述预设条件判断子模块包括:
分块单元,用于按照相同的分块策略将当前被测视频帧以及所述候选源视频帧集合中的各个候选源视频帧进行分块,获得当前被测视频帧对应的多个第一子块,以及各个候选源视频帧对应的多个第二子块;
子块匹配单元,用于针对各个候选源视频帧,将所述候选源视频帧的第二子块与当前被测视频帧的相同位置的第一子块进行匹配;
第一判定单元,用于若某一候选源视频帧中子块匹配的结果不满足预设子块匹配条件,则判定该候选源视频帧为不符合预设条件的候选源视频帧;
第二判定单元,用于若某一候选源视频帧中子块匹配的结果满足预设子块匹配条件,则判定该候选源视频帧为符合预设条件的候选源视频帧。
在本申请实施例的一种优选实施例中,采用如下方式判断某一候选源视频帧中子块匹配的结果是否满足预设子块匹配条件:
计算所述候选源视频帧的第二子块与当前被测视频帧的相同位置的第一子块的子块PSNR;判断所述候选源视频帧中子块PSNR低于预设的psnrL的数量是否超过numL;
若子块PSNR低于预设的psnrL的数量超过numL,则判定子块匹配的结果不满足预设子块匹配条件;
若子块PSNR低于预设的psnrL的数量不超过numL,则判断候选源视频帧中子块PSNR低于预设的psnrM的数量是否超过numM;
若子块PSNR低于预设的psnrM的数量超过numM,则判定子块匹配的结果不满足预设子块匹配条件;
若子块PSNR低于预设的psnrM的数量不超过numM,则判断候选源视频帧中子块PSNR低于预设的psnrH的数量是否超过numH;
若子块PSNR低于预设的psnrH的数量超过numH,则判定子块匹配的结果不满足预设子块匹配条件;
若子块PSNR低于预设的psnrH的数量不超过numH,则判定子块匹配的结果满足预设子块匹配条件;
其中,psnrL<psnrM<psnrH,numL<numM<numH。
在本申请实施例的一种优选实施例中,所述第一匹配源视频帧确定子模块具体用于:
计算各符合预设条件的候选源视频帧与当前被测视频帧的帧峰值信噪比PSNR;
选取最大的帧PSNR,若判定所述最大的帧PSNR大于或等于预设帧PSNR阈值,则将该最大的帧PSNR对应的候选源视频帧确定为第一匹配源视频帧。在本申请实施例的一种优选实施例中,所述目标源视频帧确定模块505包括:
重排序子模块,用于若所述第一映射集合中的第一匹配源视频帧没有按照帧号的顺序排序,则将所述第一映射集合中的第一匹配源视频帧按照帧号的顺序排序,以生成当前被测视频帧与第二匹配源视频帧的第二映射关系;
目标源视频帧选取子模块,用于从所述第一匹配源视频帧与所述第二匹配源视频帧中选取目标源视频帧。
在本申请实施例的一种优选实施例中,所述目标源视频帧选取子模块具体用于:
获取所述第一匹配源视频帧的第一指定参数值以及所述第二匹配源视频帧的第二指定参数值;
若所述第一指定参数值大于所述第二指定参数值,则将所述第一匹配源视频帧作为目标源视频帧;
若所述第一指定参数值小于所述第二指定参数值,则将所述第二匹配源视频帧作为目标源视频帧。
在本申请实施例的一种优选实施例中,所述装置还包括:
映射关系数据结构获取模块,用于获取指定缓冲区中已写入的源视频帧的映射关系数据结构,其中,所述映射关系数据结构包括已写入的源视频帧的帧号以及对应的缓存地址;
映射关系查找模块,用于当需要将所述候选源视频帧集合中的候选源视频帧写入所述指定缓冲区时,在所述映射关系数据结构中查找待写入的候选源视频帧的帧号;若查找成功,则调用缓存地址获取模块;若查找失败,则调用写入模块;
缓存地址获取模块,用于获取所述候选源视频帧对应的缓存地址;
写入模块,用于将所述候选源视频帧写入所述指定缓冲区,并获取所述候选源视频帧在所述指定缓冲区的缓存地址,生成所述缓存地址与所述候选源视频帧的帧号的映射关系存入映射关系数据结构中。
在本申请实施例的一种优选实施例中,所述写入模块包括:
缓冲区判断子模块,用于判断所述指定缓冲区是否已满;若所述指定缓冲区已满,则调用释放子模块以及第一写入子模块;若所述指定缓冲区未满,则调用队列判断子模块;
释放子模块,用于从所述指定缓冲区中释放帧号靠前的指定数量的源视频帧,并从所述映射关系数据结构中获取被释放的所述源视频帧的缓存地址,将所述被释放的所述源视频帧的缓存地址加入预设的可用缓存地址队列中;
第一写入子模块,用于从所述可用缓存地址队列的队首中取出一可用缓存地址分配给待写入的候选源视频帧,并将所述候选源视频帧写入所述指定缓冲区的对应缓存地址中;
队列判断子模块,用于判断所述可用缓存地址队列是否为空;若所述可用缓存地址队列为空,则调用第二写入子模块,若所述可用缓存地址队列不为空,则调用第一写入子模块;
第二写入子模块,用于任意分配一个空闲的缓存地址给待写入的候选源视频帧,并将所述候选源视频帧写入所述缓存地址中。
在本申请实施例的一种优选实施例中,所述装置还包括:
源视频帧删除模块,用于从所述源视频帧序列中删除所述第一匹配源视频帧。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。
以上所描述的装置实施例以及直播系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述方法实施例的步骤。
本申请还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法实施例的步骤。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如车载终端、移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (15)
1.一种视频帧对齐的方法,其特征在于,所述方法包括:
从源视频帧序列中选取与当前被测视频帧匹配的候选源视频帧集合;
从所述候选源视频帧集合中根据预设条件选取第一匹配源视频帧;
生成当前被测视频帧与所述第一匹配源视频帧的第一映射关系,当获得所有被测视频帧对应的第一匹配源视频帧后,将所有被测视频帧对应的第一映射关系组成第一映射集合;
基于所述第一映射集合中的第一匹配源视频帧的顺序排序,若所述第一映射集合中的第一匹配源视频帧没有按照帧号的顺序排序,则将所述第一映射集合中的第一匹配源视频帧按照帧号的顺序排序,以生成当前被测视频帧与第二匹配源视频帧的第二映射关系;从所述第一匹配源视频帧与所述第二匹配源视频帧中选取目标源视频帧。
2.根据权利要求1所述的方法,其特征在于,所述从源视频帧序列中选取与当前被测视频帧匹配的候选源视频帧集合,包括:
获取所述源视频帧序列中每个源视频帧的第一特征信息;
获取当前被测视频帧的第二特征信息;
将当前被测视频帧的第二特征信息与所述源视频帧序列中每个源视频帧的第一特征信息进行匹配,以确定与当前被测视频帧匹配的初筛源视频帧集合;
对所述初筛源视频帧集合进行排序,并选取排序在前的M个源视频帧组成候选源视频帧集合,其中,M与所述源视频帧序列中的源视频帧的帧数相关。
3.根据权利要求2所述的方法,其特征在于,所述第一特征信息包括第一Y分量均值以及第一Y分量均值哈希值,所述第二特征信息包括第二Y分量均值以及第二Y分量均值哈希值;
所述将当前被测视频帧的第二特征信息与所述源视频帧序列中每个源视频帧的第一特征信息进行匹配,以确定与当前被测视频帧匹配的初筛源视频帧集合,包括:
将同时满足如下条件的源视频帧加入初筛源视频帧集合中:
所述第一Y分量均值与第二Y分量均值的差值绝对值小于第一预设阈值;
所述第一Y分量均值哈希值与所述第二Y分量均值哈希值之间存在的差异比特的数量小于第二预设阈值。
4.根据权利要求3所述的方法,其特征在于,所述第一Y分量均值哈希值采用如下方式确定:
将所述源视频帧缩放成预设分辨率的灰度图像;
计算所述灰度图像的Y分量均值;
遍历所述灰度图像中每个像素点,若所述像素点的亮度值大于或等于所述灰度图像的Y分量均值,则将所述像素点对应的哈希字符设置为1;若所述像素点的亮度值小于所述灰度图像的Y分量均值,则将所述像素点对应的哈希字符设置为0,最终得到一个与所述预设分辨率对应大小的第一Y分量均值哈希值。
5.根据权利要求3或4所述的方法,其特征在于,所述对所述初筛源视频帧集合进行排序,包括:
按照所述第一Y分量均值哈希值与所述第二Y分量均值哈希值之间存在的差异比特的数量对所述初筛源视频帧集合进行升序排序;
若所述差异比特的数量相同,则按照所述第一Y分量均值与第二Y分量均值的差值绝对值进行升序排序。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述从所述候选源视频帧集合中根据预设条件选取第一匹配源视频帧,包括:
判断所述候选源视频帧集合中是否存在符合预设条件的候选源视频帧;
若所述候选源视频帧集合中存在符合预设条件的候选源视频帧,则从所述符合预设条件的候选源视频帧中选取第一匹配源视频帧。
7.根据权利要求6所述的方法,其特征在于,所述判断所述候选源视频帧集合中是否存在符合预设条件的候选源视频帧,包括:
按照相同的分块策略将当前被测视频帧以及所述候选源视频帧集合中的各个候选源视频帧进行分块,获得当前被测视频帧对应的多个第一子块,以及各个候选源视频帧对应的多个第二子块;
针对各个候选源视频帧,将所述候选源视频帧的第二子块与当前被测视频帧的相同位置的第一子块进行匹配;
若某一候选源视频帧中子块匹配的结果不满足预设子块匹配条件,则判定该候选源视频帧为不符合预设条件的候选源视频帧;
若某一候选源视频帧中子块匹配的结果满足预设子块匹配条件,则判定该候选源视频帧为符合预设条件的候选源视频帧。
8.根据权利要求7所述的方法,其特征在于,采用如下方式判断某一候选源视频帧中子块匹配的结果是否满足预设子块匹配条件:
计算所述候选源视频帧的第二子块与当前被测视频帧的相同位置的第一子块的子块PSNR;判断所述候选源视频帧中子块PSNR低于预设的psnrL的数量是否超过numL;
若子块PSNR低于预设的psnrL的数量超过numL,则判定子块匹配的结果不满足预设子块匹配条件;
若子块PSNR低于预设的psnrL的数量不超过numL,则判断候选源视频帧中子块PSNR低于预设的psnrM的数量是否超过numM;
若子块PSNR低于预设的psnrM的数量超过numM,则判定子块匹配的结果不满足预设子块匹配条件;
若子块PSNR低于预设的psnrM的数量不超过numM,则判断候选源视频帧中子块PSNR低于预设的psnrH的数量是否超过numH;
若子块PSNR低于预设的psnrH的数量超过numH,则判定子块匹配的结果不满足预设子块匹配条件;
若子块PSNR低于预设的psnrH的数量不超过numH,则判定子块匹配的结果满足预设子块匹配条件;
其中,psnrL<psnrM<psnrH,numL<numM<numH。
9.根据权利要求7或8所述的方法,其特征在于,所述从所述符合预设条件的候选源视频帧中选取第一匹配源视频帧,包括:
计算各符合预设条件的候选源视频帧与当前被测视频帧的帧峰值信噪比PSNR;
选取最大的帧PSNR,若判定所述最大的帧PSNR大于或等于预设帧PSNR阈值,则将该最大的帧PSNR对应的候选源视频帧确定为第一匹配源视频帧。
10.根据权利要求1所述的方法,其特征在于,所述从所述第一匹配源视频帧与所述第二匹配源视频帧中选取目标源视频帧,包括:
获取所述第一匹配源视频帧的第一指定参数值以及所述第二匹配源视频帧的第二指定参数值;
若所述第一指定参数值大于所述第二指定参数值,则将所述第一匹配源视频帧作为目标源视频帧;
若所述第一指定参数值小于所述第二指定参数值,则将所述第二匹配源视频帧作为目标源视频帧。
11.根据权利要求1所述的方法,其特征在于,在所述从所述候选源视频帧集合中选取第一匹配源视频帧之前,还包括:
获取指定缓冲区中已写入的源视频帧的映射关系数据结构,其中,所述映射关系数据结构包括已写入的源视频帧的帧号以及对应的缓存地址;
当需要将所述候选源视频帧集合中的候选源视频帧写入所述指定缓冲区时,在所述映射关系数据结构中查找待写入的候选源视频帧的帧号;
若查找成功,则获取所述候选源视频帧对应的缓存地址;
若查找失败,则将所述候选源视频帧写入所述指定缓冲区,并获取所述候选源视频帧在所述指定缓冲区的缓存地址,生成所述缓存地址与所述候选源视频帧的帧号的映射关系存入映射关系数据结构中。
12.根据权利要求11所述的方法,其特征在于,所述将所述候选源视频帧写入所述指定缓冲区,包括:
判断所述指定缓冲区是否已满;
若所述指定缓冲区已满,则从所述指定缓冲区中释放帧号靠前的指定数量的源视频帧,并从所述映射关系数据结构中获取被释放的所述源视频帧的缓存地址,将所述被释放的所述源视频帧的缓存地址加入预设的可用缓存地址队列中,以及,从所述可用缓存地址队列的队首中取出一可用缓存地址分配给待写入的候选源视频帧,并将所述候选源视频帧写入所述指定缓冲区的对应缓存地址中;
若所述指定缓冲区未满,则判断所述可用缓存地址队列是否为空;
若所述可用缓存地址队列为空,则任意分配一个空闲的缓存地址给待写入的候选源视频帧,并将所述候选源视频帧写入所述缓存地址中;
若所述可用缓存地址队列不为空,则从所述可用缓存地址队列的队首中选取一可用缓存地址分配给待写入的候选源视频帧,并将所述候选源视频帧写入所述可用缓存地址中。
13.根据权利要求1所述的方法,其特征在于,在所述从所述候选源视频帧集合中选取第一匹配源视频帧之后,所述方法还包括:
从所述源视频帧序列中删除所述第一匹配源视频帧。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-13任一项所述方法的步骤。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-13任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910007641.2A CN109743591B (zh) | 2019-01-04 | 2019-01-04 | 视频帧对齐的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910007641.2A CN109743591B (zh) | 2019-01-04 | 2019-01-04 | 视频帧对齐的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109743591A CN109743591A (zh) | 2019-05-10 |
CN109743591B true CN109743591B (zh) | 2022-01-25 |
Family
ID=66361555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910007641.2A Active CN109743591B (zh) | 2019-01-04 | 2019-01-04 | 视频帧对齐的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109743591B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110493638B (zh) * | 2019-08-20 | 2021-12-03 | 广州虎牙科技有限公司 | 视频帧对齐方法、装置、电子设备及可读存储介质 |
CN110798736B (zh) * | 2019-11-28 | 2021-04-20 | 百度在线网络技术(北京)有限公司 | 视频播放方法、装置、设备和介质 |
CN112714309A (zh) * | 2020-12-22 | 2021-04-27 | 北京百度网讯科技有限公司 | 视频质量评估方法、装置、设备、介质及程序产品 |
CN114972809A (zh) * | 2021-02-19 | 2022-08-30 | 株式会社理光 | 用于视频处理的方法、设备及计算机可读存储介质 |
CN113316001B (zh) * | 2021-05-25 | 2023-04-11 | 上海哔哩哔哩科技有限公司 | 视频对齐方法及装置 |
CN113949899B (zh) * | 2021-10-15 | 2024-03-12 | 上海哔哩哔哩科技有限公司 | 视频质量评估方法及装置 |
CN117640925A (zh) * | 2024-01-26 | 2024-03-01 | 海看网络科技(山东)股份有限公司 | 一种多路视频画面一致性检测方法、系统及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105472407A (zh) * | 2015-12-15 | 2016-04-06 | 北京网博视界科技股份有限公司 | 基于连续图像特征的自动化视频索引及对齐方法 |
CN106572387A (zh) * | 2016-11-09 | 2017-04-19 | 广州视源电子科技股份有限公司 | 视频序列对齐方法和系统 |
CN108898150A (zh) * | 2018-08-09 | 2018-11-27 | 清华大学 | 视频结构对齐方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9762846B2 (en) * | 2015-05-08 | 2017-09-12 | Microsoft Technology Licensing, Llc | Real-time hyper-lapse video creation via frame selection |
-
2019
- 2019-01-04 CN CN201910007641.2A patent/CN109743591B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105472407A (zh) * | 2015-12-15 | 2016-04-06 | 北京网博视界科技股份有限公司 | 基于连续图像特征的自动化视频索引及对齐方法 |
CN106572387A (zh) * | 2016-11-09 | 2017-04-19 | 广州视源电子科技股份有限公司 | 视频序列对齐方法和系统 |
CN108898150A (zh) * | 2018-08-09 | 2018-11-27 | 清华大学 | 视频结构对齐方法和系统 |
Non-Patent Citations (1)
Title |
---|
基于视频的人脸检测与对齐算法研究;吴彬;《中国优秀硕士学位论文全文数据库》;20170915;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109743591A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109743591B (zh) | 视频帧对齐的方法 | |
US11889072B2 (en) | Video encoding and decoding | |
KR101208863B1 (ko) | 비디오 데이터의 인코딩을 위한 인코딩 유형 및 예측 모드 선택 | |
JP4463765B2 (ja) | 異なるコーデックを用いてメディア信号を圧縮するためのシステム及び方法 | |
CN109104609B (zh) | 一种融合hevc压缩域和像素域的镜头边界检测方法 | |
JP2006014343A5 (zh) | ||
CN110049309B (zh) | 视频流中图像帧的稳定性检测方法和装置 | |
CN109194955B (zh) | 一种场景切换检测方法及系统 | |
US20240080439A1 (en) | Intra-frame predictive coding method and system for 360-degree video and medium | |
CN104303504A (zh) | 稳定信息和瞬时/随机信息的不同编码和解码 | |
JP2013519333A (ja) | 伝搬マップを使用する透かし検出 | |
US11805276B2 (en) | Intra prediction method and device and computer-readable storage medium | |
US9509991B2 (en) | Processing and reproduction of frames | |
CN112073733A (zh) | 基于运动矢量角度预测的视频编解码方法和装置 | |
CN109219960B (zh) | 视频编码质量平滑度的优化方法、装置、设备及存储介质 | |
CN108024114B (zh) | 一种基于标志位参数修改的大容量无损hevc信息隐藏方法 | |
CN111416982B (zh) | 对运动矢量信息进行编/解码的方法及装置 | |
KR101415429B1 (ko) | 블록 아티팩트 기반의 동영상 화질 최적화를 위한 비트레이트 결정 방법 | |
JP4410039B2 (ja) | 動き検出装置および動き検出方法、画像処理装置 | |
KR102076781B1 (ko) | 적응적인 인트라 예측 모드 부호화 방법 및 장치, 그리고 복호화 방법 및 장치 | |
CN112119635B (zh) | 码流处理方法、设备、计算机可读存储介质 | |
US20240267542A1 (en) | Methods and devices for decoding at least part of a data stream, computer program and associated data streams | |
CN109783475B (zh) | 一种视频失真效应标记大规模数据库的构建方法 | |
Krulikovska et al. | GOP structure adaptable to the location of shot cuts | |
KR20200015684A (ko) | 적응적인 인트라 예측 모드 부호화 방법 및 장치, 그리고 복호화 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |