自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (5)
  • 收藏
  • 关注

原创 图像小波变换理解

理解图像小波变换过程

2023-03-22 18:20:22 755

原创 x265线程池机制和并行编码机制分析

本文主要介绍x265中的线程池机制,及WPP多线程编码的具体调度过程。

2022-07-20 17:58:40 1778 1

转载 vs2019 安装使用viemu方法

viemu可以在visual studio上使用vi编辑器的键盘操作,写代码效率可以大大提高,是vimer's最爱的插件之一。可惜viemu是收费软件。 有网友找到了破解方法,转载一下:https://lingyixia.github.io/2019/02/23/ViEmu/总共需要删除两个地方: 12 1. HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{目录ID}的InprocServr322. C:\Users\用户名\...

2021-09-16 14:39:32 413

原创 python subprocess模块设置环境变量,加载动态库

众所周知,利用python的subprocess.pOpen 可以执行应用程序。不过今天碰到一个问题:应用程序需要调用动态库,而且动态库和应用程序在同一目录下。不过python的运行目录不是应用程序所在目录,这时候执行会出错error while loading shared libraries: libdyn.so: cannot open shared object file: No such file or directory。这是因为应用程序在python当前运行目录及系统的LD_LIB

2021-08-26 14:57:41 5810 2

原创 AVS3中Intra预测过程 - HPM代码分析

视频编码中,帧内预测需要获取相邻块的参考像素才能获得重建,在AVS3参考软件平台HPM中,这个过程是如何实现的呢?

2021-04-01 16:17:40 1213

原创 AVS3中的patch(片)

对比AVS3和AVS2标准,我们发现AVS2中的slice语法结构在AVS3中被替换为patch。

2021-03-29 13:21:51 810 2

原创 AVS3码流结构分析

AVS3码流由一组视频序列(video Sequence)组成 Video Sequence首先包含了Sequence Header,这相当于HEVC中的SPS信息。接着是Extension_and_user_data(0),这个是序列级别的扩展数据或者用户数据。然后就是一组图像数据,包括帧内图像数据和帧间图像数据。 AVS3码流结构示意图如下所示,不同语法结构采用起始码来分割,起始码值在图1中采用红色字体表示。​​​图1、AVS3码流结构 在AVS3中不再有Slice的概念,...

2021-03-29 11:30:50 1080

原创 python 幂数拟合及拟合度计算

有时候对数据的分析处理,需要进行曲线拟合,python提供了丰富的工具,其中scipy中的curve_fit可以用来进行幂数拟合或者指数拟合等各种类型的拟合。 先定义好要拟合的函数形式target_func,然后调用函数popt, pcov = curve_fit(target_func, xdata, ydata)可以返回target_func中的参数,参数存储在popt数组中。...

2019-12-04 12:16:52 10502 6

原创 x264、x265中cuTree原理分析

mbtree是x264中引入的一项创新性技术,可以有效提高主客观质量(参考文章最后的表格1)。x265继承了这一算法,改名为cuTree,算法本身实现较为复杂,下面探讨一下cutree原理,结合代码来分析实现细节。 cutree和mbtree都是根据当前块被参考的程度调整qpOffset,要知道当前块被参考的程度,很显然需要一个编码的反推过程。 对于帧间参考,参考帧的质...

2019-11-27 11:23:05 4574 1

原创 ffmpeg计算psnr与x264,x265不一致

用ffmpeg可以方便的计算两个视频文件之间的psnr,命令格式如下ffmpeg -i reference.ts -i encode.ts -lavfi psnr -f null - YUV的对比命令如下: ffmpeg -pix_fmt yuv420p -s 1920x1080 -i input.yuv-pix_fmt yuv420p -s 1920x108...

2019-11-25 20:54:45 1942

原创 HEVC如何计算Cu_Qp_Delta

研究HEVC标准发现,HEVC对cu_qp_delta的处理虽然有点晦涩难懂,但还是挺科学合理的。 HEVC中计算CuQpDelta的公式如下: CuQpDelta = (qp - qp_pred + 78 + qpBdOffsetY + (qpBdOffsetY / 2)) % (52 + qpBdOffsetY) - 26 - (qpBdOffsetY / 2) ----...

