一种基于DSP的视频转码器设计
来源 《中国多媒体通信》 浏览 1534次
文/北京邮电大学通信网络综合研究所 陈涛 刘勇摘要介绍了转码技术的原理针对不同的应用场合分析了转码器的各种实现结构并提出了在设计转码器时应主要考虑的方面。结合作者所做的实际工作提出了一种利用DSP实现转码器的方法。同时具体介绍了实现转码器时所采用的硬件和软件结构。利用实验数据分析了转码器的性能进而验证了所设计转码器的可行性。最后展望了未来网络技术和数字多媒体技术的发展并提出视频转码技术将成为今后视频应用领域中的热点与主流。
关键词转码器 DSP 码率转码 H.264
自20世纪90年代以来伴随着网络技术和数字多媒体技术的迅速发展音视频编码技术开始走进人们的生活音视频编码技术发展迅速多媒体通信技术逐渐呈现了越来越重要的价值。在音视频编码技术快速发展的过程中各个标准组织针对不同的多媒体应用建立了多种视音频编码标准。如ITU-T和MPEG组织联合针对低比特率双向视频传输应用环境所制定的H.2****编码标准 MPEG组织面向广播级高质量视频应用环境所制定的MPEG-2视频编码标准以及面向流媒体和交互式多媒体应用环境所制定的MPEG-4视频编码标准等。
在许多实时应用中需要根据不同的多媒体应用终端以各种不同的编码参数将视频数据压缩成为各种不同的编码格式。而这些实时应用通常要求视频数据在各种编码格式之间实现动态实时转换。而音视频转码技术正是在这样的背景下应运而生的。
视频转码对压缩的视频码流进行端到端的处理使得转码后的压缩码流更能适应传输信道带宽以及接收端的要求。视频转码技术能够灵活地支持多种媒体格式并且具有较高运算能力、低成本和灵活等的特点。它已成为数字多媒体服务发展的一项重要技术。鉴于此本文对转码技术的主要原理、模块及其特点以及其中采用的主要技术进行了分析介绍并在此基础上提出了一种利用DSP实现转码器的设计方法。这种设计方法既考虑到了现实应用中对低成本、使用灵活方便及便于扩展等特性的需要又充分考虑到了运算速度、处理精度等重要的性能指标特别适用于实时转换视频压缩数据的应用。下面我将从视频转码技术的理论基础、视频转码器的实现结构、基于DSP的软硬件框架及实验数据分析等方面对所做的转码器进行分析和介绍。
一、视频转码技术
视频转码就是将视频信息由一种编码格式转换成另一种编码格式的编码方法。执行视频转码操作的设备叫做视频转码器。视频转码包含两方面含义 1
在同一视频编码标准中转换例如将视频数据由一种编码速率转换成另一种编码速率这种转码方法复杂度低可操作性强 2 在不同视频编码标准中转换将由一种标准压缩的视频数据转换成由另一种标准压缩的视频数据这种转码方法复杂度高其实质是一个重新编码的过程涉及的算法复杂度和系统开销是由转码所需图像质量要求及转码前后两种编码方式的相关度所决定的。
最简单的转码器就是将解码器和编码器直接级联如图1所示 解码器对输入数据解码后再送入编码器进行编码。然而这种方式计算量太大并不实用。事实上视频转码就是在比特率、 图像质量、转码速度三者之间取得折衷针对不同的应用对这三者赋予不同的优先等级。
图1解码器和编码器直接级联的转码器示意图
对于移动通信中的应用分辨率通常较低 比特率也自然较低 对图像质量则要求不高。通常会采取诸如丢弃B帧的方法来减小帧率二次量化参数也要参考信道带宽而确定这就要求信源编码和转码过程与信道结合起来。
本文所要介绍的转码器主要针对IP网络或移动通信条件下传输视频图像等的应用。因此对转码后的输出码率及实时性要求较高而对图像质量则要求不高。
二、视频转码器中的主要算法原理
1 同类视频转码
同类视频转码指把同一种编码标准的视频数据流从适合某一传输环境的压缩形式转换成适合于另一传输环境的压缩形式。此时转码技术用于动态调整视频流码率来适应不同的网络带宽要求包括格式转码、码率转码运动矢量重用以及压缩域转码等。如前所述本文所要介绍的转码器主要应用在无线网络、IP网络上实时传输视频数据并且采用了处理速度快、实时性强的一点对多点类型的结构。因此转码器中主要有四大模块即编码模块、解码模块、图像尺寸变换模块以及码率控制模块如图7所示 。针对这一特点本文在算法原
理方面主要介绍空间分辨率转码、码率转码以及运动矢量重用等三项重要技术。
⑴空间分辨率转码
空间分辨率转码可分为两类分辨率由高到低(下采样)和分辨率由低到高(上采样) 。通常采用的两种不精确的图像尺寸下采样方法是像素抽取和双线性内插。像素复制、线性插值和近似理想低通滤波器等算法能实现高性能任意变换比例的图像尺寸转码。仿真结果表明滤波器算法的图像质量最好但运算也最复杂像素复制算法图像质量最差但实现最简单快捷线性插值算法介于二者之间。本文所介绍的转码器 由于处理速度需要只支持双线性内插的下采样变换。
⑵码率转码
当传输信道或用户要求的比特率比编码产生的码流比特率更低时定比特率的码流需要降低比特率。另一方面通过异步传输模式(ATM)网络传输已编码的变比特率码流要求动态地控制码流 以便使拥塞期间的丢包最少。在这两种情况下视频转码器可根据新的信道带宽限制或网络需求对事先编码后的码流采用必要的码率转换。
在码率转码方面更多的研究集中于有效的转码结构的探讨上 这些结构可分为两大类开环结构和闭环结构。如图2中虚线框所示对输入的码流经过可变长解码(VLD) 、反量化(Q1)后得到的DCT系数直接作二次量化(Q2) 变长编码(VLC)输出需要的码流这种方法前、后两次量化误差的叠加会造成无法接受的误码扩散 因此采用闭环结构来避免误差积累牺牲一定的算法复杂度和存储来获得理想的图像质量。
图 2
⑶运动矢量重用
转码器中大约有60%的计算是关于运动矢量MV、运动补偿和模式选择等的
计算。而在输入码流中已经包含了运动矢量MV和宏块类型等信息。因此如图4所示如果使用输入码流中运动矢量而不重新进行全局运动估算至少可以节省3倍的计算时间。
运动矢量重用避免了运动估值过程大大降低了转码运算的复杂性而且它的转码质量与重新进行完全的运动估值的几乎相同。推导新的运动矢量的算法通常有①平均值算法 即将参考帧中所有相关宏块的运动矢量求平均值再乘以比例因子②中值算法即求出参考帧中所有相关宏块的运动矢量的中值再乘以比例因子③线性内插即对各相关宏块的运动矢量进行线性内插④加权平均 即对所有候选运动矢量进行加权平均⑤从所有候选运动矢量中选择一个占主要因素的运动矢量。
前两种算法对原参考帧中各相关宏块在水平和垂直方向的运动都一致的情况下是可行的但是当各参考宏块的运动不一致时这两种方法的性能较差。采用加权平均算法利用与原始参考帧中对应宏块的所有相关运动矢量来找出所需预测运动矢量只能够部分解决运动矢量重用问题得到的视频质量有一定程度的下降还需要通过小范围的局部搜索提高运动矢量的精确度。本问所介绍的转码器在运动矢量重用方面采用了中值算法。
2不同类视频转码
为提供不同视频压缩编码标准间的互操作性需要将视频压缩码流从某一种压缩标准转码成为另一种视频压缩标准的码流称为不同类视频转码。这种转码可以为不同条件的网络间提供透明的连接一般用于具有相似压缩算法的标准间的转换如均为基于帧间运动补偿、帧内DCT变换、量化的多种编码标准之间的转码 包括M-JPEG H.26x MPEG-1 24等。
不同类视频转码器的设计思想是在充分分析不同标准间异同的基础上采用类似于同类码流间视频转码的结构和算法来设计、研究视频转码的基本结构。
三、视频转码器的实现
1视频转码的应用框架
视频转码的应用框架结构大致可分三类 即客户转码代理服务器、一点对多点和视频会议。本文所介绍的转码器主要针对一点对多点的应用框架。如图3所示这种框架结构是由服务器与编、解码器组组成。其优点在于如果同时有多个用户向服务器就同一个视频节目发出请求那么视频转码系统只需解码一次然后将解码后的视频流输入多个编码器就能同时满足多个用户的不同需求。同时与其他两种应用框架相比这种结构的总计算量较少、实时性较强尤其在多个客户发出请求时效果越发的明显。
图 3
2视频转码器的结构
视频转码器的典型结构主要有三种 即基于像素域的级连式体系结构、基于像素域的快速级连转码体系结构和基于DCT域的转码体系结构。基于像素域的级连式体系结构是一种最简单的实现视频转码器的结构它是把输入的压缩视频流完全解码然后再按照输出格式的要求直接压缩成另一种格式的视频流。但是这种结构计算复杂度最高不能满足实时应用的要求而基于DCT域的转码体系结构是将时间域中的运动估计公式转化为DCT域中的公式而不用先进行反DCT变换在时间域中进行运动估计再进行DCT变换,虽然也能起到降低计算量的目的但灵活性不高特别是在改变运动矢量、帧编码类型、编码速率及分辨率等情况下基于像素域的快速级连转码体系结构直接使用了输入码流中的运动矢量而不重新进行全局运动估算减少了大量的运算时间且具有较高的灵活性如图4所示 。
图 4
如前所述视频转码器要在比特率、 图像质量、转码速度三者之间取得折
衷。所以对于一点对多点类型的转码器更多的考虑是如何最大限度的提高其转码速度并兼顾其图像质量。因此基于像素域的快速级连转码体系结构是我们的最佳选择。这种结构既能保证转码速度提高实时性又能保证一定的图像质量满足移动通信条件下的视频应用等。
四、视频转码器的设计方案
1硬件设计
本文所要介绍的视频转码器其硬件部分的设计如图5所示。其中MSC8122是一块Freescale生产的高性能DSP它通过调用Flash中储存的算法程序处理输入的视频码流并以DMA的方式将处理完的码流写入扩展内存中最终通过网络接口输出转码后的数据。
图 5
2软件设计
如图6所示转码器软件部分采用了自上而下的模块化结构应用层根据输入码流和输入、输出信道条件发出指令调用相应的编、解码及码率调整等模块完成转码工作。其具体的工作流程如图7所示应用层根据需要产生所要转码的配置文件文件中包含了转码的方向如
H.263->H.264,H.264CIF->H.264QCIF等 、输入、输出帧率和码率等信息转码器读取配置文件获得配置文件中的必要参数并完成相应编、解码器的参数设置调用解码器从输入码流中获取残差数据、运动矢量、宏块信息等重要数据调用尺寸变换模块完成图像的尺寸变换如CIF->QCIF 调用编码器和码率控制模块完成视频编码并输出。
这种结构的软件设计具有可扩展性强、灵活、运算速度快、支持多用户的转码请求、可
升级性强及便于维护等特点。 图7所示的应用层不是本文所要讲述的重点其功能由已制作好的各种配置文件所代替。转码器工作时从读取配置文件开始由已经在配置文件中设置好的参数配置相应的编、解码器及尺寸变换模块完成转码处理。
五、小结
本文介绍了利用DSP实现视频转码器的方法并结合转码器的结构与转码器中所采用的主要算法原理分析了设计转码器时应主要考虑的方面。同时具体介绍了实现转码器时所采用的硬件和软件结构。利用实验数据分析了转码器的性能进而验证了所设计转码器的可行性。
当然所设计的转码器也存在一定的局限性突出表现在由于将解码后的运动矢量直接求中值用于编码导致在有些运动较剧烈的视频内容或输入输出图像尺寸不同时或不同类视频转码时 出现预测不准的现象最终导致图像质量有所下降。而解决图像质量下降的问题最好的办法就是在解码获得运动矢量的基础上在一个很小的搜索范围内再次进行运动估计计算出最佳的运动矢量并将其用于运动补偿。
展望未来 网络技术和数字多媒体技术的迅速发展必将加速音视频编码标准的发展。视频转码技术作为将视频信息由一种编码格式转换成另一种编码格式的编码方法必将随着其技术的日益完善而得到更加广泛应用与发展。视频转码技术也必将成为今后视频应用领域中的热点与主流。
imidc怎么样?imidc彩虹网路,rainbow cloud知名服务器提供商。自营多地区数据中心,是 Apnic RIPE Afrinic Arin 认证服务商。拥有丰富的网路资源。 在2021年 6.18 开启了输血大促销,促销区域包括 香港 台湾 日本 莫斯科 等地促销机型为 E3係,参与促销地区有 香港 日本 台湾 莫斯科 等地, 限量50台,售罄为止,先到先得。所有服务器配置 CPU ...
Virmach对资源限制比较严格,建议查看TOS,自己做好限制,优点是稳定。 vCPU 内存 空间 流量 带宽 IPv4 价格 购买 1 512MB 15GB SSD 500GB 1Gbps 1 $7/VirMach:$7/年/512MB内存/15GB SSD空间/500GB流量/1Gbps端口/KVM/洛杉矶/西雅图/芝加哥/纽约等 发布于 5个月前 (01-05) VirMach,美国老牌、稳...
Pia云商家在前面有介绍过一次,根据市面上的信息是2018的开办的国人商家,原名叫哔哔云,目前整合到了魔方云平台。这个云服务商家主要销售云服务器VPS主机业务和服务,云服务器采用KVM虚拟架构 。目前涉及的机房有美国洛杉矶、中国香港和深圳地区。洛杉矶为crea机房,三网回程CN2 GIA,自带20G防御。中国香港机房的线路也是CN2直连大陆,比较适合建站或者有游戏业务需求的用户群。在这篇文章中,简...