EDN首页   博客首页 用户登陆  |  注册
aaa
发表于 2008/9/6 9:48:34

1

关于投票

Delphi 的运算符列表

分类 运算符 操作 操作数 结果类型 范例
算术运算符 + 整数,实数 整数,实数 X + Y
- 整数,实数 整数,实数 Result - 1
* 整数,实数 整数,实数 P * InterestRate
/ 实数除 整数,实数 实数 X / 2
div 整数除 整数 整数 Total div UnitSize
mod 取模 整数 整数 Y mod 6
+(一元) 符号等同 整数,实数 整数,实数 +7
-(一元) 符号相反 整数,实数 整数,实数 -X
布尔运算符 not 否定 布尔型 Boolean not (C in MySet)
and 布尔型 Boolean Done and (Total > 0)
or 布尔型 Boolean A or B
xor 异或 布尔型 Boolean A xor B
逻辑(按位)运算符 not 按位否定 整数 整数 not X
and 按位与 整数 整数 X and Y
or 按位或 整数 整数 X or Y
xor 按位异或 整数 整数 X xor Y
shl 按位左移 整数 整数 X shl 2
shr 按位右移 整数 整数 Y shr I
字符串运算符 + 连接 字符串、压缩串、字符 字符串 S + '.'
指针运算符 + 指针加 字符指针,整数 字符指针 P + I
- 指针减 字符指针,整数 字符指针,整数 P - Q
^ 指针解除参照 指针 指针的基类型 P^
= 相等 指针 Boolean P = Q
<> 不等 指针 Boolean P <> Q
集合运算符 + 并集 集合 集合 Set1 + Set2
- 差集 集合 集合 S – T
* 交集 集合 集合 S * T
<= 子集 集合 Boolean Q <= MySet
>= 超集 集合 Boolean S1 >= S2
= 相等 集合 Boolean S2 = MySet
<> 不等 集合 Boolean MySet <> S1
in 成员 序数,集合 Boolean A in Set1
关系运算符 = 相等 简单类型、类、类引用、接口、串、压缩串 Boolean I = Max
<> 不等 简单类型、类、类引用、接口、串、压缩串 Boolean X <> Y
< 小于 简单类型、串、压缩串、PChar Boolean X < Y
> 大于 简单类型、串、压缩串、PChar Boolean Len > 0
<= 小于或等于 简单类型、串、压缩串、PChar Boolean Cnt <= 1
>= 大于或等于 简单类型、串、压缩串、PChar Boolean I >= 1
类运算

系统分类: 软件开发  |  用户分类: 其他  |  标签: Delphi 运算符  |  来源: 整理  | 

点击查看原文

发表评论 阅读全文(1193) | 回复(0)

发表于 2008/3/26 9:24:51

0

关于投票

不断增长的外汇储备,是中国政府的心病

很多人想得很简单,他们认为,如果中国政府放宽外汇管制,让商人通过自由兑换,把美金换成人民币不就可以了。这种想法的确很好,如果人民币与外币能够自由兑换,中国政府不但可以白赚好几百亿元,并且每年通过发钞还可以再赚一笔。因为,一旦人民币成为硬通货,很多外国人的口袋中必然会沉淀一定数量的人民币,这些人民币就像每年都要留种子一样,这些种子是永远不会消失的,它与一张废纸没有多大区别。但是,放宽外汇管制将会引起很多企业或个人大量走私,以及很多贪官和私人将会进行资产转移。

企业走私一直存在,不过企业走私比较隐蔽,比如倒卖批文实际上就是走私,就是官商勾结在一起走私。90年前、后,是中国倒卖批文最严重的时期,什么设备以及生产线的批文都可以倒卖,大家比较熟识的有汽车、电视机显像管等。现在看起来好了一些,好像倒卖批文的现象少了,但政府审批的腐败事件却增多了。根据国家信息中心经济预测部相关报道,在新双轨制下政府官员每年的灰色收入高达46,000亿。

未来几年,只要国家外汇管理的政策一松动,就会象九十年代初一样,国外大量的生产设备以及产品,就会通过倒卖批文和走私进来。你看这几年的汽车生产企业,不也是要经过国家相关部门审批才能引进吗?但在短短的几年内,中国就诞生了118家整车生产企业,进口汽车生产线370多条,数量几乎等于美、日、欧所有汽车厂商数之和,但是全国汽车的年产量还不及一家国外大汽车公司的产量,年产量达万辆以上的只有21家。

今年3月18日上午,国务院总理温家宝会见中外记者时指出:“今年恐怕是中国经济最困难的一年。”温家宝在记者会上坦言:“由于政治体制的缺陷和财政体制的漏洞,中国的财政透明度至今都让人扑朔迷离。大面积的官场腐败现象与此都有直接关系,社会的公平正义遭到破坏也与此因果相连。从公开的数据看,07年的财政收入为5.1万亿元,而从其它渠道暴露的数据则是9万亿元,其中的巨大差额却不见踪影,不见说法,的确让人感到惊心动魄!”

试想,如果从现在起,中国政府完全放宽外汇管制,那么上述被贪官黑掉的3.9亿元人民币是不是更容易转移出国。还有,前些年中国海关经常收到一批又批无人领取的进口货物,他们都是以进口设备的形式进来的,待海关同意把外汇汇出之后,货物就再也没有人来领取,打开货柜箱一看,里面全部是电子垃圾。可见这些外汇走私商,何等猖狂。

根据《人民邮电报社》网站(2004-04-23 09:11:39)的报道:“作为电子口岸建设的亲历者,曾燕珲对当时的背景记忆犹新。她说,1998年,我国走私骗汇现象非常严重,1天的外汇流失金额可高达2亿美元。1998年全年的外贸顺差是435亿美元,而外汇顺收仅有47.8亿美元,近400亿美元的外汇从非正常渠道流失。”

实际上,中国的外汇走私远远要比上述报道的严重很多,这里仅举几例说明。

2007年11月17日,深圳警方破获一起特大地下钱庄非法买卖外汇案,捣毁了组织分工严密的“杜氏”地下钱庄,这个钱庄从2006年至2007年5月非法交易金额达43亿多元。

2002年4月5日电(记者张毅)深圳皇岗海关昨天上午从一出境旅客所携带的手提袋中及其身上查获巨额走私外币,折合人民币约400多万元。

2003年12月16日,大连海关驻机场办事处旅检现场的关员在对CA105(大连-香港)航班进行监管时,发现一名旅客在查验行李的过程中神色异常,经开箱查验,海关关员们发现包中4个黄色牛皮纸包内装有大量美元。经清点,每包为20万美元,总计80万美元。

深圳罗湖海关几乎每天都会发生好几起外汇走私出境案,还有,很多货物走私,实际上也是外汇走私,每年通过走私船把外汇偷渡出境的也不少。

