针对支持SIMD和超线程(HT)技术的英特尔® 数字安全监控应用,优化视频压缩

Version 1

    作者:Chew Yean Yam,英特尔®公司

    摘要
    随着公众、政府和私人企业安全意识的不断增强,推动了对更可靠安全措施的需求。新技术的出现使数字安全监控(DSS)日益成为日常生活中必不可少的组成部分。当今复杂的监控解决方案要求具备可扩充性,以支持大量的视频通道、更高的输入/输出(I/O)接口吞吐率、处理复杂算法的处理器性能以及可靠的大容量数据存储。
    视频压缩是DSS应用中计算要求最苛刻的模块之一。软件优化可减少处理器的视频压缩负担,使处理器可腾出资源用于其它重要应用,如视频分析和图形用户接口。本文介绍了借助当前英特尔®架构处理器所支持的特性实现的视频压缩性能改进。
    介绍
    当前的32位英特尔®架构处理器(包括英特尔®奔腾®4处理器、英特尔®至强®处理器和英特尔®奔腾®M处理器)具有旨在改进该性能的多种特性。这些特性包括单指令多数据流(SIMD)指令集扩展、超线程(HT)技术1、以及支持在高时钟频率和高速缓存层次执行指令的微体系结构。
    单指令多数据流(SIMD)
    运用 MMX™ 技术的32位英特尔®架构(IA-32)引进了SIMD 计算技术,并在英特尔®引进SIMD流指令扩展(SSE)、SIMD流指令扩展2(SSE 2)和SIMD流指令扩展3(SSE 3) 后又得到进一步提高。SSE、SSE2和SSE3 不仅增加了提高多线程代理程序之间同步的128 位寄存器和指令,还增加了单精度和双精度浮点操作的处理器指令,使 MMX技术得到扩展(参见表1)。
    SIMD 扩展改进了应用的性能,使其具有了:i) 内在并行处理能力,ii)重复的内存访问模式,iii)对数据执行本地化反复操作,和 iv)数据独立控制流程的特点。SIMD 解决了DSS中使用多媒体、通信和图形/视频应用的需要。这些应用经常使用复杂的算法,对数量巨大的数据重复执行相同的操作。诸如 3D图形渲染、3D几何、图像处理和视频编码和解码等均属于此类应用。
    55.JPG
    表1 ― 下一代单指令多数据流(SIMD)、SIMD流指令扩展(SSE)、SIMD流指令扩展2(SSE2)和SIMD流指令扩展3(SSE3)是英特尔最初MMX技术的扩展。它们提供更多指令,支持实现单精度和双精度浮点操作,此外还增加了128 位寄存器和指令以增强多线程代理程序间的同步能力。
    56.JPG
    图3 ― 图表说明进行运动评估、运动补偿、离散余弦变换(DTC)/离散反余弦变换(IDCT)和量化/非量化所需的处理周期。彩色条块提供了在C语言中执行这些功能所需的处理器周期,与这些功能业经英特尔® MMX™ 技术、SSE和SSE2优化后所需处理器周期之间的比较。资料来源:Huper Laboratory Co., Ltd.
    不含SIMD的计算称作标量处理,每次对一个数据点执行一条指令。采用SIMD的计算支持处理器可对多个数据点同时执行一条指令,提高了给定时间段所处理数据的数量(参见图1)。
    超线程(HT)技术
    超线程(HT)技术通过在一个物理处理器封装内提供多个逻辑处理器资源,使软件能够利用任务级别或线程级别的并行处理能力。操作系统和应用通过维持这两个处理器的架构状态,将单个物理处理器作为两个逻辑处理器使用。超线程(HT)技术通过将处理器资源分配给所需的应用,使处理器在给定时间内完成更多任务及有效共享原本闲置的资源,从而提供更高效的多任务处理能力和系统响应能力(参见图2)。超线程(HT)技术能够大幅提高当前许多DSS应用的性能,如处理多视频数据流的程序。某些英特尔® 奔腾® 4 处理器和英特尔® 至强® 处理器产品线支持该技术。
    57.JPG
    58.JPG
    所有测试均在基于带英特尔® 915G 高速芯片组的英特尔® 奔腾® 4 处理器 2.4 GHz 的平台上进行。第一个试验是观察时钟周期数,它是进行视频压缩时,在4个主要模块中执行C语言、MMX技术、SSE和SSE2内置的功能时所必需的。测试时,这些功能需执行 10,000,000 次,然后取其平均值作为一个精确数值。如图3 所示,执行视频编码功能所需的处理器周期数由于使用了较新的SIMD指令集而大幅减少。在相同时间内可进行更多操作,从而提高了性能。与以C语言为基础的计算相比,该技术不仅大大缩短了处理器周期,还相应地大幅提升了性能。SUM功能为每个模块性能的提高提供了综合指标。运动评估、运动补偿、DCT/IDCT和量化/非量化结果均显示了此种总体趋势。
    在本文第二部分,所示图表描述了测试程序每秒处理的帧数。图4显示应用于真实视频范例的优化技术。由于采用了最新几代SIMD指令集扩展提高了总每秒帧数,从而实现了与基于C语言相比的大幅性能提升。MMX 技术、SSE和SSE2 的优化因数约分别为12、17和20。本部分说明采用支持或不支持超线程(HT)技术的程序测试所达到的性能提高。在真实视频范例中超线程(HT)技术的应用大幅提高了帧频。处理的实际帧数主要由场景的复杂程度和场景包含的运动数量而定。这些范例显示性能提高7-20%(参见表2)。
    结论
    这些结果显示当前32位英特尔® 架构处理器具有这些功能,能提高视频编码所需主要功能模块的处理效率。MMX技术、SSE和SSE2指令集扩展的采用使其性能比基于C语言的实施有大幅提高。其中SSE2 提高的幅度最大。当运用到真实视频范例中时,MMX技术和最新的SIMD计算改进(SSE和SSE2)分别将性能提高了12、17和20倍,而超线程(HT)技术则使性能提高了7-20%。
    对于DSS解决方案的开发商而言,这些性能的提高将提高处理器的利用率并从应用性能的大幅提高中受益。
    1超线程(HT)技术要求计算机系统具备支持超线程(HT)技术的英特尔®奔腾® 4处理器以及支持超线程(HT)技术的芯片组、基本输入输出系统(BIOS)和操作系统。实际性能会根据您具体使用的软硬件配置的不同而有所差异。如欲了解更多信息,请访问: http://www.intel.com/cn/gb/homepage/land/hyperthreading.htm。
    性能测试和等级评定均使用特定的计算机系统和/或组件进行测量,这些测试反映了英特尔®产品的大致性能。系统硬件、软件设计或配置的任何不同都可能影响实际性能。购买者应进行多方咨询,以评估他们考虑购买的系统或组件的性能。如欲了解有关性能测试和英特尔®产品性能的更多信息,请访问:http://www.intel.com/performance/resources/limits.htm。