專(zhuān)利名稱(chēng):圖像壓縮的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種圖像壓縮的方法,特別涉及一種用于數(shù)字圖像的原始數(shù)據(jù)(raw data)的固定壓縮倍率圖像壓縮的方法。
背景技術(shù):
使用者能使用數(shù)碼相機(jī)或攝影機(jī)等擷取圖像或視頻信號(hào),并得到可直接播放觀賞的圖像/視頻信號(hào)輸出文件。然而數(shù)碼相機(jī)等裝置最初由傳感器(sensor)所能得到的數(shù)據(jù)為原始數(shù)據(jù)(raw data),原始數(shù)據(jù)尚須經(jīng)過(guò)圖像處理裝置進(jìn)行許多的處理才能提供給使用者觀賞。但是圖像的原始數(shù)據(jù)通常需要占用很大的儲(chǔ)存空間,因此例如Pextax、Nikon或是Canon都有推出數(shù)碼單眼相機(jī)(Digital Single Lens Reflex Camera,常簡(jiǎn)稱(chēng)為DSLR)將圖像的原始數(shù)據(jù)做壓縮,以節(jié)省儲(chǔ)存空間以及讀取時(shí)間。但是現(xiàn)有壓縮原始數(shù)據(jù)的技術(shù)大多采用無(wú)失真壓縮(lossless compression)或是非視覺(jué)性失真壓縮(not visible lossy compression),而這些方法都難以事先預(yù)知控制壓縮后的文件大小。此類(lèi)壓縮方式能夠節(jié)省的空間并不一定,只能在實(shí)際壓縮完后確認(rèn)省下了多少儲(chǔ)存空間。換句話說(shuō),現(xiàn)有的壓縮方法只能壓多少省多少,而無(wú)法得到固定壓縮倍率的結(jié)果。就記憶體空間而言,現(xiàn)有的壓縮方法因無(wú)法事先得知壓縮倍率或維持固定壓縮倍率,所以在記憶體上就還是要維持最大的空間,因此就記憶體大小而言并沒(méi)有任何的改善。
發(fā)明內(nèi)容
為了解決上述問(wèn)題,本發(fā)明的目的在于提供一種圖像壓縮的方法。圖像壓縮的方法適用于將一圖像以固定的一壓縮倍率進(jìn)行壓縮,其中圖像具有一原始數(shù)據(jù)(raw data)。圖像壓縮的方法包括接收一預(yù)定長(zhǎng)度的原始數(shù)據(jù)做為一壓縮單元(compression unit);將壓縮單元壓縮成一已壓縮比特流,已壓縮比特流的總長(zhǎng)度不大于一目標(biāo)比特流長(zhǎng)度;當(dāng)已壓縮比特流的總長(zhǎng)度小于目標(biāo)比特流長(zhǎng)度時(shí),附加一填充碼(dummy bits)于已壓縮比特流之后,以使已壓縮比特流加上填充碼的比特流長(zhǎng)度等于目標(biāo)比特流長(zhǎng)度;以及重復(fù)上述所有步驟,直至將原始數(shù)據(jù)壓縮成一圖像比特流,其中圖像比特流包括所有已壓縮比特流以及分別附加于已壓縮比特流之后的填充碼。其中目標(biāo)比特流長(zhǎng)度可以是壓縮倍率與壓縮單元的比特流長(zhǎng)度的乘積。而填充碼可以是所有的位的值都相同,也可以是附加的已壓縮比特流的一驗(yàn)證碼,或是用以辨識(shí)編碼結(jié)束的特殊文件頭(header)。根據(jù)本發(fā)明的不同實(shí)施范例,壓縮單元可以是一壓縮窗(window)、一圖列 (line)、一或多圖像排(band)或是一整張圖(frame)。當(dāng)壓縮單元是圖列時(shí),上述“將壓縮單元壓縮成一已壓縮比特流,已壓縮比特流的總長(zhǎng)度不大于一目標(biāo)比特流長(zhǎng)度”的步驟可以包括以壓縮窗分割圖列;依序?qū)⒚恳粔嚎s窗壓縮成一子比特流;以及將對(duì)應(yīng)于圖列的這些子比特流作為已壓縮比特流。
3
當(dāng)壓縮單元是圖像排時(shí),上述“將壓縮單元壓縮成已壓縮比特流,已壓縮比特流的總長(zhǎng)度不大于目標(biāo)比特流長(zhǎng)度”的步驟則可以包括以壓縮窗分割圖像排;依序?qū)⒚恳粔嚎s窗壓縮成一子比特流;以及將對(duì)應(yīng)于圖像排的這些子比特流作為已壓縮比特流。綜上所述,本發(fā)明的功效在于,圖像壓縮的方法能夠確保圖像比特流的大小。且填充碼使得已壓縮比特流在圖像比特流中整齊排列,故圖像比特流中的每一個(gè)已壓縮比特流都能輕易地被選定、存取以及解壓縮。以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述,但不作為對(duì)本發(fā)明的限定。
圖1為根據(jù)本發(fā)明一實(shí)施范例的圖像壓縮的方法的流程圖;圖2為根據(jù)本發(fā)明一實(shí)施范例的圖像壓縮的方法所適用的編譯碼器的示意圖;圖3為根據(jù)本發(fā)明一實(shí)施范例的壓縮單元的示意圖;圖4A為根據(jù)本發(fā)明一實(shí)施范例的圖像比特流的示意圖;圖4B為根據(jù)本發(fā)明另一實(shí)施范例的圖像比特流的示意圖;圖5A為根據(jù)本發(fā)明一實(shí)施范例的步驟S120的流程圖;圖5B為根據(jù)本發(fā)明另一實(shí)施范例的步驟S120的流程圖;以及圖6為根據(jù)本發(fā)明一實(shí)施范例的譯碼程序的示意圖。其中,附圖標(biāo)記20電子裝置22傳感器24壓縮編譯碼器模塊241編碼器242譯碼器26記憶體總線28記憶體30原始數(shù)據(jù)32壓縮單元40圖像比特流42目標(biāo)比特流長(zhǎng)度44已壓縮比特流46填充碼
具體實(shí)施例方式以下在實(shí)施方式中詳細(xì)敘述本發(fā)明的詳細(xì)特征以及優(yōu)點(diǎn),其內(nèi)容足以使任何本領(lǐng)域技術(shù)人員了解本發(fā)明的技術(shù)內(nèi)容并據(jù)以實(shí)施,且根據(jù)本說(shuō)明書(shū)所揭露的內(nèi)容、權(quán)利要求范圍及圖式,任何本領(lǐng)域技術(shù)人員可輕易地理解本發(fā)明相關(guān)的目的及優(yōu)點(diǎn)。本發(fā)明提供一種圖像壓縮的方法,其可通過(guò)一電子裝置執(zhí)行。圖像壓縮的方法適用于將一圖像以一壓縮倍率進(jìn)行壓縮成一圖像比特流(bit stream,或稱(chēng)為BitTorrent), 其中圖像具有一原始數(shù)據(jù)(raw data)。
請(qǐng)參照?qǐng)D1以及圖2,其分別為根據(jù)本發(fā)明一實(shí)施范例的圖像壓縮的方法的流程圖以及適用的編譯碼器的示意圖。由圖2可以見(jiàn)悉,電子裝置20包括一傳感器(sensor) 22、 一壓縮編譯碼器模塊(codec module) 24、一記憶體總線(memory bus) 26以及一記憶體觀。 壓縮編譯碼器模塊M包括至少一編碼器241或一譯碼器242之一,其中也可同時(shí)包括編碼器241以及譯碼器M2。電子裝置20可以是數(shù)碼相機(jī)、附有照相功能的手機(jī)、附有照相功能的筆記型計(jì)算機(jī)或是圖像擷取模塊等能夠以傳感器22擷取圖像的裝置。而傳感器22可以例如是電荷耦合裝置(charge coupled device,CCD)或是互補(bǔ)金屬氧化物半導(dǎo)體(complementary metal oxide semiconductor, CMOS),用以產(chǎn)生圖像的原始數(shù)據(jù)。對(duì)于壓縮編譯碼器模塊24,首先由傳感器22接收一預(yù)定長(zhǎng)度的圖像的原始數(shù)據(jù)做為一壓縮單元(compression unit)(步驟S110)。請(qǐng)參照?qǐng)D3,其為根據(jù)本發(fā)明一實(shí)施范例的壓縮單元的示意圖。壓縮單元32是為整個(gè)圖像的原始數(shù)據(jù)30的一部分,例如可以是一圖列(line)、一圖像排(band)、一壓縮窗(window)或是一整張圖(frame) 0于圖3的實(shí)施范例的中圖像被分為多個(gè)圖列,每一個(gè)圖列便是圖像中一排像素,而每一個(gè)圖列都被當(dāng)作一個(gè)壓縮單元32。圖像排也為一種分割圖像的單位,而一個(gè)圖像排可包括至少一個(gè)圖列。壓縮窗一般而言包括一個(gè)圖列中的部分連續(xù)像素,例如可以取一個(gè)圖列中的連續(xù)8個(gè)、 16個(gè)或M個(gè)像素作為一個(gè)壓縮窗。編碼器Ml以固定壓縮倍率將壓縮單元32壓縮成一已壓縮比特流(步驟S120), 其中已壓縮比特流的總長(zhǎng)度不大于一目標(biāo)比特流長(zhǎng)度,以確保壓縮得到的圖像比特流能夠達(dá)成預(yù)設(shè)的壓縮倍率。編碼器241可以利用常見(jiàn)壓縮標(biāo)準(zhǔn)(如靜態(tài)圖像壓縮標(biāo)準(zhǔn),Joint photographic experts group, JPEG)重復(fù)嘗試不同壓縮參數(shù),直至壓縮至目標(biāo)比特流長(zhǎng)度為止;或是用自有壓縮方法以進(jìn)行壓縮。根據(jù)本發(fā)明的一實(shí)施范例,目標(biāo)比特流長(zhǎng)度可以是壓縮倍率與壓縮單元32的比特流長(zhǎng)度的乘積。舉例而言,當(dāng)壓縮單元32是包括8個(gè)像素的壓縮窗,原始數(shù)據(jù)30中每一個(gè)像素使用8個(gè)位(bit),且壓縮倍率為1/2時(shí),目標(biāo)比特流長(zhǎng)度為8X8X 1/2 = 32位。又例如當(dāng)圖像的原始數(shù)據(jù)30的比特流長(zhǎng)度為80兆字節(jié)(megabyte,MB)而壓縮倍率為時(shí),圖像比特流的比特流長(zhǎng)度就是80ΜΒ (乘號(hào))1/2 = 40MB。根據(jù)本發(fā)明的另一實(shí)施范例,編碼器Ml 僅需將壓縮過(guò)的整個(gè)圖像比特流保持在壓縮倍率之下即可,并不需將每一個(gè)壓縮比特流都保持在壓縮倍率之下。壓縮編譯碼器模塊M接收已壓縮比特流,并判斷已壓縮比特流的總長(zhǎng)度是否小于目標(biāo)比特流長(zhǎng)度(S130)。當(dāng)已壓縮比特流的總長(zhǎng)度小于目標(biāo)比特流長(zhǎng)度時(shí),壓縮編譯碼器模塊M于已壓縮比特流之后附加一填充碼,使得已壓縮比特流加上填充碼的比特流長(zhǎng)度等于目標(biāo)比特流長(zhǎng)度(S140)。請(qǐng)參照?qǐng)D4A以及圖4B,其分別為根據(jù)本發(fā)明不同實(shí)施范例的圖像比特流的示意圖。圖4A以及圖4B的實(shí)施范例分別將一個(gè)圖列以及包括兩個(gè)圖列的一個(gè)圖像排作為壓縮單位做處理。壓縮編譯碼器模塊M在不滿目標(biāo)比特流長(zhǎng)度42的已壓縮比特流44的后面補(bǔ)上填充碼46,因此圖像比特流40中每隔一個(gè)目標(biāo)比特流長(zhǎng)度42就是一個(gè)已壓縮比特流 44的起始點(diǎn)。壓縮單元32中包括圖像內(nèi)容會(huì)影響到壓縮出來(lái)的結(jié)果,例如對(duì)應(yīng)于單純的圖像內(nèi)容的已壓縮比特流44的比特流長(zhǎng)度會(huì)較平均值短。因此與每一個(gè)已壓縮比特流44對(duì)應(yīng)的填充碼46的長(zhǎng)度可能有所不同。填充碼46中可以所有的位的值都相同,例如全是0或者是全是1。填充碼46也可以是附加的已壓縮比特流44的一驗(yàn)證碼,例如可以是相對(duì)應(yīng)的已壓縮比特流44的校驗(yàn)和 (check sum),或是用來(lái)辨識(shí)編碼結(jié)束的特殊文件頭(header)。當(dāng)已壓縮比特流44的比特流長(zhǎng)度與目標(biāo)比特流長(zhǎng)度42相同或是已補(bǔ)上適當(dāng)?shù)奶畛浯a46時(shí),壓縮編譯碼器模塊M則判斷是否已完成將整個(gè)原始數(shù)據(jù)30壓縮成圖像比特流 40(S150)。若已將圖像的原始數(shù)據(jù)30壓縮完成則可結(jié)束圖像壓縮的方法。若否,則重復(fù)上述所有步驟SllO到S150,直到將原始數(shù)據(jù)30壓縮成完整的圖像比特流40。其中完整的圖像比特流40包括所有已壓縮比特流44以及分別附加于這些已壓縮比特流44的后的填充碼46。請(qǐng)參照?qǐng)D5A以及圖5B,其分別為根據(jù)本發(fā)明不同實(shí)施范例的步驟S 120的流程圖。根據(jù)本發(fā)明的一實(shí)施范例,當(dāng)壓縮單元32是一個(gè)圖列時(shí),步驟S120可包括以壓縮窗分割圖列(步驟S121);依序?qū)⒚恳粔嚎s窗壓縮成一子比特流(步驟S122);以及將對(duì)應(yīng)于圖列的這些子比特流作為已壓縮比特流44(步驟S123)。根據(jù)本發(fā)明的另一實(shí)施范例,當(dāng)壓縮單元32是一個(gè)圖像排時(shí),步驟S120可包括 以壓縮窗分割圖像排(步驟SU6);依序?qū)⒚恳粔嚎s窗壓縮成一子比特流(步驟S127);以及將對(duì)應(yīng)于圖像排的這些子比特流作為已壓縮比特流44(步驟S128)。換句話說(shuō),編碼器 241可以每次將一個(gè)壓縮窗的部分圖像壓縮成子比特流;壓縮編譯碼器模塊M再以包括多個(gè)壓縮窗的壓縮單元32 (圖列或是圖像排)為單位寫(xiě)入填充碼46。壓縮編譯碼器模塊M還可包括至少一譯碼器M2,譯碼器242執(zhí)行一譯碼程序以將圖像比特流40中的至少一個(gè)已壓縮比特流44解壓縮回其對(duì)應(yīng)的壓縮窗、圖列或是圖像排。請(qǐng)參照?qǐng)D6,其為根據(jù)本發(fā)明一實(shí)施范例的譯碼程序的流程圖。譯碼器242首先可以接收至少一目標(biāo)索引(步驟S200)。每一個(gè)目標(biāo)索引對(duì)應(yīng)于一個(gè)已壓縮比特流44,例如目標(biāo)索引可以是每一個(gè)已壓縮比特流44的編號(hào)。接著譯碼器M2 計(jì)算目標(biāo)比特流長(zhǎng)度42乘以目標(biāo)索引的積作為一目標(biāo)起始位置(步驟S210),并由目標(biāo)起始位置譯碼至少一個(gè)已壓縮比特流44 (步驟S220)。由于圖像比特流40中每隔一個(gè)目標(biāo)比特流長(zhǎng)度42就是一個(gè)已壓縮比特流44的起始點(diǎn),因此譯碼器242可以隨機(jī)存取(random access)圖像比特流40中的任何一個(gè)已壓縮比特流44,并將其解壓縮。綜上所述,編碼器已壓縮倍率壓縮圖像的原始數(shù)據(jù),而能確保壓縮得到的圖像比特流省下足夠的儲(chǔ)存空間與記憶體存取頻寬。此外,通過(guò)附加填充碼的技術(shù),圖像比特流中的每一個(gè)已壓縮比特流都能輕易地被選定、存取以及解壓縮。因此在僅需要將整個(gè)圖像中的部分壓縮單元解壓縮時(shí),并不需要將整個(gè)圖像比特流解壓縮,而是只要將與所需的壓縮單元對(duì)應(yīng)的已壓縮比特流譯碼即可。當(dāng)然,本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種圖像壓縮的方法,通過(guò)一電子裝置執(zhí)行下列步驟,適用于將一圖像以一壓縮倍率進(jìn)行壓縮,其中該圖像具有一原始數(shù)據(jù),其特征在于,該圖像壓縮的方法包括接收一預(yù)定長(zhǎng)度的該原始數(shù)據(jù)做為一壓縮單元;將該壓縮單元壓縮成一已壓縮比特流,該已壓縮比特流的總長(zhǎng)度不大于一目標(biāo)比特流長(zhǎng)度;當(dāng)該已壓縮比特流的總長(zhǎng)度小于該目標(biāo)比特流長(zhǎng)度時(shí),附加一填充碼于該已壓縮比特流之后,以使該已壓縮比特流加上該填充碼的比特流長(zhǎng)度等于該目標(biāo)比特流長(zhǎng)度;以及重復(fù)上述所有步驟,直至將該原始數(shù)據(jù)壓縮成一圖像比特流,其中該圖像比特流包括所有該些已壓縮比特流以及分別附加于該些已壓縮比特流之后的該些填充碼。
2.根據(jù)權(quán)利要求1所述的圖像壓縮的方法,其特征在于,該目標(biāo)比特流長(zhǎng)度為該壓縮倍率與該壓縮單元的比特流長(zhǎng)度的乘積。
3.根據(jù)權(quán)利要求1所述的圖像壓縮的方法,其特征在于,該壓縮單元為一壓縮窗。
4.根據(jù)權(quán)利要求1所述的圖像壓縮的方法,其特征在于,該壓縮單元為一圖列。
5.根據(jù)權(quán)利要求4所述的圖像壓縮的方法,其特征在于,該將該壓縮單元壓縮成一已壓縮比特流,該已壓縮比特流的總長(zhǎng)度不大于一目標(biāo)比特流長(zhǎng)度的步驟包括以一壓縮窗分割該圖列;依序?qū)⒚恳辉搲嚎s窗壓縮成一子比特流;以及將對(duì)應(yīng)于該圖列的該些子比特流作為該已壓縮比特流。
6.根據(jù)權(quán)利要求1所述的圖像壓縮的方法,其特征在于,該壓縮單元為一圖像排。
7.根據(jù)權(quán)利要求6所述的圖像壓縮的方法,其特征在于,將該壓縮單元壓縮成一已壓縮比特流,該已壓縮比特流的總長(zhǎng)度不大于一目標(biāo)比特流長(zhǎng)度的步驟包括以一壓縮窗分割該圖像排;依序?qū)⒚恳辉搲嚎s窗壓縮成一子比特流;以及將對(duì)應(yīng)于該圖像排的該些子比特流作為該已壓縮比特流。
8.根據(jù)權(quán)利要求1所述的圖像壓縮的方法,其特征在于,該填充碼中所有的位的值都相同。
9.根據(jù)權(quán)利要求1所述的圖像壓縮的方法,其特征在于,該填充碼為附加的該已壓縮比特流的一驗(yàn)證碼。
10.根據(jù)權(quán)利要求1所述的圖像壓縮的方法,其特征在于,該填充碼為用以辨識(shí)編碼結(jié)束的特殊文件頭。
全文摘要
一種圖像壓縮的方法,適用于將圖像以固定壓縮倍率進(jìn)行壓縮,其中圖像具有原始數(shù)據(jù)。該方法包括接收預(yù)定長(zhǎng)度的原始數(shù)據(jù)做為壓縮單元;將壓縮單元壓縮成已壓縮比特流,已壓縮比特流的總長(zhǎng)度不大于目標(biāo)比特流長(zhǎng)度;當(dāng)已壓縮比特流的總長(zhǎng)度小于目標(biāo)比特流長(zhǎng)度時(shí),附加填充碼于已壓縮比特流之后,以使已壓縮比特流加上填充碼的比特流長(zhǎng)度等于目標(biāo)比特流長(zhǎng)度;以及重復(fù)上述所有步驟,直至將原始數(shù)據(jù)壓縮成圖像比特流,其中圖像比特流包括所有已壓縮比特流及分別附加于已壓縮比特流之后的填充碼。本發(fā)明能夠確保圖像比特流的大小。且填充碼使已壓縮比特流在圖像比特流中整齊排列,故圖像比特流中的每一個(gè)已壓縮比特流都能輕易被選定、存取以及解壓縮。
文檔編號(hào)H04N7/26GK102469306SQ201010532149
公開(kāi)日2012年5月23日 申請(qǐng)日期2010年10月29日 優(yōu)先權(quán)日2010年10月29日
發(fā)明者張哲瑋, 張慶彥, 潘佳河, 陳水淋 申請(qǐng)人:華晶科技股份有限公司