自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (11)
  • 收藏
  • 关注

原创 10bit为什么比8bit节省带宽

引言在编码10bit视频时用10bit进行编码会比8bit编码获得更好的质量,这个比较容易理解:使用8bit编码需要首先对原始信号进行缩放,编码后还需要缩放,缩放就会造成更多的失真。换句话说,压缩会比直接缩放带来更小的失真。因此使用10bit编码器压缩10bit视频会节省带宽。然而,实际上,即使是8bit视频,采用10bit进行编码依然会比8bit编码节省带宽。即10bit始终比8bit节省带宽,与原始像素的bitdepth无关。具体原因接下来从以下五点进行解释:什么是节省带宽节省带宽意味着

2020-09-02 23:13:51 3699

原创 HEVC中的去方块滤波——Deblocking Filter

Deblocking Filter的作用Deblocking与SAO都是HEVC中的环路滤波器,重建图像会首先经过Deblocking,再进行SAO。Deblocking主要用来去除编码的块效应,SAO消除图像的振铃效应。块效应(block artifact)我们知道现在的主流编码器都是使用基于块的混合编码框架,以编码块为单位进行预测、变换、量化。这就导致不同的编码块会使用不同的编码参数,进而不同编码重建块之间的存在一定的差异,尤其在编码块边界处较为明显。编码块边界处不连续的现象就是块效应。这种

2020-09-01 23:25:09 2830

原创 HEVC中的样点自适应补偿——Sample Adaptive Offset (SAO)

为什么需要SAO当变化块尺寸较大时,容易出现振铃效应,SAO就是用来削弱这种效应的。SAO首先利用分类器将样点分类,然后根据类别对样点值加上一个偏移值。样点的类别下标以及偏移值会被编码到码流中。HEVC中有两种SAO type,edge offset(EO) 和 band offset(BO),其中EO是根据样点值与周围样点值的关系来分类,而BO是根据样点本身的值来分类。HEVC中以CTU为单位进行SAO,不同的CTU可以使用相同的SAO参数(也就是region merging),一个CTU包含的

2020-07-14 10:17:21 1934

原创 HM中CU的ZOrder表示——uiAbsPartIdx变量

HM中经常看到uiAbsPartIdx这个变量,之前对这个变量一直不是太理解,前段时间看HM代码又深入理解了一下。Z-OrderZ字形扫描顺序在编码中经常用到,如下图是CTU划分成CU后的Z字形编码顺序,CU按此顺序逐个进行编码。但是CU在CTU中的index却不是简单等于这个编码顺序,因为不确定一个CTU会划分成多少个CU,只是知道编码顺序并不能确定CU的位置。因为编码过程中最小的单元是4×4大小,所以可以将CTU划分成若干个4×4大小的块,进而确定CU的位置,这也是uiAbsPartIdx变量

2020-07-13 22:02:21 1031

原创 HEVC中的编码结构-编码时的分层处理架构

引言我们都知道HEVC里有很多语法结构,为什么要设计那么多的语法结构呢?答案是为了增强操作的灵活性和数据损失的鲁棒性。这些语法架构使得HEVC在压缩效率和网络适应性都有显著提升。编码时的分层处理架构GOP视频序列由时间连续的图像构成,这些图像首先会被分成若干组,每一组图像集合就是一个GOP(Group of Pictures)。GOP分为封闭式GOP和开放式GOP,封闭式的即每个GOP之...

2019-12-18 17:24:39 3358

原创 HEVC代码分析-predIntraAng

