Digital_Video_Concepts
  • 前言
    • 前言
  • 数字视频简介
    • 数字视频简介
    • 相关概念
    • 视频压缩
    • 权衡分析
    • 新型视频应用
    • 总结
  • 视频压缩技术
    • 数字视频压缩技术
    • 网络限制和压缩
    • 人类视觉系统
      • HVS模型
      • HVS的应用
    • 压缩技术概述
      • 数据结构和概念
      • 色度亚采样
      • 降低冗余
      • 熵编码
    • 压缩技术: 成本-收益分析
      • 变换编码技术
      • 预测编码技术
      • 其他编码技术
      • 率失真理论
    • 总结
  • 视频编码标准
    • 视频编码标准
    • 视频编码的国际标准概述
      • JPEG
      • H.261
      • MPEG-1
      • MPEG-2
      • H.263
      • MPEG-4 (Part 2)
      • AVC
      • HEVC
      • 视频质量的国际标准
    • 其他工业标准概述
      • VC-1
      • VP8
      • VP9
    • 总结
  • 视频质量度量
    • 视频质量指标
    • 压缩损失,伪像,视觉质量
      • 压缩损失:量化噪声
      • 常见的伪影
      • 影响视觉质量的因素
    • 视频质量的评估方法和指标
      • 主观视频质量评估
      • 客观视频质量评估和指标
        • 基于误差灵敏度的方法
        • 峰值信噪比
        • 基于结构相似性的方法
        • 基于信息保真度的方法
        • 时空方法
        • 基于显著性的方法
        • 网络感知方法
        • 基于噪声的质量指标
        • 客观编码效率指标
        • 基于ITU-T标准的客观的质量度量方法
    • 视频质量测量
      • 主观测量
      • 客观测量及其应用
    • 调参
      • 影响视频质量的参数
      • 参数之间的权衡
    • 总结
  • 视频编码性能
    • 视频编码性能
    • CPU速度和限制
    • 提升性能的动机
    • 对性能的考虑
      • 资源利用率最大化
      • 专用资源
      • 调整视频参数
        • 决定编码速度的因素
          • 系统配置
          • 工作负载的性质
          • 编码工具和参数
            • 独立数据单元
            • GOP结构
            • 码率控制
            • 多帧参考
            • 率失真的拉格朗日优化
            • 隔行扫描的帧/场模式
            • 自适应去块滤波器
          • 视频复杂度和格式
          • 基于GPU加速的优化
    • 性能优化方法
      • 算法优化
        • 快速算法
          • 快速变换算法
          • 快速帧内预测算法
          • 快速运动估计算法
          • 快速模式决策算法
          • 快速熵编码算法
        • 并行化方法
          • 数据分区
          • 任务并行化
          • 流水线技术
          • 数据并行化
          • 指令并行化
          • 多线程技术
          • 向量化技术
      • 编译器和代码优化
        • 编译器优化
        • 代码优化
      • 超频
      • 性能瓶颈
    • 性能度量和调整
      • 性能思考
      • 性能指标
      • 性能分析工具
    • 总结
  • 视频应用的耗电量
    • 视频应用的耗电量
    • 功耗及其限制
    • 媒体应用的工作负载
      • 媒体应用用途
    • 面向电量设计
    • 电源管理的思考
      • ACPI和电源管理
      • 操作系统电源管理
        • Linux电源管理
        • Windows电源管理
      • 处理器电源管理
      • Voltage-Frequency曲线
    • 电源优化
      • 架构级别优化
      • 算法级别优化
      • 系统整体级别优化
      • 应用级别优化
    • 电源度量
      • 度量方法论
      • 电源度量的思考
    • 测量电源的工具
      • DC电源测量系统
      • 电源测量的软件工具
    • 总结
  • 低功耗平台上的视频应用的功耗
    • 低功耗平台上的视频应用的功耗
    • 低功耗设备的重要事项
    • 低功耗平台上典型的媒体应用
      • 视频播放
      • 视频录制
      • 视频分发
      • 视频电话(会议)
    • 低功耗系统的状态
      • 简单ACPI模型的缺点
      • 待机状态
      • 低功耗状态的组合
    • 低功耗平台的电源管理
      • 电源管理的专用硬件
      • 显示器电源管理
    • 低功耗平台的思考
      • 软件设计
      • 体系结构的思考
    • 低功耗平台的电量优化
      • 快速执行然后关闭
      • Activity调度
      • 减少唤醒次数
      • 突发模式
      • 完善CPU和GPU的并行化
      • 显存带宽优化
      • 显示功耗优化
      • 存储功耗优化
    • 低功耗的度量
      • 电源的处理器信号
      • 媒体应用的功耗指标
    • 总结
  • 性能,电量以及质量的权衡
    • 性能,电量以及质量的权衡
    • 权衡分析的思考
      • 权衡分析的类型
      • 参数调整的效果
      • 优化策略
    • 权衡性能和功耗
      • Case Study
    • 权衡性能和质量
      • Case Study I
      • Case Study II
    • 权衡功耗和质量
      • Case Study
    • 总结
  • 结语
    • 结语
    • 重点和结论
    • 对未来的思考
