6. H.264/AVC编码器原理
1. H.264/AVC的应用
- 基本档次:主要用于“视频会话”,如会议电视,可视电话,远程医疗、远程教学等;
- 扩展档次:主要用于网络的视频流,如视频点播;
- 主要档次:主要用于消费电子应用,如数字电视广播,数字视频存储等。
2. H.264/AVC编解码器
2.1.编码器
编码器采用的仍是变换和预测的混合编码法 。H.264 编码器的功能组成如下图所示

2.2.解码器

3. H.264/AVC的结构
3.1.术语
3.2.档次和级
- 基本档次:利用 I 片和 P 片支持帧内和帧间编码,支持利用基于上下文的自适应的变长编码进行的熵编码(CAVLC)。主要用于可视电话、会议电视、无线通信等实时视频通信;
- 主要档次:支持隔行视频,采用 B 片的帧间编码和采用加权预测的帧内编码;支持利用基于上下文的自适应的算术编码(CABAC)。主要用于数字广播电视与数字视频存储;
- 扩展档次:支持码流之间有效的切换(SP 和 SI 片)、改进误码性能(数据分割),但不支持隔行视频和 CABAC。展档次包括了基本档次的所有功能,而不能包括主要档次的。
3.3.编码数据格式
- 高的视频压缩比;
- 良好的网络亲和性,即可适用于各种传输网络。
其中片头规定了片的类型,该片属于哪个图像,有关的参考图像等,片的数据包含一系列的编码 MB(宏块),和/或跳编码(不编码)数据。每个 MB 包含头单元(如下表所)示和残差数据。


3.4.帧内预测
- 允许编码器精确的表示像素值
- 提供表示不规则图像内容的准确值,而不引起重大的数据量增加。
- 严格限制宏块解码比特数,但不损害编码效率。
如上图 所示, 4×4 亮度块的上方和左方像素 A~Q 为已编码和重构像素,用作编解码器中的预测参考像素。 a~p 为待预测像素,利用 A~Q 值和 9 种模式实现。其中模式 2(DC 预测)根据 A~Q 中已编码像素预测,而其余模式只有在所需预测像素全部提供才能使用。图 下图 箭头表明了每种模式预测方向。对模式 3~8,预测像素由 A~Q 加权平均而得。例如,模式 4 中,p=round(B/4+C/2+D/4)。下表给出了这 9 种模式的描述。



3.5.帧间预测

类似的, h 由 A、 C、 G、 M、 R、 T 滤波得出。一旦邻近(垂直或水平方向)整像素点的所有像素都计算出,剩余的半像素点便可以通过对 6 个垂直或水平方向的半像素点滤波而得。例如, j 由cc, dd, h,m,ee,ff 滤波得出。这里说明的是, 6 抽头滤器比较复杂,但可明显改善运动补偿性能。

半像素点计算出来以后, 1/4 像素点就可通过线性内插得出,如图 6.23 所示。 1/4 像素点(如 a, c, i, k, d, f, n, q)由邻近像素内插而得,如

剩余 1/4 像素点(p, r)由一对对角半像素点线性内插得出。如, e 由 b 和 h 获得。相应地,色度像素需要 1/8 精度地 MV,也同样通过整像素地线性内插得出,如图 6.24 所示。


