專(zhuān)利名稱(chēng):可變長(zhǎng)度解碼裝置和可變長(zhǎng)度解碼方法以及再現(xiàn)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及可變長(zhǎng)度編碼裝置和可變長(zhǎng)度編碼方法,用于加速可變長(zhǎng)度代碼(variable length code)的加載過(guò)程(load process),尤其在處理可變長(zhǎng)度代碼的數(shù)據(jù)處理中,用于加速?gòu)拇鎯?chǔ)器獲得可變長(zhǎng)度代碼的加載過(guò)程,其中可變長(zhǎng)度代碼應(yīng)用在廣義的處理器技術(shù)領(lǐng)域中。
背景技術(shù):
在傳統(tǒng)的可變解碼裝置中,專(zhuān)門(mén)有用于可變長(zhǎng)度解碼的裝置以實(shí)現(xiàn)高速操作。而且,隨著處理器性能的提高,目前經(jīng)常通過(guò)軟件來(lái)執(zhí)行解碼過(guò)程,其中通過(guò)提供同時(shí)更新數(shù)據(jù)參照(data reference)和數(shù)據(jù)參照位置的專(zhuān)用指令等來(lái)實(shí)現(xiàn)高速操作。
在提供有該專(zhuān)用裝置并因此實(shí)現(xiàn)高速操作的現(xiàn)有方法中,當(dāng)例如需要處理多個(gè)使用可變長(zhǎng)度編碼并用于圖像編碼和音頻編碼的數(shù)據(jù)時(shí),需要提供有專(zhuān)用于每個(gè)數(shù)據(jù)的裝置。而且,在處理器中利用軟件過(guò)程的高速操作中,需要執(zhí)行對(duì)消耗數(shù)據(jù)量(a volum of consumption data)的判決過(guò)程(judgementprocess)和多個(gè)因此產(chǎn)生的存儲(chǔ)器訪問(wèn),這就破壞了預(yù)期的高速操作的程度。在引用的專(zhuān)利文獻(xiàn)1中,該發(fā)明中有緩沖寄存器內(nèi)的數(shù)據(jù)的已參照數(shù)據(jù)數(shù)是否超出某閾值的判定和緩沖寄存器的移位處理的判定過(guò)程。而且,由于緩沖寄存器的值與裝載在存儲(chǔ)器上的數(shù)據(jù)源的數(shù)據(jù)配置(data layout)不同,需要諸如向存儲(chǔ)器存儲(chǔ)(saving)/恢復(fù)(returning)這樣的過(guò)程,因此需要提供另外的存儲(chǔ)器或者將緩沖寄存器作為可變長(zhǎng)度解碼的專(zhuān)用寄存器而安裝以保持(retain)緩沖寄存器的值。相應(yīng)的該發(fā)明另外還需要用于地址更新的特別監(jiān)測(cè)和處理。
本發(fā)明的主要目的是提供一種可變長(zhǎng)度解碼裝置和包括該裝置的再現(xiàn)系統(tǒng)以及可變長(zhǎng)度解碼方法,以在解決上述問(wèn)題中加速可變長(zhǎng)度編碼,并因此在軟件處理過(guò)程中獲得高速操作。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一可變長(zhǎng)度解碼裝置,包括存儲(chǔ)器,將與存儲(chǔ)在任意地址的低位比特側(cè)(lower-bit side)的數(shù)據(jù)相同的數(shù)據(jù)配置并存儲(chǔ)在該任意地址的下一地址的高位比特側(cè)(upper-bit side);緩沖寄存器,具有至少與該存儲(chǔ)器的比特帶寬相等的比特寬度,以存儲(chǔ)從上述存儲(chǔ)器裝載的數(shù)據(jù);地址寄存器,將訪問(wèn)該存儲(chǔ)器的地址的值(地址值)存儲(chǔ)到高位比特側(cè),將所述緩沖寄存器已參照的數(shù)據(jù)數(shù)(number of data which was referred)存儲(chǔ)到低位比特側(cè),其特征在于通過(guò)對(duì)所述緩沖寄存器執(zhí)行使用了所述已參照數(shù)據(jù)數(shù)和本次參照的數(shù)據(jù)數(shù)的數(shù)據(jù)移位操作,從該緩沖寄存器提取出用于可變長(zhǎng)度解碼的本次應(yīng)參照的數(shù)據(jù),響應(yīng)于從所述緩沖寄存器提取出數(shù)據(jù),將本次參照的數(shù)據(jù)數(shù)與該已參照數(shù)據(jù)數(shù)相加,以更新所述地址寄存器的低位比特側(cè)的已參照數(shù)據(jù)數(shù),當(dāng)所述地址寄存器的低位比特側(cè)的更新后的已參照數(shù)據(jù)數(shù)不進(jìn)位時(shí),維持存儲(chǔ)到所述地址寄存器的高位比特側(cè)的地址值不變,當(dāng)更新后的已參照數(shù)據(jù)數(shù)有進(jìn)位時(shí),使用該進(jìn)位將地址值更新為下一地址值。
另外,已參照數(shù)據(jù)數(shù)是指對(duì)于構(gòu)成數(shù)據(jù)的比特中已參照的比特?cái)?shù)(number of bits),本次參照的數(shù)據(jù)數(shù)是指對(duì)于構(gòu)成數(shù)據(jù)的比特中本次參照的比特?cái)?shù),本次應(yīng)參照數(shù)據(jù)是指對(duì)于構(gòu)成數(shù)據(jù)的比特中本次應(yīng)參照的比特。從上述的含義看,數(shù)據(jù)移位是指移位構(gòu)成數(shù)據(jù)的比特。下面同樣如此。
根據(jù)本發(fā)明的第一可變長(zhǎng)度解碼裝置,從地址寄存器分離訪問(wèn)地址和已參照數(shù)據(jù)數(shù),使用訪問(wèn)地址訪問(wèn)存儲(chǔ)器,將從存儲(chǔ)器裝載的數(shù)據(jù)存儲(chǔ)在緩沖寄存器中,從緩沖寄存器中提取出本次應(yīng)參照數(shù)據(jù)。然后,在地址寄存器中加上在該訪問(wèn)時(shí)參照的數(shù)據(jù)數(shù),更新已參照數(shù)據(jù)數(shù)和訪問(wèn)地址。這樣,通過(guò)已參照數(shù)據(jù)數(shù)和本次參數(shù)數(shù)據(jù)數(shù),可從緩沖寄存器提取出本次應(yīng)參照數(shù)據(jù)。此外,為了提取應(yīng)參照數(shù)據(jù)而在地址寄存器中設(shè)定的地址也應(yīng)該自動(dòng)更新。
因此,在本發(fā)明的第一可變長(zhǎng)度解碼裝置的情況下,可以不再需要與緩沖寄存器的狀態(tài)相關(guān)的存儲(chǔ)(saving)/恢復(fù)(returning)過(guò)程,而這在通常的現(xiàn)有技術(shù)中卻是必需的。
本發(fā)明的第一可變長(zhǎng)度解碼裝置的情況下,與現(xiàn)有技術(shù)中更新過(guò)程分別需要已參照數(shù)據(jù)數(shù)和地址不同,本發(fā)明通過(guò)將已參照數(shù)據(jù)數(shù)更新時(shí)的進(jìn)位(carry-up)用于地址更新,可在一次更新過(guò)程中實(shí)現(xiàn)已參照數(shù)據(jù)數(shù)和地址的更新運(yùn)算,從而可以減少更新處理過(guò)程。通過(guò)該自動(dòng)地址更新,在由于進(jìn)位而進(jìn)入下一地址以在存儲(chǔ)器中訪問(wèn)更新后的地址時(shí),在該地址的高位比特側(cè)已經(jīng)存儲(chǔ)與前一個(gè)地址的低位比特側(cè)的數(shù)據(jù)相同的數(shù)據(jù),可以繼續(xù)使用該數(shù)據(jù)。
在本發(fā)明的第一可變長(zhǎng)度解碼裝置中,重要的是不再需要現(xiàn)有技術(shù)中所需的對(duì)緩沖寄存器內(nèi)的數(shù)據(jù)的已參照數(shù)據(jù)數(shù)是否超出某閾值的判定、根據(jù)該判定改變處理的判定處理以及根據(jù)該判定結(jié)果的存儲(chǔ)器訪問(wèn)。不再需要任何用于地址更新的特別監(jiān)視和運(yùn)算。也就是說(shuō),通過(guò)簡(jiǎn)化判定處理、地址運(yùn)算和對(duì)存儲(chǔ)器的訪問(wèn),可以加速可變長(zhǎng)度解碼處理。
作為本發(fā)明的第一可變長(zhǎng)度解碼裝置的最佳實(shí)施形式,還包括掩碼上述已參照數(shù)據(jù)并進(jìn)行移位的移位器,它作為在緩沖寄存器中提取本次應(yīng)參照數(shù)據(jù)的單元。根據(jù)該實(shí)施形式,僅僅通過(guò)掩碼已參照數(shù)據(jù),可以對(duì)移位功能進(jìn)行簡(jiǎn)單改進(jìn),并可以實(shí)現(xiàn)從緩沖寄存器提取出本次應(yīng)參照數(shù)據(jù),從而實(shí)現(xiàn)進(jìn)一步加速可變長(zhǎng)度解碼處理。
根據(jù)本發(fā)明的第一可變長(zhǎng)度解碼方法是使用可變長(zhǎng)度解碼裝置的可變長(zhǎng)度解碼方法,該裝置包括存儲(chǔ)器,將比特?cái)?shù)A(至少為2的整數(shù))為1個(gè)字存儲(chǔ)數(shù)據(jù);比特寬度B(至少為A的整數(shù))的緩沖寄存器,存儲(chǔ)從上述存儲(chǔ)器裝載的數(shù)據(jù);地址寄存器,將對(duì)上述存儲(chǔ)器的訪問(wèn)地址(地址的值)存儲(chǔ)到高位比特側(cè),并且將在緩沖寄存器已參照的數(shù)據(jù)數(shù)M存儲(chǔ)在低位比特側(cè),所述低位比特側(cè)的比特寬度為C,M是至少為0的整數(shù),C是至少為1的整數(shù),其特征在于,包括步驟第一步驟,從上述地址寄存器分離訪問(wèn)地址值(地址值)和已參照的數(shù)據(jù)數(shù)M(至少為0的整數(shù));第二步驟,在上述存儲(chǔ)器中,將與任意地址的比特?cái)?shù)D(A-2C表示的整數(shù))的低位比特側(cè)存儲(chǔ)的數(shù)據(jù)相同的數(shù)據(jù)也配置在該任意地址的下一地址的比特?cái)?shù)D的高位比特側(cè),并且使用上述訪問(wèn)地址對(duì)上述存儲(chǔ)器進(jìn)行訪問(wèn),將該存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)裝載到上述緩沖寄存器中;第三步驟,通過(guò)執(zhí)行使用上述已參照數(shù)據(jù)數(shù)M和本次參照的數(shù)據(jù)數(shù)N(至少為1的整數(shù))的數(shù)據(jù)移位操作,從上述緩沖寄存器提取出為了可變長(zhǎng)度解碼本次應(yīng)參照的數(shù)據(jù);第四步驟,響應(yīng)于上述提取本次應(yīng)參照數(shù)據(jù),將本次參照的數(shù)據(jù)數(shù)N與已參照數(shù)據(jù)數(shù)M相加,以更新在地址寄存器的低位比特側(cè)存儲(chǔ)的已參照數(shù)據(jù)數(shù)M,并且,當(dāng)所述地址寄存器的低位比特側(cè)的更新后的已參照數(shù)據(jù)數(shù)不進(jìn)位時(shí),維持所述地址寄存器的高位比特側(cè)存儲(chǔ)的所述地址值不變,當(dāng)有進(jìn)位時(shí),使用該進(jìn)位更新所述地址值為下一地址值。
在本發(fā)明的第一可變長(zhǎng)度解碼方法中,從地址寄存器分離訪問(wèn)地址和已參照數(shù)據(jù)數(shù),使用訪問(wèn)地址的值(地址值)訪問(wèn)存儲(chǔ)器,將從存儲(chǔ)器裝載的數(shù)據(jù)存儲(chǔ)在緩沖寄存器中,在緩沖寄存器中提取出本次應(yīng)參照數(shù)據(jù)。然后,在地址寄存器中加上在該訪問(wèn)時(shí)參照的數(shù)據(jù)數(shù),更新已參照數(shù)據(jù)數(shù)和地址值。這樣,通過(guò)已參照數(shù)據(jù)數(shù)和本次參數(shù)的數(shù)據(jù)數(shù),可從緩沖寄存器提取出本次應(yīng)參照數(shù)據(jù)。接著,為了提取應(yīng)參照數(shù)據(jù)而在地址寄存器中應(yīng)設(shè)定的地址也自動(dòng)更新?,F(xiàn)有技術(shù)中需要的與緩沖寄存器的狀態(tài)相關(guān)的(saving)/恢復(fù)(returning)處理就不再需要。與現(xiàn)有技術(shù)中需要執(zhí)行已參照數(shù)據(jù)數(shù)的更新和地址更新二者不同,通過(guò)將已參照數(shù)據(jù)數(shù)更新時(shí)的進(jìn)位用于地址更新,可以一次實(shí)現(xiàn)已參照數(shù)據(jù)數(shù)和地址的更新運(yùn)算,從而可以減少更新處理。通過(guò)該自動(dòng)地址更新,通過(guò)進(jìn)位進(jìn)入下一地址,在存儲(chǔ)器中訪問(wèn)該更新后的地址時(shí),在該地址的高位比特側(cè)已經(jīng)存儲(chǔ)與前一個(gè)地址的低位比特側(cè)的數(shù)據(jù)相同的數(shù)據(jù),可原樣繼續(xù)使用該數(shù)據(jù)。
根據(jù)本發(fā)明的第二可變長(zhǎng)度解碼裝置,包括存儲(chǔ)器,以比特?cái)?shù)A(至少為2的整數(shù))為1個(gè)字存儲(chǔ)數(shù)據(jù);比特寬度B(至少為A的整數(shù))的緩沖寄存器,存儲(chǔ)從上述存儲(chǔ)器裝載的數(shù)據(jù);地址寄存器,將對(duì)上述存儲(chǔ)器的訪問(wèn)地址的值(地址值)存儲(chǔ)到高位比特側(cè),并且將上述緩沖寄存器參照后的數(shù)據(jù)數(shù)M(至少為0的整數(shù))存儲(chǔ)在比特寬度C(至少為1的整數(shù))的低位比特側(cè),其特征在于上述存儲(chǔ)器將與任意地址中比特?cái)?shù)D(A-2C表示的整數(shù))的低位比特側(cè)存儲(chǔ)的數(shù)據(jù)相同的數(shù)據(jù)也配置在該任意地址的下一地址中比特?cái)?shù)D的高位比特側(cè),通過(guò)進(jìn)行使用上述已參照數(shù)據(jù)數(shù)M和本次參照的數(shù)據(jù)數(shù)N(至少為1的整數(shù))的數(shù)據(jù)移位操作,從上述緩沖寄存器提取出為了可變長(zhǎng)度解碼本次應(yīng)參照的數(shù)據(jù),另一方面,響應(yīng)于該提取,將E設(shè)為通過(guò)A-D運(yùn)算得到的至少為1的整數(shù)、將F,G設(shè)為整數(shù)、將通過(guò) 的運(yùn)算得到的商設(shè)為F、將余數(shù)設(shè)為G,通過(guò)將上述商F加到上述地址寄存器的高位比特側(cè)進(jìn)行該高位比特側(cè)存儲(chǔ)的上述地址值的更新,此外,通過(guò)在上述地址寄存器的低位比特側(cè)設(shè)置上述余數(shù)G,更新該低位比特側(cè)存儲(chǔ)的已參照數(shù)據(jù)數(shù)M。
為了描述比特帶寬,可以舉例說(shuō)明。例如,在地址寄存器的低位比特側(cè)為4比特的結(jié)構(gòu)中,地址寄存器的低位側(cè)的比特寬度為4。
根據(jù)本發(fā)明的第二可變長(zhǎng)度解碼裝置,具有與上述第一可變長(zhǎng)度解碼裝置同樣的處理過(guò)程和效果。而且,隨著來(lái)自緩沖寄存器的上述提取,設(shè)E為通過(guò)A-D的運(yùn)算得到的至少為1的整數(shù)、F,G為整數(shù)、通過(guò) 的運(yùn)算得到的商為F、余數(shù)為G,通過(guò)將上述商F加到上述地址寄存器的高位比特側(cè)進(jìn)行該高位比特側(cè)的更新,或者通過(guò)在上述地址寄存器的低位比特側(cè)設(shè)置上述余數(shù)G進(jìn)行該低位比特側(cè)的更新,因此與上述第一可變長(zhǎng)度解碼裝置一樣可以一次實(shí)現(xiàn)已參照數(shù)據(jù)數(shù)的更新和地址更新,可以減少更新處理。
圖1是本發(fā)明第一實(shí)施例的可變長(zhǎng)度解碼裝置的示范性結(jié)構(gòu)圖;圖2是本發(fā)明第一實(shí)施例的可變長(zhǎng)度解碼方法的處理流程圖;圖3是本發(fā)明第一實(shí)施例的數(shù)據(jù)提取處理流程圖;圖4是本發(fā)明第一實(shí)施例的數(shù)據(jù)提取的數(shù)據(jù)狀態(tài)示意圖;圖5是本發(fā)明第一實(shí)施例的具體動(dòng)作示例說(shuō)明圖;圖6是本發(fā)明第一實(shí)施例的具體動(dòng)作示例說(shuō)明圖;圖7是本發(fā)明第一實(shí)施例的具體動(dòng)作示例說(shuō)明圖;圖8是本發(fā)明第一實(shí)施例的具體動(dòng)作示例說(shuō)明圖;圖9是本發(fā)明第二實(shí)施例的數(shù)據(jù)提取處理流程圖;圖10是本發(fā)明第二實(shí)施例的數(shù)據(jù)提取的數(shù)據(jù)狀態(tài)示意圖;圖11是本發(fā)明第二實(shí)施例的移位器和緩沖寄存器的周邊的電路結(jié)構(gòu)示范性結(jié)構(gòu)圖;圖12是本發(fā)明第二實(shí)施例的具體動(dòng)作示例說(shuō)明圖;圖13是本發(fā)明第三實(shí)施例的可變長(zhǎng)度解碼裝置的示范性配置圖;圖14是本發(fā)明第三實(shí)施例的數(shù)據(jù)提取處理流程圖;圖15是本發(fā)明第三實(shí)施例的數(shù)據(jù)提取的數(shù)據(jù)狀態(tài)示意圖;圖16是本發(fā)明第三實(shí)施例的具體動(dòng)作示例說(shuō)明圖;圖17是本發(fā)明第四實(shí)施例的可變長(zhǎng)度解碼裝置的示范性結(jié)構(gòu)圖;圖18是本發(fā)明第四實(shí)施例的具體動(dòng)作示例1的說(shuō)明圖;圖19是本發(fā)明第四實(shí)施例的具體動(dòng)作示例2的說(shuō)明圖;圖20是本發(fā)明第五實(shí)施例的可變長(zhǎng)度解碼裝置的示范性結(jié)構(gòu)圖;圖21是本發(fā)明第五實(shí)施例的具體動(dòng)作示例的說(shuō)明圖;圖22是本發(fā)明第六實(shí)施例的可變長(zhǎng)度解碼裝置的示范性結(jié)構(gòu)圖;
圖23是本發(fā)明第六實(shí)施例的具體動(dòng)作示例1的說(shuō)明圖;圖24是本發(fā)明的第六實(shí)施例的具體動(dòng)作示例2的說(shuō)明圖;圖25是本發(fā)明的第七實(shí)施例的再現(xiàn)系統(tǒng)的示意圖。
具體實(shí)施例方式
下面參考附圖詳細(xì)說(shuō)明本發(fā)明的最佳實(shí)施形式的可變長(zhǎng)度解碼裝置和可變長(zhǎng)度解碼方法。從第一實(shí)施例到第七實(shí)施例中都涉及可變長(zhǎng)度解碼裝置和可變長(zhǎng)度解碼方法。
第一實(shí)施例圖1示出了根據(jù)本發(fā)明第一實(shí)施例的可變長(zhǎng)度解碼裝置。參照?qǐng)D1,標(biāo)號(hào)101表示存儲(chǔ)器。存儲(chǔ)器101用于存儲(chǔ)數(shù)據(jù),其中在存儲(chǔ)的數(shù)據(jù)中比特?cái)?shù)(bit number)A(A是大于或者等于2的整數(shù),在第一實(shí)施例中A=32)組成一個(gè)字(word),并且與任意地址的比特?cái)?shù)D(D大于或者等于1的整數(shù),在第一實(shí)施例中D=16)的低位比特側(cè)存儲(chǔ)的數(shù)據(jù)相同的數(shù)據(jù)配置在該任意地址的下一地址的比特?cái)?shù)D的高位比特側(cè)。
標(biāo)號(hào)102表示比特寬度為32的地址寄存器。地址寄存器102在高位比特側(cè)(第一寄存器部分)具有訪問(wèn)地址(地址值)和在低位比特側(cè)(第二寄存器部分)具有已參照數(shù)據(jù)數(shù)M(M是大于或者等于0的整數(shù)),低位比特側(cè)具有比特寬度C(C為大于或者等于1的整數(shù),在第一實(shí)施例中為C=4)已參照。
這里,A、C、D之間的關(guān)系為D=A-2c。在第一實(shí)施例中,A=32,C=4,因此D=16。在A和C之間,P=24=16,如果A=2×P和P=2C,那么,A=2×P=2×16=32。
標(biāo)號(hào)103表示比特寬度為B(B是等于或者大于A的整數(shù),第一實(shí)施例中B=32)的緩沖寄存器。緩沖寄存器103用于保持(retain)從存儲(chǔ)器101裝載入的數(shù)據(jù),當(dāng)通過(guò)訪問(wèn)地址(access address)從自存儲(chǔ)器101裝載入的數(shù)據(jù)中提取現(xiàn)在參照數(shù)據(jù)時(shí),通過(guò)使用已參照數(shù)據(jù)數(shù)M和當(dāng)前參照的數(shù)據(jù)數(shù)N(N是大于或者等于1的數(shù)據(jù)數(shù))的數(shù)據(jù)移位操作提取出應(yīng)參照數(shù)據(jù)。
如上所述,存儲(chǔ)器101中的數(shù)據(jù)配置成存儲(chǔ)在某地址的低16比特位處的數(shù)據(jù)也存儲(chǔ)在該地址的下一地址的高16比特位處。
具體說(shuō),例如,在地址0×101的低16比特位處存儲(chǔ)數(shù)據(jù)c,而下一地址0×102的高16比特位處也存儲(chǔ)相同數(shù)據(jù)c。而且,地址0×102的低16比特位處存儲(chǔ)數(shù)據(jù)d,下一地址0×103的高16比特位處也存儲(chǔ)相同數(shù)據(jù)d。
圖2表示使用圖1的可變長(zhǎng)度解碼裝置進(jìn)行可變長(zhǎng)度解碼的處理流程。圖3表示從緩沖寄存器103提取本次參照的數(shù)據(jù)的通常處理流程。圖4表示隨著圖3所示的處理流程變化的數(shù)據(jù)的狀態(tài),表示出與圖3的各步驟對(duì)應(yīng)變化的情況。下文中的步驟對(duì)應(yīng)圖2、3的各處理步驟。為方便說(shuō)明,以32比特的處理器為例子對(duì)本發(fā)明進(jìn)行說(shuō)明,但本發(fā)明不限定于此。作為初始狀態(tài),如圖1所示,在存儲(chǔ)器101中從0×100開(kāi)始按a,b,c,...的順序存儲(chǔ)數(shù)據(jù)。在地址寄存器102中,地址值為0×101、已參照數(shù)據(jù)數(shù)為0×3,本次參照的數(shù)據(jù)數(shù)為N。
下面說(shuō)明一個(gè)處理例子。
步驟1中,從地址寄存器102分離并提取出已參照數(shù)據(jù)數(shù)0×3和地址值0×101。
步驟2中,使用步驟1分離出的地址值0×101訪問(wèn)存儲(chǔ)器101的地址0×101,從而裝載并存儲(chǔ)數(shù)據(jù)b,c,到緩沖寄存器103中。
步驟3中,使用步驟1分離的已參照數(shù)據(jù)數(shù)0×3和本次參照的數(shù)據(jù)數(shù)N從存儲(chǔ)數(shù)據(jù)b,c的緩沖寄存器103中僅提取出本次參照的數(shù)據(jù)。用步驟3-1a到步驟3-3a來(lái)表示一個(gè)具體的提取方式的示例。
步驟3-1a中,將位于緩沖寄存器103的數(shù)據(jù)b,c左移位已參照數(shù)據(jù)數(shù)0×3。本次參照的數(shù)據(jù)D1的開(kāi)頭移位到緩沖寄存器103的最高位比特側(cè)。在通常的處理器中,當(dāng)移位數(shù)據(jù)時(shí),沒(méi)有數(shù)據(jù)的低位比特側(cè)(右)的部分一般擴(kuò)展“0”(參照?qǐng)D4)。
步驟3-2a中,算出從“32”減去本次參照的數(shù)據(jù)數(shù)N的值。
步驟3-3a中,將步驟3-1a移位的數(shù)據(jù)再向右移位步驟3-2a算出的值,本次參照的數(shù)據(jù)D1的末尾移位到緩沖寄存器103的最低位比特側(cè)。此時(shí),移位稱(chēng)為邏輯移位。邏輯移位一般是沒(méi)有高位比特側(cè)(左)的數(shù)據(jù)的部分?jǐn)U展“0”(參照?qǐng)D4)。
步驟4中,地址寄存器102中加上本次參照的數(shù)據(jù)數(shù)N,從而更新地址寄存器102的值。此時(shí),通過(guò)相加,已參照數(shù)據(jù)數(shù)更新為(0×3+N)。另外,通過(guò)從保持已參照數(shù)據(jù)數(shù)的低位比特側(cè)向保持地址值的高位比特側(cè)的進(jìn)位還自動(dòng)實(shí)現(xiàn)地址值的更新。
例如,在N=0×8的情況下,由于0×3+0×8=0×b,已參照數(shù)據(jù)數(shù)可用4比特表示,地址值仍為0×101,沒(méi)有進(jìn)位。當(dāng)N=0×e時(shí),已參照數(shù)據(jù)數(shù)為0×3+0×e=0×11,變?yōu)?比特,地址值從0×101更新為0×102,產(chǎn)生進(jìn)位。
此外,上述例子中,“0×”表示16進(jìn)制數(shù)?!?×b”表示10進(jìn)制的“11”,其比10進(jìn)制的“16”,即4比特小,因此可用4比特表現(xiàn)。“0×e”表示10進(jìn)制的“14”。0×3+0×e的結(jié)果是10進(jìn)制的3+14=17。因此,由于17-16=1,產(chǎn)生“0×11”,在16進(jìn)制中有進(jìn)位。
為幫助理解,舉出更具體例子來(lái)說(shuō)明。
圖5A表示從存儲(chǔ)器101的地址0×101裝載并存儲(chǔ)到緩沖寄存器103中的數(shù)據(jù)。16比特的數(shù)據(jù)b16,b15,b14,b13,b12,..b6,b5,..b1對(duì)應(yīng)圖1的數(shù)據(jù)b。此外,16比特的數(shù)據(jù)c16,c15,....c1對(duì)應(yīng)圖1的數(shù)據(jù)c??傆?jì)比特?cái)?shù)為32比特。
假設(shè)在上次處理中數(shù)據(jù)b16,b15,b14的3比特已參照。因此,已參照數(shù)據(jù)數(shù)M=3。假設(shè)本次參照的數(shù)據(jù)數(shù)N=8,對(duì)應(yīng)于b13,b12,..b6的數(shù)據(jù)D2。用粗框?qū)ζ溥M(jìn)行強(qiáng)調(diào)。
圖5B是將32比特的數(shù)據(jù)行(data raw)b16,b15,..b1,c16,c15,...c1左移位已參照數(shù)據(jù)數(shù)M=3比特,從最高位開(kāi)始存儲(chǔ)數(shù)據(jù)行b13,b12,..b1,c16,c15,...c1,將低3比特位設(shè)為“0”。粗框的開(kāi)頭與第32比特一致。
圖5C表示將32比特的數(shù)據(jù)行b13,b12,..b1,c16,c15,...c1,0,0,0右移位24比特,從最高位開(kāi)始的24比特設(shè)置“0”的狀態(tài)。從“32”中減去本次參照的數(shù)據(jù)數(shù)N=8,得到右移位量的24比特。粗框的末尾與第1比特一致。更具體地,從緩沖寄存器103的最低位開(kāi)始的8比特存儲(chǔ)數(shù)據(jù)D2的b13,b12,..b6,至此本次參照的數(shù)據(jù)D2被提取出來(lái)。
已參照數(shù)據(jù)數(shù)M上加上本次參照的數(shù)據(jù)數(shù)N后,M+N=3+8=11,地址寄存器102中將已參照數(shù)據(jù)數(shù)M從“3”更新為“11”?!?1”小于24(4比特),因此不進(jìn)行地址值的進(jìn)位,維持原來(lái)的地址值0×101。
接著圖5的處理的下一步處理用圖6說(shuō)明。
圖6A表示存儲(chǔ)器101的0×101的數(shù)據(jù)裝載到緩沖寄存器103的狀態(tài)(與圖5A相同)。
到至此的處理中,數(shù)據(jù)b16,b15,b14,b13,b12,..b6的11比特為已參照的,已參照數(shù)據(jù)數(shù)M=11。設(shè)本次參照的數(shù)據(jù)數(shù)N=5。這相當(dāng)于b5,b4,..b1的數(shù)據(jù)D3。用粗框?qū)ζ溥M(jìn)行強(qiáng)調(diào)。
圖6B是將32比特的數(shù)據(jù)行b16,b15,..b1,c16,c15,...c1左移位已參照數(shù)據(jù)數(shù)M=11比特,從最高位開(kāi)始存儲(chǔ)數(shù)據(jù)行b5,b4,..b1,c16,c15,...c1,將低位11比特設(shè)為“0”。粗框的開(kāi)頭與第32比特一致。
圖6C表示將32比特的數(shù)據(jù)行b5,b4,..b1,c16,c15,...c1,0,0,...,0右移位27比特,從最高位開(kāi)始的27比特設(shè)置為“0”。從“32”中減去本次參照的數(shù)據(jù)數(shù)N=5,得到右移位量的27比特。粗框的末尾與第1比特一致。更具體地,從緩沖寄存器103的最低位開(kāi)始的5比特中存儲(chǔ)數(shù)據(jù)D3的b5,b4,..b1,至此本次參照的數(shù)據(jù)D3被提取出來(lái)。
已參照數(shù)據(jù)數(shù)M上加上本次參照的數(shù)據(jù)數(shù)N后,M+N=11+5=16,地址寄存器102中將已參照數(shù)據(jù)數(shù)M從“11”更新為“16”。由于“16”處于等于或者大于24(4比特)的范圍以?xún)?nèi),因此進(jìn)行地址值的進(jìn)位,更新為下一地址值0×102。更具體地,由于數(shù)據(jù)B的全部16比特的數(shù)據(jù)已參照完畢,因此進(jìn)入下一地址。
另外,當(dāng)圖6的處理中假設(shè)本次參照的數(shù)據(jù)數(shù)N為等于或者小于4時(shí),則重復(fù)與圖5相同的邏輯處理。
參照?qǐng)D7說(shuō)明接著圖5的另外的處理。在該處理中,本次參照的數(shù)據(jù)數(shù)N為等于或者大于6。
圖7A表示存儲(chǔ)器101的0×101的數(shù)據(jù)裝載到緩沖寄存器103中的狀態(tài)(與圖5A相同)。
到上次為止的處理中數(shù)據(jù)b16,b15,b14,b13,b12,..b6的11比特為已參照的,已參照數(shù)據(jù)數(shù)M=11。設(shè)本次參照的數(shù)據(jù)數(shù)N=7。這相當(dāng)于b5,b4,..b1,c16,c15的數(shù)據(jù)D4。比圖6(b)的情況增加2比特。不僅包括數(shù)據(jù)b,還包括數(shù)據(jù)c的一部分。用粗框?qū)ζ溥M(jìn)行強(qiáng)調(diào)。
圖7B是將32比特的數(shù)據(jù)行b16,b15,..b1,c16,c15,...c1左移位已參照數(shù)據(jù)數(shù)M=11比特,從最高位開(kāi)始存儲(chǔ)數(shù)據(jù)行b5,b4,..b1,c16,c15,...c1,將低位11比特設(shè)為“0”的狀態(tài)。這與圖6(b)相同。粗框的開(kāi)頭與第32比特一致。
圖7C表示將32比特的數(shù)據(jù)行b5,b4,..b1,c16,c15,...c1,0,0,...,0右移位25比特,從最高位開(kāi)始的25比特設(shè)置“0”的狀態(tài)。右移位量的25比特是從“32”中減去本次參照的數(shù)據(jù)數(shù)N=7。與圖6(c)的情況相比少2比特。粗框的末尾與第1比特一致。也就是,從緩沖寄存器103的最低位開(kāi)始的7比特中存儲(chǔ)數(shù)據(jù)D4的b5,b4,..b1,c16,c15,至此本次參照的數(shù)據(jù)D4被提取出來(lái)。
已參照數(shù)據(jù)數(shù)M上加上本次參照的數(shù)據(jù)數(shù)N后,M+N=11+7=18,地址寄存器102中將已參照數(shù)據(jù)數(shù)M從“11”更新為“18”?!?8”為24(4比特)以上,因此進(jìn)行地址值的進(jìn)位,更新為下一地址值0×102。數(shù)據(jù)B的全部16比特的數(shù)據(jù)已參照成,進(jìn)入數(shù)據(jù)C的參照,因此進(jìn)入下一地址。已參照數(shù)據(jù)數(shù)M的“18”是16進(jìn)制中的“0×12”,是2進(jìn)制中的“0b10010”,但除去進(jìn)位的第5比特的從低位開(kāi)始的4比特為“0b0010”,為16進(jìn)制的“0×2”。這對(duì)應(yīng)于數(shù)據(jù)C的高位2個(gè)比特C16,C15是已參照的。
如圖8所示,從地址0×101進(jìn)入下一地址0×102時(shí),這里的高位16比特中已經(jīng)存儲(chǔ)與前一個(gè)的地址0×101的低位側(cè)16比特的數(shù)據(jù)c(c16,c15,....,c1)相同的數(shù)據(jù),可原樣繼續(xù)使用該數(shù)據(jù)。不再需要用于地址更新的特別監(jiān)視處理和運(yùn)算。
圖1的地址寄存器102、緩沖寄存器103并不執(zhí)行任何特別的操作,可以使用處理器通常使用的通用緩沖寄存器來(lái)實(shí)現(xiàn),并不需要特別專(zhuān)用的寄存器。但是,和現(xiàn)有技術(shù)中的訪問(wèn)地址、已參照數(shù)據(jù)數(shù)一樣,地址寄存器1 02的值需要與對(duì)存儲(chǔ)器101的空白區(qū)域的存儲(chǔ)(saving)/恢復(fù)(returning)相關(guān)。
在第一實(shí)施例所示例子中,低位16比特的數(shù)據(jù)也配置在其下一地址的高位16比特。因此可一次提取出至少16比特+1比特的17比特的數(shù)據(jù)。此外,與干擾數(shù)據(jù)(jamming data)的情況相比,需要2倍的存儲(chǔ)器容量。
第二實(shí)施例下面參考
本發(fā)明第二實(shí)施例的可變長(zhǎng)度解碼裝置和可變長(zhǎng)度解碼方法。
圖9所示為本發(fā)明第二實(shí)施例的從緩沖寄存器103提取本次參照的數(shù)據(jù)的處理流程。圖10所示為隨著圖9中處理流程變化的數(shù)據(jù)狀態(tài)變化,其中變化對(duì)應(yīng)圖9的各步驟變化。圖11是所示為在第二實(shí)施例中使用的移位器和緩沖寄存器的周邊的電路的示范性結(jié)構(gòu)圖。
參照?qǐng)D11,標(biāo)號(hào)701表示用于掩碼緩沖寄存器103保持的一部分比特的掩碼邏輯電路(mask logic circiut),標(biāo)號(hào)702表示根據(jù)掩碼邏輯電路701的輸出對(duì)移位器的輸入數(shù)據(jù)進(jìn)行掩碼的掩碼電路(mask circiut),標(biāo)號(hào)703表示進(jìn)行移位的移位器(shifter)。
圖1和圖2也適用于本第二實(shí)施例。
下面使用圖1、圖2、圖9、圖10、圖11說(shuō)明。為方便說(shuō)明,以32比特的處理器為例,但本發(fā)明不限定于此。作為初始狀態(tài),如圖1所示,在存儲(chǔ)器101中從0×100開(kāi)始按a,b,c,..的順序存儲(chǔ)數(shù)據(jù),地址寄存器102的地址值為0×101、已參照數(shù)據(jù)數(shù)為0×3,本次參照的數(shù)據(jù)數(shù)為N。
本實(shí)施例的基本操作如圖2那樣,并且與對(duì)第一實(shí)施例的描述相同。本實(shí)施例的特征在于圖2的步驟3如圖9所示記一步得到了改進(jìn)。
下面說(shuō)明處理的一個(gè)例子。
步驟1中,從地址寄存器102分離并提取出已參照數(shù)據(jù)數(shù)0×3和地址值0×101。
步驟2中,使用步驟1分離的地址值0×101訪問(wèn)存儲(chǔ)器101的地址0×101,裝載并存儲(chǔ)數(shù)據(jù)b,c到緩沖寄存器103中。
步驟3中,使用步驟1分離的已參照數(shù)據(jù)數(shù)0×3和本次參照的數(shù)據(jù)數(shù)N從存儲(chǔ)數(shù)據(jù)b,c的緩沖寄存器103僅提取出本次參照的數(shù)據(jù)。具體的提取流程用步驟3-1b到步驟3-2b表示。
步驟3-1b中,算出從“32”減去已參照數(shù)據(jù)數(shù)0×3和本次參照的數(shù)據(jù)數(shù)N的總和的值。在第一實(shí)施例中,從“32”減去的僅僅是本次參照的數(shù)據(jù)數(shù)N。并且,在這里不執(zhí)行在第一實(shí)施例的步驟3-1a中描述的“將位于緩沖寄存器103的數(shù)據(jù)b,c左移位已參照數(shù)據(jù)數(shù)0×3”,因?yàn)檠诖a電路代替執(zhí)行了該處理。
步驟3-2b中,使用圖11所示的掩碼邏輯電路701、掩碼電路702和移位器703,用已參照數(shù)據(jù)數(shù)0×3進(jìn)行掩碼,并且向右移位步驟3-1b算出的值“32-(0×3+N)”。本次參照的數(shù)據(jù)D1的末尾直接移動(dòng)到緩沖寄存器103的最低位比特側(cè)。此時(shí),移位稱(chēng)為邏輯移位。(參照?qǐng)D10)。
步驟4中,本次參照的數(shù)據(jù)數(shù)N,與地址寄存器102相加,以更新地址寄存器102的值。此時(shí),與第一實(shí)施例的相同,相加后,已參照數(shù)據(jù)數(shù)更新為(0×3+N),另外,通過(guò)從保持已參照數(shù)據(jù)數(shù)的低位比特側(cè)向保持地址值的高位比特側(cè)的進(jìn)位還自動(dòng)實(shí)現(xiàn)地址值的更新。
除了作為步驟3的具體實(shí)施方式
的步驟3-1B、3-2B以外,其余步驟與第一實(shí)施例相同。
上述中,當(dāng)4比特表示的已參照數(shù)據(jù)數(shù)為0×3時(shí),掩碼邏輯電路701對(duì)掩碼電路702的3個(gè)高位與門(mén)A32,A31,A30輸出掩碼信號(hào)。只有3個(gè)與門(mén)A32,A31,A30為非導(dǎo)通,其他AND門(mén)A29~A1導(dǎo)通,緩沖寄存器103的32比特的數(shù)據(jù)在其中高位3比特被掩碼的狀態(tài)下(強(qiáng)制為“0”的狀態(tài))輸送到移位器703。如圖12所示,移位器703將高位3比特被掩碼的32比特?cái)?shù)據(jù)向右移位21比特。這里,從“32”減去“11”得到該21比特,而“11”是將已參照數(shù)據(jù)數(shù)M=3與本次參照的數(shù)據(jù)數(shù)N=8相加后得到的。
表示出圖11為示例的掩碼用邏輯電路701的變換邏輯表。
表1
另外,圖11所示的掩碼邏輯電路701和掩碼電路702不特別規(guī)定電路安裝方法,與電路安裝的方式無(wú)關(guān)。掩碼邏輯電路701和掩碼電路702可以彼此分割也可集中組成邏輯電路。
第三實(shí)施例圖13到圖16表示本發(fā)明第三實(shí)施例的可變長(zhǎng)度解碼裝置。
為方便說(shuō)明,第三實(shí)施例的處理器將以基于24比特的處理器作為示例,但本發(fā)明不限定于此。
圖13中,存儲(chǔ)器101存儲(chǔ)將24比特作為1個(gè)字的數(shù)據(jù),各地址為高位8比特、中位8比特、低位8比特,與某地址的中位比特相同的數(shù)據(jù)也配置在下一地址的高位比特處,與某地址的低位比特相同的數(shù)據(jù)也配置在下一地址的中位比特處。這里,與高位8比特相對(duì)照,可將中位8比特和低位8比特統(tǒng)稱(chēng)為低位比特側(cè)。
地址寄存器102是比特寬度為24的寄存器,由保持地址值的高位比特側(cè)(第一寄存器部分)和保持已參照數(shù)據(jù)數(shù)M的比特寬度C(第三實(shí)施例中C=3)的低位比特側(cè)(第二寄存器部分)構(gòu)成。
緩沖寄存器103是保持從存儲(chǔ)器101裝載的數(shù)據(jù)的比特寬度為B(第三實(shí)施例中B=24)的緩沖寄存器。
這里,存儲(chǔ)器101的比特寬度A為24,地址寄存器102的第二寄存器部分的比特寬度C為3,存儲(chǔ)器101的低位比特側(cè)的比特?cái)?shù)D為8,A、C、D的之間有D=A-2C的關(guān)系。第二實(shí)施例中,A=24、C=3,因此D=16。A、C之間,在P=2C時(shí),有A=3×P的關(guān)系。因?yàn)镻=23=8,A=3×P=3×8=24。
參照?qǐng)D2和圖14與圖15,說(shuō)明從緩沖寄存器103提取本次參照的數(shù)據(jù)的通常處理過(guò)程。圖14表示其處理流程,圖15表示伴隨圖14所示處理流程變化的數(shù)據(jù)狀態(tài)。下文中的步驟對(duì)應(yīng)圖2、圖14的各處理步驟。作為初始狀態(tài),如圖所示,在存儲(chǔ)器101中從0×100地址開(kāi)始按a,b,c,..的順序存儲(chǔ)數(shù)據(jù),地址寄存器102的地址值為0×101、已參照數(shù)據(jù)數(shù)為0×3,本次參照的數(shù)據(jù)數(shù)為N。
下面說(shuō)明處理的一個(gè)例子。
步驟1中,從地址寄存器102分離并提取出已參照數(shù)據(jù)數(shù)0×3和地址值0×101。
步驟2中,使用步驟1分離的地址值0×101訪問(wèn)存儲(chǔ)器101的0×101地址,裝載數(shù)據(jù)b,c,d,存儲(chǔ)到緩沖寄存器103中。
步驟3中,使用步驟1分離的已參照數(shù)據(jù)數(shù)0×3和本次參照的數(shù)據(jù)數(shù)N從存儲(chǔ)數(shù)據(jù)b,c,d的緩沖寄存器103僅提取出本次參照的數(shù)據(jù)。用步驟3-1a到步驟3-3a表示具體提取方式的一個(gè)示例。
步驟3-1a中,將位于緩沖寄存器103的數(shù)據(jù)b,c,d左移位已參照數(shù)據(jù)數(shù)0×3。本次參照的數(shù)據(jù)D1的開(kāi)頭移位到緩沖寄存器103的最高位比特側(cè)。在通??衫玫奶幚砥髦?,當(dāng)如上所述移位時(shí),低位比特側(cè)(右)的沒(méi)有數(shù)據(jù)的部分一般擴(kuò)展為“0”(參照?qǐng)D15)。
步驟3-2a中,算出從“24”減去本次參照的數(shù)據(jù)數(shù)N的值。
步驟3-3a中,將步驟3-1a移位的數(shù)據(jù)再向右移位步驟3-2a算出的值,本次參照的數(shù)據(jù)D1的末尾移位到緩沖寄存器103的最低位比特側(cè)。此時(shí),移位稱(chēng)為邏輯移位。當(dāng)如上所述移位時(shí),高位比特側(cè)(左)沒(méi)有數(shù)據(jù)的部分?jǐn)U展為“0”(參照?qǐng)D15)。
步驟4中,地址寄存器102中加上本次參照的數(shù)據(jù)數(shù)N,更新地址寄存器102的值。此時(shí),通過(guò)相加,已參照數(shù)據(jù)數(shù)更新為(0×3+N),另外,通過(guò)從保持已參照數(shù)據(jù)數(shù)的低位比特側(cè)向保持地址值的高位比特側(cè)的進(jìn)位還自動(dòng)實(shí)現(xiàn)地址值的更新。
例如N=0×2的情況下,已參照數(shù)據(jù)數(shù)為0×3+0×2=0×5,可用3比特表示,地址值仍為0×101,沒(méi)有進(jìn)位。N=0×8時(shí),已參照數(shù)據(jù)數(shù)為0×3+0×8=0×b,變?yōu)?比特,產(chǎn)生進(jìn)位,地址值從0×101更新為0×102。此外,N=0×f時(shí),已參照數(shù)據(jù)數(shù)為0×3+0×f=0×12,變?yōu)?比特,產(chǎn)生2個(gè)進(jìn)位,地址值從0×101更新為0×103。
為幫助理解,舉出更具體例子來(lái)說(shuō)明。
圖16A表示從存儲(chǔ)器101的0×101裝載存儲(chǔ)到緩沖寄存器103中的數(shù)據(jù)。對(duì)應(yīng)圖13的數(shù)據(jù)b的是8比特的數(shù)據(jù)b8,b7,b6,..b1。此外,對(duì)應(yīng)圖13的數(shù)據(jù)c的是8比特的數(shù)據(jù)c8,c7,....c1。此外,對(duì)應(yīng)圖13的數(shù)據(jù)d的是8比特的數(shù)據(jù)d8,d7,....d1??傆?jì)24比特。
假設(shè)上次處理中數(shù)據(jù)b8,b7,b6的3比特為已參照的。因此,已參照數(shù)據(jù)數(shù)M=3。設(shè)本次參照的數(shù)據(jù)數(shù)N=15。這相當(dāng)于b5,..b1,cC8,c7,...,c1,d8,d7的數(shù)據(jù)D2。用粗框?qū)ζ溥M(jìn)行強(qiáng)調(diào)。
圖16B是將24比特的數(shù)據(jù)行b8,b7,b6,..b1,c8,c7,...c1,d8,d7,...d1左移位已參照數(shù)據(jù)數(shù)M=3比特,從最高位開(kāi)始存儲(chǔ)數(shù)據(jù)行b5,..b1,c8,c7,...c1,d8,d7,...d1,將低位3比特設(shè)為“0”的狀態(tài)。粗框的開(kāi)頭與第24比特一致。
在圖16C中,包括b5,..b1,c8,c7,...c1,d8,d7,...d1,0,0,0的24比特的數(shù)據(jù)行右移位9比特,從最高位開(kāi)始的9比特設(shè)置“0”。從“24”中減去本次參照的數(shù)據(jù)數(shù)N=15得到右移位量的9比特。粗框的末尾與第1比特一致。更具體地,從緩沖寄存器103的最高位開(kāi)始的15比特中存儲(chǔ)數(shù)據(jù)D2的b5,..b1,c8,c7,...c1,d8,d7,至此本次參照的數(shù)據(jù)D2被提取出來(lái)。
當(dāng)已參照數(shù)據(jù)數(shù)M上加上本次參照的數(shù)據(jù)數(shù)N后,M+N=3+15=18,地址寄存器102中將已參照數(shù)據(jù)數(shù)M從“3”更新為“18”?!?8”相當(dāng)于2×23(4比特)以上,因此將地址值進(jìn)行2個(gè)進(jìn)位,更新為地址值0×103。由于數(shù)據(jù)b的全部8比特的數(shù)據(jù)參照和數(shù)據(jù)c的全部8比特的數(shù)據(jù)參照已經(jīng)完成,并且進(jìn)入數(shù)據(jù)d的參照,因此前進(jìn)兩個(gè)地址。已參照數(shù)據(jù)數(shù)M的“18”是16進(jìn)制中的“0×12”,是2進(jìn)制中的“0b10002”,但除去進(jìn)位的第5比特的從低位開(kāi)始的4比特為“0b0002”,為16進(jìn)制的“0×2”。這對(duì)應(yīng)于數(shù)據(jù)e的高位2個(gè)比特e16,e15已參照。
如圖13所示,地址0×103的高位8比特中已經(jīng)存儲(chǔ)與前2個(gè)的地址0×101的低位側(cè)8比特的數(shù)據(jù)d(d8,d7,....,d1)相同的數(shù)據(jù),可繼續(xù)使用該數(shù)據(jù)。不再需要用于地址更新的特別監(jiān)視和運(yùn)算。
在第三實(shí)施例所示例子中,低位16比特的數(shù)據(jù)也配置在其下一地址的高位16比特,因此可一次提取出至少16比特+1比特的17比特的數(shù)據(jù)。此外,與干擾數(shù)據(jù)的情況相比,需要3倍的存儲(chǔ)器容量。
此外,圖13的地址寄存器102、緩沖寄存器103并不執(zhí)行任何特殊操作,可利用處理器通常使用的通用緩沖寄存器來(lái)實(shí)現(xiàn),并不需要特別專(zhuān)用的寄存器。但是,和現(xiàn)有技術(shù)中的訪問(wèn)地址、已參照數(shù)據(jù)數(shù)一樣,地址寄存器102的值需要與對(duì)存儲(chǔ)器101的空白區(qū)域的存儲(chǔ)(saving)/恢復(fù)(returning)相關(guān)。
第四實(shí)施例參照?qǐng)D17到圖19說(shuō)明第四實(shí)施例的可變長(zhǎng)度解碼裝置。為方便說(shuō)明,第四實(shí)施例的處理器將以基于24比特的處理器為示例,但本發(fā)明不限定于此。
圖17中,存儲(chǔ)器101存儲(chǔ)將24比特作為1個(gè)字的數(shù)據(jù),各地址為高位8比特、中位8比特、低位8比特,與某地址的低位比特側(cè)相同的數(shù)據(jù)也配置在下一地址的高位比特側(cè)。
地址寄存器102是比特寬度為32的寄存器,由保持地址值的高位比特側(cè)(第一寄存器部分)和保持已參照數(shù)據(jù)數(shù)M的比特寬度C(第四實(shí)施例中C=4)的低位比特側(cè)(第二寄存器部分)構(gòu)成。
緩沖寄存器103是保持從存儲(chǔ)器101裝載的數(shù)據(jù)的比特寬度B(第四實(shí)施例中B=24)的緩沖寄存器。
這里,存儲(chǔ)器101的比特寬度A為24,地址寄存器102的第二寄存器部分的比特寬度C為4,存儲(chǔ)器101的低位比特側(cè)的比特?cái)?shù)D為8,A、C、D的之間有D=A-2C的關(guān)系。A、C之間,設(shè)P=2C時(shí),有A=32×P]]>的關(guān)系。
即,P=24=16,A=32×16=24.]]>在第四實(shí)施例的可變長(zhǎng)度解碼裝置中,進(jìn)行可變長(zhǎng)度解碼的處理流程與第一實(shí)施例的處理流程(圖2)相一致。
在根據(jù)本發(fā)明的第四實(shí)施例中,從緩沖寄存器103提取本次參照的數(shù)據(jù)的一般處理流程與第三實(shí)施例的處理流程(圖14)相一致。
在第四實(shí)施例中,隨著該處理流程變化的數(shù)據(jù)狀態(tài)也與第三實(shí)施例相同(圖15)。
第四實(shí)施例中,作為初始狀態(tài),如圖17所示,在存儲(chǔ)器101中從0×100地址開(kāi)始按a,b,c,..的順序存儲(chǔ)數(shù)據(jù),地址寄存器102中,地址值為0×101、已參照數(shù)據(jù)數(shù)為0×3,本次參照的數(shù)據(jù)數(shù)為N。
下面說(shuō)明處理的一個(gè)例子。
步驟1中,從地址寄存器102分離并提取出已參照數(shù)據(jù)數(shù)0×3和地址值0×101。
步驟2中,使用步驟1分離的地址值0×101訪問(wèn)存儲(chǔ)器101的0×101地址,裝載數(shù)據(jù)c,d,e,存儲(chǔ)到緩沖寄存器103中。
步驟3中,使用步驟1分離的已參照數(shù)據(jù)數(shù)0×3和本次參照的數(shù)據(jù)數(shù)N從存儲(chǔ)數(shù)據(jù)c,d,e的緩沖寄存器103僅提取出本次參照的數(shù)據(jù)。用步驟3-1a到步驟3-3a表示具體提取方式的一個(gè)例子。
步驟3-1a中,將位于緩沖寄存器103的數(shù)據(jù)c,d,e左移位已參照數(shù)據(jù)數(shù)0×3。本次參照的數(shù)據(jù)D1的開(kāi)頭移位到緩沖寄存器103的最高位比特側(cè)。在通??衫玫奶幚砥髦?,當(dāng)如上所述移位時(shí),低位比特側(cè)(右)的沒(méi)有數(shù)據(jù)的部分一般擴(kuò)展為“0”(參照?qǐng)D15)。
步驟3-2a中,算出從“24”減去本次參照的數(shù)據(jù)數(shù)N的值。
步驟3-3a中,將步驟3-1a移位的數(shù)據(jù)再向右移位步驟3-2a算出的值。本次參照的數(shù)據(jù)D1的末尾移位到緩沖寄存器103的最低位比特側(cè)。此時(shí),移位稱(chēng)為邏輯移位。在邏輯移位中,高位比特側(cè)(左)沒(méi)有數(shù)據(jù)的部分?jǐn)U展為“0”(參照?qǐng)D15)。
步驟4中,地址寄存器102中加上本次參照的數(shù)據(jù)數(shù)N,更新地址寄存器102的值。此時(shí),通過(guò)相加,已參照數(shù)據(jù)數(shù)更新為(0×3+N),另外,通過(guò)從保持已參照數(shù)據(jù)數(shù)的低位比特側(cè)向保持地址值的高位比特側(cè)的進(jìn)位還自動(dòng)實(shí)現(xiàn)地址值的更新。
例如N=0×2的情況下,已參照數(shù)據(jù)數(shù)為0×3+0×2=0×5,可用4比特表示,地址值仍為0×101,沒(méi)有進(jìn)位。N=0×8時(shí),已參照數(shù)據(jù)數(shù)為0×3+0×8=0×b,變?yōu)?比特,產(chǎn)生進(jìn)位,地址值從0×101更新為0×102。此外,N=0×f時(shí),已參照數(shù)據(jù)數(shù)為0×3+0×f=0×12,變?yōu)?比特,產(chǎn)生進(jìn)位,地址值從0×101更新為0×102。
為幫助理解,舉出更具體例子來(lái)說(shuō)明。
圖18A表示從存儲(chǔ)器101的0×101裝載存儲(chǔ)到緩沖寄存器103中的數(shù)據(jù)。對(duì)應(yīng)圖17的數(shù)據(jù)c的是8比特的數(shù)據(jù)c8,c7,c6,..c1。此外,對(duì)應(yīng)圖17的數(shù)據(jù)d的是8比特的數(shù)據(jù)d8,d7,....d1。此外,對(duì)應(yīng)圖17的數(shù)據(jù)e的是8比特的數(shù)據(jù)e8,e7,....e1。總計(jì)24比特。
假設(shè)上次處理中數(shù)據(jù)c8,c7,c6的3比特為已參照的。因此,已參照數(shù)據(jù)數(shù)M=3。設(shè)本次參照的數(shù)據(jù)數(shù)N=9。這相當(dāng)于c5,c4,..c1,d8,...d5的數(shù)據(jù)D2,用粗框?qū)ζ溥M(jìn)行強(qiáng)調(diào)。
圖18B是將24比特的數(shù)據(jù)行c8,c7,c6,..c1,c8,c7,...c1,d8,d7,...d1,e8,e7,...e1左移位已參照數(shù)據(jù)數(shù)M=3比特,從最高位開(kāi)始存儲(chǔ)數(shù)據(jù)行c5,..c1,d8,d7,...d1,e8,e7,...e1,將低位3比特設(shè)為“0”的狀態(tài)。粗框的開(kāi)頭與第24比特一致。
圖18C表示將24比特的數(shù)據(jù)行c5,..c1,d8,d7,...d1,e8,e7,...e1,0,0,0右移位9比特,從最高位開(kāi)始的15比特設(shè)置“0”的狀態(tài)。從“24”中減去本次參照的數(shù)據(jù)數(shù)N=9得到右移位量的15比特。粗框的末尾與第1比特一致。更具體地,從緩沖寄存器103的最低位開(kāi)始的9比特中存儲(chǔ)數(shù)據(jù)D2的c5,c4,..c1,d8,,...d5,至此本次參照的數(shù)據(jù)D2被提取出來(lái)。
已參照數(shù)據(jù)數(shù)M上加上本次參照的數(shù)據(jù)數(shù)N后,M+N=3+9=12,地址寄存器102中將已參照數(shù)據(jù)數(shù)M從“3”更新為“12”?!?2”小于24(4比特),因此不進(jìn)行地址值的進(jìn)位,維持原來(lái)的地址值0×101不變。
通過(guò)圖19說(shuō)明接著圖18的處理。
圖19A表示存儲(chǔ)器101的0×101的數(shù)據(jù)裝載到緩沖寄存器103的狀態(tài)(與圖19A相同)。
到至今止的處理中,數(shù)據(jù)c8,c7,...,c1,d8,d7,...,d5的12比特為已參照的,已參照數(shù)據(jù)數(shù)M=12。設(shè)本次參照的數(shù)據(jù)數(shù)N=9。這相當(dāng)于d4,...d1,e8,e7,...e4的數(shù)據(jù)D3。用粗框?qū)ζ溥M(jìn)行強(qiáng)調(diào)。
圖19B是將24比特的數(shù)據(jù)行c8,c7,...,c1,d8,d7,...,d1,e8,e7,...,e1左移位已參照數(shù)據(jù)數(shù)M=12比特,從最高位開(kāi)始存儲(chǔ)數(shù)據(jù)行d4,d3,...,d1,e8,e7,...,e1,將低位12比特設(shè)為“0”。粗框的開(kāi)頭與第24比特一致。
圖19C表示將24比特的數(shù)據(jù)行d4,d3,..,d1,e8,e7,..e1,0,0,...,0右移位15比特,從最高位開(kāi)始的15比特設(shè)置“0”。從“24”中減去本次參照數(shù)N=9,得到15比特。得到15比特。粗框的末尾與第一位對(duì)應(yīng)。更具體地,從緩沖寄存器103的最低位開(kāi)始的9比特存儲(chǔ)數(shù)據(jù)D3的d4,..,d1,e8,e7,...,e4,至此本次參照的數(shù)據(jù)D2被提取出來(lái)。
已參照數(shù)據(jù)數(shù)M上加上本次參照的數(shù)據(jù)數(shù)N后,M+N=12+9=21,地址寄存器102中將已參照數(shù)據(jù)數(shù)M從“12”更新為“21”?!?1”相當(dāng)于24(4比特)以上,因此進(jìn)行地址值的進(jìn)位,更新為下一地址值0×102。數(shù)據(jù)c和數(shù)據(jù)d的全部16比特的數(shù)據(jù)已參照成,進(jìn)入數(shù)據(jù)e的參照,因此進(jìn)入下一地址。已參照數(shù)據(jù)數(shù)M的“21”是16進(jìn)制中的“0×15”,是2進(jìn)制中的“0b10101”,但是,除去進(jìn)位的第5比特的從低位開(kāi)始的4比特為“0b0101”,為16進(jìn)制的“0×5”。這對(duì)應(yīng)于數(shù)據(jù)E的高位5個(gè)比特c8,c7,..e4已參照。
如圖17所示,從地址0×101進(jìn)入下一地址0×102時(shí),這里的高位8比特中已經(jīng)存儲(chǔ)與前1個(gè)的地址0×101的低位側(cè)8比特的數(shù)據(jù)e(e8,e7,....,e1)相同的數(shù)據(jù),可以繼續(xù)使用。不再需要用于地址更新的特別監(jiān)視和運(yùn)算。
在第四實(shí)施例所示例子中,低位8比特的數(shù)據(jù)也配置在其下一地址的高位8比特,因此可一次提取出至少8比特+1比特的9比特的數(shù)據(jù)。此外,與干擾數(shù)據(jù)的情況相比,需要4/3倍的存儲(chǔ)器容量。
此外,圖17的地址寄存器102、緩沖寄存器103并不執(zhí)行任何特殊操作,可利用處理器通常使用的通用緩沖寄存器來(lái)實(shí)現(xiàn),并不需要特別專(zhuān)用的寄存器。但是,和現(xiàn)有技術(shù)中的訪問(wèn)地址、已參照數(shù)據(jù)數(shù)一樣,地址寄存器102的值需要與對(duì)存儲(chǔ)器101的空白區(qū)域的存儲(chǔ)(saving)/恢復(fù)(returning)相關(guān)。
第五實(shí)施例參照?qǐng)D20到圖21說(shuō)明第五實(shí)施例的可變長(zhǎng)度解碼裝置。為方便說(shuō)明,第五實(shí)施例的處理器將以基于32比特的處理器為示例,但本發(fā)明不限定于此。
圖20中,存儲(chǔ)器101存儲(chǔ)將32比特作為1個(gè)字的數(shù)據(jù),各地址為高位8比特、第一中位8比特、第二中位8比特、低位8比特,與某地址的第一中位比特側(cè)相同的數(shù)據(jù)配置在下一地址的高位比特側(cè),與某地址的第二中位比特相同的數(shù)據(jù)也配置在下一地址的第一中位比特處,與某地址的低位比特側(cè)相同的數(shù)據(jù)也配置在下一地址的第二中位比特處。
地址寄存器102是比特寬度為32的寄存器,由保持地址值的高位比特側(cè)(第一寄存器部分)和保持已參照數(shù)據(jù)數(shù)M的比特寬度C(第四實(shí)施例中C=3)的低位比特側(cè)(第二寄存器部分)構(gòu)成。
緩沖寄存器103是保持從存儲(chǔ)器101裝載的數(shù)據(jù)的比特寬度B(第五實(shí)施例中B=32)的寄存器。
這里,存儲(chǔ)器101的比特寬度A為32,地址寄存器102的第二寄存器部分的比特寬度C為3,存儲(chǔ)器101的低位比特側(cè)的比特?cái)?shù)D為24,A、C、D的之間有D=A-2C的關(guān)系。A、C之間,設(shè)P=2C時(shí),有A=4×P的關(guān)系。也就是,P=23=8,A=4×8=32。
在第五實(shí)施例的可變長(zhǎng)度解碼裝置中,進(jìn)行可變長(zhǎng)度解碼的處理流程與第一實(shí)施例的處理流程(圖2)相同。
在根據(jù)本發(fā)明的第五實(shí)施例的可變長(zhǎng)度解碼裝置中,從緩沖寄存器103提取本次參照的數(shù)據(jù)的一般處理流程與第一實(shí)施例的處理流程(圖3)相同。
在根據(jù)本發(fā)明的第五實(shí)施例的可變長(zhǎng)度解碼裝置中,在圖4中示出隨著圖3所示的處理流程變化的數(shù)據(jù)狀態(tài)變化。
第五實(shí)施例的可變長(zhǎng)度解碼裝置中,作為初始狀態(tài),如圖2所示,在存儲(chǔ)器101中從0×100地址開(kāi)始按a,b,c,..的順序存儲(chǔ)數(shù)據(jù),地址寄存器102中,地址值為0×101、已參照數(shù)據(jù)數(shù)為0×3,本次參照的數(shù)據(jù)數(shù)為N。
下面說(shuō)明處理的一個(gè)例子。
步驟1中,從地址寄存器102分離并提取出已參照數(shù)據(jù)數(shù)0×3和地址值0×101。
步驟2中,使用步驟1分離的地址值0×101訪問(wèn)存儲(chǔ)器101的0×101地址,裝載數(shù)據(jù)b,c,d,e,存儲(chǔ)到緩沖寄存器103中。
步驟3中,使用步驟1分離的已參照數(shù)據(jù)數(shù)0×3和本次參照的數(shù)據(jù)數(shù)N從存儲(chǔ)數(shù)據(jù)b,c,d,e的緩沖寄存器103僅提取出本次參照的數(shù)據(jù)。用步驟3-1a到步驟3-3a表示具體提取方式的一個(gè)例子。
步驟3-1a中,將位于緩沖寄存器103的數(shù)據(jù)b,c,d,e左移位已參照數(shù)據(jù)數(shù)0×3。本次參照的數(shù)據(jù)D2的開(kāi)頭移位到緩沖寄存器103的最高位比特側(cè)。在在通??衫玫奶幚砥髦校?dāng)如上所述移位時(shí),低位比特側(cè)(右)的沒(méi)有數(shù)據(jù)的部分一般擴(kuò)展為“0”(參照?qǐng)D4)。
步驟3-2a中,算出從“32”減去本次參照的數(shù)據(jù)數(shù)N的值。
步驟3-3a中,將步驟3-1a移位的數(shù)據(jù)再向右移位步驟3-2a算出的值。本次參照的數(shù)據(jù)D1的末尾移位到緩沖寄存器103的最低位比特側(cè)。此時(shí),移位稱(chēng)為邏輯移位。在邏輯移位中,高位比特側(cè)(左)沒(méi)有數(shù)據(jù)的部分?jǐn)U展為“0”(參照?qǐng)D4)。
步驟4中,地址寄存器102中加上本次參照的數(shù)據(jù)數(shù)N,更新地址寄存器102的值。此時(shí),通過(guò)相加,已參照數(shù)據(jù)數(shù)更新為(0×3+N),另外,通過(guò)從保持已參照數(shù)據(jù)數(shù)的低位比特側(cè)向保持地址值的高位比特側(cè)的進(jìn)位還自動(dòng)實(shí)現(xiàn)地址值的更新。
例如N=0×2的情況下,已參照數(shù)據(jù)數(shù)為0×3+0×2=0×5,可用3比特表示,沒(méi)有進(jìn)位,地址值仍為0×101。N=0×8時(shí),已參照數(shù)據(jù)數(shù)為0×3+0×8=0×b,變?yōu)?比特,產(chǎn)生進(jìn)位,地址值從0×101更新為0×102。此外,N=0×f時(shí),已參照數(shù)據(jù)數(shù)為0×3+0×f=0×12,變?yōu)?比特,產(chǎn)生進(jìn)位,地址值從0×101更新為0×102。
為幫助理解,舉出更具體例子來(lái)說(shuō)明。
圖21A表示從存儲(chǔ)器101的0×101裝載存儲(chǔ)到緩沖寄存器103中的數(shù)據(jù)。對(duì)應(yīng)圖20的數(shù)據(jù)b的是8比特的數(shù)據(jù)b8,b7,b6,..,b1。對(duì)應(yīng)圖20的數(shù)據(jù)c的是8比特的數(shù)據(jù)c8,c7,c6,..c1。此外,對(duì)應(yīng)圖20的數(shù)據(jù)d的是8比特的數(shù)據(jù)d8,d7,....d1。此外,對(duì)應(yīng)圖20的數(shù)據(jù)e的是8比特的數(shù)據(jù)e8,e7,....e1??傆?jì)32比特。
假設(shè)上次處理中數(shù)據(jù)b8,b7,b6的3比特為已參照的。因此,已參照數(shù)據(jù)數(shù)M=3。設(shè)本次參照的數(shù)據(jù)數(shù)N=23。這相當(dāng)于b5,b4,..b1,d8,...d1,e8,e7的數(shù)據(jù)D2,用粗框?qū)ζ溥M(jìn)行強(qiáng)調(diào)。
圖21B是將32比特的數(shù)據(jù)行b8,..b1,c8,..c1,d8,...d1,e8,...e1左移位已參照數(shù)據(jù)數(shù)M=3比特,從最高位開(kāi)始存儲(chǔ)數(shù)據(jù)行b5,..b1,c8,..c1,d8,,...d1,e8,...e1,將低位3比特設(shè)為“0”。粗框的開(kāi)頭與第32比特一致。
圖21C表示將32比特的數(shù)據(jù)行b5,..b1,c8,..c1,d8,...d1,e8,...e1,0,0,0右移位9比特,從最高位開(kāi)始的9比特設(shè)置“0”。從“32”中減去本次參照的數(shù)據(jù)數(shù)N=23得到右移位量的9比特。粗框的末尾與第1比特一致。更具體地,從緩沖寄存器103的最低位開(kāi)始的23比特中存儲(chǔ)數(shù)據(jù)D2的b5,b4,..b1,,c8,..c1,d8,,...d1,e8,e7的狀態(tài),至此本次參照的數(shù)據(jù)D2被提取出來(lái)。
已參照數(shù)據(jù)數(shù)M上加上本次參照的數(shù)據(jù)數(shù)N后,M+N=3+23=26,地址寄存器102中將已參照數(shù)據(jù)數(shù)M從“3”更新為“26”?!?6”位于等于或者大于3×23的范圍之內(nèi),因此將地址值進(jìn)行3個(gè)進(jìn)位,更新為地址值0×104。由于數(shù)據(jù)b,c,d的全部24比特的數(shù)據(jù)已參照完成,并且進(jìn)入數(shù)據(jù)E的參照,因此向前3個(gè)的地址。已參照數(shù)據(jù)數(shù)M的“26”是16進(jìn)制中的“0×1a”,是2進(jìn)制中的“0b11010”,但是,除去進(jìn)位的第4,5比特的從低位開(kāi)始的3比特為“0b010”,為16進(jìn)制的“0×2”。這對(duì)應(yīng)于數(shù)據(jù)e的高位2個(gè)比特e8,e7已參照。
如圖20所示,地址0×104的高位8比特中已經(jīng)存儲(chǔ)與前3個(gè)的地址0×101的低位側(cè)8比特的數(shù)據(jù)e(e8,e7,....,e1)相同的數(shù)據(jù),可繼續(xù)使用數(shù)據(jù)。不再需要用于地址更新的特別監(jiān)視和運(yùn)算。
在第五實(shí)施例5所示例子中,低位24比特的數(shù)據(jù)配置在其下一地址的高位24比特,因此可一次提取出至少24比特+1比特的25比特的數(shù)據(jù)。此外,與干擾數(shù)據(jù)的情況相比,需要4倍的存儲(chǔ)器容量。
此外,圖20的地址寄存器102、緩沖寄存器103并不執(zhí)行任何特殊操作,可利用處理器通常使用的通用緩沖寄存器來(lái)實(shí)現(xiàn),并不需要特別專(zhuān)用的寄存器。但是,和現(xiàn)有技術(shù)中的訪問(wèn)地址、已參照數(shù)據(jù)數(shù)一樣,地址寄存器102的值需要與對(duì)存儲(chǔ)器101的空白區(qū)域的存儲(chǔ)(saving)/恢復(fù)(returning)相關(guān)。
第六實(shí)施例參照?qǐng)D22到圖24說(shuō)明第六實(shí)施例的可變長(zhǎng)度解碼裝置。
為方便說(shuō)明,第六實(shí)施例的處理器將以基于32比特的處理器為示例,但本發(fā)明不限定于此。
圖22中,存儲(chǔ)器101存儲(chǔ)將A(第六實(shí)施例中A=32)比特作為1個(gè)字的數(shù)據(jù),各地址由高位8比特、第一中位8比特、第二中位8比特、低位8比特構(gòu)成。存儲(chǔ)器101中,與某地址的低位比特側(cè)相同的數(shù)據(jù)也配置在下一地址的高位比特側(cè)。
地址寄存器102是比特寬度32的寄存器,由保持地址值的高位比特側(cè)(第一寄存器部分)和保持已參照數(shù)據(jù)數(shù)M的比特寬度C(第六實(shí)施例中C=5)的低位比特側(cè)(第二寄存器部分)構(gòu)成。
緩沖寄存器103是保持從存儲(chǔ)器101裝載的數(shù)據(jù)的比特寬度B(第六實(shí)施例中B=32)的寄存器。
本第六實(shí)施例中,其特征是包括將地址寄存器102的值與本次參照的比特?cái)?shù)N相加的特殊加法器104。
當(dāng)已參照比特?cái)?shù)為M、本次參照的比特?cái)?shù)為N時(shí),(E是A-D的至少為1的整數(shù),第六實(shí)施例中為32-8=24),特殊加法器104將 的商(整數(shù))加到地址寄存器101的高位側(cè)(第一寄存器部分),將余數(shù)G(整數(shù))設(shè)置在地址寄存器101的低位側(cè)(第二寄存器部分)。
這里,上述E中有E=H×2L的關(guān)系。第六實(shí)施例中E=24=3×23,H=3。
關(guān)于存儲(chǔ)器101的數(shù)據(jù),配置成高位24比特的剩余的低位8比特的數(shù)據(jù)也存儲(chǔ)在下一地址的高位側(cè)。具體說(shuō),例如在地址0×101,高位8比特存儲(chǔ)數(shù)據(jù)d、第一中位8比特存儲(chǔ)數(shù)據(jù)e、第二中位8比特存儲(chǔ)數(shù)據(jù)f、低位比特側(cè)存儲(chǔ)數(shù)據(jù)g,而下一地址0×102的高位比特側(cè)存儲(chǔ)數(shù)據(jù)g。地址0×102的低位比特側(cè)存儲(chǔ)數(shù)據(jù)j,而下一地址0×103的高位比特側(cè)存儲(chǔ)數(shù)據(jù)j。
在第六實(shí)施例的可變長(zhǎng)度解碼裝置中,進(jìn)行可變長(zhǎng)度解碼的處理流程與第一實(shí)施例的處理流程(圖2)相同。
在第六實(shí)施例的可變長(zhǎng)度解碼裝置中,從緩沖寄存器103提取本次參照的數(shù)據(jù)的一般處理流程與第一實(shí)施例的處理流程(圖3)相同。
在第六實(shí)施例的可變長(zhǎng)度解碼裝置中,與第一實(shí)施例同樣,隨著圖3所示的處理流程變化的數(shù)據(jù)狀態(tài)在圖4中示出。
第六實(shí)施例的可變長(zhǎng)度解碼裝置中,作為初始狀態(tài),如圖所示,在存儲(chǔ)器101中從0×100地址開(kāi)始按a,b,c,..的順序存儲(chǔ)數(shù)據(jù),地址寄存器102的地址值為0×101、已參照數(shù)據(jù)數(shù)為0×3,本次參照的數(shù)據(jù)數(shù)為N。
下面說(shuō)明處理的一個(gè)例子。
步驟1中,從地址寄存器102分離并提取出已參照數(shù)據(jù)數(shù)0×3和地址值0×101。
步驟2中,使用步驟1分離的地址值0×101訪問(wèn)存儲(chǔ)器101的0×101地址,裝載數(shù)據(jù)d,e,f,g存儲(chǔ)到緩沖寄存器103中。
步驟3中,使用步驟1分離的已參照數(shù)據(jù)數(shù)0×3和本次參照的數(shù)據(jù)數(shù)N從存儲(chǔ)數(shù)據(jù)d,e,f,g的緩沖寄存器103僅提取出本次參照的數(shù)據(jù)。用步驟3-1a到步驟3-3a表示具體提取方式的一個(gè)例子。
步驟3-1a中,將位于緩沖寄存器103的數(shù)據(jù)d,e,f,g左移位已參照數(shù)據(jù)數(shù)0×3。本次參照的數(shù)據(jù)D2的開(kāi)頭移位到緩沖寄存器103的最高位比特側(cè)。在通??衫玫奶幚砥髦校?dāng)如上所述移位時(shí),低位比特側(cè)(右)的沒(méi)有數(shù)據(jù)的部分一般擴(kuò)展為“0”(參照?qǐng)D4)。
步驟3-2a中,算出從“32”減去本次參照的數(shù)據(jù)數(shù)N的值。
步驟3-3a中,將步驟3-1a移位的數(shù)據(jù)再向右移位步驟3-2a算出的值。本次參照的數(shù)據(jù)D2的末尾移位到緩沖寄存器103的最低位比特側(cè)。此時(shí),移位稱(chēng)為邏輯移位。在邏輯移位中,高位比特側(cè)(左)沒(méi)有數(shù)據(jù)的部分?jǐn)U展為“0”(參照?qǐng)D4)。
步驟4中,用特殊加法器104在地址寄存器102中加上本次參照的數(shù)據(jù)數(shù)N,更新地址寄存器102的值。此時(shí),通過(guò)相加,已參照數(shù)據(jù)數(shù)更新為(0×3+N)/24的余數(shù),另外,通過(guò)從保持已參照數(shù)據(jù)數(shù)的低位比特側(cè)向保持地址值的高位比特側(cè)的(0×3+N)/24的商的值的相加還自動(dòng)實(shí)現(xiàn)地址值的更新。
例如N=0×8時(shí),已參照數(shù)據(jù)數(shù)為0×3+0×8=0×a,為24以下,不產(chǎn)生進(jìn)位,地址值仍為0×101。M=0×13、N=0×8時(shí),已參照數(shù)據(jù)數(shù)為0×13+0×8=0×1b(27),27/24的商為0×1,余數(shù)為0×3,地址值為0×101+0×1,更新為0×102。
為幫助理解,舉出更具體例子來(lái)說(shuō)明。
圖23A表示從存儲(chǔ)器101的0×101裝載存儲(chǔ)到緩沖寄存器103中的數(shù)據(jù)。對(duì)應(yīng)圖22數(shù)據(jù)d的是8比特的數(shù)據(jù)d8,d7,...d1。此外,對(duì)應(yīng)圖22的數(shù)據(jù)e的是8比特的數(shù)據(jù)e8,e7,...e1。此外,對(duì)應(yīng)圖22的數(shù)據(jù)f的是8比特的數(shù)據(jù)f8,f7,f6,..f1。對(duì)應(yīng)圖22的數(shù)據(jù)g的是8比特的數(shù)據(jù)g8,g7,g6,..g1??傆?jì)32比特。
假設(shè)上次處理中數(shù)據(jù)d8,d7,d6的3比特為已參照的。因此,已參照數(shù)據(jù)數(shù)M=3。設(shè)本次參照的數(shù)據(jù)數(shù)N=8。這相當(dāng)于d5,d4,..d1,e8,e7,e6的數(shù)據(jù)D2。用粗框?qū)ζ溥M(jìn)行強(qiáng)調(diào)。
圖23B是將32比特的數(shù)據(jù)行d8,...d1,e8,...e1,f8,..,f1,g8,...,g1左移位已參照數(shù)據(jù)數(shù)M=3比特,從最高位開(kāi)始存儲(chǔ)數(shù)據(jù)行d5,..d1,e8,..e1,f8,,...f1,g8,...g1,將低位3比特設(shè)為“0”。粗框的開(kāi)頭與第32比特一致。
圖23C表示將32比特的數(shù)據(jù)行d5,..d1,e8,..e1,f8,,...f1,g8,...g1,0,0,0右移位24比特,從最高位開(kāi)始的24比特設(shè)置“0”。從“32”中減去本次參照的數(shù)據(jù)數(shù)N=8得到右移位量的24比特。粗框的末尾與第1比特一致。更具體地,從緩沖寄存器103的最低位開(kāi)始的23比特中存儲(chǔ)數(shù)據(jù)D2的d5,d4,..d1,e8,e7,e6,至此本次參照的數(shù)據(jù)D2被提取出來(lái)。
已參照數(shù)據(jù)數(shù)M上加上本次參照的數(shù)據(jù)數(shù)N后,M+N=3+9=11,地址寄存器102中將已參照數(shù)據(jù)數(shù)M從“3”更新為“12”?!?2”在24以下,因此不進(jìn)行地址值的相加,維持原來(lái)的地址值0×101。
通過(guò)圖19說(shuō)明接著圖18的處理。
圖19A表示存儲(chǔ)器101的0×101的數(shù)據(jù)裝載到緩沖寄存器103的狀態(tài)(與圖19A相同)。
到至今止的處理中,數(shù)據(jù)c8,c7,...,c1,d8,d7,...,d5的12比特為已參照的,已參照數(shù)據(jù)數(shù)M=12。設(shè)本次參照的數(shù)據(jù)數(shù)N=9。這相當(dāng)于d4,...d1,e8,e7,...e4的數(shù)據(jù)D3。用粗框?qū)ζ溥M(jìn)行強(qiáng)調(diào)。
圖19B是將24比特的數(shù)據(jù)行c8,c7,...,c1,d8,d7,...,d1,e8,e7,...,e1左移位已參照數(shù)據(jù)數(shù)M=12比特,從最高位開(kāi)始存儲(chǔ)數(shù)據(jù)行d4,d3,...,d1,e8,e7,...,e1,將低位12比特設(shè)為“0”。粗框的開(kāi)頭與第24比特一致。
圖19C表示將24比特的數(shù)據(jù)行d4,d3,..,d1,e8,e7,..e1,0,0,...,0右移位15比特,從最高位開(kāi)始的15比特設(shè)置“0”。從“24”中減去本次參照數(shù)N=9,得到15比特。得到15比特。粗框的末尾與第一位對(duì)應(yīng)。更具體地,從緩沖寄存器103的最低位開(kāi)始的9比特存儲(chǔ)數(shù)據(jù)D3的d4,..,d1,e8,e7,...,e4,至此本次參照的數(shù)據(jù)D2被提取出來(lái)。
已參照數(shù)據(jù)數(shù)M上加上本次參照的數(shù)據(jù)數(shù)N后,M+N=3+8=11,地址寄存器102中將已參照數(shù)據(jù)數(shù)M從“3”更新為“11”?!?1”位于等于或者低于24的范圍內(nèi),因比增加地址值,保持地址值0×101。
接著,到現(xiàn)在為止的處理中,數(shù)據(jù)d8,...,d1,e8,...,e1,f8,f7,f6的19比特已參照成。因此已參照數(shù)據(jù)數(shù)M=19。本次參照的數(shù)據(jù)數(shù)N=8。這相當(dāng)于f5,f4,..,f1,g8,g7,g6的數(shù)據(jù)D2。用粗框?qū)ζ溥M(jìn)行強(qiáng)調(diào)。
圖24是將32比特的數(shù)據(jù)d8,..,d1,e8,...,e1,f8,...,f1,g8,...,g1向左移位已參照數(shù)據(jù)數(shù)M=19比特,從最高位開(kāi)始存儲(chǔ)數(shù)據(jù)行f5,..,f1,g8,...,g1,將低位19比特設(shè)置為“0”。粗框的開(kāi)頭與第32比特一致。
圖24C是將32比特的數(shù)據(jù)f5,...,f1,g8,...,g1,0,...0向右移位24比特,從最高位開(kāi)始的24比特設(shè)置“0”。從“32”中減去本次參照的數(shù)據(jù)數(shù)N=8得到右移位量24比特。粗框的末尾與第1比特一致。更具體地,從緩沖寄存器103的最低位開(kāi)始的23比特中存儲(chǔ)數(shù)據(jù)D2的f5,f4,..f1,g8,g7,g6,至此本次參照的數(shù)據(jù)D2被提取出來(lái)。
已參照數(shù)據(jù)數(shù)M上加上本次參照的數(shù)據(jù)數(shù)N后,M+N=19+8=27,27/24的商為1,余數(shù)為3。因此,地址寄存器102中將已參照數(shù)據(jù)數(shù)M設(shè)為“3”。地址值上加1更新為地址值0×102。由于數(shù)據(jù)d,e,f的全部24比特的數(shù)據(jù)已參照成,進(jìn)入數(shù)據(jù)g的參照,因此前進(jìn)一個(gè)地址。已參照數(shù)據(jù)數(shù)M的“3”對(duì)應(yīng)于數(shù)據(jù)g的高位3個(gè)比特g8,g7,g6已參照的。
如圖22所示,地址0×102的高位8比特中已經(jīng)存儲(chǔ)與前1個(gè)的地址0×101的低位側(cè)8比特的數(shù)據(jù)e(g8,g7,....,g1)相同的數(shù)據(jù),可原樣繼續(xù)使用。不再需要用于地址更新的特別監(jiān)視和運(yùn)算。
第六實(shí)施例所示例子中,低位8比特的數(shù)據(jù)也配置在其下一地址的高位8比特,因此可一次提取出至少8比特+1比特的9比特的數(shù)據(jù)。此外,與干擾數(shù)據(jù)的情況相比,需要1.25倍的存儲(chǔ)器容量。
此外,圖20的地址寄存器102、緩沖寄存器103并不執(zhí)行任何特殊操作,可利用處理器通常使用的通用緩沖寄存器來(lái)實(shí)現(xiàn),并不需要特別專(zhuān)用的寄存器。但是,和現(xiàn)有技術(shù)中的訪問(wèn)地址、已參照數(shù)據(jù)數(shù)一樣,地址寄存器102的值需要與對(duì)存儲(chǔ)器101的空白區(qū)域的存儲(chǔ)(saving)/恢復(fù)(returning)相關(guān)。
第七實(shí)施例圖25表示使用上述實(shí)施形式的可變長(zhǎng)度裝置的再現(xiàn)系統(tǒng)。
如圖25所示,從DVD等的存儲(chǔ)系統(tǒng)流的數(shù)據(jù)存儲(chǔ)裝置501和接口、廣播等的流配送單元送來(lái)的系統(tǒng)流被多重分離單元502分離為視頻的可變長(zhǎng)度編碼的流和音頻的可變長(zhǎng)度編碼的流。
視頻的可變長(zhǎng)度編碼的流被可變長(zhǎng)度解碼裝置503進(jìn)行可變長(zhǎng)度解碼,解碼輸出到視頻信號(hào)處理單元504中。在視頻信號(hào)處理單元504中,以可變長(zhǎng)度解碼的數(shù)據(jù)為基礎(chǔ)再現(xiàn)視頻信號(hào),并輸出視頻信號(hào)到視頻顯示單元505上。
音頻的可變長(zhǎng)度編碼的流被可變長(zhǎng)度解碼裝置506進(jìn)行可變長(zhǎng)度解碼,解碼輸出到音頻信號(hào)處理單元507中。在音頻信號(hào)處理單元507中,以可變長(zhǎng)度解碼的數(shù)據(jù)為基礎(chǔ)再現(xiàn)音頻信號(hào),并輸出音頻信號(hào)到音頻輸出單元508上。
通過(guò)在可變長(zhǎng)度解碼裝置503、506中使用本發(fā)明的可變長(zhǎng)度解碼裝置,即便用處理性能低的處理器也可實(shí)現(xiàn)再現(xiàn)系統(tǒng),也可以廉價(jià)地構(gòu)建系統(tǒng)。
權(quán)利要求
1.一種可變長(zhǎng)度解碼裝置,包括存儲(chǔ)器,將與存儲(chǔ)在任意地址的低位比特側(cè)的數(shù)據(jù)相同的數(shù)據(jù)配置并存儲(chǔ)在該任意地址的下一地址的高位比特側(cè);緩沖寄存器,具有至少與所述存儲(chǔ)器的比特寬度相等的比特寬度,以存儲(chǔ)從所述存儲(chǔ)器裝載的數(shù)據(jù);地址寄存器,將訪問(wèn)所述存儲(chǔ)器的地址的值存儲(chǔ)到高位比特側(cè),將所述緩沖寄存器已參照的數(shù)據(jù)數(shù)存儲(chǔ)到低位比特側(cè),其特征在于通過(guò)對(duì)所述緩沖寄存器執(zhí)行使用了所述已參照數(shù)據(jù)數(shù)和本次參照的數(shù)據(jù)數(shù)的數(shù)據(jù)移位操作,從該緩沖寄存器提取出用于可變長(zhǎng)度解碼的本次應(yīng)參照的數(shù)據(jù),響應(yīng)于從所述緩沖寄存器提取出數(shù)據(jù),將本次參照的數(shù)據(jù)數(shù)與該已參照數(shù)據(jù)數(shù)相加,以更新所述地址寄存器的低位比特側(cè)的已參照數(shù)據(jù)數(shù),當(dāng)所述地址寄存器的低位比特側(cè)的更新后的已參照數(shù)據(jù)數(shù)不進(jìn)位時(shí),維持存儲(chǔ)到所述地址寄存器的高位比特側(cè)的地址值不變,當(dāng)更新后的已參照數(shù)據(jù)數(shù)有進(jìn)位時(shí),使用該進(jìn)位將地址值更新為下一地址值。
2.如權(quán)利要求1所述的可變長(zhǎng)度解碼裝置,其特征在于,所述存儲(chǔ)器以比特?cái)?shù)A為1個(gè)字存儲(chǔ)數(shù)據(jù),A是至少為2的整數(shù),所述比特?cái)?shù)A為2×P,其中P=2C,C是至少為1的整數(shù)。
3.如權(quán)利要求1所述的可變長(zhǎng)度解碼裝置,其特征在于,所述存儲(chǔ)器以比特?cái)?shù)A為1個(gè)字存儲(chǔ)數(shù)據(jù),A是至少為2的整數(shù),所述比特?cái)?shù)A為3×P,其中P=2C,C是至少為1的整數(shù)。
4.如權(quán)利要求1所述的可變長(zhǎng)度解碼裝置,其特征在于,所述存儲(chǔ)器以比特?cái)?shù)A為1個(gè)字存儲(chǔ)數(shù)據(jù),A是至少為2的整數(shù),所述比特?cái)?shù)A為 其中P=2C,C是至少為1的整數(shù)。
5.如權(quán)利要求1所述的可變長(zhǎng)度解碼裝置,其特征在于,所述存儲(chǔ)器以比特?cái)?shù)A為1個(gè)字存儲(chǔ)數(shù)據(jù),A是至少為2的整數(shù),所述比特?cái)?shù)A為4×P,其中P=2C,C是至少為1的整數(shù)。
6.一種可變長(zhǎng)度解碼裝置,包括存儲(chǔ)器,以比特?cái)?shù)A為1個(gè)字存儲(chǔ)數(shù)據(jù),A是至少為2的整數(shù);具有比特寬度B的緩沖寄存器,存儲(chǔ)從所述存儲(chǔ)器裝載的數(shù)據(jù),其中B為至少為A的整數(shù);地址寄存器,將訪問(wèn)所述存儲(chǔ)器的地址的值存儲(chǔ)到高位比特側(cè),并且將在所述緩沖寄存器已參照的數(shù)據(jù)數(shù)M存儲(chǔ)在低位比特側(cè),所述低位比特側(cè)的比特寬度為C,M是至少為0的整數(shù),C是至少為1的整數(shù),其特征在于與任意地址中比特?cái)?shù)為D的低位比特側(cè)存儲(chǔ)的數(shù)據(jù)相同的數(shù)據(jù)配置在存儲(chǔ)器中該任意地址的下一地址中比特?cái)?shù)為D的高位比特側(cè),其中D為A-2C的整數(shù),通過(guò)進(jìn)行使用了所述已參照數(shù)據(jù)數(shù)M和本次參照的數(shù)據(jù)數(shù)N的數(shù)據(jù)移位操作,從所述緩沖寄存器提取出為了可變長(zhǎng)度解碼本次應(yīng)參照的數(shù)據(jù),其中N為至少為1的整數(shù),并且,響應(yīng)于該提取,假設(shè)E為通過(guò)A-D運(yùn)算得到的至少為1的整數(shù),F(xiàn),G都是整數(shù), 運(yùn)算得到的商為F,余數(shù)為G,將所述商F加到所述地址寄存器的高位比特側(cè),以更新該高位比特側(cè)存儲(chǔ)的所述地址值;并且,設(shè)置所述余數(shù)G在所述地址寄存器的低位比特側(cè),以更新該低位比特側(cè)存儲(chǔ)的已參照數(shù)據(jù)數(shù)M。
7.如權(quán)利要求6所述的可變長(zhǎng)度解碼裝置,其特征在于,所述E等于H×2L,其中H、L都是至少為1的整數(shù)。
8.如權(quán)利要求7所述的可變長(zhǎng)度解碼裝置,其特征在于,所述H等于3。
9.如權(quán)利要求1到8中任一權(quán)利要求所述的可變長(zhǎng)度解碼裝置,其特征在于,進(jìn)一步包括用于在掩碼已參照數(shù)據(jù)時(shí)執(zhí)行移位的移位器,以從緩沖寄存器中提取本次應(yīng)參照數(shù)據(jù)。
10.一種使用可變長(zhǎng)度解碼裝置的可變長(zhǎng)度解碼方法,該裝置包括存儲(chǔ)器,以比特?cái)?shù)A為1個(gè)字存儲(chǔ)數(shù)據(jù),其中A為至少為2的整數(shù);比特寬度為B的緩沖寄存器,存儲(chǔ)從所述存儲(chǔ)器裝載的數(shù)據(jù),B為至少為A的整數(shù);地址寄存器,將對(duì)所述存儲(chǔ)器的訪問(wèn)地址存儲(chǔ)到高位比特側(cè),并且將所述緩沖寄存器已參照的數(shù)據(jù)數(shù)M存儲(chǔ)在比特寬度C的低位比特側(cè),M為至少為0的整數(shù),C為至少為1的整數(shù),其特征在于,包括步驟第一步驟,從所述地址寄存器分離訪問(wèn)地址值和已參照的數(shù)據(jù)數(shù)M,M為至少為0的整數(shù);第二步驟,在所述存儲(chǔ)器中,將與任意地址的比特?cái)?shù)D的低位比特側(cè)存儲(chǔ)的數(shù)據(jù)相同的數(shù)據(jù)配置在該任意地址的下一地址的比特?cái)?shù)D的高位比特側(cè),并且使用所述訪問(wèn)地址對(duì)所述存儲(chǔ)器進(jìn)行,將該存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)裝載到所述緩沖寄存器中,D為A-2C的整數(shù);第三步驟,通過(guò)執(zhí)行使用了所述已參照數(shù)據(jù)數(shù)M和本次參照的數(shù)據(jù)數(shù)N的數(shù)據(jù)移位操作,從所述緩沖寄存器提取出為了可變長(zhǎng)度解碼本次應(yīng)參照的數(shù)據(jù),N為至少為1的整數(shù);第四步驟,響應(yīng)于所述提取本次應(yīng)參照數(shù)據(jù),將本次參照的數(shù)據(jù)數(shù)N與已參照數(shù)據(jù)數(shù)M相加,以更新在地址寄存器的低位比特側(cè)存儲(chǔ)的已參照數(shù)據(jù)數(shù)M,并且,當(dāng)所述地址寄存器的低位比特側(cè)的更新后的已參照數(shù)據(jù)數(shù)不進(jìn)位時(shí),維持所述地址寄存器的高位比特側(cè)存儲(chǔ)的所述地址值不變,當(dāng)有進(jìn)位時(shí),使用該進(jìn)位更新所述地址值為下一地址值。
11.如權(quán)利要求10所述的可變長(zhǎng)度解碼方法,其特征在于,所述存儲(chǔ)器以比特?cái)?shù)A為1個(gè)字存儲(chǔ)數(shù)據(jù),A是至少為2的整數(shù),所述比特?cái)?shù)A為2×P,其中P=2C,C是至少為1的整數(shù)。
12.如權(quán)利要求10所述的可變長(zhǎng)度解碼方法,其特征在于,所述存儲(chǔ)器以比特?cái)?shù)A為1個(gè)字存儲(chǔ)數(shù)據(jù),A是至少為2的整數(shù),所述比特?cái)?shù)A為3×P,其中P=2C,C是至少為1的整數(shù)。
13.如權(quán)利要求10所述的可變長(zhǎng)度解碼方法,其特征在于,所述存儲(chǔ)器以比特?cái)?shù)A為1個(gè)字存儲(chǔ)數(shù)據(jù),A是至少為2的整數(shù),所述比特?cái)?shù)A為 其中P=2C,C是至少為1的整數(shù)。
14.如權(quán)利要求10所述的可變長(zhǎng)度解碼方法,其特征在于,所述存儲(chǔ)器以比特?cái)?shù)A為1個(gè)字存儲(chǔ)數(shù)據(jù),A是至少為2的整數(shù),所述比特?cái)?shù)A為4×P,其中P=2C,C是至少為1的整數(shù)。
15.如權(quán)利要求10到14中任一權(quán)利要求所述的可變長(zhǎng)度解碼方法,其特征在于,在第三步驟中,當(dāng)從所述緩沖寄存器中提取出本次應(yīng)參照數(shù)據(jù)時(shí),掩碼所述已參照數(shù)據(jù)并進(jìn)行移位。
16.一種使用可變長(zhǎng)度解碼裝置的可變長(zhǎng)度解碼方法,該裝置包括存儲(chǔ)器,以比特?cái)?shù)A為1個(gè)字存儲(chǔ)數(shù)據(jù),并且將與任意地址的比特?cái)?shù)D的低位比特側(cè)存儲(chǔ)的數(shù)據(jù)相同的數(shù)據(jù)配置在該任意地址的下一地址的比特?cái)?shù)D的高位比特側(cè),A為至少為2的整數(shù),D為A-2C的整數(shù);比特寬度B的緩沖寄存器,存儲(chǔ)從所述存儲(chǔ)器裝載的數(shù)據(jù),B為至少為A的整數(shù);地址寄存器,將訪問(wèn)所述存儲(chǔ)器的訪問(wèn)地址的值存儲(chǔ)到高位比特側(cè),并且將所述緩沖寄存器已參照的數(shù)據(jù)數(shù)M存儲(chǔ)在比特寬度為C的低位比特側(cè),M為至少為0的整數(shù),C為至少為1的整數(shù),其特征在于,包括步驟第一步驟,使用所述地址寄存器中存儲(chǔ)的訪問(wèn)地址的值訪問(wèn)所述存儲(chǔ)器,以載入數(shù)據(jù)到所述緩沖寄存器中;第二步驟,執(zhí)行使用了所述緩沖寄存器的低位比特側(cè)存儲(chǔ)的已參照數(shù)據(jù)數(shù)M和本次參照的數(shù)據(jù)數(shù)N的數(shù)據(jù)移位操作,從所述緩沖寄存器提取出為了可變長(zhǎng)度解碼的應(yīng)參照的數(shù)據(jù),M為至少為0的整數(shù),N為至少為1的整數(shù),第三步驟,假設(shè)E為通過(guò)A-D運(yùn)算得到的至少為1的整數(shù),F(xiàn),G都是整數(shù), 運(yùn)算得到的商為F,余數(shù)為G,將所述商F加到高位比特側(cè),以響應(yīng)于所述應(yīng)參照數(shù)據(jù)的提取而更新在所述地址寄存器的高位比特側(cè)存儲(chǔ)的地址值,并且,設(shè)置所述余數(shù)G到該低位比特側(cè),以更新存儲(chǔ)在所述地址寄存器的低位比特側(cè)的已參照數(shù)據(jù)數(shù)M。
17.如權(quán)利要求16所述的可變長(zhǎng)度解碼方法,其特征在于,所述E等于H×2L,其中H、L都是至少為1的整數(shù)。
18.如權(quán)利要求17所述的可變長(zhǎng)度解碼方法,其特征在于,所述H等于3。
19.如權(quán)利要求10至16中任一權(quán)利要求所述的可變長(zhǎng)度解碼方法,其特征在于,在所述第二步驟中,當(dāng)所述緩沖寄存器中提取出本次應(yīng)參照數(shù)據(jù)時(shí),掩碼所述已參照數(shù)據(jù)并進(jìn)行移位。
20.一種再現(xiàn)系統(tǒng),其特征在于,包括權(quán)利要求1到9中任一權(quán)利要求所述的可變長(zhǎng)度解碼裝置;輸入單元,輸入由所述可變長(zhǎng)度解碼裝置解碼的數(shù)據(jù)流,所述數(shù)據(jù)流包括可變長(zhǎng)度解碼后的數(shù)據(jù);再現(xiàn)單元,將由所述可變長(zhǎng)度解碼裝置解碼的數(shù)據(jù)處理為信號(hào),并且再現(xiàn)該信號(hào)。
全文摘要
本可變長(zhǎng)度解碼裝置包括存儲(chǔ)器,將與任意地址的低位比特側(cè)存儲(chǔ)的數(shù)據(jù)相同的數(shù)據(jù)配置并存儲(chǔ)在該任意地址的下一地址的高位比特側(cè);至少具有存儲(chǔ)器的比特寬度的緩沖寄存器,存儲(chǔ)從存儲(chǔ)器裝載的數(shù)據(jù);地址寄存器,將對(duì)存儲(chǔ)器的訪問(wèn)地址的值(地址值)存儲(chǔ)到高位比特側(cè),將緩沖寄存器已參照的數(shù)據(jù)數(shù)存儲(chǔ)在低位比特側(cè),通過(guò)對(duì)緩沖寄存器執(zhí)行使用已參照數(shù)據(jù)數(shù)和本次參照的數(shù)據(jù)數(shù)的數(shù)據(jù)移位操作,從緩沖寄存器提取出本次應(yīng)參照的數(shù)據(jù),隨著提取出數(shù)據(jù),將本次參照的數(shù)據(jù)數(shù)與已參照數(shù)據(jù)數(shù)相加以更新地址寄存器的低位比特側(cè)的已參照數(shù)據(jù)數(shù),當(dāng)更新后已參照數(shù)據(jù)數(shù)不進(jìn)位時(shí),維持地址寄存器的高位比特側(cè)存儲(chǔ)的地址值,有進(jìn)位則使用該進(jìn)位更新到下一地址值。
文檔編號(hào)G06F12/04GK1649274SQ20051000504
公開(kāi)日2005年8月3日 申請(qǐng)日期2005年1月31日 優(yōu)先權(quán)日2004年1月29日
發(fā)明者古賀義宏, 藤本正一, 松本道弘 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社