- 博客(20)
- 收藏
- 关注
原创 用github对unity进行版本管理
在开发工程的时候,Hololens与unity总会有一些玄学的bug,时而可以运行,时而不行,但是在原工程上改了之后无法回退,不方便找到一个之前可以使用的版本,所以想着学习如何使用git,并且把工程同步到github上。
2023-04-18 21:54:41
2509
原创 【ECM技术】Non-adjacent special candidates技术
该技术修正了merge候选列表建立的过程。merge候选列表添加的顺序为:空域候选,图中的1-4TMVP不相邻的空域候选,图中的6-20(新增)HMVP成对平均MVP零候选其中不相邻的空域候选的推导如下:往外扩展四圈,每圈水平方向步长增加CUwidth,垂直方向步长增加CUheight。在每圈上找出五个坐标,由offsetX和offsetY共同定位,分别为0~4,如图所示。第一圈取0,1,4,剩余两圈均取五个。轮数为index,每轮水平偏移量为iHor=width*(index+1
2022-01-13 19:15:57
2171
4
原创 【ECM技术】局部光照补偿技术(LIC)
该技术的核心是当前块与参考块之间存在线性光照变化,并且此变化是线性变化。通过当前块和参考块的相邻重构像素(模板),拟合出线性函数a*p[x]+b来补偿光照变化。其中p[x]为参考块,a为缩放因子,b为偏移量,如下图所示其中a和b利用最小二乘法推导得到: LIC使用条件:CIIP模式和IBC模式禁用面积小于32的块禁用LIC flag 没有时域继承性生成merge候选列表时无需基于LIC flag进行修剪不可用于双向预测()LIC应用于1616的处理单元时,使用当前CU中左上
2022-01-13 15:47:54
2371
原创 【ECM技术】ECM(Enhanced Compression Model)帧间技术总结
1、LIC技术 (Local illumimation compensation)2、 Non-adjacent spatial candidate3、TM (Template matching)4、Multi-pass decoder-side motion vector refinement5、OBMC6、Sample-based BDOF7、Interpolation8、MHP(Multi-hypothesis prediction)——JVET-M04259、ARMC-TM(Adaptive re.
2022-01-12 11:12:52
2635
原创 【leetcode】二分法-34.在排序数组中查找元素的第一个和最后一个位置
题目:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。题目分析:不考虑时间复杂度的话,可以直接遍历该列表,记录target所在的所有位置存放在一个vector中,如果遍历结束,该vector为空,则说明给定数组中没有target值;若该vector的size==1,则说明target只出现过一次,那么在补充填入一个结束位置即可;否则,该target在数组中出现多次,那么vect
2021-10-25 23:38:12
326
原创 【leetcode】二分法-374.猜数字大小
题目:猜数字游戏的规则如下:每轮游戏,我都会从 1 到 n 随机选择一个数字。 请你猜选出的是哪个数字。如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了。你可以通过调用一个预先定义好的接口 int guess(int num) 来获取猜测结果,返回值一共有 3 种可能的情况(-1,1 或 0):-1:我选出的数字比你猜的数字小 pick < num1:我选出的数字比你猜的数字大 pick > num0:我选出的数字和你猜的数字一样。恭喜!你猜对了!pick == n
2021-10-24 23:45:31
171
原创 【leetcode】二分法题目汇总
二分查找简单:35.搜索插入位置278.第一个错误版本374.猜数字中等:34. 在排序数组中查找元素的第一个和最后一个位置375.猜数字大小II35. 找到 K 个最接近的元素464.我能赢吗486.预测赢家373. 查找和最小的K对数字378. 有序矩阵中第 K 小的元素困难:38. 找出第 k 小的距离对668. 乘法表中第k小的数669. 第 K 个最小的素数分数...
2021-10-23 15:25:56
354
原创 【leetcode】二分查找-35.搜索插入位置
题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例:输入: nums = [1,3,5,6], target = 5输出: 2题目分析:如果不考虑时间复杂度,那么可以用暴力搜索,逐个循环,当出现第一个比target大的值时,就插入。若考虑时间复杂度为O(log n),那么就需要用到二分法。二分法的思路是将target与已排序的数组的中间值比较,若target大,则新
2021-10-23 14:56:17
177
原创 【leetcode】摩尔投票-229.求众数 & 169.多数元素
题目:给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。测试用例:输入:[3,2,3]输出:[3]题目分析:这是一个摩尔投票问题。所谓摩尔投票,就像一场大仗,分为两个阵营,若两个阵营都有活着的士兵,则互相厮杀,直至某个阵营完全破灭。而该题目,对于任意一个数组,假设有m个数出现恰好n/3次,那么还剩n-nm/3=(1-m/3)n>=0,那么m<=3,由于要超过n/3次,因此m<3,即m最大为2,也就是任意一个数组,最多只有2个数出现超过n/3次。因此,假
2021-10-23 00:17:17
223
原创 【笔记】c++基础知识(二)
默认初始化如果定义变量位于任何函数之外均默认初始化为0;若位于函数之内,变量将不被初始化。C++支持分离式编译,还将声明和定义区分开来。变量声明规定了变量的类型和名字。而定义还申请了存储空间,也可能会为变量赋一个初值。若想声明一个变量而非定义,就在变量名前加“extern”,不要显示地初始化变量;任何包含显示初始化的声明称为定义。变量只能被定义一次,但是可以多次声明。如果要在多个文件中使用同一个变量,必须将定义和声明分离,并且来定义必须且只能出现在一个文件中,而其他用到该变量的文件必须对其进行声明。
2021-10-22 22:31:07
123
原创 【笔记】c++基础知识(一)
这是自学c++以来的笔记,只要是基础部分,记得没有特别完整,主要是一些自己容易忘的和比较不熟悉的。定义常量1、宏定义(全局)#define …不需要分号2、counst 数据类型常量名 = 常量值string与charchar A=’b’对,char B =’abc’错!char B[]=“abc”对,stringB[]=“abc”对char只能存放单个字符,字符串需要用数组或者string。常用转义字符\n换行 \t TAB输入 cin>>变量>>en.
2021-10-22 15:33:50
146
原创 【VTM10.0代码学习】帧间预测xCheckRdCostMerge2N*2N
xCheckRdCostMerge函数在xCompressCU中被调用,这里包括了常规Merge模式、CIIP模式和MMVD模式,GPM在xCheckRDCostGeo函数中。也就是说常规Merge、CIIP、MMVD共用一个代价列表,从中选出三个模式下的最优预测,同其他普通帧间、Affine模式再一同比较。 注释都写的比较详细,一部分参考了其他大神还有师兄的注释,让我刚入实验室就能更好的理解代码。代码片中有些宏是用来测试时间的,大家可以忽略。void EncCu::xCheckRDCostMer
2020-11-22 18:11:00
689
原创 【笔记】HEVC 编码标准(六)——量化
量化是指将信号的连续取值(或大量可能的离散取值)映射为有限多个离散幅值的过程,实现信号取值多对一的映射。量化不可避免地引入失真。量化器可分为标量量化器和矢量量化器。目前主流的图像、视频编码标准都使用了标量量化器。一、标量量化1、基本原理标量量化是将一个幅值连续的信号映射成若干个离散的符号,如图所示,将横轴即输入信号划分为M个互不相交的区间(图中M=9):Iq=[tq,t(q+1) ),q=0,1,…,M-1tq为区间端点,称为量化器的判定边界。对于每个区间,分别取点x ̂q作为输出值,也称重建值
2020-09-28 21:16:22
4208
原创 【笔记】H.265/HEVC 视频编码(五)——变换编码
图像变换编码是将空间域中像素形式描述的图像转换至变换域,以变换系数的形式加以表示,可使图像能量在空间域的分散分布转为在变换域的相对集中分布,已达到去除空间冗余的目的。H.264/AVC首次使用了整数DCT。H.265/HEVC沿用了整数DCT并进行了推广,还引入了DST。一、离散余弦变换DCT1、DCT原理数学里共存在八种类型的DCT,在图像、音视频编码等多媒体信号处理领域,使用的是Ⅱ类DCT,其逆变换对应于Ⅲ类DCT。Ⅱ类DCT的一维形式如下:其中,在图像、视频编码上主要使用二维DCT。其
2020-09-20 20:34:22
2563
2
原创 【笔记】H.265/HEVC 视频编码(四)——预测编码
预测编码时视频编码中的核心技术之一。对于视频信号来说,一幅图像内邻近像素之间有较强的空间相关性,相邻图像之间有较强的时间相关性。因此采用帧内预测和帧间预测的方式,去除视频的空域和时域的相关性。视频编码器对预测后的残差进行变换、量化、熵编码,而不是对原始像素,大幅提高了编码效率一、视频预测编码技术1、预测编码原理预测编码是指利用已编码的一个或几个样本值,根据某种模型或方法,对当前样本值进行预测,并对样本真实值和预测值之间的差值进行编码。视频是一种有记忆信源,有记忆信源的两种有效编码方式是联合编码和条件编
2020-09-18 10:18:35
4823
2
原创 【笔记】H.265/HEVC 视频编码(三)——编码结构
H.265/HEVC在编解码的设计上添加了多种新的语法结构,使得H.265/HEVC在压缩效率和网络适应性两个方面有显著提升。一、编码结构1、分层处理架构视频序列是由若干连续时间连续的图像组成的,在对其进行压缩时,先将视频序列分割为小的图像组(GOP),GOP类型有两种:封闭式GOP和开放式GOP。所谓封闭式GOP是指每一个GOP都以IDR图像开始,各个GOP之间独立地编解码。而开放式GOP中,第一个GOP中的第一个帧内编码图像必须是IDR图像,后续GOP中的第一个帧内编码图像为non-IDR图像,因
2020-09-09 16:50:53
2885
原创 【笔记】H.265/HEVC 视频编码(二)——数字视频格式
一、数字视频视频技术泛指一系列的图像以电信号的方式加以捕捉、记录、处理、存储、传送与重现的各种技术。数字视频即以数字形式记录的视频,数字视频由一幅幅数字图像组成,每幅图像由N行,每行M个像素组成,每个像素由数字化的数值表示。数字视频有视频分辨率、时间分辨率、帧率、色彩空间、量化深度等参数,这些参数的组合成为视频格式。时间分辨率即帧率,帧率越高流畅性越好,但当帧率到达一定程度后,再提高帧率,人眼是无法分辨出质量的好坏,因此,不必一味追求帧率。空间分辨率越高,图像细节越清晰。1、颜色空间(1)三基色原理
2020-09-08 16:25:28
3599
原创 【笔记】H.265/HEVC 视频编码(一)
为什么要进行视频压缩?就拿一个例子来说,720P的视频,假设帧率30fps,三个色彩分量的每个像素点为8bit,那么每一秒的数据量为12807203830=6.64*10^8比特,这还只是一秒的数据量,一部电影少也有90分钟左右,可见原始视频的数据量是非常惊人的,无法直接用于传输或存储,因此需要视频压缩。视频压缩的目的是尽可能去除视频数据的冗余成分,减少表征视频的数据量。一、视频压缩与编码概述1、视频视频的基本单位是图像,视频中完整的图像称为帧(Frame),许多帧按照时间顺序组成的视频称为视频序列
2020-09-05 21:41:27
1772
原创 【笔记】计算机图形学基础(二)——OpenGL软件包概述
开放图形库OpenGL是图形硬件的一个软件接口,实现各种二维和三维的高级图形处理技术。OpenGL独立于硬件设备和窗口模式,在运行各种操作系统的计算机上都能使用,且图形函数定义独立于任何程序设计语言的一组规范,可移植性高。一、OpenGL的主要功能1、模型绘制。能够绘制点、线、多边形,通过基本形状,可以构造出几乎所有的三维模型;还提供球、多面体、茶壶等复杂物体以及贝塞尔、NURBS等曲线曲面的绘制函数。2、模型观察建立三维景物模型后,可利用OpenGL描述如何观察所建立的三维模型,需要建立一系列变
2020-09-01 16:36:25
1015
原创 【笔记】计算机图形学基础(一)
一、计算机图形学及其相关概念计算机图形学是利用计算器产生图形化的图像的艺术和科学。1、图形及其表示方法计算机图形学的研究对象是图形。构成图形的要素有两类,一是形状的点线面等几何要素,二是反映物体本身的固有属性,如明暗、灰度等。因此,计算机图形学所研究的图形可以理解为客观世界抽象出来的带有颜色信息及形状信息的图和形。计算机中表示带有颜色及形状信息的表示方法有点阵法和参数法。点阵法是用具有灰度或颜色信息的点阵来表示图形。它强调图形由什么点组成,这些点具有什么灰度或色彩。用点阵法描述的图形称作图像(Ima
2020-09-01 15:25:27
2717
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人