【视音频技术之H.265/HEVC】
文章平均质量分 76
本专栏主要讲解H.265/HEVC编解码技术,涵盖了HEVC标准相关的帧内帧间预测,变换,量化等技术,并重点分析了开源编码器x265的实现。另外重点分析了HEVC-SCC扩展标准的相关技术,比如帧内块拷贝IBC技术。
优惠券已抵扣
余额抵扣
还需支付
¥59.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
飞翔的鲲
一名音视频领域coder,喜欢深入钻研各种新技术(编解码、图像处理、算法优化等),擅长Matlab,Python,C编程。
CSDN明星博主,认证博客专家,视频、Matlab领域优质创作者。目前专注于音视频编解码和AI技术领域,开源分享,不忘初心,追求卓越!
欢迎订阅我的付费专栏,每篇都是博主的多年工作经验总结和呕心之作,任何问题都可以私信博主,必给您答疑解惑!希望我的博文可以帮助到你~
展开
-
【Codecs系列】H.265/HEVC视频编码技术汇总——导航页
Date: 2022.1.1文章目录1、HEVC标准系列2、x265编码器系列3、HEVC-SCC扩展系列1、HEVC标准系列【Codecs系列】HEVC标准(一):资源路径【Codecs系列】HEVC标准(二):简介和编码框架分析【Codecs系列】HEVC标准(三):大尺寸四叉树分割技术【Codecs系列】HEVC标准(四):帧内预测技术及x265实现分析【Codecs系列】HEVC标准(五):帧间预测技术及x265实现分析【Codecs系列】HEVC标准(六):码率控制模型(R-λ原创 2021-12-30 16:40:12 · 1189 阅读 · 1 评论 -
【Codecs系列】HEVC-SCC编码技术汇总
DATE: 2020.7.11【Codecs系列】HEVC-SCC(一):核心技术介绍【Codecs系列】HEVC-SCC(二):IBC编码技术【Codecs系列】HEVC-SCC(三):基于hash search的IBC快速算法【Codecs系列】HEVC-SCC(四):SCC IBC句法【Codecs系列】HEVC-SCC(五):HM+SCM中IBC编码流程和实现分析【Codecs系列】HEVC-SCC(六):IBC优化相关专利分析原创 2020-07-11 22:30:11 · 2044 阅读 · 0 评论 -
【Codecs系列】HEVC标准(一):资源路径
DATE: 2020.6.30本文目录1、HEVC参考软件HM下载2、JVC-VC会议文档1、HEVC参考软件HM下载HEVC reference software2、JVC-VC会议文档JCT-VC DocumnetTHE END!原创 2020-06-30 14:53:07 · 1589 阅读 · 0 评论 -
【Codecs系列】HEVC标准(二):简介和编码框架分析
DATE: 2021.12.23文章目录1、HEVC简介2、编码框架2.1、帧内预测2.2、帧间预测2.3、变换量化2.4、去块滤波2.5、样点自适应偏移2.6、熵编码3、HEVC压缩效率高于H.264的原因4、参考1、HEVC简介H.265/HEVC(High Efficiency Video Coding),即高效视频编码,是2013年由VCEG和MPEG组成的视频编码联合组JCT-VC制定的,其目标是在H.264/AVC High Profile基础上,将压缩效率提高一倍。即在保证相同视频图像原创 2021-12-23 20:02:25 · 1616 阅读 · 0 评论 -
【Codecs系列】HEVC标准(三):大尺寸四叉树分割技术
DATE: 2021.12.24文章目录1、编码块划分2、编码单元CU3、预测单元PU4、变换单元TU1、编码块划分 不同于H.264中的编码宏块,H.265采用一种更加灵活的块划分结构——四叉树划分,并且定义了一种全新的分割模式,包括编码单元CU,预测单元PU和变换单元TU。对于大分辨率视频编码,大尺寸的四叉树分割技术的编码增益很明显。2、编码单元CU CU(Coding Unit)是编码的基本单元。CU尺寸包括8x8~64x64,最大CU称作LCU。H.265中采用CTU来表示编原创 2021-12-24 11:06:31 · 1654 阅读 · 0 评论 -
【Codecs系列】HEVC标准(四):帧内预测技术及x265实现分析
DATE:2021.12.25 圣诞文章目录1、帧内预测技术1.1、帧内预测模式1.2、帧内预测过程2、x265实现分析1、帧内预测技术对于亮度信号,H.265采用35种帧内预测模式,包括33种角度预测以及DC预测模式和Planar预测。1.1、帧内预测模式1.2、帧内预测过程H.265帧内预测的模式选取过程如下:首先,对每一个PU进行粗选择RMD,即根据SATD率失真代价模型从35种帧内预测模式中粗选出N种候选预测模式,N的取值由PU尺寸决定,PU尺寸64×64~4×4从大到小对应的候原创 2021-12-25 23:25:28 · 1541 阅读 · 0 评论 -
【Codecs系列】HEVC标准(五):帧间预测技术及x265实现分析
DATE: 2021.12.27文章目录1、帧间关键技术1.1、Merge/Skip1.2、AMVP1.2.1 Inter模式下的AMVP技术1.2.2 Merge模式下的AMVP技术1.3、GPB1.4、AMP2、x265实现分析2.1、帧间函数调用2.2、帧间模式选择过程2.3、实现分析帧间预测是利用视频时间域的相关性,使用邻近已编码图像像素预测当前图像的像素,以达到有效去除视频时域冗余的目的。目前主要的视频编码标准帧间预测部分都采用了基于块的运动补偿技术,其基本原理是为当前图像的每个像素块在原创 2021-12-28 18:04:19 · 2013 阅读 · 0 评论 -
【Codecs系列】HEVC标准(六):码率控制模型(R-λ Model)
Date: 2021.12.31文章目录1、码率控制介绍2、R-λ码率控制模型3、HEVC中的码率控制过程3.1、比特分配3.1.1、GOP级比特分配3.1.2、帧级比特分配3.1.3、LCU级比特分配3.2、确定量化参数3.2.1、QP的确定3.2.2、参数更新1、码率控制介绍码率控制的主要工作是建立编码速率与量化参数的关系模型,根据目标码率确定视频编码参数中的量化参数。实际的码率控制方案通常被分解为两个步骤:1、 考虑视频在空域、时域的相关性,根据总的目标比特数确定每个编码单元的最优目标比特原创 2021-12-30 16:10:25 · 1587 阅读 · 2 评论 -
【Codecs系列】HEVC标准(七):变换量化技术及x265实现分析
Date: 2022.1.5文章目录1、变换编码1.1、整数DCT1.1.1、基本原理1.1.2、公式推导过程1.2、整数DST1.3、DCT反变换1.4、变换四叉树1.5、哈达玛变换2、量化技术2.1、传统标量量化2.2、反量化2.3、RDOQ2.4、量化参数和量化矩阵1、变换编码图像变换编码是指将以空间域中像素形式描述的图像转换至空间域,以变换系数的形式加以表示。绝大多数图像都含有较多平坦区域和内容变换缓慢的区域,适当的变换可使图像能量在空间域的分散分布转为在变换域的相对集中分布,以达到去除空间原创 2022-01-05 16:11:27 · 1143 阅读 · 0 评论 -
【Codecs系列】HEVC标准(八):环路滤波技术之Deblocking
Date: 2022.1.10文章目录1、去块滤波介绍2、滤波决策2.1、获取边界强度2.2、滤波开关决策3、滤波操作3.1、亮度分量的强滤波3.2、亮度分量的弱滤波3.3、色度分量的滤波1、去块滤波介绍方块效应是指图像中编码块边界的不连续性。造成方块效应的主要原因包括:(1) 各个块的变换量化编码过程相互独立,各块引入的量化误差大小及其分布特性相互独立,导致相邻块边界不连续(2) 运动补偿预测过程中,相邻块的预测值可能来自于不同图像的不同位置,导致预测残差信号在块边界产生数值不连续(3) 时原创 2022-01-10 20:34:49 · 1934 阅读 · 0 评论 -
【Codecs系列】HEVC标准(九):环路滤波技术之SAO
Date:2022.1.12文章目录1、SAO介绍2、边界补偿EO3、边带补偿BO4、SAO参数融合1、SAO介绍SAO(Sample Adaptive Offset)像素自适应偏移,在编解码环路内,位于Deblocking之后。H.265标准中的SAO以CTB为基本单位,通过选择一个合适的分类器将重建像素划分类别,然后对不同类别像素使用不同的补偿值,可以有效提高视频的主客观质量。采用SAO后,平均可以减少2%~6%的码流,而编码器和解码器的性能消耗仅仅增加了2%。它包括两种补偿形式,分别是边原创 2022-01-11 14:27:13 · 1759 阅读 · 0 评论 -
【Codecs系列】HEVC标准(十):并行处理机制 Tile & WPP
Date: 2022.1.15文章目录1、参考2、条带Tile3、波前并行处理WPP1、参考【Codecs系列】编解码基础知识—并行特性:Slice, Tile和WPP2、条带TileTile是H.265中新增加的数据单元,它将原图像划分为一个个独立的矩形,各个矩形区域独立进行解码,不会进行相互参考。Tile改变了原本图像中CTB的扫描顺序,Tile中的CTB是根据光栅扫描顺序进行扫描的,而这些Tile也是根据光栅扫描顺序扫描的。类似于Slice,不同的Tile之间是相互独立的,但与Slic原创 2022-01-12 14:59:29 · 1062 阅读 · 0 评论 -
【Codecs系列】HEVC标准(十一):熵编码分析
Date: 2022.1.15文章目录1、参考2、信息熵原理3、变长编码3.1、霍夫曼编码3.2、指数哥伦布编码4、算术编码5、CABAC5.1、二进制化5.2、上下文模型5.3、二进制算术编码1、参考熵编码之CAVLC熵编码之CABAC熵编码之指数哥伦布编码【Codecs系列】视频编码中常用熵编码介绍【Codecs系列】CABAC熵编码详解2、信息熵原理信息熵是指信号源的信息量。信源的信息熵定义为:3、变长编码对信源输出的消息采用不同长度的码字表示,这种编码方式称为变长编码。为了原创 2022-01-14 10:39:35 · 569 阅读 · 0 评论 -
【Codecs系列】HEVC标准(十二):参考帧管理RPS技术
Date:2022.2.18文章目录参考1、参考帧管理技术2、参考帧管理的基础知识3、HEVC参考帧集技术(RPS)4、x265代码实现参考H.265的参考帧管理1、参考帧管理技术HEVC采用了参考帧集(RPS)的技术来管理已解码的帧,用作后续图像的参考。与之前的视频编码标准中参考帧管理策略不同的是,HEVC中的RPS技术,通过直接在每一帧开始的片头sliceheader码流中传输DPB中各个帧的状态变化,而H.264/AVC中的滑动窗和MMCO(Memory Management Contr原创 2022-02-17 20:34:41 · 2788 阅读 · 0 评论 -
【Codecs系列】x265编码器(一):编译和运行
DATE:2018.3.10文章目录1、x265编码器简介1.1、x265介绍1.2、x265 Licenses1.3、x265 Features2、编译和运行3、x265性能初测1、x265编码器简介1.1、x265介绍项目主页:https://www.x265.org/下载地址:https://github.com/videolan/x265.gitX265是H.265/HEVC开源的视频编码库,用于编码视频或图像为H.265/HEVC码流。X265已经获得在x265中集成和适配x264原创 2021-12-21 11:18:11 · 967 阅读 · 0 评论 -
【Codecs系列】x265编码器(二):命令行使用方法
DATE:2021.12.29./x265 ../../../../seqs/BasketballDrive_1920x1080_50.yuv --input-res 1920x1080 --fps 30 -o str.265详细的命令行参数解析如下:Syntax: x265 [options] infile [-o] outfile infile can be YUV or Y4M outfile is raw HEVC bitstreamExecutable Option原创 2021-12-29 14:52:38 · 548 阅读 · 0 评论 -
【Codecs系列】x265编码器(三):preset支持工具集和优化分析
DATE: 2021.12.29文章目录1、preset支持工具集1.1、placebo1.2、veryslow1.3、slower1.4、slow1.5、medium1.6、fast1.7、faster1.8、veryfast1.9、superfast1.10、ultrafast2、工具集优化1、preset支持工具集1.1、placebo param->bEnableEarlySkip = 0; param->bEnableWeightedBiPred原创 2021-12-29 15:38:18 · 8169 阅读 · 3 评论 -
【Codecs系列】x265编码器(四):码率控制代码分析
Date: 2022.1.8文章目录1、重要概念2、码控调用流程3、码控原理解析4、核心代码注释1、重要概念CRFABRrc-lookaheadvbvcu-tree2-passAqmode2、码控调用流程3、码控原理解析帧级码控:(1)getQScale:根据当前帧的复杂度计算初始QScale(2)tuneAbrQScaleFromFeedback:根据码率控制buffer状态和反馈情况调整QScale简要分析:rc.qCompress默认是0.6,也就是说量化步原创 2022-01-07 17:10:57 · 1203 阅读 · 0 评论 -
【Codecs系列】x265编码器(五):CABAC代码分析
Date: 2022.1.16文章目录1、参考2、关键函数3、常规编码分析4、旁路编码分析1、参考【Codecs系列】CABAC熵编码详解2、关键函数m_contextState[160]:上下文模型encodeCU:熵编码一个CU块finishCU:编码结束一个CU,并处理slice结束的情况encodeBin:常规编码模式encodeTransform:编码变换系数codeCoeffNxN:编码残差数据codeVPS:编码VPScodeSPS:编码SPScodePPS:编码P原创 2022-01-14 17:55:35 · 900 阅读 · 0 评论 -
【Codecs系列】X265编码器(六):lookahead模块分析
Date: 2022.5.1文章目录1、模块功能2、模块调用流程3、代码分析1、模块功能Lookahead模块主要实现编码预处理,包括图像扩边,下采样得到小分辨率图像,编码类型决策,核心实现在slicetype.cpp中,相关结构体在Lookahead中。2、模块调用流程3、代码分析void LookaheadTLD::lowresIntraEstimate(Lowres& fenc, uint32_t qgSize){ ALIGN_VAR_32(pixel, predic原创 2022-04-25 18:06:24 · 1322 阅读 · 0 评论 -
【Codecs系列】X265编码器(七):多线程和wpp模块分析
Date:2022.6.5【Codecs系列】HEVC标准(十):并行处理机制 Tile & WPP通过allocThreadPools分配线程池,frameEncoder从线程池中获取一个可用线程来编码当前帧。2.2、帧级线程初始化和启动多线程3、x265 wpp模块分析bEnableWavefront:开启波前并行处理,压缩效率损失不到1%,但可以极大增加并行性。enableRowEncoder:清除当前行的外部依赖enqueueRowEncoder:清除当前行的内部依赖,开始波前并行处理原创 2022-06-11 18:24:11 · 776 阅读 · 0 评论 -
【Codecs系列】x265编码器(八):帧内帧间快速算法
x265是H.265/HEVC标准在工业界的实用编码器,相比于标准编码器HM在速度上提升了1300倍,提升的原因主要是x265编码器中对整体框架和多个模块进行了算法优化,下面主要介绍帧内和帧间模块的快速算法。.........原创 2022-07-31 22:24:46 · 747 阅读 · 0 评论 -
【Codecs系列】x265编码器(九):模式选择之RDO过程分析
Date: 2022.9.7参考:x265帧内预测模式RDO过程经典不过时之模式选择快速RDO(x265篇)原创 2022-09-07 11:25:02 · 497 阅读 · 0 评论 -
【Codecs系列】x265编码器(十):帧内模式选择代码分析
(1)比较35种预测模式的SATD cost,选出N种RDO候选模式,其中N值与rdlevel和PU尺寸有关。(2)针对N种RDO候选模式采用简单的RDO(无TU划分)。(3)针对最优mode采用RDO(允许TU划分)。原创 2022-09-09 16:50:33 · 390 阅读 · 0 评论 -
【Codecs系列】x265编码器(十一):快速运动估计搜索方法
在基于块运动补偿的视频编码框架中,运动搜索是最为重要的环节之一,同时也是编码端最为耗时的模块。(2)、以pmv为起始搜索点,进行一次搜索步长为1的菱形搜索;若pmv不为(0, 0),则以(0, 0)为起始搜索点进行一次搜索步长为1的菱形搜索。(2)、按照菱形搜索方式找到RDcost最小的搜索点,迭代次数为merange。(2)按照六边形搜索的方式搜索最优MV,迭代次数为merange/2,搜索步长为2。(1)、起始搜索点采用AMVP确定的最优MV,搜索半径为1;(1)起始搜索点采用AMVP确定的最优MV;原创 2022-09-29 16:25:06 · 1158 阅读 · 0 评论 -
【Codecs系列】x265编码器(十二):子像素运动搜索
在基于块运动补偿的视频编码框架中,运动搜索是最为重要的环节之一,同时也是编码端最为耗时的模块。运动搜索包括整像素运动搜索和子像素运动搜索,其中整像素运动搜索已经有很多快速算法,比如经典的三步搜索法、菱形搜索、六边形搜索以及TZSearch等等;但子像素搜索的快速算法却比较少,本文主要讲解x265编码器中的子像素搜索方法以及相关的快速搜索方法。原创 2022-10-18 20:29:51 · 347 阅读 · 0 评论 -
【Codecs系列】x265编码器(十三):自带的帧间提前终止算法
x265编码器之所以编码速度相比HM提升很多倍,在于其本身做了大量优化,里面也集成了大量优秀的算法。本文重点分析帧间预测中的提前终止算法。在x265中是通过参数m_param->recursionSkipMode来控制是否开启提前终止算法,默认是开启的。注释为Enable early CU size decisions to avoid recursing to higher depths。原创 2022-11-04 16:31:17 · 436 阅读 · 0 评论 -
【Codecs系列】HEVC-SCC(一):核心技术介绍
DATE: 2020.6.4【Tags: HEVC SCC】1、参考网址2、SCC简介3、HEVC-SCC核心技术原创 2020-06-04 17:16:44 · 4106 阅读 · 5 评论 -
【Codecs系列】HEVC-SCC(二):IBC编码技术
DATE: 2020.6.5【Tags: HEVC, SCC, IBC】1、HM+SCM中IBC的编码流程2、IBC编码技术2.1、 Intra block vector search2.2、 IBC的两种搜索方式(SCM实现)2.3、 基于Hash搜索的快速模式选取2.4、IBC模式选取流程原创 2020-06-05 10:21:01 · 1694 阅读 · 0 评论 -
【Codecs系列】HEVC-SCC(三):基于hash search的IBC快速算法
DATE: 2020.7.2本文目录1、Hash原理2、Hash特征值的计算模型3、Hashtable的构建和更新过程4、基于hash搜索的IBC模式选取过程1、Hash原理hash:散列技术,以空间换取时间Only the reference blocks with the same hash key value as the current block will be considered for block matching.基于hash块匹配的基本思想是:在已编码重建区域中寻找与当前帧内原创 2020-07-02 21:03:50 · 4774 阅读 · 0 评论 -
【Codecs系列】HEVC-SCC(四):SCC IBC句法
Date: 2022.3.16文章目录1、motion_vector_resolution2、Tile3、temporal mvp4、profile1、motion_vector_resolutionmotion_vector_resolution_control_idc:use_integer_mv_flag是否存在,控制帧间预测中MV的精度use_integer_mv_flag: 0:default use 1/4-pel mv 1: use integer-pel mv 2: adap原创 2022-03-16 13:42:35 · 456 阅读 · 0 评论 -
【Codecs系列】HEVC-SCC(五):HM+SCM中IBC编码流程和实现分析
Date:2022.3.31文章目录1、参考2、函数调用流程3、关键函数分析4、SCC编码流程4.1、PU模式选取过程4.2、基于hash搜索的IBC模式选取HEVC-SCC扩展系列文章汇总:【Codecs系列】HEVC-SCC(一):核心技术介绍【Codecs系列】HEVC-SCC(二):IBC编码技术【Codecs系列】HEVC-SCC(三):基于hash search的IBC快速算法【Codecs系列】HEVC-SCC(四):SCC IBC句法1、参考HM+SCM中IBC的编码流程原创 2022-03-31 14:04:08 · 742 阅读 · 4 评论 -
【Codecs系列】HEVC-SCC(六):IBC优化相关专利分析
Date: 2022.5.20文章目录一、专利分析二、核心优化思路一、专利分析1、Hash表更新优化:对应专利《屏幕内容处理方法、装置及设备》(字节跳动)算法思想:将一帧屏幕内容划分为几个区域,与之前帧相比对于 屏幕内容变化明显的区域,重新建立哈希表,对于屏幕内容相似的区域则复用之前帧的哈希表,减少了冗余哈希计算,提高屏幕内容编码的处理速度,提升了屏幕内容的编码效率。2、IBC模式选择:对应专利《屏幕视频编码模式确定方法、编码方法、装置和计算设备》(腾讯)IBC编码模式集合:基于merge/原创 2022-05-26 14:06:06 · 465 阅读 · 0 评论 -
【Codecs系列】HEVC-SCC(七):调色板PM模式分析
在屏幕内容中,有些平坦区域的CU块的像素的色彩值常常集中分布少数几个离散的彩色,直接标注它们像素值的调色板模式比使用预测加变换的处理更加有效。当采用调色板编码模式时,编码器分析CU中的像素值分布情况(PM是处理重复像素的冗余),选出若干代表色形成一个调色板表( palette table),确定了代表色和它的索引值之间的匹配,这个表格要在比特流中予以标注。Palette mode的基本思想就是利用CU内部的样本只是有少数几种典型的颜色组成的特性进行编码。原创 2022-09-29 14:59:55 · 616 阅读 · 0 评论 -
【Codecs系列】HEVC中三种Intra帧类型的区别:BLA/IDR/CRA
Date:2022.1.26LA、CRA、IDR 解释IDR、CRA、BLA、RASL、RADL、closed-gop、open-gop先进行名词解释:1、IDR:Instantaneous Decoding Refresh,即使解码刷新帧2、BLA:Broken Link Access3、CRA:Clean Random Access4、LP: Leading Pictures,包括RADL和RASL。5、RADL:Random Access Decodable Leading RASL原创 2022-07-13 11:41:47 · 881 阅读 · 0 评论 -
【Codecs系列】H.265中的长期参考帧LTR实现逻辑分析
(2)同时采用LTR和STR的参考结构,可以提高编码的率失真性能,尤其对于直播等静态场景,可以大幅度节省码率。(1)在SVC结构中,基本层(L0)采用长期参考帧可以实现码流丢包后快速恢复,实现抗鲁棒性。特别说明一下,在实现长期参考帧逻辑时,x265与HM存在一些差异。LTR实现除了帧级的句法之外,还需要实现dpb管理的逻辑。块级中主要涉及ref_idx_l0。...原创 2022-08-27 18:49:21 · 976 阅读 · 0 评论 -
【Codecs系列】H.264/H.265中编码帧裁剪功能frame_crop
DATE: 2021.2.10文章目录1、参考2、frame_crop3、举例1、参考从H264/H265码流中获取宽、高及帧率2、frame_crop3、举例原创 2021-02-10 15:40:20 · 817 阅读 · 0 评论 -
【Codecs系列】HEVC官方软件HM源代码简单分析-解码器TAppDecoder
本文记录HEVC官方参考软件HM的源代码结构。HM相比于JM来说,采用了面向对象的编程方法,因而结构相对更加清晰。HM包含了视频解码器TAppDecoder和视频编码器TAppEncoder。本文记录视频解码器TAppDecoder的结构。函数调用关系图HM中的HEVC视频解码器TAppDecoder的函数调用关系图如下所示。单击查看更清晰的大图转载 2017-07-15 22:47:13 · 1780 阅读 · 0 评论