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

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

3天内不再提示

探究SoPC的OSD控制器设计

电子工程师 来源:电子技术应用第6期 作者:喻金华,符浩敏, 2021-05-05 00:02 次阅读

随着科学技术的高速发展,在视频显示终端的原始图像上额外叠加一些文字信息或图形界面,向用户提供更多的附加信息已不再是什么难事,通过屏显示系统OSD(On Screen Display)就能够实现这种功能。近年来,OSD的设计受到越来越多的关注[1],OSD系统已然成为用户与显示终端之间交互的桥梁。

OSD系统通常采用专用芯片实现[2-4],这类方案或是以专用芯片内部微控制器作为核心,或是以外部单片机作为控制核心。由于OSD技术对同步时序的要求非常严格,所以用微控制器控制时序的可靠性较差[5]。随着视频显示技术的飞速发展,市场对电路集成度和视频数据处理速度的要求越来越高(同步时序要求更严格),采用专用芯片的实现方案越来越难以满足要求。很多厂商早已开始将OSD功能集成到一块包含其他功能模块的芯片上(即片上系统SoC(System on Chip)),国外一些厂商推出了采用FPGA实现OSD功能且具有知识产权的IP核,但其硬件实现技术一般处于封锁状态;国内也有采用FPGA实现OSD功能的研究[5-8],但仍处于探索阶段。因此,研究OSD功能的FPGA实现方案具有深远意义。

据此,本文提出一种基于SoPC的OSD控制器实现方案。该方案应用了一种OSD界面自定义布局方法和一种改进型二步索引算法[7],以软硬件协同的方式着重实现在源视频图像上叠加一个可自定义布局风格的OSD界面,整体上可实现自定义OSD功能。

1 OSD控制器的总体设计

本OSD控制器使用自定义OSD界面布局方法。首先基于像素扫描坐标在OSD界面内划分出字符显示区,将剩下的区域作为背景区,并基于OSD界面内一起止坐标可调的矩形区域(如图1中的矩形区域5)将背景区分为9个矩形区域,对不同区域选择输出所配置颜色的像素数据,并直接与源视频像素数据进行透明度混合运算输出,以此实现图像的叠加,同时省去OSD帧缓存的存储资源消耗。

o4YBAGB3tlSAYchSAAAxayvc9ew694.png

基于以上方法的OSD控制器系统总体结构如图2所示。输入视频信号首先经过视频输入接口(图2虚线框内部分)提取出源视频信号中的像素扫描坐标及RGB像素数据;OSD区域识别模块基于像素扫描坐标判断当前所在位置,并发出相应标识信息,在整个数据处理过程中,软核系统通过写OSD配置寄存器组及字型码存储器读写接口,实现对OSD电路运行状态的实时控制;像素数据选择输出模块基于标识信息选择输出相应颜色的像素数据至后级;alpha混合运算处理模块完成OSD界面像素数据与从源视频信号中提取出的RGB像素数据的透明度混合运算处理;处理后视频信号输出至显示接口。

o4YBAGB3tm6AZ0igAACNBYOQhOo813.png

2 OSD控制器硬件平台的实现

根据实际情况,选择以Xilinx公司XC7K325T-2FFG900为核心芯片的Kintex7 FPGA开发板作为OSD控制设计的硬件平台,采用内嵌MicroBlaze软核的系统作为上位机。该开发板配有一定数量的I/O和各种数据接口,另外通过USB电缆将PC与Kintex7连接起来就能进行编程调试,使用方便可靠。图3所示为基于该硬件平台的OSD控制器系统框图。

pIYBAGB3tpWAEe_AAACTmLdUJkA502.png

2.1 SDI接口与HDMI接口模块

输入视频信号是数据格式为YUV的 20 bit串行数字接口SDI(Serial Digital Interface)信号,该模块首先将YUV444转换为YUV422,再转换为30 bit的RGB(各分量占10 bit)像素数据并将其作为整个处理过程的数据格式,从时序信号中提取出视频像素扫描坐标(X_scan,Y_scan)。为节省视频图像帧缓存资源,采用了高清晰度多媒体接口HDMI(High Definition Multimedia Interface)将处理得到的数据输出显示。

