随笔分类 -  H.264

摘要:摘自:新一代视频压缩编码标准H.264 阅读全文
posted @ 2018-12-26 00:04 晴空夜月 阅读(1294) 评论(0) 推荐(0) 编辑
摘要:转自:https://blog.csdn.net/yuanray/article/details/54090014 CBR(Constant Bit Rate)是以恒定比特率方式进行编码,有Motion发生时,由于码率恒定,只能通过增大QP来减少码字大小,图像质量变差,当场景静止时,图像质量又变好, 阅读全文
posted @ 2018-12-25 23:24 晴空夜月 阅读(481) 评论(0) 推荐(0) 编辑
摘要:一、编解码框架分析 H.264 编解码架构分析 H.264 基于块的混合视频编码框架 二、变换与量化 三、帧内预测与帧间预测 H.264 帧内预测编码和帧间预测编码 四、CABAC和CAVLC H.264 CAVLC 基础篇 H.264 CAVLC 实战篇 H.264 CABAC 基础 二进制算术编 阅读全文
posted @ 2018-12-22 23:48 晴空夜月 编辑
摘要:转自:https://zhuanlan.zhihu.com/p/27896239 1 SPS和PPS从何处而来? 2 SPS和PPS中的每个参数起什么作用? 3 如何解析SDP中包含的H.264的SPS和PPS串? 1 客户端抓包 在做客户端视频解码时,一般都会使用Wireshark抓包工具对接收的 阅读全文
posted @ 2018-12-17 23:15 晴空夜月 阅读(735) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/DwyaneTalk/p/4035206.html 一、哥伦布码 哥伦布码就是将编码对象分能成等间隔的若干区间(Group),每个Group有一个索引值:Group Id。 》对于Group Id采用二元码编码; 》对于Group内的编码对象采用定 阅读全文
posted @ 2018-12-14 23:03 晴空夜月 阅读(1385) 评论(0) 推荐(0) 编辑
摘要:转自:https://www.cnblogs.com/TaigaCon/p/5440055.html 并行算法类型可以分为两类 Function-level Decomposition,按照功能模块进行并行 Data-level Decomposition,按照数据划分进行并行 Function-l 阅读全文
posted @ 2018-12-13 22:16 晴空夜月 阅读(596) 评论(0) 推荐(0) 编辑
摘要:转自:https://blog.csdn.net/dxpqxb/article/details/80312439 我们在观看视频的时候,在运动剧烈的场景常能观察到图像出现小方块,小方块在边界处呈现不连续的效果(如下图),这种现象被称为块效应(blocking artifact)。 首先我们需要搞清楚 阅读全文
posted @ 2018-12-12 23:21 晴空夜月 阅读(1303) 评论(0) 推荐(0) 编辑
摘要:转自:https://www.cnblogs.com/TaigaCon/p/5304563.html 算术编码是基于区间划分的,普通的概率划分需要使用到多位乘法。CABAC的算术编码为了降低计算复杂度,并便于硬件实现,采取了如下一些方法: 离散化的状态pStateIdx代表了符号的概率p 9个bit 阅读全文
posted @ 2018-12-12 22:16 晴空夜月 阅读(3075) 评论(0) 推荐(0) 编辑
摘要:在前面初始化的时候就出现了上下文这个概念,那么上下文所指的是什么? 以JM中的上下文结构体为例 1 2 3 4 5 6 7 //! struct for context management struct bi_context_type { unsigned long count; byte sta 阅读全文
posted @ 2018-12-12 21:54 晴空夜月 阅读(802) 评论(0) 推荐(0) 编辑
摘要:转自:https://www.cnblogs.com/TaigaCon/p/5304563.html CABAC编码的是slice data中的语法元素,在进行算术编码前,需要把这些语法元素按照一定的方法转换成适合进行二进制算术编码的二进制串,这个转换的过程被称为二值化(binarization)。 阅读全文
posted @ 2018-12-12 00:49 晴空夜月 阅读(1077) 评论(0) 推荐(0) 编辑
摘要:初始化执行于slice开始之前,另外如果在编码过程中某个宏块是PCM宏块(编码器直接传输图像的像素值,而不经过预测和变换),那么在PCM宏块之后,编码下一个宏块之前也需要进行初始化。 初始化主要工作就是确定所有上下文的初始MPS以及初始状态pStateIdx。求解方法如下 1 2 3 4 5 6 7 阅读全文
posted @ 2018-12-12 00:41 晴空夜月 阅读(1066) 评论(0) 推荐(0) 编辑
摘要:转自:https://www.cnblogs.com/TaigaCon/p/5304563.html 二进制算术编码的编码方法跟算术编码是一样的,但是输入只有两个符号:“0”,“1”,也就是说输入的是二进制串。 除了是对二进制串进行编码这个特征外,二进制算术编码跟普通的算术编码还有一些区别,总体上可 阅读全文
posted @ 2018-12-11 23:56 晴空夜月 阅读(2986) 评论(0) 推荐(0) 编辑
摘要:转自:https://blog.csdn.net/jubincn/article/details/6948334 CAVLC(Context Adaptive VariableLength Coding)是在H.264/MPEG-4AVC中使用的熵编码方式。在H.264中,CAVLC以zig-zag 阅读全文
posted @ 2018-12-11 21:25 晴空夜月 阅读(512) 评论(0) 推荐(0) 编辑
摘要:转自:https://blog.csdn.net/jubincn/article/details/6948334 再次声明:文中用的标准是BS的正式标准,如果大家发现序号不对,参考着改过来就是了! 编码过程:假设有一个4*4数据块{ 0, 3, -1, 0, 0, -1, 1, 0, 1, 0, 0 阅读全文
posted @ 2018-12-11 21:23 晴空夜月 阅读(281) 评论(0) 推荐(0) 编辑
摘要:1、H.264的基本流结构 H.264 的基本流(elementary stream,ES)的结构分为两层,包括视频编码层(VCL)和网络适配层(NAL)。视频编码层负责高效的视频内容表示,而网络适配层负责以网络所要求的恰当的方式对数据进行打包和传送。引入NAL并使之与VCL分离带来的好处包括两方面 阅读全文
posted @ 2018-12-08 22:20 晴空夜月 阅读(833) 评论(0) 推荐(0) 编辑
摘要:1、I、P、B帧 1.1 I帧 I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面) 1.2 P帧 P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据 阅读全文
posted @ 2018-12-07 22:51 晴空夜月 阅读(2873) 评论(0) 推荐(0) 编辑
摘要:1、帧内预测编码 2、帧间预测编码 2.1 运动估计(寻找最佳匹配块并找运动矢量) 运动估计是寻找当前编码的块在已编码的图像(参考帧)中的最佳对应块,并且计算出对应块的偏移(运动矢量)。 P为当前帧,Pr为参考帧,B为当前码块,Br是Pr中与B块相减残差最小的块,Br称为B的最佳匹配块。 B*与B在 阅读全文
posted @ 2018-12-07 20:46 晴空夜月 阅读(5941) 评论(0) 推荐(0) 编辑
摘要:一、编码架构分析 编码器有两条数据通道:前向通道和重建通道。在前向通道中,编码器的输入是帧Fn,每帧是以16X16像素大小的宏块单元组成的,每个宏块进行帧内或帧间预测编码。帧间预测的参考帧为前一帧Fn‘,实际上,参考帧的数量可以多达五帧。当前块减去其预测块P得到残差Dn,Dn经过块变换和量化得到量化 阅读全文
posted @ 2018-12-07 20:21 晴空夜月 阅读(856) 评论(0) 推荐(0) 编辑