综合业务多媒体通信终端可以广泛用于多媒体通信、交互式分布多媒体系统,特别是各种计算机支持的协同工作系统(CSCW)的通用设备,是目前世界各国大力研究的热点课题。由于各种技术发展较快,因此要求总体结构设计要考虑通用性和可扩展性。1996年3月清华大学计算机系设计实现了一种综合业务多媒体通信终端(IMCT),它的方案是:①终端的软、硬件支撑环境采用多媒体个人计算机(MPC)与清华大学和中国银河公司共同设计制造的满足H.320系列标准的视频音频实时压缩和处理卡VC-1000A。②系统应用软件采用模块化结构,如视频讨论、多媒体电子邮件、协同编著等,可相对独立运行,又能集成在一个统一的平台上。
  一、VC-1000A的结构和工作原理
  VC-1000A是综合业务多媒体终端的关键部件,它由下述三块卡组成(如图8.6所示),三块卡在功能上既有联系,又相互独立。VC-9800完成视频和音频信号的采集、显示、编辑等功能,VC-9810完成压缩、解压缩、视音频复合 MVIP传输等功能,VC-9820将符合H.320标准的压缩码流经线路接口输出至通信网络。
   8.6 VC-1000A 整体框图
 

  I1MVIP接口为40扁平线 I2:插针联接方式 I3:VIDE0 FEATURE 26扁平线
   8.7 VC-9800原理框图
 
   1.VC-9800视频音频信号采集和处理卡
  VC-9800本身就是一个通用的多媒体处理硬件平台,可完成音视频信号的采集、显示、编辑等功能。图8.7是VC-9800的原理框图。VC-9800可分为以下几个部分:
  (1) 视频输入前、后级
  设计采用Brooktree公司的Bt812作为视频输入前级芯片,Bt812图像数字化芯片不仅可以接收PAL制、NTSC制输入而且可以接收S-VIDEO Y/C分离信号输入,针对不同的使用情形,Bt812可以采用不同采样频率对输入视频信号进行采样,既可以按像素采样(NTSC640×480×60场/秒,PAL 768×576×50场/秒)也可按CCIR601标准进行采样,Bt812支持24RGB、16RGB,及4:2:2 16YCrC6格式,默认采用4:2:2 16YCrC6格式,即8:4:4。在VC-1000A设计中,Bt812输出至PX2070的V1口,作为本地视频图像输入。
  VC-9800还具有模拟视频输出的功能,这对于视频编辑等场合是十分有用的。特殊视频效果的模拟输出因此成为可能,精心制作的多媒体著作或特殊效果可以显示在电视或录像带上。当背板VC-9810与VC-9800结合使用时,模拟视频输出图像为远地视频,当VC-9800单独使用时模拟视频输出图像为PX2070多路视频图像,图形实时叠加输出。在设计中,使用Bt858芯片将数字视频信号转化为模拟Y/C供S-VIDEO端子输出或复合模拟视频输出,输出格式可以为PAL制或NTSC制。
  (2) 图像存储缓冲区部分
  为了提高性能,VC-9800采用VRAM作为图像存储缓冲。VRAM有一个访问端口,一个端口是与DRAM相同的随机访问端口,另一个端口是串行存取端口,串行存取端口的串行数据流持续稳定地把数据送至Media DAC而不影响VRAM的随机存取性能,也不占随机存取的带宽。因此同一个存取周期可实现更高速率的数据交换,实现更高性能。
  设计中,选用512×32VRAM,存储器堆分为两个体,每个体由8片256K×4VRAM构成,低端体由RASO*控制,高端体由RASI*控制,CAS0*和CAS1*分别存取高16位和低16位。SCLOCK(串行移位时钟),DTE*(数据传送始能),SOE[0:1](串行输出始能)控制串行数据的输出。
  (3) CL-PX2070数字视频处理器
  CL-PX2070有四个功能部分组成,核心视频处理单元VPU以及三个完成复杂交互功能子单元:视频总线单元VBU,主机接口单元HIU,参考帧单元RFU。
  (4) PX2080部分
  PX2080是一个多源,D/A视频转换器。它能够管理、混合两路不同色度空间及解析度的视频流,PX2080有三路输入:一路视频端口,一路8bit VGA数据端口及一路32位高析度图形数据端口。在设计中视频端口与VRAM的串行输出口相连。8bit VGA数据端口与VGA卡相连。
  PX2080可完成色度空间转换、比例缩放、色度补偿以及图像灰度校正功能。在高性能要求应用领域中,例如图形扫描、图形艺术等要求显示颜色十分精确,在这种情况下,颜色查找表的线性与电子枪之间的非线性偏差不能被忽略,PX2080通过特殊的图像灰度校正查找表对DAC输出进行非线性补偿,使显示在CRT上的最终颜色符合线性标准。
  此外为避免视频或图形数据的丢失,PX2080采用同PX2070类似的存储器控制策略,通过FIFOFULL*来实现,当FIFOFULL*有效时,表明PX2080 256个双像素大小的视频输入FIFO已满,VRAM可暂缓向Media DAC送入数据。
  (5) 总线控制部分
  总线控制主要包含地址译码、地址锁存及生成控制信号等功能,这一部分电路与通常的总体控制思路没有什么不同,因此就不加以详细介绍了。
  2.VC-9810编解码卡
  ITU H.320标准是ITU针对电视会议制订的一系列标准的总称。这其中包括视频编解码应满足的H.261标准,音/视/用户数据分别复接应满足的H.221标准以及帧同步控制和指令应满足的H.242标准等。
  编解码器的主要功能包括编码(对收发图像、声音信息的码流进行高倍数的压缩,以适应数字信道数据流的传输速率)、解码(将对方传来的图像、语音按一定的标准还原)、同时为满足点对点通信的要求,编解码器还包括相互的互通规程,以及为实现规程的信令部分。
   8.8 VC-9810系统简图
 
  图8.8为VCP板的设计框图。本地视频数据经VC-9800底板由VIDEO IN 总线进入VCP,声音压缩数据经串行总线进入VCP,VCP芯片在微码的控制下按照H.261标准对视频流进行压缩,然后按照H.221标准进行复接及向前纠错,符合H.221帧结构的压缩数据流经TDM总线送至网络接口板VC-9820。与此同时,由网络接口板经TDM总线接收到的H.221帧结构压缩数据流在VCP内部进行分接、解压缩,视频数据经VIDEO OUT送至底板显示,音频数据送往音箱输出。
  VC-9810主要分为几个部分:
  (1) DRAM缓冲区
  DRAM用于存储未压缩图像,参考帧以及中间数据。DRAM按YCrCb格式组织数据,编解码进行时,解码后图像以及编码所需的参考帧及中间处理结果也存储在DRAM中。
  DRAM分为两个体,所有控制信号来自VCP。DCASO用来区分高低两个体,每个体由两片256K×16DRAM组成,数据带宽32位。
  (2) SRAM缓冲区
  SRAM速度快,无需刷新,因而用于存储RISC代码,堆栈及数据,同时作为TDM、声音、主机及H.221的内部缓冲区。SRAM同样由VCP控制,VCP与SRAM数据带宽为32位,因此设计中把四片128K×8组合使用。VCP一次可读取32bit,16bit或8bit数据,访问模式由LCE[3...0]控制。
  (3) 声音部分
  音频编码器由AD2101及CS4215来实现。其中CS4215是一个串行控制的A/D/A转换器,AD2101是定点运算通用DSP芯片。
  整个音频编解码电路由AD2101、CS4215、三片32KSRAM,一片256KEPROM及时钟发生器和外围芯片组成。音频编解码电路与VCP相对独立,VCP芯片不进行音频编解码,只进行H.221的分复接,所有音频数据的A/D,D/A转换,音频编解码均由本部分电路完成。
  (4) TDM总线接口部分
  VCP芯片经过TDM总线接口与网络接口板相连,TDM是一时分复用总线。
  (5) VCP功能
  RISCIIT微处理器是VCP的核心部件和总控单元,VCP芯片内部的时序及数据流向均由RISCIIT管理,片内两条总线SRAM,DRAM总线分别传送压缩及未压缩数据,片内数据传递全部采用DMA,10路DMA传送的控制与配合由RISCIIT运行相应程序进行管理,至于缓冲区控制策略,外部接口控制,寄存器变量访问,主机交互等功能均由RISCIIT实现。
  3. VC9820接口卡
  简而言之,VC-9820的功能就是把MVIP接口信号转换为所需的网络接口信号,目前包括RS-449、G.703规格,至于V.35,ISDN等均大同小异。
  (1) RS-449接口板
  实际设计中,采用ALTERA公司的FPGA可编程逻辑芯片进行设计,这样做,一是在设计和布线上较为方便、简洁;二是软件的模拟、仿真功能较强,方便设计和检查。设计中,MVIP接口的时钟与帧同步信号由VC-9820提供。
  (2) G.703接口板
  技术指标
  线路编码:HDB3
  线路速率:2.048Mbps
  数据传输速率:64kbps-2.048Mbps
  校验格式:CRC-4
  传输方式:全双工通信
  线路接口:G.703(E1)75Ω非平衡/120Ω平衡
  可软件设置G.704帧结构接口
  支持帧同步和复帧同步结构
  数据接口:MVIP、PC总线
  应用领域:实时图像传输系统(MPEG、JPEG)
  320视频会议系统
  高速数据处理系统
  功能特性
  VC-9820卡上的G.703(E1)线路接口与计算机外部的各种高速数据传输设备上的G.703(E1)线路接口连接,可将计算机系统内的图像、声音、文件数据以2Mbps或P×64Kbps的传输速率,通过与高速数据传输设备连接的光纤或同轴电缆等高速通信线路进行传输。
  二、综合业务多媒体终端的软件
  1.VC-1000A驱动软件
  VC-1000A驱动程序软件运行平台为Windows3.1 以上的环境,采用分层式,结构化的设计思想,用Visual C++语言编程实现。主要有下述几个模块:
  ·视频信号编解码模块;
  ·视频开窗显示控制模块;
  ·视频信号数字化处理控制模块;
  ·声音压缩编解码模块;
  ·DSP 2101/2107 Boot代码模块;
  ·DSP VCP通信协议实现模块;
  ·VCP图像通信微代码模块;
  ·Windows总控模块。
  它们可以分成两类:一类是以IIT VCP芯片为核心的视频音频压缩编解码及符合H.320系列标准的其他软件模块;另一类是视频信号数字化、处理及编辑驱动软件模块。
  IIT VCP芯片是VC-9810编解码卡的主要芯片,它采用微码结构,通过内存变量的读写、流输入和输出、警告、监控和执行程序等方式对VCP芯片进行初始化,控制执行H.320的编解码及其他标准模块。
  全局变量既可以通过主机访问,也可以通过VCP Risc访问,主机正是通过设置和监控这些变量来控制H.320的进程。内存变量的读写过程是访问这些变量的方式,这些变量不仅包括字节、字和双字,同时也可以使用指针和多重访问来访问数组和结构,但是有些变量是只读的,无法通过主机接口改变其数值。
  利用流输入输出机制,VCP芯片的软件编程接口支持连续流或存储文件的操作。无论主机还是VCP均可打开、读写这些流,在VCP和主机之间通过流操作传送用户数据。
  主机可以通过内存读写得知VCP状态,同时,VCP还可以利用告警机制通知主机异常事件。例如,如果解码器在CIF和QCIF格式切换过程中,接收到PTYPE标志,将向主机发出告警信号。
  主机通过主机接口与VCP联系,它包括中断方式、DMA方式以及寄存器操作方式。VCP的驱动程序是存放在VCP的SRAM中。
  视频信号数字化,处理及编辑驱动模块是通过VC-9800卡实现的。它是介于操作系统和硬件平台之间。为了易于维护和扩展,我们也采用层次结构。第一层与硬件平台有关而与操作系统无关,支持硬件的最基本操作,称为增强模式虚拟设备驱动,它支持中断和DMA操作,之上还有一个动态连接程序(.DLL),使硬件在虚拟机条件下更好地发挥作用。第二层是结构层和执行层(construct layer and executive layer)。通过一个例子说明它们的功能,应用程序要完成一个对象在参考帧空间的定位,因此应用程序把直角坐标参数x、y传递给执行子层,执行子层判断参数的有效性后,将参数转化成线性地址,送到结构子层,它把与对象有关的数据收集整理,转化为寄存器值,传递给另一层,经过硬件执行,达到应用程序所要完成的任务。
   8.9 程序流程图
  
  程序流程图如图8-9所示。要建立一个数据流单元DFU(Data Flower Unit),首先要初始化所用的视频端口,建立视频设备上下文VDC(Video Device Context),一个Windows程序在写显示内存之前,必须先分配给设备上下文一个句柄,与此类似,在设置CL-PX2070数字视频处理器和CL-PX2080数字显示处理器时,应用程序也必须先分配VDC,VDC负责管理视频操作所需的所有数据流单元,它与一个显示窗口相对应;将数据流单元DFU加入到视频设备上下文VDC,每一个DFU对应一个数据,在一个VDC中可以包含多个DFU;设置参考帧RFU(Reference Frame Unit),这一步设置对象在参考帧中的位置,显示窗口在参考帧中的位置及对应屏幕的显示位置,另外还有关于对象和显示窗口的其他特性,如隔行/逐行显示,镜像显示等;设置流参数,流参数用来设置DFU使用的资源,包括视频端口,视频处理单元,是否使用ALU以及操作时间等;初始化DFU的项目控制参数,项目控制是指设置与输入输出有关的视频处理单元,描述视频信号尺寸,裁剪尺寸等;设置ALU,如果应用程序需要设置ALU,对视频数据进行算术逻辑运算,完成视频特技处理则应设置ALU,否则直接进入下一步;启动实时视频,将视频数据显示在计算机屏幕上;实时改变显示参数,如果应用程序想对显示图像窗口的大小,位置及其他属性做修改,可以实时变动设定参数;最后停止实时视频,进入下一种操作。
  2.终端系统应用软件
  终端系统应用软件的结构如图8.10所示,它包括视频讨论模块,分布式协同编著模块以及多媒体电子邮件模块,各模块可相对独立运行,并集成在一个统一的支撑平台上
   8.10 终端系统应用软件结构
  实时视频讨论模块是一个基于分布式平等原则的系统,每个用户自主地决定是否将自己的视频、音频等数据向网络上传送,同时自由选择接收并可以在一定范围内调节其他用户的输出信息,另外通过呼叫和附言等手段,可以实现一个视频讨论系统所必需的功能。实时视频讨论模块的性能如下:
  ·视频编码符合H.261标准;
  ·视频实时双工压缩解压缩,压缩与解压缩可分别启停;
  ·视频编码比特率范围(64~384)kbps,本地远程均可调节;
  ·输入输出为NTSC/PAL制全电视信号;
  ·以画中画形式同时显示本地、远程视频图像,本地图像位置可调;
  ·任意选择远程视频图像源;
  ·语音有发言、收听两种状态可任意选择,任意选择收听对象,具有音量调节功能;
  ·呼叫(广播)功能,同时可以附加传输文字;
  ·网络环境为Novell局域网,IPX协议,具有网络查询功能,给出网上现有的视频、音频数据;
  ·方便的帮助功能。
  分布式协同编著模块将协同编著的每个站点的屏幕分为三个区域:共享窗口、私有窗口和成员状态窗口。共享窗口提供协同工作者共同讨论的场所,大家可以对同一多媒体文档进行评论和批注,每人可以有一种不同的色笔。私人窗口供用户本人进行私人的编辑操作,也可修改,浏览,查询多媒体著作。成员状态窗口显示所有协作成员的姓名、身份、权力等。
  系统中协作成员的社会角色按其在共享显示区的权力判别可分为四类:
  (1) 主编:负责协作成员的加入和退出,发言权管理、批注权管理等。主编是当然的编辑,享有当然的批注权,并且在一次协同工作中不改变。
  (2) 编辑:可以在共享区进行批注和编辑,但主编在必要时可取消其编辑权。
  (3) 发言者:用户申请发言得到主编批准后即自动成为发言者。他具有对共享窗口的编辑权。在协作过程中,系统实时发送发言者的图像和语音给各个协作成员。发言者可以激活窗口中的语音和动态视频数据对象,在系统所有站点进行播放。
  (4) 读者:只能对共享窗口进行浏览。
  四种社会角色除主编外都可以动态改变。
  协同编著模块的主要功能如下:
  协作管理菜单:包括协作开始、结束、加入、退出、申请发言权、释放发言权、夺取发言权等。
  著作管理菜单:包括创建、打开、关闭、退出、按章查询、按页查询、删除一页、提交一页等。
  编辑菜单:包括剪贴、复制、粘贴、删除、嵌入新对象、对象操作等。
  批注菜单:包括批注画笔、批注字符、广告牌等。
  对象菜单:提供对象特性的操作,如改变对象线颜色,改变对象填充颜色,在三维坐标系统中将选取对象移到其他对象前面或后面,以及将对象前移或后移等。
  著作库页文档菜单:包括打开一页,共享讨论、更新讨论、清除批注、白板交互等。
  多媒体电子邮件模块具体软件结构如图8.11所示,总体可以分成两大部分:本地功能和外部程序接口。
  本地功能为方便用户处理邮件提供了有力手段,它主要由三部分组成:邮件处理、邮夹管理和本地地址簿管理。
  邮件处理包括对邮件的接收、编辑、阅读、转发、回信、发信、打印、输出到外部文件、从外部文件输入等功能。其中信件的编辑又是最基础的,包括信封编辑、邮件选项设置及信体的编辑。信体编辑利用了多媒体信息处理程序来录入及维护信体的各种媒体的信息,并在它们之间建立时间和空间上的联系,由MIPP协议工作程序编码后提交给邮件编辑程序,邮件的阅读则要对信体部分利用MIPP协议工作程序解码后由多媒体信息处理模块的演示程序播放。
  邮夹是管理邮件的基本单元,每一个邮件都有其归属的一个或多个邮夹。用户可以生成、删除邮夹,并在邮夹中寻找和排序所需的邮件,也可以在邮夹中对邮件实现拷贝、删除、增加等功能。邮夹是一个递归的概念。它可以有自己的子邮夹。TH-UA的用户至少有三个邮夹:发送邮夹、接收邮夹和废纸篓邮夹。
   8.11 多媒体电子邮件软件模块结构图
 
  本地地址簿管理则是用来方便用户编辑信封及搜集参数。从软件实现的角度来考虑,地址簿和邮夹具有类似的结构,这种结构允许组地址的存在。如果有一个工作组,经常需召开会议,想利用邮件系统来发出通知,则只需创建一个组地址,把所有成员的地址加入,然后每次发出邮件通知时只需对收件人填入组地址名则该工作组所有的成员都会收到召开会议的通知邮件。
  系统配置选项是指系统初始化后的一些可变设置,如当邮件新到时,是发出一段声音或者是给出一幅生动的动画,或者是给出一段字幕。
  数据库则包括邮件库、邮夹库、地址库等,其中邮件库中存储有邮夹的关键字,以及使邮夹库和邮件库建立逻辑联系,三库均有统一的数据管理系统并有统一的接口。
  邮夹管理、邮件处理、本地地址簿管理相互之间不独立,而是密切相关,在功能上相互开放,以满足用户对灵活性的需要。
  多媒体电子邮件的外部通信协议,是在X.400系列建议之上增加多媒体信息处理模块MIPS(multimedia information processing system)及多媒体信息处理协议MIPP(multimedia information processing protocol)而形成的。CCITT于1984年正式推出了信报处理系统MHS(message handling system)X.400系列建议,MHS是一种新的分布式电子邮件系统,它是在模拟邮政系统的基础上,吸取电报、电传、传真技术和计算机信息处理技术的精华,利用存储转发的通信机制,在开放系统互连国际标准模型中形成,MHS既可以传送文本类型的信息,又可以传送声音、二进制数据、传真和图文数据,还可以对信文加密解密。利用数字签名技术可以对信报的收发者进行严密的身份鉴别。从OSI(open system interconnection)的基本参考模型来看MHS是属于应用层,它本身又可分为三层:用户代理(UA),邮件传输代理(MTA)和实时传输系统(RTS)。
  UA提供了信件的编辑、发送、接收、阅读、归档、打印、查询、转发、自动回信、删除等功能,特权UA 还可以用来管理MTA乃至整个邮件系统。UA假设MTA能可靠地传输各种邮件,UA间能相互理解对方信文内容的基础是它们都按P2协议对邮件进行编码和解码,MTA实现对邮件的存储转发和对用户的管理。MTA接收邮件并确定其最终去向,并将附加控制信息增加到UA递交的数据单元中并发送它。这些控制信息和数据单元按P1协议处理,以便各MTA之间能相互理解和正确传送邮件。在大多数情况下,MTA 是全时服务的,其本地进程将邮件传送给UA、MTA调用下层网络协议RTS来打开和关闭网络,以便传送和接收邮件。RTS则对MTA递交的数据单元进行编码解码及分段合段,并借助于会话层服务实现可靠的传输,也可以直接利用更下层的服务。UA、MTA、RTSA对于普通的文本邮件或许已经足够了,但邮件的内容中出现多媒体后又遇到了一些困难。
  这主要体现在:
  (1) 媒体之间演示时的时间和空间关系需要得到体现。
  (2) 多媒体信息与设备相关,而邮件系统中各个UA的本地设备可能不一样。
  (3) 应允许扩展新媒体的可能性。
  鉴此,我们专门建立了多媒体信息处理模块MIPS(multimedia information processing system)来处理上述问题,如图8.12。MIPS被UA作为本地功能调用,MIPS有其独特的多媒体数据处理模型及协议MIPP(multimedia information processing protocol),这些模型及协议能较好地处理多媒体邮件的可共享问题。采取上述折衷方法即扩充用户代理的本地功能来实现对多媒体电子邮件的处理是合理的。这种方法的优越性体现在以下方面:
  (1) 可以充分利用现有的非常成熟的电子邮件系统;
  (2) 随着多媒体技术的进展,通过较小的对本地MIPS层的代码修改代价即可将最新技术融入已有的系统中,保证了良好的可扩充性。
  (3) 在单独的多媒体邮件标准出现以前,每一个多媒体邮件团体均可按自己倾向的方式去构造多媒体电子邮件。
  值得注意的是:MIPS和MIPP的引入将彻底改变邮件内容的阅读方式,传统的文本邮件可通过编辑程序随意浏览,而多媒体电子邮件的阅读则由MIPS中的演示程序按编辑邮件时制定的流程播放。当然,用户可以用播放程序中的暂停、快进、快退、重播等操作来即兴发挥。
   8.12 多媒体电子邮件层次模型与协议模型