freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文-基于cabac的可伸縮視頻編碼方法研究(編輯修改稿)

2025-07-04 02:04 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 ate=50 pre_state, MPS=0},否則{state= pre_state51, MPS=1}對(duì)于不同上下文模型的(m, n)分配參看標(biāo)準(zhǔn)。 上下文模型的分類上下文模型大概可以分成4種。第一種上下文模型包含當(dāng)前要編碼的句法元素的兩個(gè)相鄰塊的已編碼句法元素的信息,其中相鄰塊的具體位置就要看句法元素了,一般是根據(jù)左邊與上邊的相鄰塊。第二種上下文模型只對(duì)mb_type與sub_mb_type的句法元素有定義。對(duì)于這種上下文模型,之前已編碼的二進(jìn)串的值(b0, b1, b2,…, bi1)是用來為一個(gè)索引為i的二進(jìn)制句法元素值選擇模型的。第三與第四種上下文模型都是只應(yīng)用在殘差數(shù)據(jù)上。與其它上下文模型不同,這兩種類型都是依賴于不同塊種類的上下文范圍,如下文所示。其中,第三種類型并不依賴于已編碼數(shù)據(jù),而是待編碼數(shù)據(jù)在掃描路徑上的位置。對(duì)于第四種類型,首先在前面已編碼(已解碼)的變換系數(shù)幅度中,統(tǒng)計(jì)出具有某個(gè)特定值的變換系數(shù)幅度出現(xiàn)的總次數(shù),然后根據(jù)這個(gè)數(shù)值來為當(dāng)前變換系數(shù)中的二進(jìn)值確定上下文模型。除了這些基于條件概率的上下文模型,還有固定的概率模型映射到為那些已在常規(guī)模式被編碼的所有二進(jìn)串的,以及先前沒有指定范圍的的上下文模型可以用到的二進(jìn)值索引。 上下文模型的分配與確定通常,每個(gè)句法元素的上下文模型根據(jù)上下文索引偏移量與上下文增量來確定。其中,上下文索引偏移量對(duì)于特定類型片中的特定句法元素是唯一確定的,可以在標(biāo)準(zhǔn)中通過查表獲得。而上下文增量,則是根據(jù)相鄰塊的編碼情況(也就是上下文信息)得出。對(duì)于不同的句法元素,所需相鄰塊的信息不同,但一般包括可用性(如當(dāng)前塊在片的邊緣上,則相鄰快可能由于不是在同一片中而不可用)與同一句法元素的編碼值。通常用于計(jì)算上下文增量的上下文建模函數(shù)為ctx_var_spat=cond_term(A,B),A和B表示當(dāng)前塊的相鄰塊。其中cond_term()表示的是一種函數(shù)關(guān)系,有以下3種具體情況:ctx_var_spat1=cond_term(A) + cond_term(B);ctx_var_spat2=cond_term(A) + 2*cond_term(B);ctx_var_spat3=cond_term(A)另外,對(duì)于利用先前bin值(已編碼值)的上下文建模函數(shù)為ctx_var_bin[k] = cond_term (b1, …, bk1)各句法元素的上下文增量的具體推導(dǎo)過程參見標(biāo)準(zhǔn)。算術(shù)編碼是基于區(qū)間劃分的,CABAC的算術(shù)編碼有以下3個(gè)明顯性質(zhì):概率估計(jì)是對(duì)小概率符號(hào)LPS(Plps)的概率而言的,是通過基于表格中64個(gè)不同概率狀態(tài){Pk|0≤k64}之間的相互轉(zhuǎn)換而實(shí)現(xiàn)的。區(qū)間長(zhǎng)度R通過一組預(yù)先量化的值{Q1,Q2,Q3,Q4}進(jìn)行量化以計(jì)算新的間隔區(qū)間。通過儲(chǔ)存一個(gè)二維表格TabRangeLPS來決定LPS的新的子間隔范圍Rlps,表格包含所有64*4預(yù)計(jì)算值Qi * Pk,通過快速查表這樣就可以免除算術(shù)編碼中的乘法運(yùn)算了。對(duì)近似均勻分布(Plps=)的句法元素,在編碼和譯碼時(shí)選擇旁路方式,可以免除上下文建模,提高編碼速度。 概率估計(jì):每一個(gè)上下文模型估計(jì)的概率可以用一個(gè)有效的有限的特征值集合來表征。對(duì)于CABAC,對(duì)LPS有64個(gè)特征概率值。 伸縮因子,N=64一方面想要獲得快速的自適應(yīng)N要??;另一方面,如果想獲得更加穩(wěn)定更加精確的估計(jì),則需要更大的N。注意在MQ編碼中,在CABAC方法中,不需要對(duì)LPS的概率值進(jìn)行表格化。在算術(shù)編碼中,每一個(gè)概率僅僅用其相關(guān)的索引 作為地址。這樣設(shè)計(jì)的結(jié)果導(dǎo)致,CABAC中的每一個(gè)上下文模型可以有兩個(gè)參數(shù)完全決定:LPS概率當(dāng)前估計(jì)值()和MPS的值(0或者1)。這樣,在CABAC的概率估計(jì)中有128個(gè)不同的狀態(tài),每一個(gè)狀態(tài)用一個(gè)7位整型數(shù)來表達(dá)。實(shí)際上,有一個(gè)狀態(tài)的索引()對(duì)應(yīng)著LPS的最小概率值,但它并沒有被納入CABAC的概率估計(jì)和更新的范圍,這個(gè)值被用作特殊的場(chǎng)合,傳達(dá)特殊的信息。比如,當(dāng)解碼器檢測(cè)到當(dāng)前區(qū)間的劃分依據(jù)是這個(gè)概率值時(shí),認(rèn)為這表示當(dāng)前流的結(jié)束。因此只有126個(gè)有效概率狀態(tài)。另外,有一個(gè)狀態(tài)的索引()對(duì)應(yīng)LPS的最小概率值,它對(duì)應(yīng)的更新值是它自身,當(dāng)MPS連續(xù)出現(xiàn),LPS的概率持續(xù)減小,直到,保持不變。[7]概率估計(jì)指的是上下文的更新,因此只發(fā)生在編碼不同塊中同一句法元素或者其它上下文發(fā)生改變的時(shí)候,它是通過在LPS的64個(gè)概率狀態(tài)之間互相轉(zhuǎn)移而實(shí)現(xiàn)的。對(duì)于一個(gè)給定概率狀態(tài),概率的更新取決于狀態(tài)索引和已經(jīng)編碼的符號(hào)值(MPS or LPS)。更新過程導(dǎo)致一個(gè)新的概率狀態(tài),潛在的LPS概率修正,如果有必要需要修改MPS的值。如果當(dāng)state=0時(shí),輸入的是一個(gè)小概率符號(hào)LPS,那么MPS和LPS就要互換,因?yàn)閟tate=0時(shí),Plps=。在I片中,有: if(decision==MPS) statenext_state_MPS_intra(state) else statenext_state_LPS(state)在其他片中,有: if(decision==MPS) statenext_state_MPS (state) else statenext_state_LPS(state) 算術(shù)編碼器的總體描述CABAC編碼器由兩個(gè)子編碼器組成,一個(gè)用于常規(guī)編碼模式,另一個(gè)稱為旁路編碼器用于符號(hào)的快速編碼。下面對(duì)常規(guī)編碼器具體的編碼過程進(jìn)行描述,編碼過程必須與后面介紹的譯碼過程相匹配(,沒給出具體的編碼流程,下面給出的是可參考的編碼流程,必須與譯碼流程匹配)首先是編碼器的初始化該過程是發(fā)生在編碼片的第一個(gè)宏塊之前,在編碼I_PCM宏塊的數(shù)據(jù)元素pcm_alignment_zero_bit和所有pcm_byte數(shù)據(jù)之后的。此過程中,輸出的是算術(shù)編碼器中的相關(guān)參數(shù),區(qū)間下限codILow設(shè)置為0,區(qū)間長(zhǎng)度codIRange設(shè)置為0x01FE,另外的firstBitFlag設(shè)置為1,計(jì)數(shù)器(用于防止相關(guān)寄存器溢出)bitsOutstangding和symCnt都被設(shè)置為0。編碼決定此過程輸入的是Binval(語法元素經(jīng)過二進(jìn)制化后的值),context_id(上下文模型)和編碼器的環(huán)境codirange,codilow和symCnt,輸出的值是codirange,codilow和symCnt。該過程可以分為4個(gè)步驟(1)通過當(dāng)前編碼器區(qū)間范圍codiRange計(jì)算Qi的索引值i,然后利用狀態(tài)索引(由上下文模型得到)和i進(jìn)行查表得出Rlps的概率。(2)根據(jù)要編碼的符號(hào)是否MPS來更新算術(shù)編碼中的概率區(qū)間下限和概率區(qū)間范圍。(3)上下文模型概率狀態(tài)的更新(參考前文)(4)重整化處理,具體操作在后文給出。 基于查表的算術(shù)編碼器流程重整化處理在區(qū)間劃分結(jié)束后,如果新的區(qū)間范圍R不在合法范圍[28, 29]之內(nèi),那么就需要進(jìn)行重整化操作,輸出1位或多位。其中用到的PutBit程序。 重整化操作流程圖 重整化中的PutBit程序旁路編碼模式為了加快符號(hào)編碼,假設(shè) ,則常規(guī)算術(shù)編碼過程得到了簡(jiǎn)化。首先,概率估計(jì)和更新過程的旁路被建立;其次間隔細(xì)分被執(zhí)行。 旁路編碼流程最后,編碼完片內(nèi)所有宏塊的句法元素后,寫入end_of_slice_flag的標(biāo)志,然后進(jìn)行字節(jié)壓縮,在編碼完一幅圖像的所有元素后,所有輸出的二進(jìn)制位都會(huì)進(jìn)行封裝,成為適合NAL層的傳輸單位。第三章 。在encode_one_frame函數(shù)中,根據(jù)當(dāng)前圖像使用的是幀模式還是場(chǎng)模式,進(jìn)一步選擇field_picture函數(shù)與frame_picture函數(shù)。這兩個(gè)函數(shù)中都使用到code_a_picture函數(shù)來對(duì)編碼一個(gè)圖像。算術(shù)編碼是對(duì)整個(gè)流分配碼字,但考慮到如果有某個(gè)比特丟失,編碼和解碼將會(huì)發(fā)生錯(cuò)位。為了將差錯(cuò)控制在一定的范圍內(nèi),CABAC將片(Slice)作為算術(shù)編碼的生命期。[7]因此,在code_a_picture函數(shù)中。上述函數(shù)均為基于片以上的操作。 而基于片上的操作。 (symbol_mode = CABAC)進(jìn)行分析,其中:。另外,當(dāng)中涉及到的主要函數(shù),包括main函數(shù)、encode_one_frame函數(shù)、frame_picture函數(shù)、code_a_picture函數(shù)、encode_one_slice函數(shù)以及encode_one_macroblock函數(shù),它們的具體流程圖見附錄。 。 encode_one_slice函數(shù)分析int encode_one_slice (int SliceGroupId, Picture *pic)主要功能:編碼一個(gè)片。,對(duì)一個(gè)新片的各種參數(shù)進(jìn)行初始化,同時(shí)給已編碼的片分配空間。其中,并傳遞至緩存,同時(shí)返回碼字的長(zhǎng)度。,設(shè)置各上下文模型的編號(hào)。()來產(chǎn)生一個(gè)片頭,并返回相應(yīng)的長(zhǎng)度(len = start_slice ())。由于編碼長(zhǎng)度的更新,需要對(duì)各部分的碼率控制以及統(tǒng)計(jì)表進(jìn)行相應(yīng)的更新。然后,只要沒有到達(dá)片的末端(end_of_slice = FALSE),都會(huì)不斷對(duì)片中的各個(gè)宏塊進(jìn)行編碼。這個(gè)編碼宏塊的過程,主要使用的函數(shù)包括:()(對(duì)當(dāng)前宏塊進(jìn)行初始化),()(對(duì)當(dāng)前宏塊進(jìn)行編碼),()(把句法元素傳遞到NAL),terminate_macroblock函數(shù)(結(jié)束當(dāng)前宏塊的處理過程)與proceed2nextMacroblock函數(shù)(更新坐標(biāo)與統(tǒng)計(jì)參數(shù)以準(zhǔn)備下一宏塊的處理)。()來結(jié)束一個(gè)片的處理過程(但并不輸出),并且返回已編碼的宏塊個(gè)數(shù)NumberOfCodedMBs。 start_slice函數(shù)分析int start_slice()主要功能:產(chǎn)生片頭。最后。其中,()來初始化預(yù)定義的概率狀態(tài)。 terminate_slice函數(shù)分析int terminate_slice()主要功能:終止一個(gè)片的處理過程。,()進(jìn)行算術(shù)編碼。接著。最后。 。 start_macroblock函數(shù)分析void start_macroblock(int mb_addr, int mb_field)主要功能:對(duì)當(dāng)前宏塊進(jìn)行初始化對(duì)宏塊編碼符號(hào)計(jì)數(shù)器進(jìn)行初始化(currMBcurrSEnr=0)。()來檢查鄰居宏塊是否可用,并在當(dāng)前宏塊中分別設(shè)置對(duì)應(yīng)的指針。重置宏塊的輸入句法元素(currMBmb_type = 0, currMBcbp_blk = 0, currMB cbp = 0, currMBcbp_bits = 0等)。 write_one_macroblock函數(shù)分析void write_one_macroblock (int eos_bit)主要功能:把句法元素傳遞到NAL。如果當(dāng)前宏塊不是片中的第一個(gè)宏塊。把CABAC編碼標(biāo)記cabac_encoding置為1。 ()來編碼宏塊頭。 ()來編碼運(yùn)動(dòng)信息。 ()來編碼當(dāng)前宏塊的塊編碼模式,量化參數(shù)差值與亮度系數(shù)。()來編碼色度系數(shù)。把CABAC編碼標(biāo)記cabac_encoding置為0。 writeMBHeader函數(shù)分析int writeMBHeader (int rdopt)主要功能:編碼宏塊頭。如果是在I片中(imgtype = I_SLICE), CABAC函數(shù)()對(duì)宏塊的自適應(yīng)幀/場(chǎng)模式信息進(jìn)行編碼(currSEvalue1 = currMBmb_field, currSEwriting = writeFieldModeInfo_CABAC)。(currSEvalue1 = MBType2Value (currMB)),()對(duì)當(dāng)前宏塊的宏塊類型進(jìn)行編碼。如果是在其他類型的片中,只要使用CABAC編碼,進(jìn)行如下處理:(mb_type = MBType2Value (currMB), currSEvalue1 = mb_type), CABAC函數(shù)()對(duì)宏塊跳過標(biāo)記進(jìn)行編碼。后面同樣對(duì)宏塊的自適應(yīng)幀/場(chǎng)模式信息以及當(dāng)前宏塊的宏塊類型進(jìn)行編碼,編碼過程與I片中的相同。如果當(dāng)前宏塊的宏塊類型是8*8P宏塊(mb_type = P8x8),:*8塊類型轉(zhuǎn)換成對(duì)應(yīng)的編碼值(currSEvalue1 = B8Mode2Value (currMBb8mode[i], currMBb8pdir[i])), CABAC函數(shù)()對(duì)8*8塊類型信息進(jìn)行編碼。接著,*8塊的幀內(nèi)預(yù)測(cè)模式進(jìn)行編碼(no_bits += writeIntra4x4Modes(1))。其中, Mode_CABAC函數(shù)()來進(jìn)行編碼。如果當(dāng)前宏塊是I4MB或者I16MB(currMBIntraChromaPredModeFlag = 1),(no_bits += writeChromaIntraPredMode())。其中, CABAC函數(shù)()來進(jìn)行編碼。最后返回編碼長(zhǎng)度no_bits。 writeMotionInfo2NAL函數(shù)分析int writeMotionInfo2NAL ()主要功能:編碼運(yùn)動(dòng)信息。如果有多個(gè)參考幀,要對(duì)當(dāng)前宏塊的參考圖像參數(shù)進(jìn)行編碼。其中,(currSEcontext = BType2CtxRef (mode)),()對(duì)當(dāng)前宏塊的參考圖像參數(shù)進(jìn)行編碼。對(duì)前向與后向運(yùn)動(dòng)矢量進(jìn)行編碼。*8塊的運(yùn)動(dòng)矢量。其中,()來進(jìn)行編碼。最后返回編
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1