首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于inter解码的colmv数据无损压缩方法及系统 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:福州瑞芯微电子股份有限公司

摘要:本发明提供一种基于inter解码的colmv数据无损压缩方法,将待压缩的colmv数据分为一个个独立压缩的压缩段,每个压缩段根据M种压缩模式分别分割成一个个压缩单元,保持压缩段首个数据不变,然后依次求出相邻数据的差值,再求出每个压缩单元差值中的最大绝对值;用最大绝对值的位数+1求出每个压缩单元各种压缩模式的总bit数;对比所有压缩模式最后得到的总bit数的大小,选出总bit数最小的相应的压缩模式来作为对应压缩段的最后压缩模式,若某些压缩段在压缩后比不压缩还大时,则单独这个压缩单元复制原值。本发明采用了无损压缩算法和差分分段压缩法,并且结合colmv数据的特点,能更进一步的提高压缩率,使压缩后得到的码流大多为原来的30%以内。

主权项:1.一种基于inter解码的colmv数据无损压缩方法,其特征在于:包括:步骤S11、在待压缩的colmv数据中,将每2n个数据作为一个独立压缩的压缩段,每个压缩段根据M种压缩模式分别分割成一个个压缩单元,其中,n为自然数,M由用户自行设定;步骤S12、保持压缩段首个数据不变,然后依次求出相邻数据的差值,再求出每个压缩单元差值中的最大绝对值;步骤S13、用最大绝对值的位数+1作为该压缩单元的子段码长,再根据这个子段码长把后续压缩单元的差值逐一罗列出来;步骤S14、分别求出每个压缩单元各种压缩模式的总bit数;步骤S15、对比所有压缩模式最后得到的总bit数的大小,选出总bit数最小的相应的压缩模式来作为对应压缩段的最后压缩模式,若某些压缩段在压缩后比不压缩还大时,则单独这个压缩单元复制原值。

