微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于KeyStone DSP的多核视频处理技术

基于KeyStone DSP的多核视频处理技术

时间:09-15 来源:互联网 点击:

          • 通道 18.5 亿个周期
          •   1080i60、每秒 60 场、9 Mbps – 每通道 34.5 亿个周期

            与此类似,H.264 解码器消耗的周期数为:

          •   QCIF 分辨率、15 fps、128IKbps – 每通道 1400 万个周期
          •   CIF 分辨率、30 fps、300 Kbps – 每通道 7050 万个周期
          •   D1 分辨率、NTSC 或 PAL、2 Mbps –每通道 2.92 亿个周期
          •   720p 分辨率、30 fps、6 Mbps – 每通道 7.8 亿个周期
          •   1080i60、每秒 60 场、9 Mbps –每通道 16.6 亿个周期

            转码应用(包括完整的解码器和编码器)消耗的周期数是编码器和解码器所消耗的总和,在需要的情况下也会加上扩展的消耗。

            2.3 存储器的考虑事项

            在成本与存储器要求之间进行权衡折中是任何硬件设计都需要考虑的重要因素。在分析多核视频处理解决方案的存储器要求时,需要明确以下几个问题:

          •   需要多大存储量的存储器,以及存储器的类型(专有还是共享)是什么?
          •   存储器的速度是否足够支持流量需求?
          •   接入总线的速度是否足以支持流量需求?
          •   存储器架构是否能够以最少的多核性能损失支持多核接入?
          •   存储器架构是否能以最小的数据冲突支持处理器数据流的输入与输出?
          •   支持存储器接入(诸如 DMA 通道、DMA 控制器、预取机制和快速智能高速缓冲架构 )的现有硬件有哪些?所需存储器的存储量取决于应用。以下三个应用实例介绍了三种不同的存储器要求:

            无线传输速率:在单帧运动估算参考 (single-motion estimation reference frame) 中以极低的延迟从 QCIF H.264BP 转换至 QCIF H.264BP 需要足够的存储容量才能存储 5 个帧。每帧需要 38016 个字节,那么一个通道(包括输入和输出媒体流的存储)所需存储器的存储量为每通道不足 256KB。同时处理 200 个通道则需 50MB 的数据存储。

            多通道解码器应用实例:对于 H264 HP 1080p 解码器,如果两个连续的 P 帧和 I 帧之间的 B 帧数目等于或少于 5,那么我们只需要足够存储 7~8 个帧的存储空间,因而单个通道(包含存储输入和输出媒体流)所需的存储量应少于每通道 25MB。同时处理 5 个通道需要 125MB 的数据存储器。

            包含实时电视广播的高质量视频流示例:应 FCC 的要求在系统中有 7 秒的延迟时,对实时电视节目采用 H.264HP 720P60 编码需要每个通道存储 600MB。并行处理两个通道需要 1.2GB 的数据存储量。

            为了最大限度地提高视频处理系统的低成本优势,数据必须驻留在外部存储器中,其大小需要根据系统存储器最差的应用状态来选择。与此同时,处理过的数据必须存放在内部存储器中才能支持处理器的高吞吐量。优化的系统会使用乒乓机制将数据从外部存储器移至内部存储器,而将数据从内存移至外部存储器的同时还要处理来自内部存储器的数据。典型的处理器具有一个可配置为高速缓存或 RAM 的小型 L1 存储器,用于每个内核(可配置为高速缓存或 RAM)的较大型专用 L2 存储器,以及处理器中每个内核都能够存取的共享 L2 存储器均可使用。为加强乒乓机制,需要用多个相互独立的 DMA 通道从外部存储器中读写数据。

            附录C 外部存储器带宽-为支持乒乓机制用于上述三个应用实例,估算了将数据从外部存储器移至内部存储器所需的带宽。外部存储器的有效带宽必须大于 3.5Gbps。

            2.4 多内核间的协作与同步

            当多个内核处理同一视频通道时,这些内核之间必须相互通信,才能实现对输入数据的同步、分离或共享,合并输出数据或者在处理过程中交换数据。附录 A - 解码器性能依赖阐述了将视频处理功能划分成多个内核的几种算法。

            并行处理法和流水线处理法是两种常用的分区算法。并行处理的范例是两个或两个以上的内核可以处理同一输入通道。必须有一个不受竞态条件影响的机制在多个内核之间共享信息。可将信号标用来保护全局区域免受竞态条件的干扰。硬件需要支持阻塞性和非阻塞性信号标,以有效消除竞态条件,即消除两个内核同时占用同一存储器地址的可能性。

            如果使用流水线算法,一个或一个以上的内核可执行运算的第一部分,然后再将中间结果传递第二组内核继续处理。由于视频处理负载取决于处理的内容,因而这种传递机制可能面临如下问题:

          •   如果一个以上的内核处理流水线的第一阶段,那么第 N+1 帧可能先于第 N 帧被处理好。因此该传递机制必须能够对输出/输入进行排序。
          •   即使流水线上的各内核总体是均衡的(在处理负载方面),但个别帧未必如此。该传递机制必须在不同的流水线阶段之间提供缓冲,以使内核没完成工作时不至于影响其他内核停滞等待。
          • 如果算法要求流水线的两个阶段间能稳固实现紧密的链接(例如,为解决依赖性的问题),则该机制就必须能够支持紧密链

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top