获取当前tu的预测像素值Void TComPrediction::predIntraAng( const ComponentID compID, UInt uiDirMode, Pel* piOrg /* Will be null for decoding */, UInt uiOrgStride, Pel* piPred, UInt uiStride, TComTU &rTu, con...

2019-12-18 11:18:32 2922

原创 HEVC代码分析-xPredIntraAng

该函数进行非planar模式的预测Void TComPrediction::xPredIntraAng( Int bitDepth, const Pel* pSrc, Int srcStride, Pel* pTrueDs...

2019-12-09 13:36:53 2941 2

原创 HEVC代码分析-predIntraGetPredValDC和xDCPredFiltering

predIntraGetPredValDC函数返回当前块的DC值。xDCPredFiltering函数则对小于等于16x16大小的亮度块DC预测值滤波。Pel TComPrediction::predIntraGetPredValDC( const Pel* pSrc, Int iSrcStride, UInt iWidth, UInt iHeight){ // pSrc为当前重建块指针...

2019-12-09 10:37:32 2574

原创 HEVC代码分析-xPredIntraPlanar

该函数实现帧内planar预测模式,由重建像素生成当前块的planar模式预测块。Void TComPrediction::xPredIntraPlanar( const Pel* pSrc, Int srcStride, Pel* rpDst, Int dstStride, UInt width, UInt height ){ // 参数分别为重建像素数组,参考像素stride,预测像素...

2019-12-09 10:24:52 2736

原创 字节跳动视频编解码面经

三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试......

2019-11-20 15:25:45 200370 68

转载 C++11中变量初始化方法汇总

参考资料 [1] C++ Primer中文版(第5版) 1 背景     参考资料[1]P39提到,在C++语言中,初始化...

2019-10-25 19:13:00 4897

原创 欢聚时代(YY)视频编解码面经

引言欢聚时代可能很多人没听说过,我最开始也没听说过,不过七月的时候牛客网有SP专场,上面出现了这家公司,而且有视频编解码岗位,因此我就投递了,后来查了一下欢聚时代就是YY,而且虎牙,BIGO都是它的子公司。整体的面试进度很慢。一面大概投递了简历有一个多星期吧,约了视频一面。首先是自我介绍。。。然后是聊项目细节。。。问:我看你主要是做帧内预测,帧间预测你有了解吗答:我了解的就是先在AM......

2019-09-28 10:08:01 4324 2

转载 C++后台开发面试常见问题汇总

搬运自牛客网大神总结extern关键字extern修饰变量是个声明,此变量/函数是在别处定义的,要在此处引用extern修饰函数暗示这个函数可能在别的源文件里定义,没有其它作用。extern C的作用?用法?告诉编译器在编译函数名时按着C的规则去翻译相应的函数名而不是C++的(C++要支持多态,C没有)static关键字作用...

2019-09-25 11:27:04 3210

原创 秋招经历总结

个人情况先介绍一下个人的情况吧,985本硕,实验室也主要是做视频编码的。从大四暑假开始接触视频编码,到现在为止感觉水平一般,主要都是在帧内方向研究,论文投了一篇也没中,不过也有两篇挂名的。因为是专硕,只有两年,所以今年暑假就参加了秋招。平时主要是用C++,但是也仅限于hello world的水平,什么高级的也都不会。秋招主要就是想做视频编码或者C++开发。女朋友在上海工作,所以主要就是投上海的岗......

2019-09-25 11:21:21 4891 10

原创 递归

递归是一种编程方法,指的是函数调用自身来实现某种功能。递归只是让函数更容易理解,并没有性能上的优势。基线条件和递归条件由于递归是函数调用自身,所以编写使用递归的程序很容易出错。每个递归函数都应该包含两部分:基线条件和递归条件。基线条件指的是递归函数停止调用自身的条件,递归条件指的是函数调用自身的条件。基线条件一般是我们最容易处理的情况或者是我们的目标。阶乘函数在使用递归编写阶乘函数时,我们...

2019-03-18 19:37:21 2296

原创 H.266/VVC中的帧内预测

67种帧内预测模式为了能够刻画视频中任意边界方向特征,VTM4中的帧内预测角度模式增加到了65种(HEVC角度模式有33种)。如下图所示,新增的角度模式用红色虚线表示。同时planar和DC模式和HEVC仍相同。这些角度模式会被用于各种尺寸块各个分量的帧内预测。同时,在VTM4中,对于非方形的块进行帧内预测时,一些传统的角度预测模式会被自动替换成宽角度帧内预测模式(见后面)。另外,对于DC...

2019-02-25 15:07:45 4717 13

原创 H.266/VVC中的编码结构及块划分

将一帧图像划分成CTUsVVC中一个视频帧被划分成许多CTU。CTU的概念和HEVC中相同。对于一个三通道的图像帧,一个CTU包含N×N个亮度样点及对应的两个色度样点块。即每个CTU的大小都相同。如下图所示:VVC中亮度分量最大的CTU大小是128×128(HEVC是64×64)。需要注意VVC中最大的亮度变换块大小是64×64。CTU的划分在HEVC中,一个CTU通过四叉树结构划分成许...

2019-02-24 20:47:53 7463 11

原创 H.266/VVC中的新特性

所有描述均基于vtm4.0版本,本文主要是翻译JVET-M1002文档编码框架和之前的标准类似,VVC采用基于块结构的混合编码框架,融合了帧内和帧间预测、变化编码和熵编码等模块。如下图:VVC通过块划分将一帧图像划分成许多编码树单元(coding tree unit,CTU)。一个CTU通过多叉树(multi-type tree)划分被划分成许多编码单元(coding unit,CU)。每...

2019-02-24 17:06:14 3635

原创 H.266/VVC中的帧内子划分(Intra Sub-Partitions,ISP)

ISP (Intra Sub-Partitions)编码模式由LIP(Line-Based Intra)模式改进而来,主要是改正了之前LIP算法存在的一些硬件问题。LIP将亮度帧内预测块划分成一维(1-D)的子块或者行并逐行编码。即一个W×H的块可以被划分成H个(W×1)的横行或者是W个(1×H)的竖行。如下图:但是这样划分存在一些问题:1、划分的子块内样点数小于16( VTM2.0中最...

2019-02-22 13:36:33 4242 8

转载 HEVC整体代码流程及函数作用

转自:http://blog.csdn.net/nb_vol_1/article/details/51144828该作者也是转载,但是没有找到原地址。在此表示对这篇文章作者的感谢。 整个流程可以从compressGOP函数开始着手: 1、compressGOP对一整个图像组(GOP)进行编码,主要是遍历GOP中每一帧,对每一帧进行单独编码 2、每一帧又会被划分成若干slice(HM15中,每...

2019-02-20 16:56:00 2333

原创 HM的下载及使用

下载HM代码下载tortoisesvn并安装打开tortoisesvn repository browser复制链接https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/到弹出的对话框并点击ok找到你想要下载的版本并右键选择checkout,这里我下载的是HM-16.20运行HM代码我这里使用的IDE是VS2017。...

2018-10-30 10:54:17 8294 7

原创 微信小程序踩坑笔记

https请求请求必须是https微信小程序要求请求的url必须是https协议请求的url要在微信公众平台配置在开发时我们很可能用到本地服务器调试可以在开发工具的 项目–>基础配置 中设置不校验域名:使用的url携带参数必须用encodeURI方法编码在wx.request()方法中的url如果携带参数需编码,即将参数拼接起来组成url,然后再使用encodeURI方法。如果不这么做,在开发工具调

2017-07-31 14:11:25 2311

原创 JavaScript中的Array类型

js中Array类型是一种引用数据类型,与其他语言不同的是,数组中的每一项可以为任意类型,数组的大小也是可以动态调整的。创建数组有两种方法: 1.使用Array构造函数var foo = new Array(); //[]var bar = new Array(3); //[,,,]var hello = new Array('hello', 2); //['hello', 2]2.更常用

2017-07-15 15:29:26 2199

原创 JavaScript中的数据类型

分类5中基本数据类型:Undefined、Null、Boolean、Number、String。 1种复杂数据类型:Objectjs中的Object不同与java中的类,其本质是一组无序的键值对。具体类型判定使用typeof操作符,根据返回值判断数据类型:

2017-07-15 09:16:53 2021

原创 JavaScript中的DOM

文档对象模型(DOM)什么是DOM?DOM是一种接口(API),利用这个接口我们可以方便地操作HTML和XML页面。 这个接口将HTML或者XML页面看成一个由多个层次节点构成的结构,文档是由一个个节点组成的。也就是说DOM的核心就是节点。 每个节点都有自己的属性和方法,节点之间存在关系,这种关系就构成了层次。所有的页面标记表现为以某个节点为根节点的树形结构。节点类型文档中存在

2017-04-07 16:18:12 2001

原创 JavaScript中的私有变量

我们之前通过各种构造模式构建js对象,都是直接将属性添加在对象上或者对象的原型上。这样并不满足面向对象的封装思想,随便一个人只要使用o.property就能改变我们对象的属性,而且想怎么改怎么改。这就让我们有了创建私有变量的动力。私有变量怎么创建私有变量?首先我们要知道,函数内部的变量(使用var定义)不能被函数外部访问到,这就是函数的私有变量。那我们可以利用这一点来创建有私有变量的对象:在函数内部

2017-03-30 11:46:55 2237

原创 JavaScript作用域链与闭包

作用域链在js中当一个函数执行时发生了什么? 刚开始所有的代码都在全局环境里,当调用一个函数的时候就进入了函数的执行环境里。(执行环境也叫作用域),在作用域内部可以访问到外部的属性,这多亏了一条作用域链把全局环境和局部环境连在一块。 作用域链到底是什么呢,本质上来说它是一个指针列表,包含一些对象的引用,作用域内部可以访问这些对象的属性(按顺序来)。 也就是说,只有在作用域链中存在的对象在函数执

2017-03-16 20:21:40 2067

原创 JavaScript原型与继承

在上一篇创建对象的基础上继续思考。对象创建出来了,可是每次都要重新创建对象也太麻烦了。学生也是人,没必要重头写学生,完全可以由人扩展来。这就引出了继承。原型链js通过什么方法来实现继承呢?就是将对象的原型替换成另一个类的实例。由于原型链的存在,新的对象就有了很多属性和方法而不用我们重头再来创建。 例子:function Person(name) { this.name = name;

2017-03-16 11:04:10 2067

原创 JavaScript创建对象模式

要在JavaScript中创建一个对象,最简单的是直接使用字面量来创建,可是这么做在对象较多时会产生大量重复的代码,由此引发了创建对象模式的产生。这些模式就是用来产生对象的。工厂模式批量产生js对象function createPerson(name) { var o = new Object(); o.name = name; o.sayName = function()

2017-03-15 17:26:37 2059

原创 Java面向对象思想

这篇博客主要记录一下我对Java面向对象思想的理解,以便多年以后再做比较首先自己画的一张图面向对象:封装、隔离和重用这句话当然不是我总结出来的。学了这么久的面向对象,上了许炜老师的java课突然有种茅塞顿开的感觉。觉得老师的这句话很有道理,便想写一点自己的理解(大部分来自老师)并记录下来。封装将属性和方法放在一起,不是这个类的属性和方法绝对不会添加进来。 这样产生的才是一个类。人为什么不同于桌子?

2017-03-13 11:16:13 2275

原创 jQuery中toggle方法实现多个函数轮流执行

最近在看锋利的jQuery发现不能像书中所说用toggle方法来实现点击轮流执行多个函数。 查了一下发现jQuery1.9版本之后删除了toggle上述功能,只保留了隐藏的功能。个人觉得很不理解,这么好的一个功能咋说没就没了呢,于是便想何不自己来实现,写一个myToggle呢? 首先说一下myToggle函数:被一个jquery对象实例调用,可以接收多个函数做参数,当每次点击该实例对象时,轮流执

2016-12-12 15:49:57 6120 1

原创 javascript DOM中的childNode问题

javascript DOM中的childNode问题childNodes到底怎么计算?如何准确找到想要的那个childNode?在看书时觉得childNodes就那么回事,可是真正用起来发现根本不知道如何准确找到想要的那个childNode。firstChild和lastChild也经常不知道是哪个。 首先说一下childNodes属性,返回子节点列表,这里子节点不包括子子节点,firstChi

2016-12-05 18:17:46 2890

啊哈!算法.zip

《啊哈!算法》是一本充满智慧和趣味的算法入门书。没有枯燥的描述,没有难懂的公式,一切以实际应用为出发点,通过幽默的语言配以可爱的插图来讲解算法。你更像是在阅读一个个轻松的小故事或是在玩一把趣味解谜游戏,在轻松愉悦中便掌握算法精髓,感受算法之美。

2019-06-17

深度学习入门之PyTorch

深度学习如今已经成为了科技领域最炙手可热的技术,在本书中,我们将帮助你入门深度学习的领域。本书将从人工智能的介绍入手,了解机器学习和深度学习的基础理论,并学习如何用PyTorch框架对模型进行搭建。通过阅读本书,你将会学习到机器学习中的线性回归和logistic回归,深度学习的优化方法,多层全连接神经网络,卷积神经网络,循环神经网络以及生成对抗网络,同时从零开始对PyTorch进行学习,了解PyTorch基础及如何用其进行模型的搭建,最后通过实战了解最前沿的研究成果和PyTorch在实际项目中的应用。

2019-03-12

机器学习实战pdf去水印

机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或模式,成为各行业求生存、谋发展的决定性手段,这使得这一过去为分析师和数学家所专属的研究领域越来越为人们所瞩目。 本书第一部分主要介绍机器学习基础,以及如何利用算法进行分类,并逐步介绍了多种经典的监督学习算法,如k近邻算法、朴素贝叶斯算法、Logistic回归算法、支持向量机、AdaBoost集成方法、基于树的回归算法和分类回归树(CART)算法等。第三部分则重点介绍无监督学习及其一些主要算法:k均值聚类算法、Apriori算法、FP-Growth算法。第四部分介绍了机器学习算法的一些附属工具。

2018-11-20

机器学习实战PDF

机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或模式,成为各行业求生存、谋发展的决定性手段,这使得这一过去为分析师和数学家所专属的研究领域越来越为人们所瞩目。 本书第一部分主要介绍机器学习基础,以及如何利用算法进行分类,并逐步介绍了多种经典的监督学习算法,如k近邻算法、朴素贝叶斯算法、Logistic回归算法、支持向量机、AdaBoost集成方法、基于树的回归算法和分类回归树(CART)算法等。第三部分则重点介绍无监督学习及其一些主要算法:k均值聚类算法、Apriori算法、FP-Growth算法。第四部分介绍了机器学习算法的一些附属工具。 全书通过精心编排的实例,切入日常工作任务,摒弃学术化语言,利用高效的可复用Python代码来阐释如何处理统计数据,进行数据分析及可视化。通过各种实例,...

2018-11-20

遗传算法优化支持向量机GASVM

遗传算法优化支持向量机GASVM matlab代码 GA/SVM 程序包含三个文件: 1。MainGA12.m 2。selectGA12.m 3。svmc12.m MainGA12.m是主文件,其余两个是被调用文件。 MainGA12.m里主要设置有关参数。

2018-09-26

dipum_toolbox_2.0.1

冈萨雷斯一书的程序集,及dipum工具箱代码,数字图像处理的Matlab实现的,.p文件

2018-06-13

LINGO-WINDOWS-64x86-17.0

LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”,由美国LINDO系统公司(Lindo System Inc.)推出的,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等,功能十分强大,是求解优化模型的最佳选择。

2018-06-13

Linear Algebra Done Right

线性代数应该这样学,英文版本。书起点较低,不需要太多预备知识,而特色鲜明,是公认的阐述线性代数的经典佳作。原书自出版以来,迅速风靡世界,在30多个国家为200多所高校所采用,其中包括斯坦福大学和加州大学伯克利分校等著名学府。

2018-06-12

The Matrix Cookbook

我特别喜欢的一本的书,听名字就知道是喜闻乐见的深入浅出的良心书...基本上涵盖了所有基础的Matrix和Linear Algebra的知识。可以当做入门教材,也可以当工具书来查阅。

2018-06-12

最优化导论-第4版

作者: Edwin K. P. Chong / Stanislaw H. Zak 出版社: 电子工业出版社 原作名: An Introduction to Optimization,Foulth Edition 译者: 孙志强 / 白圣建 / 郑永斌 / 刘伟 出版年: 2015-10 页数: 415 定价: 89.00 装帧: 平装 丛书: 经典译丛·人工智能与智能系统 ISBN: 9787121267154 本书是一本关于最优化技术的入门教材,全书共分为四部分。第一部分是预备知识。第二部分主要介绍无约束的优化问题,并介绍线性方程的求解方法、神经网络方法和全局搜索方法。第三部分介绍线性优化问题,包括线性优化问题的模型、单纯形法、对偶理论以及一些非单纯形法,简单介绍了整数线性优化问题。第四部分介绍有约束非线性优化问题,包括纯等式约束下和不等式约束下的优化问题的最优性条件、凸优化问题、有约束非线性优化问题的求解算法和多目标优化问题。中文版已根据作者提供的勘误表进行了内容更正。

2018-06-12

空空如也

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

TA关注的人

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