视频QoE测量学习笔记(二)

news2024/11/5 16:30:32

A Survey on Bitrate Adaptation Schemes for Streaming Media Over HTTP论文学习笔记

自适应比特率(ABH或ABS)

是一种旨在通过 HTTP 网络有效地流式传输文件的技术。向用户的视频播放器提供多个相同内容、不同大小文件的文件,然后客户端选择最合适的文件在设备上播放。

它旨在通过在任何情况下提供正确的内容、考虑特定设备和特定网络条件来改进流传输,从而减少重新缓冲的需求。 ABR 流式传输允许视频播放器根据可用比特率和设备功能选择最佳可用视频片段(或块)来播放。

HAS介绍

HAS:HTTP adaptive streaming

主要在客户端执行,即,以分布式的方式

公共互联网上的视频传输也被称为过顶(OTT)视频流 

自适应本质:

每个片段以多个比特率级别编码,并在称为媒体呈现描述(MPD)的清单中列出。

MPD是提供服务器处的可用媒体片段的索引的XML文档。

在客户端侧,DASH实现比特率适配逻辑,其发出定时请求并使用HTTP(部分)GET消息从服务器下载MPD中描述的片段。在下载期间,DASH客户端估计网络中的可用带宽,并使用来自回放缓冲器的信息来为要获取的下一个片段选择合适的比特率。这种行为被称为比特率切换,其中客户端的目标是获取它可以获取的最高比特率片段,同时在回放缓冲区中保持足够的数据以避免视频停顿,从而实现良好的QoE权衡。

HAS正在解决传统流协议中主要关注的几个方面:

(1)它使用HTTP来传递视频片段,这简化了通过NAT和防火墙的遍历[6];

(2)在服务器端,它使用互联网服务提供商(ISP)和内容分发网络(CDN)的网络中可用的传统Web服务器或缓存;

(3)客户端独立于其他片段请求和获取每个片段,并维护回放会话状态,而服务器不需要维护因此,客户端可以从不同的服务器下载段,而不会影响系统的可伸缩性;

(4)它不需要客户端和服务器之间的持久连接,这提高了系统的可伸缩性,并降低了实现和部署成本。

DASH标准化原因

为了避免市场中的碎片化,运动图像专家组(MPEG)与第三代合作伙伴计划(3GPP)一起分别开始致力于MPEG媒体和HAS的HTTP流传输。这些努力最终导致了HTTP动态自适应流(DASH)的标准化。

影响HAS系统的四个主要问题:

(1)多客户端竞争和稳定性问题,

(2)一致性质量流,

(3)QoE优化和测量,

(4)目的地间多媒体同步。

使用集中式管理控制器可以提高整体视频质量,同时改善观众的QoE。

一个健全的HAS方案应实现三个主要目标:

稳定性:HAS客户端应避免频繁的比特率切换,这会导致质量振荡和视频停顿,进而对QoE产生负面影响。

公平性:竞争可用带宽的多个HAS客户端应该基于观看者、内容和设备特性平等地共享网络资源。这里所期望的公平性通常不会导致带宽公平性。

高利用率:当客户端试图保持稳定和公平时,网络资源应尽可能有效地使用。

流会话的两种状态

  • 缓冲区填充状态
  • 稳定状态

缓冲器填充状态旨在填充回放缓冲器并达到可以发起或恢复回放的特定阈值。在这种状态下,客户端在前一个块被完全下载。在回放缓冲器水平达到目标阈值(例如,30秒,然而,注意,该阈值在不同的比特率适配方案之间变化,或者可以基于预期的条件来增加或减少),则客户端进入稳定状态。

在稳定状态期间的目标是保持缓冲器水平高于最小阈值,而不管带宽波动或中断,以便避免缓冲器欠载运行或停滞事件。稳态由两个活动周期组成,称为ON和OFF。基本上,HAS客户端每Ts个时间单位请求一个段,其中Ts表示每个段的内容持续时间,并且ON和OFF时段持续时间之和等于Ts。在开启时段期间,HAS客户端下载当前段并记录所实现的吞吐量值,该吞吐量值稍后将用于为未来段选择适当的比特率。之后,客户端在OFF时段中暂时变为空闲。

HAS分类

1.互联网最初是为尽力而为、非实时数据传输而设计的。

2.2005年,Move Networks推出一种视频交付模式HAS,将媒体内容视为常规Web内容,并通过HTTP协议将其分成小块进行交付。

3.HTTP动态自适应流(DASH)提供了用于通过HTTP的自适应流传输的开放规范,并且将自适应逻辑的实现留给第三方。服务端一样,客户端(DASH播放器)的实现不同。

