基于SAA6752的MPEG-2的编码系统_消费类电子论文
关键词:saa6752 mpeg-2编码系统
数字电视世界范围内得到了非常迅速的发展,电视广播的全部流程,即从节目的提摄、制作、传输到插出等正在逐步实现数字化。mpeg视频/音频压缩标准的出现,解决了电视信号数字化后量过大而信道带宽有限的问题;数字视频硬件产品的不断进步,促进了各种数字视频产品的推出,给观众带来了高品质的画面和音响效果。这一切,都预示着电视广播全面步入了数字化的时代。
目前世界上的数字电视系统标准有欧洲的dvb系统、美国的atsc系统和日本的isdb系统。这几种系统在视频压缩上都采用mpeg-2标准,我国也正在积极地制定自己的数字电视标准。本文将介绍philips公司生产的芯片saa6752,它能在开发欧洲dvb标准常规数字电视和dvd的前端系统的产品过程中,实现mpeg-2编码。
1 saa6752的主要特点
saa6752又称为empress,是philips公司第二代实时mpeg-2编码芯片。它将音频、视频编码和复用集成在一个芯片中,具有很强的功能,外部只需加入简单的相关芯片就能实现整个编码系统,从而降低系统成本。同时,所有的视频、音频压缩算法都运行在empress的内部mips处理器上,编码软件都已固化在芯片中,无需额外的软件开发,系统主控芯片通过i2c总线就可以设定必要的编码参数。此外,由于它较好地解决了视频编码中的主要问题——噪音过滤和运动预测,所以可以在低码率情况下实现高品质视频编码,从而达到在存储介质上可以存储更多视频和音频的目的。
该芯片主要提供以下功能:
(1)视频压缩
·实时mpeg-2编码(符合mp@ml)
·支持分辨率:d1、2/3d1、1/2d1和sif
·在所有模式下支持ipb、ip和i帧编码
·支持的码率:1.5~25mbps(对于只有i帧编码)
1.5~15mbps(对于只有ip帧编码)
1.5~15mbps(对于只有ipb帧编码)
·支持cbr(constant bi rate)和vbr(variable bit rate)
·具有可编程的gop(grup of picture)结构
(2)音频压缩
·ac-3音频编码:码率为256kbps或385kbps
·mpeg-1 layer2音频编码(16或20位):码率为256kbps或384kbps
(3)系统复用
·符合mpeg系统标准(iso 13818-1)的视频和音频流的复用
·产生和输出符合dvd、d-vhs和dvb标准的mpeg-2传输流(ts)、mpeg-2节目流(ps)、打包的基本流(pes)和基本流(es)
·产生和插入mpeg时间标记(pts/dts/scr/pcr)
2 基于saa6752的mpeg-2编码系统
2.1 系统框图
因为saa6752没有片内cpu,为了实现编码功能,所以必须由一个片外cpu对其进行控制。而对saa6752的所有控制(例如码率控制、ps流和ts流输出等)均是通过i2c总线完成的,因而非常简单。图1给出了基于saa6752的mpeg-2编码系统的方框图。
该编码系统主要分为视频输入部分、音频输入/输出部分、empress部分、复位部分、输出接口、电源部分以及i2c和uart接口。
2.1.1 视频输入部分
视频输入部分提供两路模拟输入接口,一路为cvbs信号,另一路为yc信号。该部分可以由philips saa7114完成,对其所有的控制均通过i2c总线完成。
2.1.2 音频输入/输出部分
由于empress提供了音频i2s接口,该部分主要完成模拟拟音频转换为数字音频12s信号的功能。
2.1.3 empress部分
由于saa6752采用多个处理器模块,各个处理器和控制模块之间相互独立,所以模块之间的数据传送主要通过fifo存储器或外部sdram来实现。该系统采用16mbit或64mbit sdram。empress saa6752可以产生打包的基本流,其码流可以根据不同的应用进行设定,一种是对应于dvd格式的pes流,其码诣可变的;另一种是对应于ts的pes流,其码率是恒定的。
2.1.4 复位部分
该系统提供两种复位方式:一种是硬复位;另一种是利用i2c控制软件实现软复位。
2.1.5 输出接口部分
该系统提供两种ts并行输出接口:一种是ttl接口;另一种是标准lvds接口。
2.2 软件编程
为了控制empress的编码,i2c接口线被用来将该系统与计算机相连以实现计算机控制empress芯片的目的,同时初始化saa7114。所有的相关操作均是通过i2c总线访问寄存器实现的。在i2c控制软件中,需要确定empress和saa7114的i2c读写地址。
empress的i2c读写地址:
(1)当empress的i2c选择信号为低时,其i2c写地址为40h,读地址为41h。
(2)当empress的i2c选择信号为高时,其i2c写地址为42h,读地址为43h。
saa7114的i2c读写地址:
(1)当saa7114的i2c选择信号为低时,其i2c写地址为40h,读地址为41h。
(2)当saa7114的i2c选择信号为高时,其i2c写地址为42h,读地址为43h。
为了防止empresst和saa7114的i2c地址发生冲突,将empress的i2c选择信号设置为低电平,则empress的i2c写地址定义为40h;将saa7114的i2c选择信号设置为高电平,则saa7114的i2c写地址定义为42h。
控制软件应实现以下的i2c接口函数:
(1)void i2c_read_one_byte(int address,int subaddress,int value)
该函数主要实现对给定寄存器一个字节的读取,address确定需要访问的芯片,subaddress确定需要访问的寄存器,value为返回寄存器值。
(2)i2c_write_one_byte(int address,int subaddress,int value)
该函数主要实现对给定寄存器一个字节的写入,address确定需要访问的芯片,subaddress确定需要访问的寄存器,value为要写入寄存器值。
(3)i2c_read_muiti_bytes(int address,int subaddress,int count,int *buffer)
该函数主要实现对给定寄存器多个字节的读取,address确定需要访问的芯片,subaddress确定需要访问的寄存器,buffer为返回多个寄存器值。
(4)i2c_write_multi_bytes(int address,int subaddress,int count,int *buffer)
该函数主要实现对给定寄存器多个字节的写入,address确定需要访问的芯片,subaddress确定需要访问的寄存器,buffer为要写入多个寄存器值。
通过调用这些函数,就可由i2c接口为empress和saa7114的片内寄存器进行设置。
使用i2c控制软件,可以任意修改参数(pid、码率等)产生和输出所需要的ts、ps、pes、es流。在设定输出码率为5~9mbit/s时,可以得到较高品质的视频图像。
saa6752采用噪声过滤和运动估计技术,使得基于saa6752的mpeg-2编码系统在低码率压缩情况下,对于有干扰的输入信号仍能提供高质量编码效果。这特别适合于以较低码率压缩的作用,例如dvd视频刻录和个人视频刻录(personal video recording)。
在保证高编码质量的同时,基于saa6752的mpeg-2编码系统设计非常简单,易于实现。当使用该芯片设计mpeg-2编码系统时,只需在外围添加视频模/数转换芯片、音频模/数转换芯片和外部sdram,普通的模拟视频和音频信号就可以被压缩成高质量的mpeg-2视频流和mpeg-1 layer2或ac-3音频流,复用成为ps或ts,提供给存储或广播媒介。由于所有的视频和音频编码算法和软件都是运行在片内处理器中,因而只需较少的系统控制资源。而主控芯片只要通过i2c总线设置编码参数即可,无需用户具有较多的mpeg编码经验或投入过多的设计成本,缩短了设计周期。
因此,用saa6752设计低成本高品质的编码系统,可以被广泛应用于新的消费类数字视频产品中。