DICOM世界觀·第二章:[1]畫素 Pixel (Picture Element)
背景:
原本該小節想直接套用上世紀一片著名論文《A Pixel Is Not A Little Square》作為標題,怎奈英文原文資訊量較大,內部蘊含了很多關於取樣定理的資訊理論知識,雖然通讀數遍但依然感到些許迷茫,怕對讀者有誤導,所以直接簡單一點以《畫素Pixel》為題,從日常生活中淺顯、通俗的概念入手,來引入未來在DICOM世界觀中會頻繁出現並佔去大量篇幅的元概念——畫素Pixel,是Picture與Element兩者縮寫“pix”和“el”的組合。(備註:更多底層理論知識待後續再逐步補充&完善)。
本博文中先探索畫素的起源,然後從日常生活中的常見的概念,諸如解析度、畫素數、PPI、DPI等入手來進一步剖析,最後會介紹兩類常見的畫素操作手段。
1.畫素Pixel
講到概念,首選Wiki百科。當然我說的是英文版Pixel Wiki,中文版中的大多數詞條真是不敢苟同。這裡請允許我先摘錄英文Wiki中對Pixel定義的原文:
In digital imaging, a pixel, pel, dots, or picture element is a physical point in a raster image, or the smallest addressable element in an all points addressable display device;
——so it is the smallest controllable element of a picture represented on the screen.
因為畫素(Pixel)這個概念在不同的場景中會有不同的含義,例如Pixel Wiki中列舉的,
- [1] 相機領域的感測器最小感應元件(這與本系列博文第二章開篇中提到的膠片、數碼相機、以及人類視網膜都有些許類似)
- [2] 列印領域的最小可列印元素(下文中提到的DPI跟這個相關)
- [3] 顯示裝置的最小可顯示單元(LCD、LED想必這個大家比較耳熟能詳,因為這是現如今各大手機廠商撕逼的點之一)
等等
所以這裡我們有必要理清一下邊界:上文我們摘錄的是數字影象(digital imaging)領域中畫素Pixel的定義,後續《DICOM世界觀》中會頻繁出現的如果沒有特殊說明
1.1. Pixel ≠ Square
首先讓我們回顧一下畫素Pixel的概念發展史。起初picture element是用於電視(television)領域,並首次公開出現於在1927年的《無線電世界》雜誌中。Pixel是Picture與Element的縮寫組合詞,在1932的《Variety》雜誌中開始用“pix”來作為picture的縮寫,到現如今在攝影行業依然會有如此用法,而Element的縮寫就是el。畫素Pixel——完整的第一次公開使用出自於美國NASA的JPL噴氣推進實驗室(其實你會發現現如今所謂的資訊化時代或矽基時代,大多概念,尤其是核心概念都跟美國的DARPA、NASA有關,所以很多東西可能從出生就帶了西方的基因,老美的基因)即,
簡單的回顧我們可以瞭解到畫素Pixel與影象、與顯示密切相關的。正如wiki百科開頭所講的:畫素是柵格影象中最小的組成元素,是所有以“點定址技術”的顯示裝置的最小可定址單元——點定址簡單理解就是將整個顯示區域切分成一個個很小很小的塊,每個小塊用一個點表示,找到這個點就能確定影象的某一部分,所以叫做點定址。
在第二章開篇《DICOM世界觀·第二章 數字(D)、成像(I)與通訊(Co)》中我提到的膠片成像、CCD或CMOS數字成像、醫學成像都有其最小單元,膠片是“銀鹽顆粒”、CCD或CMOS是“感光元器件”、醫學成像是“銀鹽顆粒或感光元器件”(因為在醫療領域既有傳統的成像手段也有數字成像手段),甚至人眼也可以看成是由一個個很小的元素組成,因為人眼總共有約1.2億個視杆細胞與約600~700萬個視錐細胞。
既然我們採集影象的手段是由一個一個很小的單元組成的,我們人類視覺也是有一個一個最小單元模擬而成的,那麼這個最小單元究竟是什麼樣子呢?它的形狀是什麼?它又是如何來表達出我們所生活的現實世界的呢?
看一張組合圖,感覺一下畫素Pixel概念的存在。
一張簡圖涵蓋了大量的概念和資訊,從自然界裡的光(量子理論、波粒二象性、光譜、反射、折射),到攝像機裡的CCD與CMOS(光電效應、夏農取樣定理、模擬與數字訊號相互轉換),再到數字儲存RAM或ROM(電子管、電晶體、積體電路、大規模積體電路),然後又返回至液晶顯示(LCD,熒光背板、液晶格子、偏振光),最後到達人類眼睛的視杆細胞與視錐細胞在大腦視覺中心形成影像。繞了一大圈,用了各種技術,各種裝置,使得自然界中的景象、單反取景窗中的景象,以及最終顯示屏中的景象達成了一致或者部分一致,至少目前我們還很難達到自然界的解析度。經歷多個世紀的努力人類終於留住了大自然,乃至整個宇宙。
上面每一環節都存在著最小組成單元,我們要講的畫素Pixel特指上圖D、E兩個最後環節,今後考慮的僅僅是“數字影象”的後處理,在這之前(影象的採集、影象的儲存)的環節不在該系列博文的涵蓋範圍內。之所以在這裡討論A、B、C三個環節的內容是為了能夠找到我們認為Pixel是一個個小方塊Square的根源,從而找到Pixel的“形狀”。文章《A Pixel Is Not A Little Square》中指出Pixel真實應該是“點取樣(point sampling)”,這裡的點嚴格意義上說是數學概念中的點(無限的小,沒有大小,沒有體積)。
A pixel is a point sample. It exists only at a point.This position can actually spawn off a whole different answer. Instead of focusing on why each pixel is a square (or not), it can focus on why we tend to organize these point-samplings into rectangular grids. It actually wasn’t always that way!
正如David Postill所言,畫素Pixel是點取樣,僅僅存在於某一個點,而這些點實際上是可以衍生出任何形狀出來。之所以大多數人印象中認為畫素Pixel是一個個小方格Square,其實是因為資訊化時代長此以往各種電子裝置都是將點取樣按照橫平豎直的網格(grid)來排列的,例如上圖B中的感光版、D中的積體電路儲存陣列、E中的液晶顯示晶格。
最早最早的膠片成像,依賴的是“銀鹽顆粒”(第二章開篇《DICOM世界觀·第二章 數字(D)、成像(I)與通訊(Co)》有介紹),而膠片中的“銀鹽顆粒”排列是雜亂無章的,他的成像依賴的是銀鹽自身對光照後發生的化學反應,如果對比同一場景的膠片影像和現如今的數字影像會感覺出膠片成像有很重的顆粒感,所以膠片時代還沒有形成畫素Pixel是小方格Square的認知。
隨後人類進入了TV時代,即最早的陰極射線管(CRT)大背頭時代。這恐怕是很多70末、80初童年中最深刻印象之一了。那是一個電子訊號飛速發展的時代,相較於膠片時代(因為膠片底片是天然的二維平面,這符合人類視覺成像),我們需要把影象的二維資訊儲存於一維的電訊號中,因為電訊號只能隨著時間一個維度來改變電流強弱或電壓高低。基於這種基礎,二維影象被編排成了一條一條的線(line by line),此刻影象在垂直維度上已經變成了離散的,只有每條線內部的模擬訊號依然被認為是連續的。
隨後我們來到了PC資訊化時代,相較於CRT成像,計算機內部儲存的都是離散的數字訊號,原本line by line的成像方式有需要進一步改進。類似於從膠片跨度到CRT時代,我們把影象在垂直方向拆分成了一條條線,PC時代在此基礎上又將每條線內部繼續拆分成了一個個小塊——這就是我們所說的畫素Pixel。至此二維的影象資料就在垂直方向和水平方向都進行了拆分,變成了網格Grid,並一直沿用至今。從此以後的改進都鮮有再涉及到對網格Grid的改進,頂多牽涉到如何來切割網格,例如每個網格是正方形Square還是長方形Rectangular。
之所以選擇grid,是因為它橫平豎直,可以直接與人類的知識儲備對應起來,例如矩陣。其實一直以來都有人在嘗試用其他的模型(not grid)來完成成像,例如下面圖中的種種嘗試,希望你不要感覺很突兀,因為他們也能實現我們現在grid的同樣效果。
對於Square的選擇,是當時最直觀最簡單的決策,但也是最愚蠢的,很多東西尤其是標準一旦制定會對後續的發展起到很大的影響,現如今我們如果更換Square這種標準,隨著而來的會是各類成像裝置、各類顯示裝置,甚至各類儲存裝置的改進,這可是一項浩大的工程,或許已經超出了我們的承受能力,又或許未來我們會迎來non-square時代,誰又知道呢。看看square的發明者Russell Kirsch的抱怨吧^_^,
“Squares was the logical thing to do,” Kirsch says. “Of course, the logical thing was not the only possibility … but we used squares. It was something very foolish that everyone in the world has been suffering from ever since.”
雖然選擇看似草率,但作者確沒有失去信心,依然在為Square奮鬥,這一點值得我們敬佩。
“Finally,” he says, “at my advanced age of 81, I decided that instead of just complaining about what I did, I ought to do something about it.”
1.2.解析度(Resolution)、DPI&PPI
(1) 解析度Resolution
區別於文章《A Pixel Is Not A Little Square》用夏農取樣定理來解釋畫素Pixel不是一個個小方格Square,我們通過研究數字化影象技術的發展來解釋為何我們會形成“Pixel is square”的認知。接下來我們需要引入網格Grid概念模型中兩個很重要的概念。
這裡的解析度依然僅特指數字影象的解析度(digital image resolution)。所謂解析度即分辨能力,用於衡量相鄰的兩條線在彼此靠近過程中依然能夠識別出彼此的臨界點,這裡的距離指的是真實測量的物理距離,例如毫米(mm)、英寸(inch)。在攝像機鏡頭或者膠片中都會用線對每毫米(LP/mm)來表示解析度,例如5LP/mm的鏡頭含義是指黑白相間的5對線均勻分佈在1mm的物理距離中依然能夠被鏡頭所識別。
對於解析度Resolution,你也可以簡單的理解為辨別微小的能力,辨別最小細節、最小單元的能力。在物理空間固定的情況下,按照上文我們定義的網格Grid模型,畫素Pixel數量越多也就意味著解析度越高。但畫素解析度等同於畫素數要有一個前提條件那就是同樣的物理空間。
The term resolution is often considered equivalent to pixel count in digital imaging, though international standards in the digital camera field specify it should instead be called “Number of Total Pixels” in relation to image sensors, and as “Number of Recorded Pixels” for what is fully captured.
如下圖所示,同樣的面積內隨著畫素點越來越多,要表達的資訊就會越來越清晰,這也就是我們日常追求所謂高解析度的原因之一了。
隨著技術的發展,解析度也越來越高,例如現在電影院的IMAX巨幕。
(2) DPI:Dots per Inch
DPI,全稱Dots per Inch,即每英寸多少個點。這裡的點 可以指半調印刷的墨點,可以指噴墨列印的墨點,可以指掃描器的取樣點,可以指數字影象的最小單位(即 pixel),可以指螢幕的物理畫素,可以指作業系統的抽象畫素,在不同的語境下可以指不同的概念(摘自知乎:DPI 和 PPI 的區別是什麼?)。這裡的概念解釋是沒有問題的,但是DPI通常應用在印刷領域,在數字顯示領域通常會用我們下面要介紹的PPI。DPI與PPI之間是有一個對應關係。
(3) PPI:Pixel per Inch
PPI, 全稱Pixel per Inch,即每英寸多少個畫素。按照上面我們介紹的解析度概念,英寸表示的就是物理空間,畫素類似於解析度中的線對LP。這個概念是針對顯示器設計而言的(可參考畫素Pixel這一節開頭我們附圖中的E部分)。顯而易見,依靠現在作業系統的抽象以及圖形處理單元(GPU)的支援,我們可以更改顯示器的PPI,但卻不會改變我們顯示屏的物理尺寸,要想改變物理尺寸只能靠money了^_^。所以PPI跟物理尺寸沒有直接對應關係,不同大的物理尺寸可以設定成為同樣的PPI,如下圖所示:
所以PPI跟物體的真實大小沒有關係,PPI只記錄用多少個畫素Pixel來組成要顯示的物體,但所顯示的大小跟依賴的顯示裝置中每個pixel的真實大小有關。例如同樣的PPI的數字影象在iPhone手機和廣告牌中顯示的真實尺寸會相差數萬倍。
如此一來,如果想將顯示屏中的影象打印出來,該如何控制打印出後圖像的真實尺寸呢?這就會用到我們提到的DPI和PPI兩個概念。PPI的概念提出雖然只跟顯示裝置相關,但電腦顯示屏的真實尺寸可以用英寸(Inch)丈量的。在計算機中建立影象的時候我們可以設定PPI和DPI,PPI表示這個影象用多少個點來代替卻並不關心影象的真實大小,DPI表示該影象在“硬輸出”(諸如列印)時每個畫素點具體對應到真實世界的尺寸——其實可以簡單的理解為印表機的解析度。
兩者之間的換算關係如下,
例如如果一個寬有3000畫素,高有2400畫素的影象,設定DPI=300時打印出來的實際大小為:寬=3000/300=10英寸,高=2400/300=8英寸。在現在很多設計軟體(如Photoshop)中都會有一個預設的72 DPI,這個預設數字還有一段歷史:
有了電子顯示裝置後,人們一直期待找到一種能夠將畫素與真實世界的物理尺寸對應的方式。直到最早的Mac的9英寸顯示屏(512*342 Pixels)出現時,螢幕中72個畫素如果用尺子直接在螢幕上測量的話,其對應的實際物理尺寸恰好是1英寸,此刻意味著顯示屏中顯示的物體與其真實尺寸相同大小。也就是說此刻PPI=DPI,(備註:這個可以叫做完美畫素Perfect Pixel,即An image where the number of pixels is the same as in the image source and where the pixels are perfectly aligned to the pixels in the source is said to be pixel perfect)。雖然72 DPI沿用至現在,但需要注意的是現如今72已不一定代表列印物體與顯示物體同尺寸了。
2. Pixel Operation
瞭解了畫素的基礎概念後,我們接著介紹一下畫素的兩種常規操作,調整尺寸Resize與重取樣Resample。
2.1.Resize:調整尺寸
Resize,調整尺寸比較好理解。即調整每個Pixel的大小(注意這裡是抽象的顯示中的畫素Pixel大小,而不是隻改變顯示器中真實畫素Pixel的尺寸,顯示器自身的解析度是受液晶晶格大小來決定的)。如下圖所示:
由此可以看出Resize並未改變影象的畫素總數量,這種Resize如何來實現的呢?預設情況下你用滑鼠滾輪放大一張畫素數固定的影象時,作業系統會利用抽象層(例如Windows下的Direct X技術)來將影象中的畫素Pixel與當前顯示屏設定的解析度PPI中的畫素Pixel建立一個對映關係。上圖中的過程可能是這樣子的:隨著每個畫素Pixel的尺寸放大,作業系統會用4個螢幕畫素Pixels、9個螢幕畫素Pixels、16個螢幕畫素Pixels來表示影象中的每一個畫素Pixel。【備註】:這裡會有一些插值操作,即用多於原始畫素個數的畫素來表示同一個畫素時多出來的畫素的值該如何選取的問題,方法由有很多,諸如最鄰近插值、線性插值、雙線性插值、B樣條插值等等。
2.2.Resample:重取樣
Resample,重取樣,即改變影象的畫素數量,包括增加或者減少兩種情況。同上同樣的影象放大,重取樣模式下會通過增加原始影象的畫素數量來實現,此刻意味著每個畫素的大小是不變的(這裡暫時要求螢幕的解析度PPI不改變)。如下圖所示,
一談到取樣(sample),就繞不開夏農取樣定理。如上文所述論文《A Pixel Is Not A Little Square》就是從這個方向去解釋畫素不應該是一個個小方格Square的。關於夏農取樣定理我就不贅述了,概念比較深奧,乃至於畢業近十載我都依然沒有十足的把握可以用通俗的語言給大家介紹清楚,後續有機會再給大家科普。