热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DM368开发—视频监控系统相关技术研究(转毕设)[通俗易懂]

DM368开发--视频监控系统相关技术研究(转毕设)[通俗易懂]基于DM368的高清视频监控系

基于 DM368 的高清视频监控系统设计与实现 — 文波

一、达芬奇技术概述

达芬奇技术(DavinciTM)是 TI 公司为满足现代数字多媒体应用的各种需求而提出的一种基于 DSP 的系统解决方案,为多媒体设备的设计提供了高度集成的处理器、软件与开发工具,尤其在数字视频处理领域有着得天独厚的技术优势。达芬奇技术主要由以下四方面组成,如下图 2.1 所示。

DM368开发 -- 视频监控系统相关技术研究(转毕设)[通俗易懂]

1. 硬件芯片

达芬奇技术充分利用 TI 公司在数字信号处理与集成电路专业技术领域多年来的技术积累,创造性的将负责系统运行的 ARM 处理器和负责音视频编解码 DSP 处理器完美的结合在一起,同时结合视频协处理器实现了片上系统级芯片。而芯片内部众多丰富的外围设备接口,为音视频的高效处理提供了保证。
目前,达芬奇技术的硬件处理器平台主要有两种架构:

(1)ARM+视频协处理器

采用这种架构的处理器芯片有 DM355、 DM365、 DM368, DM355 内部采用了 ARM9和 MJCP 协处理器,只能进行 MPEG-4、MJPEG 标准的编解码。而后两种是 DM355 的升级版,增加了 HDVICP 协处理器,额外增加了 H.264 标准的编解码功能。DM368 的ARM9 主频相对于 DM365 又有一个提升, 达到 432MHz,最高支持1080p@30fps 的 H.264视频数据输出。

(2)ARM+DSP 视频处理器+视频协处理器

这种构架的芯片较上面的构架多了 DSP 视频处理器,对用户来说在视频编解码标准方面有了更多的选择性和灵活性,视频处理能力显著提升,采用这种构架的处理器芯片主要有 DM81XX 和 DM64XX 系列。DM81XX 系列是 TI 公司目前推出的最先进的处理器, 最高可实现1080p@60fps的 H.264视频数据输出, 其内部采用 ARM Cortex-A8+C674xVLIW DSP+多个视频图像协处理器组合,其 ARM 处理器和 DSP 处理器的最高主频分别可以达到 1200MHz 和 1000MHz,同时其内部配备了 1 个 3D 图像加速器和 3 个HDVICP 协处理器,完全可以满足现代多媒体数字视频应用的需求。

2.软件

达芬奇技术同时为用户提供了较为全面的软件支持,从嵌入式操作系统,底层硬件驱动程序以及应用程序 API 接口。产品开发过程中无需了解音视频编解码器和 DSP 端算法的具体细节,开发者可直接调用 TI 提供的音视频编码器的应用接口函数,即可完成复杂的音视频编码任务,大大缩短了产品的开发周期,提高开发效率。

3.开发工具套件

达芬奇技术的开发工具套件有对处理器进行评估测试的数字视频评估模块DVEVM(Digital Video Evaluation Modulc) 和 数 字 视 频 开 发 平 台 DVDP(Digital VideoDevelopment Plateform)。DVEVM 非常全面,具备 Monta Vista Linux Pro4.0 演示版、驱动程序、编解码引擎、评估编解码器以及评估电路板,具体产品有 DM6446、DM6447、DM365 等。DVDP 为开发人员提供了产品在整个设计周期中可资利用的综合平台,包括生产就绪型 DSP/BIOS 内核、驱动程序、 编解码引擎、评估编解码器、 Code Composer Studio IDE和评估电路板,具体产品有 DM6437、DM648 等。

4.开发技术支持

与 TI 合作的第三方成员为达芬奇技术提供大部分的系统集成服务和软硬件平台, 如国外的 SDI、NUVATION 和国内的 SEED、Wintech 等。产品开发者不仅能在官网找到达芬奇技术开发相关的技术文档和视频资料,同时能在技术论坛上和全球工程师学习和分享开发经验,这些都加速了达芬奇技术的传播以及相关产品的研制开发。