2.2 软核系统模块

通过Xilinx 公司ISE(Integrated Software Environment)内嵌的XPS(Xilinx Platform Studio)软件可以搭建以MicroBlaze软核处理器为控制核心的、具有AXI总线架构的软核系统,本设计中选择添加了axi_gpio接口组件和IIC_MAIN接口组件IP,另外自定义OSD配置寄存器组件layer、chars和字型码存储器读写接口index组件。

其中,axi_gpio接口组件与外部按键和LED相连,以实现对按键的检测及相关状态的显示;IIC_MAIN接口组件则作为软核对内部SDI信号接口模块的视频配置通道;自定义组件chars和layers分别为与字符显示属性和OSD界面属性相关的配置寄存器组;自定义组件index用于暂存软核写入的待显示字符索引号信息,并作为访问字型码存储器的接口,产生相应的访问地址。图4所示为本软核系统中各组件及其地址分配情况。

pIYBAGB3tqaAYxtDAAD4xFWqpbs669.png

2.3 OSD配置寄存器组

组件chars和layers作为OSD配置寄存器组,每个组件最多包含32个32 bit的寄存器,这些寄存器位的含义可根据需要进行自定义。

对于chars组件,定义为32个字符串或进度条显示区的配置寄存器,其含义如表1所示。

pIYBAGB3tweAabWvAAAvkTZhDVY084.png

本设计OSD界面的进度条显示区和字符显示区是分时复用的,且字符串所代表的含义也会有不同类别(如主、子菜单项和设置项等),因此采用D31~D29编码来体现这些差异。

组件layer中包含了与OSD界面属性配置相关的寄存器,如起点坐标(X_osd,Y_osd)、长L_osd、宽W_osd、布局坐标、各区域颜色和透明度等参数配置寄存器,共23个。

2.4 a_blending模块

本模块是整个OSD控制器的数据处理中心,依次完成图2所示的OSD区域识别、像素数据选择输出和alpha混合运算处理等过程。在区域识别模块检测到当前像素扫描坐标处于字符显示区时,该模块发出读字型码请求以获取相应点阵编码信息,在背景区则直接输出相应标识信号。后级模块根据点阵编码信息、区域标识信息及相关配置信息选择输出相应像素数据,最后完成与源视频像素数据的alpha混合运算处理。将alpha混合算法中的浮点数转换为两个2的幂次数的除法,便于硬件通过移位实现乘除运算,通过软件对幂次数的设置实现对透明度的实时控制。

3 OSD控制器的软件设计

基于OSD控制器的软件平台,在Xilinx的SDK(Software Development Kit)开发环境中编写控制、显示等应用程序,主要实现系统的初始化、按键控制、OSD界面设计、字符显示控制等功能。

系统在复位后对视频输入接口电路进行初始化,之后进入按键控制子程序,按键将引导系统进入OSD界面设计模式或者OSD工作模式,各模式将根据后续按键情况调用OSD界面设计子程序和字符显示控制子程序。主程序流程图如图5所示。

o4YBAGB3txGAWUrEAADaTkyT09Y196.png

4 系统调试与运行结果

4.1 实验效果

如图6所示为1 280×720分辨率的源视频图像上叠加的两种720×360分辨率的自定义OSD界面(截图),界面显示状态可由软核(上位机)实时控制。

图6(上)中的布局坐标将OSD界面平均分成9个区域,各区域颜色、透明度均不同,界面下栏MENU1~12为12个主菜单字符串显示区;左栏SON1~SON6为6个子菜单字符串显示区;右上部分区域定义了6个设置菜单字符串项SET1~SET6及一个进度条显示区;最上方定义了一个当前选中设置项信息提示字符串显示区。这些字符串/进度条显示区的位置、颜色等属性均为实时可调的,在数量上也可根据需要增减。而图6(下)是对布局坐标及所产生的9个区域颜色、透明度参数进行了一定调整后形成的另一种界面。

