2009年8月23日星期日

二十二条商规(里斯&特劳特著)

一、市场中的领袖法则(Law of Leadership)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
许多人们都认为,市场的关键是说服他人自己拥有一件更好的产品或者能够提供更优质的服务。
这就错了。如果你的市场份额较小而因此需要与大的公司进行竞争,那么你的市场策略就需要深入考虑并作出调整了。因为,你已经触犯了市场的领袖法则(Law
of Leadership)。
在市场中最为本质的一点就是创造某一个类别的市场,使得自己能够在该类别的市场中成为第一。这就是市场中的领袖法则:It
is better to be the first than to be better.
这个道理是比较明显的,当你拥有一件产品,并且占据市场中的领袖位置时,要比说服他人说你有一个比目前市场上第一的产品还要好的产品容易的多。
我们可以通过一个例子来说明这个问题:
(1) 谁是第一个单独飞行穿越大西洋的人?
(2) 谁是第二个单独飞行穿越大西洋的人?
显然,大多数人都知道第一个单独飞行穿越大西洋的人是Charles
Lindbergh。但是大多数人却无法记住谁是第二个人。第二个人是Bert
Hinkler。他飞行所用的时间更少,耗费的燃料更少。但是又有几个人知道Bert
Hinkler呢?
在当今竞争的环境中,一个Me-too的产品成为市场中更大的、更能够赢利的品牌的希望很小。在许多类型的市场中,领袖地位的品牌往往是第一个进入该市场的公司。比如:在汽车租赁市场,是Hertz;在计算机市场,是IBM;在可乐市场,是Coca-Cola。
在第二次世界大战之后,Heineken是第一个引入美国的啤酒。大约50年之后,在该市场上,谁是第一呢?事实上,当时美国啤酒市场上已经有425种品牌,它们中肯定有一些味道、口味比Heineken要好一些,但是Heineken仍然是啤酒市场的领袖,占据了大约30%的市场。
但是并不是每一个第一个进入市场的品牌都能够成为领袖。比如Frosty
Paws是第一个为犬制作的冰淇淋。虽然犬非常喜欢,但是养犬的人却认为犬不需要冰淇淋,犬只要能够能够舔盘子或者啃骨头就已经非常高兴了。
领袖法则对任何产品、任何品牌、任何市场类型都是比较适用的。比如,你可能不知道美国第一个大学是哪一所?人们常常将该市场中处于领袖地位的大学认为就是第一个。那么,哪一所是最为著名的大学呢?是哈佛大学。事实上,哈佛大学就是美国第一所建立的大学。
这里有更多的例子来说明第一个进入某一类型市场的产品或者公司往往会成为该类型市场的领袖。
Jeep是第一个四轮越野车型;
Acura是第一个豪华日本车;
IBM是第一个拥有Main Frame 计算机的公司;
Sun MicroSystems是第一个拥有Work Station的公司;
现在,Jeep、Acura、IBM、Sun在各自的市场上,都是领袖品牌。
还有:
第一个引入美国的微型车是Chrysler。现在Chrysler在车辆市场上占有10%的份额,而在微型车市场上占有50%的份额;
第一个桌面型激光打印机是HP公司引入的。现在HP公司在个人电脑市场上拥有5%的份额,在激光打印机市场,占据45%的份额。
相似的例子还有很多,Gillette是第一个安全剃刀品牌,Tide是第一个衣物清洁剂品牌;Hayes是第一个计算机调治解调器品牌。而现在,它们都是领袖品牌。
第一个品牌往往成为领袖品牌,其中一个原因,就是第一个品牌名称往往起到的是种子的作用。如Xerox,是第一个普通纸复印机的品牌。人们往往站在一个
Sharp或者Ricoh的复印机前,说:我想得到一个Xerox复印件。同样的,在Cola店中,他们会给你一个Cola,尽管他们销售的都是
Pepsi-Cola。人们往往使用第一个品牌的名称来代表他们所希望得到的物品,尽管这些物品根本就不是他们所说的东西。比如人们还会说:Fedex这个邮包到东海岸。所以当你希望能够创造一个新的市场类型时,首先请设计一个能够起到种子作用的词(种子)作为代表。
可以说,市场首先是感知(Perception)的战争,而不是产品(Product)的战争。
Neil Armstrong是第一个在月球上行走的人,谁是第二个人呢?
Roger Bannister是第一个一英里跑进四分钟的人,谁是第二个人呢?
George Washington是美国第一位总统,谁是第二位呢?
Thomass 是第一个英国松饼品牌,谁是第二个呢?
Gatorade是第一个运动饮料,谁是第二个呢?
如果你是第二个进入某一类型市场的,那么是不是注定就会象Buzz Aldrin、John
Landy、John
Adams、一些不知名的松饼品牌或者一些不知名的运动饮料一样,逐渐消失呢?不然。
幸运的是,我们还有其他市场法则。但重要的是,永远记住:
It is much better to be the first than to be better
二、市场中的类别法则(Law of Category)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
在Law of
Leadership中,我们都能够非常容易地说出谁是第一个单独飞越大西洋的人,但是可能不知道谁是第二个?但是谁是第三个单独飞越大西洋的人呢?
人们通常会想:如果连第二个都不知道,更加无从知道第三个人了。不然。很多人都知道第三人是Amelia
Earhart。并非因为她是第三个,人们才记得;而是因为她是第一个飞越大西洋的女性。
因此,如果你不是第一个进入某一个类别的市场的,不要放弃。在该市场中创造出一个新的类别的市场,使得你成为第一个就行了。只要你尽心去想,你就可以做到。
举例来看,在IBM在计算机市场上占据第一的位置后,大量的公司进入了这个市场,如Control
Data、General Electric、Honeywell、NCR、RCA、Sperry、Snow White、the Seven
Dwarf等。但是,许多公司并非努力成为"世界上的第二大计算机公司",而是在计算机市场中创建了一些新的类别,使得它们自己能够在新的类别的市场上成为第一。比如IBM虽然是计算机中的第一,但是DEC却在微型计算机市场上是第一;Tandem在容错计算机市场上是第一;Stratus成为第一个容错微型计算机的公司。Cray
Research在高端,第一次提出了超级计算机的概念并生产出产品,Convex将高端和微型结合起来,第一个生产了微型超级计算机产品。
还有其他方式,来创造一个新的市场类别。比如Dell,是在计算机市场上,第一个使用电话销售方式的计算机公司。Lears不是第一个妇女杂志,但是第一个面向成熟女性的杂志。
因此,当你准备开发或者将一个新的产品投放市场时,首先应该问一问自己:该产品要是第一,应该是在哪一类市场,而不是该产品是不是比同类别的产品有哪些更好的地方。换句话说,该产品在哪一个类别的市场上是第一,而非第二。
当你已经确信你的产品在你创造的市场类别中是第一的话,那么就去推动这个市场。DEC告诉人们应该去买一台微型计算机,而并非直接告诉人们,应该去买一台
DEC微型计算机。同样的,Hertz出售Rent-a-Car服务,Coca-cola出售饮料,而从未说,我们出售的是Hertz的汽车租赁服务或者是Coca-cola的饮料等。
事实上,你在这个市场上没有竞争对手,因为你在这个市场上是第一。
If you cant be the first in a category, set up a new category that you can
be first in.
三、市场中的头脑法则(Law of Mind)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
世界上第一台个人计算机是MITS Altair8800。根据市场中的领袖法则(Law of
Leadership),MITS Altair8800应该在个人计算机市场上成为第一品牌,但却不是。
Du
Mont发明了世界上第一个商业电视机。Hurley引进了第一台洗衣机,但是这些都没有成为Leader。
难道说,前面市场中的领袖法则有错误吗?不是。这仅仅是因为头脑法则改变了它。在人们的头脑中占据第一要比在市场中成为第一要有效的多。在头脑中占据第一就能够在市场上成为第一,但是在市场上成为第一只是能够使你较他人更容易地成为人们头脑中的第一。
举例来说,IBM在Main Frame计算机市场上不是第一个,Remington
Rand是第一个Main Frame,但是IBM在人们的头脑中就是Main
Frame的第一,因此也赢得了这场竞争。
以后将介绍市场中的感知法则(Law of
Perception)。如果市场是感知的战争,而不是产品的战争的话,那么,首先赢得头脑比首先赢得市场更重要。
可能某些人有一些想法或者概念,并且他们相信这些想法或者概念能够带来巨大的变革,或者实际上就是这样。问题是如何将这些想法或者概念让大家认可,也即让这些想法或者概念进入并占据人们的头脑。
传统的解决方法就是Money。就是利用Money来建立产品生产和服务的机构,或者利用Money来举办新闻发布会、参加展览会或者进行广告宣传等。不幸的是,这就会给人们造成更为深刻的印象,认为钱(Money)是解决这个问题的唯一方式。
Xerox
是复印机市场的领导者,但是它希望进入计算机市场。但是很不幸,25年之后,Xerox花费了20亿美金,却什么也没有得到。Wang在字处理方面是第一,但是尽管它花费了几百万美金来推动自己的计算机和微型计算机市场时,Wang在人们头脑中还是一个字处理公司。
如果你想改变计算机的一些东西,把它拆开并改变即可。但是如果你想改变人们头脑中的一些东西,还是免了吧。一旦人们头脑中已经形成一种印象,是很难改变的。在市场中最为耗费的一件事情就是力争改变人们的印象。
如果你希望改变人们头脑中的印象,是不能采用逐渐深化的方法来做的,你需要摧枯拉朽、秋风扫落叶般的方式,要改变,就在人们头脑中,彻底地推翻旧印象,建立新的印象。为什么这样做?因为人们一旦对你形成了一种印象,那么你在人们的头脑中就是这样一类人,而不是另外一类人。这种印象是很难改变的。
Apple
在人们头脑中形成的印象得益于该公司简短、易记的名称。而其他竞争者的名称则相对复杂和冗长。早期,五大个人电脑品牌依次是:Apple
II、Commodore Pet、IMSAI 8080、MITS Altair 8800和Radio Shack
TRS-80。显而易见,Apple II是最简单的,也是最容易记忆的。
It is better to be first in mind than in the marketplace.
四、市场中的感知法则(Law of Perception)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
市场不是产品的战争,而是感知的战争。
许多人认为,市场是产品的战争,最优质的产品最终会赢得市场的胜利。事实上,这仅仅是一个幻想,没有什么事实依据。显而易见,没有最优的产品,优劣与否是相对的,不是绝对的。大多数市场人员认为真理在他们这边,他们认为自己的产品是最优的,力求通过比较产品的优劣来赢得市场的胜利。殊不知,较好的产品,也是因为由于人们的感知而称其为较好的产品。
让我们通过一个实例来说明,市场是感知的战争,而非产品。
在美国,三大畅销日本车依次是HONDA、TOYOTA、NISSAN。许多人认为在这三大品牌之间的竞争是基于质量、车型、价格或者其他因素等等。不对。是人们对HONDA、TOYOTA、NISSAN的感知决定了哪一个品牌会赢得市场。市场是感知的战争。
日本汽车制造商在美国和日本销售同样的车子,如果市场是产品的战争的话,那么无论在日本市场,还是在美国市场,不同品牌的排序应该是相同的。毕竟,在日本和美国销售的汽车的质量、车型、相对价格,乃至方方面面,都几乎是一样的。但是,在日本,HONDA并不是首位,排在首位的是
TOYOTA,HONDA仅仅排在第三位。TOYOTA在日本的销量是HONDA的四倍。
所以这是什么原因呢?无论是HONDA、TOYOTA还是NISSAN,车子是一样的,但市场销量却不同?是产品的原因吗?显然不是,而是感知的原因。
如果你告诉你的朋友们,说你在纽约买了一辆HONDA,他们会问:"你买的是哪一种HONDA,Civic、Accord还是Prelude?"但是如果你告诉你的朋友们,说你在日本买了一辆HONDA,他们会问:"你买了哪一种MotorCycle?"因为,在日本,人们认为HONDA就是一个
Motorcycle的生产商,显然人们并不希望从一个生产MotorCycle的公司购买一个Car。
一些饮料制造商的头头们认为市场就是口味的战争。大家都知道New
Coke在口味上是第一。Coca-Cola公司曾经做了一项200,000人的调查,对Coca-Cola、Pepsi-Cola和New
Coke进行品尝,认为New
Coke的口味是最好的,Pepsi-Cola第二,Coca-Cola排名第三。但是谁赢得了市场呢?被品尝是口味最好的New
Coke排在了第三位,而被品尝是三者之中口味最差的Coca-Cola在市场上是第一品牌。为什么?
人们会相信他们希望相信的事情,人们希望喝他们希望喝的饮料。市场是人们感知的战争,而不是口味的战争。
使得这个情况变得更为复杂的是人们通常做出的购买行为常常基于二手的感知信息。这是"人家都这样"的规则。
人们都知道,国内联想家庭电脑是一个优秀的品牌,联想电脑的服务是一流的。所以人们在购买电脑时,常常是基于"所有人都知道联想电脑的服务是一流的",而做出购买联想电脑的决定。但是当问购买联想电脑的人是否有关于联想电脑服务一流的切身感受时,往往得到的回答是"没有"。他们购买联想电脑的决定是基于他人的感知做出的。
如果你恰恰购买了一台联想电脑,并且无法得到满意的服务,那么你是很不幸运的。因为大家都知道,联想电脑服务是一流的。如果你购买了其他品牌的电脑,并且得到了满意的服务,那么你是幸运的,因为,其他品牌的电脑服务在他人眼中并非一流。
如果某人从甲、乙两家牛奶饮品店中各购买了一瓶鲜牛奶,但是却从乙家购买的牛奶中发现了一个很小的玻璃片,而因此通过媒体、起诉等方式将之公布于众。可想而知,甲乙两店以后的市场销售情况会怎样?尽管后来,乙店它可以通过大规模的抽样、专家的评价、现场勘察等多种方式证明自己的牛奶饮品中不会出现玻璃片,但是有谁会相信呢,这样做还重要吗,会造成多大改观呢?
不会,因为人们的感知已经认为,乙店的牛奶饮品中可能会出现玻璃片,而甲店却从未发生过这种情况,并且周围很多人都这样认为,人们的感知不会因为玻璃店的广告、抽样调查等而有所改变。
所以,市场是感知的战争,而不是产品的战争。
Marketing is not a battle of products, its a battle of perceptions.
五、市场中的焦点法则(Law of Focus)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
如果一个公司能够找到一个方法使得代表自己公司的一个词汇能够深深植根于人们的头脑中,那么这个公司就可能非常成功。这个词汇可以非常简单,也不需要特别创造。直接从词典中找到的简单的词汇,效果则是最好的。
这就是焦点法则。公司通过将自己的业务或者范围浓缩成一个词汇,并将之植根于人们的头脑中,词汇就是焦点。
Federal
Express能够利用OverNight一词来代表自己,省略了产品线等许多业务而将自己的业务集中于OverNight
Package Delivery之上。
市场中的领袖在自己的市场类型中拥有自己的焦点——词汇。比如IBM拥有Computer。通常人们会说,我要买一个IBM机器。他不需要说,我要买一个IBM计算机,一般人们就认为,他需要的就是一台IBM
计算机,而不是其他商品。这就是焦点的力量。
我们还可以通过一个测验来证实焦点对市场的重要性。当我们说起Computer、Copier、Chocolate
Bar、Cola时,我们通常就把它们与IBM、Xerox、Hersheys、Coke联系在一起。
最有效的词汇往往既简单,又与商业利益相关。无论公司的产品多么复杂,无论市场的需求多么复杂,将自己的业务或者市场集中于一个词汇往往要比定位在两个或者更多的词汇上要有效的多。
当然,焦点往往会带来连锁效应。比如Safer往往意味着更好的设计和工艺,Thicker往往意味着更好的质量和浓缩程度等。许多著名的、成功的公司往往能够将能够代表自己的焦点植根于人们的头脑中,下面是一些示例:
Crest ------ 龉齿
Mercedes ------ 工艺
BMW ------ 驾驶
Volvo ------安全
Dominos ------ 送货到家
Pepsi-Cola ------ 青春
Nordstrom -----服务
词汇可以针对多个方面,比如目标客户(Pepsi-Cola面向年轻人),服务(送或到家),利益相关(防止龉齿)、销售相关(更喜欢的品牌)等。
一旦某一个词汇在人们的头脑中扎根,要改变它将是一件非常困难的事情。Lotus
Development Corporation的经理就能够说明这一点。
在很长的时间里,Lotus都拥有SpreadSheet这个词汇,实际上Lotus就是SpreadSheet和1-2-3。但是随着竞争的日益激烈,利益增长空间也十分有限,Lotus希望进一步发展。
后来,Lotus购买了Ami Pro Word Processing
Software,并通过扩展产品线引入了大量的新的软件产品。接着Lotus将自己的产品重新定位,提出了GroupWare的焦点词汇。可以说,Lotus是第一个开发GroupWare产品的公司,并且获得了成功。Lotus成功地将自己在人们头脑中的焦点SpreadSheet转变为
GroupWare。但也经历了相当的时间和财力。
市场的关键是使得自己的业务越来越扁平化,一旦你压缩了你的业务,你就在焦点所代表的范围内更加强大。如果你希望能够完全反映你的业务,实际上你也无法代表任何东西,你也就无法反映出任何希望反映出的东西。
在选择你的焦点时,你不能选择象"Quality、Taste"之类的词汇。当你选择一个词汇时,你需要培养你的竞争者。显而易见,没有一个公司愿意生产
Un Quality的商品,也没有一家公司愿意生产Taste
Bad的饮品。作为一个领袖,你需要有跟随者。对于Lotus来说,如果后来有别的公司进入GroupWare这个市场,对于Lotus来说是一件有意的事情。它将使得Lotus所处的市场类型变得更为重要,当然,也更有利于巩固Lotus在该市场上的领袖地位。
所以:
The most powerful concept in marketing is owning a word in the prospects
mind
六、市场中的排他法则(Law of Exclusivity)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
当你的竞争者已经拥有一个词汇时,企图拥有同一个词汇作为自己的焦点最终会导致失败。
正象我们之前所说的,Volvo拥有Safety。许多其他的汽车制造商,包括Mercedes
Benz和General Motors,也曾经希望基于Safety开展自己的
市场策略。但是,只有Volvo使得Safety占据人们的头脑。
一旦人们头脑中已经形成一种思想,是很难改变的。事实上,如果继续这样做只会不断使竞争者的地位持续增强。
Federal Express曾经试图从OverNight向WorldWide转变,以从DHL Worldwide
Express手中夺取市场。于是,Fedex之前的邮包上出现的"OverNight
Letter"变为"Fedex Letter",同时它的广告也由"When it absolutely, positively
has to be there OverNight"也转变为充斥着"WorldWide"的广告语。
这样,就出现了一个非常重要的问题:Federal
Express拥有WorldWide这个词汇吗?没有。因为这个词汇已经被DHL Worldwide
Express所拥有。DHL宣传的概念是:Faster to more of the world。因此,Federal
Express只有通过将WorldWide扁平化来与DHL做对抗,而不能通过企图拥有WorldWide这个焦点来实现。
若干年前,市场研究表明:对于快餐,最重要的特性是 Fast。所以Burger
King决定以Faster作为自己的焦点发展快餐业。它的广告语说道:If the world
wants fast, our advertising should tell them we are fast。
但是在市场研究中却没有说明:Fast这个词汇实际上是Mcdonald所拥有的。Fast属于McDonald,McDonald就是Fast。尽管这样,Burger
King仍然开始了口号为"Best food for fast
times"的市场运动。这几乎是一场灾难。随之而来的后果是:广告代理机构被解雇,管理团队被解雇,公司被售出。
许多人们正因为触犯了市场中的排他法则而付出代价。
Two companies can not own the same word in the prospects mind.
七、市场中的阶梯法则(Law of Ladder)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
如果不能在市场上占据第一的位置,并不意味着最终的失败。因为还有阶梯法则来解决第二或者第三的问题。
任何产品产生时都是不平等的。在人们做出购买决定时,头脑中总有一个产品次序。对于每一个类型市场,人们的心目中总有一个梯子对该市场中的各个产品进行排序,每一个梯阶都一个品牌。以汽车租赁服务来说,Hertz是第一,Avis是第二,National是第三。
你的产品策略需要与你在该类型市场的阶梯中的位置相对应。我们来看Avis这个例子。Avis在很长一段时间内,广告主题是高质量的服务,如"Finest
in
rent-a-cars"等。但是人们看到这个广告后,就会觉得奇怪,Avis怎么会有最好的汽车租赁服务呢,它又不是No
1的汽车租赁公司。
接着,Avis改变了市场策略,它承认了自己的位置,广告语也变成"Avis is only No
2 in rent-a-car, So why go with us? We try
harder"。在长达13年的时间里,Avis损失了很多钱。但是当它承认自己的地位时,它就开始赚钱了,而且赚了很多钱。但是不久Avis出售给了
ITT,广告策略又变成了"Avis is going to be No 1"。
但人们说:不,它不是,Hertz才是。甚至很多人直接打电话给Hertz。显然,这对Avis而言是个灾难。
很多市场分析人员认为Avis的成功归功于它的努力工作。这是不对的,Avis的成功主要是因为它将市场策略与自己在该市场中的地位相互关联。
在人们的心目中,你的产品所在市场的阶梯怎样?这个阶梯中有多少个梯阶?这依赖于你的产品是高密度使用产品还是低密度使用产品。人们每天都会使用的产品属于高密度使用产品,如香烟、可乐、啤酒、牙膏、食品等,这类产品市场阶梯中的梯阶较多;不经常购买的产品属于低密度使用产品,如家具、箱包等,这类产品对应的梯阶较少。
能够为人们带来满足感的产品属于高密度使用的产品,如轿车、手表、相机、球具等,这类产品对应的市场往往梯阶也较多,尽管它们不被经常购买。
不被经常购买并且可能导致不愉快的事情相关的产品对应的市场梯阶一般较少,如汽车电池、轮胎、生命保险等。
在市场占有率和所处的梯阶之间有很大的关系。一般地,如果产品X、Y、Z分别对应着同一类型市场的第一、第二和第三梯阶,那么通常X、Y、Z对应的市场占有率的比例在4:2:1左右。
那么,在一个类型市场上,市场阶梯上的梯阶一般有多少个呢?几乎是7。如果请人们列出他们所熟悉的某一产品市场上的前几位商品品牌,很少有人能够数到7个。哈佛大学的心理学教授Dr.
George A.
Miller曾经说,人类智力通常不能同时处理超过7件事情。同时,7也是一个标志性的数字,如电话号码一般是7位,世界的7大奇迹,白雪公主和7个小矮人,癌症的7个危险信号等。
有时侯,你虽然能够主宰自己的产品对应的市场阶梯,但是这个阶梯太小。做一个大池塘中的小鱼可能要比做一个小池塘中的大鱼要好一些。换句话说,在一个很大的市场上位居第三可能比在一个很小的市场上位居第一要更好一些。
阶梯法则是很简单的,但是非常有用。在开始一个市场计划之前,首先请问自己几个问题:在人们的头脑中,我们到底处在哪一个梯阶?第一、第二、第三,还是根本不在这个市场阶梯上?
然后确认你的市场计划与你在该市场上所处的梯阶相适应。这就是阶梯法则。
The strategy to use depends on which rung you occupy on the ladder.
八、市场中的二元法则(Law of Duality)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
在一个新的市场类别出现的初期,对应的阶梯上可能有很多梯阶,也即有很多的品牌。从长远来看,最终该阶梯上将只有两个梯阶。
在电池市场,有Eveready和Duracell;在胶卷市场,有Kodak和Fuji;在汽车租赁市场,有Hertz和Avis;在嗽口水市场,有
Listerine和Scope;在汉堡包市场,有McDonalds和Burger
King;在运动鞋市场,有Nike和Reebok;在牙膏市场,有Crest和Colgate。
在1969年,Cola市场上有Coca- Cola、Pepsi-Cola和Royal Crown
Cola三个主要品牌,分别占据60%、25%和6%。剩余的分额由其他品牌的产品占有。二元法则预示着将来将只有两种品牌主导市场,并且,排名第一的品牌的市场分额将降低,排名第二的市场分额会增加。20年之后,也就是1991年,第一品牌的市场分额降低到45%,第二品牌的市场分额增加到40%,而排名第三的Royal
Crown Cola则下降到3%。
了解市场从长远来看是一个二元市场对于你制定近期或者中期市场战略是非常有益的。当你是某一类型市场的第三品牌时,就需要认真考虑一下自己的市场策略了。合适的市场策略对你的销售境况是起到关键作用的。
经常出现的是,在第二梯阶的位置上,往往不止一个品牌。以膝上型电脑为例,Toshiba是第一品牌,占据21%的市场分额。但是排名第二的有五个公司,包括Zenith、Compaq、NEC、Tandy和Sharp,每一个公司大约有8-10%的市场分额。现在虽然膝上型电脑市场已经有大约130个品牌,从二元法则来看,将来只有很少的品牌会存在。我们将拭目以待。
再来看看汽车市场,在1904年,美国大约有61个汽车公司;10年内,增加到531个汽车公司,但是有346家倒闭;到1923年为止,只有108家继续存在;到1927年,剩下44家。现在,Ford和General
Motors主导着整个汽车市场。
成功的市场专家将会把主要精力放在第一和第二梯阶上。General
Electric的CEO杰克.韦尔奇曾经说:在GE,只有那些在市场是第一或者第二的产品才能在全球竞争市场中获胜,并被保留和飞速发展。剩余的或者被关闭,或者被整顿,或者被出售。
P&G的44个产品品牌在美国市场上,有32个产品占据了第一或者第二的位置。
当然,在阶梯上占据第二或者第三位置的产品的销售情况可能看起来也非常诱人。销售额上升,新的顾客不断加入自己的客户群。但是,这些顾客往往开始不知道谁是市场上的领袖,所有他们往往在做出购买决定时,选择那些看起来比较吸引人或者有趣的产品。
随着时间的推移,这些顾客逐渐认识了市场,并认为市场上领先的品牌较他们以前选择的品牌会更好,所以他们会转而成为领先品牌的客户。
值得注意的是,客户往往认为市场上产品的竞争。因此,对于市场上第一、第二的品牌,客户会认为:这些品牌是最好的,因为他们是市场中的领袖。
In the long run, every market becomes a two-horse race.
九、市场中的对立法则(Law of Opposite)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
无论再强大,也有自己的弱点。正象角力时,利用对方的力量来对抗对方一样,一个公司应该充分认识到市场领袖的优势和弱势,并将对方的弱势转化为自己的优势,以与领袖品牌相抗衡。换句话说,不要尽力成为更好,要尽力变成不同。
Coca-Cola是具有百年历史的第一品牌。只有7个人知道Coca-Cola的配方。根据对立法则,Pepsi-Cola提出了面向年轻一代的Cola饮料,声称这是Pepsi一代的Cola,并因此成为第二品牌。
对于任何类型的市场来说,总是有一些顾客希望购买第一品牌的产品,也总有一些顾客不希望购买第一品牌的产品。作为希望成为第二品牌的公司,就需要以后者作为市场策略的主要诉求对象。因此,如果Pepsi能够吸引到所有的年轻人选择Pepsi,那么还有谁会去喝Royal
Crown Cola呢?
但是,有太多的No 2希望能够取代No 1,这是不对的,你必须将自己定位成与No
1不同的东西,并努力成为No 1的替代品。

