视频QoE测量学习笔记(二)
目录
自适应比特率(ABH或ABS)
HAS:HTTP adaptive streaming
自适应本质:
HAS正在解决传统流协议中主要关注的几个方面:
DASH标准化原因
HAS发展
编码:
影响HAS系统的四个主要问题:
一个健全的HAS方案应实现三个主要目标:
流会话的两种状态
QOE
A Survey on Bitrate Adaptation Schemes for Streaming Media Over HTTP论文学习笔记
自适应比特率(ABH或ABS)
是一种旨在通过 HTTP 网络有效地流式传输文件的技术。向用户的视频播放器提供多个相同内容、不同大小文件的文件,然后客户端选择最合适的文件在设备上播放。
它旨在通过在任何情况下提供正确的内容、考虑特定设备和特定网络条件来改进流传输,从而减少重新缓冲的需求。 ABR 流式传输允许视频播放器根据可用比特率和设备功能选择最佳可用视频片段(或块)来播放。
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.2005年,Move Networks推出一种视频交付模式HAS,将媒体内容视为常规Web内容,并通过HTTP协议将其分成小块进行交付。
3.HTTP动态自适应流(DASH)提供了用于通过HTTP的自适应流传输的开放规范,并且将自适应逻辑的实现留给第三方。服务端一样,客户端(DASH播放器)的实现不同。
相关研究根据DASH实现方案,分为三大类
- 客户端:
- 服务端
- 网内方法
编码:
从可能不同的表示(以不同的比特率编码)请求和下载段的客户机在其回放缓冲器中无缝地连接这些段。这产生可使用标准解码器处理的符合位流
影响HAS系统的四个主要问题:
(1)多客户端竞争和稳定性问题,
(2)一致性质量流,
(3)QoE优化和测量,
(4)目的地间多媒体同步。
使用集中式管理控制器可以提高整体视频质量,同时改善观众的QoE。
一个健全的HAS方案应实现三个主要目标:
稳定性:HAS客户端应避免频繁的比特率切换,这会导致质量振荡和视频停顿,进而对QoE产生负面影响。
公平性:竞争可用带宽的多个HAS客户端应该基于观看者、内容和设备特性平等地共享网络资源。这里所期望的公平性通常不会导致带宽公平性。
高利用率:当客户端试图保持稳定和公平时,网络资源应尽可能有效地使用。
流会话的两种状态
- 缓冲区填充状态
- 稳定状态
缓冲器填充状态旨在填充回放缓冲器并达到可以发起或恢复回放的特定阈值。在这种状态下,客户端在前一个块被完全下载。在回放缓冲器水平达到目标阈值(例如,30秒,然而,注意,该阈值在不同的比特率适配方案之间变化,或者可以基于预期的条件来增加或减少),则客户端进入稳定状态。
在稳定状态期间的目标是保持缓冲器水平高于最小阈值,而不管带宽波动或中断,以便避免缓冲器欠载运行或停滞事件。稳态由两个活动周期组成,称为ON和OFF。基本上,HAS客户端每Ts个时间单位请求一个段,其中Ts表示每个段的内容持续时间,并且ON和OFF时段持续时间之和等于Ts。在开启时段期间,HAS客户端下载当前段并记录所实现的吞吐量值,该吞吐量值稍后将用于为未来段选择适当的比特率。之后,客户端在OFF时段中暂时变为空闲。

