複利怎麼算?

假設公司給我們一筆錢, 不管名目是甚麼, 它都要課稅. 若是撐到退休或是離職的時候才領, 就可以叫做離職金或是退休金, 這部分是免稅的.

如果要計算出何者較為划算? 我發現其實並非顯而易見, 所以特別把它記下來.

假設這筆錢的金額是 x, 繼續在公司待 y 年 (y >= 1), 個人理財投資報酬率是 a, 而所得稅率是 b. 那麼根據以前學過的複利公式:

y 年之後:

立刻領出的人得到 x * (1+a-b) * (1+a)y-1

而等待退休或離職才領的人得到 x

這樣好像就可以比較了, 不過這裡面有陷阱. 那就是投資報酬率 a  是類似定存這樣, 每個月/年到期給付, 才適用這樣的公式. 此謂之 periodic compounding.

如果這段期間, 採用連續複利計算, 我們把 1 年切成 n 個單位, n →∞, 報酬率 c, 那麼上面的式子就是不含稅的部分以 y 年計息, 以及稅的部分以 1 年計息.

 lim x (1-b) * (1 + c/n)ny + lim x * b * (1+ c/n)n, n →∞

既然自然對數的定義就是

ec = lim (1 + c/n)n, n →∞

因此可以改寫為

x (1- b) * ecy – x * b * ec

這是指複合利率 (continuous compounding interest) .

如果 a = c 的話, 哪一種計息方式利率比較高呢?

當然是連續計息比較高, 周期計息成長到 15 倍的時候, 連續計息已經成長到 20 倍了.

對了, 領出來好, 還是等退休的時候領比較好呢? 這要看個人適用的所得稅稅率 b, 以及理財的報酬率 a. 一般而言, b = 20%, a = 5% 的話, 只要 4 年內不會離退, 還是領出來比較好.

[note] 現在的價值叫做 present value (現值, PV), 未來的價值叫做 future value (期值, FV).

TCL 小筆記

昨天發現有隻 TCL 程式不 work 了, 可能是我們 Cygwin 版本不同, Isometry 改在他那邊可能是好的, 不過我這邊就掛了.為了解決這個問題, 只好 debug 一下為何它會有不同的表現.

關於 TCL 的說明, 這個網站真是做到仁至義盡了. http://tmml.sourceforge.net/doc/tcl/

如果大家隨便寫一個 script 檔, TCL 怎麼知道是該它處理呢? 如果您有灌 tclsh 就 OK 了. 此時只要在這個 script 前面加上一行

#!/usr/local/bin/tclsh

就可以了.

TCL 自己會去執行這個 script, 而不是交給 bash 之類的.

更好的寫法是

#!/bin/sh

# the next line restarts using tclsh \

exec tclsh “$0″ “$@"

這樣就不會出現 command not found 這樣的錯誤了. 因為不做一點 “暗記" 的話 TCL 是不會去處理每一個 script 的.

上述技巧見於 http://tmml.sourceforge.net/doc/tcl/tclsh.html

如果再 TCL 中建立了一個檔案, 又想要再 generate 一次, 將會遇到 archive = 1 的問題. 在 Windows 下有一個好用的 freeware 叫做 unlock, 用它可打掉這種檔案被程式 lock 的狀態. 我的兩台電腦都有裝.

不過在 TCL 之下, 如果不先把 file attributes 的 archive 設成 0, 就算用 file delete -force 都殺不掉它喔!

  

今日得意技

我們正在測試 multi-channel HDMI 的音訊輸出. 經過大家的努力, 初步釐清 HDMI 設定 audio 的訊號會受到 video 的影響而被抹消, 於是在 audio 獨立可以設定 HDMI 的狀況下, multi-CH 終於有聲音了.

不過咧…大部分的影片幾乎低於 5.1 聲道. 有的時候, 很難搞清楚到底是那一個 channel 的聲音錯了, 或是它本來就沒有聲音?

我們找了 IC designer、看了 spec., 還是沒有人可以告訴我們 HDMI 送出的 8 組 buffer, 各自對應到 7.1 聲道的哪一個? 左、右、中、重低音、左環繞、右環繞、後左環繞、後右環繞?雖然我可以用 “人工智慧" 排除掉絕大多數的不可能的組合, 但是至少要測測看才能確定順序! 不可能是 1,2,3,4…這麼好. (果然也不是!)

我們僅有的 8 CH 測試檔是很標準的左右對稱檔案, 重低音聲道又剛好沒聲音. 稍微測了一下覺得是在浪費時間. 因為 HDMI receiver 會很乖巧地在重低音這個聲道做 bass management, 所以該有聲音的地方沒有聲音, 不該有聲音的地方倒是有聲音.