Becks啤酒引入美国时,它不是第一个引入美国的啤酒(第一个引入美国的是Heineken),也不是第一个美国市场上出现的德国啤酒(第一个在美国出现的德国啤酒是Lowenbrau)。但是Becks的广告语是"或许你已经品尝过在美国不是最受欢迎的德国啤酒,现在请品尝一下在德国最受欢迎的德国啤酒!"
现在,Becks是美国销量第二大的欧洲啤酒。(对于啤酒来说,美国宁可不相信自己对德国啤酒的感觉,而宁可相信德国人对德国啤酒的感觉。)
另外,排名第二的产品在市场策略上不能胆小,而应直接针对第一品牌采取策略。否则,你将变得易于攻击,这些攻击将不单单是来自第一品牌,还将来自后面梯阶的诸多品牌。下面以Burger
King为例说明。
Burger King曾经非常成功。它将自己的市场策略直接针对McDonalds,如"Have it
your way"对应于McDonalds的大批量生产;"Broiling, not
frying"对应于McDonalds的油炸制作方法等。所有的这些都深深巩固了Burger
King的第二梯阶的地位。
后来,不知由于什么原因,Burger
King忽视了对立法则。它变得胆小并停止攻击McDonalds,广告语变成了"The Best
food for fast times"、"We do it the way you do
it"等等。它甚至开展了一个市场计划,来试图吸引小孩子,而这恰恰是McDonalds的主要客户群体。
Burger King逐渐丧失了第二的位置,并再也没有恢复到曾经的盛况。因为Burger
King违反了市场上的对立法则。
If you are shooting for second place, your strategy is determined by the
leader.
十、市场中的细分法则(Law of Division)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
正象培养基中的变形虫能够分裂一样,整个市场领域可以被看做一个不断扩张的不同类型的市场组成的海洋。
刚刚开始时,一个市场只有一个类型,比如计算机等。但是随着时间的推移,这个单一类型的市场就会分为几个部分。以计算机为例,包括MainFrames、
MiniComputers、WorkStations、Personal Computers、Laptops、Notebooks和Pen
Computer等。
与计算机一样,汽车刚开始也是单一的类别,Chevrolet、Ford和Plymouth主宰着这个市场。随着市场的不断细分,现在市场上的汽车可以分为豪华车、运动车、四轮越野车、微型车等。
在电视领域,开始时,ABC、CBS和NBC占据了大约90%的市场,覆盖了90%的观众。后来,逐渐出现了网络电视、电缆电视、收费电视、公共电视、交互电视等。
细分后的每一个市场类型都是相对独立的、不同的。每一个市场类型都有它存在的理由,也有自己的市场领袖,常常这个领袖与初始时的市场领袖不同。IBM是
Main Frame的Leader,Sun是Work Station的Leader,DEC是Minis的Leader。
但是很多公司却错误地认为市场的长远趋势是合并,而不是细分。这是错误的。从长远看,市场只有细分,没有合并。
看一看金融服务市场。如果市场的长远趋势是合并的话,在将来,我们将不会再看到银行、保险、证券、经纪人或者抵押商店。我们将看到的是金融服务公司,该公司将满足人们的一切金融服务需求。这是不会发生的。
为了保证自己在新出现的类型的市场上占据主导地位,你应该为该类型的市场新创一个品牌,就象GE一样,它拥有Chevrolet、Pontiac、Oldsmobile、Buick、Cadillac、Geo、Saturn等多个品牌。
否则,你就会导致错误。以Volkswagen为例。Volkswagen公司成功地将小型车引入美国市场。它的Beetle非常成功并赢得了大约67%的市场。Volkswagen如此成功,它希望进入大型车市场,销售象GE产品一样的更大、更快、更运动型的汽车。因此,它将在德国制造的各种车型引入了美国,但是均冠以相同的品牌:Volkswagen。
它的广告中称:Different Volks for different
folks。以Volks来涵盖五种不同的车型,包括Beetle、412
Sedan、Dasher、Thing和一个Station
Wagon。无须多说,保持销售劲头的只有Beetle。
接着,Volkswagen停止销售Beetle以促进更大、更快、更贵的车型,如Vanagon、Sirocoo、Jetta、Golf
GL、Cabriolet等。它甚至在Pennsylvania建立了一个工厂来生产这些新的汽车。
不幸的是,小型车市场不断细分。因为人们无法从VolksWagen买到一辆经济的、耐用的汽车,所有他们就转向了Toyota、Honda和Nissan。
现在,VolksWagen67%的市场分额已经下降到了不到4%。Volkswagen的一个竞争对手,Honda决定角逐高端市场。Honda并没有在豪华车使用Honda品牌,而是引入Acura。Honda甚至花费巨资来建立Acura品牌以避免与Honda混淆。
Acura成为了在美国销售的第一个日本豪华车,现在Acura的销量比Volkswagen还要好。Honda已经拥有了两个领导者的品牌。
时间也是很重要的。你也不能太早地去创建一个品牌。倒退几十年,Nash
Rambler是美国第一个小型车。但是美国汽车市场并没有发展起来。
能够早一些进入市场并建立自己的品牌是很好的事情。但是只有你已经准备了时间和钱来等待该市场的发展,你才能够真正进入人们的头脑,并有机会获得领袖地位。
Over time, a category will divide and become two or more categories.
十一、市场中的远景法则(Law of Perspective)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
按照你的观点,酒精是一种刺激物,还一种镇静剂呢?
如果你在周末晚上去一些酒吧或者舞厅,你会发现酒精是一种刺激物。刺耳的音乐、酒后疯狂的跳动和躁动的人群就是最好的证明。但是在了凌晨4:00,当你发现一些人因为醉倒在街头时,你会觉得酒精实际上是一种镇静剂。
从化学上讲,酒精是一种很强的镇静剂。但在短时间内,通过释放人们的心理压抑,酒精看起来就象一种刺激物了。
许多市场趋势也表现出同样的现象。长远的影响往往与短期的效应不相一致。
短时期内,过量饮食能够满足自己的胃口,但是长时间之后会导致肥胖和其他病症。
通货膨胀短时期内会刺激消费,但长时期之后,会导致经济衰退。
类似的情形还很多,如过量消费、服药、行房事等,长远的效应往往会转到短期效果的对立面。
你认为降价销售会促进销售额的增加吗?显然,在短期内,降价销售能够提高商业销售量。但越来越多的事实证明:降价销售从长远看会降低公司的商品销量和市场占有率,因为它告诉人们只有降价销售时达成的交易才是合适的交易。降价销售的商店会告诉消费者正常的价格都太高,降价后的价格才是合适的价格。因此,当降价销售停止时,人们就会避而远之。
没有任何证据能够证明降价销售,包括优惠券、折扣等,从长远上会提高销量。许多商店或者公司发现它们不得不经常降价销售来维持正常的销售水平。因为它们发现,一旦降价停止,销售额就会大幅跳水,甚至无法保持在均衡的水平。
降价销售实质上是教育消费者只有当他们能够获得一个更低、更合理的价位时,才可以成交。那么如果一个公司从未采取降价或者相类似的措施,又会怎样呢?
在零售领域,市场的赢家是那些提供"everyday low prices"的商店,如Wal-Mart等。
在淋浴取暖方面,大家都可以看到市场上,奥普浴霸的销售始终领先,但是它们采取的是统一价位,对于消费者而言,无论你是在大型超市、还是在街头小店,还是在商场,你看到的价位始终是统一的,并且从未有任何降价销售、优惠促销等活动。它们靠的是高质量和优质服务赢得了市场。而我最终还是会选择购买奥普浴霸。
在服装方面,也很明显。当商场中大多数品牌都在忙于打折、优惠销售以提高销量时,宝姿等国际著名品牌却从不参加活动,甚至没有任何优惠措施(宝姿会定期举办服装的折价销售活动,但这个时期一般很长,用于处理款式过时等服装)。但是,宝姿的客户群却始终忠实地购买他们希望购买的宝姿服装,而不会因为没有折扣而流失。
市场的远景法则看起来可能很简单,但是永远记住:市场不是业余者的游戏。当你因为短期效应而兴奋时,请注意,你的做法所引致的长期效应的阴影正逐渐扩散。
"苦心中,常得悦心之趣;
得意时,便生失意之悲。"
Marketing effects take place over an extended period of time.
十二、市场中的扩展法则(Law of Line Extension)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
如果违反任何一个市场法则都必然导致公司的倒闭的话,那么现在所存在的公司也寥寥无几了。
在所有的市场法则中,最容易违反的是扩展法则。因为扩展法则的作用是不易察觉的,连续而不会被注意的。就象一个书橱或者衣箱,你在不知不觉中就会将它塞满一样。
一个公司在一段时间内可以专注于某一件产品,收益甚丰。可能将来,这个公司就因为产品线扩展而不断丧失市场,无法赢利。
因此,当一个公司试图向所有顾客提供所有可能的商品时,就会陷入困境。就象一个经理所说的,我宁可在某些方面强大,不愿在很多方面都弱小。
从狭义的角度讲,扩展意味着将一个成功的商品的品牌放在一件新的产品上。比如,A-1
Steak Sauce和A-1 Poultry Sauce。
听起来可能很有道理。我们已经拥有了一件非常成功的产品A-1 Steak
Sauce,并占据了大部分的市场份额。但人们的口味可能从Beef转向Chicken,所以我们需要引入一种新的产品来适应人们口味的变化。这就有了
Poultry Sauce,当然最好的就是叫A-1 Poultry
Sauce。因为这就告诉人们这种Sauce是来自于市场上的第一品牌A-1。
但是,市场是感知的战争,而不是产品的战争。在人们的头脑中,A-1已经不再是一个品牌,而是Steak
Sauce的替代词汇。因此当一个厨师说:你能够递给我一个A-1吗?没有人会回答:A-1什么?
事实证明,A-1 Poultry Sauce对于该公司而言是一场灾难性的失败。
从长远来看,扩展对于公司的发展而言不会有什么益处的。如大家所知,创建出新的口味是争取市场份额的常用方法。更多口味,更多市场份额。听起来合理,实际上没有作用。
回到1978年,7-UP仅仅是简单的柠檬酸uncola,它占有市场5.7%的份额。接着,这个公司引入了7-UP
Gold、Cherry 7-UP等等,但是现在7-UP的市场份额已经下降到了2.5%。
几乎不变的是,在某一类型市场上的领袖往往是不做扩展的公司。以Baby
Food为例,Gerber拥有72%的市场,超出了Beech-Nut和Heinz,后两者是属于扩张型的公司。
尽管扩展对公司的长远发展无益,但是扩展的例子随处可见:
Ivory soap和Ivory shampoo?
Big Lighters和Big pantyhose?
Coors beer和Coors water?
Heinz ketchup和Heinz baby food?
Adidas Running shoes和Adidas cologne?
Levis Blue jeans和Levis shoes?
为什么尽管大多数管理者认识到了扩展法则,但是还会执意进行扩展呢?一个主要的原因就是扩展对长期发展无益,但是其短期效果却是相反的。
多即是少。越多产品,就意味着越多的市场。但是,产品线越长,赚取的钱就越少。
少即是多。当一个公司希望将来长久地发展,就需要集中于少数产品之上,以便赢得在人们头脑中的地位。
对于许多公司而言,建立一个新的品牌不仅需要财力的支持,还需要一个很好的创意或者概念。对于一个品牌来说,其成功需要是在一个新的市场类型中居于首位,或者成为某一类型市场中的领袖的替代产品。那些希望等到市场发展才进入的公司,等到他们进入时,就发展该类型市场中的第一和第二都已经树立了地位。因此,这些公司就自然而然地需要进行扩展,使用已有品牌来刺激该类型市场中自己公司产品的进入及发展。
这就是扩展法则。
There is an irresistable pressure to extend the equity of the brand.
十三、市场中的舍弃法则(Law of Sacrifice)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
舍弃法则是与扩展法则对应的。如果你希望获得成功,你就必须舍弃一些东西,来保证自己的精力能够集中在能够成为Leader的产品上面。
作为一个企业,有三种可以舍弃的东西:产品线、目标市场和不断的变化。
先谈谈产品线。对于一个公司而言,拥有全部的产品线是非常奢侈的。如果你希望成功,你必须减少你的产品线,而不是扩展它。没有任何事实能够证明:你可以卖的产品越多,你就卖的越多。这是非常错误的。
以Emery Air
Freight为例。Emery是经营航空货运业务的公司。无论你希望通过航空运输任何类型的货物,Emery都可以做到,包括大货物,小货物,延迟交付、隔夜交付等。
从市场的观点来看,Federal
Express是做什么业务的呢?它是专做小货物的隔夜航空货运业务的。现在,Federal
Express要比Emery Air Freight大的多。
Federal
Express的舍弃所带来的强大的生命力和发展潜力是它能够将OverNight这个词汇深深根植于人们的头脑中。当你需要必须将一件货物隔夜送达时,你就会首先想到Federal
Express。
那么接下来,Federal Express是怎么做的呢?这个公司做了与Emery Air
Fright同样的事情。扩展产品线。它放弃了OverNight,以880 million美金从Tiger
INternational手中购买了Flging Tiger cargo来扩展产品线。现在,Federal
Express是一个世界范围内的航空货物运输公司,但是却没有一个世界范围的对应的位置。在仅仅21个月内,Federal
Express损失了超过10亿美金的价值。
市场是头脑的竞争,是感知的竞争,而不是产品或者服务的竞争。在人们的头脑中,
Federal
Express是一个OverNight的公司,而不是一个世界范围内的从事任何航空运输业务的公司。开始时,Federal
Express拥有了OverNight这个词汇,但是当它转向国际业务时,Federal
Express就面临了一个市场困境。它能使用一个国内的品牌来标识从事国际业务的新的形象吗?或者它应该创建一个新的名称?另外,它也面临着与DHL的竞争,DHL是第一个进入国际航空运输业务的公司。
对于Federal
Express而言,放弃OverNight市场已经非常糟糕了,更为糟糕的是它不能采用一个新的名称来代替从事OverNight的Federal
Express。
再举一个例子。Eveready在电池领域长期保持着领袖地位。但是新的技术出现了。第一个技术是Heavy-duty电池。如果你在电池领域已经保持了
No 1地位,你将如何命名你的新产品呢?最可能的想法就是Eveready
Heavy-Duty电池,这正是Eveready所做的。接着而来的技术是Alkaline电池,同样的,Eveready叫它是Eveready
Alkaline电池。看起来很有道理。
后来,P.R.Mallory引进了一个Alkaline电池的产品线,并且只生产Alkaline电池。不同的是,P.R.Mallory给它了一个新的名字:Duracell。
Duracell舍弃其他产品,单攻Alkaline电池市场的做法是能够将Long-Lasting电池这个词汇根植于人们的头脑中,从而赢得了该市场上的领袖地位。结果是Duracell已经发展到Eveready的两倍大了。
Eveready不得不改变它的产品名称,创建了一个新的品牌"the
Energizer",与Duracell抗衡,但是太晚了。Duracell已经成为电池市场的Leader。
要么是Generalist,要么是Specialist。但是,事实证明Generalist处于弱势。看看Kraft。几乎每个人都知道Kraft是一个强大的品牌。在Jellies
&
Jams果酱市场,Kraft有9%的市场份额,但是Smucker有35%;在Mayonnaise蛋黄酱市场,Kraft有18%,但是
Hellmann有42%。Kraft确实拥有一些在市场上占据领袖地位的产品,如Cream
Cheese,但是Cream
Cheese不是Kraft,而是Philadelphia(是Kraft的一个品牌),Philadelphia拥有70%的市场。
第二个可以舍弃的是目标市场。以Cola市场为例,CocaCola是领袖。那么Pepsi-Cola是如何与之抗争的呢?Pepsi-Cola舍弃了除了年轻人的其他所有市场,并将自己的市场定位于年轻人的Cola。现在,Pepsi-Cola在美国Cola市场,其销售只落后于CocaCola10%。
广告的目标不是市场的全部,市场策略的诉求对象也不是实际购买你的产品的那些人。即使
Pepsi-Cola将自己的市场策略定位于年轻人市场,实际情况是,往往有很多中老年人也喝Pepsi-Cola,因为他们认为自己也是年轻人。
第三个可以舍弃的是不断的变化。作为一个领袖品牌,你不能对任何市场的变化而做出变化。最好的保持不变地位的方法就是第一个做出改变不是自己。这个方面就不多讲了。
事实证明,幸运和机会只会落在那些能够舍弃的人。
You have to give up something in order to get something.
十四、市场中的特征法则(Law of Attributes)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
在排它法则中,已经讲过你不能使用你的竞争对手所拥有的词汇来与竞争对手竞争。你必须找到属于你自己的词汇,换句话说,你必须找出与竞争对手不同的特征。
CocaCola
是第一个Cola饮料,并且是成年人的饮料首选。Pepsi-Cola则因为将其自己定位于年轻一代的选择而获得成功。又有Crest拥有了
Cavities这个词,其他的牙膏生产厂商则避免使用Cavities,而转向诸如Taste、Whitening、Breath
Protection等词汇。
市场是感知的竞争。如果你希望成功,你必须使用你自己的产品特征及独特的创意以付诸努力。有些人说,不是所有的特征都是同等重要的。是的,对于产品而言,有些特征比其他特征来说比较重要,人们在作出购买决定时,会更为看重这些特征。因此,你应尽可能地去拥有最能够表达自己产品的最重要的特征的词汇。
Cavity
Protection是牙膏产品最为重要的特征。但是已经有Crest拥有了它。市场中的排它法则已经说明,如果你的竞争对手已经拥有了一个特征,你就必须放弃它,否则胜算很小。你必须转向其他的特征词汇,如Taste、Whitening等。你要做的就是尽量强调你的产品特征,进而提高你的市场份额。
多年来,IBM雄霸大型机市场,它所强调的是大而强(Big and
Powerful)。那些后来希望凭借这些概念进入MainFrame领域的公司几乎没有成功的,比如RCA、GE、UNIVAC、bURROUGHS、
HONEYWELL、NCR、Control
Data等。但是从Boston起家的一个公司却能够凭借Small和MiniComputer开创一个新的市场,那就是DEC。那些大型机公司可能会嘲笑DEC说,美国的公司只会购买大型机,所谓MiniComputer不会有什么市场。但是事实证明,现在Small已经遍及美国及世界各地,但是大型机却正面临着困境。
有一个公司,当其竞争对手提出新的产品特征与其竞争时,不是嘲笑而是直面竞争的是Gillette,世界上第一大剃刀生产商。
Gillette几乎主宰了世界的剃刀市场。当一家从France起家的小公司提出了一个对立的特征,生产了一种"可随意使用的"剃刀时,Gillette没有忽视它,而是生产了它自己的可随意使用的剃刀,起名叫Good
News。通过大规模的市场宣传,Gillette赢得了这场竞争的胜利。
现在,Gillette的可随意使用的剃刀主宰了这个类型的市场。
For every attribute, there is an opposite, effective attrib
十五、市场中的坦白法则(Law of Candor)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
很少有人认为,承认自己的缺点或者不足是对自己未来市场有利的行为。所以当一个公司采取首先承认自己的某个方面的不足,然后将它转换为关联的优点的做法时,很多人会感到比较惊讶。但是这样的做法往往会得到很好的效果。
"Avis只是第二大Rent-A-Cars的提供商";
"象一个命名为Smuchers的公司,它必须是好的";
"1970的VW还会比较丑陋";
"JOY,世界上最为名贵的香水";
无论是初始感觉,还是最终感受,坦白是最容易使人消除戒心的。非常肯定的、绝对的话语反而会使人反感,进而产生拒绝的心理。
象上面的广告语中所述:
"1970的VW还会比较丑陋"会使人想到,丑陋的车必然耐用、皮实,不易坏;
"JOY,世界上最为名贵的香水"会使人想到,既然是最贵的,必然是最好的;
"象一个命名为Smuchers的公司,它必须是好的"。许多公司,首先都不会使用自己的名称来命名,但是Smuckers这样做了。这有是Smuckers成为Jam和Jellies市场领袖的一个原因。
既然"Avis只是第二大Rent-A-Cars的提供商",那么他们必然会更加努力,提供更好的服务,提供更好的产品等,所以选择Avis租车应该没有错。
由于你在市场上无法动摇领袖的地位,所以你的市场行为最好地就是利用已经固化在人们头脑中的东西,来推动自己的市场发展,正象Avis等做的那样。
当一个公司开始传递一个消息,说明自己的不足时,人们往往会乐于接受,并进而表达出自己的看法。想象一个人带着一个问题,希望你能够给出解答,你会很乐意地给予帮助。
现在,既然人们的头脑已经接受了你,下一步就是要将自己先前发布的信息转化为正面的信息,并让人们接受。Scope曾经使用一种味道好的洗口药进入
Listerine领导的牙膏市场。Listerine怎么做的呢?它当然不能告诉人们Listerine的洗口药味道没有那么差,这样的话市场会变的很糟。相反地,Listerine使用了坦白法则,广告中说"The
taste you hate twice a day"。
不但
Listerine承认了自己洗口药的味道差,它还承认了人们实际上非常讨厌这个味道。但是这恰恰树立了Listerine的洗口药的杀菌概念。人们的头脑中则认为,象Listerine那样差的洗口药必然能够杀死更多的细菌,结果Listerine终于赢得了更大的市场。
但是,一定要注意:坦白法则必须谨慎使用,也需要很高的技巧。首先,你承认的不足必须是人们普遍认识的不足;其次,你必须能够迅速地将不足转化为人们头脑中关联的优点。坦白自己的不足的目的是在人们的头脑中树立一个优越的概念,进而推动自己的市场发展。
这个法则只是证明了一句古话:诚实是最好的策略。
When you admit a negative, the prospect will give you a positive.
十六、市场中的单一法则(Law of Singularity)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
很多人认为,成功是许多微笑的努力所带来的结果的集合。事实上,无论你是否努力,表现在市场上的结果没有本质的差别。历史证明:真正在市场上卓有成效的是单一的、致命的一击。更进一步说,在任何给定的情况下,只有一个方向上的市场努力能够得到真正的回报。
那些成功的公司经理们认为,致命的一击恰恰是竞争对手最不会预见的行为。能够找到一个这样的机会就已经很难了,不断找到这种机会几乎是不可能的。
战略学家和作家B.H. Liddel
Hart将这种致命的一击称为最不可能预见到的战线或战场。著名的诺曼底登陆所选择的地点就是一个不满了岩石的地方,这恰恰是德军认为最不可能登陆的地方。
Hannibal
越过Alps山,一个其他人认为不可能越过的地方。Hitler绕过Maginot防线,将其装甲车部队通过了Ardennes,这也是法国指挥官认为坦克不可能通过的地方。事实上,Hitler这样做了两次,一次是同France战争,一次是Bulge战争。
同样的,在市场上,经常遇见的情况是竞争对手往往只有一个地方是最薄弱的。这个地方就是你需要集中最优势的力量使竞争对手落败之处。
看看General
Motors,一段时间内,GM面临着来自日本的低端轿车的竞争,象Toyota、Datsun、Honda等,也面临着来自欧洲的高端轿车的竞争,如Mercedes、BMW等。
随着日本轿车和欧洲轿车的进攻,GM有很大的压力。为了能够节省资源并保持利润,GM作出了非常致命的决定,决定使用同一个车模生产不同品牌的轿车。几乎是在突然之间,人们无法辨别出哪一个是Pontiac或Chevrolet,哪一个是Buick或OldsMobile,因为它们看起来都差不多。
这种统一的做法削弱了GM的中端市场,使得象Ford公司能够又引入了Taurus和Sable轿车,日本又引入了Acura、Lexus和Infiniti。GM在高、中、低端市场上受到了不同程度的削弱。
因此,一定记住:你的竞争对手只有一个最薄弱的地方,你市场的最大努力就是集中优势力量对准其处,发出致命一击。这正是市场上最有效的策略和方法。
In each situation, only one move will produce substantial results.
十七、市场中的不可预见法则(Law of Unpredictability)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
在市场计划中,经常错误的是关于将来情形的预见。但是基于已经发生的事情来制定计划往往会发生偏差和错误。
即使使用几百台电脑和大量的气象专家,没有人能够准确预测三天以后的天气情况,所以你又怎么能够预见提前三年的市场呢?
IBM
曾经制定了一个OfficeVision的计划,计划将所有的PC连接到IBM的MainFrame上。但是这个计划失败了,因为有了Sun
Microsystems、Microsoft和许多其他公司的成长和不断发展。所以可以说OfficeVision预见了很多事情,但是唯一没有预见的就是来自于Sun、Microsoft等公司的竞争。
那么你应该怎么做?你怎样来应用和处理不可预见法则呢?虽然你不能准确地预见将来,但是你可以借助于发展趋势。借助发展趋势的一个例子就是美国不断增长的健康需求。这个趋势带来的是许多新产品的产生和市场扩展,尤其是健康食品等。
对于如何利用发展趋势而言,一个很大的危险就是妄加推断。许多公司曾经断言过某一个趋势能够持续多长时间。
与妄加推断同样危险的是,很多公司假定未来会重复已经发生的事情。当一个人说,什么事情都不会发生时,他实际上就是说有些事情会发生。请记住Peter的话:没有预见的事情往往会发生。
尽管利用趋势能够帮助企业更好地预见到未来可能发生的事情,从大多数情况来看,市场的研究常常带来一些问题。市场研究能够很好地分析过去的事情。但是新的思想和概念几乎是不可能通过分析得到。人们往往在面对一个实际的决定时,才知道他们下一步要做什么。
一个典型的例子是在Xerox引入Plain-Paper复印机之前,对市场所做的研究。研究表明:没有人会花费5美分做一个Xerox拷贝,如果他们只需要花费1.5美分做一个Thermofax拷贝。
但是Xerox并没有采纳这个市场调查结果,而是快速引进了Xerox复印机,结果大家都知道了。
一种对付未来不可预见事情的方法是在企业中保持很大的灵活性。如果变化来临时,你就可以快速地调整企业业务流程或者组织架构来适应新的变化,从而在长远的发展中保持竞争优势。
没有人能够准确地预见到未来,市场计划也不能。
Unless you write your competitors plans, you cant predict the future.
十八、市场中的成功法则(Law of Success)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
自负是成功的市场的最大的敌人。
客观才是市场所需要的东西。
当人们成功后,他们就会趋向于变得不够客观,从而更加自负。他们经常使用他们的想法来代替市场上所需要的产品。
成功往往是导致产品线扩展的直接原因。当一个产品品牌成功后,公司常常会认为品牌是该产品能够成功的关键原因。所以他们将会扩展产品生产线,并在所有的产品上贴上已经成功的产品品牌。事实上,恰恰相反,并不是产品品牌使得产品获得成功,品牌的成功源于你的正确的、适当的市场策略。换句话说,你所采取的市场行为符合了市场的基本法则。因为你首先进入了这个市场,你能够集中于一件产品,你能够抓住产品的本质属性,并使之根植于人们的头脑中。
你越认同并依靠你公司的品牌或者产品的品牌,你就越容易陷入扩展法则的陷阱。
有时候,自负是有意的一件事情。它能够成功有效推动市场的动力。但是,如果将自负放在市场行为中就会有害。明智的市场人员能够象未来学家一样的思考。他们将自己与客户联系在一起,而不是将自己主观的看法强加在市场环境上。
一般地,公司越大,管理层就越容易远离市场一线,这可能是限制公司成长的非常重要的因素之一。较小的公司比大公司更靠近市场一线,这也是为什么小公司能够快速发展的原因,更是因为它们没有运用到市场中的成功法则的"机会"。
Success often leads to arrogance, and arrogance to failure.
十九、市场中的失败法则(Law of Failure)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
世界上有太多的公司试图修复某些事情,却不会丢弃某些事情。经常说的话通常是"让我们找出问题,挽救时局"。
承认一个错误但不处理它对人的职业发展是不利的。一个较好的策略是尽早发现错误,然后尽可能减少损失。失败并不可怕,可怕的是不断地重复某一个或者一些错误。
一般地,日本人比较能够较早地承认错误,然后做出必要的变动。主要原因是他们的团队决策方式。团队的意见往往能够减少个人的自负所带来的负面影响。这种不自负而较为客观的做法使得日本能够在很多市场上获得成功。并不是他们从来不犯错误,而是当他们有错误时,就会迅速地做出修正,然后继续向前推动市场的发展。
再来看Wal-Mart的例子。Wal-Mart有另外一种方式来面对错误的发生,叫作Sam
Walton的"Ready、Fire and
Aim"方法。人们不会因为犯一个错误而受到处罚,正象Wal-Mart的首席执行官在商业周刊中所说的,"如果你能够学习并掌握一些东西,你就会因此而获得回报。我们应该处罚的是那些重复犯同样错误的人。"
如果一个公司希望始终以理想的方式发展,它就必须拥有团队组织、睿智的人才和敢于牺牲的领导者。马上就能够使人想起Patton和他的军队的事情。在历史上,没有哪一支部队能够做到战场如此辽阔,俘虏如此多人,并且时间如此之短。不幸的是
Patton被Eisenhower开除了。
Failure is to be expected and accepted.
Without adequate funding, an idea wont get off the ground
二十、市场中的广告骗局法则(Law of Hype)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
当事情发展顺利时,一个公司不需要大肆广告。但是当需要大量广告宣传时,经常意味着你正在陷入困境。
年轻而缺乏经验的记者和编辑经常会被他们在其他媒体上看到的报道所影响,而不是依靠自己收集的数据和资料作为依据。一旦大肆宣传和骗局开始时,则经常会持续较长的时间。
回顾历史,发生了很多在广告宣传上非常成功,但是最终带来失败的事情。以电脑市场为例,没有其他计算机比NeXt的宣传更大了。会议听众的要求如此强烈,即使会议厅能够容纳几千人,Steve
Jobs也不得不提前印制门票以限制听众的人数。所有的座位都会被坐满。Steve
Jobs在几乎所有的大型媒体和刊物上做了广告,还发表了电视新闻。IBM、Ross
Perot、Canon为此已经投资了1亿3千万美金。
NeXt成功了吗?当然没有。
大肆宣传的目的并不是预示着某一产品将获得成功。大肆宣传的目的是宣告现存的产品已经过时。
Polyster 目的是为了使Wool过时,VideoText目的是使NewsPaper过时,Personal
Helicopter希望使道路和高速公路过时,另外还有Tucker 48、U.S. Football
League、Manufactured Home、PicturePhone等。
在未来的办公室广告宣传中,所有的办公器具都被集成到一个小盒子里。但是现在我们看到的却是,单独的计算机、单独的复印机、单独的传真机、单独的激光打印机等。未来的办公室中描述的集成的办公器具只不过是一个将来都不会实现的幻想。
从长远来看,广告就是广告。真正的革新不会大张旗鼓地宣传,而会悄悄地进行,并最终获得成功。
The situation is often the opposite of the way it appears in the press.
二十一、市场中的加速度法则(Law of Acceleration)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
时尚和趋势是不同的。时尚就象大海中的波涛,而趋势却是潮汐。通常,时尚有许多骗局和泡沫,而趋势却潜移默化,实实在在。大家都看到过波涛,非常壮观,但来也快,去也快;而潮汐却几乎不易察觉,但是时间长了,就能够展现出惊人的力量。
时尚虽然是短期的现象,但可能收益很多,但是时尚不能持久。而且,由于一些公司常常将时尚看做一个趋势,导致后来严重的失败。
因此,当你面对一个迅速扩张和上升的市场,该市场明显地显示出时尚的特征时,建议你最好首先抑制一下。通过抑制时尚的东西,你可能就能够摆脱时尚的做法,将其转化为一个更接近于趋势的市场。
我们可以来看看玩具市场的一个例子。一些玩具生产商希望将它们生产的非常受市场欢迎的玩具品牌印在每一个玩具上面,并力争将其转换为一种时尚。结果这种时尚往往会在一段时间之后就迅速地消失了。
Ninja Turtle就是一个时尚的例子。当Ninja
Turtle成为了一个非常畅销的品牌后,玩具生产商没有试图去抑制它,相反地却助长了这种时尚。当这一代人每人都有一个Ninja
Turtle时,没有人会再多买一个Ninja Turtle。相反地,Barbie
Doll却是一种趋势。Barbie出现已经很长时间了,但是一直大受欢迎。Barbie
Doll已经成为了一种趋势,而非一种时尚。
最成功的企业家是那些能够控制和掌握其行为的人。这些人当时尚出现时,能够很好地利用这种时尚,并稳健地将这些时尚转化为趋势,并得以长远地发展。
忘记时尚吧,当它们出现时,抑制一下。如果你希望你的产品始终受到欢迎,那么永远不要使其饱和。只有长时间的趋势才是能够驾御市场的最好方法。
Successful programs are not built on fads, theyre built on trends.
二十二、市场中的资源法则(Law of Resources)
Abstract from The 22 Immutable Laws of Marketing, By Al Ries and Jack Trout
如果你有一个很好的创意,并且认为你已经很好地理解了本书中的22个法则,你所需要的就是市场的帮助,那么本法则将为你燥热的大脑泼些冷水。
如果你没有一笔资金得以使你的创意能够付诸实施,那么即便是世界上最好的创意也毫无用处。没有什么比事实更有说服力了。市场是一个在人们头脑中进行竞争的游戏。你需要资金使你的想法驻留在人们的头脑中,尽力成为领袖,更进一步,你还需要资金使你的想法根植在人们的头脑中,并保持你的位置。
一些企业家将广告看做是进入人们头脑的一个解决方案。但是广告是非常昂贵的。为了二战,每分钟要花费9000美金;为了Vietnam战争,每分钟花费22000美金;在NFL
Super Bowl上的一分钟广告,将花费150万美金。
Steve Jobs和Steve Wozniak有一个很伟大的想法。但是是Mike
Markkula的91000美金使得他们的想法变成了现实。(Mike得到了Apple
Computer公司的1/3。)
没有资金的想法是毫无意义的。但是,你需要做的是利用你的想法获得资金,而不是纯粹市场的帮助。市场应该在得到资金之后才开始启动。
你有了想法之后,就需要通过获取资金来实现它。是资金推动了市场的运转,如果你希望成功,那么就需要资金来使你转动市场的车轮。

