一种指数Golomb编码的编码方法和装置的制作方法

文档序号:7510870阅读:231来源:国知局
专利名称:一种指数Golomb编码的编码方法和装置的制作方法
技术领域
本发明属于通信领域,涉及一种编码器方法和装置,具体涉及一种指数Golomb 编码的方法和装置。
背景技术
在通信领域中,为了减少通信传输的数据量,在数据发送端通常要对通信数据进 行信源编码。指数Golomb编码是通信领域中经常用到的一种编码方法,在国际视 频标准H.264和空间通信CCSDS等标准中都有应用。
指数Golomb编码是一种变长编码算法。变长码采用不同长度比特位的码字来 表示数据,对常用的数据釆用较短的码字,对不常用的数据釆用较长的码字。这样做 的好处是提高了存储的效率,降低了传输时对网络带宽的占用。与定长码相比,变长 码提高了编码效率。
指数Golomb编码构成如下对待编码数据Coofe^uii2,设定编码指数阶数&, 编码码字为[M比特的0l[lj[M + ^:比特的/7VFO1,即由M个比特的0加上一个比 特的1再加上信息位/^FO,其中M和/7VFO的计算方法为
M = log2 (O^/eM/w / 2* +1) , /iVFO = CV 6feiVMw — (2M 一 1) x 2* ,
根据定义,可以得到计算编码码字Cbcfe『oroT和码字长度Code丄e/3《幼的方法。 对一个^阶的Golomb编码,编码计算公式如下
Go^fe PFo^/ = GotfeiVw附+ 2、 C"oife丄ewgA = 2 x log2 (Cb^ 7Vw附/ 2* +1) + A: +1
其中CVx/e;W//22表示待编码的数据。
在硬件实现编码的时候,出现了对数运算,通常采用查表的方法,将LUT固化 到rom当中,即将待编码的数据作为地址线,编码结果Code『o/r/和Code丄ei3g幼 放到地址线对应的位置,这样简化了逻辑运算,但是构造的码表需要消耗大量的存储 空间,且当编码的阶数l不相同的时候,码表不能重用。
发明 内 容
本发明的目的在于,提供了一种指数Golomb编码的编码方法和装置,可以对 通信数据进行^阶编码。本发明采用了纯组合逻辑电路求解以2为底的对数的技术,
进而求出Ox/eki2^/7和CocfeWb/^的值,从而对输入数据进行实时的A阶指数
Golomb编码,使编码实时性强、硬件资源消耗少。
一种指数Golomb编码的编码方法,其特征在于,本方法包括下面几个步骤 步骤1:数据输入初始化将待编码的数据CoofeA^m和编码的阶数/c分别输
入到两个寄存器中;
步骤2:将待编码的数据Ox/e7Vu/n向右移动A位之后的数据和数值1输入到 加法器中,输出数据为CocteWum7。运算表达式如下式所示
步骤3:将Ox/e7Vi7/n7输入数据逆序器,得到输出a^e7Vi7/72v4/^/',数据逆序 器作用为将输出的对应比特位数据与输入的对应比特位数据调换;
步骤4:将Coo^W7/7^i3&输入到对数求解单元,求出CoJe;Vu/Hv4i^'的补码
然后与本身的0 0^;\^/7^""做一个逻辑与的运箅,采用组合逻辑电路实现。输出
数据为(9"e7/oM"",且<9"6//0^4 ^/只含有Coc/e7Vi/i22A ^y最右边、即最低位的 1,其余数据位均为0。组合逻辑电路的逻辑表达式如下
其中,CotfeM/w表示Xf Co6fe7V训'"""'按位取反o 步骤5:将Oi3e/7oMi7&输入到一个数据逆序器,输出为<9/^//0" 步骤6:将Oi3e/7W输入通用的2"-w编码器,得到输出M。 步骤7:将输出的M左移一位,得到结果与1 + A:相加,即得到Golomb编码的 码字长度
G ^feZewg决=M《1 +1 + A:,
实现过程可用乘法器和加法器实现。
步骤8:将CooteMm2和A输入到运算逻辑电路中,得到编码码字Ox/e『on/; 运算的逻辑表达式如下式所示
CWe『oW = CotfeiV臓+ (1 fc), 实现过程可用加法器和w - 2"译码器实现。
一种指数Golomb编码的编码装置,包括通用2"-"编码器,其特征在于,还 包括输入数据处理单元、输出数据处理单元和对数求解单元。
输入数据处理单元将从寄存器取出的待编码数据Coo^Vmn和编码阶数A进行 处理,得出求对数运算的真数a^e7Vi7/2^4/3"并输入到对数求解单元中,经过对数 求解单元求以2为底的对数求解,并逆序输出,得到中间结果<9/3e//of,并输入到通 用2"- 编码器,得到输出M; M与待编码数据Coc/e7Vw/72和编码阶数l输入到输 出数据处理单元中,得到编码的码字Cocte『orc/和码字长度Ox/e丄e/2g幼。
所述编码器中输入数据处理单元,包括信号线、数据逆序器和一个通用加法器; 从寄存器中取出待编码的数据OWe;Vw/72和编码的阶数A;信号线将输入的 Ox/e7Vmn对应位置连接,输出右移A位之后的数据,并与1在加法器中相加,结 果作为数据逆序器的输入;数据逆序器中电路信号线将输入和输出数据高低比特位逆 序连接,得到该模块的输出a^eTVw/n^^y。
所述对数求解单元,用来析出输入数据最低比特位的1,对数求解单元的输出为 <9"e//oM"";该单元由一逻辑电路和一数据逆序器组成;逻辑电路将输入本单元的 a^e7Vi7/22^2"作为真数取以2为底的对数Oi3e/Zot4i^/;数据逆序器中电路信号 线将输入和输出数据高低比特位逆序连接,得到逻辑电路输出信号0/3e/ZoM/i"的 逆序输出Oi2e//o"
所述逻辑电路由非门、与门和一加法器连接而成,非门与输入端信号连接,非门 的输出与信号1作为加法器的输入端,加法器的输出与输入信号再经过与门后的输 出信号作为逻辑电路的输出。
所述输出数据计算单元,通过逻辑电路计算码字长度Coc/eZe/2gtft和编码码字 a^e『o/r/; 0^eW^/r/由w-2"译码器和加法器组合的逻辑电路计算得到,将从寄 存器取出的编码阶数^信号输入到w-2"译码器,再将其与从寄存器取出的待编码数 据Ox/eMwn输入到加法器,即可以得到编码码字Cocfe『o/^; 0^e丄e"g幼通过 乘法器和加法器组成的逻辑电路计算得出。
本发明的优点在于
(1) 对数求解的过程中,可以实时的计算出输入数据的以2为底的对数的整数 部分。不需进行査表,节省大量的存储空间;也不需要进行循环的移位比较运算,节 省了运算时间。
(2) 本发明可以适合于^阶哥伦布编码,将A作为一个参数输入到电路中,编 码出结果。不同的阶数可以用相同的逻辑电路,无需查表法那样构造不同的码表,以
至于消耗过多的空间和时间资源。


图1为本发明一种指数Golomb编码的编码装置的+莫块结构图
图2为本发明一种指数Golomb编码的编码方法的系统流程图
图3为本发明0阶Golomb编码计算待求对数数据Coc/e;W^27的电路原理图
图4为本发明一种指数Golomb编码的编码装置计算0/3e/Zot的电路原理图
图5为本发明0阶Golomb编码计算码字a^e『o/^的电路原理图
图6为本发明0阶Golomb编码计算码字长度Ow^e22^力的电路原理图
图7为本发明2阶Golomb编码计箅待求对数数据0 c/e;Vi7/727的电路原理图
图8为本发明2阶Golomb编码计算码字Coc/eH^/W的电路原理图
图9为本发明2阶Golomb编码计箅码字长度Cbc/eLe/3gf/2的电路原理图
具体实施例方式
下面将结合附图和实施例对本发明作进一步的详细说明。
一种指数Golomb编码的编码方法,本方法包括下面几个步骤,如图2所示
(1) 数据输入初始化将待编码的数据a^e7Vu/72和编码的阶数A分别输入到 两个寄存器中;
(2) 分别从寄存器中将待编码的数据Ox/eMm2和编码的阶数A取出到输入数 据处理单元中,将待编码的数据Ox/eiVui22向右移动A位之后的数据和数值为1的 髙电平信号输入到通用加法器中,输出数据为a^e^"/727。运算表达式如(1)式 所示。
CWeM/附l = CWe/V,》A: +1 (1)
其中的移位运算可以直接用信号线将输入和输出数据的对应比特位连接起来,假 设移位结果为re/72pS力/^,如(2)所示
=CW函w >> A: ( 2)
具体方法,将re附p幼z,[i]与CofifeJVww[f + W相连(0 2 / 2 (" - A:) , n表示
a^e;w7/72的总比特数,rewp幼辨[/]表示re/HpS力说的第i'比特,。^^,[/+^表
示Cot/e7ViWH的第/ + A:比特),Te/72pS/z说的高位补0 。然后将re/HpS/z说与1输
入到加法器,输出为C00^;VU/227,完成(1)的计算。
(3) 将a c/e;^7/^输入数据逆序器Anti,得到输出Coo^W//^"",数据逆 序器Anti中,用信号线将将输出的对应比特位数据与输入的对应比特位数据调换, 即将两者的高低位反向连接Ox/e7W//2^的最低位与Cocfe7V^/2^4/3"的最高位相 连,Ox/eiVu/n7的次低位与Coc/eMm^4i^'的次高位相连,直至Ox/eMwnJ的最 高位与ax/e7Vw/72Ar3"的最低位相连。
(4) 将Coa^Vw/a4"&'输入到对数求解单元,求出a^eWw/nJ"^'的补码然 后与本身的Ox/e^w/2^i3"做一个逻辑与的运算,采用组合逻辑电路实现,逻辑电 路由非门、与门和一加法器连接而成,非门与输入端信号连接,非门的输出与信号1 作为加法器的输入端,加法器的输出与输入信号再经过与门后的输出信号作为逻辑电 路的输出。
输出为析出Coa^Vw/2^4""最右边、即最低位1之后的数据<9/3e//ot4"&',组 合逻辑电路的逻辑表达式如下
=CWeiV,乂油'& (CWeiV画^4w" + 1) (3)
Coc/eATui22/kitf'的补码与本身的Ox/eiVumAotf做一个逻辑与的运算,即可以 析出CocteTWM^/7tf最低位1。得到的结果是指含有一位或零位1的数据。当 Ox/e 7Vim^""为0时,输出数据为全0、不含1。
(5) 将0"eZ/ot4i^y输入到数据逆序器中,输出数据为<9i3e//of。该逆序器同 步骤(2)中逆序数据做法相同,用信号线将将输出的对应比特位数据与输入的对应 比特位数据调换。
(6) 编码计算M,将(9/3e/Z^输入通用的2"-w编码器,得到编码结果,输出 数据为A^。这里的2"-w编码器可以用通用的8-3编码器组合实现,组合实现方法为 业界通用方法。
(7) 计算码字长度,从寄存器中取出编码阶数A至输出数据处理单元中,并将(6) 中得到的M做如下的处理
CWeZ^wgA = M《1 +1 + A: (4) 将输出的M通过乘法器与信号量2相乘,使M左移一位,也可以将电路退化为 若干连接的信号线,将输入的M和输出对应的比特位连接起来实现,得到结果在加 法器中与1 + A:相加,即得到Golomb编码的码字长度Ow^e/^幼。
(8) 计算编码结果a^e『o/r/,将从寄存器取出的待编码数据Cot/e7Ww22和A
输入到计算CVx/e『o/r/逻辑电路中可以得到编码结果CocfeH/b/Y/,逻辑表达式如(5) 所示
<formula>formula see original document page 9</formula>
(1 ^可以用一个11-2"译码器实现,k作为译码器的输入,输出就是(1 &)。 将(1 "和6"00^^//72输入到一个加法器,即可以完成(5)的逻辑功能。
一种指数Golomb编码的编码装置,包括通用2"- 编码器、通用"-2"译码器、 输入数据处理单元、对数求解单元和输出数据处理单元。
如图1所示,输入数据处理单元将信号将从寄存器取出的待编码数据a^eWi//22 和编码阶数A进行信号处理,得出求对数运算的真数0^^7\^/2^4/2"并输入到对数 求解单元中,经过对数求解单元求以2为底的对数求解,并逆序输出,得到中间结 果0"e//^,并输入到通用2"-w编码器,得到输出Af; Af与待编码数据O^eTVmn 和编码阶数^输入到输出数据处理单元中,得到编码的码字CbJeH^/t/和码字长度
所述编码器中输入数据处理单元,包括信号线、数据逆序器和一个通用加法器; 从寄存器中取出待编码的数据Ox/eiVm23和编码的阶数A;信号线将输入的 Ox/eTVw/22对应位置连接,输出移位后右移A位之后的数据,并与l在加法器中相 加,结果作为数据逆序器的输入;数据逆序器中电路信号线将输入和输出数据高低比 特位逆序连接,得到该模块的输出Cocfe7Wm^/3tf,作为求对数运算的真数。
所述对数求解单元,用来析出输入数据最低比特位的1,对数求解单元的输出为 0/^//oM"&。由一逻辑电路和一数据逆序器组成;逻辑电路将输入本单元的 Ox/eM7/^i^'作为真数,并取以2为底的对数Oi3eZ/oMi2";数据逆序器中电路 信号线将输入和输出数据高低比特位逆序连接,即输入数据最高比特与输出数据最低 比特连接,输入数据次高比特与输出数据次高比特连接,直至得到逻辑电路输出信号 0/2e/feM/3&的逆序输出<9"e//of。
如图4所示,所述逻辑电路由非门、与门和一加法器连接而成,非门与输入端 信号连接,非门的输出与信号l作为加法器的输入端,这样就完成了求补码的运算; 加法器的输出与输入信号再经过与门后的输出信号作为逻辑电路的输出。
所述输出数据处理单元,通过逻辑电路计算出码字以及码字长度;可以由乘法器、 "-2"译码器和加法器混合连接而成;从寄存器取出的编码阶数k信号在加法器中与
1相加输出到加法器中,并与所述2"-"编码器的输出M与信号量2经过乘法器后, 即M左移一位的结果在另一加法器中相加,输出信号为码字长度a^e丄ei^tfo;对 于编码的码字,可以将从寄存器取出的编码阶数介信号输入到一个"-2"译码器,将 高电平信号1左移A位输出,输出即为24,再将其与从寄存器取出的待编码数据 0 a^Vu/n输入到一加法器,即可以得到编码码字Ox/eH/b/r/。 实施例 1 :
本实施实例以^ = 0为例,即O阶Golomb编码,说明本发明的应用
输入数据处理单元,由输入的数据Cocte7Wy/72得到待求对数数据CodeMz/HL 此时1^=0,公式(1)退化为
CWe油ml = CWeY, + 1 (6)
具体可以由通用加法器实现,逻辑电路图如图3所示。
得到Ox/e^l7/227之后,将0 O^Vi7/737输入逆序器,输出为Coo^Vw/2^/2tf; 即将0 cfe;Vw/227高低位逆序输出,用信号线将将输出的对应比特位数据与输入的对 应比特位数据调换,Ow^Vu/n7的最低位与Coafe7WM2^2"的最高位相连, CocteMm^的次低位与Coc/eiVu/r^k^的次高位相连,直至CocteMw^的最高位 与Coc/eM7/nA tf的最低位相连。将处理结果0^e7V^/rL4x^/输出给对数求解单元。
对数求解单元,将CoaWVim^4""通过(7)式所表示运算电路,即可以析出最 低比特位的1。
Owe/foL4油'=CWeM/附J"ri & (CocfeW画」W + 1) (7 )
具体实现逻辑电路如图4所示。(7)式得到的是Coc/e;vu;22/^"的对数的整数
部分,要得到Coc/eiWHH7的对数整数部分,需要将(9"6//0^/^/高低位逆序,得
到(9/2e//W。具体做法也是用逆序器中的信号线高低位直接反向连接,将输出的对应
比特位数据与输入的对应比特位数据调换即可。
2"-M编码器单元,输入为0/3e/fo"输出为M,具体可以用通用的8-3编码器
组合实现。
输出数据处理单元,计算出码字Coc/eH/brc/和码字长度Ow^ei2g幼。其中编 码码字CooteH/bn/由(8)式得到
Code『oni = CWeiV訓+ 1 (8 )
具体逻辑电路由一个加法器实现,如图5所示,"-2"译码器对从寄存器取出的
编码阶数O进行编码,将编码的结果与从寄存器取出的待编码数据Coc/e;V^/72输入 到加法器,得到码字CVxfeH^/"(i。
而码字长度由(9)式得到
h = JW"《1 +1 (9)
具体逻辑电路如图6所示,2"-M编码器的输出AT与信号量2经过乘法器后所得 输出在加法器中与高电平信号量1相加,信号M移位也可以用电路信号线直接连接, 即CocfeAe"g幼的第0位连接到表示1的高电平,CoofeAe"^力的第y位与M的第 /-1位相连。 实施例2 :
本实施实例以^ = 2为例,即2阶Golomb编码。
输入数据处理单元,由输入的数据Coofe;Wm2得到待求对数数据CVx/e7Vu/722, a^e7V"/72总共有"个比特。此时i^2,公式(1)变为
CWW,l = CWeiVww》2 + 1 (10)
其中,移位运算只需要对应的比特位用信号线连接即可,加法由通用加法器实现, 逻辑电路图如图7所示。其中CotfeV,[": 2]表示,0 t/e7Vu/n的第"到第2位。
得到Coc eATun^之后,将Coc/eTVu/nJ输入逆序器,即将Cocfe7Vim^高低位
反过来,将输出的对应比特位数据与输入的对应比特位数据调换即可。将结果 Ox/e;Vi7/nAr2tf输出给对数求解单元。
对数求解单元,2"-"编码器单元,与O阶Golomb编码装置相同。
输出数据处理单元,计算出码字a^e『o/r/和码字长度Ox/eZe/^&。其中,
码字由(11)式得到
CWe丄e"g决=M《l + 3 (11)
具体逻辑电路如图8所示,2" -,i编码器的输出Af与信号量2经过乘法器后所得 输出在加法器中与高电平信号量1相加,信号M移位也可以用电路信号线直接连接, 即Cocte£ 2^/7的第0位连接到表示1的高电平,a^eZe"^力的第/位与M的第 /-1位相连。
而码字长度由(12)式得到
C曲HW = Co6feW, + (1《2) (12)
具体逻辑电路如图9所示,"-2"译码器对从寄存器取出的编码阶数2进行编码, 将编码的结果22与从寄存器取出的待编码数据Coc/eTViWH输入到加法器,得到码字
权利要求
1、一种指数Golomb编码的编码方法,其特征在于,本方法包括下面几个步骤步骤一数据输入初始化将待编码的数据CodeNum和编码的阶数k分别输入到两个寄存器中;步骤二将待编码的数据CodeNum向右移动k位之后的数据和数值1输入到加法器中,输出数据为CodeNum1;运算表达式如下式所示CodeNum1=CodeNum>>k+1;步骤三将CodeNum1输入数据逆序器,得到输出CodeNumAnti,数据逆序器将输出的对应比特位数据与输入的对应比特位数据调换;步骤四将CodeNumAnti输入到对数求解单元,求出CodeNumAnti的补码然后与本身的CodeNumAnti做一个逻辑与的运算,采用组合逻辑电路实现;输出为析出CodeNumAnti最右边;即最低位1之后的数据OneHotAnti,组合逻辑电路的逻辑表达式如下步骤五将OneHotAnti输入到一个数据逆序器,输出为OneHot;步骤六将OneHot输入通用的2n-n编码器,得到输出M;步骤七将输出的M左移一位,得到结果与1+k相加,即得到Golomb编码的码字长度CodeLength=M<<1+1+k,实现过程可用乘法器和加法器实现;步骤8将CodeNum和k输入到运算逻辑电路中,得到编码码字CodeWord;运算的逻辑表达式如下式所示CodeWord=CodeNum+(1<<k),实现过程可用加法器和n-2n译码器实现。
2、 一种应用于权利要求1所述一种指数Golomb编码的编码方法的装置,包括通 用2"-"编码器,其特征在于,还包括输入数据处理单元,对数求解单元和输出数 据处理单元; 输入数据处理单元将从寄存器取出的待编码数据Coc/eWi/zn和编码阶数A进行 处理,得出求对数运算的真数Ox/eiWm^4i3"并输入到对数求解单元中,经过对数 求解单元求以2为底的对数求解,并逆序输出,得到中间结果(9"e//0^,并输入到通 用2"-"编码器,得到输出AT; M与待编码数据Ox/e7Vw72、高电平信号1、对数求 解单元的结果C^ei/ot和编码阶数A输入到输出数据处理单元中,得到编码的码字 Ox/eH/b/r/和码字长度0 (ieAei2^A。
3、 根据权利要求2所述一种指数Golomb编码的编码装置,其特征在于所述编码 器中输入数据处理单元,包括信号线、数据逆序器和一个通用加法器;从寄存器中取 出待编码的数据Coc/e^i7/n和编码的阶数i^信号线将输入的Cod/eA^/n对应位置 连接,输出移位后右移A位之后的数据,并与l在加法器中相加,结果作为数据逆 序器的输入;数据逆序器中电路信号线将输入和输出数据高低比特位反向连接,得到 该模块的输出Coc/e7W7/z^4/^/。
4、 根据权利要求2所述一种指数Golomb编码的编码装置,其特征在于所述对数 求解单元,用来析出输入数据最低比特位的1,该单元输出为信号0/2e/foM/2tf;由 一逻辑电路和一数据逆序器组成;逻辑电路将输入本单元的Ox/e^iM^""作为真数取以2为底的对数0/^//0^73&数据逆序器中电路信号线将输入和输出数据高低比特位反向连接,得到逻辑电路输出信号0/^//064"&的逆序输出(9"e//^。
5、 根据权利要求4所述一种指数Golomb编码的编码装置,其特征在于所述逻辑 电路由非门、与门和加法器连接而成,非门与输入端信号连接,非门的输出与信号1 作为加法器的输入端,得到输入信号的补码;加法器的输出与输入信号再经过与门后 的输出信号作为逻辑电路的输出。
6、 根据权利要求2所述一种指数Golomb编码的编码装置,其特征在于所述输出 数据计算单元,Ox/e『orc/由w-2"译码器和加法器组合的逻辑电路计算得到;将从 寄存器取出的编码阶数A信号输入到M-2"译码器,即将高电平信号1左移A位输出, 再将其与从寄存器取出的待编码数据Coo^Vim2输入到加法器,即可以得到编码码 字CWe,/t/。
全文摘要
本发明公开了一种指数Golomb编码的编码方法和装置,编码时,将待编码的数据CodeNum和编码的阶数k输入编码装置,可以对通信数据进行k阶编码。本发明采用了纯组合逻辑电路求解以2为底的对数的技术,进而求出码字长度CodeLength和编码码字CodeWord的值,从而对输入数据进行实时的k阶哥伦布编码。编码过程实时性强、硬件资源消耗少,取得了编码速度快的效果。
文档编号H03M7/40GK101114833SQ20071011997
公开日2008年1月30日 申请日期2007年8月6日 优先权日2007年8月6日
发明者刘荣科, 赖大彧 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1