- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 递归函数理解
//递归需要关注,每次递归达到的目的,包括影响了哪些全局值,或者改变什么全局状态;//另外是输入条件和边界条件,输入条件保证递归的环境是否一致;//结束条件,表明什么时候结束,避免无限递归。//最后是递归在函数中的位置,递归在函数开始,中间,末尾//递归函数在函数中不同的位置,影响点:1.函数前面部分对递归输入环境的影响;2.其全局结果对函数其他部分的影响。...
2021-01-27 00:28:05 182 1
原创 对OpenGL的理解
对opengl的理解1.从硬件处理流程上; 定点着色器,接受顶点坐标输入,对顶点经过处理,再经过几何着手器,片元着色器等。对要绘制的顶点,得到基本的轮廓和片元,转换成二位平面的坐标,再对片元进行光栅化处理,转换成像素坐标。 片元着色器,对每一个片元,上颜色。定点着色器和片元着色器是可编程的。定点着色器功能一般是加载顶点坐标,顶点坐标的加载,需要顶点缓冲器和buffer缓存器,即VAO和VBO实现。通过VBO将CPU内存中的顶点数据拷贝到GPU,通过VAO绑定...
2021-01-25 18:50:27 229
原创 iOS开发之读写文件
iOS读取本地文件 需先将要读取的文件,加载到工程Bundle Resource。(不可直接从Mac上读取文件,呜呜。。。)代码中通过 [[NSBundle mainBundle] resourcePath] 获取文件路径。//文件名NSString* av1StreamName = @"v1_av1_2F.ivf";//最终文件路径NSString* streamPath = [NSString stringWithFormat:@"%@/%@", [[NSBundle mai..
2020-10-28 20:36:14 1306
原创 LeeetCode374 二分查找
1.二分查找思想:在有序的数组中查找一个数,首先从中间开始找,根据比较情况缩小查找范围,再取小范围中间值做比较,依次类推。2.伪代码:array 1:nlet left = 1;let right = n;while left<=right middle = (right - left)/2+left; if(array[middle] == target) printf("find"); break; else if(array
2020-10-19 21:40:24 114
原创 OC和C++常用数据类型转换
1.OC类型(int, NSString*, NSView*, id)和void*相互转换://NSArray* -- void*NSArray* array;void* p = (__bridge void*)array;NSArray* array2 = (__bridge id) p;//NSView* -- void*NSView* view;void* pView = (__bridge void*)view;NSView* view2 = (__bridge id)pVie
2020-09-24 14:57:42 1058
原创 OC CVPixelBuffer不同图像格式间转换
1.YUV转RGB,调用libYUV- (BOOL)NV12ToRgbaPixelBuffer:(CVPixelBufferRef)pixelBufferNV12 pixelBufferRGBA:(CVPixelBufferRef)pixelBufferRGBA{ CVPixelBufferLockBaseAddress(pixelBufferNV12, 0); unsig...
2020-04-24 11:45:07 5524
原创 OC 常用图像格式之间转换
1.CGImageRef to NSImageCGImageRef cgImage;NSBitmapImageRep *bitmapRep = [[NSBitmapImageRep alloc] initWithCGImage:cgImage];// Create an NSImage and add the bitmap rep to it...NSImage *image = [[...
2020-04-13 20:13:03 2399
原创 YUV和RGB转换总结(待完成)
1.YUV分很多种类型。按颜色空间分包含:BT601和BT709;按像素分布范围分包含:FullRange(luma=[0,255]),和VideoRange(luma=[16,235])几种类型,每种类型的转换方式都不太一样。总结如下:...
2020-04-02 12:26:34 519
原创 OpenGL不同Context之间会导致资源冲突问题
OpenGL使用中常常会用多个context,每个context都有对应的资源,实现资源的独立。但是常常由于程序写法不严谨而导致不同context之间存在资源冲突。在项目中美颜处理和视频的上屏离屏和水印渲染就是用的不同context,开关美颜出现了影响水印的问题,可能是不同context导致的资源冲突,具体原因还未知,查清原因后,再来更新补充。...
2020-03-26 11:25:15 450 2
原创 OC 锁NSLock的应用
NSLock在多线程中起到重要作用,当多线程可能同时对同一变量访问时,会导致冲突和崩溃。这个时候用锁来保证线程间变量不冲突,起到至关重要的作用。使用NSLock时系统具体做了什么?为什么避免了冲突,需要再了解和深究。...
2020-03-25 18:09:25 646
原创 OpenGL学习
工程中遇到的一些收获和不解:关于离屏渲染,离屏渲染可以使用GPU来对图像做一些处理。包括颜色转换,缩放等。离屏渲染通常会将一个pixelbuffer和texture来绑定,通过函数CVOpenGLTextureCacheCreateTextureFromImage。1.buffer,texture,以及OpenGL的帧缓冲究竟是何关系;2.texture和buffer为何要绑定,t...
2020-03-25 18:04:23 273
原创 OC CVPixelBuffer内存管理
CVPixelBuffer可以用来保存多种格式的图像数据,包括YUV/RGBA等。在CVPixelBuffer的内存管理,包括何时释放,生命周期等,遇到一些坑,总结如下:1.OC的部分变量是系统管理,叫做ARC控制,不需要开发者来管理;有一些变量不受ARC控制(一般是C开头的变量,cv,cf等),需要开发者手动管理,手动释放,CVPixelBuffer就是这类变量。2.OC变量管理,常用两...
2020-03-13 19:25:38 3935
原创 x265源码阅读--准备工作
1.下载x265源码x265各版本下载链接我下载的是最新版2.8。2.编译源码生成VS工程;需要利用cmake工具,加入x265工程源码路径和项目生成路径,依次点击configure,和generate按钮,生成vs工程。3.打开生成的x265.sln工程,编译所有项目。会出现几个错误,其中有几个是关于pow函数的错误,将pow(a,2)改为pow(a*1.0,2),再重新...
2018-07-25 21:21:26 1146
转载 H.264笔记之一
H264标准参考软件 各个版本下载:http://iphome.hhi.de/suehring/tml/download/old_jm/JM8.6工作区包含3个工程(lencod、ldecod、rtpdump),前两个工程分别对应编解码。怎样设置某一工程为active,怎样设置工作目录、程序变量、调试编译。。参考 http://blog.csdn.net/stpeace/article/d
2015-03-18 10:58:10 195
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人