Slice vs Tile in H.265

在 H.265 (HEVC) 的規格裡面多一個名詞 tile, 本來我們講 tile 都是說 memory 的排法不要照 scan line, 而是以 Macroblock 為單位, 以節省記憶體頻寬. 不過這個名詞在 H.265 已經有了正式的定義. 首先, 回顧一下 H.264 的名詞. 可以根據下圖來區別 Coded Video Sequence, AU 和 NAL [1].

接下來看一下比較舊的 slice 的定義.

Slice 的下一層是 slice segment. 由一個 independent slice segment 開始, 接著一串 dependent slice segment. 在同一個 AU (access unit, 正好就是解出一張) 裡面, 可以有多個 slice segment. 下圖的每一個框框是一個 coding tree unit (CTU) , CTU 可以再切割成 coding tree blocks [2, 4].

Tile 的分法永遠是矩形的. 看到灰色的 independent segment就是一個 slice 的開頭, 後面白色的部分就是 depedent segments. 一個tile 可以包含多個 slice, 一個slice 也可以跨多個 tile. 不過還是要有一些規則.

首先記住 CTU 會組成 coding tree, 接著至少要滿足下面兩個條件之一:

1. 所有的 slice 的 CTU 都完整地在一個tile 內.

2. 所有的 tile 的 CTU 都完整地在一個 slice 內.

其中, 1 的條件也可以延伸為 “所有的 slice segment的 CTU 都完整地在一個tile 內. 比 2 的條件再更嚴格一點的話, 就是所有的 tile 的 CTU 都完整地在一個 slice segment內. 規格書說, 上述兩個條件也要至少滿足其中之一.

此外, 我們有 Y/U/V 三個平面 (plane), 如果 separate_colour_plane_flag = 0, 那麼表示大家的slice 都長一樣. 若是這個值等於 1, 表示三個平面可以有自己的 slice. 此時, 三個平面的資料在同一個 AU裡面可以交錯 (interleave). 但是同一個 plane id 裡面的 coded slice segment NAL unit 只能依照 tile order 遞增.

那 tile 有什麼用呢?它是可以平行處理的單位. 也就是說, decoder 可以同時對多個 tile 進行解碼. 以前我們要解完一個 slice, 才能再解下一個 slice, 否則也不知道下一個 slice 的 header 在哪裡?現在我們只要知道有幾個 tile, 就可以從 tile 的頭開始解碼. Tile 不像 slice 有 header, 所以不會又多一層 overhead.

那麼, 我們怎麼找到 tile 的開頭呢?從 bit stream 裡面可以找到這一段定義.

首先就看有沒有 enable tile (tiles_enabled_flag = 1), 有的話再看是不是均勻的大小 (uniform_spaciing_flag). 如果 tile 並不一樣大, 就分別讀出每一個 tile 的寬高. 雖然 bit stream 沒有直接講出寬高, 只要在畫面上下砍 column_width_minus1 刀, 橫切 row_height_minus1 刀就可以得到這些格子了.

在 [ref 3] 裡面, 有人提到 tile 可以做 ROI (region of interest, 不是 return on investment). 先畫一個 tile 放重點, 給比較高的 bit rate; 其他的小 tile 就給比較低的 bit rate. 由於 H.265 裡面拔掉了 H.264 的 FMO (flexible MB order),  所以光靠 slice 就不方便做這種匡出一塊矩形效果. 另外, 這邊有人吐槽 FMO 本來就是做 error concealment 用的, 不是 ROI 用的.

[REF]

1. H.264先進視訊編解碼標準

2. H.265 Spec.

3. I am littile confused about the tiles in HEVC. Can’t we achieve same parallelism using only slices?

4. HEVC – What are CTU, CU, CTB, CB, PB, and TB?

[速覽]

CB vs sub-block

CU = YUV 的 CB + syntax element

CTB (8×8~64×64) vs MB (16×16)

CTU = YUV  的 CTB + syntax element

UML 類別圖符號

最近又看到一堆 UML 的類別圖, 特別整理了一個符號速查表.
 
 inheritance  B A 繼承 B
 realization AB A 實現 B
 association              B A 關聯 B
 單向 association  B A 關聯 B 
 dependency B A 依賴 B
 註解 A B A 註解 B
 aggregation  B A 彙總 B
 composition  B A 組合 B
 relationship A <<key word>> B access, bind,derive…etc.

[REF]

1. UML類別圖

 

阿里雲小檔案

阿里雲 (Aliyun) 顧名思義是阿里巴巴的產品, 也是該公司的名稱. 藉著阿里巴巴集團下的淘寶, 支付寶, …等子公司的互相支援下, 阿里雲竟然也在競爭激烈的 OS 市場佔了一席之地.

