• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Dict.CN 在線詞典, 英語學(xué)習(xí), 在線翻譯

            學(xué)海苦作舟,書山勤為徑

            留下點(diǎn)回憶

            常用鏈接

            統(tǒng)計(jì)

            積分與排名

            Denoise

            English study

            Web技術(shù)

            數(shù)據(jù)壓縮

            一些連接

            最新評論

            QM編碼器規(guī)則簡單介紹

            QM 編碼器原理上是一種算術(shù)編碼器,但其將每個(gè)輸入的符號作單個(gè)的為來輸入(二進(jìn)制位要么是 0 ,要么是 1 ),那么符號要么是 MPS (大概率符號),要么就是 LPS (小概率符號)。 QM 編碼器需要一個(gè)模型來首先預(yù)測下一位是 0 還是 1 ,然后再輸入該位來實(shí)際分類。

            統(tǒng)計(jì)模型是用來計(jì)算 LPS 的概率 Qe 的,那么 MPS 的概率就是 1-Qe Qe LPS 的概率,通常情況 Qe 是小于等于 0.5 的;一般是將 LPS 的區(qū)間放在 MPS 區(qū)間的上邊; A 表示整個(gè)區(qū)間。如下圖:

            QM coder.JPG


            QM 編碼器中,使用符號 C code )表示輸出符號串。 QM 編碼器輸出的時(shí)候比普通的算術(shù)編碼器簡單,僅僅需要將 MPS LPS 的區(qū)間下限增加到 C 中,因?yàn)檫@里之后兩個(gè)符號。一般 QM 的編碼規(guī)則是:

            如果遇到一個(gè) MPS C = C+0 A 變成原來 MPS 的子區(qū)間了; A = A * 1-Qe

            如果碰到一個(gè) LPS ,需要將 LPS 區(qū)間的下限( A* 1-Qe )添加到 C 中;這個(gè)時(shí)候 A 變成原來 LPS 的子區(qū)間, A = A*Qe

            具體規(guī)則如:

            if MPS

            {

            ?????? C 不變;

            ?????? A = A* 1-Qe );

            }

            else //LPS

            {

            ?????? C = C+A*(1-Qe);

            ?????? A = A*Qe;

            }

            ?

            重定標(biāo)之后的規(guī)則:

            為了使用加法、減法和移位來模擬乘除,需要在 A 小于 0.75 的時(shí)候進(jìn)行重定標(biāo),保證 A 1 比較接近而使用加、減的操作乘法差不大。這里使用 0 65536 之間的整數(shù)( 16 進(jìn)制的 0x0000-0x10000 )表示小數(shù) 0 1.5

            那么上面的規(guī)則變?yōu)椋?/span>

            如果遇到一個(gè) MPS C 不變, A 變成 MPS 的子區(qū)間; A = A-Qe (模擬乘法);但如果 A 小于 0.75(0x8000) 時(shí),需要對 A 重定標(biāo), A 加倍, C 也加倍,直到 A 大于 0X8000 為止。

            如果遇到一個(gè) LPS C 變?yōu)?/span> C+A-Qe (模擬原來的乘法); A 變成 Qe (模擬乘法);由于 LPS 的區(qū)間始終小于等于 0.5 也就是小于 0.75 ,從而肯定要重定標(biāo) A C ,同上。

            簡單表示為:

            if(MPS)

            {

            ?????? A = A-Qe;

            ?????? while(A<0X8000)

            ?????? {

            ????????????? A <<=1;

            ????????????? C <<=1;

            }

            }

            else//LPS

            {

            ?????? C = C+A-Qe;

            ?????? A = Qe;

            ?????? While(A<0X8000)

            ?????? {

            ????????????? A<<=1;

            ????????????? A<<=1;

            }

            }

            ?

            交換區(qū)間之后的規(guī)則:

            由于使用加、減和移位來模擬乘法,導(dǎo)致有的時(shí)候 LPS 的區(qū)鍵會大于 MPS 的區(qū)間,這是也 QM 編碼器的初始條件相違背的;因此為了運(yùn)算能夠繼續(xù)進(jìn)行,這里對 LPS MPS 的區(qū)間進(jìn)行交換,從而保證運(yùn)算規(guī)則仍然可以進(jìn)行。這個(gè)時(shí)候的上面規(guī)則是:

            如果遇到一個(gè) MPS 后; C 仍然不變,首先將 A 設(shè)置為 MPS 的子區(qū)間( A = A-Qe )。這個(gè)時(shí)候需要檢查是否需要重定標(biāo),檢查原則同上,判斷 A 是否小于 0X8000 ;如果不需要重定標(biāo)表示 A 大于 0X8000 ,那么這個(gè)時(shí)候 MPS 肯定大于 LPS ,不需要交換區(qū)間;如果需要重定標(biāo),檢查 A 是否小于 LPS 的區(qū)間 Qe ,如果小,表示需要交換區(qū)間;交換區(qū)間相當(dāng)于取 LPS 的子區(qū)間,那么這個(gè)時(shí)候需要將 LPS 的區(qū)間下限輸出到 C 中,從而在解碼的時(shí)候做同樣的操作。

            如果遇到一個(gè) LPS 后;首先將 A 先設(shè)置為 MPS 的子區(qū)間( A = A-Qe )。按前面的推算,應(yīng)該是 A 設(shè)置為 LPS 的子區(qū)間,所以這里增加了一個(gè)判斷 A 是否大于 LPS 的子區(qū)間,如果大表示我們?nèi)〉氖且粋€(gè) MPS 的區(qū)間,和當(dāng)前是 LPS 的不相符,因此應(yīng)該取一個(gè)區(qū)間較小的值,也就是 LPS ,那么這個(gè)時(shí)候需要將 LPS 的下限輸入到 C 中,同時(shí) A 等于 Qe 。但如果 A 小于 LPS 的子區(qū)間,表示 MPS 的區(qū)間比 LPS 的區(qū)間小,那么如果去 LPS 表示我們?nèi)×艘粋€(gè)大概率符號的區(qū)間,那么和輸入一個(gè) LPS 的情況不相符合,所以這種情況下,就去 A MPS 的區(qū)間( A-Qe ),從而其下限是 0 ,那么 C 就不改變了。不管發(fā)生什么情況,如果輸入一個(gè) LPS 符號,總是要重標(biāo)的,同前面,直到 A>0x8000 為止。

            簡單描述如下:

            if(MPS)

            {

            ?????? C = C+0;

            ?????? A = A-Qe;

            ?????? If(A<0X8000)

            ?????? {

            ????????????? if(A<Qe)

            ????????????? {

            ???????????????????? C = C+A;

            ???????????????????? A = Qe;

            }

            }

            while(A<0X8000)

            {

            ?????? A <<=1;

            ?????? C<<=1;

            };

            }

            else//LPS

            {

            ?????? A = A-Qe;

            ?????? If(A>=Qe)

            ?????? {

            ????????????? C = C+A;

            ????????????? A = Qe;

            }

            while(A<0X8000)

            {

            ?????? A <<=1;

            ?????? C<< =1;

            };

            }

            posted on 2006-08-12 23:41 笨笨 閱讀(3663) 評論(1)  編輯 收藏 引用 所屬分類: 壓縮算法

            評論

            # re: QM編碼器規(guī)則簡單介紹[未登錄] 2008-11-21 15:53 111

            謝謝了。本來我以及離開這個(gè)網(wǎng)頁了,不過又后來說聲謝謝,qm編碼器正是h264的cabac編碼的一部分。  回復(fù)  更多評論   

            午夜精品久久久久久久| 国产精品热久久毛片| 久久www免费人成看片| 热re99久久6国产精品免费| 热久久这里只有精品| 久久无码AV中文出轨人妻| 精品999久久久久久中文字幕| 老司机午夜网站国内精品久久久久久久久| 欧美色综合久久久久久| www性久久久com| 日韩人妻无码一区二区三区久久99| 久久91精品久久91综合| 久久婷婷五月综合成人D啪| 91精品婷婷国产综合久久 | 国产成人精品久久一区二区三区av| 久久99精品久久久久婷婷| 久久久久久a亚洲欧洲aⅴ| 国产精品久久新婚兰兰| 久久激情五月丁香伊人| 无码AV波多野结衣久久| 精品熟女少妇AV免费久久| 久久精品国产99久久丝袜| 香蕉久久一区二区不卡无毒影院| 亚洲精品国精品久久99热一| 日韩精品久久久久久久电影| 99久久精品无码一区二区毛片| 伊人久久大香线焦AV综合影院| 亚洲国产精品成人久久蜜臀| 国产999精品久久久久久| 91秦先生久久久久久久| 久久综合综合久久狠狠狠97色88| 精品久久久无码人妻中文字幕豆芽| 伊人久久大香线焦AV综合影院| 久久综合色老色| 亚洲中文字幕无码久久2020| 久久婷婷国产剧情内射白浆| 亚洲国产精品久久| 久久精品国产只有精品66 | 理论片午午伦夜理片久久| 欧美日韩成人精品久久久免费看| 青青草原综合久久大伊人导航 |