Java虚拟机应用于数字电视机顶盒的研究与实现

发布者:幸福如意最新更新时间:2013-05-15 来源: eefocus关键字:Java  虚拟机  数字电视  机顶盒 手机看文章 扫描二维码
随时随地手机看文章

  引    言

  随着有线广播电视网向数字化、网络化、产业化方向发展,利用有线电视网络作为传输平台的数字电视机顶盒除了能够让用户在现有模拟电视机上观看数字电视节目之外,广播和交互式多媒体应用功能的要求也应运而生,互动电视成为数字电视发展的方向。众多程序员熟悉的为网络广泛运用的Java语言能很好地满足机顶盒一些服务应用的要求,因此提出了包含Java虚拟机的数字电视机顶盒中间件的系统架构,该虚拟机用来执行Java应用程序,并且中间件将应用程序和底层操作系统、硬件细节隔离开,使上层的数字电视的服务应用不必考虑过多的底层细节。本文主要介绍了J2ME中主要用于数字电视领域的CDC的移植,其中又着重介绍了本地方法(native method)的实现过程。

  结构及工作原理

  Java虚拟机工作原理


 图1 Java虚拟机的工作过程

  Java虚拟机处于机器和编译程序之间,在任何平台上都提供给编译程序一个共同的接口。Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。

        Java虚拟机的主要任务是装载class文件并且执行其中的字节码。Java虚拟机包含一个类装载器,它可以从程序和API中装载class文件。字节码由执行引擎来执行,具体过程如图1所示。

  Java虚拟机结构

  类装载器的体系结构是Java虚拟机在安全性和网络移动性上发挥重要作用的一个方面,图中所示的类装载器可以包含多个类装载器的子系统, Java应用程序能够在运行时决定需要安装的类,并且将被不同的类装载器装载的类存放在不同的命名空间。

  执行引擎处于Java虚拟机的核心位置,它的行为由指令集所决定,其主要作用就是解释字节码(即运行经过编译后的Java程序的class文件) ,不同的执行引擎实现可能非常不同。由软件实现的虚拟机的执行引擎分为一次性解释字节码、即时编译器和自适应优化器,由硬件芯片构成的虚拟机用本地方法执行Java字节码,它的执行引擎是内嵌在芯片里。

  Java虚拟机相当于一个堆栈计算机,它在指令间传送信息时不使用任何物理寄存器,而使用堆栈的帧来表示方法的状态、字节码的操作对象、方法的参数空间及局部变量的空间,它的“程序计数器”为一个伪寄存器,是当前所执行指令的字节码数组的一个指针。

  Java实现方法

  Java有两种实现方法:Java方法和本地方法。Java方法是由Java 语言编写,编译成字节码,存储在class文件中。本地方法是由其他语言(比如C,C++,或者汇编语言)编写的,编译成和处理器相关的机器代码,保存在动态连接库中,格式是各个平台专有的,它是联系Java程序和底层主机操作系统的连接方法。Java方法与平台无关,但是本地方法却不是,运行中的Java程序调用本地方法时,虚拟机装载包含这个本地方法的动态库,并调用这个方法。通过本地方法, Java程序可以直接访问底层操作系统的资源,使程序和特定的平台相关,一个本地方法接口——Java本地接口(JNI)使得本地方法可以在特定的主机系统的任何一个Java平台上运行。

  J2ME中的CDC移植的解决方案

  我们选用的要移植的Java虚拟机是Sun公司提供的J2ME对于数字电视领域CDC配置,该虚拟机是针对Linux的软件实现(用C语言编写的虚拟机,该虚拟机也称为C Virtual Machine,简称CVM) 。Java虚拟机规范并没有强求Java虚拟机必须支持任何特定的本地方法接口,但是Sun 公司提供了本地方法接口(Java Native Interface) ,是为移植所用。Java程序通过调用本地方法和主机交互。

  Java虚拟机

  图2 Java虚拟机的位置

  虚拟机处于嵌入式操作系统OS20 上,因此Sun公司提供的Java虚拟机中与底层操作系统相关的操作都应该替换为OS20的内核函数。因此将Sun公司提供的CDC移植到OS20需要完成一些工作,比如: C语言中关于基本数据类型的数据位的修改,关于线程的创建机制(OS20为任务) ,关于线程之间的同步、互斥,关于动态连接的实现,关于本地方法的实现等,本节主要介绍关于本地方法的实现过程。[page]

  本地方法

  解释器处理字节码时,与给定字节码有关的动作的语义、执行字节码的相关动作大多是从堆栈中获得其操作数,并将其结果送回堆栈中。典型的情况下字节码是带有参数的,这些参数在字节码流中紧跟在字节码自身之后。

  在虚拟机解释字节码过程中,执行引擎会不时遇到请求本地方法调用的指令,虚拟机负责试着发起这个本地方法的调用。本地方法是Java虚拟机指令集的一种可编程扩展,运行这个本地方法就是Java虚拟机对这条指令的执行。

  本地方法函数调用

  为了增加虚拟机的性能,加快其速度,解释器在处理一些字节码时调用的本地方法函数用汇编实现了将Java栈转换为C栈,然后在C堆栈上实现函数的调用。Linux下是用独立的汇编语言程序invokeNative_i386。 S实现函数CVMjniInvokeNative () ,我们采用在C里面嵌入汇编的形式来实现该函数。

  该函数的形参有7个,完成的主要功能是将由实参传递来的部分数据通过直接或者运算后得到本地方法的参数,然后压入本地栈,通过汇编来实现本地的C函数调用。实参传递过来的7个数据包含JN I环境指针(env) 、本地方法的函数指针(native code) 、Java栈指针(args) 、本地方法的描述符(terse sig) , Java栈的参数总数(args size)表示静态或非静态方法的类对象标志(class object)及用于存储返回值的一个指针变量(return value) ,其中env要作为第一个本地方法的参数传递