既然叫做 “雲", 強調的就是雲端技術, 我們可以把阿里雲這家公司想要賣的東西先交代清楚, 然後再來看它會做些什麼?而他的客戶又要做什麼?

對阿里巴巴來說, 他們和其他的雲端公司一樣想要賣網路伺服器, 希望大家把東西存在他們基於飛天開放平台 (Apasara) 的 server 上. 除了硬體也要有軟體, 所以飛天開放平台上也提供: 計算, 存儲, 和資料庫的服務. 就好比 Google 有 gmail, Google doc, Google maps…一樣.

至於大家共通的雲 OS, 則是架在 Linux, Webkit/HTML5/Java Script, OpenGL 和 SQLite 上. 阿里雲號稱他們是基於 Linux, 但 Google 說他們是抄 Android 的 [3], 證據是阿里雲用了 Android 的 run-time lib, framework, 和 tools [4], 也可以跑山寨版的 Google App. 雖然 Google 有反分裂法 (AFA – anti fragmented Agreement), 嚴禁 Android 的客戶自己搞一套服務, 但是阿里雲不但有樣學樣, 竟然還定義了新的指令集! 

根據 [5] 的說法, 我做了個表, 大家變可以知道他們大致上的差異. 據說安兔兔也不能分辨 Android 和 Aliyun. [5] 這篇也講了阿里雲開發的秘辛, 有興趣的人可以參考.

Android 阿里雲
boot loader boot.img 同左
kernel Linux 同左
ROM 目錄結構 app/bin/framework/lib 同左
核心進程 system/bin 同左
 library (.so) system/lib 同左
Framework system/framework 同左
上層 app, launcher system/app 同左
app 副檔名 apk lar
apk 解開之後 class.dex class.lex
虛擬機 (VM) Dalvik 自製 VM

倒底阿里雲好不好用呢?[2] 這篇講得比較詳細, 一共列出 16 點. 其中最大的特色就是阿里雲綁架了桌面, 也限制了阿里雲以外的應用. 如果是阿里雲 market 裡的軟體, 就可以自動備份到雲端. 但是不支援 Google market , 第三方的 app 和 widget 也不提供雲端備份的服務. 基本上就是與 Android 分裂, 另外搞了一個生態圈.

 [ref]

1. 百度百科 – 阿里雲

2. 说说阿里云OS操作系统到底是什么货色

3.  Google 阻止宏碁與阿里雲合作的真實原因

4.  Google+ 文章

5. 纯技术分析阿里云OS和Android之间的关系

一氧化氮 (NO) 小註解

最近一次的交大高階經理人培訓課程請到了電物 61 級的鍾祥鳳學長, 而他主講的內容就是最近廣告打得很兇的穆拉德博士和一氧化氮 (NO). 原本預期要講加捷公司 (4109) 或是甲魚精, 但是學長剛剛和穆拉德博士合作, 所以幾乎用全部的時間在講一氧化氮, 我也只好專門 study 它了.

一氧化氮在常溫下是無色無味的氣體, 而且人體可以自行製造. 它的主要功用就是讓細胞間傳遞訊息. 因為 NO 的分子量小 (30), 寬度也小 (115pm), 所以可以輕鬆穿過細胞膜的通道 (0.3mm x 0.5mm) . 雖然細胞膜看似門戶大開, 但是它其實有選擇性, 水分可以通過, 脂溶性的氣體可以通過 (如氧氣, NO), 但是非脂溶性的大分子就不能通過, 如尿素只比水大 25%, 通過率只有水的 1/1000. [1]

NO 通過細胞膜做什麼呢?平滑肌收到 NO 之後就會舒張, 使得血管的空間變大. 擴充以後呢, 當然血壓就會降低, 血液循環變快. 它還會產生一些知名的 "副作用", 讓血管大量充血….嗯, 沒錯, 這就是藍色小丸子 – 威而剛的原理啦!話說穆拉德博士在 1998 年獲得諾貝爾醫學獎的原因, 是因為發現了 NO 可以幫細胞傳遞訊息, 但是大家都稱他是 "威而剛之父". 這也就是學長看到 NO 的商機.

NO 本身的分子並不穩定, 它共有 11 個價電子, 所以很容易和其他的自由基結合後消失, 生物半衰期只有 3~5 秒. 由於它可以消滅自由基, 人家就傳說它可以殺死癌細胞. 再加上降血壓, 促進血液循環, 就號稱可以幫助記憶…等等.

