一種基于hevc協(xié)議的硬件解碼方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及集成電路設(shè)計(jì)領(lǐng)域,尤其涉及一種基于HEVC協(xié)議的硬件解碼方法和
目.ο
【背景技術(shù)】
[0002]隨著科技的發(fā)展和社會(huì)的進(jìn)步,集成電路設(shè)計(jì)得到了廣泛應(yīng)用,越來(lái)越多的電子設(shè)備進(jìn)入了人們的日常生活,不僅給人們的日常生活帶去了便利,同時(shí)也進(jìn)一步促進(jìn)了科技的創(chuàng)新與研發(fā)。在集成電路設(shè)計(jì)領(lǐng)域,視頻編解碼是其中重要一項(xiàng)。
[0003]高效率視頻編碼HEVC(High Efficiency Video Codec)是目前由國(guó)際電信組織(ITU)和運(yùn)動(dòng)圖像專家組(MPEG)正在聯(lián)合制定中的下一代國(guó)際視頻編碼標(biāo)準(zhǔn)。與現(xiàn)在的國(guó)際視頻標(biāo)準(zhǔn)H.264/AVC相比,HEVC在保證相同圖像質(zhì)量的前提下,可以將視頻的碼率降低50%,也就是說(shuō)達(dá)到H.264兩倍的編碼效率。為實(shí)現(xiàn)這一目標(biāo),HEVC的運(yùn)算復(fù)雜度提高了 2至3倍。
[0004]HEVC的解碼器在解碼過(guò)程是以幀為單位對(duì)碼流數(shù)據(jù)進(jìn)行解析,然而現(xiàn)有的HEVC解碼器并不能實(shí)現(xiàn)對(duì)各幀數(shù)據(jù)進(jìn)行有效控制,碼流數(shù)據(jù)在解碼過(guò)程中控制邏輯和運(yùn)算邏輯都較為復(fù)雜,極易出現(xiàn)錯(cuò)誤。同時(shí),現(xiàn)有的HEVC解碼器無(wú)法對(duì)錯(cuò)誤的碼流數(shù)據(jù)進(jìn)行及時(shí)管理,一旦某一幀數(shù)據(jù)在進(jìn)行解析時(shí)發(fā)生錯(cuò)誤,由于下一幀的數(shù)據(jù)需要用到該幀數(shù)據(jù),則會(huì)引起連鎖反應(yīng),導(dǎo)致之后解析的數(shù)據(jù)全部錯(cuò)誤,進(jìn)而導(dǎo)致解碼失敗。
【發(fā)明內(nèi)容】
[0005]為此,需要提供一種基于HEVC協(xié)議的硬件解碼的技術(shù)方案,用以解決現(xiàn)有的HEVC解碼器無(wú)法對(duì)各幀數(shù)據(jù)進(jìn)行有效控制、容易發(fā)生解碼錯(cuò)誤以及無(wú)法對(duì)錯(cuò)誤的碼流數(shù)據(jù)進(jìn)行有效管理的問(wèn)題。
[0006]為實(shí)現(xiàn)上述目的,發(fā)明人提供了一種基于HEVC協(xié)議的硬件解碼裝置,所述裝置包括處理模塊,緩存模塊,AMBA總線和解碼模塊,所述處理模塊和AMBA總線連接,所述AMBA總線與寄存器模塊連接,所述緩存模塊和AMBA總線連接,所述AMBA總線與解碼模塊連接;所述解碼模塊包括熵解碼模塊,解碼控制模塊,幀預(yù)測(cè)模塊,幀處理模塊,數(shù)據(jù)重構(gòu)模塊,濾波處理模塊;所述熵解碼模塊與解碼控制模塊連接,所述解碼控制模塊與幀預(yù)測(cè)模塊連接,所述幀處理模塊與數(shù)據(jù)重構(gòu)模塊連接;所述解碼控制模塊與幀處理模塊連接,所述幀處理模塊與數(shù)據(jù)重構(gòu)模塊連接;所述數(shù)據(jù)重構(gòu)模塊與濾波處理模塊連接;
[0007]所述處理模塊用于配置寄存器;
[0008]所述解碼模塊用于發(fā)起讀取指令,并通過(guò)AMBA總線從所述緩存模塊讀取碼流數(shù)據(jù);
[0009]所述熵解碼模塊用于對(duì)碼流數(shù)據(jù)進(jìn)行熵解碼,得到熵解碼后的碼流數(shù)據(jù)及其操作命令;
[0010]所述解碼控制模塊用于根據(jù)操作命令將熵解碼后的碼流數(shù)據(jù)分發(fā)至幀預(yù)測(cè)模塊和幀處理模塊,并對(duì)發(fā)出的碼流數(shù)據(jù)以幀為單位進(jìn)行存儲(chǔ);
[0011]所述幀預(yù)測(cè)模塊用于對(duì)熵解碼后的碼流數(shù)據(jù)進(jìn)行幀預(yù)測(cè)操作;
[0012]所述幀處理模塊用于對(duì)熵解碼后的碼流數(shù)據(jù)進(jìn)行幀處理操作;
[0013]所述數(shù)據(jù)重構(gòu)模塊用于對(duì)幀預(yù)測(cè)及幀處理后的碼流數(shù)據(jù)進(jìn)行重構(gòu);
[0014]所述濾波處理模塊用于對(duì)重構(gòu)后的數(shù)據(jù)進(jìn)行濾波處理;
[0015]所述解碼模塊用于發(fā)起寫入指令,并通過(guò)AMBA總線將解碼后的碼流數(shù)據(jù)寫入所述緩存模塊。
[0016]進(jìn)一步地,所述幀預(yù)測(cè)模塊包括幀內(nèi)預(yù)測(cè)模塊和幀間預(yù)測(cè)模塊,所述幀內(nèi)預(yù)測(cè)模塊用于對(duì)熵解碼后的碼流數(shù)據(jù)進(jìn)行幀內(nèi)預(yù)測(cè)操作;所述幀間預(yù)測(cè)模塊用于對(duì)熵解碼后的碼流數(shù)據(jù)進(jìn)行幀間預(yù)測(cè)操作。
[0017]進(jìn)一步地,所述碼流數(shù)據(jù)包括colmv數(shù)據(jù),則所述AMBA總線還與所述幀間預(yù)測(cè)模塊連接,所述AMBA總線用于將colmv數(shù)據(jù)傳輸至幀間預(yù)測(cè)模塊。
[0018]進(jìn)一步地,所述幀處理模塊包括殘差處理模塊,所述殘差處理模塊用于對(duì)殘差數(shù)據(jù)進(jìn)行反量化和反變換。
[0019]進(jìn)一步地,所述幀預(yù)測(cè)模塊、幀處理模塊、數(shù)據(jù)重構(gòu)模塊、濾波處理模塊還具有反饋功能,所述反饋功能是指幀預(yù)測(cè)模塊、幀處理模塊、數(shù)據(jù)重構(gòu)模塊、濾波處理模塊分別校驗(yàn)當(dāng)前幀碼流數(shù)據(jù)是否正確,若不正確則發(fā)送錯(cuò)誤信號(hào)至解碼控制模塊;所述解碼控制模塊還用于接收錯(cuò)誤信號(hào),并恢復(fù)該幀所存儲(chǔ)的碼流數(shù)據(jù)。
[0020]發(fā)明人還提供了一種基于HEVC協(xié)議的硬件解碼方法,所述方法應(yīng)用于基于HEVC協(xié)議的硬件解碼裝置;所述裝置包括處理模塊,緩存模塊,AMBA總線和解碼模塊,所述處理模塊和AMBA總線連接,所述AMBA總線與寄存器模塊連接,所述緩存模塊和AMBA總線連接,所述AMBA總線與解碼模塊連接;所述解碼模塊包括熵解碼模塊,解碼控制模塊,幀預(yù)測(cè)模塊,幀處理模塊,數(shù)據(jù)重構(gòu)模塊,濾波處理模塊;所述熵解碼模塊與解碼控制模塊連接,所述解碼控制模塊與幀預(yù)測(cè)模塊連接,所述幀處理模塊與數(shù)據(jù)重構(gòu)模塊連接;所述解碼控制模塊與幀處理模塊連接,所述幀處理模塊與數(shù)據(jù)重構(gòu)模塊連接;所述數(shù)據(jù)重構(gòu)模塊與濾波處理模塊連接;則所述方法包括以下步驟:
[0021]處理模塊配置寄存器;
[0022]解碼模塊發(fā)起讀取指令,并通過(guò)AMBA總線從所述緩存模塊讀取碼流數(shù)據(jù),并對(duì)碼流數(shù)據(jù)進(jìn)行解碼;
[0023]解碼模塊發(fā)起寫入指令,并通過(guò)AMBA總線將解碼后的碼流數(shù)據(jù)寫入所述緩存模塊;
[0024]解碼模塊對(duì)碼流數(shù)據(jù)進(jìn)行解碼包括如下步驟:
[0025]熵解碼模塊對(duì)碼流數(shù)據(jù)進(jìn)行熵解碼,得到熵解碼后的碼流數(shù)據(jù)及其操作命令;
[0026]解碼控制模塊根據(jù)操作命令對(duì)熵解碼后的碼流數(shù)據(jù)分發(fā)至幀預(yù)測(cè)模塊和幀處理模塊,并對(duì)發(fā)出的碼流數(shù)據(jù)以幀為單位進(jìn)行存儲(chǔ);
[0027]幀預(yù)測(cè)模塊對(duì)熵解碼后的碼流數(shù)據(jù)進(jìn)行幀預(yù)測(cè)操作,幀處理模塊對(duì)熵解碼后的碼流數(shù)據(jù)進(jìn)行幀處理操作;
[0028]數(shù)據(jù)重構(gòu)模塊對(duì)幀預(yù)測(cè)及幀處理后的碼流數(shù)據(jù)進(jìn)行重構(gòu);
[0029]濾波處理模塊對(duì)重構(gòu)后的數(shù)據(jù)進(jìn)行濾波處理。
[0030]進(jìn)一步地,所述幀預(yù)測(cè)模塊包括幀內(nèi)預(yù)測(cè)模塊和幀間預(yù)測(cè)模塊,則所述方法包括:
[0031]幀內(nèi)預(yù)測(cè)模塊對(duì)熵解碼后的碼流數(shù)據(jù)進(jìn)行幀內(nèi)預(yù)測(cè)操作;
[0032]幀間預(yù)測(cè)模塊對(duì)熵解碼后的碼流數(shù)據(jù)進(jìn)行幀間預(yù)測(cè)操作。
[0033]進(jìn)一步地,所述碼流數(shù)據(jù)包括colmv數(shù)據(jù),則所述AMBA總線還與所述幀間預(yù)測(cè)模塊連接,則所述方法包括:
[0034]AMBA總線將colmv數(shù)據(jù)傳輸至幀間預(yù)測(cè)模塊。
[0035]進(jìn)一步地,所述幀處理模塊包括殘差處理模塊,則所述方法包括:
[0036]殘差處理模塊對(duì)殘差數(shù)據(jù)進(jìn)行反量化和反變換。
[0037]進(jìn)一步地,所述幀預(yù)測(cè)模塊、幀處理模塊、數(shù)據(jù)重構(gòu)模塊、濾波處理模塊還具有有反饋功能,則所述方法包括步驟:
[0038]所述幀預(yù)測(cè)模塊、幀處理模塊、數(shù)據(jù)重構(gòu)模塊、濾波處理模塊分別校驗(yàn)當(dāng)前幀碼流數(shù)據(jù)是否正確,若不正確則發(fā)送錯(cuò)誤信號(hào)至解碼控制模塊;
[0039]解碼控制模塊接收錯(cuò)誤信號(hào),并恢復(fù)該幀所存儲(chǔ)的碼流數(shù)據(jù)。
[0040]區(qū)別于現(xiàn)有技術(shù),上述技術(shù)方案所述的基于HEVC協(xié)議的硬件解碼方法和裝置,所述裝置包括處理模塊,緩存模塊,AMBA總線和解碼模塊,所述處理模塊和AMBA總線連接,所述AMBA總線與寄存器模塊連接,所述緩存模塊和AMBA總線連接,所述AMBA總線與解碼模塊連接;所述解碼模塊包括熵解碼模塊,解碼控制模塊,幀預(yù)測(cè)模塊,幀處理模塊,數(shù)據(jù)重構(gòu)模塊,濾波處理模塊;所述熵解碼模塊與解碼控制模塊連接,所述解碼控制模塊與幀預(yù)測(cè)模塊連接,所述幀處理模塊與數(shù)據(jù)重構(gòu)模塊連接;所述解碼控制模塊與幀處理模塊連接,所述幀處理模塊與數(shù)據(jù)重構(gòu)模塊連接;所述數(shù)據(jù)重構(gòu)模塊與濾波處理模塊連接;則所述方法包括以下步驟:處理模塊配置寄存器;解碼模塊發(fā)起讀取指令,并通過(guò)AMBA總線從所述緩存模塊讀取碼流數(shù)據(jù),并對(duì)碼流數(shù)據(jù)進(jìn)行解碼;解碼模塊發(fā)起寫入指令,并通過(guò)AMBA總線將解碼后的碼流數(shù)據(jù)寫入所述緩存模塊;解碼模塊對(duì)碼流數(shù)據(jù)進(jìn)行解碼包括如下步驟:熵解碼模塊對(duì)碼流數(shù)據(jù)進(jìn)行熵解碼,得到熵解碼后的碼流數(shù)據(jù)及其操作命令;解碼控制模塊根據(jù)操作命令對(duì)熵解碼后的碼流數(shù)據(jù)分發(fā)至幀預(yù)測(cè)模塊和幀處理模塊,并對(duì)發(fā)出的碼流數(shù)據(jù)以幀為單位進(jìn)行存儲(chǔ);幀預(yù)測(cè)模塊對(duì)熵解碼后的碼流數(shù)據(jù)進(jìn)行幀預(yù)測(cè)操作,幀處理模塊對(duì)熵解碼后的碼流數(shù)據(jù)進(jìn)行幀處理操作;數(shù)據(jù)重構(gòu)模塊對(duì)幀預(yù)測(cè)及幀處理后的碼流數(shù)據(jù)進(jìn)行重構(gòu);濾波處理模塊對(duì)重構(gòu)后的數(shù)據(jù)進(jìn)行濾波處理。由于設(shè)置了解碼控制模塊,因而可以對(duì)熵解碼