您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 视频编码库概要设计报告.pdf
  所属分类: 编解码
  开发工具:
  文件大小: 199kb
  下载次数: 0
  上传时间: 2019-07-02
  提 供 者: cat***
 详细说明:1.1. 编写目的 设计视频编码库的基本框架、内/外部接口、主要数据结构和流程。指导视频编码库的 开发、使用和后续维护。 1.2. 适用范围 T3/A80/A83/H3/H8 等各个芯片平台的Android 系统SDK 和Linux SDK文档履历 版本号 日期 制/修订人 内容描述 V0.1 2014-07-11 初稿 2015-05-28 去掉内部模块接口设计部分 V1.0 2015-0528 Release版 在264编码中增加了插skip帧功能,在jpeg编码中扩展 V1.1 2015-09-17 杨草原 了exif信息 目录 1.概述…… 1.1.编写目的. 1.2.适用范围 1.3.相关人员 2.模块介绍… 2.1.功能介绍… 2.2.相关术语介绍 3.模块体系结构设计.… 3.1. Framc Buffer管理. 222344 3.2. Bitstream Manager管理 3.3.Ⅴ ideo encoder device管理 4.接口和流程设计. 4.1.接口函数 5 411. Videoencc 4.1.2. VideoEncDestr 1.1.3. VideoEncIr 4.1.4. VideoEncUnInit 6 4.1.5. Alloc InputBuffer 4.1.6. GctOncAlloc Input Buffer 4.1.7. FlushCacheAllocInputBuffer 8 41.1.8. ReturnOneAllocInputBuffer........... -8 4. 1.9. Releasealloc InputBuffer 4. 1.10. AddOne InputBuffer. ··· 4.1.11. VidcoEncodconcframe 4.1. 12. AlreadyUsedInputBuf 1. 1.13. ValidBitstreamFrame Num 4.114. Get Onebitst reamframe 10 4.1.15. FreeOnebitstreamFrame 10 4.1.16. VidcoEncgetParamcter 4.1.17. VideoEncsetParameter 5.数据结构设计… 5. 1. VencBase Config 12 5.2. VencH264Profilelevel 12 5.3. VencQPRange -13 5. 4. Motion param ………-13- 5.5.Ⅴ encHeaderData. 13 5. 6. VcncInputBuffcr 13 5. 7. Venc OutputBuffer 5.8.Ⅴ enc Allocate BufferParam.…… 14 5. 9. VencH264FixQP -15 5.10. Venc CyclicIntraRefresh 15- 5.11. Venc H264 Param 15- 5. 12. VencROIConfig 16 5.13. VENC DEVICE 5.14. VENC INDEXTYPE 6. Declaration ∴-20- 1.概述 1.1.编写目的 设计视频编码库的基本框架、内/外部接口、主要数据结构和流程。指导视频编码库的 开发、使用和后续维护。 1.2.适用范围 T3/A80/A83/H3H8等各个芯片平台的 Android系统SDK和 Linux SDk。 1.3.相关人员 开发和维护视频编码库的相关人员 2.模块介绍 2.1.功能介绍 视频编码库是一个提供视频编码功能的库,编译输岀的库文件为 libvencoder.so。基于视 频编码库,应用程序可以在全志公司的各个lC平台上实现高效的、多种压缩格式的视频编 码功能,所支持的压缩格式为:JPEG、H264,VP8(仅A80支持)。 2.2.相关术语介绍 QP:量化参数 Exif:在PFG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、 IS0、焦距、日期时间等 3.模块体系结构设计 视频编码库山帧缓冲输入管理模块( Frame Buffer Manager)、视频编码设备( Video Encoder device)、码流输岀管理模垬(BitsτreεπMaεger)以及编码控制模块( encoder) 组成,如图1所示。其中 Frame Buffer manager负责编码输入图像 frame的管理 Bitstream Manager负责视频压缩输出码沇的管理; Video encoder device负责将输入的图像帧编码成压缩码流; encoder控制编码流程,对外提供编码库的接口函数 encoder FramebufferManager VencoderDevice u BitstreamManager 图1.视频编码库模块结构图 encoder调用Ⅴ i deo encoder device的编码函数时, encoder先从 Frame Buffer Manager取出输入的图像帧,然后把获取到的图像帧送给 Video encoder device,ideo Encoder device从 Bitstream Manager获取有效的输出 buffer的起始地址和 offset,并把 相应的 Bitstream起始地址和 offsct配给V,启动V后,将会输出相应的码流到 Bitstream Manager模块。 编码后, Video encoder deyice将更新 Bitstream manager模块中有效码流信息,把 相应的码流加入 Bitstream manager模块的输出队列。 外部程序通过调用 encoder把图像 frame送给 Frame Buffer manager模块,外部应用 程序通过 encoder从 Bitstream Manager获取输出的码流 3 3.1. Frame Buffer管理 Frame Buffer Manager模块用来管理输λ图像帧,现在攴持两种类型的输入图像帧, 种是输入图像帧的内存由外部模块申请,另·种是输入图像帧的内仔由 encoder通过 rame Buffer管理模块来申请 (1)第一种情况由 Frame Buffer Manager来管理外部模块內存的指针,在模块内部仅 存在内存指针地址的传递; (2)第二种情况由 Frame Buffer manager来申请输入图像帧的内存,并提供相应的接 口,供外部应用程序向相应的内存中溵移图像数据。 为了效率的考虑,当外部模块有自己的 frame buffer管理,并且所使用的内存为物理 连续的内存的时候,直接使用外部模块提供的内存的地址来编码。例如:在 camera录像中 camera有自己的帧管理队列,此时直接把 camera的 buffer地址传递给 Frame Buffer Manager模块就可以了。 3.2. Bitstream Manager管理 Bitstream Manager管理模块在初始化的吋候会申请·块2MB8M的一块物埋连续的内 存供编码输岀码流使用。 Bitstream manager模块按照帧结构来管理输岀码流,模块内部的结构体SreaπInfo 记求」每一帧的长度、 offset等信息; Bitstream Manager模块申请的内存的起始地址、 offse会配给硬件,硬件使用的是 个循环的 buffer,硬件输出的 Bitstream在内存尾部边界的时候,超过内存尾部边界的数 据将公存储在从起始地址开始的内存中,这个时候码流信息由两部分组成 3.3. Video encoder device管理 此模块提供操作ν硬件编码的接∏,包括H264、Jpeg、ⅥP8编码 4.接口和流程设计 4.1.接口函数 视频编码库APIs Video Enc create 创建一个视频编码器 Video Encdestroy 销毁视频编码器 Video enclnit 初始化视频编码器 VideoEnc UnInit 去初始化视频编码器 AllocInputBuffer 通过 encoder申请输入图像帧 buffer GetOneAllocInputButfer 获取一块由 encoder分配的图像帧 Flush Cache AllocInput Buffer 刷 cache保持数据的一致性 ReturnOneAlloclnputBuffer 还回由 encoder申请的图像帧 ReleaseallocInput buffer 释放由 encoder申请的图像帧 ddOnelnputButier 添加一块输入的图像帧到编码器 VideoEncode OneFrame 编码一帧图像 Already UsedInputBuffer 获取编码器已经使用过的图像帧 ValidBitstream frameNum 获取有效的输出码流 buffer的个数 GctOncBitstrcam Framc 获取一个码流 buffer FreeOneBilStream Frame 还回码流 buffer Video Enc getParameter 获取编码器参数 Video Enc Set Parameter 设冒编码器参数 4.1.1. VideoEnc Create 匚函数原型 ideo Encoder video Create(VENC CodEc TYPe e Codectype 功能创建个视频编码器 参数 c Codec typc:创建的编码器codc类型 返回值成功:视频编码器指针; 失败:返回NULL 匚调用说明」视频编码器支持创建多个编码器,文持多路缑码 4. 1.2. VideoEncDestroy 函数原型 void Video Destroy( Videoencoder* eNcoder) 功能销毁视频编码器 参数 eNcoder:通过Ⅴ ideo Enc Create函数创建的视频编码器指针 返回值无 匚调用说明无 5
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 输入关键字,在本站1000多万海量源码库中尽情搜索: