张伟华-基于DaVinci技术的H.264实现与研究

上传人:宝路 文档编号:47916677 上传时间:2018-07-06 格式:PPT 页数:31 大小:764.83KB
返回 下载 相关 举报
张伟华-基于DaVinci技术的H.264实现与研究_第1页
第1页 / 共31页
张伟华-基于DaVinci技术的H.264实现与研究_第2页
第2页 / 共31页
张伟华-基于DaVinci技术的H.264实现与研究_第3页
第3页 / 共31页
张伟华-基于DaVinci技术的H.264实现与研究_第4页
第4页 / 共31页
张伟华-基于DaVinci技术的H.264实现与研究_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《张伟华-基于DaVinci技术的H.264实现与研究》由会员分享,可在线阅读,更多相关《张伟华-基于DaVinci技术的H.264实现与研究(31页珍藏版)》请在金锄头文库上搜索。

1、基于DaVinci技术的 H.264实现与研究075490 张伟华论文的主要工作论文围绕H.264算法及DM6446嵌入式平台展开,主要分 为算法研究与平台实现两部分,主要工作如下: 算法研究: 首先简要介绍视频压缩编码的原理,评价标准及以往的视 频压缩编码标准; 然后详细介绍了H.264标准的特点、码流结构及关键技术, 并分析了H.264的学术模型JM13.2; 重点基于JM13.2模型,分析了现有的帧内预测算法,结合 高分辨率视频的编码特点,提出了一种新的快速帧内预测 算法。通过实验验证,该算法在码率与SNR值基本不变的 情况下,编码速度提高了27.8%。论文的主要工作平台实现: 首先介绍

2、了常见的DSP芯片和嵌入式系统的基础知识, 分析了DM6446处理器的硬件平台,软件开发架构; 然后概述了H.264在DM6446平台上移植的系统搭建, 算法移植步骤; 最后对X264模型的算法进行简要分析及预处理,重点 研究了X264算法在DSP端的平台移植,简单优化及 ARM端应用程序的构建,DM6446平台的配置等,完成 整个系统的移植。介绍内容算法研究: 一. H.264/AVC标准及JM13.2模型实现 二. 基于H.264的高分辨率序列帧内预测算法的改进 平台实现: 三. DM6446嵌入式开发平台 四. H.264在DM6446平台上的移植与实现 一. H.264/AVC标准及J

3、M13.2模型 实现 H.264编码器框架图1-1 H.264编码器 H.264的核心技术 1)帧内预测 - 空间冗余 2)帧间预测 - 时间冗余a)块尺寸选择的多样性 (7种) b) 1/4或1/8像素精度的运动估计 c) 多参考帧 3)整数变换与量化 4)熵编码(CABAC及CAVLC) 5)去块效应滤波器 H.264的码流结构视频序列 - 图像 - 片 - 宏块 - 子块 4. JM13.2模型分析与流程设计二. 基于H.264的高分辨率序列帧内预测算 法的改进 现有的帧内预测算法 亮度预测有三种: 1)4x4模式,9种预测方向 2)8x8模式,9种预测方向 3)16x16模式,有水平,

4、垂直,DC,及平面4种 色度预测:8x8模式,有4种预测选项,类似于16x16 亮度预测模式(a) 4x4块及预测参考像素(A-M)(b) 帧内预测模式方向JM13.2模型中帧内预测的步骤: 1)先进行色度预测,通过计算所有可能模式的SATD值 选择最优模式 2)进行亮度预测 第一步:通过计算率失真值选择最优的Intra4x4模式第二步:选择最优Intra16x16模式(SATD) 第三步:选择最优Intra8x8模式 (RDO方式) 第四步:计算上述三种最优模式的率失真值,选择最 优弊端:1)候选模式种类多 2)计算 量大 优点:选择的模式准确,编码后码流小可供改进之处:1)缩减候选模式2)

5、简化率失真代价函数2. HD Sequences帧内预测的编码特点1)不同分辨率序列的块划分方式的不同 结论:随着视频分辨率的增大,4x4的划分采用的概率减小,亮度分量的预测更倾向于使用8x8和16x16的宏块划分。 表 2-1 不同分辨率序列的块选择比率序列格式Intra4x4 (%)Intra8x8 (%)Intra16x16 (%)Y -SNR (dB)sward.yuv (60帧)qcif43.4548.727.8338.33cif23.3856.7319.8940.964cif3.8457.2138.9544.09bigbear.yuv (360帧)qcif59.5028.5711.

6、9242.70cif42.9635.6321.4143.774cif20.8050.3328.8844.682)1080p HD sequences的帧内预测 表2-2 a) Intra4x4,Intra8x8及Intra16x16均使用序列4x4 (%)8x8 (%)16x16 (%)Y - SNR (dB)编码 速度 (fps)码率 (bits/frame)sward.yuv2.0828.2169.7148.250.039164909.60king.yuv3.2533.7163.0446.450.037228886.25vr.yuv1.5944.4353.9746.060.03729558

7、1.25big.yuv13.5545.9340.5140.740.0311176762.98表2-2 b) 禁用Intra4x4预测序列4x4 (%)8x8 (%)16x16 (%)Y -SNR 提高/dB编码 速 度 提高/%码率 增大/%sward.yuv041.1758.82074.53.8king.yuv045.2754.73-0.0171.73.8vr.yuv051.3148.69077.41.6big.yuv059.8240.18-0.0178.71.1结论:禁用4x4的候选模式 ,编码速度有很大提高, 码率增大并不显著,同时 PSNR值并不下降。故在编码1080p及更高分辨 率的

8、视频时,可以去除4x4 的帧内预测模式。3.帧内预测快速算法原理:帧内预测所选择的编码划分大小与宏块内部的平 滑度密切相关。 方法: 1)基于上述结论,高清视频序列的帧内预测可以去 除Intra4x4候选模式。 2)提出一种新的快速预测算法,通过计算边界像素 的绝对误差和,提前判定宏块是选用Intra8x8还是 Intra16x16模式进行预测。图 2-2 16x16宏块的平坦度Boundary Differences=Diff1+Diff2( 式2-1)图2-3 快速帧内预测算法通过大量的实验测试可知,当T取值为23时编码性能最优。4. 系统测试结果表2-3 快速帧内预测算法的测试结果序列I

9、ntra16x16和Intra8x8预测改进的快速预测 算法Y - SNR (dB)速度 (fps)码率 (bits/frame )Y -SNR 提高/dB速度 提高/%码率 增大/%night.yuv48.250.066171249.79-0.0127.71.3davinci.yuv40.610.066367532.52-0.0131.61.3king.yuv41.190.067374627.48-0.0424.41.5vr.yuv46.060.064300238.00-0.0230.13.4big.yuv40.730.0561189500.6 7025.20.4平均值43.370.0644

10、80629.69-0.0227.81.6实验结果表明:该算法在码率只有少许增加 的情况下,编码速度提高了27.8%,SNR值基本 不变。三. DM6446嵌入式开发平台 DM6446硬件结构 ARM926JE主处理器标准的操作系统:WinCE、Linux,应用 更加灵活 C64x+ DSP子处理器可编程:视频编解码算法更灵活 VICP视频/图像协处理器硬件实现运算密集处理:减轻DSP处理 的负担 VPSS视频处理子系统:包括视频处理前端(VPFE)和视频处 理后端(VPBE),分别用于外部图像输入设备和视频输出设备 。 片上外设组:存储类外设:本地存储互联类外设:网络连接通用类外设:接口片外外

