Skip to content

GPUPicture_IO

pengbin edited this page Apr 25, 2017 · 15 revisions

图像到GPU的输入输出

为了支持图像的采集和处理, 我们往往会需要在内存和GPU之间传输图像

本SDK提供了 KSYGPUPicInput和KSYGPUOutput两个类来实现这个传输的过程.

直播过程中我们用到图像的像素格式主要有3种

像素格式 iOS OSType
NV12 kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange
I420 kCVPixelFormatType_420YpCbCr8Planar
BGRA kCVPixelFormatType_32BGRA

KSYGPUPicInput 和 KSYGPUOutput 能够支持以上3种格式的输入和输出.

下面列举一些可能的传输情况: KSYGPUPicInput 和 KSYGPUOutput 下文简称 picIn, picOut.

  1. 最基本的纯GPU处理的情况: 摄像头采集得到 NV12 的图像, 直接通过 picIn 输入到GPU, 经过美颜后送入预览,并通过 picOut 送入streamer 编码推流.
    basic flow

其中, 到streamer选择 NV12 的效率高一些

  1. 采集后先用CPU的滤镜或贴纸处理, 处理后通过 picIn 输入到GPU, 经过美颜后送入预览,并通过 picOut 送入streamer 编码推流.
    preprocess flow

一般CPU上的滤镜和贴纸比较常用的是BGRA.

  1. 采集图像通过 picIn 输入到GPU, 经过美颜处理后通过 picOut导出, 送入CPU的贴纸等效果,结果通过 picIn送回GPU预览, 同时送入streamer 编码推流.
    middle process flow

1. 推流环节说明

2. 特色功能说明

2.1 采集

2.2 音频处理

2.3 视频处理

2.4 编码

2.5 推流

2.6 输入多样化

2.7 集成

3. 第三方功能

4. 技术专栏

5. 已知问题

8. FAQ

金山云计算

Clone this wiki locally