自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (4)
  • 收藏
  • 关注

原创 JEM中的SIMD优化

SIMD是Single Instruction,Multiple Data的缩写——意为单指令多数据,是inter开发的多媒体指令集,采用C++封装接口,底层调用汇编语言,因此执行效率很高。适合重复且可以并行的计算场合。由于编码器在计算SAD操作需要反复读写数据,并且适合并行执行,因此JEM在计算SAD的时候使用了单指令多数据的优化(SIMD),以16*16块的SAD计算为例:UInt GetSA...

2018-05-17 20:52:55 809

原创 HEVC 码率控制

   码率控制通常分为三个level,分别为GOP级、Frame级、LCU级,其中Frame级分为三种方案,分别为等bit码率分配、固定比例码率分配、自适应比例的码率分配,其中固定比例分配方案是李斌博士提出,自适应比例分配是其师弟在其基础上提出的,本文给出了李斌博士提出的方案。  GOP级码率分配如下式:    SW是窗的大小,建议设置成40,用于平滑码率。Frame级固定比例码率分配:     ...

2018-05-17 13:32:36 2622 10

原创 H.266的进展

   至此,H.266结束了长达3年的探索阶段,正式开始制定标准,并于4月的JVET会议中,确定了H.266的参考软件VTM,该参考软件有HHI研究院提出,后期将会有很多新技术出现,等新的参考软件及对应的技术草案公布后,本人将介绍一下VTM相比于JEM所做的改变。...

2018-05-11 18:48:08 6621

原创 H.266中的双边滤波(Bilateral filter)

   为了进一步消除因变换量化导致的振铃效应,在H.266的探索阶段,爱立信公司在第4次JVET会议中提出了一种双边滤波技术,并被JVET接受。该技术存在于反变换之后,提案JVET-D0069给出了具体的技术方案和编码性能,对于AI和RA结构的性能分别为0.45%和0.50%。        上图给出了滤波器的形状,呈现十字型。该技术用十字型的滤波器对反变换的重建块进行滤波操作,滤波器的系数与像素...

2018-04-23 21:45:41 894

原创 一个做视频编解码的求职之路

秋招于10月15号左右结束了,现在为大将分享一下做视频编解码方面的公司和我面过的企业,整个校招我大概面了13家左右的公司,在北京的公司,这是为了找找求职经验的,很遗憾的互联网公司一家没面过,秋招最失败的地方。 据我了解招收视频编解码的公司有(仅我校招接触的,面过三四家),仅列出部分大公司,还有很多小平台: 今日头条 三星 华为/华为海思 联发科......

2017-11-14 11:30:07 9383 14

原创 H.266中的多核变换

