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及 ...
随机推荐
- 实测 | 转型微服务,这4大工具谁是API网关性能最优?
转自:http://www.servicemesh.cn/?/article/45 作者:Turgay Çelik 翻译:钟毅(Drew Zhong) 原文:Comparing API Gateway ...
- python 创建目录
Python对文件的操作还算是方便的,只需要包含os模块进来,使用相关函数即可实现目录的创建. 主要涉及到三个函数 1.os.path.exists(path) 判断一个目录是否存在 2.os.mak ...
- 命令行执行python文件时提示ImportError: No module named 'xxx'
背景: 最近在写接口自动化测试框架的时候发现,框架使用pycharm ide的时候可以正常跑测试用例,但是在dos窗口输入命令执行测试的时候,import项目内部的包时报错“ModuleNotFoun ...
- ubuntu下安装软件的三种方法
在ubuntu当中,安装应用程序常用的三种方法,分别是apt-get,dpkg安装deb和make install安装源码包三种. apt-get方法 使用apt-get install来安装应用程序 ...
- 用join取代not in
写了好几个页面,速度都上不去,瓶颈在于SQL查询.太多的表,太多的not in,总是从一大推表和数据中筛选出一点数据.看了很多关于SQL优化的文章,都强烈要求不要太多使用not in查询,最好用表连接 ...
- 用vim去掉utf-8 BOM
'去掉utf-8 BOM :set nobomb '保留utf-8 BOM :set bomb
- 【刷题】BZOJ 3514 Codechef MARCH14 GERALD07加强版
Description N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数. Input 第一行四个整数N.M.K.type,代表点数.边数.询问数以及询问是否加密. 接下来 ...
- BZOJ 1499 [NOI2005] 瑰丽华尔兹 | 单调队列优化DP
BZOJ 1499 瑰丽华尔兹 | 单调队列优化DP 题意 有一块\(n \times m\)的矩形地面,上面有一些障碍(用'#'表示),其余的是空地(用'.'表示).每时每刻,地面都会向某个方向倾斜 ...
- Letter Combinations of a Phone Number - LeetCode
目录 题目链接 注意点 解法 小结 题目链接 Letter Combinations of a Phone Number - LeetCode 注意点 可以不用按字典序排序 解法 解法一:输入的数字逐 ...
- Linux进程间通信(消息队列/信号量+共享内存)
写在前面 不得不说,Deadline果真是第一生产力.不过做出来的东西真的是不堪入目,于是又花了一早上重写代码. 实验内容 进程通信的邮箱方式由操作系统提供形如 send()和 receive()的系 ...