DivX 專利小整理

DivX 有哪些專利呢? 到 USPTO 找了一下, 一共有 14 篇, 其中有兩篇是延伸自他們先前的專利.

專利字號 專利名稱 極簡摘要 生效日
8,510,303 Singular, collective and automated creation of a media guide for online content 可以對 user 觀看的內如打 tag, 然後送特定資料給 user. i.e. push 廣告之類的. 2013/8/13
8,472,792 Multimedia distribution system 一個多媒體檔案中有兩種 index, 第一種指到 video frame, 第二種指到一群 video frame. i.e. 做 trick play. 2013/6/25
8,301,793 Chunk header incorporating binary flags and correlated variable-length fields 一個多媒體播放系統, 檔案中有 pointer 指到下一塊 data 的位置, 使得檔案能夠依不同的方式播放, 而不會讓檔案大小明顯增加. 2012/10/30
8,289,338 Systems and methods for font file optimization for multimedia files 檔案系統中的字形檔 (font file) i.e. 字幕等等的儲存方式 2012/19/16
8,233,768 Hierarchical and reduced index structures for multimedia files 用 index 技巧保護 content 2012/7/31
8,201,264 Federated digital rights management scheme including trusted systems 聯邦式的 DRM 保護, 延伸 7,515,710 2012/6/12
8,139,651 Video deblocking filter deblock filter, 延伸 7,886,069 2013/3/20
7,886,069 Video distribution system including progressive playback 根據 user 的指令更新遠端的媒體播放內容 2011/2/8
7,729,426 Video deblocking filter deblock filter 2010/6/1
7,664,872 Media transfer protocol 從 server 到 CE device, 根據特性使用不同的 data rtae 傳輸 2010/2/16
7,519,274 File format for multiple track digital data 多個 track 的檔案格式 2009/4/14
7,515,710 Federated digital rights management scheme including trusted systems 聯邦式的 DRM 保護 2009/4/7

7,460,668

Optimized secure media playback control 不用連到外部電腦就能註冊的的播放控制系統. 2008/12/2
7,295,673 Method and system for securing compressed digital video 加密某些 video frame, 但不用加密 reference  到加密 frame 的 frame, 2007/11/13

雖然大家對於 DivX 的認知是一個 video format, 或是一個有 DRM 保護的片商. 但是它主要的專利在於檔案格式, DRM, 以及 de-blocking. 真正和 video 播放有關的專利, 倒是付之闕如. 最有趣的是, 在專利  7,519,274 當中, 它以具體實施例偷渡了這麼幾段話:

DETAILED DESCRIPTION OF VARIOUS EMBODIMENTS 

In accordance with the present invention, the version of the video codec used in AVI files is signaled by the FourCC code in the fccHandler field or member of the AVISTREAMHEADER of the corresponding stream header `strh` chunks, and the FourCC code bicompression field or member in the BITMAPINFOHEADER of the corresponding `strf` chunks. 

By way of example, for videos encoded according to a codec developed by DivX Networks, Inc., 10350 Science Center Drive, Building 14, Suite 140, San Diego, Calif. 92121, the FourCC codes fccHandler in the stream header (`strh`) of the AVISTREAMHEADER is set to "divx" or "DIVX". Furthermore, the FourCC (DWORD) code biCompression in the BITMAPINFOHEADER of the corresponding `strf` chunks is set to signify the detailed codec version. 

Specifically by way of example, for version DivX 3.11, `div3` or `div4` is used in AVISTREAMHEADER, and `div3` or `div4` is used in BITMAPINFOHEADER; for version DivX 4.x, `divx` is used in AVISTREAMHEADER, and `divx` is used in BITMAPINFOHEADER; and for version DivX 5.x, `divx` is used in AVISTREAMHEADER, and `dx50` is used in BITMAPINFOHEADER. 

By now it should be appreciated that a file format for storing digital data with a high compression rate has been described. A file format in accordance with the present invention is compatible with high level data compressing algorithms, such as MPEG-4. Its data compression ratio is about six to ten times higher than a standard DVD format. In accordance with the present invention, the file format is capable of storing data in multiple streams or tracks. The file format is also able to encode and archive video, audio, and text data on easily accessible streams or tracks. Furthermore, the file format is able to provide protection of the copyright of the digitized content