清血脂降胆固醇的中药方

一个清血脂降胆固醇的中药方,据说成功案例是某同学因长期血脂高胆固醇高,导致心脏冠状动脉柱塞,要做"通波仔"手术才能救命,也即将收窄的血管扩宽并植入药物涂层支架放复发的手术,因在香港该类手术要排期,于是在等待期间该同学不知哪里搞来这个降低血脂和胆固醇的中药方,自己煮来喝,结果等手术排期到了,医生一检查,说他堵塞情况不严重,不用"通波仔"了,手术被取消。

俺家亲戚听到好友这奇遇,因自己也有类似血脂和降胆固醇偏高的问题,就也照着抓药喝,已经喝了一年,每周一次,感觉良好。

下面是该中药方剂的配方:
山楂 7钱
杜仲 7钱
巴戟 7钱
生田七 3钱
金狗脊 7钱

(注意:以上配料只有生田七是3钱,其他都是7钱,如果最近胃口不好,山楂可适量增加。)

以上五种中药用七碗水煮成两碗半,可供两人服用,一周喝一次就行,如果一个人喝,可把两碗半中的一半放冰箱以后再喝;症状严重者,可增加至一周喝两次。

严正声明:
是药三分毒,没这毛病的同学可千万别喝着玩,先验血待医生确认有其症才使用;
俺不是医生,亦不懂中医中药故不清楚该中药方剂的效力及有何副作用,如有同学甘愿以身试法,俺建议最好先找中医指导后再服用,对任何因按照该药房抓药吃出毛病者,别来找我,俺不担负也负不起任何责任。