相关研究根据DASH实现方案,分为三大类

  • 客户端:
  • 服务端
  • 网内方法

基于客户端:

介绍

通过根据诸如可用带宽、回放缓冲器大小等一个或多个度量切换到适当的视频比特率来适应带宽变化。

客户端使用一个或多个度量作为其比特率选择算法的输入,以便为要下载的下一个片段选择适当的比特率级别。这些算法试图避免流媒体问题,如视频不稳定,质量振荡和缓冲区饥饿,同时提高观众的QoE。

实现目标

(i)当回放缓冲区耗尽时最小的重新缓冲事件,

(ii)最小的启动延迟

(iii)相对于网络资源的高整体回放比特率水平

(iv)由于频繁切换而发生的最小视频质量振荡。

基于客户端的比特率适配组织成五个类别:

(1)基于可用带宽(第III-A1节),

(2)基于回放缓冲器(第III-A2节),

(3)专有解决方案(第III-A3节),

(4)混合(第III-A4节),

(5)基于马尔可夫决策过程(MDP)(第III-A5节)。

1)基于可用带宽的自适应:在这种直观类型的方案中,客户端基于测量的可用网络带宽做出表示决策,该带宽通常计算为所获取的段的大小除以传输时间。

缺点

基于客户端的方案可能遭受由于HAS的ON-OFF模式而引起的HAS稳定性问题和QoE变化。当地理位置分散的客户端数量不断增长时,这些问题会变得更加严重。

基于服务端

介绍

基于服务器的方案在服务器侧使用比特率整形方法,并且不需要来自客户端的任何合作。因此,比特率之间的切换由比特率整形器隐式地控制。客户端仍然会做出自己的决定,但这些决定或多或少是由服务器上的整形方法决定的。

缺点:

基于服务器的方案引入了开销和复杂性,随着客户端数量的增加限制了系统的可扩展性。

网络辅助适应

介绍

允许HAS客户端在比特率适配过程中考虑网络内决策。这是通过收集有关网络状况的测量结果,同时通知客户端要选择的合适比特率来实现的。网内过程需要一个特殊的组件(例如,部署在网络中的代理/代理服务器)来监视网络状态和条件。它提供了网络级信息,使HAS客户端能够有效地使用网络资源。

QoE感知的DASH(QDASH)是客户端和流服务器之间的代理,其目的在于通过使用集成的中间级别来确保比特率级别的逐渐变化,从而避免视频振荡,这可以导致更好的QoE。

QDASH由用于测量带宽的QDASH-abw模块和用于帮助客户端选择能够支持当前网络条件和缓冲区占用率的合适比特率的QDASH-qoe模块组成。然而,它会在网络中产生显著的开销,尤其是随着客户端数量的增加。这种开销可能最终导致其自身的网络拥塞,从而导致低Qofg

缺点:

网络辅助和混合自适应方案使用集中式实体来辅助客户端进行决策,提高观众QoE,并避免HAS可扩展性问题。然而,它们很难部署在真实世界网络基础设施的完全分散的性质上,并且它们不支持许多HAS参与者在地理上分布的大规模部署。第三,我们在一组QoE和网络方面提供了所调查的方案之间的比较。

混合适配

介绍

在混合比特率自适应中,许多联网实体一起协作并收集关于网络条件的有用信息,这些信息可以帮助HAS客户端进行比特率选择。这种类型的技术包括基于SDN和服务器和网络辅助的适应。

HAS趋势

HAS和可伸缩视频编码(SVC)

介绍:

在大多数现有技术的自适应流传输系统中,不可伸缩视频编码(即,AVC、HEVC、VP 9/AV 1)由于其编码效率、易于实现和广泛采用而被广泛依赖。然而,可缩放视频译码具有多个益处,例如对包丢失的弹性及对装置能力(例如,如果设备不能解码高质量视频,则它可以选择仅解码较低层)。

在HAS中使用SVC而不是AVC的好处:

(1)它允许HAS支持异构客户端,

(2)它降低了存储和网络成本,

(3)它使CDN和缓存能够更有效地使用,

描述了基于SVC的HAS,其中每个段可以被分割成比特流的子集,而不是不同的比特率级别,并且因此,可以以不同的SVC质量(时间、空间、SNR)对视频片段进行编码。使用这种机制,HAS客户端可以通过根据可用带宽的动态获取附加的比特流或层来递增地提高片段的质量。当使用SVC与DASH时的一个关键区别是客户端可能必须下载多个段(即,基本层和增强层),这与不可缩放视频的情况不同。

基于HTTP/2和QUIC的流

1)HTTP/2:HTTP/2用于客户端和服务器之间的单个持久TCP连接(支持流水线),包括全双工模式中的多个流,具有高级功能,如帧交换,请求优先级,报头字段压缩和服务器推送。