,并且native code也要传递到本地方法来实现本地方法的正确调用。

  J2ME中的CDC移植

  由于Linux有多个通用寄存器,在实现该函数的代码中充分运用了如esp、ebp、esi等寄存器,但是OS20提供的可操作的寄存器只有3个通用寄存器Areg、Breg、Creg和1个工作指针寄存器Wptr (相当于堆栈指针) ,在实现过程中,我们用在C函数中设立局部变量来代替Linux的通用寄存器,通过手动调整工作栈指针来实现本地方法的调用,具体实现过程如图3所示。

  当进入汇编函数时,工作区指针为Wptr,实参、状态寄存器和指令指针寄存器的值全部自动入栈,然后是我们定义的代替Linux寄存器的局部变量自动入栈,此时的Wptr自动移到Wptr′,利用OS20的汇编指令,手动将实参传递过来的参数通过计算得到本地方法参数的个数,然后将本地方法所需的参数依次压栈,最后再手动调节工作区指针实现本地方法的成功调用。这里我们先将本地方法函数指针和1个标志位flag(0x10101010)入栈,原因有两个:

  ①当随后我们手动调节工作指针Wptr′到Wptr"时,工作栈已由先前的嵌套汇编的函数进入到了要调用的本地方法的C函数,因此先前的函数的局部变量在此时无效,也就是说此时如果用以前实参传递过来的本地函数指针调用本地的函数肯定不会成功,因此要把这个函数指针先手动保存起来。

  ②flag的设置的原因是:本地方法的参数的个数不是固定的,而OS20 所提供的用汇编调用函数在回到函数入口点时只弹出Wptr"指向的4 个单元的内容,因此多余的参数出栈操作也必须通过调节Wptr手动完成,通过向下移动Wptr查找flag标志,再调节Wp tr到Wtpr+2即可正确地回到汇编函数。当本地方法的参数完全手动入栈后就可以手动调节工作区指针Wptr而进入到调用的本地函数,函数返回后的第一件事是保存在寄存器中的函数的返回值到return value,恢复工作区指针Wptr,并将本地方法的返回值类型作为嵌入汇编的函数的返回值,此时就完成了由Java栈到C栈的转换,并成功调用本地方法。


  图3 Java栈到本地栈的转换

  结    论

  通过对Sun公司下载的CDC代码的修改与编写,对CDC中的加载的类做了一些裁减,并且将线程化的解释器改为一次性解释字节码的单线程解释器简化程序,成功地生成了在机顶盒上可以运行简单的Java程序的虚拟机。

