视频编码解码基本知识

article/2025/10/15 20:32:16

最近在做摄像头视频的数据处理,得到了网络相机的.h264格式的数据,需要做解码处理,由于对视频的编码解码原理不太了解,因此查找资料总结一下

为什么要进行视频编码?

视频编码又称为视频压缩,伴随着用户对高清视频的需求量的增加,视频多媒体的视频数据量也在不断加大。如果未经压缩,这些视频很难应用于实际的存储和传输。而视频中是有很多冗余信息的,以记录数字视频的YUV分量格式为例,YUV分别代表亮度与两个色差信号。例如对于现有的PAL制电视系统,其亮度信号采样频率为13.5MHz;色度信号的频带通常为亮度信号的一半或更少,为6.75MHz或3.375MHz。以4:2:2的采样频率为例,Y信号采用13.5MHz,色度信号U和V采用6.75MHz采样,采样信号以8bit量化,则可以计算出数字视频的码率为:13.5*8 + 6.75*8 + 6.75*8= 216Mbit/s。如此大的数据量如果直接进行存储或传输将会遇到很大困难,因此必须采用压缩技术以减少码率。数字化后的视频信号能进行压缩主要依据两个基本条件:

  • 数据冗余。例如如空间冗余、时间冗余、结构冗余、信息熵冗余等,即图像的各像素之间存在着很强的相关性。消除这些冗余并不会导致信息损失,属于无损压缩
  • 视觉冗余。人眼的一些特性比如亮度辨别阈值,视觉阈值,对亮度和色度的敏感度不同,使得在编码的时候引入适量的误差,也不会被察觉出来。可以利用人眼的视觉特性,以一定的客观失真换取数据压缩。这种压缩属于有损压缩

数字视频信号的压缩正是基于上述两种条件,有效地去除视频数据中冗余信息,实现视频数据在互联网中快速传输和离线的存储。使得视频数据量得以极大的压缩,有利于传输和存储。

主流的编解码标准的压缩对象都是YUV图像

常见的编码格式

在过去的几十年中,一系列的视频编码标准被广泛的应用。目前已有的视频压缩标准有很多种,包括国际标准化组织(International Organization for Standardization, ISO)/国际电工技术委员会(International Electrotechnical Commission, IEC)制定的MPEG-1、MPEG-2、MPEG-4标准;国际电信联盟电信标准化部门(International Telecommunication Union-Telecom, ITU-T)制定的H.261、H.263。

2003年3月,ITU-T和ISO/IEC 正式公布了H.264/MPEG-4 AVC视频压缩标准。H.264作为目前应用最为广泛的视频编码标准,在提高编码效率和灵活性方面取得了巨大成功,使得数字视频有效地应用在各种各样的网络类型和工程领域。为了在关键技术上不受国外牵制,同时也不用交大量的专利费用,中国也制定了AVS系列标准,可以提供与H.264/AVC相当的编码效率。

近年来随着用户体验的不断升级,高清(1920x1080)和超高清(3840x2160)视频的应用越来越广泛。相对于标清视频,高清视频分辨率更大也更清晰,但是相应的数据量也随之增加。在存储空间和网络带宽有限的情况下,现有的视频压缩技术已经不能满足现实的应用需求。为了解决高清及超高清视频急剧增长的数据率给网络传输和数据存储带来的冲击,ITU-T和ISO/IEC联合制定了具有更高压缩效率的新一代视频压缩标准HEVC(High Efficiency Video Coding)。

视频文件生成方式

一个完整的视频文件是由音频和视频2 部分组成的。常见的AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等文件其实只能算是一种封装标准。

H264、Xvid等就是视频编码格式,MP3、AAC等就是音频编码格式。例如:将一个Xvid视频编码文件和一个MP3视频编码文件按AVI封装标准封装以后,就得到一个AVI后缀的视频文件,这个就是我们常见的AVI视频文件了。由于很多种视频编码文件、音频编码文件都符合AVI封装要求,则意味着即使是AVI后缀,也可能里面的具体编码格式不同。因此出现在一些设备上,同是AVI后缀文件,一些能正常播放,还有一些就无法播放。

同样的情况也存在于其他容器格式。即使RMVB、WMV等也不例外。部分技术先进的容器还可以同时封装多个视频、音频编码文件,甚至同时封装进字幕,如MKV封装格式。MKV文件可以做到一个文件包括多语种发音、多语种字幕,适合不同人的需要。例如:MKV文件只要制作的时候同时加入国语和粤语发音的音轨和对应的简体、繁体字幕,播放的时候,你可以独立选择国语或粤语发音,并根据自己需要选择简体或繁体字幕,也可以选择不显示字幕。相当方便。