有关专家认为,中国每年资本外逃在150-200亿美元之间,通过海关直接携带货币外逃的相对比例虽然不大,但外逃货币资本的绝对数字应该不少。比如香港破获的一桩跨境洗黑钱大案表明,一家专门从内地走私货币到香港的犯罪集团,用蚂蚁搬家的形式,每天走私人民币、美元、日元、港币等29种货币,再到香港兑换成港币,5年内涉案金额达500亿元。

由此可知,政府何尝不想早日开放外汇市场,但是中国的外汇市场开放之日,可能就是中国经济全面崩溃之时。前段时间,中国政府也曾对外汇管理稍微放松过,允许中国的企业到国外投资。结果怎么样,有些企业把钱带出去后根本就不是办什么企业,而是做资本运营买卖,说穿了,这种资本运营买卖,有资产转移的嫌疑。因为,钱一转出去,中国政府基本上就管不到他了,一旦有风吹草动,这些资产就会变相转移到外国人手中,你看连德国的飞机场也有人敢买,很多国外的大公司他们也敢买。最后政府只好发个75号文,赶紧收摊。

现在,虽然政府还没有放松对外汇管制,但仔细观察一下,那些有几亿身家的私人老板或其家属,是不是大部分已经拿到外国绿卡;还有那些贪官,是不是大部分已经拿到绿卡。实际上,现在什么样的绿卡到处都可以买得到,只要你有钱,就像买城市户口一样,你不找他,他也会来找你。如果一旦放松外汇管制,或者国内一有风吹动,那些贪官以及私人老板,就会快速进行资产转移。

当一个政府失信于民的时候,或者当政府不能永远保护私人财产安全的时候,谁不想把自己的资产转移到一个更安全的地方。1991年,苏联经济改革失败,在很大程度上就是因为老百姓不愿意配合政府,而把有限的资产转移到国外。我想,现在很多中国的有钱人,当他什么时候读起《共产党宣言》中要打倒自己那部份内容的时候,他一定也会感到不寒而栗,他怎能不时刻想着要把自己的资产进行转移呢?这就是中国政府迟迟不敢放宽外汇管制的原因之一。

如果中国政府不放宽外汇管制,那么中国的市场经济就不可能是真正意义上的市场经济,而是被捆绑起来的市场经济,这样,中国的外汇储备还得继续上升,中国的通货膨胀还得继续上涨,更严重的是,中国政府内部产生腐败的土壤不可能得到根除;而一旦政府对外汇管制突然松绑,中国经济将会产生激烈振荡,这就是中国政府一个难以治愈的心病。

不过,现在想把财产转移到安全地方的并不是普通中国公民,而是贪官、或者与贪官互相勾结的不法商人。目前,中国的经济很大部份已经被这些人进行控制,难道中国真的还要进行一次土地革命吗?

系统分类: 自由话题  |  用户分类: 其他  |  标签: 外汇  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(616) | 回复(0)

发表于 2008/3/21 9:40:41

1

关于投票

Using SQL 之Data Manipulation Language (DML)

Using SQL


Data Manipulation Language (DML)


SQL pronounced “sequel”.


1. Types of MDL statements


SELECT Retrieves rows from one or more tables. 从一个或多个表中取得若干列


INSERT Adds one or more new rows to a table. 向表中添加若干列


UPDATE Modifies one or more rows in a table. 更新表中的若干列


DELETE Removes one or more rows from a table. 从表中删除若干列


 


2. SELECT


SELECT 列名, 列名, …, 列名 FROM 表名;


SELECT *(所有列) FROM 表名;


 


如果表名或列名中有空格,要用方括号[]括起来。


 


1 使用SMO有条件地SELECT


SELECT加上限制条件,使用WHERE


SELECT something FROM somewhere WHERE 列名 SMO某个值;


Here, SMO means SQL Mathematical Operators


























操作符



意义



=



等于



<> !=



不等于





小于





大于



<=



小于等于



>=



大于等于



 


(2) LIKE - 按样式SELECT


SELECT something FROM somewhere WHERE 列名 LIKE某个值(带通配符);


LIKE 中可以使用的通配符


























通配符



意义



_ (下划线)



表示作一个任意字符



%



表示任意任意字符



[  ]



表示与括号中任意一个字符相匹配的字符



[^  ]



表示与任意一个不在括号中的字符匹配的字符



[ - ]



与括号中从左到右的范围中字符匹配



#



表示一个任意数字



 


例:


‘Cha_’ 可以是 ‘Chaa’’Chay’’Cha4’’Cha.’’Cha@’……


‘Cha%’ 可以是’‘Chaaasf’’Chay’’Chaqq4a4’’Cha.ert’’Cha@qawe’……


‘[AIO]%’ 表示以’A’’I’’O’开头,以任意字符结尾的字符串


‘[AIO]%’ 表示以’A’’I’’O’之外的字符开头,以任意字符结尾的字符串


‘[A-O]%’ 表示以从’A’O’之间的字符开头,以任意字符结尾的字符串


 


(2) IN - 指定选择范围


SELECT something FROM somewhere WHERE 列名 IN(列出范围);


列出的范围可以是显式地指定出来,也可以用其它方法限制,如用另一个SELECT语句选择得到的结果。


1 SELECT ProductID, ProductName, QuantityPerUnit, UnitPrice FROM Products WHERE ProductID IN (1, 2, 5, 15, 20, 45, 50);


2SELECT OrderID FROM Orders WHERE CustomerID IN


( SELECT CustomerID FROM Customers WHERE CompanyName LIKE 'Fu%');


 


(3) BETWEEN - 指定选择范围


SELECT something FROM somewhere WHERE 列名 BETWEEN 起始 AND 终止;


 


(4) NOT - 取操作符相反的意义


 


(5) 选择列值为空的行


SELECT something FROM somewhere WHERE 列名 IS NULL;


 


(6) 使用逻辑运算符限定多个选择条件


使用 AND, OR, NOT


 


(7) ORDER BY - 对取得的行进行排序


SELECT something FROM somewhere ORDER BY 列名 (ASC / DESC);


可以用ASCDESC指定是按升序或降序排列。


可以同时使用两个排序条件:


ORDER BY 1 (ASC / DESC), 2 (ASC / DESC);


意为先按列1排列,在此基础上再按列2排列。


 


(8) TOP - 取得最前面的N


SELECT TOP N something…


 


(9) DISTINCT 忽略某列值重复的行


SELECT DISTINCT something FROM somewhere…


只取得something指定列中唯一的项。


 


(10) UNION 合并SELECT得到的结果


SELECT something FROM somewhere…


UNION


SELECT something_else FROM somewhere_else…


 


(11) GROUP BY – 把得到的结果分组


SELECT something FROM somewhere…GROUP BY something2;


SELECT something COUNT(*) FROM somewhere…GROUP BY something2;


按照something2把得到的结果中相同的项合并为一项,即按something2进行分组。可以用COUNT(*)计算每组中的个数。


 


(12) 限制得到的分组


SELECT something FROM somewhere…GROUP BY something2 HAVING COUNT(*) > N;


