2009年9月19日星期六

毛主席是如何挟天子以令诸侯的?

1、毛张会合,一山岂能容二虎。
2、张不知瘦死的骆驼比马大,毛老谋深算会而不议,行而不言,六月二十八日两河口政治局会议军事路线实际确立。
3、毛小人襄助,张西北联邦政府惹事端。
4、隐忍不发,毛言洛甫可让总政委不让总书记,自则实权旁落,七月二十日,军委主席朱,副主席张、周、王确定,政治功底,高低立判。
5、八月五日,张挑政治路线问题,毛被逼沙窝政治局会议,毛同样会而不议,(军事实力+总政委)PK(自信远见+党中央)矛盾公开化。
6、朱总以大局为重,合而后分,张毛皆悦。
7、八月二十日,朱、张已去左路军,毛觉时机成熟,挟天子以令诸侯,毛儿盖政治局会议召开,改变军委已确定分路军事路线,东、西之争白热化。
8、九月三日,你做初一我做十五,张改西为南下。
9、九月八日晚,合路北上与欲北伐必先南征矛盾激烈化,一个是政治眼光,一个是军事视角,高下亦判。
10、九月九日,毛欲争取陈、徐,张胜。
11、九月十日,毛以开会为名脱身前总,立电林有变,彭总欲扣人质,叶帅夜取地图,毛决意单独北上:夜间开拔,后会有期。
12、九月十一日,徐言红军不打红军,未追。
后话:未开除张党籍,后有一、二、四方面军会合陕北,毛远见之深;最后西路军全部兵败祁连亦是二虎相争之源;站在毛这边的坚定分子后来都受极大重用和信任。

2009年9月18日星期五

积极心态的力量


拿破仑・希尔曾讲过这样一个故事:一个星期六的早晨,一个牧师正在为准备第二天的演讲伤透脑筋,他的太太出去买东西了,小儿子由于没人照看一直在旁吵个不停。牧师随手拿起一本旧杂志,顺手一翻无意间看到一张色彩鲜丽的巨幅图画,那是一张世界地图。他于是把这一页撕了下来,撕成碎片,丢到了客厅的地板上然后对小儿子说:"强尼,来,把它拼起来,我就给你两毛五分钱。"牧师以为他至少能安静个半天,怎料不到十分钟,他书房就响起了敲门声,"爸爸,我已经拼好了。"儿子强尼喊道。牧师惊讶万分,他怎么能这么快就拼好了,而且每一片纸头都整整齐齐地排在一起,整张地图又恢复了原状。"儿子啊,你怎么做到的?"牧师问道。"很简单呀!"强尼说,"这张地图的背面有一个人的图画。我先把一张纸放在下面,把人的图画放在上面拼起来,再放一张纸在拼好的图上面,然后翻过来就好了。我想,假使人拼得对,地图也该拼得对才是。"听完,牧师忍不住笑了起来,立马给儿子两毛五的镍币。"儿子呀,你把明天演讲的题目也给了我了。"牧师说道,"假使一个人是对的,他的世界也是对的。"
故事意味深长,希尔想指出,如果你不满意自己的环境,想力求改变,则首先应该改变自己的心态;假如一个人有积极的心态,那么他四周所有的问题都将迎刃而解。积极的心态是心智的健康和营养,它能让一个人充满自信、受人喜欢、知足常乐、倍感幸福,更重要的是它还能让人改变自我、改变世界。这并不是什么夸大其词,也不是什么异想天开,因为在人的本性中,始终有这样一种倾向,当我们把自己想像成什么样子,最后往往会变成那个样子。心有多大,舞台就有多大。任何一种励志的学说都笃信(或在宣扬),人意念的力量是无比巨大的。只要有明确的目标、坚定的信念,再加以积极的心态去创造、去追求,你总是能如愿以偿、实现梦想,而这正是一切成功的根本和起点。
当然,积极的心态并不否认消极因素的存在,相反,它教会人们在看待事物时,能充分考虑到生活中既有好的一面,也有坏的一面,这是不以意志为转移的客观事实。同时,它让人不会因此沉溺其中,面对失败、挫折、误解、意外不会自甘堕落、无所作为,而是总能及时地调整情绪、心存高远,以乐观、向上、愉悦和创新的态度走出困境,面向未来。
"安利之父"、美国著名企业家理查・狄维士也极为推崇积极心态,他甚至将毕生卓越的经营理念就归结为"积极思考"(或称为"积极心态")。他认为,拥有积极向上的心态是培养领导力、取得事业进展的关键;生活在当下的每一个人都需要掌握积极思考的智慧。而这种智慧,常人也许不曾发现、也从未想到,其实竟藏身于人们最习以为常、甚至常常羞于启齿的十句短语中。在《积极人生的十种力量》中,狄维士将这十句短语明确为:"我错了"、"我很抱歉"、"你可以做到"、"我相信你"、"我为你骄傲"、"谢谢!"、"我需要你"、"我信任你"、"我敬重你"和"我爱你"。不难发现,狄维士并没有教我们如何有大本领做事,却一直在教我们如何与人相处共事、如沐春风。这其实也正是狄维士的人格魅力和之所以成功的原因所在――他并不一定在专业领域极为出众,但却因为有着感召、激励别人的积极的心态从而召集一群贤能之士,无怨无悔心甘情愿地为他效力。
狄维士的这本书算是积极心理学领域的一本重要的代表作。积极心理学把研究重点放在人自身的积极因素方面,主张心理学要以人固有的、实际的、潜在的、具有建设性的力量、美德和善端为出发点,提倡用一种积极的心态来对人的许多心理现象做出新的解读,从而激发人自身内在的积极力量和优秀品质,并利用这些积极力量和优秀品质来帮助普通人或具有一定天赋的人最大限度地挖掘自己的潜力,获得良好的生活。而狄维士在书中通过"积极的语言暗示"来训练人们的潜意识,掌握其变化的规律,从而激发无限的精神能量。狄维士指出,意念具有无穷的力量,相信自己行就一定能行,你能创造一切。
狄维士还告诫说,人们需要保持着内心积极的力量,从始至终、永不放弃。特别是在人生中不如意、不顺心、不快乐的阶段,更是需要拥有充足的心灵资源来支撑度过。当我们把狄维士的智慧运用在当下,在经济萧条、企业过冬的时期,它何尝又不是每一个人心中最需要的力量和信仰?

大历史格局下的中国股市投资前景 程超泽

