首页 利用FPGA实现基于H.264可变区块比对

利用FPGA实现基于H.264可变区块比对

举报
开通vip

利用FPGA实现基于H.264可变区块比对 基于利用FPGA实现基于H.264可变区块比对硬件基础结构 1 二等奖 利用FPGA实现基于H.264可变区块比对 硬件基础结构 大学院校: 清云科技大学/ 电子工程研究所 参赛队员: 钱文贤 古松志 指导教师: 欧谦敏 一. 设计概述 1. 设计介绍 在动态图像编码系统中,最常采用区块比对演算法进行移动估测,故其占有极重要的 地位。利用H.264可变区块比对法(VBS-BMA)来取代单一区块大小的区块比对法,改善以往无 法针对视频画面中物体的任何...

利用FPGA实现基于H.264可变区块比对
基于利用FPGA实现基于H.264可变区块比对硬件基础结构 1 二等奖 利用FPGA实现基于H.264可变区块比对 硬件基础结构 大学院校: 清云科技大学/ 电子工程研究所 参赛队员: 钱文贤 古松志 指导教师: 欧谦敏 一. 设计概述 1. 设计介绍 在动态图像编码系统中,最常采用区块比对演算法进行移动估测,故其占有极重要的 地位。利用H.264可变区块比对法(VBS-BMA)来取代单一区块大小的区块比对法,改善以往无 法针对视频画面中物体的任何改变皆做有效的处理,而进一步改善视频的压缩效率。 我们的设计不但减少H.264可变区块比对演算法所生成的复杂计算量外,还可达到低延 迟率、低功率、高吞吐量的特性,来得到更好的编码效能。 H.264可变区块比对法可支持4x4、4x8、8x4、8x8、8x16、16x8、16x16等 7 种不同大 小的区块。当图像串行数据经由网络传送时,用户可针对目前的带宽选择最合适的区块大小 做区块比对,以得到最佳的传输速度和图像质量;但相对的,H.264可变区块比对法所需要 的计算复杂度却变的相当复杂。因此我们设计一个有效率的VLSI硬件结构,该结构拥有高计 算吞吐量的优点,可以有效降低H.264视频编码因为复杂的计算而花费的时间、减少计算处 Nios II 嵌入式处理器设计大赛2007—优秀作品 2 理频率,而改善了其编码的效能。 测试平台硬件部分:由于在设计的过程中需要大量且复杂的运算来做压缩处理,必须 有高效能的系统来对视频画面做实时处理,为了达到有效处理特定画面大小及画面频率的图 像串行数据,所以我们使用Altera公司目前最新一代的处理器开发套件Nios® II Development Kit。Nios II是一种基于RISC结构的Soft-Core处理器,其是使用FPGA芯片来 合成处理器电路,而不是使用固定电路芯片(Hard-Core)的处理器,所以在开发上比较有弹 性。它除了能作内存的阶层设置,还可自行增加处理器的指令集,以便处理一些特殊需求的 计算。我们在使用Altera公司开发板和FPGA来进行硬件开发的同时,也通过Altera所提供的 硬件开发工具软件Quartus® II,以及集成在Quartus II软件之中的SOPC Builder来进行测 试平台的开发。除了将我们设计的区块比对电路通过SOPC Builder来加入测试平台之外,也 使用其加入以太网芯片的控制硬件和组织各部硬件,接著传送到开发板上进行快速原形化设 计。 测试平台软件部份:我们采用Nios II IDE进行系统平台在测试端软件的撰写和编译。 我们使用它实现和PC之间的网络传输,并将Micro C/OS-II这套操作系统移植到Nios II Processor System的硬件结构上执行。 PC端部分:我们设计了一个可以在微软窗口操作系统执行的图形界面程序,通过网络 让PC和测试平台互相连接并进行动态图像和移动矢量的传输,并在计算、估测、补偿和解碼 后,实时将估测画面显示在PC的屏幕上以方便用户观测。 二. 功能描述 基于利用FPGA实现基于H.264可变区块比对硬件基础结构 3 圖 1. 用户在 PC 端加载图像串行数据 加载待估测的影像 Nios II 嵌入式处理器设计大赛2007—优秀作品 4 圖 2. PC 端和测试平台建立联机 当联机成功后 联机状态会显示联机成功 基于利用FPGA实现基于H.264可变区块比对硬件基础结构 5 圖 3. 测试平台运作后传回估测画面 作品功能说明: 让用户在计算机上使用图形界面(GUI)将图像串行数据加载如图1,和测试平台联机 后联机状态会显示联机成功如图2,通过网络线将图片传送至测试平台,经过移动矢量的计 算、移动估测加上移动补偿后,将估测画面使用网络传回计算机用屏幕显示出来如图3。 测试过程中会显示状态 Nios II 嵌入式处理器设计大赛2007—优秀作品 6 三. 性能参数 1. 本设计使用 Cyclone® FPGA EP1C20F400C7 开发版实作。此芯片总共有 20060 个 logic elements,294912 个 memory bits,301 支引脚。设计结果共享了此颗芯片 8881(44%) 个的 logic elements,110352(34%)个 memory bit,176(58%)的引脚。 2. 本系统在 Nios 处理器中依据所需增加了一些接口模块,用以提高系统集成,因大多数的 外设装置都有相对应的 IP,且这些 IP 都经过良好的设计和验证程序,故可放心的用其 加速硬件验证和软件的发展程序。我们在设计中也大量使用 Altera 公司所提供的 IP, 包含 SDRAM、Ethernet PHY Chip、UART、SRAM、Flash Memory 等装置;此外,32 位的 处理能力,大大提高图形处理及网络处理的效率,增加了其实用性。 3. Nios 处理器在本作品中发挥了控制核心和演算法核心的作用。因很多 IP 和用户 IP 能够 自由添加在外设装置,使得系统更加灵活。 4. 完成移动估测的测试功能。经过测试,可以实时观测估测的图像结果。 5. 目前用此芯片已达成 4x4 区块大小之区块比对,未来会以相同原理陆续加入其它大小区 块。 四. 设计结构 Ethernet 使用者傳送端 測試平台 圖 4. H.264 可变区块比对系统总体设计概念 图4为此次主题H.264可变区块比对FPGA硬件结构的总体设计概念。用户可以用窗口图形 界面(GUI)加载图像串行数据,通过以太网(Ethernet)将图像串行数据传送至测试平台,对 我们的H.264区块比对电路进行测试,经过网络的回传,再藉由PC的窗口界面显示出测试平 台计算后所得到的图像,达到实时观测之目的。 PC端运作 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 : 基于利用FPGA实现基于H.264可变区块比对硬件基础结构 7 動態影像目前畫面 TCP Socket (Client Socket) Process 封包傳送 封包接收 Motion Vector Buffer Decoder 動態影像估測畫面 Ethernet 圖 5. PC 端运作流程 图5为PC端运作流程。用户加载图像串行数据的目前画面会通过TCP Socket传送到以太 网,再接收从测试平台传回的移动矢量并将其解碼,以得到重建后的估测画面。 测试平台运作流程: 圖 6. 测试平台运作流程 图6为测试平台运作流程。测试平台首先由TCP Socket接收PC从以太网传来的图像画面 数据包,并将其数据缓存在Receive Data Buffer。收到的第一张画面,会被当成是初始的 前一张画面(Previous Frame)被放入Previous Frame Memory,第一张图像之后的画面会被 Etherne t 数据包接收 数据包传送 TCP Socket ( Server Socket ) Proces s Receive Dat a Buffe r Sen d Dat a Buffe r Motion Vector Decode Function (移动矢量解碼 ) DMA Function ( DMA 传输 ) Motio n Estimation Devic e ( 移动估测电路 ) Previous Frame Memor y Current Frame Memor y Nios II 嵌入式处理器设计大赛2007—优秀作品 8 当成目前的画面(Current Frame)放入Current Frame Memory。收到Current Frame后,会将 Current Frame和Previous Frame传送至区块比对电路进行移动估测,计算移动矢量;在此 使用DMA的设备,来加快由内存传送数据到区块比对电路的速度。计算所得的移动矢量会被 取出放到Send Data Buffer,通过TCP Socket传回PC;在移动矢量传回PC同时,解碼移动矢 量,通过原先的Previous Frame重建出估测画面,所得的估测画面会被放入Previous Frame Memory 取代原先的Previous Frame,成为下一次计算使用的Previous Frame,完成比对电 路的运作流程。 系统 流程图 破产流程图 免费下载数据库流程图下载数据库流程图下载研究框架流程图下载流程图下载word 说明: 圖 7. 系统流程图 如图7,当PC和测试平台联机成功后,测试平台会藉由网络线接收PC端传送的画面数据 Cx,除了第一张画面C0会直接传送数据到Previous Frame Buffer作初始化,其余皆传送到 Current Frame Buffer ,当收到Current Frame接下来使用DMA装置把Current Frame和 C x 初始化 Previous Buffer 存到Previous Buffer 初始化 存到 Current Buffe r 进行移动估测 移动矢量(MV) 传送到计算机端和 Px-1估测出Px 和 Previous Buffer 估测出 Px 并取代 Previous Buffer 移动矢量(MV) 判断是否结束 结束 是 否 测试平台 X 加 1 基于利用FPGA实现基于H.264可变区块比对硬件基础结构 9 Previous Frame两张画面传送到移动估测电路计算出移动矢量;在测试平台将移动矢量和 Previous Frame经过移动补偿后,生成的估测画面即为Px传送到Previous Frame Buffer做为 下一次的移动估测的数据;在此同时移动矢量通过网络传回PC端,由PC端将移动矢量和Px- 1(前一张画面)估测出和测试平台同样的图片Px存储在PC;下一步判断数据是否传送完毕,若 数据尚未传完,则继续传送Cx,重复整个流程到数据传送完毕为止。 测试平台硬件结构: A va lo n Sw itc h Fa br ic (A va lo n B us ) Altera FPGA Timer 1 Timer 2 Our Motion Estimation Logic SDRAM Controller Avalon Tristate Bridge Nios II Processer Ethernet MAC General-Purpose I/O DMA Controller LCD Disploy C lock R eset SDRAM Memory Flash Memory SDRAM Memory LCD Screen Buttons,LEDs, etc. Ethernet MAC/PHY 圖 8. 测试平台硬件结构(Nios II Processor Reference Handbook) 图8为测试平台所使用的硬件结构图。主要使用Nios II Processor System来组织比对电路 的硬件结构,以Avalon Bus作为连接外设装置的途径,其中包括传统的外设装置模块,如 LCD用于显示测试平台的 IP Address 、Ethernet MAC/PHY用于数据包的传送和接收、 SDRAM用于存储Previous Frame和Current Frame,并使用DMA模块在外设装置和内存之间进 行高效率的数据传输。 测试平台软件结构: Nios II 嵌入式处理器设计大赛2007—优秀作品 10 圖 9. 测试平台软件结构 (Using Lightweight IP with the Nios II Processor Tutorial) 图9为测试平台软件结构。由内往外分层支持,最内层为比对电路的硬件结构,支持整 个软件结构的执行,往外一层为一些硬件装置的驱动程序,这些驱动程序在构建硬件结构时 会自动生成,支持外层对于最内层硬件装置的使用,再往外一层就是Altera 的HAL library,主要提供其外层对硬件装置更方便的使用,接著往外两层便是嵌入操作系统和 Protocol Stack,而最外层就是我们所撰写的一些应用程序。 移动估测电路的系统结构图: Nios II Processor System Hardware Software Device Driver s HAL API Micro C / OS-II LwIP Software Components Our TCP Socket Server Process and Our Application 基于利用FPGA实现基于H.264可变区块比对硬件基础结构 11 Nios II Processor A valon Slave Interface Current block data Search area data 16 SAD Modules VBSME Process MV_min SAD MV Address Generation Unit Control Unit H.264可變區塊移動估測設計 A valon B us clk resert address chip select write write data read read data Motion Vector Register 移動估測電路 圖 10. 移动估测电路的系统结构图 图10为移动估测电路的系统结构图,使用Avalon Bus将图像传入比对电路中,经计算之 后,再通过Avalon Bus从电路中的Motion Vector Register读取移动矢量,传回给PC端。 我们所设计的移动估测架构包含16个绝对误差总合模块(SAD Modules)、可变区块移动 估测处理器(VBSME processor)、地址生成单元(Address Generation Unit;AGU)和控制单 元(Control Unit)。 z 16 个绝对总合误差模块(16 SAD Module)分别负责处理一个不同的基本子区块和其所对 应的搜寻区域的绝对误差总合计算。 z 可变区块移动估测处理器(VBSME processor)负责将由 16 个绝对误差总合模块所得到的 16 个基本子区块的绝对误差总合,同时组合成不同大小子区块和巨区块的绝对误差总合 并找到最佳移动矢量。 z 地址生成单元(Address Generation Unit)控制内存数据的写入和读出。 z 控制单元(Control Unit)控制各个单元之间动作的协调。 五. 设计方法 本系统平台的设计步骤: Nios II 嵌入式处理器设计大赛2007—优秀作品 12 硬體設計 軟體設計 專案建立 (使用Standard專案) 使用Quartus II設計硬體 由SOPC Builder加入硬體 並從新 生系統模組產 硬體專案編譯 利用Quartus II的Flash Programmer傳送編譯好的硬 體專案到板子 由SOPC Builder呼叫Nios II IDE 利用Nios II IDE建立軟體專案 撰寫C語言程式 編譯軟體專案 利用Nios II IDE傳送編譯好的 軟體到板子上 Nios II IDE上觀看輸出結果 圖 11. 系统平台软硬件设计流程图 如图11系统平台硬件设计部分:我们从Nios II光盘安装的Nios II范例来取得standard project,并以阶层式模块化设计概念撰写硬件程序。经编译无误后,开启SOPC Builder, 集成定制的用户IP、加入用来提高系统效能的DMA装置。构建好整个硬件结构后,SOPC Builder会自动把所有的硬件装置组织起来,并生成相对应的驱动程序及软件开发所需的一 些文档。通过SOPC Builder编译好的测试平台经设定之后即使用Quartus II传到开发板上, 让FPGA综合测试平台所需要的硬件,进行快速的原形化设计。之后我们采用Altera所提供的 Nios II Integrated Development Environment工具软件(简称 Nios II IDE)来进行测试平 台在测试端软件的撰写和编译。Nios II IDE包含Micro C/OS-II实时操作系统以及一个称为 Lightweight IP的Protocol Stack,其为一套用于嵌入式系统的小型TCP/IP 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 ,我们使用 它实现了TCP Socket的Server Socket,进行和PC之间的网络传输。Micro C/OS-II是一套适 用于嵌入式系统的Real-Time Operating System,对于Process能够快速反应,故将这套操 作系统移植到Nios II Processor System的硬件结构上执行。 系统平台软件设计部分:由Altera提供的Simple Socket Server IP进行修改。主要设 定IP地址、子网掩码和port name,另外再修改读取、接收、写入和传送的程序,设定 基于利用FPGA实现基于H.264可变区块比对硬件基础结构 13 System Library的send buffer和receive buffer的大小,并将编译好的项目传到测试平 台。为方便用户试用此系统平台,我们采用Borland公司所推出的C++ Builder 6.0撰写了一 个可以在微软窗口操作系统执行的图形界面程序。因为是采用TCP/IP的协议,所以使用了 TCP Socket的Client Socket功能,让PC和测试平台互相连接并进行动态图像和移动矢量的 传输,在PC加载图像串行数据进行区块比对电路的测试,并实时将测试平台生成的估测画面 传回PC方便用户观测。 六. 设计特点 1. 本 H.264 区块比对电路使用 Altera 所提供的 DMA 装置来管理区块比对电路和 SDRAM 之 间的传输,即可不必通过 Nios II Processor 传输,达到有效率的传输。 2. 系统平台所需要的网络功能,可以使用 SOPC Builder 加入以太网芯片控制硬件,使用 SOPC Builder 自动生成相对应的驱动程序,达成系统所需之网络功能。 3. 定制用户 IP 并集成到 SOPC Builder 中,完成复杂的处理计算任务;另外,我们以阶层 式模块化的硬件电路设计,减少设计复杂度,方便用户定制。 七. 总结 在这个软件盛行的时代,大家似乎越来越重视计算机中软件的学习和开发。但在这个设 计中,我们证明了以往在软件中所做的H.264可变区块比对不但可以使用硬件结构完成,还 使用了硬件的特性让比对效能优于软件比对。除此之外,通过Altera所提供的Simple Socket Server IP让用户实时观测估测出的图像画面,不用像以往需要用逻辑 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 仪和信号 生成器处理芯片上的复杂脚位,也不用撰写复杂的testbench。 Nios能方便用户组合各项装置以达需求,像SDRAM、Ethernet PHY Chip、UART、SRAM、 Flash Memory等装置,都能内嵌入处理器中,并通过SOPC Builder所提供之IP直接开发,减 少外设硬件设计的复杂度和设计时程。 在制作过程中除了对Nios嵌入式处理器更加了解外,更学到了如何解决问题和比赛时的 心态调整,这是参加此次比赛最大的收获,不是平时在教室中学得到的。
本文档为【利用FPGA实现基于H.264可变区块比对】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_025295
暂无简介~
格式:pdf
大小:570KB
软件:PDF阅读器
页数:13
分类:互联网
上传时间:2013-10-01
浏览量:30