HAVING限制只得到包括个体数目大于N的组。


 


(13) AS - 更改显示的列名,自定义表名


SELECT something AS something_else, something2 AS something_else2…;


显示自定义的列名。


SELECT Cust.CustomerID, CompanyName, Address, OrderID, ShipAddress FROM Customers AS Cust, Orders AS Ord WHERE Cust.CustomerID = Ord.CustomerID…;


为方便、简略,把表名用别名代替。


 


(14) 对列中的值进行计算


SELECT something (+, -, *, /, … something) FROM somewhere…;


对选择的列按其类型(数值、字符、字符串)进行相应的计算,以及在列之间进行计算,得到计算结果。


 


(15) 从多个表中进行选择


SELECT something, something2, … FROM (table1, table2…);


table1table2必须JOIN起来。


如果有选择的列名同时在两个表中出现,必须明确表示出来,如:table1.something


表的JOIN可以用标准的SQL形式:table1.something=table2.something;也可以用更加“显式”的形式,直接用JOIN关键字:


SELECT something, something2, … FROM table1


JOIN table2 ON table1.something=table2.something AND (other conditions)…


上两种JOIN方法存在明显的不足:如果某行中列的值为NULL则不能得到结果,即不能针对存在NULL值的列进行JOIN。外部JOIN可以解决这一问题。


LEFT OUTER JOIN 可以得到左边含NULL的值


RIGHT OUTER JOIN 可以得到右边含NULL的值


FULL OUTER JOIN 两边含NULL的值都可以取得


 


(16) 从视图中选择行


SELECT something FROM table1 INNER JOIN table2… ON (Condition)…;


取得的View称为Alphabetical list of something


 


3. INSERT - 向表中插入一行


INSERT INTO table (column1, column2, …, column…) VALUES (value1, value2, …, value…);


如果为插入的行的每一列都提供值,则可以忽略列名,只提供值:


INSERT INTO table VALUES (value1, value2, …, value…);


 


4. UPDATE – 修改表中某一行


UPDATE table


SET column = (something) WHERE (condition);


可以同时修改行中多列的值:SET column = (something), column2 = (something2), …


 


5. DELETE – 删除一行


DELETE FROM table WHERE (condition);


 


6. 保持数库的完整一致性


1.主键的独一无二性


2.子表中的Foreign Key指向父表中的有效值


如:不能修改或删除一个作为Foreign Key被引用的值


 


7. TRANSACTION


通过把多条语句集合为一个“Transaction”(业务、记录?),以及业务的执行与回滚实现。


BEGIN TRANSACTION;


Do something;


COMMIT; / ROLLBACK;


在决定是COMMIT还是ROLLBACK之前,应该检查业务中有没有错误发生。如果没有则执行,否则就回滚。用@@ERROR的值判断是否发生错误,0代表没有。


BEGIN TRANSACTION MyTransaction;


Do something;


IF @@ERROR = 0


  COMMIT TRANSACTION MyTransaction;


ELSE


  ROLLBACK TRANSACTION MyTransaction;

系统分类: 软件开发  |  用户分类: 其他  |  标签: sql dml  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(499) | 回复(0)

发表于 2008/1/17 17:07:20

1

关于投票

HEX格式说明

什么是Intel HEX格式?
Intel HEX文件是记录文本行的ASCII文本文件,在Intel HEX文件中,每一行是一个HEX记录
由十六进制数组成的机器码或者数据常量,Intel HEX文件经常被用于将程序或数据传输
存储到ROM.EPROM,大多数编程器和模拟器使用Intel HEX文件.

记录格式

一个Intel HEX文件可以包含任意多的十六进制记录,每条记录有五个域,下面是一个记录的格式.

:llaaaatt[dd...]cc

每一组字母是独立的一域,每一个字母是一个十六进制数字,每一域至少由两个十六进制数字组成,下面是字节的描述.

:冒号 是每一条Intel HEX记录的开始

ll 是这条记录的长度域,他表示数据(dd)的字节数目.

aaaa 是地址域,他表示数据的起始地址
<如果是数据记录,这表示将要烧录的这条记录中的数据在EPROM中的偏移地址,
对于不支持扩展段地址和扩展线性地址的,如89C51,这就是此条记录的起始地址>

tt 这个域表示这条HEX记录的类型,他有可能是下面这几种类型
00 ----数据记录
01 ----文件结束记录
02 ----扩展段地址记录
04 ----扩展线性地址记录

dd 是数据域,表示一个字节的数据,一个记录可能有多个数据字节,字节数目可以
查看ll域的说明

cc 是效验和域,表示记录的效验和,计算方法是将本条记录冒号开始的所有字母对

<不包括本效验字和冒号> 所表示的十六进制数字
<一对字母表示一个十六进制数,这样的一个十六进制数为一个字节>

都加起来然后模除256得到的余数最后求出余数的补码即是本效验字节cc.
<例如:
:0300000002005E9D
cc=0x01+NOT((0x03+0x00+0x00+0x00+0x02+0x00+0x5E)%0x100)=0x01+0x9C=0x9D

C语言描述:
UCHAR cc;
cc=(UCHAR)~(0x03+0x00+0x00+0x00+0x02+0x00+0x5E);
cc++;
>
数据记录

Intel HEX文件由若干个数据记录组成,一个数据记录以一个回车和一个换行结束
<回车为0x0d换行为0x0a>

比如下面的一条数据记录
:10246200464C5549442050524F46494C4500464C33

10 是此行记录数据的字节数目
2462 是数据在内存<将要烧写的eprom地址>中的起始地址
00 是记录类型00(是一个数据记录)
464C 到 464C 是数据
33 是此行记录的效验和

扩展线性地址记录(HEX386)
扩展线性地址记录也可称为 32位地址记录 和 HEX386记录,这个纪录包含高16(16-31位)位数据地址,这种扩展的线性记录总是有两个字节数据,像下面这样:

:02000004FFFFFC
02 是记录的数据字节数目
0000 是地址域这在扩展地址记录中总是0000
04 是记录类型04(扩展地址记录)
FFFF 是高16位地址
FC 是记录效验和,计算方法如下:
01h + NOT(02h + 00h + 00h + 04h + FFh + FFh)

当一个扩展线性地址记录被读到后,扩展线性地址记录的数据区域将被保存
并应用到后面从Intel HEX文件中读出的记录,这个扩展线性记录一直有效,
直到读到下一个扩展线性记录.


绝对内存地址 = 数据记录中的地址 + 移位后的扩展线性地址


下面举例说明这个过程

从数据记录的地址域得到地址 2462
从扩展线性地址记录的地址域得到地址 FFFF
绝对内存地址 FFFF2462

扩展段地址记录 (HEX86)

扩展段地址记录也被称为 HEX86记录, 包含 4-19位的数据地址段,
这个扩展段地址记录总是有两字节数据,如下:

