节点文献
嵌入式双流视频编码器的算法研究与优化
Research on Algorithms and Optimization of an Embedded Dual-Stream Video Encoder
【作者】 夏小建;
【导师】 郭红星;
【作者基本信息】 华中科技大学 , 计算机系统结构, 2007, 硕士
【摘要】 在网络视频监控等应用中,由于网络带宽的限制,要求视频编码器能够同时产生两种图像分辨率的码流,其中高分辨率码流用于本地存储,低分辨率码流用于网络传输;或者,高分辨率码流用于有线网络传输,低分辨率码流用于无线网络传输,以支持手机等移动终端设备访问。目前的双流视频编码器对同一视频源通常采用两个独立的编码器分别进行编码。其没有考虑两种码流之间的相关性,存在重复计算问题。因此,如何利用两种码流间的相关性,减少冗余计算,是提高双流视频编码器计算效率的一个重要途径。在视频编码中,运动估计的运算量很大,是整个过程中最耗时的步骤。借鉴视频转码中运动矢量重用的思路,让低分辨率编码核重用高分辨率编码核产生的运动矢量,从而减少运动估计的搜索次数,节省大量计算资源。运动矢量重用包括运动矢量合成和精细化两个步骤。针对仅做运动矢量合成,精度不够的问题,提出了一个双预测修正的运动矢量精细化方法。通过运动矢量合成值和当前帧内运动矢量预测值间的偏差,来判断是否需要继续进行运动矢量精细化处理。精细化搜索在一个四像素的小窗口范围内进行,从而在运动矢量精度和搜索次数上取得折中。在TI DM642平台上设计并实现了一个能同时产生CIF和QCIF两种分辨率码流的视频编码器。通过编译选项优化、数据打包、循环展开、线性汇编优化等手段对此双流视频编码器进行了优化。实验结果表明,使用运动矢量重用,双流视频编码器中低分辨率编码核的编码速度提高了大约50%。通过双预测修正法进行运动矢量精细化后,编码图像的峰值信噪比平均提高了0.3到0.5dB。经过优化的双流视频编码器的编码速度平均提高了5倍左右。
【Abstract】 Video Encoder is required to produce dual-stream with different resolutions due to the limit of network bandwidth in video surveillance. One stream with high resolution is used for local storage, the other stream with low resolution is used for transmission through the network. Or one with high resolution for transmitting through wireline network, and the other through wireless network to support access of mobile devices such as mobile telephones. Usually, a dual-stream video encoder engages two separate encoders to code the same video. It is obviously that it doesn’t consider the correlation between the two streams and cause a lot of recalculations. Thus it is very important for the dual-stream encoder to increase its efficiency by making use of the correlation between the computation of coding the two streams.Motion estimation is the most time-consuming part in the video coding process. By imitating motion vector reuse methods in video transcoding technology, a method named as dual-prediction refine algorithm is proposed to obtain the motion vectors for the low resolution coder core. It tries to reuse the motion vectors which were already obtained by high resolution coder core for avoiding redundant computation to get the motion vectors. The reuse process of the motion vectors consists of two steps. First, the motion vectors for the low resolution coder core are composite of the motion vectors obtained by high resolution coder core, in the meantime, a predicted version is also generated by using the motion vectors of the left, up and up right neighbours for each macroblock. Then, the difference between the predicted motion vectors and the composite motion vectors is used to decide whether the refinement of the motion vectors is needed, to further improve the precision of the composite motion vectors. The refine treatment is conducted in a search window within only four pixels. Thus, a good trade-off is gotten between the precision of the motion vectors and computing time. A dual-stream video encoder with CIF and QCIF resolutions is implemented on TI DM642 platform. Many methods such as compiler option optimization, data pack, intrinsic functions, loop Unrolling, linear assembly are used to optimize it.The experimental results show that the speed of the low resolution coder core of the dual-stream video encoder increases by about 50% through reusing the motion vectors. And the PSNR of the compressed video is improved about 0.3 to 0.5dB averagely after using dual-prediction refine method to do the refine treatment. The optimized dual-stream video encoder could run faster about five times than original one.
【Key words】 Video Coding; Video Transcoding; Dual-Stream Video Encoder; Optimization;