While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific form or forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention. The present invention is limited only by the claims that follow. 

儘管 DivX 努力在不具備專利效力的章節裡面幫自己打廣告, 重申 DivX encoder 的優點,還是難掩它沒有主流 encoder 專利的缺憾.畢竟 encoder 做得再好, 還是要和 decoder 相容. 就以 7,519,274 這個專利來說,它只能在檔案格式上做文章.雖然專利名稱有 multi track, 但申請專利的人並沒有忘記把一個 track 的狀況包括進去.以他們的第一條 claim 來說.

1. A playback device configured to play data encoded in a multimedia file, comprising: a processor configured to read the multimedia file; wherein the multimedia file has at least one video track and includes a video stream descriptor list comprising: a video stream header chunk; a video stream format chunk following said video stream header chunk; and a video stream name chunk including a string indicating a video stream in said at least one video track; said video stream descriptor list further comprising a video stream header data chunk in response to said at least one video track being a digital rights management (DRM) protected video, said video stream header data chunk following said video stream format chunk in said video stream descriptor list; said video stream header data chunk in said video stream descriptor list including a DRM information data block comprising: a first member specifying a version of the DRM; and a second member specifying a protection of the DRM said DRM information data block in said video stream header data chunk having a data structure defined as: TABLE-US-00020 typedef _DRMinfo { WORD wVersion; STR sDRMinfo; } DRMINFO. 

看了雖然很眼花, 但簡單講就是: 多媒體檔案在 video stream descriptor 裡面有至少一個 video track, track 裡面有 video stream descriptor. 其中又有 video stream header chunk, format chunk, name chunk, data chunk, format chunk. 在 data chunk 裡面有 DRM revision 和 DRM information data chunk.

以我的認知是, 如果只有一個 track, 而且不受 DRM 保護, 就不受這一條的限制 – 因為那樣把所有傳統的檔案都包括進去了.為了防堵那些不用 track 為單位的檔案, 本專利在 claim 42 強調包含 multiple chapter. 而 claim 43 涵蓋只有一個 chapter, 但是有多個 data chunk 的狀況. claim 45 規範有 subtitle 檔案, claim 46 則規範有 subtitle, 但分成多個 data chunk 的狀況. claim 48 又把前述的 subtile 狀況, 加上有 DRM 時的例子…, 目標很顯然就是想一網打盡, 能想的都想了…從這個角度來看, 還真是滿厲害的.

 

在 Android 底下使用 CGROUP

CGROUP 是什麼呢?在 WIKI [1] 裡面簡直沒有幾行字, 要看懂不容易. 簡單地說, Linux 裡面有很多 process, 我們為了分而治之, 所以增加 group 的虛擬觀念. 每個 group 的 process 能夠使用的資源會有不同的限制. 比方說, 某些 process 可以用雙核, 某些 process 只能用單核. 某些 process 可以用 2GB DDR, 另一些 process 只能用 128MB.

我們可以在 console 下面 cat /proc/cgroups. 就會看見, 有 cpuset, cpu, cpuacct, memory, device, freezer, blkio, net_prio 等幾個 subsys_name. 而且他們各自有 hierachy, cgroups 的數目, 以及 enable 與否. 因為 Linux 底下的排版跑掉了, 所以除了第一列, 其他每一列都縮排.

android cgroup

以上面的 Android 系統為例 (Android 底下也是 Linux), 其中 cpuacct 這個 subsystem 就有 48 個 cgroup 之多. 什麼是 cpuacct 呢?它是指 CPU accouting control [2].  假如 Linux 沒有生成 cpuacct 這個 cgroup, 我們可以用 command line 產生.

mount -t cgroup -ocpuacct none /sys/fs/cgroup/cpuacct

我用原生的 Linux 3.10 只看得到 memory 在 cgroup 的目錄下. 使用上面這個 mount 指令後, 我們可以在 /sys/fs/cgroup 底下看見 cpuacct. 如果這個 cgroup 已經成立, 我們就可以看到一些統計資料, 例如 cpuacct.stat, cpuacct.usage, cpuacct.usage_percpu…等等. [Note 1]