2008年的9月15日绝对是一个重要的时间定格:世界第四大投行——雷曼兄弟申请破产,并由 此引发了震惊全球的金融海啸。从那时起到现在为止已整整一年了。过去的365天,具备了一个大历史的含义、规格,或者是一个定位。所谓大历史,实际上另外 一个词就是一个宏观历史概念。我们知道,一般我们读历史、研究历史,都是比较着重在考据、考古,这叫做微观历史。这个大历史就是看一件事情,这件事情在未 来一个更广阔的时空里面,它产生的什么复杂跟长远的影响,这就叫大历史。过去365天属于大历史的一年,是因为它无论从金融海啸的形成、金融海啸所产生的 冲击、面对这个冲击各国政府所采取的因应手段、这个因应手段所采取的一个浮杂的效果,以及再更长远地看,它所产生的影响都具备一个大历史的概念,跟它的一 个规格。更重要的,这个大历史阶段,造就了中国一次不可多得的超出了以往任何一的大历史机遇。
现在我们回过头来可以看到,它表面上是一个衍生性金融商品没有好好控管的问题。但从长期来讲, 它实际上是一个更深层次的,一个全球经济结构,尤其是说明白中国跟美国两大国的一个结构性巨大失衡的问题,所以它当然是一个大历史的概念。冲击可以举两个 例子。记得去年年底时,股神巴菲特用把当时他所看到的金融海啸称之为“金融珍珠港事件”。雷曼兄弟的轰然倒地,引发了排山倒海的骨牌效应。世界著名的四大 投资银行不是倒就是被关闭,或者就改制,或者是AIG,或者美国银行,或者花旗银行,或者是通用汽车公司克莱斯勒,或者是两房,一个、一个都像美国珍珠港 的旗舰一样,一艘艘的沉下去了。
第二个有一张著名照片在今年5月份的时候,拍摄的是新加坡跟印尼的海域上的马六甲海峡。照片里 可以看到一艘艘大的货轮都停在那儿,你照片看不到多少货轮,对不对,它上面的注解735艘,全都停在那里。735艘货轮的运量相当于是全世界四分之一的吨 位。不只是马六甲海峡,直布罗陀海峡100多艘,还有鹿特丹300多艘,这就是冲击嘛。这个冲击之大即便不是绝后,也至少是空前的。
归结起来,过去一年里发生的金融危机只是一个表象,而金融危机表象中反映的是深层次结构性的内 核,说到底是全球经济结构巨大的失衡。这个巨大的失衡当中,又有两大失衡:一个是中国一个是美国。怎么说?美国过去是世界全球消费大国,中国是全球的生产 大国,生产出来的东西统统卖到美国去,双方面这个天作之合,一段美好的婚姻。但这个婚姻突然在过去一年里亮起了红灯,所以在这个情况之下,整个经济出现了 麻烦了,于是就必须要进行双调整。所谓双调整就是中国也要调整它的增长模式,美国也要调整它的增长模式。美国就必须要从消费导向专转向为出口导向,中国必 须要从口导向转换变内需跟消费导向。只有这个双调整能够继续地进行下去,到了一个完成的地步,然后才会出现基辛格所讲的重新平衡。只有在重新平衡达到了之 后,全球才能够再度的寻获新的增长动力。
我今天在本博文主要将集中在由金融海啸给未来中国经济和股市即将带来的大历史格局,即金融海啸开启了由上而下的中国一轮革命性的从出口导向转换变内需和消费导向的帷幕。举例说,在 未来的10-15年,GDP每年的新增量中将有16%-17%由汽车业提供,汽车业将成为当前及未来中国国民经济拉动力最强的产业之一。 可以看到,由于汽车产业链较长,涉及石油化工、钢铁、电力、轮胎、金融、维修服务等众多行业,可以直接面对大众消费,因此,发展汽车业可以成为国家扩大内 需、刺激居民消费的最有效方式之一,它也可以成为拉动2009年经济快速增长的重要一环。 而且,我们还应该看到,汽车的大众消费将会带来社会结构、居民生活及消费模式的深刻革命。汽车消费的普及,不仅能够改变人们的活动范围,改变他们的工作、 生活及人际交往的方式,也会改变目前城乡二元化的社会结构,加快城乡居民的融合及中国城市化的进程。
汽车消费的普及,不仅将改变居民的居住方式,从而导致城市化快速外延扩张,而且将改变居民的生活方式,旅游、郊外休闲等将成为居民最为便利的生活态势。而正是这种社会结构与生活方式的改变,不仅增加了居民消费需求,而且也创造了居民的消费需求。通过汽车业的发展与普及来扩大居民内部需求是一种简便易行的方式。
再来看电信业。可以说,随着国内启动发放3G牌照工作,2009年将掀起3G投资建设的高峰期。有分析员指出,电讯营运商的资本开支将超过3100亿元人民币, 电讯设备制造商将成为主要得益者,相关股份因而备受追捧。 还有,尽管3G需要电讯营运商有较大的投资,但由于中国人口庞大加上市场广阔,不仅会吸引更多的用户由2G转向3G,而且也会吸引更多用户进入3G市场; 再加上,来自增值业务或将有更快的增长,因此相信有关经营回报将相当吸引3G,可能在中国持续的时间会是五到八年的应用期。有人认为,在这段时间,3G启 动将会拉动的总的经济规模可能会超过10万亿人民币。
我们可以看到,由于电信业对居民消费直接拉动的作用,电信业对扩大内需的作用是显而易见的。而 且电信业对居民消费的拉动,不仅表现为现有电信业的本身,而且表现为电信业对居民消费创造消费的作用。我们只要看看这十多年来国内电信业的发展,就能够看 到电信业对居民消费创造消费的作用。因此,有分析员认为3G启动在未来5-8年内增加居民消费10万亿元并不过分。而且如果考虑对电信业上下游新产业的影 响,那么这种拉动居民消费的作用可能比我们估计的还要大。本文认为,这是中央为什么强调电信业对扩大居民消费的重要性,其意义就在于这里。对于其他几个行 业,在这里就不分析了。
由汽车业和电信业可由此及彼地推及到所有由强势中国政府政策推动的未来的排浪式消费领域。我们尽可以及我们的想象,例句出尽可能多的泛消费革命的领域,它们包括食品饮料(含酒业)、住宅、商业、家用电器、电讯、旅游,等等,等等的消费类行业。
投资大师巴菲特对 消费类的股票情有独钟,可口可乐、吉列等消费类股票一直是巴菲特的重仓股,舍不得卖出,他收购的公司里,从糖果到地毯,几乎包含了生活消费中方方面面的产 品。 那么,投资优秀消费类公司的股票,能获得长期丰厚回报吗?答案是肯定的,这个答案不用到美国股市去找,在沪深股市里就能找到。
沪深股市18年历史中消费类股票表现优异,笔者统计了从1991年1月1日到2008年5月 28日A股的涨跌幅,经过复权计算,涨幅前两位的股票是泸州老窖(000568)和万科A,涨幅分别是250倍和210倍,贵州茅台(600519)以 138倍的涨幅排在第四位,双汇发展(000895)、美的电器(000527)、苏宁电器(002024)、伊利股份(600887)、王府井 (600859)、第一食品(600616)均排在涨幅最大的前20只股票内,累积涨幅在20倍至100倍。 在历史涨幅最大的20只股票中,消费类股票占比接近半数,足以说明经过时间的检验,消费类股票最具独特魅力。 这9只涨幅最大的消费类股票正好涉及食品饮料(含酒业)、住宅、商业、家用电器几个消费类主要行业,说明几大行业都可以产生大牛股。这些股票涨幅之所以那 么大,不是无缘无故的,与这些公司业绩持续大幅增长密切相关,如最为典型的万科A,1992年的净利润只有7000万元,到2007年净利润已经超过48 亿元,15年业绩增长67倍,年复合增长率高达33%,没有几家公司可以达到这样的水平。所以,我们要寻找消费类股票中具有上涨潜力的股票,仍然要牢牢把 握公司业绩成长性这条主线。
无论经济景气度高还是低,衣食住行这些基本消费永远是生活的第一需求,消费类行业因此具有永久 的投资潜力。尤其是眼下,由金融海啸生发出来的中国这个大历史格局,将使我们看到一场纸上谈兵了多少年的内需转型即将带来货真价实的扩大内需的消费升级的 革命,而这个革命,请不要忘了,是将在具有13亿人口之巨的大国实现的。我们已经可以想见,随着中国政府政策向广大内需大力倾斜,以及随着全民生活水平的 不断提高,一场家庭汽车、数字电视普及高清平板电视机、平常百姓购买力等等的反应在各个层面的排浪式消费即将展开。。。。。。
于是,作为经济先行指标的股市也将在不久的未来正式表现出来。A股中可以归为消费类公司的数量 不可谓不多,只是优秀的企业总是市场稀缺的。比如人人需要穿衣服,但中国优秀的服装公司不多,上市公司中这类企业更少,中小板的七匹狼和报喜鸟相对业绩比 较突出,但目前无论规模还是市场占有率均不大,如果能做好,市场潜力应该很大。食品饮料的上市公司目前集中于酒业和牛奶,从白酒、葡萄酒到啤酒、黄酒,酒 类公司最为齐全,可能是因为酒类公司利润较高,符合上市标准。其他主要是做火腿肠的双汇发展、做水饺的三全食品、餐饮的全聚德,此外,像獐子岛、好当家这 类生产高档海洋食品公司,也值得关注。
住是人们生活的基本需求,住宅生产同样具有长远的潜力,但这几年市场过热产生的高房价,使得很 多普通百姓只能望房兴叹,房地产市场的不确定性会不会影响住宅生产企业,是一个需要观察的因素。汽车特别是家庭汽车这几年进入高速发展阶段,比如一汽轿车 今年第一季度整车销售数量超过28000辆,比去年同期增长超过70%,一季度净利润因此而增长了261%,说明汽车进入家庭带来很大的投资机会。不过, 上市公司中专注整车的并不是很多,从另一个角度看,如果汽车行业进入黄金发展期,那么,优秀的汽车配套公司同样面临发展良机,如宁波华翔今年第一季度净利 润增长了88%。
当然,消费类公司还涉及很多,比如,商业上市公司数量较多,随着人民购买力的提高,这类公司仍 具有长期的潜力,比如连锁企业代表苏宁电器,百货公司代表大商股份、广州友谊等,这几年业绩成长性不错。家用电器也是一个很大板块,特别是升级换代会带来 很大机会,如数字电视出现使高清平板电视机销量增加,带来机顶盒、有线电视网络等相关配套产业的机会。小家电也是一个品种丰富很有潜力的行业,这几天上市 的九阳股份就是生产豆浆机的。此外还有中青旅、黄山旅游等为代表的旅游酒店板块等等。
应该说,消费类中很多行业都存在投资的机会。如上所述,这些投资机会随着大历史条件下中国排浪 式消费的开启,这种机会还刚刚开始。但在大机遇面前,投资行业并不是决定性因素,比如白酒行业中贵州茅台由于业绩持续增长股价涨幅惊人,但同样是白酒的古 井贡酒,从1996年9月上市首日至今股价却是下跌的,投资11年一无所获。因此,最重要的是我们要在消费类企业中寻找业绩持续增长的龙头企业,才能伴随 公司成长而获得巨大投资收益。
我还想说的,在未来中国大历史条件的排浪式消费革命,又和即将形成的新一轮最大的中国城市化狂 潮相藕合。截至2008年末,中国城镇人口突破6亿,城镇化水平已达45.7%。国家统计局中国经济景气监测中心副主任潘建成本月10日在北京对记者说, 无论是与世界上处于同等发展水平的国家相比,还是与发达国家相比,中国城市化率都相对较低。而就是因为相对较低,才具有强大的后劲力。仍然要记住,这一城 市化进程是在一个具有13亿人口、9亿是农民的巨型国度里展开的。它的最终成行过程将是世界史的上一次人口从农村想城镇迁徙的伟大壮举,前无古人,后无来 者!
国家统计局官员本月10日在北京表示,未来扫除城市化发展的障碍——取消户籍制度,打破城乡分割的二元体制已是不可逆转的趋势。预计到2015年,中国城市化率将达到50%;到2030年,中国城市化率将达到发达国家70-75% 的平均水平。 中 国城市化巨大的发展空间,也必将成为推动中国经济发展的动力。首先,城市化必将带动房地产业的发展,而房地产业是一个关联度很高的行业。从这个角度看,我 感觉现在的大中城市的楼价不是高了,而是太低了。未来中国楼市的价格还将迅速攀升。由于人口众多和土地季度稀缺,未来大北京和大上海都市圈(合计超过5亿 人口)的楼价将高得惊人,超过大多数发达国家的城市楼价。中国未来的另一条房产金蛇带就是广深珠港澳,延伸到海南海西,像一条金链沿海岸线蜿蜒而上,人口 集聚将逐步接近2亿人。另加上五颗内陆明珠:成都、重庆、武汉、西安、沈阳,分别对周边地区超过1亿人口形成辐射效应。这将是未来20年的中国城市经济版 图,虽然客观的障碍会有很多,但经济发展的大趋势将通过时间获得验证。
  本文的重要结论是:高屋建瓴地从世界金融海啸这个大历史条件下看未来中国经济走向,中国政府极 强的内需扩大政策的大力度的形象意识,不断发展的中产阶级,快速的城市化进程的推进,以及正在到来的中国严重老龄化,中国内需正在孕育着一场前所未有的大 变革和大发展机遇,2009年将是一个从出口外向向内需消费时代转型的起始年。这种转型拥有两个方向的巨大跨度:一是覆盖的消费人口,从城市到农村,消费 者的心理认知开始发生重大变化;二是覆盖的行业,从房地产、汽车、家电到服装、化妆品、饮料,林林总总,概莫能外。作为市场投资者,从现在起就考虑不失时 机地逢低买入和中国消费转型革命相关的优质资产投资标的,持股数年,你将无疑是享受这场内需消费革命大红利的最后赢家!

