Skype Kit 小註解

很多人都在用 Skype, 不過對於開發 Skype 需要用到的技術, 誤解還真是不少.

Skype 其實很貼心地把他們的技術都包在一個 Skype Kit 的執行檔裡面, 理論上只要把 API 都接對了, CPU 的 performance 夠快, 其他都不用做.

有人說開發 Skype 要支援語音一對五通話, 其實那是專指 PC 上的 Skype, 非 PC 上的 Skype 只需要支援 1 對 1. 何況 PC 的新規格上已經號稱可以支援音訊通話 1-to-24 了. 有趣的是, 我們看到這麼強大的數字應該就很不容易上當, 但是人家跟我說一定要做 1-to-5 的時候, 我居然相信了.;(

有人說開發 Skype 要支援 G.729, Silk, G.711….,  其實 Skype Kit 裡面什麼都有,  只要 CPU 夠快, 什麼都不用做. 

有人說開發 Skype 要支援 Beamforming, Noise suppression, Echo Canceling, AGC…etc., 其實 Skype Kit 裡面什麼都有, …(後略, 同上). 所以張載才會說, "於不疑處有疑, 方是進矣."  雖然我們要自信信人, 不過更要相信 spec.

如果說 Skype Kit 什麼都做了, 那麼開發 Skype 應用軟體應該是輕鬆寫意吧?非也!這包 Skype Kit 雖然包山包海, 不過一般嵌入式系統的 CPU 可是沒辦法像 PC 那樣揮灑自如. 隨便拿一支 4 microphone  的麥克風陣列, 未必能夠過 Skype 對 TV 廠的認證.

坊間的 Skype 認證麥克風, 主要是給 PC 用的. 因此它們並不需要通過 5 m 的測試 (人和麥克風距離 4 meters), 只需通過 1.5 m 測試. 此時 beamforming 的功能只是 optional, 關掉這個功能反而更好.

更麻煩的是, Skype 做系統認證的時候, 所搭配的每一個 camera 或 microphone 組合都要認證一次. 這導致了做 PC 週邊的認證很容易, 因為軟體全是 Skype 自己寫的, 球員兼裁判當然不會有問題.

而 embbed system 的認證就很麻煩了. 除非跑得動全套 Skype kit, 否則就得搭適合的 camera 和 microphone, 把某些工作得 off load 到 camera (microphone) module 上. 這些非標準規格的周邊配件等於要系統廠按規格訂製, 所以開起案來問題就很多. 

假設 Apple 的 FaceTime 推得很好, 相信 Skype 的空間就會愈來愈小. Skype 打電話到傳統電話還需要 Skype Out, 而用 FaceTime 從  iPad 打電話到 Iphone 簡直就是一塊小蛋糕!如果 Skype 不振作一點, 前方的路肩好像會有點綠油油的 – 前途堪慮啊!

另外, Apple 的 FaceTime 把 FaceBook 的臉 (face) 當成商標了, 看來 FaceBook 要推視訊電話的時候, 可能要多用一張臉來抵擋. 例如: Face 2F (face-to-face) 好像還不錯.


微軟手機變 AP

幾個月前, 偉哥拿著他的新手機問我, “你的手機可以當 AP  (access point) 用嗎?." 讓我著實羨慕了一陣子. 不過我今天找到一個 AP 可以讓我的 i8000 也變成 AP.

首先去 download 一個免費的程式 WMWifiRouter.cab, 適用於 Windows Mobile 的系統. 如果用 V0.91 版或是更早的版本, 它都是免費的. 如果想用新的 2.0 版 (2010/4 之後就沒更新了), 可以試用 21 天. 上網買的價錢是 14.99 EUR.

安裝此程式後, 首先把 “網際網路共享" 打開, 連線方式選 USB 或藍芽都可以.  不過我們不用這些方式來連, 況且 WM 的手機沒辦法透過 USB 和 Apple 的筆電共用網路; 如果選藍芽, 頻寬就只剩 1Mb, 什麼 HSDPA 都是一場空.

接下來打開 WMWifiRouter 這個程式, 若看到 “Not Connected" 和 “Starting ICS", 表示手機的網路還沒有 ready. 手機網路通了之後, 會看到 “Connected to WMWifiRouter" 和 “ready" 字樣. 此時, 筆電上應該也可以看到 “WifiRouter" 這個裝置.  

只要連上它, 就變成以 Wifi 的方式和手機共享網路了. 和使用普通的 AP 沒有什麼差異, 同時, 可以對這個 WiFi 網路設 WEP 的密碼保護. 

如果出差到客戶那邊, 他們很可能不給我們網路用. 此時可以用電信公司的折扣網際網路漫遊, 再拿手機當 AP, 就可以省下買 3G AP 的錢, 含儲值另外一個門號的錢了. 

折扣網際網路漫遊的費用比較低, 以中華電信為例, 短期出差可以考慮的方案是日租型的這一個.

[Note]

台灣大哥大在 6 月底前有一個促銷方案, 1 天吃到飽 399 元, 3 天 1099 元, 5 天 1799 元. 這個應該是測試市場用的, 趕快支持一下. 希望電信業者趕快降價給我們.

http://www.taiwanmobile.com/events/roam_day/

[Note 2]

實際在新加坡試用的結果: 台灣大哥大的漫遊網路相當不穩, 常常找不到訊號. 中華電信略勝一籌. 基本上, 手機拿來當 AP 之後, 耗電相當兇. 即使插著 USB 給手機供電, 開一整天會後, 電池還是會用到沒電, 整個手機也變得熱呼呼的. 

認識矽導線

上次我發現車子有異常的間歇震動, 結果檢查出是火星塞的問題. 這次我又遇到了更頻繁的間歇震動, 結果一度以為是矽導線 (auto high voltage silicon wire)的問題.

矽導線連接高壓線圈到火星塞, 它外表長得像這樣 – 塑膠外殼的軟線. 修車師父說, 我這個狀況是矽導線漏電. 通常漏電的話, 這根線會有變白的地方. 不過這次他沒有發現.

測試的方法是, 如果把矽導線拔掉, 那麼引擎的震動就會變大. 當矽導線被拔掉的時候, 引擎的震動沒有變大, 那麼這根線就有問題了.

至於我懷疑的火星塞, 中間有點變黃.

這表示應該在火星塞頂部爆發的火花, 在中段的地方就產生暴震了.  所以火星塞也一起換.

這次修起來比上次換火星塞更貴. 火星塞一顆 600 元, 共換四顆. 矽導線一組 1000 元. 在加上工資…哇嗚!

最後我的車換了高壓線圈才修好, 所以上面的錢可能是不用花的. 如果換高壓線圈, 連工帶料大概只要 2,500 元.

Double Bass 小註解

接案子的好處是讓大家有飯吃, 但壞處是要把不懂的東西搞懂.

今天收到的 spec. 裡面有一個 double bass. Double bass 是啥呢?就是低音大提琴. 不過顯然客戶不是要我們把提琴的 MIDI 做給他, 而是要調出 double bass 的效果. 

一般的 bass, 也就是 bass management 裡面的 bass; 會把聲音完整地送給大喇叭 (Large Speaker), 並不會刻意地把裡面的低音分離出來, 送到低音喇叭 (sub-woofer) 去.

如果是 double bass 的話, 就是大喇叭裡面有 bass, sub-woofer 裡面也有 bass. 此 double bass 之謂也!

就這樣簡單嗎?還有一點小技巧在.

按照上面的說法, 低音被送到兩個喇叭, 豈不是把低音給放大了?此處有兩個作法.

1. 用一個分頻點, 把分給 Sub-woofer 的最高頻率定下來.

2. 單獨調整 sub-woofer 的音量和分頻點, 專門去補大喇叭在低頻的頻率響應.

方法 2 似乎是比較高明的做法, 據說聽音樂時很適用.

當然方法 1 也可以用來強化低音. 假如大喇叭的 roll-off frequency 在 40 Hz, 也就是 40 Hz 以下的低音就不太完美了. 若把 sub-woofer 的分頻點設在 100 Hz, 則 0~40Hz 可以正確輸出, 40~100 Hz 的中低音 (mid-bass) 也得到了強化.

[ref]

http://www.avsforum.com/avs-vb/archive/index.php/t-780149.html

http://news.u-audio.com.tw/newsdetail.asp?newsid=125

3D BD 小註解

3D BD 的 video 的壓縮格式是 H.264 的附錄 H, 也就是 H.264 MVC (Multi-view Video Coding).

為了和傳統的 2D 電視相容, 有一個主視頻碼流專門放左眼或是右眼的訊號, 另外再用一個輔助視頻碼流來儲存擴展的資訊.

輔視頻流採用了 inter-view prediction 的方式, 也就是左右眼可以互相預測. 這使得輔視頻流的碼率可以降到主視頻流的一半左右.

Note: 50 Hz 系統用於歐洲. (本圖取材自藍光白皮書)

從上表可以看到 3D 光碟裡面會有哪些 bit stream? 有趣的地方是, 為什麼有一個主視頻流, 一個輔視頻流, 又有一個主視頻流+輔視頻流呢?不能簡化一點嗎?

事實上, 它們只是表達方式的不同. 一個表示成主輔兩個碼流 (附檔名 m2ts, stream 目錄下), 另一個表示為混合的單一碼流 (附檔名 ssif, steam\ssif 目錄下). 

網路上有人反應他的 BD 光碟中, m2ts 和 ssif 文件的大小加起來竟然比一片 BD 的容量更大!就是被 file system 給騙了. 其實, 文件實體在 m2ts, ssif 只是 m2ts 的鏡像. Data 只有一份.

SSIF 是 Stereoscopic interleaved file 的縮寫. 它交錯地把主輔視頻切成小段存放. 在3D 播放時, 就直接讀取整個 bit stream. 2D 播放時, 只要根據索引適時跳過輔助碼流的部份, 就可以選擇性地播出主視頻流, 達到與 2D 電視相容的效果.

另外, 網路上有些破解教學, 教大家如何用主視頻流和輔視頻流的 m2ts, 生出左右眼完整的兩個 bit stream. 然後再用 tool 做成 Frame Sequential 的方式 (左一張, 右一張), 或者品質差一點, 做成 side-by-side 或是 top-bottom. 如此一來, 就算 player 看不懂 SSIF, 也都播得出 3D.

呃, 壞的不要學, 知道原理就好.

看來賣 3D 眼鏡或 TV, 還是比賣 3D BD 保險. 至少沒有人在破解眼鏡…

[ref]

1. 英语的藍光白皮書
2. 家用3D视频格式(一)数据存储格式