gpuimage

When should I call CVPixelBufferLockBaseAddress and CVPixelBufferUnlockBaseAddress?

一世执手 提交于 2021-02-10 19:52:30
问题 In iOS6, I'm using OpenGL to do some rendering on AVFoundation video frames. I've seen a lot of example code that makes use of CVPixelBufferLockBaseAddress and CVPixelBufferUnlockBaseAddress, but it's unclear to me when exactly I perform the lock and unlock or why I'm doing it. Should I be locking the address when the CPU is modifying the memory? Or should I lock it when the GPU is reading from it? When should I unlock? Why would I ever even want to unlock? I've seen this Stack Overflow

GPUImageMovieWriter - occasional black frames at either ends of the recorded video

|▌冷眼眸甩不掉的悲伤 提交于 2021-01-27 07:07:52
问题 I have recording app implementation where user can tap the "record" button to start/stop recording. I achieve this with a basic GPUImageVideoCamera with output set to a GPUImageView as well as a GPUImageMovieWriter . 50% of the time, the recorded clip ends up with a couple (or a single) black frame at either ends, sometimes both. The implementation is fairly straightforward, but here is it anyway. gpuImageView = [[GPUImageView alloc] initWithFrame:cameraView.frame]; gpuImageView.fillMode =

直播IOS端美颜滤镜技术分析

早过忘川 提交于 2020-08-11 11:09:43
随着各种各样的直播app的爆火,实时美颜滤镜的需求也越来越多。下面将主要介绍实现美颜滤镜的原理和思路,原理可以移步看下GPUImage原理,今天分享的是GPUImageBeautifyFilter美颜滤镜的实现。美颜只是不同滤镜组合起来的效果,实际上美颜也是一种滤镜,只不过它组合了各种需求的滤镜,例如磨皮、美白、提高饱和度、提亮之类的。图玩智能科技为企业提供更稳定更优质的美颜产品及服务,欢迎随时咨询 www.toivan.com 。 GPUImageBeautifyFilter GPUImageBeautifyFilter是基于GPUImage的实时美颜滤镜,包括 GPUImageBilateralFilter、GPUImageCombinationFilter、GPUImageHSBFilter。 GPUImageBeautifyFilter.h创建上面的对象 绘制步骤如下: 准备纹理 绘制纹理 显示处理后的纹理 一、 准备纹理(将要用到的类) [GPUImageVideoCamera] - [GPUImageBeautifyFilter] - [GPUImageBilateralFliter] - [GPUImageCombinationFilter] - [GPUImageCannyEdgeDetectionFilter] - 准备过程分三步: 第一个纹理: 1

基于GPUImage如何实现实时美颜滤镜

こ雲淡風輕ζ 提交于 2020-07-29 10:45:06
今天将主要介绍基于 GPUImage 实现美颜滤镜的原理和思路。图玩智能科技为企业提供更稳定更优质的美颜产品及服务,欢迎咨询 www.toivan.com GPUImage GPUImage 是一个开源的基于GPU的图片或视频的处理框架,其本身内置了多达120多种常见的滤镜效果。有了它,添加实时的滤镜只需要简单地添加几行代码。下面的例子是以摄像头的数据为源,对其实时地进行反色的操作(类似相片底片的效果): 利用 GPUImage 对摄像头数据添加滤镜的示例 2.1 其实美颜也是一样,如果有这么一个美颜的滤镜(姑且叫做GPUImageBeautifyFilter),那么只需要把示例2.1中的GPUImageColorInvertFilter替换成GPUImageBeautifyFilter即可。我们只需要做一个GPUImageBeautifyFilter就能实现实时美颜了,问题来了,到底什么算是美颜呢?我的理解是,大家对于美颜比较常见的需求就是磨皮、美白。当然提高饱和度、提亮之类的就根据需求而定。本文将着重介绍磨皮的实现(实际上GPUImageBeautifyFilter也实现了美白、提亮等效果)。 磨皮 磨皮的本质实际上是模糊。而在图像处理领域,模糊就是将像素点的取值与周边的像素点取值相关联。而我们常见的 高斯模糊 ,它的像素点取值则是由周边像素点求加权平均所得

如何基于GPU实现美颜?