全文数据:基于inter解码的colmv数据无损压缩方法及系统技术领域本发明涉及inter帧间解码去读写colmv协助帧的参考信息数据方法,特别涉及一种基于inter解码的colmv数据读写时的无损压缩方法。背景技术现有硬件结构inter帧间解码去读写colmv协助帧的参考信息数据时,是没有经过压缩处理的,colmv数据是直接存储到ddr内。由以下表格可以看出,colmv占用内存带宽是挺大的,尤其是h264高度压缩数字视频编解码器标准的占比更大,以420为例,求得占比读写双路达到66.67%。发明内容本发明要解决的技术问题,在于提供一种基于inter解码的colmv数据无损压缩方法和系统,采用了无损压缩算法,主要是差分分段压缩法,并且结合colmv数据的特点,能更进一步的提高压缩率。本发明方法是这样实现的:一种基于inter解码的colmv无损压缩方法,包括:步骤S11、在待压缩的colmv数据中,将每2n个数据作为一个独立压缩的压缩段,每个压缩段根据M种压缩模式分别分割成一个个压缩单元,其中,n为自然数,M由用户自行设定;步骤S12、保持压缩段首个数据不变,然后依次求出相邻数据的差值,再求出每个压缩单元差值中的最大绝对值;步骤S13、用最大绝对值的位数+1作为该压缩单元的子段码长,再根据这个子段码长把后续压缩单元的差值逐一罗列出来;步骤S14、分别求出每个压缩单元各种压缩模式的总bit数;步骤S15、对比所有压缩模式最后得到的总bit数的大小,选出总bit数最小的相应的压缩模式来作为对应压缩段的最后压缩模式,若某些压缩段在压缩后比不压缩还大时,则单独这个压缩单元复制原值。进一步的,当2n的取值为64且M=4时,则所述4种模式分别为:Mode0:分8个压缩单元,每个压缩单元8个数据;Mode1:分4个压缩单元,每个压缩单元16个数据;Mode2:分2个压缩单元,每个压缩单元32个数据;Mode3:分1个压缩单元,这个压缩单元64个数据。进一步的,所述步骤S13中,所述子段码长的有效值为0和整数2~15;当子段码长为1时,压缩码流主体是相应压缩单元的原始数据;当子段码长为整数2~15时,压缩码流主体则是按顺序将各个差值的按固定位宽,且以“差值的符号位+差值的绝对值”组合拼凑,差值的符号位为0,表示该差值为正数;差值的符号位为1,表示该差值为负数。进一步的,所述步骤S13中,所述总bit数为某一压缩模式下所述“差值的符号位+差值的绝对值”的位宽的bit数的总和。本发明系统是这样实现的:一种基于inter解码的colmv无损压缩系统,包括编码器、第一临时存储器、DDR、第二临时存储器以及解码器;所述编码器将待压缩的colmv数据按权利要求1至4任一项方法压缩后的码流存储到第一所述临时存储器中,达到一定条件后再写入到DDR中;所述解码器解压时再从DDR读出码流放在所述第二临时存储器中,再进行解码。进一步的,所述解码器解压时,是将存储在临时存储器内的数据按顺序读出,再参照如下表格,解析出每个压缩段的压缩模式mode_sel,再解析出压缩单元的子段码长sub_bit_len,解析出压缩段的第一个原始数据,然后根据子段码长sub_bit_len解析出压缩码流主体bit_stream,得出各个差值相应的符号位和绝对值,再计算出原值,而当子段码长sub_bit_len=1时,则表示当前压缩单元没进行压缩,码流中的是原始数值;本发明取得的有益效果在于:本发明采用了无损压缩算法的差分分段压缩法,并且结合colmv数据的特点,能更进一步的提高压缩率。当图像数据的相关性越大即相邻数据数值比较接近,求出来的差值就会越小,压缩效果就会越好。因colmv的数据的特点是相关性很大,所以很适合采用本发明这种方案,压缩后得到的码流大多为原来的30%以内,在很大程度上缓解了内存读取带宽的压力。附图说明下面参照附图结合实施例对本发明作进一步的说明。图1为本发明方法执行流程图。图2为本发明系统的结构框图。图3为本发明系统的编码器的内部模块框图。图4为本发明系统的编码器的执行流程示意图。图5为本发明系统的解码器的内部模块框图。图6为本发明系统的解码器的执行流程示意图。图7为本发明方法和系统的压缩占比示意图。具体实施方式请参阅图1所示,本发明的基于inter解码的colmv无损压缩方法,采用变长码无损压缩算法,这里的“变长码”是指每段的码长是不固定的,包括:步骤S11、在待压缩的colmv数据中,将每2n一个段的数据个数,可根据需要来调整,在应用过程中,可以针对需要压缩的数据源的特性进行折衷选择个数据作为一个独立压缩的压缩段,每个压缩段根据M种压缩模式分别分割成一个个压缩单元,其中,n为自然数,M由用户自行设定。步骤S12、保持压缩段首个数据不变,然后依次求出相邻数据的差值,再求出每个压缩单元差值中的最大绝对值。步骤S13、用最大绝对值的位数+1作为该压缩单元的子段码长,再根据这个子段码长把后续压缩单元的差值逐一罗列出来;所述子段码长的有效值为0和整数2~15;当子段码长为1时,压缩码流主体是相应压缩单元的原始数据;当子段码长为整数2~15时,压缩码流主体则是按顺序将各个差值的按固定位宽,且以“差值的符号位+差值的绝对值”组合拼凑,差值的符号位为0,表示该差值为正数;差值的符号位为1,表示该差值为负数。步骤S14、分别求出每个压缩单元各种压缩模式的总bit数;所述总bit数为某一压缩模式下所述“差值的符号位+差值的绝对值”的位宽的bit数的总和。步骤S15、对比所有压缩模式最后得到的总bit数的大小,选出总bit数最小的相应的压缩模式来作为对应压缩段的最后压缩模式,若某些压缩段在压缩后比不压缩还大时,则单独这个压缩单元复制原值。举例说明:以64个colmv数据为一个压缩段segment为例,方便tiletile:将图像分块,一般是纵向分块,tile必须是长方形或sliceslice:以ctu为单元划片,将图像分成多个片有划分时读取数据。然后将每个压缩段再根据4种模式分别分割成一个个压缩单元,即M=4,所述4种模式分别为:Mode0:分8个压缩单元,每个压缩单元8个数据;Mode1:分4个压缩单元,每个压缩单元16个数据;Mode2:分2个压缩单元,每个压缩单元32个数据;Mode3:分1个压缩单元,这个压缩单元64个数据。如下表所示:一个压缩段有64个数据,变长码无损压缩算法解析如下:Step1:提取压缩段的数据源A:OrgA0,OrgA1,OrgA2,...,OrgA63;假设数据流假设数据源最大位宽为16位为:1100,1090,1082,1081,1085,1079,1082,1084,1086,1089,1090,1085,1080,1083,1088,1086,...Step2:求差值diffA:OrgA0,diffA1,diffA2,...,diffA63;第一个数据OrgA0不变,diffA1=OrgA1-OrgA0,以此类推,得出:1100,-10,-8,-1,4,-6,3,2,2,3,1,-5,-5,3,5,-2,...Step3:分别求出各种模式中各个压缩单元中差值diffA的最大绝对值:abs_mN:M为0~3,这里表示各种模式M,压缩单元中的最大绝对值abs_max:mode0:以8个数据为一个压缩单元;abs_m0[0]=max{abs{diffA1,...,diffA7}};第一个数据OrgA0不计,只有7个数;abs_m0[1]=max{abs{diffA8,...,diffA15}};8个数;abs_m0[2]=max{abs{diffA16,...,diffA23}};abs_m0[3]=max{abs{diffA24,...,diffA31}};abs_m0[4]=max{abs{diffA32,...,diffA39}};abs_m0[5]=max{abs{diffA40,...,diffA47}};abs_m0[6]=max{abs{diffA48,...,diffA55}};abs_m0[7]=max{abs{diffA56,...,diffA63}};例子中得到:abs_m0[0]=max{abs{-10,-8,-1,4,-6,3,2}}=10;子段码长sub_bit_len=log210+1=4+1=5bit;abs_m0[1]=max{abs{2,3,1,-5,-5,3,5,-2}}=5;子段码长sub_bit_len=log25+1=3+1=4bit;...mode1:以16个数据为一个压缩单元abs_m1[0]=max{abs{diffA1,...,diffA15}};abs_m1[1]=max{abs{diffA16,..,diffA31}};abs_m1[2]=max{abs{diffA32,...,diffA47}};abs_m1[3]=max{abs{diffA48,...,diffA63}};例子中得到:abs_m1[0]=max{abs{-10,-8,-1,4,-6,3,2,2,3,1,-5,-5,3,5,-2}}=10;子段码长sub_bit_len=log210+1=4+1=5bit;...mode2:以32个数据为一个压缩单元abs_m2[0]=max{abs{diffA1,...,diffA31}};abs_m2[1]=max{abs{diffA32,...,diffA63}};mode3:以64个数据为一个压缩单元abs_m3[0]=max{abs{diffA1,...,diffA63}};Step4:分别求出各种模式的总bit数。该表格显示出压缩后的码流拼凑格式,计算各种模式的总bit数时,也是按照这个码流格式要求来统计的。表中的Mode_sel用来表示4种模式中的哪一种;sub_bit_len为子段码长,有效值为0或[2:15];当sub_bit_len为0时:表示该压缩单元的所有数据的值都一样,相邻数据的差值为0,这种情况不会出现。当sub_bit_len为1的情况,因为当差值非0时,差值的最大绝对值位数就大于0位了,且还需要再加上一位符号位的,这种情况下sub_bit_len至少为2位,其含义表示如下情况:当该压缩单元的最大绝对值=15位,再加上一位的符号位,则该压缩单元压缩就没优势了,此时的压缩码流主体bit_stream就是该压缩单元的原始数据了。Bit_stream为压缩码流主体,sub_bit_len为1时,是相应压缩单元的原始数据,而sub_bit_len为其他值时,则是按顺序将各个差值的按固定位宽,且以“差值的符号位+差值的绝对值”组合拼凑。其中,差值的符号位为0,表示该差值为正数;差值的符号位为1,表示该差值为负数。mode0:len0=2+4+16+7*log2abs_m0[0]+1;+4+8*log2abs_m0[1]+1;+4+8*log2abs_m0[2]+1;+4+8*log2abs_m0[3]+1;+4+8*log2abs_m0[4]+1;+4+8*log2abs_m0[5]+1;+4+8*log2abs_m0[6]+1;+4+8*log2abs_m0[7]+1;第一个式中:2+4+16中,“2”表示model_sel的2bit,“4”表示sub_bit_len的4bit,“16”表示orgA0的16bit,7*log2abs_m0[0]+1解析如下:式中的“7”是第一压缩单元要扣除第一个原始数据,mode0一个压缩单元是8个数据,扣除第一个原始数据,剩下7个后面的几个式中相应位置均为“8”,式中的“log2abs_m0[0]”是指mode0中第一压缩单元最大绝对值的有效位数,而“log2abs_m0[0]+1”:中的“+1”是1位差值的符号位,每个差值的符号位也是要放在压缩码流中的,这样解压时才能还原出原值。以此类推,即可算出所有压缩模式最后得到的总bit数:mode1:len1=2+4+16+15*log2abs_m1[0]+1+4+16*log2abs_m1[1]+1+4+16*log2abs_m1[2]+1+4+16*log2abs_m1[3]+1;mode2:len2=2+4+16+31*log2abs_m2[0]+1+4+32*log2abs_m2[1]+1;mode3:len3=2+4+16+63*log2abs_m3[0]+1;Step5:对比所有压缩模式最后得到的总bit数len0,len1,len2,len3的大小,选出这4个压缩模式中最小的值相对应的模式来作为压缩段的最后压缩模式。假设上面的例子选中的是压缩模式mode0,则压缩码流如下:{2’d0,4’d5,16’d1100,{1’d1,4’d10},{1’d1,4’d8},{1’d1,4’d1},{1’d0,4’d4},{1’d1,4’d6},{1’d0,4’d3},{1’d0,4’d2},4’d4,{1’d0,3’d2},{1’d0,3’d3},{1’d0,3’d1},{1’d1,3’d5},{1’d1,3’d5},{1’d0,3’d3},{1’d0,3’d5},{1’d1,3’d2},...}若某些压缩单元压缩后,会比不压缩还大,则单独这个压缩单元就复制原值。假设log2abs_m0[2]+1=16位,那说明这个8像素的压缩单元,相邻的数据相差太大了,例如:0,65535,0,1,2,3,4,5=差值为:0,65535,-65535,1,1,1,1,1=绝对值:0,65535,65535,1,1,1,1,1log2abs_m0[2]+1=17bit,反而比不压缩还大,这种情况下,就将sub_bit_len赋值为1。其中Step2是求相邻两个数据的差值,若数据源OrgAN的相关性比较大,即相邻的OrgAN数值比较接近时,通过式子diffAN=OrgAN-OrgAN-1,得到的diffAN的绝对值也会比较小,从而得出相应的sub_bit_len也会比较小,压缩段统计出来的总bit数也会比较少,压缩效果就更好。基于本发明上述方法,本发明还提供一种基于inter解码的colmv无损压缩系统,如图2所示,包括编码器、第一临时存储器mem0、DDR、第二临时存储器mem1以及解码器;所述编码器将待压缩的colmv数据按本发明上述方法压缩后的码流存储到第一所述临时存储器中,达到一定条件后再写入到DDR中。所述解码器解压时再从DDR读出码流放在所述第二临时存储器中,再进行解码。如图3所示,所述编码器的内部模块包括求差值模块、临时存储器mem、总bit数统计模块和移位buf。具体执行流程如图4所示,先将数据源date_src分段segment处理,假设每一个segment段取64个数据,将数据源先求差值相邻两个数据相减,并将差值保存到临时存储器中,再求出每个压缩单元差值中的最大绝对值,再分别求出4种模式的总bit数len0,len1,len2,len3,整个压缩段结束后,对比四种模式的总bit数大小,选择总bit数最小者所对应的模式假设len0是四者中最小的,则说明选择模式为mode0,即是8*8的模式,并将存储在临时存储器内的差值读出按顺序读出,再无缝拼接即将数据无间隔地逐一拼凑输出成码流输出stream_out。如图5所示,所述解码器的内部模块包括256bit移位buf,状态机控制模块,所述解码器解压时,结合图6所示,256bit移位buf按顺序读入存储在临时存储器内的数据stream_in,再参照如下表格,状态机控制模块解析出每个压缩段的压缩模式mode_sel4种模式,“0”:模式0;“1”:模式1;“2”:模式2;“3”:模式3,再解析出压缩单元的子段码长sub_bit_len,解析出压缩段的第一个原始数据该第一个原始数据的位宽是固定不变的,然后根据子段码长sub_bit_len解析出压缩码流主体bit_stream,得出各个差值相应的符号位和绝对值,再计算出原值输出org_data_out,而当子段码长sub_bit_len=1时,则表示当前压缩单元没进行压缩,码流中的是原始数值;本发明采用了无损压缩算法的差分分段压缩法,并且结合colmv数据的特点,能更进一步的提高压缩率。当图像数据的相关性越大即相邻数据数值比较接近,求出来的差值就会越小,压缩效果就会越好。因colmv的数据的特点是相关性很大,所以很适合采用本发明这种方案,压缩后得到的码流大多为原来的30%以内,在很大程度上缓解了内存读取带宽的压力。如图7所示,图7中的横轴是跑的帧数,纵轴是与原数据源bit数比率,系列1的直线表示压缩前colmv数据源,系列2的折线表示压缩后的码流占比。虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