2009年9月17日星期四

罗伊·纽伯格的一天清单

对于愿意长期持有的投资者来说,最重要的莫过于健康与长寿了。罗伊·纽伯格,今年106岁,这位1903年出生的世纪老人,同时也是横跨了1929年和1987年大恐慌的著名的投资者,早在年轻时就十分清楚这一点。有人问及纽伯格长寿的秘诀,他的回答是,经常从事"一种几乎快被汽车灭绝的运动"——散步。按纽伯格的说法,他与他的父亲只相处了12年。当他父亲在世时,经常引用本杰明·富兰克林的格言教导他:早睡早起身体好。纽伯格年轻时就觉得这句话很有道理,现在他觉得更有道理了。
纽伯格先生从不睡懒觉,每天早上5:30-6:00之间起床,起床后马上做一些适度的锻炼,然后再冲一个澡。接着打开美国有线电视新闻网(CNN)看早间新闻,掌握昨晚发生的新闻动态。
先生会在7:00准时吃饭,吃饭时设法读完三份报纸:《纽约时报》、《华尔街日报》以及《投资者商报》。如果未能读完,那么后两份报纸就会被带到办公室去读。通常他会留下《纽约时报》回来再读,其中周二的科学版会送给他的司机,因为这位司机懂得许多关于科学的东西。
在7:50-8:00之间——最迟到8:00,先生就到中央公园与朋友们一起散步。中央公园比第五大街风小,适合散步。当先生80岁的时候,还能走很长的一段路。即使先生90多岁的时候,他还跟许多人一起散步。经常与先生一起散步的有投资顾问艾尔·费恩曼,老朋友阿贝·康纳——先生认为他是一个很好的人,真正的知识分子,成功的商人。他们一直散步到8:30左右,然后各自去自己的办公室上班。8:45,到达办公室,先生就打开电脑,准备好面对新一天的挑战。
每周三次——周一、周三和周五,下午17:00-17:45,先生就在外面跟私人教练做运动,在那45分钟里,先生做42节运动。有些一节会超过1分钟,而有些则不到1分钟。这项运动要花费45美元,刚好1分钟1美元,但是先生认为很值得。这是每个人都能做的简单运动:
1、靠着椅子,一条腿提起,弯腰,踢腿。重复10次,再换另一条腿。
2、从椅子上站立坐下20次。
3、身体平躺在沙发上,双手抱膝至胸部24次。
4、举1-2公斤重的东西。
这四节练习与其他38节练习可以站着做,也可以躺着做,或者坐在椅子上做。
先生特别强调,他要努力提高腿部力量,以便能走得快点,走得远点。这也难怪,人的衰老往往从腿部开始。
现在,让我们对照一下,我们是否像先生那样有规律的生活,有规律的运动。如果没有,便要注意了。如果有,那么值得祝贺。但是,仅有这两项是不够的。亚当·史密斯,《超级金钱》和《金钱游戏》的作者,曾记录到纽伯格先生一次出席某老年医学会协会年会的情形。这个年会是研究人如何衰老以及怎样衰老的。当时先生已经93岁,却依然在工作,并且乐此不疲。当先生被邀发言时,先生说运动很重要,他讲年轻时打网球,现在每周三次运动,经常散步。在场的科学家们点头称是。"我依旧对股市很感兴趣,"他说,"当你93岁的时候,网球打不动了,但是股市还在,你还可以炒股。"下面的听众热血沸腾。但最重要的是,"我依旧有好奇心,我想知道事情为何会发生,所以我依然热爱每一天,因为我想看下一步会发生什么,我知道我会学到新东西。"看起来要健康、长寿,还是保持良好的心态最重要。
——借此真诚祝愿所有的投资者都能像罗伊·纽伯格先生那样健康、长寿!

采用H.264编码视频的参数设定

作为一个网络视频的生产者,人们是通过你生产的视频的质量来对你做鉴定的。因此,很多视频生产者都在考虑将视频从古老的On2 VP编码转换为H.264编码。H.264提供了比VP6更好的画质,并且AAC音频编码提供了比与VP6相匹配的MP3编码方式更好的音质。从Adobe Flash Player 9 Update 3版本开始,你可以播放H.264/AAC格式的视频文件了。截止到2008年9月,在与互联网连接的个人电脑上,可以兼容H.264/AAC的播放器的普及率已经超过了89%。难怪这些生产者热衷于转换编码方式了。