4.2 资源消耗统计与分析

本OSD控制器模块所占用片内存储资源主要消耗在字型码存储器、索引号存储器的实现以及软核系统平台对实现字符串显示而进行的程序指令存储和数据存储。

对于软核系统平台在OSD控制器实现方面的资源消耗,自定义组件index、chars及layers各占4 KB,共计12 KB;axi_bram_ctrl_0组件用于存储实现OSD控制器模块字符串显示的程序数据,共用了64-16=48 KB。综上所述,OSD控制器模块最多消耗存储资源为2.1 KB+1 KB+12 KB+48 KB=63.1 KB。

在具体实现硬件电路时,多余的资源消耗将会被优化,因此OSD控制器模块实际消耗的存储资源将小于63.1 BK。图7所示为添加OSD控制器模块前后系统生成的片内RAM资源消耗报告表。由图可知OSD控制器模块消耗12个RAM36E1/FIFO36E1s,即12×(36/8)=54 KB。

pIYBAGB3t0SAZ3WbAAAvNxQmcoU598.png

而对于采用OSD界面帧缓存的设计方案,即使实现720×360的4色图像界面显示,至少也要消耗存储资源2×720×360/8/1 024=63.281 25 KB,这还不包括系统在其他方面的资源消耗。若要实现更多色彩图像的显示,则存储资源消耗将会成倍地增加。

OSD作为人机交互的桥梁,是视频处理模块的重要组成部分,而当前市场对视频处理模块电路集成度和数据处理速度要求越来越高。本文提出了一种基于SoPC的OSD控制器设计方案,其中应用了一种自定义界面布局方法和一种改进型二步索引算法,节省了系统的存储资源开销。另外对透明度混叠算法进行了取整变换,使之便于FPGA硬件实现及软件控制。总体上该方案以软硬协调的方式实现OSD控制器功能。实验结果表明,该控制器极大地节约了资源,并且在实现OSD功能时也有很好的灵活性。

参考文献

[1] 修晓琴,杨秀芝,郑明魁。基于FPGA内嵌软核的机顶盒OSD设计[J]。电视技术,2013,37(13):70-72.

[2] 王艳艳,郅晨。基于TMS320DM6446的OSD显示技术的研究与实现[J]。中国新通信(技术版),2008(3):45-50.

[3] 雷永锋。基于OSD选单的KVM系统设计[J]。电视技术,2008,32(1):50-52.

[4] 王瑞胡。基于OSD技术的数字电视机顶盒汉字显示解决方案[J]。电子设计应用,2003,9(1):102-105.

[5] 黄燕群,李利品,王爽英。基于FPGA的OSD设计[J]。液晶与显示,2010,25(3):429-433.

[6] 罗韬,姚素英,史再峰,等。视频芯片中的OSD核的设计及FPGA的实现[J]。吉林大学学报(工学版),2008,38(6):1452-1457.

[7] 刘科,张生才,史在锋,等。基于改进型二步索引算法OSD电路的FPGA实现[J]。电子测量技术,2007,30(7):94-96.

[8] 杜升平,曹剑中,田雁,等.FPGA在OSD中的应用[J]。科学技术与工程,2006,6(14):2065-2067.

[9] Zhang Sheng,Zhang Hao,CHEN B,et al.On-screen-display(OSD) and SPI interface on CMOS image sensor for automobile application[C].Computational Intelligence,Communication Systems and Networks(CICSYN),2013 Fifth International Conference on,IEEE,2013:405-408.

编辑:jq

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

    关注

    1626

    文章

    21669

    浏览量

    601866
  • 芯片
    +关注

    关注

    453

    文章

    50410

    浏览量

    421849
  • 控制器
    +关注

    关注

    112

    文章

    16203

    浏览量

    177418