:020000021200EA
02 是 记录中的数据字节数目
0000 是地址域,在扩展段地址记录中,这个域总是0000
02 是记录类型02(扩展段地址的标示)
1200 是该段的地址
EA 是效验和
计算如下:
01h + NOT(02h + 00h + 00h + 02h + 12h + 00h).

当扩展段地址记录被读后,扩展段地址将被存储并应用到以后从Intel HEX文件读出的记录,这个段地址一直有效直到读到下一个扩展段地址记录

绝对内存地址 = 数据记录中的地址 + 移位后的扩展段地址


数据记录中的地址域 移位后扩展段地址记录中的地址域

下面举例说明这个过程

从数据记录的地址域得到地址 2 4 6 2
从扩展段地址记录的地址域得到地址 1 2 0 0
绝对内存地址 0 0 0 1 4 4 6 2

文件结束记录(EOF)
一个Intel HEX文件必须有一个文件结束记录,这个记录的类型域必须是01,
一个EOF记录总是这样:
:00000001FF
00是记录中数据字节的数目
0000这个地址对于EOF记录来说无任何意义
01记录类型是01(文件结束记录标示)
FF是效验和计算如下
01h + NOT(00h + 00h + 00h + 01h).
========================

总结


形如
:BBAAAATTHHHH...HHHHCC

BB: Byte
AAAA:数据记录的开始地址,高位在前,地位在后
因为这个格式只支持8bits,地址被倍乘
所以,为了得到实际的PIC的地址,需要将 地址除以2
TT: Type
00 数据记录
01 记录结束
04 扩展地址记录(表示32位地址的前缀,当然这种只能在 INHX32)
HHHH:一个字(Word)的数据记录,高Byte在前,低Byte在后
TT之后,总共有 BB/2 个字 的数据
CC: 一个Byte的CheckSum


因为PIC16F873A只有4K的程序空间

所以,不会有 TT="04的" Linear Address Record

系统分类: 软件开发  |  用户分类: 其他  |  标签: HEX 格式  |  来源: 整理  | 

点击查看原文

发表评论 阅读全文(861) | 回复(0)

发表于 2008/1/9 10:49:57

0

关于投票

[转载]音频文件格式全介绍

自从PC支持多媒体以来,陆陆续续地出现了许多音频格式。这些格式既有流行的也有不那么流行的,关于它们的来龙去脉,本文向你一一道来。

主流

  目前的主流音频格式其实不少。不同的格式有自己的用途,比如大家都应该很熟悉的MP3格式就是用于聆听用途的。下面我们逐一介绍:

存在便是永恒 - WAV

  WAV是Microsoft Windows本身提供的音频格式,由于Windows本身的影响力,这个格式已经成为了事实上的通用音频格式。不客气地说,它实际上是Apple电脑的 AIFF格式的克隆。通常我们使用WAV格式都是用来保存一些没有压缩的音频,但实际上WAV格式的设计是非常灵活(非常复杂)的,该格式本身与任何媒体数据都不冲突,换句话说,只要有软件支持,你甚至可以在WAV格式里面存放图像。之所以能这样,是因为WAV文件里面存放的每一块数据都有自己独立的标识,通过这些标识可以告诉用户究竟这是什么数据。在WINDOWS平台上通过ACM(Audio Compression Manager)结构及相应的驱动程序(在这里通常称为CODEC,编码/解码器),可以在WAV文件中存放超过20种的压缩格式,比如ADPCM、 GSM、CCITT G.711、G.723等等,当然也包括MP3格式。

