專利名稱:編碼設(shè)備、程序和數(shù)據(jù)處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于對(duì)諸如圖像數(shù)據(jù)和音頻數(shù)據(jù)之類的數(shù)據(jù)執(zhí)行算術(shù)編碼和其他編碼處理的數(shù)據(jù)處理方法、程序和編碼設(shè)備。
背景技術(shù):
近年來(lái),在廣播站的信息發(fā)布以及家庭中的信息接收兩者中,為了獲得高效率的信息傳輸和存儲(chǔ),已經(jīng)廣泛應(yīng)用了用于處理數(shù)字格式圖像數(shù)據(jù)且符合MPEG(運(yùn)動(dòng)圖像專家組)以及其他用于通過(guò)諸如離散余弦變換之類的正交變換執(zhí)行壓縮和通過(guò)使用圖像信息特有的冗余進(jìn)行運(yùn)動(dòng)補(bǔ)償?shù)姆椒ǖ脑O(shè)備。
MPEG系統(tǒng)之后是稱作JVT(視頻聯(lián)合工作組)的編碼方法,提出該編碼方法是為了實(shí)現(xiàn)更高的壓縮率。例如,參考Thomas Wiegand、Gary J.Sullivan、Gisle Bjontegaard和Ajay Luthra,overview of the H.264/AVCVideo Coding Standard(視頻編碼標(biāo)準(zhǔn)綜述),“IEEE Transactions Circuitsand Systems for Video Technology”,美國(guó),2003年7月。
在JVT系統(tǒng)中,兩種類型的編碼處理CAVLC(Context BasedAdaptive Variable Length Coding,基于上下文的自適應(yīng)變長(zhǎng)編碼)和CABAC(Context Adaptive Binary Arithmetic Coding,上下文自適應(yīng)二進(jìn)制算術(shù)編碼)被規(guī)定為句法元(syntax element,SE)的編碼處理。
例如,在上面的編碼處理中,輸入海量數(shù)據(jù),必須執(zhí)行巨量的算術(shù)處理,并且需要計(jì)算量被減小的更高速度的編碼處理。
發(fā)明內(nèi)容
本發(fā)明的目的是提供能夠在編碼處理中獲得更高速度和減少的計(jì)算量的編碼設(shè)備、程序和數(shù)據(jù)處理方法。
為了達(dá)到上述目的,提供了一種編碼設(shè)備,該編碼設(shè)備用于對(duì)代表要被編碼的圖像信號(hào)的句法元進(jìn)行自適應(yīng)二進(jìn)制算術(shù)編碼,其中具有高出現(xiàn)概率的第一數(shù)據(jù)和具有低出現(xiàn)概率的第二數(shù)據(jù)之間的范圍的大小由第一數(shù)據(jù)定義,指示第一和第二數(shù)據(jù)之間的邊界的下限由第二數(shù)據(jù)定義,以及依次對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)在從最低有效位(LSB)到最高有效位(MSB)的方向上執(zhí)行移位操作,直至被移位的第一數(shù)據(jù)超過(guò)預(yù)定值,以及在所述移位操作即將結(jié)束之前響應(yīng)于所述被移位的第二數(shù)據(jù)生成編碼數(shù)據(jù),該編碼設(shè)備包括比特位置指定裝置,用于指定指示與所述第一數(shù)據(jù)中的MSB最靠近的第一邏輯值的比特位置;移位量指定裝置,用于基于由所述比特位置指定裝置指定的所述比特位置,指定在所述移位操作即將結(jié)束之前的所述第一數(shù)據(jù)的移位量;判決裝置,用于判決在具有預(yù)定比特長(zhǎng)度的擴(kuò)展數(shù)據(jù)中是否存在大小超過(guò)在所述移位量指定裝置中指定的所述移位量的空區(qū)域,其中所述擴(kuò)展數(shù)據(jù)被加到所述第二數(shù)據(jù)的MSB,并通過(guò)所述移位操作從所述第二數(shù)據(jù)進(jìn)位了比特?cái)?shù)據(jù)的位;和編碼裝置,用于當(dāng)不存在所述空區(qū)域時(shí),從通過(guò)所述移位操作被包含在所述擴(kuò)展數(shù)據(jù)中的數(shù)據(jù),生成所述編碼數(shù)據(jù)。
本發(fā)明第一方面的編碼設(shè)備的操作如下。
比特位置指定裝置指定指示與第一數(shù)據(jù)中MSB(最高有效位)最靠近的第一邏輯值的比特位置。
移位量指定裝置基于由比特位置指定裝置指定的比特位置,指定第一數(shù)據(jù)由左移操作即將超過(guò)預(yù)定值之前的移位量。
判決裝置判斷在具有預(yù)定比特長(zhǎng)度的擴(kuò)展數(shù)據(jù)中是否存在大于由移位量指定裝置指定的移位量的空閑空間,其中擴(kuò)展數(shù)據(jù)被加到第二數(shù)據(jù)的MSB側(cè),其中比特?cái)?shù)據(jù)通過(guò)左移操作從第二數(shù)據(jù)進(jìn)位。
編碼裝置在判決裝置判斷不存在空閑空間時(shí),生成通過(guò)左移操作存儲(chǔ)在擴(kuò)展數(shù)據(jù)中的數(shù)據(jù)的編碼數(shù)據(jù)。
另外,為了達(dá)到上述目的,本發(fā)明第二方面的編碼設(shè)備是這樣一種編碼設(shè)備,該編碼設(shè)備用于對(duì)代表要被編碼的圖像信號(hào)的句法元進(jìn)行上下文(context)自適應(yīng)二進(jìn)制算術(shù)編碼的編碼設(shè)備,其中具有高出現(xiàn)概率的第一數(shù)據(jù)和具有低出現(xiàn)概率的第二數(shù)據(jù)之間的范圍的大小由第一數(shù)據(jù)定義,指示第一和第二數(shù)據(jù)之間的邊界的下限由第二數(shù)據(jù)定義,以及依次對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)在從最低有效位(LSB)到最高有效位(MSB)的方向上執(zhí)行移位操作,直至被移位的第一數(shù)據(jù)超過(guò)預(yù)定值,以及在所述移位操作即將結(jié)束之前響應(yīng)于所述被移位的第二數(shù)據(jù)生成編碼數(shù)據(jù),該編碼設(shè)備包括比特位置指定裝置,用于指定指示與所述第一數(shù)據(jù)中的MSB最靠近的第一邏輯值的比特位置;移位量指定裝置,用于基于由所述比特位置指定裝置指定的所述比特位置,指定在所述移位操作即將結(jié)束之前的所述第一數(shù)據(jù)的移位量;判決裝置,用于判決在具有預(yù)定比特長(zhǎng)度的擴(kuò)展數(shù)據(jù)中是否存在預(yù)定比特長(zhǎng)度數(shù)據(jù),其中擴(kuò)展數(shù)據(jù)被加到第二數(shù)據(jù)的MSB,并通過(guò)所述移位操作從所述第二數(shù)據(jù)進(jìn)位了比特?cái)?shù)據(jù)的位;和編碼裝置,用于當(dāng)不存在預(yù)定比特長(zhǎng)度數(shù)據(jù)時(shí),從通過(guò)移位操作包含在擴(kuò)展數(shù)據(jù)中的數(shù)據(jù)生成編碼數(shù)據(jù)。
另外,為了達(dá)到上述目的,本發(fā)明第三方面的編碼設(shè)備是這樣一種編碼設(shè)備,包括運(yùn)動(dòng)矢量生成裝置,用于基于要被處理運(yùn)動(dòng)補(bǔ)償?shù)膱D像數(shù)據(jù)與用作運(yùn)動(dòng)補(bǔ)償參考的參考圖像數(shù)據(jù)之間的第一差別生成運(yùn)動(dòng)矢量;第一信號(hào)處理裝置,用于對(duì)要被處理運(yùn)動(dòng)補(bǔ)償?shù)膱D像數(shù)據(jù)與預(yù)測(cè)圖像數(shù)據(jù)之間的第二差別進(jìn)行正交變換處理,以及對(duì)正交變換的結(jié)果進(jìn)行量化處理;第二信號(hào)處理裝置,用于對(duì)由第一信號(hào)處理裝置生成的數(shù)據(jù)進(jìn)行反量化處理,以及對(duì)由反量化處理獲得的數(shù)據(jù)進(jìn)行反正交變換,由此生成參考數(shù)據(jù);第三信號(hào)處理裝置,用于基于運(yùn)動(dòng)矢量和參考圖像數(shù)據(jù)生成預(yù)測(cè)圖像數(shù)據(jù);和編碼裝置,用于編碼由第一信號(hào)處理裝置生成的數(shù)據(jù)和運(yùn)動(dòng)矢量,所述編碼裝置用于對(duì)代表要被編碼的圖像信號(hào)的句法元進(jìn)行上下文自適應(yīng)二進(jìn)制算術(shù)編碼,其中具有高出現(xiàn)概率的第一數(shù)據(jù)和具有低出現(xiàn)概率的第二數(shù)據(jù)之間的范圍的大小由第一數(shù)據(jù)定義,指示第一和第二數(shù)據(jù)之間的邊界的下限由第二數(shù)據(jù)定義,以及依次對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)在從最低有效位(LSB)到最高有效位(MSB)的方向上執(zhí)行移位操作,直至被移位的第一數(shù)據(jù)超過(guò)預(yù)定值,以及在所述移位操作即將結(jié)束之前響應(yīng)于所述被移位的第二數(shù)據(jù)生成編碼數(shù)據(jù),該編碼裝置包括比特位置指定裝置,用于指定指示與所述第一數(shù)據(jù)中的MSB最靠近的第一邏輯值的比特位置;移位量指定裝置,用于基于由所述比特位置指定裝置指定的所述比特位置,指定在所述移位操作即將結(jié)束之前的所述第一數(shù)據(jù)的移位量;判決裝置,用于判決在具有預(yù)定比特長(zhǎng)度的擴(kuò)展數(shù)據(jù)中是否存在大小超過(guò)在所述移位量指定裝置中指定的所述移位量的空區(qū)域,其中所述擴(kuò)展數(shù)據(jù)被加到所述第二數(shù)據(jù)的MSB,并通過(guò)所述移位操作從所述第二數(shù)據(jù)進(jìn)位了比特?cái)?shù)據(jù)的位;和編碼裝置,用于當(dāng)不存在所述空區(qū)域時(shí),從通過(guò)所述移位操作被包含在所述擴(kuò)展數(shù)據(jù)中的數(shù)據(jù),生成所述編碼數(shù)據(jù)。
另外,為了達(dá)到上述目的,根據(jù)本發(fā)明第四方面的程序是一種在計(jì)算機(jī)上執(zhí)行的程序,用于對(duì)代表要被編碼的圖像信號(hào)的句法元進(jìn)行上下文自適應(yīng)二進(jìn)制算術(shù)編碼,其中具有高出現(xiàn)概率的第一數(shù)據(jù)和具有低出現(xiàn)概率的第二數(shù)據(jù)之間的范圍的大小由第一數(shù)據(jù)定義,指示第一和第二數(shù)據(jù)之間的邊界的下限由第二數(shù)據(jù)定義,以及依次對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)在從最低有效位(LSB)到最高有效位(MSB)的方向上執(zhí)行移位操作,直至被移位的第一數(shù)據(jù)超過(guò)預(yù)定值,以及在所述移位操作即將結(jié)束之前響應(yīng)于所述被移位的第二數(shù)據(jù)生成編碼數(shù)據(jù),該程序包括第一過(guò)程,用于指定指示與所述第一數(shù)據(jù)中的MSB最靠近的第一邏輯值的比特位置;第二過(guò)程,用于基于由所述第一過(guò)程指定的所述比特位置,指定在所述移位操作即將結(jié)束之前的所述第一數(shù)據(jù)的移位量;第三過(guò)程,用于判決在具有預(yù)定比特長(zhǎng)度的擴(kuò)展數(shù)據(jù)中是否存在大小超過(guò)在所述第二過(guò)程中指定的所述移位量的空區(qū)域,其中所述擴(kuò)展數(shù)據(jù)被加到所述第二數(shù)據(jù)的MSB,并通過(guò)所述移位操作從所述第二數(shù)據(jù)進(jìn)位了比特?cái)?shù)據(jù)的位;和第四過(guò)程,用于當(dāng)不存在所述空區(qū)域時(shí),從通過(guò)所述移位操作被包含在所述擴(kuò)展數(shù)據(jù)中的數(shù)據(jù),生成所述編碼數(shù)據(jù)。
另外,為了達(dá)到上述目的,本發(fā)明第五方面的程序是一種在計(jì)算機(jī)上執(zhí)行的程序,用于對(duì)代表要被編碼的圖像信號(hào)的句法元進(jìn)行上下文自適應(yīng)二進(jìn)制算術(shù)編碼,其中具有高出現(xiàn)概率的第一數(shù)據(jù)和具有低出現(xiàn)概率的第二數(shù)據(jù)之間的范圍的大小由第一數(shù)據(jù)定義,指示第一和第二數(shù)據(jù)之間的邊界的下限由第二數(shù)據(jù)定義,以及依次對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)在從最低有效位(LSB)到最高有效位(MSB)的方向上執(zhí)行移位操作,直至被移位的第一數(shù)據(jù)超過(guò)預(yù)定值,以及在所述移位操作即將結(jié)束之前響應(yīng)于所述被移位的第二數(shù)據(jù)生成編碼數(shù)據(jù),該程序包括第一過(guò)程,用于指定指示與所述第一數(shù)據(jù)中的MSB最靠近的第一邏輯值的比特位置;第二過(guò)程,用于基于由所述第一過(guò)程指定的所述比特位置,指定在所述移位操作即將結(jié)束之前的所述第一數(shù)據(jù)的移位量;第三過(guò)程,用于判決在具有預(yù)定比特長(zhǎng)度的擴(kuò)展數(shù)據(jù)中是否存在預(yù)定比特長(zhǎng)度數(shù)據(jù),其中所述擴(kuò)展數(shù)據(jù)被加到所述第二數(shù)據(jù)的MSB,并通過(guò)所述移位操作從所述第二數(shù)據(jù)進(jìn)位了比特?cái)?shù)據(jù)的位;和第四過(guò)程,用于當(dāng)不存在所述空區(qū)域時(shí),從通過(guò)所述移位操作被包含在所述擴(kuò)展數(shù)據(jù)中的數(shù)據(jù),生成所述編碼數(shù)據(jù)。
另外,為了達(dá)到上述目的,本發(fā)明第六方面的數(shù)據(jù)處理方法是這樣一種數(shù)據(jù)處理方法,該數(shù)據(jù)處理方法用于對(duì)代表要被編碼的圖像信號(hào)的句法元進(jìn)行上下文自適應(yīng)二進(jìn)制算術(shù)編碼,其中具有高出現(xiàn)概率的第一數(shù)據(jù)和具有低出現(xiàn)概率的第二數(shù)據(jù)之間的范圍的大小由第一數(shù)據(jù)定義,指示第一和第二數(shù)據(jù)之間的邊界的下限由第二數(shù)據(jù)定義,以及依次對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)在從最低有效位(LSB)到最高有效位(MSB)的方向上執(zhí)行移位操作,直至被移位的第一數(shù)據(jù)超過(guò)預(yù)定值,以及在所述移位操作即將結(jié)束之前響應(yīng)于所述被移位的第二數(shù)據(jù)生成編碼數(shù)據(jù),該方法包括第一步驟,用于指定指示與所述第一數(shù)據(jù)中的所述最高有效位最靠近的第一邏輯值的比特位置;第二步驟,用于基于由所述第一步驟指定的所述比特位置,指定在所述移位操作即將結(jié)束之前的所述第一數(shù)據(jù)的移位量;第三步驟,用于判決在具有預(yù)定比特長(zhǎng)度的擴(kuò)展數(shù)據(jù)中是否存在大小超過(guò)在所述第二步驟中指定的所述移位量的空區(qū)域,其中所述擴(kuò)展數(shù)據(jù)被加到所述第二數(shù)據(jù)的所述最高有效位,并通過(guò)所述移位操作從所述第二數(shù)據(jù)進(jìn)位了比特?cái)?shù)據(jù)的位;和第四步驟,用于當(dāng)不存在所述空區(qū)域時(shí),從通過(guò)所述移位操作被包含在所述擴(kuò)展數(shù)據(jù)中的數(shù)據(jù),生成所述編碼數(shù)據(jù)。
根據(jù)本發(fā)明,提供了一種能夠在編碼處理中獲得更高速度和減少的計(jì)算量的編碼設(shè)備、程序和數(shù)據(jù)處理方法。
從下面參考附圖對(duì)優(yōu)選實(shí)施例的描述,本發(fā)明的這些以及其他目的和特性將變得更加清楚,附圖中圖1是本實(shí)施例的通信系統(tǒng)1的示意圖;圖2是圖1所示的編碼設(shè)備2的整體配置圖;圖3A~3E是用于解釋算術(shù)編碼處理的圖;圖4是用于解釋一般編碼處理中的歸一化(normalization)處理的圖;圖5是根據(jù)圖1所示的本發(fā)明第一實(shí)施例的編碼電路的功能框圖;圖6是圖2所示的編碼電路的編碼處理的總體操作流程圖;圖7是圖5所示的編碼電路的功能框圖;圖8是用于解釋圖7所示的編碼電路的范圍“Range”數(shù)據(jù)的圖;圖9是用于解釋圖7所示的編碼電路的下限值“Low”數(shù)據(jù)的圖;圖10是用于解釋圖7所示的編碼電路的編碼處理的操作的流程圖;圖11是用于解釋圖7所示的編碼電路中編碼處理的操作的具體示例的流程圖;圖12是用于解釋圖11所示的編碼電路的歸一化處理的具體示例的流程圖;圖13是用于解釋圖5所示的上下文無(wú)關(guān)類型編碼部分的操作的具體示例的圖;圖14是用于解釋圖13所示的編碼處理的“PutBit(B)”處理的流程圖;圖15是根據(jù)本發(fā)明編碼電路第三實(shí)施例的上下文無(wú)關(guān)類型編碼部分的功能框圖;圖16是用于解釋圖15所示的編碼電路的上下文無(wú)關(guān)類型編碼部分的操作的圖。
具體實(shí)施例方式
下面將解釋其中應(yīng)用了本發(fā)明實(shí)施例的編碼處理的JVT系統(tǒng)的編碼設(shè)備。
圖1是本實(shí)施例的通信系統(tǒng)1的示意圖。
如圖1所示,通信系統(tǒng)1包括設(shè)置在發(fā)送方的編碼設(shè)備2和設(shè)置在接收方的解碼設(shè)備3。
在通信系統(tǒng)1中,在發(fā)送方的編碼設(shè)備2中,生成通過(guò)諸如離散余弦變換和Karhunen-Loeve變換之類的正交變換以及運(yùn)動(dòng)補(bǔ)償而被壓縮的幀圖像數(shù)據(jù)(比特流),并且?guī)瑘D像數(shù)據(jù)在經(jīng)由諸如人造衛(wèi)星廣播電波、有線電視網(wǎng)絡(luò)、電話線路網(wǎng)絡(luò)、蜂窩電話網(wǎng)絡(luò)之類的傳輸介質(zhì)和/或裝置被發(fā)送之前,在發(fā)送方的編碼設(shè)備2中被調(diào)制。
在接收方,在將接收到的圖像信號(hào)解調(diào)后,由運(yùn)動(dòng)補(bǔ)償和上面的調(diào)制處的數(shù)據(jù)的反正交變換而解壓縮的幀圖像數(shù)據(jù)被生成并被使用。
注意,傳輸介質(zhì)和/或裝置可以是光盤(pán)、磁盤(pán)、半導(dǎo)體存儲(chǔ)器及其他記錄介質(zhì)。
圖1所示的解碼設(shè)備3執(zhí)行與編碼設(shè)備2的編碼相對(duì)應(yīng)的解碼,并且具有與相關(guān)領(lǐng)域中的配置相同的配置。
下面將解釋圖1所示的編碼設(shè)備2。
圖2是圖1所示的編碼設(shè)備2的整體配置圖。
如圖2所示,編碼設(shè)備(數(shù)據(jù)處理設(shè)備計(jì)算機(jī))2例如包括作為主要部件的A/D轉(zhuǎn)換電路22、畫(huà)面重定位電路23、算術(shù)電路24、正交變換電路25、量化電路26、編碼電路(也被稱作編碼設(shè)備)27、緩沖器28、反量化電路29、反正交變換電路30、比率控制電路32、幀存儲(chǔ)器34、解塊(deblocking)濾波器38和運(yùn)動(dòng)預(yù)測(cè)/補(bǔ)償電路39。
下面將解釋編碼設(shè)備2的部件。
A/D轉(zhuǎn)換電路22將由輸入模擬亮度信號(hào)Y以及色差信號(hào)Cb和Cr組成的原始圖像信號(hào)S10轉(zhuǎn)換為數(shù)字幀數(shù)據(jù)S22,并將其輸出至畫(huà)面重定位電路23。
畫(huà)面重定位電路23將幀數(shù)據(jù)S23輸出至算術(shù)電流24、比率控制電路32和運(yùn)動(dòng)預(yù)測(cè)/補(bǔ)償電路39,其中幀數(shù)據(jù)S23是通過(guò)在按照由畫(huà)面類型I、P和B組成的GOP(畫(huà)面組)配置的一系列編碼中重新排列從A/D轉(zhuǎn)換電路22輸入的幀數(shù)據(jù)S22而獲得的。
算術(shù)電路24生成圖像數(shù)據(jù)S24并將其輸出至正交變換電路25,該圖像數(shù)據(jù)S24指示了在幀數(shù)據(jù)S23中要經(jīng)歷處理的運(yùn)動(dòng)補(bǔ)償塊MCB(也被稱作宏塊)與和其對(duì)應(yīng)的從運(yùn)動(dòng)預(yù)測(cè)/補(bǔ)償電路39輸入的預(yù)測(cè)圖像數(shù)據(jù)PI的運(yùn)動(dòng)補(bǔ)償塊MCB之間的差異。
正交變換電路25對(duì)圖像數(shù)據(jù)S24執(zhí)行離散余弦變換、Karhunen-Loeve變換或者其他正交變換,以生成圖像數(shù)據(jù)(例如,DCT系數(shù))S25,并將其輸出至量化電路26。
量化電路26通過(guò)用從比率控制電路32輸入的量化比例量化圖像數(shù)據(jù)S25,生成圖像數(shù)據(jù)S26,并將其輸出至編碼電路27和反量化電路29。
編碼電路27基于指示運(yùn)動(dòng)矢量等的句法元(SE),執(zhí)行變長(zhǎng)編碼處理或者算術(shù)編碼處理,并將作為處理結(jié)果的圖像數(shù)據(jù)存儲(chǔ)在緩沖器28中。
此時(shí),例如,當(dāng)執(zhí)行幀間預(yù)測(cè)(inter prediction)編碼時(shí),編碼電路27編碼從運(yùn)動(dòng)預(yù)測(cè)/補(bǔ)償電路39輸入的運(yùn)動(dòng)矢量MV,并將其存儲(chǔ)在頭部數(shù)據(jù)中。
存儲(chǔ)在緩沖器28中的圖像數(shù)據(jù)在被發(fā)送之前被調(diào)制等等。
反量化電路29生成通過(guò)對(duì)從其他運(yùn)動(dòng)補(bǔ)償塊MCB參考得到的參考圖像數(shù)據(jù)的運(yùn)動(dòng)補(bǔ)償塊MCB的圖像數(shù)據(jù)S26執(zhí)行反量化而獲得的信號(hào),并將其輸出至反正交變換電路30。
反正交變換電路30將圖像數(shù)據(jù)S30經(jīng)由解塊濾波器38寫(xiě)到幀存儲(chǔ)器34中,其中圖像數(shù)據(jù)S30是通過(guò)對(duì)從反量化電路29輸入的數(shù)據(jù)執(zhí)行正交變換電路25中的正交變換的反變換而獲得的。
解塊濾波器38向幀存儲(chǔ)器34輸出通過(guò)從圖像數(shù)據(jù)S30去除塊偏斜(block skew)所獲得的圖像數(shù)據(jù)。
比率控制電路32生成量化參數(shù)Qp,使得例如基于從畫(huà)面重定位電路23輸入的幀數(shù)據(jù)S23,對(duì)圖像中高復(fù)雜的部分執(zhí)行細(xì)量化,對(duì)圖像中較不復(fù)雜的部分執(zhí)行粗量化。
然后,比率控制電路32基于上面生成的量化參數(shù)Qp以及從緩沖器28讀取的圖像數(shù)據(jù),生成量化比例,并將其輸出至量化電路26。
比率控制電路32還向運(yùn)動(dòng)預(yù)測(cè)/補(bǔ)償電路39輸出上面生成的量化參數(shù)Qp。
運(yùn)動(dòng)預(yù)測(cè)/補(bǔ)償電路39在基于要被編碼的幀數(shù)據(jù)S23的參考圖像數(shù)據(jù)和來(lái)自幀存儲(chǔ)器34的參考圖像數(shù)據(jù)REF中的搜索范圍SR中搜索,執(zhí)行運(yùn)動(dòng)預(yù)測(cè)/補(bǔ)償處理,并通過(guò)使用運(yùn)動(dòng)補(bǔ)償塊MCB作為單位計(jì)算運(yùn)動(dòng)矢量MV。
此時(shí),運(yùn)動(dòng)預(yù)測(cè)/補(bǔ)償電路39編碼I畫(huà)面、P畫(huà)面和B畫(huà)面。這里,只是從I畫(huà)面的信息對(duì)I畫(huà)面編碼,并且I畫(huà)面指示不被執(zhí)行幀間預(yù)測(cè)(幀間預(yù)測(cè)編碼)的圖像數(shù)據(jù)。
P畫(huà)面指示通過(guò)基于按顯示順序的前一(過(guò)去的)I畫(huà)面和P畫(huà)面執(zhí)行預(yù)測(cè)而被編碼的圖像數(shù)據(jù)。
B畫(huà)面指示通過(guò)基于在前一(過(guò)去的)和后一(將來(lái)的)顯示順序上的P畫(huà)面和I畫(huà)面的雙向預(yù)測(cè)而被編碼的圖像數(shù)據(jù)。
作為運(yùn)動(dòng)預(yù)測(cè)塊(宏塊MB)的塊大小,定義了16×16、8×16、16×8和8×8的像素大小,還定義了8×8、4×8、8×4和4×4的像素大小。
運(yùn)動(dòng)預(yù)測(cè)/補(bǔ)償電路39在參考圖像數(shù)據(jù)REF的搜索范圍SR中指定與幀數(shù)據(jù)S23中要被編碼的運(yùn)動(dòng)補(bǔ)償塊MCB差別最小的運(yùn)動(dòng)補(bǔ)償塊MCB的位置,并計(jì)算與它們的位置關(guān)系相對(duì)應(yīng)的運(yùn)動(dòng)矢量MV。
運(yùn)動(dòng)預(yù)測(cè)/補(bǔ)償電路39還基于上面選定的運(yùn)動(dòng)矢量MV,生成對(duì)運(yùn)動(dòng)補(bǔ)償塊MCB的預(yù)測(cè)圖像數(shù)據(jù)PI。
運(yùn)動(dòng)預(yù)測(cè)/補(bǔ)償電路39向編碼電路27輸出上面選定的運(yùn)動(dòng)矢量MV,并向算術(shù)電路24輸出上面生成的預(yù)測(cè)圖像數(shù)據(jù)PI。
下面將詳細(xì)解釋編碼電路27的編碼處理。
在JVT系統(tǒng)編碼處理中,兩種編碼處理CAVLC和CABAC被定義為句法元(SE)的編碼方法。一般,CABAC以與CAVLC相比的更高的效率壓縮SE。
在JVT定義的CABAC中,句法元SE通過(guò)VLC和定長(zhǎng)編碼被變換為符號(hào)串。這里所變換的符號(hào)串中的每個(gè)符號(hào)被稱作一個(gè)“bin”(二進(jìn)制符號(hào))。
在編碼處理中,“bin”被用作輸入以執(zhí)行算術(shù)編碼處理(AC),并且基于處理結(jié)果確定輸出比特,并將其輸出至比特流。
圖3A~3E是用于解釋算術(shù)編碼處理的圖。
算術(shù)編碼處理是要將諸如符號(hào)和二進(jìn)制(0和1)串的數(shù)據(jù)串設(shè)計(jì)為按照出現(xiàn)概率被編碼在區(qū)間
上,并通過(guò)數(shù)軸上該區(qū)間中的數(shù)字將概率空間表示為二進(jìn)制數(shù),并將其編碼。
例如,如圖3A~3E所示,算術(shù)編碼處理是要基于要被編碼的數(shù)據(jù)中的各個(gè)數(shù)據(jù)的出現(xiàn)概率,劃分0.00或更大到小于1.00之間的區(qū)間,并執(zhí)行遞歸處理來(lái)基于各個(gè)數(shù)據(jù)選擇被劃分的區(qū)間,從而編碼指示了與要被編碼的數(shù)據(jù)相對(duì)應(yīng)的區(qū)間的數(shù)據(jù)。
后文中,為了進(jìn)行清楚的解釋,要被編碼的數(shù)據(jù)被假定為是二進(jìn)制的。
具體如圖3A所示,假定在要被編碼的數(shù)據(jù)中具有高出現(xiàn)概率的數(shù)據(jù)是MPS(最大可能符號(hào)),具有低出現(xiàn)概率的數(shù)據(jù)是LPS(最小可能符號(hào)),算術(shù)編碼方法是要根據(jù)各個(gè)出現(xiàn)概率pMPS和pLPS,劃分預(yù)定區(qū)間A。此時(shí),假定當(dāng)前區(qū)間的大小是范圍“Range”,并且假定當(dāng)前區(qū)間之間的邊界值,例如,下限值是“Low”。出現(xiàn)概率pMPS是1-pLPS。
如圖3A所示,在初始狀態(tài)中,“Range”和“Low”的值是A、0.00……。
當(dāng)要被編碼的數(shù)據(jù)串的頂部數(shù)據(jù)是MPS時(shí),根據(jù)出現(xiàn)概率pMPS和pLPS劃分區(qū)間A,并且如圖3B所示,從劃分區(qū)間中選取對(duì)應(yīng)于MPS的區(qū)間。此時(shí)“Range”和“Low”的值是p0(=pMPS)、0.00……。
當(dāng)要被編碼的數(shù)據(jù)串中的第二數(shù)據(jù)是MPS時(shí),如圖3B所示,根據(jù)出現(xiàn)概率pMPS和pLPS劃分該區(qū)間,并且如圖3C所示,從劃分區(qū)間中選取對(duì)應(yīng)于MPS的區(qū)間。此時(shí)“Range”和“Low”的值是p00(=p0×pMPS)、0.00……。
當(dāng)要被編碼的數(shù)據(jù)串中的第三數(shù)據(jù)是LPS時(shí),如圖3C所示,根據(jù)出現(xiàn)概率pMPS和pLPS劃分該區(qū)間,并且如圖3D所示,從劃分區(qū)間中選取對(duì)應(yīng)于LPS的區(qū)間。此時(shí)“Range”和“Low”的值是p001(=p00×pLPS)、p001(Low+pMPS)。
即,在上面的編碼處理中的LPS情形中,下限值“Low”通過(guò)加上pMPS被更新。
同樣,隨著要被編碼的數(shù)據(jù)串的比特長(zhǎng)度變得更長(zhǎng)時(shí),“Range”變得更短,指示“Range”的數(shù)據(jù)的比特?cái)?shù)增加。因此,作為編碼處理的結(jié)果,通過(guò)輸出確定的比特,減少了存儲(chǔ)器容量。
另外,為了保持計(jì)算精確度,如圖3E所示,執(zhí)行歸一化處理(renormalize)以將“Range”擴(kuò)展至大于預(yù)定值。例如,歸一化處理可以是將“Range”值加倍,使其大于預(yù)定值。
圖4是用于解釋一般編碼處理中的歸一化處理的圖。
例如,如上面解釋的那樣,在每次對(duì)要被編碼的數(shù)據(jù)串執(zhí)行以一比特為單位的編碼處理時(shí),執(zhí)行圖4所示的歸一化處理。
具體地,首先,判斷“Range”是否小于預(yù)置的預(yù)定值(ST1)。當(dāng)其小于預(yù)定值時(shí),輸出根據(jù)下限值“Low”的最高一位的代碼(ST2),然后,對(duì)“Range”值和“Low”值執(zhí)行左移操作,使擴(kuò)展至兩倍(ST3和ST4),并且過(guò)程返回至步驟ST1中的處理。
重復(fù)從ST1至ST4的操作,直至“Range”值變?yōu)榈扔诨虼笥陬A(yù)定值。
另一方面,在步驟ST1中,當(dāng)“Range”值不小于預(yù)定值時(shí),歸一化處理結(jié)束。
如上面解釋的那樣,在編碼處理中的歸一化處理中,必須對(duì)每一比特判斷“Range”是否是預(yù)定值,因此計(jì)算負(fù)擔(dān)是很重的。在根據(jù)本發(fā)明的編碼電路27中,不是如上面所解釋的那樣對(duì)下限值“Low”的每個(gè)最高的一個(gè)比特執(zhí)行處理,而是一并對(duì)多個(gè)下限值“Low”執(zhí)行處理,從而減少了判斷處理,計(jì)算速度變高。下面,將對(duì)此進(jìn)行詳細(xì)解釋。
圖5是根據(jù)圖1所示的本發(fā)明第一實(shí)施例的編碼電路的功能框圖。
例如如圖5所示,根據(jù)本實(shí)施例的編碼電路27包括符號(hào)轉(zhuǎn)換部分(VLC)271、切換部分(檢測(cè)部分)272、上下文(CTX)273、上下文相關(guān)類型編碼部分274、上下文無(wú)關(guān)類型編碼部分(旁路,bypass)275和結(jié)束處理部分276。
例如,符號(hào)轉(zhuǎn)換部分(VLC)271通過(guò)VLC和定長(zhǎng)編碼,將從量化電路26和運(yùn)動(dòng)預(yù)測(cè)/補(bǔ)償電路39輸入的句法元SE轉(zhuǎn)換為符號(hào)“bin”(二進(jìn)制符號(hào))串(比特?cái)?shù)據(jù)),并將其輸出為信號(hào)S271。
切換部分272判斷對(duì)作為輸入信號(hào)S271的符號(hào)“bin”應(yīng)該執(zhí)行上下文相關(guān)類型編碼處理還是上下文無(wú)關(guān)類型編碼處理,并且根據(jù)判斷結(jié)果,將信號(hào)S271輸出至上下文相關(guān)類型編碼部分274或上下文無(wú)關(guān)類型編碼部分275。
具體地,當(dāng)對(duì)符號(hào)“bin”執(zhí)行上下文相關(guān)類型編碼處理時(shí),切換部分272將信號(hào)S271輸出至上下文(CTX)273和上下文相關(guān)類型編碼部分274,而當(dāng)執(zhí)行上下文無(wú)關(guān)類型編碼處理時(shí),將信號(hào)S271輸出至上下文無(wú)關(guān)類型編碼部分275。
具體地,在符號(hào)“bin”中發(fā)生概率分布接近于均勻分布的情形中,切換部分272將信號(hào)S271輸出至上下文無(wú)關(guān)類型編碼部分(旁路)275,而在符號(hào)“bin”具有可變概率分布的其他情形中,將其輸出至上下文相關(guān)類型編碼部分274。
經(jīng)歷了上下文無(wú)關(guān)類型編碼處理(旁路處理)的符號(hào)“bin”是用于表示例如運(yùn)動(dòng)矢量分量的正負(fù)號(hào)、離散余弦變換(DCT)系數(shù)的正負(fù)號(hào)以及運(yùn)動(dòng)矢量分量和DCT系數(shù)的值的符號(hào)串等的一部分。
具體地,VLC271在運(yùn)動(dòng)矢量分量和DCT系數(shù)具有負(fù)號(hào)時(shí)輸出“1”作為符號(hào)“bin”,而在它們具有正號(hào)時(shí)輸出“0”。
另外,當(dāng)運(yùn)動(dòng)矢量分量和DCT系數(shù)的值超過(guò)規(guī)定值時(shí),具體地說(shuō)是在內(nèi)容具有許多運(yùn)動(dòng),即運(yùn)動(dòng)矢量變化很大的情形中,以及在高比特率,即出現(xiàn)大DCT系數(shù)的時(shí)候的情形中等等,VLC271通過(guò)使用規(guī)定值作為邊界,將句法元SE分解為前綴“Prefix”和后綴“Suffix”。
具體地,VLC271對(duì)“Prefix”基于其大小執(zhí)行Urany編碼處理,并且切換電路272將作為處理結(jié)果的各個(gè)符號(hào)“bin”輸出至上下文相關(guān)類型編碼部分274。
另外,VLC271對(duì)“Suffix”基于其大小執(zhí)行指數(shù)Golomb編碼處理,并且切換電路272將作為處理結(jié)果的各個(gè)符號(hào)“bin”輸出至上下文無(wú)關(guān)類型編碼部分275。
在上下文(CTX)273中,例如,指示轉(zhuǎn)變狀態(tài)的索引和MPS出現(xiàn)概率pMPS被相關(guān)聯(lián)地存儲(chǔ)。
基于指示上下文相關(guān)類型編碼部分274處理結(jié)果的信號(hào)S2741,更新上下文(CTX)273的索引。具體地,在上下文(CTX)273中,例如,當(dāng)基于信號(hào)S2741被編碼的值是“1”時(shí),索引被更新以增加“1”的出現(xiàn)概率,而當(dāng)被編碼的值是“0”時(shí),索引被更新以增加“0”的出現(xiàn)概率。
由此,在CTX273中,出現(xiàn)概率變得接近于由輸入SE決定的出現(xiàn)概率。
上下文相關(guān)類型編碼部分274基于上下文CTX273的索引和要被編碼的符號(hào)“bin”,執(zhí)行上下文相關(guān)類型編碼處理,并將指示輸出結(jié)果的信號(hào)S2741輸出至上下文CTX273。
另外,上下文相關(guān)類型編碼部分274將指示處理結(jié)果的信號(hào)S274輸出至結(jié)束處理部分276。
上下文無(wú)關(guān)類型編碼部分(旁路)275基于從切換部分272輸出的信號(hào),執(zhí)行上下文無(wú)關(guān)類型編碼處理,并且將指示處理結(jié)果的信號(hào)S275輸出至結(jié)束處理部分276。
結(jié)束處理部分276根據(jù)信號(hào)S274或S275將代碼輸出至比特流。
圖6是圖2所示的編碼電路的編碼處理的總體操作流程圖。
在步驟ST11中,例如,VLC271通過(guò)VLC和定長(zhǎng)編碼,將來(lái)自量化電路26或運(yùn)動(dòng)預(yù)測(cè)/補(bǔ)償電路39的SE輸入轉(zhuǎn)換為符號(hào)“bin”串(比特?cái)?shù)據(jù)),并將其輸出為信號(hào)S271(ST12)。
在步驟ST13中,切換部分272判斷對(duì)作為輸入信號(hào)S271的符號(hào)“bin”應(yīng)該執(zhí)行上下文相關(guān)類型編碼處理還是上下文無(wú)關(guān)類型編碼處理,并根據(jù)判斷結(jié)果,將信號(hào)S271輸出至上下文相關(guān)類型編碼部分274或上下文無(wú)關(guān)類型編碼部分275。
在步驟ST13中,當(dāng)切換部分272判斷符號(hào)“bin”是上下文相關(guān)類型時(shí),執(zhí)行上下文相關(guān)類型編碼處理(ST14)。
具體地,上下文(CTX)273基于指示上下文相關(guān)類型編碼部分274的處理結(jié)果的信號(hào)S2741,更新索引,并分配各個(gè)符號(hào)“bin”的出現(xiàn)概率。
上下文相關(guān)類型編碼部分274基于上下文CTX273的索引和要被編碼的符號(hào)“bin”,執(zhí)行上下文相關(guān)類型編碼處理,并將指示輸出結(jié)果的信號(hào)S2741輸出至上下文CTX273。
另一方面,在步驟ST13中,當(dāng)切換部分272判斷符號(hào)“bin”是上下文無(wú)關(guān)類型時(shí),執(zhí)行上下文無(wú)關(guān)類型編碼處理(ST15)。
具體地,上下文無(wú)關(guān)類型編碼部分(旁路)275基于從切換部分272輸出的信號(hào),執(zhí)行上下文無(wú)關(guān)類型編碼處理,并將指示處理結(jié)果的信號(hào)S275輸出至結(jié)束處理部分276。
在步驟ST16中,結(jié)束處理部分276根據(jù)信號(hào)S274或S275生成代碼,并將其輸出至比特流。
圖7是圖5所示的編碼電路的功能框圖。
上下文相關(guān)類型編碼部分274對(duì)“Range”和下限值“Low”連續(xù)執(zhí)行左移操作,直至“Range”超過(guò)預(yù)定值,并根據(jù)執(zhí)行左移操作前的“Range”值生成編碼數(shù)據(jù)。
例如如圖7所示,上下文相關(guān)類型編碼部分274包括存儲(chǔ)器MEM、劃分部分2740和歸一化部分2741。歸一化部分2741包括移位量指定部分2743、判決部分2744和擴(kuò)展數(shù)據(jù)編碼部分2745。
比特位置指定部分2742對(duì)應(yīng)于根據(jù)本發(fā)明的比特位置指定裝置,移位量指定部分2743對(duì)應(yīng)于根據(jù)本發(fā)明的移位量指定裝置,判決部分2744對(duì)應(yīng)于根據(jù)本發(fā)明的判決裝置,擴(kuò)展數(shù)據(jù)編碼部分2745對(duì)應(yīng)于根據(jù)本發(fā)明的編碼裝置。
劃分部分2740基于用于執(zhí)行算術(shù)編碼處理的輸入符號(hào)“bin”以根據(jù)符號(hào)“bin”的生成概率的一個(gè)比率劃分區(qū)間,例如如圖3A~3E所示,并更新后文解釋的指示區(qū)間大小的“Range”和區(qū)間的下限值“Low”。
圖8是用于解釋圖7所示的編碼電路的“Range”數(shù)據(jù)的圖。圖9是用于解釋圖7所示的編碼電路的下限值“Low”數(shù)據(jù)的圖。
在本實(shí)施例中,存儲(chǔ)器MEM存儲(chǔ)“Range”和下限值“Low”數(shù)據(jù)。
“Range”指示上面解釋的算術(shù)編碼處理中的區(qū)間的大小,并具有預(yù)定比特長(zhǎng)度的數(shù)據(jù)區(qū),例如,如圖8所示的10比特長(zhǎng)度的數(shù)據(jù)區(qū)。
下限值“Low”是指示上面的算術(shù)編碼處理中的區(qū)間的數(shù)據(jù),具體地,指示區(qū)間的下限值“Low”。
根據(jù)本實(shí)施例的下限值“Low”具有基本區(qū)數(shù)據(jù)“LowB”和擴(kuò)展區(qū)數(shù)據(jù)(也被稱作擴(kuò)展數(shù)據(jù))“LowE”,例如如圖9所示。
基本區(qū)數(shù)據(jù)“LowB”是指示一般下限值“Low”的數(shù)據(jù),并且例如具有如圖9所示的10比特長(zhǎng)度的數(shù)據(jù)區(qū)。
擴(kuò)展區(qū)數(shù)據(jù)“LowE”是加到下限值“Low”的基本區(qū)數(shù)據(jù)“LowB”的最高位(MSB)側(cè)的數(shù)據(jù),其中所述比特?cái)?shù)據(jù)是通過(guò)左移操作從下限值“Low”進(jìn)位得到的,并且具有預(yù)定的比特長(zhǎng)度,例如如圖9所示的N比特長(zhǎng)度數(shù)據(jù)區(qū)。
“Range”對(duì)應(yīng)于根據(jù)本發(fā)明的第一數(shù)據(jù),下限值“Low”對(duì)應(yīng)于根據(jù)本發(fā)明的第二數(shù)據(jù),擴(kuò)展區(qū)數(shù)據(jù)“LowE”對(duì)應(yīng)于根據(jù)本發(fā)明的擴(kuò)展數(shù)據(jù)。
歸一化部分2741執(zhí)行歸一化處理以將“Range”擴(kuò)展至大于預(yù)定值,以保持算術(shù)編碼處理中的計(jì)算精確度。下面將解釋歸一化部分2741中的各個(gè)部件。
比特位置指定部分2742基于存儲(chǔ)器MEM中“Range”,指定指示與“Range”的MSB靠近的第一邏輯值的比特位置。
具體地,比特位置指定部分指定指示最靠近MSB的第一邏輯值的比特位置,在本實(shí)施例中,當(dāng)“Range”值例如是如圖8所示的“00001*****”時(shí),該第一邏輯值就是“1”。
移位量指定部分2743基于由比特位置指定部分2742指定的比特位置,指定在“Range”即將超過(guò)預(yù)定值之前的移位量“NumShift”,其中“Range”超過(guò)預(yù)定值是由于左移操作引起的。
具體地,移位量指定部分2743基于由比特位置指定部分2742指定的比特位置,將在“Range”即將超過(guò)例如0×100的預(yù)定值之前的移位量“NumShift”指定為“3”,如圖8所示,其中“Range”超過(guò)預(yù)定值是由于左移操作引起的。
指定移位量“NumShift”的方法不限于上面的實(shí)施例。
例如,比特位置指定部分2742和移位量指定部分2743可以執(zhí)行公式(1)所示的運(yùn)算,并從運(yùn)算結(jié)果指定移位量“NumShift”。這里,“Range<<=1”意味著執(zhí)行左移一位的操作,“NumShift++”意味著增加1。
公式1Int NumShift=0;While(Range<0×100){Range<<=1;NumShift++;}另外,例如,比特位置指定部分2742和移位量指定部分2743可以通過(guò)對(duì)比特位置“P”(>=1)執(zhí)行“NumShift=9-P”的運(yùn)算來(lái)指定移位量“NumShift”,其中“P”通過(guò)從最低有效位(LSB)開(kāi)始,計(jì)數(shù)存在于“Range”比特串最左(MSB)側(cè)的“1”而得到。當(dāng)由具有用于獲得“P”的命令的處理器執(zhí)行根據(jù)本發(fā)明的功能時(shí),可以通過(guò)這種方法容易地指定移位量“NumShift”。
判決部分2744判斷被加入到下限值“Low”的MSB側(cè)的預(yù)定比特長(zhǎng)度的擴(kuò)展區(qū)數(shù)據(jù)中,是否存在超過(guò)由移位量指定部分2743指定的移位量的空閑空間,其中比特?cái)?shù)據(jù)通過(guò)左移操作從下限值“Low”進(jìn)位。
當(dāng)判決部分2744判斷在擴(kuò)展區(qū)數(shù)據(jù)“LowE”中存在超過(guò)由移位量指定部分2743指定的移位量的空閑空間時(shí),對(duì)下限值“Low”和“Range”執(zhí)行左移操作。具體地,基本區(qū)數(shù)據(jù)“LowB”中的比特經(jīng)歷左移操作,被恰好左移移位量“NumShift”,移進(jìn)擴(kuò)展范圍“LowE”中。
當(dāng)判決部分2744判定沒(méi)有空閑空間時(shí),擴(kuò)展數(shù)據(jù)編碼部分2745生成通過(guò)左移操作存儲(chǔ)在擴(kuò)展區(qū)數(shù)據(jù)“LowE”中的數(shù)據(jù)的編碼數(shù)據(jù)。即,當(dāng)擴(kuò)展區(qū)數(shù)據(jù)“LowE”不再有用于存儲(chǔ)比特的空間時(shí),擴(kuò)展數(shù)據(jù)編碼部分2745生成編碼數(shù)據(jù)。
上面解釋了上下文相關(guān)類型編碼部分274的配置,上下文無(wú)關(guān)類型編碼部分275也有大致相同的配置,并在下限值“Low”中提供擴(kuò)展區(qū)數(shù)據(jù)“LowE”,并且如上面所解釋的那樣一并對(duì)擴(kuò)展區(qū)數(shù)據(jù)“LowE”中的數(shù)據(jù)執(zhí)行編碼處理。
旁路275和上下文相關(guān)類型編碼部分274的一個(gè)不同點(diǎn)是上下文相關(guān)類型編碼部分274不使用上下文CTX。即,在上下文相關(guān)類型編碼處理中,出現(xiàn)概率是預(yù)置的固定值,且“Range”也是固定的。
圖10是用于解釋圖7所示的編碼電路的編碼處理的操作的流程圖。
參考圖10,將集中于歸一化處理來(lái)解釋上下文相關(guān)類型編碼部分274和上下文無(wú)關(guān)類型編碼部分275的操作。
首先,為了執(zhí)行如圖3A~3E所示的算術(shù)編碼處理,劃分部分2740基于輸入符號(hào)“bin”,通過(guò)按照符號(hào)“bin”的生成概率的一個(gè)比率劃分區(qū)間,基于符號(hào)“bin”選擇被劃分的區(qū)間,并更新指示后文解釋的區(qū)間大小的“Range”和下限值“Low”。
歸一化部分2741執(zhí)行歸一化處理,以將“Range”至少擴(kuò)展至大于預(yù)定值,以保持算術(shù)編碼處理中的計(jì)算精確度。
具體地,在步驟ST21中,比特位置指定部分2742基于存儲(chǔ)器MEM中的作為劃分部分2740的劃分結(jié)果的“Range”,指定指示第一邏輯值的比特位置,該第一邏輯值最接近于的“Range”的MSB。
在步驟ST22中,移位量指定部分2743基于由比特位置指定部分2742指定的比特位置,指定在“Range”即將超過(guò)預(yù)定值之前的移位量,“Range”超過(guò)預(yù)定值是由于左移操作引起的。
在步驟ST23中,判決部分2744判斷在被加入下限值“Low”的MSB側(cè)的預(yù)定比特長(zhǎng)度的擴(kuò)展區(qū)數(shù)據(jù)“LowE”中,是否存在超過(guò)由移位量指定部分2743指定的移位量的空閑空間,其中比特?cái)?shù)據(jù)通過(guò)左移操作從下限值“Low”進(jìn)位。當(dāng)判決部分2744判斷在擴(kuò)展區(qū)數(shù)據(jù)“LowE”中存在超過(guò)移位量“NumShift”的空閑空間時(shí),對(duì)下限值“Low”和“Range”執(zhí)行左移操作。具體地,基本區(qū)數(shù)據(jù)“LowB”中的比特經(jīng)歷左移操作,被左移移位量“NumShift”,移進(jìn)擴(kuò)展范圍“LowE”中。
在步驟ST24中,當(dāng)判決部分2744判定沒(méi)有空閑空間時(shí),擴(kuò)展數(shù)據(jù)編碼部分2745生成通過(guò)左移操作存儲(chǔ)在擴(kuò)展區(qū)數(shù)據(jù)“LowE”中的數(shù)據(jù)的編碼數(shù)據(jù)。
如上面所解釋的,在本實(shí)施例中,對(duì)用于連續(xù)對(duì)“Range”和下限值“Low”執(zhí)行左移操作直至“Range”超過(guò)預(yù)定值并根據(jù)執(zhí)行左移操作前的下限值“Low”生成編碼數(shù)據(jù)的編碼部分274和275提供了用于指定指示與“Range”中的MSB最接近的第一邏輯值的比特位置的比特位置指定部分2742;用于基于由比特位置指定部分2742指定的比特位置,指定在“Range”由于左移操作而即將超過(guò)預(yù)定值之前的移位量“NumShift”的移位量指定部分2743;用于判斷在被加入到下限值“Low”MSB側(cè)的預(yù)定比特長(zhǎng)度的擴(kuò)展區(qū)數(shù)據(jù)“LowE”中,是否存在超過(guò)由移位量指定部分2743確定的移位量“NumShift”的空閑空間的判決部分2744,其中比特?cái)?shù)據(jù)通過(guò)左移操作從下限值“Low”進(jìn)位;用于當(dāng)判決部分2744判斷沒(méi)有空閑空間時(shí),生成通過(guò)左移操作存儲(chǔ)在擴(kuò)展區(qū)數(shù)據(jù)“LowE”中的數(shù)據(jù)的編碼數(shù)據(jù)的擴(kuò)展數(shù)據(jù)編碼部分2745;作為其結(jié)果,可以在編碼處理中獲得高的速度以及計(jì)算量的減少。
具體地,在一般編碼設(shè)備中以一比特為單位執(zhí)行編碼處理,而在本實(shí)施例中,通過(guò)左移操作從基本區(qū)數(shù)據(jù)“LowB”進(jìn)行輸入,提供了具有預(yù)定比特長(zhǎng)度的擴(kuò)展區(qū)數(shù)據(jù)“LowE”,并且在擴(kuò)展區(qū)數(shù)據(jù)“LowE”中一并進(jìn)行數(shù)據(jù)編碼,作為其結(jié)果,可以減少分支處理和計(jì)算量,并且可以高速執(zhí)行編碼處理。
圖11是用于解釋圖7所示的編碼電路中的編碼處理的操作的具體示例的流程圖。圖12是用于解釋圖11所示的編碼電路的歸一化處理的具體示例的流程圖。參考圖11和圖12,將集中于上下文相關(guān)類型編碼部分274的處理,清楚地解釋編碼電路的編碼處理的具體示例。
上下文相關(guān)類型編碼部分274通過(guò)使用指定的上下文的索引“ctxIdx”和要被編碼的符號(hào)“binVal”作為輸入,執(zhí)行編碼處理。
“codIRange”和“codILow”指示概率范圍(“Range”)和下限值“Low”。這些值是在任何上下文相關(guān)/上下文無(wú)關(guān)類型AC中共同使用的。上下文CTX由索引“ctxIdx”管理,每一個(gè)上下文被分配指示MPS值和轉(zhuǎn)變狀態(tài)數(shù)的“valMPS”和“pStateIdx”。
在步驟ST101中,劃分部分2740將“codIRange”值量化為被稱為“qCodIRangeIdx”的值,使用規(guī)定的表值“rangeTabLPS”以獲得LPS的概率寬度“codIRangeLPS”。還將“codIRange”改變?yōu)镸PS的概率寬度。
在步驟ST102中,劃分部分2740基于輸入符號(hào)“bin”是否是MPS,分流處理。當(dāng)符號(hào)是MPS時(shí),通過(guò)在標(biāo)準(zhǔn)中規(guī)定的表值“transIdxMPS”轉(zhuǎn)變狀態(tài),并更新“pStateIdx”(ST103)。
另一方面,在步驟ST102中,當(dāng)輸入符號(hào)“bin”是LPS時(shí),更新“codILow”值和“codIRange”。
具體地,將通過(guò)將“codILow”和“codIRange”相加得到的值代入“codILow”,將“codIRangeLPS”代入“codIRange”(ST104)。
在步驟ST105中,判斷“pStateIdx”是否是“0”,當(dāng)“pStateIdx”是“0”時(shí),將“1-valMPS”代入“valMPS”(ST106),并且過(guò)程前進(jìn)到步驟ST107中的處理。在步驟ST105中,當(dāng)“pStateIdx”不是“0”時(shí),過(guò)程也前進(jìn)到步驟ST107的處理。
在步驟ST07中,更新“pStateIdx”。
在步驟ST108中,歸一化部分2741執(zhí)行歸一化處理(Renormalize),以執(zhí)行左移操作,直至“codIRange”值變?yōu)榈扔诨虼笥陬A(yù)定值。根據(jù)“codILow”值確定輸出比特(串)。
在歸一化處理中,如圖12所示,在步驟ST111中,比特位置指定部分2742和移位量指定部分2743基于“codIRange”(Range)計(jì)算左移量“NumShift”,如圖9所示。
在步驟ST112中,當(dāng)擴(kuò)展區(qū)有空間時(shí),判決部分2744對(duì)下限值“Low”執(zhí)行左移操作,基本區(qū)數(shù)據(jù)“LowB”的比特被移位到擴(kuò)展區(qū)數(shù)據(jù)“LowE”中(ST113)。具體地,下限值“Low”經(jīng)歷恰好被左移移位量“NumShift”的左移操作,“Range”經(jīng)歷恰好被左移移位量“NumShift”的左移操作,并且存儲(chǔ)在擴(kuò)展區(qū)數(shù)據(jù)“LowE”中的比特?cái)?shù)“NumExtBit”被加上移位量“NumShift”以更新。
另一方面,在步驟ST112中,當(dāng)判定擴(kuò)展區(qū)數(shù)據(jù)“LowE”中沒(méi)有空閑空間時(shí),擴(kuò)展數(shù)據(jù)編碼部分2745基于擴(kuò)展區(qū)數(shù)據(jù)“LowE”生成編碼數(shù)據(jù),并且過(guò)程返回至步驟ST112中的處理。
如上面所解釋的,根據(jù)本實(shí)施例的編碼電路不是以一比特為單位在擴(kuò)展區(qū)數(shù)據(jù)“LowE”中執(zhí)行數(shù)據(jù)編碼,因此以高的速度執(zhí)行算術(shù)處理,并且可以輸出與一般設(shè)備裝置輸出的編碼數(shù)據(jù)相同的編碼數(shù)據(jù)。
根據(jù)本發(fā)明第二實(shí)施例的編碼電路具有與圖7所示的編碼電路大致相同的配置,包括存儲(chǔ)器MEM、劃分部分2740和歸一化部分2741。歸一化部分2741包括比特位置指定部分2742、移位量指定部分2743、判決部分2744和擴(kuò)展數(shù)據(jù)編碼部分2745。
不同點(diǎn)在于判決部分2744的功能和擴(kuò)展數(shù)據(jù)編碼部分2745的功能。下面將只對(duì)不同點(diǎn)進(jìn)行解釋。
判決部分2744判斷被加入到下限值“Low”MSB側(cè)的擴(kuò)展區(qū)數(shù)據(jù)“LowE”中是否存在預(yù)置比特長(zhǎng)度的數(shù)據(jù),其中比特?cái)?shù)據(jù)通過(guò)左移操作從下限值“Low”進(jìn)位。
例如,判決部分2744判斷擴(kuò)展區(qū)數(shù)據(jù)“LowE”中是否存儲(chǔ)了以字節(jié)的整數(shù)倍為單位的比特?cái)?shù)據(jù)。
當(dāng)判定擴(kuò)展區(qū)數(shù)據(jù)“LowE”中存在預(yù)置比特長(zhǎng)度的數(shù)據(jù)時(shí),擴(kuò)展數(shù)據(jù)編碼部分2745生成通過(guò)左移操作存儲(chǔ)在擴(kuò)展區(qū)數(shù)據(jù)“LowE”中的數(shù)據(jù)的編碼數(shù)據(jù)。
下面將只清楚地解釋上面配置的操作的不同點(diǎn)。
判決部分2744判定擴(kuò)展區(qū)數(shù)據(jù)“LowE”是否存儲(chǔ)了以字節(jié)的整數(shù)倍為單位的比特?cái)?shù)據(jù),當(dāng)判定擴(kuò)展區(qū)數(shù)據(jù)“LowE”具有預(yù)置比特長(zhǎng)度的數(shù)據(jù)時(shí),擴(kuò)展數(shù)據(jù)編碼部分2745生成存儲(chǔ)在擴(kuò)展區(qū)數(shù)據(jù)“LowE”中的數(shù)據(jù)的編碼數(shù)據(jù)。在與以上情形不同的其他情形中,基本區(qū)數(shù)據(jù)“LowB”中的比特經(jīng)歷左移操作,被恰好左移移位量“NumShift”,移進(jìn)擴(kuò)展區(qū)“LowE”中。
如上面所解釋的,在本實(shí)施例中判決部分2744,用于判斷被加入到下限值“Low”MSB側(cè)的擴(kuò)展區(qū)數(shù)據(jù)“LowE”中是否存在預(yù)置比特長(zhǎng)度的數(shù)據(jù),其中比特?cái)?shù)據(jù)通過(guò)左移操作從下限值進(jìn)位;擴(kuò)展數(shù)據(jù)編碼部分2745,用于當(dāng)判定擴(kuò)展區(qū)數(shù)據(jù)“LowE”中存在預(yù)置比特長(zhǎng)度的數(shù)據(jù)時(shí),生成通過(guò)左移操作存儲(chǔ)在擴(kuò)展區(qū)數(shù)據(jù)“LowE”中的數(shù)據(jù)的編碼數(shù)據(jù);作為結(jié)果,可以以最佳的字節(jié)為單位執(zhí)行編碼,并且可以以更高的速度執(zhí)行算術(shù)處理。
另外,當(dāng)確定輸出比特時(shí),考慮編碼電路的進(jìn)位移行(carryover)。
圖13是用于解釋圖5所示的上下文無(wú)關(guān)類型編碼部分的操作的具體示例的圖。
在步驟ST201中,上下文無(wú)關(guān)類型編碼部分(旁路)275對(duì)“codILow”(下限值“Low”)執(zhí)行左移一位的左移操作。
在步驟ST202中,當(dāng)符號(hào)“bin”(bin Val)不是“0”時(shí),旁路275將“CodIRange”加到“codILow”,并將結(jié)果代入“codILow”(ST203),并且過(guò)程前進(jìn)到步驟ST204。另一方面,當(dāng)符號(hào)“bin”(binVal)是“0”時(shí),過(guò)程前進(jìn)到步驟ST204。
在步驟ST204中,判斷“codILow”是否等于或大于例如0×400的預(yù)定值,當(dāng)“codILow”是0×400或更大時(shí),執(zhí)行下文解釋的“PutBit(1)”處理(ST205),并將從“codILow”減去0×400所獲得的值代入“codILow”。
另一方面,在步驟ST204中,當(dāng)“codILow”小于0×400時(shí),判斷其是否小于0×200(ST207)。當(dāng)“codILow”小于0×200時(shí),執(zhí)行后文解釋的“PutBit(0)”處理(ST208)。另一方面,當(dāng)“codILow”等于或大于0×200時(shí),將從“codILow”減去0×200所獲得的值代入“codILow”,并且作為對(duì)進(jìn)位移行的度量的變量“bitOutstanding”的值增加1(ST209)。
圖14是用于解釋圖13所示的編碼處理的“PutBit(B)”處理的流程圖。參考圖14,將解釋旁路275的步驟ST205和ST208中的“PutBit(B)”的操作。
當(dāng)在步驟ST210中輸出編碼比特時(shí),旁路275判斷它是否是第一比特。指示第一比特的“firstbitFlag”被用來(lái)對(duì)此進(jìn)行判斷。當(dāng)“firstbitFlag”不是“0”時(shí),指示它是第一比特,而當(dāng)“firstbitFlag”是“0”時(shí),指示它不是第一比特。
詳細(xì)地,當(dāng)在步驟ST210中“firstbitFlag”不是“0”時(shí),旁路275將“0”代入“firstbitFlag”,并且不輸出第一比特。
另一方面,當(dāng)“firstbitFlag”是“0”時(shí),旁路275在步驟ST212中執(zhí)行“WriteBits(B,1)”處理。這里,“WriteBits(B,1)”是輸出一比特長(zhǎng)度的值“B”的處理。
在步驟ST213中,旁路275判斷“bitsOutstanding”是否大于“0”,當(dāng)判斷其大于“0”時(shí),執(zhí)行“WriteBits(1-B,1)”處理,從“bitOutstanding”減“1”,并且過(guò)程返回步驟ST213中的處理。這里,“WriteBits(1-B,1)”是輸出一比特長(zhǎng)度B的補(bǔ)碼。
另一方面,在步驟ST213中,當(dāng)判斷“bitOutstanding”等于或小于“0”時(shí),旁路275掛起一串處理。
通過(guò)執(zhí)行上面解釋的操作,旁路能夠執(zhí)行編碼處理,而不會(huì)導(dǎo)致進(jìn)位移行。
在上下文無(wú)關(guān)類型編碼處理中,根據(jù)本發(fā)明編碼電路的第三實(shí)施例的上下文無(wú)關(guān)類型編碼部分275,當(dāng)要經(jīng)歷上下文無(wú)關(guān)類型編碼處理的符號(hào)“bin”被連續(xù)輸入時(shí),考慮到“Range”值由于歸一化而不變的特性,通過(guò)一并對(duì)要被編碼的連續(xù)符號(hào)“bin”進(jìn)行編碼,獲得了更高速度的計(jì)算。
具體地,假定要被編碼的符號(hào)串是B=(b0 b1 b2 b3...bn),編碼順序是b0,b1,...,bn。
對(duì)每一個(gè)“bm(0<=m<=n)”重復(fù)“Length(B)”次上面解釋的實(shí)施例的上下文無(wú)關(guān)類型編碼處理(旁路)的結(jié)果等同于通過(guò)執(zhí)行公式(2)所示的計(jì)算而獲得的下限值“Low”。
公式2
Low=Low<<Length(B)+Range*Value(B)NumExtBits+=Length(B)下面將解釋對(duì)公式2的證明。
假定某個(gè)元素值N有排列A={A
,A[1],...,A[N-1]}和B={B
,B[1],...,B[N-1]}?!癆”和“B”可以由如下的遞歸公式表示。
公式3A[n+1]=2·A[n]+B[n]·C...(3)此時(shí),通過(guò)數(shù)學(xué)歸納法可以證明公式(3)中的“A[n]”可以由公式(4)表示。
公式4A[n]=2n·A
+(Σi=0n-1B[i]·2n-1-i)·C...(4)]]>(A)當(dāng)公式(4)中“n=0”時(shí),等號(hào)兩側(cè)都變?yōu)锳
。
(B)當(dāng)公式(4)中“n=k”時(shí),假定公式(5)成立。
公式5A[k]=2k·A
+(Σi=0k-1B[i]·2k-1-i)·C...(5)]]>此時(shí),從公式(3),將公式(5)代入公式(6)右側(cè)的“A[k]”。
公式6A[k+1]=2·A[k]+B[k]·C...(6)公式7A[k+1]=2·A[k]+B[k]·C]]>=2(2k·A
+(Σi=0k-1B[i]·2k-1-i)·C)+B[k]·C]]>=2k+1·A
+(Σi=0kB[i]·2k-i)·C...(7)]]>作為上述代入的結(jié)果,得到了公式(7),并且證明了在“n=k+1”的情形中,公式(4)也成立。
從(A)和(B),證明了公式(4)對(duì)任何n都成立。(證畢)現(xiàn)在假定要被編碼的符號(hào)串是B=(b0 b1 b2 b3...bn),編碼順序是b0,b1,...,bn。
當(dāng)假定在即將對(duì)符號(hào)“bk”編碼之前的“Low”值是A[k],且“bk”值是b[k]時(shí),在對(duì)“bk”執(zhí)行處理后,“Low”值,即A[k+1],變?yōu)閺纳厦娴墓?4)得到的公式(8)。
公式8A[k+1]=2k+1·A
+(Σi=0kB[i]·2k-i)·C...(8)]]>當(dāng)在“k=n”的情形中用公式(9)替代時(shí),在對(duì)“B”編碼后的“Low”值與公式(10)相同。
這里,“Length(S)”是符號(hào)串“S”的長(zhǎng)度,“Value(S)”是假定符號(hào)串“S”為二進(jìn)制時(shí)的值。
具體地,例如,當(dāng)符號(hào)串是{0,1,0}時(shí),Value(S)是0×22+1×21+0×20=2。即使當(dāng)比特長(zhǎng)度長(zhǎng)時(shí),符號(hào)串也被假定為是二進(jìn)制數(shù)據(jù),以相同的方式計(jì)算Value(S)。
公式9Length(B)=n+1Value(B)=Σi=0nB[i]·2n-i]]>Range=C...(9)公式10Low=Low<<Length(B)+Range*Value(B)上面的處理等同于執(zhí)行上面解釋的歸一化處理“Renormalize”的結(jié)果。也就是,不是順序地對(duì)符號(hào)串的每個(gè)“bin”執(zhí)行處理,而是可以一并對(duì)符號(hào)串執(zhí)行編碼。
下面將解釋根據(jù)本實(shí)施例的上下文無(wú)關(guān)類型編碼部分的具體配置。
圖15是根據(jù)本發(fā)明編碼電路的第三實(shí)施例的上下文無(wú)關(guān)類型編碼部分的功能框圖。
例如如圖15所示,根據(jù)本實(shí)施例的上下文無(wú)關(guān)類型編碼部分275包括連續(xù)判決部分2751、單處理部分2752、連續(xù)處理部分2753和歸一化部分2754。
連續(xù)判決部分2751對(duì)應(yīng)于根據(jù)本發(fā)明的檢測(cè)裝置。單處理部分2752對(duì)應(yīng)于根據(jù)第一實(shí)施例的上下文無(wú)關(guān)類型編碼部分275。歸一化部分2754對(duì)應(yīng)于根據(jù)第一實(shí)施例的歸一化部分2741。下面只解釋與上面的實(shí)施例的不同點(diǎn)。
連續(xù)判決部分2751檢測(cè)要被編碼的連續(xù)比特?cái)?shù)據(jù)是否是上下文無(wú)關(guān)類型,其上下文無(wú)關(guān)類型具有能夠執(zhí)行“Range”固定的編碼處理的特性。當(dāng)判定不是連續(xù)的時(shí),連續(xù)判決部分2751使單處理部分2752執(zhí)行常規(guī)上下文無(wú)關(guān)類型編碼處理。
當(dāng)連續(xù)判決部分2751檢測(cè)到連續(xù)比特?cái)?shù)據(jù)是上下文無(wú)關(guān)類型時(shí),連續(xù)處理部分2753對(duì)連續(xù)比特?cái)?shù)據(jù)一并執(zhí)行編碼處理,并將處理結(jié)果輸出至歸一化部分2754。
如圖15所示,連續(xù)處理部分2753包括第一轉(zhuǎn)換部分27531和第二轉(zhuǎn)換部分27532。
第一轉(zhuǎn)換部分27531對(duì)應(yīng)于根據(jù)本發(fā)明的轉(zhuǎn)換裝置。
當(dāng)連續(xù)判決部分2751檢測(cè)到連續(xù)比特?cái)?shù)據(jù)是上下文無(wú)關(guān)類型時(shí),第一轉(zhuǎn)換部分27531使連續(xù)比特?cái)?shù)據(jù)成為二進(jìn)制數(shù)據(jù),并將如下獲得的值用作新的下限值“Low”將該二進(jìn)制數(shù)據(jù)和預(yù)置“Range”的乘積加到通過(guò)對(duì)下限值“Low”執(zhí)行恰好是該連續(xù)比特?cái)?shù)據(jù)的比特?cái)?shù)據(jù)長(zhǎng)度的左移操作而得到的值上;并且將連續(xù)比特?cái)?shù)據(jù)的比特長(zhǎng)度加到擴(kuò)展區(qū)數(shù)據(jù)“LowE”的比特上。
第二轉(zhuǎn)換部分27532將連續(xù)比特?cái)?shù)據(jù)的比特長(zhǎng)度加到擴(kuò)展區(qū)數(shù)據(jù)的比特長(zhǎng)度上,并更新擴(kuò)展區(qū)數(shù)據(jù)的比特長(zhǎng)度。
圖16是用于解釋圖15所示的編碼電路的上下文無(wú)關(guān)類型編碼部分的操作的圖。參考圖16,將解釋在輸入了要被編碼的連續(xù)比特?cái)?shù)據(jù)的編碼處理情形中,上下文無(wú)關(guān)類型編碼部分275的操作。
在步驟ST301中,連續(xù)判決部分2751檢測(cè)要被編碼的連續(xù)比特?cái)?shù)據(jù)是否是上下文無(wú)關(guān)類型,其中上下文無(wú)關(guān)類型具有能夠執(zhí)行“Range”固定的編碼處理的特性。
在步驟ST302中,當(dāng)連續(xù)判決部分2751檢測(cè)到連續(xù)比特?cái)?shù)據(jù)是上下文無(wú)關(guān)類型時(shí),第一轉(zhuǎn)換部分27531使連續(xù)比特?cái)?shù)據(jù)成為二進(jìn)制數(shù)據(jù),并將如下獲得的值用作新的下限值“Low”將該二進(jìn)制數(shù)據(jù)和預(yù)置“Range”的乘積加到通過(guò)對(duì)下限值“Low”執(zhí)行恰好是該連續(xù)比特?cái)?shù)據(jù)的比特?cái)?shù)據(jù)長(zhǎng)度的左移操作而得到的值上;并且將連續(xù)比特?cái)?shù)據(jù)的比特長(zhǎng)度加到擴(kuò)展區(qū)數(shù)據(jù)“LowE”的比特上。
第二轉(zhuǎn)換部分27532將連續(xù)比特?cái)?shù)據(jù)的比特長(zhǎng)度加到擴(kuò)展區(qū)數(shù)據(jù)的比特長(zhǎng)度上,并更新擴(kuò)展區(qū)數(shù)據(jù)的比特長(zhǎng)度。
在步驟ST303中,歸一化部分2754執(zhí)行與歸一化部分2741相同的歸一化處理,例如如圖12所示。
另外,此時(shí),用于抑制通過(guò)左移操作而進(jìn)位的第一個(gè)一比特的輸出的值被設(shè)置為圖12所示的“NumExtBits”的初始值,并且抑制基于擴(kuò)展數(shù)據(jù)“LowE”的通過(guò)左移操作輸入的第一個(gè)一比特的輸出。
具體地,例如,通過(guò)將“NumExtBits”的初始值設(shè)置為“-1”,可以忽略圖14中步驟ST210所示的條件判決,并可以以高的速度執(zhí)行處理。
如上面所解釋的,在本實(shí)施例中,上下文無(wú)關(guān)類型編碼部分275被提供有連續(xù)判決部分,用于檢測(cè)要被編碼的連續(xù)比特?cái)?shù)據(jù)是否是上下文無(wú)關(guān)類型,其中上下文無(wú)關(guān)類型具有能夠執(zhí)行“Range”固定的編碼處理的特性;第一轉(zhuǎn)換部分27531,用于當(dāng)連續(xù)判決部分2751檢測(cè)到連續(xù)比特?cái)?shù)據(jù)是上下文無(wú)關(guān)類型時(shí),使連續(xù)比特?cái)?shù)據(jù)成為二進(jìn)制數(shù)據(jù),并將這樣的一個(gè)值用作新的下限值“Low”,該值是通過(guò)將該二進(jìn)制數(shù)據(jù)和預(yù)置“Range”的乘積加到通過(guò)對(duì)下限值“Low”執(zhí)行恰好是該連續(xù)比特?cái)?shù)據(jù)的比特?cái)?shù)據(jù)長(zhǎng)度的左移操作得到的值而得到的,并且將連續(xù)比特?cái)?shù)據(jù)的比特長(zhǎng)度加到擴(kuò)展區(qū)數(shù)據(jù)“LowE”的比特上;第二轉(zhuǎn)換部分27532,用于將連續(xù)比特?cái)?shù)據(jù)的比特長(zhǎng)度加到擴(kuò)展區(qū)數(shù)據(jù)的比特長(zhǎng)度上,并更新擴(kuò)展區(qū)數(shù)據(jù)的比特長(zhǎng)度;和歸一化部分2754;作為結(jié)果,連續(xù)的上下文無(wú)關(guān)類型比特?cái)?shù)據(jù)可以被一并編碼,并且計(jì)算速度變高。
另外,通過(guò)將“NumExtBits”的初始值設(shè)置為“-1”,可以忽略圖14中步驟ST210所示的條件判決,并可以以高的速度執(zhí)行處理。
也就是,通過(guò)消除在每個(gè)比特輸出中需要的判決分支,算術(shù)處理速度可以變高。
注意,本發(fā)明并不局限于這些示出的實(shí)施例,而可以被自由且合適地修改。
在根據(jù)本實(shí)施例的編碼設(shè)備中,根據(jù)本發(fā)明的功能通過(guò)硬件實(shí)現(xiàn),但是其并不局限于該實(shí)施例。例如,通過(guò)由計(jì)算機(jī)(數(shù)據(jù)處理設(shè)備)執(zhí)行具有根據(jù)上面解釋的本發(fā)明的功能的程序,也可以實(shí)現(xiàn)根據(jù)本發(fā)明的功能。
另外,還解釋了具有單處理部分和連續(xù)處理部分的示例,但是本發(fā)明并不局限于該實(shí)施例,例如,可以只具有連續(xù)處理部分。
上面的這些實(shí)施例還可以被組合實(shí)施。
另外,“CABAC”的示例作為本實(shí)施例的示例被解釋,但是其并不局限于該實(shí)施例。
上面解釋的實(shí)施例是為了更容易地理解本發(fā)明,而不是為了限制本發(fā)明。相應(yīng)地,在上面的實(shí)施例中所公開(kāi)的各個(gè)單元包括了設(shè)計(jì)中的所有修改以及屬于本發(fā)明技術(shù)領(lǐng)域的等同物。
權(quán)利要求
1.一種編碼設(shè)備,所述編碼設(shè)備用于對(duì)代表要被編碼的圖像信號(hào)的句法元進(jìn)行上下文自適應(yīng)二進(jìn)制算術(shù)編碼,其中具有高出現(xiàn)概率的第一數(shù)據(jù)和具有低出現(xiàn)概率的第二數(shù)據(jù)之間的范圍的大小由第一數(shù)據(jù)定義,指示所述第一和第二數(shù)據(jù)之間的邊界的下限由第二數(shù)據(jù)定義,以及依次對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)在從最低有效位到最高有效位的方向上執(zhí)行移位操作,直至所述被移位的第一數(shù)據(jù)超過(guò)預(yù)定值,以及在所述移位操作即將結(jié)束之前響應(yīng)于所述被移位的第二數(shù)據(jù)生成編碼數(shù)據(jù),所述編碼設(shè)備包括比特位置指定裝置,用于指定指示與所述第一數(shù)據(jù)中的所述最高有效位最靠近的第一邏輯值的比特位置;移位量指定裝置,用于基于由所述比特位置指定裝置指定的所述比特位置,指定在所述移位操作即將結(jié)束之前的所述第一數(shù)據(jù)的移位量;判決裝置,用于判決在具有預(yù)定比特長(zhǎng)度的擴(kuò)展數(shù)據(jù)中是否存在大小超過(guò)在所述移位量指定裝置中指定的所述移位量的空區(qū)域,其中所述擴(kuò)展數(shù)據(jù)被加到所述第二數(shù)據(jù)的所述最高有效位,并通過(guò)所述移位操作從所述第二數(shù)據(jù)進(jìn)位了比特?cái)?shù)據(jù)的位;和編碼裝置,用于當(dāng)不存在所述空區(qū)域時(shí),從通過(guò)所述移位操作被包含在所述擴(kuò)展數(shù)據(jù)中的數(shù)據(jù),生成所述編碼數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的編碼設(shè)備,包括檢測(cè)裝置,用于檢測(cè)要被編碼的所述比特?cái)?shù)據(jù)是否是句法無(wú)關(guān)類型數(shù)據(jù),所述句法無(wú)關(guān)類型數(shù)據(jù)具有這樣的特性所述第一數(shù)據(jù)的編碼可以被固定地處理;和轉(zhuǎn)換裝置,用于當(dāng)所述要被編碼的比特?cái)?shù)據(jù)是所述句法無(wú)關(guān)類型數(shù)據(jù)時(shí),將一個(gè)值轉(zhuǎn)換為新的第二數(shù)據(jù),所述值如下獲得將所述連續(xù)比特?cái)?shù)據(jù)表示為二進(jìn)制數(shù)據(jù),將所述二進(jìn)制數(shù)據(jù)與所述預(yù)定第一數(shù)據(jù)相乘,并將所述乘積與所述被移位了所述連續(xù)比特?cái)?shù)據(jù)的比特?cái)?shù)據(jù)長(zhǎng)度的第二數(shù)據(jù)相加。
3.一種編碼設(shè)備,所述編碼設(shè)備用于對(duì)代表要被編碼的圖像信號(hào)的句法元進(jìn)行上下文自適應(yīng)二進(jìn)制算術(shù)編碼,其中具有高出現(xiàn)概率的第一數(shù)據(jù)和具有低出現(xiàn)概率的第二數(shù)據(jù)之間的范圍的大小由第一數(shù)據(jù)定義,指示所述第一和第二數(shù)據(jù)之間的邊界的下限由第二數(shù)據(jù)定義,以及依次對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)在從最低有效位到最高有效位的方向上執(zhí)行移位操作,直至所述被移位的第一數(shù)據(jù)超過(guò)預(yù)定值,以及在所述移位操作即將結(jié)束之前響應(yīng)于所述被移位的第二數(shù)據(jù)生成編碼數(shù)據(jù),所述編碼設(shè)備包括比特位置指定裝置,用于指定指示與所述第一數(shù)據(jù)中的所述最高有效位最靠近的第一邏輯值的比特位置;移位量指定裝置,用于基于由所述比特位置指定裝置指定的所述比特位置,指定在所述移位操作即將結(jié)束之前的所述第一數(shù)據(jù)的移位量;判決裝置,用于判決在具有預(yù)定比特長(zhǎng)度的擴(kuò)展數(shù)據(jù)中是否存在預(yù)定比特長(zhǎng)度數(shù)據(jù),其中所述擴(kuò)展數(shù)據(jù)被加到所述第二數(shù)據(jù)的所述最高有效位,并通過(guò)所述移位操作從所述第二數(shù)據(jù)進(jìn)位了比特?cái)?shù)據(jù)的位;和編碼裝置,用于當(dāng)不存在所述預(yù)定比特長(zhǎng)度數(shù)據(jù)時(shí),從通過(guò)所述移位操作被包含在所述擴(kuò)展數(shù)據(jù)中的數(shù)據(jù),生成所述編碼數(shù)據(jù)。
4.一種編碼設(shè)備,包括運(yùn)動(dòng)矢量生成裝置,用于基于要被處理運(yùn)動(dòng)補(bǔ)償?shù)膱D像數(shù)據(jù)與用作所述運(yùn)動(dòng)補(bǔ)償參考的參考圖像數(shù)據(jù)之間的第一差別生成運(yùn)動(dòng)矢量;第一信號(hào)處理裝置,用于對(duì)要被處理所述運(yùn)動(dòng)補(bǔ)償?shù)乃鰣D像數(shù)據(jù)與預(yù)測(cè)圖像數(shù)據(jù)之間的第二差別進(jìn)行正交變換處理,以及對(duì)所述正交變換的結(jié)果進(jìn)行量化處理;第二信號(hào)處理裝置,用于對(duì)由所述第一信號(hào)處理裝置生成的數(shù)據(jù)進(jìn)行反量化處理,以及對(duì)由所述反量化處理獲得的數(shù)據(jù)進(jìn)行反正交變換,由此生成參考數(shù)據(jù);第三信號(hào)處理裝置,用于基于所述運(yùn)動(dòng)矢量和所述參考圖像數(shù)據(jù)生成所述預(yù)測(cè)圖像數(shù)據(jù);和編碼裝置,用于編碼由所述第一信號(hào)處理裝置生成的數(shù)據(jù)和所述運(yùn)動(dòng)矢量編碼,所述編碼裝置用于對(duì)代表要被編碼的圖像信號(hào)的句法元進(jìn)行上下文自適應(yīng)二進(jìn)制算術(shù)編碼,其中具有高出現(xiàn)概率的第一數(shù)據(jù)和具有低出現(xiàn)概率的第二數(shù)據(jù)之間的范圍的大小由第一數(shù)據(jù)定義,指示所述第一和第二數(shù)據(jù)之間的邊界的下限由第二數(shù)據(jù)定義,以及依次對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)在從最低有效位到最高有效位的方向上執(zhí)行移位操作,直至所述被移位的第一數(shù)據(jù)超過(guò)預(yù)定值,以及在所述移位操作即將結(jié)束之前響應(yīng)于所述被移位的第二數(shù)據(jù)生成編碼數(shù)據(jù),所述編碼裝置包括比特位置指定裝置,用于指定指示與所述第一數(shù)據(jù)中的所述最高有效位最靠近的第一邏輯值的比特位置;移位量指定裝置,用于基于由所述比特位置指定裝置指定的所述比特位置,指定在所述移位操作即將結(jié)束之前的所述第一數(shù)據(jù)的移位量;判決裝置,用于判決在具有預(yù)定比特長(zhǎng)度的擴(kuò)展數(shù)據(jù)中是否存在大小超過(guò)在所述移位量指定裝置中指定的所述移位量的空區(qū)域,其中所述擴(kuò)展數(shù)據(jù)被加到所述第二數(shù)據(jù)的所述最高有效位,并通過(guò)所述移位操作從所述第二數(shù)據(jù)進(jìn)位了比特?cái)?shù)據(jù)的位;和編碼數(shù)據(jù)生成裝置,用于當(dāng)不存在所述空區(qū)域時(shí),從通過(guò)所述移位操作被包含在所述擴(kuò)展數(shù)據(jù)中的數(shù)據(jù)生成所述編碼數(shù)據(jù)。
5.一種在計(jì)算機(jī)上執(zhí)行的程序,所述程序用于對(duì)代表要被編碼的圖像信號(hào)的句法元進(jìn)行上下文自適應(yīng)二進(jìn)制算術(shù)編碼,其中具有高出現(xiàn)概率的第一數(shù)據(jù)和具有低出現(xiàn)概率的第二數(shù)據(jù)之間的范圍的大小由第一數(shù)據(jù)定義,指示所述第一和第二數(shù)據(jù)之間的邊界的下限由第二數(shù)據(jù)定義,以及依次對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)在從最低有效位到最高有效位的方向上執(zhí)行移位操作,直至所述被移位的第一數(shù)據(jù)超過(guò)預(yù)定值,以及在所述移位操作即將結(jié)束之前響應(yīng)于所述被移位的第二數(shù)據(jù)生成編碼數(shù)據(jù),所述程序包括第一過(guò)程,用于指定指示與所述第一數(shù)據(jù)中的所述最高有效位最靠近的第一邏輯值的比特位置;第二過(guò)程,用于基于由所述第一過(guò)程指定的所述比特位置,指定在所述移位操作即將結(jié)束之前的所述第一數(shù)據(jù)的移位量;第三過(guò)程,用于判決在具有預(yù)定比特長(zhǎng)度的擴(kuò)展數(shù)據(jù)中是否存在大小超過(guò)在所述第二過(guò)程中指定的所述移位量的空區(qū)域,其中所述擴(kuò)展數(shù)據(jù)被加到所述第二數(shù)據(jù)的所述最高有效位,并通過(guò)所述移位操作從所述第二數(shù)據(jù)進(jìn)位了比特?cái)?shù)據(jù)的位;和第四過(guò)程,用于當(dāng)不存在所述空區(qū)域時(shí),從通過(guò)所述移位操作被包含在所述擴(kuò)展數(shù)據(jù)中的數(shù)據(jù),生成所述編碼數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的程序,包括在所述第一過(guò)程之前的第五過(guò)程,用于將一個(gè)值轉(zhuǎn)換為新的第二數(shù)據(jù),所述值如下獲得將所述連續(xù)比特?cái)?shù)據(jù)表示為二進(jìn)制數(shù)據(jù),將所述二進(jìn)制數(shù)據(jù)與所述預(yù)定第一數(shù)據(jù)相乘,并將所述乘積與所述被移位了所述連續(xù)比特?cái)?shù)據(jù)的比特?cái)?shù)據(jù)長(zhǎng)度的第二數(shù)據(jù)相加。
7.根據(jù)權(quán)利要求5所述的程序,其中一個(gè)值抑制通過(guò)移位操作被進(jìn)位了位的第一個(gè)一比特?cái)?shù)據(jù)的輸出,和所述第四過(guò)程抑制所述第一個(gè)一比特?cái)?shù)據(jù),所述第一個(gè)一比特?cái)?shù)據(jù)是基于所述擴(kuò)展數(shù)據(jù)由所述移位操作被輸入的。
8.一種在計(jì)算機(jī)上執(zhí)行的程序,所述程序用于對(duì)代表要被編碼的圖像信號(hào)的句法元進(jìn)行上下文自適應(yīng)二進(jìn)制算術(shù)編碼,其中具有高出現(xiàn)概率的第一數(shù)據(jù)和具有低出現(xiàn)概率的第二數(shù)據(jù)之間的范圍的大小由第一數(shù)據(jù)定義,指示所述第一和第二數(shù)據(jù)之間的邊界的下限由第二數(shù)據(jù)定義,以及依次對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)在從最低有效位到最高有效位的方向上執(zhí)行移位操作,直至所述被移位的第一數(shù)據(jù)超過(guò)預(yù)定值,以及在所述移位操作即將結(jié)束之前響應(yīng)于所述被移位的第二數(shù)據(jù)生成編碼數(shù)據(jù),所述程序包括第一過(guò)程,用于指定指示與所述第一數(shù)據(jù)中的所述最高有效位最靠近的第一邏輯值的比特位置;第二過(guò)程,用于基于由所述第一過(guò)程指定的所述比特位置,指定在所述移位操作即將結(jié)束之前的所述第一數(shù)據(jù)的移位量;第三過(guò)程,用于判決在具有預(yù)定比特長(zhǎng)度的擴(kuò)展數(shù)據(jù)中是否存在預(yù)定比特長(zhǎng)度數(shù)據(jù),其中所述擴(kuò)展數(shù)據(jù)被加到所述第二數(shù)據(jù)的所述最高有效位,并通過(guò)所述移位操作從所述第二數(shù)據(jù)進(jìn)位了比特?cái)?shù)據(jù)的位;和第四過(guò)程,用于當(dāng)不存在所述預(yù)定比特長(zhǎng)度數(shù)據(jù)時(shí),從通過(guò)所述移位操作被包含在所述擴(kuò)展數(shù)據(jù)中的數(shù)據(jù),生成所述編碼數(shù)據(jù)。
9.一種數(shù)據(jù)處理方法,所述數(shù)據(jù)處理方法對(duì)代表要被編碼的圖像信號(hào)的句法元進(jìn)行上下文自適應(yīng)二進(jìn)制算術(shù)編碼,其中具有高出現(xiàn)概率的第一數(shù)據(jù)和具有低出現(xiàn)概率的第二數(shù)據(jù)之間的范圍的大小由第一數(shù)據(jù)定義,指示所述第一和第二數(shù)據(jù)之間的邊界的下限由第二數(shù)據(jù)定義,以及依次對(duì)所述第一數(shù)據(jù)和所述第二數(shù)據(jù)在從最低有效位到最高有效位的方向上執(zhí)行移位操作,直至所述被移位的第一數(shù)據(jù)超過(guò)預(yù)定值,以及在所述移位操作即將結(jié)束之前響應(yīng)于所述被移位的第二數(shù)據(jù)生成編碼數(shù)據(jù),所述方法包括第一步驟,用于指定指示與所述第一數(shù)據(jù)中的所述最高有效位最靠近的第一邏輯值的比特位置;第二步驟,用于基于由所述第一步驟指定的所述比特位置,指定在所述移位操作即將結(jié)束之前的所述第一數(shù)據(jù)的移位量;第三步驟,用于判決在具有預(yù)定比特長(zhǎng)度的擴(kuò)展數(shù)據(jù)中是否存在大小超過(guò)在所述第二步驟中指定的所述移位量的空區(qū)域,其中所述擴(kuò)展數(shù)據(jù)被加到所述第二數(shù)據(jù)的所述最高有效位,并通過(guò)所述移位操作從所述第二數(shù)據(jù)進(jìn)位了比特?cái)?shù)據(jù)的位;和第四步驟,用于當(dāng)不存在所述空區(qū)域時(shí),從通過(guò)所述移位操作被包含在所述擴(kuò)展數(shù)據(jù)中的數(shù)據(jù),生成所述編碼數(shù)據(jù)。
全文摘要
提供了能夠在編碼處理中獲得高速度和減少的計(jì)算量的編碼設(shè)備、程序和數(shù)據(jù)處理方法,其中,用于對(duì)范圍和下限值執(zhí)行左移操作直至范圍超過(guò)預(yù)定值并根據(jù)在執(zhí)行左移操作前的下限值執(zhí)行編碼的編碼部分包括比特位置指定部分,用于指定指示與范圍中的MSB最靠近的第一邏輯值的比特位置;移位量指定部分,用于基于比特位置,指定范圍由于左移操作而即將超過(guò)預(yù)定值之前的移位量;判決部分,用于判決在具有預(yù)定比特長(zhǎng)度的擴(kuò)展區(qū)數(shù)據(jù)中是否存在超過(guò)移位量的空閑空間,其中擴(kuò)展區(qū)數(shù)據(jù)被加到下限值的MSB側(cè),其中比特?cái)?shù)據(jù)通過(guò)左移操作從下限值進(jìn)位;和擴(kuò)展數(shù)據(jù)編碼部分,用于當(dāng)不存在空閑空間時(shí),編碼通過(guò)左移操作被存儲(chǔ)在擴(kuò)展區(qū)數(shù)據(jù)中的數(shù)據(jù)。
文檔編號(hào)H03M7/40GK1630202SQ200410101328
公開(kāi)日2005年6月22日 申請(qǐng)日期2004年12月17日 優(yōu)先權(quán)日2003年12月17日
發(fā)明者鶴大輔 申請(qǐng)人:索尼株式會(huì)社