二、嵌入式系统

嵌入式系统是为满足用户特殊需求而专门设计的专用计算机系统。早期的单片机就是现代嵌入式系统的雏形,它仅仅能够执行一些单线程的程序,功能比较简单。但是随着信息化和智能化的发展,嵌入式系统不论在硬件处理器还是在软件操作系统方面都已取得较快发展,获得了广阔的应用空间,现已广泛渗透于工业控制、家庭智能管理、通信消费、物联网等高新技术领域[7]。与通用计算机相比,嵌入式系统最大的特点是可对软硬件进行合理裁剪,满足特定功能需求,具有很强的专用性。

嵌入式系统有以下 5 大显著特征:
(1)系统内核小。嵌入式系统中受处理器上硬件资源资源影响,内核较传统的操作系统要小的多。
(2)专用性强。嵌入式系统主要应用于特定环境下的特殊任务,软件会针对硬件资源进行适度的裁剪,以减少硬件资源的消耗。
(3)实时数据处理。 嵌入式系统中软件代码必须具备高质量和高可靠性并进行固态存储,以提高系统运行速度,满足数据实时处理要求。
(4)嵌入式系统开发需要开发工具和环境的支持。一般 PC 机作为主机进行程序开发,目标板作为最后的执行机。交叉编译工具会将 PC 机上编译成能在目标板上执行的目标代码,使用下载工具将目标代码下载到目标板。
(5)较长的生命周期。 嵌入式系统会根据具体的应用需求对产品进行同步升级,嵌入式系统产品一旦进入市场就具有较长的生命周期。嵌入式系统主要由硬件层、中间层、软件层和用户应用软件四大部分组成[8]。硬件层是由嵌入式微处理器、外部存储器(ROM、SDRAM、FLASH) 、通用设备接口和 IO接口等组成。中间层使底层硬件与上层软件分离开,主要是完成对底层硬件初始化、数据的输入输出操作以及对外设的配置。软件层是由操作系统、文件系统、用户接口以及通用组建模块组成, 主要实现对底层硬件的管理和多进程任务的调度, 使系统高效运行。用户应用软件在完成接口的调用和数据处理的同时,还实现对各流程的协调控制。

三、嵌入式操作系统

嵌入式操作系统为嵌入式系统的发展提供了有力支撑,主要包括系统内核、底层硬件驱动、设备驱动接口、图形界面等,负责系统的软硬件资源分配、内存管理、多任务管理、任务间通信和同步、控制和协调并发活动等[9]。目前应用较为广泛的嵌入式操作系统有嵌入式 Linux、WinCE、Vxworks 以及在智能手机上使用的 Android 和 IOS。

1.嵌入式 Linux 操作系统

嵌入式 Linux 操作系统自 1991 年发布以来,经过 20 多年的迅速发展,其功能已日趋完善。作为目前最受欢迎的开源操作系统,Linux 操作系统具有以下优点:无需付费,直接在网络上免费下载源代码;核心代码对外公开,用户可以根据自己需求对代码进行修改和定制,开发出满足自己需求的产品;完全兼容 POSIX1.0 标准,DOS 和 Windows
程序可在相应的模拟器下运行;支持多用户、多线程,保证多个程序可以同时并独立运行;支持多种处理器,由于 Linux 内核代码采用移植性比较好的 C 语言编写,所以其可以很轻松的移植到不同的微处理器上[10]。目前,人们常用的嵌入式 Linux 操作系统有MontaVista Linux、ET-Linux、Hard Hat Linux、μCLinux 等。本系统选用的是 Monta VistaPro v5.0 ,内核版本为 Linux2.6.18,能够在 DVEVM 上成功运行。

2 .WinCE 操作系统

