首页 | 供应信息 | 求购信息 | 下载系统 | 新闻系统 | 企业信息 | 产品信息 | 工控知道 | 论文信息 | 泵阀网 | 展会信息 | 论坛
作者:任怀鲁,张德学 山东科技大学 发布时间:2012-02-22 来源: 繁体版 访问数:
摘要:构建了面向H.264视频编码器的SoC验证平台,采用FPGA原型系统完成H.264编码器验证。采用Wishbone总线连接32位微处理器OR120 0以及其他的必要IP核构建基本SoC平台,并在此基础上集成H.264硬件编码模块;根据H.264编码器的数

摘要:构建了面向H.264视频编码器的SoC验证平台,采用FPGA原型系统完成H.264编码器验证。采用Wishbone总线连接32位微处理器OR120 0以及其他的必要IP核构建基本SoC平台,并在此基础上集成H.264硬件编码模块;根据H.264编码器的数据流要求,设计了逐行输入/宏块顺序输出的多端口SDRAM控制器;移植了μC/OS-II实时操作系统和μC/TCP-IP协议栈,用于输出编码后比特流。
关键词:SoC;H.264;OR1200;SDRAM控制器;MT9P031;EP2C70F896C6

引言
    H.264编码算法复杂,其硬件实现包含众多模块。H.264编码器往往采用软硬件协同设计:在宏块级及以下,运算量巨大,用软件往往无法实现实时编码,适用于用硬件实现;而在宏块级以上,是一些图像信息打包的工作,运算量小,且随视频序列的不同而不同,为了保证编码器的通用性和灵活性往往用软件实现。软硬件协同设计技术是SoC的主要技术之一,但同时它也使SoC芯片的规模和SOC设计的复杂度大大提高。在这种情况下,仿真和验证就成为了影响项目进度的瓶颈,往往占整个芯片开发周期50%~80%的时间。为了缩短SoC验证时间,基于FPGA的原型验证(包括硬件原型和软件原型)已经成为SoC设计流程前期阶段的常用手段。
    OR1200以及其他诸多的与之配套的IP核由Opencores组织负责开发和维护,功能强大,软硬件开发工具齐全,采用免费和开源的授权策略,可以自由地获取源代码,而且大多都经过了ASIC验证,已经受到学术界和工业界越来越多的关注。
    为了搭建适用于H.264视频编码器的SoC验证平台,本文主要做了以下几项工作:
    ①采用OR1200微处理器作为SoC系统的控制核心,通过Wishbone总线互联规范将Opencores组织发布维护的相关IP核集成在目标SoC系统上,构成了最初的SoC验证平台。
    ②采用台湾友晶科技公司发布的500万像素图像视频采集模块,为H.264视频编码系统提供原始视频数据,并根据H.264标准的要求,在视频采集模块中加入了RGB到YUV颜色空间转换模块,以及逐行输入/任意宏块顺序输出的多端口SDRAM控制器(简称为“多端口SDRAM控制器  ”)模块。
    ③在所构建的SoC验证平台上移植了μC/OS-II系统以及μC/TCP-IP协议栈,使H.264视频编码系统生成的数据流输出到通用处理器终端,作进一步的验证。

1 相关技术简介
1.1 OR1200微处理器以及Wishbone总线
    OR1200是一种32位、标量、哈佛结构、5级整数流水线的RISC处理器,支持Cache、MMU和基本的DSP功能。在300 MHz时,可以提供300 DMIPS和300M次32位×32位的DSP乘加操作的能力。OR1200定位于嵌入式、移动和网络应用环境。
    Wishbone总线规范是一种片上系统IP核互连体系结构。它定义了一种IP核之间公共的逻辑接口,减轻了系统组件集成的难度,提高了系统组件的可重用性、可靠性和可移植性。Opencores组织经过ASIC或FPGA验证的开源IP核大多都支持Wishbone总线协议。
1.2 H.264/AVC视频编码标准
    H.264/AVC标准是迄今最新的一套视频编码标准,它与以往的MPEG2标准相比,码流节省了50%以上。H.264标准中所用的编码技术主要有:帧内预测、运动估计、整形变换和环路滤波等。
    H.264标准以宏块(16x16大小的像素块)为单位进行编码。所以它的数据输入是以宏块为单位的像素块,输出是经过了预测编码、变换编码以及量化和熵编码之后的比特流数据。
1.3 TRDB-D5M图像采集模块
    TRDB-D5M图像采集模块中的采用Micron公司生产的CMOS传感器MT9P031。它具有以下特性:低功耗,逐行扫描图像传感器;最高支持到2 592×1944@12fps;12位A/D转换器;支持摄像模式(viewfinder)和快照模式(snapshot);曝光时间可调;双线串行接口(I2C总线接口)等。

2 SoC验证平台的总体框架
    如图1所示,SoC验证平台主要包括OR1200处理器、片上RAM控制器、SSRAM控制器、Flash控制器、UART-BOOT模块(用于启动)、UART-16550模块(用于显示信息)、GPIO模块、DM9000A控制器、图像采集模块、双端口SDRAM控制器和VGA控制器。

a.jpg


    OR1200微处理器是整个验证平台的控制核心,根据系统的需求和节约的原则,裁去了OR1200中的指令缓存器(IC)、数据缓存器(DC)和存储器管理单元(IMMU和DMMU)。SoC平台中另一个重要的模块就是片上存储器(Onchip-Memory)。片上存储器数据访问能力强,功耗低,但是容量有限,只能实现代码量比较小的特定功能(如硬件初始化、CPU启动引导等)。当完成这些操作后处理器就会跳转到主存储器SSRAM的地址空间执行代码。
    在其他的外设模块中,UART-BOOT模块只带有一个Wishbone主端口,用于控制CPU的启动和程序下载,它不需要分配地址。其他模块的地址空间分配情况如表1所列。

b.jpg


    在图1所示的IP核中,除了以下几个模块外均可从Opencores网站上免费获得:UART-BOOT模块是为了在验证过程中更加方便地更新下载软件代码和对SoC平台进行控制,需要自主设计;图像采集模块可参考友晶科技公司的参考设计,但是其采集到的数据为RGB格式,需要转换为H.264编码器所需要的YUV格式;此外,由于图像采集模块内部的MT9P031图像传感器是逐行扫描的,而H.264编码器是以宏块顺序进行编码的,因此SDRAM的控制器需要重新进行设计,以满足逐行写入和按宏块读出的要求。


一种面向H.264视频编码器的SoC验证平台
评论】【加入收藏夹】【 】【关闭
※ 相关信息
无相关信息
关键:  
※ 其他信息
发表评论
用户名:
密码:
验证码: 看不清楚,点击刷新
匿名发表

 搜索新闻
[提交投稿]  [管理投稿]
 最新新闻
 热点新闻
数据加载中..

网站地图
Autooo.Net 版权所有
Copyright © 2007--2011 All rights reserved