Midi音频数据保护方法技术

技术编号:3040536 阅读:145 留言:0更新日期:2012-04-11 18:40
Midi音频数据保护方法属于音频数据领域。现有的音频数据保护方法将音频数据抽象为一维信号来处理,这并不适用于存储演奏指令的midi音频。本发明专利技术对midi文件中的每一个轨迹块,找出轨迹块中的所有音符开指令和音符关指令,将这些指令按照在原轨迹块中的顺序排列成一个指令串;依次进行压缩、加密、纠错三个编码操作,形成一个新的0-1字符串称为验证串;将验证串放在轨迹块结尾的复位指令中,作为该指令的参数,并保存到存储介质;鉴别时,读取轨迹块结尾的复位指令的参数,即验证串,依次进行纠错、解密、解压缩三个解码操作,得到一个解码后的指令串;判断midi文件是否被篡改过,并确定哪些地方被篡改过、如何篡改的,进而将被篡改的信息恢复过来。

【技术实现步骤摘要】

本专利技术涉及一种音频数据的保护方法,特别是一种针对midi音频数据的 保护方法。
技术介绍
多媒体数据的保护己经成为数字网络环境下,保护数字内容及相关权利 人经济利益的重要技术。尤其是随着网络音乐、手机娱乐等的兴起,音频数 据的保护显得更为重要。在各种音频数据中,Midi音频数据占据了重要位置,主要原因有两个 一是midi文件占用的存储空间非常小,同样一段音乐,用WAV格式编码可能需 要几百K字节,而用midi格式编码只需要二三百字节,差1000倍,这就非常适 用于手机、移动网络等存储容量或者带宽有限的环境下;二是midi数据存储 的不是音频波形,而是演奏指令,改变指令的参数,可以模拟钢琴、小提琴、 笛子、鼓等几百种乐器的声音,并能控制每种乐器何时演奏、发声的长 短、强弱等,这非常类似交响乐,播放时通过播放器合成交响乐并发声, 由于midi这种独一无二的特点,使得它成为音乐家进行电子音乐创作的有力 工具。然而与midi数据的广泛采用形成对比的是,目前还没有很好的针对midi 音频数据的保护方法。现有的音频数据保护方法大多是针对音频波形的,即 将音频数据抽象为一维信号来处理,这些方法均不适用于存储演奏指令的 midi音频。因此必须针对midi自身的特点,研究midi音频数据保护方法。
技术实现思路
本专利技术的目的是针对midi自身的特点,提供一种midi音频数据保护方法。 该方法能够判断出数据是否被篡改过,并确定哪些地方被篡改过、如何篡改 的,进而将被篡改的信息恢复过来。本专利技术的技术方案是1).从存储介质上读取一个midi文件;2) .对midi文件中的每一个轨迹块,找出轨迹块中的所有音符开指令和 音符关指令,将这些指令按照在原轨迹块中的顺序排列成一个指令串;3) .对上述指令串依次进行压縮、加密、纠错三个编码操作,形成一个 新的0-l字符串,称为验证串;将验证串放在轨迹块结尾的复位指令中,作为 该指令的参数,并保存到存储介质;4) .鉴别时,读取轨迹块结尾的复位指令的参数,即验证串,依次进行 纠错、解密、解压縮三个解码操作,得到一个解码后的指令串;5) 根据解码后的指令串判断midi文件是否被篡改过,并确定哪些地方被 篡改过、如何篡改的,进而将被篡改的信息恢复过来如果篡改的类型是插 入了新的演奏指令,则删除轨迹块中被插入的指令;如果篡改的类型是删除 了原有指令,则从验证串中获得被删除的演奏指令,将该指令填入轨迹块中 被删除的位置;如果篡改的类型是修改了原有指令,则从读取的验证串中获 得被修改的演奏指令,用该指令覆盖轨迹块中被修改的指令;或者仅仅根据解码后的指令串判断midi文件是否被篡改过,并确定哪些 地方被篡改过、如何篡改的。本专利技术与其他音频数据保护方法相比具有以下特点 针对midi音频存储演奏指令的特点而设计。直接对演奏指令进行操作,没有对音频数据进行任何修改,具有完全的 透明性。能够抵抗指令顺序调整、音频数据修改(滤波、加噪、重采样等)、插入 /删除指令、截取音乐片段等多种攻击,具有鲁棒性。不同于一般的通信系统用哈希函数或者消息鉴别码防篡改,本专利技术中的 加密操作具有防篡改的功能,不知道密钥的用户无法正确加密,保证了系统 的安全性。除此之外,加密/解密操作还可以恢复消息,因此本专利技术不仅能够 判断出数据是否被篡改过,还能够确定哪些地方被篡改过、如何篡改的,并 将被篡改的信息恢复过来。纠错编码在一定程度上可以修正对验证串的篡改,防止了由于验证串本 身的错误,而将合法文件误判为被篡改过的文件这种情况的发生,提高了可 用性。附图说明 图l保护过程。 图2生成指令串。 图3修改轨迹块。 图4鉴别过程。图5读取最后一个指令ff的附加信息。 图6判断过程。 图7恢复轨迹块。具体实施例方式图l表示的是midi音频数据的保护过程。从存储介质上读取一个midi文件 100。 midi文件由若干个轨迹块组成,对每一个轨迹块,进行同样的操作。首 先根据轨迹块的内容生成一个指令串300,对该指令串依次进行压縮编码400、 加密500、纠错编码600,形成一个0-l字符串,称为验证串,将验证串写回轨 迹块,即修改轨迹块700。所有轨迹块处理完毕之后,将新生成的midi文件保 存到存储介质800。其中的压縮编码400、加密500、纠错编码600可以分别任意选用一种无损压縮编码算法、对称加密算法和纠错编码算法。 图2表示的是生成指令串的过程。为了更清楚地表示该过程300,先来简单介绍一下midi指令。所谓的midi 指令是一个8位的二进制数,占用1个字节,指令前后有参数,参数的长度可 能是1个字节,也可能是多个字节,后面用十六进制形式表示指令和参数的内 容。midi中对音乐演奏起主要作用的是音符开指令9x和音符关指令8x,其中 的x表示指令中的低4位可以取0 ~ F之间的所有值,实际上这低4 位表示的是音符发声所用的通道。8x/9x指令的格式是指令开始时间+ 8x/9x + 音符编号+ 音符力度,前后共有三个参数。其中指令开 始时间占用l-4个字节,音符编号和音符力度各占用l个字节》整个 指令占用4-7个字节。例如00 90 48 64指令,00表明在音乐一开始播 放的时候就执行这个指令,90表明这个指令的作用是通过通道O演奏一个音符,48表明这个音符是短笛,64表明短笛的发声力度是64。 下面具体介绍生成指令串的过程300。指令串记录在变量c中,它一开始为一个空串310。从前到后扫描整个轨 迹块, 一旦找到一个8x或者9x指令,就将整个8x/9x指令,即指令开始时间 + 8x/9x + 音符编号+ 音符力度连接在变量c的末尾330,直到整个 轨迹块都处理完毕。图3表示的是修改轨迹块的过程。为了更清楚地表示该过程700,先来简单介绍一下轨迹块的头和尾。轨迹 块的头由8个字节4d 54 72 6b nn nn nn nn组成,其中nn nn nn nn 表示该轨迹块除了这8个字节的头之外还包括的字节数。轨迹块的末尾为一个 复位指令ff,该ff指令的格式是00 ff 2f 00,最后一个字节00表示 该指令的后面有O个字节的附加信息,这是ff指令后的第2个参数。下面具体 介绍修改轨迹块的过程700。先找到轨迹块的头710,修改其中的nn nn nn nn二nn nn nn nn+ 验证串 的字节数720,即增加轨迹块的长度,增加的长度为验证串的字节数。再找 到轨迹块的最后一个指令ff730,将其后第2个参数00修改验证串的字 节数740,即增加指令ff的长度,最后将验证串拷贝到轨迹块的末尾750, 作为ff指令的第3个参数,即附加信息。图4表示的是鉴别过程。从存储介质上读取一个midi文件100。对每一个 轨迹块进行同样的操作。首先读取最后一个指令ff的附加信息900,对该附加 信息依次进行纠错解码IOOO、解密IIOO、解压縮1200,重新得到验证串。然 后根据轨迹块的内容生成指令串300。对比验证串和指令串,做出判断1300。 当所有的轨迹块都处理完毕,则将恢复回原状的midi文件保存到存储介质 800,并生成篡改报告1400,指出数据是否被篡改、何处被篡改、如何篡改。其中的纠错解码IOOO、解密IIOO、解压縮120本文档来自技高网...

