本文来自英特尔资深软件工程师张华在LiveVideoStackCon 2018讲师热身分享,并由LiveVideoStack整理而成。在分享中张华介绍了英特尔GPU硬件架构,并详细解析了英特尔QSV技术在FFmpeg中的具体实现与使用。
文 / 张华
整理 / LiveVideoStack
直播回放:
https://www.baijiayun.com/web/playback/index?classid=18091958472800&session_id=201809200&token=PLFiH_sX1NNt681rrJ0J_ZTHDO9zanYEZBBB3Q06X5q9UJKvNPUPBpuOZ7Qxt3OtBkXP5cY2MAsKp0fXMnVKLQ
大家好,今天我与大家分享的是英特尔GPU架构以及Quick Sync Video技术在FFmepge中的实现与使用。
1、处理器整体架构
大家知道,英特尔的图形处理GPU被称为“核芯显卡”,与CPU集成封装在同一个芯片上,上图展示的是芯片的内部结构。
1.1 发展
英特尔从lvy Bridge架构开始就尝试将GPU与CPU集成在中央处理芯片中并逐代发展到Skylake架构。初期的Ivy Bridge架构中GPU所占的面积非常小,而到现在的第五代处理器架构Skylake已经实现十分成熟的GPU集成技术,GPU在芯片中所占的面积已经超过了一半。在未来我们将推出基于PCI-E的独立显卡,为PC带来更大的图像性能提升。
1.2 基础功能模块
上图展示的是一款GPU所具备的一些基础功能模块。英特尔的核芯显卡分为普通的Intel HD Graphics与性能强大的Intel Iris (Pro)Graphics,其中硬件结构的变化决定性能的高低。我们知道,GPU中的Slice个数越多,处理单元的组织方式越多,性能便越强大。Intel HD Graphics也就是GT2中只有一个Slice,而对于Iris系列中的GT3则有两个Slice;GT3e相对于GT3增加了eDRAM使其具有更快的内存访问速度,而GT4e则增加到三个Slice。GPU的基础功能模块主要由EU以及相关的Media Processing(MFX)等组成。一个Slice中有三个Sub-Slice,Sub-Slice中包含具体的EU和Media Sampler模块作为最基本的可编程处理单元,GPU相关的任务都是在EU上进行。而Media Processing中还集成了一个被称为MFX的独立模块,主要由Media Format Codec(MFX)与VQE组成。MFX可将一些处理任务通过Fix Function打包,固定于一个执行单元中进行统一的编解码处理,不调用EU从而实现提高EU处理3D图形等任务的速度。Video Quality Engine(VQE)提供De-interlace与De-Noise等视频处理任务,在编解码中使用EU是为了得到更高的视频编码质量。