一种编解码装置及相关编码器的制作方法

文档序号:7964754阅读:202来源:国知局

专利名称::一种编解码装置及相关编码器的制作方法
技术领域
:本发明涉及4见频编解码
技术领域
,具体涉及一种FGS(FineGranularityScalable,精细粒度可伸缩)增强层的CAVLC(ContextAdaptiveVariableLengthCoding,上下文自适应变长编码)编解码装置。
背景技术
:可伸缩视频编码是一项十分具有吸引力的视频编码技术,它能够通过编码之后的处理来实现视频码流的任意裁减。可伸缩视频编码的码流中包括一个基本层和一个以上的增强层。在熵编码技术上,可选择CABAC(ContextAdaptiveBinaryArithmeticCoding,上下文自适应二进制算术编码)或CAVLC技术。目前,由MPEG(Motionpictureexpertsgroup,运动图像专家组)和ITU-T(国际电信联盟电信标准化部门)的JVT(Jointvideoteam,MPEG与ITU-T联合标准制定工作组)正在制定的H,264/AVC5的分层编码扩展SVC4(Scalablevideocoding,视频分层编码)中,就采用了FGS(FineGranularityScalable,精细粒度可伸缩)编码技术,FGS编解码结构如附图l所示。在对SVC的FGS增强层系统进行CAVLC(ContextAdaptiveVariableLengthCoding(上下文自适应可变长编码)编码时,编码装置的结构如附图2所示。相应的解码装置的结构如附图3所示。下面结合附图2对CAVLC编码的实现方法进行说明。图2中,实线的黑色箭头表示需要进行编码的码流的流经方向,虚线的黑色箭头表示上下文控制信息的流经方向。上下文控制信息如零或非零系数位置、当前块的最大幅值、幅值大于l的sinificancebit(重要比特位)的符号标记等等。步骤l、编码装置中存储有编码FGS层的头信息,编码FGS层的头信息包括编码亮^EOBShifttable(EndOfBlock块结束标记偏移表),色度EOBShifttable和用于指定最优码本的最优映射表。图2中只示出了部分头信息的编码器,即EOB偏移表变长编码器和最优映射表编码器。到步骤2、CBC扫描器在significantpass(—种辨识FGS增强层中sinificancebit系数的通道)以CBC(CyclicBlockCoding,循环块编码)扫描方式进行扫描,自适应游程编码器按照(run,sign)方式编码significantbits(FGS增强层中的一种系数)。其中,run表示非零系数前的O系数的个数,sign^示非零系数的符号,正号用0表示,负号用l表示。下面结合附图4对CBC扫描方式进行说明。图4中灰色方格中的数据是refinementbits(FGS增强层中的一种系数),refinementbits将在refinementpass(—种辨识FGS增强层中refinementbit系数的通道)中编码,并在significantpass中跳过。如果数据块是4x4的块,则图4中包含4个4x4的块。针对于图4,CBC扫描器的扫描过程如图4中黑色箭头所指顺序,其扫描的significantbits系数排列如下Cycle0:0,-1,1,1,2,对应的编码为(1,l)(O,O)(O,O)(O,0),其中,Cycle0表示图4中从第l行开始的按照黑色箭头所指顺序的扫描结果。Cyclel:1,01,_1,001,3十应的编码为(0,0)(1,0)(0,1)(2,0),其中,Cyclel表示图4中从第3行开始的按照黑色箭头所指顺序的扫描结果。其他的扫描结果和编码结果在此不再罗列。CBC扫描器在对图4所示的数据块进行了扫描后,自适应游程编码器获得的编码信息如表l所示。表l<table>tableseeoriginaldocumentpage7</column></row><table><table>tableseeoriginaldocumentpage8</column></row><table>表l中的编码信息只包含系数o和正负号。CBC扫描器在每个数据块中按照zigzag(z字形)顺序进行扫描,如CBC扫描器按照图4中灰色箭头所指顺序进行扫描,如果当前块中非零系数扫描完成,则继续进行下面步骤3的处理。步骤3、如果在CBC扫描的当前块中非零系数扫描完成后,当前块中还存在幅值大于1的significantbits,则图2中的幅值大于1的系数编码器进行如下处理(1)、按照系数幅值大于l的方式编码EOB符号,同时将最大幅值、幅值大于1的系数的个数信息编码进码流。(2)、按照zigzag方式扫描当前块,标记幅值大于1的significantbits,对于已经编码的非零significantbits,每遇到一个significantbits,如果significantbits的幅值为l,则才示i己为0,并编码标记0,否则,即幅值大于1,则标i己为1,并编码标记l,直到扫描完最后一个幅值大于1的significantbits,这部分的处理过程包含在图6从步骤600到步骤610的处理过程中。(3)、按照zigzag方式扫描当前块,在上述(2)中标记为1的位置处按照以下方式编石马幅值for(UIntuiCutoff=l;uiAbs>uiCutoff&&uiCutoff〈uiMaxMag;uiCutoff++)xWriteFlag(uiAbs>(uiCutoff+l));其中,uiAbs是当前幅值大于1的系数的幅值,uiMaxMag是当前块的最大幅值。上述代码可以解释为判断条件uiAbs>uiCutoff和uiCutoff<uiMaxMag是否同时满足,如果不同时满足,跳出本编码过程;如果条件uiAbs>uiCutoff和uiCutoff<uiMaxMag同时满足,继续判断uiAbs是否大于uiCutoff+l,如果大于则写1,否则写0,然后,uiCutoff增加1,并继续判断条件uiAbs〉uiCutoff、uiCutoff<uiMaxMag是否同时满足,直到,这两个条件中有一个不满足,跳出本编码过程为止。这部分的处理过程包含在图6从步骤620到步骤630的处理过程中。在这个编码步骤中,图2中的幅值大于1的系数编码器将对每个数据块中非零系数进行编码,即图2中的"幅值大于1与否标识"单元对幅值大于1的significantbits进行标记,并存储在存储设备中,幅值大于1的系数编码器根据存储设备中存储的标记进行编码。对于图4中的数据帧,幅值大于1的系数编码器将编码如表2所示的信息。表2<table>tableseeoriginaldocumentpage9</column></row><table>在对幅值大于l的系数编码完成后,到步骤5。步骤4、如果在CBC扫描的当前块中非零系数扫描完成后,当前块中不存在幅值大于l的significantbits,则直接编码EOB符号。到步骤5。在上述描述过程中,步骤2、步骤3和步骤4是在significantpass编码significantbits,其具体编码流程包含在附图5中。步骤5、在refinementpass编码refmementbits。EOB偏移表的编码方法为如果EOB偏移表的前3个元素中存在最大偏移量,则统计其中等于最大偏移量的元素个数,然后按以下代码编码等于最大偏移量的元素个数uiNumEnd:if(uiNumEnd)RNOK(xWriteGolomb(uiNumEnd-l,1));elsexWriteCode(0x7,3);在为等于最大偏移量的元素个数进行编码后,再编码剩余的元素。在对EOB偏移表进行解码时,先4安以下代码进4于逐位解码for(UIntu氾c-0;u正c〈3;u正c+十)UIntuiCode;xGetFlag(uiCode),if(uiCode)uiNumEnd++s}elsebreaks得到前3个元素中存在的最大偏移量的个数,然后,解码剩下的EOB偏移量元素。用于指定最优码本的最优映射表pauiTable[uiMaxH]的编码方法如下首先,查找最末一个非零元素的索引号,编码此索引号uiW,其次,按照以下代码定长编码uiW:xWriteCode(uiW,4);然后,从开始位置到uiW位置编码映射表中非零元素。从上述步骤3的描述中可以看出,在编码幅值大于l的significantbits时,需要按照扫描顺序先标记出幅值大于1的significantbits以及幅值等于1的significantbits,如将幅值大于l的significantbits的位置标记为1,将幅值等于l的significantbits的位置标记为O;然后,重新从块的首位开始扫描,在标记为l的位置编码幅值大于l的系数的幅值。这样,在上述编码过程中必须往码流中写入大量标记位置的比特位,还要重复进行大量的条件判断操作、比较操作、算术运算操作和逻辑运算操作以及内存读取操作,如表2中标记为灰色方格的部分即是需要进行重复处理的部分。在解码的时候,还必须开辟额外的内存,来存储标记位置信息,同理,解码装置进行解码时,同样需要进行大量的重复处理过程,从而〗吏编解码效率低。另外,由于编码装置在对EOB偏移表进行编码时,是按位进行的,所以,解码装置需要对EOB偏移表按位解码,编解码效率低。还有,最优映射表中通常含有大量的零元素,而目前的编码装置通常会对最优映射表进行逐位编码,使码流中存在大量的冗余信息,从而,增加了编解码计算量、以及编码码率。综上所述,现有的FGS增强层CAVLC编码方法存在计算量大、复杂度高、编码码率高等缺点。
发明内容本发明的目的在于,提供一种编解码装置及相关编码器,避免了大量的重复处理过程,简化了编解码过程,提高了编解码效率,同时降低了编码码率。为达到上述目的,本发明提供的一种编解码装置,位于精细粒度可伸缩FGS增强层上下文自适应可变长编码CAVLC系统中,编码装置中设置有非零幅值编码器、EOB偏移表定长编码器和分段式最优映射表编码器,解码装置中设置有非零幅值解码器、EOB偏移表定长解码器和分段式最优映射表解码器;EOB偏移表定长编码器接收编码码流,在确定EOB偏移表的前n个元素中存在最大偏移量时,统计前n个元素中最大偏移量元素的个数,并根据m位定长编码所述个数,然后,对EOB偏移表中的其他元素进行编码,并输出编码码流;分段式最优映射表编码器接收编码码流,将最优映射表分为多段,并对每一段的最优映射表分别进行编码;在对后续段的最优映射表进行编码时,仅对后续段中的非零元素进行编码;编码装置在完成零重要比特位significantbits的编码后,非零幅值编码器接收当前块编码码流,才艮据预定方式扫描当前块,当扫描到非零significantbits时,对该非零significantbits进行编码,并继续上述扫描编码过程直到当前块扫描完成,输出编码码流;EOB偏移表定长解码器接收编码码流,根据m位定长对所述编码后的个数进行解码,然后,对所述编码后的其他元素进行解码,并输出;分段式最优映射表解码器接收编码码流,对所述编码后的各段最优映射表分别进行解码,并输出;解码装置在完成零significantbits的解码后,非零幅值解码器接收当前块编码码流,根据非零幅值编码器的编码方式对非零significantbits进行解码,并输出。所述非零幅值编码器对非零significantbits进行编码的过程为将幅值为1的significantbits编码为0;将幅值大于1、且小于当前块最大幅值的significantbits编码为significantbits的幅值减1的差个1和一个0;将当前块最大幅值的significantbits编码为significantbits的幅值减1的差个l。所述非零幅值解码器对编码后的非零significantbits进行解码的过程为i殳置非零significantbits的幅值变量的初始值;依次读取该significantbits的编码,在读到1时,幅值变量递增或递减,在读到0、或者幅值变量大于等于当前块的最大幅值时,对该significantbits的解码过程结束,非零幅值解码器根据幅值变量确定该非零significantbits的幅值。所述n包括3。所述m包括2。所述分段式最优映射表编码器包括二分式最优映射表编码器;二分式最优映射表编码器将最优映射表分为前后两段,对前半部分中的元素进行编码,并查找后半部分最末一个非零元素的索引号并编码,然后,对后半部分的起始位置到所述索引号的位置中的非零元素进行编码。本发明提供一种编码装置,所述编码装置中设置有基于预测的自适应游程编码器、非零系数矫正编码单元和幅值大于1的系数的矫正式编码器;基于预测的自适应游程编码器接收编码码流,将当前块中非零significantbits的符号统一预测为预定符号,卩又对非零significantbits前的连续零significantbits的个数进行编码,并输出编码码流;非零系数校正编码单元接收编码码流,在当前块最大幅值为l时,根据最大幅值等于1的方式编码EOB,并根据预定方式扫描当前块,为扫描到的幅值为1、-1的significantbits进行区别编码,并输出编码码流;幅值大于1的系数的矫正式编码器接收编码码流,在当前块最大幅值大于1时,根据最大幅值大于1的方式编码EOB,对幅值大于1的系数对应的符号进行编码,根据幅值对非零系数进行区别映射,编码映射后的数值,并输出。幅值大于1的系数的矫正式编码器的映射方式包括2*(sig-l),sig>0;f(sig)={_2*sig_l,sig<0;其中sig为significantbits的值。本发明提供一种非零幅值编码器,位于精细粒度可伸缩FGS增强层上下文自适应可变长编码CAVLC系统中,所述非零幅值编码器包括扫描模块和第一编码模块;扫描模块接收当前块编码码流,根据预定方式扫描当前块;第一编码模块在扫描模块扫描到非零significantbits时,对该非零significantbits进行编码,直到当前块扫描编码完成,输出编码码流。第一编码模块在扫描模块扫描到非零significantbits时,将幅值为1的significantbits编码为0,将幅值大于1、且小于当前块最大幅值的significantbits编码为significantbits的幅值减1的差个1和一个0,将当前块最大幅值的significantbits编码为significantbits的幅值减1的差个1,直到当前块扫描编码完成,输出编码码流。本发明提供一种EOB偏移表定长编码器,所述EOB偏移表定长编码器包括统计模块和第二编码模块;统计才莫块接收编码码流,在确定EOB偏移表的前n个元素中存在最大偏移量时,统计前n个元素中最大偏移量元素的个数;第二编码模块根据m位定长编码统计模块统计的个数,然后,对EOB偏移表中的其他元素进行编码,并输出编码码流。本发明提供一种分段式最优映射表编码器,所述分段式最优映射表编码器将最优映射表分为多段,每段最优映射表分别对应一个编码模块;各编码模块分别接收编码码流,并分别对其对应段的最优映射表进行编码;在对后续段的最优映射表进行编码时,仅对后续段中的非零元素进行编码。所述分段式最优映射表编码器为二分式最优映射表编码器,所述二分式最优映射表包括前段编码模块和后段编码模块;前段编码模块接收编码码流,对最优映射表前半部分中的元素进行编码,并输出编码石马流;后段编码模块接收编码码流,查找后半部分最末一个非零元素的索引号并编码,然后,对后半部分的起始位置到所述索引号的位置中的非零元素进行编码,并输出编码码流。通过上述4支术方案的描述可知,本发明通过在一次扫描过程中完成对非零significantbits的编码,大大减少了条件判断操作、比较操作、算术运算操作、逻辑运算操作以及内存读取操作,简化了significantbits的编码过程;通过采用定长编码方法对EOB偏移表进4亍编码,充分利用了统计少见律,提高了编解码速度;通过对最优映射表进行分段编码,避免了对最优映射表中冗余信息的编码,进一步减少了编解码的计算量、减少了码流中携带的编码信息;本发明还可以采用先预测非零significantbits的符号,然后对符号进行校正的方法来进行significantbits编码,减少了码流中携带的编码信息;从而通过本发明提供的技术方案实现了简化FGS增强层的CAVLC编解码技术方案、提高编解码速率,降低编码码率的目的。图1是FGS编解码结构示意图;图2是现有技术的编码装置的结构示意图;图3是现有技术的解码装置的结构示意图;图4是现有技术的CBC扫描方式示意图5是现有技术的在significantpass中编码significantbits的流程图6是现有技术的对非零significantbits进行编码的流程图7是本发明实施例的编码装置的结构示意图一;图8是本发明实施例的解码装置的结构示意图9是本发明实施例的对非零significantbits进行编码的流程图IO是本发明实施例的编码装置的结构示意图二。具体实施例方式本发明提供的FGS增强层的CAVLC编解码装置的核心技术内容为编码装置在完成零significantbits的编码后,根据预定方式扫描当前块,当扫描到非零significantbits时,对该非零significantbits进行编码,并继续上述扫描编码过程,直到当前块扫描完成;解码装置在完成零significantbits的解码后,才艮据非零幅值编码器的编码方式对非零significantbits进行解码。这样,编码装置避免了大量的条件判断操作、比较操作、算术运算操作和逻辑运算操作以及内存读取操作等,简化了非零significantbits的编解码过程,提高了编解码装置的编解码效率。为了进一步简化非零significantbits的编解码过程,本发明还对编解码装置中的EOB偏移表的编解码过程、最优映射表的编解码过程进行了改进,下面结合附图对上述:R术方案进行详细描述。本发明提供的FGS增强层的CAVLC编码装置如附图7所示,FGS增强层的CAVLC解码装置如附图8所示。图7中,FGS增强层的CAVLC编码装置包括EOB偏移表定长编码器、二分式最优映射表编码器、CBC扫描器、自适应游程编码器、存储设备、非零幅值编码器和refinementbits编码器。其中,二分式最优映射表编码器是分段式最优映射表编码器中的一种。图8中,FGS增强层的CAVLC解码装置包括EOB偏移表定长解码器、二分式最优映射表解码器、CBC扫描器、自适应游程解码器、存储设备、非零幅值解码器和refinementbits解码器。其中,二分式最优映射表解码器是分段式最优映射表解码器中的一种。在图7、图8中,本发明主要涉MOB偏移表定长编码器、二分式最优映射表编码器、非零幅值编码器、EOB偏移表定长解码器、二分式最优映射表解码器和非零幅值解码器的改进,下述描述内容主要是对这几个改进的部分进行描述的,其他没有改进的内容,在本实施方式中不再详细i兌明。EOB偏移表定长编码器采用定长方式对EOB偏移表进行编码,EOB偏移表定长编码器包括统计模块和第二编码模块。具体的编码方式可以为统计模块统计EOB偏移表的前n个元素如前3个元素中等于最大偏移量的元素的个数uiNumEnd,然后,第二编码才莫块按照下面的代码以m位定长如2位定长对个数uiNumEnd进行编码XWriteCode(uiNumEnd,2);在对最大偏移量的元素个数uiNumEnd进行编码后,第二编码模块对EOB偏移表中剩余的元素进行编码,这里的剩余的元素即除了前3个元素之外的元素。相对应的,EOB偏移表定长解码器采用定长方式对编码后的EOB偏移表进行解码,具体的解码方式可以为EOB偏移表定长解码器按照m位定长如2位定长对编码后的最大偏移量的元素个数uiNumEnd进行解码,具体的解码代码为xGetCode(uiNumEnd,2);在对最大偏移量的元素个数uiNumEnd进行解码后,对EOB偏移表元素中剩余的元素进行编码,这里的剩余的元素即除了前3个元素之外的元素。二分式最优映射表编码器对最优映射表进行编码的方法为设定最优映射表的长度为uiMaxH,最优映射表的一半长度为uiHalfH,将最优映射表分成前半部分和后半部分,二分式最优映射表编码器中的前段编码模块对最优映射表的前半部分元素进行编码,后段编码模块对最优映射表的半部分元素进行编码。二分式最优映射表编码器中的后段编码模块对最优映射表的后半部分元素进行编码时,首先查找最优映射表的后半部分的最末一个非零元素的索引号uiW,并按照代码xWriteGolomb(uiW-uiHalfH,1)对该索引号uiW进行编码,然后,对最优映射表的后半部分的起始位置到uiW位置中的非零元素进行编码。二分式最优映射表解码器首先对编码后的最优映射表的前半部分进行解码,并对索引号uiW进行解码,然后,对最优映射表的后半部分的起始位置到uiW位置中的非零元素进行解码。二分式最优映射表解码器对最优映射表的后半部分的最末一个非零元素的索引号uiW进行解码的代码可以为如下形式UIntuiSym=0;xGetGolomb(uiSym,1);uiW=uiSym+uiHa啦由于最优映射表中的后面通常会有大量的零元素,所以,在采用上述本发明的二分式最优映射表编码器对最优映射表进行编码后,避免了码流中的冗余信息,从而降低了编码码率。在编码装置完成零significantbits的编码后,即在自适应游程编码器对当前块中的非零系数扫描完成后,如果当前块中还存在幅值大于l的significantbits,则非零幅值编码器开始对非零系数进行扫描编码,非零幅值编码器包括扫描模块和第一编码模块,其具体实现过程主要包括如下两个步骤步骤l、非零幅值编码器中的第一编码模块按照存在系数幅值大于l的方式编码EOB符号,同时,第一编码^f莫块将当前块中的最大幅值、幅值大于l的系数的个数信息编码到码流中。步骤2、非零幅值编码器中的扫描模块按照预定扫描方式如zigzag方式扫描当前块,对于每一个非零significantbit,第一编码模块按如下方式进行编码for(UIntuiCutoff=l;uiAbs>=uiCutoff&&uiCutoff〈uiMaxMag;uiCutoff+十)xWriteFlag(uiAbs>uiCutoff);其中uiAbs是当前非零significantbit的幅值,uiMaxMag^当前块中最大的幅值,uiCutoff为初始值为l的变量。当然,非零幅值编码器也可以采用其他代码来实现编码,在此不再例举。下面以一个具体的例子对利用上述代码进行编码的过程进行说明。设定uiMaxMag=3、uiCutoff的初始值为1。非零幅值编码器中的扫描模块扫描到幅值为2的significantbit,此时,uiAbs为2大于值为l的uiCutoff,而且,值为l的uiCutoff小于值为3的uiMaxMag,循环条件满足,进入上述代码的循环体,由于uiAbs为2大于值为l的uiCutoff,条件成立,所以,非零幅值编码器中的第一编码模块先为这个幅值为2的significantbit写l;然后,uiCutoff递增l。非零幅值编码器中的第一编码模块再次判断循环条件是否满足,此时,uiAbs为2等于值为2的uiCutoff,而且,值为2的uiCutoff小于值为3的uiMaxMag,循环条件满足,进入上述代码的循环体,由于uiAbs为2不大于值为2的uiCutoff,条件不成立,所以,非零幅值编码器中的第一编码模块再为这个幅值为2的significantbit写0;然后,uiCutoff递增l。此时,uiCutoff为3,循环条件不满足,退出该循环体。非零幅值编码器为该幅值为2的significantbit的编码过程结束。非零幅值编码器为该幅值为2的significantbit的编石马结果为10。非零幅值编码器按照如上方式对当前块中每一个幅值为非零的系数都进行编码,直到当前块中所有的幅值为大于l的系数都进行了编码。上述非零幅值编码器对非零幅值的系数进行编码的过程包含在图9的步骤900中。(图9中900这个步骤是对非零幅值的系数进行编码,而这个步骤的具体内容是上述描述的内容)对应的,在解码装置完成零significantbits的解码后,即在自适应游程解码器对当前块中的非零系数扫描完成后,如果当前块中还存在幅值大于l的significantbits,则非零幅值解码器开始对非零系数进行扫描解码,其具体实现过程主要包括如下两个步骤步骤l、非零幅值解码器解码出当前块中的最大幅值uiMaxMag、以及幅值大于l的系数个数信息。步骤2、非零幅值解码器按照预定扫描方式如zigzag方式扫描当前块,对于每一个编码后的非零significantbit,按如下方式进行解码for(UIntuiCutof何;uiCutoff〈uiMaxMag;uiCutoff++)xGetFlag(uiBit);if(uiBit)uiSymbol++5elsebreak;其中uiBit是当前要解码的非零系数幅值的当前比特位,uiMaxMag是当前块中最大的幅值,uiCutoff和uiSymbol均为初始值为l的变量。UiCutoff的初始值也可以不为l,这样,条件uiCutoff〈uiMaxMag会有所改变。当然,uiSymbol的初始值也可以不为l,当uiSymbol的初始值为O时,在完成了上述解码过程后,uiSymbol还需要加l后才能作为非零系数幅值。在跳出上述循环体后,uiSymbol的数值即为非零幅值解码器对编码后的当前非零significantbit进行解码的结果。非零幅值解码器按照zigzag扫描顺序把解码得到的uiSymbol写入相应的非零系凄t位置。非零幅值解码器采用上述方法对当前块中所有编码后的非零系数均进行解码处理。当然,非零幅值解码器也可以采用其他代码来实现解码,在此不再例举。续前例,i殳定uiMaxMag=3、uiCutoff和uiSymbol的初始值均为1。非零幅值解码器扫描到编码为10的significantbit,此时,值为l的uiCutoff小于值为3的uiMaxMag,进入上述解码代码的循环体,非零幅值解码器通过xGetFlag(uiBit)首先读取10中的l,由于uiBit为l,if(uiBit)成立,所以,uiSymbol的值变为2。然后,uiCutoff递增l。非零幅值编码器再次判断循环条件是否满足,此时,uiCutoff为2,小于值为3的uiMaxMag,循环条件满足,进入上述解码代码的循环体,非零幅值解码器通过xGetFlag(uiBit)读取10中的0,由于uiBit为O,if(uiBit)不成立,所以,退出上述解码代码的循环体。非零幅值解码器为编码后的10进行解码的结果为2。本发明提供的另外一种编码装置如附图IO所示。图10中的编码装置包括EOB偏移表变长编码器、最优映射表编码器、CBC扫描器、基于预测的自适应游程编码器、非零系统矫正编码器、幅值大于l的系数的矫正式编码器和refmementbits编码器。相应的,针对图10的编码装置,解码装置包括EOB偏移表变长解码器、最优映射表解码器、CBC扫描器、基于预测的自适应游程解码器、非零系统矫正解码器、幅值大于l的系数的矫正式解码器和refmementbits解码器。解码装置的图应该和编码装置的图相对应,在本申请文件中不再示出解码装置的结构示意图。图10中的编码装置实现CAVLC编码的方法包括如下步骤步骤l、编码装置中存储有编码FGS层的头信息,编码FGS层的头信息包括编码亮度EOBShifttable,色度EOBShifttable和用于指定最优码本的最优映射表。图10中只示出了部分头信息的编码器,即EOB偏移表变长编码器和最优映射表编码器。到步骤2、基于预测的自适应游程编码器在CBC扫描编码过程中,先预测非零significantbits的符号都是正号,这样,基于预测的自适应游程编码器在CBC扫描编码过程中,只对significantpass中的非零significantbits前的连续零的个数进行编码就可以了,即只编码run,直到基于预测的自适应游程编码器对当前块中最后一个非零significantbit前的连续零的个数run编码完成。基于预测的自适应游程编码器不需要按照原来的(run,sign)方式进行编码。由于采用了run编码方式,所以,在解码装置中,基于预测的自适应游程解码器每解码一个run,则根据扫描方式在相应的位置填充run个O;基于预测的自适应游程解码器在发现没有EOB符号,则在后面位置填充1说明该位置是非零的significantbit。到步骤3、非零系数矫正编码器从存^i殳备中读取当前块中非零系数信息,并统计当前块中非零significantbits的总数,幅值大于1的总数、最大significantbit的绝对值即幅值和符号,将幅值大于1的系数的幅值标记为maxMag,将幅值最大的significantbit的符号标记为maxSign。到步骤4、如果当前块中不存在幅值大于1的significantbits,到步骤5;如果当前块中存在幅值大于1的significantbits,至U步骤6。在步骤5、非零系教:矫正编码器对当前块中幅值等于1的significantbits进行编码,具体编码过程包括(1)、由于当前块中非零Significantbits的总数和非零Significantbits的位置是已知的,而且,当前块中所有非零Significantbits的幅值都等于1,所以,非零系数矫正编码器以最大幅值等于1的方式编码EOB。(2)、非零系数矫正编码器根据预定的扫描方式从当前块的开始位置起扫描整个块,每遇到一个非零significantbits,如果系数等于1,则编码一个O,否则,即significantbits等于-1,编码一个1。直到对当前块的非零significantbits编码完成。在步骤6、幅值大于1的系数的矫正式编码器对当前块中非零幅值的significantbits进行编码,具体编码过程为由于当前块中非零系数的个数即非零Significantbits的总数、最大significantbit的绝对值即最大幅值和符号是已知的,所以,幅值大于1的系数的矫正式编码器按照存在幅值大于1的方式编码EOB,即同时写入幅值大于1的significantbit的个数NumMagGl和maxMag。到步骤7。在步骤7、幅值大于1的系数的矫正式编码器写入maxMag对应的符号。到步骤8。在步骤8、幅值大于1的系数的矫正式编码器按照以下映射公式将非零系数Significantbits映射成f(sig):<formula>formulaseeoriginaldocumentpage23</formula>幅值大于1的系数的矫正式编码器对f(sig)进行编码。重复上述步骤2至步骤8,直到编码装置将significant通道编码完成。然后,refinementbits编石马器对renfinementbits进4亍编石马。与图IO对应的解码装置的解码过程与上述编码过程相对应,在此不再详细描述。图10中的EOB偏移表变长编码器可以替换为EOB偏移表定长编码器,相应的解码装置中的EOB偏移表变长解码器可以替换为EOB偏移表定长解码器;图IO中的最优映射表编码器可以替换为二分式最优映射表编码器,相应的解码装置中的最优映射表解码器可以替换为二分式最优映射表解码器。EOB偏移表定长编码器、二分式最优映射表编码器等的描述如上述针对图7、图8中的描述,在此不再详细i兌明。上述非零幅值编码器、EOB偏移表定长编码器和分段式最优映射表编码器等都可以单独应用在编码装置中,相应的,非零幅值解码器、EOB偏移表定长解码器和分段式最优映射表解码器也可以单独应用在解码装置中,在此不再详细描述。虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,如上述描述中是以二分式最优映射表编码器为例对分段式最优映射表编码器进行描述的,分段式最优映射表编码器还可以为其他形式,而且,上述映射函数也可以为其他方式,本发明的申请文件的权利要求包括这些变形和变化。权利要求1、一种编解码装置,位于精细粒度可伸缩FGS增强层上下文自适应可变长编码CAVLC系统中,其特征在于,编码装置中设置有非零幅值编码器、EOB偏移表定长编码器和分段式最优映射表编码器,解码装置中设置有非零幅值解码器、EOB偏移表定长解码器和分段式最优映射表解码器;EOB偏移表定长编码器接收编码码流,在确定EOB偏移表的前n个元素中存在最大偏移量时,统计前n个元素中最大偏移量元素的个数,并根据m位定长编码所述个数,然后,对EOB偏移表中的其他元素进行编码,并输出编码码流;分段式最优映射表编码器接收编码码流,将最优映射表分为多段,并对每一段的最优映射表分别进行编码;在对后续段的最优映射表进行编码时,仅对后续段中的非零元素进行编码;编码装置在完成零重要比特位significantbits的编码后,非零幅值编码器接收当前块编码码流,根据预定方式扫描当前块,当扫描到非零significantbits时,对该非零significantbits进行编码,并继续上述扫描编码过程直到当前块扫描完成,输出编码码流;EOB偏移表定长解码器接收编码码流,根据m位定长对所述编码后的个数进行解码,然后,对所述编码后的其他元素进行解码,并输出;分段式最优映射表解码器接收编码码流,对所述编码后的各段最优映射表分别进行解码,并输出;解码装置在完成零significantbits的解码后,非零幅值解码器接收当前块编码码流,根据非零幅值编码器的编码方式对非零significantbits进行解码,并输出。2、如权利要求1所述的装置,其特征在于,所述非零幅值编码器对非零significantbits进4亍编石马的过考呈为将幅值为1的significantbits编码为0;将幅值大于1、且小于当前块最大幅值的significantbits编码为significantbits的幅值减1的差个1和一个0;将当前块最大幅值的significantbits编码为significantbits的幅值减1的差个1。3、如权利要求2所述的装置,其特征在于,所述非零幅值解码器对编码后的非零significantbits进行解码的过程为设置非零significantbits的幅值变量的初始值;依次读取该significantbits的编码,在读到1时,幅值变量递增或递减,在读到0、或者幅值变量大于等于当前块的最大幅值时,对该significantbits的解码过程结束,非零幅值解码器4艮据幅值变量确定该非零significantbits的幅值。4、如权利要求1或2或3所述的装置,其特征在于,所述n包括3。5、如权利要求1或2或3所述的装置,其特征在于,所述m包括2。6、如权利要求1或2或3所述的装置,其特征在于,所述分段式最优映射表编码器包括二分式最优映射表编码器;二分式最优映射表编码器将最优映射表分为前后两段,对前半部分中的元素进行编码,并查找后半部分最末一个非零元素的索引号并编码,然后,对后半部分的起始位置到所述索引号的位置中的非零元素进行编码。7、一种编码装置,其特征在于,所述编码装置中设置有基于预测的自适应游程编码器、非零系数矫正编码单元和幅值大于1的系数的矫正式编码器;基于预测的自适应游程编码器接收编码码流,将当前块中非零significantbits的符号统一预测为预定符号,仅对非零significantbits前的连续零significantbits的个数进行编码,并输出编码码流;非零系数校正编码单元接收编码码流,在当前块最大幅值为1时,根据最大幅值等于1的方式编码EOB,并才艮据预定方式扫描当前块,为扫描到的幅值为1、-1的significantbits进行区别编码,并输出编码码流;幅值大于1的系数的矫正式编码器接收编码码流,在当前块最大幅值大于1时,根据最大幅值大于1的方式编码EOB,对幅值大于1的系数对应的符号进行编码,根据幅值对非零系数进行区别映射,编码映射后的数值,并输出。8、如权利要求7所述的装置,其特征在于,幅值大于1的系数的矫正式编码器的映射方式包括2*(sig-l),sig>0;f(sig)={-2*sig-l,sig<0;其中sig为significantbits的值。9、一种非零幅值编码器,位于精细粒度可伸缩FGS增强层上下文自适应可变长编码CAVLC系统中,其特征在于,所述非零幅值编码器包括扫描模块和第一编码;漠块;扫描模块接收当前块编码码流,根据预定方式扫描当前块;第一编码模块在扫描模块扫描到非零significantbits时,对该非零significantbits进4亍编码,直到当前块扫描编码完成,输出编码码流。10、如权利要求9所述的非零幅值编码器,其特征在于第一编码才莫块在扫描才莫块扫描到非零significantbits时,将幅值为1的significantbits编码为0,将幅值大于1、且小于当前块最大幅值的significantbits编码为significantbits的幅值减1的差个1和一个0,将当前块最大幅值的significantbits编码为significantbits的幅值减1的差个1,直到当前块扫描编码完成,输出编码石马流。11、一种EOB偏移表定长编码器,其特征在于,所述EOB偏移表定长编码器包括统计模块和第二编码模块;统计模块接收编码码流,在确定EOB偏移表的前n个元素中存在最大偏移量时,统计前n个元素中最大偏移量元素的个数;第二编码模块根据m位定长编码统计模块统计的个数,然后,对EOB偏移表中的其他元素进行编码,并输出编码码流。12、一种分段式最优映射表编码器,其特征在于,所述分段式最优映射表编码器将最优映射表分为多段,每段最优映射表分别对应一个编码模块;各编码模块分别接收编码码流,并分别对其对应段的最优映射表进行编码;在对后续段的最优映射表进行编码时,仅对后续段中的非零元素进行编码。13、如权利要求12所述的分段式最优映射表编码器,其特征在于,所述分段式最优映射表编码器为二分式最优映射表编码器,所述二分式最优映射表包括前段编码模块和后段编码模块;前段编码模块接收编码码流,对最优映射表前半部分中的元素进行编码,并输出编码码流;后段编码模块接收编码码流,查找后半部分最末一个非零元素的索引号并编码,然后,对后半部分的起始位置到所述索引号的位置中的非零元素进行编码,并输出编码码流。全文摘要本发明提供一种编解码装置及相关编码器,所述编码装置中设置有非零幅值编码器,解码装置中设置有非零幅值解码器。编码装置在完成零significantbits的编码后,非零幅值编码器根据预定方式扫描当前块,当扫描到非零significantbits时,对该非零significantbits进行编码,并继续上述扫描编码过程,直到当前块扫描完成;解码装置在完成零significantbits的解码后,非零幅值解码器根据非零幅值编码器的编码方式对非零significantbits进行解码。本发明大大减少了条件判断操作、比较操作、算术运算操作、逻辑运算操作以及内存读取操作,简化了significantbits的编解码过程;从而实现了提高编解码速率,降低编码码率的目的。文档编号H04N7/24GK101106721SQ20061010086公开日2008年1月16日申请日期2006年7月10日优先权日2006年7月10日发明者周建同,曾鹏鑫,林四新,熊联欢申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1