《建国大业》的一点遗憾

十月一日是中国人一个扬眉吐气的日子,六十年大庆更是花甲之喜,十二干支只轮回。大喜之日当然要拍部大片来庆祝和纪念一下了,于是早早的就看到了《建国大业》的广告宣传片,群星云集、阵容宏大,真有一番大庆佳节的喜悦。
然而让人们无法高兴的却是这些本是中国血统的大腕级的导演和演员们统统执的是外国护照,且大多是宣誓之后入了他国国籍的公民,严守他国的法律,向他国交纳个人所得税和受他国的政府与军队保护的骄子。他们早已放弃了成为中国民的骄傲,让一群不再以拥有中国国籍为荣的角色去表现中国《建国大业》的辉煌,岂不是件让中国人都感觉耻辱的事吗?
任何其他国家的文艺作品都可以让非中国国籍的优秀演员和导演们参与,但一部宣传中国建国史诗的影片,由无数的外国公民来表现,则不能不让人们有过多的遗憾。
这背后所说明的是什么?问题正在于为什么这些中国培养的优秀人才、演艺界的佼佼者、几乎占领了中国演艺界半边天下的成功人士们却选择了改变自己的国籍,宁愿放弃国人的尊严和作为中国国籍公民的荣耀,宁愿放弃这块生其养其的土地、放弃这里的山山水水、放弃这里曾经拥有过的童年和亲属,宁愿远走他乡用自己并不熟悉的语言与不同民族的人群交流,甚至可能过着举目无亲的生活。
也许他们并不信任中国的现行政策;他们并不相信这个执政的团队;也许是因为这个社会的仇富情绪;也许是世界观的评价体系扭曲;也许是缺少安全感和自由;也许是意识形态中的某种主义让他们恐惧,至少他们深感缺少法律对产权、财富、人生的各种必要的保护。
美国的发展史是一部吸引世界各国精英人才共同创造与发展的历史,至少有一个开放的让私有产权和财富安全的、能够明确的得到充分保障的法律;有人们可以充分的利用市场经济机制、发挥个人的才能并发家致富的制度体系;有一个能让人拥有梦想并可能通过努力去实现梦想的机会。
社会从不争论什么主义,只要从现象就可以判断出社会对制度的选择。中国的改革开放开始于深圳,正在于小平同志清楚的从大量的民众不顾生死危险和叛国的罪名、不惜用偷渡的方式、游泳的方式奔向另一个被文革时的政治舆论压倒一切的称之为万恶的旧社会、旧制度中,才反思出中国必须走改革之路的理论。
当年也许是穷并且吃不饱,人们只为了混一碗饭而跨越了世界。而今中国三十年的改革已取得了全世界不得不称赞的经济飞跃,整个中国跨入了世界GDP前几位,温饱的问题早已解决了,社会已发生了天翻地覆的变化,从最初的万元户已变成了百万元、千万元和亿万元的争夺,人们早已不再为穿衣吃饭而发愁了。
但为什么恰恰是那些先富起来的精英人群却成了主动的自由的申请境外他国护照的先锋。没有富起来的时候人们想的是吃饱、穿暖,而富起来之后,人们则更多的考虑的是财产权利的保护、人身权利的保护、选择权利的保护、言论权利的保护等等。否则又如何解释这种现象的普遍存在和不断扩大的发展趋势呢?
如果一个国家不能让最有才能的人放心的安家立业,仍有着让人们无法放心的不确定性,那么当人们有能力选择自己的国籍时,就会出现大量精英和先富起来的一群能人向其他的非母国转移。这也许是比一部反映中国人自豪而骄傲的影片中有大量的外籍人士更可悲的事情。这将永远的影响着中国经济与社会发展的基础、影响着中国成为世界强国和共同富裕的目标实现。
我不知道这些人为什么选择了非中国的国籍(并不能因此而说明他们不爱这个国家与民族),也许他们都有许多更充分的理由。如果一个国家不能消灭贫穷是可悲的,但如果一个国家不能吸引和留住能人与富人则是一件更可怕的事情。
但愿这种事情今后能有所改善或不再发生,至少让我们的民众能看到更多的精英在致力于建设这个生我养我的国家、在维护与改造这个世代生存的国界,让其能成为一个不但没有贫穷而且也没有对财富的歧视的国家,并且能培育出一个庞大的中产阶级和精英辈出的社会。让我们可以无忧无虑的生活在、可以植根于这片泥土之中、国度之中,让七十年大庆时不再出现一群外籍演员在颂扬中国光荣、伟大的历史事迹的影片。
附手机短信:"美、加、日、德等国著名影星参演罕见经典国产巨片《建国大业》,以下为诸位影星列表:美国籍:陈凯歌、陈红、刘亦菲、陈冲、邬君梅、顾长卫、蒋雯丽、宁静、王姬。香港籍:郎朗、李云迪、章子怡、胡军、汤唯、刘璇。加拿大籍:童安格、蒋大为、徐帆。英国籍:张铁林。日本籍:许晴。德国籍:韦唯。澳大利亚籍:沈小岑。新西兰籍:苏瑾。新加坡籍:李连杰。瑞士籍:斯琴高娃。泰国籍:胡兵。恭祝中国六十周年快乐!"

全球船运业危机

