视频解码
文章平均质量分 90
面海烹鲜
000001XX
展开
-
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 · 3424 阅读 · 0 评论 -
视频解码研究之PTS(2)Mp4格式,AVI格式和MKV格式
关于其他格式的PTS请看:视频解码研究之PTS(1)TS格式和FLV格式3.MP4格式Mp4格式中涉及到PTS信息的atom包括:stts,ctts和elst。先说stts,格式如下:存储着一系列的参数对(sample_count, sample_time_delta)。每一个参数对给出了具相同时间间隔的连续的sample的个数和这些sample的时间间原创 2015-12-20 10:44:26 · 11334 阅读 · 0 评论 -
视频解码研究之PTS(1)TS格式和FLV格式
今天来讨论下PTS,这片东西涉及的方面比较多,许多结论我也是从大胆推测的,有什么不对的,希望大家帮我指出来。PTS是presentation time stamp的缩写,简单说就是播放时间戳。ffmpeg中音视频的同步是通过PTS完成的,而PTS是怎样从码流中解析出来的呢?其实不同的多媒体文件格式有不同获取方式。1.TS流的PTS:这可以说是PTS的出处。PTS是在mpeg-1,2原创 2015-12-08 14:18:47 · 20715 阅读 · 5 评论 -
FLV格式的解复用和PTS分析代码
视频解码研究之PTS(1)TS格式和FLV格式视频解码研究之PTS(2)Mp4格式,AVI格式和MKV格式在视频解码研究之PTS(1)TS格式和FLV格式中分析了FLV格式PTS,并提供了程序运行结果,这里给出代码。这段代码能够打印flv格式中所有的PTS,还可以将264的视频从flv文件中demux出来。#include "stdio.原创 2016-12-21 16:43:13 · 2019 阅读 · 0 评论 -
MKV格式的PTS解析代码
视频解码研究之PTS(1)TS格式和FLV格式视频解码研究之PTS(2)Mp4格式,AVI格式和MKV格式在文章视频解码研究之PTS(2)Mp4格式,AVI格式和MKV格式中,提到mkv格式的PTS,并编写程序对某MKV文件进行解析计算,得到各个block绝对时间码(Absolute Timecode)。程序十分简单,代码如下,帮助大家理解mkv文件的格式。#i原创 2016-12-21 15:21:48 · 1842 阅读 · 0 评论 -
HEVC的帧间预测解码(1)
1.概述 HEVC的帧间预测过程的复杂程度实在是令人发指。 我从解码角度详细分析一下,由于细节非常多,难免有错误。 帧间预测(inter prediction)过程为解码提供帧间预测值(predSamples[x][y]),对应标准8.5.2中的内容。 简单说,帧间预测就是以预测块(PU,prediction unit)为单位,计算PU的运动向量(MV原创 2016-04-21 16:03:23 · 4181 阅读 · 5 评论 -
多年前写的解复用应用程序demuxbox
很多年以前写的代码了,一个小程序实现了对Avi和mp4格式文件的解复用,将视频流和音频流从格式文件中分离出来。没有使用ffmpeg的库,所有底层的功能都是一行行用手码出来的,这种方法十分的不可取。但是通过这些代码可以清楚的了解avi和mp4文件的结构以及解复用的原理。原创 2016-11-21 16:36:47 · 706 阅读 · 0 评论 -
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 · 5728 阅读 · 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 · 2344 阅读 · 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 · 4296 阅读 · 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 · 2492 阅读 · 4 评论 -
HEVC的帧间预测解码(5)
在(1)到(4)中,已经详细介绍了运动向量(mv)的解码,得到mv之后,即可从参考图像中得到运动补偿的参考值。输入包括:当前解码块的左上角亮度坐标(xCb, yCb );当前预测块相对于当前解码块的左上角亮度坐标( xBl, yBl );指示当前解码块大小的变量nCbS;当前解码块的大小(nPbWx nPbH)亮度运动向量mvL0 和 mvL1色度运动向量m原创 2016-09-23 14:43:20 · 1852 阅读 · 5 评论 -
HEVC的帧间预测解码(3)
3.5 计算组合双向预测参考值(M7)接着上一篇文章HEVC的帧间预测解码(2)继续讲merge模式的mv计算。原创 2016-04-28 17:01:58 · 1695 阅读 · 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 · 2364 阅读 · 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 · 1765 阅读 · 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 · 5787 阅读 · 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 · 2634 阅读 · 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 · 3203 阅读 · 5 评论 -
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 · 11129 阅读 · 0 评论