微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 面向H.264视频编码器的SoC验证平台

面向H.264视频编码器的SoC验证平台

时间:06-05 来源:互联网 点击:

引言

  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/OSII系统以及μC/TCPIP协议栈,使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标准以宏块(16×16大小的像素块)为单位进行编码。所以它的数据输入是以宏块为单位的像素块,输出是经过了预测编码、变换编码以及量化和熵编码之后的比特流数据。

1.3 TRDBD5M图像采集模块

  TRDBD5M图像采集模块中的采用Micron公司生产的CMOS传感器MT9P031。它具有以下特性:低功耗,逐行扫描图像传感器;最高支持到2 592×1 944@12 fps;12位A/D转换器;支持摄像模式(viewfinder)和快照模式(snapshot);曝光时间可调;双线串行接口(I2C总线接口)等。

图1 SoC验证平台整体结构

2 SoC验证平台的总体框架

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

  OR1200微处理器是整个验证平台的控制核心,根据系统的需求和节约的原则,裁去了OR1200中的指令缓存器(IC)、数据缓存器(DC)和存储器管理单元(IMMU和DMMU)。SoC平台中另一个重要的模块就是片上存储器(OnchipMemory)。片上存储器数据访问能力强,功耗低,但是容量有限,只能实现代码量比较小的特定功能(如硬件初始化、CPU启动引导等)。当完成这些操作后处理器就会跳转到主存储器SSRAM的地址空间执行代码。

  在其他的外设模块中,UARTBOOT模块只带有一个Wishbone主端口,用于控制CPU的启动和程序下载,它不需要分配地址。其他模块的地址空间分配情况如表1所列。
表1 SoC系统的地址空间分配

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

  之前有很多人对构建基于嵌入式软核的SoC系统作了研究,本文重点介绍与H.264编码器验证相关的自主设计的模块上。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top