Windows CE 是微软公司于 1996 年发布的基于 Windows 95 的操作系统,其本质就是精简版的 Windows 95。由于其图形用户界面相当出色,所以在便携式掌上电脑类电子产品中大放异彩。WinCE 具有开发工具强大、调试工具健全,这是其他嵌入式操作系统无法比拟的[11]。但是 WinCE 需要支付版权费且不像 Linux 那样支持数量众多的处理器和外围设备,同时 WinCE 对资源的要求相对较高,源代码不像 Linux 那样可进行裁剪和自由修改,这使得 WinCE 在使用上具有一定局限性。Linux 支持几乎所有常见的网络协议,在网络设备中备受青睐,但是 WinCE 在这方面还比较欠缺。

3 .Vxworks 操作系统

Vxworks 是最早提出的一款嵌入式实时操作系统,于上个世纪八十年代由美国风和公司提出[12]。Vxwork 最大的特点是系统结构较小,仅提供了多任务环境、进程间通信和同步功能,使得 Vxwork 能在较高的层次上提供较高的性能。Vxwork 出色的可靠性和优秀的实时性使得其在卫星通信、军事和航空航天领域中取得较好的发展和应用。美国的 F-16、FA-18 战斗机,B-2 隐形轰炸机以及火星探测器均使用了 Vxwork 系统。2008年登陆的凤凰号和 2012 年登陆的好奇号也均使用了 Vxwork 系统。但是 Vxwork 系统商业价格较为昂贵,一般只在军事领域使用,在普通的多媒体消费方面很少使用。

4 .Android 和 IOS 操作系统

Android 系统是基于 Linux 内核的开放源代码操作系统,于 2007 年由 Google 联合其他的软硬件制造商和电信运营商共同发布。为了适应移动终端特性,Android 在 Linux基础上添加了一些驱动和文件系统,并对部分 bug 进行修改和完善。IOS 系统是苹果公司自行开发的支持移动终端设备的操作系统,仅支持自己公司内部的产品。Android 和IOS 主要应用于移动终端设备,共同的缺点是它们对资源要求较高。从以上各个嵌入式操作系统分析来看,Linux 操作系统既不用支付昂贵的授权费,对系统的资源要求也不高。综合考虑,本系统使用 Linux 操作系统,而且 DM368 能够很好地支持 Linux 操作系统。TI 官方提供的开发环境中集成了大量的开发套件,驱动开发中只需修改部分文件,同时 TI 还封装了 Linux 的 API 接口,应用程序开发比较方便。

四、视频压缩编解码技术

目前,高清视频已越来越多的渗透到人们日常生活中。从可视电话到视频会议,从视频监控到网络视频浏览,高清化的数字视频为人们的生产和生活提供了极大便利。高清化的数字视频给人们视觉带来极致体验的同时,它的数据量是也呈几何倍数增长,不仅给视频的存储空间带来挑战,同时对于视频的网络传输能力提出更高要求。面对海量的视频数据,单纯的依靠扩大存储容量和增加通信信道带宽是不现实的,所以对高清视频的压缩编码已成为解决这个问题的唯一途径。

1. 视频压缩编码的基本原理

视频数据之间存在极强的相关性,这就导致数据的冗余度较高。视频数据冗余是指在使用不同方法表示同样的信息时,会使用不同的数据量,那么使用数据量较多的那种方法中的有些数据就代表了无用信息,这些无用信息即是数据冗余[13]。视频压缩编码的目地就是在尽量不影响人眼视觉效果的前提下,尽可能多的减少视频中数据的冗余。视频压缩编码的本质就是根据图像内部的相关性和统计特性来消除和减少信号间的冗余度以实现对视频数据的压缩。在视频信息中,一般存在以下几种形式的冗余:

(1)时间冗余

当一组静态的图像以一定的速度(大于 24 帧/秒)进行播放时,就形成了视频。但是人眼在观察快速运动的物体时, 即使物体已消失其影像依然能够在人眼中保留 0.1~0.4秒左右,人眼的这种视觉暂留现象,使得相邻两帧图像之间具有很强的相关性,这就形成了时间冗余。

(2) 空间冗余