这篇文章首先讨论了这种转换涉及到的问题,包括可能需要支付费用来获得使用权。 然后我罗列了大多数编码程序提供的,H.264特定的编码参数。 最后,我将教会你如何使用Adobe Media Encoder CS4和Adobe Flash Media Encoding Server 3.5来生产H.264视频。


要求



为了能运行大多数文章中的示例,你需要以下软件:



Adobe Media Encoder CS4

获取信息



Flash Media Encoding Server 3.5


试用


购买



预备知识

流媒体视频编码的基本知识


关于作者



Jan Ozer是一个视频生产制作者,顾问,StreamingMedia.com的作家,数码内容者,以及一个EventDV,Jan多次在StreamingMedia.com上讨论和流媒体相关的话题,并在数字媒体学院教授相关课程。你可以在Jan的个人网站,blog,或者streaminglearningcenter.com找到更多与这篇文章类似的文章。


概念介绍



首先,我要做一些H.264视频相关概念的介绍。



什么是H.264标准?



H.264是一种视频压缩的标准,称为MPEG-4 Part 10,或者MPEG-4 AVC(为“高级编码”)。它是由ITU-T视频编码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)联合颁布的标准。



与H.264相匹配的音频格式是AAC(高级音频编码),基于 MPEG-4标准第三部分制定, H.264和AAC在技术上都是MPEG-4编码的——尽管我们使用他们各自的专属名称来准确的区分他们——但在字节流上却同样的遵循MPEG-4规范第14部分的要求。



根据第14部分的要求,MPEG-4文件分别以H.264编码和AAC编码包含视频和音频,使用.mp4扩展名,仅包含音频的使用.m4a扩展名,仅包含视频的,使用m4v扩展名。 不同的厂商可以采用一系列不同的扩展名来针对各自专属的播放器做区分,例如Apple采用了.m4p作为FairPlay Digital Rights Management的文件扩展名,使用.m4r作为iphone铃声文件的扩展名。 移动电话使用.3gp和.3g2扩展名,尽管我不准备在这篇文章里讨论移动电话。



像MPEG-2一样,H.264使用三种帧,意味着每个图片组(GOP)都是由I-,B-,和P-帧组成的,I-帧用于基于DCT的压缩的数码视频,而B-帧和P-帧则作为备用帧来增强压缩比。 我将在后面的部分详细的进行描述。



像大多数视频编码标准一样,H.264实际上只标准化了“中央解码器部分,每个符合标准的解码器在被给定了一个被按照标准编码了的流时,都会解释出相似的输出,” 这段话引用自《IEEE 视频技术的电路和系统执行标准》 的H.264/AVC视频编码标准概况部分。基本上这意味着,并不存在已经符合H.264标准的编码器。实际上,H.264的编码厂商可以利用一系列不同的技术来完善视频的品质,只要产出的码流能够在目标播放器上播放就哦了。这就是为什么同样是实现H.264编码接口,在各种各样的工具中的表现差距是如此之大的原因。



那是否会有技术使用费的问题呢?


如果你在2010年12月31日之后使用H.264做视频流编码,也许你就要有义务支付相关的使用费用了。 但是,迄今为止,这都是不确定的。 以下是一些有关收取使用费日期的说法。




简单的说,H.264是由一群现在被称为MPEG Licensing Suthoring,或者简称为MPEG-LA的专利持有人开发的。在AVC/H.264许可期限内,你可以在MPEG-LA的网站上下载到,有三种类型视频生产项目是要付使用费的。



如果你属于前两种类型,并通过按次计费或者捐献来分发视频,你应该已经欠了MPEG-LA使用费了。第三种类型,无疑是最大的群体,就是免费的互联网传播,这种情况,直到2010年12月31日之前都是不需要花钱的。(源自:AVC/H.264许可协议)在那之后,“使用费将不会多于在同等时间内收看免费电视应付的费用的经济等值物”。




根据他们网站的描述,MPEG-LA必须在到期之前至少一年透露许可条款,或者说不晚于2009年12月31日。到那时,我们只好不幸地为那些使用了H.264编码的视频支付使用费,并且是很大程度上的费用了。关于更多H.264相关的使用费的信息,请阅读我在StreamingMedia.com发表的另外一篇文章,《未来是如此光明:H.264年回顾》



H.264和Flash Player



正如我前面说到的,Adobe早在2007年的Flash Player 9 Update3就添加了对H.264播放的支持。 目的很明显,就是最大限度的支持包含了H.264编码的文件,Flash Player可以播放.mp4,.m4v,.m4a,.mov,.3gp文件,像同Flash Player 9一起发布的新的扩展名一样,H.264文件使用.flv扩展名(见表1)





表1. H.264文件使用.flv扩展名



我将在下一节详细描述概况和级别。 目前看来,我们知道了Flash Player不受级别限制的支持基本的,主要的,高级的,和高级10的H.264属性。 因此,当你为Flash Player生产H.264视频时,你可以自由的选择编码工具中支持的那些典型的最高级的属性。 在音频方面,Flash Player可以播放 AAC主要,AAC低复杂度,和AAC SBR(高频频带复制技术),或者称为高效AAC,简称HE-AAC



生产H.264视频



你可以看到,你几乎已经完全灵活的掌握了关于属性和扩展名的使用方面的信息,那么在你更深入的挖掘细节内容之前,还有什么是你需要了解的呢? 确实是有几样事情需要了解的。



首先,不像VP6仅仅适用于On2,有很多不同的对h.264编码支持,包括Adobe在Adobe Media Encoder和Adobe Flash Media Encoding Server中使用的编码方式,我比较了各个厂商的工具采用h.264编码生产出的视频的质量,事实证明Adobe的主流编码效果是最好的。



总的来说,其他的编码工具虽然在整体质量上有所提升,但是仍然有些工具是例外的。 所以如果你使用其他厂商的工具生产了一个视频却没有达到你所期望的质量,可以试试用Adobe的工具。



其次,一些较旧的编码工具不提供直接输出到F4V格式。 如果你使用的编码工具不支持f4v格式,那么最好的解决方法就是制作成MPEG - 4兼容的流媒体文件,然后以.mp4扩展名来发布。



我将以此为背景,描述最常见的H.264编码参数。



H.264编码参数



虽然H.264的编解码器来自不同的供应商,但是他们都使用同样的编码技术以及相似的比较有代表性的编码参数。 在这里,我讨论的是最常见的h.264编码选项。



了解概况和级别





图1. 编码技术纵览(来自:Wikipedia)



正如你猜想的,越高级别的编码方式使用的编码算法就越先进,并且因此会生产出质量更好的文件。 为了凸显这种差异,我使用同样的源文件并设置了同样的编码参数。 左边的文件采用Main方式,而右面的使用Baseline. 在图1中的表格里我们可以很容易查出,Main方式是支持B-切片技术的(也叫做B-帧),并且也支持高质量CABAC编码,我将在文章的后面部分做详细讲解 正如你所看到的,这样做有助于Main方式实现比Baseline更高质量的视频。





图2.使用Main方式编码的视频(左边)比使用Baseline方式编码的视频(右边)质量要好得多。



所以,Main以及High方式比Baseline产出的视频质量更高;我们有什么收获呢? 收获就是,因为你使用了更加先进的编码技术,这个文件变得更加难解压,并且也许在老一点的电脑上播放的会很缓慢,并且不平滑。



这个观察说明一个目前H.264编码参数的典型的需要权衡的问题,较高的文件质量带来的问题是文件很难被解压,另一方面,使用高质量的参数编码,会花费更多的时间。在某些罕见情况下,你决定在流中包含B-帧编码,等同于同时触发了两个问题,增加了解码难度和编码时间。



回到方式上来:在高的标准下,可以编码方式将看成是厂商和视频生产者共同遵守的适应点。手机生产商A需要生产一款能够播放h.264视频的手机,但同时需要控制成本,发热量和尺寸。 于是,狡诈的首席工程师通过搜索,发现了功能足以播放用Baseline层级方式生产出的h.264视频的最佳处理器。 如果你是一个被找来要为这样一款设备生产视频的视频制作人员,你会知道如果你采用Baseline方式编码,这个视频将是可以被正常播放的。



因此,当生产h.264视频时,通常我们会使用目标播放平台所能支持的最高层级的方法来生产视频,因为这样可以在任何给定的码率下提供最好的视频质量。 如果生产用于移动设备的视频,那么这就特指的是Baseline方式了,不过还是查看一下设备的相关文档确认为佳。 如果是生产用于工作在Window或者Macintosh操作系统的电脑上的Flash player的视频,那么指得就是High方式了。



