自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小小柴的博客

日常学习笔记

  • 博客(151)
  • 资源 (2)
  • 收藏
  • 关注

原创 H.265和H.266之间的差异

       临近校招,这个问题可能经常会被问,所以趁着K次会议结束先对H.265和H.266之间的到差异做个目前为止做个总结。由于时间问题,只写有较大改进的技术,一些小细节就忽略不计了。  1.划分结构      H.265是四叉树划分,H.266中是四叉树加三叉树和二叉树划分,所以在H.266的划分中会存在很多矩形块(https://blog.csdn.net/cxy19931018/...

2018-07-26 17:48:45 27828 2

原创 266中帧内预测完整过程的总结

        做了一段时间帧内,感觉对帧内预测的理解有加深了一些,今天来给帧内预测做个总结,也相当于巩固记忆啦。       相比起来,帧内预测真的是属于视频编码中最简单的模块了,内容也超级少,感觉最近帧内有点难做,性能提升都很少,第十次会议大部分的提案的性能都不高,而且大部分提案都集中于滤波,双向预测和多参考行预测这一块。      帧内预测的基本思想就是利用相邻像素的相关性去除空间冗...

2018-06-09 21:50:02 8436 12

原创 H.266/VVC 新发布的参考软件

      H.266新发布了两个参考软件,以后的研究工作都将基于这两个平台:      一个是the test model (VTM) ,另一个是 the benchmark set (BMS),前者在HEVC的基础上加了三叉树,四叉树和二叉树的划分。后者在前者的基础上加了9个新的工具,分别如下。 65 intra prediction modes (帧内预测)LM chroma ...

2018-05-25 17:01:09 4146 1

原创 H.266帧内亮度预测的详细流程

帧内亮度预测的详细流程1.首先,得到6种MPM模式;2.JEM中有67种亮度预测模式,为了加速每个模式RD cost的比较,先对原始的35种模式(H.265中的33种角度模式加DC和Planar模式)进行简单的SATD的计算,选出(numModeForFullRD+2)种最小的模式,其中,numModeForFullRD的值与宽的宽度和高度有关,具体情况如下:当块的大小为4*64,4*128,8*...

2018-03-17 20:47:29 1594

原创 H.266中MMLM技术的详细流程

JEM中的色度模式总共有11种,包括5种传统预测模式和6种CCLM模式,其中6种CCLM模式又包括1种单模型CCLM(编号67)模式和5种多模型CCLM模式(编号68-72)。在色度预测的总函数中,遍历这11种模式,根据代价选择最优的一个。1.   首先,为了加快RD cost的选择过程,我们先用69-72这四种MMLM模式对色度信号进行预测,从而计算简单的SATD,选择最小的一种模式进行后续的R...

2018-03-17 19:16:39 2662

原创 VVC/JEM代码学习6:xCompressCU()

      xCompressCU是一个递归函数,对于每一个CU,该函数都会被调用,主要是计算当前CU编码之后代价,然后再计算当前CU的每一个子CU编码后的代价,和当前CU的编码代价相比较,用来决定是否对当前CU进行分割。这个函数太复杂啦,继续慢慢学习吧。Void TEncCu::xCompressCU( TComDataCU*& rpcBestCU, TComDataCU*& r...

2018-01-17 15:29:20 2411 7

原创 VVC/JEM代码学习:xCompressCU

        今天上午又看到一篇挺好的关于xCompressCU函数的总结文,不过是关于HM的,所以我就基于此文写一个JEM的吧。原文地址https://www.2cto.com/kf/201604/499329.html。       先来个文字版的简洁说明(写在下面的步骤不一定会执行,是需要经过条件判断的,其中还有很多步骤没写出来),代码记录在下一篇吧。xCompressCU(){(...

2018-01-17 15:06:15 1298 1

原创 VVC/JEM代码学习2:estIntraPredLumaQT

(为个人理解)     此函数的作用是计算亮度分量的预测值,备选预测模式是67种,DC+planar+65种角度预测模式。首先通过getIntraDirPredictor函数得到6 MPMs。然后对HEVC中原始的35种角度模式进行遍历,根据SADT选取N(5)种作为初始候选列表;再根据SADT更新候选列表里的候选模式。再将N个候选模式和前3个MPM模式合并。最后在合并的模式中选取一个RD cos...

2018-01-15 21:35:12 942 4

原创 c语言 如何读取txt中的某一行,并且把每一行中的数据挨个读出来

如图所示,我的txt文本如下所示,我想读取第10行的数据,并且把第10行的7个数据都取出来:int SetPositionByLine(FILE *fp, int nLine){ int i = 0; char buffer[100]; fpos_t pos; rewind(fp); for (; i < nLine; i++) fgets(buffer, 100, fp); fgetpos(fp, &pos); retu...

2020-12-18 17:25:53 7842 1

原创 Mac端如何利用wireshark抓取抖音视频流并保存成mp4

工作需要在抖音,快手上抓取视频流做实验,翻了很多很多博客,感觉没有一篇写的很完整,所以在这里记录一下,方便以后查阅。1.在mac上安装wireshark 这一步就不多说了,很简单;2.配置mac和手机(以安卓为例) 首先需要将mac连接网线,然后启动台->系统偏好设置->共享: 在“共享以下来源的连接”里选择“USB10/100/1000 LAN”,在“以下端口共享给电脑”里选择“Wi-Fi”,然后点击“Wi-Fi选项", 对网络名...

2020-10-10 15:59:08 7610 3

原创 H.265中针对scc的工具 -- transformskip

transformskip和intra block copy, palatte mode 一样,是针对screen content 的编码工具,该工具的提出是因为对于screen content,其经常包含尖锐边缘或者跳变,相关性极差,这种情况下进行正常的transform反而会带来负面影响,还不如跳过变换环节,直接对残差进行量化。下面来直接看代码: if (pcCU->getTransformSkip(uiAbsPartIdx, compID) != 0)//开启transfor...

2020-07-28 15:19:15 1545

原创 H.266/VVC代码学习28:Dependent Quantization

好久没看266的代码,感觉太难懂了,各种变量各种类,也没有个注释,只能抱着读书百遍其义自现的真理一遍一遍debug,最后大部分看懂了,有些不懂的以后有机会慢慢补。今天记录的是vvc中的新工具,dependent quantization。先上点简单的原理:依赖量化器的方法的实现如下所示:定义两个不同重建水平的标量量化器 定义一个两个标量量化器之间的切换过程这两个标...

2020-03-10 20:05:42 2098 1

原创 x264中的decimate_score

为了减少残差系数使用的编码比特,x264中使用了一种方法--decimation。原话是这样子的:Writing the 16 CBFs in an i16x16 block is quite costly, so decimation can save many bits.More useful with CAVLC, but still useful with CABAC. 中心思想是...

2019-12-16 20:54:08 1063

原创 x264的帧间预测过程

因为只看了p帧 的预测过程,所以先记录p帧的,b帧的以后有缘再会。if( h->sh.i_type == SLICE_TYPE_I ){ 略;}else if( h->sh.i_type == SLICE_TYPE_P ) { int b_skip = 0; int do_not_try_skip = 0;...

2019-12-11 20:37:56 697

原创 64位数值强制转换为32位

在程序中经常看到将int64的类型强制转换为int32类型,转换前后发生什么样的变化呢?int64 a=xxxxx;int32 b=0;b=a;b=a的过程几完成了强制转换。其实强制转换的过程很简单,即保留最低位的32位。如下图所示:...

2019-08-19 20:15:25 16554

原创 bd-rate的计算

bdrate的基本计算过程为: 对ref和test中四个点的各自进行拟合; 对拟合出来的两个曲线算积分(积分区间为两个曲线的横坐标的相交部分),求积分差; 最后将积分差除以积分区间;第一步的拟合过程有两种方法,一种是旧方法,将四个数据点直接拟合成曲线计算,一种是新方法,对四个数据点通过分段三次插值来拟合。两种计算方法一般情况下相差不大。旧方法的相关提案在VCE...

2019-08-19 12:12:46 4217

转载 CRF和CQP的区别

转发自https://www.cnblogs.com/sunny-li/p/9979796.html本文翻译自 https://slhck.info/video/2017/02/24/crf-guide.html ,不当之处,请多指教。----------------------------正文-------------------------什么是CRF?CRF是264和265中...

2019-07-26 10:36:49 12511 1

原创 python加载另一个文件夹中的py文件

假设文件是这样的分布的1文件夹 11文件夹 111py 112py 12py如果想在12py文件中加载111和112两个py文件,可以选择如下两种方法:一. 在11文件夹中必须有__init__.py文件,此时可以直接在12py里面写 import 11文件夹.111py import11文件夹....

2019-07-23 19:18:20 7313

原创 openh264中的AQ模块

openh264中的AQ模式总共有两种, AQ_QUALITY_MODE, // Quality mode AQ_BITRATE_MODE // Bitrate mode两者的区别在于计算iAverageTextureIndex时采用的因子不一样,每个宏块的AQ偏移值在AdaptiveQuantization.cpp中的process函数中完成;EResult CA...

2019-07-19 20:21:43 871

原创 x264中的AQ模块代码学习

x264中的AQ:简述: 有四种aq模式,分别为:- 0: Disabled- 1: Variance AQ (complexity mask)- 2: Auto-variance AQ- 3: Auto-variance AQ with bias to dark scenes 实际aq的应用不仅与aq-mode的设置有关,还与aq-strength有关,...

2019-07-19 20:10:35 2305 1

原创 Xcode: the document can't be saved

用xcode改完x264代码显示该文件不能保存,但是其他c文件能保存,百度了好多答案,试了都不行,最后看到自己加了两行中文注释,去掉之后就可以能保存了。...

2019-07-12 16:01:52 1879 2

转载 X264码率控制:ABR模式

因为ABR模式在控制过程中会产生较大的码率波动,进而导致图像质量不稳定,同时在Http Adaptive Streaming中,也会导致视频segment大小不稳定,在接收端产生卡顿。所以ABR模式一般配合vbv使用,使用vbv buffer来限制码率的波动。ABR模式的流程图如下:ABR会在帧级、行级和宏块级去调整qscale(QP)。帧级和行级调整的目的主要有两个:1,总码率逼近目标码...

2019-04-30 16:51:52 1482

原创 github代码管理

每次想把自己的代码传到github上去,隔很长时间就忘记了,很浪费时间,今天在这记录一下;首先把想要更新或者上传的文件放在本地git仓库里,创建本地仓库和远程仓库请参考其他博客。然后依次执行下列语句: git add <文件名> git commit -m "xxx commit" git pull #这一步一定不能忘...

2019-04-24 16:12:40 202

原创 libvpx在windows下的编译

https://blog.csdn.net/tanningzhong/article/details/47835725首先我是按照上述网址的文章进行编译的,前面都很顺利,就是在下面这一步的时候一直显示 "unrecognized tool chain x86-win32-vs12",尝试过了各种组合还是错误。 然后“../configure --help“了一下,发现是--tar...

2019-04-24 11:25:02 1092

原创 x264的编译问题

直接下载x264的VS工程,试了好久总是编译不通过,总是出现"cmd.exe"已退出和无法解析的外部命令,找了很久的博客发现可能是因为缺少yasm.exe汇编工具。解决方案是下载vsyasm.exe,将其重命名为yasm.exe放在Microsoft Visual Studio 12.0/common7/IDE路径下,尝试编译通过。...

2019-04-23 15:07:46 334

翻译 什么是CBR,VBV,CPB

https://codesequoia.wordpress.com/2010/04/19/what-are-cbr-vbv-and-cpb通常CBR会被 错误的认为是为每一帧分配相同数量的比特。如果真是这样,那P或者B真的意义在哪呢,P/B帧的主要目的就是通过参考其他帧减少编码比特数。当然,有很多P或者B帧的CBR流,我们可以很容易的发现在CBR流中比特数是不一样的。...

2019-04-14 16:44:13 2783

原创 H.266的帧内技术之色度模式编码

    在10月份的会议中,也接收了几个有关色度模式编码的几个提案,下面将详细讲述在VTM3.0版本上色度模式编码的流程。    色度分量的预测过程和亮度不太一样。首先是构建色度的预测模式候选列表,VTM3.0中是8个模式,分别有几部分组成,然后是根据RD check对这8个候选模式进行选择,最后把选择的最优模式按照特定的熵编码方式进行编码。一.色度候选模式列表的构建:       ...

2018-12-13 16:07:56 1434 4

原创 H.266的帧内技术之亮度模式编码

    在10月份澳门的JVET会议上,266接收了一个有关亮度模式编码的提案,下面就详细记录一下在VTM3.0版本上的亮度模式编码。    在VTM2.0中,亮度模式编码延续了H.265中的3 MPM及剩余模式编码的方法,在10月份会议(即L次会议)上,接受JVET-L0165提案,该提案提出针对现在的65种角度模式把3 MPM扩展到 6 MPM,且针对多参考行帧内预测技术细致的设计的不同的...

2018-12-13 15:37:28 695 2

原创 H.266的帧内技术之多参考行帧内预测(MRL)

    在刚刚结束的十月份的会议中,H.266的帧内技术采纳了多参考行帧内预测技术(MRL)。    该技术现在还不能看到具体的代码,所以有些细节还不是很清楚,所以先讲个大概的过程。在之前的帧内预测中,使用当前块的相邻左侧一列和相邻上侧一行作为参考采样来计算当前块的预测值,在MRL技术中,将可以使用的参考行扩展到了三行,具体如下:     如图所示,不仅最相邻的重建采样作为参考采样,相...

2018-11-08 15:41:00 1894 7

原创 H.266的帧内技术之宽角度帧内预测(WAIP)

          找完工作到现在已经一个多月了,懒散了很久,心有愧疚,从今天起恢复写博客,记录最后几个月在学校学习的收获,此条flag用来鞭策自己哈。      在7月份的会议中VTM2.0接收了宽角度帧内预测,此技术只应用于帧内的亮度分量,是针对宽高不相等的矩形块提出的,具体过程如下:    在之前的帧内角度预测中,总共有65种角度模式,从模式2一直到模式66,宽角度模式从模式2往下扩...

2018-11-07 22:09:36 2443 5

转载 H.264--参考图像列表

转载自:https://blog.csdn.net/newthinker_wei/article/details/8784742参考图像列表 解码器每解码完一幅图像,都会判断该图像是否用于参考,并标记相应的参考图像,而且会在解码下一幅图像前,将参考图像列表初始化好;解码下一幅图像时,先根据图像的片头信息判断是否需要对参考列表重排序,如果需要,就根据片头的附加信息重新排序,之后开始对图像...

2018-09-08 16:06:24 814 2

原创 基础算法复习之八:矩阵相乘

#include&lt;stdio.h&gt;#include&lt;iostream&gt;#include&lt;vector&gt;#include&lt;algorithm&gt;#include&lt;limits.h&gt;using namespace std;//矩阵相乘vector&lt;vector&lt;int&gt;&gt; MATMUL(vector&a

2018-08-20 23:35:25 286

转载 基础算法复习之七:最小生成树

转载自:https://blog.csdn.net/qq_35644234/article/details/59106779#commentsedit记录两个最小生成树算法,一个是Prim算法,一个是kruskal算法, 前者针对点展开,适合稠密图,后者针对边来展开,所以适合稀疏图(这里的稠密稀疏是对边来说的);1.prim算法,时间复杂度为O(N^2),N是顶点的个数prim算法的基...

2018-08-20 14:34:56 239

转载 基础算法复习之六:最短路径算法

  记录两种最短路径算法,一种是迪杰斯特拉算法,一种是弗洛伊德算法: 最短路径是指两个顶点之间经过的边上权值之和最少的路径,并且我们称路径上的第一个顶点是源点,最后一个顶点是终点;1.迪杰斯特拉算法(Djikstra),时间复杂度为O(N^2);#include&lt;stdio.h&gt;#include&lt;iostream&gt;#include&lt;vector&gt...

2018-08-19 23:31:21 298

转载 基础算法复杂之五:堆排序

堆排序是不稳定排序,时间复杂度最好,最坏,平均都为O(logn):堆排序的基本思想是:    先将无序序列按照升序或者降序需求构造成一个大顶堆或者小顶堆;    将堆顶元素与末尾元素交换,然后重使最大元素沉到数组末端;    重新调整堆使其成为大顶堆,继续交换堆顶元素和末尾元素,反复执行交换+调整,知道整个序列有序;其中,大顶堆的概念是每个节点的值比其左右子节点的值都大,小顶堆...

2018-08-19 21:31:57 204

原创 基础算法复习之四:插入排序

 插入排序的基本思想是遍历每一个元素,当遍历到第N个元素是,前面N-1个元素是排序好的,此时在前面选择合适的位置,将第N个元素插入,是稳定排序,时间复杂度是O(n^2);#include&lt;stdio.h&gt;#include&lt;iostream&gt;#include&lt;vector&gt;#include&lt;algorithm&gt;using namespac...

2018-08-19 20:14:54 180

原创 基础算法复习之三:选择排序

简单选择排序的基本思想是每次在剩余数值中选择一个最小值放在已排序数组的后面,是不稳定排序,时间复杂度为O(n^2);#include&lt;stdio.h&gt;#include&lt;iostream&gt;#include&lt;vector&gt;#include&lt;algorithm&gt;using namespace std;//选择排序void swap(int...

2018-08-19 19:18:22 241

原创 基础算法复习之二:归并排序

归并排序是稳定排序,且其最好,最坏,平均时间复杂度均为O(nlogn);#include&lt;stdio.h&gt;#include&lt;iostream&gt;#include&lt;vector&gt;#include&lt;algorithm&gt;using namespace std;//快速排序void merge(vector&lt;int&gt;&amp; n...

2018-08-19 17:56:54 257

原创 基础算法题复习之一:快速排序

先对排序算法来个总结:  其中不稳定的有:快,选,希,堆;时间复杂度为O(NlogN)的有:快,归,堆,   其中后两者的平均最好和最坏的时间复杂度都一样,而快速排序的最差复杂度为O(n^2),即初始排序为完全逆序的时候,所以快速排序的性能是会受到初始排序的影响的;即稳定时间复杂度又低的最优排序算法应该是归并排序,但是归并算法的空间复杂度为O(N);希尔排序的平均,最好,最坏的...

2018-08-19 16:58:06 573

原创 视频编码的比特流里包含的信息总结

      今天就对如题所示的问题做个总结,按照VTM的代码和书上的一些信息,可能会有些遗漏或者错误,边学习边补充;     1.flag     视频编码里的flag超级多,包括:      merge  flag;MVP flag; split_cu flag;affine flag等等等等,一般用来表示是否使用某个工具或者是否进行了某个步骤等;   2.预测信息    帧...

2018-08-15 20:47:11 1105

H.266的新技术介绍

该文档简要介绍H.266的基本情况,详细介绍了H.266最新参考软件VTM3.0中的所有新技术,适合刚开始学习266的同学们快速的学习每个新增工具

2019-03-15

VVC参考软件

新发布的H.266/VVC的参考软件VTM1.0,是学习研究266b编码标准必备的软件

2018-07-15

空空如也

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

TA关注的人

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