因此,视频转换需要设置的本质就是:A设置需要的视频编码、B设置需要的音频编码、C选择需要的容器封装。一个完整的视频转换设置都至少包括了上面3个步骤。常见的组合方式如表所示

常见的组合方式

封装容器

视频流编码格式

音频流编码格式

AVI

Xvid

MP3

AVI

Divx

MP3

Matroska(后缀就是MKV)

Xvid

MP3

Matroska(后缀就是MKV)

Xvid

AAC

Matroska(后缀就是MKV)

H264

AAC

MP4

Xvid

MP3

MP4

H264

AAC

3GP

H.263

AAC

视频编解码关键技术

MPEG-4/H.264等编解码算法的工作机制基本都是混合编码,主要处理模块包括:预测、变换、量化和熵编码等。工作原理大同小异,图像帧的编码模式主要有帧内和帧间两种方式。帧内包括预测、变换、量化和熵编码等,帧间编码包括运动估计、运动补偿、变换、量化和熵编码等。 

  • 预测:通过帧内预测和帧间预测降低视频图像的空间冗余和时间冗余。
  • 变换:通过从时域到频域的变换,去除相邻数据之间的相关性,即去除空间冗余。
  • 量化:通过用更粗糙的数据表示精细的数据来降低编码的数据量,或者通过去除人眼不敏感的信息来降低编码数据量。
  • 扫描:将二维变换量化数据重新组织成一维的数据序列。
  • 熵编码:根据待编码数据的概率特性减少编码冗余。

视频编码知识

在做视频开发时,涉及到视频的编码输出,本质上视频的码率就等于网络的带宽

视频码率是视频数据(视频色彩量、亮度量、像素量)每秒输出的位数

码率越高,数据量越大,视频质量越好,码率越小,数据量越小,视频质量越差。但是,码率大到一定阈值之后,码率的提升带来的视频质量改善就会变得微不足道,所以这个码率阈值就显得非常重要。

有篇文章测试了 H264 编码时,不同分辨率的码率设置情况,可以参考

文章链接:Video Encoding Settings for H.264 Excellence


http://chatgpt.dhexx.cn/article/9AJslIRb.shtml

相关文章

FFMpeg 实现视频编码、解码

FFMpeg 作为音视频领域的开源工具,它几乎可以实现所有针对音视频的处理,本文主要利用 FFMpeg 官方提供的 SDK 实现音视频最简单的几个实例:编码、解码、封装、解封装、转码、缩放以及添加水印。 接下来会由发现问题->分析问题->解决问题->实现方案,循序渐进的完成。…

感知视频编码

感知视频编码就是在视频编码的过程中,将HVS应用进去,挖掘主观视频感知冗余,进一步提高视频编码压缩效率。 1.Computational visual perception:三种视觉感知计算模型 (1)视觉敏感模型 (2)视觉注…

Android视频编码的坑

视频开发是一个核心方向,那Camera开发一直是Android的一个核心,笔者做过Camera HAL,也做过Camera App, 同时也开发过Camera 滤镜,这个过程中也遇到和解决过很多棘手的问题,也一直想总结一篇,看到这篇后感觉…

视频编码未来简史

首先我们回顾一下视频编码的历史,视频编码起源于广播电视,在很长一段时间里视频编解码的变革主要推动力是来自于广播电视。当然,今天我们看互联网的视频编码是速度越来越快,昨天在ICET2017年世界大会上,ICET的主席还说…

PCS2021:针对游戏内容的视频编码工具分析和数据集

本文来自PCS2021论文《Video Coding Tool Analysis and Dataset for Gaming Content》 随着近几年游戏市场的逐渐壮大,新的游戏形态(AR、VR、云游戏等)逐渐发展。和传统的摄像机内容和屏幕内容相比,游戏内容有着不同的特点导致对于…

视频编码综述

你用手机、电脑看电影追剧时,是看的高清还是标清?我想只要网速够得上应该没有人愿意再看标清了吧!毕竟高清视频的高分辨率和清晰画质总是能让人有更好的观影体验。 伴随着用户对高清视频的需求量的增加,视频多媒体的视频数据量也在…

混合视频编码方法

参考文献: IP网络视频传输:技术、标准和应用 朱秀昌,唐贵进。--北京:人民邮电出版社,2017.9 预测编码和变换编码是混合编码的基础,当然除此之外还有运动估计、运动补偿、量化、熵编码、去方块滤波等。下面…

