Beamr的闭环内容自适应编码解决方案(CABR)的核心是一项质量衡量的专利。与一般的视频质量衡量方法相反,传统方法旨在衡量由于误码,噪声,模糊,分辨率变化等导致的视频流之间的差异。而Beamr的质量衡量方法是针对特定的任务而设定的。在这篇博客文章中,Tamar Shoham为我们介绍了这种方法的组成部分。
文 / Dror Gill& Tamar Shoham
翻译 / 屈健宁
Beamr的闭环内容自适应编码解决方案(CABR)的核心是一项质量衡量的专利。这个衡量方法将每个候选编码帧的感知质量和初始编码帧的进行比较。这种质量衡量方法确保了在比特率降低的情况下,仍然保留目标编码的感知质量。与一般的视频质量衡量方法相反,传统方法旨在衡量由于误码,噪声,模糊,分辨率变化等导致的视频流之间的差异。而Beamr的质量衡量方法是针对特定的任务而设定的。Beamr的方法可以可靠、迅速地量化由于基于块的视频编码的伪像而导致的视频帧中被迫引入的感知质量损失。在这篇博客文章中,我们介绍了这种方法的组成部分,如上图一所示。
预分析(Pre-analysis)
在确定编码帧的质量之前,质量衡量组件对源编码帧和初始编码帧执行一些预分析,用以提取质量衡量计算中需要的一些数据,同时收集用于配置质量衡量的信息。预分析分为两个部分,第一个部分在源编码帧上执行,第二部分在初始编码帧上执行。
Figure.A blockdiagram of the video quality measure used in Beamr’s CABR engine
预分析的第一部分的目的是表征给定帧内的内容、框架和感兴趣的区域。在这个阶段,我们可以确定在帧里是否有皮肤和面部区域、3D动画典型的丰富色度信息或者在单元动画内容中找到的具有动态背景的高度局部移动。所使用的算法旨在降低CPU的负担。例如,我们的面部检测算法在场景变化的时候采用了完整的监测机制,而在其他帧中则采用了独特的低复杂度自适应跟踪机制。对于皮肤检测,我们使用了AdaBoost分类器,该分类器在我们创建的标记数据集上进行了训练。AdaBoost分类器使用YUV像素值和4×4亮度方差值输入。在此阶段,我们还计算了我们在下面描述的Edge-Loss-Factor分数组件中使用的edge map。
预分析的第二部分用于分析初始编码之后的帧特征。在这个阶段,我们可以确定帧里是否存在颗粒,并统计颗粒的数量,然后用他们来配置质量衡量的计算。我们还收集有关每个块的复杂度的信息,例如,通过用于编码每个块的比特使用率和块量化级来展现这个信息。在这个阶段,我们还计算帧的每一个块或者区域中局部纹理的密度,这个密度会用于以下所描述的纹理保留分数组件中。
质量衡量过程和组成(Quality MeasureProcess and Components)
与参考帧相比,质量衡量可以评估目标帧的质量。在CABR的文中,参考帧是初始编码帧,目标帧是特定迭代的候选帧。在执行了预分析的两个阶段之后,我们继续进行实际的质量衡量计算,接下来将进行详细描述。
在完成预分析的两个阶段之后,每个参考帧和目标帧都被划分成了相应的图块。这些图块的位置和尺寸根据帧的分辨率和其他帧特征进行调整。例如,我们会对具有高度局部运动的帧应用相对小的图块。有时,对于某些质量衡量组件,图块也会被进一步细分成子图块。为每个图块计算质量度量分数,并且在感知上合并这些分数来得到帧的质量分数。
每个图块的质量分数计算方式:针对每个质量衡量的组件,计算相应的分数,然后对这些值进行加权几何平均,来得到每个图块的质量分数。这些分量包括:确定像素方向差异的局部相似性分量、增加的伪像边缘分量、纹理失真分量、边缘损耗因子和时间分量。现在我们简要介绍Beamr的质量衡量标准中的这五个要素。
局部相似度(Local Similarity)
局部相似度组件评估参考图块和目标图块中相同位置的像素之间的相似度。这个组件在某种程度上和PSNR相似,但是使用:自适应子平铺、合并和阈值设置,用以提供比常规PSNR更具感知性的结果。在某些情况下,例如当预分析确定该帧包含丰富的色度内容时,此分量中还包括色度平面的像素相似度计算,但是在大多数情况下,仅适用亮度。对于每个子图块,计算常规PSNR。为了对位于质量远远优于其上的图块中的低质量子图块赋予更大的权重,我们仅仅使用低于取决于最低子图块PSNR值的阈值的值来进行合并工作。当仅仅在很小的区域范围(甚至只有几个像素的区域)中发生变化时,可能会发生这种情况。然后,我们会根据比例值来调整合并值,这个因数根据图块中的亮度级别来进行调整,因为在黑暗的区域中的失真比在明亮区域中的失真更大。最后,我们裁剪局部相似性分量得分,使其位于[0,1]的范围内,其中1表示目标图块和参考图块在感知上相同。
人工添加边缘(Added Artifactual Edges)
与参考图块相比,添加的伪像边缘得分组件评估了目标图块中引入的其他块状性。视频编码中的块状性是众所周知的伪像,它是由于对每个块进行的独立编码引入的。为了避免这种块状伪像,我们已经进行了许多预先的尝试,主要方法是使用解块滤波器,这些滤波器是现代视频编码器(例如AVC和HEVC)的组成部分。但是,我们在AAE(人工添加边缘)组件中的重点是量化此伪像的程度,而不是消除这个伪像。由于我们只对目标帧相对于参考帧的附加块状感兴趣,因此我们根据目标帧与参考帧之间的差异来评估质量衡量的这一部分。对于差异块中的每个水平和垂直编码块边界,我们评估跨编码块边界的变化或梯度,并将其与任一侧编码块内的局部梯度进行比较。例如,对于AVC编码,这是沿着全帧的16×16网格完成的。我们使用自适应的阈值,根据来自预分析阶段的信息进行自适应,将软阈值应用于块度值。例如,在被认为是皮肤的区域中,人的视觉对伪像更加的敏感,我们将会使用更精准严格的阈值,以便对轻度块状伪像的处理更加严格。这些计算将生成一个AAE得分图,其中包含每个水平和垂直块边界点在[0,1]范围内的值。我们对每个块边界的值进行平均,然后对这些每个块边界的平均值进行平均,以排除或赋予低权重的块边界,在此同时也不会增加任何块状性。然后根据块状伪像的百分比来缩放该值,即阈值之前原始块状度值非常高的情况,最后将其裁剪到[0,1]的范围,其中1表示未添加任何伪造边缘。相对于参考图块的目标图块。
纹理变形
纹理失真分数组件量化了在目标图块中保留纹理的程度。包括AVC和HEVC在内的大多数基于块的编解码器,都使用诸如DCT之类的频率变换,并对变换系数进行量化,通常对高频分量进行更严格的量化。这可能会导致两个不同的纹理假象。第一个伪像是由于高频系数中的能量损失而导致的纹理细节损失或过度平滑。第二种伪像被称为“振铃”,其特征在于边缘周围的噪声或图像中的急剧变化。这两种伪像都会导致像素值的局部方差发生变化:过度平滑会导致像素方差减小,而增加的振铃或其他高频噪声则会导致像素方差增加。因此,我们在参考帧和目标帧图块的相应块中测量局部偏差,并比较它们的值。此过程产生的纹理图块得分在[0,1]范围内,其中1表示目标图像图块中没有可见的纹理失真。
时间一致性
与参考视频序列中的时间流相比,时间得分组件评估目标视频序列中的时间流的保留。这是质量衡量的唯一组成部分,它也需要利用先前的目标帧和参考帧。在此组件中,我们测量两种变化:目标帧中缺少在参考帧中引入的“新”信息,以及目标帧中参考帧中没有“新”信息的“新”信息。在这种情况下,“新”信息是指当前帧中存在但前一帧中不存在的信息。我们计算参考帧中的每个并置8×8块与前一参考帧之间的绝对差之和(SAD),以及目标帧中的每个并置8×8块与前一目标帧之间的SAD 。从这两个SAD值之间的关系以及根据参考SAD的值得出局部(8×8)分数,这表明该块本质上是动态的还是静态的。图2说明了参考和目标SAD值的不同组合的局部得分值。在计算了所有本地时间分数之后,将它们合并以获取范围为[0,1]的图块时间分数分量。
Figure 2. local temporal score as a function of reference SAD andtarget SAD values
边缘损耗因子(ELF)
边缘损失因子得分组件反映了参考图像中边缘在目标图像中的保留程度。该组件使用在预分析的第一部分中生成的输入图像边缘图。在预分析的第二部分中,计算参考帧中每个边缘点的边缘强度,作为边缘像素值与其8个最邻近像素之间的最大绝对差。通过将像素的参考帧边缘强度与阈值进行比较,我们可以选择丢弃被认为是虚假边缘的像素,该阈值可以调整为例如在包含胶片颗粒的帧中更高。一旦所有边缘像素的值都已累加,最终值将按比例缩放以提供ELF切片分数分量,范围为[0,1],其中1表示完美的边缘保留。
得分组合组件
使用加权几何平均将上述五个分数成分组合为块分数,其中可以根据所使用的编解码器或根据预分析阶段来调整权重。例如,在具有良好循环内解块滤波器的编解码器中,我们可以降低块状分量的权重,而在具有高胶片颗粒水平(由预分析阶段确定)的帧中,我们可以降低纹理失真的权重零件。
块池化
在帧质量分数计算的最后一步中,将感知分数合并图块分数,以生成单个帧分数值。感知池使用的权重取决于重要性(取自分析前的阶段,例如,图块中存在面部或皮肤),并且取决于图块中块的复杂度(与帧的平均复杂度相比)。权重还取决于图块得分值–我们对低得分的图块给予更大的权重,以同样的方式,即使在边缘地带出现,也会引发观众观看质量的下降。
分数配置器
分数配置器块用于配置不同情况使用的计算。例如,在等待时间或性能受到严格限制的实现过程中,配置器可以应用快速得分计算,该计算跳过预分析的某些阶段并使用稍微降低的复杂性得分。为了仍然保证感知上相同的结果,可以缩放或补偿在此快速模式下计算出的分数,以解决感知精度略低的问题,并且这种缩放在某些情况下可能会略微减少节省。

