二元编码运算装置以及方法与流程

文档序号:14864429发布日期:2018-07-04 10:13阅读:475来源:国知局
本发明是关于一种二元编码运算装置以及方法,更确切地说,本发明是关于一种用于视频编码芯片的二元编码运算装置以及方法。
背景技术
::视频的压缩以及传送一直是电子工业发展的重点项目。视频的原始数据由数目庞大的视频帧(frames)所组成,每一个视频帧又包含数目庞大的画素。因此,无压缩传送这些视频会浪费大量的电路面积以及带宽,实际上是不可行的。有许多对于视频的压缩方式被发展出来,例如mpeg(movingpictureexpertsgroup)或h.264的视频压缩标准。这些视频压缩标准会利用熵编码法(entropycoding)来进行编码。熵编码法利用统计上的特性,使得出现频率较高的数据用比较短的码字来代表,出现频率比较低的用比较长的码字来代表,藉此来得到更高的压缩率。二元编码运算就是一种熵编码法。然而,在半导体芯片上实现二元编码运算必需考虑到所占电路面积以及编码效率的问题。所以,如何设计一种可以兼顾占用电路面积以及编码效率的二元编码运算电路,是电子工业界非常需要的。技术实现要素:本发明的一目的在于提供一种二元编码运算装置,用于一视频编码芯片中。此二元编码运算装置可以利用查表以及运算两种方式来产生指数哥伦布二元编码,查表的优点在于快速,运算的优点在于省电路面积。此二元编码运算装置可以在这两项优点之中取得平衡。本发明的另一目的在于提供一种二元编码运算装置,用于一视频编码芯片中。此二元编码运算装置可以将指数哥伦布二元编码的前缀以及尾缀分开处理,使得取得编码更有效率。依据本发明的一实施例,提供一种二元编码运算装置,实现于一视频编码芯片中。该二元编码运算装置依据一语法元素值输出一码字。此二元编码运算装置包含一查找表,一尾缀产生器,以及一组合器。该查找表依据该语法元素值输出一第一二元字符串。其中该查找表具有两种二元编码方式,该两种二元编码方式为单一二元编码以及指数哥伦布二元编码。该尾缀产生器依据该语法元素值进行指数哥伦布二元编码产生一第二二元字符串。一组合器供组合该第一二元字符串以及该第二二元字符串。其中,当该语法元素值小于或等于一临界值时,该第一二元字符串输出成为该码字。当该语法元素值大于一临界值时,该组合器组合该第一二元字符串以及该第二二元字符串成为该码字。依据本发明的另一实施例,提供一种二元编码运算装置,实现于一视频编码芯片中。该二元编码运算装置依据一语法元素值输出一码字。该二元编码运算装置包含一查找表,一尾缀产生器以及一多任务器。该查找表依据一语法元素值输出一第一二元字符串。其中该查找表具有两种二元编码方式,该两种二元编码方式为单一二元编码以及指数哥伦布二元编码。该尾缀产生器依据该语法元素值进行指数哥伦布二元编码产生一第二二元字符串。该多任务器接受该第一二元字符串以及该第二二元字符串作为输入。其中,当该语法元素值小于或等于一临界值时,该多任务器选择该第一二元字符串输出。当该语法元素值大于一临界值时,该多任务器依序选择该第一二元字符串以及该第二二元字符串输出。依据本发明的另一实施例,提供一种二元编码运算方法,实现于一视频编码芯片中。该二元编码运算方法依据一语法元素值输出一码字。该二元编码运算方法包含下列步骤。首先,接受一语法元素值。接着,检查该语法元素值是否大于一临界值。然后,当该语法元素值小于或等于该临界值时,利用一查找表输出一二元字符串作为该码字。当该语法元素值大于该临界值时,利用该查找表输出一前缀,利用一尾缀产生器产生一尾缀,以及结合该前缀以及该尾缀成为该码字。附图说明图1表示一个使用在cabac的二元编码运算的编码器方块图;图2表示查找表i的一个范例;图3表示查找表ii的一个范例;图4表示与组合器相关的电路方块图;以及图5表示二元编码运算的一实施例流程图。100编码器110查找表120尾缀产生器130组合器131多任务器132先进先出缓冲器501,502,503,504,505,506步骤具体实施方式图1表示一个使用在cabac的二元编码运算的编码器方块图。请参照图1,cabac(context-basedadaptivebinaryarithmeticcoding)是前文参考的适应性二元算术编码的简称,cabac可以使用于h.264的编码。请参照图1,编码器100包含一查找表(look-uptable)110,一尾缀产生器(suffixgenerator)120,以及一组合器(combiner)130。在一些实施例中,编码器100也可以适用于mpeg的编码。编码器100可以实现于视频编码的芯片中。实际的例子包含电视芯片,手机芯片,机顶盒芯片,以及任何需要视频解码的芯片中。图2表示查找表i的一个范例。图3表示查找表ii的一个范例。请参照图2,在一些实施例中,查找表不仅包含单一二元编码(unarybinarization)所产生的二元字符串(binstring),也包含哥伦布二元编码(golombbinarization)所产生的二元字符串。例如,在查找表i中,当索引值(index),也就是语法元素值(syntaxelementvalue)小于或等于15时,输出的二元字符串会是单一二元编码。当索引值大于15时,输出的二元字符串会是指数哥伦布编码。当然,15只是一个范例,设计者可以在可行的范围内,指定一个索引值作为单一二元编码以及指数哥伦布二元编码的分界。在这个实施例中,指数哥伦布码包含前缀(prefix)以及尾缀(suffix)部分。在查找表i中,前缀行列内含多个前缀,尾缀行内含多个尾缀。在适当的范围内,每一个索引值可以找到相对应的前缀以及尾缀来组成指数哥伦布二元编码。参照图3,在一些实施例中,当语法元素值大于31时,查找表ii包含指数哥伦布(ex-golomb)二元编码所组合而成的前缀(prefix)供使用。31只是一个举例说明,在其他实施例中,也可以用其他的语法元素值来作为分界点。前缀只是形成码字(codeword)的前面的部分,在这个实施例中,查找表ii不包含尾缀的部分,不包含尾缀可以减少查找表ii需要使用的储存空间。而指数哥伦布二元编码的尾缀部分可以利用数字逻辑的硬件做计算。如此一来,每次遇到大于31的语法元素值时,可以从查找表ii取得指数哥伦布码的前缀部分,然后从数字逻辑的硬件的技术案取得指数哥伦布码的尾缀部分,之后把前缀跟尾缀加以组合,得到最后的码字。尾缀产生器120是利用指数哥伦布二元编码。在一些实施例中,尾缀产生器120可以利用下列的伪码(pseudocode)来实现。if(ueg0_input_tmp[10])ueg0_output={1111110,ueg0_input_tmp[9:0]};elseif(ueg0_input_tmp[9])ueg0_output={111110,ueg0_input_tmp[8:0]};elseif(ueg0_input_tmp[8])ueg0_output={11110,ueg0_input_tmp[7:0]};…elseif(ueg0_input_tmp[4])ueg0_output={0,ueg0_input_tmp[3:0]};elseueg0_output=0;这些伪码也可以形成硬件的电路。例如,利用硬件描述语言(hardwaredescriptionlanguage)来改写这伪码,然后合成实体电路,以实现于半导体芯片上。在这个例子中,尾缀产生器120是由实体电路的逻辑计算方式得到尾缀,而不是由查表方式得到尾缀。在这个实施例中,这些伪码中的ueg0_input是11位的输入,而ueg0_input_tmp则等于ueg0_input加1。在另一实施例中,尾缀产生器120也可以利用一个查找表来实现。参照图3,在一些实施例中,在括号里面的0并不是实际储存在查找表ii中,而是经由尾缀产生器120所产生。产生的方式例如使用上述的伪码。在另一实施例中,在括号里面的0是实际储存在查找表ii中,非由尾缀产生器120所产生。查找表110输出的二元字符串以及尾缀产生器输出的二元字符串经再由组合器130组合。图4表示与组合器相关的电路方块图。参照图4,组合器130包含一多任务器131以及一fifo132。fifo(firstinfirstout)132是一个先进先出缓冲器或先进先出存储器。多任务器131控制查找表110以及尾缀产生器120之中的那一个输出可以进入fifo132。如果语法元素值小于32,则查找表110中相对应的二元字符串会被输入fifo132。如果语法元素值大于31,则查找表110中相对应的二元字符串会被输入fifo132,随着再直接将尾缀产生器120产生的二元字符串输入fifo132。此时查找表110中相对应的二元字符串为指数哥伦布的前缀,尾缀产生器120产生的二元字符串为指数哥伦布的尾缀。如此一来,fifo可以序列输出指数哥伦布的前缀以及指数哥伦布的尾缀,前缀跟尾缀的序列组合可以成为一码字(codeword)。在这个实施例中,查找表110包含查找表i以及查找表ii。图5表示二元编码运算的一实施例流程图。参照图5,依据本发明的一实施例,揭露一种二元编码运算方法。此方法包含下列步骤。首先,接受一语法元素值(步骤501)。接着,决定语法元素值是否大于一临界值(步骤502)。在一实施例中,此临界值为31。如果结果为是,从一查找表中找出相对于此语法元素值的指数哥伦布二元编码的前缀(步骤503)。再来,利用一尾缀产生器计算产生相对于此语法元素值的指数哥伦布二元编码的尾缀(步骤504)。接着,将指数哥伦布二元编码的前缀以及尾缀结合,成为对应于此语法元素值的码字(步骤505)。如果步骤502的结果为否,则利用查找表来查找以得出相对于此语法元素值的二元编码字符串(步骤506)。在步骤506中所产生的二元编码字符串可为单一二元编码或指数哥伦布二元编码所产生。查表的优点在于快速,运算的优点在于省电路面积。本发明的二元编码运算装置实施例可以在这两项优点之中取得平衡。另外,本发明的实施例可以将指数哥伦布二元编码的前缀以及尾缀分开处理,使得取得编码更有效率。以上所述仅为本发明的诸多实施例,不能以某一实施例的特殊做法限定本发明的专利申请范围,本发明的申请专利范围当以发明权利要求之内所记载文字为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1