2009年8月23日 南方都市报
全球经济危机正在重创船运业:需求锐减,价格下降,船坞停满了空仓的货船。危机引发残酷竞争,部分公司必然成为牺牲品。单是德国的赫伯罗特船务公司就需要17.5亿欧元才能避免倒闭。
庞大的安德罗墨达号停靠在汉堡布尔夏德码头,无数的补给船和集装箱堆垛车像蜜蜂一样在它周围忙碌。安德罗墨达号是世界上最大的集装箱船之一,号称拥有10万马力的引擎,能运载11400个集装箱,长363米,造价高达1.11亿欧元,几个月前才在韩国完工交货。
安德罗墨达号是为经济繁荣期建造的。那时候这个世界似乎对集装箱、庞大货船和船坞有着无尽的需求。
升降吊桥忙着把装卸堤上的集装箱吊到甲板上。安德罗墨达号上有着广阔空间,能容纳18×86×19个集装箱。最后,只有2/3的空间被用到。"这还不算糟糕,"船长伊凡·波扎尼可说,"至少在目前的形势下。"
第二天,安德罗墨达号启程,开往中国。那里也是它68天往返旅程的起始点。安德罗墨达号专门跑东亚和北欧航线,这条线堪称全球贸易高速公路。它定期把中国生产的电视机、移动电话、T恤等货物运往西方,再把工件、机器和空货柜运回东方。
不久之前,船运业还是经济全球化的动脉和最大的受益者,使得各种商品以越来越快的速度在全球流通。自从中国成为世界工厂之后,船运业年复一年持续增长。2008年,共有大约5亿个标准集装箱飘洋过海,比2000年翻了一番。
每一年都有更新更庞大的货船诞生,港口被扩建,航班增加。世界集装箱舰队的总载货量从2000年代的400万个增加到今天的1250万个。
在经济膨胀的年代,许多人发家致富。这其中包括货船老板、银行家和投资人。汉堡港受益颇大。在过去10年,这个德国北部港口城市成为世界金融和船运中心。德国人拥有全球35%的集装箱船,近60%的船运银行的总部位于汉堡。汉堡的赫伯罗特(H
apag-Lloyd)成为世界最大的船运公司之一。
可现在,全球经济危机扼杀船运业的繁荣,变故似乎发生在一夜之间。船运业史无前例地停止增长,甚至开始萎缩。今年上半年,集装箱货运量减少16%.
新的超级轮船对于需要运输的货物而言太大,常常无法装满。花费几十亿欧元扩建的码头现在完全用不上。主要航线运营商、船运银行处于破产边缘。经济全球化曾经的最大受益者现在即将成为它的最大牺牲品。
"还从未出现过这样的危机,"世界最大海上货运商德讯公司(Kühne+N
agel)的首席执行官莱茵哈特·兰格说。2009年,全球船运公司亏损总计可能达到200亿美元。英国海事报《劳埃德报》说,"集装箱运输正陷于全面惊慌中。"
德鲁里船运咨询公司警告说:"船运业正站在深渊边缘。"这种惊慌感在汉堡尤其明显。
危机象征
100多年来,赫伯罗特总部大楼在阿尔斯特湖边巍然耸立。威廉二世时期建筑风格的大门上铭刻着:"世界是我的战场。"这座大楼是汉堡作为世界重要港口城市的象征,也显示了这家有着160年历史的公司在世界船运业的地位。
但现在,它变成了危机的象征。具有讽刺意味的是,在船运界以高效率著称的赫伯罗特现在竟然要为公司的生死存亡而斗争。它的案例引起了轮船主、银行和世界船务执行官的关注。如果连赫伯罗特这样的公司也不能幸存,谁将是下一个牺牲品?
赫伯罗特在今年第一季度的亏损就达到2.22亿欧元,未来18个月,它需要近17.5亿欧元才能持续营业。"以目前的价格,我们的所有线路都是亏损,"董事会成员乌尔里希·柯兰尼希指出了他们所面临的困难。现在,将一个集装箱从亚洲运往欧洲只能得到500美元———比成本还低300美元。1年前,每个集装箱的运费还高达1500美元。
货物消失
虽然船运业的盈利存在周期性波动,但船运公司认为当前的困境绝非周期性低潮,情况已经急剧恶化。"在过去,货物总是源源不断,"柯兰尼希说。现在已经不比从前。由于西方消费锐减,东方生产跟着紧缩,全球集装箱舰队庞大的空间再也无法装满。运费骤然减少意味着所有船运公司都面临严重亏损。
船运公司尝试提高价格,但收效甚微。最近,船运公司将亚洲至欧洲的运费提高了500美元。
然而,高运费对消费者和生产商几乎没有什么影响,因为海运成本几乎不进入流通。一台电视从亚洲运往欧洲的成本为10美元,一台吸尘器只要1美元,一瓶啤酒只要1美分。
集装箱的发明使这样的低廉运费成为可能。可以说集装箱的普及是全球化前进的最大推动力。如果没有这些钢铁盒子,将无法想象中国崛起成为世界主要经济实体。运费越低廉,西方公司越有理由将生产转包到遥远的、劳动力廉价的地方。"中国工厂大多没有仓储能力,"德讯公司执行官兰格说,"它们可以说是直接在集装箱中生产。"
事实上,运费如此的低廉,即使把西班牙的西红柿运往中国,加工成番茄酱再运回欧洲也是划算的。荷兰郁金香花球被运往新西兰栽培,成熟之后再运回荷兰准备采摘上市。
残酷竞争
在目前的经济危机形势下,为了争夺市场份额,那些财力雄厚的船运公司开始大肆杀价。一位船主说"正在上演一场殊死搏斗。"
世界船运业老大马士基航公司的首席执行官埃文德·科尔丁曾公开表示,如果世界上仅仅剩下那么几家船运公司,海上运输业的发展将更加健康。许多人将目前的灾难局面部分归咎于马士基。
虽然今年第一季度马士基同样亏损(3.73亿美元),但这家丹麦船运公司隶属于一家石油燃气公司,财大气粗,可以轻易把船运部门的损失分摊出去。
目前,世界主要船运公司无一盈利。新加坡海皇轮船公司(N O
L)亏损2.45亿美元,韩国韩进海运株式会社亏损1.1亿美元。
和马士基一样,这些公司有着强大的经济后盾。海皇船运的老板是新加坡政府投资基金淡马锡(T
em asek );中国的中远集团(C osco)和中海集团(C
hinaShip-ping)有政府资助。日本邮船(N Y K )同样有政府后盾。
赫伯罗特似乎在最糟糕的时候,被严重的危机所累。去年公司的大部分盈利被用于填补老旧母公司T
U I的亏空,导致这家汉堡船运公司几乎没有留下资金储备。去年年末,TU
I把赫伯罗特卖给了汉堡城市财团,与此同时还让它背上了13亿欧元的债务,对已经开始亏损的企业而言无异于雪上加霜。一位公司执行官说,"没有外界帮助,我们无法支撑下去。"
为了让这家历史悠久的德国船运公司度过危机,政府正考虑提供最多10亿欧元的贷款。原则上说,集装箱生意依然前景看好。全球贸易已有反弹趋势,运费有望跟着提高。"来自亚洲的货物数量已经增加,"赫伯罗特执行官柯兰尼希说。
管理咨询公司罗兰贝格的一份报告对德国最大的几家船运企业的未来生存前景进行了简评。结论认为赫伯罗特的前景相当乐观。两周前送交给银行的评估报告说,"赫伯罗特具备了船务运营商的所有成功因素。"
这份报告将被交给赫伯罗特的监事会。如果获得批准,将于本周向柏林政府提交贷款担保申请。此前,所有公司股东必须统一增资7.5亿欧元,此前董事会一直犹豫不决。
无论如何,裁员和减薪是不可避免的。此外,赫伯罗特还得摆脱租借到的船只。公司经营的128艘集装箱船中有一半是租来的。已经有30艘船被还给原来主人。其他船运公司也在采取同样策略。内幕人士说,瑞士M
SC已决定不再更新80艘货船的包租合同。法国C M
A公司据说有170艘船租赁合同即将到期。
对那些船租给其它公司的船运公司而言,这当然不是什么好消息。
被重创的汉堡
在全世界4619艘集装箱船中,1644艘为德国人所有。在刚结束的经济繁荣时期,约12家汉堡船运公司和当地银行及投资基金一起成为投资建造新集装箱船的主要力量。很多时候,公司并不自己经营这些船只,而是把它们租出去,通常连同船员一起。
过去几年的繁荣在一定程度上也得益于低廉的利率和充足的现金。在节税政策和高回报的刺激下,投资者和银行将数千亿美元投入船运业。
在汉堡,凭借和金融市场、船运公司的传统良好关系,许多人知道如何利用天时地利。一群低调的德国船主逐渐取代了希腊船运王朝在集装箱船运领域的主宰地位。这群德国船主中有一位65岁的克劳斯-彼得·奥芬。他在33岁时从一家破产企业购买了第一艘货船,现在名下拥有128艘船。最多的时候他订购的新船达到20艘,包括世界上最大的集装箱货船,负载量14000个标准箱。另一位船主厄克·里克迈尔出生于船运世家,短短10年内将旗下舰队船只数量从46艘增加到118艘。还有一位叫彼得·杜勒的船主经营着200艘船。
虽然为人低调,汉堡船主们在最近几年大赚特赚。一位内幕人士说,"连公司的清洁工也开保时捷。"专营船运金融的银行数量也迅速增加,20年前还屈指可数,今天已接近60家。
考虑到全球化不可阻挡的势头,对集装箱船队需求仿佛是个无底洞。商品和货物以史无前例的速度在全球流通。一些设备老旧的船运公司装船的速度几乎赶不上来货的速度。
多米诺效应
"租赁货船将大量返回,"一位船务经理警告说,"对许多汉堡人而言,日子将变得难过起来。"另一位业内专家说:"大型租船公司将能度过这场危机,小企业之间必将有一场生死攸关的恶斗。"缺少了充足的租船收入,船运公司将无法偿还他们的银行贷款。
在过去发生危机的时候,船主和银行通常会允许租赁者延期付款最多达24个月。但这场全球金融危机让借款人比从前更加谨慎。"现在银行的决策者不是银行家而是风险经理,"一位沮丧的船主说。
致命的多米诺骨牌效应正在袭击全球船运业。航线运营商已经无法支付轮船租金,与此同时,船主和船运基金无法向银行偿还债务。进而导致一些银行陷入麻烦。
世界最大船运贷款银行汉堡北方银行发放的船舶建造贷款高达330亿欧元。银行已经采取措施减轻损失。"我们已经把申请贷款船运公司的必须具备的产权比率提高。"北方银行船运贷款部负责人哈拉尔德·库兹尼克说。银行还将风险准备金提高了20倍,从贷款额的0.05%增加到1%.
兼并压力
即便是银行业都不敢宣称汉堡船运业已经度过危机。库兹尼克说,"目前的市场低迷肯定会造成并兼并压力。那些过度贷款的公司将遇到麻烦。强大的对手将很快利用这个机会。"
航线运营商保持还贷能力当然是有利于整个行业的。如果运营商倒闭,银行和独立船主也将遭受巨大损失。正是由于这个原因,两个月前,汉堡银行和船主们才决定携手拯救陷入困境的智利船运公司CSA
V.通过换股方式,CSA V的债务减少了1/3.
赫伯罗特在去年6月写给其所租货船船主的一封信中指控他们"扭曲竞争",要求重新商谈"延租合同的租金问题"。这一努力显然取得成效,据赫伯罗特说商谈后的船舶租金已经减少了多达30%.
新船过剩
但是德国船运公司依然面临最严峻的问题。2008年年中前订购的1550艘新船将在未来几年内陆续交付使用。承建一方的亚洲船厂拒绝取消合同。
由于缺乏后续资金,一些投资者不得不放弃已经支付给船厂的预付金,有时预付相当于轮船总造价的40%.多数公司试图和船厂重新协商,至少争取延缓交货日期,期望在未来几年内形势会有所好转。
目前,在船厂的账上订购集装箱船的总运载量达到530万个标准箱,大约相当于目前全球集装箱船队总运载量的50%.即使,明年全球贸易彻底恢复,多余的新船仍将导致运费下降。
为减少运载量,已有大量货船提前退休,静静躺在船坞里生锈。具有讽刺意味的是,这些闲置的货船大多停泊在世界贸易主动脉———新加坡港的附近。
要拜访全球化剩余产品的坟墓需要从新加坡港出发,坐船45分钟。大批的退役轮船就停靠于此,其中包括各个级别的油轮、货轮,放眼望去是一片独特壮观的景致。
每年大约有13万艘船进入新加坡港,通常它们只在那里停留几天时间。一年前,船运业在新加坡还相当的红火,装得满满的集装箱船从这里进入马六甲海峡,前往欧洲,或者走相反方向到中国、日本和韩国。2005年,新加坡取代香港,成为世界第一大集装箱港口,年吞吐能力达到2900万标准箱。
当然,今天,依然有很多船停在新加坡港口内,但它们所装载的集装箱数量只有去年的25%.
庞大的货船也失去了往日的生气,船运公司将大多数船员遣散回家,这其中有很多是菲律宾人。剩下的少数必需船员整日待在驾驶舱内,或者忙着船只维护。
10%货船闲置
路西安·王是新加坡海事和港务局局长。他说,到今年4月,全球有约450艘集装箱船闲置———相当于全球集装箱船总数的10%.
在新加坡以北几千公里外的上海,危机的后果同样明显。上海船运交易所变得出奇的安静,大厅中一块显示屏上的数据无不在昭告集装箱运输量的锐减。一张表示中国集装箱运价指数的曲线图从去年起就一直呈下滑态势。
今年6月,中国出口量比去年同期减少21.4%.现在,信使送到交易所柜台需要盖章的表格只有薄薄的几张。一年前,他们手中通常有厚厚一叠文件。上海船运交易所行政主管王建民的办公室就位于显示屏西方。王主管说,早在2008年6月,华尔街爆发金融危机之前,他已经注意到上海港的集装箱处理量开始减少。北京希望在2020年前,把上海变成全球船运主要中心。
上海的目标
王主管认为,目前的船运危机为上海创造了赶上外国竞争者的机会。尽管危机当前,上海市政府依然在大力扩建港口和船厂。
位于上海入海口附近的洋山深水港表明了上海不惜代价发展船运业的决心。由于城市附近的水太浅,无法停泊大型油轮和集装箱船,一座位于深水区的海岛被铲除,变成了一个巨大的码头。根据目前计划,洋山将修建30个码头,2020年具备年1500万标准箱的处理量。
中国还制定了野心勃勃的造船业发展计划,力图取代韩国,成为世界第一造船大国。再往北,在长江入海口,上海正将长兴岛建设成一个庞大的综合造船基地。
长兴从前是一个以渔业和柑橘种植为主的小岛,现在变成了一个庞大建筑工地。多家国有造船厂已经在此开工。在炎炎夏日之下,成群的造船工人在挥汗如雨地焊接轮船部件。而旁边的工地上,建筑工人正在修建船厂工人宿舍。官方报纸报道,明年长兴岛居民数量将翻一番,达到20万人。
码头上,一块巨大的广告牌上说,把长兴建成造船业中心是中国国策。全球经济危机爆发后,北京已暂缓未来3年的新船厂建设计划,但已经开始的计划并未停工。
在政府支持下,中国北方港口天津已经成立了一个造船投资基金。目标是收购老旧船厂的股份,支持兼并收购订单被取消的船厂。这也是帮助造船厂度过危机的策略之一。
这一计划能否成功很大程度上取决于世界,尤其是美国经济的发展。德讯公司执行官兰格说"只有在美国经济复苏后,全球贸易才能重新启动。"
前景灰暗
在美国南卡罗来纳州的查尔斯顿看不到丝毫复苏的迹象。在美国屈指可数的大港口,竟然只看到一艘孤零零的船,M
SC布拉格号。去年,查尔斯顿港口才新装了多座巨大的起重机。现在,它们都闲着,部分原因是德国机械制造公司的订单锐减。
美国进口的德国产品中有45%经过查尔斯顿港。赫伯罗特等德国船运公司的集装箱高高地堆积在码头上。刚下组装线的宝马汽车在码头上排队等候。其中包括附近工厂生产的准备运往欧洲的SU
V和为美国市场生产的轿车。
港口发言人拜伦·米勒的衣领缝着一面小小的德国国旗,脸上挂着微笑。可当被问到当前形势时,他立刻摇头说,"不好,不好。"2008年7月至2009年5月,北欧地区运往查尔斯顿的集装箱数量下降了10万个。港口总吞吐量减少近18%.
根据去年批准的港口扩建计划,一个新码头将在2014年完工,使港口处理能力提高50%.
不仅在查尔斯顿,为了满足越建越大的集装箱船的需要,为了提高吞吐量,世界各地的港口都在疯狂扩建。看来,没有国家愿意因为港口缺陷而堵塞全球化高速公路。
可是,现在,交通堵塞早已成为历史。德鲁里咨询公司的专家估计,要到2010年,集装箱运输量才能恢复到2008年的水平。
虽然如此,查尔斯顿的港口扩建依然在继续。米勒说"也许现在世界上没有一个港口不曾考虑过延迟工期。"比如在迪拜,港口扩建计划已经无限期推迟。
汉堡也有一个7.5亿欧元的港口扩建计划。过去多年里,汉堡港一直是欧洲发展最迅速的港口,吞吐量在10年利翻了3倍,达到近1000万标准箱。港口官员预测,2015年还将达到2000万箱。但现在,再也没有人相信这些预言。事实上,2009年第一季度,汉堡港的吞吐量减少了25%,原来的扩建计划也被推迟。"毕竟,"一位船运经理说,"为什么要为也许永远不会到来的船只花费上亿欧元呢?"
文:A.Jung,T.Schulz&W.Wagner

BootLoader和内核image的关系

昨晚听舍友说起编译linux内核这个事情,作为计算机专业毕业的人,对这个东西完全不了解,太郁闷了。经过多方了解,总算是有了一个比较模糊的概念。在linux中内核image一般放在boot/grub或者boot/lilo中,经过舍友的讲解,大致了解了这个image的左右,但是谁来读这个grub.conf呢?舍友也不晓得。躺在床上想来想去,BootLoader!这个东西一定是比image加载更早的!联系工作中的一些开发流程,更加确定了这个东西,兴奋。。今天上午过来就查了一下BootLoader,下面是找到的一个比较入门的解说,大概跟我想的差不多。继续学习,交换机作为嵌入式系统的一种,一样是需要BootLoader来加载image运行的。
BootLoader是系统加电后运行的第一段代码。一般它只在系统启动时非常短的时间内运行。对于由DaVinci构成的嵌入式系统来说,这是至关重要的一步。
在PC中,整个BootLoader由BIOS(主板上固化的一段程序)、位于硬盘MBR区的OS
Loader一起组成。BIOS完成第一级引导加载工作,OS
Loader完成第二级引导加载工作(可能有些系统不只两级加载)。上电后,系统开始执行BIOS中的代码,这段代码负责进行硬件检测和资源分配,完成这步工作后,将按照CMOS中设定的顺序检索硬盘。BIOS将第一个检索到的硬盘上MBR中的内容读到系统RAM中,然后将系统控制权交给相应的OS
Loader。最后由OS
Loader负责将所要引导的操作系统的内核映象从硬盘上读到系统RAM中,然后跳转到内核的入口点上。
在由DaVinci平台构成的嵌入式系统中,通常不存在BIOS那样的一段固定内容的固化的程序。原因是PC平台尽管品牌等有差异,但通常都有相近甚至是相同的体系结构,遵循一个共同的工业标准,因而可以使用同一个BIOS代码来引导。而通常对嵌入式系统来说,即使是使用相同的架构,甚至是同一个CPU如都是DM6446来构建,但因为并不能遵的一个共同的工业标准。因而基于DaVinci平台构建的嵌入式系统上除非两者的各方面与引导过程相关设计完成一致,否则不能使用同一个BootLoader。
可以说BootLoader是一个由DaVinci平台构成的嵌入式系统的钥匙。没有这把钥匙就无法进入系统的大门。也就是说在完成自己的硬件研发后,首要的工作就是BootLoader的移植。
BootLoader的概念
BootLoader是系统加电启运行的第一段软件代码.回忆一下PC的体系结构我们可以知道,PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的引导程序一起组成。BIOS在完成硬件检测和资源分配后,将硬盘MBR中的引导程序读到系统的RAM中,然后将控制权交给引导程序。引导程序的主要运行任务就是将内核映象从硬盘上读到RAM中
然后跳转到内核的入口点去运行,也即开始启动操作系统。
而在嵌入式系统中,通常并没有像BIOS那样的固件程序(有的嵌入式系统也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成.比如在一个基于
ARM7TDMI core的嵌入式系统中,系统在上电或复位时都从地址
0x00000000开始执行.而在这个地址处安排的通常就是系统的BootLoader程序。
简单地说BootLoader就是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图(有的CPU没有内存映射功能如
S3C44B0),从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。对于一个嵌入式系统来说,可能有的包括操作系统,有的小型系统也可以只包括应用程序,但是在这之前都需要BootLoader为它准备一个正确的环境。通常,BootLoader是依赖于硬件而实现的,特别是在嵌入式领域,为嵌入式系统建立一个通用的BootLoader是很困难的。当然,我们可以归纳出一些通用的概念来,以便我们了解特定BootLoader的设计与实现。
u BootLoader的移植和修改
每种不同的CPU体系结构都有不同的BootLoader。除了依赖于CPU的体系结构外,BootLoader实际上也依赖于具体的嵌入式板级设备的配置,比如板卡的硬件地址分配,RAM芯片的类型,其他外设的类型等。这也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种CPU而构建的,如果他们的硬件资源和配置不一致的话,要想让运行在一块板子上的BootLoader程序也能运行在另一块板子上,也还是需要作一些必要的修改。
u BootLoader的安装
系统加电或复位后,所有的CPU通常都从CPU制造商预先安排的地址上取指令。比如,S3C44B0在复位的都从地址0x00000000取它的第一条指令。而嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM或FLASH等)被安排这个起始地址上,因此在系统加电后,CPU将首先执行BootLoader程序。也就是说对于基于S3C44B0的这套系统,我们的BootLoader是从0地址开始存放的,而这块起始地址需要采用可引导的固态存储设备如FLASH。
u 用来控制BootLoader的设备或机制
串口通讯是最简单也是最廉价的一种双机通讯设备,所以往往在BootLoader中主机和目标机之间都通过串口建立连接,BootLoader程序在执行时通常会通过串口来进行
I/O,比如:输出打印信息到串口,从串口读取用户控制字符等。当然如果认为出口通讯速度不够,也可以采用网络或者USB通讯,那么相应的在BootLoader中就需要编写各自的驱动
u BootLoader的启动过程
多阶段的BootLoader能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的
BootLoader大多都是2阶段的启动过程,也即启动过程可以分为 stase1和stase
2两部分,具体功能将在下一节介绍。
u Boot Loader的操作模式
大多数BootLoader都包含两种不同的操作模式。"启动加载"模式和"下载"模式,这种区别仅对于开发人员才有意义。但从最终用户的角度看,BootLoader的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。
启动加载(Boot
loading)模式:这种模式也称为"自主"(Autonomous)模式,也即BootLoader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。这种模式是BootLoader的正常工作模式。因此在嵌入式产品发布的时候,BootLoader显然必须工作在这种模式下.
下载(Down loading)模式:在这种模式下
目标机上的BootLoader将通过串口连接或网络连接等通信手段从主机下载文件,比如:下载应用程序、数据文件、内核映像等.从主机下载的文件通常首先被BootLoader保存到目标机的RAM中然后再被BootLoader写到目标机上的固态存储设备中。BootLoader的这种模式通常在系统更新时使用。工作于这种模式下的BootLoader通常都会向它的终端用户提供一个简单的命令行接口。
在教学系统中提供的BootLoader中没有实现自主模式,可以通过修改代码来实现该功能。
u BootLoader与主机之间进行文件传输所用的通信设备及协议
最常见的情况就是,目标机上的BootLoader通过串口与主机之间进行文件传输,传输可以简单的采用直接数据收发,当然在串口上也可以采用xmode/ymode/zmode协议以及在以太网上采用TPTP协议。
此外,在论及这个话题时,主机方所用的软件也要考虑。比如,在通过以太网连接和TFTP协议来下载文件时,主机方必须有一个软件用来提供TFTP服务。

JPEG 原理详细实例分析及其在嵌入式 Linux 中的应用

JPEG 原理详细实例分析及其在嵌入式 Linux 中的应用 - Video - Embeded Linux
   


JPEG 原理详细实例分析及其在嵌入式 Linux 中的应用
作为一个基本的图像压缩方式,JPEG 已经得到了广泛的运用,但 JPEG 相关的基本原理,却经常被忽视,或解释得很不确切。 这里我们详细讨论一下 JPEG 的编码原理,并结合实例来给出一个更加感性的认识。JPEG 编码的详细过程有着诸多的信息可以给我们巨大的启发,我们在这里讨论的就是要对这些信息做一个具体细致的分析,通过我们的讨论,大家会对 JPEG 编码过程中出现的内容有一个确切的了解,并且能了解到这些内容的来龙去脉。

一、系统架构

本文以一个实际的产品为例,来说明 JPEG 在其中的应用。


 

本系统为一个嵌入式 Linux 网络播放器,主要的功能为播放家庭网络中的多媒体文件,在家庭客厅等环境中有着大量的应用,它可以给用户提供更方便快捷的媒体文件的播放方式,并能充分利用家庭音响系统的巨大功能,而非 PC 环境下有限的外部设备,大大改善了媒体文件的播放体验。

系统主要的功能包括:


 

本系统架构如下图:


 

本系统是基于嵌入式 Linux 的一个应用,使用的是 ucLinux 2.4.22,并使用了 microwindows 作为 GUI 界面,底层使用了 Linux kernel 的 FrameBuffer 作为显示输出。

此系统在两个方面使用到了 JPEG 库:

1、 UI 的显示,即各种人机交互界面,考虑到用户体验,所以大量使用了贴图来美化 UI

2、 JPEG 图片文件的全屏播放,包括用户手中的各种照片等

二、JPEG 概述

JPEG 是 Joint Photographic Experts Group 的缩写,即 ISO 和 IEC 联合图像专家组,负责静态图像压缩标准的制定,这个专家组开发的算法就被称为 JPEG 算法,并且已经成为了大家通用的标准,即 JPEG 标准。 JPEG 压缩是有损压缩,但这个损失的部分是人的视觉不容易察觉到的部分,它充分利用了人眼对计算机色彩中的高频信息部分不敏感的特点,来大大节省了需要处理的数据信息。

人眼对构成图像的不同频率成分具有不同的敏感度,这个是由人眼的视觉生理特性所决定的。如人的眼睛含有对亮度敏感的柱状细胞1.8亿个,含有对色彩敏感的椎状细胞0.08亿个,由于柱状细胞的数量远大于椎状细胞,所以眼睛对亮度的敏感程度要大于对色彩的敏感程度。

总体来说,一个原始图像信息,要对其进行 JPEG 编码,过程分两大步:

1、 去除视觉上的多余信息,即空间冗余度

2、 去除数据本身的多余信息,即结构(静态)冗余度

1、去除视觉上的多余信息

当你拿到一个原始未经处理的图像,是由各种色彩组成的,即在一个平面上,有各种色彩,而这个平面是由水平和垂直方向上的很多点组成的。实际上,每个点的色彩,也即计算机能表示的每个像素点的色彩,能分解成红、绿、蓝,即 RGB 三元色来表示,即这三种颜色的一定比例的混合就能得到一个实际的色彩值。


 

所以,实际上,这个平面的图像,可以理解为除了水平 X 和垂直 Y 以外,还有一个色彩值的 Z 的三维的系统。Z 代表了三元色中各个分支 R/G/B 的混合时所占的具体数值大小,每个像素的 RGB 的混合值可能都有所不同,各个值有大有小,但临近的两个点的 R/G/B 三个值会比较接近。


 