对景物表面的颜色进行离散像素采样时,通常忽视了各采样点颜色之间存在的空间连贯性,这是空间冗余产生的主要方面[14]。同时规则物体和背景表面的物理特性均具有一定的相关性,这就表明某些区域中所有点的信息都是相同的,这也是空间冗余产生的一个方面。

(3)编码冗余

由信息论可知,不同大小的比特数可以表示图像数据中一个像素的信息熵。在对图像进行数字化过程中,用同样大小的比特数来表示每个像素,这会造成比特数的浪费,数字化的数据中就必然会有冗余产生。

(4)结构冗余

结构冗余表现为数字化图像中物体表面纹理结构非常相似,或者图像的各部分之间有着很强的某种关系。当一幅图中有很强的结构特性,纹理和影像色调与物体表面有一定规则时,结构冗余就很大。

(5)知识冗余

由图像记录方式和人对图像的知识差异所产生的冗余称为知识冗余。 根据先验知识,
构造编码对象的基本模型,并创建对应各种特征的图像库,然后通过提取对象库里面的
模型参数,仅对模型参数进行编码,获取较高压缩比。

(6)视觉冗余

受人类视觉系统的生理与心理影响,人眼并不能感知图像的所有变化。但是在记录原始图像数据时会对人类视觉的敏感部分和不敏感部分信息都进行存储,却忽略了人类视觉系统对图像的敏感性其实是非均匀和非线性的[15],对于人眼来说这样存储的图像信息中有大量的重复数据,造成视觉冗余。视频压缩就是对以上所提到的冗余信息进行去除,在尽量不影响人类对图像良好感受的情况下用较少的数据量去表征图像本质。从信息论的角度来看,压缩就是去除已确定和根据经验可推知的信息,只保留不确定信息,用一种更接近信息本质的描述来代替原有的冗余描述[16]。

2. 视频压缩编码的基本方法

有损压缩和无损压缩是视频处理中的一个重要指标。无损压缩是指压缩后的图像数据没有任何损失,重建后可对数据进行完全还原,没有任何信息丢失。无损压缩中常用的无损压缩技术有 Huffman 编码技术、行程编码技术、算术压缩方法和字典压缩方法。但无损压缩的压缩比较小,一般应用在对图像重构质量要求较为严格的场合。有损压缩是指将人眼无法察觉的信息进行去除,但是这部分信息在压缩后无法恢复。变换编码、预测编码以及量化编码是有损压缩编码中最常用的方法[17]。为了减少图像和视频所占空间,一般都采用压缩比比较高的有损压缩,但这样就导致数据损失较多,还原后的图像视觉效果也较差。
在视频压缩中还有一个重要的概念是帧内压缩和帧间压缩。帧内压缩是针对单帧静态图像来计算冗余信息,而与前后帧信息无关,压缩后的数据可进行单独编辑和处理。由于只参考了单帧数据的信息,帧内压缩的压缩比相对帧间压就要小得多。当数量众多的单幅图像以一定的速度连续播放时就形成了视频,帧间压缩正是借助视频这一特性而提出的。帧间压缩方法在参考了本帧信息的基础上,又扩展了相邻帧之间的信息。利用这些信息来计算相关性可大幅度的去除冗余信息。帧间压缩通常采用残差法,即以本帧数据为基准和相邻帧数据做减法运算,计算出相邻帧数据和本帧数据之间的差异,仅对这个差值做压缩,这样需要处理的数据量就会显著降低。所以当本帧图像与相邻帧图像之间的变化差别不大时(视频画面内容无较大差异),去除的冗余量是相当可观的,压缩比较帧内压缩有明显提升。但是采用帧间压缩后的图像数据信息有一定的损失,压缩比越大损失的信息就越多,同时单帧图像与前后帧相关,故帧间压缩后的数据无法进行单帧处理和编辑。
在实际应用过程中,没有哪一种压缩算法能够完全适应任何图像,都是不同算法间配合使用进而使压缩效果达到最优。目前国际上比较流行的数字视频压缩标准一般都采用基于 DCT 变换的有损压缩方式[18],压缩流程基本一致,只是在某些步骤中采取了不同的压缩技术达到不同的压缩效果。基于 DCT 变换的编码流程如下图 2.2 所示。