在HEVC标准中基本上仅仅使用DCT2作为变换核,只在帧内4*4的块的亮度分量使用了DST变换,而H.266的多核变换技术引入了更多的选择,新引入了DST7,DCT8,DCT5,DST1,目前仅仅帧间保留了DCT8和DST7,帧内全部存在,由于266不存在TU的概念,即CU=PU=TU那么就出现了非方形的变换块,且可以使用非对称的变换核,因此,以帧间为例出现了五组变换核(DCT2,DCT2),(D

2017-09-14 11:07:15 1791

转载 内存池、进程池、线程池

池的概念由于服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是以空间换时间,即“浪费”服务器的硬件资源,以换取其运行效率。这就是池的概念。池是一组资源的集合,这组资源在服务器启动之初就完全被创建并初始化,这称为静态资源分配。当服务器进入正式运行阶段,即开始处理客户请求的时候,如果它需要相关的资源,就可以直接从池中获取,无需动态分配。很显然,直接从池中取得所需资源比动态分配资

2017-08-07 22:13:02 319

原创 快速、插入、冒泡排序,二分查找

void swap(int *a,int*b) {int temp = *a;*a = *b;*b = temp;}void quicksort(int arr[],int left,int right) //快速排序 {if (left>right){ return;}int temp = arr[left];int i = left;int j = right;wh

2017-08-03 19:45:59 338

原创 H.266中的Affine模式

Affine模式是H.266新引进的帧间预测模式,针对旋转,缩放的场景有很好的预测效果,在参考软件中实现了简化版的affine transform motioncompensation prediction,affine模式在sub-cu级(4*4的块)起作用如下图:curr块的运动信息均有左上角和右上角的MV计算得到,公式如下,跟curr块中的sub-cu的坐标有关系,而V0和V1是

2017-08-02 17:04:15 2290

原创 顶层const和底层const

const是一个限定符,只有在限定指针的时候才存在顶层和底层const,例子如下:一、底层const 指向常量的指针: int const *p=8; 其中的const称为底层const,指针p指向的内容不可变,即 *p=10;是错误的,不可通过*p改变p指向地址中的内容。二、顶层const 常量指针:int* const p=&a; 其中的const称为顶层c

2017-07-27 21:40:13 350

原创 链表合并

题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 解题:本题可有循环也可由递归实现,代码给出了递归实现的方式。 代码: class Solution { public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {if (pHead1 == NULL) return pHe

2017-07-26 21:55:17 235

原创 最大子段和问题的动态规划解法

题目:给定一个一维数组,求出该数组最大字段和为多少? 解题:该题解法很多,本文仅提供一种动态规划的解法,复杂度为O(n), SUM=max{b[j-1]+a[j],a[j]} 其中: if b[j-1]>0 b[j]=b[j-1]+a[j] else b[j]=a[j];int MaxSum(int n, int *a)

2017-07-26 16:13:30 642

原创 H.266中的FRUC模式

目前的H.266引入两个新的帧间预测模式,一个是有华为提出的AFFINE模式,另一个是有高通提出的FRUC(Frame rate up conversion)模式,本文主要介绍FRUC模式,以后会介绍AFFINE模式,FRUC大约给H.266带来了5%左右的性能(CTC下),FRUC模式包含两个解码端导出运动信息的技术,一个叫TM(template matching),另一个叫BM(Bilater...

2017-07-26 15:37:36 4505

原创 数组中只出现一次的数字

题目:给定数组中只有两个数出现一次,其他的数都出现两次,请找出这两个数。 解题:0^0^1=1, 1^1^0=0可知,异或运算可以找出数组中出现一次的数字(如果只有一个数字的话),a^a^b^b^c^d=c^d,可知数组异或运算的结果为出现一次数字的异或的结果,那么结合数组异或结果的数字就能找出这两个数字,可根据c^d的结果的第一个为1的二进制位(c,d中该二进制为一个为0,一个为1),将数组分成

2017-07-25 22:18:27 263

原创 判断一个数组是不是二叉搜索树的后序遍历

题目:给定一个数组判断该数组是不是一个二叉搜索树的后序遍历结果 解题:后序遍历的最后一个数为该树的根,且二叉搜索树有个特点,就是左结点的数都比根结点小,右结点的数都比根结点大,根据此特性就可以判断数组是否是二叉搜索树的后序遍历。 代码如下: //判断一个数组是不是二叉搜索树的后序遍历 bool VerifySequenceOfBST(int sequence[],int length) {

2017-07-25 14:47:21 536

原创 H.265帧内预测技术

帧内预测一般每代标准提出的新技术或者改进都比较少,主要集中在扩展原有的预测模式(从264的9种->H.265的35->目前H.266的67),增加一些参考像素的滤波技术和预测像素在边界上的滤波技术等等,原因是帧内预测能够拿到的参考信息比较少,且实际中,全I帧的配置,应用场景很少,主要精力不在I帧上,公司都比较注重优化RA配置下的编码器,这个配置应用场景更加广。H.265在帧内预测上并没有很新颖

2017-07-24 21:01:31 2098 1

原创 1000!结果中0的个数

题目:计算出1000!结果中0的个数。解题:由于1*2*3*4*.....1000,0是有2*5产生,由于上式中2的个数远多于5,所以计算出5的个数,即是0的个数。程序如下:int ZeroNum(int n) {int num=0;for (int i = 0; i < n;i++){ int x = i; while (x/5!=0) { if

2017-07-24 20:00:08 470

原创 实现加法计算(不用加减乘除运算符)

题目: 不用加减乘除实现两个数相加。 解题:第一步:不考虑进位,两个数相加sum(例如:5+7=2) 第二步:求进位carry(例如:5+7有进位10) 第三步:sum加carry,若有进位返回第一步,若无进位,跳出。 代码实现中用异或(^)实现第一步,用与(&)实现第二步.int Add(int num1, int num2

2017-07-24 16:43:39 962

原创 HM代码中Z-order扫描和Raster扫描之间的地址映射问题

HM中的CU划分过程是按Z-order处理的,所以预测中的很多信息是按z-order存储的,比如划分深度、预测方向、帧内模式等等,而我们人为的寻址都是习惯性按照光栅的顺序,所以在HM中存在Z-order到Raster之间的映射,也存在Raster到Zorder之间的映射,注意:HM中的信息都是按照4*4块的大小保存的,例如,一个CTU会保存256个深度信息,对应256个4*4块,显然会有很多值是重

2017-07-24 09:35:06 1783

原创 H.265的帧间预测

H.265帧间预测帧分为:低延时P帧、低延时B帧,随机接入B帧,P帧为单向预测帧--前向预测,但是P帧中的编码单元可以为帧间预测块(前向预测)也可以为帧内预测快,对于H.265 P帧一般有四个参考帧,编码器根据率失真代价准则,在四个参考帧中搜索当前块的匹配块;B帧采用双向预测,B帧中的编码单元可以采用帧间预测(前向预测,后向预测,双向预测都可以)也可以是帧内预测,B帧一般会有两个参考帧列表(Lis

2017-07-23 13:29:11 2656

原创 大端存储与小端存储

在各种计算机体系结构中,对于字节、字等的存储机制有所不同,主要有两种存储模式:大端存储和小端存储,两种定义如下:大端存储:高字节数据存储在计算机内存的低地址上,低字节数据存储在计算机内存的高地址上。小端存储:高字节数据存储在计算机内存的高地址上,低字节数据存储在计算机内存的低地址上。下面给出一个实例:对于32为的数据:0x12345678,两种存储形式如下:  

2017-07-22 11:32:24 477 1

原创 对称二叉树问题

题目:给定一个二叉树,判定是否是对称二叉树。 解题:若这个棵二叉树的先遍历左结点再遍历有结点和先遍历有结点后遍历左结点,访问到的结点值相同(包括null结点),则表明这个树为对称二叉树。 代码如下: #include “iostream” using namespace std; bool isSymmetrical(TreeNode*pRoot) {return isSymme

2017-07-21 14:57:00 289

转载 数据库基本操作

转载:http://www.cnblogs.com/yejiurui/archive/2012/10/11/2719384.html MySQL数据库CRUD语句快速入门本文目录:SQL语句… 1一、针对数据库database和表table的操作… 11、database和table的常见操作… 12 操作数据库… 23、操作表… 34、针对表中数据的增删改查… 45、表的约束… 96 表的关系…

2017-07-21 11:25:50 530

原创 Performance Comparison of H.265_MPEG-HEVC, VP9, and H.264/MPEG-AVC Encoders

本文主要依据论文和提案比较现有的H.266参考软件相比于HEVC的性能提升,以及HEVC相比于AVC和VP9的性能比较:           1.HEVC VS AVC and VP9    论文:Performance Comparison of H.265/MPEG-HEVC, VP9, and H.264/MPEG-AVC Encoders对比了现有的各种编码器的性能差别,数

2017-07-20 22:26:19 1232

原创 H.266的块划分(QTBT)

H.265的预测单元(PU)有八种的划分方式,CU和TU均采用四叉树划分,三个概念不一样,但是对于H.266三个概念将完全一样,不存在划分上的区分,在此我们统称为编码单元,CU=PU=TU,因此代码更加容易理解,H.266中编码单元采用四叉树二叉树(QTBT)划分,二叉树划分有所限制,具体见技术提案,并且帧内Y分量和UV分量的划分时独立的,不在继承Y的划分情况,这是一个较大的改变,CU可以四叉树划

2017-07-20 21:47:56 2355 1

原创 孩子们的游戏

题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数….这样下去….直到剩下最

2017-07-20 21:24:36 366

原创 数字视频格式及CTC的测试序列

现有的视频编码标准(H.264,H.265,AVS2等等)的输入视频格式均为YUV文件,YUV的文件格式相比于RGB文件,在信源采集的时候就可以进行一次压缩过程,RGB文件中,一个像素点有R,G,B三个分量构成,YUV文件中,像素点由Y,U,V三个分量构成,由于Y分量敏感,而U,V分量不敏感,所以出现了Y:U:V为4:4:4, 4:2:0,4:2:2等格式,具体的采样频率或者采样过程可查阅相关资料

2017-07-20 18:15:37 2417

原创 视频编解码的科普知识

随着通信技术、移动终端以及各种显示技术的发展,视频广泛用于人类生活的各个方面,例如在线视频、视频会议,3D视频,视频监控,远程教学,远程医疗等,据统计,视频是目前互联网上数据量最大的媒体。由于视频的数据量巨大和网络带宽的限制,不经过压缩处理的视频无法传输,提供在线观看,即使离线存储也是不现实的。视频编码技术是视频存储和传输的前提,是数字电视、网络视频、视频通信等应用的关键技术。因此,研究和开发高效

2017-07-20 17:11:46 1413

原创 H.265的块划分技术

灵活的块划分技术给H.265带来了很高的性能提升,相比于H.264而言,在参考软件中利用递归的方式实现了块的四叉树划分,H.265标准中对于编码单元有四个概念CTU, CU,PU,TU概念定义如下:(1)   编码树单元(CTU)和编码树块(CTB)结构:在之前的标准中,编码层的核心是宏块,一个宏块包含一个16×16的亮度块,以及对于常用的4:2:0采样格式来说还包含两

2017-07-20 17:00:27 3677

原创 最长递减子序列问题

题目:求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}解题:利用一个辅助数组保存每一位及之前的数组所构成的最长递减子序列。void print(int arry[], int index, int *pb){for (int i = index - 1; i >= 0; i--){ if (pb[index] == pb[i] +

2017-07-20 14:36:14 1115

原创 H.266的目前探索的情况

H.266的探索是从2016-02-24 开始提上日程,这是第一次会议,在Geneva召开的,至今已开过7次会议,性能上有较大的进展,相比上一代RA结构下应该有30%的性能提升,但是并没有很多的新技术,大部分加入技术都是以前在264或者265制定中提过的技术,比如CCLM,ALF,affine等等,H.266的制定方交JVET(joint video explore team)是由MPEG和I

2017-07-20 11:02:39 13043 1

原创 N个人过河问题

问题描述:有一个大晴天,Oliver与同学们一共N人出游,他们走到一条河的东岸边,想要过河到西岸。而东岸边有一条小船。 船太小了,一次只能乘坐两人。每个人都有一个渡河时间T,船划到对岸的时间等于船上渡河时间较长的人所用时间,现在已知N个人的渡河时间T,Oliver想要你告诉他,他们最少要花费多少时间,才能使所有人都过河。     注意,只有船在东岸(西岸)的人才能坐上船划到对岸。解

2017-07-20 10:39:03 3554

原创 HEVC(H.265)的技术亮点

本文介绍H.265视频编码标准的一些主要技术,部分内容是摘抄的,顺带附一份H.265的标准技术文档。       H.265是有JCTV组织制定,大约每三四个月会开一次会议,各标准制定成员会提交各自的技术提案进行pk,本人有幸参加了一次H.266标准制定的会议,场面相当激烈啊,各个公司之间的利益博弈,JCTVC(Joint CollaborativeTeam on Video Coding )

2017-07-20 10:11:37 1016

原创 初入视频编解码领域

我是从2015年9月份开始从事视频编解码方面的学习和研究,慢慢接触到视频编解码领域的一些大牛,了解视频编码的一些标准制定知识以及标准,目前处于找工作时间,科研也算放了一放,准备在复习H.265/H.266标准的同时,写写博客,本博客主要集中在H.265和目前正在探索的H.266,顺带会提及AVS的一些知识。       在视频标准制定的过程中,有个默认的规定,每十年左右会制定一代新的标准,新标

2017-07-20 09:27:37 6455 8

空空如也

空空如也

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

TA关注的人

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