HEVC
文章平均质量分 91
面海烹鲜
000001XX
展开
-
ffmpeg重要结构体之HEVCContext和HEVCFrame
HEVCContext和HEVCFrame是ffmpeg的HEVC解码中非常重要的结构体。首先来看下HEVCContext,定义位于libavcodec\Hevc.h中。代码如下:typedef struct HEVCContext { const AVClass *c; // needed by private avoptions AVCodecContext *a原创 2015-11-25 10:50:15 · 1706 阅读 · 0 评论 -
HEVC的帧间预测解码(1)
1.概述 HEVC的帧间预测过程的复杂程度实在是令人发指。 我从解码角度详细分析一下,由于细节非常多,难免有错误。 帧间预测(inter prediction)过程为解码提供帧间预测值(predSamples[x][y]),对应标准8.5.2中的内容。 简单说,帧间预测就是以预测块(PU,prediction unit)为单位,计算PU的运动向量(MV原创 2016-04-21 16:03:23 · 4207 阅读 · 5 评论 -
HEVC标准中的图像分割(2),slice,tile,CTU,CU,PU,TU等
接着来说HEVC的图像分割。HEVC的标准中有这么一段话,翻译过来就是:图像分成分量(Y,Cb,Cr)。分量分成coding tree blocks图像分成tile列图像分成tile行Tile列分成tilesTile行分成tilesTile分成coding tree blocks图像分成slicesSlice分成slice segmentSl原创 2016-03-11 11:33:10 · 5769 阅读 · 4 评论 -
HEVC的环路滤波(2)
2.3 边界滤波2.3.1 概述 VOR方向 亮度块滤波步骤: 1 变量nD等于1 2 xDk等于k 0时。 2.1 进行2.5.3的步骤,得到决定dE, dEp, and dEq,和变量β和 tC 2.2 进行2.5.4的步骤,得到滤波图像recPictureL原创 2016-09-08 11:12:27 · 2380 阅读 · 0 评论 -
HEVC的环路滤波(1)
HEVC的环路滤波(1)1. 概述HEVC的环路滤波包括两个部分:去方块滤波(deblocking filter)和样本自适应缩进滤波(sample adaptive offset filter,简称SAO)。首先进行去方块滤波(见第2节),输入为重构后的图像矩阵,输出滤波后的图像,然后如果sample_adaptive_offset_enabled_flag为1,再进原创 2016-09-07 15:07:31 · 4324 阅读 · 0 评论 -
HEVC的帧间预测解码(2)
3.2 计算空域候选值接着上一篇文章HEVC的帧间预测解码(1)继续讲merge模式的mv计算。根据流程,第一步就是M1.计算空域候选值。中间的方块代表当前的PU,A0, A1, B0, B1. B2的几何位置如图所示。1. A1的计算A1的坐标为( xPb − 1, yPb + nPbH − 1 )原创 2016-04-26 16:17:27 · 2518 阅读 · 4 评论 -
HEVC的帧间预测解码(5)
在(1)到(4)中,已经详细介绍了运动向量(mv)的解码,得到mv之后,即可从参考图像中得到运动补偿的参考值。输入包括:当前解码块的左上角亮度坐标(xCb, yCb );当前预测块相对于当前解码块的左上角亮度坐标( xBl, yBl );指示当前解码块大小的变量nCbS;当前解码块的大小(nPbWx nPbH)亮度运动向量mvL0 和 mvL1色度运动向量m原创 2016-09-23 14:43:20 · 1871 阅读 · 5 评论 -
HEVC的帧间预测解码(3)
3.5 计算组合双向预测参考值(M7)接着上一篇文章HEVC的帧间预测解码(2)继续讲merge模式的mv计算。原创 2016-04-28 17:01:58 · 1713 阅读 · 0 评论 -
HEVC的帧间预测解码(4)
前面的文章完成了merge模式的MV的计算,下面讨论非merge模式的MV。4 非merge模式的MV计算当PU的merge_flag等于0时,就是非merge模式了,基本的思路就是从PU中解出mvd,然后通过计算mvp,最后得到MV。4.1 非Merge模式整体流程1.如果inter_pred_idc[ xPb ][ yPb ](预测单原创 2016-04-28 17:02:44 · 2375 阅读 · 0 评论 -
HEVC的Availability计算过程
HEVC的intra预测和inter预测等等都要用的邻块的Availability信息。在文章HEVC的帧内预测(1)中已经写到了有关available的内容了,但是不够完整,把这部分内容归到intra预测中也不是很合适,所以单独写一篇文章描述这个过程,也正好对应标准6.4 Availability processes的内容。1.z-scan order block availab原创 2016-04-22 10:07:41 · 1786 阅读 · 0 评论 -
HEVC的参考队列解码
参考队列是指在进行帧间解码时,P或者B slice所参考的已解码的,位于解码图像缓存中(DPB, decoded picture buffer)中的图像队列,类似h264中的reflist0和reflist1。涉及到整个DPB的管理和参考帧的选择。首先介绍一下短期参考图像参数集(Short-term reference picture set ), 简称short-term RPS。short原创 2016-03-28 15:30:36 · 5822 阅读 · 5 评论 -
HEVC的帧内预测(2)
接着上一篇文章HEVC的帧内预测(1)继续讨论。相邻参考值的获取帧内预测用到的相邻参考值(neighbouringsamples,p[ x ][ y ]),其几何位置如下图所示。( xTbCmp, yTbCmp )表示当前变换块相对于图像左上角的坐标。当前tb(current transform block)的尺寸为TbS,neigbour samples数量为2*原创 2016-04-08 10:29:47 · 2652 阅读 · 0 评论 -
HEVC的帧内预测(1)
帧内预测(intra prediction),即intra块的预测过程,为intra块解码提供预测值(predSamples[ x ][ y ])。首先要确定当前块和邻块的关系。1.z-scan order block availabilityz-scan order block availability,就是在Z顺序扫描下的availability。原创 2016-04-01 15:25:55 · 3222 阅读 · 5 评论 -
ffmpeg的HEVC解码源代码分析(一)整体框架
通过调试ffmpeg对HEVC码流(格式为es流,就是rawvideo)的解码过程,分析ffmpeg的HEVC解码过程和实现方法。首先要说的是调试所用的工程的config为:./configure –disable-asm –disable-pthreads –enable-debug –disable-optimizations进行configure。禁用了pthread,所以涉及到pt原创 2015-12-02 09:53:19 · 3451 阅读 · 0 评论 -
HEVC有关量化参数Qp的计算
量化参数,简称QP,是解码中反量化过程中最重要的参数,我觉得HEVC解码的中Qp的计算有那一点复杂,标准有那么一点晦涩,这里来一起探讨下。1.参数PPS中关于Qp的参数:init_qp_minus26:加上26表示初始Qp,范围[-26,25]。cu_qp_delta_enabled_flag:1表示语法元素diff_cu_qp_delta_depth(PPS中)存原创 2017-02-28 10:18:55 · 11228 阅读 · 0 评论