这听起来又明了又好,但是要明白一点:虽然使用Baseline方式编码可以确保在你的移动设备上平滑的播放,但是使用High方式生产在电脑上播放的视频文件并不能提供这样的保证。 因为High模式下生产的h.264视频,最高支持像素分辨率可以达到4096 x 2048,码率可以达到720Mbps。 只有很少的桌面电脑是可以进行完整帧频的播放的,更少的是在以每秒30帧的帧频进行播放流。



因此,为生产移动设备使用的视频全在于你使用什么方式,而生产电脑使用的视频则全在于你怎样进行视频属性配置。这里,关键点是在于,是以VP6,还是Windows Media的计算方式解码。只要你用其他两种编码器以同样的分辨率和同样的码率生成h.264视频,在同一类型的电脑上播放都是没有问题的。(关于H.264,VP6和VC-1更详细的比较统计,请阅读StreamingMedia.com 上我的另外一篇文章《Hi-Def视频产品解码的真相》)



一般情况下,这意味着,只要你以640 × 480的分辨率和较低的码率生成SD视频,应该可以在2003年之后生产的电脑上很好的播放 如果你以720p或者更高的分辨率生产,产出的流将不能在这些电脑中的任何一台上平滑的播放。 你应该为这些观看者提供一个SD流来替代过高参数的流。



关于H.264的标准呢? 如果生产用于移动设备的有限的屏幕分辨率和带宽的视频,你应该选择正确标准,这也是厂商应该指定的标准。 然而,由于Flash Player可以处理任何一种支持的标准下,任意一种方法生产的视频,所以在你为Flash Player生产在个人电脑上播放的视频时无需有任何担心。



平均信息量编码



当你选择了Main或者High方式,一些编码工具将给你两个关于平均信息量编码模式的选项。(见图3)



  • CAVLC :基于上下文的自适应可变长编码

  • CABAC :基于上下文的自适应二进制算术编码



这两个选项中,CAVLC是低质量的,易于解码的选项,CABAC是高质量的,难于解码的选项。





图3 . 对平均信息量编码的选择: CABAC和CAVLC



虽然结果是取决于源文件质量的,但通常来说CABAC被认为比CAVLC效率高5%-15%。 这意味着,CABAC应该在码率低5-15%,的情况下,提供同等的,或者更高的视频质量。 在我自己做的测试中,CABAC产出的视频质量要明显的好于CAVLC,虽然只是在高清晰视频编码测试中,采用非常低的码率的情况下。 如图4显示,左边的是用CABAC 生产的720p文件,右面的是用CAVLC产出的文件,同样都是800k码率。 图4显示出,16:9的720p视频被抽取了一些帧 现在800 kbps码率的画面质量是相当低了;相比之下,YouTube采用2m码率进行h.264编码,几乎是这里的2.5倍。





图4 . 采用CABAC 编码的720p文件(左边), CAVLC编码(右边)



虽然任何一个的画面质量都不是值得称赞的,但是左边的画面上的芭蕾舞演员的面部和其他细节明显地要清晰一些。 结论就是,CABAC会提供更加的画面质量,无论是多么细微的差异。 现在问题变成是,这样做究竟会给解码和播放增加多少难度呢?



答案是,不会很大。我在我的办公室里用两台运算能力都不是很强的多核cup电脑进行测试,一台是使用酷睿2处理器的惠普笔记本电脑,另一台是基于个人电脑配置的苹果台式机。 正如你在表格2里面看到的,CABAC文件,在惠普的笔记本上增加了不到1%的CPU负载,在苹果机上增加了不到2%的负载。 鉴于更佳的视频质量和细小的CPU负载差异,我建议,只要CABAC是可用的我都会选用它。







I, P和B帧



这是一个常见的前言知识画面,帧与帧之间的切换的变化是很小的,编码的质量要高于动态的,运动式的视频。那是因为H.264像所有高质量的运动编码方式一样,目的是充分利用视频帧与帧之间的冗余帧。越高的帧冗余,将带来给定码率下越高的质量。



为了利用这种冗余, H.264流包含了三种类型的帧(见图5)



  • I-帧:也成为关键帧,I-帧完全自我指涉的,并且不使用任何其他帧的信息。它在三种帧中占最大的比例,并且具有最高的质量,但是压缩效率是最低的。

  • P -帧:P -帧是所谓的“预示”帧。当创建了一个P-帧时,编码器可以向后查看I-帧或者P-帧中冗余的图片信息。P-帧比I-帧效率高,但是没有B-帧的效率高。

  • B-帧:B-帧是双向预测帧,从图五你可以看到,这意味着当我们创建B-帧,编码器可以同时向前和向后查找冗余的图片信息。这使得B-帧在三种帧中具备最佳的效率。注意,B-帧在使用Baseline方式生产视频的时候是不可用的。






图5.H.264编码流中的 I,P,和B-帧



现在你知道了每种类型的帧的功能,我将会告诉你如何更优化的使用它们。



使用I-帧工作



尽管I-帧的压缩效率是最低的,但是它们同时也提供了两种不可取代的功能。首先,所有的h.264视频文件的播放都开始于I-帧,因为它是唯一在编码期间不依赖于其他帧的帧类型。



由于几乎所有的视频流都可以进行交互式的播放,当观看者在视频不同的片段之间推动滑块时,你应该在视频中包含规则的I-帧来确保灵活的播放控制。 这在使用Flash Media Server发布的流,以及使用分布渐进式下载发布的流中,是可行的。 虽然这没有什么所谓的魔法数字,我通常每隔10秒使用一个I-帧,意味着在生产每秒播放30帧的视频时,每隔300帧有一个I-帧。(24fps和15fps分别为每隔240帧,和每隔150帧一个I-帧)



I-帧的另外一个功能是帮助在场景切换时重置画面质量 试想,从一个场景到另外一个切换时图像急剧变化。 如果新场景的第一个帧是一个I-帧,这是最好的状况了,对于随之而来的P-帧和B-帧能查找到冗余的信息来说,这是一个绝佳的起始点。 因为这个原因,许多编码工具都提供了一个特性叫做“场景变化监测”或者“自然关键帧”,你应该永远都开始这些功能。



图6显示了在Flash Media Encoding Server中I-帧的相关控制 你可以看到场景变化检测是默认被启用的,并且视频编码序列的大小为300,即300帧。 如果这样说的话可能理解起来会更简单:“I-帧,间隔”,不过,这已经足够显而易见了。





图6.Flash Media Encoding Server中 I-帧相关控制



IDR 帧



具体说来,视频编码序列指的是“图片组”,或者简称为GOP,它是组成H.264流的组成部分,每个H.264流都是由很多个静态的GOP组成的。每个GOP都是由一个I-帧开始的,并包含了所有的帧,但是并不包含下一个I-帧。通过选择视频编码序列为300,你是在告诉Flash Media Encoding Server创建一个包含300帧的GOP,或者基本等同于说每隔300帧一个I-帧。



我在向你进一步描述B-图片的数量设置时,同时也就已经在向你描述平均信息量编码模式了;但是我想解释的是最小IDR间隔,和IDR频率。 首先我要定义IDR帧的意义。简单的说,H.264规格使用两种类型的I-帧:普通I-帧和IDR帧。对于IDR帧来说,在IDR帧之后的所有帧都不能引用任何IDR帧之前的帧的内容,与此相反,对于普通的I-帧来说,位于其之后的B-和P-帧可以引用位于普通I-帧之前的I-帧。



从随机存取的视频流中,播放器永远可以从一个IDR帧播放,因为在它之后没有任何帧引用之前的帧。 但是,不能在一个没有IDR帧的视频中从任意点开始播放,因为后面的帧总是会引用前面的帧。



由于在你的视频中插入关键帧是使互动播放成为可能的一个关键原因,我使用了默认的设置值1,这使得每一个关键帧都成为了一个IDR帧。 如果你设置这个值为0,只有第一个I-帧会成为IDR帧,这使得文件不能支持随机访问。 设置这个值为2会使得每一个第二位置的I-帧变成IDR帧,当设置为3时使得每一个第三位置的I-帧变成IDR帧。 再说一次,我只使用默认的设置值1.



