每个内核均拥有 512KB 的 L2 专有存储器,其中多达 256KB 可被配置为四通道的 L2 高速缓存。另外,KeyStone DSP 还拥有 4MB 的共享 L2 存储器。
存储器考虑事项 - 外部存储器 支持高达 8GB 的 DDR3,模式为 1×16、1×32 和 1×64,高达 1600 MHz 的频率可提供每秒高达 12.8GB 原始比特率。
存储器考虑事项 - 多内核共享存储器控制器 2×56 比特直接连接至外部存储器接口 (EMIF) DDR。
2×256 比特直接连接至各个 DSP。
适用于程序和数据的多重预取媒体流。
存储器考虑事项 - DMA
10 个传输控制器和 144 个增强型直接存储器接入 (EDMA) 通道使得从外部存储器读写数据具有高效的资源利用率。
内核之间的同步与全局协作 全硬件支持 64 个独立阻塞和非阻塞信号标,支持直接和间接请求。
内核之间的紧密与松散链接、数据和消息传输 多内核导航器是一个硬件队列管理器,可控制 8,192 个队列且拥有 6 个可传输消息的渠化 DMA 通道。导航器可支持数据和消息在紧密或松散链接的内核之间进行传递。此外,导航器还能有助于提高数据从多个源传输至多个目的地的高效排序。
连接两个芯片的快速总线 四通道超链接总线可提供高达每通道 12.5Gbps、总计 50Gbps 的传输速率。
附录A - 解码器性能相关性编码器所采用的工具和算法以及视频内容都会影响解码器的性能。下列因素将影响解码器性能:
• CABAC 或 CAVLC 熵解码器的选择
• 跳帧的数量
• 帧内预测模式的复杂性
• 预测类型—运动估算或帧内预测。(运动补偿需要消耗的解码周期数不同于帧内预测补偿。采用运动补偿还是帧内预测取决于编码器。)
• 不同的运动估算工具(每个宏模块一个运动矢量,每个宏模块 4个运动矢量,或每个宏模块 8 个运动矢量)能改变解码器的复杂度和周期数。
• B 帧宏模块的运动补偿涉及两个参考宏模块,并消耗更多周期。
• 媒体流中的运动量不仅会更改跳过宏模块的数目,同时还会改变解码器的处理要求。
• 比特流在运动矢量、模块值、标记等各个不同值等之间的分配取决于媒体流的内容和编码器算法。不同的分配会相应改变熵解码器的周期数。
附录B — 运动估算和速率控制
运动估算是 H.264 编码中很大一部分内容。H.264 编码器的质量取决于运动估算算法的质量。运动估算所需的周期数取决于运动估算算法的功能特性及特征。以下是几个影响运动估算周期消耗的主要因素:
• I 帧、P 帧和 B 帧的频率
• L0(对于 P 帧和 B 帧)和 L1(对于 B 帧)中的参考帧数目
• 搜索区域的数目
• 搜索区的大小
• 搜索算法
良好的运动估算算法可能消耗总编码周期的 40-50%,乃至更多。
速率控制算法是影响编码质量的主要因素。为了最大限度地提高视频的感知质量,智能速率控制算法可在宏模块和帧之间分配可用的比特。
部分系统可执行多重处理通道,以便在宏模块之间更好的分配可用比特。多条通道虽然能提高感知质量,但却要求更密集的处理。
附录C - 外部存储器带宽
由于运动估算算法的原因,编码器通常比解码器需要更高的内部带宽。编码器的要求分两种情况计算:低比特率 QCIF 和高比特率的 1080p。
• 第一种情况 -- QCIF 264 BP 编码器:
两个完整的 QCIF 帧能驻留在高速缓存或 L2 乒乓缓冲器中。每个帧需要的容量不到 40 KB。采用一个参考帧对某一帧进行编码时,系统应为每次 QCIF 处理传输 80KB 的数据,并输出少量数据。200 个15 fps 的 QCIF 通道所需的总内部带宽为:
80KB * 15 (fps) * 200(通道数)+ 200(通道数)* 256/8 KB(QCIF 通道的输出比特率)= 240MB + 6.4MB = 250MB/s
• 第二种情况 -- 1080p 60 H.264 HP:
假定采用最差情况中的算法来执行运动参考帧的运动估算,该参考帧可能需要从外部存储器移至内部存储器多达三次。此外,也可假定采用多达四个参考帧的高级算法。因此,单个 1080p60 通道的运动估算是:
3(复制 3 次)* 1920*1080*1(在运动估算中,每像素仅 1 个字节)*60 (fps) * 4(参考通道) = 1492.992 MBps
是否移动可进行处理和运动补偿的当前帧由以下情况来确定:
2(当前帧和运动补偿)* 1920 * 1080 * 1.5(字节/像素)* 60 = 373.248 MBps
综上所述,以上两个汇总结果规定了输出比特流。一个通道的总和为1866.24 MBps,即两个 H.264 HP 1080p60 编码器为 3732.48 MBps,这意味着约占用外部存储器原始数据带宽的 30%。