关键字:Java  虚拟机  数字电视  机顶盒 引用地址:Java虚拟机应用于数字电视机顶盒的研究与实现

上一篇:视音频、流媒体、图像编码标准综述
下一篇:嵌入式数字视频播放系统软件平台的构建

推荐阅读最新更新时间:2024-05-02 22:39

数字电视数字电视编码技术的发展简介
  随着广播电视技术的发展和广播电视设备的更新,电视领域发生了一系列巨大的变化,会议电视、VCD、DVD、数字电视以及高清晰度电视(HDTV)等新技术和新系统正迅速走进我们的生活。与传统的模拟电视相比,这些新系统的突出特点是采用了全数字的图像/声音处理技术。针对不同的应用领域,一系列相应的数字视频音频编码标准也迅速地被制定并不断得到完善,其中包括:应用于会议电视及可视电话的H.261,用于静止图像压缩的JPEG,用于VCD的MPEG-1、用于广播电视、DVD以及HDTV的MPEG-2、用于网络电视的MPEG-4等。与此同时,数字演播室标准及数字电视的质量评价标准也制定出来。 数字电视   数字电视可从节目内容、技术角度和用户角
[嵌入式]
澜起新一代数字电视调谐芯片开始量产
    澜起科技于近日宣布,由其自主研发的新一代宽带有线数字电视调谐芯片(M88TC2800)已正式量产,并已批量供给国内外各大知名的电视机顶盒生产商。     目前,全国各地有线电视数字平移正如火如荼地进行。据市场分析,2015年前,其相关产品的市场前景一片大好。业界领先的数字电视调谐芯片供应商澜起科技,紧贴市场需求,利用其多年产品研发及应用的成功经验,适时推出一款性价比更高、更具市场竞争力的宽带有线数字电视专用调谐芯片,M88TC2800。     M88TC2800是一款高性能、单芯片的宽带有线数字电视调谐器。它完全符合DVB-C标准,并支持低噪声、宽动态范围的前端解决方案,其技术目前在业界领先。该芯片优异的抗邻频干
[家用电子]
DVB_C机顶盒中的视频信号处理
    摘要: 机顶盒是交互式电视的关键技术之一。从MPEG 2解复用、视频编解码、视频输出、视频与音频的同步等方面介绍了DVB_C STB中的视频信号处理技术。     关键词: 数字机顶盒  同步  交互式电视(ITV)     随着信息技术的高速发展,通信技术、计算机技术、电视技术已进入了相互结合的新时代。方兴未艾的交互式电视(ITV)正是这种结合的具体体现。所谓交互式电视,是一种受观众控制的电视,在节目间和节目内观众能够作出选择和决定,是一种非对称双工形式的新型电视技术。数字机顶盒是其中的关键技术之一。作为ITV系统中的用户终端,它是普通电视与宽带传输网络之间的桥梁。通过ST