最小的 IDR间隔定义了一组图片中的最小帧数量。 虽然你已经设置了视频编码序列为300,你也选择了开启场景切换监测,使得编码器在场景切换时插入一个I帧。在一个非常动感的包含一连串动态变化的MTV中,这将会导致非常频繁的I帧出现,这可能会降低整个视频的质量。对于这种类型的视频,你可以尝试将最小IDR间隔增加到30-60帧,现在看看这个是不是提高了视频质量吧。 但是,对于大多数影片,默认的间隔1提供给编码器频繁插入I-帧的必要的灵活性,高度活跃的部分,例如开启或关闭logo. 出于这个原因,我也在默认的控制设置中将这个值设置为1。



使用B-帧工作



B-帧是效率最高的帧,因为他们可以同时进行双向的冗余帧搜索。虽然不同的编码器之间的控制和控制命名不同,但是最常见的B帧相关空是是简单的B-帧数量设置,或者像图片6中所示的“B-图片”。注意图片6中的数字实际上指得是I-帧和P-帧之间的连续帧。



使用在图6中所示的值2,你将会创建一组这样的图片组:IBBPBBPBBPBB ... 就这样一直排列300帧。如果B-图片的数量设置为3,编码器将会在每一个I-帧个P-帧之间插入三个B-帧。 虽然没有神奇的数字,我通常使用两个顺序的B-帧。



插入多少个B-帧可以提高你视频的质量呢?图7说明了这个问题。作为背景,这是一系列高运动率的滑板动作的结尾帧,同时也包含很重要的细节描写,特别是在栅栏后面的选手。 这种结合了高运动率和高细节描绘的情况是不多见的,使得对这进行编码变得非常难。 正如你看到的图片,采用B-帧保存的文件明显比不使用B-帧保存的文件细节表现要好。 总之,B-帧确实提高了质量。





图7.使用(左)和不使用(右)B-帧编码的文件对比



在解码方面有什么性能上的损失么?我做了一个跨平台的电池测试,尤其针对那些老化的,低性能的电脑,测量在播放使用Baseline方式生产的视频(不采用B-帧),以及使用High方式生产的视频(采用B-帧)是的CPU负载量。我看到最大的差距是10%,这并不足以动摇我建议你,除了在为移动设备生产视频时使用Baseline方式,其他的时候就都使用High方式进行编码吧。



高级B-帧选项



在图8中显示了Adobe Flash Media Encoding Server包含的对B-帧和P-帧的相关控制。 B-帧自适应设置允许编码器覆盖已经编码过的B-图片数量以提高质量,例如,当它监测到场景变化或者最后而来的帧是I-帧时。 我总是启用此设置。





图8 .其他B帧相关的选项



参考B-图片,让编码器使用B帧作为P帧的引用帧,当开始锥形B-帧编码时,编码器使用B-帧作为其他B帧的引用帧。 我通常不开启这个选项,因为质量的差别是微不足道的,这些选项可能会使视频在某些环境下的播放变得不稳定。



参考帧数量,是编码器在编码时可以搜索的冗余帧的数量,它会影响编码时间和解码难度;在使用B-帧和P-帧进行编码时,如果你将这个值设置为10,编码器将会一直搜索冗余帧信息直到第10个帧上,这增加了搜索时间。 此外,如果编码器在10帧之内发现了冗余资源,每一帧都必须在解码和回放时被存放在内存中,从而提高了解码的难度。



直观的说,对于大多数视频,绝大多数的冗余资源在离帧最近的位置被编码。 这就是说,只要设置这个值超过4或者5,就会增加编码时间,同时带来的价值并不大。 我通常使用的值是4.



最后,虽然不是与B帧相关的技术,考虑到每张图片的切片数量,可以是1,2,或者4,以设置为4为例,编码器将每一帧划分为4个区域,并且只在其他帧指定的区域内搜索冗余信息。这可以加速在多核处理器电脑上的编码速度,因为编码器可以指定不同的内核作为指定的编码区域。然而,由于冗余信息可能已经转移到了帧之间的不同区域----平移或倾斜移动----多切片编码可能会丢失一些信息,因而降低视频的整体质量。



与此相反,默认值1的情况下,编码器将每一个帧作为一个完整的区域,并整体的搜寻潜在的引用帧。 因为这样做并不利于多核CPU分担这个任务,所以这种设置导致的结果是很慢,但同时也是视频质量最高的。 除非你真的那么着急,否则我建议你将这个值设置为默认值1.



其他编码参数



一旦你越过了I-和B-帧的相关控制,H.264提供了一系列额外的编码参数,我将在稍后进行讲述。 目前的这些设置,我估计还有90-95%的选项会影响h.264视频质量。 而我们本节讨论的设置,仅仅能改变其中的5%,这意味着大多数用户可以接受默认的值并且没有注意到其中的任何差别。 不过,如果你想要尝试探求H.264的终极质量,你可以使用如图9所示的控制设置。





图9.Flash Media Encoding Server提供的其他H.264编码参数



首先是搜索形状,它可以是16 × 16或8 × 8 。 后者( 8 × 8 )是高品质的选择,而编码时间较长。 接下来的三个“快速”选项允许您在允许的质量损耗范围内进行高速编码。 本人通常禁用这些选项。



在单帧中再次分派位数据的自适应量化模式和先进的量化强度设置,使用三个选择标准中的一个:亮度,对比度,或复杂性。我只会在实验时使用这些设置,这使得视频区域中有明显的块状显示。不幸的是,这个操作的内容相当的书面化,这使得它无法提供一般的关于使用价值的技术咨询意见。



无论是码率失真的优化,还是Hadamard变换设置都可以提高视频质量,但是编码时间会变得更长,我通常两者都选。 最后,亚像素运动估算模式定义了搜索冗余资源的粒度:1/4像素代表最高的品质,但却是最慢的编码,全像素代表最快的但是质量最低的编码。 在我的低急躁环境下,我总是用1、4



理论应用到工作中去



现在您已经知道了H.265是如何工作的了,下面,我将简单的演示如何使用Adobe提供的工具制作H.264视频。



Adobe Media Encoder



这是Creative Suite 4中的一个引人注目的增强Flash视频编码的工具。现在有个独立操作和批处理编码功能。因此,您可以通过格式弹出菜单中选择不同格式存取H.264编码。如果是为Flash Player生成编码,那么您应该选择FLV或F4V选项,这将会为 Flash Player 生成VP6和 H.264滤镜。



特别的,您选择一个预设(preset )的编码,这个编码器使用了一个格式,也可以是其他格式。或者,您可以在格式选项卡上选择您的编码,如选择:FLV for VP6或F4V for H.264(见图10)。





图10.选择编码 VP6(FLV选项)或H.264(F4V选项)



Adobe Media Encoder中,最简单的工作方式是选择一个预设编码,它们有相同的大小或比目标分辨率达。这将确保合适的配置和正确的级别选择。



所有的预设都是在Adobe Premiere Pro 的默认配置文件中的,不是高级的。(All presets accessible through Adobe Premiere Pro default to the Main Profile, rather than High.)虽然任何质量上的差异可能是微小的,我们一般在进行编码之前将这个设定为高质量(见图11)。除了这一点,我唯一修改的一点是高级设置(Advanced Setting)中的 Set Key Frame Distance选项,我总是选中它,并且设定它的值为300。





图11.在Adobe Media Encoder中选择H.264编码参数



Flash Media Encoding Server



Flash Media Encoding Server的可控性要比Adobe Media Encoder要广阔的多,但是你还是要以同样的方式开始:选择您的容器格式和预设(见图12)。





图12. 在 Flash Media Encoding Server选择一个容器格式和预设



Flash Media Server 和 Flash Player 都可以播放流文件或回访任何H.264文件,实际上可以是任何格式,所以F4V或MP4容器都可以。如果你想使一个文件在 QuickTime Player 和 Flash Player里都能播放,你可以选择MP4;否则,使用F4V。选择一个预设,它使用与目标相同的或比目标更高的分辨率,以确保使用了合适的配置和级别。



图13 是H.264在Flash Media Encoding Server 中相关的参数。左边是预设的默认值。右边是我的设定值。红色的星号是预设的建议值,但是并不是必要的。





图13.修改H.264编码参数:默认值(左边),建议值(右边)



