專利名稱:使用線光值和其它圖像處理改進的圖像處理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于處理圖像信息的策略,尤其涉及用于使用視頻處理流水線來處理 視頻圖像信息的策略。
背景技術(shù):
視頻處理技術(shù)中的示例件問題通過跟蹤視頻處理技術(shù)多年來的進展可最好地理解當今使用的視頻處理技術(shù)。在 進展的各個階段添加了各種特征以解決當時行業(yè)所面臨的問題。為了維持兼容性和一致 性,后來的技術(shù)可保留這些特征中的某一些,即使這些特征被設(shè)計來解決的問題自此已經(jīng) 消失。結(jié)果,當前的技術(shù)可被視為反映了在不同時期行業(yè)所面臨的一連串之前的問題這一 基于歷史的特征的凝結(jié),,并在標準工作組、改變基于技術(shù)的約束和機會等之中折衷。視頻處理技術(shù)的上述本質(zhì)的一個結(jié)果是,本領(lǐng)域中的技術(shù)人員開發(fā)了關(guān)于視頻處 理技術(shù)的某些方面的確立的思維傾向。存在關(guān)于如何解釋某些視頻信息的固定的觀念以及 關(guān)于如何“正確”處理這樣的視頻信息的固定的觀念。如本發(fā)明的發(fā)明人所理解的,這些不 變的觀念中的眾多不是良好創(chuàng)立的,需要被重新考慮。固定觀念之中主要的是視頻信息應(yīng)一般以它被從廣播源、存儲介質(zhì)(例如,DVD 盤)或其它源中的任何一種接收的格式處理。然而,眾多視頻標準在設(shè)計時沒有預(yù)期到將 在顯示之前處理視頻信息。例如,常規(guī)的電視不適應(yīng)復雜的處理功能;這些設(shè)備僅接收和顯 示視頻信息。因而,視頻信息被接收的格式可能不能容易地適應(yīng)對這樣的信息的有效處理。結(jié)果,將標準處理算法直接應(yīng)用于視頻信息的眾多所接受的形式產(chǎn)生各種偽影 (artifact) 0本領(lǐng)域的技術(shù)人員在某些情況中注意到了這些偽影。然而,這些從業(yè)者不是 對采用的技術(shù)的基本前提質(zhì)疑,而是通常借助于本地補丁來補救問題。這些解決方案可在 某些應(yīng)用專用的情形中掩飾問題,但不能一般性地解決問題。例如,視頻信息通常由視頻處理流水線以非線性、隔行、色度二次取樣并以亮度相 關(guān)的色空間的某種變型表示的形式接收(例如,Y' U' V'信息)。(術(shù)語“非線性”指的 是,在傳入的信號與從該信號產(chǎn)生的所得的輸出亮度之間存在非線性關(guān)系;前述語句中的其它術(shù)語將在以下完全說明。)從業(yè)者可嘗試對該信息應(yīng)用各種線性型處理算法以便以 指定的方式修改它,諸如通過調(diào)整視頻信息的大小、將視頻信息與其它信息組合(例如,合 成)等。如本發(fā)明的發(fā)明人所理解的,當處理這種本質(zhì)的非線性視頻信息時,這些算法中的 許多不提供最優(yōu)甚至正確的結(jié)果。僅以隔行的色度二次取樣4:2:2或4:2:0信息(將在以 下定義)工作復合了這些不良結(jié)果。例如,以4:2:2或4:2:0處理信息可導致誤差通過視 頻處理流水線的不同階段傳播。所處理的結(jié)果中的缺陷顯現(xiàn)為各種偽影,對肉眼而言,它們可能是明顯或是不明 顯的。本領(lǐng)域的技術(shù)人員同樣也注意到了這些不良結(jié)果,但沒有識別原因。在某些情況中, 這可能是由于從業(yè)者不能完全理解眾多視頻編碼標準的復雜本質(zhì)。在其它情況中,從業(yè)者 可能沒有意識到他們正使用線性算法來處理非線性信息;的確,在某些情況中,從業(yè)者可能 不正確地相信他們正在處理線性信息。而且,視頻處理技術(shù)的一般焦點被瞄準于圖像信息 的產(chǎn)生,而不必是這一信息的中間處理和校正。將線性型算法應(yīng)用于非線性信息僅是視頻處理技術(shù)中上述確立的思維傾向的一 個示例。如將在以下描述的,不產(chǎn)生最優(yōu)結(jié)果的眾多其它技術(shù)變得固定,諸如在抖動的情況 中。例如,從業(yè)者可嘗試通過向輸入的圖像信息添加少量隨機噪聲然后量化所得的含噪聲 圖像來補救由某些抖動量化算法引起的偽影。這些技術(shù)通過然后計算含噪聲圖像和經(jīng)量化 的結(jié)果之差來估計量化誤差。這可能具有治療抖動偽影的效果,但以使輸出圖像與添加到 原始圖像信息的隨機噪聲量成正比地增加噪聲為代價。存在視頻處理技術(shù)中由于習慣和熟悉而繼續(xù)應(yīng)用不變想法但沒有認識到它們重 要但微小的缺點的眾多其它情況。此處所述的改進的一般主題涉及對這些固定想法的重新 考慮,以及對替換解決方案的設(shè)計。視頻處理領(lǐng)域含有大量術(shù)語。因此,作為正文前的圖文,將在以下陳述對視頻處理 領(lǐng)域中的某些主題的簡介以幫助讀者。例如,將在以下定義以上順帶使用的若干術(shù)語(線 性、隔行、亮度、色度二次取樣等)。一般為術(shù)語學起見,將在本文中通篇使用術(shù)語“圖像信 息”來表示可被呈現(xiàn)為包括但不限于運動視頻信息的任何種類的視覺輸出的廣泛的一類信 肩、ο背景概念 色空間及相關(guān)考慮因素色彩可使用三個分量指定。依賴于使用不同的色彩分量的彩色內(nèi)容的傳輸?shù)膱D像 流被稱為分量視頻。一種常見的規(guī)范使用紅、綠和藍(RGB)分量來定義色彩。更正式地, RGB分量描述對給定光譜創(chuàng)建在感覺上等價的色彩的基準燈的比例強度。一般,RGB色空間 可由與其色原和其白點相關(guān)聯(lián)的色度值來指定。白點指的是與基準白色相關(guān)聯(lián)的色度。再現(xiàn)彩色圖像的電子裝置通過提供這三種類型的光源補充了人類視覺的三色本 質(zhì)。這三種類型的光源產(chǎn)生被感知為對人類觀察者而言的不同顏色的不同光譜響應(yīng)。例如, 陰極射線管(CRT)提供紅、綠和藍磷光體以創(chuàng)建不同的顏色,從而補充上述的RGB色空間的 某種變型。其它技術(shù)不使用磷光體,但可使用發(fā)出至少三種類型的光的光源來再現(xiàn)色彩。然而,RGB編碼模型不是對圖像信息傳輸?shù)母咝нx擇,且不能良好地遵循某些較老 的標準。從而,圖像信息一般被發(fā)送到使用除RGB以外的某些編碼模型的目標裝置。當接 收之后,圖像信息可由顯示裝置內(nèi)部變換成RGB相關(guān)色空間以便呈現(xiàn)。如將在以下在標題
5“伽馬考慮因素”中描述的,每一 R、G或B分量數(shù)據(jù)可按照其預(yù)伽馬校正的形式來表示,被稱 為R'、G'和B'值。(一般,按照慣例,在本發(fā)明中,加“'”表示非線性信息。)在此方面的一種常見策略是通過參考亮度相關(guān)分量(Y)和色度相關(guān)分量來定義 色彩。亮度一般指的是所感知的光強度(明亮度)。亮度可按照預(yù)伽馬校正的形式(按 以下在“伽馬考慮因素”中描述的方式)表示以產(chǎn)生其非線性的對應(yīng)物,稱之為“亮度 (Iuma) ” (Y')。色度分量定義圖像信息相對于亮度的彩色內(nèi)容。例如,在數(shù)字領(lǐng)域,符號 “Cb”對應(yīng)于差B' -Y'的η位整數(shù)成比例的表示(一般為范圍從-127到128的8位值),而 符號“Gr”對應(yīng)于差R' -Y'的η位整數(shù)成比例的表示。符號“Pb”指的是Cb的模擬對應(yīng)物, 符號“Pr”指的是Cr的模擬對應(yīng)物。符號Pb和Pr也可指的是具有額定范圍[-0. 5. . . 0. 5] 的歸一化形式的Cb或Cr。由CbCr和PbPr定義的分量圖像信息可在形式上加“‘”(例如, Cb' Cr'和Pb' Pr'),因為它們表示非線性信息。然而,由于Pb、Pr、Cb或Cr總是指的 是非線性數(shù)據(jù),為方便和習慣起見,總是去掉“‘”符號(例如,使用符號Y' PbPr來代替 Y' Pb' Pr')。彩色內(nèi)容也可作為合成視頻(而非上述分量視頻)傳輸。合成信號在一個信號內(nèi) 組合亮度和色度信息。例如,在編碼系統(tǒng)Y' UV中,U代表B-Y的成比例的形式,V代表R-Y 的成比例的形式。這些亮度和色度分量然后被處理來提供單個信號。編碼系統(tǒng)Y' IQ定 義通過以指定方式變換U和V分量而形成的另一合成編碼系統(tǒng)。行業(yè)歷史上促進使用Y相 關(guān)色空間(Y' CbCr, Y' PbPr、YUV、YIQ等)的一個原因在于,因為在這些色空間中,相比 以RGB色空間表示的圖像信息,能更容易執(zhí)行減少的彩色圖像信息。這些色空間也可與為 黑白圖像信息開發(fā)的較老的版本后向兼容。術(shù)語“亮度相關(guān)信息”一般指的是具有明亮度 相關(guān)分量和色度相關(guān)分量的任何色空間,并包括至少所有上述色空間。一般可能使用一個或多個矩陣仿射變換將彩色內(nèi)容從一個色空間變換到另一色 空間。更正式地,條件配色(metamerism)的特性使得按照另一組匹配函數(shù)來表達一組色空 間系數(shù)成為可能(其中“條件等色(metamer)”指的是映射到同一組色空間系數(shù)的兩個光 譜,從而顯現(xiàn)為感覺上相同——即,看上去像同一顏色)。·伽馬考慮因素陰極射線管(CRT)不具有線性響應(yīng)傳遞函數(shù)。換言之,施加于CRT的電壓與由CRT 產(chǎn)生的所得的亮度之間的關(guān)系不定義一線性函數(shù)。更具體地,CRT的預(yù)測的理論響應(yīng)具有與 5/2冪定律成比例的響應(yīng);即,對給定的輸入電壓“V”,CRT的所得的亮度“L”可被計算為L =V2 5。該傳遞函數(shù)此處也被稱為“伽馬響應(yīng)函數(shù)”,且電壓信號的指數(shù)被稱為“伽馬”。另一方面,當圖像信息由照相機捕捉或由3-D呈現(xiàn)系統(tǒng)生成時,圖像信息以線性 RGB色空間表示,這意味著在傳入的信號和輸出的明亮度之間存在線性關(guān)系。為了解決照相 機的線性度與顯示器的非線性度之間的不相稱,照相機常規(guī)上通過應(yīng)用伽馬的逆來預(yù)先補 償它們產(chǎn)生的信號。換言之,照相機的傳遞函數(shù)(有時稱為編碼傳遞函數(shù))大致是CRT亮 度響應(yīng)的反函數(shù)。應(yīng)用編碼傳遞函數(shù)(即,逆伽馬)的結(jié)果是產(chǎn)生形式上非線性的“經(jīng)伽馬 校正的”圖像信息。當非線性信號通過顯示設(shè)備時,產(chǎn)生接近線性的亮度。再一次,根據(jù)上 述符號,非線性(即預(yù)補償)的圖像信息通過對其分量加“‘”來表示,例如R' G' B'或 Y' CbCr (其中隱藏了 Cr和Cr分量上的')。因此,以圖像信息的亮度_色度非線性(補償?shù)?形式存儲和傳輸圖像信息變得
6常見并且標準。為了維持兼容性,產(chǎn)生要在CRT上顯示的信號的任何源也應(yīng)首先對該信號 應(yīng)用反函數(shù)。作為特殊考慮因素,使用傳遞函數(shù)的圖像信息的編碼通常對函數(shù)的低電壓部分應(yīng) 用特殊的逼近函數(shù)。即,編碼技術(shù)通常在這部分中提供線性段,以減少噪聲在成像傳感器中 的效應(yīng)。該段被稱為“線性尾部”,它具有定義的“坡角斜率(toe slope)”。該段改進了在 實際CRT上呈現(xiàn)的圖像信息的質(zhì)量,因為這些設(shè)備由于其物理構(gòu)造而具有接近0的線性亮 度-電壓響應(yīng)。 相對于亮度信息的色度信息的采樣和對準人類視覺對光強度上的改變比對光色度分量上的改變更敏感。編碼系統(tǒng)利用這一 事實來減少相對于亮度信息(Y')量所編碼的色度(CbCr)信息量。該技術(shù)被稱為色度二 次取樣。一般被表示為L:M:N的數(shù)字符號可用于表示這種采樣策略,其中“L”表示亮度分 量(Y')的采樣基準因子,而“M”和“N”指的是相對于亮度采樣(Y')的色度采樣(例 如,分別為Cb和Cr)。例如,符號4:4:4可表示其中對每一亮度樣本存在一個色度樣本的 Y' CbCr數(shù)據(jù)。符號4:2:2可表示其中對每兩個亮度樣本(水平的)存在一個色度樣本的 Y' CbCr數(shù)據(jù)。符號4:2:0可表示其中對每一 2X2的亮度樣本群集存在一個色度樣本的 Y' CbCr數(shù)據(jù)。符號4:1:1可表示其中對每四個亮度樣本(水平的)存在一個色度樣本的 Y' CbCr 數(shù)據(jù)。在其中編碼策略提供比色度信息更多的亮度信息的這些環(huán)境中,解碼器可通過基 于所提供的色度信息執(zhí)行內(nèi)插來重構(gòu)“遺失的”色度信息。更一般地,欠采樣指的是,產(chǎn)生 比一組初始圖像樣本更少的圖像樣本的任何技術(shù)。過采樣指的是,產(chǎn)生比該組初始圖像樣 本更多的圖像樣本的任何技術(shù)。因此,上述內(nèi)插定義了一種過采樣。編碼策略也指定色度樣本空間上與相應(yīng)的亮度樣本對準的方式。編碼策略在此方 面有所不同。某些使色度樣本與亮度樣本對準,諸如色度樣本被直接置于亮度樣本“上方”。 這被稱為共同定點(cositing)。其它策略將色度樣本置于亮度樣本的二維陣列內(nèi)的孔隙空 間中?!ち炕紤]因素量化指的是離散的數(shù)值被賦值給色彩分量(或黑白信息)的信號幅度的方法。在 數(shù)字領(lǐng)域中,數(shù)值在指定數(shù)量的階中橫跨指定范圍的色空間值(色域)。例如,通常使用255 階來描述每一分量值,使得每一分量可采用0到255中的一個值。通常使用8位來表示每 一色彩值。從高精度數(shù)字轉(zhuǎn)換到低精度數(shù)字有時可能產(chǎn)生各種偽影。設(shè)計了各種誤差分散算 法來解決這個問題,諸如Floyd-Steinberg算法。誤差分散算法可將由量化的舍入效應(yīng)產(chǎn) 生的誤差分布到鄰近的像素位置。關(guān)于Floyd-Steinberg算法的其它背景信息將在以下詳 細描述的主要部分內(nèi)提供?!じ粜信c逐行表示考慮因素原先,電視僅以從上到下的逐行掃描(swe印)方式顯示黑白圖像信息。當今,常規(guī) 的電視信號以隔行的方式掃描。在隔行掃描中,捕捉視頻幀的第一場,之后立刻捕捉該視頻 幀的第二場(例如,1/50或1/60秒之后)。第二場相對于第一場有少量的垂直偏移,使得 第二場捕捉第一場的掃描行之間的孔隙空間中的信息。通過以快速連續(xù)的方式顯示第一和第二場來呈現(xiàn)視頻信息,使得視頻信息一般被人類觀眾感知為單個連續(xù)的信息流。然而,計算機監(jiān)視器和其它呈現(xiàn)設(shè)備以逐行而非隔行的方式顯示圖像信息。因此, 為了使裝置在計算機監(jiān)視器上呈現(xiàn)隔行的信息,它必須通過對相對場內(nèi)插數(shù)據(jù)來以隔行的 場速率顯示逐行的幀(被稱為“去隔行(de-interlacing)”的處理)。例如,為顯示隔行的 場,它必須通過檢查另一側(cè)的場來對行之間的空間位置內(nèi)插“遺失的”數(shù)據(jù)。術(shù)語“逐行格 式” 一般指的是任何非隔行的圖像格式。圖像信息(例如,來自視頻照相機)一般以隔行形式存儲,例如第一場與第二場 (語義上)分開存儲。如果圖像信息僅被顯示在隔行的TV顯示器上,則其V UV隔行信息 可被直接傳給CRT。CRT在內(nèi)部將Y' UV信息轉(zhuǎn)換成R' G' B'信息,并使用該信號來驅(qū) 動輸出槍。隔行是有利的,因為它使圖像信息的有效垂直分辨率翻倍。然而,隔行也引入偽 影。這是因為對象能以60hz運動,但在隔行呈現(xiàn)中,每30hz僅顯示一半信息。由這種現(xiàn)象 產(chǎn)生的結(jié)果偽影有時被稱為“羽化(feathering)”。偽影尤其在高速運動視頻的顯示中顯 現(xiàn),其中對象顯現(xiàn)為被分成偶數(shù)和奇數(shù)行。關(guān)于以上著重課題中每一個的其它信息可在多個介紹性文獻中找到,諸如 Charles Poyton 被廣泛關(guān)注的 Digital Video and HDTV(數(shù)字視頻和 HDTV) (2003 年 Morgan Kaufmann 出版社)。發(fā)明概述描述了用于以線性形式處理圖像信息以減少偽影數(shù)量(相比以非線性形式處理 數(shù)據(jù))的策略。示例性的各種處理操作可包括,縮放、合成、阿爾法混合、邊緣檢測等。在一 個更具體的實現(xiàn)中,描述了用于處理a)線性;b)位于RGB色空間中;c)高精度(例如,以浮 點表示提供);d)逐行;以及e)全通道的圖像信息的策略。其它改進提供用于a)在偽線 性空間中處理圖像信息以改進處理速度;b)實現(xiàn)改進的誤差分散技術(shù);c)動態(tài)計算和應(yīng)用 濾波器內(nèi)核;d)以最優(yōu)方式產(chǎn)生流水線代碼;以及e)使用新穎的像素陰影著色器技術(shù)來實 現(xiàn)各種處理任務(wù)。附圖簡述
圖1示出了涉及以線性格式處理圖像信息的示例性圖像處理流水線。圖2示出了用于使用圖1的圖像處理流水線來以線性格式處理圖像信息的示例性 過程。圖3示出了 4:2:0圖像信息的樣本作為討論處理這種信息而不招致偽影時的某些 難題的載體。圖4示出了適應(yīng)以偽線性形式處理圖像信息的圖像處理流水線的示例性部分。圖5示出了用于使用圖4中所示的圖像處理流水線部分以偽線性形式處理圖像信 息的示例性過程。圖6和7 —起解釋了執(zhí)行抖動和誤差分散的已知方法。圖8示出了用于提供抖動和誤差分散的產(chǎn)生優(yōu)于關(guān)于圖6和7描述的模型的結(jié)果 的示例性系統(tǒng)。圖9示出了用于使用圖8的系統(tǒng)來執(zhí)行抖動和誤差分散的示例性過程。圖10示出了用于當執(zhí)行縮放時提供濾波的示例性系統(tǒng),它涉及濾波器內(nèi)核的動
8態(tài)計算。圖11示出了用于使用圖10的系統(tǒng)來執(zhí)行濾波的示例性過程。圖12示出了可結(jié)合此處所述的任何改進的示例性圖像處理流水線。圖13示出了例如通過去除特定圖像處理應(yīng)用所不需要的代碼模塊來產(chǎn)生用于實 現(xiàn)圖12的圖像處理流水線的有效代碼的示例性系統(tǒng)。圖14示出了用于應(yīng)用圖13中所示的代碼優(yōu)化系統(tǒng)的示例性過程。圖15示出了用于通過使用包含像素陰影著色器功能的圖形處理單元(GPU)來實 現(xiàn)圖12的圖像處理流水線的示例性系統(tǒng)。圖16示出了已知的像素陰影著色器設(shè)計。圖17示出了涉及在典型的圖形應(yīng)用環(huán)境中將紋理信息應(yīng)用于多邊形的一般原理。圖18示出了使用像素著色器的4抽頭濾波器的示例性實現(xiàn)。圖19示出了解釋圖19的濾波器的操作的示例性過程。圖20示出了使用像素陰影著色器的圖1的圖像處理流水線的各方面的更一般的 實現(xiàn)。圖21示出了用于實現(xiàn)在前述附圖中所示的各個特征的各方面的示例性計算機環(huán)
^Mi ο在全部公開內(nèi)容和附圖中使用相同的編號來引用相同的組件和特征。系列100編 號指的是最初在圖1中找到的特征,系列200編號指的是最初在圖2中找到的特征,系列 300編號指的是最初在圖3中找到的特征,依此類推。較佳實施例的詳細描述以下描述描繪了用于改進圖像處理流水線的各個策略。這些策略提出了基于對本 領(lǐng)域中的確立概念的重新考慮來處理圖像信息的新方式。第一類改進(在節(jié)A中描述)可 抽象地應(yīng)用于任何圖像處理流水線。第二類改進(在節(jié)B中描述)可更具體地應(yīng)用于圖像 處理流水線的某些技術(shù)專用或?qū)崿F(xiàn)專用的應(yīng)用。根據(jù)一種示例性策略,由圖像處理流水線接收的圖像信息被轉(zhuǎn)換成線性形式,并 然后以該形式處理。例如,在一個示例性實現(xiàn)中,所接收到的亮度相關(guān)圖像信息(例如, Y' CbCr)被轉(zhuǎn)換成線性RGB形式,并以該形式處理。示例性的處理任務(wù)可包括去隔行、調(diào) 整大小(縮放)、合成、阿爾法混合、邊緣檢測、銳化等。在線性空間(相對于非線性空間) 中處理圖像信息具有顯著的優(yōu)點,因為它一般產(chǎn)生具有減少的偽影的輸出結(jié)果。根據(jù)另一示例性策略,圖像信息被轉(zhuǎn)換成全通道(4:4:4)和高精度格式,并以該 格式處理,隨后將信息量化為較低的精度。較高精度的信息能以浮點格式表示。處理全通 道和高精度的信息是有利的,因為它產(chǎn)生具有減少的偽影的輸出結(jié)果,且可減少當信息在 流水線中處理時色度分辨率的劣化。根據(jù)另一示例性策略,提供用于處理4:2:0的隔行圖像信息的特殊設(shè)備 (provision) 0這些特殊設(shè)備提供將過采樣操作與去隔行操作相集成的方式。這種策略出 于眾多原因而是有益的。例如,這種策略更好地確保了 4:2:0信息將被正確處理,例如不產(chǎn) 生所謂的“色度缺陷”處理偽影。根據(jù)另一示例性策略,可應(yīng)用特殊的傳遞函數(shù)以便將圖像信息轉(zhuǎn)換到偽線性空間
9而非理論上正確的線性空間。隨后使用線性型算法在此偽線性空間中對圖像信息執(zhí)行處理 (而不必修改這些算法以考慮到它們對非線性信號的應(yīng)用)。這種策略是有益的,因為它涉 及可使用可用的處理硬件來更快地執(zhí)行的算術(shù)運算。這種策略也消除了通過將糾錯機制結(jié) 合在這些算法內(nèi)來更改圖像處理算法的需求。糾錯機制的目的在于最小化使用線性算法來 處理非線性數(shù)據(jù)的負面影響。然而,這些誤差機制的設(shè)計和應(yīng)用通常變得比原始處理算法 更復雜。根據(jù)另一示例性策略,應(yīng)用了一種獨特的誤差分散算法。對原始圖像信息中的每 一像素,該算法量化由原始圖像、噪聲信息和誤差項定義的總和。這為該特定像素產(chǎn)生一量 化值。該算法然后通過計算該量化值與原始值之差來為將要處理的后一像素計算誤差項。 這種策略優(yōu)于本領(lǐng)域中的必須向原始圖像信息添加噪聲并量化該含噪聲的圖像信息的已 知策略;這些已知技術(shù)然后參考漢噪聲的圖像信息而非原始圖像信息來計算誤差項。因此, 不像此處公開的策略,已知的技術(shù)與對原始圖像信息添加的噪聲信息成比例地劣化了原始 圖像信息。作為另一種改進,此處所述的策略使用具有足夠長的重復周期和足夠的“類噪 聲”偽隨機特性的噪聲生成器,使得噪聲生成器本身不在目的圖像信息中產(chǎn)生偽影。根據(jù)另一策略,使用Catmull-Rom濾波器的變型來執(zhí)行縮放操作。該策略涉及計 算調(diào)整圖像信息大小所需要的濾波器內(nèi)核的數(shù)目以及每一內(nèi)核所需的抽頭的數(shù)目,然后預(yù) 先計算濾波器內(nèi)核。這些濾波器內(nèi)核然后被應(yīng)用于圖像信息。更具體地,內(nèi)核可被循環(huán)地 應(yīng)用于圖像信息的行和列。該策略出于眾多原因而是有利的。例如,對動態(tài)計算的濾波器 內(nèi)核的使用減少了在已知應(yīng)用中發(fā)現(xiàn)的某些偽影。濾波器內(nèi)核的預(yù)計算是有利的,因為它 加速了濾波器的實際應(yīng)用。對循環(huán)應(yīng)用的內(nèi)核的極小集的恰到好處的使用具有其它效率相 關(guān)的優(yōu)點。根據(jù)另一策略,描述了用于生成實現(xiàn)圖像處理流水線的代碼的功能。該功能接收 指定假定流水線要執(zhí)行何種操作的要求,然后選擇性地從代碼模塊庫中組裝代碼模塊以實 現(xiàn)這些功能。該功能不包括來自庫中的不被需要的模塊。該策略出于眾多原因而是有益的; 例如,它有助于產(chǎn)生更高效因此潛在地運行更快的代碼。最后,另一策略使用圖形處理單元(GPU)來實現(xiàn)圖像處理流水線的某些方面或圖 像處理流水線中的所有功能。特定實現(xiàn)應(yīng)用像素陰影著色器(GPU內(nèi)的數(shù)字信號處理器 (DSP))來執(zhí)行圖像濾波。在一種情況中,像素陰影著色器的一個或多個紋理單元可被分配 給濾波器內(nèi)核的權(quán)重(weight),且一個或多個其它紋理單元可被分配給同一輸入圖像信息 的不同增量移位形式(與內(nèi)核的抽頭相關(guān)聯(lián))。因為該策略由于像素陰影著色器的向量處 理能力潛在地比CPU實現(xiàn)提供更快的處理速度和更大的處理容量,因此該策略是有益的。這些策略的其它特征和附帶的益處將在本描述中描繪。對于術(shù)語學,術(shù)語“圖像信息”旨在包括可由用戶以任何可視形式消耗的任何類型 的信息。圖像信息可表示以任何格式表達的信息,諸如模擬格式、數(shù)字格式或數(shù)字和模擬格 式的組合。圖像信息可表示靜止圖像信息(例如,數(shù)字照片)和/或移動信息(例如,運動 視頻信息)。通過使用術(shù)語圖像信息還可構(gòu)想其它更多變化。術(shù)語“圖像處理流水線”指的是用于處理圖像信息的任何功能。流水線包括以串 行方式,即接連地對圖像信息進行操作的至少兩個功能組件。術(shù)語“線性化”指的是圖像信息從其非線性預(yù)補償形式到線性形式的轉(zhuǎn)換。術(shù)語
10“非線性化”指的是線性化的逆操作。術(shù)語“亮度相關(guān)圖像信息”指的是具有明亮度相關(guān)分量(例如,Y')和色度分量 的圖像信息。術(shù)語“亮度相關(guān)色空間”指的是用于形成亮度相關(guān)圖像信息的多個標準中的 任何一個(例如,Y' CbCr等)。一般,就所述主題的結(jié)構(gòu)方面而言,此處所述的任何功能可使用軟件、固件(例 如,固定的邏輯電路)、手動處理或這些實現(xiàn)的組合來實現(xiàn)。如此處所使用的,術(shù)語“模塊”、 “功能”和“邏輯” 一般表示軟件、固件或軟件和固件的組合。在軟件實現(xiàn)的情況中,術(shù)語模 塊、功能或邏輯表示當在一個或多個處理設(shè)備(例如,CPU)上執(zhí)行時執(zhí)行指定任務(wù)的程序 代碼。程序代碼可被存儲在一個或多個固定和/或可移動計算機可讀存儲器設(shè)備中。就本主題的過程方面而言,某些操作被描述為構(gòu)成以某一特定順序執(zhí)行的各個不 同步驟。這樣的實現(xiàn)是示例性而非限制性的。此處所述的某些步驟可被組到一起,并在單個 操作中執(zhí)行,且某些步驟可按照不同于本公開中所述的示例中所采用的順序的順序執(zhí)行。本公開包括以下內(nèi)容A.對視頻處理流水線的示例性一般改進Α. 1.在RGB (線性)色空間中處理圖像信息A.2.在流水線內(nèi)使用浮點全通道圖像信息A. 3.4:2:0圖像信息的特殊設(shè)備A.4.在偽線性空間中處理圖像信息A. 5.對誤差分散算法的改進A.6.濾波器內(nèi)核的動態(tài)計算 B.對視頻處理流水線的示例性實現(xiàn)相關(guān)改進B. 1.流水線處理代碼的優(yōu)化生成B. 2. GPU的一般使用以執(zhí)行圖像處理B. 3.像素陰影著色器的相關(guān)改進C.示例性計算機環(huán)境A.對視頻處理流水線的示例性一般改進Α. 1.在RGB(線性)餼空間中處理圖像信息圖1示出了用于處理圖像信息(例如,視頻信息)的示例性圖像處理流水線100。 作為概觀,最上面一行模塊從各個源(照相機、掃描儀、磁盤、存儲介質(zhì)、數(shù)字網(wǎng)絡(luò)等)中的 任何一個接收圖像信息,然后將該圖像信息轉(zhuǎn)換成用于處理的形式。附圖中間的較大模塊 表示這樣的處理,它產(chǎn)生經(jīng)處理的圖像信息。最底下一行模塊將經(jīng)處理的圖像信息轉(zhuǎn)換成 適于輸出至目的地(例如,電視機、計算機監(jiān)視器、存儲介質(zhì)、數(shù)字網(wǎng)絡(luò)等)的任何形式。存在對圖像處理流水線100的若干獨特而有利的方面,它們在本公開的單獨的小 節(jié)中標識。這些小節(jié)將關(guān)注以線性形式處理圖像信息。由在RGB色空間內(nèi)以逐行(去隔 行)的形式對圖像信息的其它處理得到其它改進。作為對比,本領(lǐng)域中的典型方法是執(zhí)行 對4:4:4或4:2:2的隔行Y' UV信息的處理。如本發(fā)明的發(fā)明人所理解的,在非線性色空 間處理圖像信息產(chǎn)生各種偽影。圖1的流水線100中所具體化的方法克服了這些問題。將依次描述圖1中所示的每一模塊。對于頂行模塊,去抖動(imdithering)模塊102將所接收的具有第一精度的Y' CbCr圖像信息轉(zhuǎn)換成具有第二精度的圖像信息,其中第二精度高于第一精度。模塊102 通過執(zhí)行去抖動型處理來執(zhí)行該任務(wù)。即,可使用抖動操作(未示出)來將饋送給流水線 100的輸入圖像信息量化為第一精度。模塊102有效地應(yīng)用了這些量化操作的逆操作來產(chǎn) 生第二較高精度。過采樣模塊104將具有第一數(shù)目的樣本的輸入圖像信息變換成具有第二數(shù)目的 樣本的輸出圖像信息,其中樣本的第二數(shù)目比樣本的第一數(shù)目大。在一個典型的應(yīng)用中,圖 像信息由流水線以其中亮度信息(Y')的樣本比色度信息(Cb或Cr)的樣本多的形式接 收;這是因為眼睛對亮度信息更敏感,使得可在不必忍受可察覺的劣化的情況下減少色度 信息相對于亮度信息的數(shù)量。過采樣模塊104 —般工作來增加色度樣本的數(shù)目,使得色度 樣本與亮度樣本同等。例如,過采樣模塊104可將4:2:0或4:2:2的Y' CbCr圖像信息轉(zhuǎn) 換成4:4:4的Y' PbPr信息。由模塊104執(zhí)行的過采樣操作通過內(nèi)插現(xiàn)有樣本來增加樣本 的數(shù)目(由此有效地執(zhí)行縮放操作)。這樣的內(nèi)插技術(shù)通常必須特別考慮不同的標準如何 相對于亮度信息安置色度信息以提供準確的結(jié)果。模塊106對4:4:4的V CbCr圖像信息應(yīng)用矩陣變換以將其變換成另一色空間, 即R' G' B'色空間。模塊108然后通過對非線性R' G' B'圖像信息應(yīng)用轉(zhuǎn)遞函數(shù)來將其變換成線性 形式。再次重復,與R' G' B'圖像信息相關(guān)聯(lián)的“‘”符號指示它是非線性形式的;沒有 "‘”號(例如,RGB) —般表示線性數(shù)據(jù)(除了如上所述當常規(guī)上理解信號指的是非線性信 息時去除“‘”號也是常見的以外)。圖1的模塊108下方圖1中所示的模型傳遞函數(shù)示出 了所采用的傳遞函數(shù)的大致形狀,這也是CRT (未示出)的固有傳遞函數(shù)的大致形狀。該模 型傳遞函數(shù)也指示,它可在其曲線接近V = 0部分采用線性尾部以考慮到在該“坡腳”區(qū)域 中適用的特殊考慮因素。模塊110可任選地對圖像信息執(zhí)行去隔行操作,以將其從隔行形式轉(zhuǎn)換成逐行形 式。當執(zhí)行該任務(wù)時,模塊110可使用(對特殊情況,例如4:2:0信息的)RGB圖像信息或 原始Y' CbCr圖像信息中的任何一個來指導。然而,去隔行操作應(yīng)較佳地在線性RGB空間 中執(zhí)行。這是因為去隔行實際上是一種形式的圖像處理(涉及例如現(xiàn)有樣本的內(nèi)插);從 而,在線性空間中執(zhí)行該處理將產(chǎn)生更準確的結(jié)果。模塊112可任選地變換線性RGB信息的色原以在另一色空間中表示該信息。該轉(zhuǎn) 換可包括對RGB信息應(yīng)用矩陣變換以改變其色原以便對應(yīng)于在視頻處理流水線中的下游 組件中執(zhí)行的處理所期望的任何原色。在一個示例中,模塊112可將各種不同類型的圖像 信息轉(zhuǎn)換到公共色空間,這便于在稍后的操作中將這些信息混合在一起。模塊114 一般表示對具有經(jīng)變換的色空間的圖像信息的任何類型的處理。此時, 在該特定示例中,對a)線性形式;b)位于RGB色空間中;c)4:4:4(全通道)形式;以及d) 逐行形式的圖像信息進行處理。盡管較佳是是處理在線性色空間中發(fā)生以減少偽影,但不 必為圖像處理流水線提供該列表中列舉的所有方面以提供好處。在任何情況中,模塊114可執(zhí)行任何類型的圖像信息處理?;旧希幚戆▓D像 信息的任何變換,例如輸出圖像=某一函數(shù)(輸入圖像),包括任何類型的圖像濾波操作。 這一處理操作的代表性且非限制性列表包括a)合成;b)阿爾法混合(例如,各種漸變和 疊化);c)邊緣檢測;d)銳化;e)調(diào)整大小(縮放至較大或較小的圖像大小);f)去隔行(如果之前未執(zhí)行)等。合成涉及將一種類型的圖像信息與另一類型的圖像信息混合。例 如,可采用模塊114將圖形(例如,文本信息)組合到從DVD盤中抓取的視頻圖像信息上。 阿爾法混合涉及基于阿爾法因子(它確定一種色彩混合到另一種色彩的程度)將色彩混合 到一起。例如,混合操作由以下公式管理最終色彩=源色彩*源混合因子+目的地色彩* 目的地混合因子。在此公式中,目的地像素色彩表示預(yù)先存在的場景中的像素的色彩,而源 像素色彩表示混合引擎打算添加到目的地像素的新像素色彩?;旌弦蜃訌?到1變化,并 用于控制源和目的地像素色彩在最終色彩值中起多大作用。再次重復,存在大量潛在的處 理應(yīng)用的僅代表性的示例。一般,眾多上述視頻處理應(yīng)用對源與目標圖像信息之間的轉(zhuǎn)換 應(yīng)用放射加權(quán)。在這些類型的應(yīng)用中,非線性加權(quán)的使用可引起圖像信息的總明亮度過快 下降。這僅是本發(fā)明的解決方案依靠其對線性圖像信息的處理可消除或減少的偽影的一個 示例。圖1中底行的模塊一般逆轉(zhuǎn)上述頂行中的操作。即,在模塊114中的處理之后,模 塊116可任選地將圖像信息轉(zhuǎn)換到另一色空間,諸如返回至RGB色空間。如果圖像信息需要 以隔行形式存儲或顯示,則模塊118應(yīng)用可任選的圖像信息的重新隔行化。模塊120應(yīng)用 傳遞函數(shù)以再次將RGB圖像信息變換成非線性形式(R' G' B')(如果適當)。模塊112 將R' G' B'圖像信息的色空間變回將其亮度分量(Y')與其色度分量(例如,PbPr)分 離的格式。模塊124可任選地對Y' PbPr圖像信息進行二次取樣以減少相對于亮度樣本 (Y')數(shù)目的色度樣本(PbPr)數(shù)目。即,該模塊124可將Y' PbPr 4:4:4圖像信息(其 中,對每個亮度樣本存在一個色度樣本)變換成Y' PbPr 4:2:2或4:2:0圖像信息(其中, 存在相對于亮度樣本較少的色度樣本)。最后,模塊126對圖像信息應(yīng)用量化操作。量化操 作具有將圖像信息轉(zhuǎn)換至較低精度以便于經(jīng)由網(wǎng)絡(luò)的有效傳輸、存儲、顯示等的效果。量化 操作可與抖動操作耦合以便減少否則可能由量化所產(chǎn)生的舍入誤差引起的偽影。如將在以 下的小節(jié)中更詳細解釋的,抖動操作具有當處理圖像信息時將這些誤差分布到鄰近像素的 效果,從而減輕偽影的效應(yīng)。圖2示出了以流程圖形式概括上述操作的過程200。步驟202涉及將輸入圖像信息 轉(zhuǎn)換到線性色空間,諸如RGB。該信息也較佳地被去隔行成逐行形式,并過采樣至4 4 4 (全 通道)格式。步驟202因此對應(yīng)于圖1中的頂行模塊。步驟204需要以圖像信息的線性形式對其執(zhí)行任何類型的處理任務(wù)(及組合)。步驟206表示將經(jīng)處理的線性圖像信息轉(zhuǎn)換成特定應(yīng)用所要求的任何輸出格式。 這可涉及將經(jīng)處理的線性圖像信息轉(zhuǎn)換到非線性色空間、對其重新隔行化、欠采樣、量化 等。步驟206對應(yīng)于圖1中底行的模塊。A.2.在流水線內(nèi)使用浮點全通道圖像信息返回圖1,流水線100也提供優(yōu)于已知策略的結(jié)果,因為它使用具有(b)相對較高 精度以及(c)可任選地線性語義的(a)全通道圖像信息(即,4:4:4)。更具體地,如上所述, 流水線100將它所接收的圖像信息轉(zhuǎn)換成比其原始形式更高的精度。流水線100也通過增 加信息中相對于亮度樣本的色度樣本的數(shù)目來將圖像信息轉(zhuǎn)換成全通道形式(4:4:4)。然 后對高精度且全通道的圖像信息執(zhí)行各種處理任務(wù)。在執(zhí)行處理之后,流水線100可任選 地再次將經(jīng)處理的圖像信息轉(zhuǎn)換成較低精度的二次取樣形式。一般,圖像信息到高精度和全通道形式的轉(zhuǎn)換有效地放大了相對于信息的噪聲分量的信息的信號分量,從而允許在該信息上執(zhí)行的處理產(chǎn)生更準確的結(jié)果。作為對比,在流 水線中的各個中間接合處不能使用高精度和/或全通道圖像信息的已知的策略可能沿著 流水線傳播誤差,并可能降低圖像信息的分辨率(通過基本上丟失色彩內(nèi)容)。圖1 一般 表示由饋送到處理模塊128內(nèi)的標記為128的信息框?qū)Ω呔惹胰ǖ赖膱D像信息的處理 (盡管該附圖中的其它模塊也可受益于高精度且全通道形式的信息的處理,諸如去隔行模 塊 110)。另一示例將使該討論更具體??紤]相比正常精度的4:2:0或4:2:2的Y' UV圖像 信息,對高精度線性RGB圖像信息工作的優(yōu)點?;叵氲? 2 0和4 2 2圖像信息相對于亮度 信息量的一半和四分之一(分別)的色度信息量。一般,高清晰度(HD)圖像信息(具體地, 1920xl080i,2. 07 兆像素)被縮小到 1280x720p (0. 92 兆像素)或 720*480p (0. 35 兆像素) 分辨率。如果流水線在該環(huán)境中以4:2:0的欠采樣格式(例如,1920x1080到1280x720)執(zhí) 行縮小操作,則流水線將2. 07兆像素的亮度信息和0. 52兆像素的色度信息減少到0. 92兆 像素的亮度信息和0. 23兆像素的色度信息。然而,如果流水線先過采樣到4:4:4,然后轉(zhuǎn) 換成高精度RGB (例如,浮點),然后縮小,并然后轉(zhuǎn)換成4 4 4的YUV,則流水線將有效地保 留0. 92兆像素的亮度信息和0. 52兆像素的色度信息。換言之,在該環(huán)境中高精度處理的 使用允許流水線保留幾乎所有的原始色度信息。實現(xiàn)高精度中間圖像信息的一種方式是使用浮點格式來表示信息。浮點數(shù)具有尾 數(shù)分量和指數(shù)分量。指數(shù)分量定義將如何移位尾數(shù)分量。使用這種格式,浮點信息可通過 相應(yīng)地移位信息的表示(例如,通過改變指數(shù)分量)來表示非常小的值到非常大的值。可 使用具有任何位數(shù)的任何種類浮點表示,包括16位浮點表示、32位浮點表示等。供圖像處 理流水線100中使用的特別適用的一種浮點形式是被稱為FP16的浮點格式,但也可使用其 它種類的浮點表示。A. 3.4:2:0圖像信息的特殊設(shè)備作為回顧,如在背景部分所解釋的,4:4:4圖像信息包括對每四個Y'樣本的四個 Cb和Cr樣本。4:2:2圖像信息包括對每四個Y'樣本的兩個Cb樣本和兩個Cr樣本。4:2:0 圖像信息包括每一掃描線上Y'樣本一半的Cb和Cr樣本,以及Y'掃描線一半的Cb和Cr 掃描線。換言之,色度信息的分辨率在水平和垂直方向上均為亮度信息的一半。例如,如果 全圖像分辨率是720x480,則色度信息僅以360x 240存儲。在4:2:0中,不僅必須在每一掃 描線上內(nèi)插遺失的樣本,而且色度信息的全部掃描線必須從上方和下方的掃描線內(nèi)插。圖3 示出了 MPEG2隔行4 2 0圖像信息的示例。關(guān)于對4:2:0圖像信息的處理的其它信息可在 Don Munsil禾口Stacey Spears"The Chroma Up-sampling Error and the 4:2:OInterlaced Chroma Problem(色度過采樣誤差和4:2:0隔行色度問題)”DVD基準,2001年4月(2002 年12月,2003年1月更新)中找到。對4:2:0圖像信息中的色度信息的不足和位置對準引入處理該信息時的多個難 題。一般而言,因為處理流水線100中的一個階段需要對處理流水線100中的另一階段的分 析以便正確解釋4:2:0圖像信息,因此可能引起問題??紤]圖1的過采樣模塊104和矩陣 變換模塊106的示例。為了正確解釋4:2:0圖像信息,過采樣模塊104最佳地需要關(guān)于色 彩信息在圖像信息中如何表示的知識,這是由去隔行模塊110提供的信息。但是由于去隔 行模塊110位于相對于過采樣模塊104的下游,因此該知識對過采樣模塊104不可用。如
14果模塊104和106在不受益于去隔行分析的情況下處理4:2:0信息,則它們可能在圖像信 息中產(chǎn)生誤差,這種圖像信息難以或不可能是正確的。這種困難最終隨著4:2:0中的掃描 線在去隔行分析中不能彼此獨立地處理(不像例如4:2:2)的事實而發(fā)生。為了解決這種難題,圖1的流水線100可結(jié)合用于處理4:2:0圖像信息的特殊設(shè) 備。作為一般設(shè)備,可修改流水線100,使得在不同階段執(zhí)行的分析(以及在不同階段可用 的信息)更廣泛地對流水線中的其它階段共享,而不需要每一階段僅原子地分析前一階段 對它饋送的任何信息。特別對于由去隔行模塊110在流水線100中的位置引起的問題,可修改流水線 100,使得去隔行分析(由模塊110執(zhí)行)被更早執(zhí)行,例如連同過采樣分析(由模塊104執(zhí) 行)一起執(zhí)行。圖1由虛線130示出了該戰(zhàn)術(shù)?;蛘?,去隔行模塊110可通過也檢查饋送 給過采樣模塊104的原始輸入圖像信息來執(zhí)行去隔行分析。即,去隔行模塊110可結(jié)合原 始圖像信息對模塊108的輸出執(zhí)行分析以獲取對應(yīng)如何對圖像信息去隔行的更好的理解。可設(shè)計其它模塊集成設(shè)備以共享由流水線100內(nèi)的各個模塊單獨執(zhí)行的分析,從 而更有效地解決4:2:0圖像信息中的色度信息不足問題。A.4.在偽線件空間中處理圖像信息前述部分達成了設(shè)計產(chǎn)生較少偽影的圖像處理流水線的目標。然而,圖像處理流 水線也應(yīng)以高效的方式提供輸出結(jié)果。當圖像處理流水線以足夠的速度以及可接受數(shù)量的 處理資源產(chǎn)生結(jié)果時,它以高效的方式產(chǎn)生結(jié)果。為此,本小節(jié)提出可應(yīng)用于圖1中所示的 流水線100以減少流水線100的復雜度的各種逼近。S卩,本小節(jié)提出對圖1中所示的流水線100的修改,使得它提供接近線性但不是完 全線性的圖像信息。結(jié)果,這些變換被稱為將圖像信息變換到“偽線性”空間,而非理論上 正確的線性空間。優(yōu)點在于,可極大地簡化傳遞函數(shù)(模塊108和120中)所需的數(shù)學運 算的硬件實現(xiàn),導致更迅速且更有效地處理圖像信息。更具體地,這些所選運算一般比它們 的原始的對應(yīng)函數(shù)(在數(shù)學上更精確)快大約一個數(shù)量級的速度執(zhí)行。在偽線性空間中處 理圖像的負面影響是極小的,因為偽線性圖像信息是接近線性的。因此,線性本質(zhì)的任何算 法可無需修改而應(yīng)用于該信息以為大多數(shù)應(yīng)用提供滿意的輸出結(jié)果。圖4提供了關(guān)于上述逼近的更多信息。更具體地,圖4表示僅對圖1的處理流水 線100的某些模塊的修改,從而僅包含對圖1中所示的全部處理流水線100的縮減的描述。如圖4中所示的流水線選段400包括代替圖8的傳遞函數(shù)模塊108的傳遞函數(shù)模 塊402。代替應(yīng)用對圖像信息的數(shù)學上精確的變換以將其轉(zhuǎn)換到線性空間(如模塊108所 做),模塊402應(yīng)用將圖像信息轉(zhuǎn)換到上述偽線性空間的近似傳遞函數(shù)(g_appr0X(X))。該 模塊402采用g_appr0X(X)傳遞函數(shù),因為它比圖1的模塊108所需的更精確的傳遞函數(shù) “便宜”。模塊404表示圖1的處理模塊114的對應(yīng)物。模塊404在偽線性處理空間中對偽 線性圖像信息執(zhí)行任何數(shù)量的處理任務(wù)。模塊406、408和410然后執(zhí)行將經(jīng)處理的圖像信息轉(zhuǎn)換成適于輸出(例如,至顯 示器、存儲設(shè)備、網(wǎng)絡(luò)目標站點等)的格式的任務(wù)。模塊406特別承擔通過應(yīng)用模塊402的 操作的逆,即g_approX' (χ)來去除模塊402的效果的責任。模塊408然后通過應(yīng)用傳遞 函數(shù)g_inX(X)來線性化模塊406的輸出;執(zhí)行該操作是因為下一階段410被設(shè)計成接受線
15性輸入。然后,模塊410應(yīng)用反傳遞函數(shù)(g_out' (χ))來產(chǎn)生適應(yīng)所需的任何輸出格式的 最終的經(jīng)伽馬校正的輸出圖像信息。在一個實際實現(xiàn)中,模塊406、408和410可被集成到 由模塊412執(zhí)行的表示為F(X)的單個變換內(nèi)。重要的是,由模塊404在偽線性色空間中應(yīng)用的算法與圖1的模塊114中應(yīng)用于 “正確的”線性色空間的算法相同;換言之,由圖4表示的處理策略不需要自己特別定制圖 像處理算法。作為對比,由已知的現(xiàn)有策略采取的方法是在接收圖像信息的任何非線性空 間中執(zhí)行處理,然后對算法應(yīng)用各種特別和應(yīng)用專用的校正因子以試圖修補任何偽影。然 而,這些校正因子通常是不準確的,且一般無論如何都是復雜的。更一般地,現(xiàn)有技術(shù)不應(yīng) 用將信息轉(zhuǎn)換到偽線性形式的綜合和可通用方法,然后以上述方式移除該偽線性形式。該小節(jié)中的其余討論描述了可用于實現(xiàn)圖4中上述模塊的示例性逼近。首先,注 意,用于執(zhí)行伽馬處理的傳遞函數(shù)一般是冪函數(shù)(例如,X°_45或反函數(shù)χ1/α45 X2·222),或若 干函數(shù)的組合。對于使用可用硬件在每個像素的基礎(chǔ)上計算,冪函數(shù)一般非常耗時。然而,注意到χ°_45近似等于χ的平方根,或換言之x°_45 ^ χ0'50.且Χ1ΛΙ_45近似等于 X2,或換言之,χ1/α 455 - X2。存在用于計算χ1/2的的優(yōu)化硬件,它比一般冪函數(shù)所需的運算迅 速(通常快一個數(shù)量級)。且硬件可非常迅速地執(zhí)行平方X2,因為這僅是一個乘法運算。從 而,這些逼近可顯著地削減與實現(xiàn)傳遞函數(shù)相關(guān)聯(lián)的處理成本。更正式地,由模塊402執(zhí)行的函數(shù)g_appr0X(X)可采用X2*Sign(X)的形式,由模塊 406執(zhí)行的反傳遞函數(shù)可采用(abS(X))1/2*Sign(X)的形式。(注意,作為特殊考慮因素,傳 遞函數(shù)和反傳遞函數(shù)可應(yīng)用接近于0的線性尾部段)。以上方法可推廣到不同的輸入和輸出色域,這些色域使用以下示例性的一連串操 作由函數(shù)g_in (χ)和g_out (χ)表示1)對圖像信息應(yīng)用反線性逼近g_appr0X(X) = χ2 = χ*χ。模塊402可執(zhí)行該步 馬聚ο2)在偽線性空間中處理數(shù)據(jù)。模塊404可執(zhí)行該步驟。3)應(yīng)用線性逼近g_appr0X ‘ (χ)。模塊406可執(zhí)行該操作。4)應(yīng)用傳遞函數(shù)g_in(x)以線性化模塊406的輸出。模塊408可執(zhí)行該操作。5)對模塊408的輸出應(yīng)用反傳遞函數(shù)g_out' (χ)以在期望的g_out空間中產(chǎn)生 fn息ο步驟(3)-(5)可被合并成單個函數(shù)F(X)JP F(x) = g_out' (g_in (g_approx' (χ)))。如果流水線在伽馬2.222到伽馬2.4之間轉(zhuǎn)換,則函數(shù)F(x)可被表示為F (χ) = (((χ0'5)1/0-45)1/2·6) = χ0'426。以上算法的成本涉及g_approX(X)函數(shù)所需的一個非?!氨阋恕钡膶υ?,繼之以在 偽線性空間中的信息處理,繼之以F(X)函數(shù)所需的一個可能昂貴的對話。但由于公式F(X) 僅要求指數(shù)的乘法,該函數(shù)的成本不會比原始的反函數(shù)更差。從而,圖4中所示的解決方案 具有潛在地將全線性化/非線性化循環(huán)的成本減少近似一半的實際效果。如上所述,該解 決方案在它不需要由模塊404執(zhí)行的算法的特殊定制的意義上是有利的。圖5示出概述上述操作的過程500,它是圖2中所示的線性化過程200的對應(yīng)物。 步驟502需要將輸入圖像信息轉(zhuǎn)換到偽線性空間。步驟504需要使用模塊404在偽線性空間內(nèi)對圖像信息執(zhí)行處理。而步驟506需要將經(jīng)處理的信息轉(zhuǎn)換到適當?shù)姆蔷€性色空間以 便輸出。A. 5.對誤差分散算法的改講將高精度圖像信息量化成低精度格式可能引入誤差,因為量化所需的逼近在沒有 被正確處理時可能導致偽影。各種誤差分散算法用于分散由量化引起的誤差,從而最小化 偽影。這樣的誤差分散是抖動的一種形式。圖6示出分散由量化引起的誤差的Floyd-Steinberg算法的已知應(yīng)用??紤]圖像 中的點X,它表示圖像中的一像素(或更一般地,一圖元)。對該圖元X的量化將產(chǎn)生誤差 差,它被計算為圖元的高精度表示與它被量化成的值之差。Floyd-Steinberg算法將該差劃 分成不同的分量,然后將這些分量分布到鄰近圖元X(且未由該算法處理過)的圖元。當處 理前進至這樣的一個鄰近圖元時,之前分散到該圖元的誤差分量將被加到其上,且該圖元 然后將以上述的方式處理,例如,通過對其量化、計算另一誤差差并將該誤差分散到鄰近圖 元。對整個圖像的處理可按照各種方式進行,諸如按從左到右和自頂向下。Floyd-Steinberg算法向它分散至鄰近圖元的各誤差分量分配不同的權(quán)重。圖6 示出了分配給鄰近圖元X的圖元的權(quán)重7、1、5和3(以順時針方向)。更精確地,應(yīng)用于誤 差分量的加權(quán)因子是7/16、1/16、5/15和3/16,其中分母“ 16”反映了分配給鄰近圖元的權(quán) 重總禾口。然而,諸如Floyd-Steinberg等誤差分散算法有時產(chǎn)生含有各種偽影的目的圖 像。這樣的偽影可在視覺上可辨別的圖案中顯現(xiàn),在某些圖像內(nèi)容中尤其顯著。已知策略通 過對原始圖像添加隨機噪聲以混亂由誤差分散算法引起的圖案來解決這個問題。但這種補 救本身可能具有各種缺點。首先,已知技術(shù)將噪聲添加到原始圖像,然后將含噪聲的原始圖 像量化為基線(按以下將更仔細描述的方式)。盡管這種技術(shù)具有模糊由誤差分散算法引 起的偽影的效果,但它也劣化了最終的目的圖像。即,目的圖像中的噪聲與添加到原始圖像 的噪聲成比例地增加。其次,已知策略可使用具有相對較短的重復周期的噪聲生成器來添 加噪聲。因此,噪聲生成器可產(chǎn)生它們自己的圖案型偽影,這些偽影可能在目的圖像中在視 覺上可辨別(以及可能地,噪聲生成器被設(shè)計來掩飾的誤差分散的偽影的某些殘余痕跡)。圖7示出了更具體解釋了上述問題中的前者的過程700。過程700的目的在于 使用誤差分布算法來量化原始圖像信息(“Original (原始)”)以產(chǎn)生目的圖像信息 (“Final (最終)”)。步驟702需要通過對圖像元素i (例如,像素)的原始圖像信息添 加噪聲信息來產(chǎn)生“Temp (臨時),,圖像信息。步驟704需要通過量化由Temp圖像信息和 "Error_Term(i)(誤差項),,圖像信息定義的和來產(chǎn)生Final圖像信息。Error_Term表示 基于對早先處理的一個或多個圖元的先前的量化添加到圖元i的誤差分量。步驟706需要 將下一 Error_Term分量(將被應(yīng)用于待處理的將來的圖元)定義為如此計算出的Final 圖像信息減去Temp圖像信息。該算法的應(yīng)用具有基本上量化含噪聲圖像的實際效果,也具 有上述隨之引起的缺點。圖8示出了克服本領(lǐng)域中的上述問題的系統(tǒng)800。抖動模塊802使用誤差分散算法 將原始圖像信息804變換成目的圖像信息806。誤差分散算法包括上述的Floyd-Steinberg 算法,但不限于此算法。噪聲生成器808將隨機噪聲插入量化處理以幫助模糊由誤差分散 算法產(chǎn)生的偽影中的某一些。
系統(tǒng)800在至少兩個方面上不同于已知策略。首先,系統(tǒng)800實際上是對量化處 理而非原始圖像信息804添加噪聲信息。換言之,原始圖像信息804保留可從中測量誤差 項的基線,相反在現(xiàn)有技術(shù)中,保留了加上噪聲信息的原始圖像。因此,系統(tǒng)800中噪聲量 的增加不會必然地具有逐漸使目的圖像信息806看起來噪聲更多的效果;這是因為傳播到 鄰近圖元的誤差項保留對目的圖像信息806相對于原始圖像信息804的偏差的測量,因此 誤差分散算法繼續(xù)試圖校正添加到量化處理的隨機噪聲的效應(yīng)。圖9示出了解釋以上處理的過程900。步驟902涉及通過量化圖元i的原始圖像 信息、噪聲信息以及誤差項的總和來為像點i產(chǎn)生最終圖像信息。步驟904需要通過計算 圖元i的最終圖像信息與原始圖像信息之差來計算將被分散到一個或多個鄰近圖元的誤差項。一示例將使該討論更具體。假定任務(wù)是將具有值23. 3的圖元量化到最接近的整 數(shù)。在圖7中所示的已知策略中,假定向該值添加了+0.4的噪聲信息量,使值為23. 7。該 像點的最終圖像值將是24,而被傳播的誤差項將是-0. 3 (最終輸出圖像值與含噪聲圖像值 23. 7之差)。相反,在圖9的改進策略中,被傳播的誤差項將是-0. 7 (最終輸出圖像值與原 始圖像值之差)。將基于Floyd-Steinberg誤差分散算法的應(yīng)用,在以下闡明對以上技術(shù)的更正式 描述。對圖像中的每一像素,該算法的任務(wù)在于量化高精度值V,并將其存儲在像素陣列P 的像素位置P(x,y)中,其中P(x,y)具有低于V的精度。由該算法產(chǎn)生的誤差項被存儲在 具有與像素陣列P相同大小的高精度誤差陣列E中。像素P(x,y)的誤差項被存儲在E(x, y)的相應(yīng)位置中。該算法中的函數(shù)“round()”將高精度數(shù)舍入到最接近的低精度數(shù)。該算 法中的函數(shù)“randomO”返回范圍{-0. 5. . 0. 5}中的高精度數(shù)。臨時值“Desired(期望)” 和“Error (誤差)”是高精度值。實際誤差傳播系數(shù)來自Floyd-Steinberg誤差傳播算法。算法1 改進的誤差分散For each pixel χ, y Desired = V+E(x, y)P (χ, y) = round (Desired+randomO)Error = Desired-P (x, y)E(x+1, y) = Error * 7/16E(x-1, y+1) = Error * 1/16E (x,y+1) = Error * 5/16E(x+1, y+1) = Error * 3/16End作為第二種改進,不像已知的方法,噪聲生成器808采用相對較長的重復模式。短 語“相對較長”可按照令噪聲生成器808在處理圖像信息的整個幀時不重復它的數(shù)或在產(chǎn) 生目的圖像信息806中的顯著偽影的的意義上至少不重復其本身來相對解釋。滿足該要求 的一個特定的隨機數(shù)生成器被稱為R250的隨機噪聲生成器。A.6.濾波器內(nèi)核的動態(tài)計算當將圖像信息的大小從源大小調(diào)整到目的大小時,可在圖1中所示的流水線100 中的各個接合處使用縮放濾波器。例如,在模塊114中執(zhí)行的處理可涉及取決于應(yīng)用和/
18或取決于由用戶輸入的控制信號放大或縮小圖像信息??s放也可在流水線100中的其它接 合處執(zhí)行,諸如在采樣模塊104和124中。結(jié)合縮放算法可使用多個濾波算法。一種特定的已知類型的濾波器是所謂的 Catmull-Rom濾波器。這種濾波器對調(diào)整圖像信息的大小的任務(wù)的應(yīng)用將引起圖像信息中 的邊緣達某種程度的銳化。該小節(jié)描述了用于縮放的濾波器(諸如Catmull-Rom型濾波器,但不限于這種濾 波器),它可在逐個像素的基礎(chǔ)上對圖像信息進行計算和應(yīng)用。這可被概念化為單獨的濾波 器對圖像信息中的每一像素的動態(tài)計算和應(yīng)用。每一濾波器可包括一個或多個內(nèi)核,而每 一內(nèi)核可含有一個或多個抽頭。內(nèi)核定義應(yīng)用于圖像信息中的像素的權(quán)重。抽頭定義內(nèi)核 作用于其上的圖像信息樣本。不能以這種方式計算和應(yīng)用濾波器內(nèi)核可導致目的圖像中的 各種偽影,諸如拍頻波形圖。然而,按照計算內(nèi)核所涉及的時間量,單獨濾波器內(nèi)核為每一像素的計算可能是 非常昂貴的。這可排除圖像信息在某些硬件上的實時表示。為了解決這個問題,本小節(jié)定 義了用于為輸入圖像信息的整個行或列動態(tài)計算濾波器相位內(nèi)核然后應(yīng)用這樣的內(nèi)核的 有效策略。作為概觀,該策略涉及計算原始圖像信息的行(或列)所需的內(nèi)核的數(shù)目,計算 內(nèi)核所需的抽頭的數(shù)目,分配用于存儲內(nèi)核的存儲陣列,以及計算所需數(shù)量的內(nèi)核并將其 存儲在陣列中。這些步驟繼之以將陣列中所存儲的濾波器內(nèi)核應(yīng)用于圖像信息。因為內(nèi)核在其應(yīng)用之前被計算,因此該算法是高效的。而且,實現(xiàn)了計算上的節(jié) 省,因為在某些情況下,可將相對較少數(shù)量的計算出的內(nèi)核循環(huán)應(yīng)用于多得多的圖像信息 的行或列。且應(yīng)用于特定行或列的同一內(nèi)核可(分別)應(yīng)用于圖像信息中的其它行和列。 換言之,取決于對特定應(yīng)用的調(diào)整大小的需求,不必為圖像信息中的每一單個像素計算單 獨的濾波器。圖10示出了用于實現(xiàn)上述設(shè)計的濾波器模塊1002的系統(tǒng)1000的概觀。濾波器 模塊1002包括動態(tài)內(nèi)核預(yù)計算模塊1004。該模塊1004的目的在于首先計算特定縮放操作 所需的內(nèi)核數(shù)量和這些內(nèi)核所需的抽頭的數(shù)量。內(nèi)核和抽頭的數(shù)量將取決于調(diào)整圖像信息 大小的方式(按以下描述的方式)。然后預(yù)計算模塊1004預(yù)計算期望數(shù)目的內(nèi)核,并將內(nèi) 核存儲在存儲模塊1006中。內(nèi)核應(yīng)用模塊100然后將內(nèi)核存儲模塊中的內(nèi)核應(yīng)用于圖像 信息以實現(xiàn)期望的濾波行為。如上所述,在內(nèi)核應(yīng)用前計算內(nèi)核有助于使濾波處理運行得 更迅速。而且,濾波器計算的復雜度對于僅需對少量內(nèi)核的預(yù)計算的那些縮放操作極大程 度地。圖10的右手部分示出內(nèi)核1010如何可迭代地應(yīng)用于圖像信息1014的特定行 1012。內(nèi)核1010串行地并以循環(huán)的方式應(yīng)用(在一個示例性情況中,每一內(nèi)核被應(yīng)用于一 個輸出像素)。例如,如果對相對較長的圖像信息行存在少量內(nèi)核,則這些內(nèi)核在處理圖像 信息行時接連應(yīng)用并反復重復。即,預(yù)存儲的內(nèi)核形成列表;它們接連地應(yīng)用于行,且當遇 到列表中最后一個內(nèi)核時,通過繞回并再次從列表頂部取出內(nèi)核來繼續(xù)處理。應(yīng)用技術(shù)的 迭代行為由圖10中所示的循環(huán)1016表示。內(nèi)核1010可按照類似的方式應(yīng)用于其它行。而 且,可對應(yīng)用于圖像信息1014的列的內(nèi)核重復類似的處理。以下描述可由模塊1004用來計算內(nèi)核(kernel)和抽頭(tap)數(shù)目的示例性算 法。模塊1004對在圖像信息1014的χ和y維度上的縮放單獨應(yīng)用該算法。因此,盡管該
19算法被設(shè)置成在X維度上縮放,但該算法也可應(yīng)用于y維度,例如通過將參考寬度改為參考 高度等。在X維度上,算法中所使用的“ScaleRati0(縮放率)”定義了原始圖像寬度與期 望的最終(目標)圖像寬度之比。該算法中所使用的“ceiling(天棚)”函數(shù)將實數(shù)舍入 到下一個較高整數(shù)。算法中的“gcd”函數(shù)計算兩個整數(shù)的最大公共分母。算法2 對內(nèi)核和抽頭的數(shù)目的計算ScaleRatio = Sourceffidth/Destinationffidthif ScaleRatio <1.0ScaleRatio =1.0Taps = ceiling(ScaleRatio -k 4)if Taps is oddTaps = Taps+1Kernels = Destinationffidth / gcd(Sourceffidth,Destinationffidth)作為示例,考慮對具有720像素的高度的源圖像信息到具有480像素的高度的目 的圖像信息的垂直縮放。以上算法對該情形的應(yīng)用產(chǎn)生ScaleRatio = 720/480 = 1. 5Taps = ceiling(ScaleRatio氺4) = 6Kernels = 480/gcd (720,480) = 480/240 = 2因此,模塊1004需要預(yù)計算并預(yù)分配各自具有6個抽頭的2個內(nèi)核。調(diào)整大小操 作將在內(nèi)核沿一行像素移動時以往復轉(zhuǎn)換的方式在兩內(nèi)核之間交替。作為另一示例,考慮對具有721像素的高度的源圖像信息到具有480像素的高度 的目的圖像信息的垂直縮放。以上算法對該情形的應(yīng)用產(chǎn)生ScaleRatio = 721/480 = 1. 5021Taps = ceiling(ScaleRatio*4) = 7Tap為奇數(shù),因此加1,這得到8Kernels = 480/gcd (721,480) = 480/1 = 480因此,模塊1004需要預(yù)計算并預(yù)分配各自具有8個抽頭的480個內(nèi)核。調(diào)整大小 操作將對480個輸出像素中的每一個使用唯一的內(nèi)核。然而,仍將實現(xiàn)顯著的節(jié)省,因為可 在每一列垂直像素中使用同一組480個內(nèi)核。而且,在現(xiàn)實的實際情況中,目的和源大小之 間的比率往往是相當簡單的比率,使得結(jié)果所需的內(nèi)核的數(shù)目為易于管理的數(shù)目。也可加 上特殊的約束,這將防止用戶輸入要求特別大數(shù)目的濾波器內(nèi)核(例如,超出指定的閾值) 的調(diào)整大小請求。圖11示出了概述上述操作的過程1100。步驟1102涉及確定實現(xiàn)期望的在水平 和/或垂直維度上對圖像調(diào)整大小所需的內(nèi)核數(shù)目(和每個內(nèi)核的抽頭數(shù)目)。預(yù)計算模 塊1004可使用以上提供的算法執(zhí)行該任務(wù)。步驟1104涉及在內(nèi)核存儲模塊1006中分配 空間以存儲步驟1004中所計算出數(shù)目的內(nèi)核。步驟1106涉及實際預(yù)計算和存儲內(nèi)核。步 驟1108涉及將存儲模塊1006中所存儲的預(yù)計算的內(nèi)核應(yīng)用于圖像信息。該應(yīng)用通過當處 理任何給定行或列時按順序循環(huán)通過內(nèi)核來進行。B.對視頻處理流水線的示例性實現(xiàn)相關(guān)改進
20
B. 1.流水線處理代碼的最優(yōu)牛成下節(jié)提供了比節(jié)A有更加技術(shù)專用的本質(zhì)的圖1的視頻處理流水線100的多個實 現(xiàn)。首先,圖12示出了圖像處理流水線1200的高層概觀,它將用作討論本部分的改進的基 石出。圖12中所示的流水線1200包括由輸入階段1202、處理階段1204和輸出階段1206 定義的處理階段。對于輸入階段1202,輸入源1208表示任何圖像信息源。源1208 —般可 包括經(jīng)由某一通道提供給輸入階段1202 (例如,從磁盤或經(jīng)由IP網(wǎng)絡(luò)等接收)的新捕捉的 圖像信息(例如,由照相機或掃描儀創(chuàng)建)、或之前捕捉的圖像信息。在前一情況中,捕捉 處理功能1210可對從源1208接收的圖像信息執(zhí)行任何類型的初步處理。在后一情況中, 解碼器功能1212執(zhí)行任何種類的基于流的信息提取和解壓以產(chǎn)生圖像數(shù)據(jù)。一般,這樣的 處理可包括將所接收到的信息中的圖像信息與音頻信息分離,解壓該信息等。對于處理階 段1204,處理功能1214對所得的圖像信息執(zhí)行任何種類的處理,諸如將多個圖像信息流混 合在一起為合成信號。對于輸出階段,輸出處理功能1216表示為將其輸出到輸出設(shè)備1218 而對經(jīng)處理的圖像信息執(zhí)行的任何種類的處理。輸出設(shè)備1218可代表電視機、計算機監(jiān)視 器等。輸出設(shè)備也可代表存儲設(shè)備。此外,輸出“設(shè)備”(或輸出功能1216)可提供準備信 息以便存儲在設(shè)備上或分布在網(wǎng)絡(luò)上的壓縮和格式化功能(諸如多路復用器)。一般,圖1中描述的處理操作可按照任何方式跨階段(1202、1204、1206)分布。例 如,處理階段1204—般實現(xiàn)如圖1中所示的處理模塊114。各階段(1202、1204、1206)中的 每一個可物理地實現(xiàn)為用于執(zhí)行歸屬的任務(wù)的單個裝置或以串行或并行方式耦合在一起 的多個裝置。功能可由軟件和硬件的任何組合實現(xiàn)。圖13示出了用于配置如圖12中所示的圖像處理流水線1200的示例性系統(tǒng)1300。 更具體地,示例性系統(tǒng)1300可包括用于自動生成實現(xiàn)流水線1200的計算機代碼的功能,使 其實現(xiàn)如圖1中所示的圖像處理操作的任何組合。為了以上述方式運作,系統(tǒng)1300包括配置模塊1302。配置模塊1302接收定義經(jīng)配 置的流水線應(yīng)滿足的要求的流水線要求信息1304。要求信息1304可具有多個組分。輸入 要求組分1306定義期望流水線接收的圖像信息的特征。輸入要求組分1306可定義可被處 理的單種圖像信息,或可定義可被處理的一組許可的多種圖像信息。方便地指定許可的輸 入信息的多個特征的一種方式是指定所使用的視頻編碼標準,它隱含圖像信息擁有的全部 特征,諸如許可色空間、色度二次取樣方案、伽馬傳遞函數(shù)等。例如,ITU-R Recommendation BT. 601是定義圖像信息的工作室數(shù)字編碼的國際標準。該標準使用圖像信息的Y' CbCr編 碼。ITU-R Recommendation BT. 709是定義高精確度視頻信息的工作室編碼的國際標準。高 清晰度(HD)內(nèi)容表示具有高于標準清晰度(SD)的視頻內(nèi)容,一般為1920x1080、1280x720 等。這些僅是圖像信息流水線可處理的眾多視頻編碼標準中的兩個。輸出要求組分1308定義期望流水線輸出的圖像信息的特征。即,輸出要求組分 1308可定義可被生成來適于特定輸出設(shè)備的單種圖像信息,或可定義可被生成來適應(yīng)不同 種類的輸出設(shè)備的一組許可的多種圖像信息。再一次,方便地指定許可的輸入信息的多個 特征的一種方式是指定所使用的視頻編碼標準。中間處理要求組分1310定義流水線應(yīng)對輸入圖像信息執(zhí)行的處理任務(wù)的特性。 可指定多個處理任務(wù),包括但不限于,調(diào)整大小(縮放)、合成、阿爾法混合、邊緣檢測等。
一般,操作人員可手動地選擇流水線要求1304?;蛘?,一個或多個要求1304可由 其中將采用流水線的環(huán)境來自動推斷。給定輸入流水線要求1304,配置模塊1302執(zhí)行使用靜態(tài)分析來與代碼模塊庫 1312交互的的任務(wù)以組裝滿足流水線要求1304的代碼模塊的自定義集合。這樣做的一種 方式是生成將任何種類的輸入信息映射到涉及任何種類的中間處理的任何種類的輸出信 息的主方程。該主方程將包括多個組分。組分與存儲在庫1312中的相應(yīng)的代碼模塊相關(guān) 聯(lián)。在此實現(xiàn)中,配置模塊1302執(zhí)行通過去除鑒于輸入流水線要求1304而不必要的所有 組分來編譯自定義的代碼模塊集合的任務(wù)。這具有從庫1312中選擇某些代碼模塊并略去 其它模塊的效果。由配置模塊1302執(zhí)行的處理的結(jié)果是優(yōu)化的流水線代碼1314,它可被應(yīng)用來處 理圖像信息。流線化該代碼1314以便僅執(zhí)行所需的功能。結(jié)果,基于該代碼建立的流水線 具有以比例如具有用于處理眾多不同任務(wù)、在特定應(yīng)用中可能永遠不會采用的各種鏈接的 子例程的大型包羅萬象的程序更快的方式執(zhí)行其操作的可能性。僅舉一個示例,假定特定應(yīng)用中的視頻流水線任務(wù)是將隔行的4:2:2Y' CbCr圖 像信息轉(zhuǎn)換到中間線性逐行4:4:4RGB色空間、在RGB色空間中執(zhí)行合成、然后將所得的經(jīng) 處理的信息輸出到電視機。這一連串的操作調(diào)用某些操作(例如,過采樣、轉(zhuǎn)移矩陣轉(zhuǎn)換、 傳遞函數(shù)應(yīng)用、合成等),但不調(diào)用其它操作。從而,配置模塊1302將僅產(chǎn)生執(zhí)行所需計算 所必要的代碼,而不產(chǎn)生其它。在包括或略去模塊的上下文中描述了配置操作。然而,更多高級配置功能可執(zhí)行 其它優(yōu)化操作,諸如以特定有效方式組合所選代碼模塊、去除所選代碼模塊公有的冗余代碼等。存在實現(xiàn)配置模塊1302的多種方式。實現(xiàn)該功能的一種方式是利用現(xiàn)有的配置 工具(例如,常規(guī)C++編譯器),它們已經(jīng)擁有分析源代碼并去除冗余代碼的能力,且對通過 挑選和選擇適當模塊來優(yōu)化流水線代碼的手邊任務(wù)應(yīng)用這樣的功能。圖14示出了以流程圖形式概述以上討論的過程1400。步驟1402需要輸入視頻流 水線要求。步驟1404需要確定滿足輸入要求的最優(yōu)代碼。步驟1406需要輸出和執(zhí)行最優(yōu) 代碼。B. 2. GPU的一般使用以執(zhí)行圖像處理圖15示出了可用于實現(xiàn)圖12中所示的圖像流水線的各個方面(以及,更抽象地, 圖1中所示的視頻處理操作100)的示例性系統(tǒng)1500的概觀。系統(tǒng)1500可表示包含一個 或多個CPU的計算機(諸如個人計算機)。系統(tǒng)1500將圖1中所示的某些圖像處理任務(wù) (或所有圖像處理任務(wù))分配給圖形模塊功能。圖形處理功能可包括一個或多個圖形處理 單元(在本領(lǐng)域中稱為GPU)。一般,圖15包括將可由系統(tǒng)1500的CPU執(zhí)行的功能從可由 系統(tǒng)1500的圖形模塊功能執(zhí)行的功能中劃分出來的虛線(但這種劃分僅是示例性的;有可 能有其它CPU/GPU分配)。作為背景,GPU —般是如CPU但一般具有較少執(zhí)行分支型決策能力的處理設(shè)備。系 統(tǒng)一般使用GPU來執(zhí)行重復執(zhí)行的信息密集型呈現(xiàn)任務(wù),諸如使用三維處理流水線呈現(xiàn)信 息(涉及頂點陰影著色器、像素陰影著色器等)。GPU使用的支柱從而是游戲和模擬技術(shù), 它使用GPU來呈現(xiàn)各種場景、角色、特效等。向GPU分配重復或信息密集型任務(wù)釋放了系統(tǒng)
22的CPU以執(zhí)行其它高端管理任務(wù),因此改進了這一系統(tǒng)的性能。在當前情況中,系統(tǒng)1500 在將所接收的圖像信息(例如,視頻信息)輸出到任何種類的輸出設(shè)備之前采用圖形模塊 功能來對其進行修改而非生成游戲信息。例如,系統(tǒng)1500的一種應(yīng)用是從DVD接收視頻信 息,在圖形功能內(nèi)對視頻信息執(zhí)行合成(例如,通過將文本文字組合到視頻信息上),然后 將所得的信號輸出到電視單元。使用以上概觀,圖15的示例性組件中的每一個將在以下依次描述。稍后的小節(jié) (B. 3)將提供關(guān)于可如何采用圖形模塊功能來實現(xiàn)圖1中所示的流水線100的各方面的更 具體的信息。首先,系統(tǒng)1500接受來自多個源中的任一個的信息。例如,系統(tǒng)1500可接受來自 網(wǎng)絡(luò)1502 (諸如耦合至因特網(wǎng)的遠程源)、任何種類的數(shù)據(jù)庫1504、任何種類的計算機可讀 盤介質(zhì)1506 (諸如光盤、DVD等)或某些其它源的圖像信息。在任何情況中,所接收的信息 可包含圖像信息和音頻信息的組合。多路分配器單元1510將音頻信息與圖像信息分離。音 頻處理功能1512處理音頻信息。圖像解碼器1514處理圖像信息。圖像解碼器1514可將經(jīng)壓縮的圖像信息從其接 收到的格式轉(zhuǎn)換成某種其它格式等。圖像解碼器1514的輸出可包括所謂的純圖像信息以 及圖像子流信息。純圖像信息構(gòu)成將在顯示設(shè)備上呈現(xiàn)的主要圖形流。圖像子流信息可 構(gòu)成與純圖像信息相關(guān)聯(lián)的任何補充信息,諸如嵌入字幕信息、任何種類的圖形覆蓋信息 (諸如各種圖形編輯控件)、由DVD播放器呈現(xiàn)的各種類型的子圖像等。(在另一實現(xiàn)中,視 頻解碼器的某些方面可被分配給圖形模塊功能。)在一個示例性實現(xiàn)中,視頻混合呈現(xiàn)器(VMR)模塊1516在對如此接收到的圖像信 息的處理中扮演中央角色。作為概觀,VMR模塊1516與圖形接口 1518和顯示驅(qū)動器1520 交互,顯示驅(qū)動器1520又控制圖形模塊1522。這種交互可涉及探查圖形模塊1522的能力。 這種交互也涉及協(xié)調(diào)圖形接口 1518、顯示器驅(qū)動器1520和圖形模塊1522對圖像信息的處 理。在一種實現(xiàn)中,圖形接口 1318可使用由Microsoft 公司的DirectX提供的DirectDraw 功能來實現(xiàn)。DirectDraw在這種環(huán)境下用作用于將VMR模塊1516通信耦合至圖形模塊 1522的消息通信管道。圖形模塊1522自己可構(gòu)成計算機或類似設(shè)備內(nèi)的固定模塊,或它可 構(gòu)成可拆單元,諸如圖形卡。(一般,在本公開的第一節(jié)中提及的共同轉(zhuǎn)讓的申請?zhí)峁┝岁P(guān) 于VMR模塊1516可用來與圖形模塊1522交互的示例性數(shù)據(jù)結(jié)構(gòu)的細節(jié);由于交互不是本 公開的重點,因此這樣的交互的細節(jié)將不在此重復。)圖形模塊1522本身包括一個或多個圖形處理單元(GPU) 1524。如上所述,系統(tǒng)可 將圖1中所示的處理操作的任何組合分配給GPU 1524。GPU 1524使用像素陰影著色器1526 執(zhí)行這些任務(wù)。像素陰影著色器指的是可在逐個像素的基礎(chǔ)上對圖像信息執(zhí)行各種操作的 功能。小節(jié)B. 3提供關(guān)于典型的像素陰影著色器的體系結(jié)構(gòu)以及可如何采用這樣的技術(shù)來 執(zhí)行圖1中所示的操作的其它信息。GPU 1524可與同圖形模塊1522相關(guān)聯(lián)的本地存儲器1528交互。該本地存儲器 1528可適應(yīng)任何數(shù)量的存儲相關(guān)目的。例如,該存儲器1528可存儲最終圖像表面,它然后 被轉(zhuǎn)發(fā)給輸出設(shè)備1530 (諸如,顯示監(jiān)視器、電視單元、存儲設(shè)備、網(wǎng)絡(luò)目標等)。B. 3.像素陰影著代器相關(guān)的改講作為背景,圖16示出在3D處理流水線中通常使用的像素陰影著色器1600的已知體系結(jié)構(gòu)。典型的像素陰影著色器應(yīng)用中的每一像素可由四個浮點值的向量表示,例如 RGBA(紅、綠、藍、阿爾法),其中每一值對應(yīng)于一單獨的通道。像素陰影著色器1600的體系 結(jié)構(gòu)包括一連串輸入/輸出寄存器(1602、1604、1606、1608),以及用于對輸入數(shù)據(jù)執(zhí)行操 作的算術(shù)邏輯單元(ALU) 1610。更具體地,寄存器包括色彩寄存器1602。這些寄存器1602 將迭代的頂點色彩數(shù)據(jù)從頂點陰影著色器(未示出)流傳送到像素陰影著色器1600。常量 寄存器1604向像素陰影著色器1600提供用戶定義的常量。輸出/臨時寄存器1606為中 間計算提供了臨時存儲。在該寄存器集中,寄存器r0也接收像素陰影著色器1600的輸出。 紋理寄存器1608向像素陰影著色器ALU 1610提供紋理數(shù)據(jù)。像素陰影著色器ALU 1610 基于一程序來執(zhí)行算術(shù)和紋理尋址指令。該程序包括從一組許可的像素陰影著色器命令中 選出的指令的集合。隨后的討論將具體關(guān)注于使用紋理寄存器1608(此后,更一般地被稱為“單元”) 來向像素陰影著色器ALU 1610饋送圖像信息和濾波器權(quán)重。從而,將提供關(guān)于圖17的環(huán) 境中的紋理的概念的其它介紹性信息。不嚴格地描述,在游戲應(yīng)用中,紋理定義被“粘貼”到定義角色、場景等的多邊形表 面上的圖像。圖17示出了其中紋理1702被應(yīng)用于多邊形1704的紋理應(yīng)用操作1700。多 邊形1704由被組裝來形成矩形的兩個三角形圖元組成。多邊形1704包括四個頂點,VI、 V2、V3和V4。每一頂點包括紋理坐標。紋理坐標參考常規(guī)的U和V參考體系來指定。在該 參考體系中,U坐標一般對應(yīng)于X軸,V坐標一般對應(yīng)于Y軸。U軸中的值被限制到0. 0到 1.0的范圍中,V軸中的值同樣被限制到0. 0到1. 0的范圍中。與頂點相關(guān)聯(lián)的紋理坐標指定紋理1702將被如何置于多邊形1704上。在圖17的 示例性情況中,頂點Vl具有紋理坐標0. 0,0. 0,這對應(yīng)于紋理1702的左上角。頂點V2具有 紋理坐標1. 0,0. 0,這對應(yīng)于表面1702的右上角。頂點V3具有紋理坐標0. 0,0. 5,這對應(yīng) 于紋理1702的左邊緣的中間。頂點V4具有紋理坐標1. 0,0. 5,這對應(yīng)于紋理1702的右邊 緣的中間。從而,當根據(jù)紋理坐標將紋理1702映射到多邊形1704時,僅將紋理1702的上 半部分應(yīng)用到多邊形1704。紋理1702對多邊形1704的應(yīng)用的結(jié)果在紋理化的表面1706 中示出。3D處理流水線一般允許在游戲信息生成的環(huán)境中開發(fā)的多個特殊紋理處理操作。 一個特殊操作被稱為繞回(wrap)模式。在繞回模式中,3D處理流水線將多次重復一紋理, 例如在一個情況中以便產(chǎn)生具有相同內(nèi)容的一行或一個矩陣的紋理。鏡像(mirror)模式 也復制相鄰的紋理,但如鏡子般翻轉(zhuǎn)(反射)紋理。關(guān)于一般本質(zhì)的任何像素陰影著色器主題的其它信息可在多個市場上出售的文 本中找至Ij,諸如 Wolfgang F. Engel 的 Direct3D ShaderX =Vertex and Pixel Shader Tips and Tricks,Wordware 出版公司,2002。使用以上介紹,其余的討論描述了用于使用像素陰影著色器來實現(xiàn)圖1中所示的 圖像處理流水線的各方面的示例性新穎的技術(shù)。一開始,圖18示出了實現(xiàn)具有帶有4個抽頭的內(nèi)核的圖像處理濾波器的像素陰影 著色器1526 (圖15)的示例性應(yīng)用1800。由于圖18中所示的那種類型的處理對由圖1的 流水線100執(zhí)行的眾多其它操作也是基礎(chǔ)性的,因此參考圖18描述的原理應(yīng)用于可由像素 陰影著色器1526執(zhí)行的其它種類的處理。四抽頭濾波器內(nèi)核的情況當然僅是示例性的;稍后的示例解釋該模型可如何被擴展成不同的濾波器設(shè)計。一般,GPU 1524可被配置成掃描過一個或多個輸入圖像,從每一個圖像中提取像 素值,基于輸入應(yīng)用計算并輸出單個像素。該操作可被表示為輸出(X,y)=函數(shù)(輸入 i(x,y),輸入2(χ,y),...輸入ρ(χ,y),數(shù)組常量[m])。換言之,該一般表示表明結(jié)果(輸 出(χ,y))數(shù)學上取決于各種輸入信號(輸入(χ,y),輸入2 (χ,y),· · ·輸入ρ (χ, y))和可 任選地各種定義的常數(shù)(數(shù)組常數(shù)[m])的某種函數(shù)。在使用濾波器的圖像處理的特定環(huán)境中,像素陰影著色器1526需要輸入一個或 多個輸入圖像以及將應(yīng)用于這些圖像的相關(guān)聯(lián)的濾波器權(quán)重。更正式地,生成與輸出像素 相關(guān)聯(lián)的輸出(0ut[x])的濾波器可定義如下Out[χ] = sum(in[x-taps/2+i]^kernel[i], i = 0. . . taps-1)換言之,像素的輸出(0ut[x])表示不同輸入項的加權(quán)和。內(nèi)核表示將應(yīng)用于各輸 入項的權(quán)重信息。不同的輸入項又可表示對輸入圖像信息的同一選段的移位的形式。圖18示出了像素陰影著色器1526如何可實現(xiàn)以上公式。所示的四抽頭示例1800 示出了對像素陰影著色器ALU 1804提供輸入的一連串紋理單元1802。所示方法是將濾波 器權(quán)重分配給第一紋理單元,并將同一圖像信息的四個不同的增量移位版本分配給接下來 的四個紋理單元(表示內(nèi)核的四個抽頭)。像素陰影著色器ALU 1804讀入紋理單元中所存 儲的信息(在單個讀操作中),并為特定像素提供單個輸出(在單個寫操作中)。重復該過 程多次以處理整個圖像。該方法定義帶有“Taps”濾波器抽頭的支持窗口的I-D卷積濾波
ο圖18中所示的示例1800的操作可如下更正式表示。所使用的示例性1_D內(nèi)核具 有“《”像素寬的寬度,內(nèi)核權(quán)重為w[-lK0]、w[2]和w[3]。通過為每一像素計算濾波器 內(nèi)核的四個權(quán)重來計算權(quán)重紋理。I-D內(nèi)核也包括定義為in[_l]、in
、in[l]和in[2] 的四個輸入。符號Δ被定義為Ι/w。給定這些,以下信息被分配給紋理單元1-5 紋理1 “權(quán)重紋理”,坐標為0. . . 1 ;紋理2 :in[-l],坐標為(0. · · 1) + (_1) * Δ (即從0-Δ到1-Δ)的輸入圖像;紋理3: in W],坐標為(0. .. 1) + (0)*Δ的輸入圖像;紋理4 :in[l],坐標為(0···1) + (1)*Δ的輸入圖像;以及紋理5 in [2],坐標為(0. · · 1) + (2) * Δ (即從 0+2* Δ 到 1+2* Δ)的輸入圖像。如果tn表示從紋理單元“η”取出的像素,則由像素陰影著色器ALU 1804執(zhí)行的 計算可由以下程序表示mi , -.wmmMwm^mmM^Let w
= tl. redLet w[l] = tl. greenLet w[2] = tl. blueLet w[3] = tl. alphaOut. rgba = t2. rgba * w
+t3. rgba * w[l]+t4. rgba * w[2]+t5. rgba * w[3]換言之,陣列w首先被分配存儲在第一紋理單元(tl)中的加權(quán)信息的值。然后, 通過以權(quán)重w修改紋理單元t2-t5中所包含的經(jīng)移位的圖像信息來形成輸出結(jié)果(Out. rgba)。附加到寄存器信息的下標定義通道信息。從而,輸出Out. rgba表示存儲在紅、綠、
25藍和阿爾法通道中的四個浮點的向量??梢姡陨纤惴ㄐ枰皌aps”+1個輸入紋理單元,例 如因為一個單元被分配來存儲權(quán)重信息。一般,當輸入圖像信息以RGB格式表示時,則紋理單元可存儲等量的紅、綠和藍分 量。然而,當將像素陰影著色器應(yīng)用于處理亮度相關(guān)圖像信息(諸如YUV)時,則紋理單元 相對于色度信息(U、v)可存儲較多的亮度信息。這種規(guī)定利用人眼對亮度信息比色度信息 更敏感的事實,因此不必要存儲和處理與亮度信息一樣多的色度信息以達到可接受的輸出結(jié)果。構(gòu)想了上述方法的多個變型和優(yōu)化。根據(jù)一種變型,上述繞回模式可用于將任何紋理作為圖像信息的無限瓦片(tile) 來處理。使用這種模式,一種方法是設(shè)置0到1. 0/gcd(Sourceffidth, Destinationffidth) 而不是0. . . 1的輸入權(quán)重紋理的坐標。在應(yīng)用該紋理時,紋理預(yù)取單元將自動“繞回”至存 儲在紋理中的權(quán)重信息的下一副本。這種規(guī)定允許設(shè)計者減少內(nèi)核的存儲需求,同時仍確 保當有需要時其信息將被重復應(yīng)用。根據(jù)另一變型,內(nèi)核可具有4個以上抽頭。為解決這種情況,一種實現(xiàn)可將內(nèi)核權(quán) 重信息集分解為一組四個的值,并將每一值分配給附加的輸入“權(quán)重”紋理??紤]其中有6 個抽頭的情況。在這種情況中,實現(xiàn)可使用兩個權(quán)重紋理(第一紋理具有4個值,第二紋理 具有其余的2個值,剩下2個槽未使用)。這種實現(xiàn)也要求6個輸入圖像紋理。因此,為實 現(xiàn)這種設(shè)計,可使用8個紋理GPU來單遍執(zhí)行使用6個抽頭的濾波。根據(jù)另一變型,抽頭的數(shù)目可超過紋理單元的數(shù)目。注意,對輸出圖像信息的計算 表示“taps”項的總和。因此,較大數(shù)目的抽頭可通過將對總和的計算分解成多遍處理來計 算。例如,如果濾波器內(nèi)核具有12個抽頭,則一種實現(xiàn)可計算0ut[x] =SUm(in[X+i]*W[i], i*0. · 11)為:Suml [χ] = sum (in [x+i] * w [i],i = 0. · · 3)Sum2 [x] = sum (in [x+i] * w [i],i = 4. · · 8)Sum3 [x] = sum (in [x+i] * w [i],i = 9. · · 11)該實現(xiàn)然后可使用最后一遍來組合結(jié)果Out [χ] = suml [χ] +sum2 [χ] +sum3 [χ](三個讀,一個寫)另一種可能的實現(xiàn)可經(jīng)由以下一連串操作來聚集Out [χ]Out [χ] = suml [χ](寫)Out [χ] = out [χ] +sum2 [χ](讀,讀,寫)Out [χ] = out [χ] +sum3 [χ](讀,讀,寫)后一方法實質(zhì)上比前一方法要求較少的存儲器,但相比前一方法,它也要求了兩 倍的存儲器訪問(例如,四個讀和三個寫)。后一策略的這種特征可使其不可行,因為GPU 上的讀_修改_寫循環(huán)是非常耗時的,或可能被禁止的。根據(jù)另一變型,一種實現(xiàn)可提供將定義的圖像信息以外的所有像素作為黑色(或 某個其它默認值)來處理的特殊模型(“削除像素(kill pixel)”)。這種規(guī)定可被應(yīng)用來 對不應(yīng)顯示的圖像自動“隱藏”邊緣條件。根據(jù)另一變型,一種實現(xiàn)可在處理圖像信息時應(yīng)用上述鏡像模式。該模式在參考 圖像信息邊界以外的圖像信息時以水平或垂直中任一種方式反射圖像信息。
圖19示出了概述上述特征中的多個的過程1900。步驟1902需要將各種輸入信息 分配給像素陰影著色器的各個輸入單元。這樣的信息可包括應(yīng)用于紋理單元的圖像信息和 權(quán)重信息、應(yīng)用于各個常量單元的常量等。步驟1904需要基于對像素陰影著色器ALU 1804 提供的編程指令在逐個像素的基礎(chǔ)上計算輸出圖像信息。步驟1906確定是否還需要額外 的遍數(shù)。如果是,則過程1900 —次或多次重復圖19中所示的操作中的一個或多個。步驟 1908產(chǎn)生最終輸出結(jié)果。作為最后一個主題,圖20示出了執(zhí)行在圖1的環(huán)境中介紹的若干操作的像素陰影 著色器1526的應(yīng)用。圖20尤其關(guān)注其中流水線接收4:2:2YUV圖像信息、對其過采樣、將 其轉(zhuǎn)換成線性RGB形式并對所得的線性信息執(zhí)行縮放的一個示例性應(yīng)用。圖20中所示的 處理是基于以上參考圖18和19形成的概念。注意,以混合平面格式(諸如NV12)表示的4:2:0圖像信息可作為包括亮度平面 和色度平面來對待。從而可能并行地對該信息執(zhí)行某些處理?!N方法是將紋理單元劃分成兩個組,一個組用于內(nèi)插色度分量。該過采樣操作 調(diào)用可用于生成4:4:4的色度信息的縮放放大操作。像素陰影著色器1526然后可使用亮 度和內(nèi)插的色度分量,使用轉(zhuǎn)移矩陣在逐個像素的基礎(chǔ)上計算相應(yīng)的R' G' B'信息。接 著,像素陰影著色器1526可應(yīng)用傳遞函數(shù)以線性化圖像信息。然后,像素陰影著色器1526 可用于使用第二組紋理單元在RGB空間中執(zhí)行進一步縮放。更正式地,以下標識了可用于按上述方式變換圖像信息的示例性步驟序列。1)以上述方式(圖18中所示)設(shè)置紋理1-5以執(zhí)行第一縮放操作。2)使用上述縮放操作以亮度信息兩倍的采樣速率來計算CbCr信息。3)將Y' CbCr到R' G' B'色空間轉(zhuǎn)換矩陣加載到16個常量的數(shù)組內(nèi),作為矩 陣M。4)按以下方式計算R' G' B'信息計算R ‘ = dotProd4(M
, aY' CbCr)計算G' = dotProd4(M[l], aY' CbCr)計算B' = dot Prod4(M[2], aY' CbCr)計算A' = dot Prod4(M[3], aY' CbCr)5)使用傳遞函數(shù)從R' G' B'中計算RGB。6)通過使用上述的算法(參考圖18)但使用紋理6-12計算經(jīng)縮放的線性RGB數(shù) 據(jù)來執(zhí)行第二縮放操作。7)當執(zhí)行了水平縮放之后,對RGB信息應(yīng)用垂直縮放。圖20示出了以流程圖形式解釋上述算法的過程2000。步驟2002涉及將信息分配 給適當?shù)募y理單元(例如,第一組紋理單元)。步驟2004需要使用第一組紋理單元來對色 度信息進行過采樣。步驟2006需要將執(zhí)行色空間轉(zhuǎn)換所使用的常量加載到像素陰影著色 器1526內(nèi)。步驟2008需要使用常量來將圖像信息轉(zhuǎn)換成非線性的R' G' B'形式。步驟 2010需要將R' G' B'信息轉(zhuǎn)換成線性RGB形式。而步驟2012需要縮放RGB信息。C.示例性計算機環(huán)境在一個示例性實現(xiàn)中,在之前的附圖中所示的處理的各個方面可由計算裝置執(zhí) 行。在這種情況中,圖21提供了關(guān)于可用于實現(xiàn)之前的附圖中所示的處理的各個方面的示
27例性計算機環(huán)境2100的信息。例如,計算機可用于實現(xiàn)圖1中所示的圖像處理流水線的部 分或全部。計算環(huán)境2100包括通用型計算機2102和顯示設(shè)備2104。然而,計算環(huán)境2100可 包括其它種類的計算裝置。例如,盡管未示出,但計算機環(huán)境2100可包括手持式或膝上型 設(shè)備、機頂盒、游戲控制臺、集成到視頻處理/呈現(xiàn)設(shè)備(例如,電視、DVD等)的處理功能、 大型機等。此外,圖21示出了組合在一起以便于討論的計算機環(huán)境2100的元件。然而,計 算環(huán)境2100可采用分布式處理配置。在分布式計算環(huán)境中,計算資源可在整個環(huán)境中物理 分散。示例性計算機2102包括一個或多個處理器或處理單元2106、系統(tǒng)存儲器2108和 總線2110??偩€2110將各種系統(tǒng)組件連接在一起。例如,總線2110將處理器2106連接至 系統(tǒng)存儲器2108??偩€2110可使用任何種類的總線結(jié)構(gòu)或總線結(jié)構(gòu)的組合實現(xiàn),包括存儲 器總線或存儲器控制器、外圍總線、加速圖形端口和使用各種總線體系結(jié)構(gòu)中任一種的處 理器或本地總線。計算機2102也可以上述方式耦合至一個或多個GPU單元(未示出)。計算機2102也可包括各種計算機可讀介質(zhì),包括各種類型的易失性和非易失性 介質(zhì),其中的每一個可以是可移動或不可移動的。例如,系統(tǒng)存儲器2108包括易失性存儲 器形式的計算機可讀介質(zhì),諸如隨機存取存儲器(RAM)2112,以及非易失性存儲器形式的計 算機可讀介質(zhì),諸如只讀存儲器(ROM) 2214。ROM 2114包括包含有助于諸如啟動時在計算 機2102內(nèi)元件之間傳遞信息的基本例程的輸入/輸出(BI0S)2116。RAM 2112—般包含可 由處理單元2106迅速訪問的形式的數(shù)據(jù)和/或程序模塊。其它種類的計算機存儲介質(zhì)包括用于從不可移動、非易失性磁介質(zhì)中讀取或向其 寫入的硬盤驅(qū)動器2118,從可移動、非易失性磁盤2122(例如,“軟盤”)中讀取或向其寫入 的磁盤驅(qū)動器2120,以及從諸如⑶-R0M、DVD-R0M或其它光學介質(zhì)等可移動、非易失性光盤 2126中讀取或向其寫入的光盤驅(qū)動器2124。硬盤驅(qū)動器2118、磁盤驅(qū)動器2120和光盤驅(qū) 動器2124各自通過一個或多個數(shù)據(jù)介質(zhì)接口 2128連接至系統(tǒng)總線2110。或者,硬盤驅(qū)動 器2118、磁盤驅(qū)動器2120和光盤驅(qū)動器2124可由SCSI接口(未示出)或其它耦合機制連 接至系統(tǒng)總線2110。盡管未示出,但計算機2102可包括其它類型的計算機可讀介質(zhì),諸如 磁帶或其它磁存儲介質(zhì)、閃存卡、CD-ROM、數(shù)字多功能盤(DVD)或其它光學存儲、電可擦可 編程只讀存儲器(EEPROM)等。一般,上述計算機可讀介質(zhì)提供對由計算機2102使用的計算機可讀指令、數(shù)據(jù)結(jié) 構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲。例如,可讀介質(zhì)可存儲操作系統(tǒng)2130、應(yīng)用程序 模塊2132、其它程序模塊2134以及程序數(shù)據(jù)2136。計算機環(huán)境2100可包括各種輸入設(shè)備。例如,計算機環(huán)境2100包括用于向計算 機2102輸入命令和信息的鍵盤2138和定點設(shè)備2140 (例如,“鼠標”)。計算機環(huán)境2100 可包括其它輸入設(shè)備(未示出),諸如麥克風、操縱桿、游戲墊、圓盤式衛(wèi)星天線、串行端口、 掃描儀、讀卡設(shè)備、數(shù)碼相機或數(shù)碼攝影機等。輸入/輸出接口 2142將輸入設(shè)備耦合至處 理單元2106。更一般地,輸入設(shè)備可經(jīng)由任何種類的接口和總線結(jié)構(gòu)耦合至計算機2102, 諸如并行端口、串行端口、游戲端口、通用串行總線(USB)端口等。計算機環(huán)境2100還包括顯示設(shè)備2104。視頻適配器2144將顯示設(shè)備2104耦合 至總線2110。除顯示設(shè)備2104以外,計算機環(huán)境2100可包括其它輸出外圍設(shè)備,諸如揚聲
28器(未示出)、打印機(未示出)等。計算機2102使用與諸如遠程計算設(shè)備2146等一個或多個遠程計算機的邏輯連接 在網(wǎng)絡(luò)化環(huán)境中操作。遠程計算設(shè)備2146可包括任何種類的計算機裝置,包括通用個人計 算機、便攜式計算機、服務(wù)器、游戲控制臺、網(wǎng)絡(luò)擴充設(shè)備等。遠程計算設(shè)備2146可包括以 上參考計算機2102討論的所有特征或其某個子集??墒褂萌魏晤愋偷木W(wǎng)絡(luò)2148使計算機2102與遠程計算設(shè)備2146耦合,諸如WAN、 LAN等。計算機2102經(jīng)由網(wǎng)絡(luò)接口耦合至網(wǎng)絡(luò)2148,該接口可利用寬帶連接、調(diào)制解調(diào)器 連接、DSL連接或其它連接策略。盡管未示出,但計算環(huán)境2100可提供用于使計算機2102 與遠程計算設(shè)備2146連接的無線通信功能(諸如,經(jīng)由已調(diào)制無線電信號、已調(diào)制紅外線 信號等)。作為結(jié)束,在本公開中以替換方式(例如,情況A或情況B)提供了多個示例。此 外,本公開包括在單個實現(xiàn)中組合替換的情況(例如,情況A和情況B),即使本公開可能沒 有在每個示例中明示這些結(jié)合的情況。而且,此處通過首先標識特征可解決的示例性問題來描述了這多個特征。這種方 式的說明并不承認他人已經(jīng)以此處指定的方式理解和/或明白表示了這些問題。對視頻處 理領(lǐng)域中存在的問題的理解和明白表示將被理解為本發(fā)明的一部分。盡管以結(jié)構(gòu)特征和/或方法動作專用的語言描述了本發(fā)明,但可理解,在所附權(quán) 利要求書中定義的本發(fā)明不必限于所述的具體特征或動作。相反,這些具體特征和動作是 作為實現(xiàn)要求保護的本發(fā)明的示例性形式而公開的。
權(quán)利要求
一種用于以線性形式處理圖像信息的方法,包括接收非線性形式的圖像信息;將所述圖像信息轉(zhuǎn)換成高精度線性RGB格式;以及對所述高精度線性RGB格式的圖像信息執(zhí)行處理。
2.一種用于以線性形式處理圖像信息的圖像處理流水線設(shè)備,包括 用于接收非線性形式的圖像信息的裝置;用于將所述圖像信息轉(zhuǎn)換成高精度線性RGB格式的裝置;以及 用于對所述高精度線性RGB格式的圖像信息執(zhí)行處理的裝置。
3.一種量化并抖動原始圖像信息以產(chǎn)生經(jīng)量化的圖像信息的方法,包括量化組合了從所述圖像信息中取出的原始值、噪聲值和誤差項的總和以產(chǎn)生量化值;以及通過計算所述量化值與所述原始值之差來計算供后續(xù)的量化操作使用的誤差項。
4.一種用于量化并抖動原始圖像信息以產(chǎn)生經(jīng)量化的圖像信息的圖像處理流水線設(shè) 備,包括用于量化組合了從所述圖像信息中取出的原始值、噪聲值和誤差項的總和以產(chǎn)生量化 值的裝置;以及用于通過計算所述量化值與所述原始值之差來計算供后續(xù)的量化操作使用的誤差項 的裝置。
5.一種用于以偽線性形式處理圖像信息的方法,包括 接收非線性形式的圖像信息;使用傳遞函數(shù)將所述圖像信息轉(zhuǎn)換成偽線性形式;以及使用適用于處理線性信息的至少一個算法對所述偽線性形式的圖像信息執(zhí)行處理。
6.一種用于以偽線性形式處理圖像信息的圖像處理流水線設(shè)備,包括 用于接收非線性形式的圖像信息的裝置;用于使用傳遞函數(shù)將所述圖像信息轉(zhuǎn)換成偽線性形式的裝置;以及用于使用適用于處理線性信息的至少一個算法對所述偽線性形式的圖像信息執(zhí)行處理的裝置。
7.一種用于使用濾波器通過以下步驟對圖像信息執(zhí)行縮放操作的方法基于將執(zhí)行的縮放,計算實現(xiàn)所述濾波器所需的濾波器內(nèi)核數(shù)目以及每一濾波器內(nèi)核 所需的抽頭的數(shù)目;預(yù)計算并存儲所述數(shù)目的濾波器內(nèi)核;如果在所述圖像信息的行或列中存在多于預(yù)計算的濾波器內(nèi)核的像素元素,則通過重 復順序通過所述濾波器內(nèi)核將所述濾波器內(nèi)核應(yīng)用于所述行或列。
8.一種用于使用濾波器通過以下步驟對圖像信息執(zhí)行縮放操作的圖像處理流水線設(shè) 備,包括用于基于將執(zhí)行的縮放,計算實現(xiàn)所述濾波器所需的濾波器內(nèi)核數(shù)目以及每一濾波器 內(nèi)核所需的抽頭的數(shù)目的裝置;用于預(yù)計算并存儲所述數(shù)目的濾波器內(nèi)核的裝置;如果在所述圖像信息的行或列中存在多于預(yù)計算的濾波器內(nèi)核的像素元素,則用于通過重復順序通過所述濾波器內(nèi)核將所述濾波器內(nèi)核應(yīng)用于所述行或列的裝置。
9.一種用于生成用于實現(xiàn)圖像處理流水線的代碼的方法,包括 輸入所述圖像處理流水線的要求;以及從代碼模塊庫中組裝可用于實現(xiàn)所述要求的代碼模塊,其中不需要的代碼模塊不在所 生成的代碼中使用。
10.如權(quán)利要求9所述的方法,其特征在于,所述代碼模塊的組裝在應(yīng)用所述圖像處理 流水線之前使用靜態(tài)分析來生成用于實現(xiàn)所述圖像處理流水線的代碼。
11.一種用于生成用于實現(xiàn)圖像處理流水線的代碼的圖像處理流水線設(shè)備,包括 用于輸入所述圖像處理流水線的要求的裝置;以及用于從代碼模塊庫中組裝可用于實現(xiàn)所述要求的代碼模塊,其中不需要的代碼模塊不 在所生成的代碼中使用的裝置。
12.一種用于使用圖形處理單元的像素陰影著色器來執(zhí)行圖像處理流水線中的至少一 個處理任務(wù)的方法,包括將權(quán)重信息分配給所述像素陰影著色器的至少一個紋理單元; 將輸入圖像信息的增量移位形式分配給所述像素陰影著色器的多個其它紋理單元;以及基于來自所述紋理單元的信息使用所述像素陰影著色器來執(zhí)行操作,從而提供輸出結(jié)果。
13.一種用于使用圖形處理單元的像素陰影著色器來執(zhí)行圖像處理流水線中的至少一 個處理任務(wù)的圖像處理流水線設(shè)備,包括用于將權(quán)重信息分配給所述像素陰影著色器的至少一個紋理單元的裝置; 用于將輸入圖像信息的增量移位形式分配給所述像素陰影著色器的多個其它紋理單 元的裝置;以及用于基于來自所述紋理單元的信息使用所述像素陰影著色器來執(zhí)行操作的裝置,從而 提供輸出結(jié)果。
全文摘要
描述了用于以線性形式處理圖像信息以減少偽影數(shù)量(相比以非線性形式處理數(shù)據(jù))的策略。示例性的各種處理操作可包括,縮放、合成、阿爾法混合、邊緣檢測等。在一個更具體的實現(xiàn)中,描述了用于處理a)線性;b)位于RGB色空間中;c)高精度(例如,以浮點表示提供);d)逐行;以及e)全通道的圖像信息的策略。其它改進提供用于a)在偽線性空間中處理圖像信息以改進處理速度;b)實現(xiàn)改進的誤差分散技術(shù);c)動態(tài)計算和應(yīng)用濾波器內(nèi)核;d)以最優(yōu)方式產(chǎn)生流水線代碼;以及e)使用新穎的像素陰影著色器技術(shù)實現(xiàn)各種處理任務(wù)的策略。
文檔編號H04N9/64GK101977329SQ201010518248
公開日2011年2月16日 申請日期2005年7月28日 優(yōu)先權(quán)日2004年7月29日
發(fā)明者D·J·穆瑟爾, G·F·伊萬斯, S·L·斯帕爾斯 申請人:微軟公司