深挖“窄带高清”的实现原理

过去几年,又拍云一直在点播、直播等视频应用方面潜心钻研,取得了不俗的成果。我们结合点播、直播、短视频等业务中的用户场景,推出了“省带宽、压成本”系列文章,从编码技术、网络架构等角度出发,结合又拍云的产品成果,向大家介绍节省流量,降低带宽成本的妙招。

《降低30%视频码率,深挖“窄带高清”的实现原理》是“省带宽、压成本”系列文章的第3篇。本文将深挖又拍云最新技术窄带高清,讲解窄带高清是怎样在不改变视频主观质量的情况下,通过改变码率来降低视频播放的带宽成本。

往期回顾:

第一篇:《节省50%以上的流量成本,从产品架构看PCDN的节流能力》

第二篇:《深入解析 H.265 编码模式,带你了解 Apple 全面推进 H.265 的原因》

第三篇:《爱奇艺第一季度又烧了11个亿元,什么时候是个头?》

第四篇:《降低30%视频码率,深挖“窄带高清”的实现原理》


尽量降低视频码率又不影响视频的主观观看质量,这是视频平台最关心的问题之一,因为降低码率意味着视频播放带宽的下降,节约成本。

2018年3月,又拍云自研的“窄带高清”功能,通过码率控制优化,让视频在主观质量不受影响的情况下,高效降低30%视频码率。窄带高清通过视频内容复杂度算法来确定视频应用场景,继而确定该场景下最优视频编码参数,辅助于码率控制算法,最终达到视频码率控制与带宽优化这个目的。

窄带高清可以有效提升视频播放平台终端用户视频打开速度,并且减少视频分发在带宽成本的上的消耗。

为什么窄带高清可以节省流量

一般来说,视频转码所需的成本比视频播放带宽少很多。因此通过视频转码来降低带宽成本成为可能,窄带高清就是建立在这个大前提下的一个功能。通过窄带高清功能可以节省30%的视频码率,大大降低直播、点播等业务场景下的带宽成本。

 

△ 左为源视频,右为窄带高清(详见视频演示)

窄带高清是如何实现

实现窄带高清有两个优化方向,1.在相同码率的情况下提升视频质量;2.在主观质量不受损失的情况下,尽可能降低视频码率。

根据实际业务需求,又拍云的“窄带高清”功能采用了第二种思路,即保持视频质量,降低码率。

场景划分

首先我们需要对视频进行内容复杂度分析,获取场景信息,取得视频空间域的复杂度和时间域的复杂度,然后获得视频序列最终的复杂度,最终确定视频编码场景。

为什么要进行场景划分呢?

下文我们以场景运动剧烈和平缓的视频为例,跟大家解释一下场景划分的原因。

 

△ 平缓视频、剧烈视频的码率分析(psnr)

从上图可以看出,在相同质量下,场景运动缓慢的视频比场景运动剧烈的视频,所需码率少很多,这就是场景划分的意义所在。

目前我们对手机拍摄视频、动画、商业动作大片、影视剧、在线教育、综艺节目等视频场景进行测试,获取常见场景下视频内容的编码复杂度。

另外在高码率的时候,码率增加对视频质量的提升比较少,因此只要找到合适码率,那么视频低码率下的质量和高码率下的质量是相差无几的,这是窄带高清的理论基石。

码率控制算法研究

码率控制算法是视频编码器中非常重要的部分,学术上,码率控制算法分为两种:CBR(Constant Bit Rate,恒定码率)和VBR(Variable Bit Rate,可变码率)。考虑到业务需求是在主观质量不变的情况下,降低视频文件大小,又拍云“窄带高清”功能采用VBR的方式,并做了如下设定提升整体画质的表现:

  • 视频运动缓慢的时候,使用更低的码率;运动剧烈的时候,使用更高的码率;
  • 视频图像内部,静止的部分分配更少的码率;运动的部分分配更多的码率。

通俗的说,把码率放在该用的地方,不浪费每一个比特,实现更低的码率,更清晰的画质,更小的文件尺寸。

视频编码器优化

如何对视频编码器进行优化,又拍云通过客观质量评价加主观质量评价想结合的办法来制定视频编码器优化标准。