QOE
感知元素:
- 视频图像质量;
- 初始延迟;
- 停滞持续时间和频率;
- 以及质量切换幅度和频率;
评估标准:
(1)客观度量,例如峰值信噪比(PSNR)、结构相似性(SSIM和SSIMplus)、感知视频质量(PVQ)[43]和统计上无差别的质量变化(SIQV);
(2)主观度量,诸如平均意见得分(MOS);
(3)服务质量(QoS)导出的度量,诸如启动延迟、平均视频比特率、质量切换和再缓冲事件;实现高QoE是困难的,因为尝试优化每个度量可能导致冲突。这些测量之间的复杂关系以及适配逻辑与其他应用和网络层决策之间的相互作用可显著影响QoE。
(4)目的地间多媒体同步:社交多媒体网站的不断发展正在改变人们共享内容的方式。
参考链接:
Adaptive Bitrate Video Streaming - 知乎 (zhihu.com)
相关文章:
视频QoE测量学习笔记(二)
目录 自适应比特率(ABH或ABS) HAS:HTTP adaptive streaming 自适应本质: HAS正在解决传统流协议中主要关注的几个方面: DASH标准化原因 HAS发展 编码: 影响HAS系统的四个主要问题: 一个健全的HAS方…...
RSA算法详解:原理与应用
RSA算法详解:原理与应用 RSA算法是现代密码学的基石之一,广泛应用于安全通信、数据加密和身份验证等领域。本文将详细介绍RSA算法的原理、实现步骤以及实际应用。 一、RSA算法概述 RSA(Rivest-Shamir-Adleman)算法由Ron Rivest…...
YOLOv6-4.0部分代码阅读笔记-effidehead_fuseab.py
effidehead_fuseab.py yolov6\models\heads\effidehead_fuseab.py 目录 effidehead_fuseab.py 1.所需的库和模块 2.class Detect(nn.Module): 3.def build_effidehead_layer(channels_list, num_anchors, num_classes, reg_max16, num_layers3): 1.所需的库和模块 impo…...
特朗普概念股DJT股票分析:为美国大选“黑天鹅事件”做好准备
猛兽财经核心观点: (1)特朗普媒体科技集团的股价近期已经从年初至今的高点下跌了35%以上。 (2)该公司将面临一个重大的黑天鹅事件。 (3)这一结果将对特朗普媒体科技集团产生重大影响。 随着投资…...
【MySQL】 运维篇—故障排除与性能调优:常见故障的排查与解决
数据库系统在运行过程中可能会遇到各种故障,如性能下降、连接失败、数据损坏等。及时有效地排查和解决这些故障,对于保证系统的稳定性和数据的完整性至关重要。 常见故障及排查方法 1. 数据库连接失败 故障描述:应用程序无法连接到数据库&…...
Android R S T U版本如何在下拉栏菜单增加基本截图功能
本文主要是MTK增加下拉栏开关菜单,功能实现为基本的截图功能,metrics_constants.proto修改 QuickSetting 新增快捷设置图标,以便对应getMetricsCategory获取;一个布局文件,一个配置加载合入实现,一个新增想要实现截图的类。 /frameworks/base/proto/src/metrics_constan…...
C#二叉树原理及二叉搜索树代码实现
一、概念 二叉树(Binary Tree)是一种树形数据结构,其中每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的每个节点包含三个部分:一个值、一个指向左子节点的引用和一个指向右子节点的引用。 二、二叉树…...
.eslintrc.js 的解释
如果您的项目中没有 .eslintrc.js 文件,您可以按以下步骤创建并配置 ESLint: 1. 创建 ESLint 配置文件 在您的项目根目录下创建一个新的文件,命名为 .eslintrc.js。 2. 配置 ESLint 规则 在 .eslintrc.js 文件中添加以下内容,…...
确保企业架构与业务的一致性与合规性:数字化转型中的关键要素与战略实施
在现代企业的数字化转型过程中,确保企业架构(Enterprise Architecture, EA)与企业业务的紧密一致性与合规性至关重要。无论是在战略层面还是运营层面,EA都为企业的未来发展提供了清晰的蓝图,确保企业在应对复杂的业务环…...
goframe开发一个企业网站 前端界面 拆分界面7
将页面拆出几个公用部分 在resource/template/front创建meta.html header.html footer.html meta.html <head><meta charset"utf-8"><meta content"widthdevice-width, initial-scale1.0" name"viewport"><title>{{.…...
Postman断言与依赖接口测试详解!
在接口测试中,断言是不可或缺的一环。它不仅能够自动判断业务逻辑的正确性,还能确保接口的实际功能实现符合预期。Postman作为一款强大的接口测试工具,不仅支持发送HTTP请求和接收响应,还提供了丰富的断言功能,帮助测试…...
github打不开网络问题
当打开github出现超时或者网络不能访问的情况时,我们进行如下方法解决: 1,ping gitbub.com查看域名分析的DNS IP C:\Users\86156>ping github.com 正在 Ping github.com [20.205.243.166] 具有 32 字节的数据: 来自 20.205.243.166 的回复…...
智能教育工具:基于SpringBoot的在线试题库
1 绪论 1.1 研究背景 现在大家正处于互联网加的时代,这个时代它就是一个信息内容无比丰富,信息处理与管理变得越加高效的网络化的时代,这个时代让大家的生活不仅变得更加地便利化,也让时间变得更加地宝贵化,因为每天的…...
typescript 如何跳过ts类型检查?
文章目录 前言any类型条件判断进行使用断言加注释跳过ts检查 前言 typescript 的使用,虽然让代码更加规范,利于维护,但也给开发带来很多麻烦。为了跳过很多ts的类型检查,大家也是费尽心思,下面就介绍一些常用的方式&a…...
详解ReentrantLock--三种加锁方式
目录 介绍AQS: 直观方式解释加锁的流程: Node是什么:它里面有什么属性呢 图解队列的排队过程: 源码分析三种加锁流程: 我们先讲解一下非公平锁的加锁流程: Lock()方式加锁: 在源码里对于Lock()的解…...
SQL 基础语法(一)
文章目录 1. SQL 分类2. 数据库操作3. 数据表操作4. 增删改操作5. 查询操作6. 用户管理7. 权限控制 1. SQL 分类 2. 数据库操作 #创建数据库 create database if not exists test;#查询所有数据库 show databases;#查询当前数据库 select database();#删除数据库 drop databas…...
Python酷库之旅-第三方库Pandas(190)
目录 一、用法精讲 881、pandas.Index.is_方法 881-1、语法 881-2、参数 881-3、功能 881-4、返回值 881-5、说明 881-6、用法 881-6-1、数据准备 881-6-2、代码示例 881-6-3、结果输出 882、pandas.Index.min方法 882-1、语法 882-2、参数 882-3、功能 882-4、…...
Spring学习笔记_19——@PostConstruct @PreDestroy
PostConstruct && PreDestroy 1. 介绍 PostConstruct注解与PreDestroy注解都是JSR250规范中提供的注解。 PostConstruct注解标注的方法可以在创建Bean后在为属性赋值后,初始化Bean之前执行。 PreDestroy注解标注的方法可以在Bean销毁之前执行。 2. 依赖…...
《云计算网络技术与应用》实训8-1:OpenvSwitch简单配置练习
1.按《云计算网络技术与应用》实训5-1进行环境配置,安装好OVS 2.开启OVS虚拟交换机 3.创建一个网桥br0 4.查看网桥列表 5.把ens34网卡连接到网桥br0上 6. 查看网桥br0所有端口 7.列出网卡ens34连接的所有网桥列表 8.查看OVS网络状态 9.将网桥br0上连接的网卡ens34删…...
【架构艺术】服务架构稳定性的基础保障
一个产品随着不断研发,其服务架构的复杂度会越来越高。随着产品的用户体量变大,为了保证产品能够长线运营,就需要保证整个服务架构的稳定性。因此,今天这篇文章,就从实操的角度,粗浅讨论一下,服…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...