DM368开发 -- 视频监控系统相关技术研究(转毕设)[通俗易懂]

3. 视频压缩编解码标准

为了满足数字视频在各个领域的广泛使用,使现有的视频编码标准能够在不同的设备和环境下使用,两大国际组织分别制定和发展了视频编码标准,它们分别是国际电信联合会 ITU-T 旗下的视频编码专家组 VCEG(Video Coding Experts Group)和国际标准化组织 ISO 与国际电工委员会 IEC 旗下的运动图像专家组 MPEG (Motion Picture Expert Group),这两家组织为音视频编解码算法的标准化做出了巨大贡献,共同推动了音视频
编码技术的发展和步[19]。ITU-T 组织制定的视频编码标准归结为 H.26x(如 H.261,
H.262,H.263 和 H.264)系列,ISO/IEC 组织制定的标准归结为 MPEG-X(如 MPEG-1,
MPEG-2,和 MPEG-4)系列。两大国际组织制定各自标准的进程如下图

2.3 所示。

DM368开发 -- 视频监控系统相关技术研究(转毕设)[通俗易懂]

(1)ISO/IEC 颁布的标准

MPEG-1 是 MPEG 组织于 1990 年制定的第一个音视频有损压缩标准,在 1992 年正式被批准为国际标准。MPEG-1 主要采用运动补偿、离散余弦变换和量化等技术,在 CD光碟介质的音视频压缩中取得成功。随后 VCD 将此作为自己的核心技术,其分辨率为352×240,比特率为 1.15Mbps。但是在播放高速运动内容的视频时,由于宏区块无法全
面调整导致视频画面出现方块模糊。MPEG-2 是 MPEG 组织于 1994 年专为标准数字电视和高清电视而提出压缩标准[20]。与 MPEG-1 相比,MPEG-2 标准在传输和系统方面做了更详细的规定和进一步完善,压缩图像质量得到明显提高并且支持更多的图像格式。压缩比也范围较广,传输码率为3Mbps~100Mbps 以适应不同画面质量及带宽要求。MPEG-2 是将编码图像分为 I 帧、P帧和 B 帧[21]。I 帧图像主要是利用单帧图像的空间相关性采用帧内编码方式对图像进行压缩,其压缩比较低。P 帧和 B 帧则是同时利用空间和时间相关性采用帧间编码方式对图像进行压缩,所不同的是 P 帧采用的是前向时间预测,而 B 帧图像采用的是双向时间预测,压缩倍数较 P 帧更高。 MPEG-2 支持从低级到高级的图像格式编码, 352×288@30帧、1920×1080@30 帧。由于 MPEG-2 优秀的压缩性能,使得其发布 20 多年来仍久受到用户的青睐,依然活跃在广播电视系统领域。

MPEG-4 是 MPEG 组织于 1992 年发布的基于视频对象的编码标准,加入了一些新技术如对象提取技术、VOP 技术、可分级性技术以及运动估计与补偿技术[22],被称为第二代视频编码标准。与第一代视频编码标准(MPEG-1、MPEG-2)相比,MPEG-4 没有沿用的基于像素的视频编码方法,而是采用基于视频对象的编码方法。第一代的视频编码技术是对单帧图像划分为多个宏块进行处理,容易导致块边界明显出现马赛克效应。而 MPEG-4 在视频编码过程中充分利用人的视觉特性,先将原始视频数据分割为在时空上存在某种联系的视频对象,然后针对视频中的不同对象进行独立编码再进行融合,以达到一个较高的编码效率。MPEG-4 标准编码框框架是开放式的,没有对压缩的细节和实现方法做出过多描述,只是规定了压缩后应满足的要求,这样用户就可以按照自己的需求开发出相应的产品。在保证产品多样化的前提下又兼顾了产品标准的统一性,为多媒体数据压缩提供了更广阔的平台,建立了一种更加自由的通信和开发环境。MPEG-4 具有压缩比高、图像质量好、传输码率范围广和人机交互好等优点,已广泛应用于多媒体通信领域。