所謂怒從心頭起、惡向膽邊生, 徒勞無功了一陣子, 決定乾脆自己來造一個 8 CH 的 wav 檔, 每個聲道都各自放一首歌, 這樣只要用耳機一聽, 不就知道那隻喇叭對到那塊 buffer 了嗎?

想法雖然很好, 可是有點麻煩. 在懶和浪費時間的中間, 我選擇了認命. 誰叫 Irene 在解相位差的那個怪 bug 呢?

首先, 我挑了梁靜茹的 8 首 MP3 解成 PCM 檔. 再寫一個小程式, 把 8 個 PCM 檔合成一個大 wav 檔.

我也依稀記得 wav 檔的 header 有 44 個 bytes, 但是要自己寫程式, 又沒有 open source 可以抄, 還真有點懶…幸好至少 Google 到了 spec.

各位看官, 這一位大善人的 home page 真是不錯. http://www.sonicspot.com/guide/wavefiles.html, 看著它, 程式就可以寫出來了. 唯一要計算的只有 file size 和 chunk size, 其他都超簡單.

可能太久沒寫 dos 程式, 我連產生 filename 的招數都生疏了. file name 應該要用一個 string 來存, index 的那個字元就用 string[x] = ‘0’+i 來寫成 i 的 loop, 這樣就可以開一串 file 了. 不過我第一時間竟然忘記這招了, 真是遜啊!

程式寫好, 一檔 8 首歌的 wav 終於現身了. 左聲道: “崇拜", 右聲道: “Ces La Vie", …右後環繞: “知多少".  嗯, 那麼發出嗯嗯啊啊的難以辨識的重低音的, 一定就是剩下的那首 “每天第一件事" 囉?

就這樣, 我終於成為能夠搞清楚哪塊 buffer 對到哪個 channel 的人了. 呃,… 既然 HW, SW, designer 都沒有人可以告訴我, 那我算是第一個知道的嗎?

據說 QA 也沒有 8 聲道的測試檔, 那麼我這個測試檔應該算是最酷的吧! 因此我將它列為今日得意技. 

早上上班的時候, 看見一條毛毛蟲在過研發六路, 我小心閃過了牠, 希望牠今天也很順利, 哈! 不過千萬不要再過馬路了~~~

[後記] “今天" 其實是昨天 5/21.

AVCHD / M2TS 小註解

Panasonic 和 Sony 在 2006/5/11 推出 AVCHD 格式, 並且允許燒錄 AV 檔案到 8cm DVD 上. 兩個月後, SD 記憶卡、Memory Stick、HDD 也都支援 AVCHD. 

AVCHD 乍看不知道是甚麼東西的縮寫, 其實它至少是兩個字 AVC 和 HD. AVC = audio video coding, HD = high definition. 在這個格式下, video 是 H.264, audio 是 5.1 CH AC3 或 7.1 CH 的 LPCM, 並且封裝在  MPEG2 TS bit stream 裡面.

現在當紅的 “小藍光" (mini BD, 大藍光 BD 的向下相容盜版) 就是採用 AVC-HD 的格式. Audio 的格式也變得多采多姿, DTS, TrueHD…都有了. 由於 PS3 恰好可以播小藍光, 所以在這個商機裡面獲利不少~~~ http://en.wikipedia.org/wiki/.m2ts#Software


AVCHD 的格式如下圖 (取自 WIKI)

AVCHD 的特性除了 audio, video 之外, 包括 menu navigation, slide shows 和subtitles. Menu navigation 是指 DVD 常見的 – 從 menu 畫面點選播放 title. 

AVCHD 和 BDMV 不同, BDMV 可能放在 AVCHD 底下, 或者和 AVCHD 同層. 

IEC 61937 Overview

SPDIF 界面的規格, 可以看 IEC 60958-3 的描述. 它是由 Sony 和 Philips 所共同制定的規格, 又稱作 S/PDIF. 主要是用來傳送壓縮後的音訊資料或是解壓縮後的立體聲資料.

如果 SPDIF 上面承載的是壓縮後的音訊資料, 那麼就要參考 IEC 61937. SPDIF 也傳不動的東西, 就要靠新的規格 HDMI 了. HDMI 可以傳送 4 倍 SPDIF 的速度, 相當於每個 sample 16 bits. 以 24 bits 的 LPCM 來說, 16 bits 相當於壓縮 66.7%. TrueHD 和 DTS-HD MA 差不多就是這種壓縮率.

61937 內容
part-1 general
part-2 burst info
part-3 AC-3
part-4 MPEG
part-5 DTS
part-6 AAC
part-7 ATRAC 1/2/3
part-8 WMA
part-9 Dolby MAT (Metadata-enhanced Audio Transimission)
part-10 MPEG4 – ALS
part-11 MPEG4 AAC in LATM/LOAS (streaming)
part-12 DRA

SPDIF 的介紹可以看這個網站: http://www.hardwarebook.info/S/PDIF