日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

指数哥伦布编码 java_H.264学习笔记6——指数哥伦布编码

發布時間:2025/4/16 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 指数哥伦布编码 java_H.264学习笔记6——指数哥伦布编码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、哥倫布碼

哥倫布碼就是將編碼對象分能成等間隔的若干區間(Group),每個Group有一個索引值:Group Id。

》對于Group Id采用二元碼編碼;

》對于Group內的編碼對象采用定長碼。

如下圖:

對于編碼對象n:  n = q * m + r = low(n/m) * m + r。其中q = low(n/m),表示取下整,對應是Group Id; 余數r對應是Group內編碼對象。

例如:對于m=5的哥倫布編碼如下表

二、指數哥倫布碼

對于哥倫布碼,編碼對象分成等間隔區間。而對于指數,編碼區間長度是按照指數增長的,如下圖:同樣

》組號采用二元碼編碼

》組內編碼對象采用定長碼編碼

編碼結果如下:

三、K階指數哥倫布碼

在H.264中,使用CABAC需要進行二值化處理,而指數哥倫布編碼就是CABAC的一種二值化處理的方法。k階指數哥倫布編解碼具體過程如下:

A、編碼過程:假設待編碼數字為CodeNum(必須非負整數)

指數哥倫布編碼后的形式為[MZeors][1][Info],MZero表示M個0。

1、將CodeNum以二進制形式表示(若不足k位,前面補0),去掉后面k位(若剛好是k位,去掉k位后得0),將結果(數值)加1,得到二進制數T1;

2、M為二進制數T1的二進制位數減一;

3、然后將第一步中舍去的k位接到T1結尾,就得到[1][Info]。

設[Info]的二進制位數為I,編碼過程也可以如下描述:

[1 Info] 是CodeNum+2^k的二進制表示,MZeros中0的個數M = I - k。

于是就有總的編碼長度CodeLen = M + 1 + I =2M+k+1。

B、解碼過程:

1、讀入連續0,連續0的個數就是M;

2、計算CodeLen = 2M+k+1,得到[1 Info]的位數是 I=CodeLen - M =M+K+1;

3、讀入I位二進制碼字,轉換成10進制,假設為W。由W = CodeNum + 2^k,得CodeNum = W-2^K。

C、示例:

對于 k =0時:CodeNum=3。編碼如下:

二進制表示為11,去掉k=0位后加1得100;

所以M=2;

所以編碼后結果為[MZeros][1][Info] = [MZeros][1 Info] = 00100

解碼如下:

讀入連續2個0,所以M=2;CodeLen=2M+1+k=5;所以需要再讀入3個碼流100,[1 Info]就是100,轉成十進制結果W為4,所以CodeNum = W-2^K=4-1=3;

同樣對于k=0,CodeNum=6時,編碼為:00111;

同樣對于k=3,CodeNum=3時,編碼為:1011;

同樣對于k=3,CodeNum=6時,編碼為:1110;

同樣對于k=3,CodeNum=10時,編碼為:010010;

總結

以上是生活随笔為你收集整理的指数哥伦布编码 java_H.264学习笔记6——指数哥伦布编码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。