视频质量评价作为视频领域热门的研究方向之一,分成主观质量评价和客观质量评价两类。

主观质量评价,即通过人工观察者直接观察视频,在主观打分,对视频质量的好坏进行分级,该方法必须严格的测试环境实施步骤复杂,而且对观察者要有一定的专业要求,因此实施起来需要巨大的代价,一般会用在科研机构小规模的算法验证。

而对海量视频数据和工业界来说,客观质量评价是更好的选择。PSNR(Peak Signal to Noise Ratio,峰值信噪比),是基于数学统计特性的评价方法,基于独立的像素差值,忽略序列内容对失真可见度的影响,因而会出现和主观感知的视频质量的一致性存在差异。但是算法简单,易于操作,且大规模应用。

针对PSNR的缺点,Zhou Wang等人实现了亮度、对比度和结构失真相互独立的质量评价方法SSIM,得到更接近人眼视觉特性的评价指标。但是依然是过于简单,屏蔽掉了HVS的其他生理特性。

视频编码器的参数数量很多,纷繁复杂,为了得到最佳的优化组合,我们用了客观质量评价算法PSNR(Peak Signal to Noise Ratio,峰值信噪比)和SSIM(Structural SIMilarity,结构相似度),主观质量评价算法VMAF(Video Multi-Method Assessment Fusion),再配合人工主观质量评价的方式,获取了常见场景下视频编码器的参数优化方案。

又拍云窄带高清,融合了以上几种客观和主观的评价方法,在编码器优化过程中,获取码率和视频质量的平衡。

目前,绝大多数视频还是使用H.264/AVC视频编码标准,更先进的H.265/HEVC和VP9的普及度还不够。因此又拍云“窄带高清”功能优先支持了H.264视频编码格式,未来将支持H.265格式。

学术界还有许多码率方面的研究成果,比如基于ROI(Region of Interest,感兴趣区域)和HVS(Human Visual System,人眼视觉系统)的码率控制,这些成果和技术,又拍云也将积极融入到相关产品和解决方案中。

 

推荐阅读:

爱奇艺第一季度又烧了11个亿元,什么时候是个头?
平均节省流量 30% ,这项视频云处理技术是如何实现的?

 

 

转载于:https://www.cnblogs.com/upyun/p/9040963.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/389636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 服务安装

下载 客户端可视化工具: RedisDesktopManager redis官网下载: http://redis.io/download windos服务安装 windows服务安装/卸载下载文件并解压使用 管理员身份 运行命令行并且切换到解压目录执行 redis-service --service-install windowsR 打开运行窗口, 输入 services.msc 查…

熊猫数据集_对熊猫数据框使用逻辑比较

熊猫数据集P (tPYTHON) Logical comparisons are used everywhere.逻辑比较随处可见 。 The Pandas library gives you a lot of different ways that you can compare a DataFrame or Series to other Pandas objects, lists, scalar values, and more. The traditional comp…

决策树之前要不要处理缺失值_不要使用这样的决策树

决策树之前要不要处理缺失值As one of the most popular classic machine learning algorithm, the Decision Tree is much more intuitive than the others for its explainability. In one of my previous article, I have introduced the basic idea and mechanism of a Dec…

gl3520 gl3510_带有gl gl本机的跨平台地理空间可视化

gl3520 gl3510Editor’s note: Today’s post is by Ib Green, CTO, and Ilija Puaca, Founding Engineer, both at Unfolded, an “open core” company that builds products and services on the open source deck.gl / vis.gl technology stack, and is also a major contr…

uiautomator +python 安卓UI自动化尝试

使用方法基本说明:https://www.cnblogs.com/mliangchen/p/5114149.html,https://blog.csdn.net/Eugene_3972/article/details/76629066 环境准备:https://www.cnblogs.com/keeptheminutes/p/7083816.html 简单实例 1.自动化安装与卸载 &#…

power bi中的切片器_在Power Bi中显示选定的切片器

power bi中的切片器Just recently, while presenting my session: “Magnificent 7 — Simple tricks to boost your Power BI Development” at the New Stars of Data conference, one of the questions I’ve received was:就在最近,在“新数据之星”会议上介绍我…

