为了看懂更多的代码,特意在这里集中各个关键词语的英文。
图像处理英文
亮度——Luma、色度——Chrm(Chroma)、步幅(宽度)——stride、指针类型——pst、配置——CONF
帧内宏块(Intra)帧间宏块(Inter)

海思数据类型定义
公共数据类型 67:表达主要是类型+数据长度
结构体_S
枚举_E
系统控制
  1. 静态属性26 与动态属性 34
  2. 先VB_inti再SYS_init 29,退出时需要消除所有阻塞的MPI进程 30
  3. 绑定和bind结构数据成员 31
  4. 时间戳(3个函数)
    1. 建议1秒后进行一次微调 35
    2. 海思自己已经为音视频同步做了一个时钟,专门设定时间戳的值
  5. mmap映射 38
    1. 等同于linux - mmap的作用,内存映射,共享
  6. mmz内存分配 41
    1. 啥作用呢?
  7. 配置内存参数 45
    1. 通道使用哪个DDR,DDR的名字必须存在(哪里设置DDR的名字?)
  8. 设置MPP视频缓冲区 48 配置规则
  9. VB_exit 不会清除VB_setconf的配置 51
  10. 创建一个视频缓存池
    1. 返回缓存池ID 52
    2. 创建池-从中获取一个块-获取这个块的物理地址--检错-释放块-销毁池 52
  11. 从缓存池中获取块(帧缓存块),2中情况
    1. 从指定缓存池取缓存块时,参数pcMmzName无效 55
    2. 任意一个公共缓存池中获取一块指定大小的缓存块 55, 第1个参数 Pool 设置为无效 ID 号(VB_INVALID_POOLID)
    3. MPP视频缓存池(1情况)与公共缓存池(2情况)
  12. 用户态获取一个缓存块的物理地址 / 用户态获取一个帧缓存块所在缓存池的 ID
  13. 视频缓存池映射用户态虚拟地址 59 / 获取一个视频缓存池中的缓存块的用户态虚拟地址 60
  14. 模块公共视频缓存池 61
  15. 根据虚拟地址获取对应的内存信息,包括物理地址及 cached 属性67
系统控制概念清理
缓存池概念:22说明+69数据定义
缓存池(==视频缓存池 )47、公共缓存池(==公共视频缓存池)55、模块缓存池60(用Ven图最好了,表达包含于被包含关系)
MMZ内存40:强调用户态内存
视频输入
  1. 离线和在线模式 24 96 (功能上有差别)
  2. 参数 VI_DEV_ATTR_S 主要用来配置指定 VI 设备的视频接口模式,用于与外围 camera、sensor 或 codec 对接。101 也就是需要根据接口来设定参数。VI设备与VI通道的绑定关系 108
  3. VI_CHN_ATTR_S通道属性,连结VI设备与VI通道,设置说明 109
  4. 如果设置了后端模块与 VI 的绑定,在成功调用该接口后,后端模块就会得到视频数据 112 使能VI通道
  5. VI通道响应硬件中断 可节约系统资源 114
  6. 获取该 VI 通道数据 119,获取的是原始图像YUV格式(可动态设置深度 116)
  7. 用户图片(作为无视频信号时的插入图片)122  VI 通道不再需要输出用户图片时,应该调用此接口以恢复输出 AD 的原始视频数据 126
  8. HI_MPI_VI_BindChn 3519不支持
  9. HI_MPI_VI_Query可查询中断计数、通道使能状态、平均帧率、中断丢失数、获取 VB 失败 次数、图像宽高等信息 132
  10. 闪光灯(单闪、频闪两模式) 133 有啥作用?
  11. VI 设备的 CSC 用于图像的亮度、色调、对比度、饱和度的调节 147
  12. 旋转149 注意图像宽高大小的改变
  13. 获取通道亮度和统计,帧的PTS  152 208
  14. VI 设备 dump 属性 157 啥作用?3519不支持
  15. 获取 RAW DATA 159-166 啥作用?
  16. DCI 自动对比度增强 209
  17. WDR 工作属性 169
对物理地址与用户态虚拟地址的一个解析和一个使用方式:122
可以从 MPP 公共缓冲池中获取一块相应大小的视频缓存块,从缓存块信息中得到存放 YUV 数据的物理地址,然后将物理地址映射到用户空间,即可对这块内存进行 YUV 数据的填充操作
视频编码
  1. 本模块支持多路实时编码,且每路编码独立,编码协议和编码 profile 可以不同 636 (该说明是否能够证明H.264和H.265同时多路编码呢?)
  2. 通道支持接收 YUV 格式图像输入, 其中 H.264/H.265 只支持 Semi-planar YUV 4:2:0 ; VENC 将按照编码通道尺寸大小,调用 VGS 对源图像进行缩小,然后对缩小之后的图像进行编码。637
  3. CBR与VBR的控制概念 639
  4. 两种编码协议(H.264/H.265),GOP 结构属性;支持彩转灰; 裁剪编码,即 VENC 从图像中裁剪出一部分进行编码 642
  5. P 帧帧内刷新(P 帧刷新 ISlice/Intra 宏块行)
    1. 作用:码流平滑( 刷新 ISlice 可以提供更好的码流兼容性)、IP帧大小接近、降低I帧过大带来的网络冲击,网络延迟、传输容错概率 644
    2. 注意:
  6. 码流帧配置:多包或单包 645 图6-9(646) 讲述:包的类型、图像参数集的问题
  7. 码流buffer配置:仅给出下限 646 (需要防止因码流 buffer 不足而不断重编或者丢帧的情况)