- 传输分割不包括 16×8 和 8×16 时, MVp 为 A、 B、 C 分割 MV 的中值;
- 16×8 分割,上面部分 MVp 由 B 预测,下面部分 MVp 由 A 预测;
- 8×16 分割,左面部分 MVp 由 A 预测,右面部分 MVp 由 C 预测;
- 跳跃宏块(skipped MB),同 1)。
6. H.264/AVC编码器原理的更多相关文章
- 音视频编解码技术(一):MPEG-4/H.264 AVC 编解码标准
一.H264 概述 H.264,通常也被称之为H.264/AVC(或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC) 1. H.264视频编解码的意义 H.264的出现就是为了创 ...
- H.264 SVC 与H.264 AVC
分级视频编码技术实现一次性编码产生具有不同帧率.分辨率的视频压缩码流,然后根据不同网络带宽.不同的显示屏幕和终端解码能力选择需要传输的视频信息量,以此实现视频质量的自适应调整 AVC 实际上是 H.2 ...
- 【H.264/AVC视频编解码技术具体解释】十三、熵编码算法(4):H.264使用CAVLC解析宏块的残差数据
<H.264/AVC视频编解码技术具体解释>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战project的形式对H.2 ...
- 我们解决了如何将视频转换为HEVC / H.265和AVC / H.264
LEADTOOLS Recognition Imaging SDK是精选的LEADTOOLS SDK功能集,旨在在企业级文档自动化解决方案中构建端到端文档成像应用程序,这些解决方案需要OCR,MICR ...
- h.264并行解码算法分析
并行算法类型可以分为两类 Function-level Decomposition,按照功能模块进行并行 Data-level Decomposition,按照数据划分进行并行 Function-le ...
- H.264视频的RTP荷载格式
Status of This Memo This document specifies an Internet standards track protocol for the Internet ...
- (转载)H.264码流的RTP封包说明
H.264的NALU,RTP封包说明(转自牛人) 2010-06-30 16:28 H.264 RTP payload 格式 H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) ...
- H.264码流结构解析
from:http://wenku.baidu.com/link?url=hYQHJcAWUIS-8C7nSBbf-8lGagYGXKb5msVwQKWyXFAcPLU5gR4BKOVLrFOw4bX ...
- FFmpeg的H.264解码器源代码简单分析:解码器主干部分
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
随机推荐
- 10day2
最多因子数 搜索 [问题描述] 数学家们喜欢各种类型的有奇怪特性的数.例如,他们认为 945 是一个有趣的数,因为它是第一个所有约数之和大于本身的奇数. 为了帮助他们寻找有趣的数,你将写一个程序扫描一 ...
- erl_0018 erlang_看门狗001_“内存大量占用检测及解决办法”
绪:erlang出现问题百分之六七十在于内存问题,“进程消息队列爆炸”.“进程堆栈持续增长” 工具:erlang:memory(),erlang:system_info(process_count). ...
- BZOJ3994:约数个数和(莫比乌斯反演:求[1,N]*[1,M]的矩阵的因子个数)
Description 设d(x)为x的约数个数,给定N.M,求 Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数. 接下来的T行,每行两个整数N.M. Outpu ...
- hdfs会出现的一些问题
实训的第一篇博客献给坑了我的hdfs…… 由于电脑的原因,突然花屏,虚拟机来不及挂起.之后发现50070端口进不去,查看jps进程发现没有namenode 先用stop-all.sh命令再start还 ...
- 【DUBBO】Dubbo原理解析-服务引用
服务引用是服务的消费方向注册中心订阅服务提供方提供的服务地址后向服务提供方引用服务的过程. 服务的应用方在spring的配置实例如下: <dubbo:referenceid="demo ...
- php、打印
<!DOCTYPE HTML><html><head><meta http-equiv="content-type" content=&q ...
- Bootstrap树控件(Tree控件组件)使用经验分享
前言:很多时候我们在项目中需要用到树,有些树仅仅是展示层级关系,有些树是为了展示和编辑层级关系,还有些树是为了选中项然后其他地方调用选中项.不管怎么样,树控件都是很多项目里面不可或缺的组件之一.今天, ...
- FastAdmin 前端页面传参笔记
FastAdmin 前端页面传参笔记 看到 QQ 群里的小伙伴询问如何传参,然后在社区里找到一笔记帖子 1 还要参考在线文档控制器部分2. 引用 Karson 的回复: 如果我们需要自己在控制器中透传 ...
- Protobuff java 文件生成命令
protoc.exe -I./proto文件目录 --java_out=java文件目录 proto文件基于文件目录的全路径 protoc.exe -I./protoFolder --java_out ...
- 阿里云中域名的MX记录添加方法
如何添加阿里云的MX记录 1. 登录阿里云,点击“云解析”,点击自己想要添加MX记录的域名: 2. 点击新手引导设置: 3. 点击解析设置,自动跳出“设置网站”和“设置邮箱”: 4. 跳出的页面,选择 ...