看起來 NO 真是個重要的角色, 故學長推出的保健產品就是以它為中心. 穆拉德博士研究了一些方法來產生和保存 NO, 一起添到這個處方之中. 比方說, 人體要產生 NO, 就要有酶的參與, 這個酶就叫一氧化氮合酶 (nitric oxide synthase,NOS) [2], 而 NOS 的活性低, 又需要其他物質的激活 – 如人蔘皂咁. 我們吃了含有精胺酸 [3] 的食物, 再吃點人蔘 (舉例), 就會自然生成 NO.

另外一種 NO 的來源稱為非酶生性, 望文生意, 這就是人工產生的.凡是分子式裡面有 N 和 O 的, 都可能生成 NO. 例如: 硝普鹽、有機或無機氮亞硝酸鹽和硝酸鹽、亞硝胺、氮芥、聯氨、硝化甘油等等 [4]. 有些人用硝化甘油舌下片急救心肌梗塞就是這個道理.

雖然前面把 NO 講得很神奇, 不過難免有賣膏藥的味道. 在細胞的信息傳遞中, NO 只是第一信使中一員, 其他的還包括前列腺素,  內分泌激素. 以及免疫細胞所釋放出的免疫細胞因子. 他們就像是信件, 由一種細胞寄給另外一種細胞.

當對應的細胞收到信之後, 它有個大廈管理員 (受體) 負責收信, 然後管理員按下內部對講機, 把細胞膜外部訊號變成內部溝通的訊號 – 這是第二信使. 第三信使負責細胞核內外的溝通, 把外部的蛋白質轉錄到核內 – 只能拷貝一份,不允許穿透, 不然細胞可能會變質. NO 雖然跑了第一棒, 看起來很重要, 但是沒有水、脂肪、酵素的話, 它根本沒有用.

另外一方面, 凡事都是過猶不及, NO 也不是愈多愈好. 如果全身的血管都擴張, 流往腦部的血液也會減少, 這樣有可能使人昏厥. 另外, 有人說吸入過量會中毒 [5]. 忽然想到一個好笑的畫面, 如果身體製造出大量的 NO, 卻沒有足夠的脂肪溶解它, 那麼…會發生氣爆嗎?

在花錢買保健食品之前, 大家可以參考有助於產生 NO 的食物 [5-6].被提及的食物總類超多,而且物美價廉, 人人都吃得起. WIKI 說 [3]: 精胺酸可以從任何含有蛋白質的食物中攝取,如肉類、家禽、乳酪產品、魚類等。而含有大量精胺酸的食物則包括有巧克力花生核桃

[ref]

1. 細胞膜

2. 一氧化氮

3. 精胺酸

4. 一氧化氮對人體有什麼益處?

5. 1998年榮獲諾貝爾生理醫學獎: 神奇的一氧化氮

6. 在食物中获得一氧化氮

我讀 «你是做牛做馬還是做主管?» (下)

本書最後的一個重點就是主管如何讓系統運轉順利. 既然稱之為系統, 就要動起來. 作者說只要改變行動, 心態也會跟著改變. 以下就是 11 個行動準則.

1. 讓部屬認同你是他的夥伴

部屬並不等於夥伴, 這大概就是海賊王魯夫和其他海盜船長最不同的地方. 如果一廂情願地把部屬當作伙伴, 那麼就會像 “史上最凶主管" 時期的作者一樣, 認為自己雖然兇, 但是大家一定都瞭解這是為公司好! 但其實完全不然.

主管必須設法提高部屬的滿意度, 做他們的後盾, 才有機會被認同為工作的伙伴. 對了, 說到魯夫可以非常任性啊, 不過最後大家都是靠他打敗對手, 這也沒話講了.

2. 讓部屬述說自己的歷史

這個就是想辦法找到共通點.

3. 宣示三個目標

(1) 為客戶設定的目標

(2) 為團隊設定的目標

(3) 主管希望達到的目標

4. 主管是部屬尊嚴的守護者

不能當面斥責部屬

5. 稱讚可以讓人發揮實力

要真心地稱讚, 不可說謊.

6. 把勳章統統送出去

不能讓屬下幫自己負責, 不能獨佔屬下的功勞, 不要吹噓自己.

7. 你所做的一切, 部屬都看在眼裡

部屬不會跟著惡人, 就算是工作牽涉到灰色地帶, 也要為部屬詳細地說明.

8. 以持續成長為目標

即使工作都分給能幹的部屬了, 自己應該去做部屬做不到的事, 像是更高層的人脈經營等等, 這樣也會對團隊有好處.

9. 每天以笑容面對部屬

沒有人喜歡和陰沈的人來往.

10. 如果覺得累了, 就放慢腳步

除了一直求進步, 也要能夠完全放鬆.

11. 事情沒想像中那麼難, 現在就開始行動

不解釋. 行動!心就會跟上.

到這邊就把全書整理完了, 雖然義大今天還是輸, 已經進步到只輸 2 分了!