API部分:
  1. VENC_CHN_ATTR_S 787

    1. 编码通道宽高差异(编码分辨率) 表6-3 650
    2. 编码器属性的约束 表6-4 651 :码流buffer深度、获取码流方式
    3. 码率控制器属性的约束 表6-5 652
      1. VI输出帧率、VPSS帧率 与VENC的码率控制关系
      2. SrcFrmRate与 DstFrmRate的设置关系
    4. CBR的平均比特率配置 表6-6 652 和 波动等级(码率的波动范围的大小划分) 653
码流包结构图 6-11 676
码流buffer折回
帧率控制VPSS- VENC_FRAME_RATE_S和VI- VENC_FRAME_RATE_S
颜色格式VI- VENC_FRAME_RATE_S
物理地址与用户虚拟地址,链接

《基于Hi3510的H_264编解码器的设计与实现_张新安》
工作原理:
  1. 视频输入单元通过 ITU-R BT.601/656 接口接收由 VADC 输出的数字视频信息, 并通过 AHB 总线把接收到的原始图像写入到外存 (SDR SDRAM 或 DDR SDRAM)中;
  2. 视频编解码器 器从外存中读取图像,进行运动估计(帧间预测)、帧 内 预 测 、 DCT 变 换 、 量 化 、 熵 编 码 (CAVLC+Exp-Golomb)、IDCT 变换、反量化、运动 补偿等操作, 最后将符合 H.264 协议的裸码流和编码重 构帧(作为下一帧的参考帧)写入到外存中;
  3. 视频输出 单元从外存中读取图像数据并通过 ITU-R BT.601/656 接口送给 VDAC 进行显示,应用的需求不同,视频输 出单元从外存中读取的图像内容也不同,
  4. 当需要对输入 图像进行预览时,视频输出单元从外存中读取原始图 像,当需要观察视频编码器的编码效果时,视频输出单 元从外存中读取编码重构帧;
  5. ARM 对视频编码器输出 的码流进行协议栈的封装,然后送给网口发送,以实现 视频点播业务。

《基于Hi3516A的H265码流实时传输系统设计_鲁云》

《基于Hi3515数字视频展台的研究_高洁》
输入:
  1. 加载MPP

    1. 最大的视频缓存池个数、最大缓存池中公共缓存块的个数、每个公共缓存块的大小
    2. MPP系统控制属性、控制参数
  2. 设置输入设备与输入通道的属性
    1. 根据VI设备(摄像头),设置VI属性(接口制式、接口时序)
    2. 根据VI通道属性(采集图像的视频分辨率、像素格式),设置VI通道
  3. 启动输入设备及通道
    1. 启动VI通道,设置通道采集帧率
输出:
  1. 定义(设置) 视频输出公共属性的结构体:背景、输出接口类型、接口时序
  2. 定义(设置)视频层属性:设备/显示/图像分辨率(示意图),设备与显示相同,显示与图像最好相同,输入像素格式
  3. 启动VO设备与VO视频层:
  4. 设置输出通道属性并启用输出通道:绑定通道关系

《基于Hi3515的视频传输终端的设计与实现_吴光辉》
SDK包的安装:运行./sdk.unpack
2.4.2:视频编码过程,非常多流程图,参考过程。
下面都在框图中结合3519进一步修改画出相应的
  1. H.264视频编码流程
  2. MPP系统初始化流程
  3. 输入设置与初始化流程
  4. 输出设置与初始化流程
  5. H.264编码配置过程
第三章:视频与数据的TS打包及应用(非常好)
备注:讲述清楚ES PES TS的原理和实现方法,对理解数据对接(操作视频流)有非常大的作用。比方说,以后会有从h.265视频流打包到flv格式,使用rtmp发送,这个流程就需要操作视频流了。
主要讲述:
  1. MPEG-2 TS介绍:语法结构(包的组成,想rtmp用flv格式推流那样子)
  2. H.264编码视频的TS封装
    1. TS封装原理(流程框图)
    2. H.264编码ES的PES打包
      1. H.264编码ES的结构(实际就是NALU):联合Hi3515的码流包结构体
      2. PES包结构:正如flv文件格式中需要的各个数据,FFmpeg-AVPacket使用转flv格式的过程一样
      3. PES打包过程
        1. IPB帧类型对PTS、DTS的影响
        2. PTS、DTS计算公式和插入方式
        3. PES包的TS封装:未看
    3. 多路视频和数据的TS复用
      1. PSI表信息的作用和插入:未看
      2. PCR的计算及插入:
        1. 编码端和解码端的时钟同步,不加以处理,解码端缓冲区的溢出
        2. 解码端的时钟过慢,造成解码端缓冲区的上溢,视频丢帧
        3. 解码端的时钟过快,造成解码端缓冲区的下溢,视频卡顿
      3. 基于Hi3515的多路视频的TS封装
        1. 利用Hi3515进行多通道编码时的多路分时编码而进行的封装复用
