AV1 编码标准熵编码技术概述

news2024/11/9 4:04:11

AV1熵编码

  • AV1编码技术是一种开源的视频编解码标准,由开放媒体联盟(AOMedia)开发,旨在提供高效的视频压缩,同时避免复杂的专利授权问题。在熵编码方面,AV1采用了一种多符号上下文自适应算术编码技术,这与 H.265/H.266 中使用的二进制算术编码(CABAC)有所不同。

  • AV1 的熵编码技术通过两个主要处理过程来压缩输入的符号序列:累积分布函数(CDF)和布尔操作。CDF 允许使用包含 2 到 16 个符号的字母表,并且符号的概率是自适应的,而布尔操作则使用固定的两个符号字母表和不变的符号概率。这种多符号算术编码技术可以更有效地利用待编码符号序列的高层次结构相似性,从而提高压缩效率。

  • AV1 的熵编码器在编码过程中,输入由 M 种符号组成的序列及其概率上下文。编码器的输出是一个比特流,其中语法元素与包含 M 个符号的字母表相关联,M 的值可以在 2 到 16 之间变化。在编码或解码每个语法元素后,15 位的 CDF 概率值会被更新,以反映编码过程中的概率变化。

  • AV1 的熵编码技术还包括预计算、范围变量更新、低位更新和产生比特流的四个阶段。这种设计允许 AV1
    在保持视频质量的同时,实现更高的压缩比率,从而在视频传输和存储方面具有优势。

  • 此外,AV1 编码技术还包括其他高级特性,如运动估计、空间预测、变换、环路滤波等,这些技术共同作用,实现了高效的视频压缩。AV1 的应用领域非常广泛,包括在线视频传输、流媒体服务、视频监控和虚拟现实等。

  • 随着技术的发展,AV1 编码技术预计将进一步优化其核心算法,并与其他技术如人工智能和深度学习相结合,以适应更复杂和多样化的应用场景。随着新一代通信技术如 5G的普及,AV1 编码技术在超高清视频传输和实时通信等领域的应用前景将更加广阔。

多符号算术编码引擎

  • 在 AV1 编码技术中,M-ary 算术编码引擎用于熵编码语法元素。每个语法元素与一个包含 M 个元素的字母表相关联,其中 M 的值可以是 2 到 16 之间的任何整数。编码的输入是一个 M-ary 符号,上下文由一组 M
    个概率组成。编码或解析每个语法元素后,这些概率会更新,并且概率以 15 位累积分布函数(CDF)的形式表示。

  • CDF 是一个 M 个 15 位整数的数组,定义如下: C = [c0, c1, … , cM-2, 215] 其中 ( cn / 32768 ) 是符号小于或等于 n 的概率。

  • 概率更新使用以下方程进行:
    在这里插入图片描述
    其中 α 是基于符号解码次数的概率更新率(最多 32 次), m 是 CDF 中的元素索引。α 的自适应允许在编码/解析语法元素的开始阶段进行更快的概率更新。

  • M-ary 算术编码过程遵循传统的算术编码引擎设计;然而,只有最高的 9 位输入到算术编码器/解码器。这意味着实际用于编码过程的概率值是 CDF 数组中每个元素的高 9 位,这有助于减少计算复杂度,同时保持编码的精度。

  • 这种设计允许 AV1 编码器在编码过程中动态调整概率模型,以适应输入数据的统计特性。随着编码过程的进行,随着对符号出现频率的更好理解,概率模型会逐渐细化,从而提高编码效率。通过这种方式,AV1编码器能够实现更高的压缩比,同时保持或提高视频质量。