Powered by GitBook
On this page
  • VTuneAmplifier
  • GPUView

Was this helpful?

  1. 视频编码性能
  2. 性能度量和调整

性能分析工具

Previous性能指标Next总结

Last updated 5 years ago

Was this helpful?

大量的可用于性能测量的工具可以说明性能测量的重要性。有的性能分析工具支持采样和基于编译器的应用程序性能分析,有时还具有上下文相关的调用图功能。有的工具则支持基于硬件事件的非侵入式且开销较低的采样和分析。还有的工具会利用现代微处理器提供的硬件性能计数器。部分工具可以发现与数据局部性、缓存利用率、线程交互等特性有关的性能问题。在本节中,我们简要讨论了适用于视频应用程序(尤其是GPU加速的应用程序)的性能测量的流行工具。第6章简要介绍其它的流行工具,例如Windows Perfmon,Windows Xperf和Intel Graphics Performance Analyzer。

VTuneAmplifier

VTune Amplifier XE 2013是Intel开发的流行的性能分析器。VTune支持各种编程语言的性能分析,包括C,C ++,FORTRAN,Assembly,Java,OpenCL和OpenMP 4.0。VTune为热点(hotspot),调用树,线程,锁,等待,DirectX,内存带宽等信息采集了丰富的性能数据,并为满足各种性能调整需求提供所需要的数据。

热点分析提供了一份使用CPU时间较高的函数的有序列表,用以指示可带来最大收益的性能调整的位置。热点分析还可以利用锁和等待分析来对多线程进行调整。这使用户能够快速查找信息来确定并行程序的性能降低的原因,这些可查找的信息包括:线程在锁等待上的时间,而线程在等待期间未充分利用CPU。诸如热点、锁定、等待之类的分析文件(profiles)都使用了可在Intel和兼容处理器上运行的软件数据收集器。该工具还提供高级热点分析。英特尔处理器的片上(on-chip)性能监视单元(PMU,Performance Monitoring Unit)通过采样硬件事件实现以极低的开销提高数据收集能力。因此,高级热点分析可以用PMU来识别很小的性能瓶颈并发现快速函数的性能瓶颈。此外,该工具还支持高级硬件事件分析文件,例如内存带宽分析、内存访问和分支错误预测,从而可以帮助发现调优机会。最新的版本还支持可选的堆栈样本集合,以标识程序的调用顺序。此外,该工具还支持在不重启应用的情况下分析远程系统。

GPUView

GPUView由Matthew Fisher和Steve Pronovost开发,GPUView是一种用于确定GPU和CPU性能的工具。后来,将GPUView合并到Windows Performance Toolkit中,并作为Windows SDK的一部分下载。GPUView用于DMA(直接内存访问)缓冲区处理以及视频硬件上所有其它视频处理过程的性能分析。对于GPU加速的DirectX应用程序,GPUView是一种功能强大的工具。可以用GPUView了解CPU上完成的工作与GPU上完成的工作之间的关系。GPUView使用ETW(Windows事件跟踪,Event Tracing for Windows)机制对系统和应用程序的性能以及资源使用情况进行详细测量并分析。数据收集过程包括:启用跟踪捕获,运行需要性能分析的测试应用程序的场景,停止数据捕获。数据收集最终会将数据保存在ETL(事件跟踪日志,event trace log)文件中。GPUView可以在同一台或不同计算机上分析ETL文件并以图5-11所示的图形格式显示ETL信息。

图5-11. 使用GPUView分析不同线程的活动

GPUView在硬件加速视频应用程序的分析和调试中非常有用。例如,如果视频播放应用程序存在掉帧现象,则会对用户体验造成负面影响。在这种情况下,使用GPUView检查事件跟踪可以帮助我们确定问题的原因所在。图5-12给出了正常播放视频的事件跟踪的例子,其中工作负载按固定间隔均匀分布。图5-12中的蓝色垂直线显示正常的vsync,红色垂直线显示当前事件。

图5-12. 正常播放视频的事件跟踪

图5-13展示了同一视频播放应用程序的事件轨迹,但是当帧显示截止时间到期时,播放程序会丢弃视频过期的视频帧。与图5-12中所示的正常模式相比,此轮廓看上去大不相同。在放大版本中,当前事件行是可见的,从中可以不难理解,当应用程序将视频数据包发送到GPU进行解码时,时常会出现长时间的延迟。因此,使用GPUView可以轻松识别并解决问题的根本原因。

缩小的播放分析文件

放大的播放分析文件

图5-13. 掉帧情况下的事件跟踪信息