第六章:测试(很有作用)
  1. Hi3515的H.264编码ES流测试:NAL单元类型测试,需要寻找一个H.265的测试工具

Hi3519使用·记录相关推荐

  1. max9286 四合一_MAX9286+HI3519 +MAX96705方案分享

    马上注册/登录,获取更多电子研发资料! 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 硅天下备货方案套片:MAX9286+hi3519 +MAX967051. 方案介绍: 1)基于美信MAX ...

  2. mysql建立联合索引,mysql建立唯一键,mysql如何解决重复记录联合索引

    在项目中,常常要用到联合唯一   在一些配置表中,一些列的组合成为一条记录.   比如,在游戏中,游戏的分区和用户id会形成一条记录.(比如,一个qq用户可以在艾欧尼亚.德玛西亚创建两个账号) 添加联 ...

  3. 实现 连续15签到记录_MySQL和Redis实现用户签到,你喜欢怎么实现?

    现在的网站和app开发中,签到是一个很常见的功能 如微博签到送积分,签到排行榜 微博签到 如移动app ,签到送流量等活动, 移动app签到 用户签到是提高用户粘性的有效手段,用的好能事半功倍! 下面 ...

  4. 记录一次http请求失败的问题分析

    问题背景 当前我有一个基于Flask编写的Restful服务,由于业务的需求,我需要将该服务打包成docker 镜像进行离线部署,原始服务的端口是在6661端口进行开启,为了区分,在docker中启动 ...

  5. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

    Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...

  6. LeetCode简单题之学生出勤记录 I

    题目 给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent,缺勤 'L':Late,迟到 'P':Pre ...

  7. 关于TVM的点滴记录

    关于TVM的点滴记录

  8. MySql数据库Update批量更新与批量更新多条记录的不同值实现方法

    批量更新 mysql更新语句很简单,更新一条数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other ...

  9. 记录篇,自己在项目中使用过的。

    图片选择器,6.0已经适配过,类似qq空间上传 点击打开链接_胡小牧记录 下面是效果图: PictureSelector PhotoPicker 类似qq空间发布心情. 点击打开链接 BubbleSe ...

  10. HTML5与CSS3权威指南之CSS3学习记录

    title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) ...

最新文章

  1. linux系统配置之开机启动过程(centos)
  2. 【转】推荐给初级Java程序员的3本进阶书
  3. android 布局管理器,【Android开发】布局管理器-表格布局
  4. 宝山区佳力图服务器空调维修价格,成都佳力图空调维修师傅
  5. LFS、BLFS、ALFS、HLFS的区别详解
  6. [html] input上传文件可以同时选择多张吗?怎么设置?
  7. 设计模式:观察者(Observer)模式
  8. 传说之下音乐计算机版,传说之下同人音乐
  9. 团伙 并查集_BZOJ 1370 Baltic2003 Gang团伙 并查集
  10. Uncaught TypeError: l.push is not a function
  11. docker常用操作(六)docker安装内网穿透nps
  12. Java 输出三角形
  13. vfp access mysql具体_详细介绍Visual FoxPro数据表的索引
  14. 物联网智能产品WiFi/蓝牙定位原理
  15. 最近很火的养猫小程序—365赚钱宝小程序源码
  16. C语言程序设计 - 积分兑换
  17. Android生态系统进化论
  18. Android 仿QQ退出(点击返回键不退出app,点击icon直接进入上次退出的页面)
  19. 开启 Linux 版的 Window 子系统(WSL)
  20. 全球投资移民青睐低气候风险地,最具气候韧性国家排名前五都在北半球 | 美通社头条...

热门文章

  1. 点进来看看,这篇文章告诉你什么软件可以识别PDF中的文字!
  2. Intellij IDEA 2018 安装和破解
  3. ntfs格式硬盘如何读写mac苹果电脑
  4. Detours学习之十二:Detours API用于修改二进制文件的api
  5. 求过度矩阵+(二次型标准化)正交变换的过度矩阵
  6. 推荐十五款APP原型设计工具
  7. Windows运行及cmd常用命令
  8. 【开发】MFC到Delphi的皮肤移植
  9. java 事务回滚报rollback-only异常
  10. cvtColor使用