0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于AVS 3D实时解码器在 FPGA/SoC平台上的设计与实现

电子工程师 来源:电子威廉希尔官方网站 应用第5期 作者:任鹏飞,于鸿洋 2021-04-07 11:33 次阅读

0 引言

AVS[1](audio video coding standard)是《信息威廉希尔官方网站 先进音视频编码》系列标准的简称,是我国具有自主知识产权的第二代信息编解码标准。2008年底,AVS标准工作组开始起草双目立体编解码方案[2]。该方案采用双目拼接算法,所用视频序列由基线相互平行的两摄像机采集,将左、右视点信息合成为一个码流进行传输;而在解码端恢复出左、右两路图像数据。

但目前,尚没有针对AVS 3D标准的FPGA/SoC软硬协同平台实现。本文以Xilinx公司的ZYNQ 7020开发板为平台,它是内部具有两个M9处理(Processing System,PS)硬核核心的片上系统芯片,该平台具有芯片集成度高、控制能力强、软件通用性好的优点。本文采用一个主PS作为顶层控制,完成3D ES流的外部接口通信和解码图像显示控制;另一个从PS以及部分硬件加速模块(包括ES流的语法解析、算术码解码、变长码解码等硬件加速模块)共同完成AVS双目拼接解码算法。两个PS协同工作,在FPGA/SoC平台上实现了AVS 3D实时解码器。

1 AVS 3D解码器的算法流程

AVS 3D解码器采用双目拼接算法。AVS 3D ES流同时含有左、右视点的两路信息。3D解码器的算法设计流程图如图1所示。读入3D ES流,以帧为单位解码,其解码原理与AVS单路解码器相似。

6356824742086779696143793.gif

视点分离得到的左、右视点基本层图像存在水平维度的分辨率减半。由于基本层图像和增强层图像存在很强的空间相关性,故对基本层图像进行水平维度的上采样插值滤波,预测得到分辨率提升的增强层图像。为保证增强层图像质量,需要对上采样滤波器核向量进行设置[3],其原理如式(1)所示:

6356824745950979699702128.gif

视点分离得到的基本层图像分辨率为M/2×N,需要在水平维度上进行上采样插值滤波。在具有水平关系的两个基本层像素点xi,j和xi,j+1之间插入半像素点vi。通过水平插值,从分辨率为M/2×N的基本层图像预测得到分辨率为M×N的增强层图像。

2 语法元素解析的CABAC和CAVLC硬件加速模块的设计

本文通过硬件加速模块实现拼接码流的语法解析工作,AVS标准中的熵解码主要采用CABAC[4]和CALVC[5]两种方式实现。语法元素解析模块的硬件加速模块设计框图如图2所示。

6356824750535479696806200.gif

码流输入管理模块的主要任务是读入ES原始码流。其中indata[7:0]存储原始ES流的8 bit数据;avail_n检测输入数据的可得字节数;strobe表示输入码流有效性;当读入的数据解析完成后,req通知ES流继续读入。

语法元素输出模块主要控制熵解码后语法元素的数据输出。其中n_bits表示请求读取语法数据的bit数;req为请求读取语法信息;req_type为当前语法元素所需采用的熵解码方式,根据req_type的不同,对当前元素采用CABAC或CAVLC解析算法;outdata[31:0]为熵解码后的数据;del_ready指示当前语法解析模块是否准备好接受外部请求;strobe为当前请求输出语法信息有效性。

核心语法解析单元运行CABAC或CAVLC的解析算法,涉及模型索引号产生、模型自适应更新、反二进制化等过程。在AVS标准中,CABAC主要用于解析宏块类型、亮度色度预测模式、变换系数等数据;CAVLC主要用于解析亮度和色度残差数据。

AVS的码流数据结构及层次关系从高到低依次为:序列、图像、条带、宏块和块,在解码过程中,需要从高到低依次解析出每一层次中的语法元素数据。将硬件加速模块解析得到的数据赋值给相应的语法元素变量,利用得到的语法元素变量在,恢复出左、右视点的重建图像。

3 AVS 3D实时解码器在SoC片上系统的设计与实现

本文采用Xilinx公司ZYNQ 7020开发板,ZYNQ 7020采用双核设计,拥有两片Cortex-M9芯片,一片用作主处理系统,一片用作核心AVS算法解码,两片M9可以共享内存和外围设备。针对AVS 3D解码器,本文采用Master-Slave主从控制设计模式。采用MASTER M9作为顶层控制,完成ES 3D码流的外部接口通信、解码图像显示控制等功能;SLAVE M9及语法解析硬件加速模块共同完成AVS 3D核心解码算法; MASTER M9和 SLAVE M9协同工作,最终实现AVS 3D实时解码器SoC片上系统设计[6]。

3.1 AVS 3D解码器在ZYNQ 7020的启动过程

在启动AVS双目解码器的SoC片上系统时,首先在ZYNQ 7020上进行时钟配置,之后在MASTER M9上执行BootROM启动代码。BootROM是整个SoC系统上最先运行的程序,当SLAVE M9等待解码启动指令时,BootROM已经在MASTER M9上运行。BootROM的主要功能是配置整个双目解码器的SoC系统的串口信息,并将第一阶启动程序(First Stage Boot Loader,FSBL)从启动设备复制到MASTER M9的片上内存。

由FSBL初始化SLAVE M9的Xilinx硬件配置信息,并通过读入BootHeader头文件通知MASTER M9是否启动运行。在FBSL运行的过程中,BootROM会先将SLAVE M9设置为事件等待模式,MASTER M9启动后,由MASTER M9通知SLAVE M9是否启动AVS双目立体解码程序。整个启动流程如图3所示。

6356824757716979694957024.gif

3.2 AVS 3D解码器在ZYNQ 7020的设计原理

AVS双目立体解码器在SoC片上系统的整体方案设计如图4所示。在各个模块的交互过程中,通过AXI LITE传送信息量较小的数据;通过AXI VDMA传递解码图像数据等信息量较大的数据;通过AXI CON传送交互频繁的数据。

6356824759925979698333738.gif

MASTER M9是整个AVS 3D解码器在SoC片上系统的顶层控制单元。其功能主要包括:

(1)从以太层获取用于网络传输的3D TS码流;

(2)与TS码流语法解析模块进行信息交互,通知SLAVE M9启动解码过程。SLAVE M9根据码流中解析标志位的不同,调用硬件加速模块采用CALVC或是CABAC的熵解码方式对码流中的语法元素进行解析,并与状态信息模块交互,将熵解码方式标志位、缓存大小、解析完成标志位等信息返回给MASTER M9;

(3)管理解码图像数据及参考帧的位置指针,并将相应数据送往DDR MEMORY不同存储位置。

SLAVE M9运行AVS 3D解码器的核心算法。解码算法包括AVS双目拼接算法和AVS单路解码算法两部分。AVS双目拼接算法如第1节所述。单路解码器算法主要包括:起始码检测、序列及图像头读取、熵解码、宏块数据获取、反变换、反量化、帧内及帧间预测、1/4像素运动向量插值、图像残差恢复、环路滤波等模块。将实现AVS 3D解码功能的C语言代码写至相应的软件开发平台,由硬件加速模块将语法元素解析模块得到的语法元素数值输入各个层级的解码函数,从而通过SLAVE M9上实现AVS 3D解码算法。最终将解码得到的拼接图像序列和左、右视点图像序列写入DDR MEMORY的不同地址空间。

解码图像信息交换模块是MASTER M9和SLAVE M9在解码过程中图像信息交互的中介。在SLAVE M9解码过程中会产生3种图像指针类型:

(1)参考帧指针(针对I、P帧图像),该指针指向的图像作为帧间预测的参考值,并不会立即显示;

(2)显示帧指针(针对B帧图像),该指针指向的图像在解码后直接放入显示序列中;

(3)写入位置指针,SLAVE M9解码一帧图像后,将解码数据写入在该指针指向的DDR MEMORY地址中。通过该模块,SLAVE M9将图像指针的状态和数值传送给MASTER M9,MASTER M9又与DDR MEMORY交互,保证正确的图像解码顺序和显示顺序。

在DDR MEMORY中采用乒乓存储设计,设置两块数据缓存区,每块数据缓存区为拼接图像、左视点图像、右视点图像各分配5帧内存空间。当缓存区1向HDMI接口传输数据时,缓存区2从SLAVE M9接收数据;当缓存区1从SLAVE M9接收数据时,缓存区2向HDMI接口传输数据;如此循环工作,通过两块缓存区的交替工作,提高DDR MEMORY的工作效率。其中每块缓存区中的数据读写位置均由MASTER M9管理,保证DDR MEMORY以正确的显示顺序将图像内容送往HDMI接口。