[应用]
机卡分离 武汉:“一体机”将取代“机顶盒
明年元旦之后,市民如购买“一体机”,不用机顶盒,照样能看数字电视节目。这是武汉数字电视公司昨日透露的。   据介绍,“一体机”是含有“机顶盒”芯片的液晶或等离子电视机,收看数字电视节目需插入收视卡。目前数字电视播送方式主要有3种,包括地面信号数字电视、移动信号数字电视和有线网络数字电视,只有针对有线网络的“一体机”才能在我市收到数字电视节目。武汉数字电视公司已与“创维”达成“入网”协议,与长虹、TCL、LG、索尼等厂商的“入网”谈判正在进行中。市民购买“一体机”后,可在各数字电视营业厅买80元一张的“收视卡”。
[家用电子]
基于数字电视机顶盒Java虚拟机的移植
  数字电视是当前IT产业的热点,作为一项即将在全国范围内开播的信息服务,它融合了计算机、多媒体、通信网络等众多技术。随着数字电视近几年的发展,交互式电视越来越受重视。交互式电视可以为用户提供丰富的互动功能,包括电子节目指南、视频点播、股票信息、互动游戏等。目前,数字电视机顶盒是基于有线电视网络传输的模拟电视机接收数字电视节目和数字信息的主要接入平台。要实现交互式电视的功能,数字电视中间件技术是必不可少的条件,它已成为交互式电视的核心技术。我国已制定了数字电视中间件标准,利用该标准开发具有自主知识产权的中间件系统是非常必要的。    本文以目前较为成熟的数字电视机顶盒技术为参考背景,提出了一种将中间件JavaVM移植到数字电视机顶
[嵌入式]
泰鼎公司在2011 CES展会上推出最新互联网电视及机顶盒解决方案
  泰鼎微系统(Trident Microsystems)宣布在CES 2011展会期间展示为消费娱乐系统提供的全新创新平台。在CES期间,泰鼎将着重展现其在图像质量、3D电视、互连性能及高清音频等方面的强大优势,展示公司所开发的“互联家庭”所需的所有基础模块,使得内容能够在众多设备上随时随地地被获得,并展示在不同的屏幕上。此次展出将包括:   -为下一代具备网络功能的电视设计的全新片上系统   -第一款运用21:9 尺寸屏幕呈现的互联影院电视   -一系列在泰鼎驱动的数字电视及机顶盒上课用的激动人心的在线服务   -业内第一个45nm广播集成机顶盒片上系统系列   泰鼎微系统总裁Christos Lagomichos表
[家用电子]
高清晰度数字电视传输系统设计与实现
    摘要: 系统级设计方法为复杂电子系统的设计提供了一种全新的流程,对DMB-T系统抗干扰性能、多径性能和同步性能进行了系统仿真与分析。     关键词: 系统级设计 数字电视 多径 同步 仿真 在有限带宽内传输高清晰度数字电视对视频、音频压缩编码和信道编码都提出了更高的要求,而且在进行地面传输的情况下,无线环境的各种衰减和干扰也不可避免,同时考虑到移动环境下的接收需求,在新一代的地面数字电视传输系统中必需引入无线通信的最新技术。数字电视广播和现代数字通讯技术的结合,使得传统的电视传媒得以在通信网络的基础上新生。 清华大学在综合吸收国外已有高清晰度数字电视标准优点的基础上,完全自主地开发完成了“地面数字
[网络通信]
联想携手展讯正式交付首批TD数字电视手机
联想移动通信科技有限公司携手展讯通信有限公司(Spreadtrum Communications, Inc.,以下简称“展讯”)正式向中国移动交付支持数字电视功能的联想 TD-SCDMA 手机 TD900,该款手机基于展讯 TD-SCDMA 及电视手机解决方案。工业和信息化部科技副司长张新生,产品司副司长赵波,国家广播电影电视总局科技司司长王效杰、科技部及中国移动等领导出席了本次会议。 此次交付的支持数字电视功能的 TD900 手机暂时不会进入销售渠道,而是用于赠送奥运会志愿者及相关工作人员。奥运前,联想移动还将陆续交付更多的 TD 电视手机产品。随着2008年北京奥运会的脚步声日益临近,中国将成为全球瞩目的焦点。目
[家用电子]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved