自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

慢慢积累

菜鸟一只,多多包涵

原创 HEVC代码学习41:解码器代码整体学习

最近看了一些解码端的代码,为了方便阅读,写个总结梳理一下思路,之后会不断补充。 这里借用雷神的图: decmain.cpp HM解码器入口是TAppDecoder的decmain.cpp,调用了四个入口函数cTAppDecTop.create()(创建解码器),cTAppDecTop.p...

2018-05-15 10:15:55 919 1

原创 H.266代码学习:变换部分总结

最近看了一段时间的JEM的变换部分了,先来总结一些,一来梳理一下思路,加深理解,二来列个提纲,方便大家阅读。 变换是指对当前块减去帧内/帧间预测生成的预测块得到的残差进行变换编码,使能量更多的集中于左上角,从而来降低空间冗余。变换之后会进行量化,而后会进行熵编码。 变换的上层入口 变换的...

2018-03-16 11:43:40 1121 5

原创 H.266 JEM相对于HEVC HM的改进

参考文献:JEM algorithm description editing 目前JEM最新版本为JEM7.0,相对于HEVC的改进如下: 1.块结构: 四叉树+二叉树块结构,支持更大CTU(最大可为256x256,CTC为128x128)——http://blog.csdn.ne...

2017-12-18 11:47:26 3986 1

原创 基于ERP特性的自适应QP

在之前对投影格式的分析中已经反复提到了,ERP存在与纬度相关的横向拉伸,越向两极拉伸越严重。基于这个特性,可以对编码进行相关的优化。在JEVT F会议提案中出现了自适应QP的方法,获得了不错的效果。JVET F会议中出现了三种基于ERP特性的自适应QP,提案号分别为F0038、F0049和F007...

2017-11-30 15:57:38 1468 50

原创 从球域采样分布分析360质量评估

360视频在实际显示时,需要由2D平面投影到球面,最终呈现给观众的是球形视频,因此,直接评估2D平面视频是不准确的,于是引入了WS-PSNR、S-PSNR和CPP-PSNR。之前的学习中,都是从球面到平面变换公式中进行分析的,下面就来从球域采样分布,来更加直观的理解一下目前主要投影格式ERP和CM...

2017-10-25 16:57:58 676 0

原创 360视频质量评估标准:WS-PSNR,S-PSNR,CPP-PSNR

为了符合当前的视频编码标准,360视频采集后需要投影为2D图像进行编码,而观看时需要将2D图像投影为球形视频,实际用户看到的是球形视频。考虑球形视频的特点,会存在关注区域的问题,直接使用PSNR对2D图像进行评估是不准确的。目前360Lib中,采纳了WS-PSNR,S-PSNR,CPP-PSNR作...

2017-09-27 10:16:18 3217 5

原创 HEVC代码学习18:运动估计和运动补偿总结

经过了这段时间对帧间预测部分代码的学习,算是大体上了解了其工作原理。只看理论不看代码,体会不深刻,在看了代码后,有了一种恍然大悟的感觉,很多算法实现和看原理时理解的不一样。下面来整理一下之前写的博客,总结一下运动估计和运动补偿具体的代码实现思路,主要谈一下代码处理的思路, 运动估计 运动估...

2017-06-25 10:29:00 6464 16

原创 HEVC帧间预测

经过一个月奋斗,终于7门考试考完了,继续来学习HEVC。 之前由于并没有用到帧间预测的东西,没有对帧间预测进行学习,现在来具体学习一下。帧间预测是利用视频时间域的相关性,使用邻近已编码图像像素预测当前图像的像素,以达到有效去除视频时域冗余的目的。目前主要采用基于块的运动补偿技术,原理是为当前图像...

2017-01-12 10:54:05 11992 0

原创 HEVC代码学习0:HM使用+码流分析教程

第一次面对如此浩大的工程代码,真的不知如何下手。拜读HEVC_CJL大神的博客,受益匪浅。以下将记录个人学习过程,有不对的地方请谅解指正,十分感谢。 更新 ·2016.10.10:对HM使用方法进行了描述。 ·2018.01.23:对原HM使用方法进行了较大更新,增加了HM下载和码流分析...

2016-10-10 10:57:41 14369 133

原创 HEVC量化死区

最近才接触到量化死区,来学习一下这个技术。

2019-11-25 10:33:25 354 3

原创 HEVC和VVC中的量化矩阵

量化矩阵技术早在JPEG就已经使用,视频编码标准也早就支持了,下面来看下HEVC和VVC中量化矩阵技术。量化矩阵下文缩写为QM。 HEVC HEVC中支持两种类型的QM:默认QM和自定义QM。 默认QM如下,其中8x8 intra QM使用的是JPEG在1999年基于HVS模型生成的QM,通过线性...

2019-11-20 10:40:03 275 0

原创 HEVC代码学习43:默认量化矩阵

量化矩阵的原理是对应不同位置的系数使用不同的量化系步长进行量化,人眼对高频不敏感,可以对低频分量进行小步长量化,对高频分量进行小步长量化,在保证主观质量的情况下,提高压缩效率。HEVC支持量化矩阵,但是默认不启用。HEVC的量化矩阵与TU大小相同,分为4x4,8x8,16x16,32x32 4种尺...

2019-10-31 10:20:13 388 0

原创 HEVC实现无损压缩

使用HM是可以实现无损压缩的,只需要开启Transform Quantizer Bypass(TQB)。 方法很简单,命令行输入增加–TransquantBypassEnable 和–CUTransquantBypassFlagForce即可。 尝试了下结果如图,序列为BasketballDr...

2019-09-25 19:20:58 1179 2

原创 YOLOv3视频检测及检测结果保存(傻瓜式,不改代码,适用于将YOLOv3做黑盒使用的同学)

YOLOv3 windows下载、配置方法,推荐阅读https://blog.csdn.net/baidu_36669549/article/details/79798587,介绍很详细,对于直接拿YOLOv3用的同学完全足够,这里不再赘述。 不知道为啥,网上现成资料基本都是要改代码才能实现检测...

2019-09-25 10:48:27 2595 12

原创 HEVC码流bin文件封装为mp4

在网上找了一大圈,找到了两篇靠谱的博客,尤其推荐第二个,科普处理流程,讲解很清楚。 1.http://cadenwu.blog.chinaunix.net/uid-20554957-id-5746317.html 2.http://www.ziliaoku8.com/index.php/arc...

2019-09-24 21:03:23 481 0

转载 转:HEVC、AV1、VVC:如何理解2019年的编解码器世界(干货!)

LiveVideoStack又出干货,建议持续关注。ps:我和LiveVideoStack真的没半毛钱关系,只是觉得文章很赞转的。 ...

2019-09-17 21:32:05 852 0

原创 AVS3参考软件HPM找不到win10 SDK解决方法

生成HPM时报错: 上网搜了都是让装对应版本的win10 SDK,实际不需要,只需要重定向即可: 该方法确认可用,不知道是否适用于其他找不到win10 SDK的情况。 ...

2019-09-05 09:39:40 195 1

原创 视频编码标准小八卦

最近看了H.264/AVC FRExt介绍H.264/MPEG4-AVC Fidelity Range Extensions: Tools, Profiles, Performance, and Application Areas时,看了下视频编码标准的发展历程,发现了一个蛮有趣的问题,感觉自己在...

2019-09-02 20:27:07 294 0

原创 视频编码中常用的二值化方法

在视频编码中,在算术编码之前,要对需要传输的符号进行二值化,今天就来学习一下常用的二值化方法。 常见的二值化编码算法有:一元码、截断一元码、截断莱斯二值化,K阶指数哥伦布编码,定长编码。 一元码 参考: https://en.wikipedia.org/wiki/Unary_coding ...

2019-08-28 16:23:11 465 0

转载 转:MPEG中面向沉浸式视觉体验的标准化活动(虞露)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 ...

2019-08-20 18:06:09 496 2

原创 VTM4.0变换编码跟进

