H.264,H.265,H.266标准技术改进
关于H.264,H.265,H.266相关资料链接:
标准及中文资料链接
视频编码中的主要技术
视频编码的目标是在保证视频质量的前提下,尽可能减少数据量。以下是视频编码中的核心技术:
- 块划分(Block Partitioning)
- 将视频帧划分为小块,以便后续进行预测、变换和量化。
- 块的大小和形状直接影响编码效率。
- 帧内预测(Intra Prediction)
- 利用同一帧内相邻像素的相关性,预测当前块的像素值。
- 目的是减少空间冗余。
- 帧间预测(Inter Prediction)
- 利用时间上相邻帧的内容,通过运动估计和运动补偿预测当前块的像素值。
- 目的是减少时间冗余。
- 变换(Transform)
- 将预测残差(预测值与实际值的差值)从空间域转换到频率域,集中能量,便于压缩。
- 量化(Quantization)
- 对变换后的系数进行舍入处理,减少数据量。
- 量化步长决定了压缩率和视频质量的平衡。
- 熵编码(Entropy Coding)
- 对量化后的数据进行无损压缩,利用数据的统计特性进一步减少比特率。
- 环路滤波(In-loop Filtering)
- 在编码和解码过程中对重建图像进行滤波,减少压缩带来的伪影,提升质量。
H.264 (AVC)
H.264 是一个重要的视频编码标准,奠定了现代视频压缩的基础。
主要技术特点
- 块划分:使用 16x16 像素的宏块(macroblock),可细分为 8x8 或 4x4 的子块。
- 帧内预测:支持 9 种 4x4 块预测模式和 4 种 16x16 块预测模式。
- 帧间预测:支持 1/4 像素精度的运动向量。
- 变换:采用 4x4 和 8x8 的整数 DCT 变换。
- 熵编码:提供 CAVLC(基于变长编码)和 CABAC(基于上下文自适应的二进制算术编码)两种选择。
- 环路滤波:引入去块滤波器(deblocking filter),减少块效应伪影。
H.265 (HEVC) 相较于 H.264 的改进
H.265 在 H.264 的基础上大幅提升了压缩效率,尤其适用于高分辨率视频。
具体改进
- 块划分
- 改进:从固定的 16x16 宏块升级为编码树单元(CTU),最大支持 64x64,并采用四叉树结构,动态划分至 8x8。
- 优势:更灵活的块划分,能根据内容复杂度优化压缩效率。
- 帧内预测
- 改进:预测模式从 9/4 种增加到 35 种,支持更多预测方向。
- 优势:更精确的预测,减少空间残差。
- 帧间预测
- 改进:引入高级运动向量预测(AMVP)和合并模式(merge mode),优化运动信息编码。
- 优势:减少描述运动所需的比特,提升时间预测效率。
- 变换
- 改进:支持更大的变换尺寸,最高达 32x32。
- 优势:更好地捕捉大块区域的低频信息,减少残差数据量。
- 环路滤波
- 改进:在去块滤波器的基础上新增样本自适应偏移(SAO)滤波器。
- 优势:进一步减少伪影,提升视觉质量和预测精度。
- 熵编码
- 改进:CABAC 性能得到优化。
- 优势:提高无损压缩效率。
总体效果:在相同质量下,H.265 的比特率约为 H.264 的一半。
H.266 (VVC) 相较于 H.265 的改进
H.266 是最新的视频编码标准,进一步提升压缩效率并支持更多应用场景。
具体改进
- 块划分
- 改进:采用四叉树加二叉树(QTBT)结构,支持矩形块划分,最大尺寸仍为 64x64。
- 优势:更灵活的划分方式,能更好地适应复杂内容。
- 帧内预测
- 改进:预测模式从 35 种增加到 67 种,方向更精细。
- 优势:提升预测精度,进一步减少空间冗余。
- 帧间预测
- 改进:引入仿射运动补偿(affine motion compensation),支持旋转、缩放等复杂运动。
- 优势:更准确地模拟真实物体运动,提升时间预测效果。
- 变换
- 改进:支持多种变换选择(MTS,如 DCT 和 DST),变换尺寸扩展至 64x64。
- 优势:根据内容选择最优变换,减少残差数据量。
- 环路滤波
- 改进:新增自适应环路滤波器(ALF),与去块滤波器和 SAO 协同工作。
- 优势:自适应调整滤波策略,显著减少伪影。
- 熵编码
- 改进:进一步优化 CABAC 的上下文建模。
- 优势:提升无损压缩效率。
总体效果:在相同质量下,H.266 的比特率比 H.265 再降低 30-50%。
压缩效率与带宽需求
- H.264(1080p@30fps):
- 典型码率:4-8 Mbps
- 适用场景:普通网络直播、标清视频存储。
- H.265(4K@30fps):
- 典型码率:10-20 Mbps(比H.264节省50%带宽)
- 适用场景:4K流媒体(如Netflix)、超高清监控。
- H.266(8K@60fps):
- 典型码率:20-40 Mbps(比H.265节省50%带宽)
- 适用场景:8K广播电视、VR游戏串流。
示例:一部90分钟的4K电影:
- H.264:约50 GB
- H.265:约25 GB
- H.266:约12.5 GB
2. 计算复杂度与硬件需求
| 标准 | 编码复杂度(相对值) | 典型硬件支持 |
|---|---|---|
| H.264 | 1x | 手机SoC(2010年后)、低端摄像头 |
| H.265 | 3-5x | 高端手机(如iPhone 12+)、4K电视芯片 |
| H.266 | 8-10x | 最新GPU(NVIDIA RTX 40系列)、专用编码芯片 |
市场应用与竞争格局
1. H.264/H.265/H.266的当前应用
- H.264:仍占主流(约60%视频流量),尤其在监控摄像头、视频会议(Zoom默认编码)。
- H.265:4K流媒体(YouTube、Disney+)、苹果生态(iPhone录制的4K视频)。
- H.266:试验阶段,如日本8K电视台、Meta的VR直播。
2. 与AV1的竞争
- H.266优势:
- 压缩效率略高于AV1(约5-10%)。
- 硬件加速生态更成熟(华为海思、联发科芯片已支持)。
- AV1优势:
- 免专利费(由AOM联盟推动,谷歌/Netflix支持)。
- 已广泛应用于YouTube、TikTok等平台。
预测:未来5年,H.266将在超高清专业领域(广电、医疗影像)领先,而AV1主导消费级流媒体。
相关文章:
H.264,H.265,H.266标准技术改进
关于H.264,H.265,H.266相关资料链接: 标准及中文资料链接 视频编码中的主要技术 视频编码的目标是在保证视频质量的前提下,尽可能减少数据量。以下是视频编码中的核心技术: 块划分(Block Partitioning) 将视频帧划分…...
Pipeline模式详解:提升程序处理效率的设计模式
文章目录 Pipeline模式详解:提升程序处理效率的设计模式引言Pipeline的基本概念Pipeline的工作原理Pipeline的优势Pipeline的应用场景1. 数据处理2. DevOps中的CI/CD3. 机器学习4. 图像处理 常见的Pipeline实现方式1. 函数式编程中的Pipeline2. 基于消息队列的Pipel…...
时序数据库 TDengine 化工新签约:存储降本一半,查询提速十倍
化工行业在数字化转型过程中面临数据接入复杂、实时性要求高、系统集成难度大等诸多挑战。福州力川数码科技有限公司科技依托深厚的行业积累,精准聚焦行业痛点,并携手 TDengine 提供高效解决方案。通过应用 TDengine,力川科技助力化工企业实现…...
Networking Based ISAC Hardware Testbed and Performance Evaluation
文章目录 Applications and Challenges of Networked SensingCooperation Mechanism in Networked SensingChallenges and Key Enabling Technologies 5G NR Frame Structure Based ISAC ApproachSignals Available for Radio SensingMulti-Dimensiona Resource Optimization S…...
【音视频】ffplay简单过滤器
一、ffplay简单过滤器 视频旋转:借助transpose滤镜 ffplay -i 1.mp4 -vf transpose1这里选择不同的数字是不同的方向: 视频翻转:借助hflip/vflip实现水平和垂直翻转: 水平翻转 ffplay 1.mp4 -vf hflip垂直翻转 ffplay 1.mp4 …...
力扣HOT100之哈希:1. 两数之和
这道题之前刷代码随想录的时候已经刷过好几遍了,看到就直接秒了。这道题主要是通过unordered_map<int, int>来建立哈希表,其中键用来保存向量中的元素,而对应的值则为元素的下标。遍历整个向量,当遍历到nums[i]时࿰…...
TON基金会确认冠名赞助2025香港Web3嘉年华,并将于4月8日重磅呈现“TON生态日”
近日,由万向区块链实验室与HashKey Group联合推出的Web3年度盛典——2025香港Web3嘉年华正式宣布,TON基金会确认成为本届嘉年华的冠名赞助商,并将于4月8日在主会场特别举办“TON生态日”专题Side Event,集中展现TON生态的最新技术…...
Raspberry pi4 realsense图像发送和自动启动服务
测试realsense安装: import pyrealsense2 as rs import numpy as np import cv2def main():# 配置RealSense管道pipeline rs.pipeline()config rs.config()# 启用RGB和彩色深度流config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)config.ena…...
Git - 补充工作中常用的一些命令
Git - 补充工作中常用的一些命令 1 一些场景1.1 场景11.2 场景21.3 场景31.4 场景41.5 场景51.6 场景61.7 场景71.8 场景81.9 场景91.10 场景101.11 场景111.12 场景121.13 场景131.14 场景141.15 场景15 2 git cherry-pick \<commit-hash\> 和 git checkout branch \-\-…...
电脑网络出现问题!简单的几种方法解除电脑飞行模式
在某些情况下,您可能需要关闭电脑上的飞行模式以便重新连接到 Wi-Fi、蓝牙或其他无线网络。本教程中简鹿办公将指导您如何在 Windows 和 macO S操作系统上解除飞行模式。 一、Windows 系统下解除飞行模式 通过快捷操作中心 步骤一:点击屏幕右下角的通知…...
CefSharp 文件下载和保存功能-监听前端事件
重点在 启用文件下载 和 通过 JavaScript 调用 C# 保存文件: 1. 添加文件下载处理器 (DownloadHandler) 在 VueFormService 类中,添加一个实现 IDownloadHandler 接口的类,用于处理文件下载到本地。 // 新增的 DownloadHandler 类 public c…...
PQL查询和监控各类中间件
1 prometheus的PQL查询 1.1 Metrics数据介绍 prometheus监控中采集过来的数据统一称为Metrics数据,其并不是代表具体的数据格式,而是一种统计度量计算单位当需要为某个系统或者某个服务做监控时,就需要使用到 metrics prometheus支持的met…...
【从零开始学习计算机科学】数字逻辑(九)有限状态机
【从零开始学习计算机科学】数字逻辑(九)有限状态机 有限状态机状态机的表示方法有限状态机的Verilog描述有限状态机 有限状态机(简称状态机)相当于一个控制器,它将一项功能的完成分解为若干步,每一步对应于二进制的一个状态,通过预先设计的顺序在各状态之间进行转换,状…...
java错题总结
本篇文章用来记录学习javaSE以来的错题 解答:重载要求俩个方法的名字相同,但参数的类型或者个数不同,但是不要求返回类型相同,所以A正确。 重写还需要要求返回类型相同(呈现父子类关系也可以,但是属于特例&…...
12.【线性代数】——图和网络
十二 图和网络(线性代数的应用) 图 g r a p h { n o d e s , e d g e s } graph\{nodes, edges\} graph{nodes,edges}1.关联矩阵2. A A A矩阵的零空间,求解 A x 0 Ax0 Ax0 电势3. A T A^T AT矩阵的零空间,电流总结电流图结论 …...
【C++】ImGui:VSCode下的无依赖轻量GUI开发
本教程将手把手带您用纯原生方式构建ImGui应用,无需CMake/第三方库。您将全程明了自己每个操作的意义,特别适合首次接触GUI开发的新手。 环境配置 安装VSCode 作用:轻量级代码编辑器,提供智能提示操作: 官网下载安装…...
新编大学应用英语综合教程2 U校园全套参考答案
全套答案获取: 链接:https://pan.quark.cn/s/389618f53143...
Python数据可视化——Matplotlib的基本绘图:图形、轴、标签
Matplotlib的绘图系统是由多个层次组成的,它的基本结构包括图形(Figure)、坐标轴(Axes)、刻度(Ticks)、标签(Labels)等多个部分。理解这些基本组件,有助于更好地使用Matplotlib绘制和优化图表。在本节中,我们将结合NumPy数组,详细讲解Matplotlib的基本结构,并展示…...
STM32之软件SPI
SPI传输更快,最大可达80MHz,而I2C最大只有3.4MHz。输入输出是分开的,可以同时输出输入。是同步全双工。仅支持一主多从。SS是从机选择线。每个从机一根。SPI无应答机制的设计。 注意:所有设备需要共地,时钟线主机输出&…...
Java 实现 Oracle 的 MONTHS_BETWEEN 函数
介绍 因为系统迁移, 有一些函数要转成 Java 版本, Oracle 的 官方介绍 - MONTHS_BETWEEN MONTHS_BETWEEN returns number of months between dates date1 and date2. The month and the last day of the month are defined by the parameter NLS_CALENDAR. If date1 is late…...
【从零开始学习计算机科学】数字逻辑(五) Verilog HDL语言
【从零开始学习计算机科学】数字逻辑(五) Verilog HDL语言 Verilog HDL语言8位全加器8位计数器2位比较器三态驱动器Verilog HDL模块的结构模块声明。端口定义。信号类型。功能描述verilog描述级别verilog关键字verilog标识符编写Verilog HDL源代码的标准数据类型常量变量nets…...
从零开始实现大语言模型(十三):预训练大语言模型GPTModel
1. 前言 使用梯度下降算法通过下一个token预测任务预训练大语言模型GPTModel,前向传播流程每次会输入一个batch的长度均为context_len的训练样本,执行 batch_size context_len \text{batch\_size}\times\text{context\_len} batch_sizecontext_len次下…...
Permute for Mac v3.12.1 文件格式转换器 支持M、Intel芯片
Mac毒搜集到的Permute 提供简单的视频格式转换功能,可以简单的将视频文件转换为你想要的格式。将你想要转换的视频拖到软件窗口内,然后选择你想要转换的格式即可。 应用介绍 Permute是一款Mac上易用的媒体格式转换工具,支持视频、音乐和图像…...
DeepSeek group-limited expert routing和负载均衡
Ref https://github.com/deepseek-ai/DeepSeek-V3/blob/main/inference/model.py GitHub - deepseek-ai/EPLB: Expert Parallelism Load Balancer DeepSeek-V3 Technical Report DeepSeek的路由方法 class Gate(nn.Module):def __init__(self, args: ModelArgs):super().__…...
智慧消防新篇章:4G液位/压力传感器,筑牢安全防线!
火灾无情,防患未“燃”!在智慧消防时代,如何实现消防水系统的实时监测、预警,保障人民生命财产安全?山东一二三物联网深耕物联网领域,自主研发4G液位、4G压力智能传感器,为智慧消防水位、水压无…...
C++ primier plus 函数探幽第二部分
系列文章目录 C primer plus 第一节 步入C-CSDN博客 C primer plus 第二节 hello world刨析-CSDN博客 C primer plus 第三节 数据处理-CSDN博客 C primer plus 第四节 复合类型-CSDN博客 C primer plus 第五节 循环-CSDN博客 C primier plus 第七节 函数探幽第一部分-CSDN博客 …...
DBus名词术语命名规范详解:构建清晰、规范的DBus通信
引言 DBus(Desktop Bus)是一种高效、灵活的进程间通信(IPC)机制,广泛应用于Linux桌面环境中。为了确保DBus通信的清晰性和规范性,DBus定义了一套严格的命名规范,涵盖了总线、服务名、对象路径、…...
用低代码平台集成人工智能:无需专业开发也能实现智能化
引言:人工智能的普及与企业需求 随着人工智能(AI)技术的飞速发展,越来越多的企业开始意识到其在提升运营效率、优化客户体验和推动业务创新方面的巨大潜力。从智能客服到自动化决策支持,从数据分析到个性化推荐&#x…...
Java停车平台高并发抢锁技术方案设计 - 慧停宝开源停车管理平台
Java停车平台高并发抢锁技术方案设计 一、业务场景特征 瞬时流量峰值 早晚高峰时段(07:30-09:00, 17:30-19:00)请求量激增10倍热门商圈停车场每秒并发请求可达5000 QPS 资源竞争特性 单个车位被多人同时抢占(超卖风险)用户操作链…...
C++关键字:typename 用于依赖名消歧器(disambiguator)
目录 1. 说明 2. 示例 1. 说明 在模板(包括别名模板)的声明或定义中,非当前实例的成员且依赖于模板参数的名称不视为类型,除非使用关键字 typename 或除非它已被建立为类型名称(例如使用 typedef 声明或用于命名基…...
