數(shù)字圖像和視頻用像素表示,每個像素都具有顏色值??梢杂脕肀硎締为毜南袼氐念伾臄?shù)量是用來描述顏色的位的數(shù)量的函數(shù)。增加用來表示顏色的位的數(shù)量則增加了可以表示的顏色的數(shù)量。這稱為位深。
經(jīng)常按照每種顏色每個像素有八位的色位深來存儲和/傳輸圖像。在具有高分辨率和高對比度的顯示器上觀看時,令人反感的視覺偽影由于色位深而變得明顯。將常見的和非常明顯的視覺偽影稱為“條帶(banding)”或者“假輪廓(false contouring)”,其出現(xiàn)在本應(yīng)該是平滑的逐漸的顏色轉(zhuǎn)變(即,梯度)的圖像區(qū)域反而卻由其間具有明顯邊界的色帶來表示時。可以通過按照更高位深存儲圖像和視頻來消除這些偽影,在更高位深時,每個像素的顏色值用更多的位來表示。然而,許多先前記錄的圖像都已經(jīng)按照低位深(諸如每種顏色每個像素有八位)存儲。另外,增加圖像的位深導(dǎo)致在存儲圖像所需的空間和必須傳輸以便通過網(wǎng)絡(luò)發(fā)送圖像的數(shù)據(jù)量方面的對應(yīng)增加。
技術(shù)實現(xiàn)要素:
本公開大體上涉及增加圖像和視頻的位深。
本公開的實施例的一方面是一種用于處理具有第一位深的圖像的方法。該方法包括執(zhí)行位深增強操作的兩次或者更多次迭代,該位深增強操作將圖像的位深增加到高于第一位深的第二位深。位深增強操作包括將圖像劃分為多個區(qū)域,執(zhí)行邊緣檢測操作以識別多個區(qū)域中不包含邊緣特征的一個或者多個區(qū)域,并且將模糊應(yīng)用到多個區(qū)域中不包含邊緣特征的一個或者多個區(qū)域。在位深增強操作的第一次迭代中,該多個區(qū)域包括第一數(shù)量的區(qū)域,并且包括在多個區(qū)域中的區(qū)域的數(shù)量隨位深增強操作的每次后續(xù)迭代而減少。
本公開的實施例的另一方面是一種用于處理具有第一位深的圖像的設(shè)備。該設(shè)備包括:存儲器;以及處理器,該處理器被配置為執(zhí)行存儲在存儲器中的指令以執(zhí)行位深增強操作的兩次或者更多次迭代,該位深增強操作將圖像的位深增加到高于第一位深的第二位深。位深增強操作包括將圖像劃分為多個區(qū)域,執(zhí)行邊緣檢測操作以識別多個區(qū)域中不包含邊緣特征的一個或者多個區(qū)域,并且將模糊應(yīng)用到多個區(qū)域中不包含邊緣特征的一個或者多個區(qū)域。在位深增強操作的第一次迭代中,多個區(qū)域包括第一數(shù)量的區(qū)域,并且包括在多個區(qū)域中的區(qū)域的數(shù)量隨位深增強操作的每次后續(xù)迭代而減少。
本公開的實施例的另一方面是一種包括可由一個或者多個處理器執(zhí)行的程序指令的非暫時性計算機可讀存儲裝置,該程序指令在被執(zhí)行時使一個或者多個處理器執(zhí)行用于處理具有第一位深的圖像的操作。該操作包括執(zhí)行位深增強操作的兩次或者更多次迭代,該位深增強操作將圖像的位深增加到高于第一位深的第二位深。位深增強操作包括將圖像劃分為多個區(qū)域,執(zhí)行邊緣檢測操作以識別多個區(qū)域中不包含邊緣特征的一個或者多個區(qū)域,并且將模糊應(yīng)用到多個區(qū)域中不包含邊緣特征的一個或者多個區(qū)域。在位深增強操作的第一次迭代中,多個區(qū)域包括第一數(shù)量的區(qū)域,并且包括在多個區(qū)域中的區(qū)域的數(shù)量隨位深增強操作的每次后續(xù)迭代而減少。
在這些公開的實施例的一些實施方式中,包括在該多個區(qū)域中的區(qū)域的數(shù)量隨位深增強操作的每次后續(xù)迭代減少大約百分之七十五。
在這些公開的實施例的一些實施方式中,通過針對第一次迭代和每次后續(xù)迭代使用恒定區(qū)域大小來執(zhí)行將圖像劃分為多個區(qū)域。在其它實施方式中,通過針對第一次迭代使用第一區(qū)域大小并且針對每次后續(xù)迭代增加區(qū)域大小來執(zhí)行將圖像劃分為多個區(qū)域。
在這些公開的實施例的一些實施方式中,該多個區(qū)域中的每個區(qū)域包括各自具有像素值的多個像素,并且邊緣檢測操作包括將每個區(qū)域中的最大像素值與每個區(qū)域中的最小像素值進行比較。在這些實施方式的變化中,在該多個區(qū)域中的相應(yīng)區(qū)域中的最大像素值與最小像素值之差超過閾值時,識別邊緣特征。
在這些公開的實施例的一些實施方式中,該多個區(qū)域中的每個區(qū)域包括各自具有像素值的多個像素,并且應(yīng)用模糊包括對在不包含邊緣特征的一個或者多個區(qū)域中的每個區(qū)域中的像素值進行平均。
鑒于這些方面的變化,下文以另外的細節(jié)描述了實施方式和實施例。
附圖說明
本文的描述參考了附圖,其中,貫穿多個視圖,類似的附圖標記表示類似的部分,并且其中:
圖1是示出了可以實施用于增加圖像的色位深的系統(tǒng)的環(huán)境的示例的框圖;
圖2是示出了接收站的硬件配置的示例的框圖;
圖3是示出了輸入圖像的示例的圖示;
圖4是示出了用于增加圖像的色位深的系統(tǒng)的操作的框圖;
圖5是示出了用于增加圖像的色位深的示例過程的流程圖;
圖6是示出了將圖像劃分為區(qū)域并且檢測這些區(qū)域中的邊緣特征的第一示例的圖示;
圖7是示出了將圖像劃分為區(qū)域并且檢測這些區(qū)域中的邊緣特征的第二示例的圖示;以及
圖8是示出了用于增加圖像的色位深的圖像增強功能的示例的框圖。
具體實施方式
本文描述的系統(tǒng)和方法涉及通過按照多個尺度應(yīng)用基于閾值的模糊來增加數(shù)字圖像的位深。通過按照多尺度應(yīng)用模糊,來自動確定模糊的大小。通過應(yīng)用每個尺度的閾值,避免了基于圖像的內(nèi)容來明確分割圖像的需要??梢詫⒚總€模糊操作和閾值操作單獨應(yīng)用到圖像的離散區(qū)域(諸如像素組),以局部化模糊的影響并且維持邊緣特征??蛇x地,可以通過使用圖像的偏移副本來應(yīng)用濾波操作以確保平滑插值。
圖1是示出了可以實施用于增加圖像的位深的系統(tǒng)的環(huán)境100的示例的框圖。環(huán)境100包括通過網(wǎng)絡(luò)130連接的傳輸站110和接收站120??梢园凑赵S多方式(諸如,按照具有存儲器和處理器的一個或者多個計算裝置的形式)來實施傳輸站110和接收站120。網(wǎng)絡(luò)130可以是或者包括互聯(lián)網(wǎng)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、虛擬專用網(wǎng)(VPN)、蜂窩電話網(wǎng)、或者將信息從傳輸站110傳送到接收站120的任何其它裝置中的任何一種或者所有。
可操作接收站120以通過根據(jù)本文所教導(dǎo)的方法對圖像進行處理來增加圖像的位深。然后,可以輸出圖像以在接收站120處向用戶顯示。如本文使用的,圖像可以是單獨的靜態(tài)圖像,諸如數(shù)碼照片、或者來自視頻的幀。
在一種實施方式中,將接收站120處理的圖像經(jīng)由網(wǎng)絡(luò)130從傳輸站110傳輸?shù)浇邮照?20,并且在接收到這些圖像之后,通過接收站120對這些圖像進行處理。例如,圖像可以是來自視頻流的幀。響應(yīng)于來自接收站120的請求,傳輸站110可以將視頻流傳輸?shù)浇邮照?20。在一些實施方式中,在傳輸視頻流之前,通過傳輸站110對視頻流進行編碼。在其它實施方式中,先前已經(jīng)對視頻流進行了編碼并且將其存儲在傳輸站110處。按照第一色位深對視頻流進行編碼。在接收到視頻流并且對視頻流進行編碼之后,接收站120根據(jù)本文所教導(dǎo)的方法處理來自視頻流的圖像(即,幀)以便增加圖像的位深。
圖2是圖1的接收站120的硬件配置的示例的框圖。可以使用相同硬件配置或者相似硬件配置來實施傳輸站110。接收站120可以包括CPU 210。CPU 210可以是傳統(tǒng)的中央處理單元??商娲?,CPU 210可以是現(xiàn)在存在的或者以后會開發(fā)出來的能夠操縱或者處理信息的任何其它類型的裝置、或者多個裝置。盡管可以用如圖所示的單個處理器(例如,CPU 210)來實踐所公開的示例,但是可以通過使用一個以上的處理器來實現(xiàn)在速度和效率方面的優(yōu)勢。
接收站120可以包括存儲器220,諸如隨機存取存儲器裝置(RAM)。也可以將任何其它適合的類型的存儲裝置用作存儲器220。存儲器220可以包括可以通過使用總線230由CPU 210訪問的代碼和數(shù)據(jù)222。存儲器220可以進一步包括一個或者多個應(yīng)用程序224和操作系統(tǒng)226。應(yīng)用程序224可以包括使CPU 210執(zhí)行此處描述的操作和方法的計算機可執(zhí)行程序指令形式的軟件部件。
可選地,可以按照任何適合的計算機可讀介質(zhì)(諸如硬盤驅(qū)動器、存儲器裝置、閃存驅(qū)動器、或者光驅(qū))的形式來提供存儲裝置240。一個或者多個輸入裝置250(諸如鍵盤、鼠標、或者手勢敏感輸入裝置)接收用戶輸入并且可以將指示用戶輸入的信號或者數(shù)據(jù)輸出到CPU 210??梢蕴峁┮粋€或者多個輸出裝置,諸如顯示裝置260。顯示裝置260(諸如液晶顯示器(LCD)或者陰極射線管(CRT))允許將輸出呈現(xiàn)給用戶,例如,響應(yīng)于接收到視頻信號。
盡管圖2將接收站120的CPU 210和存儲器220描繪為集成到單個單元中,但可以利用其它配置??梢钥缍鄠€機器(每個機器具有一個或者多個處理器)來分布CPU 210的操作,該多個機器可以直接地耦合或者跨局域網(wǎng)或者其它網(wǎng)絡(luò)耦合??梢钥缍鄠€機器來分布存儲器220,諸如基于網(wǎng)絡(luò)的存儲器或者在多個機器中的存儲器。盡管此處將接收站120的總線230描繪為單條總線,但接收站120的總線230可以由多條總線組成。進一步地,可以將存儲裝置240直接耦合至接收站120的其它部件或者可以經(jīng)由網(wǎng)絡(luò)來訪問存儲裝置240,并且該存儲裝置240可以包括單個集成單元(諸如存儲卡)或者多個單元(諸如多個存儲卡)。因此,可以將接收站120實施為各種各樣的配置。
圖3是示出了可以通過使用本文公開的系統(tǒng)和方法來處理的輸入圖像300的示例的圖示。如在本領(lǐng)域中眾所周知的,輸入圖像300是由像素定義的數(shù)字圖像。每個像素都具有顏色值,該顏色值定義了當輸出相應(yīng)像素以便顯示時該相應(yīng)像素的顏色。例如,可以通過多個分量值來定義每個顏色值,如在眾所周知的顏色空間(諸如RGB顏色空間、YUV顏色空間、HSV顏色空間、或者HSL顏色空間)中一樣,該顏色空間可以將像素表示為分量值的元組。
輸入圖像300包括高細節(jié)區(qū)域310和低細節(jié)區(qū)域320。高細節(jié)區(qū)域310是輸入圖像300的包括了鄰近像素值的顯著變化的部分。本文將這些變化稱為邊緣特征。輸入圖像300的低細節(jié)區(qū)域320包括其顏色值的細微變化,例如,顏色值的逐漸和漸進改變(例如,梯度)。例如,高細節(jié)區(qū)域310可能是特定圖像的前景部分,其中,圖像中的特征密集并且在焦距內(nèi),而低細節(jié)區(qū)域320是圖像的背景部分。
可以按照低色位深來存儲輸入圖像300,諸如每種顏色每個像素有八位的色位深。這可以導(dǎo)致可用顏色的數(shù)量不足以表示自然存在于圖像中的顏色的細微變化。相反,在輸出圖像以便進行顯示時,可以在圖像中看見視覺偽影(諸如假輪廓330),從而使得,在低細節(jié)區(qū)域320中,圖像的觀看者可以能夠感知從一個顏色值到下一個顏色值的可見轉(zhuǎn)變。
圖4示出了用于增加圖像的色位深的系統(tǒng)400的操作。系統(tǒng)400接收輸入圖像300作為其輸入,并且生成輸出圖像440作為其輸出。例如,可以通過接收站120執(zhí)行計算機程序指令,來在接收站120處實施系統(tǒng)400。
首先,可以根據(jù)視頻或者靜態(tài)圖像格式或者任何類型對輸入圖像300進行編碼。如本領(lǐng)域中眾所周知的,在解碼子系統(tǒng)410處接收輸入圖像300作為輸入,該解碼子系統(tǒng)410將輸入圖像解碼成任何適合形式的像素值。作為示例,像素值可以是RGB格式或者YUV格式。
然后,將表示輸入圖像300的像素值傳遞到位深增強子系統(tǒng)420。位深增強子系統(tǒng)420將輸入圖像300的位深從第一位深增加到高于該第一位深的第二位深。
可操作位深增強子系統(tǒng)420以通過按照多個尺度但不按照預(yù)定大小應(yīng)用模糊來增加輸入圖像300的色位深。相反,通過檢測輸入圖像300中的邊緣特征來動態(tài)確定模糊的大小。例如,針對多個漸進變大的模糊大小中的每一個,可以將圖像劃分為區(qū)域:不對包含邊緣特征的區(qū)域進行模糊以便保留邊緣特征,并且對不包含邊緣特征的區(qū)域進行模糊。在一個示例中,通過對區(qū)域內(nèi)的像素值進行平均,并且將所有像素設(shè)置為平均值或者基于該平均值修改所有像素值,來在圖像的該區(qū)域內(nèi)執(zhí)行模糊。在沒有邊緣特征的區(qū)域內(nèi),模糊操作使圖像的像素值改變?yōu)榘凑請D像的原始色位深不可用的顏色值,因此增加了圖像中顏色信息量。
在一種實施方式中,位深增強子系統(tǒng)420通過將圖像劃分為多個區(qū)域,執(zhí)行邊緣檢測操作以識別多個區(qū)域中不包含邊緣特征的一個或者多個區(qū)域,并且將模糊應(yīng)用到多個區(qū)域中不包含邊緣特征的該一個或者多個區(qū)域,來執(zhí)行位深增強操作的兩次或者更多次迭代。在位深增強操作的第一次迭代中,該多個區(qū)域包括第一數(shù)量的區(qū)域,并且區(qū)域的數(shù)量隨位深增強操作的每次后續(xù)迭代而減少??梢酝ㄟ^增加區(qū)域的單像素大小,或者通過在隨著每次迭代而將圖像下縮放(downscale)的同時維持區(qū)域的恒定單像素大小,來減少區(qū)域的數(shù)量。當按照不同的尺度創(chuàng)建多個圖像時,隨后將這些圖像上縮放(upscale)并且將它們進行組合,從最大尺度的圖像中獲取該組合后的圖像中的區(qū)域,在該最大尺度時,在相應(yīng)的區(qū)域中識別到邊緣特征。
濾波子系統(tǒng)430可以對圖像進行濾波以去可的除能通過位深增強子系統(tǒng)420創(chuàng)建視覺偽影(若存在)。在位深增強子系統(tǒng)420執(zhí)行的處理之后或者并行于位深增強子系統(tǒng)420執(zhí)行的處理,濾波子系統(tǒng)430可以通過按照漸進變大的模糊大小中的每一個應(yīng)用濾波,來執(zhí)行濾波操作。在通過濾波子系統(tǒng)430應(yīng)用的濾波操作的一個示例中,針對圖像的第一副本和圖像的通過一個像素對角線移位已經(jīng)偏移的第二副本,來執(zhí)行由位深增強子系統(tǒng)420應(yīng)用的每個模糊步驟。然后,將圖像的兩個副本進行平均以生成輸出圖像440??梢岳闷渌鼮V波方法來生成輸出圖像440。在一些實施方式中,省略了濾波子系統(tǒng)430,并且在不進行濾波的情況下通過位深增強子系統(tǒng)420來生成輸出圖像440。
圖5是示出了用于增加圖像的色位深的過程500的第一示例的流程圖。可以在一個或者多個計算機處(諸如在接收站120處)執(zhí)行結(jié)合過程500描述的操作。在將操作描述為由一個或者多個計算機執(zhí)行時,在通過獨立工作的一個計算機、或者共同工作的多個計算機來執(zhí)行該操作時,完成該操作。結(jié)合過程500描述的操作可以體現(xiàn)為包括可由一個或者多個處理器執(zhí)行的程序指令的非暫時性計算機可讀存儲介質(zhì),該程序指令在被執(zhí)行時使該一個或者多個處理器執(zhí)行該操作。例如,可以將結(jié)合過程500描述的操作存儲在接收站120的存儲器220處并且該操作可由其CPU 210執(zhí)行。
操作510包括獲取輸入圖像,諸如輸入圖像300。例如,可以通過訪問來自存儲器的圖像、訪問來自存儲裝置的圖像、或者經(jīng)由網(wǎng)絡(luò)傳輸(諸如經(jīng)由網(wǎng)絡(luò)130從傳輸站110到接收站120的傳輸)接收圖像,來獲取輸入圖像。如有必要,可以對圖像進行解碼以獲取圖像的像素值。
在操作510之后,圖像處理子過程的第一次迭代開始,從操作520開始并且還包括操作530、540、550和560。在圖像處理子過程的第一次迭代中,按照第一尺度來應(yīng)用模糊。在子過程的每次迭代中,改變模糊的尺度。
在操作520中,將圖像劃分為多個區(qū)域。通過在操作520中將圖像劃分為多個區(qū)域來控制模糊的尺度。基于第一次迭代的初始尺度并且按照后續(xù)迭代的改變的尺度,來劃分圖像,如本文進一步解釋的。
在操作530中,執(zhí)行邊緣檢測操作以識別圖像的高細節(jié)區(qū)域和低細節(jié)區(qū)域??梢詫⑦吘墮z測操作分別應(yīng)用到在操作520中定義的每個區(qū)域。因此,邊緣檢測操作可以針對在操作520中定義的每個區(qū)域確定該相應(yīng)區(qū)域是否包含邊緣特征。邊緣檢測操作受在操作520中定義的區(qū)域的大小的影響。具體地,區(qū)域的大小在每次迭代中相對于圖像的原始大小增加。隨著區(qū)域的大小的增加,在每次迭代中發(fā)現(xiàn)邊緣的可能性也增加了。其結(jié)果是,如本文將進一步解釋的,在每次迭代中增加了模糊的強度,但減小了受模糊影響的圖像的區(qū)域。
在一個示例中,該多個區(qū)域中的每個區(qū)域包括各自具有像素值的多個像素,并且邊緣檢測操作包括將每個區(qū)域中的最大像素值與每個區(qū)域中的最小像素值進行比較。在該示例中,在該多個區(qū)域中的相應(yīng)區(qū)域中的最大像素值與最小像素值之差超過閾值時,將邊緣特征識別為存在于圖像的相應(yīng)區(qū)域內(nèi)。例如,閾值可以是1,從而使得,如果相對于輸入圖像的原始色位深存在一個以上的色調(diào)的差,那么就認為是存在邊緣。檢測邊緣的其它方法是已知的,并且可以用在操作530中。
存儲邊緣檢測操作的結(jié)果以便以后使用。例如,可以將值(諸如1或者0)分配到每個區(qū)域以指示邊緣特征是否存在于該區(qū)域中。在一種實施方式中,按照值的矩陣的形式將這些值存儲為邊緣圖,每個值表示圖像的對應(yīng)區(qū)域,矩陣中的位置在空間上對應(yīng)于圖像中的位置。同樣,可以針對圖像處理子過程的每次迭代來存儲邊緣圖,從而使得來自圖像處理子過程的每次迭代的邊緣圖在該圖像處理子過程結(jié)束之后可供使用。
在操作540中,應(yīng)用模糊。該模糊的尺度由在操作520中定義的區(qū)域定義。在一個示例中,在操作520處定義的多個區(qū)域中的每個區(qū)域包括各自具有像素值的多個像素,并且,通過基于在相應(yīng)區(qū)域中的所有像素值來確定平均值并且將區(qū)域中的所有像素值設(shè)置為平均像素值,來執(zhí)行在操作540處應(yīng)用模糊。
將模糊應(yīng)用到圖像的低細節(jié)區(qū)域,諸如不包含邊緣特征的一個或者多個區(qū)域??梢酝ㄟ^對不包含邊緣特征的圖像的所有區(qū)域進行模糊,基于在操作530處檢測到的邊緣特征,來應(yīng)用模糊。在一種實施方式中,僅對圖像的不包含邊緣特征的區(qū)域進行模糊,并且不對圖像的包含邊緣特征的區(qū)域進行模糊。在另一種實施方式中,對整個圖像進行模糊,但是,通過隨后在輸出圖像的生成期間針對圖像增強子過程的相應(yīng)迭代使用邊緣圖,僅對圖像的低細節(jié)區(qū)域應(yīng)用模糊。
在操作550中,作出關(guān)于是否滿足條件的確定。滿足條件指示:已經(jīng)執(zhí)行了圖像增強子過程的合適數(shù)量的迭代,并且不需要完成更多次迭代。在一個示例中,在已經(jīng)執(zhí)行了預(yù)定數(shù)量的迭代時,滿足了條件。在另一示例中,計算要執(zhí)行的迭代的次數(shù)。作為示例,可以基于圖像的大小、區(qū)域的初始大小、和可以基于縮放因子來將區(qū)域上縮放的次數(shù),來確定迭代的次數(shù)。在第一次迭代中區(qū)域是2像素寬x 2像素高并且區(qū)域的大小隨著每次迭代相對于圖像的初始大小翻了一倍的示例,可以計算迭代的次數(shù),作為圖像的最大尺寸的以2為底的對數(shù)。
如果不滿足操作550的條件,那么將執(zhí)行圖像處理子過程的另一次迭代。過程500進入操作560中,在操作560中,改變要應(yīng)用模糊的尺度。作為一個示例,這可以通過將在操作520處要定義的每個區(qū)域的大小設(shè)置得更大(按像素計)來完成,諸如通過將每個區(qū)域的寬度和高度翻一倍。如果每個區(qū)域的寬度和高度翻了一倍,那么相對于圖像處理子過程的前一次迭代,在圖像處理子過程的下一次迭代中的區(qū)域的數(shù)量將會減少大約百分之七十五,由于舍入誤差,該減少是近似的。作為另一示例,這可以通過將圖像下縮放并且針對區(qū)域使用相同的像素大小來完成。在該示例中,按照寬度和高度尺寸的一半,對圖像進行下采樣,但區(qū)域中的單像素大小保持相同,其結(jié)果是每個區(qū)域表示比前一次迭代中的圖像的部分更大。相對于圖像處理子過程的前一次迭代,這將會導(dǎo)致區(qū)域的數(shù)量減少百分之七十五,由于舍入誤差,該減少是近似的。隨后,在生成最終的輸出圖像時,對圖像的下采樣后的副本進行上采樣。這類型的實施方式降低了在每次迭代中要執(zhí)行的計算的復(fù)雜性,并且通過將圖像下縮放并且稍后上縮放,隱式地對圖像進行模糊。在這些示例中的兩個示例中,在操作520中定義的多個區(qū)域在圖像處理子過程的第一次迭代中是最大的,并且區(qū)域的數(shù)量隨著每次后續(xù)迭代而減少。
在操作560之后,過程返回到操作520,在操作520中,圖像處理子過程的附加迭代開始。
如果滿足操作550的條件,那么不執(zhí)行圖像處理子過程的進一步迭代,并且過程500前進到操作570。在操作570中,生成輸出圖像,諸如輸出圖像440。該輸出圖像將在圖像處理子過程的每次迭代中執(zhí)行的圖像處理的結(jié)果組合在一起。如果圖像中有任何一個圖像是下采樣的圖像,那么將它們上采樣到在進行組合之前的輸入圖像的原始大小。
將每次迭代所產(chǎn)生的圖像進行組合,從而使得將圖像的在每次迭代中被識別為包括邊緣的部分保留并且并入最終圖像中,并且對圖像的其它部分進行模糊。因此,從具有存在邊緣特征的最小區(qū)域大小(相對于圖像的原始大小)的迭代保留來自圖像的特征。按照這種方式,將邊緣特征保留在輸出圖像中,而按照不會導(dǎo)致邊緣特征丟失的最大可能大小將模糊應(yīng)用到圖像的剩余部分。
例如,可以從來自應(yīng)用了最大尺度模糊的最終迭代的圖像的模糊副本開始,生成輸出圖像440。針對圖像的被確定為具有邊緣特征的任何區(qū)域,從應(yīng)用了更低程度的模糊的前一次迭代將那些區(qū)域并入。因此,通過將其相應(yīng)區(qū)域首次識別為包括邊緣特征的迭代,并且按照將它們首次識別為包括邊緣特征的最小區(qū)域大小,來保留邊緣特征。
圖6是示出了將圖像劃分為區(qū)域并且檢測這些區(qū)域中的邊緣特征的第一示例的圖示。在該示例中,針對邊緣檢測和模糊操作的每次迭代來對圖像進行下采樣,并且通過針對第一次迭代和每次后續(xù)迭代使用恒定區(qū)域大小來執(zhí)行將圖像劃分為多個區(qū)域。
將第一代圖像610劃分為各自包括特定數(shù)量的像素的第一數(shù)量的區(qū)域612。例如,每個區(qū)域可以是兩個像素x兩個像素的正方形。針對這些區(qū)域,可以使用其它大小和幾何圖形。第一代圖像包括一個或者多個高細節(jié)特征614。由于邊緣檢測操作(諸如應(yīng)用于區(qū)域612中的每一個的最小和最大像素值的閾值),將區(qū)域612中的一些識別為邊緣特征區(qū)域616(由影線指示)。在創(chuàng)建最終輸出圖像時,會包括來自第一代圖像610中的邊緣特征區(qū)域616,而用后代圖像的部分來表示圖像的其它部分。對第一代圖像610進行下采樣以定義第二代圖像620,該第二代圖像被劃分為與第一代的區(qū)域612具有相同像素大小的區(qū)域,但卻表示原來圖像的更大區(qū)域。因此,第二代中的區(qū)域622比第一代中的區(qū)域612的數(shù)量更少。按照先前描述的方式,在第二代圖像620中識別邊緣特征區(qū)域626。在輸出圖像中,將來自第二代圖像620的圖像信息用于圖像的被識別為具有第二代圖像620中的而不是第一代圖像610中的邊緣特征的那些部分。對第二代圖像620進行下采樣以定義第三代圖像630,該第三代圖像630被劃分為數(shù)量進一步減少但像素大小相同的區(qū)域632。按照先前描述的方式識別邊緣特征區(qū)域636,并且如先前所描述地,可以將其并入生成的最終圖像中。
圖7是示出了將圖像劃分為區(qū)域并且檢測這些區(qū)域中的邊緣特征的第二示例的圖示。該示例與圖6的示例的區(qū)別在于不對圖像進行下采樣。相反,增加了區(qū)域的像素寬度和像素高度。因此,在圖7的示例中,通過針對第一次迭代使用第一區(qū)域大小并且針對每次后續(xù)迭代增加區(qū)域大小來執(zhí)行將圖像劃分為多個區(qū)域。
第一代圖像710包括第一數(shù)量的區(qū)域712、和一個或者多個高細節(jié)特征714。將包括高細節(jié)特征714的區(qū)域712識別為邊緣特征區(qū)域716。第二代圖像720具有與第一代圖像710相同的像素寬度和高度,但是,如先前描述地,在區(qū)域712中的每個內(nèi)應(yīng)用了模糊。第二代圖像720包括更少數(shù)量的區(qū)域722,與區(qū)域712相比,每個區(qū)域722具有更大的像素尺寸(例如,按照像素測得的寬度和高度),并且應(yīng)用邊緣檢測來識別邊緣特征區(qū)域726。然后,基于模糊處理后的第二代圖像720來生成第三代圖像730,將第三代圖像730劃分為數(shù)量更少但大小更大的區(qū)域732,并且再次應(yīng)用邊緣檢測來識別邊緣特征區(qū)域736。如先前所描述地,創(chuàng)建最終圖像。
圖8是示出了用于增加圖像的色位深的函數(shù)800的示例的框圖,該函數(shù)在遞歸操作中執(zhí)行邊緣檢測和模糊的迭代。函數(shù)800接收三個圖像作為輸入,將這三個圖像表示為輸入802、max_in 804和min_in806。函數(shù)800生成表示為輸出圖像808的輸出圖像。
在函數(shù)800的第一次迭代中,在正常調(diào)用函數(shù)800時,輸入802、max_in 804和min_in 806是單個輸入圖像的副本。在函數(shù)800的后續(xù)迭代中,在遞歸地調(diào)用函數(shù)800時,輸入802、max_in 804和min_in 806將分別包括不同的信息。
在進入函數(shù)800時,針對輸入802、max_in 804和min_in 806中的每一個,執(zhí)行堆棧操作810。針對這些圖像中的每一個,堆棧操作810制作圖像的副本并且將其放置為接近原始圖像,但該副本具有一個像素對角線移位。如此,會同時處理輸入802、max_in 804和min_in 806中的每一個的兩個副本,以允許后續(xù)通過簡單地對原始圖像與副本進行平均來執(zhí)行濾波。
然后,將下縮放操作820應(yīng)用到輸入802、max_in 804和min_in 806中的每一個。下縮放操作820對每個圖像中的像素組操作,因此,如先前所描述地,將每個圖像劃分為區(qū)域。例如,下縮放操作820可以將每個圖像劃分為像素組并且計算每組的單個值,從而使得產(chǎn)生的圖像的下采樣后的版本會包括與每組對應(yīng)的一個像素。下縮放操作820可以通過輸出每個像素組的平均值來將輸入802下縮放,可以通過輸出每個像素組的最大像素值來對max_in 804進行下采樣,并且可以通過輸出每個像素組的最小像素值來對min_in 806進行下采樣。
將max_in 804和min_in 806的下采樣后的圖像提供到邊緣檢測操作830,在這種情況下,該邊緣檢測操作830比較max_in 804和min_in806的差并且將該差與閾值進行比較以定義邊緣圖,該邊緣圖在上縮放操作840中被上采樣并且作為輸入被傳遞到圖像組合操作870中。
還將輸入802、max_in 804和min_in 806的下采樣后的圖像提供到遞歸函數(shù)調(diào)用850,該遞歸函數(shù)調(diào)用850使函數(shù)800得以遞歸地調(diào)用。針對函數(shù)800的每次迭代,遞歸函數(shù)調(diào)用850將繼續(xù)直到滿足了條件,如關(guān)于過程500中的操作550描述的。例如,可以將期望迭代次數(shù)設(shè)置為變量,當調(diào)用函數(shù)800時,將該變量傳遞給函數(shù)800,并且可以針對每一代來遞減該變量直到已經(jīng)執(zhí)行了期望迭代次數(shù),此時,在沒有遞歸函數(shù)調(diào)用850的附加實例的情況下,將結(jié)束函數(shù)800。
遞歸函數(shù)調(diào)用850的結(jié)果是來自函數(shù)的遞歸實例的輸出圖像852,由于函數(shù)800的完成按照與針對輸出圖像808所描述的方式相同的方式來生成該輸出圖像852。將輸出圖像852傳遞給上縮放操作860,將來自遞歸函數(shù)調(diào)用850的上縮放的輸出圖像提供到圖像組合操作870。
圖像組合操作870將輸入802的堆棧版本與來自遞歸函數(shù)調(diào)用850的上縮放的輸出圖像進行組合。通過使用邊緣圖來組合這些圖像。針對圖像的每個區(qū)域,如果存在邊緣特征(例如,max_in 804和min_in 806之差不小于閾值,在邊緣圖中,可將該差表示為0),則保持來自輸入802的對應(yīng)區(qū)域,并且,如果不存在邊緣特征(例如,max_in 804和min_in 806之差小于閾值,在邊緣圖中,可將該差表示為1),則保持來自遞歸函數(shù)調(diào)用850的輸出圖像的對應(yīng)區(qū)域。
將圖像組合操作870所創(chuàng)建的組合圖像提供到拆堆棧操作880,該拆堆棧操作880將在堆棧操作810中創(chuàng)建的兩個堆棧副本分成兩個單獨的圖像,在平均操作890中對這兩個單獨的圖像進行平均,因此對圖像進行濾波以去除偽影并且產(chǎn)生輸出圖像808。由于通過下縮放操作820和后續(xù)上縮放操作860的組合執(zhí)行了模糊處理,所以可以按照比針對輸入802使用的色位深更高的色位深表達輸出圖像808中的像素值。
如針對濾波子系統(tǒng)430所解釋的,堆棧操作810、拆堆棧操作880和平均操作890按照組合的方式與位深增強并行地執(zhí)行濾波操作。在沒有濾波的情況下可以使用函數(shù)800,在這種情況下,將省略堆棧操作810、拆堆棧操作880和平均操作890。
在上面的描述中,堆棧操作810中的每個導(dǎo)致單個像素移位的副本與原始圖像堆疊,并且拆堆棧操作880產(chǎn)生兩個圖像,這兩個圖像然后在平均操作890中被進行平均??梢孕薷呐c原始圖像堆疊的副本的數(shù)量,并且明確地考慮到了涉及圖像的一個以上的副本的濾波操作。例如,可以將三個副本與原始圖像堆疊,原始圖像不移位,第一個副本水平移位1個像素,第二個副本垂直移位1個像素,并且第三個副本對角線移位1個像素。
本文使用的詞語“示例”或者“示例性”是指用作示例、實例或者圖示。本文作為“示例”或者“示例性”描述的任何方面或者設(shè)計不一定需要理解為比其它方面或者設(shè)計優(yōu)選或者有益。相反,詞語“示例”或者“示例性”的使用旨在具體地呈現(xiàn)構(gòu)思。如在本申請中所使用的,術(shù)語“或者”是指包容性“或者”而不是排斥性的“或者”。即,除非另外規(guī)定,否則從上下文可以清楚,“X包括A或者B”是指任何自然的包容性排列。即,如果X包括A、X包括B、或者X包括A和B,那么在前面的任何實例下都滿足“X包括A或者B”。此外,在本申請和隨附權(quán)利要求書中所使用的冠詞“一”和“一個”應(yīng)該被一般地解釋為意味著“一個或者多個”,除非另有規(guī)定或者從上下文中明確得知其指的是單數(shù)形式。此外,貫穿全文,除非如此描述,否則術(shù)語“實施方式”或者“一個實施方式”不旨在指相同的實施例或者實施方式。
傳輸站110和/或者接收站120(以及存儲在其上和/或通過其執(zhí)行的算法、方法、指令等)的實施方式可以實現(xiàn)在硬件、軟件、或者其任何組合中。硬件可以包括:例如,計算機、知識產(chǎn)權(quán)(IP)核、專用集成電路(ASIC)、可編程邏輯陣列、光學(xué)處理器、可編程邏輯控制器、微代碼、微控制器、服務(wù)器、微處理器、數(shù)字信號處理器或者任何其它合適的電路。在權(quán)利要求書中,應(yīng)該將術(shù)語“處理器”理解為包含任何上述的硬件,單個地或者按照組合。術(shù)語“信號”和“數(shù)據(jù)”可互換地使用。進一步地,傳輸站110和接收站120的部分不一定需要按照相同的方式來實施。
可以通過使用通用計算機或者具有計算機程序的通用處理器來實施傳輸站110和/或接收站120,該計算機程序在被執(zhí)行時進行本文描述的相應(yīng)方法、算法和/或指令中的任何一種。另外或者可替代地,例如,可以利用可以包含用于進行本文描述的方法、算法、或者指令中的任何一種的其它硬件的專用計算機/處理器。
進一步地,例如,本發(fā)明中的所有實施方式或者部分實施方式可以采取可從有形計算機可用或者計算機可讀介質(zhì)存取的計算機程序產(chǎn)品的形式。計算機可用或者計算機可讀介質(zhì)可以是任何裝置,例如,該裝置可以有形地包含、存儲、傳送或者運輸程序,以供任何處理器使用或者結(jié)合任何處理器使用。該介質(zhì)可以是,例如,電子、磁性、光學(xué)、電磁、或者半導(dǎo)體裝置。也可以使用其它合適的介質(zhì)。
已經(jīng)描述了上面描述的實施例、實施方式、和方面以便允許容易地理解本發(fā)明,但不限制本發(fā)明。相反,本發(fā)明旨在覆蓋在隨附權(quán)利要求的范圍內(nèi)包括的各種修改和等效布置,該范圍應(yīng)該被賦予最廣泛的解釋以便囊括法律準許的所有這種修改和等效結(jié)構(gòu)。