2019-10-25 16:17:30 2321

原创 开发一个HEVC码率分析工具

在开发编解码器时,经常需要分析码率波动情况,分析缓冲区是否有上下溢情况,所以用python开发一个简单的工具。它可以分析HM编码器的输出log,提取每一帧的比特数,结合视频帧率,就可以绘制码率波动图和VBV缓冲区状态的图像了。工具的UI如图1图2所示:plot type选项有两种选择:选项1"bitrate viewer"用于绘制每秒钟的码率情况;选项2"vbvbuffer view"用于绘制...

2019-10-14 17:12:21 1656 4

原创 实现一个avs2码流分析工具

最近在做avs2编码器项目,但是却没有成熟的码流分析工具,于是抽空学习了QT,业余时间写了一个avs2码流分析工具。 软件的界面如下:图1、avs2码流分析仪界面 UI的左边框为NAL列表或者语法元素列表: 默认情况显示的是NAL列表,NAL列表显示了每一个NAL的类型,如果是picture的NAL,则Picture的类型(I帧,P帧,B帧,F帧等),POC, COI也都可以...

2019-09-12 21:36:18 1988 15

原创 hevc的量化系数编码之 最后一个非零系数的坐标编码方法

  对量化后的系数,会根据扫描次序得到最后一个非零系数的(x, y)坐标。将其进行编码。  (x, y)分别都是由前缀和后缀部分组合得到的。   x,y的取值范围为0~31, 这个区间被分割为10段,如下图所示  前缀表示的就是段信息,10个段对应的prefix如下:  后缀表示的是段内信息,即相对于段的起始位置的偏移量,可以看到,只有segment 5, 6, 7, 8, 9, 10才需要后缀表...

2018-06-05 12:21:31 522

原创 visual studio如何开发基于ffmpeg的程序

    如何用visual studio来开发基于ffmpeg的程序呢?    开发环境: Win10 + visual studio 2010    首先需要下载windows版的ffmpeg的库: 下载地址  https://ffmpeg.zeranoe.com/builds/。其中Dev包含的是开发ffmpeg程序所需要的头文件和链接库,在编译时会用到;Shared包含的是运行程序时调用到的...

2018-06-02 19:16:22 1545

原创 c语言函数参数太多对性能是否有影响?

64位汇编(linux)当参数少于7个时, 参数从左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9。当参数为7个以上时, 前 6 个与前面一样, 但后面的依次从 “右向左” 放入栈中,即和32位汇编一样。参数个数大于 7 个的时候H(a, b, c, d, e, f, g, h);a->%rdi, b->%rsi, c->%rdx, d->%rcx,...

2018-04-20 16:43:58 9486

原创 理解视频编码中的熵编码

  首先理解算术编码的原理: 假设比特0、1概率分别为0.8和0.2。信源流为00100,对此信源进行算术编码,过程如下:  每输入一个新比特,都会缩小概率区间,当输入00100后,得到的概率区间为(0.512, 0.59392),解码过程与编码过程相反,给定最终概率区间可以解码出原始比特流:(1)、初始概率区间为(0, 1.0)。(2)、(0.512, 0.59392)落在(0, 0.8)之间,...

2018-04-10 11:09:25 1118

原创 两种HDR格式(HLG, HDR10)的理解

1、HLG只在sps的vui中会携带信息,包括colour_primaries(=9),transfer_characteristics(=18),matrix_coefficients(=9)2、HDR10除了SPS的VUI中携带的信息,在key frame会携带相应的SEI(mastering display、content light level)

2018-02-06 10:36:00 20015 3

原创 c程序命令行处理getopt的使用

有些功能复杂c程序需要从命令行中接收很多参数,比如x264、x265,很多编码参数都通过命令行传递给exe。下面是一个x265.exe的命令行的示意图。    x265.exe --input F:\Tennis_1920x1080_24.yuv --fps 24 --input-res 1920x1080 --frames 100 --psnr --frame-threads 1 --no-