由于这个原始图像是由很多个独立的像素点组成的,也就是说它们都是分散的,离散的。比如有些图像的尺寸为640X480,就表示水平有640个像素点,垂直有480个像素点。

从上面的内容,我们可以知道两个相邻的点,会有很多的色彩是很接近的,那么如何能在最后得到的图片中,尽量少得记录这些不需要的数据,也即达到了压缩的效果。

这个就要涉及到图像信号的频谱特性了。

图像信号的频谱线一般在0-6MHz范围内,而且一幅图像内,包含了各种频率的分量。但包含的大多数为低频频谱线,只在占图像区域比例很低的图像边缘的信号中才含有高频的谱线。这个是对 JPEG 图像压缩的理论依据。

因此具体的方法就是,在对图像做数字处理时,可根据频谱因素分配比特数:对包含信息量大的低频谱区域分配较多的比特数,对包含信息量低的高频谱区域分配较少的比特数,而图像质量并没有可察觉的损伤,达到数据压缩的目的。

将原始图像这个色彩空间域,转换为频谱域,怎么转呢,这个就用到了数学上的离散余弦变换,即 DCT(Discrete Cosine Transform) 变换。

DCT 是可逆的、离散的正交变换。变换过程本身虽然并不产生压缩作用,但是变换后的频率系数却非常有利于码率压缩。即这个变换过程得到一个 DCT 变换系数,而对这个系数可以再进行更进一步的处理,即所谓的量化。经过量化,就能达到数据压缩的作用了。

总体说来,这第一步,对图像进行编码,去除多余的信息,要用到 DCT 变换中的正向 DCT(FDCT),然后再对变换的系数做量化(Quantization),这个过程就是依据的经验值,来处理人眼视觉系统所不敏感的高频数据,从而极大地减少了需要处理的数据量,这个是结合数学方法与经验值而做的处理。

2、去除数据本身的多余信息

利用 Huffman 编码,来将最后的数据用无损的方式做压缩,这个是纯数学上的处理方式。

总体来说,上面的两步即:

如果处理的是彩色图像,JPEG 算法首先将 RGB 分量转化成亮度分量和色差分量,同时丢失一半的色彩信息(空间分辨率减半)。然后,用 DCT 来进行块变换编码,舍弃高频的系数,并对余下的系数进行量化以进一步减小数据量。最后,使用 RLE 行程编码和 Huffman 编码来完成压缩任务。

三、JPEG 原理详细分析

下面将更加详细地介绍这两步中的各个细节。

JPEG 编码中主要涉及到的内容主要包括:

1. Color Model Conversion (色彩模型)

2. DCT (Discrete Cosine Transform 离散余弦变换)

3. 重排列 DCT 结果

4. 量化

5. RLE 编码

6. 范式 Huffman 编码

7. DC 的编码


 

1、色彩空间 color space

在图像处理中,为了利用人的视角特性,从而降低数据量,通常把 RGB 空间表示的彩色图像变换到其他色彩空间。

现在采用的色彩空间变换有三种:YIQ,YUV 和 YCrCb。

每一种色彩空间都产生一种亮度分量信号和两种色度分量信号,而每一种变换使用的参数都是为了适应某种类型的显示设备。


 

YUV 不是哪个英文单词的缩写,而只是符号,Y 表示亮度,UV 用来表示色差,U、V 是构成彩色的两个分量;

YUV 表示法的重要性是它的亮度信号(Y)和色度信号(U、V)是相互独立的,也就是 Y 信号分量构成的黑白灰度图与用 U、V 信号构成的另外两幅单色图是相互独立的。由于 Y、U、V 是独立的,所以可以对这些单色图分别进行编码。此外,黑白电视能接收彩色电视信号也就是利用了 YUV 分量之间的独立性。

举例来说明一下:

要存储 RGB 8∶8∶8的彩色图像,即 R、G 和 B 分量都用8位二进制数(1个字节)表示,图像的大小为640×480像素,那么所需要的存储容量为640×480×(1+1+1)=921 600字节,即900KB,其中(1+1+1)表示 RGB 各占一个字节。


 

如果用 YUV 来表示同一幅彩色图像,Y 分量仍然为640×480,并且 Y 分量仍然用8位表示,而对每四个相邻像素(2×2)的 U、V 值分别用相同的一个值表示,那么存储同样的一幅图像所需的存储空间就减少到640×480×(1+1/(2*2)+1/(2*2))=460 800字节,即450KB。也就是把数据压缩了一半。


 

无论是用 YIQ、YUV 和 YCrCb 还是其他模型来表示的彩色图像,由于现在所有的显示器都采用 RGB 值来驱动,这就要求在显示每个像素之前,须要把彩色分量值转换成 RGB 值。

对电视机,在考虑人的视觉系统和电视阴极射线管(CRT)的非线性特性之后,RGB 和 YUV 的对应关系可以近似地用下面的方程式表示:


 

即:

Y=0.3R+0.59G+0.11B

U=B-Y

V=R-Y

对计算机而言,计算机用的数字域的色彩空间变换与电视模拟域的色彩空间变换不同,它们的分量使用 Y、Cr 和 Cb 来表示,与 RGB 空间的转换关系如下:


 

从这里,就可以看出,计算出来的 Y、Cr 和 Cb 分量,会出现大量的小数,即浮点数,从而导致了在 JPEG 编码过程中会出现大量的浮点数的运算,当然经过一定的优化,这些浮点数运算可以用移位与加法这些计算机能更快速处理的方式来对其进行编码。

RGB 与 YCrCb 之间的逆变换关系可写成如下的形式:


 

总体来说,上面讲的这些内容,主要就是对原始图片,可以先进行色彩空间的处理,使采集到的图像数据有所减少。

请注意,实际上,JPEG 算法与色彩空间无关,色彩空间是涉及到图像采样的问题,它和数据的压缩并没有直接的关系。

因此"RGB 到 YUV 变换"和"YUV 到 RGB 变换"不包含在 JPEG 算法中。JPEG 算法处理的彩色图像是单独的彩色分量图像,因此它可以压缩来自不同色彩空间的数据,如 RGB,YcbCr 和 CMYK。

2、色彩深度 color depth

在图像中,它是由很多个点来组成的,那么存储每个像素点所用的位数就叫做像素深度。对一个图片,这个值是可以有所不同的,从而会使得图片的数据有多和少的区别。

一幅彩色图像的每个像素用 R,G,B 三个分量表示,若每个分量用8位,那么一个像素共用3X8=24位表示,就说像素的深度为24 bit,每个像素可以是2的24次方=16 777 216种颜色中的一种。表示一个像素的位数越多,它能表达的颜色数目就越多。

在用二进制数表示彩色图像的像素时,除 R,G,B 分量用固定位数表示外,往往还增加1位或几位作为属性(Attribute)位。例如,RGB 5∶5∶5表示一个像素时,用2个字节共16位表示,其中 R,G,B 各占5位,剩下一位作为属性位。在这种情况下,像素深度为16位,而图像深度为15 位。

在用32位表示一个像素时,若 R,G,B 分别用8位表示,剩下的8位常称为 alpha 通道(alpha channel)位,或称为覆盖(overlay)位、中断位、属性位。它的用法可用一个预乘 α 通道(premultiplied alpha)的例子说明。假如一个像素(A,R,G,B)的四个分量都用归一化的数值表示,(A,R,G,B)为(1,1,0,0)时显示红色。当像素为 (0.5,1,0,0)时,预乘的结果就变成(0.5,0.5,0,0),这表示原来该像素显示的红色的强度为1,而现在显示的红色的强度降了一半。

这个 alpha 值,在这里就用来表示该像素如何产生特技效果。

总体来说,图像的宽高、分辨率越高,就是组成一幅图的像素越多,则图像文件越大;像素深度越深,就是表达单个像素的颜色和亮度的位数越多,图像文件就越大。

只有黑白两种颜色的图像称为单色图像(monochrome),每个像素的像素值用1位存储,它的值只有"0"或者"1",一幅640×480的单色图像需要占据37.5 KB的存储空间。

而灰度图像,即有色深的黑白图像,如果每个像素的像素值用一个字节表示,而不是仅仅只有一位,那么灰度值级数就等于256级,每个像素可以是0~255之间的任何一个值,一幅640×480的灰度图像就需要占用300 KB的存储空间,类似上面说到过的 Y 分量。

3、离散余弦变换 DCT

将图像从色彩域转换到频率域,常用的变换方法有:


 

DCT变换的公式为:


 

f(i,j) 经 DCT 变换之后,F(0,0) 是直流系数,其他为交流系数。

还是举例来说明一下。

8x8的原始图像:


 

推移128后,使其范围变为 -128~127:


 

使用离散余弦变换,并四舍五入取最接近的整数:


 

上图就是将取样块由时间域转换为频率域的 DCT 系数块。

DCT 将原始图像信息块转换成代表不同频率分量的系数集,这有两个优点:其一,信号常将其能量的大部分集中于频率域的一个小范围内,这样一来,描述不重要的分量只需要很少的比特数;其二,频率域分解映射了人类视觉系统的处理过程,并允许后继的量化过程满足其灵敏度的要求。

当u,v = 0 时,离散余弦正变换(DCT)后的系数若为F(0,0)=1,则离散余弦反变换(IDCT)后的重现函数 f(x,y)=1/8,是个常 数值,所以将 F(0,0) 称为直流(DC)系数;当 u,v≠0 时,正变换后的系数为 F(u,v)=0,则反变换后的重现函数 f(x,y) 不是常数,此时 正变换后的系数 F(u,v) 为交流(AC)系数。

DCT 后的64个 DCT 频率系数与 DCT 前的64个像素块相对应,DCT 过程的前后都是64个点,说明这个过程只是一个没有压缩作用的无损变换过程。

单独一个图像的全部 DCT 系数块的频谱几乎都集中在最左上角的系数块中。

DCT 输出的频率系数矩阵最左上角的直流 (DC)系数幅度最大,图中为-415;以 DC 系数为出发点向下、向右的其它 DCT 系数,离 DC 分量越远,频率越高,幅度值越小,图中最右下角为2,即图像信息的大部分集中于直流系数及其附近的低频频谱上,离 DC 系数越来越远的高频频谱几乎不含图像信息,甚至于只含杂波。

DCT 本身虽然没有压缩作用,却为以后压缩时的"取"、"舍" 奠定了必不可少的基础。

4、量化

量化过程实际上就是对 DCT 系数的一个优化过程。它是利用了人眼对高频部分不敏感的特性来实现数据的大幅简化。

量化过程实际上是简单地把频率领域上每个成份,除以一个对于该成份的常数,且接着四舍五入取最接近的整数。

这是整个过程中的主要有损运算。

以这个结果来说,经常会把很多高频率的成份四舍五入而接近0,且剩下很多会变成小的正或负数。

整个量化的目的是减小非"0"系数的幅度以及增加"0"值系数的数目。

量化是图像质量下降的最主要原因。

因为人眼对亮度信号比对色差信号更敏感,因此使用了两种量化表:亮度量化值和色差量化值。


 

使用这个量化矩阵与前面所得到的 DCT 系数矩阵:


 

如,使用−415(DC系数)且四舍五入得到最接近的整数


 

总体上来说,DCT 变换实际是空间域的低通滤波器。对 Y 分量采用细量化,对 UV 采用粗量化。

量化表是控制 JPEG 压缩比的关键,这个步骤除掉了一些高频量;另一个重要原因是所有图片的点与点之间会有一个色彩过渡的过程,大量的图像信息被包含在低频率中,经过量化处理后,在高频率段,将出现大量连续的零。

5、"Z"字形编排

量化后的数据,有一个很大的特点,就是直流分量相对于交流分量来说要大,而且交流分量中含有大量的0。这样,对这个量化后的数据如何来进行简化,从而再更大程度地进行压缩呢。

这就出现了"Z"字形编排,如图:


 

对于前面量化的系数所作的 "Z"字形编排结果就是:

底部 −26,−3,0,−3,−3,−6,2,−4,1 −4,1,1,5,1,2,−1,1,−1,2,0,0,0,0,0,−1,−1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 顶部

这样做的特点就是会连续出现多个0,这样很有利于使用简单而直观的行程编码(RLE:Run Length Coding)对它们进行编码。

8×8图像块经过 DCT 变换之后得到的 DC 直流系数有两个特点,一是系数的数值比较大,二是相邻8×8图像块的 DC 系数值变化不大。根据这个特点,JPEG 算法使用了差分脉冲调制编码(DPCM)技术,对相邻图像块之间量化 DC 系数的差值(Delta)进行编码。即充分利用相邻两图像块的特性,来再次简化数据。

即上面的 DC 分量-26,需要单独处理。

而对于其他63个元素采用zig-zag("Z"字形)行程编码,以增加行程中连续0的个数。

6、行程编码

Run Length Coding,行程编码又称"运行长度编码"或"游程编码",它是一种无损压缩编码。

例如:5555557777733322221111111

这个数据的一个特点是相同的内容会重复出现很多次,那么就可以用一种简化的方法来记录这一串数字,如

(5,6)(7,5)(3,3)(2,4)(l,7)

即为它的行程编码。

行程编码的位数会远远少于原始字符串的位数。

对经过"Z"字形编排过的数据,即可以用行程编码来对其进行大幅度的数据压缩。

我们来用一个简单的例子来详细说明一下:

57,45,0,0,0,0,23,0,-30,-16,0,0,1,0,0,0,0 ,0 ,0 ,0,..,0

可以表示为

(0,57) ; (0,45) ; (4,23) ; (1,-30) ; (0,-16) ; (2,1) ; EOB

即每组数字的头一个表示0的个数,而且为了能更有利于后续的处理,必须是 4 bit,就是说,只能是 0~15,这是的这个行程编码的一个特点。

7、范式 Huffman 编码

在直流 DC 系数经过上面的 DPCM 编码,交流 AC 系数经过 RLE 编码后,得到的数据,还可以再进一补压缩,即使用 Huffman 编码来处理。

范式 Huffman 编码即 Canonical Huffman Code,现在流行的很多压缩方法都使用了范式哈夫曼编码技术,如 GZIB、ZLIB、PNG、JPEG、MPEG 等。

对上面的例子中 RLC 后的结果,对它的存储,JPEG 里并不直接保存这个数值,这样主要是为了提高效率。


 

对上面的例子内容,就可以得到:

57 为第 6 组的,实际保存值为 111001,编码为 (6,111001)

45编码为 (6,101101)

23为(5,10111)

-30为(5,00001)

这个时候前面的例子就变为:

(0,6),111001 ; (0,6),101101 ; (4,5),10111; (1,5),00001; (0,4) ,0111 ; (2,1),1 ; (0,0)

这样,括号里的数值正好再合成一个字节,高4位是前面0的个数,低4位描述了后面数字的位数;后面被编码的数字表示范围是 -32767..32767。

使用上面这个表简化后的内容,再到 Huffman 编码表里去查询,从而得到最后的编码。

如06对应 Huffman 表的111000,那么

69 = (4,5) --- 1111111110011001 (69=0x45=4*16+5 )

21 = (1,5) --- 11111110110

从而得到最后的结果:

111000 111001 ; 111000 101101 ; 1111111110011001 10111 ; 11111110110 00001…

使用范式 Huffman 编码表的好处就是使得出现频率高的数字小于8位,而出现频率低的数字大于8位,这样对整体而言,就会极大地减少数据量。

需要注意的是,在 JPG 文件中,一般有两个 Huffman 表,一个是 DC 用,一个是 AC 用,它们是类似的。

对 DC 编码的部分是单独来处理的,并且是放在上面这个串的最前面。

总体来说,到目前为止,我们就得到了最后需要真正存储用的简化后,也即压缩后的数据了。

四、JPEG文件存储格式

介绍了 JPEG 的原理,我们再来结合一个具体的实例来详细讨论上面所涉及到的细节。

我们先来制作一个简单的8X8大小的像素图,然后把它存成JPEG格式。

方法是用 windows 的画图工具,定义一个8X8大小的图,用一些色块填充进去,然后另存为 JPEG 格式,如 test8x8.jpg。如下图所示:


 

保存成的文件后缀为 jpg,但按标准来说,它是一种 JFIF 格式标准的文件,里面的图像的压缩方式是 JPEG。

JFIF 是一个文件格式标准,JPEG 是一个压缩标准,总体来说它们不是一个概念。

JFIF 是 JPEG File Interchange Format 的缩写,也即 JPEG 文件交换格式。JFIF 是一个图片文件格式标准,它是一种使用 JPEG 图像压缩技术存储摄影图像的方法。JFIF 代表了一种"通用语言"文件格式,它是专门为方便用户在不同的计算机和应用程序间传输 JPEG 图像而设计的语言。

JFIF 文件格式定义了一些内容是 JPEG 压缩标准未定义的,如 resolution/aspect ratio,color space 等。


 

我们可以打开 JPEG 文件查看里面的内容,即可看到上面的各个标记段:


 

从图上可以看出:

在头部有 FFD8 ,表示图像的开始;结束部分有 FFD9 ,表示图像的结束。

在中间有两个量化表 DQT 对应的标记 FFDB ;

还有图像大小信息对应的 FFC0

再后面有四个 Haffman 表对应的 FFC4 ;

一般一个 JPG 文件里会有 2 类 Haffman 表:一个用于 DC 一个用于 AC ,也即实际有 4个表,亮度的 DC,AC 两个,色度的 DC,AC 两个。

然后是图像数据段标记 FFDA;

我们再来看看各个标记的细部,具体分析一下各个部分的含义。

1、图片的识别信息


 

上面的内容,在标记 FFE0 后,即为长度16。然后是5字节的 JFIF 标识符号,说明这是一个 JPEG 压缩的文件。然后是主/次版本号码。下一个为 XY 像素的单位,这里为1,表示单位为点数/英寸。然后是 XY 方向的像素密度,这里是 96DPI,最后是缩略图有关信息,这里为0。

2、量化表的实例


 

上面这个内容,FFDB 标记后的长度值为67,接下来的是 QT 信息,占一个字节;这里是0,表示这个 QT 表编号为0,并且精度是8bit。然后后面就是64个8x8的 QT 表的各个 item 了。

也即第一个 DQT 量化表的内容表示为十进制是:


 

这个表即为 JPEG 亮度量化表。

第二个量化表的内容为:


 

这个表的内容即为 JPEG 色度量化表。

当你打开不同的 JPEG 文件,你会看到这两个表可能也是会有区别的。这个主要是使用了不同的量化方式的结果。

3、图像信息段


 

上面这个内容,FFC0 标记后即是长度,为17,然后是一个字节的数据精度,通常是为8,代表样本位数。接下来是图片的高度,占两字节,这里即为8,然后是图片的宽度,也为8,这也就是我们定义的8x8的内容。然后是 component 的个数,这里是3,表示 YUV。接下来是三组数据,每组数据里,第一个是 component ID,第二个是采样系数,这里 Y 的采样系数为22,说明垂直是2,水平是2。再后面就是量化表的编号了。

4、Haffman 表的实例


 

上面这个内容,FFC4 标记后的内容为数据长度,再接着的1字节为 Huffman Table 的信息,低4位是 HT ID 号,第5位是 HT 表类型标记,再高三位是为0。

