使用差分傳送進行的無損圖像壓縮的制作方法
【專利說明】
【背景技術】
[0001]電子設備所捕獲和/或顯示的視覺圖像常常以數量相當大的存儲器空間占用(即,為了存儲表示圖像的數據而消耗的存儲器的量)為特征。隨著圖像分辨率的提高,圖像的存儲器空間占用也增大。期望各種電子設備能夠處理這樣的圖像。例如,移動電子設備(諸如移動電話和個人數字助理)常配備有拍攝靜態照片、或者甚至視頻的相機。雖然目前包括在這樣的設備中的圖像捕獲傳感器往往能夠實現大約2-4百萬像素,但是包括在較新電話中的傳感器將繼續提高分辨率。此外,這樣的設備正配備有更高分辨率的屏幕,因此用于顯示的圖像的空間占用也增大。這樣的設備還可被設計用于將高分辨率圖像/視頻輸出到外部設備,并且高分辨率圖像的空間占用很大。
[0002]雖然這樣的設備中存儲器的大小隨著時間也在提高,但是存儲器的大小不可能以與圖像分辨率和/或尺寸相同的速率提高。另外,這樣的設備越來越多地提供重要的功能性以用于其他目的。例如,智能電話正開始提供多線程處理來支持多個應用程序同時在電話上運行。每個應用程序消耗存儲器以用于被執行的代碼和所處理的數據,這對存儲器容量產生了進一步的壓力。此外,應用程序競爭訪問存儲器(例如帶寬),這可能對存儲器和存儲器控制器之間、以及存儲器控制器和系統中其他設備(諸如處理器、圖形設備、顯示控制器等)之間的互連器產生壓力。
[0003]圖像能夠以壓縮形式被傳輸和存儲。然而,在圖像捕獲和顯示期間,對圖像壓縮和解壓縮的時間和硬件要求可能是過高的。
【發明內容】
[0004]本文所述的系統和方法展示了使用差分傳送進行的多種無損圖像壓縮技術。如本文所述,無損圖像壓縮可涉及利用圖像(或圖像的一部分)在多個幀(或其他圖像序列)上不改變的實例。由于帶寬(或其他資源)限制,可能必須發送僅代表圖像近似版本的圖像數據。在下一幀正被處理時,如果圖像并沒有改變,則可發送使得能夠生成圖像完整版本的附加圖像信息。因此,在圖像的完整數據(甚至在被壓縮時)由于帶寬限制而可能不是能傳送的時候,使用差分傳送進行的無損圖像壓縮可使得能夠生成圖像的完整版本。
[0005]例如,視頻的一個幀的圖像數據可能由于帶寬或空間局限而使用有損壓縮來被壓縮。一旦被傳送了,則有損壓縮的圖像數據可能只代表該幀的近似(或有損)版本。在下一幀被處理時,如果該幀沒有改變(或者沒有改變太多),則使得能夠生成該幀的完整(或無損)版本的圖像數據可被傳送。因此,如果非變化圖像由于數據速率(或其他資源)限制而沒有被無損地發送,則后續的差分傳輸可使被接收圖像數據完整,以在兩個或更多幀之后生成完全無損的結果。
[0006]在壓縮和傳送圖像序列(諸如視頻)時,在多個幀上,圖像幀并非所有部分都可能同時或以同樣的速率改變。因此,在(由于資源/帶寬限制)為圖像的一部分發送有損壓縮的圖像數據之后,圖像的所述一部分在下一幀中可能沒有改變。利用圖像的特定部分在后續幀中沒有改變這一事實,可發送所述圖像的該部分的附加圖像數據以允許生成圖像的該部分的無損圖像數據。
【附圖說明】
[0007]圖1是示出根據一個實施例的一般性數據源和數據目標使用壓縮和解壓縮的一個實施例的框圖的邏輯框圖。
[0008]圖2是示出本文所述的用于執行使用差分傳送進行的無損圖像壓縮的方法的一個實施例的流程圖。
[0009]圖3是示出根據一個實施例的使用無損圖像壓縮來壓縮圖像塊的邏輯框圖,該無損圖像壓縮使用差分傳送進行。
[0010]圖4是示出能夠執行本文所述的使用差分傳送進行的無損圖像壓縮的圖像壓縮單元的一個實施例的邏輯框圖。
[0011]圖5是示出用于使用無損圖像壓縮的方法的一個實施例的流程圖,該無損圖像壓縮使用差分傳送進行。
[0012]圖6是示出本文所述的包括系數量化的使用差分傳送進行的無損圖像壓縮方法的一個實施例的流程圖。
[0013]圖7是示出使用差分傳送進行的無損圖像壓縮方法的一個實施例的流程圖。
[0014]圖8是根據一個實施例展示圖像解壓縮單元的邏輯框圖。
[0015]圖9是示出使用差分傳送進行的無損圖像壓縮方法的一個實施例的流程圖。
[0016]圖10是示出使用差分傳送進行的無損圖像壓縮方法的一個實施例的流程圖。
[0017]圖11是示出根據一個實施例的能夠執行本文所述的使用差分傳送進行的無損圖像壓縮的計算機系統的邏輯框圖。
[0018]雖然各種實施例在本文中以幾個實施例和例示性附圖的示例方式進行了描述,但是本領域技術人員將認識到,實施例并不限于所描述的那些實施例和附圖。應當理解,附圖及其詳細描述并不旨在要將實施例限制為所公開的具體形式,相反,本發明是要涵蓋落在本公開的實質和范圍內的所有修改、等同形式和替代形式。本文中所使用的任何標題只是為了編排的目的,而并不是要用于對說明書的范圍進行限制。如在整個本專利申請中所使用的那樣,以允許的意義(即,意味著具有可能性)而不是強制的意義(即,意味著必須)來使用“可以” 一詞。類似地,詞語“包括”、“包含”、和“具有”是指包括、但不限于。
【具體實施方式】
[0019]根據一些實施例,本文所述的使用差分傳送進行的無損圖像壓縮可包括最初由于資源限制而利用有損壓縮傳送圖像數據、但隨后以生成無損圖像數據的方式來傳送圖像數據。
[0020]如本文所述,使用差分傳送進行的無損圖像壓縮可由圖像壓縮單元和兼容的圖像解壓縮單元來實現。圖像壓縮單元能夠以低延遲和相對少的硬件來執行圖像的壓縮。類似地,圖像解壓縮單元能夠以低延遲和少量硬件來對圖像進行解壓縮。使用差分傳送進行的無損圖像壓縮可減輕存儲器與對圖像進行操縱的設備/模塊之間的互連器上的帶寬壓力、以及圖像數據與其它數據存儲之間對存儲器空間的競爭。
[0021]圖像可作為一系列圖像塊來被處理(分析、壓縮、傳送、解壓縮等)。每個塊可以是統一的大小,并代表總體圖像的一部分。因此,視頻序列中的每個圖像幀可作為在被一起顯示時形成整個時間幀的一組塊來被處理。本文所述的使用差分傳送進行的無損圖像壓縮可被應用于圖像序列(例如視頻)中的各個圖像塊(例如幀)。
[0022]例如,圖像壓縮單元可能由于有限的帶寬(諸如存儲器與顯示控制器之間的限制或其他資源限制)而對于圖像幀的一個(或多個)所述塊僅發送圖像數據的一部分。部分圖像數據可以用于生成該圖像塊的近似(例如有損)版本。然后,如果那個塊的內容(例如圖像/圖形)在下一幀中沒有改變,則圖像壓縮單元于是可發送那個塊的使得能夠生成那個塊的準確(例如無損)版本的圖像數據。例如,在一個實施例中,在處理下一幀時,圖像壓縮單元可發送該塊的其余圖像數據,從而在與先前發送的圖像數據結合時可創建該圖像塊的完整版本。
[0023]請注意,雖然在本文中以圖像并利用基于圖像的示例來進行描述,但是,使用差分傳送進行的無損圖像壓縮可應用于除了圖像之外的數據和/或信息。例如,可作為序列幀來分析的任何數據集合都可使用本文所述的系統、方法和技術來傳送。
[0024]在以下詳細描述中,給出了多個具體細節以提供對要求保護的主題的全面理解。但是,本領域技術人員將理解,要求保護的主題可以在沒有這些具體細節的情況下被實現。在其他實例中,方法、裝置或系統在下文中沒有被詳細地描述,這是因為它們是本領域技術人員已知的,以便避免使要求保護的主題模糊不清。
[0025]下面的【具體實施方式】的一些部分是以對二進制數字信號的操作的算法或符號表示來進行展示的,該二進制數字信號存儲在特定裝置或專用計算設備或平臺的存儲器內。在這個具體說明書的上下文中,術語“特定裝置”等包括通用計算機,只要其被編程為根據來自程序軟件的指令執行特定功能。算法描述或符號表示是信號處理或相關領域中普通技術人員用來將其工作實質內容傳達給該領域中其他技術人員的技術的示例。算法在這里、并且一般性地被視為是導致所期望結果的操作或類似信號處理的自相一致的序列。在這個語境中,操作或處理涉及物理量的物理操縱。通常,但是不是必然地,這樣的量可以采取能夠被存儲、傳送、組合、比較或以其它方式操縱的電或磁信號的形式。已經證明有時(主要是出于慣用用法的原因)將這樣的信號指代為位、數據、數值、元素、符號、字符、項、數字、數碼等是方便的。但是應該理解,所有這些或類似術語要與適當的物理量相關聯并且僅僅是方便的標號。
[0026]除非另外特別說明,否則如從下面的討論中顯而易見的那樣,應當理解,在本說明書通篇中,利用諸如“處理”、“計算”、“運算”、“確定”等這樣的術語的討論是指特定裝置(諸如專用計算機或類似的專用電子計算設備)的動作或過程。因此,在本說明書的上下文中,專用計算機或類似的專用電子計算設備能夠操縱或變換信號,信號通常被表示為所述專用計算機或類似的專用電子計算設備的存儲器、寄存器、或其他信息存儲設備、傳輸設備、或顯示設備內的電子或磁的物理量。
[0027]現在轉向圖1,示出了經由信道150耦接的一般性圖像數據源110和一般性圖像數據目標140的框圖,該信道150包括至少一個帶寬受限和/或空間受限的資源。圖像數據源110包括圖像壓縮單元120,并且圖像數據目標140包括圖像解壓縮單元130。
[0028]一般而言,圖像數據源110可被配置為通過信道150將數據傳送到圖像數據目標140。圖像數據源110可生成數據(例如,圖像數據源110可以是傳感器,諸如用于圖形圖像的相機),或者可從其他電路接收數據并任選地可處理該數據以將該數據以某種限定的方式進行變換。圖像數據源I1于是可利用圖像壓縮單元120對數據進行壓縮。一般而言,根據一些實施例,壓縮可以是數據的一種變換,在該變換中減小數據的大小。
[0029]壓縮可以是無損的或者是有損的。利用無損壓縮,原始數據在壓縮和隨后的解壓縮之后可恢復為其準確形式。因此,無損壓縮算法可著眼于移除原始數據中的冗余以及更有效地對數據進行編碼,但是是以保留所有信息內容的方式。例如,數據中一長串連續的相同數值可以更有效的編碼來代替,諸如該數值的實例數量的計數、后面跟有該數值本身的一個實例。在有損壓縮中,(通過對原始數據進行壓縮并對壓縮的數據進行解壓縮而得到的)解壓縮的數據是原始數據的近似值。特別是對于圖形圖像,有損壓縮可能生成在用人眼觀察時基本上難以與原始圖像進行區分的解壓縮圖像,即使解壓縮圖像已經丟失了一些表示該圖像的內容。或者,有損壓縮可能導致解壓縮的圖像相對于原始圖像具有明顯的差異,但是這些差異可能被認為是觀察者能接受的。
[0030]通過壓縮數據并通過信道150傳送壓縮的數據,圖像數據源110可消耗信道150中更少的可用帶寬和/或存儲空間。例如,信道150可能包括一個或多個互連器,數據通過所述一個或多個互連器而被傳輸。每個互連器可能具有一最大帶寬,并且至少一些互連器帶寬可能不足以支持未壓縮數據的“實時”傳輸。即,未壓縮數據可能由圖像數據源110以特定速率來生成或接收。如果可用于圖像數據源110的帶寬小于該速率,則未壓縮數據不能在不對數據生成/接收速率產生拖延、或反壓力的情況下被傳輸。在一些情況下,對數據生成/接收速率產生拖延可能并不是能被接受的。例如,如果圖像數據源I1是相機傳感器,則代表圖像的數據必須在傳感器捕獲下一個圖像之前被傳輸。如果圖像數據源110正在提供視頻,則圖像正以特定的幀速率被傳