收藏 人收藏

    评论

    相关推荐

    PID控制器的类型和选择指南

    PID控制器是一种广泛应用于工业控制系统中的控制器,它根据系统的偏差来计算控制量,以实现对系统的精确控制。PID是比例(Proportion
    的头像 发表于 11-06 10:37 270次阅读

    什么是LCD控制器?爱普生LCD控制器的作用和功能、概述和产品列表

    什么是LCD控制器LCD控制器的作用和功能LCD控制器(液晶显示控制器)是连接到主机CPU并控制LCD面板的专用集成电路(IC)。它也被称为
    的头像 发表于 10-09 11:10 255次阅读
    什么是LCD<b class='flag-5'>控制器</b>?爱普生LCD<b class='flag-5'>控制器</b>的作用和功能、概述和产品列表

    TVP5146 SCART和OSD

    电子发烧友网站提供《TVP5146 SCART和OSD.pdf》资料免费下载
    发表于 09-30 09:28 0次下载
    TVP5146 SCART和<b class='flag-5'>OSD</b>

    osd开启好还是关闭好

    OSD(On-Screen Display)即屏幕菜单式调节方式,它允许用户通过屏幕上的菜单来完成图像调节、音量控制、定时开关机等各种操作,而无需进入电视或显示的内部菜单。关于OSD
    的头像 发表于 09-19 16:25 2001次阅读

    国产控制器厂家 整车控制器 以太网控制器 CAN控制器 国产化替代

    控制器
    长沙硕博电子科技股份有限公司
    发布于 :2024年09月03日 09:15:51

    车载智能控制器 工程机械控制器 CAN总线控制器 硕博电子 #控制器 #can总线 #国产化替代

    控制器总线
    长沙硕博电子科技股份有限公司
    发布于 :2024年08月29日 10:43:57

    移动工程机械控制器,车载智能控制器,硕博电子

    控制器
    长沙硕博电子科技股份有限公司
    发布于 :2024年08月08日 10:18:12

    组合逻辑控制器和硬布线控制器一样吗

    组合逻辑控制器和硬布线控制器是两种不同的计算机控制系统,它们在设计、实现和应用方面存在一些差异。 组合逻辑控制器和硬布线控制器的比较 摘要:
    的头像 发表于 06-30 10:24 621次阅读

    组合逻辑控制器与微程序控制器各有什么特点?

    组合逻辑控制器(Combinational Logic Controller) 组合逻辑控制器是一种基于组合逻辑电路的计算机控制器。它的主要特点是: 1.1 高速度:组合逻辑控制器使用
    的头像 发表于 06-30 10:09 686次阅读

    移动机械控制器 车载智能控制器 CAN总线控制器

    控制器机械
    长沙硕博电子科技股份有限公司
    发布于 :2024年06月13日 17:02:51

    控制器与运动控制器的区别

    随着现代工业技术的快速发展,控制技术在各种机械设备中扮演着越来越重要的角色。微控制器和运动控制器作为两种常见的控制设备,在各自的领域发挥着重要作用。然而,两者在功能、应用、特点等方面存
    的头像 发表于 06-13 14:52 567次阅读

    PID控制器与PWM控制器的区别

    在工业自动化和控制系统设计中,PID控制器(比例-积分-微分控制器)和PWM控制器(脉冲宽度调制控制器)是两种常用的
    的头像 发表于 06-05 18:25 2758次阅读

    PID控制器与开关控制器的区别

    在工业自动化控制系统中,PID控制器和开关控制器是两种常见的控制策略。它们各自具有独特的工作原理、应用场景和优缺点。本文旨在详细探讨PID控制器
    的头像 发表于 06-05 15:50 722次阅读

    智能单灯控制器,路灯单灯控制器,助力智慧路灯杆解决方案

    控制器
    计讯物联
    发布于 :2024年05月08日 14:44:52

    对话:探讨电机驱动控制器市场的需求空间

    限?未来电机驱动控制器的发展趋势会是如何?不妨就这期《对话》一探究竟。 编者按: 在家电、电动工具、汽车电子等诸多领域,电机驱动控制器扮演着重要角色。为适应当前不同应用需求,电机驱动控制器
    的头像 发表于 01-19 11:38 376次阅读
    对话:探讨电机驱动<b class='flag-5'>控制器</b>市场的需求空间