LiveVideoStackCon 2019深圳讲师招募

12月13-14日,LiveVideoStackCon首次来到深圳,将全球前沿多媒体技术实践与深圳本地产业结合,触发技术与商业灵感。欢迎将你的技术实践、踩坑与填坑经历、技术与商业创业的思考分享出来。请将个人资料和话题信息邮件到 speaker@livevideostack.com 或点击【阅读原文】了解成为LiveVideoStackCon讲师的权益与义务,我们会在48小时内回复。

LiveVideoStack 秋季招聘

LiveVideoStack正在招募编辑/记者/运营,与全球顶尖多媒体技术专家和LiveVideoStack年轻的伙伴一起,推动多媒体技术生态发展。同时,也欢迎你利用业余时间、远程参与内容生产。了解岗位信息请在BOSS直聘上搜索“LiveVideoStack”,或通过微信“Tony_Bao_”与主编包研交流。

通过改进视频质量评估提升编码效率相关推荐

  1. 用机器学习提升WebRTC视频质量评估的正确姿势

    原文 :http://webrtcbydralex.com/index.php/2018/10/11/webrtc-video-quality-assessment/ 如何确保WebRTC视频通话或视 ...

  2. 字节跳动VQScore算法拿下ICME 2021“压缩UGC视频质量评估”比赛第一名

    在ICME 2021国际视频质量评估算法竞赛中,字节跳动拿下第一. 在多媒体领域世界顶级学术会议ICME 2021的「压缩UGC视频质量评估」比赛中,字节跳动旗下火山引擎多媒体实验室组成的" ...

  3. 腾讯多媒体实验室:基于三维卷积神经网络的全参考视频质量评估算法

    腾讯有多个视频业务线,点播视频有腾讯视频.企鹅影视,短视频有微视.K歌,直播类有Now直播.企鹅电竞,实时传输类有QQ和微信的音视频通话.无线投屏和腾讯会议等. 用户对不同的产品有不同程度的期待:比如 ...

  4. 伯索显示未联通音视频服务器,你不可错过的,音视频质量评估体系+WebRTC多媒体通信+高并发高可用服务器架构+星域CDN无限节点...

    文 | rpandora 出处 | LiveVideoStack 深圳的台风没有阻挡80位技术小伙伴的脚步,他们的热情为我们点燃了沙龙现场的热度,6位大咖精彩的分享也引爆了现场的氛围,而正是大咖的干货 ...

  5. 腾讯技术开放日 | 腾讯会议如何进行视频质量评估与优化?

    腾讯会议系统中,视频质量是影响用户体验的主要因素,对视频质量进行评估和优化是吸引和留住用户的关键.在开发腾讯会议质量评估系统的过程中,有哪些技术难点和相应的解决方案?在[腾讯技术开放日 · 云视频会议 ...

  6. 图像和视频质量评估算法 资源帖

    图像和视频质量评估算法整合 http://live.ece.utexas.edu/research/Quality/index_algorithms.htm SSIM.MS-SSIM.VIFP.GMS ...

  7. 视频质量评估的新方式:VMAF百分位数

    正文字数:4964  阅读时长:7分钟 在这篇博客文章中,我们介绍了一种新的基于计算视频多方法评估融合(VMAF)百分位数的视觉质量评估方法. 作者 / Adeel Abbas 原文链接 / http ...

  8. 干货 | VMAF视频质量评估在视频云转码中的应用

    作者介绍:姜生,PP云高级技术经理,10余年视频编解码算法设计优化,流媒体应用等领域开发经验. 一 .VMAF 技术介绍: VMAF 的全称是:Visual Multimethod Assessmen ...

  9. 基于编码应用的主观全景视频质量评价数据库(译)

    subjective panoramic video quality assessment database for coding applications IEEE TRANSACTIONS ON ...

最新文章

  1. [云炬创业基础笔记]第一章创业环境测试12
  2. 趣学python3(28)-pygame-蛇身随机运动(可gameover )
  3. UIAlertView的使用方法
  4. 各岗位职责和基本能力要求
  5. fraction在java_Fraction.java
  6. 华为手机解锁码计算工具_一部华为手机解锁无数翻译,你浪费了此功能吗?
  7. 可变悬挂调节软硬_国六最亲民的豪车,丐版2.0T纯进口,全系可变悬架+8气囊,才23万...
  8. C#净化版WebApi框架
  9. SET-Priority_Queue
  10. php 视频播放加密,如何在HTML5页面播放加密视频
  11. 笔记本更改计算机开机时用户名和密码错误,怎样修改联想电脑开机账号密码怎么办...
  12. netty实战pdf下载,深度解密:Java与线程的关系
  13. html5 在线抽奖,HTML5大转盘抽奖特效代码
  14. 在linux目录中设置权限设置,linux下为目录和文件设置权限(示例代码)
  15. 计算机表格制作培训教材,电脑制作表格教案设计
  16. 虚拟机自省XenAccess和vmitools
  17. 基础的强化学习(RL)算法及代码详细demo
  18. Linux下 Yum 是什么
  19. 如何设置word为只读
  20. 企业批量寄件快递教程

热门文章

  1. Struts框架原理分析之我见
  2. 更改printk打印级别【转】
  3. 关于 eclipse 插件JsonEditorPlugin-0.9.4安装与使用
  4. PHP设计模式——享元模式
  5. RHEL 6.5 rpm包安装mplyer
  6. 牛客多校10 - Decrement on the Tree(边权转点权+思维)
  7. CodeForces - 1337E Kaavi and Magic Spell(dp)
  8. CH - 4901 关押罪犯(二分图判定+二分/并查集)
  9. python绘图函数教程_OpenCV中的绘图函数
  10. angular 字符串转换成数字_Python | 一文看懂Python列表、元组和字符串操作