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