cat /sys/fs/cgroup/cpuacct.stat 可以看到 user 和 system 各自用了多少 cpu 時間, 例如:

user 100352

system 79817 (單位是 user_hz [3])

cat /sys/fs/cgroup/cpuact.usuage 得到

2096699156712 (單位是 ns)

cat /sys/fs/cgroup/cpuacct.usage_percpu 得到兩顆 CPU 的數字

1145393229564    952319269088

兩者相加就是 cpuacct.usage, 不過不是同一個時間, 所以數字又變大了. 光看統計數字沒有太大的幫助, 我們要怎麼使喚它呢?根據 [REF 4] 的說法, 至少有三種方法可以做到. 其中 command line 和 libcgroup 的方法都被它介紹過了, 還有一個 LXC 的方法, 在 [REF 5] 當中有說明.

我這邊就只整理 command line 的方法, 因為它最容易了解 cgroup 目錄階層的意義.我們可以手動在 /sys/fs/cgroup 底下操作.

[CASE 1] 如果要限制的是可以用幾核的 CPU, 比方說雙核中, 誰可以用兩顆 CPU, 誰只能用 (某) 一顆, 那麼要先設定第一核與第二核的定義.

cd /sys/fs/cgroup/cpuset

sudo mkdir first_core

echo 0 > /sys/fs/cgroup/cpuset/first_core/cpuset.cpus

sudo mkdir second_core

echo 1 > /sys/fs/cgroup/cpuset/second_core/cpuset.cpus

接下來開始分配, 假設有兩個 process, pid 分別為 1185 和 1195.

echo 1185 > /sys/fs/cgroup/cpuset/first_core/tasks

echo 1195 >/sys/fs/cgroup/cpuset/first_core/tasks

echo 1195 >/sys/fs/cgroup/cpuset/second_core/tasks

結果使得 pid 1195 可以用雙核, 而 1185 只能用單核.

[CASE 2] 若是要進一步把 pid 1185 的使用權種降得更低, 我們就要定義出比重. 

cd /sys/fs/cgroup/cpu

sudo mkdir high

echo 2048 > /sys/fs/cgroup/cpu/high/cpu.shares

sudo mkdir low

echo 512 > /sys/fs/cgroup/cpu/low/cpu.shares

此時高低權重就出來, 接下來同樣是把 pid 加入 task 當中.
echo 1185 > /sys/fs/cgroup/cpu/low/tasks

echo 1195 > /sys/fs/cgroup/cpu/high/tasks

這樣在同一顆 CPU 中, 1195 也可以拿到 1185 四倍的 CPU 時間.

[CASE 3] 如果要分配記憶體的用量, 首先要設一個會限制記憶體的 group, 例如 limited_memory.

cd /sys/fs/cgroup/memory

sudo mkdir limited_memory

將它的記憶體上限定為 128M Bytes

echo 128000000 > /sys/fs/cgroup/memory/limited_memory/memory.limit_in_bytes

然後江這個 pid 加到這個 group

echo 1185 > /sys/fs/cgroup/memory/limited_memory/tasks

如果它的記憶體用量硬是超過限制, 它會 swap 到 disk, 不會用 DDR. 不過看來這樣也會拖累效率就是了.

[ref]

1. 中文版 WIKI

cgroups(控制組)是Linux核心的一個功能,用來限制報告和分離一個行程組的資源(CPU、記憶體、磁碟輸入輸出等)。這個工作是由Google的工程師(主要是Paul Menage和Rohit Seth)在2006年以「process containers(行程容器)」的名字開始的;[1] 在2007年的晚些時候被重新命名為控制組(由於在核心中「容器」這個名詞的歧義引起的混亂)並被合併到2.6.24版的核心中去。[2] 自那以後,又添加了很多功能和控制器。