【技术保护点】
一种Midi音频数据保护方法,其特征在于,包括以下步骤: 1).从存储介质上读取一个midi文件; 2).对midi文件中的每一个轨迹块,找出轨迹块中的所有音符开指令和音符关指令,将这些指令按照在原轨迹块中的顺序排列成一个指令串; 3).对上述指令串依次进行压缩、加密、纠错三个编码操作,形成一个新的0-1字符串,称为验证串;将验证串放在轨迹块结尾的复位指令中,作为该指令的参数,并保存到存储介质; 4).鉴别时,读取轨迹块结尾的复位指令的参数,即验证串,依次进行纠错、解密、解压缩三个解码操作,得到一个解码后的指令串; 5)根据解码后的指令串判断midi文件是否被篡改过,并确定哪些地方被篡改过、如何篡改的,进而将被篡改的信息恢复过来:如果篡改的类型是插入了新的演奏指令,则删除轨迹块中被插入的指令;如果篡改的类型是删除了原有指令,则从验证串中获得被删除的演奏指令,将该指令填入轨迹块中被删除的位置;如果篡改的类型是修改了原有指令,则从读取的验证串中获得被修改的演奏指令,用该指令覆盖轨迹块中被修改的指令; 或者仅仅根据解码后的指令串判断midi文件是否被篡改过,并确定哪些地方被篡改过、如何篡改的...

【技术特征摘要】
1.一种Midi音频数据保护方法,其特征在于,包括以下步骤1).从存储介质上读取一个midi文件;2).对midi文件中的每一个轨迹块,找出轨迹块中的所有音符开指令和音符关指令,将这些指令按照在原轨迹块中的顺序排列成一个指令串;3).对上述指令串依次进行压缩、加密、纠错三个编码操作,形成一个新的0-1字符串,称为验证串;将验证串放在轨迹块结尾的复位指令中,作为该指令的参数,并保存到存储介质;4).鉴别时,读取轨迹块结尾的复位指令的参数,即验证串,依次进行纠错、解密、解压缩三个解码操作,得到...

【专利技术属性】
技术研发人员:姜楠
申请(专利权)人:北京工业大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1