TI的H264 SOC方案
TI的H264 SOC方案是目前常用的视讯解决方案,TI针对视频会议,视频监控,视频存储等场景细化需求并优化了H264技术。
1. TI H.264背景
如今视频压缩技术在视频领域有非常多的应用需求。
H.264编解码器几乎能适用于所有的视频压缩场景。
H.264编解码器标准推出到如今已有十多年了。很多厂商都提供H.264解决方案。TI面对的竞争很激烈。
面对竞争,TI提供二种差异化特性:1)可编程性 2)开放性。
本次TI H.264介绍是针对TI SOC,如DM36X, Netra(DM616X) 和 Centaurus(DM814X)。
2. H.264各种视频应用的需求。
TI面对的视频应该场景如图1所示:
1. 视频会议。
2. 视频安防和监控。
3. 多媒体存储。
4. 数码录像。
5. 数字电视卫星视频。
6. 移动数字媒体。
应用 |
关注点 |
可视电话,视频会议 |
低时延,低码率,高帧率,编解器错误修复。 |
视频安防和监控 |
中等或低码率,存储性优化,随机访问,支持大尺寸图像。 |
多媒体存储 |
高图像质量,随机访问,低成本。 |
数码录像 |
低功耗,高图像质量,中等码率。 |
数字电视卫星视频 |
高图像质量。 |
移动数字媒体 |
低复杂度编解码,编解器错误修复。 |
互联网流媒体 |
低码率,多格式解码。 |
编解码特性 |
视频监控 |
视频会议 |
数码摄像 |
随机访问,I帧间隔短 |
有要求 |
无要求 |
有要求 |
可接受时延 |
1000毫秒(DVR)100至500毫秒(IPC) |
20至100毫秒 |
可无限制 |
误码容忍度 |
低 |
高 |
低 |
固定码率 |
无要求(DVR)/有要求(IPC) |
有要求 |
无要求 |
码率 |
低 |
低 |
中等 |
内容感知 |
有要求 |
无要求 |
无要求 |
视频分析 |
有要求 |
无要求 |
无要求 |
低功耗 |
无要求(DVR) |
无要求/有要求(移动或便携视频会议) |
无要求 |
综合表1和表2对视频编解码的需求总结为:需要最好的视频质量和最优编码表现。(TI表示压力很大)
3. 非链式P帧
H.264标准允许灵活的参考帧。多P帧可参考最后一个I帧,而不是参考前一帧,形成一种非链式P帧。虽然这种方法会导致编码压缩率减小,但能得到较高的抗丢包能力和更灵活的随机播放能力。
图2
图3
如图2中,第1帧是I帧,第2,3,4,5帧是P帧。如果第2帧丢失,第3,4,5帧即使收到也不能还原解码正常图像。但在图3中,第2帧丢失不影响后续3,4,5帧正常解码,只要所依赖的第1帧到达即可。
存储播放时也优势。如要随机播放第5帧图像时,只需读取第1,5二帧解码即可。而在链式参考模型里要解码1,2,3,4帧后再解码第5帧才能得到图像。非链式可以减少三帧的读取和解码开销。
4. 动态改变编码参数
H.264编码器支持动态改变码率,帧率和图像分辨率。比如在网络带宽变化时,编码器可改变参数来适应。
5. 支持大尺寸
支持大尺寸编码在视频监控中是很好的卖点,这样在图像数字放大后能得到更好的图像效果。现在编码支持4K,2K的图像大小。
6. 图像分析
H.264视频编码算法对图像有运算和查找运动矢量的功能。利用每帧图像的运动矢量可以提供图像分析的功能。
例如:
视频安防,在发现监控画面有物体运动可发出提示。
监控录像时发现在低运动场景时可用低码率编码以节省存储资源。
监控录像时根据物体运动矢量让摄像头自动跟踪物体。
7. 低时延
传统的视频通信时延由7个部分组成,
1. 采集
2. 编码
3. 发送
4. 网络传输
5. 接收
6. 解码
7. 播放显示
除了发送,网络传输,接收的时间,其他部分独自耗时约33毫秒。
点对点最小时延 = 4*33 + X= (132 + X) ms,X = 发送+网络传输+接收
编码低时延在视频会议(网真),视频交互游戏等应用有较高要求。
TI能提供新的API接口应用于小于帧级数据处理。在slice级就可进行数据交换,而不是等到一帧编码结束,这样编码时延可以从33 ms降到2ms以下。
8. 固定slice大小的编码
固定slice大小的好处是有利于编码后的网络传输。可指定slice大小为网络MTU大小。编码器能做到就不需要网络层做。但固定slice大小的代价是编码压缩率会降低。
9. 视频渐近刷新
视频渐近刷新GDR(Gradual decoder refresh)是相对一帧完整刷新而来。传统IDR刷新的缺点是IDR帧大小相比图像质量相近的P帧更大,这样会对网络有冲击,导致网络抖动和拥塞。而GDR会带来更优的网络适应性。
GDR是通过P帧内包括I块组的方法来实现渐近刷新。
10. SVC技术
H.264 SVC(H.264可分级编码)作为H.264标准的一个扩展最初由JVT在2004年开始制定,并于2007年7月获得ITU批准。H.264 SVC以H.264 AVC视频编解码器标准为基础,利用了AVC编解码器的各种高效算法工具,在编码产生的编码视频时间上(帧率)、空间上(分辨率)可扩展,并且是在视频质量方面可扩展的,可产生不同帧速率、分辨率或质量等级的解码视频。
H.264 SVC通过在在编码码流嵌入具有相关性的多个不同分辨率的子流实现空间上的可分级。上层所有的视频帧构成了高分辨率视频,下层所有的视频帧构成了低分辨率视频为此,具备H.264 SVC编码的视频会议系统,在保证高效的视频压缩性能的基础上,视频广播端可以通过一次编码产生具有不同帧率、分辨率的视频压缩码流,以适应不同网络带 宽、不同的显示屏幕和终端解码能力的应用需求,从而有效地避免了视频会议系统中MCU上复杂而昂贵的转码。
传统H.264 AVC,能容忍的丢包率小于2%,而H.264 SVC能能容忍20%左右的丢包。
11. 感兴趣区域(ROI)编码
感兴趣区域ROI (Region Of Interest),在图像压缩编码时,对某些特定区域(如人脸等)的简称,就是在要待处理的图像中提取出的要处理的区域。
针对ROI,视频会议场景编码器可以分配更多的码流给人脸区域,让面部表情更清晰。或者在监控场景对需要打马赛克区域分配更少的码流。
12. TI SOC 数据
注意以下表格是TI好几年前的数据,TI当时没实现的现在有的已实现。
从上图可知DM81XX 是支持 H.264 SVC的。
TI的H264 SOC方案的更多相关文章
- 基于SOC方案的嵌入式开发-远程定时设备
Soc方案实现简单的定时开关灯 http://club.gizwits.com/forum.php?mod=viewthread&tid=7787&highlight=%E5%AE%9 ...
- esp8266 SOC方案经过半年沉淀之后再度重启二
2018-08-2014:16:10 以下是输出控制 PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0); GPIO_OUTPUT_SET ...
- esp8266 SOC方案经过半年沉淀之后再度重启
我发誓这是最后一次玩esp8266,该脱坑了...... 以前看不懂的教程 http://club.gizwits.com/thread-6447-1-1.html 2018教程 http://clu ...
- 无线冲方案 MCU vs SoC
参考: MCU还是SoC:2018无线充电技术走向何方? 方案 分立/集成 特点 框图 MCU方案 分立方案 MCU芯片负责Qi协议的运算和外围电路控制,ST MCU居多:单线圈,双线圈,三线圈都有: ...
- 【DSP开发】【计算机视觉】TI 视觉软件开发套件ADAS
关键字:TI 视觉软件开发套件 ADAS 日前,德州仪器 (TI) 宣布推出其视觉软件开发套件(SDK),从而为开发人员提供了一款灵活的框架.一组丰富齐全的硬件设备驱动程序和一套适用的开发工具,可 ...
- Android平台对H264视频硬解码
本文讲述如何使用Android标准的API (MediaCodec)实现H264的硬件解码. 原本我们是用JNI调用平台提供的硬件解码接口得到YUV帧,再放入opengl脚本里处理渲染的.可是换了新平 ...
- [转帖]IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”)
IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”) 2016-06-02 14:23:49 Times_poem 阅读数 9734更多 分类专栏: IPC网 ...
- camera isp
1. 目标手机摄像头模组用ISP功能模块的市场走向及研发方向.为能够正确认识手机摄像模组行业提供技术及市场依据.2. ISP在模组上的应用原理2.1 功能区域无论数码相机.摄像机或者摄像手机,其影像数 ...
- Linux内核之mmc子系统-sdio
现在的Linux内核中,mmc不仅是一个驱动,而是一个子系统.这里通过分析Linux3.2.0内核,结合TI的arm335x平台及omap_hsmmcd host分析下mmc子系统,重点关注sdio及 ...
随机推荐
- Linux内核0.11 bootsect文件说明
一.总体功能介绍 这是关于Linux-kernel-0.11中boot文件夹下bootsect.s源文件的说明,其中涉及到了一些基础知识可以参考这两篇文章. 操作系统启动过程 软盘相关知识和通过BIO ...
- Oracle 数据库备份启用压缩以及remap
1. Oracle数据库进行备份恢复 客户测试环境, 有时候需要从现场copy到公司, 压缩虽然能够减少部分空间大小,但是copy到虚拟机里面也时浪费很大量的磁盘,所以能够在备份恢复的过程中执行压缩最 ...
- 微信公众平台实现获取用户OpenID的方法
这篇文章主要介绍了微信公众平台实现获取用户OpenID的方法,需要开发人员经过微信授权后获取高级接口才能使用此功能,用户OpenID对于微信公众平台建设有着非常广泛的用途,需要的朋友可以参考下 本文实 ...
- ArrayList底层实现
ArrayList 底层是有数组实现,实际上存放的是对象的引用,而不是对象本身.当使用不带参的构造方法生成ArrayList对象时,实际会在底层生成一个长度为10的数组 当添加元素超过10的时候,会进 ...
- sqlserver中where条件加判断
我想实现如下功能: where case when (@a = null) then 1 = 1 else @a=a and b=@b 但是这样报错,经过翻阅资料找到如下解决方案: where (1 ...
- 传说中的WCF:消息拦截与篡改
我们知道,在WCF中,客户端对服务操作方法的每一次调用,都可以被看作是一条消息,而且,可能我们还会有一个疑问:如何知道客户端与服务器通讯过程中,期间发送和接收的SOAP是什么样子.当然,也有人是通过借 ...
- BZOJ1853_幸运数字
如果一个数字仅由6或者8构成,那么这个数字是幸运数字:如果一个数字是幸运数字的倍数,那么就是近似的幸运数. 给定区间,求有多少个近似幸运数字位于这个区间之内. 典型的容斥原理. 首先,弄出所有的幸运数 ...
- ognl用法 取变量时候 需要在变量前面加上# 取字符串需要用单引号包裹字符串
- rabbitmq 集群安装
1.安装模式分为三种:单主机模式.普通集群模式.镜像集群模式. 单主机模式:rabbitmq运行在一台主机上,生产环境不建议使用该模式,性能有限.如果该台主机down机,整个服务将不可用. 普通集群模 ...
- 【python】vscode python环境配置
安装python插件:ext install python 配置flake8:pip install flake8 配置yapf:pip install yapf(在VScode中按Alt+Shift ...