正如我之前讨论的,我将扩展GOP尺寸为300,并使用合适的 B-frame设定以提供最大灵活性的编码器。将参考帧从2提高到4可能略微提高编码时的质量和编码的复杂性,同时禁用快速内部(fast inter)和内部决策(intra decisions)可能再次提高质量,也增加了一些编码时间。



总的来说,我的建议值应该产生最优的质量,虽然这超出了编码时间。如果吞吐量是关键,那么我将做出以下改变:



  • 使用参考帧(reference frames)的默认值2。

  • 打开所有“fast”的编码选项

  • 使用16 × 16的搜索模式(Search shape)

  • 设定运动估算子像素模式(Motion estimation subpixel mode)为全像素(Full pixel)

  • 如果你的机器是多核的,您可以使用2个或4个时间片(slice)



如果您这样做,那么你可以比较一下两种参数的选则,看看是否快速编码参数会产生质量上的显著不同。



在音频方面,我将使用默认值,且只改变目标比特率和适合我目标的通道。H.264编码参数我也使用了默认值,比如时间戳和序列结束码,这些在Flash Media Encoding Server 中都提供。就是这样了,下面开始编码一些视频吧。



接下来做什么



再去了解些这篇文章中提及的文章,下面是我给出的参考:


中国IC公司第一紧缺的人才

-------木桶首先要能装水,再是能装多少水
KT人才公司总经理 胡运旺
在本人8年的IC人才猎头服务中,接触了上万IC行业的朋友,在交流中,谈得最多一个词是:Delay(延期)!某些环节细小的失误甚至失误都不能算的衔接问题,导致了产品一次又一次的delay。IC设计delay,生产运营delay,系统方案delay,市场推广delay,delay再delay!在接连不断的
delay中,各种资源白白浪费了,竞争对手起来了,目标客户跑掉了,市场丢失了!最后,公司的钱也没有了,可VC们不Delay却直接消失了!
这种大错没有小错不断到底是为什么呢?为什么会产生如此多的delay现象呢?
我认为,多数IC企业缺少一个串线的人!在芯片制造行业中,不同的工艺工序有上百种,因此设置了"串线工程师"的岗位(也叫工艺整合)。而在一个IC设计企业,同样也需要这样一个串线的人,叫产品线负责人(产品线经理),负责从IC市场需求开始,到IC的产品定义、算法设计、架构设计、前端设计、IC验证、模拟设计、版图/后端设计、流片、封装、测试、方案硬件与系统软件设计、市场、销售、FAE,甚至包括产品退出市场等完整过程的协调管理,即让IC从0到
1再到0的一个完全的协调人。这个协调人必须有能力和权限去协调本产品线所有相关部门,例如,人力、进度、生产资料等,确保产品计划的顺利、及时、正确地执行。
产品线负责人的岗位职责,具体如下:
1
全面负责从产品定义,商业计划,上下游部门界面管理,风险评估及对策到量产和市场导入的全过程。即市场,研发,生产到销售的全过程产品线运作负责人。
2 带领团队对控制和产品线研发和市场推广进程做合理决定。
3
项目执行中,根据预算,在公司内部或外部找到合理资源,解决项目进程节点的阻碍。
4 如果超出项目计划,及时做出变更或变通方案。保障项目进行。
5 在产品研发期,控制芯片研发到投放市场的过程中产品成本,质量和时间进程
6
在产品试生产期带领团队合理调整商业策略,优化可变成本,降低研发成本,提高利润率。
7
在市场导入过程中,做好客户群和供应商管理,综合评定客户优先级,确保重要客户的芯片供应和前期技术服务。
8 在产品销售过程中,积极参与下一代产品road map的制定。
什么样的人才适合做产品线负责人呢?
总体来说,这个人应该是个全才,是有眼光、有思想、有技术、有魅力的"四有""老人"。
1
这个人必须懂得系统,能够定义合理的架构,使设计更容易实现,使系统成本更具有竞争优势。
2
要懂设计。产品在研发过程中会遇到不同设计人员之间的协调问题。很多人在设计中往往只考虑自己做的模块,因此即使在设计中所有模块都做到性能最好,做出来的产品也不一定是最好的。就这需要互相的"妥协",在设计中叫做tradeoff。有句古话叫"适合的才是最好的",在IC设计这句话更重要。
3
要了解工艺和制程。产品线负责人要规划一个产品推向市场的时间,需要精确到每一个环节,要能选择合适的工艺和所需要的时间。另外,出现产品因为制造导致的问题,产品负责人需要跟生产方之间协调,不懂,如何谈?
4
要懂得市场和应用,根据市场制定合理的开发时间。能够在推广的过程中及时解决客户遇到的问题是把一个产品尽快推向市场的关键。
5
最重要的,就是良好的人际关系和个人魅力。在设计过程中遇到的问题会很多,往往是产品线负责人在背后推动,但是工程师不归你管理,难免遇到推三阻四的问题。良好的人际协调能力就显示出重要性了。
这个"串线"的产品线管理人对IC公司来说非常的重要。原因可以用木桶理论来说明。众所周知,"木桶原理"讲的是木桶由最短的木板来决定能装多少水。没错!但是,木桶能装水才是第一要素!木桶得能装水,然后,才是装多少水!什么原因会让木桶不能装水呢?
缝隙!
只要有缝隙,木桶就根本不能装水,更谈不上装多少水。一个组织中不同部门的不同岗位就好像是组成木桶的木板。让真正的木桶无缝隙还是比较容易的。但一个组织,由不同部门、不同岗位的一个个活生生的人组成,要达到"没有缝隙"是在太难!特别是对IC设计公司来说,几乎都是由高学历高智商的人才组成,达到无缝更加地难!
一颗芯片从开始市场调研到成功进入市场量产,都要经历从市场需求调研开始的10多种工序。如果没有负责产品线管理的人来做沟通协调,就必然出现太多的扯皮、太多的混乱,导致处处是问题,处处是缝隙!有了缝隙就需要人力与时间去弥补,去不断捉虫子、debug,由此进入不断的
delay再delay的恶性循环中!
产品线负责人如此重要,但为什么太多的中国IC公司没有配置呢?我认为主要有以下几方面的原因:
1
欧美公司没有培养出这样的中国本土IC人才。欧美公司几乎不会招聘中国本土人才来做产品线管理,因为欧美公司的这个职位需要衔接协调海外的部门,对英语要求太高!而海外的留学生也基本都在做技术开发,可以成为一个点的高手或者一块小木板的leader,但是几乎没有机会负责整个产品线的管理。
2
对产品线负责人来说,需要很宽的知识面,从市场机会、产品定义到IC设计、IC制造、系统方案,再到市场销售,整个环节都需要了解。中国IC大规模发展也才10年,这么短的时间内也很难培养出这样的全方位人才。
3
就产品线管理而言,对负责人的素养要求非常高,不但沟通协调能力要非常强,而且还要具有非常强的责任心、人格魅力和原则性等。夸张地说,就如同周总理管理20个部委一样,可见难度有多大!
4
中国的工程师大都崇尚技术而轻视管理,对技术不如自己的人,就不愿意接受其协调和管理,这也导致知识面宽而不精的产品线管理者无法顺利地开展工作。
5
在中国,由于职业道德和精神的缺位,这样的合格的产品线负责人,由于对每道"工序"都了解,太容易拉出一帮人另立山头了,因此许多中国本土IC公司的CEO们不敢招,也不敢用!
由此可见,目前市场上还难于找到这样合格的产品线负责人,本人8年中也就遇到几个而已,这个岗位的人才是中国目前最紧缺的人才。这或许也是目前中国IC设计公司无法配置这样职位的重要原因。
因此,在中国的IC公司,特别是规模小点的公司,没有配置专门的产品线负责人,基本就是CEO来亲自抓这个产品线管理。但CEO们"日理万机",在公司战略方向、产业链上下游关系处理特别是融资事情上,需要占用太多时间和精力,而产品线管理是个非常日常化的琐碎工作,需要通过不断地协调沟通去弥补无数的小缝隙,必然要花费相当多的时间精力,由此,CEO们怎么可能做得好!后果必然就是管不精也管不好!当然,中国的CEO们本身之前也几乎没有完整的产品线管理经验,知识面也不够宽,因此严重影响了产品线管理的执行力度,也就使得公司各部门处于不断的delay再delay中。
鉴于此,我认为中国IC设计公司应该抓紧培养产品线管理人才,选择沟通力强的、知识面宽的、经验相对丰富的一些项目经理来培养。另外,中国IC公司特别是抗风险能力较弱的中小型公司要敢于重用这样的人才,给予足够的权利、薪资及股份等,用好之,留住之,以便让CEO们能够抓大放小,将主要精力放在公司的未来战略和发展方面。只有培养出了合格的产品线负责人,产品的Delay就会减少了,就能够整合出没有缝隙的木桶,这样,中国IC设计公司才真正有前途!

