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方案的更多相关文章

  1. 基于SOC方案的嵌入式开发-远程定时设备

    Soc方案实现简单的定时开关灯 http://club.gizwits.com/forum.php?mod=viewthread&tid=7787&highlight=%E5%AE%9 ...

  2. esp8266 SOC方案经过半年沉淀之后再度重启二

    2018-08-2014:16:10 以下是输出控制 PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0);      GPIO_OUTPUT_SET ...

  3. esp8266 SOC方案经过半年沉淀之后再度重启

    我发誓这是最后一次玩esp8266,该脱坑了...... 以前看不懂的教程 http://club.gizwits.com/thread-6447-1-1.html 2018教程 http://clu ...

  4. 无线冲方案 MCU vs SoC

    参考: MCU还是SoC:2018无线充电技术走向何方? 方案 分立/集成 特点 框图 MCU方案 分立方案 MCU芯片负责Qi协议的运算和外围电路控制,ST MCU居多:单线圈,双线圈,三线圈都有: ...

  5. 【DSP开发】【计算机视觉】TI 视觉软件开发套件ADAS

    关键字:TI  视觉软件开发套件  ADAS 日前,德州仪器 (TI) 宣布推出其视觉软件开发套件(SDK),从而为开发人员提供了一款灵活的框架.一组丰富齐全的硬件设备驱动程序和一套适用的开发工具,可 ...

  6. Android平台对H264视频硬解码

    本文讲述如何使用Android标准的API (MediaCodec)实现H264的硬件解码. 原本我们是用JNI调用平台提供的硬件解码接口得到YUV帧,再放入opengl脚本里处理渲染的.可是换了新平 ...

  7. [转帖]IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”)

    IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”) 2016-06-02 14:23:49 Times_poem 阅读数 9734更多 分类专栏: IPC网 ...

  8. camera isp

    1. 目标手机摄像头模组用ISP功能模块的市场走向及研发方向.为能够正确认识手机摄像模组行业提供技术及市场依据.2. ISP在模组上的应用原理2.1 功能区域无论数码相机.摄像机或者摄像手机,其影像数 ...

  9. Linux内核之mmc子系统-sdio

    现在的Linux内核中,mmc不仅是一个驱动,而是一个子系统.这里通过分析Linux3.2.0内核,结合TI的arm335x平台及omap_hsmmcd host分析下mmc子系统,重点关注sdio及 ...

随机推荐

  1. From 易水寒 格局越大 人生越宽

    有这么一则故事:三个泥瓦匠在砌墙,一个人走过来,问他们在干什么. 第一个泥瓦匠没好气地说,你没看见吗?我在辛苦地砌墙呢.第二个回答,我们正在建一座高楼.第三个则洋溢着喜悦说,我们正在创造美好生活. 1 ...

  2. Dubbo学习(一) Dubbo原理浅析

    一.初入Dubbo Dubbo学习文档: http://dubbo.incubator.apache.org/books/dubbo-user-book/ http://dubbo.incubator ...

  3. BZOJ5105 CodePlus2017晨跑

    这个题???我WA了两发??? #include<iostream> #include<cstdio> #include<cmath> #include<cs ...

  4. Hashtable 和 HashMap 以及 ConcurrentHashMap

    备忘: ConcurrentHashMap与Hashtable的区别: Hashtable中采用的锁机制是一次锁住整个hash表,从而同一时刻只能由一个线程对其进行操作:而ConcurrentHash ...

  5. 整理:python的二维数组操作

    Python中初始化一个5 x 3每项为0的数组,最好方法是: multilist = [[0 for col in range(5)] for row in range(3)] 如果初始化一个二维数 ...

  6. 【刷题】BZOJ 4657 tower

    Description Nick最近在玩一款很好玩的游戏,游戏规则是这样的: 有一个n*m的地图,地图上的每一个位置要么是空地,要么是炮塔,要么是一些BETA狗,Nick需要操纵炮塔攻击BETA狗们. ...

  7. 【HDU4336】Card Collector(Min-Max容斥)

    [HDU4336]Card Collector(Min-Max容斥) 题面 Vjudge 题解 原来似乎写过一种状压的做法,然后空间复杂度很不优秀. 今天来补一种神奇的方法. 给定集合\(S\),设\ ...

  8. BZOJ 2194 快速傅立叶变换之二 | FFT

    BZOJ 2194 快速傅立叶变换之二 题意 给出两个长为\(n\)的数组\(a\)和\(b\),\(c_k = \sum_{i = k}^{n - 1} a[i] * b[i - k]\). 题解 ...

  9. Java类编译、加载、和执行机制

    Java类编译.加载.和执行机制 标签: java 类加载 类编译 类执行 机制 0.前言 个人认为,对于JVM的理解,主要是两大方面内容: Java类的编译.加载和执行. JVM的内存管理和垃圾回收 ...

  10. bzoj 1017 : [JSOI2008]魔兽地图DotR

    比较难想的的一道树形dp. 看到这道题正常的思路应该是$f[i][j][k]$表示i这棵子树里买了j个i物品花费为k的最大收益. 但如果直接这么定义的话转移复杂度会很高,需要枚举j,枚举孩子,枚举k, ...