2)QUIC:QUIC是一种基于UDP的安全传输层协议,旨在加速连接,减少延迟,实现拥塞和流量控制,允许多个(复用/流水线)数据连接(例如,HTTP请求/响应),而没有HOL阻塞,以及具有前向纠错(FEC)的UDP连接迁移。

沉浸式媒体流

介绍

由于360度摄像机和头戴式显示器(HMD)的可用性越来越高,沉浸式媒体流传输,特别是虚拟现实(VR)/360度视频流传输如今受到学术界和工业界的极大关注。VR应用范围从3D视频游戏到360度视频流和远程沉浸。

QOE

感知元素:

  • 视频图像质量;
  • 初始延迟;
  • 停滞持续时间和频率;
  • 以及质量切换幅度和频率;

评估标准:

(1)客观度量,例如峰值信噪比(PSNR)、结构相似性(SSIM和SSIMplus)、感知视频质量(PVQ)[43]和统计上无差别的质量变化(SIQV);

(2)主观度量,诸如平均意见得分(MOS);

(3)服务质量(QoS)导出的度量,诸如启动延迟、平均视频比特率、质量切换和再缓冲事件;实现高QoE是困难的,因为尝试优化每个度量可能导致冲突。这些测量之间的复杂关系以及适配逻辑与其他应用和网络层决策之间的相互作用可显著影响QoE。

(4)目的地间多媒体同步:社交多媒体网站的不断发展正在改变人们共享内容的方式。

 编码:

从可能不同的表示(以不同的比特率编码)请求和下载段的客户机在其回放缓冲器中无缝地连接这些段。这产生可使用标准解码器处理的符合位流

参考链接:

Adaptive Bitrate Video Streaming - 知乎 (zhihu.com)

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

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

相关文章

RHCE-Web-nginx http实验和nginx https实验

一、web服务器简介 (1)什么是www www 是 world wide web 的缩写,也就是全球信息广播的意思。通常说的上网就是使用 www 来查询用户 所需要的信息。 www 可以结合文字、图形、影像以及声音等多媒体,并通过可以让鼠标单击超链接的…

算法——递推

