專利名稱:熵編碼控制方法及熵編碼電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻編碼技術(shù),特別涉及基于H.264標(biāo)準(zhǔn)的一種熵編碼控制方法和一種熵編碼電路。
背景技術(shù):
基于H.264視頻編解碼標(biāo)準(zhǔn)中,編碼對(duì)象是視頻信號(hào)中的語(yǔ)法元素(SE),分為殘差SE和非殘差SE。
其中,殘差SE包括表示當(dāng)前塊是否有非零系數(shù)的CBF、表示當(dāng)前位置上的非0系數(shù)的絕對(duì)值減1的CALM、表示當(dāng)前位置上的系數(shù)是否為0的SCF、表示當(dāng)前位置上的系數(shù)是否為最后一個(gè)非0系數(shù)的LSCF等類別的數(shù)據(jù)等;非殘差SE包括表示前后向預(yù)測(cè)的參考圖像索引的refIdx、表示當(dāng)前亮度和色度塊的直流和交流分量的非零情況的CBP等類別的數(shù)據(jù)。
現(xiàn)有的熵編碼過(guò)程中,分別對(duì)非殘差SE和殘差SE采用不同的編碼方式進(jìn)行編碼。
例如,對(duì)部分非殘差SE采用定長(zhǎng)(Fix-length)編碼、對(duì)另一部分非殘差SE采用格魯姆(Exp-golomb)編碼、對(duì)殘差SE采用自適應(yīng)變長(zhǎng)(Cavlc)編碼;或者,對(duì)部分非殘差SE采用定長(zhǎng)(Fix-length)編碼、對(duì)部分非殘差SE采用格魯姆(Exp-golomb)編碼、對(duì)其它非殘差SE和所有殘差SE采用自適應(yīng)算術(shù)(Cabac)編碼。
也就是說(shuō),熵編碼電路中通常包括由定長(zhǎng)編碼、格魯姆編碼和自適應(yīng)變長(zhǎng)編碼所需的邏輯功能單元;或者包括由定長(zhǎng)編碼、格魯姆編碼和自適應(yīng)算術(shù)編碼所需的邏輯功能單元;即自適應(yīng)變長(zhǎng)編碼和自適應(yīng)算術(shù)編碼為二選一的編碼方式。
如圖1所示,現(xiàn)有技術(shù)中以非殘差SE為編碼對(duì)象的定長(zhǎng)編碼過(guò)程包括接收非殘差SE;查找定長(zhǎng)表,即根據(jù)預(yù)設(shè)的長(zhǎng)度將表示非殘差SE的二進(jìn)制比特串分段輸出,分段輸出的比特串即為編碼結(jié)果;對(duì)輸出的編碼結(jié)果進(jìn)行碼流拼接。
如圖2所示,現(xiàn)有技術(shù)中以非殘差SE為編碼對(duì)象的格魯姆編碼過(guò)程包括接收非殘差SE;查找格魯姆表中,與非殘差SE對(duì)應(yīng)的編碼結(jié)果輸出;對(duì)輸出的編碼結(jié)果進(jìn)行碼流拼接。
如圖3所示,現(xiàn)有技術(shù)中以殘差SE為編碼對(duì)象的自適應(yīng)變長(zhǎng)編碼過(guò)程包括接收殘差SE;對(duì)殘差SE進(jìn)行數(shù)據(jù)分析并取絕對(duì)值;查找變長(zhǎng)表中,與非殘差SE對(duì)應(yīng)的編碼結(jié)果輸出;對(duì)輸出的編碼結(jié)果進(jìn)行碼流拼接。其中,變長(zhǎng)表中包括Coeff_token表、Trailing_ones_sign_flag表、Level表、Run_before表,分別針對(duì)不同的殘差SE。
如圖4所示,現(xiàn)有技術(shù)中以殘差SE和非殘差SE為編碼對(duì)象的自適應(yīng)算術(shù)編碼過(guò)程包括接收殘差SE或非殘差SE;如果當(dāng)前接收的SE為殘差SE,則對(duì)殘差SE取絕對(duì)值并進(jìn)行數(shù)據(jù)分析,再進(jìn)行二進(jìn)制化查表,如果當(dāng)前接收的SE為非殘差SE,則直接進(jìn)行二進(jìn)制化查表;進(jìn)行概率模型查詢,即根據(jù)二進(jìn)制化查表得到的表示殘差SE或非殘差SE的二進(jìn)制比特串,查找概率模型表,得到每個(gè)比特串對(duì)應(yīng)的概率模型;根據(jù)查找到的概率模型更新對(duì)應(yīng)的概率空間;根據(jù)概率空間更新結(jié)果進(jìn)行歸一化處理生成碼流;對(duì)作為編碼結(jié)果的碼流進(jìn)行碼流拼接。
然而,上述的每一種編碼方式,均是采用串行處理方式,即對(duì)接收到的SE編碼完成并進(jìn)行碼流拼接輸出后,才接收下一個(gè)SE,從而使得熵編碼的效率不高。也就是說(shuō),對(duì)于實(shí)現(xiàn)每一種編碼方式的電路,包括多個(gè)順序相連的實(shí)現(xiàn)不同邏輯處理過(guò)程的邏輯功能單元。當(dāng)?shù)谝粋€(gè)邏輯功能單元接收并處理接收到的數(shù)據(jù)后,輸出給與其相鄰的后一個(gè)邏輯功能單元并開(kāi)始等待,由后續(xù)的一個(gè)或多個(gè)邏輯功能單元順序?qū)υ摂?shù)據(jù)進(jìn)行處理,當(dāng)最后一個(gè)邏輯功能單元結(jié)束其處理并輸出結(jié)果后,第一個(gè)邏輯功能單元才停止等待,再次接收外部輸入的待處理數(shù)據(jù)。這樣,使得電路中的每個(gè)邏輯功能單元都需要進(jìn)行長(zhǎng)時(shí)間的等待,從而降低了熵編碼效率。
而且,上述不同的編碼方式之間存在部分相同的邏輯處理過(guò)程,但現(xiàn)有技術(shù)中,仍然通過(guò)獨(dú)立的多個(gè)邏輯功能單元來(lái)分別實(shí)現(xiàn)上述相同的邏輯處理過(guò)程,即實(shí)現(xiàn)每個(gè)編碼方式的電路之間相互獨(dú)立,從而造成了硬件資源的浪費(fèi)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的一個(gè)主要目的在于,提供一種熵編碼控制方法,能夠提高熵編碼的效率。
本發(fā)明的另一個(gè)主要目的在于,提供一種熵編碼電路,能夠提高熵編碼的效率。
本發(fā)明的再一個(gè)主要目的在于,提供另一種熵編碼電路,能夠提高熵編碼的效率。
根據(jù)上述的一個(gè)主要目的,本發(fā)明提供了一種熵編碼控制方法,每一個(gè)邏輯功能單元進(jìn)行相應(yīng)的邏輯處理過(guò)程,包括每一個(gè)邏輯功能單元,在其已產(chǎn)生了處理結(jié)果、且與其相鄰的后一個(gè)邏輯功能單元的邏輯處理過(guò)程已完成時(shí),將該邏輯功能單元得到的所述處理結(jié)果提供給與其相鄰的后一個(gè)邏輯功能單元。
進(jìn)一步為每一個(gè)邏輯功能單元設(shè)置一個(gè)寄存器,存儲(chǔ)該邏輯功能單元產(chǎn)生的所述處理結(jié)果;所述寄存器包括一個(gè)標(biāo)志位,用于表示與該邏輯功能單元相鄰的后一個(gè)邏輯功能單元是否能夠從該寄存器中讀取所述處理結(jié)果;每一個(gè)邏輯功能單元進(jìn)一步在其對(duì)應(yīng)的邏輯處理過(guò)程已完成時(shí),產(chǎn)生表示邏輯處理過(guò)程已完成的控制信號(hào);所述將該邏輯功能單元得到的處理結(jié)果提供給與其相鄰的后一個(gè)邏輯功能單元為
每一個(gè)邏輯功能單元在與其相鄰的前一個(gè)邏輯功能單元的寄存器標(biāo)志位為表示可讀取的數(shù)值、該邏輯功能單元產(chǎn)生了所述處理結(jié)果、且與該邏輯功能單元相鄰的后一個(gè)邏輯功能單元已產(chǎn)生了所述控制信號(hào)時(shí),該邏輯功能單元存儲(chǔ)所述處理結(jié)果,并將其對(duì)應(yīng)的寄存器標(biāo)志位設(shè)置為表示可讀取的數(shù)值,允許與其相鄰的后一個(gè)邏輯功能單元從該邏輯功能單元對(duì)應(yīng)的寄存器中讀取所述處理結(jié)果。
每一個(gè)邏輯功能單元在其未產(chǎn)生所述處理結(jié)果,但與其相鄰的后一個(gè)邏輯功能單元已產(chǎn)生了所述控制信號(hào)時(shí),則將該邏輯功能單元對(duì)應(yīng)的寄存器標(biāo)志位設(shè)置為表示不可讀取的數(shù)值,否則,保持寄存器標(biāo)志位的值不變。
所述編碼方式為自適應(yīng)算術(shù)編碼,所述邏輯功能單元包括接收數(shù)據(jù)單元、絕對(duì)值運(yùn)算單元、數(shù)據(jù)分析單元、二進(jìn)制化查表單元、概率模型查詢單元、概率空間更新單元、歸一化處理生成碼流單元、碼流拼接單元;或者,所述編碼方式為變長(zhǎng)編碼,所述邏輯功能單元包括接收數(shù)據(jù)單元、絕對(duì)值運(yùn)算單元、數(shù)據(jù)分析單元、變長(zhǎng)表查詢生成碼流單元、碼流拼接單元;或者,所述編碼方式為格魯姆編碼,所述邏輯功能單元包括接收數(shù)據(jù)單元、格魯姆表查詢單元、碼流拼接單元;或者,所述編碼方式為定長(zhǎng)編碼,所述邏輯功能單元包括接收數(shù)據(jù)單元、定長(zhǎng)表查詢單元、碼流拼接單元。
根據(jù)上述的另一個(gè)主要目的,本發(fā)明提供了一種熵編碼電路,順序包括如下邏輯功能單元接收數(shù)據(jù)單元、絕對(duì)值運(yùn)算單元、數(shù)據(jù)分析單元、二進(jìn)制化查表單元、概率模型查詢單元、概率空間更新單元、歸一化處理生成碼流單元、碼流拼接單元;各邏輯功能單元在其已產(chǎn)生了作為與其相鄰的后一個(gè)邏輯功能單元的待處理數(shù)據(jù)的處理結(jié)果、且與其相鄰的后一個(gè)邏輯功能單元的邏輯處理過(guò)程已完成時(shí),將其得到的處理結(jié)果輸出給與其相鄰的后一個(gè)邏輯功能單元;其中,與所述接收數(shù)據(jù)單元相鄰的前一個(gè)邏輯功能單元為外部電路的輸入,與所述碼流拼接單元相鄰的后一個(gè)邏輯功能單元為向外部電路的輸出。
進(jìn)一步分別在每個(gè)邏輯功能單元的輸出端設(shè)置寄存器1~寄存器8,分別存儲(chǔ)對(duì)應(yīng)的邏輯功能單元產(chǎn)生的所述處理結(jié)果;分別對(duì)應(yīng)不同邏輯功能單元的寄存器1~寄存器8,還分別與對(duì)應(yīng)的邏輯功能單元相鄰的后一個(gè)邏輯功能單元的輸入端相連;所述寄存器1~寄存器8,分別包括標(biāo)志位1~標(biāo)志位8,分別表示寄存器1~寄存器8是否可讀?。桓鬟壿嫻δ軉卧M(jìn)一步在其對(duì)應(yīng)的邏輯處理過(guò)程已完成時(shí),分別產(chǎn)生表示邏輯處理過(guò)程已完成的控制信號(hào);輸出端與寄存器i相連的邏輯功能單元,在寄存器i-1的標(biāo)志位為表示可讀取的數(shù)值、該邏輯功能單元產(chǎn)生了所述處理結(jié)果、且輸出端與寄存器i+1相連的邏輯功能單元已產(chǎn)生了所述控制信號(hào)時(shí),將寄存器i的標(biāo)志位設(shè)置為表示可讀取的數(shù)值,并存儲(chǔ)所述處理結(jié)果;其中,i為大于等于1且小于等于8的正整數(shù)。
進(jìn)一步在接收數(shù)據(jù)單元的輸出端設(shè)置一個(gè)寄存器1’,寄存器1’與二進(jìn)制化查找表單元的輸入端相連,具有一所述標(biāo)志位;如果二進(jìn)制化查找表單元當(dāng)前處理的數(shù)據(jù)為非殘差SE,則確定與其相鄰的前一個(gè)邏輯功能單元為接收數(shù)據(jù)單元;如果二進(jìn)制化查找表單元當(dāng)前處理的數(shù)據(jù)為殘差SE,則確定與其相鄰的前一個(gè)邏輯功能單元為數(shù)據(jù)分析單元;接收數(shù)據(jù)單元根據(jù)接收到的SE類型,將殘差SE存儲(chǔ)到寄存器1中,將非殘差SE存儲(chǔ)到寄存器1’中;如果已接收的數(shù)據(jù)為殘差SE,則確定與其相鄰的后一個(gè)邏輯功能單元為絕對(duì)值運(yùn)算單元;如果已接收的數(shù)據(jù)為非殘差SE,則確定與其相鄰的后一個(gè)邏輯功能單元為二進(jìn)制化查找表單元。
輸出端與寄存器i相連的邏輯功能單元,在其未產(chǎn)生所述處理結(jié)果、但輸出端與寄存器i+1相連的邏輯功能單元已產(chǎn)生了所述控制信號(hào)時(shí),進(jìn)一步將寄存器i的標(biāo)志位設(shè)置為表示不可讀取的數(shù)值,否則,保持寄存器i的標(biāo)志位的值不變。
該電路在接收數(shù)據(jù)單元與碼流拼接單元之間,進(jìn)一步包括多表查找表單元,用于進(jìn)行定長(zhǎng)查找表和格魯姆查找表;多表查找表單元的輸出端連接一寄存器,該寄存器具有一所述標(biāo)志位。
所述多表查找表單元進(jìn)一步用于進(jìn)行變長(zhǎng)查找表。
據(jù)上述的再一個(gè)主要目的,本發(fā)明提供了另一種熵編碼電路,順序包括如下邏輯功能單元接收數(shù)據(jù)單元、絕對(duì)值運(yùn)算單元、數(shù)據(jù)分析單元、變長(zhǎng)查找表單元、碼流拼接單元;其特征在于,各邏輯功能單元在其已產(chǎn)生了處理結(jié)果、且與其相鄰的后一個(gè)邏輯功能單元的邏輯處理過(guò)程已完成時(shí),將其得到的處理結(jié)果輸出給與其相鄰的后一個(gè)邏輯功能單元;其中,與所述接收數(shù)據(jù)單元相鄰的前一個(gè)邏輯功能單元為外部電路的輸入,與所述碼流拼接單元相鄰的后一個(gè)邏輯功能單元為向外部電路的輸出。
進(jìn)一步分別在每個(gè)邏輯功能單元的輸出端設(shè)置寄存器1~寄存器5,分別存儲(chǔ)對(duì)應(yīng)的邏輯功能單元產(chǎn)生的所述處理結(jié)果;分別對(duì)應(yīng)不同邏輯功能單元的寄存器1~寄存器5,還分別與對(duì)應(yīng)的邏輯功能單元相鄰的后一個(gè)邏輯功能單元的輸入端相連;所述寄存器1~寄存器5,分別包括標(biāo)志位1~標(biāo)志位5,分別表示寄存器1~寄存器5是否可讀??;各邏輯功能單元進(jìn)一步在其對(duì)應(yīng)的邏輯處理過(guò)程已完成時(shí),分別產(chǎn)生表示邏輯處理過(guò)程已完成的控制信號(hào);輸出端與寄存器j相連的邏輯功能單元,在寄存器j-1的標(biāo)志位為表示可讀取的數(shù)值、該邏輯功能單元產(chǎn)生了所述處理結(jié)果、且輸出端與寄存器j+1相連的邏輯功能單元已產(chǎn)生了所述控制信號(hào)時(shí),將寄存器j的標(biāo)志位設(shè)置為表示可讀取的數(shù)值,并存儲(chǔ)所述處理結(jié)果;其中,j為大于等于1且小于等于5的正整數(shù)。
輸出端與寄存器j相連的邏輯功能單元,在其未產(chǎn)生所述處理結(jié)果、但輸出端與寄存器j+1相連的邏輯功能單元已產(chǎn)生了所述控制信號(hào)時(shí),進(jìn)一步將寄存器i的標(biāo)志位設(shè)置為表示不可讀取的數(shù)值,否則,保持寄存器j的標(biāo)志位的值不變。
該電路在接收數(shù)據(jù)單元與碼流拼接單元之間,進(jìn)一步包括定長(zhǎng)查找表單元,用于進(jìn)行定長(zhǎng)查找表;格魯姆表查找表單元,用于進(jìn)行格魯姆查找表;定長(zhǎng)查找表單元和格魯姆表查找表單元的輸出端連接一寄存器,該寄存器為與變長(zhǎng)查找表單元的輸出端相連的寄存器。
由上述技術(shù)方案可見(jiàn),本發(fā)明在每個(gè)邏輯功能單元產(chǎn)生了處理結(jié)果、該處理結(jié)果為與其相鄰的后一個(gè)邏輯功能單元的待處理數(shù)據(jù)、且與其相鄰的后一個(gè)邏輯功能單元中的邏輯處理過(guò)程已完成時(shí),將該邏輯功能單元產(chǎn)生的處理結(jié)果提供給與其相鄰的后一個(gè)邏輯功能單元,從而在實(shí)現(xiàn)了流水線方式的同時(shí),避免了流水線堵塞及熵編碼結(jié)果錯(cuò)誤,相比于現(xiàn)有串行方式的熵編碼處理,提高了處理效率。
本發(fā)明可通過(guò)為每個(gè)邏輯功能單元設(shè)置一控制信號(hào),用于表示該邏輯功能單元是否完成其對(duì)應(yīng)的邏輯處理過(guò)程;同時(shí),為每個(gè)邏輯功能單元設(shè)置了一個(gè)寄存器,用于存儲(chǔ)該邏輯功能單元生成的作為與其相鄰的下一個(gè)邏輯功能單元待處理數(shù)據(jù)的處理結(jié)果,且該寄存器中具有一標(biāo)志位,用于表示與其相鄰的下一個(gè)邏輯功能單元是否能夠從該寄存器中讀取作為其待處理數(shù)據(jù)的處理結(jié)果。這樣,無(wú)需在電路中增加其他硬件,即可簡(jiǎn)單實(shí)現(xiàn)本發(fā)明的技術(shù)方案,從而使得本發(fā)明的技術(shù)方案易于實(shí)現(xiàn),且成本較低。
本發(fā)明還將熵編碼中的多種編碼方式中的相同邏輯處理過(guò)程,復(fù)用在相同的硬件資源中,從而節(jié)省了硬件資源。
圖1為現(xiàn)有技術(shù)中定長(zhǎng)編碼過(guò)程的示意圖。
圖2為現(xiàn)有技術(shù)中格魯姆編碼過(guò)程的示意圖。
圖3為現(xiàn)有技術(shù)中變長(zhǎng)變碼過(guò)程的示意圖。
圖4為現(xiàn)有技術(shù)中自適應(yīng)算術(shù)編碼過(guò)程的示意圖。
圖5為本發(fā)明實(shí)施例中熵編碼控制方法的流程圖。
圖6為本發(fā)明實(shí)施例中自適應(yīng)算術(shù)編碼電路的示意圖。
圖7為為發(fā)明實(shí)施例中自適應(yīng)變長(zhǎng)編碼電路的示意圖。
圖8為本發(fā)明實(shí)施例中包括4種編碼電路的熵編碼電路示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
本發(fā)明實(shí)施例中,對(duì)現(xiàn)有熵編碼中如圖1~圖4所示的4種編碼方式,均采用流水線方式替代串行方式,從而能夠提高熵編碼效率。而且,對(duì)于不同的編碼方式之間存在的相同邏輯處理過(guò)程,通過(guò)復(fù)用相同的硬件資源來(lái)實(shí)現(xiàn),從而能夠提高硬件資源利用率。
下面,先對(duì)本發(fā)明實(shí)施例中基于流水線方式的熵編碼控制方法進(jìn)行詳細(xì)說(shuō)明。
對(duì)于現(xiàn)有熵編碼中如圖1~圖4所示的4種編碼方式,可以分別將其中的多個(gè)邏輯處理過(guò)程劃分為多個(gè)流水線級(jí),從而實(shí)現(xiàn)流水線方式的編碼過(guò)程。
但是,對(duì)于上述4種編碼方式,均可能存在不同邏輯處理過(guò)程所占用的單元時(shí)間數(shù)量互不相同的問(wèn)題。因此,如果簡(jiǎn)單地將每個(gè)邏輯處理過(guò)程所占用的單元時(shí)間數(shù)量作為該流水線級(jí)的傳遞周期,即以每個(gè)邏輯處理過(guò)程的完成時(shí)間作為傳遞周期的結(jié)束時(shí)間,則會(huì)由于各流水線級(jí)的傳遞周期不同而造成流水線中的傳遞阻塞,從而無(wú)法實(shí)現(xiàn)流水線各級(jí)之間的正常傳遞。
然而,如果按照現(xiàn)有方式,將所有流水線級(jí)對(duì)應(yīng)的邏輯處理過(guò)程中,耗時(shí)最長(zhǎng)的一個(gè)邏輯處理過(guò)程所需處理周期作為統(tǒng)一的傳遞周期,則會(huì)使得其他邏輯處理所對(duì)應(yīng)的流水線級(jí)進(jìn)行不必要的等待,從而使得流水線的傳遞周期較長(zhǎng),降低了流水線的效率,而且,還會(huì)使得熵編碼結(jié)果出現(xiàn)錯(cuò)誤。
以如圖4所示的自適應(yīng)算術(shù)編碼為例,其數(shù)據(jù)分析邏輯處理過(guò)程耗時(shí)最長(zhǎng),通常占用16個(gè)單元時(shí)間,而其他邏輯處理過(guò)程一般均只需要占用1~2個(gè)單元時(shí)間。因此,如果將各流水線級(jí)之間的傳遞周期設(shè)置為16個(gè)單元時(shí)間,從而使得其他邏輯處理過(guò)程所對(duì)應(yīng)的流水線級(jí)等待大量的單元時(shí)間。
而且,數(shù)據(jù)分析邏輯處理過(guò)程在其完成最終處理之前的每一個(gè)單元時(shí)間均可能產(chǎn)生一個(gè)處理結(jié)果,作為其下一級(jí)的二進(jìn)制化查找表邏輯過(guò)程的待處理數(shù)據(jù)。也就是說(shuō),如果數(shù)據(jù)分析邏輯處理過(guò)程的結(jié)束時(shí)間作為傳遞周期的結(jié)束時(shí)間,雖然能夠保證各流水線級(jí)對(duì)應(yīng)的邏輯處理過(guò)程的同步,但對(duì)于二進(jìn)制化查找表過(guò)程來(lái)說(shuō),只能夠?qū)崿F(xiàn)對(duì)16個(gè)待處理數(shù)據(jù)中的1個(gè)的二進(jìn)制化查找表,從而使得最終的熵編碼結(jié)果不正確。
而且,對(duì)于不同的SE,每個(gè)邏輯處理過(guò)程所占用的單位時(shí)間數(shù)量也可能不同,例如,對(duì)于當(dāng)前SE的歸一化處理生成碼流的邏輯處理過(guò)程可能占用6個(gè)單元時(shí)間,而對(duì)于下一個(gè)SE的歸一化處理生成碼流的邏輯處理過(guò)程可能只需4個(gè)單元時(shí)間,因此,如果將傳遞周期設(shè)置為固定的長(zhǎng)度,還會(huì)造成部分流水線級(jí)的長(zhǎng)時(shí)間等待,造成了時(shí)間和硬件資源的浪費(fèi)。
因此,本發(fā)明實(shí)施例中,實(shí)現(xiàn)流水線級(jí)之間的傳遞應(yīng)當(dāng)滿足如下條件對(duì)于實(shí)現(xiàn)每個(gè)邏輯處理過(guò)程的邏輯功能單元來(lái)說(shuō),如果該邏輯功能單元產(chǎn)生了處理結(jié)果、該處理結(jié)果為與其相鄰的后一個(gè)邏輯功能單元的待處理數(shù)據(jù)、且與其相鄰的后一個(gè)邏輯功能單元中的邏輯處理過(guò)程已完成,則將該邏輯功能單元產(chǎn)生的處理結(jié)果提供給與其相鄰的后一個(gè)邏輯功能單元。
如果將每一個(gè)邏輯處理過(guò)程或邏輯功能單元看作一個(gè)流水線級(jí)、將與每個(gè)邏輯功能單元相鄰的前一個(gè)邏輯功能單元看作其上一級(jí)流水線級(jí)、將與每個(gè)邏輯功能單元相鄰的后一個(gè)邏輯功能單元看作其下一級(jí)流水線級(jí),則對(duì)于每一級(jí)流水線級(jí)來(lái)說(shuō),如果該流水線級(jí)已產(chǎn)生了作為下一級(jí)待處理數(shù)據(jù)的處理結(jié)果、且該流水線級(jí)的下一級(jí)所對(duì)應(yīng)的邏輯處理過(guò)程已完成,則該流水線級(jí)將得到的處理結(jié)果傳遞給其下一級(jí)。
需要明確的是,在熵編碼過(guò)程中,每一個(gè)邏輯處理過(guò)程產(chǎn)生了作為下一級(jí)待處理數(shù)據(jù)的處理結(jié)果時(shí),該邏輯處理過(guò)程并不一定已完成。
仍以如圖4所示的自適應(yīng)算術(shù)編碼為例,假設(shè)當(dāng)前的SE為一個(gè)4×4的色度矩陣,則對(duì)于數(shù)據(jù)分析邏輯處理過(guò)程對(duì)應(yīng)的流水線級(jí)來(lái)說(shuō),其絕對(duì)值計(jì)算邏輯處理過(guò)程逐一計(jì)算一次接收到的矩陣中16個(gè)元素的絕對(duì)值,經(jīng)過(guò)16個(gè)單元時(shí)間計(jì)算得到16個(gè)元素的絕對(duì)值;該流水線級(jí)對(duì)應(yīng)的數(shù)據(jù)分析邏輯處理過(guò)程,逐一對(duì)一次接收到的矩陣中16個(gè)元素絕對(duì)值進(jìn)行數(shù)據(jù)分析,經(jīng)過(guò)16個(gè)單元時(shí)間連續(xù)得到16個(gè)作為二進(jìn)制化查找表過(guò)程待處理數(shù)據(jù)的數(shù)據(jù)分析結(jié)果;其下一級(jí)二進(jìn)制化查找表邏輯處理過(guò)程,每1個(gè)單元時(shí)間即可完成1次二進(jìn)制查找表。
因此,當(dāng)數(shù)據(jù)分析邏輯處理過(guò)程對(duì)應(yīng)的流水線級(jí)每產(chǎn)生一個(gè)數(shù)據(jù)分析結(jié)果,絕對(duì)值計(jì)算邏輯處理過(guò)程也同時(shí)產(chǎn)生一個(gè)絕對(duì)值,且二進(jìn)制化查找表邏輯處理過(guò)程已完成,則將得到的數(shù)據(jù)分析結(jié)果傳遞給二進(jìn)制化查找表邏輯處理過(guò)程所對(duì)應(yīng)的流水線級(jí);如果絕對(duì)值計(jì)算邏輯處理過(guò)程已產(chǎn)生了16個(gè)絕對(duì)值,絕對(duì)值計(jì)算邏輯處理過(guò)程能夠從其上一級(jí)獲取下一個(gè)SE,且數(shù)據(jù)分析邏輯處理過(guò)程已完成,則數(shù)據(jù)分析邏輯處理過(guò)程對(duì)應(yīng)的流水線級(jí)即可得到絕對(duì)值計(jì)算邏輯處理過(guò)程對(duì)應(yīng)的流水線級(jí)傳遞下來(lái)的處理結(jié)果。
可見(jiàn),如果當(dāng)前的SE為一個(gè)4×4的色度矩陣,絕對(duì)值計(jì)算邏輯處理過(guò)程與數(shù)據(jù)分析邏輯處理過(guò)程分別對(duì)應(yīng)的兩級(jí)流水線級(jí)之間,傳遞周期為16個(gè)單元時(shí)間,而數(shù)據(jù)分析邏輯處理過(guò)程與二進(jìn)制化查找表邏輯處理過(guò)程分別對(duì)應(yīng)的兩級(jí)流水線級(jí)之間,傳遞周期為1個(gè)單元時(shí)間。
這樣,不同的兩級(jí)流水線級(jí)之間的傳遞周期雖然會(huì)不同,但能夠保證熵編碼過(guò)程的正常運(yùn)行,不會(huì)出現(xiàn)熵編碼結(jié)果錯(cuò)誤。而且,對(duì)于不同的SE,流水線級(jí)之間的傳遞周期能夠動(dòng)態(tài)變化。
基于上述原理,本發(fā)明實(shí)施例為每一級(jí)流水線級(jí)設(shè)置了一個(gè)控制信號(hào),用于表示該流水線級(jí)是否完成其對(duì)應(yīng)的邏輯處理過(guò)程;同時(shí),為每一級(jí)流水線級(jí)設(shè)置了一個(gè)寄存器,用于存儲(chǔ)該流水線級(jí)生成的作為下一級(jí)待處理數(shù)據(jù)的處理結(jié)果,且該寄存器中具有一標(biāo)志位,用于表示下一級(jí)流水線級(jí)是否能夠從該寄存器中讀取作為其待處理數(shù)據(jù)的處理結(jié)果。
以下,對(duì)上述控制信號(hào)和寄存器進(jìn)行舉例說(shuō)明。
第i級(jí)流水線級(jí)對(duì)應(yīng)的控制信號(hào)DONEi=1時(shí),表示第i級(jí)流水線級(jí)對(duì)應(yīng)的邏輯處理過(guò)程已完成;DONEi=0時(shí),表示第i級(jí)流水線級(jí)對(duì)應(yīng)的邏輯處理過(guò)程未完成,i為大于0且小于流水線級(jí)總數(shù)的正整數(shù)。
第i級(jí)流水線級(jí)對(duì)應(yīng)的寄存器i的標(biāo)志位VALIDi=1時(shí),表示能夠從寄存器i中讀取作為其待處理數(shù)據(jù)的處理結(jié)果,即1位表示可讀取的數(shù)值,第i+1級(jí)流水線級(jí)能夠進(jìn)行第i級(jí)流水線級(jí)與第i+1級(jí)流水線級(jí)之間的傳遞;VALIDi=0時(shí),表示第i+1級(jí)流水線級(jí)不能從寄存器i中讀取作為其待處理數(shù)據(jù)的處理結(jié)果,即0位表示不可讀取的數(shù)值,第i+1級(jí)流水線級(jí)不能進(jìn)行第i級(jí)流水線級(jí)與第i+1級(jí)流水線級(jí)之間的傳遞。
根據(jù)上述的流水線級(jí)之間的傳遞應(yīng)當(dāng)滿足的條件,VALIDi的賦值過(guò)程可以為在第i級(jí)流水線級(jí)產(chǎn)生了其下一級(jí)的待處理數(shù)據(jù)、DONE(i+1)=1、且VALID(i-1)=1時(shí),令VALIDi=1;在第i級(jí)流水線級(jí)未產(chǎn)生其下一級(jí)的待處理數(shù)據(jù)、且DONE(i+1)=1時(shí),令VALIDi=0;其余情況,保持VALIDi的當(dāng)前取值不變。
這樣,第i+1級(jí)流水線級(jí)即可在VALIDi=1時(shí),從第i級(jí)流水線級(jí)獲得待處理數(shù)據(jù),從而實(shí)現(xiàn)了所有的流水線級(jí)同時(shí)實(shí)現(xiàn)相互之間的傳遞,保證每?jī)杉?jí)相鄰的流水線級(jí)的處理速度相同,即可保證流水線不出現(xiàn)堵塞。
而且,控制信號(hào)是根據(jù)當(dāng)前處理情況實(shí)時(shí)產(chǎn)生的,從而使得傳遞周期的長(zhǎng)度是隨著實(shí)際情況的不同而動(dòng)態(tài)變化的,因而能夠最大限度地避免時(shí)間和硬件資源的浪費(fèi)。
下面,對(duì)本發(fā)明實(shí)施例中的熵編碼控制方法進(jìn)行詳細(xì)說(shuō)明。
圖5為本發(fā)明實(shí)施例中熵編碼控制方法的流程圖。如圖5所示,本實(shí)施例中的熵編碼控制方法包括以下步驟步驟501,將編碼方式中的多個(gè)邏輯處理過(guò)程劃分為多個(gè)流水線級(jí),并為每一級(jí)流水線級(jí)設(shè)置一個(gè)寄存器,用于存儲(chǔ)對(duì)應(yīng)流水線級(jí)所對(duì)應(yīng)的邏輯處理過(guò)程產(chǎn)生的處理結(jié)果,該寄存器包括一個(gè)標(biāo)志位,用于表示下一級(jí)流水線級(jí)是否能夠從該寄存器中讀取作為其待處理數(shù)據(jù)的處理結(jié)果。
其中,劃分為流水線級(jí)即為確定實(shí)現(xiàn)不同邏輯處理過(guò)程的邏輯功能單元。
本步驟中,如果以如圖4所示的自適應(yīng)算術(shù)編碼方式為例,則劃分的流水線級(jí)最多可以為8級(jí),分別對(duì)應(yīng)如下邏輯處理過(guò)程接收數(shù)據(jù)、絕對(duì)值運(yùn)算、數(shù)據(jù)分析、二進(jìn)制化查表、概率模型查詢、概率空間更新、歸一化處理生成碼流、碼流拼接。
同理,本步驟中如果以如圖3所示的變長(zhǎng)編碼方式為例,則劃分的流水線級(jí)最多可以為5級(jí),分別對(duì)應(yīng)如下邏輯處理過(guò)程接收數(shù)據(jù)、絕對(duì)值運(yùn)算、數(shù)據(jù)分析、變長(zhǎng)表查詢生成碼流、碼流拼接;如圖2所示的格魯姆編碼方式為例,則劃分的流水線級(jí)最多可以為3級(jí),分別對(duì)應(yīng)如下邏輯處理過(guò)程接收數(shù)據(jù)、格魯姆表查詢生成碼流、碼流拼接;如圖1所示的定長(zhǎng)編碼方式為例,則劃分的流水線級(jí)最多可以為3級(jí),分別對(duì)應(yīng)如下邏輯處理過(guò)程接收數(shù)據(jù)、定長(zhǎng)表查詢生成碼流、碼流拼接。
步驟502,每一級(jí)流水線級(jí)執(zhí)行其對(duì)應(yīng)的邏輯處理過(guò)程,如果產(chǎn)生了作為下一級(jí)待處理數(shù)據(jù)的處理結(jié)果,則將該處理結(jié)果存儲(chǔ)到該流水線級(jí)對(duì)應(yīng)的寄存器中;如果該級(jí)流水線級(jí)對(duì)應(yīng)的邏輯處理過(guò)程結(jié)束,則產(chǎn)生一個(gè)表示邏輯處理過(guò)程已完成的控制信號(hào)。
本步驟中,如果該流水線級(jí)未產(chǎn)生作為下一級(jí)待處理數(shù)據(jù)的處理結(jié)果,但其下一級(jí)流水線級(jí)已產(chǎn)生了一個(gè)表示邏輯處理過(guò)程已完成的控制信號(hào),則將該流水線級(jí)對(duì)應(yīng)的寄存器標(biāo)志位設(shè)置為表示不可讀取的數(shù)值,否則,保持寄存器標(biāo)志位的值不變。
步驟503,每一級(jí)流水線級(jí)在其上一級(jí)的寄存器標(biāo)志位為表示可讀取的數(shù)值、該級(jí)流水線級(jí)產(chǎn)生了作為下一級(jí)待處理數(shù)據(jù)的處理結(jié)果、且其下一級(jí)流水線級(jí)已產(chǎn)生了一個(gè)表示邏輯處理過(guò)程已完成的控制信號(hào)時(shí),存儲(chǔ)其產(chǎn)生的處理結(jié)果,并將該級(jí)流水線級(jí)的寄存器標(biāo)志位設(shè)置為表示可讀取的數(shù)值,允許其下以及流水線級(jí)從該寄存器中讀取存儲(chǔ)的處理結(jié)果。
本步驟之后,每一級(jí)流水線級(jí)在其上一級(jí)寄存器的標(biāo)志位為表示可讀取的數(shù)值時(shí),即可讀取該寄存器中存儲(chǔ)的處理結(jié)果,開(kāi)始下一個(gè)傳遞周期所對(duì)應(yīng)的邏輯處理過(guò)程。
至此,本流程結(jié)束。
上述流程中的步驟502~步驟503為一個(gè)可多次循環(huán)執(zhí)行的過(guò)程。在該過(guò)程中,每一級(jí)流水線級(jí)均能夠在該流水線級(jí)已產(chǎn)生了作為下一級(jí)待處理數(shù)據(jù)的處理結(jié)果、該流水線級(jí)的上一級(jí)已產(chǎn)生了作為該流水線級(jí)待處理數(shù)據(jù)的處理結(jié)果、且該流水線級(jí)的下一級(jí)所對(duì)應(yīng)的邏輯處理過(guò)程已完成時(shí),實(shí)現(xiàn)與其下一級(jí)流水線級(jí)之間的傳遞;每一級(jí)流水線級(jí)均能夠在該流水線級(jí)的上一級(jí)已產(chǎn)生了作為該流水線級(jí)待處理數(shù)據(jù)的結(jié)果、該流水線級(jí)的上一級(jí)能夠從其上一級(jí)獲得待處理數(shù)據(jù)、且該流水線級(jí)所對(duì)應(yīng)的邏輯處理過(guò)程已完成時(shí),實(shí)現(xiàn)與其上一級(jí)流水線級(jí)之間的傳遞。從而在不出現(xiàn)流水線堵塞及熵編碼結(jié)果錯(cuò)誤的前提下,實(shí)現(xiàn)了流水線方式的熵編碼處理。相比于現(xiàn)有串行方式的熵編碼處理,提高了處理效率。
實(shí)際應(yīng)用中,如圖4所示的自適應(yīng)算術(shù)編碼方式所占用的單元時(shí)間最多,因此,如果將上述控制方法應(yīng)用到該電路中,則可以大大提高熵編碼的效率。
圖6為本發(fā)明實(shí)施例中自適應(yīng)算術(shù)編碼電路的示意圖。如圖6所示,本實(shí)施例中的自適應(yīng)算術(shù)編碼電路根據(jù)自適應(yīng)算術(shù)編碼方式中的邏輯處理過(guò)程,劃分為如下邏輯單元接收數(shù)據(jù)單元、絕對(duì)值運(yùn)算單元、數(shù)據(jù)分析單元、二進(jìn)制化查表單元、概率模型查詢單元、概率空間更新單元、歸一化處理生成碼流單元、碼流拼接單元,分別對(duì)應(yīng)流水線級(jí)1~8,且每個(gè)流水線級(jí)對(duì)應(yīng)的邏輯單元占用單獨(dú)的硬件資源。
如圖4所示的自適應(yīng)算術(shù)編碼方式中,絕對(duì)值運(yùn)算和數(shù)據(jù)分析使用同一個(gè)硬件資源,但為了總體上縮短流水線的傳遞周期,將二者劃分為2個(gè)流水線級(jí),并利用不同的硬件資源來(lái)實(shí)現(xiàn)。
上述電路中,在分別接收數(shù)據(jù)單元、絕對(duì)值運(yùn)算單元、數(shù)據(jù)分析單元、二進(jìn)制化查表單元、概率模型查詢單元、概率空間更新單元、歸一化處理生成碼流單元、碼流拼接單元的輸出端,設(shè)置寄存器1~寄存器8;且寄存器1~寄存器8,分別與絕對(duì)值運(yùn)算單元、數(shù)據(jù)分析單元、二進(jìn)制化查表單元、概率模型查詢單元、概率空間更新單元、歸一化處理生成碼流單元、碼流拼接單元和外部電路的輸入端相連。
寄存器1~寄存器8分別具有一標(biāo)志位VALID1~VALID8,其取值分別表示寄存器1~寄存器8是否可讀取,當(dāng)取值為1時(shí),表示可讀取,當(dāng)取值為0時(shí),表示不可讀取。
第1級(jí)流水線級(jí)對(duì)應(yīng)的接收數(shù)據(jù)單元,接收外部電路輸入的SE;如果已接收到外部電路輸入的SE、外部電路已有待輸入的SE、且接收到控制信號(hào)DONE2=1,則令VALID1=1,并將接收到的SE存儲(chǔ)到寄存器1中;其中,外部電路已有待輸入的SE,即等同于上一級(jí)的寄存器標(biāo)志位為表示可讀取的數(shù)值1;如果已完成對(duì)輸入的SE的接收,外部電路已有待輸入的SE、且接收到控制信號(hào)DONE2=1,則輸出控制信號(hào)DONE1=1,再次接收外部電路輸入的SE;如果未接收到外部電路輸入的SE、且接收到控制信號(hào)DONE2=1,則令VALID1=0;否則,繼續(xù)從外部電路接收輸入的SE,并保持VALID1的當(dāng)前數(shù)值不變。
第2級(jí)流水線級(jí)對(duì)應(yīng)的絕對(duì)值運(yùn)算單元,對(duì)從寄存器1中讀取的SE進(jìn)行絕對(duì)值運(yùn)算;如果產(chǎn)生了至少一個(gè)絕對(duì)值運(yùn)算結(jié)果、VALID1=1、且接收到控制信號(hào)DONE3=1,則令VALID2=1,并將產(chǎn)生的一個(gè)或多個(gè)絕對(duì)值運(yùn)算結(jié)果存儲(chǔ)到寄存器2中;如果已完成了絕對(duì)值運(yùn)算、VALID1=1、且接收到控制信號(hào)DONE3=1,則輸出控制信號(hào)DONE2=1,并再次從寄存器1中讀取SE;如果未產(chǎn)生絕對(duì)值運(yùn)算結(jié)果、且接收到控制信號(hào)DONE3=1,則令VALID2=0;否則,繼續(xù)進(jìn)行絕對(duì)值運(yùn)算,并保持VALID2的當(dāng)前數(shù)值不變。
第3級(jí)流水線級(jí)對(duì)應(yīng)的數(shù)據(jù)分析單元,對(duì)從寄存器2中讀取的絕對(duì)值運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)分析;如果產(chǎn)生了至少一個(gè)數(shù)據(jù)分析結(jié)果、VALID2=1、且接收到控制信號(hào)DONE4=1,則令VALID3=1,并將產(chǎn)生的一個(gè)或多個(gè)數(shù)據(jù)分析結(jié)果存儲(chǔ)到寄存器3中;如果已完成了數(shù)據(jù)分析、VALID2=1、且接收到控制信號(hào)DONE4=1,則輸出控制信號(hào)DONE3=1,并再次從寄存器2中讀取絕對(duì)值運(yùn)算結(jié)果;如果未產(chǎn)生數(shù)據(jù)分析結(jié)果、且接收到控制信號(hào)DONE4=1,則令VALID3=0;否則,繼續(xù)進(jìn)行數(shù)據(jù)分析,并保持VALID3的當(dāng)前數(shù)值不變。
第4級(jí)流水線級(jí)對(duì)應(yīng)的二進(jìn)制化查找表單元,對(duì)從寄存器3中讀取的數(shù)據(jù)分析結(jié)果進(jìn)行二進(jìn)制化查找表;如果產(chǎn)生了查找表結(jié)果、VALID3=1、且接收到控制信號(hào)DONE5=1,則令VALID4=,并將產(chǎn)生的查找表結(jié)果存儲(chǔ)到寄存器4中1;如果已完成了二進(jìn)制化查找表、VALID3=1、且接收到控制信號(hào)DONE5=1,則輸出控制信號(hào)DONE4=1,并再次從寄存器3中讀取數(shù)據(jù)分析結(jié)果;如果未產(chǎn)生查找表結(jié)果、且接收到控制信號(hào)DONE5=1,則令VALID4=0;否則,繼續(xù)進(jìn)行二進(jìn)制化查找表,并保持VALID4的當(dāng)前數(shù)值不變。
第5級(jí)流水線級(jí)對(duì)應(yīng)的概率模型查詢單元,根據(jù)從寄存器4中讀取的查找表結(jié)果進(jìn)行概率模型查詢;如果產(chǎn)生了查詢結(jié)果、VALID4=1、且接收到控制信號(hào)DONE6=1,則令VALID5=1,并將產(chǎn)生的查詢結(jié)果存儲(chǔ)到寄存器5中;如果已完成了概率模型查詢、VALID4=1、且接收到控制信號(hào)DONE6=1,則輸出控制信號(hào)DONE5=1,并再次從寄存器4中讀取查找表結(jié)果;如果未產(chǎn)生查詢結(jié)果、且接收到控制信號(hào)DONE6=1,則令VALID5=0;否則,繼續(xù)進(jìn)行概率模型查詢,并保持VALID5的當(dāng)前數(shù)值不變。
第6級(jí)流水線級(jí)對(duì)應(yīng)的概率空間更新單元,根據(jù)從寄存器5中讀取的查詢結(jié)果進(jìn)行概率空間更新;如果產(chǎn)生了更新結(jié)果、VALID5=1、且接收到控制信號(hào)DONE7=1,則令VALID6=1,并將產(chǎn)生的更新結(jié)果存儲(chǔ)到寄存器6中;如果已完成了概率空間更新、VALID5=1、且接收到控制信號(hào)DONE7=1,則輸出控制信號(hào)DONE6=1,并再次從寄存器5中讀取查詢結(jié)果;如果未產(chǎn)生更新結(jié)果、且接收到控制信號(hào)DONE7=1,則令VALID6=0;否則,繼續(xù)進(jìn)行概率空間更新,并保持VALID6的當(dāng)前數(shù)值不變。
第7級(jí)流水線級(jí)對(duì)應(yīng)的歸一化處理生成碼流單元,根據(jù)從寄存器6中讀取的更新結(jié)果進(jìn)行歸一化處理;如果產(chǎn)生了碼流、VALID6=1、且接收到控制信號(hào)DONE8=1,則令VALID7=1,并將產(chǎn)生的碼流存儲(chǔ)到寄存器7中;如果已完成了歸一化處理、VALID6=1、且接收到控制信號(hào)DONE8=1,則輸出控制信號(hào)DONE7=1,并再次從寄存器6中讀取更新結(jié)果;如果未產(chǎn)生碼流、且接收到控制信號(hào)DONE8=1,則令VALID7=0;否則,繼續(xù)進(jìn)行歸一化處理,并保持VALID7的當(dāng)前數(shù)值不變。
第8級(jí)流水線級(jí)對(duì)應(yīng)的碼流拼接單元,對(duì)從寄存器7中讀取的碼流進(jìn)行碼流拼接;如果得到了拼接后的碼流、VALID7=1、且外部電路等待其輸出拼接后的碼流,則令VALID8=1,并將拼接后的碼流存儲(chǔ)到寄存器8中;其中,外部電路等待其輸出拼接后的碼流,即等同于其下一級(jí)已完成了對(duì)應(yīng)的邏輯處理過(guò)程;如果已完成了碼流的拼接、VALID7=1、且外部電路等待其輸出拼接后的碼流,則輸出控制信號(hào)DONE8=1,并再次從寄存器7中讀取碼流;如果未進(jìn)行碼流拼接、且外部電路等待其輸出拼接后的碼流,則令VALID8=0;否則,繼續(xù)進(jìn)行碼流拼接,并保持VALID8的當(dāng)前數(shù)值不變。
實(shí)際應(yīng)用中,由于自適應(yīng)算術(shù)編碼電路既對(duì)殘差SE進(jìn)行編碼處理,也對(duì)非殘差SE進(jìn)行編碼處理,而對(duì)于非殘差SE來(lái)說(shuō),不需要進(jìn)行絕對(duì)值運(yùn)算和數(shù)據(jù)分析。因此,可以在接收數(shù)據(jù)單元的輸出端進(jìn)一步設(shè)置一個(gè)寄存器1’,寄存器1’還與二進(jìn)制化查找表單元的輸入端相連,具有一標(biāo)志位VALID1’。
這樣,第4級(jí)流水線級(jí)對(duì)應(yīng)的二進(jìn)制化查找表單元,進(jìn)一步對(duì)從寄存器1’中讀取的非殘差SE進(jìn)行二進(jìn)制化查找表,并將產(chǎn)生的查找表結(jié)果存儲(chǔ)到寄存器4中;如果產(chǎn)生了查找表結(jié)果、VALID1’=1、且接收到控制信號(hào)DONE5=1,則令VALID4=1;如果已完成了二進(jìn)制化查找表、VALID1’=1、且接收到控制信號(hào)DONE5=1,則輸出控制信號(hào)DONE4=1,并再次從寄存器1’中讀取數(shù)據(jù)分析結(jié)果;如果未產(chǎn)生查找表結(jié)果、且接收到控制信號(hào)DONE5=1,則令VALID4=0;否則,繼續(xù)進(jìn)行二進(jìn)制化查找表,并保持VALID4的當(dāng)前數(shù)值不變。
需要說(shuō)明的是,二進(jìn)制化查找表單元并不是同時(shí)從寄存器1’和寄存器3獲取存儲(chǔ)的處理結(jié)果。由于輸入的SE中,均有標(biāo)識(shí)其順序的標(biāo)志,因而,二進(jìn)制化查找表單元根據(jù)該標(biāo)志,判斷應(yīng)當(dāng)先從寄存器1’還是寄存器3獲取存儲(chǔ)的處理結(jié)果。也就是說(shuō),如果寄存器1’中存儲(chǔ)的非殘差SE應(yīng)當(dāng)排在寄存器3中存儲(chǔ)的數(shù)據(jù)分析結(jié)果所對(duì)應(yīng)的殘差SE之前,則二進(jìn)制化查找表單元從寄存器1’獲取存儲(chǔ)的處理結(jié)果,否則,從寄存器3獲取存儲(chǔ)的處理結(jié)果。
如果二進(jìn)制化查找表單元當(dāng)前處理的數(shù)據(jù)為非殘差SE,則其對(duì)應(yīng)的上一級(jí)流水線級(jí)對(duì)應(yīng)接收數(shù)據(jù)單元;如果二進(jìn)制化查找表單元當(dāng)前處理的數(shù)據(jù)為殘差SE,則其對(duì)應(yīng)的上一級(jí)流水線級(jí)對(duì)應(yīng)數(shù)據(jù)分析單元。
接收數(shù)據(jù)單元能夠根據(jù)接收到的SE類型,將殘差SE存儲(chǔ)到寄存器1中,將非殘差SE存儲(chǔ)到寄存器1’中;如果已接收的數(shù)據(jù)為殘差SE,則其對(duì)應(yīng)的下一級(jí)流水線級(jí)對(duì)應(yīng)絕對(duì)值運(yùn)算單元;如果已接收的數(shù)據(jù)為非殘差SE,則其對(duì)應(yīng)的下一級(jí)流水線級(jí)對(duì)應(yīng)二進(jìn)制化查找表單元。
可見(jiàn),上述自適應(yīng)算術(shù)編碼電路實(shí)現(xiàn)了流水線方式的處理,從而在不出現(xiàn)流水線堵塞及編碼結(jié)果錯(cuò)誤的前提下,提高了其處理效率,進(jìn)而提高了熵編碼的處理效率。
同理,定長(zhǎng)編碼電路、格魯姆編碼電路以及自適應(yīng)變長(zhǎng)編碼電路也均可以按照上述方式實(shí)現(xiàn)流水線處理。
圖7為為發(fā)明實(shí)施例中自適應(yīng)變長(zhǎng)編碼電路的示意圖。以自適應(yīng)變長(zhǎng)變碼電路為例,如圖7所示,將定長(zhǎng)編碼電路劃分為5個(gè)流水線級(jí),分別對(duì)應(yīng)如下邏輯功能單元接收數(shù)據(jù)單元、絕對(duì)值運(yùn)算單元、數(shù)據(jù)分析單元、變長(zhǎng)查找表單元、碼流拼接單元。
分別在每個(gè)邏輯功能單元的輸出端設(shè)置寄存器1~寄存器5,分別存儲(chǔ)對(duì)應(yīng)流水線級(jí)所對(duì)應(yīng)的邏輯功能單元產(chǎn)生的所述處理結(jié)果;寄存器1~寄存器5,分別與輸出端與其相連的邏輯功能單元所對(duì)應(yīng)的下一級(jí)流水線級(jí)的邏輯功能單元的輸入端相連;寄存器1~寄存器5,分別包括標(biāo)志位1~標(biāo)志位5,分別表示寄存器1~寄存器5是否可讀?。桓鬟壿嫻δ軉卧谄鋵?duì)應(yīng)的邏輯處理過(guò)程已完成時(shí),分別輸出表示邏輯處理過(guò)程已完成的控制信號(hào),DONEj=1,j為大于等于1且小于等于5的正整數(shù);與第j級(jí)流水線級(jí)對(duì)應(yīng)的邏輯功能單元,在寄存器j-1的標(biāo)志位為表示可讀取的數(shù)值、該邏輯功能單元產(chǎn)生了處理結(jié)果、且與第j+1級(jí)流水線級(jí)對(duì)應(yīng)的邏輯功能單元已產(chǎn)生了一個(gè)表示邏輯處理過(guò)程已完成的控制信號(hào)DONEj+1=1時(shí),將寄存器j的標(biāo)志位設(shè)置為表示可讀取的數(shù)值,存儲(chǔ)產(chǎn)生的處理結(jié)果,并再次從寄存器j-1讀取所述處理結(jié)果。
與第j級(jí)流水線級(jí)對(duì)應(yīng)的邏輯功能單元,在其未產(chǎn)生所述處理結(jié)果、但第j+1級(jí)流水線級(jí)對(duì)應(yīng)的邏輯功能單元已產(chǎn)生了一個(gè)表示邏輯處理過(guò)程已完成的控制信號(hào)DONEj+1=1時(shí),寄存器j的標(biāo)志位設(shè)置為表示不可讀取的數(shù)值,否則,保持寄存器j的標(biāo)志位的值不變。
與自適應(yīng)算術(shù)編碼電路相同,接收數(shù)據(jù)單元對(duì)應(yīng)的上一級(jí)流水線級(jí)為外部電路的輸入,碼流拼接單元對(duì)應(yīng)的下一級(jí)流水線級(jí)為向外部電路的輸出。
這樣,熵編碼電路中包括的各電路均可實(shí)現(xiàn)流水線控制,如果其中的一個(gè)電路或所有電路均實(shí)現(xiàn)了流水線控制,即可提高熵編碼的效率。
如前所述,如圖1~圖4所示的編碼方式之間,存在部分相同的邏輯處理過(guò)程。因此,本發(fā)明實(shí)施例中,將不同編碼電路所需的相同的邏輯處理,復(fù)用在相同的硬件資源上。
本實(shí)施例中的熵編碼電路可以包括如圖6所示的自適應(yīng)算術(shù)編碼電路,并在此基礎(chǔ)上,進(jìn)一步包括用于定長(zhǎng)編碼和格魯姆編碼的多表查找表單元,而定長(zhǎng)編碼和格魯姆編碼所需的接收數(shù)據(jù)單元和碼流拼接單元,可以復(fù)用自適應(yīng)算術(shù)編碼電路中的接收數(shù)據(jù)單元和碼流拼接單元。
其中,多表查找表單元中包括定長(zhǎng)查找表單元和格魯姆表查找表單元。
這樣,在接收數(shù)據(jù)單元的輸出端,進(jìn)一步設(shè)置一個(gè)寄存器1”,該寄存器1”與多表查找表單元的輸入端相連,可以同時(shí)與定長(zhǎng)查找表單元和格魯姆表查找表單元的輸出端相連,寄存器1”具有一標(biāo)志位VALID1”;在多表查找表單元的輸出端設(shè)置一個(gè)寄存器a,寄存器a與碼流拼接單元的輸入端相連,且具有一標(biāo)志位a。
即多表查找表單元對(duì)應(yīng)的上一級(jí)流水線級(jí)對(duì)應(yīng)接收數(shù)據(jù)單元,其下一級(jí)流水線級(jí)對(duì)應(yīng)碼流拼接單元。
這樣,多表查找表單元對(duì)從寄存器1”中讀取的非殘差SE進(jìn)行定長(zhǎng)表或格魯姆表查找表,并將產(chǎn)生的查找表結(jié)果存儲(chǔ)到寄存器a中;如果產(chǎn)生了查找表結(jié)果、VALID1”=1、且接收到控制信號(hào)DONE8=1,則令VALIDa=1;如果已完成了查找表、VALID1”=1、且接收到控制信號(hào)DONE8=1,則輸出控制信號(hào)DONEa=1,并再次從寄存器1”中讀取數(shù)據(jù)分析結(jié)果;如果未產(chǎn)生查找表結(jié)果、且接收到控制信號(hào)DONE8=1,則令VALIDa=0;否則,繼續(xù)進(jìn)行二進(jìn)制化查找表,并保持VALIDa的當(dāng)前數(shù)值不變。
由于輸入的SE中,均有標(biāo)識(shí)其順序的標(biāo)志,因而,碼流拼接單元能夠根據(jù)該標(biāo)志,判斷應(yīng)當(dāng)先從寄存器7還是寄存器a獲取存儲(chǔ)的處理結(jié)果。也就是說(shuō),如果寄存器7中存儲(chǔ)的碼流所對(duì)應(yīng)的殘差SE,應(yīng)當(dāng)排在寄存器a中存儲(chǔ)的碼流所對(duì)應(yīng)的非殘差SE之前,則碼流拼接單元從寄存器7獲取存儲(chǔ)的處理結(jié)果,否則,從寄存器a獲取存儲(chǔ)的處理結(jié)果。
可見(jiàn),由于熵編碼中的定長(zhǎng)編碼、格魯姆編碼、自適應(yīng)算術(shù)編碼不一定同時(shí)進(jìn)行,因而,復(fù)用實(shí)現(xiàn)相同邏輯處理過(guò)程的硬件資源不會(huì)產(chǎn)生各編碼過(guò)程之間的沖突,且能夠節(jié)省熵編碼電路中的硬件資源。
同理,也可以將定長(zhǎng)編碼、格魯姆編碼和自適應(yīng)變長(zhǎng)變碼中,實(shí)現(xiàn)相同邏輯處理過(guò)程的硬件資源復(fù)用。
這樣,本實(shí)施例中的熵編碼電路可以包括如圖7所示的自適應(yīng)變長(zhǎng)編碼電路,并在此基礎(chǔ)上,進(jìn)一步包括用于定長(zhǎng)編碼和格魯姆編碼的多表查找表單元,而定長(zhǎng)編碼和格魯姆編碼所需的接收數(shù)據(jù)單元和碼流拼接單元,可以復(fù)用自適應(yīng)變長(zhǎng)編碼電路中的接收數(shù)據(jù)單元和碼流拼接單元。接收數(shù)據(jù)單元的輸出端也連接兩個(gè)寄存器,分別與絕對(duì)值運(yùn)算單元和多表查找表單元的輸入端相連,與上述的熵編碼電路的實(shí)現(xiàn)方式相同,在此不再贅述。
考慮到熵編碼電路的通用性,本實(shí)施例中的熵編碼電路包括如圖6所示的自適應(yīng)算術(shù)編碼電路、如圖7所示的自適應(yīng)變長(zhǎng)編碼電路、以及定長(zhǎng)編碼和格魯姆編碼電路,即能夠在實(shí)際應(yīng)用中,任意選擇自適應(yīng)算術(shù)編碼電路和自適應(yīng)變長(zhǎng)編碼電路中的一種,來(lái)實(shí)現(xiàn)對(duì)殘差SE的編碼,且將上述4個(gè)編碼電路中,實(shí)現(xiàn)相同邏輯處理過(guò)程的硬件資源復(fù)用。
圖8為本發(fā)明實(shí)施例中包括4種編碼電路的熵編碼電路示意圖。如圖8所示,在如圖6所示的自適應(yīng)算術(shù)編碼電路的基礎(chǔ)上,進(jìn)一步包括用于定長(zhǎng)編碼、格魯姆編碼和自適應(yīng)變長(zhǎng)編碼的多表查找表單元,而定長(zhǎng)編碼、格魯姆編碼和自適應(yīng)變長(zhǎng)編碼所需的接收數(shù)據(jù)單元和碼流拼接單元,可以復(fù)用自適應(yīng)變長(zhǎng)編碼電路中的接收數(shù)據(jù)單元和碼流拼接單元;自適應(yīng)變長(zhǎng)編碼所需的絕對(duì)值運(yùn)算單元和數(shù)據(jù)分析單元,可以復(fù)用自適應(yīng)變長(zhǎng)編碼電路中的絕對(duì)值運(yùn)算單元和數(shù)據(jù)分析單元。
其中,多表查找表單元中包括定長(zhǎng)查找表單元、格魯姆表查找表單元和變長(zhǎng)查找表單元,三者的輸出端可同時(shí)連接一個(gè)寄存器。
其中,每個(gè)邏輯功能單元對(duì)應(yīng)的寄存器在圖中未示出。
由于實(shí)際應(yīng)用中,通常不會(huì)同時(shí)使用自適應(yīng)變長(zhǎng)編碼和自適應(yīng)算術(shù)編碼,因此,數(shù)據(jù)分析單元所對(duì)應(yīng)的寄存器3,可以同時(shí)與二進(jìn)制化查找表單元和多表查找表單元的輸入端相連。
這樣,在熵編碼的過(guò)程中,各部分組合邏輯能夠按照流水線方式并行處理,因此能夠大大縮小總的處理時(shí)間。對(duì)于高清1920×1080視頻來(lái)說(shuō),平均處理一個(gè)16×16的宏塊需要300~400個(gè)時(shí)鐘周期,因此,在保證電路運(yùn)行在200Mhz的時(shí)鐘頻率下,可以每秒處理200M/(400×1920×1080×1.5/(16×16))=41楨/秒,滿足實(shí)時(shí)編碼的要求。同時(shí),也降低了熵編碼電路所占用的硬件資源,進(jìn)一步節(jié)省了成本。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種熵編碼控制方法,每一個(gè)邏輯功能單元進(jìn)行相應(yīng)的邏輯處理過(guò)程,其特征在于,包括每一個(gè)邏輯功能單元,在其已產(chǎn)生了處理結(jié)果、且與其相鄰的后一個(gè)邏輯功能單元的邏輯處理過(guò)程已完成時(shí),將該邏輯功能單元得到的所述處理結(jié)果提供給與其相鄰的后一個(gè)邏輯功能單元。
2.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步為每一個(gè)邏輯功能單元設(shè)置一個(gè)寄存器,存儲(chǔ)該邏輯功能單元產(chǎn)生的所述處理結(jié)果;所述寄存器包括一個(gè)標(biāo)志位,用于表示與該邏輯功能單元相鄰的后一個(gè)邏輯功能單元是否能夠從該寄存器中讀取所述處理結(jié)果;每一個(gè)邏輯功能單元進(jìn)一步在其對(duì)應(yīng)的邏輯處理過(guò)程已完成時(shí),產(chǎn)生表示邏輯處理過(guò)程已完成的控制信號(hào);所述將該邏輯功能單元得到的處理結(jié)果提供給與其相鄰的后一個(gè)邏輯功能單元為每一個(gè)邏輯功能單元在與其相鄰的前一個(gè)邏輯功能單元的寄存器標(biāo)志位為表示可讀取的數(shù)值、該邏輯功能單元產(chǎn)生了所述處理結(jié)果、且與該邏輯功能單元相鄰的后一個(gè)邏輯功能單元已產(chǎn)生了所述控制信號(hào)時(shí),該邏輯功能單元存儲(chǔ)所述處理結(jié)果,并將其對(duì)應(yīng)的寄存器標(biāo)志位設(shè)置為表示可讀取的數(shù)值,允許與其相鄰的后一個(gè)邏輯功能單元從該邏輯功能單元對(duì)應(yīng)的寄存器中讀取所述處理結(jié)果。
3.如權(quán)利要求2所述的方法,其特征在于,每一個(gè)邏輯功能單元在其未產(chǎn)生所述處理結(jié)果,但與其相鄰的后一個(gè)邏輯功能單元已產(chǎn)生了所述控制信號(hào)時(shí),則將該邏輯功能單元對(duì)應(yīng)的寄存器標(biāo)志位設(shè)置為表示不可讀取的數(shù)值,否則,保持寄存器標(biāo)志位的值不變。
4.如權(quán)利要求1至3中任意一項(xiàng)所述的方法,其特征在于,所述編碼方式為自適應(yīng)算術(shù)編碼,所述邏輯功能單元包括接收數(shù)據(jù)單元、絕對(duì)值運(yùn)算單元、數(shù)據(jù)分析單元、二進(jìn)制化查表單元、概率模型查詢單元、概率空間更新單元、歸一化處理生成碼流單元、碼流拼接單元;或者,所述編碼方式為變長(zhǎng)編碼,所述邏輯功能單元包括接收數(shù)據(jù)單元、絕對(duì)值運(yùn)算單元、數(shù)據(jù)分析單元、變長(zhǎng)表查詢生成碼流單元、碼流拼接單元;或者,所述編碼方式為格魯姆編碼,所述邏輯功能單元包括接收數(shù)據(jù)單元、格魯姆表查詢單元、碼流拼接單元;或者,所述編碼方式為定長(zhǎng)編碼,所述邏輯功能單元包括接收數(shù)據(jù)單元、定長(zhǎng)表查詢單元、碼流拼接單元。
5.一種熵編碼電路,順序包括如下邏輯功能單元接收數(shù)據(jù)單元、絕對(duì)值運(yùn)算單元、數(shù)據(jù)分析單元、二進(jìn)制化查表單元、概率模型查詢單元、概率空間更新單元、歸一化處理生成碼流單元、碼流拼接單元;其特征在于,各邏輯功能單元在其已產(chǎn)生了作為與其相鄰的后一個(gè)邏輯功能單元的待處理數(shù)據(jù)的處理結(jié)果、且與其相鄰的后一個(gè)邏輯功能單元的邏輯處理過(guò)程已完成時(shí),將其得到的處理結(jié)果輸出給與其相鄰的后一個(gè)邏輯功能單元;其中,與所述接收數(shù)據(jù)單元相鄰的前一個(gè)邏輯功能單元為外部電路的輸入,與所述碼流拼接單元相鄰的后一個(gè)邏輯功能單元為向外部電路的輸出。
6.如權(quán)利要求5所述的電路,其特征在于,進(jìn)一步分別在每個(gè)邏輯功能單元的輸出端設(shè)置寄存器1~寄存器8,分別存儲(chǔ)對(duì)應(yīng)的邏輯功能單元產(chǎn)生的所述處理結(jié)果;分別對(duì)應(yīng)不同邏輯功能單元的寄存器1~寄存器8,還分別與對(duì)應(yīng)的邏輯功能單元相鄰的后一個(gè)邏輯功能單元的輸入端相連;所述寄存器1~寄存器8,分別包括標(biāo)志位1~標(biāo)志位8,分別表示寄存器1~寄存器8是否可讀?。桓鬟壿嫻δ軉卧M(jìn)一步在其對(duì)應(yīng)的邏輯處理過(guò)程已完成時(shí),分別產(chǎn)生表示邏輯處理過(guò)程已完成的控制信號(hào);輸出端與寄存器i相連的邏輯功能單元,在寄存器i-1的標(biāo)志位為表示可讀取的數(shù)值、該邏輯功能單元產(chǎn)生了所述處理結(jié)果、且輸出端與寄存器i+1相連的邏輯功能單元已產(chǎn)生了所述控制信號(hào)時(shí),將寄存器i的標(biāo)志位設(shè)置為表示可讀取的數(shù)值,并存儲(chǔ)所述處理結(jié)果;其中,i為大于等于1且小于等于8的正整數(shù)。
7.如權(quán)利要求6所述的電路,其特征在于,進(jìn)一步在接收數(shù)據(jù)單元的輸出端設(shè)置一個(gè)寄存器1’,寄存器1’與二進(jìn)制化查找表單元的輸入端相連,具有一所述標(biāo)志位;如果二進(jìn)制化查找表單元當(dāng)前處理的數(shù)據(jù)為非殘差SE,則確定與其相鄰的前一個(gè)邏輯功能單元為接收數(shù)據(jù)單元;如果二進(jìn)制化查找表單元當(dāng)前處理的數(shù)據(jù)為殘差SE,則確定與其相鄰的前一個(gè)邏輯功能單元為數(shù)據(jù)分析單元;接收數(shù)據(jù)單元根據(jù)接收到的SE類型,將殘差SE存儲(chǔ)到寄存器1中,將非殘差SE存儲(chǔ)到寄存器1’中;如果已接收的數(shù)據(jù)為殘差SE,則確定與其相鄰的后一個(gè)邏輯功能單元為絕對(duì)值運(yùn)算單元;如果已接收的數(shù)據(jù)為非殘差SE,則確定與其相鄰的后一個(gè)邏輯功能單元為二進(jìn)制化查找表單元。
8.如權(quán)利要求6或7所述的電路,其特征在于,輸出端與寄存器i相連的邏輯功能單元,在其未產(chǎn)生所述處理結(jié)果、但輸出端與寄存器i+1相連的邏輯功能單元已產(chǎn)生了所述控制信號(hào)時(shí),進(jìn)一步將寄存器i的標(biāo)志位設(shè)置為表示不可讀取的數(shù)值,否則,保持寄存器i的標(biāo)志位的值不變。
9.如權(quán)利要求6或7所述的電路,其特征在于,該電路在接收數(shù)據(jù)單元與碼流拼接單元之間,進(jìn)一步包括多表查找表單元,用于進(jìn)行定長(zhǎng)查找表和格魯姆查找表;多表查找表單元的輸出端連接一寄存器,該寄存器具有一所述標(biāo)志位。
10.如權(quán)利要求9所述的電路,其特征在于,所述多表查找表單元進(jìn)一步用于進(jìn)行變長(zhǎng)查找表。
11.一種熵編碼電路,順序包括如下邏輯功能單元接收數(shù)據(jù)單元、絕對(duì)值運(yùn)算單元、數(shù)據(jù)分析單元、變長(zhǎng)查找表單元、碼流拼接單元;其特征在于,各邏輯功能單元在其已產(chǎn)生了處理結(jié)果、且與其相鄰的后一個(gè)邏輯功能單元的邏輯處理過(guò)程已完成時(shí),將其得到的處理結(jié)果輸出給與其相鄰的后一個(gè)邏輯功能單元;其中,與所述接收數(shù)據(jù)單元相鄰的前一個(gè)邏輯功能單元為外部電路的輸入,與所述碼流拼接單元相鄰的后一個(gè)邏輯功能單元為向外部電路的輸出。
12.如權(quán)利要求11所述的電路,其特征在于,進(jìn)一步分別在每個(gè)邏輯功能單元的輸出端設(shè)置寄存器1~寄存器5,分別存儲(chǔ)對(duì)應(yīng)的邏輯功能單元產(chǎn)生的所述處理結(jié)果;分別對(duì)應(yīng)不同邏輯功能單元的寄存器1~寄存器5,還分別與對(duì)應(yīng)的邏輯功能單元相鄰的后一個(gè)邏輯功能單元的輸入端相連;所述寄存器1~寄存器5,分別包括標(biāo)志位1~標(biāo)志位5,分別表示寄存器1~寄存器5是否可讀??;各邏輯功能單元進(jìn)一步在其對(duì)應(yīng)的邏輯處理過(guò)程已完成時(shí),分別產(chǎn)生表示邏輯處理過(guò)程已完成的控制信號(hào);輸出端與寄存器j相連的邏輯功能單元,在寄存器j-1的標(biāo)志位為表示可讀取的數(shù)值、該邏輯功能單元產(chǎn)生了所述處理結(jié)果、且輸出端與寄存器j+1相連的邏輯功能單元已產(chǎn)生了所述控制信號(hào)時(shí),將寄存器j的標(biāo)志位設(shè)置為表示可讀取的數(shù)值,并存儲(chǔ)所述處理結(jié)果;其中,j為大于等于1且小于等于5的正整數(shù)。
13.如權(quán)利要求11或12所述的電路,其特征在于,輸出端與寄存器j相連的邏輯功能單元,在其未產(chǎn)生所述處理結(jié)果、但輸出端與寄存器j+1相連的邏輯功能單元已產(chǎn)生了所述控制信號(hào)時(shí),進(jìn)一步將寄存器j的標(biāo)志位設(shè)置為表示不可讀取的數(shù)值,否則,保持寄存器j的標(biāo)志位的值不變。
14.如權(quán)利要求11或12所述的電路,其特征在于,該電路在接收數(shù)據(jù)單元與碼流拼接單元之間,進(jìn)一步包括定長(zhǎng)查找表單元,用于進(jìn)行定長(zhǎng)查找表;格魯姆表查找表單元,用于進(jìn)行格魯姆查找表;定長(zhǎng)查找表單元和格魯姆表查找表單元的輸出端連接一寄存器,該寄存器為與變長(zhǎng)查找表單元的輸出端相連的寄存器。
全文摘要
本發(fā)明公開(kāi)了一種熵編碼控制方法和一種熵編碼電路。本發(fā)明在每個(gè)邏輯功能單元產(chǎn)生了處理結(jié)果、且與其相鄰的后一個(gè)邏輯功能單元中的邏輯處理過(guò)程已完成時(shí),將該邏輯功能單元產(chǎn)生的處理結(jié)果提供給與其相鄰的后一個(gè)邏輯功能單元,從而在實(shí)現(xiàn)了流水線方式的同時(shí),避免了流水線堵塞及熵編碼結(jié)果錯(cuò)誤,相比于現(xiàn)有串行方式的熵編碼處理,提高了處理效率。
文檔編號(hào)H04N7/26GK101090503SQ200710118439
公開(kāi)日2007年12月19日 申請(qǐng)日期2007年7月5日 優(yōu)先權(quán)日2007年7月5日
發(fā)明者劉子熹 申請(qǐng)人:北京中星微電子有限公司