11、设图3-1 DM6446功能结构图 视频采集编码输出系统的总体搭建 图3-2 H.264编解码软件设计框图视频采集编码输出系统总体如图所示,主要包括视频 采集模块,DDR2存储模块,视频信号输出模块。 DaVinci软件开发系统ARM SubsystemDSP SubsystemTransportARM主处理器:1)运行MontaVista Linux、 WinCE 2)用户用下列3个APIs来构建自 己的应用程序:EPSI、VISA、xDM DSP从处理器:实现视频、图像处理算法 二者通信: 用DSP/BIOS LINK来实现图3-3 DaVinci软件架构 四. H.264在DM6446平

12、台上的移植与 实现 算法移植步骤图4-1 基于DM6446的H.264算法移植步骤第一步,基于CCS环境修改X264算法使之符合DSP C64x+平台 的特性,编译生成一个编码算法的库文件*.lib(等同于Linux环境下 的*.a64P,直接在Linux环境下修改文件后缀名也可)。第二步,生成一个在DSP上运行的可执行程序*.x64P(即.out文件 ),也就是DSP Server。 第三步,根据DSP Server的名字及其中包含的X264编码算法创 建Codec Engine的配置文件*.cfg。这个文件定义Engine的不同配置 ,包括Engine的名字、每个Engine里包括的cod

13、ecs及每个codec运 行在ARM还是DSP侧等等。 最后,应用工程师收到不同的codec包、DSP Server和Engine配 置文件*.cfg,把自己的应用程序通过编译、链接,最终生成ARM侧 可执行文件。 其中重点在于第一步DSP端X264算法的移植,与最后一步ARM 端应用程序的构建,下面将做重点介绍。 X264算法分析 1)移植算法选择 JM、X264、T264 2)X264算法分析 数据的读入与存储、数据的压缩处理(参数初始化、 以宏块为单位进行编码、编码后数据保存)、码流的 输出 3)预处理 去除汇编优化、界面显示、解码模块及工程的整合图4-2 X264编码流程图3. DSP

14、端的平台移植与优化 开发环境:CCS3.3 移植需要修改的算法: 1)头文件未定义 2)数据类型的不同 3)对非标准C的代码进行修改 4)数据对齐的问题 5)部分数据结构的初始化 6)部分函数的未定义问题 7)字节对齐的问题 8)配置X264算法的参数读取方式 字节对齐问题举例说明: 在C64x+ DSP中,寄存器都是32位大小,一次同时处理32bit数据。 如果程序中的存储地址不是合法的32位字地址,在程序装入数据时,ldw 指令会对这个地址自动进行调整使之成为一个合法的字地址。 例如下面程序: #include unsigned int a; unsigned char test8 = 0

15、x11,0x22,0x00,0x00,0x00,0x00,0x77,0x77,0x88; void main() a = *( unsigned int*)(test+2); printf(“%x”,b); 在CCS下运行结果为00002211,而VC下为00000000,因为test+2在 CCS中并非合法的地址,所以地址test+1,test+2,test+3,test+4都会 在程序装入时校准到test。 CCS3.3开发平台的设置: 1)变量的存取方式调整 2)“序”的差别 3)存储空间的分配 DSP端平台优化方面的简单措施: 1)项目级优化 2)C程序级优化 a)使用内联函数 b)循

16、环展开 c)使用逻辑运算代替乘除运算 d)使用尽量小的数据类型 e)减小存储器相关性. 3)汇编级优化(本论文并未涉及) 仿真测试X264算法DSP端移植完成后,对标准的foreman QCIF( 176x144)序列进行测试,编码采用Main Profile,熵编码同时采 用CABAC和CAVLC方式,PSNR随编码帧数和码流变化的效果分别 如图所示。图4-3 PSNR随编码帧数变化测试结果图表4-1 运动强度不同的序列测试结 果序列运动强度PSNR (dB)bitrate (kb/s)CPU.Total.Incl.Total (Encode_frame函数)containerLow39.447583.151424171891foremanmedium39.820610.771601938580mobilemedium35.885595.231734151182stefanhigh36.334934.2

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号