4 实验结果及分析

本文中,AVS 3D解码器的SoC片上系统设计在Xilinx ZYNQ 7020开发板上实现。通过在AVS单路软件解码器RM52k上增加视点分离模块、层间上采样滤波模块实现AVS 3D解码算法,将代码改写至Xilinx SDK 2014.2嵌入式软件平台,并加载FreeRTOS操作系统用于内存分配和外围设备初始化。AVS双目立体解码参数配置如表1所示。

6356824765332379694164382.gif

将AVS 3D ES流打包成为用于网络传输的TS流,根据Xilinx的LWIP准则进行TCP连接,经IP QAM调制器最终从以太层将码流输入ZYNQ 7020的MASTER M9模块。通过硬件加速模块实现语法元素解析,结合SoC片上系统进行AVS双目立体解码算法处理,最终通过HDMI接口将视频数据输出到三维电视,在三维电视上可以得到左、右视点信息的拼接视频,通过视点分离和层间上采样插值,恢复出左、右视点的增强层图像。经视点交织处理后,得到最终的3D视频,可以观察到解码得到的3D视频具有明显的深度信息,AVS 3D解码器的效果如图5所示。这说明了AVS 3D实时解码器在FPGA/SoC平台的有效性。

5 结束语

本文通过在AVS原有单路解码器的基础上进行功能的扩充,实现了基于AVS标准的3D解码器的设计。结合语法元素解析的硬件加速模块,在Xilinx ZYNQ 7020开发板上创新性地实现了AVS 3D实时解码器的FPGA/SoC协同平台实现。将解码后的视频输入三维显示设备,通过视点交织观察到3D视频的视点差异和深度信息,验证了该AVS 3D实时解码器在FPGA/SoC平台设计的有效性。

参考文献

[1] 侯金亭,马思伟,高文.AVS标准综述[J]。计算机工程,2009,35(8):247-249,252.

[2] 马茜,李栋,汪启扉,等.AVS立体视频编码标准[J]。上海大学学报(自然科学版),2013,19(3):225-228.

[3] 王樟,柳健,严国萍。简单高效地用于SVC标准中的层间上采样滤波方案[J]。通信学报,2008,29(4):8-12.

[4] MARPE D,SCHWARZ H,WIEGAND T.Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard[J].IEEE Transactions on Circuits and Systems for Video Technology,2003,13(7):620-636.

[5] ALLE M,BISWAS J,NANDY S K.High performance VLSI architecture design for H.264 CAVLC decoder[C].ASAP 2006:11-13.

[6] 郭炜,郭筝,谢憬,等.SOC设计方法与实现[M]。北京:电子工业出版社,2007.

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21736

    浏览量

    603420
  • 解码器
    +关注

    关注

    9

    文章

    1143

    浏览量

    40742
  • AVS
    AVS
    +关注

    关注

    0

    文章

    55

    浏览量

    23168
  • CABAC
    +关注

    关注

    0

    文章

    4

    浏览量

    2575
