隨機存取存儲器中壓縮數據的系統(tǒng)及方法
【專利摘要】一種促進隨機存取存儲于存儲器中壓縮數據片段的方法,包括以下步驟:接收一系列數據片段;將該系列數據片段編碼成一系列可變片段大小的壓縮數據片段;在存儲器中存儲該系列壓縮數據片段;以及為每一個壓縮數據片段產生定位符。每一個定位符指示在存儲器中一關聯壓縮數據片段的位置。一種隨機存取壓縮數據片段的方法,包括:接收對于壓縮數據片段的請求;檢索與被請求的片段相關聯的定位符;使用被檢索的定位符以在存儲器中定位被請求的片段;以及從存儲器中檢索被請求的片段。因此,可對壓縮數據片段以不同于被編碼的次序進行解碼。也公開可實現該方法的系統(tǒng)。
【專利說明】隨機存取存儲器中壓縮數據的系統(tǒng)及方法
【技術領域】
[0001 ] 本發(fā)明通常涉及一種用于壓縮和解壓縮數據的編解碼器系統(tǒng),尤其是一種可促進壓縮數據片段進行獨立解碼的編解碼器系統(tǒng),使其解碼的次序可不依那些壓縮數據片段被編碼的次序。
【背景技術】
[0002]近年來對媒體的需求,如視頻和圖像等,特別是高分辨率(High Definition, HD)媒體急遽增加??上У氖牵嫉母叻直媛拭襟w包含非常大數量的數據,使得存儲該原始數據變困難。舉例來說,存儲一原始高分辨率視頻數據的幀需要一個很大的幀緩沖器。當高分辨率裝置的開發(fā)者們面臨降低裝置大小及成本的壓力時,這會變成一種問題。
[0003]編解碼器在媒體裝置中被用于增加數據的壓縮。在一編解碼器中,編碼器接收原始媒體數據,將之編碼成壓縮數據并能被存儲在存儲器中以供后續(xù)檢索。當該壓縮數據從存儲器中被檢索時會被送往解碼器,該解碼器解碼壓縮數據并輸出解碼完的媒體數據以便回放。
[0004]然而,編解碼器帶來本身的問題。舉例來說,流行的圖像編解碼器,如聯合圖像專家組(JPEG)編解碼器等,將數據相依性帶入此壓縮數據。因此,此定義一圖像的壓縮數據必須以被編碼的次序的相同次序被解碼,即以一種先進先出(first-1n-first-out)的方式。這會有一種影響:若需解碼及存取欲解碼圖像的一部分時,要先解碼在此部分以前先被編碼的壓縮數據。編解碼器也有缺點,因其需要詳細配置信息,如一幀標頭,用以存儲壓縮數據并在編碼器和解碼器間轉移。然而,傳輸和存儲該配置信息是一種缺點,因為會增加需要存儲該壓縮數據的存儲器總量以及在媒體裝置內需要被通信的數據總量。
[0005]因此,需要一種系統(tǒng)及方法可促進獨立和選擇式存取壓縮數據片段。也需要一種系統(tǒng)及方法,促進對壓縮數據片段以不同于壓縮數據片段被編碼的次序做解碼。也需要一種用于壓縮數據的系統(tǒng)及方法,在該壓縮數據內不會造成數據相依性。也需要一種系統(tǒng)及方法,消除在編碼器和解碼器間轉移配置信息的需求。
【發(fā)明內容】
[0006]本發(fā)明克服與先前技術相關的問題,藉由提供一種系統(tǒng)及方法來促進隨機存取存儲在存儲器中的壓縮數據片段。本發(fā)明在多個壓縮數據片段間不帶入數據相依性以促進數據片段的壓縮。本發(fā)明也促進產生定位符,用以指示在存儲器中關聯壓縮數據片段的位置。因此,多個壓縮數據片段中任一個能以任何次序從存儲器中被檢索和解碼,且不請求其它壓縮數據片段也被解碼。
[0007]根據本發(fā)明的一種方法可促進存儲在存儲器中壓縮數據片段的隨機存取。該方法包括以下步驟:接收一系列數據片段;將該系列數據片段編碼成一系列具有可變片段大小的壓縮數據片段;在一壓縮數據存儲器中存儲該系列壓縮數據片段,可選地,未使用標頭信息;以及為壓縮數據片段中的每一個壓縮數據片段產生一定位符。每個定位符指示在該壓縮數據存儲器中的一關聯壓縮數據片段的位置。特定方法也能包括以下步驟:確定在該系列壓縮數據片段中的每一個壓縮數據片段的大小,及/或在一定位符存儲器中存儲該定位符以供后續(xù)檢索。
[0008]根據一種特定方法,該定位符包括一存儲地址,在該壓縮數據存儲器中識別一存儲位置,該壓縮數據存儲器存儲該關聯壓縮數據片段的至少一部分;以及一偏移,在該被識別的存儲位置內,識別該關聯壓縮數據片段的第一位的位置。在一種更特定的方法中,通過計算存儲在一關聯壓縮數據片段之前的多個壓縮數據片段中的每一個壓縮數據片段的大小總和,產生該關聯壓縮數據片段的定位符;將該總和除以等于該壓縮數據存儲器的寬度的值以得到一商數和一余數;轉換該商數成該定位符的存儲地址;以及設定該定位符的偏移等于該余數。根據另一種特定方法,該定位符可為一存儲器指示器。
[0009]根據一種特定的方法,該系列數據片段包括一系列圖像數據塊用于定義一圖像,而該壓縮數據存儲器為一幀緩沖器。根據上述方法,該編碼該等數據片段的步驟包括在每一個圖像數據塊上執(zhí)行一離散余弦變換(Discrete Cosine Transform, DCT)以產生一系列DCT系數絕對值的塊,其是不參考任何其它的DCT系數塊而產生的DCT系數。對每一個DCT系數塊,該編碼步驟可包括以下步驟:量化該DCT系數塊以產生一量化系數塊;將該量化系數塊經鋸齒型編碼成一序列量化系數;將該序列量化系數經游程長度編碼以產生游程長度編碼(run-length-encoded,RLE)數據;以及將該RLE數據熵編碼以產生該系列壓縮數據片段中的一個壓縮數據片段。可選地,在量化及熵編碼的步驟中被使用的量化數據和熵數據在圖像間不改變。
[0010]也公開一種隨機存取壓縮數據存儲器中壓縮數據片段的方法。依據本發(fā)明實施例的一種方法包括以下步驟:接收用于一壓縮數據片段的一請求;檢索與該被請求的壓縮數據片段相關聯的一定位符;使用該檢索的定位符以定位在該系列壓縮數據片段內的被請求的壓縮數據片段,該系列壓縮數據片段存儲在該壓縮數據存儲器中;以及檢索該被請求的壓縮數據片段。根據本發(fā)明實施例一特定方法,進一步包括以下步驟:檢索與第二壓縮數據片段相關聯的第二定位符,該第二壓縮數據片段在該被請求的壓縮數據片段后存儲在該壓縮數據存儲器中;以及使用該第二定位符以定位該被請求的壓縮數據片段的末端。
[0011]根據本發(fā)明實施例另一個特定方法,包括解碼該壓縮數據的步驟。因此,本發(fā)明能使一壓縮數據片段以與該系列壓縮數據片段的剩余部分無關的次序被檢索及解碼。在一圖像的情況下,對該壓縮數據片段解碼的步驟可包括以下步驟:對被請求的壓縮數據片段熵解碼以產生RLE數據;將該RLE數據經游程長度解碼以產生多個量化系數;在多個量化系數上執(zhí)行一逆鋸齒型處理以產生一量化系數塊;將該量化系數塊去量化以產生一 DCT系數的絕對值塊;以及不參考其余任何DCT系數塊,在該DCT系數的絕對值塊上執(zhí)行一逆DCT處理,以產生一解碼后圖像數據塊。根據本發(fā)明實施例一更特定的方法,可不對與該系列壓縮數據片段相關聯的一標頭做語法分析,即執(zhí)行該解碼步驟。
[0012]本發(fā)明同時公開一種非過渡、電子可讀式的存儲媒體,其具有代碼可使一電子裝置執(zhí)行上述本發(fā)明的方法。此「非過渡」用語系在將存儲媒體與過渡性電子信號做區(qū)別。然而,可覆寫的存儲器可意指為「非過渡」的。
[0013]本發(fā)明也描述一種促進隨機存取在壓縮數據存儲器中存儲的壓縮數據片段的系統(tǒng)。根據一實施例,該系統(tǒng)包括:一數據輸入,被耦合以接收一系列數據片段;一編碼器,經操作以編碼該系列數據片段成具有可變片段大小的一系列壓縮數據片段;一壓縮數據存儲器,被耦合以接收和存儲該系列壓縮數據片段;以及一定位符產生器,經操作以產生用于該系列壓縮數據片段中的每一個壓縮數據片段的一定位符,而該定位符是指示在該系列中一關聯壓縮數據片段的位置。
[0014]本發(fā)明中編碼器的特定實施例經實現可執(zhí)行以上描述的任何特定編碼方法,特別是關于絕對值DCT、量化、鋸齒形、游程長度、和熵編碼處理,用于將圖像數據塊編碼成壓縮數據片段。本發(fā)明的定位符產生的特定實施例也能根據上述方法來實現以產生定位符,特別是關于確定該壓縮數據片段的大小及使用該大小以產生該定位符。此外,任何用于定位符的上述描述方式也能在本發(fā)明的特定實施例中來實現。
[0015]也公開一種隨機存取存儲器中壓縮數據片段的系統(tǒng)。根據一實施例,該系統(tǒng)包括一數據請求輸入,經操作以接收用于選自存儲在壓縮數據存儲器中的一系列可變大小的壓縮數據片段的至少一壓縮數據片段的一請求。該實施例也包括一控制器,其經操作以檢索與該被請求的壓縮數據片段相關聯的一定位符;使用該被檢索的定位符以在該壓縮數據存儲器中定位該被請求的壓縮數據片段;以及從存儲器中檢索該被請求的壓縮數據片段。在一更特定的實施例中,該控制器也能檢索與第二壓縮數據片段相關聯的第二定位符,該第二壓縮數據片段存儲在該壓縮數據存儲器中,且接著使用該第二定位符以定位該被請求的壓縮數據片段的末端。
[0016]該系統(tǒng)也可包括一解碼器,其經操作以解碼該被請求的壓縮數據片段。在特定實施例中,該解碼器可使用逆熵、逆游程長度、逆鋸齒形、逆量化、和逆DCT處理,以解碼該壓縮數據片段。在另一特定實施例中,該解碼器可不對一壓縮數據標頭語法分析解碼該被請求的壓縮數據片段。
[0017]本發(fā)明也公開一種用于在存儲器中定位一關聯壓縮數據片段的定位符的數據結構。該數據結構能被存儲在一非過渡、電子可讀式的存儲媒體。在特定實施例中,該數據結構包括第一字段,該第一字段存儲定義一存儲地址的數據,該存儲地址在存儲器中識別一存儲位置,且該關聯壓縮數據片段的至少一部分被存儲在該存儲器中。該數據結構也包括第二字段,該第二字段存儲定義一偏移的數據,而該偏移指示在該存儲位置內的一位位置,而該關聯壓縮數據片段起始于該位位置。在一更特定的實施例中,該數據結構進一步包括第三字段,該第三字段存儲從其它多個壓縮數據片段中單一地識別該關聯壓縮數據片段的數據。
【專利附圖】
【附圖說明】
[0018]本發(fā)明參考以下圖式加以描述,其中同樣的參考標記大致表示相同的組件:
[0019]圖1為根據本發(fā)明一實施例包括編碼器和解碼器(編解碼器)系統(tǒng)的主機裝置的方塊圖;
[0020]圖2為說明根據本發(fā)明的圖像如何被分割成多個數據片段的示意圖;
[0021]圖3為根據本發(fā)明一實施例更詳細地顯示圖1中的編碼器的示意圖;
[0022]圖4為顯示根據本發(fā)明圖3的DCT單元在圖像數據塊上執(zhí)行DCT的示意圖;
[0023]圖5為根據本發(fā)明一實施例進一步顯示圖3的熵與定位符單元(ELU)的方塊圖;
[0024]圖6為根據本發(fā)明一實施例顯示定位符的數據結構的示意圖;[0025]圖7為根據本發(fā)明一實施例顯示圖1的定位符緩沖器存儲多個定位符的示意圖;
[0026]圖8為根據本發(fā)明一實施例顯示圖1的壓縮數據存儲器存儲一系列與圖7的定位符相關聯的壓縮數據片段的示意圖;
[0027]圖9為根據本發(fā)明一實施例進一步顯示圖1的隨機存取控制器的方塊圖;
[0028]圖10為根據本發(fā)明一實施例進一步顯示圖1的解碼器的方塊圖;
[0029]圖11為根據本發(fā)明一實施例顯示實現在軟件中本發(fā)明的編解碼器系統(tǒng)的計算機系統(tǒng)方塊圖;
[0030]圖12為根據本發(fā)明總結了促進隨機存取在存儲器中存儲的壓縮數據片段的方法的流程圖;
[0031]圖13為根據本發(fā)明總結了執(zhí)行圖12中方法的第二步驟(編碼該系列數據片段)的特定方法的流程圖;
[0032]圖14為根據本發(fā)明總結了執(zhí)行圖12中方法的第四步驟(產生定位符)的特定方法的流程圖;以及
[0033]圖15為根據本發(fā)明總結了隨機存取存儲器中壓縮數據片段的方法的流程圖?!揪唧w實施方式】
[0034]本發(fā)明通過提供促進隨機存取在存儲器中存儲的壓縮數據片段的系統(tǒng)及方法,克服了與先前技術相關的問題。在以下描述中,呈現多種特定細節(jié),如產生定位符的特定程序和組件、數據的修整方法等,以供完全理解本發(fā)明。然而,熟知本發(fā)明所屬【技術領域】者可辨識出本發(fā)明能以除了該特定細節(jié)外的方法執(zhí)行。在其它例子中,為了不必要地模糊本發(fā)明,眾所周知的數據壓縮方法的細節(jié)(如特定的編碼及解碼技術、程序最佳化)和組件已被省略。
[0035]圖1為根據本發(fā)明一實施例包括編碼器和解碼器(編解碼器)系統(tǒng)102的主機裝置100的方塊圖。編解碼器系統(tǒng)102,在其它優(yōu)點中,可促進隨機存取存儲在壓縮數據存儲器104中的壓縮數據片段。編解碼器系統(tǒng)102包括:編碼器106,該編碼器106包括定位符產生器108 ;解碼器110 ;定位符緩沖器112 ;以及隨機存取控制器(RAC) 114。未壓縮數據經由數據輸入116提供給編解碼器系統(tǒng)102,而解碼數據經由解碼數據輸出118從編解碼器系統(tǒng)102提供。從壓縮數據存儲器104隨機存取壓縮數據片段的數據請求經由數據請求輸入120從主機裝置100提供。
[0036]主機裝置100代表任何具有以下功效的系統(tǒng)或裝置,包括編碼(壓縮)數據、解碼(解壓縮)數據、及或隨機地檢索及解碼存儲在壓縮數據存儲器104中的壓縮數據片段。在本實施例中,主機裝置100為一圖像處理器,而編解碼器系統(tǒng)102促進隨機存取在壓縮數據存儲器104中存儲的圖像壓縮片段(如視頻的壓縮幀)。主機裝置100可以例如以集成電路、軟件等、及或任何組合來實現。
[0037]編解碼器系統(tǒng)102的組件操作如下。編碼器106經由數據輸入116收到一系列未壓縮數據片段,將該系列數據片段編碼成一系列壓縮數據片段,并且經由數據路徑124提供該系列壓縮數據片段給壓縮數據存儲器104。編碼器106提供用于編碼獨立于任何其它壓縮數據片段的每個數據片段的裝置,以下將更詳細地描述。在一實施例中,編碼器106類似于聯合圖像專家群(Joint Photographic Experts Group, JPEG)編碼器,但不受到JPEG壓縮標準或其相關文件格式,例如JIF、Exif, JFIF等的限制。
[0038]編碼器106包括定位符產生器108,該定位符產生器108可為該系列中的每一個壓縮數據片段產生定位符。每一個定位符優(yōu)先地指出在壓縮數據存儲器104中存儲關聯壓縮數據片段的位置。定位符產生器108經由數據路徑126,存儲用于定位符緩沖器112中每一個該系列壓縮數據片段的定位符。因此,定位符產生器108和所產生的定位符是用于在壓縮數據存儲器中定位壓縮數據片段的裝置。定位符產生器108在圖1中顯示為結合在編碼器106之內,然而,定位符產生器108可選擇性地被設置在編碼器106之外。
[0039]壓縮數據存儲器104經由數據路徑124從編碼器106接收該系列壓縮數據片段,并于其中存儲每一個壓縮數據片段。解碼器110經由數據路徑128可直接從壓縮數據存儲器104中讀取壓縮數據片段,如:當解壓縮整體圖像時。此外,RAC114能經由數據路徑130以任何次序從壓縮數據存儲器104中讀取壓縮數據片段,如:當只解壓縮圖像的部分時,并且經由數據路徑134把該壓縮數據片段提供給解碼器110。
[0040]在本發(fā)明實施例中,壓縮數據存儲器104為幀緩沖器,適于在多個存儲位置中連續(xù)地存儲一系列與圖像(如視頻的幀)有關聯的壓縮數據片段。壓縮數據存儲器104可在主機裝置100內實現,或選擇性地為在主機裝置100之外的存儲器。如另一例所示,壓縮數據存儲器104可為專屬于編解碼器102的存儲器。
[0041]定位符緩沖器112經由數據路徑126從編碼器106接收及存儲定位符。每一個定位符被存儲在定位符緩沖器112中使其與相對應的壓縮數據片段相關聯。定位符緩沖器112當被RAC114請求時經由數據路徑132也提供定位符給RACl 14。即使定位符緩沖器112顯示為在編解碼器102內的存儲器,定位符緩沖器112應被理解為在主機裝置100中的任一處或甚至在主機裝置100之外。
[0042]RACl 14利用在定位符緩沖器112中的定位符從壓縮數據存儲器104中檢索一個或多個壓縮數據片段,并以在數據請求輸入120上接收的數據請求所指示之任意次序,提供那些壓縮數據片段給解碼器110。尤其,RAC114從主機裝置100經由數據請求輸入120接收數據片段的請求。RAC114經由數據路徑132為被請求的數據片段檢索定位符,然后經由數據路徑130從壓縮數據存儲器104中讀取被請求的壓縮數據片段。則RAC114經由數據路徑134提供一個或多個被請求的壓縮數據片段給解碼器110以供解碼。如上所述,主機裝置100能以任何期望的序列請求數據片段,且RAC114將從壓縮數據存儲器104中讀取相對應的壓縮數據片段,并根據該序列的次序解碼。
[0043]解碼器110分別經由數據路徑128和134從壓縮數據存儲器104和RACl 14中接收壓縮數據片段,并解碼那些壓縮數據片段。當解碼器110被主機裝置100請求時,經由解碼數據輸出118提供解碼的數據片段至主機裝置100供進一步使用。如以下將進一步描述,在一實施例中,解碼器110類似于JPEG解碼器,但不限于JPEG壓縮標準及其相關的文件格式。
[0044]圖1也顯示主機裝置102包括定時與控制單元136,該定時與控制單元136經由定時與控制路徑138提供定時與其它控制信號,如時序脈沖、使能信號、重設信號等,給編解碼器系統(tǒng)102的組件及壓縮數據存儲器104。通過定時與控制單元136所提供的定時與其它控制信號,使能編解碼器系統(tǒng)102和壓縮數據存儲器104以執(zhí)行它們預期的功能,并在適當的時間點和以適當的次序通過編解碼器系統(tǒng)102及壓縮數據存儲器104移除數據。[0045]定時與控制單元136及定時與控制路徑138僅代表性例示。本領域具有通常知識者會了解定時與控制單元136及定時與控制路徑138可以不同方法實現,如:用于定時信號和控制信號的個別單元和總線、用于主機裝置100和編解碼器系統(tǒng)102的個別單元等。此外,定時與控制組件也能在編解碼器系統(tǒng)102中被實現。
[0046]圖2為顯示圖像200 (如視頻的幀)如何被分割成多個數據片段202(l)_202(n)的方塊圖。如204所示,每一個數據片段202 (I)-202 (η)包括圖像200的8乘8個塊的像素206的圖像數據。因此,假設圖像200有1280乘720個像素,其可被切割成160乘90,即14400個塊的圖像數據,且每一個塊202(1)-202(14400)定義了總數一致的像素數據。
[0047]在本發(fā)明中,主機裝置100負責分割每一個圖像200成數據片段202 (I)-202 (η)的數組,以下被稱為塊202 (I)-202 (η),并將塊202 (I)-202 (η) —系列地提供至編解碼器系統(tǒng)102的數據輸入116。主機裝置100也以主機裝置100所知的預定序列,把該系列塊202 (I)-202 (η)提供給編解碼器系統(tǒng)102以及編解碼器系統(tǒng)102的組件。在本實施例中,主機裝置100提供塊202 (I) -202 (η),在該數組的最上方左端以塊202 (I)為序列的開頭,然后在數組中一列一列地往下移動,結束于該數組最底部的右端的塊202 (η)。因此,如圖2顯示的數組,此序列為塊 202 (I, I)、202 (2,I)、...202 (i,I),202 (1,2)、202 (2,2),...202 (i,2),…202(1,j)、202(2,j)…,而結束于 202 (i,j)。
[0048]在本發(fā)明實施例中,主機裝置100也可格式化每一個圖像200成與編解碼器系統(tǒng)102兼容。舉例而言,主機裝置100可將一圖像從一個色空間,如紅、綠、藍(R、G、B)等,轉換成另一個色空間如YCbCr等。此外,主機裝置100也能將一個圖像分離成其色空間成分,如Y、Cb、Cr等,使得每一個組成圖像產生多重圖像200。在此例中,每一個圖像200只包含該組成圖像的色空間成分的數據。主機裝置100可利用這些和其它塊制作技術。
[0049]在本實施例中,當主機裝置100在提供圖像數據給編碼器106之前負責塊制作,可理解的是編碼器106也會制作該系列塊202 (I)-202 (η)以供編碼。
[0050]根據本發(fā)明一實施例,圖3為進一步顯示圖1的編碼器106的方塊圖。編碼器106包括DCT單元302、量化單元304、鋸齒型單元306、游程長度編碼器308、和ELU單元310。
[0051]根據以上所討論的預定序列,編碼器106從主機裝置100在編碼器輸入路徑312上依序地接收一系列未壓縮的(原始)圖像數據塊202 (I)-202 (η)。編碼器106如下接收及編碼在系列中的每一個塊202 (I) -202 (η)。
[0052]DCT單元302接收圖像數據的每一個塊202 (I) -202 (η),并在塊202上執(zhí)行絕對值DCT,使圖像數據塊202可因此被轉換成在頻域中的8乘8個塊的64個DCT系數。如以下將進一步描述,執(zhí)行DCT使在塊中的所有DCT系數為絕對值。因為在DCT系數的每一個塊中的所有DCT系數是絕對值,不會在編碼器106所產生該系列壓縮數據片段中,帶入塊與塊之間的數據相依性。因此,DCT單元302也可被視為絕對值DCT單元302,其會在圖像數據的每一個塊202上執(zhí)行絕對值DCT。DCT單元302經由數據路徑314提供每一個產生的塊的DCT系數給量化單元304。
[0053]量化單元304接收每一個塊的DCT系數的絕對值,并用默認量化數據316量化該塊的DCT系數而產生8乘8個塊的量化系數。在本實施例中,默認量化數據316為一個默認量化表,但能替代地包括用于量化所有DCT系數的默認量化值。量化單元304通過將每一個DCT系數除以在該默認量化表316中的相對應的量化值,量化該DCT系數塊,并將商數舍入至最接近的整數。
[0054]應注意地是默認量化數據316能被存儲在編碼器106之內部或外部。舉例來說,默認量化數據316能被存儲在編碼器106之外、但可被量化單元304存取的存儲器中。默認量化數據316能替代地被定義在編碼器106的集成電路中。
[0055]使用默認量化數據316對多重圖像200量化該DCT系數塊可提供重要的優(yōu)點。首先,因為默認量化數據316不必改變,不必在標頭中提供量化數據給解碼器110以配置逆量化程序。更確切地,當編碼器106支配多重圖像/幀時,可將解碼器110程序化為使用相同的默認量化數據。此外,因為不需要有標頭將量化數據傳送至解碼器110,所以不必在壓縮數據存儲器104的壓縮數據中存儲該標頭,卻將之刪除,如此可促進數據壓縮和減少傳送數據的次數。
[0056]在量化后,量化單元304經由數據路徑318提供每一個量化系數塊給鋸齒形單元306。鋸齒形單元306從量化單元304接收每一個量化系數塊并在該塊上執(zhí)行鋸齒形操作。該鋸齒形操作通過沿該塊的對角線鋸齒形,將該量化系數塊排列成線性序列,此操作為該領域之熟知技術。對每一個量化系數塊而言,鋸齒形單元306經由數據路徑320將線性序列的量化系數輸出至游程長度編碼器308。
[0057]游程長度編碼器308從鋸齒形單元306接收與塊202相關聯的線性序列的量化系數,并將該線性序列編碼成與該塊相關聯的游程長度編碼(RLE)數據。游程長度編碼是一種眾所周知的數據壓縮的形式,其一連串有相同數值(如零)的數據被當作一個計數值存儲。用于游程長度編碼的特定方法將與圖像數據塊202相關聯的多個量化系數存儲成數值對,每一個數值對具有定義一連串零的第一數值和指示下一個非零量化系數的第二數值。此方法也包括使用塊的終止(end-of-block,Ε0Β)碼以指示與塊202相關聯的所有剩余量化系數具有零值。一旦產生RLE數據,就經由數據路徑322提供到ELU310。
[0058]ELU310接收與塊202相關聯的RLE數據并將之熵編碼成熵編碼數據(entropy-encoded data, EED),因此定義與圖像數據塊202相關聯的壓縮數據片段。在熵編碼的過程中,使用較短碼對常發(fā)生的RLE數據編碼,并使用較長碼對不常發(fā)生的RLE數據編碼。在此領域中,已知熵編碼的其中一個型式為霍夫曼編碼(Huffman encoding)。被用來編碼RLE數據的熵碼被存儲成可被ELU310使用的默認熵數據324,即默認熵檢查表。一旦完成熵編碼,ELU310會經由編碼器輸出路徑328和數據路徑124,提供與圖像數據塊202相關聯的壓縮數據片段至壓縮數據存儲器104。
[0059]如同默認量化數據316,只要熵編碼器310能對之存取,默認熵數據324能存儲在編碼器106的外部。此外,默認熵數據324提供如同默認量化數據316的優(yōu)點。尤其,因為默認熵數據324不必在塊202 (I)-202 (η)或在多重圖像200之間改變,所以不必在附有壓縮數據的標頭中提供熵數據(如熵表)至解碼器110,以配置其逆熵過程。更確切地,如同編碼器106將程序化解碼器110,以使用相同的默認熵數據324。又,由于不須在壓縮數據存儲器104中存儲包含熵數據的標頭信息,因此改進了數據的壓縮并節(jié)省數據的傳送次數。
[0060]ELU310除了是熵編碼器外,也提供定位符產生器108的功能(參見圖1)。ELU310為與塊202 (I) -202 (η)相關聯的每一個壓縮數據片段產生定位符,以指示壓縮數據片段存儲在壓縮數據存儲器104中的位置。因為編碼器106的編碼過程產出一系列壓縮數據片段,其中每一個壓縮數據片段具有可變的片段大小,ELU310產生的定位符有利地促進定位及從壓縮數據存儲器104中提取任一個壓縮數據片段。根據本發(fā)明實施例,ELU310確定及利用該壓縮數據片段的可變片段大小,而產生與其相關的定位符。一旦產生與圖像200的塊202相關的一個壓縮數據片段的定位符,ELU310經由數據路徑126在定位符緩沖器112 (參見圖1)中存儲該定位符,并在壓縮數據存儲器104中存儲與塊202相關聯的壓縮數據片段。[0061 ] 因此,對一個給定的圖像200而言,編碼器106可產生一系列壓縮數據片段,該壓縮數據片段被存儲在壓縮數據存儲器104中,其中每一個壓縮數據片段與圖像200的塊202 (I)-202 (η)的其中一個互有關聯。這每一個壓縮數據片段也與ELU310所產生且存儲在定位符緩沖器112中的定位符之一互有關聯。因此,存儲在定位符緩沖器112中的每一個定位符也與圖像200的塊202 (I)-202 (η)的其中一個塊互有關聯。
[0062]圖4為顯示圖3的DCT單元302在圖像數據的塊202 (I)-202 (η)的其中一個塊執(zhí)行DCT的方塊圖。如圖4所示,DCT單元302將圖像數據的每一個8乘8的塊202轉換成頻域中一個8乘8的塊402的DCT系數。每一個塊402的DCT系數包括一個直流系數404和63個交流系數406 (I) -406 (63)。如上所示,在每一個塊402的DCT系數中的系數404和406 (I) -406 (63)是絕對值,使得不會帶入數據相依性到該系列壓縮數據片段中。
[0063]DCT處理在本領域中為熟知技術。該DCT處理傾向于把大的DCT系數集合在DCT系數塊的最上方左端。因此,普遍來說直流系數的絕對值都很大,尤其與交流系數的絕對值相比。為增加數據的壓縮,先前技術的編碼器(如JPEG編碼器等)將直流系數編碼成電流塊的直流系數的絕對值和另一數值(例如先前塊的直流系數的絕對值)之間的差值。此處理一般稱作預測差化(prediction differencing)。對此差值而不是對直流系數的絕對值編碼,會產生更好的數據壓縮,但也有在連續(xù)的DCT系數塊之間帶入數據相依性的缺點。因此,要對先前的DCT系數塊解碼,才能對先前技術中之隨后的DCT系數塊解碼。因此,此先前技術被稱為使用相對的DCT編碼技術,先前技術的解碼器被請求使用先進先出的解碼技術。
[0064]相對于先前技術,本發(fā)明的DCT單元302對所產生的每一個塊402的DCT系數中的直流系數404及每一個交流系數406 (I)-406 (63)的絕對值編碼。因此,每一個塊402中的DCT系數值與其它塊402的DCT系數的系數值無關。當DCT單元302由于較大的直流系數404絕對值放棄一部分的數據壓縮(大約5%或更少)時,則有不將數據相依性帶入塊402的DCT系數的優(yōu)點。因此,根據本發(fā)明,在不必檢索和解碼其余任何壓縮數據片段的情況下,就可從壓縮數據存儲器104中隨機檢索及解碼一個壓縮數據片段。此外,因為配置數據(如含有量化及熵數據的標頭)不存儲在壓縮數據存儲器104中,會補償因編碼DCT系數的絕對值而損失的任何數據壓縮。
[0065]圖5為根據本發(fā)明實施例更詳細顯示ELU310(圖3)的方塊圖。如圖5所示,ELU310包括熵編碼器502、地址及偏移確定(address and offset determination, A0D)單兀504、以及累計大小寄存器506。在本實施例中,熵編碼器502、AOD單元504、以及累計大小寄存器506實現定位符產生器108 (圖1)。圖5也顯示ELU310包括(或能存取)默認熵數據324。
[0066]熵編碼器502經由數據路徑322接收與圖像數據的每一個塊202 (I) -202 (η)相關的RLE數據。對每一個塊202 (I) -202 (η)而言,熵編碼器502使用默認熵數據324將塊202的RLE數據編碼成熵編碼數據(entropy-encoded data,EED)。EED代表與塊202相關的壓縮數據片段,其將被存儲在壓縮數據存儲器104中。
[0067]熵編碼器502也確定與每一個塊202 (I)-202 (η)相關聯的壓縮數據片段的大小,其中,大小代表該壓縮數據片段在壓縮存儲器104中將占據的存儲器總數。因為該熵編碼數據為連續(xù)數據,該壓縮數據片段的大小能表達成該壓縮數據片段的位長度。熵編碼器502經由數據路徑508將與每一個塊202 (I) -202 (η)相關聯的壓縮數據片段的大小,即位長度,傳達至地址及偏移確定單元504。熵編碼器502經由編碼器輸出路徑328也提供壓縮數據片段至壓縮數據存儲器104。
[0068]地址及偏移確定單元504為與塊202相關聯的每一個壓縮數據片段產生定位符,用于從壓縮數據存儲器104中定位及檢索壓縮數據片段。在本實施例中,地址及偏移確定單元504基于存儲在累計大小寄存器506中的累計大小數值,為每一個壓縮數據片段確定定位符和壓縮數據存儲器104的寬度。地址及偏移確定單元504也經由數據路徑126在定位符緩沖器112中存儲定位符。通過增加與圖像200相關的每一個壓縮數據片段的大小到累計大小寄存器506,地址及偏移確定單元504也操作成可累計壓縮數據片段的大小。
[0069]當圖像200的塊202 (I)-202 (η)被編碼時,累計大小寄存器506存儲與那些塊相關聯的壓縮數據片段的累計大小。在使用編碼器106編碼圖像200之前,例如通過在定時與控制路徑138上接收的重設信號來重設累計大小寄存器506。當熵編碼器502為連續(xù)的每一個壓縮數據片段產生大小,地址及偏移確定單元504會在累計大小寄存器506中一片段一片段地累計大小值。因此,對于被編碼的圖像200的所給定的任何塊202 (b),累計大小寄存器506存儲了與圖像200的所有先前被編碼的塊202 (1)-202 (b-Ι)相關聯的壓縮數據片段的總大小。
[0070]圖6為根據本發(fā)明一實施例顯示由地址及偏移確定單元504所產生的每一個定位符600的數據結構。如圖所示,每一個定位符600包括第一字段602、第二字段604和選擇性的第三字段606。
[0071]第一字段602包含在壓縮數據存儲器104內可識別存儲位置(如,存儲地址)的數據,此位置即為與定位符600相關聯的壓縮數據片段的起始處。在本發(fā)明中,壓縮數據存儲器104是一個64位寬的幀緩沖器。因此,第一字段602包含了一個可在壓縮數據存儲器104中識別64位寬的存儲位置的存儲地址。定義存儲在第一字段602中的存儲地址所需要的位數會視壓縮數據存儲器104的大小而定。
[0072]第二字段604包含從第一字段602中的存儲地址所識別的存儲位置的開端識別一位偏移的數據。在本實施例中,該位偏移指示了從存儲位置的開端處開始的數據的位數目,但此存儲位置不是與定位符600相關聯的壓縮數據片段的一部分。因此,與定位符600相關聯的壓縮數據片段,在等于位偏移的存儲位置中的多個位之后的位開始。在第二字段604中用于定義位偏移的位數,將與在壓縮數據存儲器104中的存儲位置的寬度有關。對于64位寬的存儲位置,可用6位的數據定義第二字段604。
[0073]第三字段606包括圖像200的塊202 (I)-202 (η)的其中一個塊與定位符600相關聯的數據。舉例而言,在圖像200中的每一個塊202(1)-202(η)能以一個單一的識別器指定,在產生定位符600時在第三字段606會提供此識別器。然后RAC114能使用定位符600以檢索該識別器。然而,在本實施例中,第三字段606為選擇性的,因為定位符600能以與塊202(1)-202 (η)被編碼的同樣的預定序列,存儲在定位符緩沖器112中連續(xù)的存儲位置。[0074]地址及偏移確定單元504產生如下的每一個定位符600。對每一個壓縮數據片段而言,地址及偏移確定單元504為圖像200計算所產生的所有先前的壓縮數據片段的大小的總和。在圖5所示的實施例中,地址及偏移確定單元504通過讀取存儲在累計大小寄存器506中的值得到此總和。然后地址及偏移確定單元504將此總和除以壓縮數據存儲器104的寬度(在本實施例中是64位),以得到商數及余數,皆以整數表達。地址及偏移確定單元504則轉換(例如藉由一個查找表等)該商數成一個在壓縮數據存儲器104中的存儲位置的地址。這個存儲位置為壓縮數據片段在壓縮數據存儲器104中的起始處。然后地址及偏移確定單元504使用所產生的存儲地址如字段602產生定位符600,以及產生余數作為字段604中的位偏移。一旦為當前的壓縮數據片段產生定位符600,地址及偏移確定單元504增加當前壓縮數據片段(先前從熵編碼器502得到的)的大小到存儲在累計大小寄存器506的累計值,更新此累計大小值以產生與下一個壓縮數據片段相關聯的定位符600。
[0075]例如通過計數熵編碼器502為其提供大小值的次數,地址及偏移確定單元504也可利用該選擇性的第三字段600產生定位符600。地址及偏移確定單元504則可用該計數值,將一使圖像數據的特定塊202與定位符600相關聯的值提供給第三字段606。于此例中,每一次對一個新的圖像200編碼時,例如通過經由定時與控制路徑138所接收的重設信號,來重設地址及偏移確定單元504所使用的計數值。
[0076]地址及偏移確定單元504也可經操作產生選擇性的「結束定位符」(圖7),該結束定位符可指示在壓縮數據存儲器104內與圖像200的最后一個塊202 (η)相關聯的壓縮數據片段的終端。該結束定位符提供的優(yōu)點包括:使能RAC114以定位壓縮數據片段的終端,以及在提供壓縮數據片段給解碼器110之前修正任何不是其中一部分的數據。地址及偏移確定單兀504在產生與最后一個塊202 (η)相關聯的定位符600之后,和編碼下一個圖像200之前,產生結束定位符。該結束定位符可包括如同定位符600的相同的字段。舉例而言,地址及偏移確定單元504可使用存儲在累計大小寄存器506中而與所有塊202 (I)-202 (η)相關聯的壓縮數據片段的累計大小值、以及如上述用于產生字段602及604的算法,產生該結束定位符。此外,地址及偏移確定單元504可提供結束定位符,其具有唯一識別該結束定位符的第三字段。
[0077]圖7為顯示根據本發(fā)明的定位符緩沖器112(參見圖1)的數據結構,用于存儲與一個1280乘720的圖像200相關聯的多個定位符600 (I) -600 (14400)。定位符600 (I) -600 (14400)在壓縮數據存儲器104中分別定位與圖像200的塊202 (I) -202 (14400)相關聯的壓縮數據片段。定位符緩沖器112也如所示被配置以存儲結束定位符700。
[0078]在本實施例中,主機裝置100和編解碼器系統(tǒng)102可處理的最大圖像為1280乘720的圖像。因此,定位符緩沖器112包含足夠的存儲器以存儲任何在大小上大至1280乘720個像素的圖像的定位符。本發(fā)明所屬【技術領域】者可理解定位符緩沖器112有能力可存儲的定位符600的數目會隨著待壓縮圖像的分辨率而改變。
[0079]在本實施例中,從一個預定的存儲位置開始,在連續(xù)的存儲位置中,定位符緩沖器112從編碼器106依序地接收及存儲定位符600(1)-600(14400)。因此,與塊202(1)相關聯的定位符600(1)被存儲在第一存儲位置,與塊202 (2)相關聯的定位符600(2)被存儲在第二存儲位置,如此等等直到與最后一個塊202 (14400)相關聯的最后一個定位符600(14400)被存儲。然后,結束定位符700如圖所示被存儲在最后一個定位符600 (14400)之后。因為塊202(1)-202(14400)被以一個已知的預定次序供應至編碼器106,也以同樣的已知預定次序產生及存儲定位符600(1)-600(14400)。因此,能藉由RACl 14從定位符緩沖器112中立即識別和檢索與圖像200的任何特定塊202相關聯的定位符600。因此,在本實施例中定位符600 (I)-600 (14400)中的第三字段606是選擇性的。然而在另一種情況下,假如在定位符緩沖器112中的隨機位置存儲定位符600,第三字段606能促進識別與特定塊202相關聯的特定定位符600。
[0080]須注意的是,可在連續(xù)圖像200之間的編碼或其它的預定次數中,重設定位符緩沖器112的存儲位置(例如,經由定位與控制路徑138接收的重設信號)。舉例來說,如果連續(xù)編碼圖像的分辨率改變,重設每一個圖像的定位符緩沖器112,可確保存儲在其中的定位符600不會被破壞。
[0081]圖7為顯示用于與圖像200的塊202 (I)-202 (5)和202(14400)相關聯的假定壓縮數據片段的定位符600 (I) -600 (5)、和600 (14400)、以及結束定位符700。在以下解釋中,假設與塊202 (I)-202 (4)和202(14400)相關聯的壓縮數據片段的大小,即數據長度,分別為37位、32位、43位、83位及75位。
[0082]對第一塊202(1)而言,定位符600(1)的第一字段602指示與圖像200的第一塊202(1)相關聯的壓縮數據片段起始于壓縮數據存儲器104的存儲位置O。定位符600(1)的第二字段604進一步指示與塊202(1)相關聯的壓縮數據片段起始于存儲位置O中的第一位,因為該位偏移為O。因為與塊202(1)相關聯的壓縮數據片段的長度為37位長,所以該壓縮數據片段占據存儲位置O中的最初的37個位。地址及偏移確定單元504藉由將圖像200的先前壓縮數據片段的位長度的總和(在此例中為O)除以64(在壓縮數據存儲器104中的存儲位置的寬度)產生定位符600(1),以得到產生的商數O和余數O。則此商數被轉換為存儲位置O的地址并存儲在第一字段602中,且此余數在第二字段604中被存儲為位偏移。
[0083]定位符600⑵指示與圖像200的第二塊202⑵相關聯的壓縮數據片段起始于在第37個位(第二字段604)之后的存儲位置O (第一字段602)。(注意:最初的37個位被與第一塊202(1)相關聯的壓縮數據片段所占據。)地址及偏移確定單元504藉由把圖像200的先前壓縮數據片段的位長度的總和(在此例中總和是37,被存儲在累計大小寄存器506中)除以64產生定位符600 (2),以得到產生的商數O和余數37。則該商數被轉換為存儲位置O的地址并存儲在第一字段602中,且余數在第二字段604中被存儲為位偏移。
[0084]定位符600 (3)指示與圖像200的第三塊202 (3)相關聯的壓縮數據片段起始于在第5個位(第二字段604)之后的存儲位置I (第一字段602)。(最初的5個位被與第二塊202(2)相關聯的壓縮數據片段所占據。)地址及偏移確定單元504藉由把圖像200的先前壓縮數據片段的位長度的總和(在此例中總和是37位+32位,被存儲在累計大小寄存器506中)除以64產生定位符600(3),以得到產生的商數I和余數5。則此商數被轉換為存儲位置I的地址并存儲在第一字段602中,且余數在定位符600 (3)的第二字段604被存儲為位偏移。
[0085]定位符600 (4)指示與圖像200的第四塊202 (4)相關聯的壓縮數據片段起始于在第48個位(第二字段604)之后的存儲位置I (第一字段602)。(最初的48個位被與第三塊202 (3)相關聯的壓縮數據片段所占據。)地址及偏移確定單元504藉由把先前壓縮數據片段的位長度的總和(在此例中總和是37位+32位+43位,被存儲在累計大小寄存器506中)除以64產生定位符600(4),以得到產生的商數I和余數48。則此商數被轉換為存儲位置I的地址并存儲在第一字段602中,且余數在定位符600 (4)的第二字段604被存儲為位偏移。
[0086]定位符600 (5)指示與圖像200的第五塊202 (5)相關聯的壓縮數據片段起始于在第3個位(第二字段604)之后的存儲位置3 (第一字段602)(最初的3個位被與第四塊202(4)相關聯的壓縮數據片段所占據)。地址及偏移確定單元504藉由將圖像200的先前壓縮數據片段的位長度的總和(在此例中總和是37位+32位+43位+83位)除以64產生定位符600 (5),以得到產生的商數3和余數3。則此商數被轉換為存儲位置3的地址并存儲在第一字段602中,且余數在第二字段604被存儲為位偏移。
[0087]定位符600 (14400)指示與圖像200的最后一個塊202 (14400)相關聯的壓縮數據片段,起始于在第17個位(第二字段604)之后的存儲位置7192(第一字段602)。此外,結束定位符700指示與塊202(14400)相關聯的壓縮數據片段結束于存儲位置7193(第一字段602),在此存儲位置中有28個位。地址及偏移確定單元504藉由將圖像200的所有壓縮數據片段的位長度的總和(在產生定位符600 (14400)之后存儲到累計大小寄存器506中)除以64產生結束定位符700,以得到產生的商數7193和余數28。則此商數被轉換為存儲位置7193的地址并存儲在第一字段702中,且余數被存儲在第二字段704中,指示與塊202(14400)相關的壓縮數據片段的最后一個位。
[0088]圖8顯示壓縮數據存儲器104(圖1)存儲與圖7的定位符600 (I)-600 (5)和600(14400)相關聯的系列假定的壓縮數據片段。壓縮數據存儲器104包括多個可尋址的存儲位置802 (O) -802 (x)。在壓縮數據存儲器104中顯示的存儲位置802 (O) -802 (x)的數目本質上是示例性的,并可隨著應用和壓縮比例改變,不應解釋成可限制本發(fā)明。如圖8所示,每一個存儲位置802 (O) -802 (X)的寬度是64位。
[0089]壓縮數據存儲器104存儲與連續(xù)在存儲位置802(0)-802(x)中的圖像200的塊202(l)-202(n)相關聯的系列壓縮數據片段804(I)-804(η)。在所顯示的理論例子中,與1280乘720像素圖像200的塊202 (I)-202 (14400)相關聯的系列壓縮數據片段804(1)-804(14400)占據存儲位置802 (O)-802 (7193)。壓縮數據存儲器104的存儲位置802 (I)-802 (x)在需要時,舉例來說,借著經由定時與控制路徑138所接收到的重設信號,可被清除(如在連續(xù)圖像之間等)。
[0090]定位符600 (I)-600 (14400)指示在存儲位置802 (O)-802 (7193)內關聯的壓縮數據片段804(1)-804(14400)的位置。舉例而言,如定位符600 (I)所顯示,壓縮數據片段804(1)起始于存儲位置802 (O)中的第一位。壓縮數據片段(compresses data segment, C.D.S) 804 (2)如定位符600 (2)所示,在存儲位置802 (O)的37個位之后開始(即起始于第38個位)。壓縮數據片段804 (3)如定位符600 (3)所示,在存儲位置802 (I)的第5個位之后開始。壓縮數據片段804 (4)如定位符600 (4)所示,在存儲位置802(1)的第48個位之后開始。壓縮數據片段804 (5)如定位符600 (5)所示,在存儲位置802 (3)的第3個位之后開始。這會持續(xù)至此圖像200的最后一個壓縮數據片段804 (14400),在存儲位置802 (7192)的第17個位之后開始。結束定位符700最終指示壓縮數據片段804 (14400)的末端在存儲位置802 (7193)的第28個位結束。[0091]圖9為根據本發(fā)明一實施例更詳細地顯示RAC114(圖1)的方塊圖。如圖所示,RAC114經由數據請求輸入120從主機裝置100接收圖像200的任何一個塊202 (I)-202 (η)的請求。此來自主機裝置100的請求提供關于主機裝置100欲存取的圖像200的塊202 (I)-202 (η)的指示(如塊識別器等),因此,關于存儲在壓縮數據存儲器104中的壓縮數據片段需要被解碼的指示。對每一個被請求的塊而言,RAC114從壓縮數據存儲器104檢索相關聯的壓縮數據片段,并提供此被檢索的壓縮數據片段到解碼器110以便解碼成圖像數據的已解碼塊。RAC114提供了很重要的優(yōu)點,即可以主機裝置100所請求的任意次序從壓縮數據存儲器104中檢索及輸出壓縮數據片段。換言之,本發(fā)明促進了以任意次序隨機存取及解碼與圖像200的塊202(1)-202 (η)相關聯的壓縮數據片段。
[0092]在圖9中,RACl 14顯示為包括定位符與數據檢索(LDR)單元902以及數據修整器904,彼此間經由數據路徑906通信。當需要塊202的請求經由數據請求輸入120到達時,定位符與數據檢索單元902檢索與被請求的塊202相關聯的定位符600、以及接續(xù)在被請求的塊202之后編碼的塊202的定位符600。若請求最后一個塊202 (η)時,定位符與數據檢索單元902會檢索定位符600 (η)和結束定位符700。若請求多個連續(xù)塊202時,定位符與數據檢索單元902檢索與被請求的多個塊中第一個塊202相關聯的定位符600、以及被請求的多個塊中最后一個塊202之后的下一個被解碼的塊的定位符、或結束定位符700。因此,在本實施例中,對以上在數據請求輸入120上接收是任何請求類型,定位符與數據檢索單元902至少檢索兩個定位符600、或一個定位符600和結束定位符700。
[0093]因為圖像200的塊202 (I)-202 (η)被以預定的序列編碼,且因為以與每一個圖像200相同的預定序列產生定位符600 (I) -600 (η)和700并存儲在定位符緩沖器112中,假如定位符與數據檢索單元902知道此預定序列以及定位符600 (I) -600 (η)和結束定位符700將存儲在定位符緩沖器112中的存儲位置,定位符與數據檢索單元902可從定位符緩沖器112中檢索適當的定位符600 (I)-600 (η)和700。所述數據請求可選擇性地包括與包含在結束定位符700和定位符600 (I)-600 (η)的第三字段606中的識別器匹配的識別器,定位符與數據檢索單元902可用以從定位符緩沖器112中檢索被請求的定位符600和結束定位符 700。
[0094]使用來自主機裝置100的請求而檢索的定位符600,定位符與數據檢索單元902則從壓縮數據存儲器104中檢索壓縮數據片段804,包括在被檢索的定位符600的第一字段602中被識別的兩個存儲位置802之間,或在定位符600的第一字段602中和結束定位符700的第一字段702被識別的兩個存儲位置802之間。定位符與數據檢索單元902將被檢索的壓縮數據和至少包含在第二字段604的位偏移、或在第二字段604中的位偏移和結束定位符700的第二字段704的值,經由數據路徑906提供到數據修整器904。
[0095]數據修整器904利用被檢索的定位符600和700中的第二字段604和704的值,微調從壓縮數據存儲器104中檢索的壓縮數據的兩端。在第一定位符600中的第二字段604的位偏移指示在位的一數字等于此位偏移之后開始被請求的壓縮數據的第一位。因此,數據修整器904在被檢索的壓縮數據中移除(調節(jié))等于此偏移的多個位。相似地,第二定位符600的第二字段604 (或結束定位符700的第二字段704)指示最后被請求的塊202的壓縮數據的結束位置。因此,在識別第二定位符600 (或結束定位符700)的第二字段604 (或第二字段704)的位之后,數據調整器904移除被檢索的壓縮數據的一部分。一旦經過微調,數據調整器904會經由數據路徑134提供與被請求的塊相關聯的被請求的壓縮數據片段804到解碼器110。
[0096]以下例子參考圖7及圖8進一步解釋壓縮數據的檢索和本發(fā)明的調節(jié)方面。本發(fā)明促進以任意次序且獨立地檢索及解碼圖像200的壓縮數據片段。
[0097]在第一例中,RAC114接收用于圖像200的第二塊202(2)的請求。一旦接收請求,定位符與數據檢索單元902經由數據路徑132從定位符緩沖器112檢索定位符600(2)和600(3)?;谠诙ㄎ环?00 (2)和600 (3)的第一字段602中的存儲地址,定位符與數據檢索單元902檢索存儲在存儲位置802(0)中的64個位的壓縮數據,和存儲在存儲位置802(1)的64個位的壓縮數據。定位符與數據檢索單元902則至少提供每一個定位符600 (2)和600(3)的第二字段604、以及壓縮數據從存儲位置802 (O)-802 (I)到數據修整器904。數據修整器904利用定位符600 (2)的第二字段604中的位偏移,以從存儲位置802 (O)中移除非屬于第二塊202 (2)的壓縮數據的部分的壓縮數據的部分。尤其,存儲在存儲位置802 (O)的壓縮數據的最初37個位與圖像200的第一塊202(1)而非第二塊202(2)的壓縮數據片段有相關。因此,數據修整器904把從存儲位置802 (O)所檢索的壓縮數據的起始處的位移除。則數據修整器904利用在定位符600 (3)的第二字段604的位偏移,也將從存儲位置802 (I)中檢索但非屬于第二塊202 (2)的壓縮數據的部分的壓縮數據的部分移除。尤其,從存儲位置802 (I)所檢索的壓縮數據的第6到最后一個位與第三塊202(3)而非第二塊202 (2)有相關。因此,數據修整器904從存儲位置802 (I)所檢索的壓縮數據中移除這些位。從存儲位置802 (O)和802(1)所檢索產生的壓縮數據對應于與塊202 (2)相關聯的壓縮數據片段804(2)。則數據修整器904經由數據路徑134提供壓縮數據片段804(2)至解碼器110以供解碼。
[0098]在第二個例子中,RAC114接收了對于圖像200的塊202(2)至202 (4)的請求。因此,定位符與數據檢索單元902經由數據路徑132從定位符緩沖器112中檢索定位符600 (2)和600 (5)?;谠诙ㄎ环?00 (2)和600 (5)的第一字段602中識別的存儲地址,定位符與數據檢索單元902也檢索存儲在壓縮數據存儲器104的存儲位置802 (O)和存儲位置802(3)中的壓縮數據、和存儲在中間存儲位置802(1)和802(2)的壓縮數據的64個位。換言之,定位符與數據檢索單元902從包含存儲位置802 (O)至802 (3),檢索壓縮數據。定位符與數據檢索單元902則至少提供每一個定位符600 (2)和600 (5)的第二字段604、以及來自存儲位置802 (O)-802 (3)的壓縮數據到數據修整器904。數據修整器904利用定位符600(2)的第二字段604中的位偏移,用于移除存儲在存儲位置802(0)的壓縮數據的最初37個位。數據修整器904則利用定位符600 (5)的第二字段604中的位偏移,也移除從存儲位置802(3)所檢索的壓縮數據的第4至最后一個位;因為那些位是與第5塊202 (5)相關,而非第四塊202(4)。從存儲位置802 (O)-802 (3)所產生的壓縮數據對應于與塊202 (2)至202(4)相關聯的壓縮數據片段804 (2)-804 (4)。數據修整器904則經由數據路徑134提供此系列的壓縮數據片段804(2)-804(4)到解碼器110以供解碼。
[0099]在第三個例子中,RAC114接收了對于圖像200的最后一個塊202(14400)的請求。根據接收的請求,定位符與數據檢索單元902經由數據路徑132從定位符緩沖器112檢索定位符600 (14400)和結束定位符700?;谠诙ㄎ环?00 (14400)的第一字段602和結束定位符700的第一字段702中識別的存儲地址,定位符與數據檢索單元902檢索存儲在存儲位置802 (7192)中的壓縮數據的64個位,和存儲在存儲位置802 (7193)的壓縮數據的64個位。定位符與數據檢索單元902則至少提供定位符600 (14400)的第二字段604和結束定位符700的第二字段704、以及來自存儲位置802 (7192)和802 (7193)的壓縮數據到數據修整器904。數據修整器904利用定位符600(14400)的第二字段604中的位偏移,移除與塊202 (14399)而非與塊202 (14400)相關聯且存儲在存儲位置802 (7192)的壓縮數據的最初17個位。數據修整器904則利用結束定位符700的第二字段704中的值,也移除從存儲位置802 (7193)中檢索但非屬于最后一個塊202 (14400)的壓縮數據的部分的壓縮數據的部分。尤其,存儲在存儲位置802 (7193)的壓縮數據的第29個至最后一個位被移除。從存儲位置802 (7192)-802 (7193)所產生的壓縮數據對應于與最后一個塊202 (14400)相關聯的壓縮數據片段804 (14400)。RAC114則經由數據路徑134提供壓縮數據片段804 (14400)到解碼器110。
[0100]圖10為根據本發(fā)明的實施例更詳細顯示解碼器110的塊圖。如圖10所示,解碼器110包括熵解碼器1002、游程長度解碼器1004、逆鋸齒形單元1006、逆量化單元1008、以及逆離散余弦變換DCT單元1010。
[0101]與圖像200的塊202 (I)-202 (η)相關聯的壓縮數據片段804 (I)-804 (η)經由數據路徑134從RACl 14提供到解碼器110,且經由數據路徑128直接從壓縮數據存儲器104被解碼成解碼的圖像數據塊。數據路徑128和134收斂成數據路徑1012,如同熵編碼數據(EEO)信息流般的壓縮數據片段藉以被提供到熵解碼器1002。在本實施例中,熵解碼器1002每次只對一個熵編碼數據信息流解碼。假如整體圖像200的壓縮數據被解碼,直接從壓縮數據存儲器104提供壓縮數據片段804 (I)-804 (η)是有效率的。如上所述,可替換地,一個或多個隨機存取的壓縮數據片段804 (I)-804 (η)經由RACl 14被提供到解碼器110。解碼器110根據以下處理對每一個壓縮數據片段804 (I) -804 (η)解碼。
[0102]熵解碼器1002經由數據路徑1012接收與塊202相關聯的壓縮數據片段804,并對壓縮數據片段804執(zhí)行逆熵處理以產生與塊202相關聯的RLE數據。熵解碼器1002在熵解碼中使用默認熵數據1014。默認熵數據1014與ELU310在編碼處理中使用的默認熵數據324是相同的。因為熵解碼器1002能存取默認熵數據1014,熵解碼器1002不會為了得到在解碼處理中使用的熵數據,而對在壓縮數據信息流中的數據標頭作語法分析。
[0103]一旦熵解碼器1002將壓縮數據片段804解碼成與塊202相關聯的RLE數據,熵解碼器1002會將此RLE數據提供到游程長度解碼器1004。游程長度解碼器1004將此RLE數據解碼成多個與塊202相關聯的量化系數,并經由數據路徑1018將多個量化系數提供到逆鋸齒形單元1006。
[0104]逆鋸齒形單元1006接收多個量化系數,并對多個量化系數執(zhí)行逆鋸齒形處理,以便產生一個8乘8塊的量化系數。逆鋸齒形單元1006則經由數據路徑1020將該塊的量化系數提供到逆量化單元1008。
[0105]逆量化單元1008接收該塊的量化系數,并使用默認量化數據1022將該塊去量化成一個8乘8個塊402的絕對值離散余弦變換系數。默認量化數據1022與編碼器106在編碼處理中所使用的默認量化數據316相同。因為逆量化單元1008可存取默認量化數據1022,有利于熵解碼器1002不必為了得到在去量化處理中所使用的量化數據,而對壓縮數據信息流中的數據標頭作語法分析。在以下去量化中,逆量化單元1008經由數據路徑1024將與塊202相關聯的絕對值離散余弦變換系數塊提供到逆離散余弦變換單元1010。
[0106]逆離散余弦變換單元1010接收該絕對值離散余弦變換系數塊,并對該絕對值離散余弦變換系數塊執(zhí)行逆離散余弦變換,以產生一個8乘8的解碼后像素數據塊。因為由逆量化單元1022所提供的離散余弦變換系數皆為絕對值,該逆離散余弦變換處理與先前技術相比是很簡單的。舉例而言,在先前技術中使用的相對逆離散余弦變換處理,牽涉到把當前塊的相對直流系數,加到從先前塊的離散余弦變換系數所得到的直流系數值。相反地,本發(fā)明的逆離散余弦變換單元1010從逆量化單元1008接收絕對值直流系數值,且因此不必如同先前技術實施多余的處理。
[0107]—旦完成此逆離散余弦變換處理,逆離散余弦變換單元1010輸出一個8乘8個的解碼后圖像數據塊,從相關聯的壓縮數據片段804中被解壓縮出來。此解碼后的圖像數據塊則于需要時被主機裝置100使用。
[0108]如同編碼器106,解碼器110不受到聯合圖像專家群編碼標準及相關文件格式的限制。有利于解碼器110存取默認熵數據1014和默認量化數據1022,使得解碼器110不必在解碼壓縮數據片段之前,先對一個標頭作語法分析以得到配置信息。此特點也提供優(yōu)點,使圖像(如視頻的幀)的壓縮數據能不需要標頭就可以存儲在壓縮數據存儲器104中,從而促進數據壓縮。以此方式促進壓縮也補償在編碼器106的離散余弦轉換處理中對絕對值DC系數編碼。
[0109]本發(fā)明的特定實施例現在將有更詳細的描述。然而,需被理解的是在本發(fā)明的范疇內可能對本發(fā)明作各種改良,尤其是考慮到以上所描述的觀念和原理。
[0110]如同一個例子,可在解碼器110內移除RAC114的功能。舉例而言,RAC114的定位符和壓縮數據片段的檢索和/或壓縮數據調節(jié)功能可被并入到解碼器110之內,或在熵解碼器1002之前。相似地,把定位符緩沖器112并入成解碼器110的一個組件或如圖1所示的某些其它組件,可能也是有益的。
[0111]本發(fā)明也可被改良成使用標頭為每一個幀在編碼器和解碼器之間傳遞配置信息(如熵表和量化表等)。此外,可用標頭維持與特定壓縮標準(如聯合圖像專家群)的兼容性。然而,在壓縮數據存儲器中存儲標頭會減少數據壓縮的數量,且須改良解碼器110以便對標頭作語法分析。當定位符600被產生用以補償在壓縮數據存儲器104中標頭所占據的空間時,需要調整定位符600。
[0112]須要注意的是根據本應用,在此描述的定位符也可被改良。如作為一個例子,每一個壓縮數據片段804(I)-804(η)在壓縮數據存儲器104中能被分配到一個或多個預定的存儲位置802,而每一個定位符600 (I)-600 (η)能為一個指向該預定位置的存儲器指示器。如另一個例子,每一個定位符可能只能指示一個相關聯的壓縮數據片段的大小。RAC114則能被改良成使用這些片段的大小,實時地在壓縮數據存儲器104中定位特定的壓縮數據片段804 (I)-804 (η),舉例而言,藉由把定義在幀的所有先前定位符600的大小加起來,除以存儲器104的寬度而得到商數和余數,就可如以上所述而使用。這些和其它改良是有可能的。
[0113]再如其它例子,可改良壓縮數據存儲器104和定位符緩沖器112,為多個圖像/幀200存儲壓縮數據片段804 (I) -804 (η)和定位符600 (I) -600 (η)。
[0114]圖11為顯示藉由軟件,如藉由嵌入電子可讀式的存儲媒體的代碼,實現的本發(fā)明的編碼器和/或解碼器的計算機系統(tǒng)1100的塊圖。計算機系統(tǒng)1100包括一個或多個處理單元(CPU) 1102、非易失性存儲器1104、用戶輸入輸出控制器1106、網絡接口 1108、以及工作存儲器1110,都經由系統(tǒng)總線1112通信。CPU(S) 1102執(zhí)行包含在工作存儲器1110的數據及代碼,導致計算機系統(tǒng)1100實現想要的功能,如圖像處理、視頻回放等。非易失性存儲器1104,如只讀存儲器、一個或多個驅動硬盤、閃存等,提供數據或代碼(如啟動代碼、編碼器和解碼器程序、隨機存取控制器程序、壓縮圖像文件等)的存儲,甚至在計算機系統(tǒng)1100關閉電源時,可保留這些數據或代碼。用戶輸入輸出控制器1106管理用戶接口裝置(未顯示)的連接,舉例而言:鍵盤、鼠標、顯示器、打印機、相機和其它諸如此類可促進計算機系統(tǒng)1100和用戶之間的互動和通信的裝置。網絡接口 1108(如以太網絡適配器卡)把數據分組傳送至互連網絡(如因特網)上并從互連網絡接收數據分組,以便用戶可經由互連網絡寄送和接收數據(如圖像數據)。系統(tǒng)總線1112促進了在計算機系統(tǒng)1100中的各種組件之間的通信。
[0115]工作存儲器1110(如隨機存取存儲器)提供動態(tài)存儲器給計算機系統(tǒng)1100,并包含可執(zhí)行代碼(如操作系統(tǒng)1114等),在系統(tǒng)啟動時將可執(zhí)行碼加載到工作存儲器1110中。操作系統(tǒng)1114促進所有其它被加載工作存儲器1110中的模塊的控制與執(zhí)行。工作存儲器1110也包含媒體編程1116(如,圖像觀察器、電影播放器等)。編碼器例程1118代表執(zhí)行這里之前所述的任何和所有編碼器的功能的例行程序。編碼器例程1118產生定位符600 (I) -600 (η)并在定位符緩沖器1120中存儲那些定位符600 (I) -600 (η),該定位符緩沖器也被定義在工作存儲器1110中。工作存儲器1110也包括可執(zhí)行這里描述的解碼器110的任何和所有功能的解碼器例程1122。工作存儲器1110也包括隨機存取控制器模塊1124,其提供了如圖1和圖8所示的RAC114的任何和所有功能。藉由編碼器例程1118所產生的壓縮數據片段804 (I)-804 (η)被存儲在工作存儲器1110所定義的壓縮數據緩沖器1126中,和/或它被存儲在非易失性存儲器1104中??蛇x地,存儲在緩沖器1120中的定位符600(1)-600(η)也可被存儲在非易失性存儲器1104(如定位符文件)中以便隨后取回。
[0116]可由非易失性存儲器1104初始化和/或加載上述每一個程序和緩沖器到工作存儲器1110中。選擇性地從替代的大量數據存儲裝置,包括但不限于⑶-ROM、DVD-ROM、閃存驅動器等,將上述程序和緩沖器加載到工作存儲器1110中。此外,只要需要的話,某些或所有被描述的程序可被加載到工作存儲器1110中。
[0117]現在請參考圖12到圖15以描述本發(fā)明的方法。為了清楚說明,會參考先前描述的實施例中執(zhí)行特定功能的特定組件描述這些方法。然而,應注意的是,其它組件無論是否在此被明確地描述或由于本發(fā)明被創(chuàng)造,能被不脫離本發(fā)明范圍的其它引用所取代。因此,需要理解的是本發(fā)明的方法不限于執(zhí)行任何特定功能的任何特定組件。而且,所呈現方法的某些步驟不必然以所示次序發(fā)生。舉例而言,在某些例子中兩個或更多的方法步驟會同時發(fā)生。尤其鑒于在先前所提供的本發(fā)明描述中,在所公開的方法中的這些和其它變化將立即顯現且被視為在本發(fā)明的全部范疇內。
[0118]圖12為根據本發(fā)明總結了促進隨機存取存儲在壓縮數據存儲器中的壓縮數據片段的方法1200的流程圖。在第一步驟1202中,經由數據輸入116接收一系列數據片段(如圖像200的塊202 (I) -202 (η))。在第二步驟1204中,編碼器106將該系列數據片段編碼成一系列壓縮數據片段804 (I) -804 (η),其中每一個壓縮數據片段804 (I) -804 (η)具有一個可變的片段大小。然后,在第三步驟1206中,將該系列壓縮數據片段804(1)-804(η)存儲在壓縮數據存儲器104中。在第四步驟1208中,定位符產生器108為該系列的每一個壓縮數據片段804 (I)-804 (η)產生定位符600,定位符600 (I)-600 (η)指示在壓縮數據存儲器104中的關聯的壓縮數據片段804(I)-804(η)的位置。
[0119]圖13為根據本發(fā)明總結了執(zhí)行方法1200中第二步驟1204(編碼此系列的數據片段)的特定方法。對該系列的數據片段中的每一個數據片段執(zhí)行如圖13所示的方法。根據此方法,該系列的數據片段包含圖像200的像素數據的塊202 (I)-202 (η)。
[0120]在第一步驟1302中,在像素數據的塊202 (I)-202 (η)上執(zhí)行離散余弦變換以產生離散余弦變換系數的塊402,該離散余弦變換系數為絕對值(也即,非以相對于另一個塊中的離散余弦變換系數加以定義)。然后在第二步驟1304中,使用量化數據316量化絕對值離散余弦變換系數的塊402,以產生量化系數的塊。下一步,在第三步驟1306中,將該量化系數塊鋸齒形編碼,以產生一序列量化系數且在第四步驟1308中,將該序列量化系數游程長度編碼,以產生游程長度編碼(RLE)數據。然后在第五步驟1310中,使用熵數據324對游程長度編碼數據熵編碼,以產生該系列壓縮數據片段804 (I)-804 (η)的其中一個。
[0121]圖14為根據本發(fā)明總結了執(zhí)行方法1200的第四步驟1208(產生定位符)的特定方法的流程圖。為所產生的多個定位符600 (I)-600 (η)中的每一個定位符600執(zhí)行如圖14所示的方法。注意每一個定位符600 (I)-600 (η)與該系列壓縮數據片段804 (I)-804 (η)的其中一個相關聯。
[0122]在第一步驟1402中,計算先前存儲在壓縮數據存儲器104中該系列壓縮數據片段804(1)-804(η)的每一個壓縮數據片段804的大小的總和。然后在第二步驟1404中,將此總和除以等于壓縮數據存儲器104中每一個存儲位置802 (0)-802 (X)的寬度(即64位)的值,以得到商數和余數。然后在第三步驟1406中,將該商數轉換為可識別存儲位置802 (O)-802 (x)中存儲位置802的存儲地址,且與定位符600相關聯的壓縮數據片段804將被存儲在存儲位置802 (0)-802 (X)中。然后在第四步驟1408中,產生對于相關聯的壓縮數據片段804的定位符600,其中有包含存儲地址的第一字段602和包含余數的第二字段604。
[0123]圖15為根據本發(fā)明總結從壓縮數據存儲器104中隨機存取該系列壓縮數據片段804(I)-804(η)中的壓縮數據片段804的方法1500的流程圖。在第一步驟1502中,對應于至少一個數據片段(即圖像200的塊202 (I)-202 (η)中的至少一個塊)的至少一個壓縮數據片段804的請求經由數據請求120被接收。該被請求的壓縮數據片段804是存儲在壓縮數據存儲器104中的一系列可變大小壓縮數據片段804 (I)-804 (η)中的其中一個。然后在第二步驟1504中,從定位符緩沖器112中檢索與被請求的壓縮數據片段804相關聯的至少一定位符600。下一步,在第三步驟1506中,使用被檢索的定位符600在壓縮數據存儲器104中的該系列壓縮數據片段804 (I)-804 (η)之間定位被請求的壓縮數據片段804。然后在第四步驟1508中,藉由RACl 14從壓縮數據存儲器104中檢索被請求的壓縮數據片段804,并提供到解碼器110。后續(xù)在第五步驟1510中,藉由解碼器110解碼被請求的壓縮數據片段804,且解碼后的數據片段被提供到解碼數據輸出118。
[0124]本發(fā)明的特定實施例的描述于此完整呈現。在不脫離本發(fā)明范疇的前提下,許多描述的特點可被替代、修改或刪除。舉例而言,替代的定位符(即存儲器指示器、片段大小等)可取代其中所述的定位符。如同另一個例子,可使用幀標頭促進改變在編碼及解碼(即量化數據和熵數據)每一個幀中所使用的數據。尤其鑒于先前的公開信息,所顯示特定實施例的這些和其它偏差對熟知本【技術領域】者而言是顯而易見的。
【權利要求】
1.一種促進隨機存取存儲于存儲器中的壓縮數據片段的方法,所述方法包括: 接收一系列數據片段; 編碼該系列數據片段成一系列壓縮數據片段,每一該壓縮數據片段具有一可變的片段大?。? 存儲該系列壓縮數據片段在一壓縮數據存儲器中;以及 對于每一該壓縮數據片段產生一定位符,該定位符指示該壓縮數據存儲器中一關聯壓縮數據片段的位置。
2.如權利要求1所述的方法,其中, 該系列數據片段包含一系列圖像數據塊; 該編碼的步驟包括對所述系列數據片段中的每一圖像數據塊執(zhí)行一離散余弦變換(DCT)以產生一系列離散余弦變換系數塊;以及 在不參考所述系列中其它任何離散余弦變換系數塊的情況下,產生每一該離散余弦變換系數塊中的該離散余弦變換系數。
3.如權利要求2所述的方法,其中對該一系列離散余弦變換系數塊中的每一該離散余弦變換系數塊而言,該編碼步驟進一步包括: 量化該離散余弦變 換系數塊以產生一量化系數塊; 鋸齒形編碼該量化系數塊以產生一序列的量化系數; 將該一序列的量化系數進行游程長度編碼以產生游程長度編碼(RLE)數據;以及 熵編碼該游程長度編碼數據以產生該一系列壓縮數據片段的一個片段。
4.如權利要求3所述的方法,進一步包含: 接收第二系列數據片段; 編碼該第二系列數據片段成第二系列壓縮數據片段,以及其中, 該量化該離散余弦變換系數塊的步驟包括使用量化數據以量化該離散余弦變換系數塊; 該熵編碼該執(zhí)行長度編碼數據的步驟包括使用熵數據以熵編碼該游程長度編碼數據;以及 該量化數據及該熵數據不會在編碼該系列的數據片段和編碼該第二系列數據片段的步驟之間改變。
5.如權利要求1所述的方法,其中該定位符識別存儲至少一部分該關聯壓縮數據片段的該壓縮數據存儲器的一存儲位置。
6.如權利要求5所述的方法,其中該定位符包括一存儲地址和一偏移。
7.如權利要求6所述的方法,其中, 該存儲地址從該壓縮數據存儲器的多個存儲位置中識別該存儲位置;以及 該偏移指示在該存儲位置內該關聯壓縮數據片段的第一位的位置。
8.如權利要求7所述的方法,進一步包括:確定每一該壓縮數據片段的大小。
9.如權利要求8所述的方法,其中該產生該關聯壓縮數據片段的該定位符的步驟包括: 計算存儲在該關聯壓縮數據片段之前的所述系列中的每一該壓縮數據片段大小的總和;將該總和除以等于該壓縮數據存儲器中多個存儲位置的每一個的寬度的值以得到一商數及一余數; 轉換該商數成該存儲地址;以及 設定該偏移等于該余數。
10.如權利要求1所述的方法,進一步包括:確定每一該壓縮數據片段的大小。
11.如權利要求1所述的方法,其中該系列壓縮數據片段系存儲在該壓縮數據存儲器中,而該壓縮數據存儲器不含與該系列壓縮數據片段相關聯的標頭信息。
12.如權利要求1所述的方法,進一步包括:存儲每一該壓縮數據片段的該定位符。
13.如權利要求12所述的方法,進一步包括: 接收對于從存儲在該壓縮數據存儲器的該系列壓縮數據片段選擇的至少一個壓縮數據片段的一請求; 檢索與該被請求的壓縮數據片段相關聯的該定位符; 在存儲于該壓縮數據存儲器的該系列壓縮數據片段間,使用該被檢索的定位符以定位該被請求的壓縮數據片段的開端;以及 從該壓縮數據存儲器檢索該被請求的壓縮數據片段。
14.如權利要求13所述的方法,進一步包括: 檢索與存儲于該壓縮數據存儲器中的第二壓縮數據片段相關聯的第二定位符;以及 使用該第二定位符在該壓縮數據存儲器中定位該被請求的壓縮數據片段的末端。
15.如權利要求13所述的方法,進一步包括:解碼該被請求的壓縮數據片段,而該被請求的壓縮數據片段與其余的該系列壓縮數據片段無次序之分。
16.如權利要求15所述的方法,其中該解碼該被請求的壓縮數據片段的步驟包括: 熵解碼該被請求的壓縮數據片段以產生游程長度編碼(RLE)數據; 游程長度解碼該游程長度編碼數據以產生多個量化系數; 對多個量化系數執(zhí)行一逆鋸齒形處理以產生一量化系數塊; 去量化該量化系數塊以產生一離散余弦變換系數絕對值的塊;以及在不參考其它任何離散余弦變換系數塊的情況下,對該離散余弦轉換系數絕對值的塊執(zhí)行一逆離散余弦變換處理,以產生一解碼數據塊。
17.如權利要求16所述的方法,其中該解碼該被請求的壓縮數據片段的步驟不包括在解碼該被請求的壓縮數據片段之前對與該系列壓縮數據片段相關聯的一標頭作語法分析。
18.如權利要求1所述的方法,其中, 該系列數據片段包含定義圖像的一系列圖像數據塊;以及 該壓縮數據存儲器為一幀緩沖器,用于存儲定義該圖像的壓縮數據。
19.一種促進隨機存取存儲于存儲器中的壓縮數據片段的系統(tǒng),該系統(tǒng)包括: 一數據輸入,該數據輸入被耦合以接收一系列數據片段; 一編碼器,該編碼器經操作將該系列的數據片段編碼成一系列壓縮數據片段,每一該壓縮數據片段具有一可變的片段大??; 一壓縮數據存儲器,該壓縮數據存儲器被耦合以從該編碼器接收該系列壓縮數據片段,并存儲該系列壓縮數據片段;以及 一定位符產生器,該定位符產生器經操作以對于每一該壓縮數據片段產生一定位符,該定位符指示在該壓縮數據存儲器中一關聯壓縮數據片段的位置。
20.如權利要求19所述的系統(tǒng),其中, 該系列數據片段包括一系列圖像數據塊; 該編碼器經操作以對所述系列中的每一該圖像數據塊執(zhí)行一離散余弦變換(DCT)以產生一系列離散余弦變換系數塊;以及 不參考所述系列中的其它任何離散余弦變換系數塊,在每一該離散余弦變換系數塊中產生該離散余弦變換系數。
21.如權利要求20所述的系統(tǒng),其中,對于該系列離散余弦變換系數塊中的每一個離散余弦變換系數塊,該編碼器進一步操作以: 量化該離散余弦變換系數塊以產生一量化系數塊; 鋸齒形編碼該量化系數塊成為一序列的量化系數; 將該序列的量化系數進行游程長度編碼以產生游程長度編碼(RLE)數據;以及 熵編碼該游程長度編碼數據以產生該系列壓縮數據片段的一個。
22.如權利要求21所述的系統(tǒng),其中, 輸入終端機進一步經操作以接收第二系列數據片段; 該編碼器進一步操作以 編碼該第二系列數據片段成為第二系列壓縮數據片段, 使用量化數據以量化該離散余弦變換系數塊, 使用熵數據熵編碼該游程長度編碼數據;以及 該編碼器經操作以使用相同的該量化數據和該熵數據以編碼該系列數據片段和該第二系列數據片段。
23.如權利要求19所述的系統(tǒng),其中該定位符識別存儲至少一部分該關聯壓縮數據片段的該壓縮數據存儲器的一存儲位置。
24.如權利要求23所述的系統(tǒng),其中該定位符包括一存儲地址和一偏移。
25.如權利要求24所述的系統(tǒng),其中, 該存儲地址從該壓縮數據存儲器的多個存儲位置中識別該存儲位置;以及 該偏移指示在該存儲位置內該關聯壓縮數據片段的第一位的位置。
26.如權利要求25所述的系統(tǒng),其中進一步操作該定位符產生器以確定在所述系列中的每一該壓縮數據片段的大小。
27.如權利要求26所述的系統(tǒng),其中對于每一該關聯壓縮數據片段,該定位符產生器進一步操作以: 計算存儲在該關聯壓縮數據片段之前的所述系列中的每一該壓縮數據片段的大小的總和; 將該總和除以等于該壓縮數據存儲器中所述多個存儲位置的每一個的寬度的值以得到一商數及一余數; 轉換該商數成該存儲地址;以及 設定該偏移等于該余數。
28.如權利要求19所述的系統(tǒng),其中該定位符產生器經操作以確定每一該壓縮數據片段的大小。
29.如權利要求19所述的系統(tǒng),其中該系列壓縮數據片段是存儲在該壓縮數據存儲器中,而該壓縮數據存儲器不含與該系列壓縮數據片段相關聯的標頭信息。
30.如權利要求19所述的系統(tǒng),進一步包括:一定位符存儲器,經操作以存儲每一該壓縮數據片段的定位符。
31.如權利要求30所述的系統(tǒng),進一步包括: 一數據請求,其經操作以接收對于存儲在該壓縮數據存儲器中的該系列壓縮數據片段之中的至少一個壓縮數據片段的一請求;以及一控制器,其經操作以 檢索與該被請求的壓縮數據片段相關聯的該定位符, 使用該被檢索的定位符以在該壓縮存儲器中的該系列壓縮數據片段間定位該被請求的壓縮數據片段的開頭,并 從該壓縮數據存儲器中檢索該被請求的壓縮數據片段。
32.如權利要求31所述的系統(tǒng),其中該控制器進一步操作以: 檢索第二定位符,該第二定位符與存儲在該壓縮數據存儲器中的第二壓縮數據片段相關聯;以及 使用該第二定位符在該壓縮數據存儲器中定位該被請求的壓縮數據片段的末端。
33.如權利要求31所述的系統(tǒng),進一步包括解碼器,其經操作以解碼該被請求的壓縮數據片段,而該被請求的壓縮數據片段與其余的該系列壓縮數據片段無次序之分。
34.如權利要求33所述的系統(tǒng),其中該解碼器包括: 一熵解碼器,其經操作以熵解碼該被請求的壓縮數據片段以產生游程長度編碼(RLE)數據; 一游程長度解碼器,其經操作以游程長度解碼該游程長度解碼數據以產生多個量化系數; 一逆鋸齒形單元,其經操作以對多個量化系數執(zhí)行一逆鋸齒形處理以產生一量化系數塊; 一去量化器,其經操作以去量化該量化系數塊以產生一離散余弦變換系數絕對值的塊;以及 一逆離散余弦變換單元,其經操作以對該逆離散余弦變換絕對值的塊執(zhí)行一逆離散余弦變換處理,而不參考其它任何離散余弦變換系數塊。
35.如權利要求34所述的系統(tǒng),其中該解碼器經操作以解碼該被請求的壓縮數據片段,在解碼該被請求的壓縮數據片段之前不對與該系列壓縮數據片段相關聯的一標頭作語法分析。
36.如權利要求19所述的系統(tǒng),其中, 該系列數據片段包括一系列圖像數據塊,用以定義一圖像;以及 該壓縮數據存儲器為一幀緩沖器,用于存儲定義該圖像的壓縮數據。
37.一種非過渡、電子可讀式的存儲媒體,其具有嵌入其中的代碼并使一電子裝置用以: 接收一系列數據片段; 編碼該系列數據片段成一系列壓縮數據片段,每一該壓縮數據片段具有一可變的片段大??; 存儲該系列壓縮數據片段在一壓縮數據存儲器中;以及 對于每一該壓縮數據片段產生一定位符,該定位符是指示在該壓縮數據存儲器中一關聯壓縮數據片段的位置。
38.一種促進隨機存取存儲于存儲器中壓縮數據片段的系統(tǒng),該系統(tǒng)包括: 一輸入終端機,該輸入終端機被耦合以接收一系列數據片段; 用于編碼該系列數據片段成一系列壓縮數據片段的裝置,每一該數據片段是獨立于其它任何該壓縮數據片段被編碼,每一該壓縮數據片段具有一可變的片段大??; 一壓縮數據存儲器,該壓縮數據存儲器被耦合以接收及存儲該系列壓縮數據片段;以及 用于在該壓縮數據存儲器中定位每一該壓縮數據片段的裝置。
39.一種隨機存取存儲器中壓縮數據片段的方法,該方法包括: 接收對于選自存儲在一壓縮數據存儲器中的一系列壓縮數據片段的一壓縮數據片段的一請求,每一該壓縮數據片段具有一可變的片段大??; 檢索與該被請求的壓縮數據片段相關聯的一定位符; 使用該被檢索的定位符以在該壓縮數據存儲器中的該系列壓縮數據片段內定位該被請求的壓縮數據片段;以及 從該壓縮數據存儲器中檢索該被請求的壓縮數據片段。
40.一種隨機存取存儲器中壓縮數據片段的系統(tǒng),該系統(tǒng)包括: 一數據請求輸入,其經操作以接收對于選自存儲在一壓縮數據存儲器中的一系列壓縮數據片段的至少一個壓縮數據片段的一請求,每一該壓縮數據片段具有一可變的片段大?。灰约? 一控制器,其經操作以: 檢索與該被請求的壓縮數據片段相關聯的一定位符, 使用該被檢索的定位符以在該壓縮數據存儲器的該一系列壓縮數據片段內定位該被請求的壓縮數據片段,以及 從該壓縮數據存儲器中檢索該被請求的壓縮數據片段。
41.一種非過渡、電子可讀式存儲媒體,其存儲有一數據結構,用于定位在存儲器中的一關聯壓縮數據片段,該數據結構包括: 存儲定義一存儲地址的數據的第一字段,該存儲地址識別其中至少存儲有一部分該關聯壓縮數據片段的存儲器中的一存儲位置;以及 存儲定義一偏移的數據的第二字段,該偏移指示在該存儲位置內關聯壓縮數據片段開始的一位位置。
42.如權利要求41所述的數據結構,進一步包括:第三字段,該第三字段存儲從其它多個壓縮數據片段中唯一地識別該壓縮數據片段的數據。
【文檔編號】H04N19/46GK103841424SQ201310562165
【公開日】2014年6月4日 申請日期:2013年11月12日 優(yōu)先權日:2012年11月27日
【發(fā)明者】杜宣明, C.S.科夫曼 申請人:豪威科技股份有限公司