视频编解码技术详解(H.264、MPEG-4)

一、视频编解码概述

1. 应用场景

视频编码的目的就是压缩视频的占用空间,提高存储和传输的效率,在获得有效的压缩效果的同时,使得压缩过程引起的失真最小。视频压缩算法是通过去除时间、空间的冗余来实现的。通过去除不同类型的冗余,可以明显的压缩数据,代价就是一部分信息失真,可以通过熵编码器(如哈夫曼编码等)进行编码可以获得更高的压缩比。目前主流的图像/视频压缩标准为:JPEG,MPEG,H26X等标准。

2. 主流视频编码标准简介

MPEG-4和H.264(也叫AVC)是目前较为主流的编码标准。每个标准都输出了一份文档,主要定义了两方面的内容:视频数据压缩形式的编码表示(又叫做语法)和用重建视频信息的语法来描述编码方法。标准的目的是为了保证兼容的编码器能够成功的交互工作,同时也允许制造厂商自由的开发具有竞争力的创新产品。制造厂商只需要注意的事情就是能够获得和标准中采用的方法同样的结果。MPEG-4在视频压缩方面的灵活性,而H.264强调有效性和可靠性。

3. 视频编码概念

视频编码就是为了压缩视频数据流。压缩包括编码器和解码器两部分,在传输或者存储之前,编码器将源文件转换成压缩格式,在读取或播放数据时,解码器将压缩数据恢复成视频图像。编码器和解码器合称为编解码器(CODEC)。视频数据的压缩基本原理就是消除冗余,而冗余基本上是时间冗余和空间冗余。视频编码器一般分为三个主要功能单元:时域模型,频域模型和熵编码器。

时域模型的输入是未压缩的视频流,通常原始视频流的相邻帧之间具有较大的相似性,采用当前帧之前或之后的一帧或多帧图像作为参考,采用运动补偿技术来降低预测帧与当前帧之间的差别。时域模型输出的是当前帧与预测帧相减的结果和各个模型参数。

频域模型输入的是残差图像,它利用相邻像素点的相似性,消除残差图像的频域冗余。编码器对残差图像进行频域变换,再量化,得到相应的系数。变换系数经过量化后,保留了少量的残差系数,它们构成了残差图像的压缩性描述,并作为频域模型的最后输出。

熵编码器对时域参数(时域模型)和变换系数(频域模型)进行压缩,消除存在的统计冗余,并输出压缩后的压缩比特流或数据用于视频的传输和存储。压缩后的视频序列包括编码的运动矢量、变换系数以及头信息。

时间: 2024-10-11 13:29:38

视频编解码技术详解(H.264、MPEG-4)的相关文章

【H.264/AVC视频编解码技术详解】十三、熵编码算法(4):H.264使用CAVLC解析宏块的残差数据

<H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行解析和实现,欢迎观看! "纸上得来终觉浅,绝知此事要躬行",只有自己按照标准文档以代码的形式操作一遍,才能对视频压缩编码标准的思想和方法有足够深刻的理解和体会! 链接地址:H.264/AVC视频编解码技术详解 GitHub代码地址:点击这里 1. H.264的CAVLC解析宏块残差数据的流

【H.264/AVC视频编解码技术详解】十一、H.264的Slice Header解析

<H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行解析和实现,欢迎观看! "纸上得来终觉浅,绝知此事要躬行",只有自己按照标准文档以代码的形式操作一遍,才能对视频压缩编码标准的思想和方法有足够深刻的理解和体会! 链接地址:H.264/AVC视频编解码技术详解 GitHub代码地址:点击这里 H.264中的条带(Slice) 1. Slic

【H.264/AVC视频编解码技术详解】十三、熵编码算法(3):CAVLC原理

