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 ...
随机推荐
- Cloudify介绍
一篇关于Cloudify的介绍,可以看一下:http://timeson.iteye.com/blog/1699730
- ZOJ3329One Person Game(循环型 数学期望)
There is a very simple and interesting one-person game. You have 3 dice, namely Die1, Die2 and Die3. ...
- BZOJ4361 isn 【树状数组优化DP】*
BZOJ4361 isn Description 给出一个长度为n的序列A(A1,A2-AN).如果序列A不是非降的,你必须从中删去一个数,这一操作,直到A非降为止.求有多少种不同的操作方案,答案模1 ...
- DVD项目
package sy.com.cn;import java.util.*; public class DvdWorker { public static void main(String[]args) ...
- Linux驱动开发基础知识
常用命令 lsmod: list module,将模块列表显示),功能是打印出当前内核中已经安装的模块列表 insmod: install module,安装模块,功能是向当前内核中去安装一个模块,用 ...
- Nchan 实时消息ha 配置
备注: Nchan 的数据持久化,以及ha 都是通过redis实现的,如果要做到无单点可以使用redis cluster 同对于Nchan server 进行多副本 1. 安装 ...
- Apache Accumulo
Apache Accumulo 是一个可靠的.可伸缩的.高性能的排序分布式的 Key-Value 存储解决方案, 基于单元访问控制以及可定制的服务器端处理.Accumulo使用 Google BigT ...
- torcs代码
/** Info returned by driver during the race */ typedef struct { tdble steer; /**< Steer command [ ...
- Request.UrlReferrer详解
使用前需要进行判断: if (Request != null && Request.UrlReferrer != null && Request.UrlReferrer ...
- 【Leetcode 136】Single Number
问题描述:给出一个整数数组,除了一个元素外,其他每个元素都出现了2次,找出只出现1次的元素. int singleNumber(vector<int>& nums); 分析:比较自 ...