專利名稱:壓縮數據的增強型解壓的制作方法
技術領域:
^^開一般地涉及數據壓縮。
背景技術:
圖像壓縮描述了數據壓縮在數字圖像中的應用。進行圖像壓縮的一個原
因是減少圖^l史據的冗余,從而方便^ H者或傳iri亥數據。
圖像壓縮可以是有損的或無損的。因為有損壓縮方法會導致壓縮偽像, 因此無損壓縮通常用于重要的或非攝影的圖像,例如醫(yī)學成像,或者技術制 圖或其他手工制圖。另一方面,有損方法通常用于攝影圖像,原因在于為了
實現比特率的降低,微小的、通常不可察覺的^^度損失一^^"iXJ:可以接 受的4斤衷。
發(fā)明內容
在某些環(huán)境下,例如在檢測到^^f諸容量的情況下,可以在逐個掃描線 的勤出上解壓和/或縮減壓縮的圖像,而不是馬上解壓或縮減整個壓縮的圖像。 由此,減少了用于呈現結果圖像的設^f錢的資源的范圍和類型,而不會必 然地影響該圖像的保真度。
才艮提一個通用的實施例,使用壓縮圖像的經迭^Jf"壓和縮減的一定數量 的掃描線來組成具有目標分辨率的解壓圖像,所述掃描線的數量與基于該壓 縮圖l象的原始分辨率和目標分辨率確定的縮減因子有關。
才艮據另一個通用的實施例,提出一種計算機實現的方法,其包括基于壓 縮圖像的原始^#率和目標^1岸率,來確定用于壓縮圖像的縮減因子,以及 基于該確定的縮減因子,迭^^壓該壓縮圖像的一定數量的掃描線。該方法 還包括,對于每次迭^Jf壓,縮減迭^Jf壓的所述數量的掃描線,以及<賴 縮減的所述數量的掃描線來組成具有目標^H辟率的解壓圖像。實施例可以包括一個或多個如下的特征。例如,可以輸出該組成的、壓 縮的圖像。該縮減因子可以是整數。該壓縮圖像的掃描線數量可以基于確定 的縮減因子來確定。該掃描線數量可以等于縮減因子或者可以與縮減因子呈
反比??赡軙z測到j^H諸容量的情況,并且如果檢測到^i^諸容量情況,
則可以縮減迭^^壓的所述數量的掃描線。該壓縮圖像可以佳Jf]標各圖像文
件格式(TIFF)的格式、可移植網絡圖形(PNG)的格式、圖像交換格式(GIF) 的格式、聯合圖像專家組(JPEG)格式、RAW圖像文件格式或者位圖(BMP) 才各式來壓縮。
在其他的例子中,縮減迭代解壓的所述數量的掃描線進一步包括對迭代 解壓的所述數量的掃描線的特征求平均,或者對迭^^壓的所述數量的掃描 線進行濾波。該原始分辨率和目標分辨率可以使用同樣的縱橫比。掃描線可 以是圖像的7jc平的、 一個像素高度的行,垂直的、 一個4象素寬的列,或者斜 線列。該組成的、解壓的圖像可以放大。該目標^l卑率可以是^f渚壓縮圖像 的移動設備的屏幕分辨率。在已經縮減所述數量的掃描線后,迭^Jf壓的所 述數量的掃描線可以被丟棄。該圖像可以進一步包括多條掃描線,其中所述 數量的掃描線是所述多條掃描線的子集。
在另外的例子中,可以基于等式(1)確定該縮減因子。
,IN(floor(w/w闊,floor(/ 力闊) (1)
jf(f==1){f = 2}
在等式(l)中,f表示縮減因子,w和h分別表示原始分辨率的水平和 垂直方向,wDst和hDst分別表示目標分辨率的7jc平和垂直方向。該原始分辨 率可以是與壓縮圖像的非壓縮版^M目關聯的^I岸率。迭4餅壓該壓縮圖像的 所述數量的掃描線進一步包括解壓所述數量的掃描線中的第 一掃描線且并行 地解壓所述數量的掃描線中的第二掃描線。
根據另一個通用的實施例,提出一種用于數據壓縮的設備,包括用于基 子壓縮圖像的原始分辨率和目標分辨率確定用于該壓縮圖像的縮減因子的裝 置,以及用于基于該確定的縮減因子,迭^Jf壓該壓縮圖像的一定數量的掃 描線的裝置。該用于數據壓縮的設備也包括用于對于每次迭^^壓,縮減迭 ^J^壓的所述數量的掃描線的裝置,以及用于使用縮減的所述數量的掃描線^i且成具有目標分辨率的解壓圖像的裝置。
才艮據另一個通用的實施例,才是出一種"i殳備,其包括處理器,該處理器基 于壓縮圖像的原始分辨率和目標分辨率,確定用于該壓縮圖像的縮減因子, 并基于該確定的縮減因子,迭4,壓該壓縮圖像的一定數量的掃描線。該處 理器也針對每次迭^Jf壓,縮減迭^^壓的所述數量的掃描線,并且使用縮 減的所述數量的掃描線來組成具有目標^i岸率的解壓圖像。
根據更進一步的一個通用的實施例,提出一種計算機實現的方法,其包 括基于壓縮圖像的原始分辨率和^f渚該壓縮圖像的移動設備的屏幕^^岸率,
來確定用于該壓縮圖像的縮減因子,其中該圖像^JI] JPEG格式壓縮,并且包
括多條掃描線。該方法也包括基于該確定的縮減因子,來確定該壓縮圖像 的一定數量的掃描線,該一定數量的掃描線是該多條掃描線的子集;檢測移
動設備的^^(諸容量條件,迭代解壓所述數量的掃描線,其中^-"條掃描線
包括該圖像的水平的、 一個像素高度的行。而且,該方法包括如果檢測到 了^4^諸容量的情況,則對于每次迭代解壓,通過對迭代解壓的所述數量的 掃描線的特征求平均,來縮減迭^^壓的所述數量的掃描線;并iW錢迭代 解壓的所述數量的掃描線來組成具有目標分辨率的解壓圖像。另外,該方法 包括放大該組成的圖像,以4該移動設M輸出該放大的圖像,其中該 放大圖f^口該壓縮圖像^J )相同的縱橫比。
在以下附圖和描述中闡明了本說明書中所描述的^的一種或多種實現 的細節(jié)。才艮才^i兌明書、附圖和權利要求書,4^>開的其他潛在特征、方面和 優(yōu)點將變得明顯。
圖1和圖3是實3EJW縮圖像的增強解壓的示意圖。 圖2是增強解壓處理的濟d呈圖。
圖4是實現在此描述的增強解壓的示斜性設備的示意圖。 相同的標號和名稱在不同的圖中代表相同的單元。
具體實施方式
對于例如具有較j^f渚容量、處理或傳輸帶寬能力的移動設備之類的具 有有限資源的設備來說,解壓和顯示壓縮圖像是耗費計算量的。然而, 在此描述的增強解壓方法,通it^逐掃描線的勤出上縮減該圖像來對圖像進 行解壓以i^jl]于顯示,從而確^i^些設備能夠完成解壓處理。這一增強方法 可以使得比其他更典型的圖像壓縮處理消耗更少的^f諸容量。
在示例的配置中,該增強的解壓處理可以響應于檢測到^^f諸容量條件、 情況和環(huán)境而動態(tài)地實現,從而縮減該圖像以減少其##器占用。該示例配 置對于以相對更健壯的計算資源來輸出為設備(例如臺式設備)設計的圖像 的移動設備或其^^賭受限的設備特別有用。使用在此描述的增強型技術, 即使在^^f諸容量時,設馳能夠解壓壓縮的圖像,從而絲導致失敗和消 耗所有剩余的^f渚容量。
在此所稱的"縮減"是指用于減少表示圖像的像素或塊的數量的處理,"縮
減"可以4吏用濾波處理、合并處理或其#^支術來實現,其中濾波處理選4和h^i也
消除某些像素數據,合并處理(例如求平均)將來自多個像素的像素值結合 或合并成單個^4性的像素。相反地,"放大"是指用于增加表示圖像的像素的 數量的處理,"放大"可以使用外推處理或使用其他方法來實現,其中外推處理 基于一個或多個^4性像素的像素值#^象素值分配給多個像素,該其他方法 例如^^]^#在圖像文件中的非像素值數據。在示例的縮減和放大處理中, 可以保留輸入和輸出圖像的方向比例(高寬比)來減小進一步的失真。
: 此外,術語"^#率"描述了圖像所4林的細節(jié)數量,其中高^l辟率是指 更多的圖像細節(jié),而低^#率是指更少的圖像細節(jié)。"^^辟率"可以涉及物理尺
寸,例如每英寸或每毫米中掃描線或像素的數量;或者*尺寸,例如每圖
像高度的像素數量。在特定的例子中,"^^岸率"是指像素^^碎率或像素計數,
例如N ^f象素高乘以M ^M象素寬的像素計數。"^^辟率"還可以是指頻譜^H片 率、時間^^岸率或輻射^#率。
圖1是實^LS縮圖像的增強解壓的示意圖。在圖1中,分辨率為640x480 的壓縮圖像被^f諸在臺式計算機102的5千字節(jié)(KB)的數字文件101中(命 名為640x480lMAGE,jPG) 。 640x480的分辨率與視頻圖形矩陣(VGA)的圖像 或顯示相關聯。該JPG文件擴M反映了該圖像的編^^J ]的是JPEG圖像壓縮。該臺 式計算機102包4封目對健壯的計算資源,例如1 GB的隨機訪問存儲器(RAM) 和INTEL CORE 2QUAD處理器,并且能夠容易地解壓該5KB數字文件 101,以創(chuàng)建和輸出圖像104的24KB無壓縮i^^。
針對這一例子,假設移動設備105的用戶想查看該數字文件101的無壓 縮版本,其中該移動設備105包括具有320x240像素或像素的分辨率的四分 之一VGA (QVGA)的顯示器106。因為該移動設備不能以其本地分辨率顯 示該圖像104的24KB無壓縮版本,該圖像104在輸出到該顯示器106上之 前將被縮減(縮減為圖像107的縮減的無壓縮i&^)。
因為移動設備105不輸出圖像104的無壓縮版本本身,因此該移動設備 105可以佳^]增強解壓方法來避免首先創(chuàng)建該104的無壓縮;&^,并且可以作 為替代,動態(tài)和直接地創(chuàng)建該圖像107的縮減的無壓縮版本。直接創(chuàng)建該圖 像107的縮減的無壓縮版本而無須首先創(chuàng)建圖像104的無壓縮M,這可以 節(jié)省計算資源,或者可以使得移動設備105在低資源務f牛下呈現數字文件101 的一個片沐
因此,通過對圖像的原始版本的邊界、尺寸或分辨率與目標、目的或預 期的邊界、尺寸或分辨率進行比較,計算縮減因子。因為圖像原始i&^的垂 直和水平分辨率中的每個都包括兩倍于該圖像目標版本的像素,所以該例子 中縮減因子是二。
因為縮減因子是二,所以解壓該壓縮圖像101的前兩條掃描線109a和 109b。特別地,因為每條掃描線包括4KB的數據,所以解壓兩條數據掃描線 會比解壓圖像104的整個24KB無壓縮;f^^f賴更少的務賭器資源。如果確 定該縮減因子是四,則解壓該圖像的前四條水平掃描線109a至109d。盡管圖 l;中使用水平掃描線來沖;^ti亥解壓操作,但也可以使用垂直、斜線、線性、曲 線或其他形狀的掃描線。此外,增強處理也可以完全不橫月掃描線,而AfF 壓一定數量的矩形^象素子塊。
^^)求平均操作來縮減該解壓掃描線109a和109b。特別地,該增強解壓 對掃描線109a中每個像素的白色值和掃描線109b中每個像的黑色值求平均, 從而產生1KB的灰色縮減掃描線110a。該縮減掃描線110形成圖像107的縮減的無壓縮夂反本的^出。
一^S^T出了縮減掃描線110a,解壓才^f乍就進行迭代或重復,直到圖像107
的無壓縮版本做好了顯示的準備。例如,佳月了求平均梯作來解壓和縮減壓
縮圖像101的另外的第二組兩條掃描線109c和109d。雖然掃描線109c和109d 主要為白色,掃描線109d包括黑色4象素(或區(qū)域)111,其中當對掃描線109c 的才對以區(qū)域求平均和縮減時,該黑色像素(或區(qū)域)111在縮減掃描線110b 上形成了灰色區(qū)域112。在進一步的迭代中,解壓和縮減兩個其他的掃描線 109e和109f,形成縮減掃描線110c。
該解壓才乘作繼續(xù)it代,直到解壓和縮減了圖l象的所有掃描線。盡管圖l 示出了該解壓#^乍從頂部開始沿圖#^續(xù)地向下進行,但是也可^^其他的 模式。例如^jf]水平掃描線,可以從底部或從中部開始該解壓操作,并且可 以跳過某些掃描線或對多組掃描線進4亍隔4亍掃描。
隨著每個解壓和縮減的掃描線的產生,其被添加或組合到第一縮減掃描 線110a,形成圖像107的3KB的縮減的無壓縮版本。通過顯示器106輸出該 圍像107的縮減的無壓縮版本,并且將該版本作為具有320x240的分辨率的 壓縮圖係^H諸在移動設備105中的1千字節(jié)(KB)的數字文件114 (命名為 320x240Ima,g )中。
重要的是,創(chuàng)建1KB數字文件114不要求創(chuàng)建圖像104的24KB無壓縮 版本。通過比較,這樣一種方法可以解壓該圖像到其大小足以保持該圖像104 的24KB無壓縮i&^的緩沖器中,然后^JI]恰當的濾;fc^案來將該緩沖的圖 像縮減或下采樣到目標分辨率。如果像素深度增加了,則該比較方法面臨的 問題才W口劇了。例如,32-bit像素深度會消耗兩倍于16-bit深度的^H諸容量。
在解壓操作期間,可以減少總的務賭器消耗。盡管其他方法在圖像解壓
和縮減操怍期間存在巨大的存儲^f錢峰值,但在》W苗述的該增強方法使得 應用可以將總存儲器消耗上限設置為目標縮減圖i象尺寸外加用于額外掃描線 的較小附力口^f諸容量,如縮減因子所確定的那樣。
為了便于說明,圖1和圖3向圖像的壓縮和無壓縮片脈以及圖像的各部 分或掃描線分配了某些任意的尺寸。例如圖1示出了尺寸為5KB的壓縮的 640x480 JPEG圖像,尺寸為24KB的無壓縮;^^,該圖像的尺寸為4KB的全尺寸掃描線,該圖像的尺寸為1KB的縮放的掃描線,該圖像的尺寸為3KB的 縮減版本,以及尺寸為1KB的壓縮和縮減的320x240 JPEG圖像。因為這些 數字純粹是任意的,僅用于示例性目的,因此這些尺寸和壓縮比率與實際或 測量的尺寸和壓縮比率之間的任何關系應被認為是純屬巧合。同樣地,在此 描述的該增強方法與任何尺寸的圖像或圖像的一部分以及^^可類型的壓縮和 縮減處理密切相關。
: 為了在一個真實世界例子的上下文中示出這一點,可以使用比較方法來
顯示尺寸為640x480、像素深度為16 bit (2字節(jié))的圖像。假設沒有標度, 在任何縮減發(fā)生之前,解壓的圖像尺寸必須將被^^f諸在600KB的緩沖器 (640*480*2/1024)中。如果目標^l岸率或尺寸是160x120,則必須分配37.5KB 的目標緩沖器(160*120*2/1024)。在該處理的壽命期間,實時務賭器消耗峰 值至少是637,5KB。
使用該增強型方法,完^^免了消耗600KB的前期成本。整個縮減處理 使用37.5KB的目標緩沖器外加用于均為640像素寬的四條掃描線(因為縮減 因子是4)的5KB^f渚器(640*4*2/1024)。因此,實時^[諸器消#%值是 42.5KB,或者是在比較方法中所使用的緩沖器大小的十五分之一。如此顯著 的存儲器大小差別與執(zhí)行時間中的<封^]"預見的改變不相關聯,原因在于解 壓了相同數量的掃描線,并且應用了相同的下采樣。
圖2是增強解壓處理200的流程圖。簡而言之,該處理包括基于壓縮圖 像的原始分辨率和目標^l岸率確定用于壓縮的靜態(tài)圖^i^J^貞圖像的縮減因 子;以及基于該確定的縮減因子,迭^Jf壓該壓縮圖像的一定數量的掃描線。 該處理200也包括對于每次迭^*壓,縮減迭^^壓的所述數量的掃描線, 并且使用縮減的所述數量的掃描線來組成具有目標分辨率的解壓圖像。
更具體地,當該處理200開始(S201)時,基于壓縮圖像的原始分辨率 和目標分辨率,確定用于壓縮圖像的縮減因子。該壓縮圖像可以佳J 3TIFF格 式、PNG格式、GIF格式、IPEG格式、RAW圖像文件格式或BMP格式來
壓縮。"目標分辨率"是指4#該壓縮圖像的移動設備的屏幕分辨率,或者是指 該壓縮圖像的無壓縮版本在顯示該無壓縮版本的設備上的預期的、可用的或
最終的分辨率。"原始分辨率"是指與壓縮圖像的無壓縮片^M目關聯的本地^^岸率。
該壓縮圖像可以包括多條掃描線。
一條掃描線(或"掃描的線")通常是
指i^冊掃描圖案中的一條線或一行,例如電^l^計算機的陰極射線管(CRT) 顯示器中的一條視頻線。 一條掃描線^4壓縮圖像中的一行像素、像素或塊。
整數的縮減因子可以^M來增強性能。如果該確定的縮減因子不是整數, 則它可以向上或向下舍入到整數,例如最接近的整數、所確定的縮減因子之 上的最接近的整數或者所確定的縮減因子之下的最接近的整數。如果原始和 目標分辨率的方向比率不匹配,則可以確定多個臨時縮減因子,并且可以通 過在多個臨時縮減因子中進行選擇,或者通必t臨時縮減因子進行組合,確 定實際的縮減因子。例如,如果原始圖像是寬屏的16: 9的禍LM靜態(tài)圖H 而輸出i殳備是4: 3的顯示器時,以上情況會發(fā)生。
在這種情況下,可以基于對原始和目標分辨率的垂直方向的比較,確定 第一臨時縮減因子三(9/3)??梢曰趯υ己湍繕朔直媛实乃椒较虻谋?較,確定第二臨時縮減因子四(16/4)。可以選擇三、四或任意數字(例如3 與4之間的凄史字)的縮減因子。
如果使用小于4的縮減因子,則該圖像的縮減的無壓縮版本將在目標顯 示器的垂直方向上適合,然而該無壓縮圖l象的一卩分在顯示器的水平方向上 將不適合,因此,在顯示設備上改變了無壓縮圖像的M方向比率。如M 擇縮減因子4(或更大),則該圖像在水平方向上將適合于顯示器,并且目標 圖像的M方向比率一針呆持不變,然而目標圖像至少將不會完全適合于顯示 器的垂直部分。
基于等式(1)確定該縮減因子如下
/KMIN(floor(由闊,floor(/i力闊) 0)
if (f1){f = 2}
在等式(1)中,f表示縮減因子,w和h分別表示原始分辨率的水平和 垂直方向,wDst和hDst分別表示目標分辨率的水平和垂直方向。
基于確定的縮減因子,解壓該壓縮圖像的一定數量的掃描線(S204)。 一條掃描線可以是該圖像的水平的、 一個像素高度的行,垂直的、像素寬度 的列,或是一條斜線?;诳s減因子確定掃描線的數量,其中所述數量的掃描線是組成該壓縮圖Y象的多條掃描線的子集。
該縮減因子同時確定要解壓和縮減的掃描線的數量,因此該縮減因子基 于所述數量的掃描線、乂人數量上說與所述數量的掃描線相關聯或者與所述數 量的掃描線有關。在原始^^卑率和目標分辨率的方向比率相同的情況下,可
以通過用原始分辨率下垂直(或水平)像素的數量除以
目標分辨率下垂直(或水平)像素的數量,確定該縮減因子。這一結果
數字也代表了 一次迭代中要解壓的掃描線的數量。
在原始分辨率和目標分辨率方向比率不相同的例子中,通過將原始分辨 率的垂直或水平像素除以目標分辨率的垂直或水平像素,或通過將原始分辨 率的像素總數除以目標^^卑率的像素總數來確定該縮減因子(如上)。如果 該計算是基于元素總數的,則可以通過額外的計算(例如平方根計算)來處 理結果數值,從而確定在一次迭代中要解壓的掃描線的數量??紤]到這一點, 該縮減因子可以直4矣與要解壓的所述凄t量的掃描線相關,如在這些凄t字相同 的情況中那樣,或者與要解壓的所述數量的掃描線間接相關,如在這些數字 不同^if過固定或已知的數學表達^f目關的情況中那樣。
如果顯示壓縮圖像的設備的資源足以顯示圖像而不需要進行縮減,那么 也可以動態(tài)地或自動地省略該縮減操作。例如,在可用的存儲容量達到或超 出試探條件的情況下,可以動態(tài)地省略縮減,其中該試探條件例如是進#^
查以查看IsLowMEMORY0函^^否失敗了預定次數。在沒有檢測到^##容量 ^^牛的情況下,這樣的試探^f牛將省略縮減才剁乍。
縮減解壓的所述數量的掃描線(S205)??梢詸z測^^H諸容量^f牛,如 果檢測到^^f諸容量務f牛,則縮減迭4,壓的所述數量的掃描線??s減迭代 解壓的所述數量的掃描線可以進一步包括對迭^^壓的所述數量的掃描線的 特征求平均,或者對迭^^壓的所述數量的掃描線進行濾波。在已經縮減所 述數量的掃描線之后,丟棄迭4,壓的所述凄t量的掃描線。
盡管已經在此將縮減描述為使用求平均,但也可以使用其#^支術。例如, 從可以實現任意類型的縮減(例如雙線性、雙三次、最近鄰居,等等)的意 義上說,縮減可以是可插入的操作??紤]到這一點,可以基于該縮減因子, 動態(tài)地選擇縮減技術,這將影響變得可用于重采樣濾波器的掃描線和像素采樣的數目。在進一步的實現中,矩形像素子塊而不是掃描線^lf壓,以更好
^it合于特定的濾波處理。
使用縮減的所述數量的掃描線來組成具有目標分辨率的解壓圖像
(S206)。在一個示例性的實現中,在每次迭代期間,例如在解壓或縮減#^ 分掃描線W,立即組成該解壓圖像。^f細這種方法,當解壓和縮減^f乍還 在進行時,該圖像的一部分可以被輸出給用戶。在另一個示例性的實現中, 在所有迭代發(fā)生后,例如在已經解壓或縮減所有掃描線后,組成該解壓的圖 像。^^]后面的這一方法,整個圖像可以一次'hi^^出給用戶。
如果壓縮圖像包括額外的壓縮掃描線(在S207中),則以迭代模式或方 式來解壓這些額外的掃描線(S204以及之后的步驟)。如果壓縮圖像不包括 額外的壓縮掃描線(在S207中),則可以輸出該組成的解壓圖像(S209), 從而結束該處理200 (S210)。
該組成的解壓圖像可以^^文大,從而使得該組成的圖像與原始圖像占用 相同尺寸的區(qū)域。如果原始壓縮圖像已經被縮減,則作為結果的放大圖像將 不具有同樣的^^度或者包含與原始圖l象同樣級別的細節(jié)。由于《象素數量的 減少,縮減導致圖像中細節(jié)的損失,但^]戶至少將看到該圖像的某個版本, 而不是產生可能會導致應用程序崩潰的存儲容量不足的情況。
為了描述簡要以M^H釋,前面將該壓縮圖像的所述數量的掃描線的 迭代僻壓描述為順序的操作,但是在其他的示例實現中,并行地解壓和/或縮 減這些掃描線。例如,可以解壓和/或縮減第一組一定數量的掃描線且并行地 解壓和/或縮減第二組一定數量的掃描線。
根據這一增強解壓方法,動態(tài)地降低了待呈現的無壓縮圖像的質量,而 同時降低了##器消耗需求。然而,所呈現圖像的原始方向比率或尺寸可以 與標準的解壓圖^^目同。
圖3是用于實J^寸壓縮圖像的增強解壓的另一個通用的方法的示意圖。 不同于圖1,圖3中示出的方法迭^t也解壓垂直掃描線而不是水平掃描線,使 用濾波處理而不是求平均處理來沖;W亍縮減,并且具有確定的縮減因子四而不 是縮減因子二,等等。
更M地,具有1024x760的分辨率的壓縮擴展圖像矩陣(XGA)圖像^^諸在臺式計算才幾302的30KB的l丈字文件301 (命名為1024x760Imagebmp ) 中。該.BMP文件擴M反映了該圖像的編碼^JI]了位H^各式。該臺式 計算機302包括相對健壯的計算資源,能夠方便地解壓30KB的數字文件301 , 以創(chuàng)建和輸出圖像304的72KB的無壓縮M。
移動設備305的用戶發(fā)出查看數字文件301的內容的4^令,其中該移動 設備305包括具有非標準的320x240 ^l岸率的顯示器106。因為移動設備以其 本地分辨率不能顯示圖像304的72KB的無壓縮版本,因此圖像304在輸出 到顯示器306上之前被縮減(縮減為圖像307的縮減的無壓縮片^)。
通過對圖像原始;&^的分辨率的方向和顯示器306的^l岸率進行比較, 計算縮減因子。圖像304的原始M的垂直和水平^Hf率均包括4倍于顯示 器306的4象素數量,該例子中的縮減因子是4。
因為該縮減因子是4,所以解壓該壓縮圖像301的前四條掃描線309a至 309d。因為每條掃描線包括12KB數據,所以解壓四#直掃描線的數據所 使用的存儲器資源要少于解壓圖像104的整個72KB無壓縮版本所需要的存 儲器資源。
濾波才乘怍縮減解壓掃描線309a至309d,其中四分之三的垂直掃描線 被丟棄,并且垂直掃描線中的一條被選擇^ii行縮減,而不考慮其他掃描線 的特征。被選擇的掃描線可以是被任意選擇的掃描線,例如第一、第三、或 第n掃描線,或者可以基于例如如像素值的一致性或非一致性之類的掃描線
特征來動態(tài);^擇。
因為圖3中示出的增強解壓#^(乍選擇了被選擇用于解壓的每四條掃描線 中的第一條,掃描線309a被選擇為用于縮減,掃描線309b至309d被丟棄。 縮減的掃描線309作為垂直掃描線309a的縮減才喿怍結果,皮輸出,其包括對應 于像素(或區(qū)域)311a的黑色^f象素但是不包括對應于^象素(或區(qū)域)311b的 黑色像素。
縮減的掃描線310a形成圖像307的縮減的無壓縮版本的勤出。 一旦縮減 的掃描線310a被輸出,解壓才剁乍就進行迭代。特別地,^^]求平均才刻乍,解 壓和縮減該壓縮圖像301的第二組四條掃描線309e至309h,從而輸出縮減掃 描線310b。該解壓操怍繼續(xù)迭代,直到該圖^象的所有掃描線凈WF壓和縮減。當每條解壓和縮減的掃描線產生時,它被添加或組合到第 一縮減掃描線
310a,形成圖像307的12KB的縮減的無壓縮片^。通itt示器307輸出該圖 像307的縮減的無壓縮X^,并且將該;^^作為具有256x190的分辨率的壓 縮圖傳^#在移動設備305中的8千字節(jié)(KB)的凄t字文件314 (命名為 256x190Imagejpg)中。在另一個例子中,創(chuàng)建12KB數字文件314不要求創(chuàng)建 圖像304的72KB無壓縮版本。
特別地,盡管圖1的原始無壓縮圖像104和圖3的原始無壓縮圖像304 相似,但結果或目標無壓縮圖〗象107和無壓縮圖像307則表現出很大的不同。 這種差異部分地是由縮減技術以^JF壓^f乍使用的掃描線類型的不同而引起 的。
因此,可以使用壓縮圖^f象的經迭^Jf壓和縮減的一定l史量的掃描線來纟且 成具有目標^^率的解壓圖像,基于壓縮圖像的原始^l辟率和目標^4岸率, 確定出與縮減因子相關的掃描線數量。
在此描述的i^和功能才剁乍可以以數字電子電路、計算才;i4欠件、固件或 硬件(包括本說明書中公開的結構及其等同形式)來實現,或者以其中的一 個或多個的組合來實現??梢詫⒈菊f明書中描述的i^實現為一個或多個計 算才財呈序產品,即編碼在有形的禾呈序載體上用于由翁:才居處理裝置^Vf于或用以 控制數據處理裝置的操怍的一個或多個計算才A4呈序指令模塊。該有形的程序 載體可以是所傳播的信號或計算機可讀介質。所傳播的信號是人工生成的信 號(例如,機器生成的電信號、光信號或者電磁信號),該信號被生成以對 信息進行編碼,以便傳ii^適合的接收機設備以供計算^W丸行。計算機可讀 介質可以是機器可讀^f射殳備、才幾器可讀^^諸基片、^f諸器設備或其中一個 或多個的組合。
例如,計算4;i4呈序產品可以有形地包含在機器可讀介質中。該計算才M呈 序產品包括如下指令,當被機器讀取時,該指令才剁乍為促使數據處理裝置基 于壓縮圖像的原始分辨率和目標分辨率確定用于該壓縮圖像的縮減因子,以 及基于該確定的縮減因子迭4,壓該壓縮圖像的一定數量的掃描線。該計算 才財呈序產品也包括如下指令,當其被機器讀取時,該指令才剩乍為促使數據處 理裝置針對每次迭^^壓而縮減迭^^壓的所述數量的掃描線,以及使用縮減的所述數量的掃描線來組成具有目標分辨率的解壓圖l象。
在另一個例子中,計算機實現的方法包括基于壓縮圖像的原始分辨率 和^f^亥壓縮圖像的移動設備的屏幕分辨率,確定用于該壓縮圖像的縮減因
子,其中該圖像^^1 JPEG格式壓縮,并且包括多條掃描線。該方法也包括基
于該確定的縮減因子,確定該壓縮圖像的一定數量的掃描線,該一定數量的
掃描線是該多條掃描線的子集;;^則移動設備的^^f諸容量^^牛,迭^RJf壓 所述數量的掃描線,其中每一條掃描線包括該圖像的水平的、 一個像素高度 的行。而且,該方法包括如果檢測到了^^f渚容量的情況,則對于每次迭 代解壓,通幼于迭^^壓的所述數量的掃描線的特征求平均,來縮減迭^J^ 壓的所述數量的掃描線;并且^^]迭^^壓的所述數量的掃描線來組成具有 目標分辨率的解壓圖像。另夕卜,該方法包^i文大該組成的圖像,以及在該移 動設備處輸出該放大的圖像,其中該放大圖傳^口該壓縮圖像使用相同的縱橫 比。
術語"數據處理裝置"包括所有用于處理數據的裝置、設備和機器,例如 包括可編程處理器、計算機、或者多個處理器或計算機。除硬件O卜,該裝 置還包括創(chuàng)建用于所研究的計算才財呈序的扭行環(huán)境的代碼,例如構成處理器 固件、協(xié)議堆棧、數據庫管理系統(tǒng)、操作系統(tǒng)、跨平臺運行時環(huán)境、或者其 中一個或多個的組合的代碼。此外,該裝置可使用多種不同的計算模型1^出 設施,例如Web服務、分布式計算和網才各計算^5出i殳施。
計算才財呈序(也被稱為程序、軟件、軟件應用、腳絲代碼)可以以任 何一種形式的編程語言編寫,包括編ifi吾言或解釋語言、說明性語言或過程 語言,并且該計算*1^呈序可以以任4可形式部署,包括作為獨立的程序、或作 為才勢t夾、組件、子例程、或其他適合于在計算環(huán)境中使用的單元。計算才M呈 序不必與文件系統(tǒng)中的文件相對應。程序可以存儲在保持其#^呈序或數據(例 如^f諸在標記語言文檔中的一個或多個腳本)的文件的j卩分中,還可以存 儲在專用于所研究的程序的單個文件中、或^f諸在多個協(xié)調的文件(例如存 儲一個或多個模塊、子程序、或代碼部分的文件)中??梢詫⒂嬎悴臕4呈序部 署為在一個計算上或在位于一個站點處或跨多個站點而分布并由通信網絡互 連的多個計算才幾上^丸行。本說明書中描述的處理和邏輯流程可以由一個或多個可編程處理器來執(zhí) 行,這些可編程處理器^Vf亍一個或多個計算才M呈序以通幼于輸入數據進行操 作并生成輸出來執(zhí)行功能。這些處理和邏輯沭d呈也可以由專用邏輯電路來執(zhí)
行,并iL^置也可以實現為專用邏輯電路,該專用邏輯電路例如FPGA (現場 可編程門陣列)或ASIC (專用集成電路)。
適合于實現計算才財呈序的處理器包括例如通用或專用的微處理器、 <勤可 類型的數字計算機的4^f可一個或多個處理器。通常,處理器從只讀存—諸器或 隨機訪問##器或以上兩者接收指令和數據。計算才幾的必需單元是用于才iU亍 指令的處理器和一個或多個用于^i諸指令和數據的存儲器設備。通常,計算
才ilr^可以包括或可才斜U給到例如磁盤、磁光盤或光盤之類的一個或多個用
于存儲數據的大^f諸容量設備以對其接收或發(fā)送數據。然而,計算才幾可以沒 有這些設備。此外,計算機可以嵌入另一個設備中,例如移動電話、個人數
字助理(PDA)、移動音頻或視頻播放器、游戲4空制臺、全球定位系統(tǒng)(GPS) 4妄收器、或者便攜式^fi^殳備(例如通用串行總線(USB)閃存驅動器)等 等。適合于^f^十算4財呈序指令和數據的設備包括所有形式的非易失性^f諸 器、介質和^f諸器設備,包括例如半導^H渚器,如EPROM、 EEPROM和 閃速^^諸器設備;磁盤,如內部石tt或移動石茲盤;磁光盤;以及CD-ROM和 DVD-ROM盤。處理器和務賭器可以由專用邏輯電^4卜充,或合并在專用邏 輯電路中。
:例如,設備可以包括處理器,該處理器基于壓縮圖像的原始分辨率和目 標分辨率確定壓縮圖像的縮減因子,以及基于該確定的縮減因子迭^^壓該 壓縮圖像的一定數量的掃描線。該處理器^^每次迭^^壓中,縮減迭/f,
壓的所述數量的掃描線;以及佳月這些縮減的所述數量的掃描線來組成具有 目標^l岸率的解壓圖像。
為了提供與用戶的交互,本說明書中描述的JJI的實施例可以在具有顯 示器以及鍵盤和指示設備的計算機上實現,該顯示器例如CRT或LCD (液晶 顯示器)監(jiān)視器,用于向用戶顯示信息,并且該指示設備例如鼠標或^^宗球, 用戶可以通過其來向計算才;W是供輸入。其他類型的設^L能^^來提供與用 戶的交互;例如提供給用戶的反饋可以是^f可形式的感官反饋,例如—見覺反饋、聽覺反饋、或觸覺反饋;可以以4封可形式接收來自用戶的輸入,包括聲
學、語音、或觸覺的iir入。
在此描述的主題可以在如下計算系統(tǒng)中實現,該計算系統(tǒng)包括例如作為 數據服務器的后端組件,或者包括例如應用月良務器之類的中間件組件,或者 包括例如具有使得用戶可以通過其來與在本說明書中描述的M的實現進行 交互的圖形用戶接口或Web瀏覽器的客戶端計算才;^類的前端組件,或者包 括一個或多個這樣的后端、中間件或前端組件的任意組合。該系統(tǒng)的組件可 以通過任意的數字數據通信形式或介質,例如通信網絡來互連。通信網絡的
例子包括局域網("LAN")、廣域網("WAN7,)、因特網(例如Internet)以 ^ 于等網絡(例如自組(adhoc)對等網絡)。
該計算系統(tǒng)可以包括客戶端和服務器??蛻舳撕头掌髦g通常彼itW目
^it遠,并且典型地通iiit信網絡來交互??蛻舳撕头掌鞯年P系因為運行 在各自計算機上的計算才M呈序而更密切,并且彼此之間具有^^戶端 -月良務器 關系。
圖4顯示了這種類型的計算機的例子,其示出適合于實現在本說明書中 描述的主題的各方面的裝置或扭軒在本說明書中描述的M的各方面的方法 的可編程處理系統(tǒng)400的框圖。該系統(tǒng)400包括由處理器(CPU)總線450 連接的處理器410、隨機訪問存儲器(RAM)或者程序務賭器420 (例如可寫 只讀存儲器(ROM),例如閃速ROM)、碌i驅動控制器、禍L頻控制器、以 及輸A/輸出(1/0)控制器440。處理器400可預編程,例^nf員編禾l^ROM 中,或者系統(tǒng)400可通過從另一來源(例如,從軟盤、CD-ROM、或其他計 算機中)加載程序而被編程(以及重新編程)。
處理器410是大量高性能計算機處理器中的一個或多個,包括INTEL 或者AMD⑧處理器、POWERPC⑧處理器、MIPS⑧精筒指令集計算機("RISC") 處理器、3 ^^@處理器、ACORN^RISC機器("ARM ")體系結構處理器、 HPALPHASERVEI^處理器或用于大型4幾的專用計算機處理器。在另外的設 置中,該處理器410是多個處理單元,包括在高性能工作站和服務器中可見 的多CPU配置,或者在大型機中可見的多可擴展處理單元。
硬件驅動控制器連接到適合于^f諸可^^ti十算4財呈序的^(浙殳備430,這些可^^ti十算才財呈序包括可以具^^M見在此描述的M的各方面的程序。
視頻控制器連接到視頻記錄器,該記錄器可以用于存儲和導入視頻連續(xù)鏡頭 以及用于寫出f^輸出。
該^f浙殳備430可以^1于從系統(tǒng)400下載數據或向系統(tǒng)400上傳數據 的固定的或可移動的^^i殳備。該^f^i殳備430可以是軟盤驅動器、IOMEGA 觀@驅動器、壓縮盤只讀^f諸器("CD-ROM")驅動器、可記錄CD驅動器 ("CD-R")、可重寫CD驅動器("CD-RW")、閃速務賭器、USB閃速驅動 器、外部或內部硬盤驅動器、拇指驅動器、筆驅動器、鍵驅動器、高密度數 字通用盤("HD-DVD")光盤驅動器、藍光光盤驅動器、全息數字數據^(諸 ("HDDS")光盤驅動器、或例如可記錄DVD ("DVD-R"或"DVD+R")、可 重寫DVD ("DVD-RW"或"DVLH"RW")或DVD-RAM之類的各種可記M 可重寫的數字通用盤("DVD")驅動器中的任意一種。才喿作系統(tǒng)程序、應用 程序以及各種數據文件##^ 茲盤中,f茲盤^ft在^fili殳備430中。
I/O控制器440通過I/O總線與I/O接口連接。該I/O接口以模擬或數字 形式通過例如串行M^各、局域網、無線M^各、并行《鈔I^類的通信M^I妻收 和發(fā)送數據(例如用于導入為一體的靜態(tài)圖片、電影和動畫)。該I/O總線還 連接了顯示器和鍵盤。作為替代,可以采用用于i/o接口、顯示器和鍵盤的獨 立的連接(獨立的總線)。
該IZO控制器可以偵Jf]有線或無線連接器。示例的無線連接器包括例如 INFRARED DATA ASSOCIATION ("IrDA ")無線連接器、光學無線連接 器、INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS ("IEEE ")標準802.11無線連接器、BLUETOOIT^無線連接器、近場通信 ('OTC")連接器、正交頻分^] ("OFDM")超寬帶("UWB")無線連接器、 時間調制超寬帶("TM-UWB")無線連接器、或者其他無線連接器。示例的 有線連接器包括例如IEEE -1394 111£\¥11^@連接器、通用串行總線('VSB") 連接器、串行端口連接器、并行端口連接器、或者其他有線連接器。
系統(tǒng)400使用的操作系統(tǒng)可以A^于基于INTEL 和POWERPC⑧的工 作站和服務器的APPLE MAC OS X ; MICROSOFT WINDOWS NT /WINDOWS 2000/WINDOWS XP工作站;MICROSOFT^WINDOWSVISTA /WINDOWS NT^/W1NDOWS⑧2000/WINDOWS^服務器;各種各 樣的UNE^J^各的才刻乍系統(tǒng),包括用于IBIv/f工作站和服務器的AIX 、用于 SUN 工作站和力l務器的SUNOS 、用于基于MTEI^CPU的工作站和服務 器的LINU^、用于HP⑧工作站和服務器的HP UX WORKLOAD MANAGER⑧、用于SGf工作站和服務器的IRIX 、用于數字設^^公司計算機 的VAX/VMS、用于基于HP ALPHASERVER⑧計算機的OPENVMS ; SYMB腦OS⑧、NEWTON 、 IPOD⑧、WINDOWS MOBILE⑧或WINDOWS CE 、 PALM 、 NOKIA OS ('WOS") 、 OSE 、或者用于移動設備的EPOC 、 或者用于計算才;i^戈嵌入式系統(tǒng)的專有操作系統(tǒng)。用于操作系統(tǒng)的應用開發(fā)平 臺和框架可以是BINARY RUNTIME ENVIRONMENT FOR WIRELESS ("BREW " ); Java Platform、 Micro Edition ("Java ME")或者Java 2 Platform、 Micro Edition ("J2ME ") ; PYTHON 、 FLASH LITE 、或者 MICROSOFT .NET Compact。
盡管本說明書包含了很多實現細節(jié),但這些細節(jié)不應當理解為對^^開 或所要求保護的范圍的限制,而應當理解為對本公開的特定實現所特有的特 征的描述。本說明書在各實現的上下文中所描述的某些特征還可以以組合形 式在單一的實現中實現。相反,本說明書在單一實現的上下文中所描述的各 種特4極可以單獨地或以任意合適的子組合用于多種實現中。另外,雖然上 文中可能將特4i4葛述為了以某些組合形式來操作并且甚至最初要求這才ff呆 護,但所要求保護的組合中的一個或多個特征在某些情況下可以從該組合中 去除,并且所要求保護的組合可以針對一個子組合或各種^4羊的子組合。
類似地,盡管在附圖中以特定次序描述了操怍,但這不應當理解為要求 這些4剁乍以所示出的特定;M或以順序的:^Hi^亍,或要求所示出的所有操 作都被執(zhí)行以獲得希望的結果。在某些情況下,多任務處理和并行處理可能 是有利的。另夕卜,上文中所描述的實現中的各種系統(tǒng)組件的分離不應當理解 為在所有實現中渚睹求這種分離,而應當理解為所描述的程序組件和系統(tǒng)通 ??梢?"^集成在單一的軟件產品中或封裝到多個軟件產品中。
至于形式問題,盡管一直將術語"用戶"用來描述與這些處理進行交互的 實體,但這種概括同樣旨在描ii^各種各樣不同的重疊或非重疊狀態(tài)與這些處理進4亍交互的多個相關或不相關的、存活或自動的實體或人。類似地,術 語"選棒,在整^S兌明書中旨在表示人類的手工選擇、非人類的自動選擇或其某
些組合。最后,應當注意,為簡潔起見,在整個說明書中,術語"JavaScript" 旨在指代SUN MICROSYSTEMS JAVASCRIPf編程語言,并且術語"XML" 旨在指代"eXtensible Markup Language"(可擴展標記語言)。
已經描述了大量實現。無論如何,應當理解,在不偏離本發(fā)明的精神和 范圍的情況下,可以進行各種修改。因此,其他實現也在所附權利要求的范 圍內。
權利要求
1、一種計算機實現的方法,包括基于壓縮圖像的原始分辨率和存儲所述壓縮圖像的移動設備的屏幕分辨率,確定用于所述壓縮圖像的縮減因子,其中所述圖像是使用聯合圖像專家組(JPEG)格式壓縮的,并且包括多條掃描線;基于所述確定的縮減因子,確定所述壓縮圖像的一定數量的掃描線,所述一定數量的掃描線是所述多條掃描線的子集;檢測移動設備的低存儲容量條件;迭代解壓所述數量的掃描線,其中每一條掃描線包括所述圖像的水平的、一個像素高度的一行;如果檢測到了低存儲容量的情況,則對于每次迭代解壓,縮減迭代解壓的所述數量的掃描線,進一步包括對迭代解壓的所述數量的掃描線的特征求平均;使用迭代解壓的所述數量的掃描線來組成具有目標分辨率的解壓圖像;放大所述組成的圖像;以及在所述移動設備處輸出所述放大的圖像,其中所述放大的圖像和所述壓縮圖像使用相同的縱橫比。
2、 一種計算機實現的方法,包括基于壓縮圖像的原始分辨率和目標分辨率,確定用于所述壓縮圖像的縮 減因子;基于所述確定的縮減因子,迭^lf壓所述壓縮圖像的一定數量的掃描線; 對于每次迭^Jf壓,縮減迭4請壓的所述數量的掃描線;以及 使用縮減的所述數量的掃描線來組成具有所述目標分辨率的解壓圖像。
3、 如片又利要求2所述的方法,進一步包括輸出所iii且成的、解壓的圖1"象。
4、 如權利要求2所述的方法,其中所述縮減因子是整數。
5、 如權利要求2所述的方法,進一步包括基于所述確定的縮減因子,確 定所述壓縮圖像的所述數量的掃描線。
6、 如權利要求2所述的方法,其中所述掃描線的數量等于所述縮減因子或與所述縮減因子呈反比。
7、 如權利要求2所述的方法,進一步包括 檢測^^f諸容量^f牛;以及當^企測到^^(諸容量條件時,縮減迭4,壓的所述數量的掃描線。
8、 如權利要求2所述的方法,其中^^]標各圖像文件格式(TTFF)的格 式、可移植網絡圖形(PNG)的格式、圖像交換格式(GIF)的格式、聯合圖 像專家組(JPEG)格式、RAW圖像文件格式或者位圖(BMP)格式來壓縮 所i^縮圖像。
9、 如權利要求2所述的方法,其中縮減迭^^壓的所述數量的掃描線進 一步包括對迭^^壓的所述數量的掃描線的特征求平均或者對迭^^壓的所 述凄t量的掃描線進4于濾波。
10、 如權利要求2所述的方法,其中所述原始分辨率和所述目標分辨率 使用相同的縱橫比。
11、 如權利要求2所述的方法,其中掃描線包括所述圖像的水平的、一 ^H象素高度的行,垂直的、 一個像素寬度的列,或者一個像素粗的斜線。
12、 如權利要求2所述的方法,進一步包括放大所iil且成的、解壓的圖像。
13、 如權利要求2所述的方法,其中所述目標^l岸率包括^f諸所述壓縮 圖像的移動設備的屏幕^l岸率。
14、 如權利要求2所述的方法,進一步包括在已經縮減所述數量的掃描 線之后,丟棄迭^*壓的所述數量的掃描線。
15、 如權利要求2所述的方法,其中所述圖像進一步包括多條掃描線, 其中所述一定數量的掃描線是所述多條掃描線的子集。
16、 如權利要求2所述的方法,基于以下等式來確定所述縮減因子<formula>formula see original document page 3</formula>其中f表示所述縮減因子,w和h分別表示所述原始分辨率的水平和垂直 方向,wDst和hDst分別表示所述目標分辨率的水平和垂直方向。
17、 如權利要求2所述的方法,其中所述原始分辨率包括與所述壓縮圖像的無壓縮版斜目關聯的分辨率。
18、 如權利要求2所述的方法,其中迭4餅壓所iiH縮圖像的一定數量 的掃描線進一步包括解壓所述數量的掃描線中的第一掃描線且并行地解壓 所述數量的掃描線中的第二掃描線。
19、 一種用于數據壓縮的設備,包括用于基于壓縮圖像的原始分辨率和目標分辨率,確定用于所述壓縮圖像 的縮減因子的裝置;用于基于所述確定的縮減因子,迭^^壓所i^縮圖像的一定數量的掃 描線的裝置;用于對于每次迭^^壓,縮減迭^^壓的所述數量的掃描線的裝置;以及用于^^]縮減的所述數量的掃描線來組成具有所述目標分辨率的解壓圖 像的裝置。
20、 一種包括處理器的設備,所#理器配置為 基于壓縮圖像的原始分辨率和目標^^岸率,確定用于所述壓縮圖像的縮減因子;基于所述確定的縮減因子,迭^*壓所^£縮圖像的一定數量的掃描線; 對于每次迭^^壓,縮減迭^f請壓的所述數量的掃描線;以及使用縮減的所述數量的掃描線來組成具有所述目標^l岸率的解壓圖像。
21、 一種計算機實現的方法,包括使用壓縮圖像的經迭^^壓和縮減的 一定數量的掃描線^M成具有目標分辨率的解壓圖像,掃描線的數量與基于 所述壓縮圖^象原始分辨率和目標分辨率確定的縮減因子有關。
全文摘要
本發(fā)明涉及壓縮圖像的增強解壓,其中使用壓縮圖像的經迭代解壓和縮減的一定數量的掃描線來組成具有目標分辨率的解壓圖像,掃描線的數量與基于該壓縮圖像的原始分辨率和目標分辨率確定的縮減因子有關。
文檔編號H04N7/26GK101409842SQ20081017855
公開日2009年4月15日 申請日期2008年9月22日 優(yōu)先權日2007年9月21日
發(fā)明者S·T·克基, W·盧 申請人:奧多比公司