2018-01-29 10:18:50 349

原创 HEVC中与dpb(decoder picture buffer)相关的语法元素的理解

hevc标准中有很多语法元素理解起来比较麻烦,所以在此记录下来,供以后查阅。sps中的sps_max_num_reorder_pics    标准中的解释:"sps_max_num_reorder_pics[ i ] indicates the maximum allowed number of pictures that can precede any picture in the CV

2017-12-21 11:24:07 3508

原创 ffplay播放控制代码分析

ffplay实现暂停,快进,单帧播放的原理

2017-12-19 13:34:56 3807 2

原创 视频主观质量对比工具(Visual comparision tool based on ffplay)

************************************************************************************ffplay系列博客: **ffplay播放器原理...

2017-12-15 09:53:09 11994 62

原创 ffplay播放器原理剖析

详细分析ffplay的基本框架及工作机制。

2017-12-07 21:24:26 2729 1

原创 ffplay播放器音视频同步原理

音频和视频的播放是在不同线程中进行的,而且音频和视频都有自己的时间戳,所以需要同步机制保障音画同步。有多种机制可以做到音视频同步:a. 音频同步于视频。b. 视频同步于音频。c.音视频都同步于基准时钟。ffplay默认采用视频同步于音频的方式,下面结合ffmpeg 3.1.1源代码分析一下ffplay的音视频同步原理。总体来看,视频同步于音频的机制主要包括两个部分:1、音频时钟的更新。2、视频帧渲染与音频时钟的同步(根据当前音频时钟调整视频帧渲染的时刻,实现同步)。

2017-11-29 13:55:19 4177 1

原创 ts, mp4文件快进快退(seek)原理

最近用potplayer播放一些ts文件,seek发现会有卡顿问题,但是同一个文件用mp4转封装之后seek就很快很流畅了。所以抽空研究了ffplay 对mp4文件和ts文件的 seek 逻辑,结论:对mp4 和t s的seek 逻辑完全不一样。 最重要的区别在于mp4 可以seek到指定的时间戳, ts 是 seek到文件的某个position,而不能直接seek到指定的时间点,下面结合

2017-10-26 14:35:57 8246 5

原创 Windows上成功编译ffmpeg及codelite调试ffmpeg的方法

如何在windows下编译,调试ffmpeg呢?

2017-10-26 09:29:34 925

原创 ffmpeg中的帧级并行解码

待续

2014-07-31 00:40:25 2794

视频主观质量对比工具VCmpTool

1、基于ffmpeg 4.2.3,支持avs3码流播放; 2、支持鼠标移动窗口,方便对比4K、8K文件。 3、支持窗口缩放,方便对比细节。

2021-01-08

VCmpTool_SupportAV1

1、基于ffmpeg 4.1版本编译。 2、播放中按Tab键显示文件信息,及每一帧的具体信息。 3、支持av1视频文件对比。

2020-12-22

ffmpeg.exe 输出两种统计方式的PSNR

ffmpeg输出两种统计方式的PSNR结果:1、计算每一帧的MSE(均分差),然后计算整个序列的平均MSE,最后计算psnr。 2、计算每一帧的psnr,最终对整个序列求平均psnr。 计算两个视频文件之间的psnr,命令格式如下: ffmpeg -i reference.ts -i encode.ts -lavfi psnr -f null - 。计算YUV的PSNR,命令格式如下:ffmpeg  -pix_fmt  yuv420p  -s 1920x1080  -i input.yuv  -pix_fmt yuv420p  -s 1920x1080  -i output.yuv  -lavfi psnr  -f null  -

2019-11-26

ffmpeg.exe 输出两种统计方式的PSNR

ffmpeg输出两种统计方式的PSNR结果:1、计算每一帧的MSE(均分差),然后计算整个序列的平均MSE,最后计算psnr。 2、计算每一帧的psnr,最终对整个序列求平均psnr。

2019-11-25

视频主观质量对比工具

一个基于ffplay的主观视频质量对比工具,详细信息参考https://blog.csdn.net/lrzkd/article/details/78809659

2019-11-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除