5939. 半径为 k 的子数组平均值

5939. 半径为 k 的子数组平均值 给你一个下标从 0 开始的数组 nums ,数组中有 n 个整数,另给你一个整数 k 。 半径为 k 的子数组平均值 是指:nums 中一个以下标 i 为 中心 且 半径 为 k 的子数组中所有元素的平均值,即下标在 i …

数据库逻辑删除的sql语句_通过数据库的眼睛查询sql的逻辑流程

数据库逻辑删除的sql语句Structured Query Language (SQL) is famously known as the romance language of data. Even thinking of extracting the single correct answer from terabytes of relational data seems a little overwhelming. So understanding the logical flow…

数据挖掘流程_数据流挖掘

数据挖掘流程1-简介 (1- Introduction) The fact that the pace of technological change is at its peak, Silicon Valley is also introducing new challenges that need to be tackled via new and efficient ways. Continuous research is being carried out to improve th…

北门外的小吃街才是我的大学食堂

学校北门外的那些小吃摊,陪我度过了漫长的大学四年。 细数下来,我最怀念的是…… (1)烤鸡翅 吸引指数:★★★★★ 必杀技:酥流油 烤鸡翅有蜂蜜味、香辣味、孜然味……最爱店家独创的秘制鸡翅。鸡翅的外皮被…

[LeetCode]最长公共前缀(Longest Common Prefix)

题目描述 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar",&quo…

spark的流失计算模型_使用spark对sparkify的流失预测

spark的流失计算模型Churn prediction, namely predicting clients who might want to turn down the service, is one of the most common business applications of machine learning. It is especially important for those companies providing streaming services. In thi…

区块链开发公司谈区块链与大数据的关系

在过去的两千多年的时间长河中,数字一直指引着我们去探索很多未知的科学世界。到目前为止,随着网络和信息技术的发展,一切与人类活动相关的活动,都直接或者间接的连入了互联网之中,一个全新的数字化的世界展现在我们的…

Jupyter Notebook的15个技巧和窍门,可简化您的编码体验

Jupyter Notebook is a browser bases REPL (read eval print loop) built on IPython and other open-source libraries, it allows us to run interactive python code on the browser.Jupyter Notebook是基于IPL和其他开源库构建的基于REPL(读取评估打印循环)的浏览器&#…

bi数据分析师_BI工程师和数据分析师的5个格式塔原则

bi数据分析师Image by Author图片作者 将美丽融入数据 (Putting the Beauty in Data) Have you ever been ravished by Vizzes on Tableau Public that look like only magic could be in play to display so much data in such a pleasing way?您是否曾经被Tableau Public上的…

BSOJ 2423 -- 【PA2014】Final Zarowki

Description 有n个房间和n盏灯,你需要在每个房间里放入一盏灯。每盏灯都有一定功率,每间房间都需要不少于一定功率的灯泡才可以完全照亮。 你可以去附近的商店换新灯泡,商店里所有正整数功率的灯泡都有售。但由于背包空间有限,你…

WPF绑定资源文件错误(error in binding resource string with a view in wpf)

报错:无法将“***Properties.Resources.***”StaticExtension 值解析为枚举、静态字段或静态属性 解决办法:尝试右键单击在Visual Studio解决方案资源管理器的资源文件,并选择属性选项,然后设置自定义工具属性 PublicResXFile cod…

因果推论第六章

因果推论 (Causal Inference) This is the sixth post on the series we work our way through “Causal Inference In Statistics” a nice Primer co-authored by Judea Pearl himself.这是本系列的第六篇文章,我们将通过Judea Pearl本人与他人合着的《引诱统计学…

如何优化网站加载时间

一、背景 我们要监测网站的加载情况,可以使用 window.performance 来简单的检测。 window.performance 是W3C性能小组引入的新的API,目前IE9以上的浏览器都支持。一个performance对象的完整结构如下图所示: memory字段代表JavaScript对内存的…

熊猫数据集_处理熊猫数据框中的列表值

熊猫数据集Have you ever dealt with a dataset that required you to work with list values? If so, you will understand how painful this can be. If you have not, you better prepare for it.您是否曾经处理过需要使用列表值的数据集? 如果是这样&#xff0…