VTM4.0变换编码加入了5项新技术: • JVET-M0140 Sub-block Transform (SBT) for inter blocks • JVET-M0297: skipping high frequency coefficients in wide/high blocks • ...

2019-04-03 20:58:29 656 7

原创 JVET提案学习方法

跟了两年多的266提案了,从一开始的mpeg转到JVET,今天来对JVET提案的学习方法吧。 JVET提案系统:http://phenix.int-evry.fr/jvet/ 之前有整理过一些常用网址https://blog.csdn.net/lin453701006/article/detail...

2019-03-31 10:56:41 1538 0

原创 VTM4.0 DC模式

我又回来了,好久没更博客了吧,没事来写下前段时间看的东西吧。 DC模式很简单,理论很简单,就是用邻近像素块的均值填充当前预测块,具体不做介绍了。这里介绍下VTM中DC的改进历程。 这里只介绍主要种子提案,下面给出DC相关提案号。 JVET-J0020 Description of SDR v...

2019-03-26 16:14:45 495 1

原创 屏蔽百家号 -(baijiahao)

快过年了,回家了,发个非技术博客吧。 最近被百家号恶心到不行,搜了下屏蔽方法,在家懒得翻墙用谷歌,又懒得装插件设置屏蔽,找到了一个简单有效的方法,直接在搜索内容后边加 -(baijiahao),效果还不错,清爽多了。 ...

2019-01-27 23:23:32 44626 16

原创 VTM3.0色度帧内候选模式列表

今天来详细看下色度帧内候选模式列表,函数是getIntraChromaCandModes,代码部分很简单。 MDMS VTM中使用的是HM色度候选模式,MDMS在CE中,估计是因为复杂度的问题,目前还没有采用。在L0139中给出了一个简单的复杂度分析,性能上使用MDMS相比VTM在AI下的Y BD...

2018-12-24 16:14:09 600 8

原创 H.266/VVC已采纳技术

之前总结过H.266 JEM相对于H.265/HEVC的改进,JEM可以看做H.265到H.266的过度阶段参考软件,把很多有效果的算法都收纳进去了,与目前的H.266/VVC是存在很大不同的。 目前H.266/VVC已经进入到了正式的标准化阶段,参考软件改用了BMS/VTM,从3.0开始,只对V...

2018-12-23 10:11:06 2583 3

原创 VTM3.0变换编码跟进

之前BMS2.0变换编码跟进总结了BMS/VTM2.0的变换编码,从3.0开始,参考软件不再使用BMS版本,只有VTM版本更新。 相比VTM2.0,VTM3.0变换编码变化不大,主要采纳了三份提案,代码改动很小,性能基本没有变化,主要是修复bug和统一化。 1.帧内MTS传输变换核index时,不...

2018-12-16 18:57:13 545 9

原创 VTM3.0代码学习:estIntraPredChromaQT函数

之前VTM3.0色度帧内预测跟进中学习了VTM3.0的色度帧内预测过程,今天来看下具体函数estIntraPredChromaQT。 VTM3.0色度帧内预测分成两个阶段: 1.粗选:按DC、Ver、Hor、LM_L、LM_T进行预测,按SATD排序,去掉两个SATD最大的模式。 2.细选:粗选剩...

2018-12-13 15:21:42 402 1

原创 VTM3.0代码学习:predIntraAng函数

今天来学习一下帧内预测函数predIntraAng,用于生成帧内预测图像。 输入参数: const ComponentID compId //In 颜色分量 PelBuf &piPred //In/Out 预测图像 const PredictionUnit ...

2018-11-21 11:36:13 599 0

原创 VTM3.0色度帧内预测跟进

VTM2.0 先来回顾一下VTM2.0色度帧内预测。 在VTM2.0中,色度帧内预测会按Plannar、Ver、Hor、DC、LM、DM(共六种)顺序进行预测,RD检测最优。其中当DM借用的亮度角度模式与前四种模式相同时,会将DM换为角度66模式。 VTM3.0 相比VTM2.0,由于加入...