2009年9月16日星期三

Linux操作系统内核启动参数详细解析

 Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。
  如果不使用启动管理器,比如直接从BIOS或者把内核文件用"cp zImage
/dev/fd0"等方法直接从设备启动,就不能给内核传递参数或选项--这也许是我们使用引导管理器比如LILO的好处之一吧。
  Linux的内核参数是以空格分开的一个字符串列表,通常具有如下形式:
  name[=value_1][,value_2]...[,value_10]
  "name"是关键字,内核用它来识别应该把"关键字"后面的值传递给谁,也就是如何处理这个值,是传递给处理例程还是作为环境变量或者抛给"init"。值的个数限制为10,你可以通过再次使用该关键字使用超过10个的参数。
  首先,内核检查关键字是不是 `root='',`nfsroot='', `nfsaddrs='', `ro'',
`rw'',`debug''或`init'',然后内核在bootsetups数组里搜索于该关键字相关联的已注册的处理函数,如果找到相关的已注册的处理函数,则调用这些函数并把关键字后面的值作为参数传递给这些函数。比如你在启动时设置参数name=a,b,c,d,内核搜索bootsetups数组,如果发现"name"已注册,则调用"name"的设置函数如name_setup(),并把a,b,c,d传递给name_setup()执行。
  所有型如"name=value"参数,如果没有被上面所述的设置函数接收,将被解释为系统启动后的环境变量,比如"TERM=vt100"就会被作为一个启动时参数。所有没有被内核设置函数接收也没又被设置成环境变量的参数都将留给init进程处理,比如"single"。
  常用的设备无关启动时参数。
  1、init=...
  设置内核执行的初始化进程名,如果该项没有设置,内核会按顺序尝试/etc/init,
  /bin/init,/sbin/init, /bin/sh,如果所有的都没找到,内核会抛出 kernel
panic:的错误。
  2、nfsaddrs=...
  设置从网络启动时NFS的启动地址,已字符串的形式给出。
  3、nfsroot=...
  设置网络启动时的NFS根名字,如果该字符串不是以
"/"、","、"."开始,默认指向"/tftp-boot"。
  以上2、3在无盘站中很有用处。
  4、no387
  该选项仅当定义了CONFIG_BUGi386时才能用,某些i387协处理器芯片使用32位的保护模式时会有BUG,比如一些浮点运算,使用这个参数可以让内核忽略387协处理器。
  5、no-hlt
  该选项仅当定义了CONFIG_BUGi386时才能用,一些早期的i486DX-100芯片在处理"hlt"指令时会有问题,执行该指令后不能可靠的返回操作系统,使用该选项,可以让Linux系统在CPU空闲的时候不要挂起CPU。
 6、root=...
  该参数告诉内核启动时使用哪个设备作为根文件系统。比如可以指定根文件为hda8:root=/dev/hda8。
  7、ro和rw
  ro参数告诉内核以只读方式加载根文件系统,以便进行文件系统完整性检查,比如运行fsck;rw参数告诉内核以读写方式加载根文件系统,这是默认值。
  8、reserve=...
  保留端口号。格
  式:reserve=iobase,extent[,iobase,extent]...,用来保护一定区域的I/O端口不被设备驱动程序自动探测。在某些机器上,自动探测会失败,或者设备探测错误或者不想让内核初始化设备时会用到该参数;比如:
reserve=0x300,32device=0x300,除device=0x300外所有设备驱动不探测
0x300-0x31f范围的I/O端口。
  9、mem=...
  限制内核使用的内存数量。早期BIOS设计为只能识别64M以下的内存,如果你的内存数量大于64M,你可以指明,如果你指明的数量超过了实际安装的内存数量,系统崩溃是迟早的事情。
  如:mem=0x1000000意味着有16M内存,如果是mem=0x6000000,就是96M内存了。
  注意:很多机型把部分内存作为BIOS的映射,所以你在指定内存大小的时候一定要预留空间。你也可以在
pentium或者更新的CPU上使用mem=nopentium关闭4M的页表,这要在内核配置时申明。
  10、panic=N
  默认情况,内核崩溃--kernel panic
后会宕机而不会重启,你可以设置宕机多少秒之后重启机器;也可以在/proc/sys/kernel/panic文件里设置。
  11、reboot=[warm|cold][,[bios|hard]]
  该选项仅当定义了CONFIG_BUGi386时才能用。2.0.22的内核重启默认为cool
reboot,warm reboot 更快,使用"reboot=bios"可以继承bios的设置。
  12、nosmp 和 maxcpus=N
  仅当定义了
__SMP__,该选项才可用。可以用来禁用多CPU或者指明最多支持的CPU个数。
  内核开发和调试的启动时参数
  这些参数主要用在内核的开发和调试上,如果你不进行类似的工作,你可以简单的跳过本小节。
  1、debug
  Linux的日志级别比较多(详细信息可以参看Linux/kernel.h),一般地,日志的守护进程klogd只把比DEBUG级别高的日志写进磁盘;如果使用该选项,klogd也把内核的DEBUG信息写进日志。
 2、profile=N
  在做内核开发的时候,如果想清楚的知道内核在什么地方耗用了多少CPU的时钟周期,可以使用核心的分析函数设置变量prof_shift为非0值,有两种方式可以实现:一种是在编译时指定,另一种就是通过"profile="来指定;
他给出了一个相当于最小单位--即时钟周期;系统在执行内核代码的时候,profile[address
>;>; prof_shift]的值就会累加,你也可以从/proc/profile得到关于它的一些信息。
  3、swap=N1,N2,N3,N4,N5,N6,N7,N8
  设置内核交换算法的八个参
  数:max_page_age, page_advance, page_decline,page_initial_age,
  age_cluster_fract, age_cluster_min, pageout_weight,bufferout_weight。
  4、buff=N1,N2,N3,N4,N5,N6
  设置内核缓冲内存管理的六个参数:max_buff_age, buff_advance,
buff_decline,buff_initial_age, bufferout_weight, buffermem_grace。
  使用 RAMDISK的参数
  (仅当内核配置并编译了CONFIG_BLK_DEV_RAM)。一般的来说,使用ramdisk并不是一件好事,系统自己会更加有效的使用可用的内存;但是,在启动或者制作启动盘时,使用ramdisk可以很方便的装载软盘等设备上的映象(尤其是安装程序、启动过程中),因为在正真使用物理磁盘之前,必须要加载一些必要的模块,比如文件系统模块,scsi驱动等(可以参见我的initrd-x.x.x.img文件分析-制作安装程序不支持的根文件系统)。
早期的ramdisk(比如1.3.48的核心)是静态分配的,必须以ramdisk=N来指定ramdisk的大小;现在ramdisk可以动态增加。一共有四个参数,两个布尔型,两个整形。
  1、load_ramdisk=N
  如果N=1,就加载ramdisk;如果N=0,就不加载ramdisk;默认值为0。
  2、prompt_ramdisk=N
  N=1,提示插入软盘;N=0,不提示插入软盘;默认为1。
  3、ramdisk_size=N或者ramdisk=N
  设定ramdisk的最大值为N KB,默认为4096KB。
  4、ramdisk_start=N
  设置ramdisk的开始块号为N,当ramdisk有内核的映象文件是需要这个参数。
  5、noinitrd
  (仅当内核配置了选项CONFIG_BLK_DEV_RAM和CONFIG_BLK_DEV_INITRD)现在的内核都可以支持initrd了,引导进程首先装载内核和一个初始化的ramdisk,然后内核将initrd转换成普通的ramdisk,也就是读写模式的根文件系统设备。然后Linuxrc执行,然后装载真正的根文件系统,之后ramdisk被卸载,最后执行启动序列,比如/sbin/init。
  选项noinitrd告诉内核不执行上面的步骤,即使内核编译了initrd,而是把initrd的数据写到
/dev/initrd,只是这是一个一次性的设备。