图表 - 使用音频编辑软件WaveCN(http://www.wavecn.com)列出Windows安装了的ACM驱动信息

  虽然WAV文件可以存放压缩音频甚至mp3,但由于它本身的结构注定了它的用途是存放音频数据并用作进一步的处理,而不是像mp3那样用于聆听。目前所有的音频播放软件和编辑软件都支持这一格式,并将该格式作为默认文件保存格式之一。这些软件包括:Sound Forge, Cool Edit Pro, WaveLab等等。由于WAV的支持实在是太广泛了,可以说,即使Windows退出历史舞台,WAV格式也不会消亡。

老当益壮 – mp3

  第二个要提到的就是改变了世界的mp3了。这个比喻相信大家都会同意。mp3是Fraunhofer-IIS 研究所(http://www.iis.fhg.de/)的研究成果。mp3是第一个实用的有损音频压缩编码。在mp3出现之前,一般的音频编码即使以有损方式进行压缩能达到4:1的压缩比例已经非常不错了。但是,mp3可以实现12:1的压缩比例,这使得mp3迅速地流行起来。mp3之所以能够达到如此高的压缩比例同时又能保持相当不错的音质是因为利用了知觉音频编码技术,也就是利用了人耳的特性,削减音乐中人耳听不到的成分,同时尝试尽可能地维持原来的声音质量。

图表 - 人耳等响度曲线图,mp3的技术基础。

  衡量mp3文件的压缩比例通常使用比特率来表示。这个术语的英文是bps: bit per second,表示每1秒钟的音频可以用多少个二进制比特来表示。通常比特率越高,压缩文件就越大,但音乐中获得保留的成分就越多,音质就越好。由于比特率与文件大小音质的关系,所以后来又出现了vbr(Variant Bitrate 可变比特率)方式编码的mp3,这种编码方式的特点是可以根据编码的内容动态地选择合适的比特率,因此编码的结果是在保证了音质的同时又照顾了文件的大小,结果大受欢迎。其实mp3的编码标准本来就支持这种压缩方式,但是第一个将此功能实现的反而是一个第三方工具:曾经非常有名的Xing Technology公司(http://www.xingtech.com,当年很多电脑上看VCD听mp3就靠这个公司的Xing Player)推出的Xing Encoder。

  由于mp3是世界上第一个有损压缩的编码方案,所以可以说所有的播放软件都支持它,否则就根本没有生命力。在制作方面,也曾经产生了许多第三方的编码工具。不过随着后来Fraunhofer-IIS宣布对编码器征收版税之后很多都消失了。目前属于开放源代码并且免费的编码器是LAME (Lame Ain't Mp3 Encoder,http://lame.sourceforge.net)。这个工具是公认的压缩音质最好的mp3压缩工具。另外,几乎所有的音频编辑工具都支持打开和保存mp3文件。最近,Fraunhofer-IIS对之前不收取版权费的mp3解码器也征收了版权费。此举大有Fraunhofer-IIS意识到mp3已经在没落,趁还能收到钱最后捞一把的意思。应该说,到了现在,MP3确实显现出疲态了。许多新一代的编码技术都已经能在相同的比特率下提供比MP3优越得多的音质。特别是音乐发烧友对mp3的音质更是嗤之以鼻。不过由于mp3的影响力实在是太大了,支持mp3的软件多如牛毛,更别提众多支持mp3的硬件播放器,如MPMAN,DiscMan, CD/VCD/DVD机等等。一句话,它依然是世界上最流行的音频压缩技术,所以要它真正退出舞台相信还有好一段时间。

图表 - Lame的其中一个前端:RazorLame(http://www.dors.de/razorlame

老树发新花 - mp3PRO

  为了使mp3能在未来仍然保持生命力,Fraunhofer-IIS研究所连同Coding Technologies 公司(http://www.codingtechnologies.com)还有法国的Thomson multimedia公司(http://www.thomson.net)共同推出了mp3PRO。这种格式与之前的mp3相比最大的特点是能在低达64kbps的比特率下仍然能提供近似CD的音质(mp3是128K)。该技术称为SBR(Spectral Band Replication),它在原来mp3技术的基础上专门针对原来mp3技术中损失了的音频细节进行独立编码处理并捆绑在原来的mp3数据上,在播放的时候通过再合成而达到良好的音质效果。

图表 - SBR技术在音频编码/解码过程中的应用

  mp3PRO格式与mp3是兼容的,所以它的文件类型也是mp3。mp3PRO播放器可以支持播放 mp3PRO或者mp3编码的文件;普通的mp3播放器也可以支持播放mp3PRO编码的文件,但只能播放出mp3的音质。但是,虽然mp3PRO是一种优秀的技术,由于技术专利费用的问题以及其他技术提供商比如Microsoft的竞争,mp3PRO并没有得到很大的流行。大家可以从Coding Technologies的网站下载Demo播放/压缩工具和Winamp的播放插件。目前也有许多专业音频编辑软件比如Cool Edit Pro 2.0支持mp3PRO格式,但播放器除了刚才说的和Music Match Juke Box就基本没有了。最关键的是由于Microsoft的媒体播放机不支持,使得mp3PRO失去了流行的机会。前段时间Coding Technologies推出了最新的MPEG-4 aacPlus,通过将SBR技术应用在AAC(Advanced Audio Codec)技术中而获得更卓越的音质。Coding Technologies并表示SBR将会成为MPEG-4的核心技术。但缺乏支持的技术到底能走多远,谁也不清楚。

图表 - THOMSON mp3PRO 播放器

网络流媒体鼻祖 - Real Media

  互联网大行其道之后,Real Media 出现了。这种文件格式几乎成了网络流媒体的代名词。RA、RMA这两个文件类型就是Real Media里面向音频方面的。它是由Real Networks公司(http://www.realnetworks.com)发明的,特点是可以在非常低的带宽下(低达28.8kbps)提供足够好的音质让用户能在线聆听。这一特点在互联网的早期简直是广大网虫的福音。也就是因为出现了Real Media之后,相关的应用比如网络广播,网上教学,网上点播等等才浮出水面,形成了一个新的行业。

  网络流媒体的道理其实非常简单,简单说就是将原来连续不断的音频分割成一个一个带有顺序标记的小数据包,将这些小数据包通过网络进行传递,在接收的时候再将这些数据包重新按顺序组织起来播放。如果网络质量太差,有些数据包收不到或者延缓了到达,它就跳过这些数据包不播放,以保证用户在聆听的内容是基本连续的。就是这么简单的道理,促成了网络上的又一个传奇。

  由于Real Media是从极差的网络环境下发展过来的,所以Real Media的音质并不怎样,包括在高比特率的时候,甚至差于mp3。特别是有相当长的一段时间Real Networks公司只顾着往Real Media里面加入各种各样的新特性比如广告插播什么的,而忽略了随着网络速度的提升和宽带网的普及,用户对质量的要求也不断提高。后来Real Networks通过与SONY公司合作,利用SONY的ATRAC技术(http://www.minidisc.org/,也就是MD的压缩技术)实现高比特率的高保真压缩,但这些举措始终都带给用户一个姗姗来迟的感觉。由于Real Media的用途是在线聆听,并不适于编辑,所以相应的处理软件并不多。一些主流软件可以支持Real Media的读/写,可以实现直接剪辑的软件是Real Networks自己提供的捆绑在Real Media Encoder编码器中的Real Media Editor。但功能非常有限。这一点与现在的Windows Media相比是两个世界。

图表 - Real One Player, 最新的Real Media播放器

霸气十足 - Windows Media

  任何事情都少不了Microsoft的份。在意识到网络流媒体之于互联网的重要性之后,Microsoft立马就推出了Windows Media与Real Media相抗衡,同时开始对其他音频压缩技术说不:一律不提供直接支持。到了Windows XP版本还把原来提供的mp3压缩功能都拿掉了。

  Windows Media (http://www.microsoft.com/windows/windowsmedia)也是一种网络流媒体技术,本质上跟Real Media是相同的。但Real Media是有限开放的技术,比如rtsp(Real Time Stream Protocol实时流协议)这样的网络传输协议是提交到网络工作组RFC网络协议集的其中一个(编号RFC2326),而Windows Media则没有公开任何技术细节,据称是为了更好地进行版权保护,因此要完全封闭,还创造出一种名为mms(Multi-Media Stream多媒体流)的传输协议。所有这些事情综合起来可以看出Microsoft意图一统江湖的野心。

  最初版本的Windows Media并没有得到什么好评,特别在音质方面更被网络上那些“金耳朵”的网友所不齿。不过在更新了几个版本之后,目前最新的Windows Media 9技术携带着大量的新特性并在Windows Media Player的配合下表现已经不可同日而语。特别在音频方面,Microsoft是唯一一个能提供全部种类音频压缩技术(无失真、有失真、语音)的解决方案,大有囊括一切的势头。这也是微软的一贯特色:虽然我的东西质量不是最好的,但肯定是最方便,集成度最高的。目前Windows Media还是处于推广期,播放器和编码器可以免费下载,服务器端捆绑在Windows服务器版中,不另外收费。这些手段正在不断提升其市场占有率。而且由于Microsoft的影响力,支持Windows Media的软件非常多。虽然它也是用于聆听用途,不能编辑,但几乎所有的Windows平台的音频编辑工具都对它提供了读/写支持,至于第三方播放器更是无一例外了,连Real Player都支持其播放。通过Microsoft 自己推出的Windows Media File Editor可以实现简单的直接剪辑。最近,Microsoft还推出了Windows XP Media Center版本,通过在Windows XP中捆绑Windows Media 9技术以及相关娱乐媒体软件来加强Windows作为家庭娱乐中心的作用。如果Microsoft继续保持其在操作系统特别是桌面操作系统的垄断地位的话,Windows Media的未来肯定是一片光辉。

图表 - 最新的Windows Media Player 9,带有大量的网络特性

电脑与电子乐器的桥梁 – MIDI

  MIDI技术本来不是为了电脑发明的。该技术最初应用在电子乐器上用来记录乐手的弹奏,以便以后重播。不过随着在电脑里面引入了支持MIDI合成的声音卡之后MIDI才正式地成为了一种音频格式。有很多人都误以为MIDI是用来记谱的,这是错的。MIDI的内容除了乐谱之外还记录了每个音符的弹奏方法,所以有些MIDI文件播放起来不好听,而某些则有良好的效果。MIDI本身也有两个版本,General MIDI和General MIDI 2。在MIDI上还衍生了许多第三方的非标准技术,比如非常著名的:X-MIDI(或者叫XG),这是由日本YAMAHA公司(http://www.yamaha.com)发明的,在原有的MIDI具有128种乐器的基础上扩充到了512种,并增加了更多的演奏控制,配合YAMAHA自己的波表播放软件或支持X-MIDI的硬件可以还原出非常动听和接近真实乐器效果的音乐。另外就是为了弥补MIDI中通过声音合成得到的乐器声音始终比不上真实乐器声音这一缺点而由 General MIDI Association(MIDI规范的国际组织,http://www.midi.org)推出的DLS(Downloadable Sound)技术,该技术通过给MIDI文件附带上真实乐器的录音(采样)而使MIDI文件能营造出接近真实乐器效果的声音,不过该技术的主要问题是带上乐器采样之后的MIDI文件实在是太大了,通常情况下都有4兆字节以上(这样的大小用户当然是去找mp3了),影响了该技术的普及。

  由于MIDI具有的优点和特殊性,因此可以相信这是一种在相当长的时间里都会继续存在的技术。普通的MIDI 文件许多播放器都支持,但要达到好的效果就必须安装软波表,比如曾经很出名的WinGroove、Roland Virtual Sound Canvas和YAMAHA S-YXG Player。随着Microsoft与Roland(http://www.roland.com)合作在DirectX里面增加了 DirectMusic之后软波表就变成了Windows系统的标准配置了。需要注意的是对于X-MIDI格式来说必须使用YAMAHA自己推出的播放器才能得到良好的播放效果。比如当年曾经卖得很火的使用YAMAHA YMF724/740做芯片的声音卡便带有X-MIDI的播放器S-YXG100。

图表 - Roland Virtual SoundCanvas软音源界面

图表 - YAMAHA S-YXG50软音源播放器界面,怎么看都觉得比Roland的好看。

图表 - YAMAHA S-YXG50 XGPlayer软音源播放器界面,这个版本支持的播放控制更多。

  如果要对MIDI文件进行编辑,可以使用的比较出名的软件是Cake Walk Pro和Sonar(http://www.cakewalk.com); X-MIDI则要使用YAMAHA XGWorks。另外还有一些曲谱软件,比如Sibelius(http://www.sibelius.com)。不过这些软件都是非常昂贵的。国产的相关软件都有一些,而且支持简谱,比如TT作曲家(http://www.centrmus.com)。

开放、免费 - Ogg Vorbis

  开放源代码的Ogg Vorbis(http://www.xiph.orghttp://www.vorbis.com),作为开放源码向专利技术下的第一封战书出现在世人的面前。在经历了一些变故之后,Ogg Vorbis终于在2002年7月释出了1.0版本。由于开放源码的东西向来都缺少枪手为其摇旗呐喊,所以国内并不是有很多的人了解Ogg Vorbis。Ogg Vorbis 是一种音频压缩格式,类似于MP3等现有的通过有损压缩算法进行音频压缩的音乐格式。但有一点不同的是,Ogg Vorbis格式是完全免费、开放源码且没有专利限制的。Vorbis 是这种音频压缩机制的名字,而Ogg则是一个计划的名字,该计划意图设计一个完全开放源码的多媒体系统。开放源代码能为用户在经济上带来收益,这一点很多人都知道了,但不能忘记的是Ogg Vorbis的技术也不是盖的。Ogg Vorbis文件的扩展名是.OGG。这种文件的设计格式是非常灵活的。它的最大特点是在文件格式已经固定下来后还能对音质进行明显的调节和新算法。现在创建的OGG文件可以在未来的任何播放器上播放,因此,这种文件格式可以不断地进行大小和音质的改良,而不影响旧有的编码器或播放器。在压缩技术上, Ogg Vorbis的最主要特点是使用了VBR(可变比特率)和ABR(平均比特率)方式进行编码。与MP3的CBR(固定比特率)相比可以达到更好的音质。 Ogg Vorbis其他技术特性还包括:支持类似于MP3的ID3信息,但比MP3要灵活而又完整得多,实际上可以填写随意多的信息。Vorbis还具有比特率缩放功能,可以不用重新编码便可调节文件的比特率。Vorbis文件可以被分成小块并以样本粒度(granularity,专业术语,指数据可以被分割的最小尺寸)进行编辑;Vorbis支持多通道(大于2)音频流并使用了独创性的处理技术;Vorbis文件可以以逻辑方式相连接等。

  在经济利益的推动下,Ogg Vorbis从一诞生就获得了各方的关注,许多著名音频软件,包括象出品Sound Forge的Sonic Foundry(http://www.sonicfoundry.com)这样的工业巨头也在软件中增加了对Ogg Vorbis的支持,而对于本来就是免费的或者开放源码的音频相关软件比如WinAMP(http://www.winamp.com)、CDEX(http://cdex.sourceforge.net)等等更是第一时间在软件中加入了Ogg Vorbis的支持。可以这样说,Ogg Vorbis在业界的支持是非常广泛的。简单的举个例子,著名的游戏闪点行动(Operation Flash Point)就是使用Ogg Vorbis作为游戏所有声音和音乐的保存格式的。

  当然,软件上的支持对于一种音乐格式来说还是一厢情愿的事情。Ogg Vorbis是否能够真正流行起来,关键还是要靠广大用户和音乐制作人。可喜的是,目前在网络上Ogg Vorbis格式的应用已经日渐增多,而且已经开始向其他方面发展,比如游戏、多媒体应用的配乐等。目前Ogg Vorbis取得的最大成就是获得著名的BBC广播公司的认可,使用Ogg Vorbis音频流在线播放节目。另外,在硬件方面也出现了支持播放OGG格式的播放器。

  Ogg Vorbis几乎得到所有的音频编辑器的支持。另外,作为一般的编码使用,可以在http://www.vorbis.com/download_win.psp网址可以下载到OggDrop/OggDrop XPd。播放可以使用WinAMP播放。现在Ogg Vorbis已经是WinAMP标准配置之一。

图表 - OggDrop XPd, Ogg Vorbis的编码器

生不逢时 – VQF

  VQF实际指的是TwinVQ(Transform-domain Weighted INterleave Vector Quantization)技术,是日本Nippon Telegraph and Telephone集团属下的NTT Human Interface Laboratories(http://sound.splab.ecl.ntt.co.jp)开发的一种音频压缩技术。该技术受到著名的YAMAHA公司的支持。VQF或TVQ是其文件的文件类型名。VQF其实是一种比较先进的技术,通常认为 96kbps VQF 与 128kbps MP3 质量相同。下图是MP3与VQF的一个质量对比示意图:

MP3 128Kbps

 

Original 1411Kpbs

 

VQF 96Kbps

 

 

  虽然说质量相同,但由于VQF使用的是不同的技术,从这个图上大家应该可以感受到两者的差别。

  VQF在YAMAHA公司的大力推动下也曾有相当的市场份额。不过时至今日,VQF已经在逐步淡出舞台。原因是多方面的。首先,VQF 是专门开发来用于低比特率情况的,对于录音室这种需要高保真的环境就无能为力了。换句话说,VQF仅适合一般播放用途。这使得VQF的应用范围相对狭窄。其次,VQF没有得到操作系统平台的直接支持,就像mp3PRO那样,Windows自始至终都不支持直接播放VQF文件,使得VQF得不到大范围的推广。再次,VQF是一种封闭的专利技术,导致市场所有与VQF相关的编码器、播放器无一不是YAMAHA和NTT的产物,这一点极大地妨碍了VQF的发展。最著名的一个例子就是一个曾经致力于推广VQF技术的网站:http://www.vqf.com宣布由于VQF的衰落而停止更新,等待高比特率 (192kbps或以上)的VQF格式出台后再作打算。虽然YAMAHA公司已经成功地将VQF提交到了MPEG组织,并成为MPEG-4标准的一部分,但这些努力也是无济于事的。因为MPEG-4本来就是一个面向对象的大包容的平台,与MPEG-1和MPEG-2这样专门针对某种具体的技术而制定的标准已经不是一回事了。

  要播放VQF软件,可以通过给WinAMP增加支持插件来实现,也可以使用YAMAHA自己的SoundVQ Player播放器。编码软件可以使用YAMAHA SoundVQ Encoder或者NTT TwinVQ Encoder。后者的优化比较好,速度比前者快一些。

图表 - TwinVQ 编码器,非常简单的界面。

非主流

最热门的非主流 - MOD

  Module(简称mod)是数码音乐文件,由一组samples(乐器的声音采样)、曲谱和时序信息组成,告诉一个mod播放器何时以何种音高去演奏在某条音轨的某个样本,附带演奏一些效果比如颤音等。因而mod与纯正的象WAV或AU那样的没有包含时序信息的样本文件不同,与象MIDI文件那样的不携带任何附加样本/乐器的文件也不同(与现在支持DLS技术的MIDI倒是有点相似,不过mod的体积要比 DLS MIDI小得多。)。mod起源于Amiga计算机,当时的文件扩展名是MOD,为了区分具体的类型和整个结构体系,通常使用mod来表示整个 Module格式体系。由于该格式起源很早,因此曾经非常流行,因为mod提供了一种具有可以接受的音质水平而又非常廉价的制作音乐的方法。而且这种文件的音质效果对于当时的电脑硬件水平来说效果比MIDI要好,文件的体积也不大,好处是轻而易见的。随着高质量的音响硬件的使用,新一代的mod的声音质量甚至可以提升到接近专业设备的水平。这使得mod成为一种介乎于象WAV或VOC那样的纯正样本数据文件和象General MIDI那样的纯正时序信息文件之间的混合体,成为一种比较灵活的音频格式。

  但是,mod的最大缺点是具体的格式变化太多。由于原本的MOD格式只支持4条音轨,而且MOD格式并没有版权限制,导致后来涌现了一大堆在MOD的基础上改进而来的格式,比如xm这种支持高达32条音轨128种采样的格式。但由于mod格式的不统一,最终结果就是这种格式在商业领域没有多大的作为。Windows平台上曾经有一个非常好的播放器名为MOD4WIN,后来也停止了开发。目前支持播放Mod的播放器主要有WinAMP,比较新的制作软件则有Sk@le Tracker(http://www.skale.org),是一个免费的软件。大家如果对这种格式产生兴趣的话可以到http://www.modplug.com 看看,这里是最齐全的关于mod的站点。

图表 - 非常华丽的Sk@le Tracker,目前还是0.75Beta版本

图表 - 同样有着不错界面的MOD4WIN的最后版本,也是免费软件。

一个也不能少 - Monkey's audio

  Monkey's Audio(http://www.monkeysaudio.com)是一种无损压缩技术。他并不是由什么大公司发明的,完全是一个个人业余兴趣作品。为了使Monkey's Audio能有更好的发展,现在这个软件已经公开了源代码。

  这种压缩格式的特点是无损压缩,也就是说对压缩数据进行还原之后得到的数据与原来的数据是完全相同的。该格式的特点尤其适合那些拥有一对“金耳朵”并且一直对mp3的音质耿耿于怀的音乐发烧友。后者有人会问,要无损压缩,我随便找个压缩软件比如WINRAR都可以达到不错的效果了,还要这种格式干嘛?所以这里要澄清一个误解:使用普通的压缩软件进行压缩无疑是可以得到不错的压缩效果,有时候甚至更优于使用Monkey's Audio,但是压缩软件生成的压缩包必须要先解压还原之后才能播放里面的内容,而Monkey's Audio这种无损压缩编码得到的文件可以直接使用播放器(比如WinAMP)进行播放。Monkey's Audio的压缩效果大约在2:1左右,也就是说压缩结果是原来的二分之一大小。一张CD大约需要330MB左右的空间存放,相比之下还是比较占空间的。由于这个原因,所以对音质要求不是太高的人通常都选择VBR方式的mp3而不是选择它。

  与Monkey's Audio类似的编码格式还包括WavPack、RKAU、Shorten等等。由于相对不是那么出名,又或者在某些方面不够Monkey's Audio做得好,因此获得的关注程度就逊色很多。

图表 - Monkey's Audio的压缩/解压器界面。那个猴子图案挺有趣的。

苹果专用 - aiff

  刚才我们在介绍WAV格式的时候已经提到过AIFF了。它是Apple苹果电脑(http://www.apple.com)上面的标准音频格式,属于QuickTime技术(http://www.apple.com/quicktime)的一部分。这一格式的特点就是格式本身与数据的意义无关,因此受到了Microsoft的青睐,并据此搞出来WAV格式。AIFF虽然是一种很优秀的文件格式,但由于它是苹果电脑上的格式,因此在PC平台上并没有得到很大的流行。不过由于Apple电脑多用于多媒体制作出版行业,因此几乎所有的音频编辑软件和播放软件都或多或少地支持AIFF格式。只要苹果电脑还在,AIFF就始终还占有一席之地。

  由于AIFF的包容特性,所以它支持许多压缩技术。这里顺带说说的是在苹果平台上原生的流媒体压缩技术是 QDesign公司(http://www.qdesign.com)的QDMC,QDesign Music Codec。据官方资料介绍,QDesign Music Codec 2能在全带宽立体声的设置下将音频压缩为原来的百分之一大小。与其他纯粹基于知觉音频编码技术(mp3等)不同的是,QDesign Music Codec 2 使用了新的专利的算法技术,因此,可以在modem的速度上达到相当的音频质量。该技术最大支持128kbps。不过在笔者的实验结果看来,该技术的唯一过人之处就是在任何比特率下都能提供44khz立体声的输出。不过脱离了音质的输出又有什么意思呢?

图表 - Quick Time 6 的播放器,正在播放aiff格式的文件。

聊胜于无 – au

  au 是unix下一种常用的音频格式,起源于Sun 公司(http://www.sun.com)的 Solaris系统。这种格式本身也支持多种压缩方式,但文件结构的灵活性就比不上aiff和WAV。这种格式的最大问题是由于它本身所依附的平台不是面向广大消费者的,所以知道这东西的人并不多。但这种格式毕竟出现了很多年,所以许多播放器和音频编辑软件都提供了读/写支持。不过时至今日,在本人看来实在意义不大,因为这个文件格式对目前许多新出现的音频技术都无法提供支持,起不到类似于WAV和aiff那种通用性音频存储平台的作用。目前可能唯一必须使用au格式来保存音频文件的就是java平台。

曾经辉煌 – VOC

  当年创新公司(Creative, http://www.creative.com)的声音卡成了PC平台上的多媒体声音卡事实标准的时候,VOC格式也跟同着成为了DOS系统下面的音频文件格式标准。因为它是创新公司发明的音频文件格式。当然,现在已经很少见到了。由于该格式属于硬件公司的产品,因此不可避免地带有浓厚的硬件相关色彩。这一点随着Windows平台本身提供了标准的文件格式WAV之后就变成了明显的缺点。加上Windows平台不提供对VOC格式的直接支持,所以VOC格式很快便消失在人们的视线中。不过现在的很多播放器和音频编辑器都还是支持该格式的,道理就跟au一样:出来的早嘛!

记住你的声音 - vox

  这个格式比较特殊。Vox引申是voice的意思,表明了该格式专门面向语音音频。它是由Dialogic公司(现已被Intel公司收购)发明的,使用ADPCM压缩技术进行压缩,主要应用于语音通信方面。由于面向语音压缩,因此该技术专门针对低采样律进行优化。该格式仅支持单声道16位音频,并达到了4:1的压缩比(它将每个音频有损压缩为4个比特)。该格式最大的失败在于没有文件头,无法在音频文件中储存相关的信息。如果你忘记了当初是以什么采样频率录的音,那就是一场恶梦。这个文件格式最常见于一些利用互联网进行语音通信的软件,比如PC2Phone。主流音频编辑器一般都支持这个格式。

  在介绍了这么多音频媒体格式之后,我们来看看下面的特点概括列表:

媒体格式

扩展名

相关公司或组织

主要优点

主要缺点

适用领域

WAV

wav

Microsoft

可通过增加驱动程序而支持各种各样的编码技术。

不适于传播和用作聆听。支持的编码技术大部分只能在Windows平台下使用。

音频原始素材保存。

mp3(MPEG 音频)

mp3

(包括mp2

mp1

mpa等)

Fraunhofer-IIS

在低至128kbps的比特率下提供接近CD音质的音频质量。广泛的支持。

出现得比较早,因此音质不是很好。

一般聆听和高保真聆听。

mp3PRO

mp3

Fraunhofer-IIS

CodingTechnologies

Thomson Multimedia

在低至64kbps的比特率下提供接近CD音质的音频质量。

专利费用较高,支持的软件和硬件不多。

一般聆听和高保真聆听。

RealMedia

ra, rma

RealNetworks

在极低的比特率环境下提供可听的音频质量。

不适于除网络传播之外的用途。音质不是很好。

网络音频流传输。

Windows Media

wma, asf

Microsoft

功能齐全,使用方便。同时支持无失真、有失真、语音压缩方式。

失真压缩方式下音质不高。必须在Windows平台下才能使用。

音频档案级别保存,一般聆听,网络音频流传输。

MIDI

MID

MIDI

RMI

XMI

MIDI Association

音频数据为乐器的演奏控制,通常不带有音频采样。

没有波表硬件或软件配合时播放效果不佳。

与电子乐器的数据交互,乐曲创作等。

Ogg Vorbis

OGG

Xiph Foundation

在低至64kbps的比特率下提供接近CD音质的音频质量。开放源代码,不需要支付使用许可费用。跨平台。

发展较慢。推广力度不足。

一般聆听和高保真聆听。

VQF

vqf

tvq

NTT Human Interface Laboratories

在低至96kbps的比特率下提供接近CD音质的音频质量。

相关软件太少。

一般聆听。

MOD(Module)

mod s3m it xm mtm ult 669 等

Amiga和mod社区

音频数据由乐器采样和乐谱、演奏控制信息组成。

具体的文件格式太多影响推广和使用。

一般聆听。

Monkey's Audio

ape

Matthew T. Ashland

无失真压缩。部分开放代码。

由于是个人作品,使用上存在一定风险。

高保真聆听和音频档案级别保存。

aiff

aiff

Apple

可通过增加驱动程序而支持各种各样的编码技术

一般限于苹果电脑平台使用。

苹果电脑平台下音频原始素材保存。

au

au

Sun

Unix和Java平台下的标准文件格式。

支持的压缩技术太少且音频数据格式受文件格式本身局限。

Unix和Java平台下音频原始素材保存。

voc

voc

Creative

对于目前的音频技术来讲,该格式已经没有什么优点了。

与具体的硬件相结合因此没有延续性。

淘汰。

vox

vox

Dialogic

面向语音的编码。

文件格式缺乏足够的信息,因此不适应作存档用途。技术比较早期。

淘汰。

 

  当然,无论一种音频格式目前是否主流,在未来都有可能被新出现的更先进的技术取代。不过从目前的形势来看,音频技术已经发展到了一个成熟的、优胜劣汰的阶段。那些没有技术优势的音频格式将很快就会被市场淘汰掉,而存活下来的音频技术由于技术性能方面已经非常接近且基本上不存在继续发展的空间,将会努力从网络功能和应用功能两方面去吸引用户并打倒竞争对手。因此,实力强大的商业公司在这方面有着充分的优势。可喜的是由于开放源代码运动的发展,我们在商业技术之外还可以有另外一个选择。所以,音频技术的发展可以肯定的是只会剩下一个商业公司的技术和一个开放源码的技术并存。就像现在的操作系统之争那样。

  作为一个音频技术的用户,如何选择适合自己的音频格式是一个比较头疼的事情。有些人趋向音质要求高;有些则需要丰富的附加功能。要做出自己的选择,则必须首先搞清楚自己需要的是什么。另外,需要提醒大家的是,随着中国电子政务的铺开以及Linux在电子政务中的应用,我们必须重视开放源代码这一不可忽视的要素,否则由于选择错了音频格式而导致随后工作的推倒重来那可是严重的经济损失。

  希望大家看完这篇文章后能对目前繁多的各种音频格式有一个大致的了解,并能正确地作出适合自己的选择。

系统分类: 自由话题  |  用户分类: 其他  |  标签: 无标签  |  来源: 转贴  | 

点击查看原文

发表评论 阅读全文(543) | 回复(0)

Total , Page /