<H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行解析和实现,欢迎观看! "纸上得来终觉浅,绝知此事要躬行",只有自己按照标准文档以代码的形式操作一遍,才能对视频压缩编码标准的思想和方法有足够深刻的理解和体会! 链接地址:H.264/AVC视频编解码技术详解 GitHub代码地址:点击这里 上下文自适应的变长编码(Context-base

各种音视频编解码学习详解

各种音视频编解码学习详解 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等.最近因为项目的关系,需要理清媒体的codec,比较搞的是,在豆丁网上看运营商的规范 标准,同一运营商同样的业务在不同文档中不同的要求,而且有些要求就我看来应当是历史的延续,也就是现在已经很少采用了.所以豆丁上看不出所以然,从 wiki上查.中文的wiki信息量有限,很短,而wiki的英文内容内多,删减版

【H.264/AVC视频编解码技术具体解释】十三、熵编码算法(4):H.264使用CAVLC解析宏块的残差数据

<H.264/AVC视频编解码技术具体解释>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战project的形式对H.264的标准进行解析和实现,欢迎观看! "纸上得来终觉浅.绝知此事要躬行".仅仅有自己依照标准文档以代码的形式操作一遍,才干对视频压缩编码标准的思想和方法有足够深刻的理解和体会. 链接地址:H.264/AVC视频编解码技术具体解释 GitHub代码地址:点击这里 1. H.264的CAVLC

音视频开发的视频编解码技术

2012年8月,爱立信公司推出了首款H.265[1]编解码器,而在仅仅六个月之后,国际电联(ITU)就正式批准通过了HEVC/H.265标准,标准全称为高效视频编码(High Efficiency Video Coding),相较于之前的H.264标准有了相当大的改善,中国华为公司拥有最多的核心专利,是该标准的主导者.国内拥有领先音视频开发技术的AnyChat解决方案,目前采用的是H.264视频编解码技术,相信不久会紧跟趋势采用H.265视频编解码技术. H.265/HEVC的编码架构大致上和H

音视频编解码技术的陷阱与出路,一个研发人员的思考

原来做过挺长时间的音视频编解码的东西,该做个总结了.这里就说下关于音视频编码这类工作的得失与取舍,其实主要是舍,有没有道理,权当一听.各位读者自行判断吧. 拿视频编码标准H.264来说,这真是个好事,视频编码标准化之后,兼容问题就“有法可依”了,利于影片.视频等的传播.但是,却给研究人员带来一个大问题.那就是在同样的标准下,各家公司如何竞争的问题.算法一旦标准化,就失去了发挥的灵活性,每个人.每个公司都是做这些东西.同时也成为了实力雄厚的大公司必须争夺的一个技术高地.其它公司如果也想争一下,就基

视频编解码的理论和实践2:Ffmpeg视频编解码

近几年,视频编解码技术在理论及应用方面都取得了重大的进展,越来越多的人想要了解编解码技术.因此,网易云信研发工程师为大家进行了归纳梳理,从理论及实践两个方面简单介绍视频编解码技术. 相关阅读推荐 <视频直播关键技术:流畅.拥塞和延时追赶> <视频直播技术详解:直播的推流调度> <音视频通话:小议音频处理与压缩技术> <视频编解码的理论和实践1:基础知识介绍>   1.Ffmpeg介绍 <视频编解码的理论和实践1:基础知识介绍>介绍了视频编码的基础

【技术案例】Firefly-RK3399多路视频编解码

Firefly-RK3399开源板拥有强大的视像处理器(VPU),能够流畅的实现H.264编解码功能,可以同时进行两路视频编码和五路视频解码.在应用方面,多路编解码功能可以更优秀地应用于同时录像和播放多个视频的场景. 一.多路视频编解码演示需要准备: (1)一台Firefly-RK3399开源板 (2)两个MIPI摄像头 (3)一台LCD显示器 二.把两个摄像头连接到Firefly-RK3399开源板上 三.进入应用列表,打开多路视频编解码应用MultiCodecs 四.打开MultiCodec