视频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删…...
【架构艺术】服务架构稳定性的基础保障
一个产品随着不断研发,其服务架构的复杂度会越来越高。随着产品的用户体量变大,为了保证产品能够长线运营,就需要保证整个服务架构的稳定性。因此,今天这篇文章,就从实操的角度,粗浅讨论一下,服…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...