系数编码

  • 在 AV1 编码技术中,变换块(transform block)的系数编码开始于一个 all_zero 标志的编码,该标志指示变换块是否仅包含零残差。如果 all_zero 标志被编码为 0,则表示变换块中存在非零系数,随后需要编码主变换核类型(primary transform kernel type)和块结束(end-of-block, EOB)位置。

  • 系数的编码流程如下:

    1. all_zero 标志:首先编码all_zero标志,如果变换块内所有系数都是零,则此标志为 1;否则为 0。

    2. 主变换核类型和 EOB 位置:如果 all_zero 标志为 0,则需要编码主变换核类型和 EOB 位置。EOB 位置指示非零系数的最后一个位置。

    3. 系数值编码:系数值通过多个级别的映射(level maps)以及符号值进行编码。存在三个级别的平面:低级别(lower-level)、中级别(middle-level)和高级别(higher-level),分别对应不同的系数幅度范围(0–2, 3–14, 15 及以上)。

    4. 三个级别平面的编码

      • 低级别和中级别平面:在编码 EOB 值之后,低级别和中级别平面以反向扫描顺序(zig-zag scan)编码在一起。
      • 符号平面和高级别平面:然后,符号平面和高级别平面以正向扫描顺序编码在一起。
    5. 剩余值的熵编码:高级别平面编码后,使用指数-哥伦布(Exp-Golomb)编码对剩余值(系数幅度减去 14)进行熵编码。

    6. 上下文模型的应用

      • 低级别平面:上下文模型取决于主变换方向(双向、水平、垂直)、变换块大小,以及变换域中最多五个邻近变换系数。
      • 中级别平面:使用类似的上下文模型,但上下文邻近系数的数量从 5 减少到 2。
      • 高级别平面:不使用上下文建模,直接使用 Exp-Golomb 编码进行编码。
    7. 符号平面的编码:除了直流(DC)符号使用邻近变换单元的 DC 符号进行编码外,所有其他系数的符号值直接编码,不使用上下文建模。

  • 这种编码方式允许 AV1 编码器有效地表示变换系数,通过利用系数的统计特性和上下文信息来提高编码效率。通过区分不同级别的系数幅度并应用不同的上下文模型和编码策略,AV1 能够在保持视频质量的同时实现更高的压缩比。

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

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

相关文章

EMR 集群时钟同步问题及解决方案An error occurred (InvalidSignatureException)

目录 1. 问题描述2. 问题原因3. 解决过程4. 时钟同步的重要性5. Linux 系统中的时钟同步方式6. 检查 Linux 系统时钟同步状态7. EMR 集群中的时钟同步配置8. 时钟同步对大数据组件的影响9. 监控和告警策略10. 故障排除和最佳实践11. 自动化时钟同步管理12. 时钟同步与数据一致性…

每日复盘-20240715

20240715 六日涨幅最大: ------1--------300807--------- 天迈科技 五日涨幅最大: ------1--------300807--------- 天迈科技 四日涨幅最大: ------1--------300807--------- 天迈科技 三日涨幅最大: ------1--------300713--------- 英可瑞 二日涨幅最大: ------1--------3007…

AV1技术学习:Translational Motion Compensation

编码块根据运动矢量在参考帧中找到相应的预测块,如下图所示,当前块的左上角的位置为(x0, y0),在参考帧中找到同样位置(x0, y0)的块,根据运动矢量移动到目标参考块(左上角位置为:(x1, y1))。 AV1…

【java】力扣 买卖股票的最佳时机 动态规划

文章目录 题目链接题目描述思路代码 题目链接 121.买卖股票的最佳时机 题目描述 思路 本题主要用到了动态规划 1.先定义dp数组的含义 先定义一个二维数组dp 然后dp[i][0]来表示第i天持有股票的现金 dp[i][1]代表第i天不持有股票的现金 刚开始的现金为0,当第i天买…

mysql索引值

mysql 索引值生成规则 MySQL索引值是如何生成的取决于具体的数据类型和列的具体定义。对于大多数数据类型,MySQL会为索引键值使用原始的数据。对于字符串类型(如VARCHAR, CHAR, TEXT),索引键值可能是字符串的前缀,这是…

二.1 信息存储(1.1-1.3)

大多数计算机使用8位的块,或者字节(byte),作为最小的可寻址的内存单位,而不是访问内存中单独的位。机器级程序将内存视为一个非常大的字节数组,称为虚拟内存(virtual memory)。内存的…

Home Assistant在windows环境安装

Home Assistant是什么? Home Assistant 是一个开源的智能家居平台,旨在通过集成各种智能设备和服务,提供一个统一的、可自定义的家庭自动化解决方案。它可以允许用户监控、控制和自动化家中的各种设备,包括灯光、温度、安全系统、…

