GPUImage框架_文档翻译_01

是的,我要开始写关于GPUImage 框架的文章了!先来把简介看一波!借助翻译工具也得啃出来哇!!!看来我又得早起学英文了。。。。

我知道大家,估计不会耐心看简介!不过,要了解一个框架还是要看看滴。CC就帮大家做这件事情吧~~~~

翻译不正确的地方,欢迎大家吐槽哦~~~

为提供英文阅读能力,我会把我阅读的所有英文文档都以这样的方式写入到简书中!

GPUImage下载地址

先来介绍一下,GPUImage吧!

The GPUImage framework is a BSD-licensed iOS library that lets you apply GPU-accelerated filters and other effects to images, live camera video, and movies. In comparison to Core Image (part of iOS 5.0), GPUImage allows you to write your own custom filters, supports deployment to iOS 4.0, and has a simpler interface. However, it currently lacks some of the more advanced features of Core Image, such as facial detection.

(GPUImage框架是一个BSD(伯克利软件套件)许可iOS库,能让你的APP应用GPU加速的过滤器和其他图像处理效果,现场摄像机视频和movies。在Core Image对比(iOS 5的一部分),GPUImage允许你添加自己的自定义过滤器,支持部署到iOS 4,并有一个简单的接口。然而,它目前缺乏Core Image的一些更高级的特性,如人脸检测。)


For massively parallel operations like processing images or live video frames, GPUs have some significant performance advantages over CPUs. On an iPhone 4, a simple image filter can be over 100 times faster to perform on the GPU than an equivalent CPU-based filter.

(大规模用来处理图像或视频直播框架,GPUImage框架有显著的性能优势。在iPhone 4上,一个简单的图像过滤器在GPU上执行的速度比同等CPU的过滤器快100倍以上。)


However, running custom filters on the GPU requires a lot of code to set up and maintain an OpenGL ES 2.0 rendering target for these filters. I created a sample project to do this:

(然而,在GPU上运行自定义过滤器需要大量的代码来设置和维护这些过滤器的OpenGL ES 2渲染目标。我创建了一个示例项目来做这件事:)

    示例项目地址

and found that there was a lot of boilerplate code I had to write in its creation. Therefore, I put together this framework that encapsulates a lot of the common tasks you'll encounter when processing images and video and made it so that you don't need to care about the OpenGL ES 2.0 underpinnings.

(你会发现有大量的样板代码我已经写在其创作中。因此,我将这个框架封装起来,封装了处理图像和视频时遇到的许多常见任务,使您不必关心OpenGL ES 2基础。)


This framework compares favorably to Core Image when handling video, taking only 2.5 ms on an iPhone 4 to upload a frame from the camera, apply a gamma filter, and display, versus 106 ms for the same operation using Core Image. CPU-based processing takes 460 ms, making GPUImage 40X faster than Core Image for this operation on this hardware, and 184X faster than CPU-bound processing. On an iPhone 4S, GPUImage is only 4X faster than Core Image for this case, and 102X faster than CPU-bound processing. However, for more complex operations like Gaussian blurs at larger radii, Core Image currently outpaces GPUImage.

(GPUImage框架在处理视频时与Core Image相比是有利的,在iPhone 4上只需2.5毫秒就可以从照相机上传帧,应用gamma滤波器,并使用Core Image对同一操作显示106毫秒。基于CPU的处理需要460毫秒,使GPUImage 40x核心图像比这个操作在该硬件更快,和184x速度比CPU绑定的处理。在iPhone 4S,GPUImage只有快4倍比核心的形象,这种情况下,和102x速度比CPU绑定的处理。然而,对于更复杂的操作,如高斯模糊半径较大,目前超过GPUImage核心形象。)


Technical requirements(技术支持)


OpenGL ES 2.0: Applications using this will not run on the original iPhone, iPhone 3G, and 1st and 2nd generation iPod touches

(OpenGL ES 2:应用程序将不会运行在最初的iPhone,例如iPhone 3G和第一代和第二代iPod触摸)


iOS 4.1 as a deployment target (4.0 didn't have some extensions needed for movie reading). iOS 4.3 is needed as a deployment target if you wish to show live video previews when taking a still photo.

(iOS 4.1作为部署目标的(4.0比没有电影阅读所需的扩展)。如果您希望在拍摄静止照片时显示实时视频预览,则需要iOS 4.3作为部署目标。


iOS 5.0 SDK to build

Devices must have a camera to use camera-related functionality (obviously)

(显然需要必须有一个摄像机来应用与相机相关的功能)


The framework uses automatic reference counting (ARC), but should support projects using both ARC and manual reference counting if added as a subproject as explained below. For manual reference counting applications targeting iOS 4.x, you'll need add -fobjc-arc to the Other Linker Flags for your application project.

(GPUImage框架使用自动引用计数(ARC),但要支持的项目,如果添加一个子项目解释如下使用手动引用计数。手动引用计数的应用针对iOS 4.X系统,你需要添加-fobjc-arc的其他连接标记到你的应用程序项目。)


General architecture (普遍结构)


GPUImage uses OpenGL ES 2.0 shaders to perform image and video manipulation much faster than could be done in CPU-bound routines. However, it hides the complexity of interacting with the OpenGL ES API in a simplified Objective-C interface. This interface lets you define input sources for images and video, attach filters in a chain, and send the resulting processed image or video to the screen, to a UIImage, or to a movie on disk.

GPUImage使用OpenGL ES 2着色器进行图像和视频处理速度远远超过可以在CPU绑定的程序做的。然而,它隐藏在OpenGLES API简化Objective-C接口OpenGL交互的复杂性。这个接口允许您定义的图像和视频输入源,链连接的过滤器,并发送处理结果的图像或视频的画面到屏幕,一个UIImage,或磁盘上的一个movie。


Images or frames of video are uploaded from source objects, which are subclasses of GPUImageOutput. These include GPUImageVideoCamera (for live video from an iOS camera), GPUImageStillCamera (for taking photos with the camera), GPUImagePicture (for still images), and GPUImageMovie (for movies). Source objects upload still image frames to OpenGL ES as textures, then hand those textures off to the next objects in the processing chain.

(视频图像或帧从源对象的上传,这是GPUImageOutput。这些包括GPUImageVideoCamera(从iOS相机录制视频)、GPUImageStillCamera(带相机的照片),GPUImagePicture(静态图片),和GPUImageMovie(电影)。源对象将图像帧上传到OpenGL ES作为纹理,然后将这些纹理传递给处理链中的下一个对象。)


Filters and other subsequent elements in the chain conform to the GPUImageInput protocol, which lets them take in the supplied or processed texture from the previous link in the chain and do something with it. Objects one step further down the chain are considered targets, and processing can be branched by adding multiple targets to a single output or filter.

(链中的过滤器和其他随后的元素符合GPUImageInput协议,这让他们以提供或加工纹理从链中的上一个链接,用它做什么。在链上一步一步的对象被认为是目标,并且处理可以通过将多个目标添加到单个输出或过滤器来进行分支)


For example, an application that takes in live video from the camera, converts that video to a sepia tone, then displays the video onscreen would set up a chain looking something like the following:

(例如,一个应用程序,需要在摄像头获取视频,再转换视频到深褐色调,然后显示视频屏幕将建立一个链,看起来过程有点像下面:)

GPUImageVideoCamera -> GPUImageSepiaFilter -> GPUImageView

小伙伴们阅读后,请喜欢一下。文章更新可以提醒到你哦~~~~


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容