亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種二元算術(shù)編碼器的制作方法

文檔序號:11778959閱讀:270來源:國知局
本公開涉及數(shù)字視頻編解碼
技術(shù)領(lǐng)域
:,具體涉及一種高吞吐的二元算術(shù)編碼器,可應(yīng)用于高清、超高清視頻的實(shí)時編碼系統(tǒng)。
背景技術(shù)
::隨著多媒體技術(shù)的快速發(fā)展,人們對視頻分辨率的要求越來越高,視頻分辨率朝著4k(3840×2160)和8k(7680×4320)超高清方向發(fā)展。超高清視頻的高分辨率、高幀率和高像素深度導(dǎo)致了龐大的數(shù)據(jù)量,對視頻編碼技術(shù)提出了更高的要求。針對超高清視頻的編碼需求,新一代視頻編碼標(biāo)準(zhǔn)h.265/hevc(highefficiencyvideocoding,高效視頻編碼)于2013年正式發(fā)布。相比前一代h.264/avc標(biāo)準(zhǔn),hevc的壓縮率提高1倍,而編碼的復(fù)雜度也大大增加,給超高清視頻的實(shí)時編碼帶來巨大挑戰(zhàn)。hevc視頻編碼中的熵編碼采用基于上下文的自適應(yīng)二元算術(shù)編碼(context-basedadaptivebinaryarithmeticcoding,cabac)算法,算法的概率自適應(yīng)和區(qū)間劃分存在很強(qiáng)的數(shù)據(jù)依賴,嚴(yán)重限制了編碼過程的并行度,成為整個hevc編碼的吞吐瓶頸之一。二元算術(shù)編碼的吞吐率使用單位時間能處理的bin數(shù)來衡量。二元算術(shù)編碼過程較為復(fù)雜,且數(shù)據(jù)依賴性很強(qiáng),提高二元算術(shù)編碼的吞吐率是提高熵編碼吞吐率的關(guān)鍵。要實(shí)現(xiàn)高清、超高清視頻實(shí)時編碼,高吞吐的二元算術(shù)編碼器十分重要。技術(shù)實(shí)現(xiàn)要素:(一)要解決的技術(shù)問題本公開提出一種高吞吐的二元算術(shù)編碼器,以支持高清、超高清視頻的實(shí)時編碼。(二)技術(shù)方案本公開提供了一種二元算術(shù)編碼器,包括:采用多個級聯(lián)結(jié)構(gòu)的區(qū)間范圍更新模塊,用于接收bin輸入信息,對區(qū)間范圍進(jìn)行更新并輸出偏移值和左移位數(shù);區(qū)間下界更新模塊,用于接收所述bin輸入信息、偏移值和左移位數(shù),輸出高位溢出比特和高位溢出比特?cái)?shù)目;合并輸出模塊,用于接收所述高位溢出比特和高位溢出比特?cái)?shù)目,輸出溢出比特流。在一些實(shí)施例中,所述區(qū)間范圍更新模塊包括:區(qū)間范圍更新預(yù)處理單元和區(qū)間范圍更新單元,構(gòu)成三級流水線結(jié)構(gòu),所述區(qū)間范圍更新單元包括多個級聯(lián)結(jié)構(gòu)。在一些實(shí)施例中,所述區(qū)間范圍更新單元包括三個級聯(lián)結(jié)構(gòu),第一級聯(lián)結(jié)構(gòu)為lu-lu-mu級聯(lián)結(jié)構(gòu),第二級聯(lián)結(jié)構(gòu)為lu-mu級聯(lián)結(jié)構(gòu),第三級聯(lián)結(jié)構(gòu)為lu-fu級聯(lián)結(jié)構(gòu);其中,lu單元為lps符號更新單元,mu單元為mps符號更新單元,fu單元為通用符號更新單元。在一些實(shí)施例中,所述區(qū)間范圍更新單元還包括:寄存器,其輸入端連接所述fu單元的輸出端,其輸出端連接第一級聯(lián)結(jié)構(gòu)的第一個lu單元。在一些實(shí)施例中,所述區(qū)間范圍更新預(yù)處理單元包括四個輸入端、三個多路選擇器和寄存器;所述寄存器的輸出端接第一級聯(lián)結(jié)構(gòu)的第一個lu單元;第一輸入端接第一級聯(lián)結(jié)構(gòu)的第二個lu單元和第一多路選擇器;第二輸入端接第一多路選擇器、第二級聯(lián)結(jié)構(gòu)的lu單元和第二多路選擇器;第三輸入端接第二多路選擇器、第三級聯(lián)結(jié)構(gòu)的lu單元和第三多路選擇器;第四輸入端接第三多路選擇器以及寄存器的輸入端;所述第一多路選擇器的輸出端接第一級聯(lián)結(jié)構(gòu)的mu單元;所述第二多路選擇器的輸出端接第二級聯(lián)結(jié)構(gòu)的mu單元;所述第三多路選擇器的輸出端接第三級聯(lián)結(jié)構(gòu)的fu單元。在一些實(shí)施例中,所述lu單元、mu單元和fu單元包括:rlps生成級結(jié)構(gòu)和區(qū)間范圍更新級結(jié)構(gòu)。在一些實(shí)施例中,所述lu-mu級聯(lián)結(jié)構(gòu)包括:rlps生成級結(jié)構(gòu),包括:第一rlps表,用于根據(jù)bin的lps概率狀態(tài)獲取rlpslu候選值;重歸一化單元,用于對rlpslu候選值處理而得到重歸一化后的候選值ren_rlps;第二rlps表,用于根據(jù)bin的lps的概率狀態(tài)獲取rlpsmu候選值;第一多路選擇器,用于選擇rlpsmu候選值或零輸出至路由器;第二多路選擇器,用于選擇ren_rlps候選值的第7位和第6位或者一組數(shù)值作為路由器的選擇信號;路由器,用于重新規(guī)劃rlpsmu候選值的順序;區(qū)間范圍更新級結(jié)構(gòu),包括:第一查找表,用于接收區(qū)間范圍值的第6位和第7位,從候選值ren_rlps中選出第一區(qū)間范圍更新值;第二查找表,用于接收區(qū)間范圍值的第6位和第7位,對路由器的輸出進(jìn)行選擇;第三多路選擇器,用于選擇第一區(qū)間范圍更新值或區(qū)間范圍值輸出;加法器,用于將第一區(qū)間范圍更新值與第二查找表的輸出相減;第四多路選擇器,用于判斷是否將加法器的結(jié)果左移1位,并輸出區(qū)間范圍的更新值。在一些實(shí)施例中,所述lu-mu級聯(lián)結(jié)構(gòu)包括:rlps生成級結(jié)構(gòu),包括:第一rlps表,用于根據(jù)bin的lps概率狀態(tài)獲取rlpslu候選值;重歸一化單元,用于對rlpslu候選值處理而得到重歸一化后的候選值ren_rlps;第二rlps表,用于根據(jù)bin的lps概率狀態(tài)獲取rlpsmu候選值;第一多路選擇器,用于選擇rlpsmu候選值或零輸出至路由器;第二多路選擇器,用于選擇ren_rlps候選值的第7位和第6位作為路由器的選擇信號;路由器,用于重新規(guī)劃rlpsmu候選值的順序;四個加法器,分別用于將候選值ren_rlps與路由器的輸出相減;四個預(yù)先按位取反單元,分別用于對加法器的結(jié)果按位取反;四個多路選擇器,分別用于選擇分別單元的結(jié)果或路由器的輸出;區(qū)間范圍更新級結(jié)構(gòu),包括:查找表,用于接收區(qū)間范圍值的第6位和第7位,對四個多路選擇器的輸出進(jìn)行選擇;第三多路選擇器,用于選擇9比特1或區(qū)間范圍值輸出;加法器,用于將第三多路選擇器與查找表的輸出相減;第四多路選擇器,用于判斷是否將加法器的結(jié)果左移1位,并輸出區(qū)間范圍的更新值。在一些實(shí)施例中,所述區(qū)間下界更新模塊包括區(qū)間下界更新預(yù)處理單元和區(qū)間下界更新單元,構(gòu)成兩級流水線結(jié)構(gòu)。本公開還提供了一種基于上下文的自適應(yīng)二元算術(shù)編碼器,其包括二值化模塊、上下文建模模塊以及二元算術(shù)編碼器,其中,二元算術(shù)編碼器采用上述任一項(xiàng)二元算術(shù)編碼器。(三)有益效果從上述技術(shù)方案可以看出,本公開具有以下有益效果:本公開的二元算術(shù)編碼器中,range更新單元采用3種range更新子單元,并組織成lu-lu-mu級聯(lián)結(jié)構(gòu)、lu-mu級聯(lián)結(jié)構(gòu)、lu-fu級聯(lián)結(jié)構(gòu),使得電路得到優(yōu)化,可以縮短電路的路徑延時,提高電路的工作頻率,進(jìn)而提高二元算術(shù)編碼器的吞吐率,支持高清、超高清視頻的實(shí)時編碼。附圖說明為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖做簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他附圖。圖1為本公開實(shí)施例二元算術(shù)編碼器的電路結(jié)構(gòu)示意圖;圖2為本公開實(shí)施例二元算術(shù)編碼器range更新模塊的電路結(jié)構(gòu)示意圖;圖3為本公開實(shí)施例二元算術(shù)編碼器lu單元的電路結(jié)構(gòu)示意圖;圖4為本公開實(shí)施例二元算術(shù)編碼器mu單元的電路結(jié)構(gòu)示意圖;圖5為本公開實(shí)施例二元算術(shù)編碼器fu單元的電路結(jié)構(gòu)示意圖;圖6為本公開實(shí)施例二元算術(shù)編碼器lu-mu級聯(lián)結(jié)構(gòu)1的電路結(jié)構(gòu)示意圖;圖7為本公開實(shí)施例二元算術(shù)編碼器4-4router的電路結(jié)構(gòu)示意圖;圖8為本公開實(shí)施例二元算術(shù)編碼器lu-mu級聯(lián)結(jié)構(gòu)2的電路結(jié)構(gòu)示意圖;圖9為本公開實(shí)施例二元算術(shù)編碼器low更新模塊的電路結(jié)構(gòu)示意圖;圖10為本公開實(shí)施例二元算術(shù)編碼器low更新單元的電路結(jié)構(gòu)示意圖;圖11為本公開實(shí)施例二元算術(shù)編碼器比特合并模塊的電路結(jié)構(gòu)示意圖。具體實(shí)施方式cabac主要包括二值化、上下文建模和二元算術(shù)編碼三個過程。輸入熵編碼器的語法元素首先由二值化過程映射為二元符號(binarysymbol,bin)。二元算術(shù)編碼中包含常規(guī)(regular)編碼、旁路(bypass)編碼和終止(terminate)編碼三種編碼模式。上下文建模過程根據(jù)特定的上下文為每個非旁路編碼的bin估計(jì)概率模型,也就是上下文模型。二元算術(shù)編碼根據(jù)bin的上下文模型將bin壓縮為比特并輸出。二元算術(shù)編碼過程的核心是編碼區(qū)間的遞歸劃分,編碼區(qū)間根據(jù)編碼模式和bin的上下文模型劃分為子區(qū)間,并選取當(dāng)前bin對應(yīng)的子區(qū)間作為新的編碼區(qū)間,如此不斷遞歸劃分。編碼區(qū)間使用區(qū)間范圍(或稱區(qū)間寬度,range)和區(qū)間下界(low)來表示。在編碼過程中l(wèi)ow值逐漸增加,low的溢出比特構(gòu)成的二元算術(shù)編碼的輸出結(jié)果,成為比特流。以比較典型的常規(guī)編碼模式為例,常規(guī)模式根據(jù)上下文模型將當(dāng)前區(qū)間劃分兩個子區(qū)間,其中,lps對應(yīng)子區(qū)間的區(qū)間范圍記為rlps,mps對應(yīng)子區(qū)間的區(qū)間范圍記為rmps。整個區(qū)間劃分過程可以分為range更新和low更新兩個階段,其中rlps的計(jì)算需要進(jìn)行乘法,hevc標(biāo)準(zhǔn)中提供了一個查找表,使用lps的概率狀態(tài)(值為0~63)和當(dāng)前range值的第7、6位(range為9比特,記為0~8位)查表得到rlps。range更新的過程較為復(fù)雜,需要進(jìn)行查表、減法和選擇運(yùn)算。隨著編碼過程的進(jìn)行,區(qū)間不斷遞歸劃分,range值會逐漸縮小。為了保證編碼精度,當(dāng)range小于256時,需要進(jìn)行重歸一化過程,將range左移一位。hevc標(biāo)準(zhǔn)中給出的重歸一化過程包含不固定次數(shù)的循環(huán)操作,不便于流水線處理。由于range為9比特,當(dāng)最高位為1時大于等于256,可以采用一個高位0比特?cái)?shù)據(jù)檢測器來確定range需要左移的位數(shù)。二元算術(shù)編碼采用最終編碼區(qū)間的low值為編碼結(jié)果。在重歸一化的過程中l(wèi)ow值也左移,其溢出比特形成最終的輸出比特。由于low在后續(xù)的編碼過程中可能增加進(jìn)而產(chǎn)生進(jìn)位,左移溢出的比特不能直接作為編碼結(jié)果輸出。溢出比特中的比特0可以阻斷進(jìn)位,之前的比特可以輸出。為使本公開的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對本公開進(jìn)一步詳細(xì)說明。本公開實(shí)施例的二元算術(shù)編碼器,用于數(shù)字視頻的編解碼,尤其是用于基于上下文的自適應(yīng)二元算術(shù)編碼,參見圖1,包括:區(qū)間范圍(range)更新模塊、區(qū)間下界(low)更新模塊、比特合并模塊和字節(jié)輸出模塊。該二元算術(shù)編碼器為7級流水線結(jié)構(gòu)。其中range更新模塊包括range更新預(yù)處理單元和range更新單元,構(gòu)成第1~3級流水線,作為range更新階段完成區(qū)間范圍range的更新。low更新模塊包括low更新預(yù)處理單元和low更新單元,構(gòu)成第4~5級流水線,作為low更新階段完成區(qū)間下界low的更新。比特合并模塊和字節(jié)輸出模塊構(gòu)成第6~7級流水線,作為比特輸出階段將low更新過程中的高位溢出比特整合成可以輸出的比特流。二元算術(shù)編碼器每個時鐘周期能夠處理3~4個bin,每個bin的輸入信息包括bin值、編碼模式mode、lps的概率狀態(tài)pstate和大概率符號mps。參見圖2,其顯示了range更新模塊的電路結(jié)構(gòu)圖,range更新預(yù)處理單元包括三個多路選擇器和寄存器ff。range更新單元包括三個級聯(lián)結(jié)構(gòu),共7個級聯(lián)的range更新子單元,每個range更新子單元完成單個bin的range更新操作。第一級聯(lián)結(jié)構(gòu)為lu-lu-mu級聯(lián)結(jié)構(gòu),包括級聯(lián)的lu1、lu2和mu1,第二級聯(lián)結(jié)構(gòu)為lu-mu級聯(lián)結(jié)構(gòu),包括級聯(lián)的lu3和mu2,第三級聯(lián)結(jié)構(gòu)為lu-fu級聯(lián)結(jié)構(gòu),包括級聯(lián)的lu4和fu。fu的輸出接寄存器range,寄存器range的輸出接第一級聯(lián)結(jié)構(gòu)lu1。lu為專門處理lps符號的更新單元,mu為專門處理mps符號的更新單元,fu為通用的更新單元,能處理包括lps和mps在內(nèi)的各種bin符號。寄存器ff的輸出接lu1,range更新預(yù)處理單元的第一輸入端接lu2和第一多路選擇器mux1;第二輸入端接第一多路選擇器mux1、lu3和第二多路選擇器mux2;第三輸入端接第二多路選擇器mux2、lu4和第三多路選擇器mux3;第四輸入端接第三多路選擇器mux3以及寄存器ff;第一多路選擇器mux1接mu1,第二多路選擇器mux2接mu2,第三多路選擇器mux3接fu。range更新預(yù)處理單元的四個輸入端分別接收bin0、bin1、bin2和bin3。在二元算術(shù)編碼器工作時,圖2中的range更新預(yù)處理單元利用表1所示的bin分配策略,將待處理的4個bin分配給7個range更新子單元進(jìn)行處理。輸入的bin信息包括編碼模式,編碼模式包括常規(guī)編碼、旁路編碼和終止編碼。對于采用常規(guī)編碼的bin,其包括mps和lps信息。對于采用終止編碼模式的bin,bin值為0時將其作為mps進(jìn)行分配,bin值為1時將其作為lps進(jìn)行分配。對于采用旁路編碼模式的bin,統(tǒng)一將其視作lps進(jìn)行分配。表1表1中待處理bin序列一欄給出了待處理的4個bin可能出現(xiàn)的16種情況,其中m表示mps,l表示lps。表1中分配策略一欄給出了對應(yīng)的分配策略,表明待處理的bin交由哪些range更新子單元處理。分配策略欄的7列數(shù)據(jù)對應(yīng)圖2中的7個range更新子單元。值1表示使用該range更新子單元處理,值0表示不使用該range更新子單元處理。需要注意的是,當(dāng)待處理的bin為{mps,mps,mps,mps}時,該range更新預(yù)處理單元在當(dāng)前時鐘周期只能處理前3個bin的mps。當(dāng)待處理的bin為{mps,mps,mps,lps}時,當(dāng)前時鐘周期只能處理前3個bin的mps,最后一個bin的lps暫存到圖2中的ff寄存器中,在下一時鐘周期交由圖2中的lu1子單元處理。lu1子單元僅在這種情況下被占用,因而表1中未給出分配策略欄中l(wèi)u1列的分配情況。為了更好地描述range更新階段級聯(lián)結(jié)構(gòu)的工作方式,首先介紹range更新子單元的結(jié)構(gòu)。圖3給出了lu的電路結(jié)構(gòu)圖。對于lps符號,range更新后的值為重歸一化后的rlps值。lu包括兩級流水線結(jié)構(gòu),包括rlps生成級結(jié)構(gòu)和range更新級結(jié)構(gòu)。rlps生成級結(jié)構(gòu)包括rlps表和重歸一化單元。rlps生成級結(jié)構(gòu)接收bin的lps的概率狀態(tài)pstate,根據(jù)概率狀態(tài)pstate其從rlps表(rlpstable)中獲取4個rlps候選值,重歸一化單元用于對4個rlps候選值處理而得到重歸一化后的候選值ren_rlps,同時得到重歸一化需要左移的位數(shù)ren_shift。range更新級結(jié)構(gòu)包括更新路徑和結(jié)果輸出路徑。更新路徑包括查找表1(lookuptable1,lut1),接收重歸一化后的候選值ren_rlps,根據(jù)range值的第7位和第6位從4個ren_rlps候選值中使用lut1選出range值的更新結(jié)果new_range。結(jié)果輸出路徑包括查找表2(lut2)、查找表3(lut3)和加法器add,lut2和lut3分別接收重歸一化需要左移的位數(shù)ren_shift以及rlps候選值,根據(jù)range值的第7位和第6位從4個ren_shift候選值中選出low值更新所需的左移位數(shù)shift,從4個rlps候選值中使用lut3選出rlps,使用range值與rlps在加法器add中相減得到rmps,rmps作為low更新所需的偏移值offset。圖4給出了mu的電路結(jié)構(gòu)圖。對于mps符號,range更新后的值為當(dāng)前range值減去rlps后再進(jìn)行重歸一化的結(jié)果。mu包括兩級流水線結(jié)構(gòu),包括rlps生成級結(jié)構(gòu)和range更新級結(jié)構(gòu)。rlps生成級結(jié)構(gòu)包括rlps表。rlps生成級結(jié)構(gòu)接收bin的lps的概率狀態(tài)pstate,根據(jù)概率狀態(tài)pstate其從rlpstable中獲取4個rlps候選值。range更新級結(jié)構(gòu)包括更新路徑和結(jié)果輸出路徑。更新路徑接收4個rlps候選值,根據(jù)range值的第7位和第6位從4個rlps候選值中使用查找表lut選出rlps,使用range值與rlps在加法器add中相減得到rmps,根據(jù)rmps的首位(即第8位)判斷是否將rmps左移1位,多路選擇器mux1輸出range的更新值。結(jié)果輸出路徑輸出low更新所需的偏移值offset為0,多路選擇器mux2根據(jù)rmps的首位(即第8位)得到low值更新所需的左移位數(shù)shift,當(dāng)rmps首位為0時shift為1,否則shift為0。圖5給出了fu的電路結(jié)構(gòu)圖,fu需要處理mps、lps和旁路模式的bin等多種符號,可以視作lu和mu的整合。fu也包括兩級流水線結(jié)構(gòu),rlps生成級結(jié)構(gòu)和range更新級結(jié)構(gòu)。為了縮短fu在range更新級的組合路徑延時,本實(shí)施例提出一種預(yù)先按位取反(pre-bitwise-not,pbn)技術(shù),其具體實(shí)施方式為如下。在rlps生成級結(jié)構(gòu)設(shè)置了一個多路選擇器mux1,在range更新級結(jié)構(gòu)設(shè)置了一個多路選擇器mux2。具體來說,rlps生成級結(jié)構(gòu)包括rlps表、重歸一化單元、pbn單元和多路選擇器mux1。range更新級結(jié)構(gòu)包括更新路徑和結(jié)果輸出路徑,更新路徑包括查找表lut1、多路選擇器mux2、加法器add2和多路選擇器mux3;結(jié)果輸出路徑包括查找表lut2、查找表lut3、加法器add1、多路選擇器mux4和多路選擇器mux5。當(dāng)輸入的bin為旁路模式bin時,mux1選擇值0輸出到range更新級結(jié)構(gòu)的lut1,mux2選擇原始range值,這樣,lut1的輸出和mux2的輸出在加法器add2中相減,并由mux3輸出的更新值為原始range值,range更新級結(jié)構(gòu)輸出的range值不變,與旁路模式的處理方式相符。此時,mux5輸出的左移位數(shù)shift為0,當(dāng)bin值為1時,mux4輸出的偏移值offset為range值,當(dāng)bin值為0時,mux4輸出的偏移值offset為0。當(dāng)輸入的bin為lps時,rlps生成級結(jié)構(gòu)接收bin的lps的概率狀態(tài)pstate,根據(jù)概率狀態(tài)pstate其從rlpstable中獲取4個rlps候選值,重歸一化單元用于對4個rlps候選值處理而得到重歸一化后的候選值ren_rlps,pbn單元對重歸一化后的候選值ren_rlps預(yù)先按位取反,并經(jīng)mux1輸出給range更新級結(jié)構(gòu)的lut1。mux2選擇9比特1輸出,這樣,lut1和mux2的輸出在加法器add2中相減,并由mux3輸出,其結(jié)果就是重歸一化后的rlps值,作為range更新值new_range,符合lps的正確處理方式。重歸一化單元對4個rlps候選值處理還得到重歸一化需要左移的位數(shù)ren_shift。lut2和lut3分別接收重歸一化需要左移的位數(shù)ren_shift以及rlps候選值,根據(jù)range值的第7位和第6位利用lut2從4個ren_shift中選出左移位數(shù)lps_shift,利用lut3從4個rlps候選值中選出rlps,使用range值與rlps在加法器add1中相減得到偏移值lps_offset。此時,mux4輸出的偏移值offset為lps_offset值,mux5輸出的左移位數(shù)shift為lps_shift值。當(dāng)待處理的bin為mps時,mux1輸出原始的未經(jīng)重歸一化的rlps給range更新級結(jié)構(gòu)的lut1,即從rlpstable中獲取4個rlps候選值,mux2選擇原始的range值,lut1的輸出和mux2的輸出在加法器add2中相減,并由mux3輸出重歸一化得到的更新后的range值new_range,與mu的處理方式類似。此時,mux4輸出的偏移值offset為0,當(dāng)加法器add2的計(jì)算結(jié)果首位(即第8位)為1時,mux5輸出的左移位數(shù)shift為0,首位為0時,mux5輸出的左移位數(shù)shift為1。本實(shí)施例使用了三種上述更新子單元的級聯(lián)結(jié)構(gòu),分別為lu-lu-mu級聯(lián)結(jié)構(gòu)、lu-mu級聯(lián)結(jié)構(gòu)和lu-fu級聯(lián)結(jié)構(gòu),如圖2所示。下面,本實(shí)施例以其中比較典型的lu-mu級聯(lián)結(jié)構(gòu)為例介紹級聯(lián)結(jié)構(gòu),本領(lǐng)域技術(shù)人員應(yīng)當(dāng)很容易從中理解其他的兩種級聯(lián)結(jié)構(gòu)。本實(shí)施例提供了lu-mu級聯(lián)結(jié)構(gòu)的兩種實(shí)現(xiàn)方式。圖6給出了lu-mu級聯(lián)結(jié)構(gòu)的一個示例,包括lu和mu兩部分,其根據(jù)lu和mu簡單級聯(lián)結(jié)構(gòu)的基礎(chǔ)上修改得到。為了便于描述其中的主要結(jié)構(gòu),圖6略去了部分次要的電路路徑,僅給出更新路徑的電路單元,lu和mu的結(jié)果輸出路徑分別與圖3的lu電路中的結(jié)果輸出路徑和圖4的mu電路中的結(jié)果輸出路徑相似,需要注意的是:當(dāng)lu或mu不被使用時,對應(yīng)的輸出偏移值offset和左移位數(shù)shift均為0。當(dāng)lu用來處理旁路模式bin時,輸出的shift為0,此時若bin值為1,輸出的偏移值offset為range值,若bin值為0,輸出的offset為0。這里不再贅述。lu-mu級聯(lián)結(jié)構(gòu)1為兩級流水線結(jié)構(gòu),包括rlps生成級結(jié)構(gòu)和range更新級結(jié)構(gòu)。rlps生成級結(jié)構(gòu)包括rlps表1、重歸一化單元、rlps表2、多路選擇器mux1、多路選擇器mux2和路由器。range更新級結(jié)構(gòu)的更新路徑包括查找表1、查找表2、多路選擇器mux3、加法器add和多路選擇器mux4。為了使查找表lut1和lut2并行處理以縮短range更新路徑,本實(shí)施例使用4輸入4輸出的路由器4-4router為lut2重新規(guī)劃4個候選值的順序,使lut2能夠通過原始的range值查表。當(dāng)lu處理lps符號時,rlps生成級結(jié)構(gòu)接收bin的lps的概率狀態(tài)pstatelu,根據(jù)概率狀態(tài)pstatelu其從rlpstable1中獲取4個rlpslu候選值,重歸一化單元用于對4個rlpslu候選值處理而得到重歸一化后的候選值ren_rlps。同時,當(dāng)mu處理mps符號時,rlps生成級結(jié)構(gòu)接收bin的lps的概率狀態(tài)pstatemu,根據(jù)概率狀態(tài)pstatemu其從rlpstable2中獲取4個rlpsmu候選值,mux1選擇rlpsmu候選值輸出至路由器router,當(dāng)mu不處理mps符號時,rlps生成級結(jié)構(gòu)不接收bin的lps的概率狀態(tài)pstatemu,mux1選擇0輸出至router。多路選擇器mux2選擇圖6中4個ren_rlps候選值的第7位和第6位作為4-4router的選擇信號。lut2接收range值第6位和第7位,對4-4router的輸出值進(jìn)行選擇,lut1接收range值第6位和第7位,從重歸一化后的候選值ren_rlps中選出range_lu值,mux3選擇lu更新過的(即lut1輸出的)range_lu值輸出,range_lu值與lut2的輸出在加法器add中相減,并判斷是否將add的結(jié)果左移1位,多路選擇器mux4輸出range的更新值new_range。當(dāng)lu不處理lps符號或者處理的bin為旁路模式bin時,lu-mu級聯(lián)結(jié)構(gòu)處理過程與上述過程相似,不同的是,多路選擇器mux2選擇值{0,1,2,3}作為4-4router的選擇信號,多路選擇器mux3選擇原始的range值輸出。圖7給出了圖6中4-4router的電路結(jié)構(gòu)圖,其內(nèi)部結(jié)構(gòu)包括4個lut單元,每個lut的輸入都是mux1輸出的4個rlpsmu的候選值,4個lut使用4個2比特的選擇信號sel0-sel3得到重新規(guī)劃順序的rlps候選值,并輸出給lut2。圖8給出了lu-mu級聯(lián)結(jié)構(gòu)的另一個示例,其采用前述提到的預(yù)先按位取反技術(shù),進(jìn)一步縮短了range更新的路徑延時。lu-mu級聯(lián)結(jié)構(gòu)2也采用了4-4router來重新組織mu中4個候選值的排列順序。與圖6類似,僅給出更新路徑的電路單元,lu和mu的結(jié)果輸出路徑分別與圖3的lu電路中的結(jié)果輸出路徑和圖4的mu電路中的結(jié)果輸出路徑相似,需要注意的是:當(dāng)lu或mu不被使用時,對應(yīng)的輸出偏移值offset和左移位數(shù)shift均為0。當(dāng)lu用來處理旁路模式bin時,輸出的shift為0,此時若bin值為1,輸出的偏移值offset為range值,若bin值為0,輸出的offset為0。這里不再贅述。rlps生成級結(jié)構(gòu)包括rlps表1、重歸一化單元、rlps表2、多路選擇器mux1、mux2、mux3、mux4、mux5、mux6、四個加法器add1、add2、add3和add4、四個pbn單元pbn1、pbn2、pbn3、pbn4以及路由器。range更新級結(jié)構(gòu)的更新路徑包括查找表lut、多路選擇器mux7、mux8和加法器add。當(dāng)lu處理lps符號時,rlps生成級結(jié)構(gòu)接收bin的lps的概率狀態(tài)pstatelu,根據(jù)概率狀態(tài)pstatelu其從rlpstable1中獲取4個rlpslu候選值,重歸一化單元用于對4個rlpslu候選值處理而得到重歸一化后的候選值ren_rlps。同時,當(dāng)mu處理mps符號時,rlps生成級結(jié)構(gòu)接收bin的lps的概率狀態(tài)pstatemu,根據(jù)概率狀態(tài)pstatemu其從rlpstable2中獲取4個rlpsmu候選值,mux5選擇rlpsmu候選值輸出至路由器router,當(dāng)mu不處理mps符號時,rlps生成級結(jié)構(gòu)不接收bin的lps的概率狀態(tài)pstatemu,mux5選擇0輸出至router。多路選擇器mux6選擇圖8中4個ren_rlps候選值的第7位和第6位作為4-4router的選擇信號。lu重歸一化后的4個候選值ren_rlps與4-4router輸出的4個候選值rou_rlps分別在四個加法器中相減,相減結(jié)果經(jīng)pbn單元按位取反。mux1-mux4將pbn單元的結(jié)果輸出給lut。lut接收range值第6位和第7位,對mux1-mux4的輸出值進(jìn)行選擇,mux7選擇9比特1輸出,lut的輸出和mux7的輸出在加法器add中相減,并判斷是否將相減結(jié)果左移1位,mux8輸出range的更新值new_range。當(dāng)lu不處理lps符號或者處理旁路模式bin時,lu-mu級聯(lián)結(jié)構(gòu)處理過程與上述過程相似,不同的是,mux6選擇值{0,1,2,3}作為4-4router的選擇信號,mux1~mux4選擇mu中4-4router排列后的4個候選值rou_rlps輸出至lut,mux7選擇原始的range值輸出。圖8中的lu-mu級聯(lián)結(jié)構(gòu)2與圖7中的lu-mu級聯(lián)結(jié)構(gòu)1功能完全相同。兩者相比,lu-mu級聯(lián)結(jié)構(gòu)2擁有更短的range更新路徑延時,lu-mu級聯(lián)結(jié)構(gòu)1使用更少的電路資源。圖9給出了low更新模塊的整體結(jié)構(gòu)圖,其分為兩級流水線結(jié)構(gòu),分別對應(yīng)圖1中的第4級和第5級流水線。其中第4級流水線進(jìn)行l(wèi)ow更新預(yù)處理,根據(jù)range更新預(yù)處理中的分配策略,利用多路選擇器將有效工作的range更新子單元的輸出選擇出來。第5級流水線從寄存器low中讀取出low值,并經(jīng)過5個級聯(lián)的low更新單元完成low值的更新并寫回寄存器。low更新預(yù)處理單元包括多路選擇器mux1、mux2、mux3和mux4;low更新單元包括5個級聯(lián)的low更新單元以及寄存器low,上一級low更新單元的輸出接下一級low更新單元的輸入。low更新單元完成單個bin的low更新處理。range更新子單元的lu1接low更新單元1;lu2和mu1接mux1,mux1接low更新單元2;mu1、lu3和mu2接mux2,mux2接low更新單元3;mu2、lu4和fu接mux3,mux3接low更新單元4;fu接mux4,mux4接low更新單元5。low更新單元5的輸出接寄存器low,寄存器low輸出接low更新單元1。圖10給出了low更新單元的電路結(jié)構(gòu)圖。圖11中,low更新單元包括移位器1(shift1)、多路選擇器mux、加法器1(add1)、加法器2(add2)和移位器2(shift2)。low更新單元接收range更新子單元的輸入,各個range更新子單元的輸入包括旁路模式標(biāo)志位bps_flag、偏移值offset和左移位數(shù)shift。10比特的low值分別直接和通過移位器接mux,bps_flag作為mux的選擇信號,mux的輸出接加法器1,加法器1的輸出接移位器2。10比特的low值首先根據(jù)當(dāng)前待處理的bin的旁路模式標(biāo)志位bps_flag決定是否左移1位,當(dāng)bin的旁路模式標(biāo)志位為1時,移位器1將low值左移1位,mux輸出左移1位的low值;當(dāng)bin的旁路模式標(biāo)志位為0時,mux直接輸出low值。mux輸出的low值與偏移值offset在加法器1相加,移位器2將相加結(jié)果左移shift位,得到18位的low值輸出(low_shift),low值輸出的高8位作為bits輸出,即bits為low值經(jīng)過上述操作后的高位溢出比特low_shift[17∶10],低10位作為low的更新值(new_low)輸出。旁路模式標(biāo)志位bps_flag與左移位數(shù)shift在加法器2中相加,結(jié)果作為n值輸出,n為高位溢出比特的數(shù)目(不包括進(jìn)位),當(dāng)待處理的bin為旁路模式時,shift增加1得到n,其他情況下,shift的值即為n的值。圖11給出了圖1中比特合并模塊的電路結(jié)構(gòu)圖,low更新模塊中的5個low更新單元都會產(chǎn)生溢出比特。由于溢出比特中可能包含進(jìn)位,為了保證進(jìn)位不丟失,比特輸出階段需要加法運(yùn)算進(jìn)行溢出的比特合并。比特合并模塊的第一合并單元將low更新單元5和low更新單元4輸出的bits輸出和n值輸出進(jìn)行合并;第二合并單元將low更新單元3和low更新單元2輸出的bits輸出和n值輸出進(jìn)行合并;第三合并單元將第一合并單元和第二合并單元輸出的bits輸出和n值輸出進(jìn)行合并;第四合并單元將第三合并單元和將low更新單元1輸出的bits輸出和n值輸出進(jìn)行合并,得到溢出比特流。其中,每一合并單元包括一個移位器和兩個加法器,移位器用于將第一bits輸出進(jìn)行移位,移位的位數(shù)為第一n值輸出,移位器的輸出與第二bits輸出在第一加法器中相加,相加結(jié)果作為該合并單元的bits輸出,第一n值與第二n值在第二加法器中相加,相加結(jié)果作為該合并單元的n值輸出。例如,第一合并單元的移位器將low更新單元4的bits輸出移位,移位的位數(shù)為low更新單元5的n值輸出,移位器的輸出在第一加法器中與low更新單元5的bits輸出相加,low更新單元4和low更新單元5的n值在第二加法器中相加,分別得到第一合并單元的bits輸出和n值輸出,其他合并單元的結(jié)構(gòu)與此類似,不再贅述。經(jīng)過比特合并,5個low更新單元產(chǎn)生的溢出比特完成了內(nèi)部進(jìn)位運(yùn)算,形成一個統(tǒng)一的溢出比特流。字節(jié)輸出模塊將比特合并模塊的溢出比特流打包成字節(jié)并輸出。本公開另一實(shí)施例還提供了一種基于上下文的自適應(yīng)二元算術(shù)編碼器,其包括二值化模塊、上下文建模模塊以及二元算術(shù)編碼器,其中,二元算術(shù)編碼器采用上述實(shí)施例所述的二元算術(shù)編碼器。至此,已經(jīng)結(jié)合附圖對本實(shí)施例進(jìn)行了詳細(xì)描述。依據(jù)以上描述,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)對本公開有了清楚的認(rèn)識。需要說明的是,在附圖或說明書正文中,未繪示或描述的實(shí)現(xiàn)方式,均為所屬
技術(shù)領(lǐng)域
:中普通技術(shù)人員所知的形式,并未進(jìn)行詳細(xì)說明。此外,上述對各元件的定義并不僅限于實(shí)施例中提到的各種具體結(jié)構(gòu)、形狀或方式,本領(lǐng)域普通技術(shù)人員可對其進(jìn)行簡單地更改或替換,例如:(1)實(shí)施例中提到的方向用語,例如“上”、“下”、“前”、“后”、“左”、“右”等,僅是參考附圖的方向,并非用來限制本公開的保護(hù)范圍;(2)上述實(shí)施例可基于設(shè)計(jì)及可靠度的考慮,彼此混合搭配使用或與其他實(shí)施例混合搭配使用,即不同實(shí)施例中的技術(shù)特征可以自由組合形成更多的實(shí)施例。以上所述的具體實(shí)施例,對本公開的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本公開的具體實(shí)施例而已,并不用于限制本公開,凡在本公開的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本公開的保護(hù)范圍之內(nèi)。當(dāng)前第1頁12當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1