C语言学生成绩管理系统源程序+设计报告

资料下载地址:C语言学生成绩管理系统源程序设计报告 目录 1.设计目的与要求 2.系统需求分析 3.总体设计 4、运行界面 5、资料清单 1.设计目的与要求 设计目的:学生成绩管理系统是为了在这个信息时代高速发展的今天,通过计算机取代传统…

Python从0到100(三十九):数据提取之正则(文末免费送书)

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

加油机税控装置:功能、原理、挑战与发展趋势全解析

加油机税控装置是现代加油机的重要组成部分,它不仅确保销售数据的真实性和合法性,还大大提高了税收管理的效率和质量。 以下是对加油机税控装置的详细解析: 一、功能与作用 1、确保数据真实性:税控装置能够实时、准确地采集加油…

隧道调频广播信号覆盖系统改造-泄漏电缆隧道全线无盲区调频覆盖解决方法探究

隧道调频广播信号覆盖系统改造-泄漏电缆隧道全线无盲区调频覆盖解决方法探究 由北京海特伟业科技有限公司任洪卓发布于2024年7月15日 随着城市交通的不断发展,隧道作为城市交通的重要组成部分,承担着日益增长的交通压力。为了确保行驶在隧道中的车辆能够…

Unity最新第三方开源插件《Stateful Component》管理中大型项目MonoBehaviour各种序列化字段 ,的高级解决方案

上文提到了UIState, ObjectRefactor等,还提到了远古的NGUI, KBEngine-UI等 这个算是比较新的解决方法吧,但是抽象出来,问题还是这些个问题 所以你就说做游戏是不是先要解决这些问题? 而不是高大上的UiImage,DoozyUI等 Mono管理引用基本用法 ① 添加Stateful Component …

书生大模型实战营--L0关卡-Git

任务一、自我介绍 一、使用vscode链接git并提交代码 二、提交新的pr

Linux目录网络设置远程工具的使用

文章目录 Linux目录虚拟机⽹络配置查看⽹络信息修改⽹络配置信息 虚拟机管理操作远程⼯具的使⽤ Linux目录 Linux的⽬录结构 Linux中的常⻅⽬录 Linux常⻅的⽬录结构,不同版本的Linux⽬录结构可能略有不同 Centos7的⽂件⽬录结构 Linux根⽬录下的常⻅⽬录及作⽤ …

windows下安装和使用nacos

概述 Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发 现、服务配置、服务元数据及流且管理 Nacos官方文档:https://nacos.io/zh-cn/docs/quick-start.html Nacos下载地址:https://n…

ArkUI-X视频播放App初出茅庐

前言; 各位同学大家好之前写了一些基于 OpenHarmony 系统写arkui的项目。所以移植到arkui-x上面来 效果图 OpenHarmony os 设备效果图 : 安卓设备效果图

创建第一个鸿蒙开发项目

文 | Promise Sun 一、DevEco Studio 1、截图示例为汉化后的版本,需要汉化DevEco Studio可以参考《汉化DevEco Studio开发工具》 2、使用DevEco Studio开发工具版本: 二、创建鸿蒙开发项目 1、打开DevEco Studio开发工具,操作“文件-新建…

8.FreeRTOS_队列集

队列集使用在系统需要支持多个输入设备的情况,这是每个输入设备的数据都存放在一个队列中,队列集将他们管理起来,可以实现实时识别哪一个队列中有数据并将数据读取出来。 相关配置 使用队列集的函数,需要先开启宏开关。具体操作…

N1 - OneHot编码

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目录 one-hot编码优点缺点 英文文本案例中文文本案例中文结巴分词示例作业心得体会 one-hot编码 自然语言处理(NLP)入门,绕…

Go: IM系统技术架构梳理

概述 整个IM系统的一般架构如下 我们这张图展示了整个IM系统的一般架构可见分为四层那最上面这一层是前端,包括哪些东西呢? 它包括两部分,第一部分是跟用户直接交互的比如说各种IOS APP, 各种安卓 APP还有各种 web APP 在浏览器里面打开的以…