cgroups的一個設計標的是為不同的應用情況提供統一的介面,從控制單一行程(像nice)到系統級虛擬化(像opeNVZLinux-VServerLXC)。cgroups提供:

  • 資源限制:組可以被設定不超過設定的記憶體限制;這也包括虛擬記憶體[3] 原來的分頁機制是在Linux研討會Containers: Challenges with the memory resource controller and its performance報告中提出的。[4]
  • 優先化:一些組可能會得到大量的CPU[5] 或磁碟輸入輸出通量。[6]
  • 報告:用來衡量系統確實把多少資源用到適合的目的上。[7]
  • 分離:為組分離名稱空間,這樣一個組不會看到另一個組的行程、網路連線和檔案。[2]
  • 控制:凍結組或檢查點和重新開機動。[7]

2.  CPU Accounting Controller

3. 3.3. cpuacct

4. Linux Control Group 介紹

5.  lxc 建立和設定虛擬機器

[Note 1] 同理, 我也可以 mount -t cgroup -ocpuset none /sys/fs/cgroup/cpuset, 不過需要手動在 cgroup 底下建這些目錄才 mount 得到. 我用 Linux 3.10, 最初 cgroup 底下只有 memory 一個目錄而已.

建完新目錄之後, 底下就會自動繼承出一大堆子目錄. 例如 cpuset 底下的 first_core 就會自動有 cpuset.cpus.

第十八屆交大高階經理人培訓班第七課

上了一年半的高階經理人培訓班, 終於遇到認識的講師了; 這次是由喬鼎資訊的李志恩 (James Lee) 董事長兼總經理為我們開課. 李學長和我指導教授張文鐘老師都是交大校友, 李學長是電工系, 我的老師是電信系. 兩位在美國是研究所同學. 只不過我們老師選擇了到卡內基美濃讀博士, 而李學長則在美國就業, 最後和朋友合開了喬鼎 (Promise) 這家公司. 由於我的老師曾經介紹我去喬鼎打工, 因此我認識了李學長.

李學長謙虛地說他還不是傑出優秀的總經理, 所以今天只是來和我們分享. 學長說如果他是優秀的總經理, 喬鼎應該和當初同期的鴻海一樣大了. 從這裡可以看出學長的志向遠大, 而他的課程內容, 也印證了學長無論在哪個領域, 都想要變成世界第一的決心. 學長的投影片雖然是以人、事、時、地、物來介紹喬鼎, 但是我想可以用幾個點來歸納學長的經營訣竅.

1. 不斷轉型求生存

喬鼎資訊雖然成立 25 年了, 核心技術都和儲存有關, 但是他的主力產品在每個階段都有所不同才能夠存活到現在. 我們可以從喬鼎資訊的公司網站上看到, 1993 年的時候, 喬鼎全球市佔率第一的產品是 VESA 的 IDE 介面卡. 當時的硬碟 (HDD) 必須接在 PC 的一塊介面卡上, VESA 這個介面現在已經進化為 PCI, 而 HDD 也變成 on board 的 SATA III 介面, 沒有卡板存活的空間了. 

