本公開涉及電子技術(shù)領(lǐng)域,尤其涉及編碼技術(shù)領(lǐng)域,具體地,涉及一種編碼方法和裝置。
背景技術(shù):
目前,在進行編碼時,首先需要讀取待編碼的第N幀數(shù)據(jù),然后將讀取的第N幀數(shù)據(jù)寫入輸出數(shù)據(jù)存儲器中并利用編碼矩陣對第N幀數(shù)據(jù)進行運算得到校驗位,待第N幀數(shù)據(jù)的校驗碼計算完成后再讀取第N+1幀數(shù)據(jù),并然后將讀取的第N+1幀數(shù)據(jù)寫入輸出數(shù)據(jù)存儲器中并利用編碼矩陣對第N+1幀數(shù)據(jù)進行運算得到校驗位,如此循環(huán),直至完成所有校驗位的計算為止。
假設(shè)一幀數(shù)據(jù)寫入輸出數(shù)據(jù)存儲器中需要520個時鐘周期,校驗位的計算需要560個時鐘周期,則完成一幀數(shù)據(jù)的編碼總共需要1080個時鐘周期,這是非常費時間的。因此,非常有必要改進編碼器的編碼處理能力。
技術(shù)實現(xiàn)要素:
本公開的目的是提供一種編碼方法和裝置,其能夠改進編碼器的編碼處理能力。
為了實現(xiàn)上述目的,本公開提供一種編碼方法,該方法包括:
讀取待編碼的第N幀數(shù)據(jù);
對所述第N幀數(shù)據(jù)進行第一運算,輸出第一運算結(jié)果;
在對所述第N幀數(shù)據(jù)進行所述第一運算期間,基于對第N-1幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行第二運算,輸出第二運算結(jié)果,
其中,N為正整數(shù)。
可選地,該方法還包括:
反復(fù)讀寫對所述第N幀數(shù)據(jù)進行緩存的第一緩存器,來對所述第N幀數(shù)據(jù)進行所述第一運算;
在基于對所述第N-1幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行所述第二運算完成之后,將對所述第N幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果從所述第一緩存器復(fù)制到第二緩存器以基于對所述第N幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行所述第二運算,并讀取第N+1幀數(shù)據(jù)。
可選地,該方法還包括:
在所述第N幀數(shù)據(jù)和所述第N-1幀數(shù)據(jù)各自的讀取期間,分別通過第一多路選擇器和第二多路選擇器將所述第N-1幀數(shù)據(jù)和所述第N幀數(shù)據(jù)分別寫入到輸出存儲器中的第一存儲單元和第二存儲單元;
將基于對所述第N-1幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行第二運算輸出的第二運算結(jié)果通過所述第一多路選擇器寫入到所述第一存儲單元;
將基于對所述第N幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行所述第二運算輸出的第二運算結(jié)果通過所述第二多路選擇器寫入到所述第二存儲單元。
可選地,所述第二運算結(jié)果為針對所述第N-1幀數(shù)據(jù)的校驗位。
可選地,所述第一運算為利用H編碼矩陣的子矩陣A和C進行的運算,所述第二運算為利用所述H編碼矩陣的子矩陣T、E、B和D進行的運算。
本公開實施例還提供一種編碼裝置,該裝置包括:
讀取模塊,用于讀取待編碼的第N幀數(shù)據(jù);
第一運算模塊,用于對所述第N幀數(shù)據(jù)進行第一運算,輸出第一運算結(jié)果;
第二運算模塊,用于在所述第一運算模塊對所述第N幀數(shù)據(jù)進行所述第一運算期間,基于對第N-1幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行第二運算,輸出第二運算結(jié)果,
其中,N為正整數(shù)。
可選地,該裝置還包括第一緩存器和第二緩存器,
所述第一運算模塊,還用于反復(fù)讀寫對所述第N幀數(shù)據(jù)進行緩存的所述第一緩存器,來對所述第N幀數(shù)據(jù)進行所述第一運算;
所述第一緩存器和所述讀取模塊,還用于在所述第二計算模塊基于對所述第N-1幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行所述第二運算完成之后,分別將所述第一運算模塊對所述第N幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果從所述第一緩存器復(fù)制到第二緩存器以便所述第二計算模塊基于所述第一計算模塊對所述第N幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行所述第二運算,和讀取第N+1幀數(shù)據(jù)。
可選地,該裝置還包括輸出存儲器、第一多路選擇器和第二多路選擇器,所述輸出存儲器包括第一存儲單元和第二存儲單元:
所述第一存儲單元,用于在所述第N-1幀數(shù)據(jù)的讀取期間,通過所述第一多路選擇器被寫入所述第N-1幀數(shù)據(jù),以及通過所述第一多路選擇器被寫入所述第二運算模塊基于所述第一運算模塊對所述第N-1幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行第二運算輸出的第二運算結(jié)果;
所述第二存儲單元,用于在所述第N幀數(shù)據(jù)的讀取期間,通過所述第二多路選擇器被寫入所述第N幀數(shù)據(jù),以及通過所述第二多路選擇器被寫入所述第二運算模塊基于所述第一運算模塊對所述第N幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行所述第二運算輸出的第二運算結(jié)果。
可選地,所述第二運算結(jié)果為針對所述第N-1幀數(shù)據(jù)的校驗位。
可選地,所述第一運算為利用H編碼矩陣的子矩陣A和C進行的運算,所述第二運算為利用所述H編碼矩陣的子矩陣T、E、B和D進行的運算。
通過上述技術(shù)方案,由于在對第N幀數(shù)據(jù)進行第一運算期間,基于對第N-1幀數(shù)據(jù)進行第一運算輸出的第一運算結(jié)果進行第二運算,因此針對第N幀數(shù)據(jù)的運算和針對第N-1幀數(shù)據(jù)的運算之間會部分地并行進行(如圖2所示),因此這不僅能夠提高編碼器的編碼處理能力,而且還能夠減小編碼器的數(shù)據(jù)處理延時和輸出延時。
本公開的其他特征和優(yōu)點將在隨后的具體實施方式部分予以詳細(xì)說明。
附圖說明
附圖是用來提供對本公開的進一步理解,并且構(gòu)成說明書的一部分,與下面的具體實施方式一起用于解釋本公開,但并不構(gòu)成對本公開的限制。在附圖中:
圖1是根據(jù)本公開一種實施例的編碼方法的流程圖;
圖2是根據(jù)本公開一種實施例的編碼時序圖;
圖3是根據(jù)本公開又一實施例的編碼方法流程圖;
圖4是根據(jù)本公開一種實施例的將幀數(shù)據(jù)和校驗位寫入輸出存儲器的方法的流程圖。
圖5是根據(jù)本公開又一實施例的編碼時序圖;
圖6是根據(jù)本公開一種實施方式的編碼裝置的示意框圖;
圖7是根據(jù)本公開又一實施方式的編碼裝置的示意框圖。
具體實施方式
以下結(jié)合附圖對本公開的具體實施方式進行詳細(xì)說明。應(yīng)當(dāng)理解的是,此處所描述的具體實施方式僅用于說明和解釋本公開,并不用于限制本公開。
根據(jù)本公開的一個實施例,提供一種編碼方法,如圖1所示,該方法可以包括以下步驟S101至S103。
在步驟S101中,讀取待編碼的第N幀數(shù)據(jù);
在步驟S102中,對所述第N幀數(shù)據(jù)進行第一運算,輸出第一運算結(jié)果;
在步驟S103中,在對所述第N幀數(shù)據(jù)進行所述第一運算期間,基于對第N-1幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行第二運算,輸出第二運算結(jié)果,其中,N為正整數(shù)。
其中,該步驟中所述的第二運算結(jié)果為針對所述第N-1幀數(shù)據(jù)的校驗位。
通過上述技術(shù)方案,由于在對第N幀數(shù)據(jù)進行第一運算期間,基于對第N-1幀數(shù)據(jù)進行第一運算輸出的第一運算結(jié)果進行第二運算,因此針對第N幀數(shù)據(jù)的運算和針對第N-1幀數(shù)據(jù)的運算之間會部分地并行進行(如圖2所示),因此這不僅能夠提高編碼器的編碼處理能力,而且還能夠減小編碼器的數(shù)據(jù)處理延時和輸出延時。
另外,根據(jù)該實施例的方法利用了兩個緩存器,也即第一緩存器和第二緩存器,其中第一緩存器用于存儲進行第一運算所需的幀數(shù)據(jù),第二緩存器用于存儲進行第二運算所需的第一運算結(jié)果。因此,為了確保所有幀數(shù)據(jù)都準(zhǔn)確編碼,需要在第N-1幀數(shù)據(jù)的第二運算完成之后,才能夠開始第N+1幀數(shù)據(jù)的第一運算。因此,在一種可能的實施方式中,如圖3所示,根據(jù)該實施例的方法還可以包括以下步驟:
在步驟S301中,反復(fù)讀寫對所述第N幀數(shù)據(jù)進行緩存的第一緩存器,來對所述第N幀數(shù)據(jù)進行所述第一運算。
在該步驟中,讀取的第N幀數(shù)據(jù)首先被緩存在第一緩存器中,然后由于對第N幀數(shù)據(jù)進行第一運算時需要反復(fù)用到第N幀數(shù)據(jù),因此需要在此期間反復(fù)讀寫第一緩存器來獲取第N幀數(shù)據(jù)。而且,如果在第N-1幀數(shù)據(jù)的第二運算完成之前,對第N幀數(shù)據(jù)的第一運算已經(jīng)完成,則該第一運算得到的第一運算結(jié)果會被暫時緩存在第一緩存器中,并在第N-1幀數(shù)據(jù)的第二運算完成之后,該第一運算結(jié)果才會被復(fù)制到第二緩存器中并且才能夠開始對第N+1幀數(shù)據(jù)進行第一運算,具體請參見步驟S302。
在步驟S302中,在基于對所述第N-1幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行所述第二運算完成之后,將對所述第N幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果從所述第一緩存器復(fù)制到第二緩存器以基于對所述第N幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行所述第二運算,并讀取第N+1幀數(shù)據(jù)。
通過步驟S301和S302,就能夠確保所有的校驗位都準(zhǔn)確計算。
另外,根據(jù)該實施例的方法還能夠?qū)⒏鱾€幀數(shù)據(jù)及其校驗位寫入到輸出存儲器中。在這種情況下,如圖4所示,根據(jù)該實施例的方法還可以包括以下步驟:
在步驟S401中,在所述第N幀數(shù)據(jù)和所述第N-1幀數(shù)據(jù)各自的讀取期間,分別通過第一多路選擇器和第二多路選擇器將所述第N-1幀數(shù)據(jù)和所述第N幀數(shù)據(jù)分別寫入到輸出存儲器中的第一存儲單元和第二存儲單元;
在步驟S402中,將基于對所述第N-1幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行第二運算輸出的第二運算結(jié)果通過所述第一多路選擇器寫入到所述第一存儲單元;
在步驟S403中,將基于對所述第N幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行所述第二運算輸出的第二運算結(jié)果通過所述第二多路選擇器寫入到所述第二存儲單元。
通過步驟S401至S403,就能夠在每個幀數(shù)據(jù)的讀取期間,將該幀數(shù)據(jù)寫入到輸出存儲中的相應(yīng)存儲單元中,并在該幀數(shù)據(jù)的校驗位計算完成之后,將校驗位寫入到相應(yīng)的存儲單元中,從而實現(xiàn)幀數(shù)據(jù)的編碼,并可以平衡整個數(shù)據(jù)通路的數(shù)據(jù)吞吐量,達到一定的緩存作用。
另外,這里的第一存儲單元和第二存儲單元可以分別使用一幀存儲大小的存儲器來實現(xiàn),就能夠滿足緩存的要求。
以下結(jié)合圖2對根據(jù)該實施例的編碼方法的流程進行詳細(xì)描述。
首先,讀取第一幀數(shù)據(jù),對第一幀數(shù)據(jù)進行第一運算,同時把第一幀數(shù)據(jù)寫入到輸出存儲器的第一存儲單元中;
然后,在對第一幀數(shù)據(jù)進行第一運算期間,需要反復(fù)讀寫對第一幀數(shù)據(jù)進行緩存的第一緩存器;
然后,在第一幀數(shù)據(jù)的第一運算完成之后,將得到的第一運算結(jié)果從第一緩存器復(fù)制到第二緩存器;
然后基于第二緩存器中緩存的針對第一幀數(shù)據(jù)的第一運算結(jié)果,進行第二運算,以得到第二運算結(jié)果,同時,讀取第二幀數(shù)據(jù)并對緩存第二幀數(shù)據(jù)的第一緩存器進行反復(fù)讀寫以對第二幀數(shù)據(jù)進行第一運算,并將第二幀數(shù)據(jù)寫入到輸出存儲器的第二存儲單元中;
然后,在基于第一幀數(shù)據(jù)的第一運算結(jié)果進行第二運算完成之后,將得到的校驗位寫入到第一存儲單元中;
然后,在基于第二幀數(shù)據(jù)的第一運算完成,并且基于第一幀數(shù)據(jù)的第一運算結(jié)果進行的第二運算完成之后,把第二幀數(shù)據(jù)的第一運算結(jié)果從第一緩存器復(fù)制到第二緩存器;
然后,讀取第三幀數(shù)據(jù)并將其緩存在第一緩存器中,反復(fù)讀寫第一緩存器以對第三幀數(shù)據(jù)進行第一運算,同時對第二幀數(shù)據(jù)的第一運算結(jié)果進行第二運算;
如此循環(huán),直至完成所有幀數(shù)據(jù)的校驗位計算為止。
上面描述的流程的時序圖如圖5所示。其中,Bit_mem1_wr表示第一存儲單元的寫入時序,Bit_mem2_wr表示第二存儲單元的寫入時序,Op_s1_end表示第一運算完成標(biāo)識,Op_end表示第二運算完成標(biāo)識,Bit_mem1_lock表示與第一存儲單元對應(yīng)的幀數(shù)據(jù)的讀取鎖定時序,Bit_mem2_lock表示與第二存儲單元對應(yīng)的幀數(shù)據(jù)的讀取鎖定時序。
從圖5所示的時序圖中能夠看出,比如,在第一幀數(shù)據(jù)的第一運算完成之后但第二運算完成之前,將不能開始第三幀數(shù)據(jù)的第一運算,也就是說,第一幀數(shù)據(jù)的第一運算完成后,可以開始第二幀數(shù)據(jù)的第一運算,但在第二幀數(shù)據(jù)的第一運算完成后但第一幀數(shù)據(jù)的第二運算完成之前,不能開始第三幀數(shù)據(jù)的第一運算,即在第二幀數(shù)據(jù)的第一運算完成后,只有在第一幀數(shù)據(jù)的第二運算也完成后,才能開始第三幀數(shù)據(jù)的第一運算。
另外,在一種可能的實施方式中,所述第一運算可以為利用H編碼矩陣的子矩陣A和C進行的運算,所述第二運算可以為利用所述H編碼矩陣的子矩陣T、E、B和D進行的運算。本公開實施例不對H編碼矩陣的具體結(jié)構(gòu)進行限制。
根據(jù)本公開的又一實施例,還提供一種編碼裝置,如圖6所示,該裝置可以包括:
讀取模塊601,用于讀取待編碼的第N幀數(shù)據(jù);
第一運算模塊602,用于對所述第N幀數(shù)據(jù)進行第一運算,輸出第一運算結(jié)果;
第二運算模塊603,用于在所述第一運算模塊對所述第N幀數(shù)據(jù)進行所述第一運算期間,基于對第N-1幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行第二運算,輸出第二運算結(jié)果,其中,N為正整數(shù)。
其中,所述第二運算結(jié)果為針對所述第N-1幀數(shù)據(jù)的校驗位。
通過上述技術(shù)方案,由于在第一運算模塊602對第N幀數(shù)據(jù)進行第一運算期間,第二運算模塊603基于對第N-1幀數(shù)據(jù)進行第一運算輸出的第一運算結(jié)果進行第二運算,因此針對第N幀數(shù)據(jù)的運算和針對第N-1幀數(shù)據(jù)的運算之間會部分地并行進行(如圖2所示),因此這不僅能夠提高編碼器的編碼處理能力,而且還能夠減小編碼器的數(shù)據(jù)處理延時和輸出延時。
在一種可能的實施方式中,如圖7所示,根據(jù)該實施例的裝置還可以包括第一緩存器604和第二緩存器605,
所述第一運算模塊,還用于反復(fù)讀寫對所述第N幀數(shù)據(jù)進行緩存的所述第一緩存器,來對所述第N幀數(shù)據(jù)進行所述第一運算;
所述第一緩存器604和所述讀取模塊601,還用于在所述第二計算模塊603基于對所述第N-1幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行所述第二運算完成之后,分別將所述第一運算模塊602對所述第N幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果從所述第一緩存器604復(fù)制到第二緩存器605以便所述第二計算模塊603基于所述第一計算模塊602對所述第N幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行所述第二運算,和讀取第N+1幀數(shù)據(jù)。
在一種可能的實施方式中,如圖7所示,根據(jù)該實施例的裝置還可以包括輸出存儲器606、第一多路選擇器607和第二多路選擇器608,所述輸出存儲器606包括第一存儲單元606a和第二存儲單元606b:
所述第一存儲單元606a,用于在所述第N-1幀數(shù)據(jù)的讀取期間,通過所述第一多路選擇器607被寫入所述第N-1幀數(shù)據(jù),以及通過所述第一多路選擇器607被寫入所述第二運算模塊603基于所述第一運算模塊602對所述第N-1幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行第二運算輸出的第二運算結(jié)果;
所述第二存儲單元606b,用于在所述第N幀數(shù)據(jù)的讀取期間,通過所述第二多路選擇器608被寫入所述第N幀數(shù)據(jù),以及通過所述第二多路選擇器608被寫入所述第二運算模塊603基于所述第一運算模塊602對所述第N幀數(shù)據(jù)進行所述第一運算輸出的第一運算結(jié)果進行所述第二運算輸出的第二運算結(jié)果。
在一種可能的實施方式中,所述第一運算可以為利用H編碼矩陣的子矩陣A和C進行的運算,所述第二運算可以為利用所述H編碼矩陣的子矩陣T、E、B和D進行的運算。
根據(jù)本公開實施例的編碼裝置中各個模塊所執(zhí)行的操作的具體實施方式已經(jīng)在根據(jù)本公開的編碼方法中進行了詳細(xì)描述,此處不再贅述。
另外,雖然根據(jù)本公開實施例的編碼裝置中的邏輯資源與現(xiàn)有技術(shù)相比,只是增加了第二緩存器605和一路多路選擇器,但是卻能夠?qū)崿F(xiàn)第N-1幀數(shù)據(jù)的第二運算與第N幀數(shù)據(jù)的第一運算的并行計算,從而能夠大大改善編碼器的編碼處理能力,減小編碼器的數(shù)據(jù)處理延時和輸出延時。
以上結(jié)合附圖詳細(xì)描述了本公開的優(yōu)選實施方式,但是,本公開并不限于上述實施方式中的具體細(xì)節(jié),在本公開的技術(shù)構(gòu)思范圍內(nèi),可以對本公開的技術(shù)方案進行多種簡單變型,這些簡單變型均屬于本公開的保護范圍。
另外需要說明的是,在上述具體實施方式中所描述的各個具體技術(shù)特征,在不矛盾的情況下,可以通過任何合適的方式進行組合。為了避免不必要的重復(fù),本公開對各種可能的組合方式不再另行說明。
此外,本公開的各種不同的實施方式之間也可以進行任意組合,只要其不違背本公開的思想,其同樣應(yīng)當(dāng)視為本公開所公開的內(nèi)容。