專利名稱::流水線系數(shù)可變長度編碼的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及可變長度編碼,更具體而言涉及用于視頻編解碼器的系數(shù)可變長度編碼。
背景技術(shù):
:例如移動電話、數(shù)碼相機(jī)和便攜式攝像機(jī)的便攜設(shè)備要處理具有比以往更多的像素的運(yùn)動圖像數(shù)據(jù),并且例如在相同的能耗下,要求更高的計算能力。通常,視頻編解碼器包括處理單元,例如運(yùn)動估計器、運(yùn)動補(bǔ)償器、離散余弦轉(zhuǎn)換器、反離散余弦轉(zhuǎn)換器、量化器、反量化器、可變長度編碼器和可變長度解碼器。在這些處理單元中,可變長度編碼器和可變長度解碼器對輸入數(shù)據(jù)具有高度依賴性,并且不容易以有效的硬件配置來實(shí)現(xiàn)。當(dāng)前,隨著多媒體設(shè)備的運(yùn)動圖像數(shù)據(jù)數(shù)量的增加,實(shí)時視頻編解碼器應(yīng)當(dāng)在給定時間內(nèi)處理更多的數(shù)據(jù)??勺冮L度編碼器需要一個比特一個比特地進(jìn)行操作,并且查詢多個查詢表,這樣需要高速硬件用于可變長度編碼器。特別地,系數(shù)可變長度編碼器基于系數(shù)數(shù)據(jù)執(zhí)行游程(run)長度編碼,以獲得游程數(shù)據(jù)、電平數(shù)據(jù)和最終數(shù)據(jù)(在下文中,統(tǒng)稱為“3-維值”),并且查詢查詢表以獲得相應(yīng)于3-維值的比特矢量。為了壓縮系數(shù)數(shù)據(jù),游程長度編碼方法檢查以8×8數(shù)據(jù)塊為單位的數(shù)據(jù);獲得游程、電平和最終數(shù)據(jù);為游程、電平和最終數(shù)據(jù)分配合適的可變比特矢量;將可變比特矢量累加到比特流中;并且隨后將比特流存儲到存儲器中。游程數(shù)據(jù)表示在非零值出現(xiàn)之前先前連續(xù)的零的累加數(shù)量。電平數(shù)據(jù)表示當(dāng)出現(xiàn)非零值時數(shù)據(jù)塊的系數(shù)。最終數(shù)據(jù)表示8×8塊的結(jié)尾。上述處理是通過從存儲器中取出系數(shù)數(shù)據(jù),查詢查詢表(referencetable)和將比特矢量存儲和傳送到存儲器或其他設(shè)備中完成的。這樣,該處理需要多個時鐘周期,并且不可避免地需要流水線結(jié)構(gòu)。依賴于輸入的3-維值,在系數(shù)編碼過程中可能存在“溢出數(shù)據(jù)(escapedata)”,其不能通過查詢通用的查詢表來處理。當(dāng)流水線被這些溢出數(shù)據(jù)中斷(break)時,由于需要地址指針后轉(zhuǎn)以恢復(fù)3-維值,所以修復(fù)將會很耗時。通常需要當(dāng)前的系數(shù)數(shù)據(jù)和連續(xù)的系數(shù)數(shù)據(jù),以獲得3-維值中的最終數(shù)據(jù),這樣由于流水線被中斷,所以將會消耗許多時鐘周期以恢復(fù)先前的3-維值。因此,期望最小化用于在溢出數(shù)據(jù)出現(xiàn)時執(zhí)行編碼處理的時鐘周期的浪費(fèi),所述溢出數(shù)據(jù)在流水線被中斷時,不能使用通用的查詢表處理。
發(fā)明內(nèi)容本發(fā)明的示例性實(shí)施例提供了一種具有4級流水線的系數(shù)可變長度編碼方法,其能夠在流水線被中斷時減少用于恢復(fù)流水線的處理時間。本發(fā)明的另一個示例性實(shí)施例提供了一種具有4級流水線的系數(shù)可變長度編碼器,其能夠在流水線被中斷時減少用于恢復(fù)流水線的處理時間。在一個示例性實(shí)施例中,具有并行的4級流水線操作的系數(shù)可變長度編碼方法包括在第一時鐘周期期間對系數(shù)數(shù)據(jù)執(zhí)行游程長度編碼以獲得包括游程數(shù)據(jù)、電平數(shù)據(jù)和最終數(shù)據(jù)的第一3-維值,在第二時鐘周期期間傳送第一3-維值,在第三時鐘周期期間基于傳送的第一3-維值獲得可變比特矢量,并且在第四時鐘周期期間存儲該可變比特矢量。在另一個示例性實(shí)施例中,具有4級流水線操作的系數(shù)可變長度編碼器包括游程長度編碼器(RLC),被配置成在第一時鐘周期期間對從存儲器接收的系數(shù)數(shù)據(jù)執(zhí)行游程長度編碼以獲得包括游程數(shù)據(jù)、電平數(shù)據(jù)和最終數(shù)據(jù)的第一3-維值,并在第二時鐘周期期間傳送第一3-維值;以及可變長度編碼器(VLC),被配置成在第三時鐘周期期間基于傳送的第一3-維值來獲得可變比特矢量,并在第四時鐘周期期間存儲該可變比特矢量。在另一個示例性實(shí)施例中,具有4級流水線的、用于視頻編解碼器的可變長度編碼器包括內(nèi)部存儲器,用于存儲運(yùn)動矢量和系數(shù)數(shù)據(jù);宏塊信息可變長度編碼器,被配置成對信息執(zhí)行可變長度編碼,并將編碼的信息傳送到內(nèi)部存儲器中以進(jìn)行存儲,該信息包括宏塊類型和非零數(shù)據(jù)存在性;直流(DC)值差分脈碼調(diào)制(DPCM)編碼器,被配置成從內(nèi)部存儲器接收第一塊的第一DC值,和對第一DC值和包圍第一塊的第二塊的第二DC值之間的DC值差值來執(zhí)行DPCM編碼,并將DPCM編碼結(jié)果傳送到內(nèi)部存儲器中以進(jìn)行存儲;運(yùn)動矢量DPCM可變編碼器,被配置成從內(nèi)部存儲器接收運(yùn)動矢量以對運(yùn)動矢量差值執(zhí)行第一可變長度編碼,并將可變長度編碼結(jié)果傳送到內(nèi)部存儲器中以進(jìn)行存儲;系數(shù)可變長度編碼器,被配置成從內(nèi)部存儲器接收系數(shù)數(shù)據(jù),對系數(shù)數(shù)據(jù)執(zhí)行系數(shù)可變長度編碼,并將系數(shù)可變長度編碼數(shù)據(jù)存儲在內(nèi)部存儲器中;直接存儲器存取(DMA),被配置成將存儲在內(nèi)部存儲器中的編碼數(shù)據(jù)傳送到外部存儲器中;以及可變長度編碼器控制器,被配置成基于控制信號控制宏塊信息可變長度編碼器、DC值DPCM編碼器、運(yùn)動矢量DPCM可變長度編碼器、系數(shù)可變長度編碼器和DMA;其中,系數(shù)可變長度編碼器包括游程長度編碼器(RLC),被配置成在第一時鐘周期期間對從內(nèi)部存儲器接收的系數(shù)數(shù)據(jù)執(zhí)行游程長度編碼以獲得包括游程數(shù)據(jù)、電平數(shù)據(jù)和最終數(shù)據(jù)的第一3-維值,并在第二時鐘周期期間傳送第一3-維值;以及可變長度編碼器(VLC),被配置成在第三時鐘周期期間基于傳送的第一3-維值獲得可變比特矢量,并在第四時鐘周期期間存儲該可變比特矢量。通過參考附圖對示例性實(shí)施例進(jìn)行詳細(xì)描述,本發(fā)明的上述和其它特征和優(yōu)勢將變得更明顯,其中圖1是說明根據(jù)本發(fā)明的示例性實(shí)施例的系數(shù)可變長度編碼器的框圖;圖2是說明根據(jù)本發(fā)明的另一個示例性實(shí)施例的、用于圖1中的系數(shù)可變長度編碼器的4級流水線結(jié)構(gòu)的框圖;圖3A是說明圖1中的RLC的狀態(tài)轉(zhuǎn)移圖;圖3B是說明圖1中的VLC的狀態(tài)轉(zhuǎn)移圖;圖4是說明根據(jù)本發(fā)明的示例性實(shí)施例的、圖1中的系數(shù)可變長度編碼器的流水線操作的時序圖;圖5是說明圖1中的VLC的乒乓緩沖器的框圖;圖6是說明具有圖1中的系數(shù)可變長度編碼器的可變長度編碼器的框圖;和圖7是用于圖6中的可變長度編碼器的流程圖。具體實(shí)施例方式在這里公開了本發(fā)明的詳細(xì)說明的實(shí)施例。在這里公開的特定結(jié)構(gòu)和功能細(xì)節(jié)僅僅是為了說明本發(fā)明的示例性實(shí)施例。但是,本發(fā)明可以被具體化為多種替換形式,并且不應(yīng)被解釋為限于在這里所描述的實(shí)施例。因此,雖然本發(fā)明容許多種變形和替代形式,但是通過附圖中的例子的形式示出了本發(fā)明的特定實(shí)施例,并且將在本文中進(jìn)行詳細(xì)描述。應(yīng)當(dāng)理解不欲將本發(fā)明限制為所公開的特定形式,而是本發(fā)明要涵蓋所有落入如由權(quán)利要求所定義的本發(fā)明的精神和范圍之內(nèi)的變形、等價物和替代。相同的附圖標(biāo)記可以用于指示相同的元件。應(yīng)當(dāng)注意在一些可替代的實(shí)現(xiàn)中,在方框中標(biāo)注的功能/動作可以不按照在流程圖中標(biāo)注的順序發(fā)生。例如,依賴于所涉及的功能/動作,實(shí)際上可以基本上同時地執(zhí)行兩個連續(xù)示出的方框,或者有時可能以相反的順序執(zhí)行這些方框。圖1是說明根據(jù)本發(fā)明的示例性實(shí)施例的、通常由附圖標(biāo)記100指示的系數(shù)可變長度編碼器的框圖。參照圖1,系數(shù)可變長度編碼器100包括游程長度編碼器(RLC)110、可變長度編碼器(VLC)120以及存儲器130。RLC110從存儲器130接收系數(shù)數(shù)據(jù),并對系數(shù)數(shù)據(jù)執(zhí)行游程長度編碼,以產(chǎn)生3-維值,并且將3-維值和索引一起傳送到VLC120。3-維值包括游程長度數(shù)據(jù)、電平數(shù)據(jù)和最終數(shù)據(jù)。特別地,RLC110包括用于存儲3-維值的3-維值存儲緩沖器113,所述3-維值在給定時鐘周期期間與相應(yīng)的索引一起被傳送到VLC120。例如,3-維值存儲緩沖器113最多可以存儲4個3-維值。換句話說,3-維值存儲緩沖器113可以存儲4個時鐘周期的3-維值。這是由于RLC110需要大約4個時鐘周期來處理3-維值的溢出。在這4個時鐘周期期間,RLC110獲得3-維值,以將獲得的3-維值傳送到VLC120,并當(dāng)VLC120不能在通用的查詢表(即,AC表1和AC表2)中找到3-維值時,VLC120產(chǎn)生溢出信號。當(dāng)VLC120不能在通用的查詢表中找到3-維值從而發(fā)生溢出且流水線中斷時,RLC110不對獲得的3-維值重復(fù)游程長度編碼,而是在VLC120處理溢出時,重新使用先前存儲在3-維值存儲緩沖器113中的3-維值。圖1中示出的RLC110包括3-維值存儲緩沖器113、RLC控制器111、地址發(fā)生器115、和游程-電平-最終檢驗(yàn)器117。當(dāng)游程長度編碼處理開始時,RLC控制器111向地址發(fā)生器115提供地址發(fā)生信號ADDR_GEN。地址發(fā)生器產(chǎn)生指示將從存儲器130中讀取的系數(shù)數(shù)據(jù)的地址ADDR。存儲器130將相應(yīng)于地址ADDR的系數(shù)數(shù)據(jù)輸出到游程-電平-最終檢驗(yàn)器117。當(dāng)系數(shù)數(shù)據(jù)非零時,游程-電平-最終檢驗(yàn)器117產(chǎn)生3-維值RLC_VAL,并將3-維值RLC_VAL傳送到RLC控制器111。RLC控制器111從游程-電平-最終檢驗(yàn)器117接收3-維值,并判斷3-維值RLC_VAL是否是直流(DC)分量。當(dāng)3-維值RLC_VAL是DC分量時,RLC控制器111激活DC信號IS_DC,并將3-維值RLC_VAL通過信號路徑RUN_LEVEL_LAST傳送到VLC120。當(dāng)3-維值RLC_VAL不是DC分量時,RLC控制器111去激活DC信號IS_DC,并將3-維值RLC_VAL通過信號路徑RUN_LEVEL_LAST傳送到VLC120。同時通過信號路徑CURR_INDEX一起傳送索引。索引可能具有從1到4的范圍內(nèi)的值,其表示最多存儲四個3-維值RLC_VAL的3-維值存儲緩沖器113的位置。RLC控制器111在3-維值存儲緩沖器113中存儲3-維值,以通過信號路徑BUF_VAL讀取3-維值,并將索引存儲在3-維值存儲緩沖器113中以通過信號路徑BUF_INDEX讀取該索引。因此,圖1中的RLC110在每個時鐘重復(fù)產(chǎn)生存儲器地址ADDR,并且產(chǎn)生相應(yīng)于非零系數(shù)的3-維值,以輸出產(chǎn)生的3-維值以及索引。只要產(chǎn)生了3-維值,RLC110就在3-維值存儲緩沖器113的位置中存儲3-維值。3-維值存儲緩沖器113的位置對應(yīng)于索引。在下文中,將在VLC120中發(fā)生溢出信號ESC_SIG的情況下說明RLC110的操作。當(dāng)發(fā)生溢出信號ESC_SIG時,RLC控制器111通過將溢出索引ESC_INDEX和存儲在3-維值存儲緩沖器113中的當(dāng)前索引進(jìn)行比較,檢查是否在3-維值存儲緩沖器113中在導(dǎo)致溢出信號的3-維值之后存儲了另一個3-維值。當(dāng)溢出索引等于當(dāng)前索引時,其指示在導(dǎo)致溢出信號ESC_SIG的3-維值之后沒有存儲3-維值。另外,不等于當(dāng)前索引的溢出索引指示在導(dǎo)致溢出信號ESC_SIG的3-維值之后可能存儲了一些3-維值。當(dāng)溢出索引大于當(dāng)前索引時,在處理了溢出操作之后,將從對應(yīng)于一個索引(例如,當(dāng)前索引+1)的3-維值至對應(yīng)于溢出索引的3-維值的3-維值再次從RLC110傳送到VLC120。當(dāng)溢出索引小于當(dāng)前索引時,傳送從對應(yīng)于該索引(即,當(dāng)前索引+1)的3-維值至對應(yīng)于索引4的3-維值的3-維值,并且隨后傳送從對應(yīng)于索引1的3-維值至對應(yīng)于溢出索引的3-維值的3-維值。RLC控制器111通過指示溢出發(fā)生的信號路徑ESC_OCCUR通知地址發(fā)生器115發(fā)生了溢出。當(dāng)存在一些在導(dǎo)致溢出信號ESC_SIG的3-維值之后存儲到3-維值存儲緩沖器113中的3-維值時,RLC控制器111在去激活溢出信號之后的每個時鐘周期將這些3-維值傳送到VLC120。RLC控制器111將存儲在3-維值存儲緩沖器113中的最終3-維值傳送到VLC120,并同時產(chǎn)生一個新的地址發(fā)生信號ADDR_GEN,以由此重新啟動系數(shù)數(shù)據(jù)的讀取。VLC120從RLC110接收DC信號IS_DC、游程-電平-最終信號RUN_LEVEL_LAST,以及當(dāng)前索引信號CURR_INDEX。當(dāng)通過游程-電平-最終信號RUN_LEVEL_LAST接收3-維值時,VLC120基于DC信號IS_DC檢查3-維值是否是DC值。當(dāng)3-維值是DC值時,VLC120查詢DC表122并且將對應(yīng)于接收的3-維值的一個比特矢量存儲到存儲器中。否則,VLC120查詢AC表1123或者AC表2124,并且將對應(yīng)于接收的3-維值的一個可變比特矢量存儲到乒乓緩沖器127中。在VLC120中的VLC控制器121利用搜索信號VAL_RLC在查詢表(例如,AC表)中搜索3-維值。當(dāng)在AC表1123和AC表2124中沒有發(fā)現(xiàn)該3-維值時,發(fā)生溢出,VLC控制器121產(chǎn)生溢出信號ESC_SIG,并在下一個時鐘周期使用電平溢出表(level-escapetable)125執(zhí)行電平溢出處理。當(dāng)正確執(zhí)行了電平溢出處理之后,VLC控制器121將對應(yīng)的比特矢量傳送到乒乓緩沖器127中,并且去激活溢出信號ESC_SIG。但是,當(dāng)沒有正確執(zhí)行電平溢出處理時,VLC控制器121使用游程溢出表126執(zhí)行游程溢出處理,并且保持溢出信號ESC_SIG激活。當(dāng)正確執(zhí)行游程溢出處理時,VLC控制器121將對應(yīng)的比特矢量傳送到乒乓緩沖器127中,并且去激活溢出信號ESC_SIG。但是,當(dāng)沒有正確執(zhí)行游程溢出處理時,VLC控制器121執(zhí)行固定比特編碼,保持溢出信號ESC_SIG激活。在完成固定比特編碼之后,VLC控制器121去激活溢出信號ESC_SIG。在搜索查詢表之后產(chǎn)生的輸出信號ESC_BITVAL_LENGTH可能包括表示溢出是否發(fā)生、比特矢量和比特矢量長度等等的信息。在接收到來自查詢表的比特矢量之后,VLC控制器121輸出比特矢量信號BITVEC_LENGTH到乒乓緩沖器127,以將比特矢量存儲到乒乓緩沖器127中。比特矢量信號BITVEC_LENGTH可能包括比特矢量和比特矢量長度等等。乒乓緩沖器127累加接收到的比特矢量,并且輸出存儲信號ADDR_DATA,以便以給定比特數(shù)量為單位將比特矢量存儲到存儲器130中。存儲信號ADDR_DATA可包括將要存儲的地址和比特流。通過以給定比特數(shù)量為單位增加存儲器130的地址,乒乓緩沖器127有效地起VLC120和存儲器130之間的緩沖器的作用。下面將詳細(xì)地描述乒乓緩沖器127。圖2是說明根據(jù)本發(fā)明實(shí)施例的、用于圖1中的系數(shù)可變長度編碼器的4級流水線結(jié)構(gòu)的框圖。參考圖2,圖1的系數(shù)可變長度編碼器100執(zhí)行四級流水線操作,其通常以附圖標(biāo)記200指示。四級流水線操作200包括用于獲得3-維值的GEN級,用于傳送獲得的3-維值的TRANSFER級,通過使用傳送的3-維值獲得可變比特矢量的PROCESS級,以及用于將可變比特矢量存儲到存儲器中的BITS_GEN級。為了執(zhí)行流水線操作,圖1中的系數(shù)可變長度編碼器100在一個時鐘周期中可以從內(nèi)部存儲器中讀取系數(shù)數(shù)據(jù),并且將可變比特流存儲到內(nèi)部存儲器中。通過查詢對應(yīng)于3-維值的查詢表獲得可變比特矢量需要很多時間。例如,查詢表可以被實(shí)現(xiàn)為邏輯門型表,以便在一個時鐘周期內(nèi)進(jìn)行處理。邏輯門型表由邏輯電路實(shí)現(xiàn)。例如,邏輯門型表可以包括MPEG-4內(nèi)(intra)系數(shù)表、MPEG-4間(inter)系數(shù)表、游程溢出表和電平溢出表。因此,在接收了3-維值之后,對應(yīng)于3-維值的比特矢量僅在一個時鐘周期中可用。圖3A是說明圖1的RLC110的狀態(tài)轉(zhuǎn)移圖,其通常由附圖標(biāo)記300指示。參照圖3A,圖1中的RLC110在空閑狀態(tài)IDLE啟動游程長度編碼操作,并且轉(zhuǎn)移到地址產(chǎn)生狀態(tài)ADR_GEN,其中RLC110分配存儲器地址,并且從內(nèi)部存儲器中讀取系數(shù)數(shù)據(jù)。在系數(shù)數(shù)據(jù)包括DC系數(shù)的情況下,RLC110轉(zhuǎn)移到DC傳送狀態(tài)DC_SET,以便使用其它系數(shù)不同地處理DC系數(shù)。在系數(shù)數(shù)據(jù)不包括DC系數(shù)或者由于傳送DC系數(shù)而導(dǎo)致系數(shù)數(shù)據(jù)中僅剩余AC系數(shù)的情況下,RLC110轉(zhuǎn)移到AC傳送狀態(tài)ADDRST,其中RLC110獲得新的3-維值,將新的3-維值傳送到VLC120,并且隨后在給定時鐘周期中將新的3-維值存儲到對應(yīng)于索引的存儲器地址中。在AC傳送狀態(tài)ADDRST中,RLC110重復(fù)地獲得3-維值,將3-維值與索引傳送到VLC120,并且隨后產(chǎn)生下一個內(nèi)部存儲器地址。由于直到溢出發(fā)生流水線不會中斷,所以RLC110能夠執(zhí)行高速可變長度編碼。當(dāng)在AC傳送狀態(tài)ADDRST期間從VLC120接收到激活的溢出信號ESC_SIG時,RLC110轉(zhuǎn)移回地址產(chǎn)生狀態(tài)ADR_GEN,其中當(dāng)去激活溢出信號ESC_SIG時,RLC110再次傳送先前在對應(yīng)于溢出索引的3-維值之后存儲的3-維值。當(dāng)在DC傳送狀態(tài)DC_SET中將DC系數(shù)傳送到VLC120之后沒有剩余AC系數(shù)或者所有的系數(shù)都被傳送到了VLC120時,RLC110轉(zhuǎn)移到最終狀態(tài)LASTST,并且隨之結(jié)束游程長度編碼操作。接下來,說明圖3A中的信號,DCDATAEN信號表示系數(shù)數(shù)據(jù)包含DC系數(shù)。DCONLYDATA信號表示包含DC系數(shù)的系數(shù)數(shù)據(jù)僅僅包括DC系數(shù)而沒有AC系數(shù)。ACEXIT表示包含DC系數(shù)的系數(shù)數(shù)據(jù)包括AC系數(shù)。ESC_SIG信號表示溢出發(fā)生在VLC120中。LASTCHECK信號表示RLC處理結(jié)束。ESC_SIG是外部提供的,而其它信號是在RLC120中產(chǎn)生和使用的。圖3B是說明圖1的VLC120的狀態(tài)轉(zhuǎn)移圖,其通常由附圖標(biāo)記350指示。參照圖3B,圖1中的VLC120在空閑狀態(tài)IDLE啟動一個可變長度編碼操作,并且轉(zhuǎn)移到檢查狀態(tài)CHECKST,其中VLC120從RLC110接收3-維值和索引,查詢查詢表以搜索對應(yīng)于3-維值的可變比特矢量,然后將可變比特矢量存儲在存儲器中。當(dāng)發(fā)生不能通過通用查詢表處理的溢出的情況下,VLC120激活溢出信號ESC_SIG,轉(zhuǎn)移至第一溢出狀態(tài)ESC1,并對電平數(shù)據(jù)執(zhí)行電平溢出處理。當(dāng)在第一溢出狀態(tài)ESC1中的電平溢出處理失敗時,VLC120轉(zhuǎn)移至第二溢出狀態(tài)ESC2,并對游程數(shù)據(jù)執(zhí)行游程溢出處理。當(dāng)在第二溢出狀態(tài)ESC2中的游程溢出處理失敗時,VLC120轉(zhuǎn)移至第三溢出狀態(tài)ESC3,并執(zhí)行固定比特編碼。當(dāng)在第一溢出狀態(tài)ESC1或第二溢出狀態(tài)ESC2中溢出處理成功時,或當(dāng)在第三溢出狀態(tài)ESC3完成固定比特編碼時,則VLC120去激活溢出信號ESC_SIG并轉(zhuǎn)移到溢出處理完成狀態(tài)ESC_PROC,以便存儲獲得的比特矢量。在溢出處理完成狀態(tài)ESC_PROC中存儲了比特矢量之后,VLC120轉(zhuǎn)移到檢查狀態(tài)CHECKST。然而,當(dāng)LAST數(shù)據(jù)等于1時,VLC120轉(zhuǎn)移到完成狀態(tài)LASTST,并且隨后完成可變長度編碼操作。當(dāng)VLC120進(jìn)入到第一溢出狀態(tài)ESC1時,VLC120通過發(fā)送溢出信號ESC_SIG通知RLC110需要附加的時鐘周期,以便RLC110轉(zhuǎn)移到地址產(chǎn)生狀態(tài)ADR_GEN。同時,VLC120通過發(fā)送溢出索引ESC_INDEX通知RLC110發(fā)生溢出的索引,以便RLC110不再對在RLC110執(zhí)行溢出操作時獲得的3-維值執(zhí)行游程長度編碼,而是將先前存儲的3-維值傳送到VLC120中。這樣,當(dāng)流水線被中斷時,時鐘周期的浪費(fèi)將會被最小化。由于RLC110處于地址產(chǎn)生狀態(tài)ADR_GEN,所以流水線處理重新啟動。接下來,說明圖3B中的信號。GETRUNLEVELLAST信號表示VLC120重復(fù)地從RLC110接收數(shù)據(jù)。ESC_SIG信號表示VLC120在通用查詢表中不能找到接收的3-維值,或者發(fā)生了溢出。ESC_SIG信號也被傳送至RLC110,并且RLC110等待直到響應(yīng)于ESC_SIG信號結(jié)束溢出狀態(tài)。ONLYLEVELESCAPE信號表示溢出狀態(tài)是電平溢出。ONLYRUNESCAPE信號表示溢出狀態(tài)是游程溢出。CHECKLAST信號表示在接收的3-維值中的最終數(shù)據(jù)信號等于1。ESC_SIG是外部提供的,而其它信號是在VLC中產(chǎn)生和使用的。圖4是說明根據(jù)本發(fā)明示例性實(shí)施例的、圖1的系數(shù)可變長度編碼器100的流水線操作的時序圖,其通常由附圖標(biāo)記400指示。參照圖4,圖4中的時序圖的垂直軸表示4級流水線操作的每一級。因此,圖4說明了4級流水線操作的連續(xù)編碼操作,其包括用于獲得3-維值的GEN級,用于傳送獲得的3-維值的TRANSFER級,用于通過使用傳送的3-維值獲得可變比特矢量的PROCESS級,以及將比特矢量作為比特流存儲到內(nèi)部存儲器中的BITS_GEN級。在GEN級,系數(shù)可變長度編碼器連續(xù)獲得第一3-維值(步驟GEN_A)、第二3-維值(步驟GEN_B)、第三3-維值(步驟GEN_C),并且在經(jīng)過一個時鐘周期之后,系數(shù)可變長度編碼器連續(xù)獲得第四3-維值(步驟GEN_D)和第五3-維值(步驟GEN_E)。當(dāng)系數(shù)數(shù)據(jù)都是零時,經(jīng)過了一個時鐘周期,因此,如圖4所示,可能不是每個時鐘周期都獲得3-維值。在GEN級的步驟GEN_A中獲得第一3-維值之后,緊跟著傳送級TRANSFER。因此,在對應(yīng)的GEN級之后晚一個時鐘,傳送級TRANSFER開始。當(dāng)流水線沒有中斷時,在傳送級TRANSFER之后晚一個時鐘處理級PROCESS開始。因此,在傳送步驟TX_A和TX_B之后晚一個時鐘分別執(zhí)行獲得關(guān)于第一和第二3-維值的可變比特矢量的步驟PROC_A和PROC_B。在處理級PROCESS之后晚一個時鐘,將可變比特矢量作為比特流存儲到內(nèi)部存儲器中的BITS_GEN級開始。因此,在步驟PROC_A和PROC_B之后晚一個時鐘,分別執(zhí)行將可變比特矢量存儲到內(nèi)部存儲器中的步驟MAKE_BIT_A和MAKE_BIT_B。圖4中步驟GEN_C的第三3-維值表示溢出的出現(xiàn)。當(dāng)溢出是電平溢出時,用3個時鐘周期來獲得比特矢量,也就是說,一個時鐘周期用于確定是否在通用查詢表上發(fā)現(xiàn)該3-維值,另一個時鐘周期用于對電平數(shù)據(jù)執(zhí)行電平溢出處理,而再一個時鐘周期用于產(chǎn)生比特矢量。這三個時鐘的每一個可以分別與圖3B中狀態(tài)轉(zhuǎn)移圖的檢查狀態(tài)CHECKST、第一溢出狀態(tài)ESC1和溢出處理完成狀態(tài)ESC_PROC相匹配。因此,在產(chǎn)生對應(yīng)于電平溢出的比特矢量的3個時鐘周期之后,再一次通過步驟TX_D傳送GEN級中的步驟GEN_D的第四3-維值。根據(jù)本發(fā)明的該示例性實(shí)施例,當(dāng)傳送步驟GEN_D的第四3-維值時,系數(shù)可變長度編碼器不執(zhí)行游程長度編碼以獲得第四3-維值,而是重新使用先前存儲的第四3-維值。在處理第三3-維值的溢出操作的同時,獲得了兩個3-維值(步驟GEN_D和GEN_E)。在第三3-維值的溢出操作之后,將這兩個3-維值作為先前存儲的3-維值重新使用。在重傳兩個3-維值(步驟TX_D和步驟TX_E)之后,流水線處理操作重新啟動。如圖4中的大括號所示,游程數(shù)據(jù)的游程數(shù)據(jù)溢出操作比電平數(shù)據(jù)的電平溢出操作多需要一個時鐘,并且固定比特編碼比游程數(shù)據(jù)的游程數(shù)據(jù)溢出操作多需要一個時鐘。這是因?yàn)?,如圖3B中的狀態(tài)轉(zhuǎn)移圖350所示,游程數(shù)據(jù)溢出操作多經(jīng)過一個狀態(tài),即第二溢出狀態(tài)ESC2,而固定比特編碼多經(jīng)過兩個狀態(tài),即第二和第三溢出狀態(tài)ESC2和ESC3。因此,在游程數(shù)據(jù)溢出或固定比特編碼的情況下,GEN級在獲得比特矢量之后再次啟動。圖5是說明來自圖1的VLC的乒乓緩沖器127的框圖,其通常由附圖標(biāo)記500指示。VLC120具有乒乓緩沖器127,其中累加了比特矢量以便在內(nèi)部存儲器中以給定比特數(shù)量為單位存儲累加的比特矢量。參照圖5,乒乓緩沖器可以包括兩個32比特的緩沖器。首先在圖5中乒乓緩沖器的左邊的32比特緩沖器中存儲比特矢量,然后在右邊的32比特緩沖器中存儲比特矢量。隨著VLC120的編碼處理的進(jìn)行,將比特矢量在乒乓緩沖器中累加作為比特流。將比特矢量填充入左邊的32比特緩沖器。然后當(dāng)左邊的32比特緩沖器被比特矢量填滿時,在右邊的32比特緩沖器中連續(xù)累加比特矢量,并且將存儲在左邊的32比特緩沖器中的32比特流傳送到內(nèi)部存儲器中。以相同的方式,在右邊的32比特緩沖器中被比特矢量填滿之后,在左邊的32比特緩沖器中連續(xù)累加比特矢量,并且將存儲在右邊的32比特緩沖器中的32比特流傳送到內(nèi)部存儲器中。通過重復(fù)上述處理,乒乓緩沖器可以創(chuàng)建32比特流,并且將32比特流傳送到內(nèi)部存儲器中而無需附加的時鐘周期??梢钥煽氐卦O(shè)計一個比特指針,其指示在乒乓緩沖器中累加的當(dāng)前比特的位置以及在內(nèi)部存儲器中存儲的比特流的存儲器地址,以使得乒乓緩沖器可以產(chǎn)生比特流而無需附加的比特復(fù)制或比特重定位。圖6是說明具有圖1的系數(shù)可變長度編碼器100的可變長度編碼器的框圖,其通常由附圖標(biāo)記600指示。參照圖6,可變長度編碼器包括內(nèi)部存儲器610、宏塊信息可變長度編碼器620、DC值差分脈碼調(diào)制(DPCM)編碼器630、運(yùn)動矢量DPCM可變長度編碼器640、系數(shù)可變長度編碼器650、直接存儲器存取(DMA)660、以及可變長度編碼器控制器670。內(nèi)部存儲器610接收運(yùn)動矢量和系數(shù)數(shù)據(jù)等,以存儲運(yùn)動矢量和系數(shù)數(shù)據(jù)等。宏塊信息可變長度編碼器620對指示宏塊類型和非零數(shù)據(jù)存在性等的信息執(zhí)行可變長度編碼,并隨后將可變長度編碼的結(jié)果傳送到內(nèi)部存儲器610中。非零數(shù)據(jù)存在性表示非零數(shù)據(jù)是否存在。DC值DPCM編碼器630從內(nèi)部存儲器610接收第一塊的第一DC值,然后對第一塊的第一DC值和包圍第一塊的第二塊的第二DC值之間的差值執(zhí)行DPCM編碼,并隨后將DPCM編碼的結(jié)果傳送到內(nèi)部存儲器610。運(yùn)動矢量DPCM可變編碼器640從內(nèi)部存儲器610接收運(yùn)動矢量,其表示通過以宏塊或宏塊的子塊為單位比較第一塊和包圍第一塊的第二塊之間的相似性而獲得的運(yùn)動,并隨后對第一塊的運(yùn)動矢量和包圍第一塊的第二塊的運(yùn)動矢量之間的差值執(zhí)行差分編碼,由此將可變長度編碼的結(jié)果傳送到內(nèi)部存儲器610中。系數(shù)可變長度編碼器650從內(nèi)部存儲器610接收系數(shù)數(shù)據(jù),對系數(shù)數(shù)據(jù)執(zhí)行可變長度編碼以獲得比特流,并隨后將比特流存儲在內(nèi)部存儲器610中。系數(shù)可變長度編碼器650可以采用圖1中的系數(shù)可變長度編碼器,其執(zhí)行四級流水線操作,并且通過在發(fā)生溢出時重新使用先前獲得的3-維值來減少用于恢復(fù)中斷的流水線的時間。DMA660將內(nèi)部存儲器610中的數(shù)據(jù)發(fā)送到外部存儲器(未示出)。可變長度編碼器控制器670接收控制信號,并基于控制信號控制宏塊信息可變長度編碼器620、DC值DPCM編碼器630、運(yùn)動矢量DPCM可變長度編碼器640、系數(shù)可變長度編碼器650、以及DMA660。圖7是用于圖6的可變長度編碼器600的流程圖,其通常由附圖標(biāo)記700指示。參照圖7,圖6中的可變長度編碼器執(zhí)行與系數(shù)可變長度編碼處理并行的運(yùn)動矢量DPCM可變長度編碼處理。運(yùn)動矢量DPCM可變長度編碼處理在步驟S721確定該塊是否處于間模式(intermode)。在間模式情況下,在步驟S722執(zhí)行運(yùn)動矢量DPCM處理,并隨后在步驟S723執(zhí)行可變長度編碼處理。圖6中的可變長度編碼器同時執(zhí)行運(yùn)動矢量DPCM可變長度編碼處理和系數(shù)可變長度編碼處理。系數(shù)編碼處理以在步驟S711確定該塊是否處于內(nèi)模式(intramode)開始。在內(nèi)模式情況下,在步驟S712對包圍的DC值執(zhí)行DC值DPCM處理,然后連續(xù)執(zhí)行在步驟S713的游程長度編碼和在步驟S714的可變長度編碼。當(dāng)圖像不處于內(nèi)模式時,直接連續(xù)執(zhí)行在步驟S713的游程長度編碼和在步驟S714的可變長度編碼。接下來,系數(shù)編碼處理確定該編碼塊是否是宏塊的最終塊。當(dāng)編碼塊不是最終塊時,系數(shù)編碼處理跳到步驟S711,否則跳到步驟S731??勺冮L度編碼器確定系數(shù)可變長度編碼處理和運(yùn)動矢量DPCM可變長度編碼處理是否在步驟S731完成。然后在步驟S732創(chuàng)建宏塊報頭,并且在步驟S733存儲比特流數(shù)據(jù)。如上所述,根據(jù)本發(fā)明示例性實(shí)施例的系數(shù)可變長度編碼方法和系數(shù)可變長度編碼器采用了四級流水線操作。因此可變比特矢量是在每個時鐘周期創(chuàng)建的,由此提高系數(shù)可變編碼處理的速度。當(dāng)發(fā)生溢出并且流水線操作中斷時,系數(shù)可變長度編碼器不執(zhí)行游程長度編碼,而是將在處理溢出的同時創(chuàng)建的3-維值存儲到緩沖器中以重新傳送先前存儲的3-維值,以便于減少用于恢復(fù)流水線的處理時間。因此可以有效地執(zhí)行用于高分辯率運(yùn)動圖像數(shù)據(jù)的可變長度編碼。雖然已經(jīng)詳細(xì)描述了本發(fā)明的示例性實(shí)施例和相應(yīng)的優(yōu)點(diǎn),應(yīng)當(dāng)理解在不偏離由本發(fā)明所附權(quán)利要求定義的本發(fā)明的范圍的前提下可以做出多種改變、替換和變形。權(quán)利要求1.一種包括并行的4級流水線操作的系數(shù)可變長度編碼方法,包括在第一時鐘周期期間,對系數(shù)數(shù)據(jù)執(zhí)行游程長度編碼以獲得包括游程數(shù)據(jù)、電平數(shù)據(jù)和最終數(shù)據(jù)的第一3-維值;在第二時鐘周期期間,傳送該第一3-維值;在第三時鐘周期期間,基于傳送的第一3-維值獲得可變比特矢量;以及在第四時鐘周期期間,存儲該可變比特矢量。2.根據(jù)權(quán)利要求1的方法,其中基于對應(yīng)于第一3-維值的門型查詢表,獲得可變比特矢量。3.根據(jù)權(quán)利要求1的方法,其中所述傳送第一3-維值包括傳送對應(yīng)于第一3-維值的索引;以及在給定時鐘周期中存儲第一3-維值和索引,以及其中所述獲得可變比特矢量包括當(dāng)發(fā)生溢出時,重新使用具有對應(yīng)的索引的存儲的第一3-維值來獲得可變比特矢量,而不是對第二3-維值執(zhí)行游程長度編碼,該第二3-維值是在處理溢出操作的同時獲得的,并且當(dāng)在通用查詢表中沒有找到傳送的第一3-維值時處理溢出操作。4.根據(jù)權(quán)利要求3的方法,其中該給定時鐘周期對應(yīng)于4個時鐘周期。5.根據(jù)權(quán)利要求4的方法,其中系數(shù)可變長度編碼方法進(jìn)一步包括在傳送第二3-維值之后,重復(fù)四級流水級操作。6.一種用于執(zhí)行四級流水線操作的系數(shù)可變長度編碼器,包括游程長度編碼器(RLC),被配置成在第一時鐘周期期間對從存儲器接收的系數(shù)數(shù)據(jù)執(zhí)行游程長度編碼,以獲得包括游程數(shù)據(jù)、電平數(shù)據(jù)和最終數(shù)據(jù)的第一3-維值,以及在第二時鐘周期期間傳送該第一3-維值;以及可變長度編碼器(VLC),被配置成在第三時鐘周期期間基于傳送的第一3-維值獲得可變比特矢量,以及在第四時鐘周期期間存儲該可變比特矢量。7.根據(jù)權(quán)利要求6的系數(shù)可變長度編碼器,其中該RLC包括3-維值存儲緩沖器,其在給定時鐘周期期間將傳送的第一3-維值存儲在該3-維值存儲緩沖器的一個位置中,該位置與對應(yīng)于該傳送的第一3-維值的索引有關(guān)。8.根據(jù)權(quán)利要求7的系數(shù)可變長度編碼器,其中該給定時鐘周期對應(yīng)于4個時鐘周期。9.根據(jù)權(quán)利要求8的系數(shù)可變長度編碼器,其中該RLC輸出包括第一3-維值的游程-電平-最終信號、對應(yīng)于該游程-電平-最終信號的索引信號、以及指示該第一3-維值是否是DC值的DC信號,以便傳送該第一3-維值,并且從VLC接收溢出信號和溢出索引信號。10.根據(jù)權(quán)利要求9的系數(shù)可變長度編碼器,其中該VLC被配置成通過使用對應(yīng)于該第一3-維值的門型查詢表來獲得該可變比特矢量。11.根據(jù)權(quán)利要求10的系數(shù)可變長度編碼器,其中該VLC被配置成從該RLC接收游程-電平-最終信號、索引信號和DC信號,以及輸出溢出信號和溢出索引信號。12.根據(jù)權(quán)利要求11的系數(shù)可變長度編碼器,其中該VLC被配置成當(dāng)該VLC在通用查詢表中找不到該第一3-維值時激活該溢出信號,輸出包括對應(yīng)于該第一3-維值的索引的溢出索引信號,以及處理溢出操作。13.根據(jù)權(quán)利要求12的系數(shù)可變長度編碼器,其中當(dāng)激活該溢出信號時,該RLC被配置成通過使用該溢出索引信號來從該3-維值存儲緩沖器接收第二3-維值,并將該第二3-維值傳送到該VLC,該第二3-維值是在處理溢出操作時獲得的,并且當(dāng)在通用查詢表中沒有找到傳送的第一3-維值時處理該溢出操作。14.根據(jù)權(quán)利要求13的系數(shù)可變長度編碼器,其中該VLC包括用于累加該可變比特矢量以及以給定比特數(shù)量為單位將該可變比特矢量傳送到存儲器的乒乓緩沖器。15.一種用于視頻編解碼器的可變長度編碼器,該可變長度編碼器執(zhí)行四級流水線操作,該可變長度編碼器包括內(nèi)部存儲器,用于存儲運(yùn)動矢量和系數(shù)數(shù)據(jù);宏塊信息可變長度編碼器,被配置成對信息執(zhí)行可變長度編碼,并將編碼的信息傳送到內(nèi)部存儲器中以進(jìn)行存儲,該信息包括宏塊類型和非零數(shù)據(jù)存在性;直流(DC)值差分脈碼調(diào)制(DPCM)編碼器,被配置成從內(nèi)部存儲器接收第一塊的第一DC值,和對第一DC值和包圍第一塊的第二塊的第二DC值之間的DC值差值執(zhí)行DPCM編碼,并將DPCM編碼結(jié)果傳送到內(nèi)部存儲器中以進(jìn)行存儲;運(yùn)動矢量DPCM可變編碼器,被配置成從內(nèi)部存儲器接收運(yùn)動矢量以對運(yùn)動矢量差值執(zhí)行第一可變長度編碼,并將可變長度編碼結(jié)果傳送到內(nèi)部存儲器中以進(jìn)行存儲;系數(shù)可變長度編碼器,被配置成從內(nèi)部存儲器接收系數(shù)數(shù)據(jù),對系數(shù)數(shù)據(jù)執(zhí)行系數(shù)可變長度編碼,并將系數(shù)可變長度編碼數(shù)據(jù)存儲在內(nèi)部存儲器中;直接存儲器存取(DMA),被配置成將存儲在內(nèi)部存儲器中的編碼數(shù)據(jù)傳送到外部存儲器中;以及可變長度編碼器控制器,被配置成基于控制信號控制宏塊信息可變長度編碼器、DC值DPCM編碼器、運(yùn)動矢量DPCM可變長度編碼器、系數(shù)可變長度編碼器和DMA;其中,系數(shù)可變長度編碼器包括游程長度編碼器(RLC),被配置成在第一時鐘周期期間對從內(nèi)部存儲器接收的系數(shù)數(shù)據(jù)執(zhí)行游程長度編碼以獲得包括游程數(shù)據(jù)、電平數(shù)據(jù)和最終數(shù)據(jù)的第一3-維值,并在第二時鐘周期期間傳送該第一3-維值;以及可變長度編碼器(VLC),被配置成在第三時鐘周期期間基于傳送的第一3-維值獲得可變比特矢量,并在第四時鐘周期期間存儲該可變比特矢量。16.根據(jù)權(quán)利要求15的可變長度編碼器,其中運(yùn)動矢量DPCM可變編碼器和系數(shù)可變長度編碼器并行操作。17.根據(jù)權(quán)利要求16的可變長度編碼器,其中在給定時鐘周期期間,RLC將第一3-維值存儲在內(nèi)部存儲器的一個位置中,該位置于對應(yīng)于一個索引。18.根據(jù)權(quán)利要求17的可變長度編碼器,其中該VLC被配置成當(dāng)該VLC在通用查詢表中沒有找到該第一3-維值時激活溢出信號,并輸出包括對應(yīng)于該第一3-維值的索引的溢出索引信號。19.根據(jù)權(quán)利要求18的可變長度編碼器,其中當(dāng)激活溢出信號時,該RLC被配置成通過使用溢出索引信號來從3-維值存儲緩沖器接收第二3-維值,并且將該第二3-維值傳送到該VLC中,該第二3-維值是在處理溢出操作時獲得的,并且當(dāng)在通用查詢表中沒有發(fā)現(xiàn)傳送的第一3-維值時處理該溢出操作。20.根據(jù)權(quán)利要求19的可變長度編碼器,其中該VLC包括用于累加可變比特矢量和以給定比特數(shù)量為單位將可變比特矢量傳送到內(nèi)部存儲器的乒乓緩沖器。全文摘要根據(jù)一種采用四級流水線的系數(shù)可變長度編碼方法,通過對系數(shù)數(shù)據(jù)執(zhí)行游程長度編碼來獲得包括游程、電平和最終數(shù)據(jù)的3-維值,其中,在傳送3-維值之后,從傳送的3-維值中獲得可變比特矢量,并存儲該可變比特矢量,并且其中,特別在流水線中斷的情況下,該方法重新使用先前獲得的3-維值以最小化處理時間,使得通過有效的流水線操作來迅速執(zhí)行系數(shù)可變長度編碼,并且可以以最少的時間恢復(fù)中斷的流水線。文檔編號H04N7/30GK1758760SQ200510124930公開日2006年4月12日申請日期2005年7月26日優(yōu)先權(quán)日2004年7月26日發(fā)明者李慶九,姜呈善,趙真顯,樸泰煥申請人:三星電子株式會社