`
mmdev
  • 浏览: 13131705 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

AVS解码器在DSP平台上的优化

 
阅读更多
AVS(Audio Video Coding STandard)是由我国数字音视频标准工作组制定的具有自主知识产权的第二代音视频压缩准。AVS实行1 元专利费用的原则,相比其它音视频编解码标准具有编码效率高、专利费用低、授权模式简单等优势。AVS解码器的结构复杂、运算量较大,要在嵌入式平台上实现实时解码具有较大难度。在对解码器性能优化的过程中可以依据使用平台对其进行汇编指令集的优化或者针对解码器的关键算法模块进行改良,以上方法对解码器性能的提高均有一定作用,本文提出一种利用嵌入式平台的L1P Cache高速缓冲功能实现处理器对程序代码的高效率访问的方法,从而达到提高AVS解码器性能的目的。

  1 高速缓存Cache的应用

  目前越来越多的编解码算法采用DSP的方式实现,随着DSP芯片主频的不断攀升,存储器的访问速度日益成为系统性能提升的瓶颈。在现有的制造工艺下,片上存储单元的增加将导致数据线负载电容的增加,影响到数据线上信号的开关时间,这意味着片上高速存储单元的增加将是十分有限的。为了解决存储器速度与CPU内核速度不匹配的问题,高性能的CPU普遍采用高速缓存(Cache)机制。

  以TI的C64x DSP为例,存储器系统由片内存储器和片外存储器两部分组成。其中,片内存储器采用两级缓存结构,第1级L1距离DSP核最近,数据访问速度最快,可以达到每秒600Mbyte,只能作为不能寻址的Cache使用,由相互独立的L1P和L1D 组成。

  L1P Cache是处理器访问程序代码的高速缓冲存储器,大小为16 kbyte,采用直接映射方式,每行大小32byte;L1D Cache是处理器访问数据的高速缓冲存储器,大小为16 kbyte,采用2路映射,每行大小为64byte。第2级L2是一个统一的程序/数据空间,可以整体作为SRAM映射到存储空间,也可以作为Cache和SRAM按比例的一种组合。L2与L1之间的数据交互速率为每秒300 Mbyte,L2与SDRAM之间的数据交换速率为每秒100 Mbyte。片外存储器是第3级,一般由SDRAM构成。L1、L2和片外SDRAM构成了整个存储器系统的层次结构。C64X的两级缓存结构若能运用恰当,将能极大地提高程序性能。

  根据图1的三层次的存储器系统, C64X读取程序代码时,先查看1级缓存L1,若L1已缓存了所需代码,则直接从L1读取;若L1没有该代码的缓存,则访问2级缓存L2;若L2也没有,则通过EMIF接口访问外部SDRAM,把所需代码从外部SDRAM拷贝到L2缓存区,再从L2缓存区拷贝到L1,最后由DSP内核取得。

三层次的存储器系统(图中B代表byte)

图1 三层次的存储器系统(图中B代表byte)

  研究表明,采用这种多级缓存的架构可以达到采用完全片上存储器结构的系统约80%的执行效率。本文致力于更深入地研究Cache的机制,对算法的数据结构、处理流程以及程序结构等进行优化,以提高Cache的命中率,更有效地发挥Cache的作用,从而达到提高解码器运行效率的目的。

  2 基于Cache的视频解码算法实现

  为了克服上述不足,本文通过更改视频解码算法的实现架构,充分利用Cache中L1P,减少CPU读取程序代码的缺失次数,提高解码程序的执行效率。

  在具体实施过程中,本文根据L1P的容量和程序中各个功能单元代码的大小,将图2中的功能单元分为四个模块,每个模块代码大小均小于16 kbyte,各模块所包含的功能单元为:模块A,读入一个宏块;模块B,熵解码、反扫描、反量化、反变换;模块C,重建;模块D,环路滤波。

  一个视频宏块只有遍历这四个模块之后才算最终完成解码,各个模块之间传递的中间数据如果放置在片外SDRAM中,势必影响下一个模块获取数据的速度,如果数据放置在片内SRAM中,由于片内RAM空间有限不能存储整帧数据。所以权衡考虑,每个模块完成一个宏块行(假设一幅图像包含有M个宏块行,每行有N个宏块)的解码后再交给下一个模块处理,这样既可以将中间数据放置在片内又可以充分利用L1P,减少各个模块之间的代码冲刷,直到M 个宏块行全部处理完毕,这样就得到一帧数据的解码图像。

解码算法流程

图2 解码算法流程

  如图3所示,本文以一个宏块行为处理单位,在进行解码时,首先执行模块A将整个宏块行读入高图3 处理一个宏块行的新流程速缓存中,执行完毕模块A后,读入模块B的代码,该部分代码将会冲掉模块A 的代码。执行完毕模块B后,读入模块C的代码,该部分代码将会冲掉模块B 的代码。依此类推,当执行完毕模块D后,再重复执行以对下一个宏块行进行解码。

处理一个宏块行的新流程

图3 处理一个宏块行的新流程

  每个模块在执行一个宏块行的解码过程中,会被反复执行N 次,在此期间程序代码保留在L1P中不被冲刷,直到第二个模块执行的时候第一个模块的代码才被冲刷。所以此方法解码一个宏块行才发生四次冲刷,完成一帧图像的解码共发生4 ×M 次代码冲刷,较改进之前减少冲刷次数4 ×M ×(N - 1)。

  表1中的测试序列分辨率为720 ×576,调整结构后解码速率均有不同程度的提高,通过对统计结果的平均得知,效率提高20%左右。

表1 实验结果

实验结果

  3 结论

  本文解码器优化充分利用了处理器的程序Cache功能,模块分配方式依据Cache大小而定,针对不同处理器的不同Cache, 可以有不同的模块划分方式,只需要保证每个模块代码量小于程序Cache容量即可。处理器对于数据的读取同样可以采用类似方法,以达到充分利用数据Cache的目的。此方法不仅可以应用于AVS解码器,也可应用于AVS编码器,还可以应用于与之拥有类似结构的H. 264、MPEG、VC1等编解码算法。


分享到:
评论

相关推荐

    AVS解码器在DSP平台上的优化[图]

    AVS解码器的结构复杂、运算量较大,要在嵌入式平台上实现实时解码具有较大难度。在对解码器性能优化的过程中可以依据使用平台对其进行汇编指令集的优化或者针对解码器的关键算法模块进行改良,以上方法对解码器性能...

    AVS解码器的实现基于DSP的AVS编码器研究

    AVS解码器的实现技术基于DSP的AVS编码器研究

    双DSP系统设计及AVS视频解码器优化

    双DSP系统设计及AVS视频解码器优化,希望该文档对大家有帮助

    AVS.DSP.rar_AVS_AVS-DSP

    在DSP上实现AVS编码器,需要考虑硬件特性,例如 DSP 的指令集、并行处理能力、内存结构等。可能涉及的技术包括: 1. **指令级并行**:利用 DSP 的向量指令集,实现数据并行处理,提高计算效率。 2. **流水线设计**...

    dsp_avs20090610.rar_AVS_AVS 音频_DSP P3_avs dsp_avsace-016

    通过深入研究这个压缩包的内容,开发者可以学习到AVS音频编码的原理,了解如何在DSP上实现高效的音频处理,并可能根据需要进行定制和优化。这对于那些致力于音视频编码技术、嵌入式系统开发或者数字音频处理的人来说...

    基于DSP的AVS IDCT的研究与实现

    这种方法简单易实现,并且在DSP上可以很好地利用并行处理能力。 - **奇偶分解算法**:这是一种高效的算法,通过将输入序列分为奇数项和偶数项来减少计算量。例如,在16点IDCT中,可以将16个输入分为两组8点的序列,...

    AVS解码中反量化的FPGA实现.pdf

    在实现反量化模块时,需要在FPGA芯片上合理分配逻辑资源和存储资源,这包括查找表(LUTs)、块RAM(BRAM)、数字信号处理器(DSP)模块等硬件单元。 综上所述,文章基于实际的硬件开发案例,深入分析了如何在FPGA...

    联合信源推出首款采用ARMCortex-A8处理器和NEON技术的国标AVS标清解码器.pdf

    【标题】和【描述】提到的是联合信源公司推出的一款基于ARM Cortex-A8处理器和NEON技术的国标AVS标清解码器。这款解码器是针对AVS(GB/T200090.2)标准设计的,AVS是中国音频视频编码标准,用于高效地编码和压缩音...

    基于AVS-M的移动视频编解码研究调研报告.doc

    5. **DSP处理器及开发平台**:在实际应用中,AVS-M编解码通常在Digital Signal Processor (DSP) 上实现,因为它们具备高速运算能力和低功耗特性,适合移动设备。开发平台通常包括硬件模拟器和软件开发工具链,以支持...

    基于FPGA的AVS编码器帧内预测实现.pdf

    在现代数字视频编解码技术中,AVS标准,即音频视频编码标准,是由中国自主提出的,旨在满足数字电视广播、数字存储媒体以及互联网等多媒体应用的需求。该标准的编码效率高,性能达到了国际先进水平,且相比于其他...

    AVS编码与DSP实现的视频编码器

    本系统选用数字媒体处理器TMS320DM6446(简称“DM6446”),其主频高达594MHz,具有丰富的专为...片上集成的基于ARM9的ARM926EJ-S核(主频高达297 MHz),丰富的媒体、外设接口,为AVS视频编解码方案提供了很好的硬件基础。

    单片机与DSP中的上海龙晶发布AVS高清解码芯片,助力本土标准入轨

    上海龙晶微电子有限公司在单片机与DSP领域中的一项重大突破是推出了AVS高清解码芯片DS1000,这款芯片对于推动我国自主的AVS标准的产业化进程具有里程碑意义。AVS(Advanced Video Coding for Standard Definition ...

    TMS320DM6446 DSP应用设计资料学习资料80个合集.zip

    基于DSP平台的AVS视频编码器设计优化.pdf 基于DSP的视频监控系统硬件设计.pdf 基于IPTV终端的视频监控系统的设计.pdf 基于RF5的DSP开发方法的研究.pdf 基于RF5的DSP软件设计的研究.pdf 基于Ti-Davinci DM6446开发...

    基于多核DSP处理器DM8168的视频处理方法

    HDVICP通过集成运动估计、帧内预测估计引擎、熵编解码器等硬件模块,以硬件加速的方式提升了数字图像处理运算,从而增强了视频处理能力。 C674xDSP内核是TMS320C6000DSP平台上的一款高性能浮点数字信号处理器,它...

    意法半导体(ST)下一代解码器芯片强化高清机顶盒的性能和价值.pdf

    综上所述,STi7105解码器芯片是意法半导体在半导体领域的技术创新,它通过提供高效能、低能耗的解决方案,不仅强化了高清机顶盒的功能,也提升了整个行业的价值标准。对于消费者和制造商来说,这是一款极具吸引力的...

    基于AVS-M和DM642视频服务器的研究

    软件设计上,考虑到嵌入式程序对硬件资源的限制,论文提出了针对AVS-M编码器的优化策略。这包括了存储结构的优化,如利用DM642的三级存储系统(L1P、L1D、L2和片外SDRAM)并优化Cache性能,以及CPU与DMA并行性设计,...

Global site tag (gtag.js) - Google Analytics