收藏 人收藏

    评论

    相关推荐

    无线网解码器怎么连接

    无线网解码器的连接方式可能因设备型号、品牌以及应用场景的不同而有所差异。以下提供的是一种较为通用的连接步骤,但请注意,实际操作中应参考具体设备的说明书或官方指导进行操作。 一、设备准备 无线网
    的头像 发表于 10-15 16:31 373次阅读

    无线解码器的质量标准是什么

    可以更弱的信号条件下工作,这对于覆盖范围和信号穿透能力至关重要。 1.2 选择性 选择性是指解码器接收特定频率信号时,对邻近频率信号的抑制能力。良好的选择性可以减少干扰,提高通信质量。 1.3 阻塞性能 阻塞性能是指
    的头像 发表于 10-15 16:21 357次阅读

    基于TMS320C64x的DSP平台上运行TMS320C64x编解码器

    电子发烧友网站提供《基于TMS320C64x的DSP平台上运行TMS320C64x编解码器.pdf》资料免费下载
    发表于 10-14 11:16 0次下载
    <b class='flag-5'>在</b>基于TMS320C64x的DSP<b class='flag-5'>平台上</b>运行TMS320C64x编<b class='flag-5'>解码器</b>

    解码器和控制区别是什么

    字电子电路中,解码器根据输入的编码形式进行逻辑运算,输出对应形式的信号,实现数字之间的转换。例如,音视频领域,解码器负责将压缩的音视频数据解压缩,生成可以直接观看和聆听的媒体内容。
    的头像 发表于 09-30 14:27 477次阅读

    控制解码器的使用方法

    控制解码器是一种用于解析和执行控制信号的设备,广泛应用于工业自动化、机器人威廉希尔官方网站 、航空航天等领域。它通常与传感、执行等设备配合使用,以实现
    的头像 发表于 09-30 14:24 567次阅读

    遥控解码器怎么使用

    遥控解码器是一种用于解码和复制遥控信号的设备,它可以帮助用户遥控丢失或损坏的情况下,重新
    的头像 发表于 09-30 14:23 837次阅读

    交互式低延迟音频解码器

    普通音频解码器处理音频时可能会引入较高的延迟,通常适合于音乐播放或录音等场景。而交互式低延迟音频解码器则专为实时应用设计,延迟通常在10毫秒以内。这种快速响应对于游戏、在线会议和直播
    的头像 发表于 09-28 11:15 244次阅读
    交互式低延迟音频<b class='flag-5'>解码器</b>

    领麦微红外测温传感小型光敏3D打印机中的创新应用

    的关键组件。一、高精度实时温控,保障打印质量领麦微红外测温传感采用非接触式测温威廉希尔官方网站 ,能够实时、精确地监测光敏树脂材料的温度变化。光敏树脂3D
    的头像 发表于 09-25 14:45 549次阅读
    领麦微红外测温传感<b class='flag-5'>器</b><b class='flag-5'>在</b>小型光敏<b class='flag-5'>3D</b>打印机中的创新应用

    全景声解码器

    全景声解码器是一款将音频威廉希尔官方网站 推向极致的产品。它不仅提供高质量的音频解码,还让用户体验到一种前所未有的声音空间。无论您是想要享受音乐、观看电影,还是沉浸于游戏世界,全景声解码器都能为您打开一个新的音频维度,让每一次聆听都成为一次精
    的头像 发表于 09-24 10:40 385次阅读
    全景声<b class='flag-5'>解码器</b>

    9740解码器配什么光栅

    的答案。 兼容性考虑 :首先,需要确保所选光栅与9740解码器电气接口、信号传输方式、分辨率等方面兼容。这通常要求查看解码器和光栅的威廉希尔官方网站 规格书或咨询厂商以获取准确信息。 分辨率匹配 :光栅的分辨率(如180DPI、360DPI
    的头像 发表于 09-23 18:01 348次阅读

    光栅解码器损坏的表现有哪些

    :光栅解码器的损坏可能导致光信号转换过程中出现失真,这可能是由于光栅本身的损伤或者解码器电路的故障。 表现 :信号的波形可能会变得不规则,或者信号的幅度和相位出现异常。 噪声增加 : 原因 :损坏的光栅
    的头像 发表于 09-23 17:57 526次阅读

    如何搭建3d数字孪生平台

    搭建3D数字孪生平台是一项复杂且具有挑战性的任务,需要综合运用多种威廉希尔官方网站 和步骤。实现这一目标需要进行需求分析、数据采集、建模与仿真、数据库设计、人机界面设计、数据分析与算法选择、平台搭建
    的头像 发表于 07-04 15:23 398次阅读

    VIVERSE 推行实时3D渲染: 探索Polygon Streaming威廉希尔官方网站 力量与应用

    商业领域和娱乐行业中,3D渲染威廉希尔官方网站 一直是推动视觉体验革新的关键力量。随着威廉希尔官方网站 的进步,实时3D渲染威廉希尔官方网站 逐渐成为主流,近期VIVERSE平台
    的头像 发表于 05-31 15:49 2344次阅读
    VIVERSE 推行<b class='flag-5'>实时</b><b class='flag-5'>3D</b>渲染: 探索Polygon Streaming威廉希尔官方网站
力量与应用

    3线到8线解码器/多路分解数据表

    电子发烧友网站提供《3线到8线解码器/多路分解数据表.pdf》资料免费下载
    发表于 05-13 11:06 0次下载
    <b class='flag-5'>3</b>线到8线<b class='flag-5'>解码器</b>/多路分解<b class='flag-5'>器</b>数据表

    友思特C系列3D相机:实时3D点云图像

    3D相机
    虹科光电
    发布于 :2024年01月10日 17:39:25