第一个 DHT 表,00,类型为 DC table,HT ID 号为 0;

第二个 DHT 表,10,类型为 AC table,HT ID 号也为 0;

第三个 DHT 表,01,类型为 DC table,HT ID 号为 1;

第四个 DHT 表,11,类型为 AC table,HT ID 号为 1;

即前两个表为Y亮度分量的 DC/AC 表,后两个为 UV 色度分量的 DC/AC 表。

以第一个表为例,因为长度只有 31,那么 00 后面的 16 字节,即绿色部分:


 

组号为 1 的组中,代码有 0 个;

组号为 2 的,代码有 1 个;

组号为 3 的代码有 5 个;

组号为 4/5/6/7/8/9 的代码各 1 个。

总共 12 个。

再看后续的数据:

00 01 02 03 04 05 06 07 08 09 0A 0B

即对应:


 

其他未出现的组号,对应的数据未使用到。也就是说前面提到过的范式 Huffman 编码里,目前只使用部分数据即可,原因是这个 8x8 的图像数据很小。

第二个 DHT 表就更复杂些了,长度有 181。

5、图像数据段


 

这里 SOS 段,长度为 12,后面所含有的 component 数量为 3 个,也即 Y UV。然后后面是各 component 的编号,及对应所使用的 Huffman 表的 ID 是多少。

在这个段的后面就是所有压缩后的数据。直到结束的问题,即 FFD9,EOI(End Of Image)。

五、JPEG 压缩过程的优化

JPEG 在目前的应用范围是非常广泛的,各种嵌入式系统中也大量地使用了 JPEG 压缩,如 IPCAM 摄像头、数字相机、移动存贮等。在这些领域由于传输数据的带宽限制或者是存贮数据的容量的限制,常常需要使用图像压缩技术来将原始大量的图像数据压缩后在进行传输或存贮,以充分利用带宽与存贮空间,达到更好的利用效率。这样,在嵌入系统中,就会使用到 JPEG 压缩。而且由于嵌入系统的资源有限的特点,在很多情况下,很需要再对 JPEG 编码压缩的过程做更进一步的优化,我们这里详细讨论一下如何实现这些优化。

浮点运算的优化

我们回头查看一下 JPEG 压缩中的 DCT 变换过程,公式:


 

由于公式中有两个 i/j=0~7 的部分,这样要获得一个 DCT 系数,需要做 8 x 8=64 次乘法和 8 x 8=64 次加法, 而完成整个 8 x 8 像素的 DCT 需要 8 x 8 x 8 x 8=4096 次乘法和 8 x 8 x 8 x 8=4096 次加法. 计算量是相当的大。

对于有些无浮点运算的嵌入式系统或无专门的数学运算协处理器的系统,会造成大量的运算,极大地占用CPU的资源。

上面的公式属于 DCT 的二维计算方式,经过简化,可以将其简化为两个一维的公式:


 

这样,上面的过程就可以简化为分别计算行和列的 DCT 变换。

对于一行来说需要计算的是 (8 x 8) 次乘法和 (8 x 8) 次加法,8 行就是 8 x (8 x 8) 次乘法和 8 x (8 x 8) 次加法,然后列也是相同,那么总数就为 2 x (8 x (8 x 8))=1024 次乘法和 2 x (8 x (8 x 8))=1024 次加法, 运算量变为二维计算的1/4。

但是这样的运算数量还是太大,还需要进一步优化。

在很多嵌入系统中,很多情况下需要不使用浮点运算,这样就需要再找出一维 DCT 的一些规律,然后对其进行进一步的优化。

在对一维 DCT 的运算中,还可以分为奇数列/行和偶数列/行


 

对上面的处理,就又出现了多种优化:ChenDCT,LeeDCT,AAN 算法和 LLM 算法。

其中 AAN 算法只需要 29 次加法和 5 次乘法。(注意,它是指每次一维运算要 29 次加法和 5 次乘法,一共是需要 29*8*2 次加法和 5*8*2 次乘法的)。


 

其中 Y[0]-Y[7] 都是 1*8 的矩阵,X[1]-X[7] 也都是 1*8 的矩阵。

{a, b, c, d, e, f, g} = 1/2 { cos(pi/4), cos(pi/16), cos(pi/8), cos(3pi/16), cos(5pi/16), cos(3pi/8), cos(7pi/16) }

再对上面的含有 pi 的系数进行整数优化,从而避免浮点运算,就会得到:


 

其中:

3/8=1/4+1/8

5/8=1/2+1/8

7/8=1-1/8

上面的除以 2,除以 8,都可以通过移位来实现,即右移一位和右移三位。即总数为 30 次加法,12 次移位即可。

这样就在很大程度上将原本需要使用乘法,浮点运算的过程全部转换成了简单的加法和移位处理了,这样使用数学的方法,用近似的值来完成整个转换过程,会有很好的性能和处理效果。

在处理上面的数据中,可以使用一些中间变量来记录中间结果,这样就可以减少反复计算中间值,而直接使用已经计算得到了的中间值。

tmp0 = x[0] + x[7];

tmp7 = x[0] - x[7];

tmp1 = x[1] + x[6];

tmp6 = x[1] - x[6];

tmp2 = x[2] + x[5];

tmp5 = x[2] - x[5];

tmp3 = x[3] + x[4];

tmp4 = x[3] - x[4];

tmp10 = tmp0 + tmp3;

tmp13 = tmp0 - tmp3;

tmp11 = tmp1 + tmp2;

tmp12 = tmp1 - tmp2;

/* 对偶数项进行运算 X 0,4,6,2 */

X[0]=tmp1+tmp11;

X[4]=tmp10 /2 - tmp11

X[6]=tmp12-(tmp13/4+ tmp13/8);

X[2]=tmp12/4+tmp12/8-tmp13;

其他的各个值也是类似处理的。

六、JPEG 在本嵌入式 Linux 应用中遇到的问题

在本系统中,提供给用户一些播放图片和预览图片的功能,在这个过程中就需要使用到对 JPEG 的处理。

1、JPEG 出错的处理

在对图片做预览处理的时候,有些图片原始尺寸很大,那么就需要将其转换成较小的缩略图,在转换为缩略图进行显示时,遇到了一个问题,即有时需要显示的图片,会导致系统无响应。

后来查找原因,定位到 JPEG 文件的数据不完整,才导致 jpeg decoder 出现无响应。

在前面的部分,有说到 JPEG 文件的格式中,JPEG 结束的标记 EOI (End Of Image) 为"FFD9"。

如果需要显示的图片,在传输过程中,或转换过程中,出现了没有 EOI 数据,那么应该在程序中,将其废弃,避免出现系统无响应。

2、JPEG 解码的效率优化

在解码 JPEG 时,可以使用 software decode 或 hardware decode 来处理。Hardware decode 的优点是充分利用 DSP 所提供的硬件解码功能,其解码速度会较 software decode 有数量级的提高。但有时使用 hardware decode 有一些限制,如各种 DSP 提供的 SDK 会是直接访问硬件,将 jpeg 直接输出到显示设备,从而会导致 hardware decode 与应用系统集成的麻烦。

而使用 software decode,就能在应用层完全掌握 jpeg decode 的数据缓冲结果,并可做一些图片的叠加效果或对其进行半透明混合处理,从而会有较高的灵活性。并且使用 decode buffer cache,来将已经解码的数据进行保存,在 UI 后续的使用中,就可不必反复去解码 JPEG 图片,从而也能有效提高绘图效率。





回页首


七、总结

上面的内容是本人对 JPEG 原理做的一个详细的实例分析,还介绍了 JPEG 编码过程中对浮点运算的优化处理,它特别适用于在资源有限的嵌入系统中避免大量的浮点运算。

在对 JPEG 原理做了一个详细的分析后,大家会对 JPEG 涉及到的各个细节有了一个更加明确的认识。当你自己动手结合 JPEG 编码过程来分析时,将会有一个清楚的全局观。

本文结合应用实例,对在嵌入式 Linux 应用中遇到的 JPEG 有关的问题,做了一个说明,大家在自己的设计过程中也可以作为参考。

现在,你如果再回头去看 JPEG 的原理,你现在应该能看懂它整个过程的来龙去脉了。


JPEG 原理详细实例分析及其在嵌入式 Linux 中的应用




















































作为一个基本的图像压缩方式,JPEG 已经得到了广泛的运用,但 JPEG 相关的基本原理,却经常被忽视,或解释得很不确切。 这里我们详细讨论一下 JPEG 的编码原理,并结合实例来给出一个更加感性的认识。JPEG 编码的详细过程有着诸多的信息可以给我们巨大的启发,我们在这里讨论的就是要对这些信息做一个具体细致的分析,通过我们的讨论,大家会对 JPEG 编码过程中出现的内容有一个确切的了解,并且能了解到这些内容的来龙去脉。

一、系统架构

本文以一个实际的产品为例,来说明 JPEG 在其中的应用。



本系统为一个嵌入式 Linux 网络播放器,主要的功能为播放家庭网络中的多媒体文件,在家庭客厅等环境中有着大量的应用,它可以给用户提供更方便快捷的媒体文件的播放方式,并能充分利用家庭音响系统的巨大功能,而非 PC 环境下有限的外部设备,大大改善了媒体文件的播放体验。

系统主要的功能包括:



本系统架构如下图:



本系统是基于嵌入式 Linux 的一个应用,使用的是 ucLinux 2.4.22,并使用了 microwindows 作为 GUI 界面,底层使用了 Linux kernel 的 FrameBuffer 作为显示输出。

此系统在两个方面使用到了 JPEG 库:

1、 UI 的显示,即各种人机交互界面,考虑到用户体验,所以大量使用了贴图来美化 UI

2、 JPEG 图片文件的全屏播放,包括用户手中的各种照片等

二、JPEG 概述

JPEG 是 Joint Photographic Experts Group 的缩写,即 ISO 和 IEC 联合图像专家组,负责静态图像压缩标准的制定,这个专家组开发的算法就被称为 JPEG 算法,并且已经成为了大家通用的标准,即 JPEG 标准。 JPEG 压缩是有损压缩,但这个损失的部分是人的视觉不容易察觉到的部分,它充分利用了人眼对计算机色彩中的高频信息部分不敏感的特点,来大大节省了需要处理的数据信息。

人眼对构成图像的不同频率成分具有不同的敏感度,这个是由人眼的视觉生理特性所决定的。如人的眼睛含有对亮度敏感的柱状细胞1.8亿个,含有对色彩敏感的椎状细胞0.08亿个,由于柱状细胞的数量远大于椎状细胞,所以眼睛对亮度的敏感程度要大于对色彩的敏感程度。

总体来说,一个原始图像信息,要对其进行 JPEG 编码,过程分两大步:

1、 去除视觉上的多余信息,即空间冗余度

2、 去除数据本身的多余信息,即结构(静态)冗余度

1、去除视觉上的多余信息

当你拿到一个原始未经处理的图像,是由各种色彩组成的,即在一个平面上,有各种色彩,而这个平面是由水平和垂直方向上的很多点组成的。实际上,每个点的色彩,也即计算机能表示的每个像素点的色彩,能分解成红、绿、蓝,即 RGB 三元色来表示,即这三种颜色的一定比例的混合就能得到一个实际的色彩值。



所以,实际上,这个平面的图像,可以理解为除了水平 X 和垂直 Y 以外,还有一个色彩值的 Z 的三维的系统。Z 代表了三元色中各个分支 R/G/B 的混合时所占的具体数值大小,每个像素的 RGB 的混合值可能都有所不同,各个值有大有小,但临近的两个点的 R/G/B 三个值会比较接近。



由于这个原始图像是由很多个独立的像素点组成的,也就是说它们都是分散的,离散的。比如有些图像的尺寸为640X480,就表示水平有640个像素点,垂直有480个像素点。

从上面的内容,我们可以知道两个相邻的点,会有很多的色彩是很接近的,那么如何能在最后得到的图片中,尽量少得记录这些不需要的数据,也即达到了压缩的效果。

这个就要涉及到图像信号的频谱特性了。

图像信号的频谱线一般在0-6MHz范围内,而且一幅图像内,包含了各种频率的分量。但包含的大多数为低频频谱线,只在占图像区域比例很低的图像边缘的信号中才含有高频的谱线。这个是对 JPEG 图像压缩的理论依据。

因此具体的方法就是,在对图像做数字处理时,可根据频谱因素分配比特数:对包含信息量大的低频谱区域分配较多的比特数,对包含信息量低的高频谱区域分配较少的比特数,而图像质量并没有可察觉的损伤,达到数据压缩的目的。

将原始图像这个色彩空间域,转换为频谱域,怎么转呢,这个就用到了数学上的离散余弦变换,即 DCT(Discrete Cosine Transform) 变换。

DCT 是可逆的、离散的正交变换。变换过程本身虽然并不产生压缩作用,但是变换后的频率系数却非常有利于码率压缩。即这个变换过程得到一个 DCT 变换系数,而对这个系数可以再进行更进一步的处理,即所谓的量化。经过量化,就能达到数据压缩的作用了。

总体说来,这第一步,对图像进行编码,去除多余的信息,要用到 DCT 变换中的正向 DCT(FDCT),然后再对变换的系数做量化(Quantization),这个过程就是依据的经验值,来处理人眼视觉系统所不敏感的高频数据,从而极大地减少了需要处理的数据量,这个是结合数学方法与经验值而做的处理。

2、去除数据本身的多余信息

利用 Huffman 编码,来将最后的数据用无损的方式做压缩,这个是纯数学上的处理方式。

总体来说,上面的两步即:

如果处理的是彩色图像,JPEG 算法首先将 RGB 分量转化成亮度分量和色差分量,同时丢失一半的色彩信息(空间分辨率减半)。然后,用 DCT 来进行块变换编码,舍弃高频的系数,并对余下的系数进行量化以进一步减小数据量。最后,使用 RLE 行程编码和 Huffman 编码来完成压缩任务。

三、JPEG 原理详细分析

下面将更加详细地介绍这两步中的各个细节。

JPEG 编码中主要涉及到的内容主要包括:

1. Color Model Conversion (色彩模型)

2. DCT (Discrete Cosine Transform 离散余弦变换)

3. 重排列 DCT 结果

4. 量化

5. RLE 编码

6. 范式 Huffman 编码

7. DC 的编码



1、色彩空间 color space

在图像处理中,为了利用人的视角特性,从而降低数据量,通常把 RGB 空间表示的彩色图像变换到其他色彩空间。

现在采用的色彩空间变换有三种:YIQ,YUV 和 YCrCb。

每一种色彩空间都产生一种亮度分量信号和两种色度分量信号,而每一种变换使用的参数都是为了适应某种类型的显示设备。



YUV 不是哪个英文单词的缩写,而只是符号,Y 表示亮度,UV 用来表示色差,U、V 是构成彩色的两个分量;

YUV 表示法的重要性是它的亮度信号(Y)和色度信号(U、V)是相互独立的,也就是 Y 信号分量构成的黑白灰度图与用 U、V 信号构成的另外两幅单色图是相互独立的。由于 Y、U、V 是独立的,所以可以对这些单色图分别进行编码。此外,黑白电视能接收彩色电视信号也就是利用了 YUV 分量之间的独立性。

举例来说明一下:

要存储 RGB 8∶8∶8的彩色图像,即 R、G 和 B 分量都用8位二进制数(1个字节)表示,图像的大小为640×480像素,那么所需要的存储容量为640×480×(1+1+1)=921 600字节,即900KB,其中(1+1+1)表示 RGB 各占一个字节。



如果用 YUV 来表示同一幅彩色图像,Y 分量仍然为640×480,并且 Y 分量仍然用8位表示,而对每四个相邻像素(2×2)的 U、V 值分别用相同的一个值表示,那么存储同样的一幅图像所需的存储空间就减少到640×480×(1+1/(2*2)+1/(2*2))=460 800字节,即450KB。也就是把数据压缩了一半。



无论是用 YIQ、YUV 和 YCrCb 还是其他模型来表示的彩色图像,由于现在所有的显示器都采用 RGB 值来驱动,这就要求在显示每个像素之前,须要把彩色分量值转换成 RGB 值。

对电视机,在考虑人的视觉系统和电视阴极射线管(CRT)的非线性特性之后,RGB 和 YUV 的对应关系可以近似地用下面的方程式表示:



即:

Y=0.3R+0.59G+0.11B

U=B-Y

V=R-Y

对计算机而言,计算机用的数字域的色彩空间变换与电视模拟域的色彩空间变换不同,它们的分量使用 Y、Cr 和 Cb 来表示,与 RGB 空间的转换关系如下:



从这里,就可以看出,计算出来的 Y、Cr 和 Cb 分量,会出现大量的小数,即浮点数,从而导致了在 JPEG 编码过程中会出现大量的浮点数的运算,当然经过一定的优化,这些浮点数运算可以用移位与加法这些计算机能更快速处理的方式来对其进行编码。

RGB 与 YCrCb 之间的逆变换关系可写成如下的形式:



总体来说,上面讲的这些内容,主要就是对原始图片,可以先进行色彩空间的处理,使采集到的图像数据有所减少。

请注意,实际上,JPEG 算法与色彩空间无关,色彩空间是涉及到图像采样的问题,它和数据的压缩并没有直接的关系。

因此“RGB 到 YUV 变换”和“YUV 到 RGB 变换”不包含在 JPEG 算法中。JPEG 算法处理的彩色图像是单独的彩色分量图像,因此它可以压缩来自不同色彩空间的数据,如 RGB,YcbCr 和 CMYK。

2、色彩深度 color depth

在图像中,它是由很多个点来组成的,那么存储每个像素点所用的位数就叫做像素深度。对一个图片,这个值是可以有所不同的,从而会使得图片的数据有多和少的区别。

一幅彩色图像的每个像素用 R,G,B 三个分量表示,若每个分量用8位,那么一个像素共用3X8=24位表示,就说像素的深度为24 bit,每个像素可以是2的24次方=16 777 216种颜色中的一种。表示一个像素的位数越多,它能表达的颜色数目就越多。

在用二进制数表示彩色图像的像素时,除 R,G,B 分量用固定位数表示外,往往还增加1位或几位作为属性(Attribute)位。例如,RGB 5∶5∶5表示一个像素时,用2个字节共16位表示,其中 R,G,B 各占5位,剩下一位作为属性位。在这种情况下,像素深度为16位,而图像深度为15 位。

在用32位表示一个像素时,若 R,G,B 分别用8位表示,剩下的8位常称为 alpha 通道(alpha channel)位,或称为覆盖(overlay)位、中断位、属性位。它的用法可用一个预乘 α 通道(premultiplied alpha)的例子说明。假如一个像素(A,R,G,B)的四个分量都用归一化的数值表示,(A,R,G,B)为(1,1,0,0)时显示红色。当像素为 (0.5,1,0,0)时,预乘的结果就变成(0.5,0.5,0,0),这表示原来该像素显示的红色的强度为1,而现在显示的红色的强度降了一半。

这个 alpha 值,在这里就用来表示该像素如何产生特技效果。

总体来说,图像的宽高、分辨率越高,就是组成一幅图的像素越多,则图像文件越大;像素深度越深,就是表达单个像素的颜色和亮度的位数越多,图像文件就越大。

