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

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

《降低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,一经查实,立即删除!

相关文章

学习总结5 - bootstrap学习记录1__安装

1.bootstrap是什么? 简洁、直观、强悍的前端开发框架,说白了就是给后端二把刀开发网页用的,让web开发更迅速、简单。 复制代码 2.如何使用? 如图所示到bootstrap中文网进行下载 复制代码 下载完成之后,如图所示&#x…

519. 随机翻转矩阵

519. 随机翻转矩阵 给你一个 m x n 的二元矩阵 matrix ,且所有值被初始化为 0 。请你设计一个算法,随机选取一个满足 matrix[i][j] 0 的下标 (i, j) ,并将它的值变为 1 。所有满足 matrix[i][j] 0 的下标 (i, j) 被选取的概率应当均等。 …

模型的搜索和优化方法综述:

一、常用的优化方法: 1.爬山 2.最陡峭下降 3.期望最大值 二、常用的搜索方法: 1.贪婪搜索 2.分支界定 3.宽度(深度)优先遍历转载于:https://www.cnblogs.com/xyp666/p/9042143.html

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…

初级功能笔试题-1

给我徒弟整理的一些理论性的笔试题,不喜勿喷。(所以没有答案哈) 1、测试人员返测缺陷时,如果缺陷未修复,把缺陷的状态置为下列什么状态()。 2、当验证被测系统的主要业务流程和功能是否实现时&a…

ansbile--playbook剧本案例

个人博客转至: www.zhangshoufu.com 通过ansible批量管理三台服务器,使三台服务器实现备份,web01、nfs、backup,把web和nfs上的重要文件被分到backup上,主机ip地址分配如下 CharacterIP地址IP地址主机名Rsync--server1…

5938. 找出数组排序后的目标下标

5938. 找出数组排序后的目标下标 给你一个下标从 0 开始的整数数组 nums 以及一个目标元素 target 。 目标下标 是一个满足 nums[i] target 的下标 i 。 将 nums 按 非递减 顺序排序后,返回由 nums 中目标下标组成的列表。如果不存在目标下标,返回一…

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

决策树之前要不要处理缺失值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…

说说 C 语言中的变量与算术表达式

我们先来写一个程序&#xff0c;打印英里与公里之间的对应关系表。公式&#xff1a;1 mile1.61 km 程序如下&#xff1a; #include <stdio.h>/* print Mile to Kilometre table*/ main() {float mile, kilometre;int lower 0;//lower limitint upper 1000;//upper limi…

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自动化尝试

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

5922. 统计出现过一次的公共字符串

5922. 统计出现过一次的公共字符串 给你两个字符串数组 words1 和 words2 &#xff0c;请你返回在两个字符串数组中 都恰好出现一次 的字符串的数目。 示例 1&#xff1a;输入&#xff1a;words1 ["leetcode","is","amazing","as",&…

Python+Appium寻找蓝牙/wifi匹配

前言&#xff1a; 此篇是介绍怎么去寻找蓝牙&#xff0c;进行匹配。主要2个问题点&#xff1a; 1.在不同环境下&#xff0c;搜索到的蓝牙数量有变 2.在不同环境下&#xff0c;搜索到的蓝牙排序会变 简单思路&#xff1a; 将搜索出来的蓝牙名字添加到一个list去&#xff0c;然后…

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:就在最近&#xff0c;在“新数据之星”会议上介绍我…

字符串匹配 sunday算法

#include"iostream" #include"string.h" using namespace std;//BF算法 int strfind(char *s1,char *s2,int pos){int len1 strlen(s1);int len2 strlen(s2);int i pos - 1,j 0;while(j < len2){if(s1[i j] s2[j]){j;}else{i;j 0;}}if(j len2){…

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

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

Adobe After Effects CS6 操作记录

安装 After Effects CS6 在Mac OS 10.12.5 上无法直接安装, 需要浏览到安装的执行文件后才能进行 https://helpx.adobe.com/creative-cloud/kb/install-creative-suite-mac-os-sierra.html , 但是即使安装成功, 也不能正常启动, 会报"You can’t use this version of the …

数据库逻辑删除的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…

好用的模块

import requests# 1、发get请求urlhttp://api.xxx.xx/api/user/sxx_infodata{stu_name:xxx}reqrequests.get(url,paramsdata) #发get请求print(req.json()) #字典print(req.text) #string,json串# 返回的都是什么# 返回的类型是什么# 中文的好使吗# 2、发请求posturlhttp://api…