【视频编解码-02】视频编码的目的、条件和目标

视频编码,是视频处理中的一个核心技术。 现代我们所看到的所有视频,包括电视、互联网、手机等等,几乎所有的视频都会被编码、解码。 整个视频技术的基本流程是:视频数据的采集、视频数据的编码、视频数据的传输、视频数据的解码、…

【视频】视频文件格式和视频编码

我们经常在电脑、电视、手机或者其他终端产品看视频,我们对视频有个大概了解,比如清晰度、大小、视频类型等,但是对于视频内部结构我们应该一无所知,现在我们来一步一步解开视频的神秘面纱。 首先大家要清楚两个概念,视…

H.265视频编码原理总结

H.265视频编码原理总结 转载地址 1 概述 H.265(HEVC High Efficiency Video Coding)是现行H.264标准于2003年实现标准化以来时隔10年推出的新标准,将成为支撑未来十年的影像服务和产品的视频压缩技术。其特点是,支持1080p以上的…

视频编码流程详解

1、视频编码整体流程 2、FFmpeg视频编码详细流程 从本地读取YUV数据编码为H264格式的数据,然后再存入到本地,编码后的数据有带startcode。 与FFmpeg示例音频编码的流程基本一致。 3、关键函数说明 (1)avcodec_find_encoder_by_n…

视频编码知识

记录一下学习视频编码的过程和自己的理解 视频 数字图像在计算机中的表示:二维矩阵,或三维矩阵(彩色)。 矩阵中的每个点为像素,数值的大小反应色彩的强度,颜色深度需要使用一定数据空间存储,每…

视频的专业基础知识(一)常用的编码格式和参数

1. 常用的编码格式 编码格式:一个视频文件本身,通常由音频和视频两部分组成。例如视频文件,就是由avc视频编码AAC音频编码组成的,常见的视频编码格式有Xvid,AVC/H.264,MPEG1,MPEG2 等&#xff…

常见视频编码格式解析

常见视频编码格式解析 文章目录 常见视频编码格式解析1、MPEG2-TS编码技术1.1. MPEG-TS简介1.2. 基本概念及TS流概述1.3. 基本流程1.4. TS流传输包(简称TS包)结构分析1.4.1. TS包包头1.4.2. TS包净荷部分1.5. PS节目流2、MPEG-4编码技术2.1. MPEG-4概述2.2. MPEG-4各部分2.3.…

视频编码全流程

视频编解码用到的一些算法: 正反傅里叶变换、fft算法 dct变换、快速dct变换 如何自己实现一个视频编解码器: (1)取一帧作为I帧,类似jpeg压缩编码,也就是 rgb转yuv,然后dct去除高频信息。因为这种压缩会造成边界bloc…

视频编码技术详解

1、引言 如今我们所处的时代,是移动互联网时代,也可以说是视频时代。从快播到抖音,从“三生三世”到“延禧攻略”,我们的生活,被越来越多的视频元素所影响。 而这一切,离不开视频拍摄技术的不断升级&#x…

FIO源码解读测试

在磁盘测试中,fio是最常用的测试的工具,其下载网址为https://github.com/axboe/fio; 对于fio,其测试命令有许多,这个大家很容易就可以查到,此处不讲解具体的测试命令, 而是讲一下大概的源码框架。 Fio的入口函数在fio.…

fio引发的一些问题

fio引发的一些问题 奇怪的255扇区在nvme驱动中插入打印语句直接编译模块加载源码编译内核 查找内核源码 奇怪的255扇区 由于块设备驱动项目需要测试读写速度,故使用fio工具,没想着深入了解,简单测个速就可以 使用tldr命令得到测试磁盘读写的…

【fio】关于磁盘性能测试

一、关于磁盘 磁盘是可以持久化存储的设备,根据存储介质的不同,常见磁盘可以分为两类:机械磁盘和固态磁盘。 第一类,机械磁盘,也称为硬盘驱动器(Hard Disk Driver),通常缩写为 HDD。…

【测试】 FIO:ceph/磁盘IO测试工具 fio(iodepth深度)

目录 随看随用 NAS文件系统测试 块系统测试 FIO用法 FIO介绍 FIO 工具常用参数: FIO结果说明 I/O 的重放(录下实际工况的IO,用fio重放) fio工作参数可以写入配置文件 fio的iodepth参数说明 IO状态监控: Ios…