摘要:看完本文,你将(1)了解什么是MPEG-7(2)理解MPEG-7中的一些基本概念(什么是D,DS,DDL)。
一. MPEG-7简介
(1)什么是MPEG-7
MPEG-7的正式名称是“多媒体内容描述接口”(Multimedia Content Description Interface),是由运动图像专家组(MPEG,Moving Picture Experts Group)提出的一个用于描述多媒体内容的ISO/IEC标准。
简单而言,MPEG-7其实就是一个规定如何来描述多媒体内容的特征的标准。
明确一点:MPEG-7跟MPEG-2、MPEG-4等除了名字有点像以外没有更多的相同点。MPEG-2、MPEG-4关注的是多媒体本身的编码压缩,而MPEG-7关注的是多媒体内容特征的描述。
(2) MPEG-7标准的范围
MPEG-7标准仅仅规定了如何描述,组织特征。特征的提取、特征的使用不属于MPEG-7标准的范围。
以图片内容搜索引擎为例,图片特征的提取算法不属于MPEG-7标准范围(提取算法也没有标准化的必要),同样搜索引擎如何使用图片特征也不在MPEG-7范围,只有特征的描述(下文将介绍如何描述特征)是MPEG-7标准范围内的。
图1. MPEG-7标准的范围
(3) MPEG-7应用领域
MPEG-7比不针对特定的应用领域。就目前来看,适合应用MPEG-7的领域包括:
<1>基于内容的多媒体搜索(包括图像搜索、哼唱搜索、语音搜索等)
<2>图像理解
<3>其他需要使用大量多媒体特征的应用
二. MPEG-7主要概念
(1)特征( Feature )
用于描述数据的有区分性的特性。比如声音的频率,图形的灰度直方图等就是一些简单的特征。
(2)描述符( Ds, Descriptors )
也称描述子。描述符通常缩写成D或Ds。D通常是一些基本特征的语法和语义。D是最基本的MPEG-7元素,也就是说一个描述符的定义只能使用基本的数据类型,而不能包含别的D。
(3)描述方案(DSs, Description Schemes)
也称描述模式。描述方案通常所写成DS或DSs。一个DS的定义除了可以使用基本的数据类型外,还可以包含其他的DS或D。
(4)描述值( Descriptor Value )
是描述符的一个实例。
(5)描述( Description )
由一个描述方案(结构)和一组描述值组成。
(6)描述定义语言( DDL, Description Definition Language)
用于定义新的D和DS。MPEG-7 DDL是在XML Schema基础上扩展而成,主要所作的扩展有两点:支持数组与矩阵类型,增加了其他的派生数据类型。
图2. D,DS,DDL,Description的关系
图2说明了D,DS,DDL之间的关系。这三者的关系可以用下面几句话简要概括:
<1> D与DS规定了描述特征的语法。DS和D实例化后就是对一个多媒体特征的描述。
<2> DS可以由D和其他DS构成。
<3> DDL定义D和DS。
这三者的关系可以用C++与类的关系作类比,C++定义类,类可以用基本的数据类型来定义,也可以通过组合、继承其他类来定义,类是对象的结构定义,对象是类的实例化。
类似的,DDL定义了D和DS,D只能用基本的数据类型来定义,DS的定义则可以使用其他的DS与D,描述值是D的实例化。
什么?你还不懂?上实例!
三. MPEG-7实例
下面我将通过实际代码来说明描述符,描述值,描述方案,描述的概念。保证你看得懂,前提是你已经能看懂XML Schema。(如果您还不会XML Schema请问谷哥度娘。)
(1)描述符
下面是一个名为“ScalableColorType”的描述符的定义:
<complexType name="ScalableColorType" final="#all"> <complexContent> <extension base="mpeg7:VisualDType"> <sequence> <element name="Coeff" type="mpeg7:integerVector"/> </sequence> <attribute name="numOfCoeff" use="required"> <simpleType> <restriction base="integer"> <enumeration value="16"/> <enumeration value="32"/> <enumeration value="64"/> <enumeration value="128"/> <enumeration value="256"/> </restriction> </simpleType> </attribute> <attribute name="numOfBitplanesDiscarded" use="required"> <simpleType> <restriction base="integer"> <enumeration value="0"/> <enumeration value="1"/> <enumeration value="2"/> <enumeration value="3"/> <enumeration value="4"/> <enumeration value="6"/> <enumeration value="8"/> </restriction> </simpleType> </attribute> </extension> </complexContent> </complexType>
可以看出这个“ScalableColorType”描述符是由“mpeg7:VisualDType”类型扩展而来,包含有一个名为“Coeff”的“mpeg7:integerVector”类型的元素,以及名为“numOfCoeff”和名为“numOfBitplanesDiscarded”的枚举类型属性各一个。
由于“ScalableColorType”的定义仅仅使用了基本的数据类型,而没有用到其他的D或DS,因此我们将其称为一个描述符(D)。
(2)描述值
下面的代码是“ScalableColorType”描述符的一个实例,也就是一个描述值。
<VisualDescriptor type="ScalableColorType“ numOfBitplanesDiscarded="0" numOfCoeff="64"> <Coeff> -121 8 -3 87 12 14 22 37 31 13 11 3 50 14 19 21 -3 1 0 11 -8 5 0 17 -8 2 2 4 -15 5 1 -1 1 0 0 1 0 0 1 1 6 1 1 3 1 2 4 12 -1 0 2 2 2 3 3 -4 15 0 0 -2 1 0 -3 6 </Coeff> </VisualDescriptor>
将这个描述值跟上面给出的“ScalableColorType”描述符对比着看,可以发现描述值的结构是由描述符规定的,描述值是描述符的一个实例。
(3)描述方案
下面是一个名为“GoFGoPColorType”的描述方案的定义。
<complexType name="GoFGoPColorType" final="#all"> <complexContent> <extension base="mpeg7:VisualDType"> <sequence> <element name="ScalableColor" type="mpeg7:ScalableColorType"/> </sequence> <attribute name="aggregation" use="required"> <simpleType> <restriction base="string"> <enumeration value="Average"/> <enumeration value="Median"/> <enumeration value="Intersection"/> </restriction> </simpleType> </attribute> </extension> </complexContent> </complexType>
可以看出“GoFGoPColorType”描述方案是由“mpeg7:VisualDType”类型扩展而来,包含了一个“ScalableColorType”类型的元素,以及一个名为“aggregation”的枚举类型的属性。
由于“GoFGoPColorType”的定义中包含了一个“ScalableColorType”描述符,因此我们将其称为一个描述方案(DS)。
(4)描述
下面的代码是对一个图片文件生成的一个描述。其中包含了一个“ScalableColorType”类型的描述值。
<?xml version="1.0" encoding="UTF-8"?> <image> <title>Twilight</title> <comments>nice picture</comments> <tags>sunset sky</tags> <Mpeg7> <Description type="ContentEntityType"> <MultimediaContent type="ImageType"> <Image> <VisualDescriptor type="ScalableColorType“ numOfBitplanesDiscarded="0" numOfCoeff="64"> <Coeff> -121 8 -3 87 12 14 22 37 31 13 11 3 50 14 19 21 -3 1 0 11 -8 5 0 17 -8 2 2 4 -15 5 1 -1 1 0 0 1 0 0 1 1 6 1 1 3 1 2 4 12 -1 0 2 2 2 3 3 -4 15 0 0 -2 1 0 -3 6 </Coeff> </VisualDescriptor> </Image> </MultimediaContent> </Description> </Mpeg7> </image>
四. MPEG-7标准组成
(1) MPEG-7视频
(2) MPEG-7音频
(3) MPEG-7多媒体
(4)描述定义语言DDL
(5) MPEG-7参考软件
其中(1)(2)(3)主要是对视频,音频,多媒体成百上千个的描述符和描述方案,而且至今仍在不断增加。而(5)则是根据MPEG-7标准开发的软件实验平台。
如果你想深入了解MPEG-7 DDL可以阅读参考文献2。关于MPEG-7视频、音频、多媒体以后我有时间还会写些文章深入探讨。
参考资料:
[1]MPEG-7 Overview
http://mpeg.chiariglione.org/standards/mpeg-7/mpeg-7.htm
[2]Jane Hunter.An Overview of the MPEG-7 Description Definition Language (DDL)
相关推荐
6. **实例分析**:可能提供一些简单的示例代码,帮助初学者理解如何在实际项目中应用MPEG-2技术和Visual C++。 7. **进阶话题**:可能还包括了一些关于错误处理、优化技巧、多线程处理等进阶内容,以提升读者的编程...
- **图像压缩**:介绍JPEG或MPEG等图像和视频压缩标准,以及如何利用DSP实现这些算法。 5. **学习资源与实践** - **DSP仿真工具**:如TI的Code Composer Studio,用于代码开发和仿真。 - **实验板和套件**:如TI...
DirectShow集成了视频和音频处理,支持多种媒体格式,包括MPEG、AVI、WMV等,并且能够高效地处理实时和文件媒体流。其设计目标是提供灵活、高性能的多媒体处理能力,使得开发者能够轻松创建多媒体应用程序。 二、...
《Delphi 7 经典入门80例程 B版》是一本专为初学者设计的编程教程,它涵盖了Delphi 7开发环境的基础知识,以及如何通过实践编写各种类型的程序。Delphi 7作为一款强大的面向对象的编程工具,以其高效、易用的特性在...
网络、多媒体技术的底层实现,如MPEG-4的播放技术、编码技术和解码技术,XvidQP系统的开发等;MP3深入编程技术。另外,还对流行的网络、多媒体开发工具——微软的DirectX9.0进行了介绍,具体包括DirectShow、Direct...
在本次“DM8168入门培训——oneday workshop”中,我们将深入探讨DM816x系列芯片的特点,并介绍基于该平台的开发工作,包括开发套件的选择、EZSDK开发流程的详解以及一系列的开发实例,帮助初学者快速上手达芬奇架构...
FFmpeg支持的编码解码器非常丰富,它能支持大多数已知的编解码器,不仅包括常见的MPEG系列、H.264等,还包括一些专业的编解码器。同时,它还支持多种容器格式,比如MP4、MKV、AVI等,这些容器格式决定了媒体文件的...
7. Lab522-VideoMPEG2:涉及MPEG-2视频编码标准,这是数字视频压缩的常用标准之一。 8. Lab512-VideoReverse:可能包括视频帧的反向播放功能实现,这对于回放或时间反转特效很有用。 9. Lab523-VideoMotionDetect...
### 《Video Demystified》知识点总结 #### 一、书籍基本信息 - **书名**:《Video Demystified》(视频揭秘) ...此外,书中还提供了丰富的实例和模块图,有助于读者更好地理解和掌握视频工程领域的核心知识。
- **MPEG**: 包括MPEG-1, MPEG-2, MPEG-4等,广泛应用于DVD、电视广播等领域。 - **AVI**: 微软推出的一种容器格式,支持多种压缩方式。 - **MKV (Matroska)**: 开放源代码的多媒体容器格式,支持多语言字幕和多...
深入探讨更高级的图像压缩标准,如JPEG2000、MPEG系列,以及无损压缩和有损压缩的区别。还会涉及编码效率和图像质量之间的权衡。 8. 第八章:图像分析与理解 这一章可能包含特征提取(如SIFT、SURF)、模板匹配、...
<source src="horse.mp3" type="audio/mpeg"> Your browser does not support the audio element. ``` #### HTML5 Canvas `<canvas>`标签为网页提供了绘图能力,可以通过JavaScript来控制画布上的像素,实现...
### DirectShow开发快速入门之概览 #### 一、DirectShow概述 DirectShow是由微软公司推出的,用于在Windows平台上处理多媒体流的一种强大的开发工具包。它通常与DirectX开发包一起发布,旨在为多媒体流的捕捉和...
本教程的第10步将深入介绍VTK的基本使用和实例应用,旨在帮助初学者逐步掌握这个强大的工具。 在VTK中,数据与可视化是紧密相连的。首先,我们需要了解VTK的数据模型,它基于抽象的基础数据结构,如vtkDataSet,...
本教程将重点讲解如何使用DirectShow开发视频播放器,尤其适合初学者入门。 1. **DirectShow基础** - DirectShow分为两大部分:Filter Graph Manager和Filters。Filter Graph Manager负责管理过滤器之间的连接,而...
总之,《PCI规范入门最佳资料》是一份宝贵的资源,它不仅深入浅出地介绍了PCI规范的各项关键技术,还提供了丰富的实例和设计流程指导,对于理解和应用PCI技术具有不可替代的价值。无论是对于硬件工程师、软件开发者...
网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的...
这本书详细介绍了视频制作、编码、传输和播放过程中的关键概念,是进入这个领域的理想入门读物。 在视频技术的基础部分,书中可能涵盖了以下内容: 1. **视频基础**:解释了视频的基本概念,包括帧率(FPS)、...
此外,对于处理视频,还需要了解基本的视频编码和解码原理,如MPEG、H.264等。 总的来说,Java Media Framework提供了一种强大的工具,让开发者能够在Java环境中处理多媒体任务。通过深入学习JMF,你可以创建复杂的...