2018-11-19 11:24:07 422 10

原创 BMS/VTM代码学习:xCompressCU

找工作基本结束,收心回来看266了,从xCompressCU开始吧。在初学者阶段写过HEVC代码学习11:xCompressCU函数,当时实际看的一知半解,作为参考吧。 BMS/VTM中xCompressCU代码精简了很多,看起来容易多了,主要流程为: 1.初始化:设置可用模式、上下文模型等。 2...

2018-09-26 15:48:15 1883 4

原创 BMS2.0变换编码跟进

BMS2.0中,变换编码采纳了多核变换和二次变换。在draft中提到,采纳的多核变换只使用DCT2,DCT8,DST7三种变换核,没有给出具体的算法细节,现在来从代码中大概看下变换部分的内容。 代码和JEM变动不大,JEM代码分析可见H.266代码学习:transformNxN函数 和JEM一...

2018-09-16 17:50:15 262 0

原创 VTM2.0算法跟进

7月份JVET卢布尔雅那会议上确定了VTM2.0版本,来跟进下采纳的技术: JVET-K1002采纳的技术有: • Intra prediction – 67 intra mode with wide angles mode extension(宽角度模式是针对矩形块提出的) – ...

2018-09-13 22:44:00 815 2

原创 LeetCode 64:最小路径和

题目 思路 当前点值为grid[i][j],则到达该点最小路径总和:dis[i][j] = min(dis[i][j-1],dis[i-1][j]) + grid[i][j] 第一列最小路径总和为:dis[i][j] = dis[i][j-1] + grid[i][j] 第一行最小路径...

2018-08-23 22:07:20 191 0

原创 LeetCode 349,350:两个数组的交集

题目 思路 leetcode把该题放在了二分查找类别底下,被误导了,一开始思路是从nums1中找nums2的值,由于两个数组存在重复数,实际使用直接遍历查找十分简单。 首先将两个数组排序,各自从nums1和nums2的第一个元素开始,如果相同,将该元素放入输出数组;如果nums1元素...

2018-08-22 11:43:22 539 2

原创 LeetCode 35,704:搜索插入位置和二分查找

LeetCode 35:搜索插入位置 LeetCode 704:二分查找 两题都是最基本的二分查找问题,两题一起来做。 题目 LeetCode 35:搜索插入位置 LeetCode 704:二分查找 思路 两题都是最基本的二分法问题,区别是不存在时的返回方式。704比...

2018-08-21 21:13:00 210 0

原创 LeetCode 542:01矩阵

题目 思路 方法1,笨方法,首先想到的是,把0的位置先找出来存起来,然后对非零位置找离最近0的距离,这样算复杂度很高。 方法2,找邻域,确定与0的距离。 第一次循环,遍历所有点,如果当前点为0,跳过;否则,找其邻域4个点是否有0,如果有,跳过;如果没有,将该点的值+1; 第二次循...

2018-08-20 22:44:27 1331 0

原创 C++学习21:操作符sizeof学习

sizeof是一个操作符,用于计算一个变量或类型的大小(以字节为单位)。 1.sizeof操作在编译阶段进行 最直观的验证方式为: int num[10]; int a[sizeof(num)]; C++中一般是不能使用变量作为一个数组的长度的,必须使用常量。这里不会报错,这是因为si...

2018-08-20 18:24:42 148 4

原创 LeetCode 338:比特位计数

题目 思路 考点就是统计1的个数,直接想到的就是n&(n-1),需要遍历所有的数字进行统计,复杂度较高。 在看了别人的做法以后,改了版本2。 规律为: 1.首先考虑数字表示所需的二进制位数,每两个数所需位数相同,比如0和1需要1位,2和3需要2位……每一对数包含一个奇...

2018-08-20 09:39:27 833 0

原创 LeetCode 821:字符的最短距离

题目 思路 首先找出字符C所在位置,然后遍历字符串S,计算和字符C位置的最短距离。 代码 class Solution { public: vector<int> shortestToChar(string S, char C) ...

2018-08-19 19:05:56 228 0

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