卡板消失的同時, 意味著主機板要支援多個硬碟接口, 不然主板若是只支援 1 顆硬碟, 使用者不夠用時, 還得再去買介面卡. 因此主機板自然而然就會支援多顆硬碟, 並且進化到使用磁碟陣列技術 (RAID = (Redundant Array of Independent Disks). 可想而知, 喬鼎轉向往 RAID 發展, 並且在 1998 年推出 RAID on montherboard, 當我們去買高階主機板的時候, 就會看到 RAID chip 已經焊在主機板上了. Promise 在當時就是數一數二的品牌.

當然, 這個商機也不會維持太久, Intel 很快就想到要把 RAID 內建在晶片組當中. 因此 RAID chip 在主機板的市場又慢慢萎縮. 喬鼎轉型的方式就是企業用戶發展. 要知道現在 Intel 內建的 RAID, 設定真是難用到爆! 支援 4 顆硬碟, 就強迫 4 顆都要 RAID. 支援 6 顆硬碟, 也強迫 6 顆都要跑 RAID, 我得故意在中間穿插一個光碟機, 才能避免第五顆硬碟也要跑 RADI 的命運. 以我一個普通的家庭用戶, 用 RAID 不過是為了保護我的開機硬碟, 幹嘛要我犧牲 1 萬元去湊 RAID 的數目呢?

言歸正傳, 學長把儲存的技術用在企業級用戶, 也就搭上了雲端的熱潮. 現在喬鼎資訊的三大技術就是雲端儲存, 多媒體和監控系統. 學長在 "時 = trend" 的這個主題下講到, 在公司比較低潮的時候, 往往是靠著多和客戶談, 傾聽客戶的聲音才找到轉型的方向! 這使我想到當初螃蟹公司的 DVR (DVD Recorder) 產品線也是聽到客戶的聲音才轉到 DMP (Digital Media Player) 去, 即便不轉到 DMP, 也可以轉到 NVR (Network Video Recorder) 或是監控的 DVR (Digital Video Recorder), 若是以為藍光 (BD) 一定接棒 DVD, 碟片市場會愈來愈大, 這樣的思路就太僵硬了.

學長也說到, 公司低潮的時候, 就會有人離開. 但現在的一級主管很多都是一路堅持下來, 跟了公司十幾年的人. 若是有人想要離開公司, 學長也不會挽留, 祝福他們出去學兩招再回來, 所以公司也有兩近兩出的同仁. 學長還說到他在 National Semiconductor 上班的時候, 公司還有人七進七出 (孟獲?) 學長說, 當然啦, 你要有兩把刷子, 這是回鍋的前提.

2. 上下左右的管理

喬鼎成立的時候就在 St Jose 註冊, 因此它一開始就是一間國際化的企業. 公司裡面的人種多了, 文化差異也就大. 即使同樣是歐洲人, 英國人可以笑倒在地上打滾, 荷蘭人在看球賽的時候, 就不會把錢傳給旁邊的人, 請他們代買個爆米花 – 錢一出去就不是你的了, 還等爆米花回來咧~~~ 然而, 儘管文化不同, 傾聽永遠是重要的. 每當部屬之間有衝突, 學長只要去聽聽他們怎麼說, 問題就和緩多了. 若是再能做到其中的一些要求, 部屬就會更加感謝!

學長說他有一位斯里蘭卡籍的 sales 就對他又愛又恨, 恨的是學長總是若無其事地調高他的目標. 明明只能做 300~400 萬, 學長一口價就會讓他做 400~500 萬. 學長說他永遠會調高目標 20%, 雖然明知做不到也沒關係. 但是對董事會就不一樣了, 對董事會報告要反其道而行, 講保守一點才不會做不到. 至於喬鼎員工愛 James 什麼呢? 他們認為學長會把各種資訊和他們分享, 把它們當作自家人看待. 嗯, 我在喬鼎待過的前室友, 草皮都比我家大. 難道是這個原因? 哈!

學長說到, 當初公司做硬碟卡板的時候, 有一次在客戶那邊發生問題. 由於主機板是華碩的, 硬碟是 Seagate 的, 客戶抝不動這兩家, 就找喬鼎去 debug. 最後雖然證明是 Asus 的問題, 但是喬鼎服務到位, 幫客戶把 bug 修掉, 所以爭取到了客戶的信任. 雖然喬鼎早年的技術不一定是業界最優的, 但是學長說他們的服務是最好的. 學長還訂下規矩, 誰能幫客戶解決重大問題, 就可以領到一萬美元的獎金. 當時在 Christmas 假期的時候, 剛好有美國客戶出了狀況, 結果喬鼎在墨西哥休假的員工就為了這一萬美元跑去 debug, 並解決了客戶的問題. 這位同仁說他本來確實是為了錢, 但是收到客戶感動的回饋之後, 覺得收穫已經超過金錢的價值了.

喬鼎的產品以儲存為主, 本來 RAID 若有故障也都會有警告訊息. 但往往就是在大家忙著要去度假的時候, 特別容易忽略到硬碟快掛了. 因此緊急事件往往都是在放大假的時候發生. 早先的工程師認為自己的技術好就好, 並不關心客戶的狀況. 也是遇到了必須要在 Christmas 假期緊急出差, 才慢慢改變想法. 產品是客戶在用的, 若是抱著工程師的思維 – 客戶不按使用手冊操作而發生當機不是我的問題, 最後還是要工程師來收尾解決. 因此別家能做到亂操作也不當機, 自家當然也要做到同樣的水準.

3. 危機處理

危機處理有好幾種層次, 比較小的就是衝突管理. 除了學長講到的英國人和荷蘭人衝突, 美洲 sales 和歐洲 sales 衝突, 台灣和大陸也有文化衝突需要管理. 當初學長到大陸 branch 的時候, 曾經在週五的時候, 交代部屬下週一給他一個報告. 結果到了禮拜一, 屬下兩手一攤說, 你又沒有給我紙和筆, 我怎麼寫報告. 學長很幽默地拿了三張紙和三支筆給他, 這位同仁果然也在兩個小時後交卷了, 而且還寫得不錯. 據說這位仁兄到目前都在 Promise 服務, 還頗有貢獻~~

今天老闆找部屬來做事, 就是因為自己不夠專業才有求於人. 既然有求於人, 就要有求人的樣子. 學長說自己像是 "將將" 的劉邦, 因此對蕭何、韓信、張良都很客氣. 如果什麼都認為自己最行, 那就是 – 賈伯斯 項羽了. 何況項羽不常有, 賈伯斯更是絕無僅有, 不懂用人必然失敗.

對於客戶的危機處理, 學長說他把手機號碼給了他的主要幹部. 說是沒事不要打, 有事儘量打 (不要管時差). 每次接到電話都知道大事不妙, 但這時候就要分析問題發生的機率有多大? re-call 對公司有什麼影響? 然後當機立斷做出決定, 總之不能慌. 以日本客戶 NEC 來說, 如果他們派高層出來罵你, 表示他們還想用你的東西. 只要能讓客戶覺得罵了有用, 單子隨後就會進來了. 不過據說大陸客人不是這樣, 他們罵你就是不想和你做生意了.

在產品競爭方面, 學長說還沒有主導市場以前就是要學. 他不會像其他公司一樣, 還沒當老大之前, 就一直喊著要打倒第一名當老大. 有次學長在接受訪問的時候, 就被問到他們怎麼和第一名的公司競爭, 學長說我們希望把產品做好, 成為對方的供應商. 記者聽了一愣, 說到他認為這樣的公司會成功, 以他的經驗, 那些喊口號要當老大的, 最後當成老大的少之又少, 公司往往就不見了.

學長說, 像他們做監控, 在發生人為災難的之後, 也就是大家需要更多監控設備的時候. 平日就要保持一定的敏感度, 危機有時候也會變成商機. 的確, 我個人非常受不了以前電視上播的那些提款機拍到的歹徒畫面, 糊成那樣誰認得出來啊? 可見未來 DVR 還有很大的發展空間.

因為手機灌 Android 4.4 後還是第一次打開這版的 evernote, 這次的筆記做得非常不順. 雖然沒有按照學長投影片的順序走, 讓我印象深刻的重點也都記下來了. 

1. 遇到低潮要轉向, 傾聽市場需要什麼?

2. 工程師不要只管工程做得多漂亮, 要想著服務客戶.

3.  孫子兵法說 "勝兵先勝而後戰", 還沒有成功就要多學習.

 

YUV 格式小整理

最近在討論 video 的格式, 順便整理一下表格.紅色是 Android 支援的.

420 簡單系列 
Type Luma  chroma   Planar or not Note
I420 YYYYYYYY UU VV Planar = 3 plane
J420 YYYYYYYY UU VV Planar = 3 plane,
範圍 0-255
YV12 YYYYYYYY VV UU Planar = 3 plane
NV12 YYYYYYYY UV UV Semi-Planar = 2 plane, Y + UV
NV21 YYYYYYYY VU VU Semi-Planar = 2 plane, Y + UV
420 變化系列
Type 採樣方式 Note
YUYV Y0U0Y1V0 Y2U2Y3V2 Y4U4Y5V4 … =YUY2=V422=YUNV
YVYU Y0V0Y1U0 Y2V2Y3U2 Y4V4Y5U4 …  
UYVY U0Y0V0Y1 U2Y2V2Y3 U4Y4V4Y5 … =Y422=UYNV
Y211 YXYXYXYX UXXXVXXX Y422 的一半,X 表示沒取樣
422 系列
Type Luma Chroma   Planar or not Note
I422 YYYYYYYY UUUU VVVV Planar = 3 plane
J422 YYYYYYYY UUUU VVVV Planar = 3 plane,
範圍 0-255
NV16 YYYYYYYY UVUVUVUV     = 2 plane, Y + UV
NV61 YYYYYYYY VUVUVUVU = 2 plane, Y + UV

[ref]

1. YUV 格式說明

2. YUV

3. YUV

4. 关于yuv 格式-Semi Planar和Planar

5. Pixel and Planar Image Formats

6. V4L2_PIX_FMT_NV16 ('NV16'), V4L2_PIX_FMT_NV61 ('NV61')

我讀 «財富非常通道»

這本書是一位網友推薦的, 雖然書挺好, 不過著實沒時間看. 好不容易遇到端午節連假, 總算是把它翻完了. 本書的作者曾淵滄教授是香港知名的投資專家, 他在新加坡出身, 大學讀的是南洋大學的數學系. 後來到英國留學, 取得曼徹斯特大學管理科學博士後, 就在香港城市理工學院 (現在的香港城市大學) 任教至今. 

我們看曾教授的背景像是一位標準的學者, 為何他又會成為投資專家呢? 原來教授早年喪父, 所以他從小就積極地開源節流. 為了完成出國的志願, 他在 1976 年大學畢業後,曾短暫在兩家公司上班, 存下自己的留學經費. 不過計算起來這兩份工作只做了 1 年左右, 因為他在 1978 年就拿到碩士了. 這快速賺錢的密技, 在書中的最後幾章有提到. 原來曾教授熱愛攝影, 除了在各種攝影比賽拿到獎牌之外, 還幫他賺了很多獎金.

曾教授在大學時代就對股市相當留意, 只是沒錢可以投資. 等到他拿到博士, 1981 年在做博士後研究的時候, 恰好碰上柴契爾夫人正在推動國營企業私有化.第一家私有化的企業 British Aerospace 正式上市時, 曾教授評估政府絕不會讓這支股票股價難看, 因此大膽買入生平第一支股票, 後來賺了一倍.  

一年多後, 曾教授放棄博士後研究的工作, 回到新加坡上班, 也順利獲得不錯的薪水收入. 到了 1986 年, 新加坡開始不景氣. 政府為了救市, 動用中央公積金去買股. 這就跟台灣的四大基金護盤差不多吧!? 曾教授同樣相信政府, 跟進買入的結果, 賺到了四年的薪水. 這就是曾教授的第一桶金 (p21). 從此以後, 股票就成為他重要的投資工具.

雖然股市上漲了,但其實還是一樣不景氣. 公司的氣氛低迷, 使得曾教授萌生出國發展的念頭. 此時剛好拿到香港城市大學的聘書, 因此他的後半生都在香港發展.曾教授剛到香港沒多久就開始買期貨, 初期小賺. 但 1987 年香港發生大股災, 曾教授不但把投資的錢賠光, 還把在新加坡的那桶金賠進去. 虧了 50 萬港幣後, 曾教授也暫時遠離股市, 到處兼差填補損失. 到了 1989 年發生六四天安門事件, 教授明知這是個投資機會, 但是還拿不出錢來!

沒錢怎麼辦呢? 還好教授的特權就是可以叫學生幫他做實驗.學生幫他跑實驗的結果,計算出 “2 天 – 19 天移動平均線" 可以用做買賣股票的依據. 簡單地說, 連續兩天升破 19 日移動平均線買進, 跌破時賣出, 就這樣. 至於為何是 2 天而不是一天呢? 教授說有時會有假消息, 導致當天暴漲暴跌,但是第二天就平衡回來了. 所以連看兩天就不會太敏感. 至於 19 天是因為法人常常看 20 天線, 教授想比他們搶先一天.

現在科技這麼進步, 我們不用研究生就可以測試各種指標的最佳參數. 如果是 MA (moving average = 移動平均線, 啊! 我竟然是在 random process 的課堂上學的, @@…), 台灣的大盤可能要取 (1, 29). 或許是台灣有漲跌幅限制, 消息往往一天反映不完? 所以…剛有個苗頭就要衝了?? 但網友也說, 網站工具的計算是不含證交稅, 證所稅或手續費, 即使工具說我們 9 年能賺 98.7%, 一年也不過是 7.88%. 再東扣西扣並沒能賺多少. 唯一可以肯定的是, 2009/3/4 買進, 2009/6/9 賣出的這一筆, 確實能賺 40%. 但這一共也只發生一次.

言歸正傳, 曾教授說 (2,19) 這組參數幫他賺了不少. 到了 1990 年, 他又頗有積蓄了, 甚至開始買房. 曾教授雖然先前投資期貨不順, 但是他不只是跌倒了再爬起來, 甚至直接晉身專家之列. 原來他為了賺回虧在期貨的錢, 除了到處兼課, 當顧問,也在報紙 (信報) 上寫投資專欄. 這個真的是當學者的好處了. 即使是紙上談兵, 人家也會敬你三分! 若是換了其他身分的人, 沒有實績, 絕對沒有人願意給你版面教別人理財.

曾教授當時在 <信報> 上推薦大家買匯豐銀行.炒股兼炒樓, 使得他的身價在 1993 年達到千萬港元等級 – 真正的第一桶金 (p26). 1993 年也是 <蘋果日報> 創刊的那一年. 黎智英先生禮聘曾教授擔任第一任副社長. 為了推出比 MA(2,19) 更厲害的工具, 他發明了一個 “曾氏通道". 有些人在看股價的趨勢時,會用高點或低點來畫線, 也有人會用包絡線 (envelop) 把股價區間包覆起來. 或曰, 怎麼那麼厲害! 可以算出兩條線去框出股價的高低範圍? 其實很簡單, 只要拿每天 K 線的最高價做上面的移動平均, 每天最低價做下面的移動平均, 股價當然就被包在裡面了. 若是有幾天穿出或跌破包絡線, 就相當於 MA(1,X) 的買賣訊號 [1].

曾氏通道最有趣的地方是, 他先把股價(指數) 取了 log.這麼一來, 當初恆生指數才幾千點的歷史, 就變成微不足道的原點, 而後續的高指數也都在第一象限延伸.當我們幫這個曲線取包絡時, 竟然可以取出直線! 於是曾教授說, 我們可以根據這些線來判斷股價的高低 (如下圖, 取材自[ref 2]).

事實上, 只要恆生指數不長期跌破 2002 年的前低, 或是長期漲破 2007 年的前高, 這是直線神話還是成立的.只不過,時間拉得愈長,就愈不容易得到同樣的結論.直線變成曲線, 看起來就一點也不厲害了. 不過曾教授確實靠著這幾條線賺進了更高的知名度!

個人覺得與其特別關注曾氏通道的預測能力, 不如聽聽他給我們幾句忠言. 畢竟, 曾教授能遵守紀律, 是他成功的主要原因. 他的心法比手法要來得重要.那些線來來去去, 做過論文的人都知道, 你想要什麼樣的結論, 我們都能做出那種數據出來.

[自我 EQ 訓練的六堂課]

1. 屢敗屢戰.

2. 勿失方寸.

3. 準備接受最壞情況.

4. 了解風險

5. 拒絕內幕消息.

6. 克服貪婪與恐懼

其實, 曾教授的致富之道或許應該是炒樓, 而不是炒股. 但是一個人沒錢的時候雖然買不了房子,買點優質股票還行.投資股票還是比較適合沒錢的人. 因此我認為曾教授從高薪上班族進化為小富的過程的關鍵確實是投資股票成功. 但是從小富到無憂, 其實是靠著投資了 12 處房地產…

[錢怎麼分配]

1. 新錢 – 工資, 兼差, 股息, 租金類

40% 投資可以持有十年以上的股票

40% 投資可以持有一個景氣循環的股票

20% 投資可以持有 2 週到一年的股票.

2. 舊錢 – 賣出股票得到的錢, 再投資

[投資者終生受用的 5S]

1. Study – 研究自己, 研究市場

2. Saving – 省吃儉用, 拿來投資的錢一定是閒錢, 達到一定的財富目標才享受生活, 要累積一定的財富才開始投資

3. Succeed – 開始投資

4. Sustain – 不要得意忘形

5. Seek – 小富之後, 可以追尋人生

[ref]

<span style="font-size: 16px;>1. 1. Moving Average Envelopes

2. 牛熊市转向5大指标