(2)ITU-T 颁布的标准

H.261 是 ITU-T 于 1990 年正式发布的国际标准,它专注于网上数字综合业务领域,适用于对比特率要求不高的场合,在视频电话和电视视频会议中应用广泛。H.261 采用带有运动补偿的帧间预测,对残差进行 DCT 变换,霍夫曼编码器对生成的变换系数实现熵编码。 H.261标准输出的码率最小为 64Kbit/s,最大为 1.875Mbit/s。也称为 P×64Kbit/s视听业务的视频编解码器,P 的取值范围为 1~30 的整数。P 的取值以 6 为分界点,当小于 6 时,视频传输速率较低,图像的清晰度也不高,应用在低端的可视电话业务中;当大于 6 时,传输的视频图像清晰度较高,在高端电视视频会议中应用广泛。H.262 是由 ITU-T 和 ISO/IEC 联合发布的标准,也就是 MPEG-2,在 DVD、数字电视、广播和卫星电视等领域应用广泛。H.263 是 ITU-T 于 1996 年发布的视频编解码标准,随后又在 1998 年和 2000 年推出了它的改进版 H.263+和 H.263++[23]。H.263 采用了二分之一像素进度的运动估计、高级预测模式、PB 帧等关键技术,并添加了四种全新的编码器参数选项,与之前发布的标准相比,在甚低比特率情况下图像效更好,性能和效果有明显提升。H.264 是 ITU-T 和 ISO/IEC 联合制定的视频标准,同时也是 MPEG-4 的第十部分,

在 2003 年被正式确定为国际标准,取代 H.263 成为新一代的视频应用编解码算法标准[24]。与以往压缩标准相比,H.264 标准的新技术体现在以下几个方面:
(1)全新的帧内预测模式。在以往的压缩标准中都是采用帧间预测方式,通常把只采用帧内编码的图像作为 I 帧,只对 I 帧中的像素数值进行提取,压缩率不高。而 H.264所采用的帧内预测方式是在众多的图像帧中挑选一帧作为 I 帧,其余剩下的作为 P 帧。把挑选出来的 I 帧作为基础帧,包含图像表达所需的所有信息[25]。而在 P 帧中,它里面包含的是相邻帧之间的差值,大幅度减少了图像的冗余度,压缩率显著提高。在同等重建图像质量下,H.264 标准的编码效率较高,压缩率是 MPEG-2 的 8 倍、MPEG-4 的 3倍、H.263 的 2 倍[21]。
(2)算法的分层结构。H.264 编码算法结构可分为视频编码层和网络抽象层。视频编码层完成视频内容的有效表示,网络抽象层完成不同网络上数据的打包传输。网络抽象层使得 H.264 较其他压缩标准有着更强的网络适应能力,在互联网和移动通信网络有较好表现。
(3)面向 IP 和无线传输环境。H.264 为提高容错能力提供了两种差错消除工具,一种是对丢包在分组传输网络中进行处理,另一种是对比特误码在无线网络中的处理。两种工具的结合使用使压缩码流数据的丢包和误码几率降到最低,传输系统的容错能力得到提高。同时改变量化步和数据分割的方法使得 H.264 能自适应信道码率的变化[26]。

五、以太网和流媒体传输技术

1. 以太网简介

以太网(Ethernet)是由 Xerox 公司创建并由 Xerox、Intel 和 DEC 公司联合开发的基带局域网规范,遵守 IEEE802.3 协议,是当今现有局域网普遍采用的通信协议标准。它采用总线拓扑结构,利用物理介质进行数据交换共享。以太网是基于 CSMA/CD(载波侦听多路访问/冲突检测)的工作机制,采用广播的方式进行通信。IEEE802.3 以太网标准中只对 OSI 模型的物理层和数据链路层进行了规定,数据链路层分为两个子层:逻辑链路控制子层 LLC 和介质访问控制子层 MAC[27],如图 2.4 所示。逻辑链路控制子层LLC 又称为服务访问点,其主要功能是在一个和多个两相邻层之间建立逻辑接口。介质访问控制子层 MAC 完成对帧的封装和卸装、寻址和识别、接受与发送和对链路管理等。