只有黑白两种颜色的图像称为单色图像(monochrome),每个像素的像素值用1位存储,它的值只有“0”或者“1”,一幅640×480的单色图像需要占据37.5 KB的存储空间。

而灰度图像,即有色深的黑白图像,如果每个像素的像素值用一个字节表示,而不是仅仅只有一位,那么灰度值级数就等于256级,每个像素可以是0~255之间的任何一个值,一幅640×480的灰度图像就需要占用300 KB的存储空间,类似上面说到过的 Y 分量。

3、离散余弦变换 DCT

将图像从色彩域转换到频率域,常用的变换方法有:



DCT变换的公式为:



f(i,j) 经 DCT 变换之后,F(0,0) 是直流系数,其他为交流系数。

还是举例来说明一下。

8x8的原始图像:



推移128后,使其范围变为 -128~127:



使用离散余弦变换,并四舍五入取最接近的整数:



上图就是将取样块由时间域转换为频率域的 DCT 系数块。

DCT 将原始图像信息块转换成代表不同频率分量的系数集,这有两个优点:其一,信号常将其能量的大部分集中于频率域的一个小范围内,这样一来,描述不重要的分量只需要很少的比特数;其二,频率域分解映射了人类视觉系统的处理过程,并允许后继的量化过程满足其灵敏度的要求。

当u,v = 0 时,离散余弦正变换(DCT)后的系数若为F(0,0)=1,则离散余弦反变换(IDCT)后的重现函数 f(x,y)=1/8,是个常 数值,所以将 F(0,0) 称为直流(DC)系数;当 u,v≠0 时,正变换后的系数为 F(u,v)=0,则反变换后的重现函数 f(x,y) 不是常数,此时 正变换后的系数 F(u,v) 为交流(AC)系数。

DCT 后的64个 DCT 频率系数与 DCT 前的64个像素块相对应,DCT 过程的前后都是64个点,说明这个过程只是一个没有压缩作用的无损变换过程。

单独一个图像的全部 DCT 系数块的频谱几乎都集中在最左上角的系数块中。

DCT 输出的频率系数矩阵最左上角的直流 (DC)系数幅度最大,图中为-415;以 DC 系数为出发点向下、向右的其它 DCT 系数,离 DC 分量越远,频率越高,幅度值越小,图中最右下角为2,即图像信息的大部分集中于直流系数及其附近的低频频谱上,离 DC 系数越来越远的高频频谱几乎不含图像信息,甚至于只含杂波。

DCT 本身虽然没有压缩作用,却为以后压缩时的"取"、"舍" 奠定了必不可少的基础。

4、量化

量化过程实际上就是对 DCT 系数的一个优化过程。它是利用了人眼对高频部分不敏感的特性来实现数据的大幅简化。

量化过程实际上是简单地把频率领域上每个成份,除以一个对于该成份的常数,且接着四舍五入取最接近的整数。

这是整个过程中的主要有损运算。

以这个结果来说,经常会把很多高频率的成份四舍五入而接近0,且剩下很多会变成小的正或负数。

整个量化的目的是减小非“0”系数的幅度以及增加“0”值系数的数目。

量化是图像质量下降的最主要原因。

因为人眼对亮度信号比对色差信号更敏感,因此使用了两种量化表:亮度量化值和色差量化值。



使用这个量化矩阵与前面所得到的 DCT 系数矩阵:



如,使用−415(DC系数)且四舍五入得到最接近的整数



总体上来说,DCT 变换实际是空间域的低通滤波器。对 Y 分量采用细量化,对 UV 采用粗量化。

量化表是控制 JPEG 压缩比的关键,这个步骤除掉了一些高频量;另一个重要原因是所有图片的点与点之间会有一个色彩过渡的过程,大量的图像信息被包含在低频率中,经过量化处理后,在高频率段,将出现大量连续的零。

5、“Z”字形编排

量化后的数据,有一个很大的特点,就是直流分量相对于交流分量来说要大,而且交流分量中含有大量的0。这样,对这个量化后的数据如何来进行简化,从而再更大程度地进行压缩呢。

这就出现了“Z”字形编排,如图:



对于前面量化的系数所作的 “Z”字形编排结果就是:

底部 −26,−3,0,−3,−3,−6,2,−4,1 −4,1,1,5,1,2,−1,1,−1,2,0,0,0,0,0,−1,−1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 顶部

这样做的特点就是会连续出现多个0,这样很有利于使用简单而直观的行程编码(RLE:Run Length Coding)对它们进行编码。

8×8图像块经过 DCT 变换之后得到的 DC 直流系数有两个特点,一是系数的数值比较大,二是相邻8×8图像块的 DC 系数值变化不大。根据这个特点,JPEG 算法使用了差分脉冲调制编码(DPCM)技术,对相邻图像块之间量化 DC 系数的差值(Delta)进行编码。即充分利用相邻两图像块的特性,来再次简化数据。

即上面的 DC 分量-26,需要单独处理。

而对于其他63个元素采用zig-zag(“Z”字形)行程编码,以增加行程中连续0的个数。

6、行程编码

Run Length Coding,行程编码又称“运行长度编码”或“游程编码”,它是一种无损压缩编码。

例如:5555557777733322221111111

这个数据的一个特点是相同的内容会重复出现很多次,那么就可以用一种简化的方法来记录这一串数字,如

(5,6)(7,5)(3,3)(2,4)(l,7)

即为它的行程编码。

行程编码的位数会远远少于原始字符串的位数。

对经过“Z”字形编排过的数据,即可以用行程编码来对其进行大幅度的数据压缩。

我们来用一个简单的例子来详细说明一下:

57,45,0,0,0,0,23,0,-30,-16,0,0,1,0,0,0,0 ,0 ,0 ,0,..,0

可以表示为

(0,57) ; (0,45) ; (4,23) ; (1,-30) ; (0,-16) ; (2,1) ; EOB

即每组数字的头一个表示0的个数,而且为了能更有利于后续的处理,必须是 4 bit,就是说,只能是 0~15,这是的这个行程编码的一个特点。

7、范式 Huffman 编码

在直流 DC 系数经过上面的 DPCM 编码,交流 AC 系数经过 RLE 编码后,得到的数据,还可以再进一补压缩,即使用 Huffman 编码来处理。

范式 Huffman 编码即 Canonical Huffman Code,现在流行的很多压缩方法都使用了范式哈夫曼编码技术,如 GZIB、ZLIB、PNG、JPEG、MPEG 等。

对上面的例子中 RLC 后的结果,对它的存储,JPEG 里并不直接保存这个数值,这样主要是为了提高效率。



对上面的例子内容,就可以得到:

57 为第 6 组的,实际保存值为 111001,编码为 (6,111001)

45编码为 (6,101101)

23为(5,10111)

-30为(5,00001)

这个时候前面的例子就变为:

(0,6),111001 ; (0,6),101101 ; (4,5),10111; (1,5),00001; (0,4) ,0111 ; (2,1),1 ; (0,0)

这样,括号里的数值正好再合成一个字节,高4位是前面0的个数,低4位描述了后面数字的位数;后面被编码的数字表示范围是 -32767..32767。

使用上面这个表简化后的内容,再到 Huffman 编码表里去查询,从而得到最后的编码。

如06对应 Huffman 表的111000,那么

69 = (4,5) --- 1111111110011001 (69=0x45=4*16+5 )

21 = (1,5) --- 11111110110

从而得到最后的结果:

111000 111001 ; 111000 101101 ; 1111111110011001 10111 ; 11111110110 00001…

使用范式 Huffman 编码表的好处就是使得出现频率高的数字小于8位,而出现频率低的数字大于8位,这样对整体而言,就会极大地减少数据量。

需要注意的是,在 JPG 文件中,一般有两个 Huffman 表,一个是 DC 用,一个是 AC 用,它们是类似的。

对 DC 编码的部分是单独来处理的,并且是放在上面这个串的最前面。

总体来说,到目前为止,我们就得到了最后需要真正存储用的简化后,也即压缩后的数据了。

四、JPEG文件存储格式

介绍了 JPEG 的原理,我们再来结合一个具体的实例来详细讨论上面所涉及到的细节。

我们先来制作一个简单的8X8大小的像素图,然后把它存成JPEG格式。

方法是用 windows 的画图工具,定义一个8X8大小的图,用一些色块填充进去,然后另存为 JPEG 格式,如 test8x8.jpg。如下图所示:



保存成的文件后缀为 jpg,但按标准来说,它是一种 JFIF 格式标准的文件,里面的图像的压缩方式是 JPEG。

JFIF 是一个文件格式标准,JPEG 是一个压缩标准,总体来说它们不是一个概念。

JFIF 是 JPEG File Interchange Format 的缩写,也即 JPEG 文件交换格式。JFIF 是一个图片文件格式标准,它是一种使用 JPEG 图像压缩技术存储摄影图像的方法。JFIF 代表了一种"通用语言"文件格式,它是专门为方便用户在不同的计算机和应用程序间传输 JPEG 图像而设计的语言。

JFIF 文件格式定义了一些内容是 JPEG 压缩标准未定义的,如 resolution/aspect ratio,color space 等。



我们可以打开 JPEG 文件查看里面的内容,即可看到上面的各个标记段:



从图上可以看出:

在头部有 FFD8 ,表示图像的开始;结束部分有 FFD9 ,表示图像的结束。

在中间有两个量化表 DQT 对应的标记 FFDB ;

还有图像大小信息对应的 FFC0

再后面有四个 Haffman 表对应的 FFC4 ;

一般一个 JPG 文件里会有 2 类 Haffman 表:一个用于 DC 一个用于 AC ,也即实际有 4个表,亮度的 DC,AC 两个,色度的 DC,AC 两个。

然后是图像数据段标记 FFDA;

我们再来看看各个标记的细部,具体分析一下各个部分的含义。

1、图片的识别信息



上面的内容,在标记 FFE0 后,即为长度16。然后是5字节的 JFIF 标识符号,说明这是一个 JPEG 压缩的文件。然后是主/次版本号码。下一个为 XY 像素的单位,这里为1,表示单位为点数/英寸。然后是 XY 方向的像素密度,这里是 96DPI,最后是缩略图有关信息,这里为0。

2、量化表的实例



上面这个内容,FFDB 标记后的长度值为67,接下来的是 QT 信息,占一个字节;这里是0,表示这个 QT 表编号为0,并且精度是8bit。然后后面就是64个8x8的 QT 表的各个 item 了。

也即第一个 DQT 量化表的内容表示为十进制是:



这个表即为 JPEG 亮度量化表。

第二个量化表的内容为:



这个表的内容即为 JPEG 色度量化表。

当你打开不同的 JPEG 文件,你会看到这两个表可能也是会有区别的。这个主要是使用了不同的量化方式的结果。

3、图像信息段



上面这个内容,FFC0 标记后即是长度,为17,然后是一个字节的数据精度,通常是为8,代表样本位数。接下来是图片的高度,占两字节,这里即为8,然后是图片的宽度,也为8,这也就是我们定义的8x8的内容。然后是 component 的个数,这里是3,表示 YUV。接下来是三组数据,每组数据里,第一个是 component ID,第二个是采样系数,这里 Y 的采样系数为22,说明垂直是2,水平是2。再后面就是量化表的编号了。

4、Haffman 表的实例



上面这个内容,FFC4 标记后的内容为数据长度,再接着的1字节为 Huffman Table 的信息,低4位是 HT ID 号,第5位是 HT 表类型标记,再高三位是为0。

第一个 DHT 表,00,类型为 DC table,HT ID 号为 0;

第二个 DHT 表,10,类型为 AC table,HT ID 号也为 0;

第三个 DHT 表,01,类型为 DC table,HT ID 号为 1;

第四个 DHT 表,11,类型为 AC table,HT ID 号为 1;

即前两个表为Y亮度分量的 DC/AC 表,后两个为 UV 色度分量的 DC/AC 表。

以第一个表为例,因为长度只有 31,那么 00 后面的 16 字节,即绿色部分:



组号为 1 的组中,代码有 0 个;

组号为 2 的,代码有 1 个;

组号为 3 的代码有 5 个;

组号为 4/5/6/7/8/9 的代码各 1 个。

总共 12 个。

再看后续的数据:

00 01 02 03 04 05 06 07 08 09 0A 0B

即对应:



其他未出现的组号,对应的数据未使用到。也就是说前面提到过的范式 Huffman 编码里,目前只使用部分数据即可,原因是这个 8x8 的图像数据很小。

第二个 DHT 表就更复杂些了,长度有 181。

5、图像数据段



这里 SOS 段,长度为 12,后面所含有的 component 数量为 3 个,也即 Y UV。然后后面是各 component 的编号,及对应所使用的 Huffman 表的 ID 是多少。

在这个段的后面就是所有压缩后的数据。直到结束的问题,即 FFD9,EOI(End Of Image)。

五、JPEG 压缩过程的优化

JPEG 在目前的应用范围是非常广泛的,各种嵌入式系统中也大量地使用了 JPEG 压缩,如 IPCAM 摄像头、数字相机、移动存贮等。在这些领域由于传输数据的带宽限制或者是存贮数据的容量的限制,常常需要使用图像压缩技术来将原始大量的图像数据压缩后在进行传输或存贮,以充分利用带宽与存贮空间,达到更好的利用效率。这样,在嵌入系统中,就会使用到 JPEG 压缩。而且由于嵌入系统的资源有限的特点,在很多情况下,很需要再对 JPEG 编码压缩的过程做更进一步的优化,我们这里详细讨论一下如何实现这些优化。

浮点运算的优化

我们回头查看一下 JPEG 压缩中的 DCT 变换过程,公式:



由于公式中有两个 i/j=0~7 的部分,这样要获得一个 DCT 系数,需要做 8 x 8=64 次乘法和 8 x 8=64 次加法, 而完成整个 8 x 8 像素的 DCT 需要 8 x 8 x 8 x 8=4096 次乘法和 8 x 8 x 8 x 8=4096 次加法. 计算量是相当的大。

对于有些无浮点运算的嵌入式系统或无专门的数学运算协处理器的系统,会造成大量的运算,极大地占用CPU的资源。

上面的公式属于 DCT 的二维计算方式,经过简化,可以将其简化为两个一维的公式:



这样,上面的过程就可以简化为分别计算行和列的 DCT 变换。

对于一行来说需要计算的是 (8 x 8) 次乘法和 (8 x 8) 次加法,8 行就是 8 x (8 x 8) 次乘法和 8 x (8 x 8) 次加法,然后列也是相同,那么总数就为 2 x (8 x (8 x 8))=1024 次乘法和 2 x (8 x (8 x 8))=1024 次加法, 运算量变为二维计算的1/4。

但是这样的运算数量还是太大,还需要进一步优化。

在很多嵌入系统中,很多情况下需要不使用浮点运算,这样就需要再找出一维 DCT 的一些规律,然后对其进行进一步的优化。

在对一维 DCT 的运算中,还可以分为奇数列/行和偶数列/行



对上面的处理,就又出现了多种优化:ChenDCT,LeeDCT,AAN 算法和 LLM 算法。

其中 AAN 算法只需要 29 次加法和 5 次乘法。(注意,它是指每次一维运算要 29 次加法和 5 次乘法,一共是需要 29*8*2 次加法和 5*8*2 次乘法的)。



其中 Y[0]-Y[7] 都是 1*8 的矩阵,X[1]-X[7] 也都是 1*8 的矩阵。

{a, b, c, d, e, f, g} = 1/2 { cos(pi/4), cos(pi/16), cos(pi/8), cos(3pi/16), cos(5pi/16), cos(3pi/8), cos(7pi/16) }

再对上面的含有 pi 的系数进行整数优化,从而避免浮点运算,就会得到:



其中:

3/8=1/4+1/8

5/8=1/2+1/8

7/8=1-1/8

上面的除以 2,除以 8,都可以通过移位来实现,即右移一位和右移三位。即总数为 30 次加法,12 次移位即可。

这样就在很大程度上将原本需要使用乘法,浮点运算的过程全部转换成了简单的加法和移位处理了,这样使用数学的方法,用近似的值来完成整个转换过程,会有很好的性能和处理效果。

在处理上面的数据中,可以使用一些中间变量来记录中间结果,这样就可以减少反复计算中间值,而直接使用已经计算得到了的中间值。

tmp0 = x[0] + x[7];

tmp7 = x[0] - x[7];

tmp1 = x[1] + x[6];

tmp6 = x[1] - x[6];

tmp2 = x[2] + x[5];

tmp5 = x[2] - x[5];

tmp3 = x[3] + x[4];

tmp4 = x[3] - x[4];

tmp10 = tmp0 + tmp3;

tmp13 = tmp0 - tmp3;

tmp11 = tmp1 + tmp2;

tmp12 = tmp1 - tmp2;

/* 对偶数项进行运算 X 0,4,6,2 */

X[0]=tmp1+tmp11;

X[4]=tmp10 /2 - tmp11

X[6]=tmp12-(tmp13/4+ tmp13/8);

X[2]=tmp12/4+tmp12/8-tmp13;

其他的各个值也是类似处理的。

六、JPEG 在本嵌入式 Linux 应用中遇到的问题

在本系统中,提供给用户一些播放图片和预览图片的功能,在这个过程中就需要使用到对 JPEG 的处理。

1、JPEG 出错的处理

在对图片做预览处理的时候,有些图片原始尺寸很大,那么就需要将其转换成较小的缩略图,在转换为缩略图进行显示时,遇到了一个问题,即有时需要显示的图片,会导致系统无响应。

后来查找原因,定位到 JPEG 文件的数据不完整,才导致 jpeg decoder 出现无响应。

在前面的部分,有说到 JPEG 文件的格式中,JPEG 结束的标记 EOI (End Of Image) 为“FFD9”。

如果需要显示的图片,在传输过程中,或转换过程中,出现了没有 EOI 数据,那么应该在程序中,将其废弃,避免出现系统无响应。

2、JPEG 解码的效率优化

在解码 JPEG 时,可以使用 software decode 或 hardware decode 来处理。Hardware decode 的优点是充分利用 DSP 所提供的硬件解码功能,其解码速度会较 software decode 有数量级的提高。但有时使用 hardware decode 有一些限制,如各种 DSP 提供的 SDK 会是直接访问硬件,将 jpeg 直接输出到显示设备,从而会导致 hardware decode 与应用系统集成的麻烦。

而使用 software decode,就能在应用层完全掌握 jpeg decode 的数据缓冲结果,并可做一些图片的叠加效果或对其进行半透明混合处理,从而会有较高的灵活性。并且使用 decode buffer cache,来将已经解码的数据进行保存,在 UI 后续的使用中,就可不必反复去解码 JPEG 图片,从而也能有效提高绘图效率。





回页首


七、总结

上面的内容是本人对 JPEG 原理做的一个详细的实例分析,还介绍了 JPEG 编码过程中对浮点运算的优化处理,它特别适用于在资源有限的嵌入系统中避免大量的浮点运算。

在对 JPEG 原理做了一个详细的分析后,大家会对 JPEG 涉及到的各个细节有了一个更加明确的认识。当你自己动手结合 JPEG 编码过程来分析时,将会有一个清楚的全局观。

本文结合应用实例,对在嵌入式 Linux 应用中遇到的 JPEG 有关的问题,做了一个说明,大家在自己的设计过程中也可以作为参考。

现在,你如果再回头去看 JPEG 的原理,你现在应该能看懂它整个过程的来龙去脉了.