- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于RISC架构的可视电话平台设计
在本系统中,H.263 编码器过程是:
在函数处理层在H.263 编码任务发出后,即调用处理函数Video_encode 进行编码,从内存中读出一帧图像,判断当前帧的类型。如图-5 所示。
图-5 H.263 编码软件流程
1)INTRA 帧情况。此时开关拨到上面的开关。视频帧分块后的当前块(目前处理的视频块)输入经过变换编码,量化后进行熵编码作为码流输出;量化结果再经过反量化和反变换作为参考帧储存。最后调用重构图像进行去块效应滤波。
函数 CodeOneIntra()对当前帧按照I 帧进行编码,该函数输入为:
H263ENCODE_MEMORY * mems 编码信息结构体指针。
H.263ENCODE_MEMORY{
重建帧结构指针,参考帧结构指针,重建宏块结构指针, 参考宏块结构指针,解码图像参数结构指针,解码后系数,宏块参数结构指针,解码过程结构指针}
2)INTER 帧情况。此时开关拨到下面的开关。视频帧分块后的当前块首先在参考帧搜索区域中进行运动估计得到预测块(参考帧中与当前块最相近的块),同时得到运动矢量, 运动矢量熵编码作为码流输出。 预测块与当前块相减得到差值图像,对差值图像进行变换编码,量化后进行熵编码作为码流输出。
4.2.1 H.263解码
下图6是H.263 解码器系统框图:
图-6 H.263 解码器框图
如图-6 所示,H.263 解码器与编码器对应,也有4 个主要部分:反熵编码,反量化(Scale),反DCT(IDCT),运动估计Motion Estimation.图2 简单示意了INTER 帧解码的过程,即IDCT 之后的结果都与运动估计结果相加,但在INTRA 帧时候,不需要与运动估计预测结果相加。可以看出, 解码器相对于编码器, 流程比较简单。
H.263 解码过程是:
1)INTRA 帧情况,对码流中帧内系数码流进行反熵编码,反量化,IDCT 即完成视频帧的解码,得到视频数据输出;2)INTER 帧情况,对差值进行反熵编码,反量化,IDCT,得到的结果与运动估计预测块相加,完成运动补偿,随后得到视频数据输出;4.3 G.723.1编解码。
本系统的另一个关键是在嵌入式架构上实现G.723.1 的编解码。该标准能够对输入的模拟语音信号用8kHz 采样,16bit 线性PCM 量化的语音信号压缩成6.3Kbps 或5.3Kbps 的比特流。G. 723. 1 的两种码率根据不同需求可供选择,高码率为6. 3kb/s, 采用多脉冲最大似然量化(MP-MLQ)编码算法,具有较高的重建语音质量; 低码率为5. 3kb/s,以ACELP 算法为基础, 计算复杂度则较低。本系统中采用ACELP 算法的低码率语音压缩。限于篇幅,本文在此不详述,可参阅参考文献[6]与[8]。
4.4 H.245协议的实现
H.245协议的全称是多媒体通信控制协议,他给出了一组用于描述终端信息,带宽协商等食物消息的语法和语义,主要提供端到端的信令功能,以便通信双方能正确的互联。H.245的信令控制H.324系统的操作,包括能力交换,逻辑通道的打开和关闭,模式优先请求,复用表项传输,流量控制消息,通用命令和指示。可参见参考文献[4]。
在系统实现的时候,利用SRP简单重传协议提供可靠的H.245码流的传输,采用一个发送标记,当发送一个命令帧后,激活该标记,此时后续的命令帧都不进行发送,当收到相应帧后,清除该标记,发送下一个命令帧。期间若有超时没有收到响应帧,则重发当前帧;若重发多次仍没有收到响应帧,则终止通信,并报知应用程序通信错误。整个过程由ARM来进行控制。
1 2 3 4