强颜欢笑 提交于 2020-07-26 06:25:47
美颜基本概念 GPU :(Graphic Processor Unit图形处理单元)手机或者电脑用于图像处理和渲染的硬件 GPU 工作原理 :CPU指定显示控制器工作,显示控制器根据CPU的控制到指定的地方去取数据和指令, 目前的数据一般是从显存里取,如果显存里存不下,则从内存里取, 内存也放不下,则从硬盘里取,当然也不是内存放不下,而是为了节省内存的话,可以放在硬盘里,然后通过指令控制显示控制器去取。 OpenGL ES :(Open Graphics Library For Embedded(嵌入的) Systems 开源嵌入式系统图形处理框架 ),一套图形与硬件接口,用于把处理好的图片显示到屏幕上。 GPUImage : 是一个基于OpenGL ES 2.0图像和视频处理的开源iOS框架,提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜,内置120多种滤镜效果,并且能够自定义图像滤镜。 滤镜处理的原理 : 就是把静态图片或者视频的每一帧进行图形变换再显示出来。它的本质就是像素点的坐标和颜色变化 GPUImage 处理画面原理 GPUImage 采用链式方式来处理画面,通过addTarget:方法为链条添加每个环节的对象,处理完一个target,就会把上一个环节处理好的图像数据传递下一个target去处理,称为GPUImage处理链。 比如:墨镜原理,

直播音视频处理技术详解

故事扮演 提交于 2020-03-20 10:06:34
3 月,跳不动了?>>> 今天我们将从整体讲解常见视频处理功能:如美颜、视频水印、滤镜、连麦等。 视频或者音频完成采集之后得到原始数据,为了增强一些现场效果或者加上一些额外的效果,我们一般会在将其编码压缩前进行处理,比如打上时间戳或者公司 Logo 的水印,祛斑美颜和声音混淆等处理。在主播和观众连麦场景中,主播需要和某个或者多个观众进行对话,并将对话结果实时分享给其他所有观众,连麦的处理也有部分工作在推流端完成。 典型处理环节 处理环节中分为音频和视频处理,音频处理中具体包含混音、降噪和声音特效等处理,视频处理中包含美颜、水印、以及各种自定义滤镜等处理。 常见视频处理功能:美颜 都说「80% 的主播没有美颜根本没法看」,美颜是直播产品中最常见的功能之一。美颜的主要原理是通过「磨皮+美白」来达到整体美颜的效果。磨皮的技术术语是「去噪」,也即对图像中的噪点进行去除或者模糊化处理,常见的去噪算法有均值模糊、高斯模糊和中值滤波等。当然, 由于脸部的每个部位不尽相同,脸上的雀斑可能呈现出眼睛黑点的样子,对整张图像进行「去噪」处理的时候不需要将眼睛也去掉,因此这个环节中也涉及到人脸和皮肤检测技术。 常见视频处理功能:视频水印 水印是图片和视频内容中常见的功能之一,它可用于简单是版权保护,或者进行广告设置。处于监管的需求,国家相关部门也规定视频直播过程中必须打上水印

移动端实时音视频直播技术流程

雨燕双飞 提交于 2020-03-18 11:30:48
某厂面试归来,发现自己落伍了!>>> 随着互联网用户消费内容和交互方式的升级,支撑这些内容和交互方式的基础设施也正在悄悄发生变革。手机设备拍摄视频能力和网络的升级催生了大家对视频直播领域的关注,吸引了很多互联网创业者或者成熟企业进入该领域。 本文是我们将从整体介绍直播中的各个环节。 1 、音视频采集 采集是播放环节中的第一环,iOS 系统因为软硬件种类不多,硬件适配性较好,所以比较简单。Android 则不同,市面上硬件机型非常多,难以做到一个库适配所有硬件。PC 端的采集也跟各种摄像头驱动有关,推荐使用目前市面上最好用的 PC 端开源免费软件 OBS。 2 、音视频处理 「80% 的主播没有美颜根本没法看。」不光是美颜,很多其它的视频处理如模糊效果、水印等也都是在这个环节做。目前 iOS 端比较知名的是 GPUImage 这个库,提供了丰富端预处理效果,还可以基于这个库自己写算法实现更丰富端效果。Android 也有 GPUImage 这个库的移植,叫做 android-gpuimage。同时,Google 官方开源了一个伟大的库,覆盖了 Android 上面很多多媒体和图形图像相关的处理。 3 、音视频编码 编码主要难点有两个: 处理硬件兼容性问题。 在高 fps、低 bitrate 和音质画质之间找到平衡。 iOS 端硬件兼容性较好,可以直接采用硬编。而 Android