DM368开发 -- 视频监控系统相关技术研究(转毕设)[通俗易懂]

2. 流媒体传输技术

流媒体技术就是把连续的音视频信息经过压缩处理后放到网站服务器上[28],而用户的电脑上会创建一个缓冲区,这部分缓冲区里有事先下载好的一段信息作为缓冲,这样用户就可以一边下载一边播放。为避免在网络速度较慢时出现播放暂停情况,播放程序会将事先存放在缓冲区内的资料进行播放,这样就能实现音视频的连续播放。流媒体技术是随着网络音视频技术发展而产生的,它融合了多项网络技术,涉及到流媒体数据的采集、存储、压缩、传输以及网络通信等[29]。而流式传输是实现流媒体的关键技术,包括顺序流式传输和实时流式传输。当使用 HTTP 服务器时采用顺序流发送;使用流式传输媒体服务器时采用实时流传输。流式传输的原理图如下图 2.5 所示。流式传输的过程如下:首先, Web 服务器和 Web浏览器通过 HTTP/TCP 进行连接以实现控制信息的交换。其次,数据会通过 RTP/UDP协议从 A/V 服务器中发送给 AV 客户程序。然后 Web 浏览器启动 A/V Helper 程序及 A/V服务器运行时流控制协议 RTSP,达到交换 A/V 传输所需的控制信息的目的。RTSP/TCP 和 RTP/UDP 可以实现把服务器的输出重定向到一个不同于运行 A/V Helper程序所在客户机的目的地址。

DM368开发 -- 视频监控系统相关技术研究(转毕设)[通俗易懂]

1.实时传输协议

实时传输协议 RTP 是针对多媒体数据流在网络上传输而设定的一种传输协议。实时传输协议 RTP 有两个子协议:实时数据协议 RTP 和实时控制协议 RTCP。

(1)实时传输数据协议 RTP

RTP 协议负责对多媒体数据进行封包并进行实时传输, 其中报文由两部分组成:报头和有效载荷,报头格式如下表 2.1 所示。有效载荷里存放的是多媒体数据。

DM368开发 -- 视频监控系统相关技术研究(转毕设)[通俗易懂]

(2)实时传输控制协议 RTCP

RTCP 是 RTP 的控制协议,用于监视网络的服务质量和数据接受双方的信息传递,对数据传输质量进行反馈。RTCP 也采用和数据协议 RTP 相同的分发机制,它会周期性的向参与会话的成员发送控制信息,会话参与成员收到控制信息后会将网络的状态和数据包的丢失情况等信息传回,应用程序接收到这些反馈信息后会对网络运行状况做出诊断和评估,实现对流量的控制,保证数据的可靠传输[30]。

2.实时流协议 RTSP

实时流协议 RTSP 是在实时传输协议的基础上工作的,主要实现对多媒体播放的控制。用户对多媒体信息的播放、暂停、前进和后退等功能就是通过对实时数据流的控制
来实现的。 而这些播放控制功能的实现不仅需要多媒体播放器, 同时还需要实时流协议。
实时流协议是通过请求报文和响应报文的交互实现的,请求报文和发送报文格式如下表
2.2 和 2.3 所示。

DM368开发 -- 视频监控系统相关技术研究(转毕设)[通俗易懂]


DM368开发 -- 视频监控系统相关技术研究(转毕设)[通俗易懂]


推荐阅读
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • 在Windows10系统上使用VMware创建CentOS虚拟机的详细步骤教程
    本文详细介绍了在Windows10系统上使用VMware创建CentOS虚拟机的步骤,包括准备条件、安装VMware、下载CentOS ISO文件、创建虚拟机并进行自定义配置、设置虚拟机的ISO与网络、进行安装和配置等。通过本文的指导,读者可以轻松地创建自己的CentOS虚拟机并进行相应的配置和操作。 ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
author-avatar
ebt1775010
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有