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