权利要求:1.一种基于inter解码的colmv数据无损压缩方法,其特征在于:包括:步骤S11、在待压缩的colmv数据中,将每2n个数据作为一个独立压缩的压缩段,每个压缩段根据M种压缩模式分别分割成一个个压缩单元,其中,n为自然数,M由用户自行设定;步骤S12、保持压缩段首个数据不变,然后依次求出相邻数据的差值,再求出每个压缩单元差值中的最大绝对值;步骤S13、用最大绝对值的位数+1作为该压缩单元的子段码长,再根据这个子段码长把后续压缩单元的差值逐一罗列出来;步骤S14、分别求出每个压缩单元各种压缩模式的总bit数;步骤S15、对比所有压缩模式最后得到的总bit数的大小,选出总bit数最小的相应的压缩模式来作为对应压缩段的最后压缩模式,若某些压缩段在压缩后比不压缩还大时,则单独这个压缩单元复制原值。2.根据权利要求1所述的基于inter解码的colmv数据无损压缩方法,其特征在于:当2n的取值为64且M=4时,则所述4种模式分别为:Mode0:分8个压缩单元,每个压缩单元8个数据;Mode1:分4个压缩单元,每个压缩单元16个数据;Mode2:分2个压缩单元,每个压缩单元32个数据;Mode3:分1个压缩单元,这个压缩单元64个数据。3.根据权利要求2所述的基于inter解码的colmv数据无损压缩方法,其特征在于:所述步骤S13中,所述子段码长的有效值为0和整数2~15;当子段码长为1时,压缩码流主体是相应压缩单元的原始数据;当子段码长为整数2~15时,压缩码流主体则是按顺序将各个差值的按固定位宽,且以“差值的符号位+差值的绝对值”组合拼凑,差值的符号位为0,表示该差值为正数;差值的符号位为1,表示该差值为负数。4.根据权利要求3所述的基于inter解码的colmv数据无损压缩方法,其特征在于:所述步骤S13中,所述总bit数为某一压缩模式下所述“差值的符号位+差值的绝对值”的位宽的bit数的总和。5.一种基于inter解码的colmv数据无损压缩系统,其特征在于:包括编码器、第一临时存储器、DDR、第二临时存储器以及解码器;所述编码器将待压缩的colmv数据按权利要求1至4任一项方法压缩后的码流存储到第一所述临时存储器中,达到一定条件后再写入到DDR中;所述解码器解压时再从DDR读出码流放在所述第二临时存储器中,再进行解码。6.根据权利要求5所述的基于inter解码的colmv数据无损压缩系统,其特征在于:所述解码器解压时,是将存储在临时存储器内的数据按顺序读出,再参照如下表格,解析出每个压缩段的压缩模式mode_sel,再解析出压缩单元的子段码长sub_bit_len,解析出压缩段的第一个原始数据,然后根据子段码长sub_bit_len解析出压缩码流主体bit_stream,得出各个差值相应的符号位和绝对值,再计算出原值,而当子段码长sub_bit_len=1时,则表示当前压缩单元没进行压缩,码流中的是原始数值;

百度查询: 福州瑞芯微电子股份有限公司 基于inter解码的colmv数据无损压缩方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。