
H264
文章平均质量分 91
言午许成长
全网同名;
职场老司机,丰富的被PUA经历;
自媒体新人,日更写作200天
展开
-
H264/AVC-编码方式:帧、场以及宏块帧场自适应(MBAFF)
本文主要介绍H264编码方式:帧、场、帧场自适应原创 2021-08-05 17:59:05 · 2699 阅读 · 0 评论 -
H264编码-码率控制原理以及JM代码分析
码率控制的主要目的是控制每一帧图像编码输出的比特数,并在总比特数一定的约束条件下使图像失真最小。当然,由于视频图像质量及其编码复杂性,码率控制的目标并不是单一的。常见的控制目标包括:提高输出码率控制精度使其最大程度的接近目标码率;提高编码后输出比特流的峰值信噪比;减少码率波动;提高编码速度等。码率控制是一个多约束条件、多目标的优化问题。码率控制涉及视频质量和信道带宽的折衷。减少码率会牺牲质量,质量提高就会增加码率。常用的码率调节手段包括:调节编码帧率。当码率高于信道时,通过丢帧来降低码率;当码率低于信原创 2021-07-12 21:02:12 · 3483 阅读 · 0 评论 -
H264编码- 码率控制 RQ 模型参数推导过程以及JM代码分析
本文主要介绍H264码率控制过程中,RQ模型参数更新原理以及推导过程,并结合JM19.0代码分析其功能实现原创 2021-07-12 20:58:52 · 2094 阅读 · 0 评论 -
H264/AVC-基于上下文自适应可变长编码CAVLC原理以及代码实现
1. 基本原理CAVLC属于熵编码。熵编码是一种无损压缩编码方法,它生成的码流可以经解码无失真地恢复出原数据。熵编码是建立在随机过程的统计特性基础上的,因此它主要为了降低数据的统计冗余。在 H.264 的 CAVLC(基于上下文自适应的可变长编码)相比于huffman编码,它可以通过根据已编码句法元素的情况自适应调整当前编码中使用的码表,从而取得了极高的压缩比。下面举例说明CAVLC的基于上下文特性。下图是色度分量DC系数解析要用到的码表,其中tzVlcIndex指的是非零DC系数个数(色度DC系数原创 2021-07-01 14:48:26 · 2654 阅读 · 2 评论 -
一文搞懂H264量化原理以及计算过程
1.概述量化是使数据比特率下降的有效工具。量化过程的输入值动态范围很大,需要较多的比特才能表示一个数值,量化后的输出则只需要较小比特表示。量化是不可逆过程,处理过程中有信息丢失,存在量化误差。H.264采用标量量化技术,它将每个图像样点编码映射成较小的数值。一般标量量化器的原理为:FQ=round(y/QP)FQ=round(y/QP)FQ=round(y/QP)其中,y 为输入样本点编码,QP 为量化步长,FQ 为 y 的量化值,round()为取整函数(其输出为与输入实数最近的整数)在量化和原创 2021-06-30 14:36:58 · 7020 阅读 · 2 评论 -
H264/AVC-帧内预测相邻像素推导过程
帧内预测过程会以相邻块的像素值做参考,来预测当前块的像素值。以Intra_4x4为例,如下图所示,需要用到的13个相邻像素值,那么如何获取这13个像素值?本文要主要说明如何获取帧内预测所用到的相邻像素。对应参考文档6.4.5-6.4.9小节内容。获取相邻像素的流程如下:找到当前块(可以为4x4、8x8、16x16大小)的左、上、右上、左上相邻块找到左、上、右上、左上相邻块所在宏块根据当前宏块以及相邻块所在宏块确定相邻像素在此之前需要先知道宏块地址是否可用,如果宏块地址不可用,则在该宏块的相原创 2021-05-29 16:29:38 · 1583 阅读 · 1 评论 -
H264/AVC-slice data解析
slice header解析slice data主要存放了该slice所有宏块信息以及残差数据。slice data语法结构slice data解析流程如下:获取当前宏块位置CurMbAddr;如果当前slice不是I slice,则存在skip 宏块。因此需要根据熵编码类型解析skip宏块标记。1)对于cavlc,mb_skip_run表示当前宏块与上一宏块位置的差值,如果差值大于1,则梁洪快间存在skip宏块;2)对于cabac,每一个宏块都存在一个mb_skip_flag表示该宏块是原创 2021-05-28 09:39:40 · 1904 阅读 · 0 评论 -
AVC/H264-帧间预测
帧间预测是H264标准中的一种基于时间冗余的压缩方法。因为视频流相邻帧存在时间相关性,相邻帧的视频内容差异不大,因此可以通过前后相邻帧的数据预测当前宏块内容,从而达到压缩数据目的。帧间预测处理的基本单元是宏块内的最小子分块,比如一个宏块如果分为16个P_4x4块,则需要对每个4x4块分别做帧间预测。帧间预测的输入为:宏块分块索引mbPartIdx、子宏块分块索引subMbPartIdx,这两个变量主要用于确定当前处理分块在图像的位置;当前分块的大小,包括亮度分量和色度分量(partWidth、par原创 2021-06-04 13:53:57 · 2339 阅读 · 0 评论