目录 前言一、什么是递推二、递推算法的分类三、递推算法的特点四、递推算法的应用五、递推算法的设计步骤六、递推算法与递归算法的比较七、经典例题1.斐波那契数列代码题解 2.爬楼梯代码题解 [3.杨辉三角 II](https://leetcode.cn/problems/pascals-triangle-ii/submissions/…

C语言 | Leetcode C语言题解之第520题检测大写字母

题目&#xff1a; 题解&#xff1a; bool detectCapitalUse(char * word){int len strlen(word);int res 0;int index -1;if(len 1)return true;else{for(int i 0; i < len; i){if(isupper(word[i])){res;index i;}}}return res len || res 0 || (res 1 &&…

了解密钥推导函数KDF-HMAC-SHA-256

引言 在现代密码学中&#xff0c;密钥推导函数&#xff08;KDF&#xff0c;Key Derivation Functions&#xff09;扮演着至关重要的角色。它们允许从主密钥或密码生成一个或多个固定长度的密钥&#xff0c;用于各种加密操作。KDF的设计目标是确保从同一主密钥生成的多个密钥在统…

【LeetCode:153. 寻找旋转排序数组中的最小值 + 二分】

在这里插入代码片 &#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕…

Serverless + AI 让应用开发更简单

本文整理自 2024 云栖大会&#xff0c;阿里云智能高级技术专家&#xff0c;史明伟演讲议题《Serverless AI 让应用开发更简单》 随着云计算和人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;企业对于高效、灵活且成本效益高的解决方案的需求日益增长。本文旨在…

解决python matplotlib画图无法显示中文的问题

在用matplotlib做一个简单的可视化统计时&#xff0c;由于标签是中文&#xff0c;无法显示&#xff0c;只是显示出来一些方框&#xff08;如图&#xff09; 问题在于&#xff0c;当前matplotlib使用的字体不支持中文&#xff0c;我们进行替换就可以了 我想替换为黑体&#xff…

数据库_SQLite3

下载 1、更新软件源&#xff1a; sudo apt-get update 2、下载SQLite3&#xff1a; sudo apt-get install sqlite3 3、验证&#xff1a; sqlite3启动数据库&#xff0c;出现以下界面代表运行正常。输入 .exit 可以退出数据库 4、安装sqlite3的库 sudo apt-get install l…

砥砺十年风雨路,向新而行创新程丨怿星科技十周年庆典回顾

10月24日&#xff0c;是一年中的第256天&#xff0c;也是程序员节&#xff0c;同时也是怿星的生日。2014年到2024年&#xff0c;年华似水匆匆一瞥&#xff0c;多少岁月轻描淡写&#xff0c;怿星人欢聚一堂&#xff0c;共同为怿星科技的十周年庆生&#xff01; 01.回忆往昔&…

模拟电路week2

模拟电路学习 三.二极管 1.概念 本征半导体&#xff1a;纯净的半导体 本征半导体的晶体结构示意图&#xff1a; 载流子&#xff1a;在导体或半导体中能够移动并携带电荷的粒子 本征激发&#xff1a;在半导体中&#xff0c;当温度升高时&#xff0c;热能可以使价带中的电子跃…

10天进阶webpack---(1)为什么要有webpack

首先就是我们的代码是运行在浏览器上的&#xff0c;但是我们开发大多都是利用node进行开发的&#xff0c;在浏览器中并没有node提供的那些环境。这就早成了运行和开发上的不同步问题。 -----引言 浏览器模块化的问题&#xff1a; 效率问题&#xff1a;精细的模块划分带来了更…

【C++篇】跨越有限与无限的边界:STL之set容器中的自我秩序与无限可能

文章目录 C set 容器详解&#xff1a;秩序与高效的数据管理前言第一章&#xff1a;C set 的概念1.1 set 的定义1.2 set 的特点 第二章&#xff1a;set 的构造方法2.1 常见构造函数2.1.1 示例&#xff1a;不同构造方法 2.2 相关文档 第三章&#xff1a;set 的常用操作3.1 插入操…

Java求最值 C语言二维数组与指针

1. public static void main(String[] args) {int []arr{11,22,33,44,55,66};int maxarr[0];//arr[0]为索引值 若一开始为0&#xff1b;数组全是负数就会错误for (int i 1; i < arr.length; i) {if (arr[i]>max){maxarr[i];}}System.out.println(max); }//循环开始条件…

微服务设计模式 - 断路器模式 (Circuit Breaker Pattern)

微服务设计模式 - 断路器模式 (Circuit Breaker Pattern) 定义 断路器模式&#xff08;Circuit Breaker Pattern&#xff09;是云计算和微服务架构中的一种保护性设计模式&#xff0c;其目的是避免系统中的调用链出现故障时&#xff0c;导致系统瘫痪。通过断路器模式&#xff…

PG数据库 jsonb字段 模糊查询

背景&#xff1a; 项目由于多语言的设计&#xff0c;将字段设置成json字段类型&#xff0c;同时存储中文和英文 页面上通过输入框实现模糊的查询 一、表结构&#xff1a;name字段设置jsonb类型 二、表数据 3、Mybatis编写sql select pp.name ->>zh-CN as pmsProductNam…

OpenCV—calcHist()函数

void calcHist( const Mat* images, int nimages,const int* channels, InputArray mask,SparseMat& hist, int dims,const int* histSize, const float** ranges,bool uniform true, bool accumulate false ); images 输入的数据指针&#xff0c;要具备相同的尺寸和数…

《Python网络安全项目实战》项目2 Python基础练习

《Python网络安全项目实战》项目2 Python基础练习 项目2 Python基础练习任务2.1 使用数据类型2.1.1 输出2.1.2 输入2.1.3 数字2.1.4 字符串 相关知识 任务评价 任务拓展 任务2.2 使用组合数据类型2.2.1 列表2.2.2 元组2.2.3 集合2.2.4 字典 相关知识 任务评价 任务…

less解决function中return写法在浏览器被识别成Object导致样式失败的问题

问题描述&#xff1a; 一开始写的是: baseFontSize: 37.5px;//基于屏幕尺寸/10得出的基准font-size// return失败,浏览器显示为[object Object],[object Object] .pxToRem(px){value: px / baseFontSize * 1rem;return value; } 使用height: .pxToRem(40px);之后浏览器却是这…

安装中文版 Matlab R2022a

下载安装包 压缩包有点大&#xff0c;大概20G 百度网盘&#xff1a;下载链接 提取码&#xff1a;rmja 安装 解压后打开目录&#xff0c;右键以管理员身份运行 setup.exe 选择输入安装秘钥 输入秘钥&#xff1a; 50874-33247-14209-37962-45495-25133-28159-33348-18070-6088…

Linux云计算 |【第五阶段】CLOUD-DAY9

主要内容&#xff1a; Metrics资源利用率监控、存储卷管理&#xff08;临时卷ConfitMap、EmptyDir、持久卷HostPath、NFS(PV/PVC)&#xff09; 一、Metrics介绍 metrics是一个监控系统资源使用的插件&#xff0c;可以监控Node节点上的CPU、内存的使用率&#xff0c;或Pod对资…