TWI455020B - 資料包裝裝置及資料包裝方法 - Google Patents
資料包裝裝置及資料包裝方法 Download PDFInfo
- Publication number
- TWI455020B TWI455020B TW101103159A TW101103159A TWI455020B TW I455020 B TWI455020 B TW I455020B TW 101103159 A TW101103159 A TW 101103159A TW 101103159 A TW101103159 A TW 101103159A TW I455020 B TWI455020 B TW I455020B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- length
- current
- barrel
- residual
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/003—Reformatting, i.e. changing the format of data representation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
本發明與記憶體管理技術相關,並且尤其與用以包裝資料的記憶體管理技術相關。
近年來有許多電子產品,包括數位相機、錄影機、智慧型手機等等,皆以產品具備拍攝大尺寸、高解析度之影像/影片的能力來吸引消費者。對硬體製造者來說,如何與時俱進,製作更高品質的影像編碼器,一直都是重要的議題。
圖一為一影像編碼器方塊圖範例。畫素區塊輸入模組11將資料供應端輸入的畫素資料組成區塊。轉換/量化模組12對上述畫素區塊輸入模組11產生的區塊施以離散餘弦轉換(discrete cosine transform,DCT)和量化(quantization)程序,以達成壓縮效果。隨後,游程長度編碼(run length coding,RLC)模組13負責找出量化後資料中的非零值(Run)和非零值之前的零值個數(Length),並以這兩個成對的參數表示資料內容,藉此進一步壓縮資料量。舉例而言,量化後資料00000200007可表示為(Run,Length)=(2,5)(7,4)。可變長度編碼(variable length coding,VLC)模組14的工作是根據游程長度編碼模組13輸出的成對參數查表,將每一組成對參數再次轉換為一編碼位元流。可變長度編碼模組14每次產生的編碼位元流之長度是不固定的。位元流包裝模組15則將可變長度編碼模組14產生的編碼位元流合併,以組成長度適當的封包。
接下來以位元流包裝模組15包含兩個桶狀移位器(barrel shifter)的情況為例,說明目前通用的位元流包裝機制。如圖二(A)所示,桶狀移位器15A、15B能容納的資料長度分別為32位元,並且,桶狀移位器15A、15B各自能提供的最大移位量為32位元。位元流包裝模組15每週期接收一個位元流。如圖二(B)所示,在第一週期中,長度為8位元的位元流a首先被存入桶狀移位器15A並且靠左放置。在隨後的第二週期中,長度為16位元的位元流b輸入位元流包裝模組15,為使位元流b鄰接於位元流a右側放置,桶狀移位器15A在接收位元流b的同時,對位元流b施以8位元的向右移位。
在第三週期中,長度為24位元的位元流c被傳送至位元流包裝模組15。由於桶狀移位器15A的剩餘容量不足,位元流c被拆解為長度分別為8位元、16位元的位元流c1、c2,分別存放在桶狀移位器15A、15B中。假設位元流包裝模組15應產生的封包長度固定為32位元。因桶狀移位器15A中的位元流a、b、c1已足夠組成一個封包,在第四週期中,位元流包裝模組15除了接收新的位元流d,亦將位元流a、b、c1串接合併為一個封包後輸出。如圖二(B)所示,位元流c2會被搬移至桶狀移位器15A的最左側。位元流d則是被存入桶狀移位器15A中鄰接位元流c2的區段。
由以上說明可知,為了正確串接各個位元流,位元流包裝模組15每次在接收位元流的同時,必須選擇性地利用桶狀移位將位元流搬移至正確的區段。就圖二(B)所示之範例而言,為了緊鄰位元流a,位元流b的起始位置必須是桶狀移位器15A中自左端數來第9位元的位置,因此需要向右移位8位元。為了緊鄰位元流b,位元流c的起始位置則必須是自左端數來第25位元的位置,因此需要向右移位24位元。於此範例中,桶狀移位器15A、15B各自能提供的最大移位量為32位元。
近來隨著畫面尺寸和畫面解析度的提高,位元流的平均長度不斷增加。舉例而言,過去每個位元流所包含的內容至多不超過32位元,但現在的位元流長度可能會長於32位元。此外,為了配合影像資料量的大幅增加,對編碼器硬體速度的要求也逐漸升高。舉例而言,若可變長度編碼模組14被要求在每個週期內處理兩筆資料,位元流包裝模組15在每個週期內所接收的位元流長度即可能長於32位元。相對應地,位元流包裝模組15必須能在單一週期中提供高於32位元的最大移位量。
就當前的技術水準而言,實現最大移位量高於32位元(例如64位元)的桶狀移位器並不困難。問題在於,移位量愈大,完成移位所需要的時間就愈長。在資料量較大的情況下,如果位元流包裝模組15無法配合可變長度編碼模組14產生位元流的速度,順利完成位元流的接收、移位、合併、輸出,位元流包裝模組15很可能是拖慢影像編碼器整體速度的瓶頸。
若藉由提高轉換/量化模組12所採用的量化程度來減少後續資料量,雖可緩解對位元流包裝模組15的速度要求,卻會犧牲影像品質,並不是理想的對策。
為解決上述問題,本發明提出一種新的資料包裝裝置及資料包裝方法。藉由將一高移位量拆解為多個較小的移位量,分別在不同階段達成,根據本發明之裝置及方法能達到等同於具高移位能力之單一桶狀移位器的移位效果。此外,藉由將位元流適當拆解為合併資料及殘餘資料,根據本發明之裝置及方法在接收、處理長位元流時,平均而言比直接使用具高移位能力的單一桶狀移位器更有效率。
根據本發明之一具體實施例為一種資料包裝裝置,用以持續接收一目前資料,包含N個桶狀移位器、一控制模組及一包裝模組。該控制模組係用以根據一先前殘餘資料之長度決定一移位量,並控制該N個桶狀移位器對一目前合併資料依序施以M次桶狀移位,以達成該移位量。該包裝模組係用以合併該先前殘餘資料及經過該N個桶狀移位器之該目前合併資料為一預備包裝資料。該M次桶狀移位各自之一移位量皆小於一門檻值,該門檻值與一週期長度相關。N為大於等於2之整數,M為小於等於N之一自然數。該目前合併資料為該目前資料之一部份或全部。
根據本發明之另一具體實施例為一種用以配合N個桶狀移位器的資料包裝方法。該方法首先執行一決定步驟,根據一先前殘餘資料之長度決定一第一目標移位量。隨後,該方法,執行一控制步驟,控制該N個桶狀移位器對一目前合併資料依序施以M次桶狀移位,以達成該第一目標移位量。接著,該先前殘餘資料及經過該N個桶狀移位器之該目前合併資料被合併。
關於本發明的優點與精神可以藉由以下發明詳述及所附圖式得到進一步的瞭解。
根據本發明之一具體實施例為包含N個合併桶狀移位器的資料包裝裝置。N為大於等於2的整數。以下說明將以圖三所示之N等於2的情況為例。本發明所屬技術領域中具有通常知識者據此即可理解N大於2的情況。於實際應用中,根據本發明之資料包裝裝置可單獨存在,亦可被整合各種具備影像編碼能力的設備中,或是用以配合各種需要包裝輸出資料的系統(例如通訊裝置)。
如圖三所示,除了第一合併桶狀移位器321、第二合併桶狀移位器322之外,資料包裝裝置300還包含控制模組34及包裝模組36。第一合併桶狀移位器321、第二合併桶狀移位器322和包裝模組36係以管道式(pipeline)結構串接;控制模組34負責依時脈信號控制其間的資料傳遞。於此實施例中,第一合併桶狀移位器321、第二合併桶狀移位器322能提供的最大移位量皆為32位元。此外,本範例中的包裝模組36為一緩衝器,負責整合前端送來的位元流並輸出長度為64位元的封包。須說明的是,最大移位量與封包長度不限於上述數字。舉例而言,兩桶狀移位器的最大移位量可不相同,而控制模組34可被設計為控制包裝模組36在各個週期輸出長度不等的封包。
假設包裝模組36中已存有長度為40位元的位元流a,且資料包裝裝置300隨後收到長度為24位元的位元流b。根據位元流a的長度,控制模組34可判斷應對位元流b施以移位量等於40位元的移位,才能使位元流b正確緊鄰於位元流a右方。圖四(A)~圖四(D)係用以說明控制模組34如何控制第一合併桶狀移位器321、第二合併桶狀移位器322在傳遞的過程中,對位元流b依序施以桶狀移位,以達成40位元的目標移位量。
本範例中的第一合併桶狀移位器321和第二合併桶狀移位器322被設計為各自具有64位元的儲存空間。圖四(A)係繪示位元流a已儲存在包裝模組36中,而桶狀移位器321、322中尚未存放任何資料的情況。位元流a可被視為一預備包裝資料,預備包裝資料在可組成一完整的64位元封包前,暫存於包裝模組36中。如圖四(B)所示,控制模組34可在第一週期內先控制第一合併桶狀移位器321接收位元流b,並且將位元流b向右挪移32位元。接著,在第二週期內,如圖四(C)所示,控制模組34可控制第二合併桶狀移位器322自第一合併桶狀移位器321接收位元流b,並且將位元流b再次向右挪移8位元,使位元流b相對於儲存空間的左側之距離為40位元。隨後,在第三週期內,如圖四(D)所示,控制模組34可令包裝模組36自第二合併桶狀移位器322接收已經過移位的位元流b,直接將位元流b存入包裝模組36右側長度為24位元的空間。於一實施例中,包裝模組36將位元流a及位元流b(即預備包裝資料)組成完整的64位元封包後,並立即將該封包輸出。
由上述說明可看出,資料包裝裝置300是將40位元的移位量拆解為32位元和8位元兩個較小的移位量,交由兩個桶狀移位器於兩個週期內分別達成。實際上,拆解方式不以上述數值為限,舉例而言,拆解結果亦可為20位元和20位元,或是8位元和32位元。拆解移位量的好處在於,各個桶狀移位器都不需要被設計為具有太高的單次移位能力(例如64位元)。相較於最大移位量為64位元的單一桶狀移位器,最大移位量為32位元的桶狀移位器之硬體複雜度較低、平均運作速度較快,並且能達到相同的移位效果。此外,採用資料包裝裝置300可省去另外設計具大移位量之桶狀移位器的麻煩。
實際上,圖四(A)~圖四(D)中所呈現的位元流b可能是某個輸入資料包裝裝置300的位元流的一部份或全部。舉例而言,若在位元流a之後輸入資料包裝裝置300的位元流之長度為32位元,位元流b可能是此位元流的前24位元,該位元流其餘的8位元可先被暫存起來,留待組成下一個封包之用。易言之,控制模組34可根據預定封包大小(例如64位元)與先前已存入包裝模組36中之資料長度(例如40位元)計算包裝模組36還能容納的資料量(例如24位元),再據此決定應由後續位元流中擷取一部份或全部做為位元流b。
根據本發明之另一實施例為包含N個合併桶狀移位器和N個殘餘桶狀移位器的資料包裝裝置。N為大於等於2之整數。以下說明將以圖五(A)所示之N等於2的情況為例。本發明所屬技術領域中具有通常知識者據此即可理解N大於2的情況。資料包裝裝置500包含第一合併桶狀移位器521、第二合併桶狀移位器522、第一殘餘桶狀移位器581、第二殘餘桶狀移位器582、控制模組54及包裝模組56。以下將配合圖六中呈現的範例來說明資料包裝裝置500的運作方式。為保持圖面清晰,圖六係以相對位置區別不同的元件,而未一一標示各個區塊的號碼,其相對位置關係請參見圖五(B)。
於圖六所示之實施例中,第一合併桶狀移位器521、第二合併桶狀移位器522、第一殘餘桶狀移位器581、第二殘餘桶狀移位器582能提供的最大移位量皆為32位元,且各自具有64位元的儲存空間。包裝模組56亦具有64位元的儲存空間,且被設定為在集滿64位元的資料後立即輸出一封包。
第一合併桶狀移位器521和第一殘餘桶狀移位器581可被視為負責第一階段的移位;第二合併桶狀移位器522和第二殘餘桶狀移位器582可被視為負責第二階段的移位。此實施例中的第一階段移位、第二階段移位和最後的包裝模組56係以管道式結構串接;控制模組54負責依時脈信號控制其間由左向右進行的資料傳遞。
首先,在第一週期中,長度為40位元的位元流a被輸入資料包裝裝置500。由於在第一週期之前,圖中的五個儲存空間皆未存有任何先前資料,位元流a被標示為殘餘資料a-R。如圖六所示,控制模組54將殘餘資料a-R存入第一殘餘桶狀移位器581,並靠左放置。接著,在第二週期中,長度為44位元的位元流b被輸入資料包裝裝置500。根據殘餘資料a-R之長度(40位元)和包裝資料量(64位元)間的差異,控制模組54可決定一目標合併長度(64位元-40位元=24位元)。就第二週期的情況而言,該目標合併長度所對應的資料也就是將用以和位元流a-R組成封包的資料。由於位元流b的長度(44位元)大於目標合併長度(24位元),控制模組54將位元流b分割為兩個部份:長度相等於目標合併長度(24位元)的合併資料b-M,以及長度相等於位元流b的長度減去目標合併長度(44位元-24位元=20位元)的殘餘資料b-R。
在第二週期中,殘餘資料a-R自第一殘餘桶狀移位器581被傳送至第二殘餘桶狀移位器582,殘餘資料b-R被存入第一殘餘桶狀移位器581,合併資料b-M則是被存入第一合併桶狀移位器521。根據殘餘資料a-R的長度(40位元),控制模組54可判斷,在合併資料b-M被送入包裝模組56之前,應對合併資料b-M施以至少一次桶狀移位,以達成相等於殘餘資料a-R長度(40位元)的向右移位,使合併資料b-M得與殘餘資料a-R正確串接。如圖六所示,控制模組54先控制第一合併桶狀移位器521接收合併資料b-M,並將合併資料b-M向右挪移32位元(最大移位量)。須說明的是,控制模組54亦控制第一殘餘桶狀移位器581接收殘餘資料b-R並將殘餘資料b-R向左挪移相等於合併資料b-M之長度(24位元),使殘餘資料b-R的起始位置對齊第一殘餘桶狀移位器581的最左端。如圖所示,由於殘餘資料b-R原先位於合併資料b-M的右邊,為了使殘餘資料b-R的起始位置對齊第一殘餘桶狀移位器581的最左端,殘餘資料b-R必須向左挪移相等於合併資料b-M之長度。
在第三週期中,長度為52位元的位元流c被輸入資料包裝裝置500。殘餘資料a-R自第二殘餘桶狀移位器582被傳送至包裝模組56,殘餘資料b-R自第一殘餘桶狀移位器581被傳送至第二殘餘桶狀移位器582,合併資料b-M則是自第一合併桶狀移位器521被傳送至第二合併桶狀移位器522。如圖六所示,控制模組54控制第二合併桶狀移位器522接收合併資料b-M,並將合併資料b-M向右挪移8位元,使合併資料b-M的起始位置與第二合併桶狀移位器522的最左端存在相等於殘餘資料a-R長度(40位元)的差異。
相似地,根據殘餘資料b-R之長度(20位元)和包裝資料量(64位元)間的差異,控制模組54可決定一目標合併長度(44位元),並據此將位元流c分割為兩個部份:長度相等於目標合併長度(44位元)的合併資料c-M,以及長度相等於位元流c的長度減去目標合併長度(52位元-44位元=8位元)的殘餘資料c-R。
根據殘餘資料b-R的長度(20位元),控制模組54可判斷,在合併資料c-M被送入包裝模組56之前,應對合併資料c-M施以至少一次桶狀移位,以達成相等於殘餘資料b-R長度(20位元)的向右移位,使合併資料c-M得與殘餘資料b-R正確串接。如圖六所示,控制模組54控制第一合併桶狀移位器521在接收合併資料c-M的同時將合併資料c-M向右挪移20位元。有鑒於合併資料c-M之長度大於最大移位量32位元,控制模組54控制第一殘餘桶狀移位器581接收殘餘資料c-R,並先將殘餘資料c-R向左挪移最大移位量(32位元),使殘餘資料c-R的起始位置朝向第一殘餘桶狀移位器581的最左端移動。殘餘資料c-R與儲存空間最左端的12位元差異(即合併資料c-M之長度44位元減去最大移位量32位元)可留待於第四週期消除。
在第四週期中,長度為20位元的位元流d被輸入資料包裝裝置500。包裝模組56中的位元流a-R和第二合併桶狀移位器522中的合併資料b-M亦於此時被組成完整的64位元封包後立即輸出。如圖六所示,殘餘資料b-R自第二殘餘桶狀移位器582被傳送至包裝模組56,殘餘資料c-R自第一殘餘桶狀移位器581被傳送至第二殘餘桶狀移位器582,且合併資料c-M自第一合併桶狀移位器521被傳送至第二合併桶狀移位器522。值得注意的是,控制模組54控制第二殘餘桶狀移位器582接收殘餘資料c-R,並將殘餘資料c-R左移12位元,使殘餘資料c-R的起始位置為第二殘餘桶狀移位器582的最左端。
根據殘餘資料c-R之長度(8位元)和包裝資料量(64位元)間的差異,控制模組54可決定一目標合併長度(56位元),並據此判斷不需要分割位元流d。位元流d的全部因此被標示為合併資料d-M。根據殘餘資料c-R的長度(8位元),控制模組54可判斷,在合併資料d-M被送入包裝模組56之前,應對合併資料d-M施以至少一次桶狀移位,以達成相當於殘餘資料c-R長度(8位元)的向右移位,使合併資料d-M得與殘餘資料c-R正確串接。如圖六所示,控制模組54控制第一合併桶狀移位器521接收合併資料d-M,並將合併資料d-M向右挪移8位元。
在第五週期中,長度為48位元的位元流e被輸入資料包裝裝置500。包裝模組56中的位元流b-R和第二合併桶狀移位器522中的合併資料c-M亦於此時被組成完整的64位元封包後輸出。如圖六所示,殘餘資料c-R自第二殘餘桶狀移位器582被傳送至包裝模組56,且合併資料d-M自第一合併桶狀移位器521被傳送至第二合併桶狀移位器522。根據殘餘資料c-R及合併資料d-M之長度總和(28位元)與包裝資料量(64位元)間的差異,控制模組54可決定一目標合併長度(36位元),並據此將位元流e分割為兩個部份:長度相等於目標合併長度(36位元)的合併資料e-M,以及長度相等於位元流e的長度減去目標合併長度(48位元-36位元=12位元)的殘餘資料e-R。
此時,包裝模組56內儲存有殘餘資料c-R及合併資料d-M。根據殘餘資料c-R及合併資料d-M之長度總和(28位元),控制模組54可判斷,在合併資料e-M被送入包裝模組56之前,應對合併資料e-M施以至少一次桶狀移位,以達成相等於殘餘資料c-R長度及合併資料d-M之長度總和(28位元)的向右移位,使合併資料e-M得與合併資料d-M正確串接。如圖六所示,控制模組54控制第一合併桶狀移位器521接收合併資料e-M,並將合併資料e-M向右挪移28位元。有鑒於合併資料e-M之長度大於最大移位量32位元,控制模組54亦控制第一殘餘桶狀移位器581接收殘餘資料e-R,將殘餘資料e-R向左挪移最大移位量(32位元),使殘餘資料e-R的起始位置向第一殘餘桶狀移位器581的最左端移動。殘餘資料e-R與儲存空間最左端的4位元差異(即合併資料e-M之長度36位元減去最大移位量32位元)可留待於第六週期消除。
在第六週期中,長度為16位元的位元流f被輸入資料包裝裝置500。第二合併桶狀移位器522中的合併資料d-M被傳送至包裝模組56;殘餘資料c-R及合併資料d-M尚無法組成完整的封包,因此繼續被存放在包裝模組56中。如圖六所示,殘餘資料e-R自第一殘餘桶狀移位器581被傳送至第二殘餘桶狀移位器582,且合併資料e-M自第一合併桶狀移位器521被傳送至第二合併桶狀移位器522。值得注意的是,控制模組54控制第二殘餘桶狀移位器582接收殘餘資料e-R,並將殘餘資料e-R左移4位元,使殘餘資料e-R的起始位置為第二殘餘桶狀移位器582的最左端。
根據殘餘資料e-R之長度(12位元)和包裝資料量(64位元)間的差異,控制模組54可決定一目標合併長度(52位元),並據此判斷不需要分割位元流f。位元流f的全部因此被標示為合併資料f-M。根據殘餘資料e-R的長度(12位元),控制模組54可判斷,在合併資料f-M被送入包裝模組56之前,應對合併資料f-M施以至少一次桶狀移位,以達成相當於殘餘資料e-R長度(12位元)的向右移位,使合併資料f-M得與殘餘資料e-R正確串接。如圖六所示,控制模組54控制第一合併桶狀移位器521接收合併資料d-M,並將合併資料f-M向右挪移12位元。
實務上,前述位元流a~f可能各自是連續複數個位元流的組合,也可能是一個較長的位元流。針對每一週期新輸入的位元流,控制模組54首先會判斷是否需將目前的資料分割為一合併資料與一殘餘資料。接著,針對合併資料,控制模組54係根據一先前殘餘資料之長度決定一第一目標移位量,並控制該N個合併桶狀移位器對目前的合併資料依序施以M次桶狀移位,以達成該第一目標移位量。M為小於等於N之自然數;若完全沒有先前殘餘資料,M即為零。
另一方面,針對殘餘資料,控制模組54則是會根據目前的合併資料長度決定一第二目標移位量,並控制該N個殘餘桶狀移位器對目前的殘餘資料依序施以P次桶狀移位,以達成該第二目標移位量,使目前的殘餘資料之起始位置在被送進包裝模組56前對齊儲存空間最左側。P為小於等於N之自然數。
須說明的是,該M次桶狀移位和P次桶狀移位各自之一最大移位量皆小於一門檻值(例如不高於32位元)。此門檻值與一週期長度相關。更明確地說,該等最大移位量被設計為確保各桶狀移位器皆能在一特定週期中完成其移位工作。以圖一所繪示的影像編碼架構為例,假設可變長度編碼模組會在一特定週期內產生兩個提供至位元流包裝模組的位元流,上述最大移位量可被設計為小於等於各桶狀移位器能在該特定週期內順利完成的移位量。如此一來,即使可變長度編碼模組在每個週期內輸出兩個位元流或是一個較長的位元流,根據本發明之資料包裝裝置還是可以順利接收、處理,不會造成前端電路必須等待資料包裝裝置的情況。對於重視流通量(throughput)的系統(例如高畫質影像編碼系統)來說,採用資料包裝裝置500可避免資料包裝程序成為整個資料處理流程的速度瓶頸。
由以上說明可看出,無論是針對合併資料或殘餘資料,資料包裝裝置500都是將高於一特定位元量(32位元)的移位量拆解為兩個移位量,在兩個移位階段中分別達成。實際上,拆解移位量及移位階段之數量不以前述範例列舉的數值為限。針對更長的資料,根據本發明之資料包裝裝置亦可進一步包含更多(例如三個或四個)移位階段或在各階段採用較大的儲存空間。此外,根據本發明的概念亦適用於輸入位元流之長度為固定的情況。前述實施例雖以左側為起始點的儲存空間為例,但根據本發明的概念亦可應用於起始點在其他位置(例如右側)的儲存空間。
根據本發明之另一具體實施例為如圖七所示之資料包裝方法。此方法係用以配合N個合併桶狀移位器;N為大於等於2之整數。首先,步驟S71為根據一先前殘餘資料之長度為一目前合併資料決定一第一目標移位量。接著,步驟S72為控制該N個合併桶狀移位器對該目前合併資料依序施以M次桶狀移位,以達成該第一目標移位量,其中M為小於等於N之自然數。隨後,步驟S73為合併該先前殘餘資料及經過該N個合併桶狀移位器之該目前合併資料。
如圖八所示,根據本發明之資料包裝方法在步驟S71之前可進一步包含步驟S74~步驟S77。步驟S74為計算該先前殘餘資料之長度與一包裝資料量間之差異,做為一目標合併長度。步驟S75為判斷該目前資料之長度是否小於等於該目標合併長度。若步驟S75之判斷結果為是,步驟S76被執行,以選擇該目前資料之全部做為該目前合併資料。相對地,若步驟S75之判斷結果為否,步驟S77被執行,亦即選擇該目前資料之一部份做為該目前合併資料,且令該目前合併資料之長度等於該目標合併長度。
如圖九所示,於另一實施例中,若步驟S75之判斷結果為否,步驟S77除該目前資料之一部份做為該目前合併資料,更進一步選擇該目前資料中除該目前合併資料外之部分為一目前殘餘資料。在步驟S77完成後,除了步驟S71~步驟S73之外,步驟S78~步驟S79也會被執行。步驟S78為根據該目前合併資料之長度為該目前殘餘資料決定一第二目標移位量。步驟S79則是控制該N個殘餘桶狀移位器對該目前殘餘資料依序施以P次桶狀移位,以達成該第二目標移位量。
須說明的是,圖七~圖九所示之資料包裝方法亦可選擇性地納入先前討論資料包裝裝置時介紹的多種變化型態,其細節不再贅述。
如上所述,本發明提出一種新的資料包裝裝置及資料包裝方法。藉由將一高移位量拆解為多個較小的移位量,分別在不同階段達成,根據本發明之裝置及方法能達到等同於具高移位能力之單一桶狀移位器的移位效果。此外,藉由將位元流適當拆解為合併資料及殘餘資料,根據本發明之裝置及方法在接收、處理長位元流時,平均而言比直接使用具高移位能力的單一桶狀移位器更有效率。
藉由以上較佳具體實施例之詳述,係希望能更加清楚描述本發明之特徵與精神,而並非以上述所揭露的較佳具體實施例來對本發明之範疇加以限制。相反地,其目的是希望能涵蓋各種改變及具相等性的安排於本發明所欲申請之專利範圍的範疇內。
11...畫素區塊輸入模組
12...轉換/量化模組
13...游程長度編碼模組
14...可變長度編碼模組
15...位元流包裝模組
15A、15B...桶狀移位器
300、500...資料包裝裝置
34、54...控制模組
321、322、521、522...合併桶狀移位器
36、56...包裝模組
581、582...殘餘桶狀移位器
S71~S79...流程步驟
圖一為一影像編碼器方塊圖。
圖二(A)係用以表示兩個桶狀移位器的容量;圖二(B)係用以說明目前通用的位元流包裝機制。
圖三為根據本發明之一具體實施例中的資料包裝裝置之方塊圖。
圖四(A)~圖四(D)係用以說明根據本發明之控制模組如何控制兩個桶狀移位器對位元流施以桶狀移位。
圖五(A)為另一具體實施例中的資料包裝裝置之方塊圖;圖五(B)係用以表示資料包裝裝置中各儲存區域的相對位置。
圖六為根據本發明之資料包裝裝置在各週期中對位元流施以桶狀移位的範例。
圖七為根據本發明之另一具體實施例中的資料包裝方法之流程圖。
圖八為根據本發明之又一具體實施例中的資料包裝方法之流程圖。
圖九為根據本發明之更一具體實施例中的資料包裝方法之流程圖。
500...資料包裝裝置
521、522...合併桶狀移位器
581、582...殘餘桶狀移位器
54...控制模組
56...包裝模組
Claims (10)
- 一種資料包裝裝置,其接收一目前資料,包含:N個合併桶狀移位器,其中N為大於等於2之一整數;一控制模組,用以根據一先前殘餘資料之長度決定一第一目標移位量,並控制該N個合併桶狀移位器對一目前合併資料依序施以M次桶狀移位,以達成該第一目標移位量,其中M為小於等於N之一自然數;以及一包裝模組,用以合併該先前殘餘資料及經過該N個合併桶狀移位器之該目前合併資料為一預備包裝資料;其中該M次桶狀移位各自之一移位量皆小於一門檻值,該門檻值與一週期長度相關;該目前合併資料為該目前資料之一部份或全部。
- 如申請專利範圍第1項所述之資料包裝裝置,其中該N個合併桶狀移位器係以管道式結構串接,該包裝模組更於該預備包裝資料之長度等於一預設封包長度時,輸出該預備包裝資料;於該預備包裝資料小於該預設封包長度時,更新該預備包裝資料為該先前殘餘資料。
- 如申請專利範圍第1項所述之資料包裝裝置,其中若該目標移位量大於與一週期相關之一門檻值,則M係大於或等於2,且每一次該桶狀移位的一移位量被設定為小於或等於該門檻值。
- 如申請專利範圍第1項所述之資料包裝裝置,其中該先前殘餘資料之長度與一包裝資料量間之差異為一目標合併長度;該控制模組更用以判斷該目前資料之長度是否小於等於該目標合併長度,若判斷結果為是,該控制模組選擇該目前資料之全部做為該目前合併資料,若判斷結果為否,該控制模組選擇該目前資料之一部份做為該目前合併資料,且令該目前合併資料之長度等於該目標合併長度。
- 如申請專利範圍第4項所述之資料包裝裝置,其中若判斷結果為否,該控制模組更選擇該目前資料中除該目前合併資料外之部分為一目前殘餘資料;該資料包裝裝置進一步包含:N個殘餘桶狀移位器;其中該控制模組根據該目前合併資料之長度決定一第二目標移位量,並控制該N個殘餘桶狀移位器對該目前殘餘資料依序施以P次桶狀移位,以達成該第二目標移位量,其中P為小於等於N之一自然數;該P次桶狀移位各自之一最大移位量皆小於該門檻值。
- 一種資料包裝方法,用以接收一目前資料配合N個合併桶狀移位器運作,N為大於等於2之一整數,該方法包含:(a)根據一先前殘餘資料之長度決定一第一目標移位量;(b)控制該N個合併桶狀移位器對一目前合併資料依序施以M次桶狀移位,以達成該第一目標移位量,其中M為小於等於N之一自然數;以及(c)合併該先前殘餘資料及經過該N個合併桶狀移位器之該目前合併資料為一預備包裝資料;其中該M次桶狀移位各自之一移位量皆小於一門檻值,該門檻值與一週期長度相關;該目前合併資料為該目前資料之一部份或全部。
- 如申請專利範圍第6項所述之資料包裝方法,該N個合併桶狀移位器係以管道式結構串接,更包含於該預備包裝資料之長度等於一預設封包長度時,輸出該預備包裝資料;以及於該預備包裝資料小於該預設封包長度時,更新該預備包裝資料為該先前殘餘資料。
- 如申請專利範圍第6項所述之資料包裝方法,其中若該目標移位量大於與一週期相關之一門檻值,則M係大於或等於2,且每一次該桶狀移位的一移位量被設定為小於或等於該門檻值。
- 如申請專利範圍第6項所述之資料包裝方法,於步驟(a)之前進一步包含:計算該先前殘餘資料之長度與一包裝資料量間之差異,做為一目標合併長度;判斷該目前資料之長度是否小於等於該目標合併長度;若判斷結果為是,選擇該目前資料之全部做為該目前合併資料;以及若判斷結果為否,選擇該目前資料之一部份做為該目前合併資料,且令該目前合併資料之長度等於該目標合併長度。
- 如申請專利範圍第9項所述之資料包裝方法,進一步配合N個殘餘桶狀移位器且包含:若判斷結果為否,選擇該目前資料中除該目前合併資料外之部分為一目前殘餘資料;根據該目前合併資料之長度決定一第二目標移位量;以及控制該N個殘餘桶狀移位器對該目前殘餘資料依序施以P次桶狀移位,以達成該第二目標移位量,其中P為小於等於N之一自然數;該P次桶狀移位各自之一最大移位量皆小於該門檻值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101103159A TWI455020B (zh) | 2012-01-31 | 2012-01-31 | 資料包裝裝置及資料包裝方法 |
US13/565,932 US8723704B2 (en) | 2012-01-31 | 2012-08-03 | Apparatus and method for data packing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101103159A TWI455020B (zh) | 2012-01-31 | 2012-01-31 | 資料包裝裝置及資料包裝方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201331827A TW201331827A (zh) | 2013-08-01 |
TWI455020B true TWI455020B (zh) | 2014-10-01 |
Family
ID=48869740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101103159A TWI455020B (zh) | 2012-01-31 | 2012-01-31 | 資料包裝裝置及資料包裝方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8723704B2 (zh) |
TW (1) | TWI455020B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5339077A (en) * | 1992-08-18 | 1994-08-16 | Idaho Research Foundation, Inc. | Comma code generator |
TW379301B (en) * | 1997-08-05 | 2000-01-11 | Hitachi Ltd | Data processor and data processing method |
US6694423B1 (en) * | 1999-05-26 | 2004-02-17 | Infineon Technologies North America Corp. | Prefetch streaming buffer |
TW200404229A (en) * | 2002-04-19 | 2004-03-16 | Microsoft Corp | Methods and systems for preventing start code emulation at locations that include non-byte aligned and/or bit-shifted positions |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4467444A (en) * | 1980-08-01 | 1984-08-21 | Advanced Micro Devices, Inc. | Processor unit for microcomputer systems |
US6552730B1 (en) * | 1984-10-05 | 2003-04-22 | Hitachi, Ltd. | Method and apparatus for bit operational process |
-
2012
- 2012-01-31 TW TW101103159A patent/TWI455020B/zh not_active IP Right Cessation
- 2012-08-03 US US13/565,932 patent/US8723704B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5339077A (en) * | 1992-08-18 | 1994-08-16 | Idaho Research Foundation, Inc. | Comma code generator |
TW379301B (en) * | 1997-08-05 | 2000-01-11 | Hitachi Ltd | Data processor and data processing method |
US6694423B1 (en) * | 1999-05-26 | 2004-02-17 | Infineon Technologies North America Corp. | Prefetch streaming buffer |
TW200404229A (en) * | 2002-04-19 | 2004-03-16 | Microsoft Corp | Methods and systems for preventing start code emulation at locations that include non-byte aligned and/or bit-shifted positions |
Also Published As
Publication number | Publication date |
---|---|
US20130194113A1 (en) | 2013-08-01 |
TW201331827A (zh) | 2013-08-01 |
US8723704B2 (en) | 2014-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4002028B2 (ja) | イメージデータ圧縮装置及び方法並びにイメージ処理システム | |
KR101389820B1 (ko) | 원격 디스플레이에 이미지들을 렌더링하기 위한 모션 추정 및 메타데이터의 델타 압축 및 수정의 인에이블 | |
KR102033229B1 (ko) | 픽셀 전처리 및 인코딩 | |
US20050140529A1 (en) | Variable length coding apparatus and variable length coding method | |
US10699671B2 (en) | Pixel processing with color component | |
US20110038408A1 (en) | Method and system for processing of images | |
JP3976353B2 (ja) | ディジタル・カメラ | |
US6950151B1 (en) | Device for changing channels in a digital television reception system | |
CN107018415A (zh) | 一种基于双码流输出视频数据的方法和装置 | |
TWI455020B (zh) | 資料包裝裝置及資料包裝方法 | |
CN104639834A (zh) | 一种摄像头图像数据传输的方法及系统 | |
CN103247344B (zh) | 数据包装装置及数据包装方法 | |
JPH0865171A (ja) | データ伸長装置、データ伸長方法、デコーディング装置、デコーディング方法、リアルタイムビデオ装置、エンコーディング装置、及びエントロピー・デコーダ | |
KR20200097269A (ko) | 이미지 처리하기 | |
WO2022224053A1 (en) | Method, apparatus and computer program product for signaling information of a media track | |
JP6135490B2 (ja) | 動画画像処理システムおよび動画画像処理方法 | |
JP2012191362A (ja) | 画像処理装置及び画像処理方法 | |
JP6990172B2 (ja) | Hdr符号化/復号のための色成分サンプルの共に配置される輝度サンプルの決定 | |
Jeon et al. | Implementation of a video streaming security system for smart device | |
CN108307201A (zh) | 无线显示子系统和片上系统 | |
JP6405667B2 (ja) | データ復元装置、およびデータ生成方法 | |
TW202112076A (zh) | 用於編碼資料的方法、編碼裝置及非暫時性電腦可讀儲存媒體 | |
JP2013176157A (ja) | 画像圧縮装置 | |
CN102132569A (zh) | 图像编码装置、图像编码方法和摄像系统 | |
JP2007006161A (ja) | 映像信号の符号化/復号システム及び符号化/復号方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees | ||
MM4A | Annulment or lapse of patent due to non-payment of fees |