一种熵解码比特解析方法和一种熵解码器、视频解码芯片的制作方法

文档序号:7698434阅读:218来源:国知局
专利名称:一种熵解码比特解析方法和一种熵解码器、视频解码芯片的制作方法
技术领域
本发明涉及终端一见频解码技术领域,特别是涉及一种一见频码流的熵解码 比特解析方法和一种熵解码器、视频解码芯片。
背景技术
随着科技的发展,数字移动多媒体已经日益广泛的为大众所使用。数字 移动多媒体通过无线广播电视覆盖网向各种便携式终端设备提供数字音视
频和信息服务,其终端产品种类主要包括MP4、手机、GPS、 USB接收棒、 独立接收机等等。数字信息传输、存储、播放等环节的前提是数字音视频编 解码技术,即,数字音视频编解码技术是数字音视频产业的共性基础标准。 目前关于音视频产业的数字音视频编解码标准主要有MPEG-2 (Moving Pictures Experts Group,动态图象专家组)、MPEG-4、 H.264/AVC (以下简 称H.264 )、 AVS ( Audio and Video coding Standard,中国自主知识产权的最 新数字音视频编解码技术标准)等等。
在上述编解码标准中,对于视频解码过程, 一般可以包括VLD(熵解码)、 变换(包括反扫描、反量化、反余弦变换)、帧内预测或帧间预测以及环路 滤波等步骤。
例如,参照图1,示出了 H.264的解码过程。首先,通过熵解码对所接 收^L频码流进行比特解析,然后一方面通过帧内预测或者帧间预测得到预测 图像块,另一方面通过反扫描得到按空间位置排列的残差块、通过反量化、 反余弦变换(反D C T)得到重构的残差块,然后依据所述预测图像块和残 差块,经过环路滤波得到重构的图像块;最后再依据这些宏块及子块的组合, 得到重构图像,从而完成整个视频解码过程。
其中,熵解码操作是针对视频码流的bit (比特)进行的,所以在熵解 码执行过程中需要一种对bit进行读取、刷新操作的机制。现有技术一般会 采用两个整数变量的buffer (緩沖),通过对这两个变量的读取、跳过等搡作 从而得到对视频码流bit操作的目的。对于现有的视频码流,每次熵解码所需读取的bit位数不会大于32位,因此,现有技术通常采用两个32位的buffer (参照图2 ),所接收的视频码流先緩存在这两个buffer中,熵解码操作时再 从buffer中读取。
具体的,参照图2,现有的熵解码比特解析过程一般可以包括以下步骤
步骤a、依据4见频码流确定本次熵解码需要读取的bit位数N;
步骤b、判断buffer ( a)中当前所存放的数据bit数是否大于或者等于N (即是否足够所需);
步骤c、如果buffer U)中当前所存放的数据满足本次读取所需,则直 接读取,即可获得本次熵解码所需的数据;然后进入下一次熵解码的比特解 析操作;
步骤d、如果不够,则先读取buffer (a)中当前所存放的数据,再读取 buffer (b)中的一部分bit,将二者进行拼接得到N位的bit数据,从而获得 本次熵解码所需的数据;
步骤e、当buffer (b)中的数据不满时,则将buffer (b)中的数据转移 到buffer ( a)中,并接收码流的新数据,存满buffer ( a)和buffer ( b )。即 现有技术通过保证buffer (b )中的数据始终是满载的,从而满足每一次熵解 码读取bit数据的需要。
但是在实际应用中,本申请的发明人发现上述数据读取过程,存在一些 缺陷
首先,熵解码每次读取数据(进行比特解析操作)时,都需要做判断操 作,而对于现代微处理器而言,做判断是一个比较耗时的操作,会破坏流水 线操作、严重降低熵解码的效率。
其次,当buffer ( a)中剩余的数据bit数小于N时,需要执行两个buffer 中数据的拼接操作,也是一个耗时因素。
总之,需要本领域技术人员迫切解决的一个技术问题就是如何能够提 高熵解码过程中比特解析的效率。

发明内容
本发明所要解决的技术问题是提供一种视频码流的熵解码方法,其能够降低微处理器的运算负担,提高熵解码过程中的比特(bit)解析读取操作的 效率,进而提高整个熵解码过程的效率。
相应的,本发明还提供了一种熵解码器和一种应用该熵解码器的视频解 码芯片,具有较高的熵解码效率。
为了解决上述问题,本发明公开了 一种视频码流的熵解码比特解析方
法,包括依据视频码流确定本次熵解码需要读取的比特位数N; N小于等 于阈值M;从第一緩冲器中读取本次熵解码所需的N比特数据,进行熵解 码;将第一緩冲器中剩余的数据前移至起始位置,以及将第二緩冲器中的数 据填充到第一緩冲器的空闲比特位,以保证第一緩冲器满载;当满足预置条 件时,读取外部^L频码流数据至第二緩沖器;其中,所述第一緩沖器、第二 緩冲器的存储空间大于或等于M比特位。
优选的,所述预置条件为第二緩冲器为空。
优选的,所述第一緩冲器和第二緩冲器的存储空间均为32比特;或者,
所述第一緩沖器和第二緩沖器的存储空间均为64比特。 优选的,所述熵解码应用于H.264解码过程。 依据本发明的另一实施例,还公开了一种熵解码器,可以包括 运算单元,用于依据所读取的本次熵解码所需的N比特数据,进行熵解
码;N小于等于阈值M;
第一緩冲器和第二緩冲器,用于緩存外部视频码流的数据,所述第一緩
冲器、第二緩冲器的存储空间大于或等于M比特位; 比特解析单元,所述比特解析单元进一步包括
比特位数确定模块,用于依据视频码流确定本次熵解码需要读取的比特 位数N;
读取模块,用于从第一緩冲器中读取本次熵解码所需的N比特数据,传 送给运算单元;
移动模块,用于将第一緩冲器中剩余的数据前移至起始位置,以及将第 二緩冲器中的数据填充到第一緩冲器的空闲比特位,以保证第一緩冲器满 载;
6更新模块,用于在满足预置条件时,读取外部视频码流数据至第二緩冲器。
优选的,所述预置条件为第二緩沖器为空。
优选的,所述第一緩冲器和第二緩沖器的存储空间均为32比特位;或 者,所述第一緩沖器和第二緩冲器的存储空间均为64比特位。 优选的,所述熵解码器应用于R264解码过程。
依据本发明的另一实施例,还公开了一种视频解码芯片,包括熵解码器, 帧内或帧间预测部件,反扫描部件,反量化部件,反余弦变换部件和图像重 构部件,其中,所述熵解码器包括
运算单元,用于依据所读取的本次熵解码所需的N比特数据,进行熵解 码;N小于等于阈值M;
第一緩沖器和第二緩沖器,用于緩存外部视频码流的数据,所述第一緩 冲器、第二緩沖器的存储空间大于或等于M比特位;
比特解析单元,所述比特解析单元进一步包括
比特位确定模块,用于依据视频码流确定本次熵解码需要读取的比特位 数N;
读取模块,用于从第一緩冲器中读取本次熵解码所需的N比特数据,传 送给运算单元;
移动模块,用于将第一緩冲器中剩余的数据前移至起始位置,以及将第 二緩沖器中的数据填充到第 一緩冲器的空闲比特位,以保证第 一緩沖器满 载;
更新模块,用于在满足预置条件时,读取外部视频码流数据至第二緩冲器。
优选的,所述预置条件为第二緩冲器为空。 与现有技术相比,本发明具有以下优点
本发明在视频码流读取过程中,同样采用两个buffer的方式,但是本发 明采用保证buffer ( a)(即第一个buffer)满载的方法,进行bit数据的读取,而没有采用现有技术保证buffer (b)(即第二个buffer)满载的方式。简单 分析就可以看出,本发明能够显著减少判断buffer (a)中剩余的数据是否大 于或等于N的操作(因为N总是小于32的,而本发明的第一个buffer始终 是满载的),从而可以大大提高读取效率。
其次,采用本发明,由于第一緩沖器中所存放的数据始终满足熵解码比 特解析操作所需,所以可以避免在读取过程中出现两个buffer的拼接操作, 也可以在一定程度上提高熵解码的效率。
再者,随着技术的发展,目前出现了 64位处理器和64位总线,可以一 个周期载入64比特(而以前的微处理器总线是32位的,即使设置64位的 buffer,读取64bit数据也需要两个周期),因此,在本发明的一个优选实施 例中,引入了64位的整数变量,即buffer (a)和buffer (b)均为64位。这 样,当buffer (a)中的bit数据不满载时,才需要读取外部码流数据到buffer (a)和(b)中,而buffer (a)的存储空间为现有技术的两倍,从而可以显 著减少读取外部码流数据到buffer中的次数(例如,为32位buffer的一半), 进一步提高熵解码的效率。


图l是现有4支术一种4见频解码过程的示意图2是现有技术一种熵解码緩冲器结构示意图3是本发明一种视频码流的熵解码方法的步骤流程图4是本发明一种用于解码视频数据的熵解码器的结构框图5是图4所示实施例中一种熵解码緩冲器的结构示意图。
具体实施例方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图 和具体实施方式
对本发明作进一步详细的说明。
本发明的核心思想是因为熵解码的比特解析操作一般都是针对第一緩 冲器进行的,所以本发明采用 一定措施保证第 一緩冲器中所存放的数据始终 是满载的,而熵解码每次的比特解析操作所读取的数据不会超过一定阈值
8(例如,32位),即不会超过第一緩冲器满载时所存放的数据,因此应用本发明后,在读取数据前就没有必要对第 一緩冲器中所存放的数据是否满足所需而进行判断了,即节省了判断才喿作,提高了熵解码比特解析才喿作的效率。
参照图3,示出了本发明一种针对视频码流的熵解码方法实施例,具体可以包括以下步骤
步骤301、依据视频码流确定本次熵解码需要读取的比特位数N; N小于等于阈值M;
对于视频码流的不同部分(例如,数据头和数据包,以及不同的数据包等等),每次熵解码的比特解析操作所需读取的数据量也会不相同,但是在现有技术下,都不会超过32位。那么,本发明的阈值M就可以取值32比特位。本发明所采用的第一緩沖器和第二緩沖器的存储空间需要大于,或者至少等于阈值M(例如,32比特位),这样才能保证第一緩冲器中所存放的数据足够一次比特解析操作的。
当然,如果技术条件发展了,例如,每次读取的数据量不会超过64位,则本发明的阈值M也可以取值为64比特位。
步骤302、从第一緩冲器中读取本次熵解码所需的N比特数据,进行熵
步骤303、将第一緩冲器中剩余的数据前移至起始位置,以及将第二緩冲器中的数据填充到第一緩冲器的空闲比特位,以保证第一緩沖器满载;步骤304、当满足预置条件时,读取外部视频码流数据至第二緩沖器;其中,所述第一緩冲器、第二緩冲器的存储空间大于或等于M比特位。本发明的核心之一就在于如何确保第一緩冲器中所存放的数据始终是满载的,步骤303就是一个重要措施。在每次数据读取之后,第一緩冲器中被读取的位置就会空出来(或者说可以被覆盖了 ),将第一緩沖器中剩余的数据前移至第一緩沖器的起始位置,并将第二緩冲器中的数据填充到第一緩冲器的空闲比特位。这样,可以保证下次读取操作仍然从第一緩冲器的起始位置开始操作,并且由于将第二緩沖器中的 一部分数据补充到第 一緩冲器中了 ,从而只要第二緩沖器中还有数据,就可以保证第一緩冲器始终是满载的。但是随着读取操作的进行,第二緩冲器中的数据被不断的搬移到第 一緩沖器中,第二緩冲器中的空闲比特位越来越多,当第二緩冲器中没有数据可供搬移,就可能导致第一緩冲器可能出现非满载的情形。解决这个问题的一个简单方式就是,每次比特解析操作之后,就读取外部视频码流的数据到第二緩冲器中, 一直保证第二緩沖器也是满载。当然,该方式可能会具有比较频繁的读取外部凄t据的次数。
针对上述情况,在本发明的另一优选实施例中,提供了一个较佳的解决
方案当第二緩沖器中没有数据(全部为空)时,读取外部视频码流数据至第二緩沖器。
由于本发明的核心之一就是确保第一緩冲器是满载的,也就是说,可以允许第二緩沖器具有一定的空闲比特位,没有必要每次都读取外部数据进来。只要当第二緩沖器为空时,再读取外部视频码流数据至第二緩冲器,填满第二緩沖器即可。上述的改进措施,可以提高比特解析读取操作的效率。一方面上述方案可以减少读取外部数据操作的次数,另一方面,由于每次都是针对整个为空的第二緩冲器进行读取操作,即每次只需读取固定比特的数据(第二緩沖器的容量)即可,提高读取效率。
也就是说,在这个优选实施例中,本发明为了保证第一緩沖器的满载所采用的措施包括 一是每次读取后对第一 buffer中的数据进行前移,以确保第一 buffer从起始位置就存放有未读数据;二是当搬移后发现第一 buffer出现了空闲比特位,则将第二 buffer的数据填充至第一 buffer,第二 buffer的数据不需要搬移。当第二緩沖器为空时,无法向第一 buffer提供补充数据,则读取外部视频码流数据,填满第二 buffer;如果此时,第一 buffer还存在空闲比特位,则将第二 buffer的数据填充至第一 buffer的空闲比特位即可。
总之,本发明并不限制具体的读取外部数据的触发条件,只要能够保证在每次熵解码比特解析读取操作时,第一緩沖器都是满载的,都是本发明可以采用的;本发明在此无法——列举各种可行的具体条件(例如,当第一緩沖器出现空闲时,读取外部数据等等),不再详述。
10由于现有技术条件下,每次熵解码的比特解析读取操作通常都不会超过
32位,所以在本发明的一个实施例中,所述第一緩沖器和第二緩冲器的存储空间可以均为32比特位。
优选的,在当前的主流计算机中,已经支持64位的总线操作和微处理器运算(一个周期可以读取64比特),也就是说,对于本发明的应用,可以优选釆用64比特位的緩冲器。
需要说明的是,当本发明的緩沖器采用64位时,可以显著减少读取外部视频码流数据的次数(为32位的一半),从而进一步提高熵解码比特解析操作的效率。
参照图4,示出了本发明一种熵解码器的实施例,具体可以包括以下部

运算单元401,用于依据所读取的本次熵解码所需的N比特数据,进行熵解码;N小于等于阈值M;
第一緩冲器402和第二緩冲器403,用于緩存外部^L频码流的数据,所述第一緩沖器402、第二緩沖器403的存储空间大于或等于M比特位;
比特解析单元404,所述比特解析单元404进一步包括
比特位数确定模块4041,用于依据视频码流确定本次熵解码需要读取的比特位数N;
读取模块4042,用于从第一緩冲器402中读取本次熵解码所需的N比特数据,传送给运算单元401;
移动模块4043,用于将第一緩沖器402中剩余的数据前移至起始位置,以及将第二緩沖器403中的数据填充到第一緩冲器402的空闲比特位,以保证第一緩冲器满载;
更新模块4044,用于在满足预置条件时,读取外部视频码流数据至第二緩沖器403。
例如,参照图5,假设第一緩沖器402和第二緩沖器403的存储空间均为64位。如果读取模块4042本次从第一緩冲器402中读取了 8个比特位的数据(0-7位),则将第一緩冲器402中剩余的数据(8-63位)统一前移,从第一緩冲器402的起始位置(0位)开始存放;并将第二缓冲器403中的数据(64-71位)填充到第一緩冲器402空闲出来的比特位(56-63位)。即经过移动模块4043操作后的第一緩冲器0-63的存储位上都是满载的,而第二存储器空闲有8个比特位。
对于更新模块4044,其可以在每次移动模块4043执行操作后,就读取外部视频码流数据,以保证第一緩冲器满载。或者,更新模块4044,也可以当第二緩冲器中没有数据(全部为空)时,读取外部^见频码流数据至第二緩冲器的空闲比特位,再由第二緩冲器用自己緩存的数据填充第一緩沖器,以保证第一緩冲器满载。
在本实施例的具体应用中,所述第一緩沖器和第二緩沖器的存储空间可以均为32比特位;或者,所述第一緩沖器和第二緩冲器的存储空间均为64比特位。
需要说明的是,本发明所述的熵解码器以及熵解码方法,可以用于AVS、H.264、 MPEG-2、 MPEG-4等各种常用的视频解码标准。
相应的,本发明还提供了一种视频解码芯片实施例,其具体可以包括熵解码器,帧内或帧间预测部件,反扫描部件,反量化部件,反余弦变换部件和图像重构部件,其中,所述熵解码器可以包括以下部件
运算单元,用于依据所读取的本次熵解码所需的N比特数据,进行熵解码;N小于等于阈值M;
第一緩冲器和第二緩冲器,用于緩存外部视频码流的数据,所述第一緩冲器、第二緩冲器的存储空间大于或等于M比特位;
比特解析单元,所述比特解析单元进一步包括
比特位确定模块,用于依据视频码流确定本次熵解码需要读取的比特位数N;
读取模块,用于从第一緩冲器中读取本次熵解码所需的N比特数据,传
12送给运算单元;
移动模块,用于将第一緩冲器中剩余的数据前移至起始位置,以及将第二緩冲器中的数据填充到第一緩沖器的空闲比特位,以保证第一緩沖器满载;
更新模块,用于在满足预置条件时,读取外部视频码流数据至第二緩冲器,以保证第一緩冲器满载。
优选的,所述更新模块读取外部数据的预置条件可以为当第二緩冲器为空时,读取外部一见频码流数据至第二緩冲器。如果此时第一緩冲器还存在空闲比特位,则再由移动模块将第二緩沖器中緩存的数据填充第 一緩冲器,以保证第一緩冲器满载即可。
上面对本芯片实施例的熵解码器进行了详细介绍,对于其他部件,由于属于本领域技术人员所熟知的,所以在此不再赘述。需要说明的是,对于本发明所提供的视频解码芯片,其可以应用于手机电视、具有移动电视接收功能的卫星导航仪、摄像机、照相机、投影仪、PDA、 MP4、 GPS、 USB接收棒、独立接收机等移动终端。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于熵解码器和解码芯片实施例而言,由于其与熵解码方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种视频码流的熵解码比特解析方法、 一种熵解码器以及一种一见频解码芯片,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1、一种视频码流的熵解码比特解析方法,其特征在于,包括依据视频码流确定本次熵解码需要读取的比特位数N;N小于等于阈值M;从第一缓冲器中读取本次熵解码所需的N比特数据,进行熵解码;将第一缓冲器中剩余的数据前移至起始位置,以及将第二缓冲器中的数据填充到第一缓冲器的空闲比特位,以保证第一缓冲器满载;当满足预置条件时,读取外部视频码流数据至第二缓冲器;其中,所述第一缓冲器、第二缓冲器的存储空间大于或等于M比特位。
2、 如权利要求1所述的方法,其特征在于,所述预置条件为第二緩沖器为空。
3、 如权利要求l所述的方法,其特征在于,所述第一緩冲器和第二緩沖器的存储空间均为32比特;或者,所述第一緩冲器和第二緩沖器的存储空间均为64比特。
4、 如权利要求1所述的方法,其特征在于,所述熵解码应用于H.264解码过程。
5、 一种熵解码器,其特征在于,包括运算单元,用于依据所读取的本次熵解码所需的N比特数据,进行熵解码;N小于等于阈值M;第一緩沖器和第二緩冲器,用于緩存外部视频码流的数据,所述第一緩冲器、第二緩沖器的存储空间大于或等于M比特位;比特解析单元,所述比特解析单元进一步包括比特位数确定模块,用于依据视频码流确定本次熵解码需要读取的比特位数N;读取模块,用于从第一緩冲器中读取本次熵解码所需的N比特数据,传送给运算单元;移动模块,用于将第一緩冲器中剩余的数据前移至起始位置,以及将第二緩沖器中的数据填充到第一緩冲器的空闲比特位,以保证第一緩沖器满载;更新模块,用于在满足预置条件时,读取外部视频码流数据至第二緩冲器。
6、 如权利要求5所述的熵解码器,其特征在于,所述预置条件为第二緩沖器为空。
7、 如权利要求5所述的熵解码器,其特征在于,所述第一緩冲器和第二緩沖器的存储空间均为32比特位;或者,所述第一緩冲器和第二緩沖器的存储空间均为64比特位。
8、 如权利要求5所述的熵解码器,其特征在于,所述熵解码器应用于H.264解码过程。
9、 一种视频解码芯片,其特征在于,包括熵解码器,帧内或帧间预测部件,反扫描部件,反量化部件,反余弦变换部件和图像重构部件,其中,所述熵解码器包括运算单元,用于依据所读取的本次熵解码所需的N比特数据,进行熵解码;N小于等于阈值M;第一緩沖器和第二緩冲器,用于緩存外部视频码流的数据,所述第一緩沖器、第二緩沖器的存储空间大于或等于M比特位;比特解析单元,所述比特解析单元进一步包括比特位确定模块,用于依据视频码流确定本次熵解码需要读取的比特位数N;读取^^块,用于从第一緩冲器中读取本次熵解码所需的N比特数据,传送给运算单元;移动模块,用于将第一緩冲器中剩余的数据前移至起始位置,以及将第二緩冲器中的数据填充到第一緩冲器的空闲比特位,以保证第一緩冲器满载;更新模块,用于在满足预置条件时,读取外部视频码流数据至第二緩冲器。
10、 如权利要求9所述的视频解码芯片,其特征在于,所述预置条件为第二緩冲器为空。
全文摘要
本发明提供了一种视频码流的熵解码比特解析方法,包括依据视频码流确定本次熵解码需要读取的比特位数N;N小于等于阈值M;从第一缓冲器中读取本次熵解码所需的N比特数据,进行熵解码;将第一缓冲器中剩余的数据前移至起始位置,以及将第二缓冲器中的数据填充到第一缓冲器的空闲比特位,以保证第一缓冲器满载;当满足预置条件时,读取外部视频码流数据至第二缓冲器;其中,所述第一缓冲器、第二缓冲器的存储空间大于或等于M比特位。本发明通过保证buffer(a)(即第一个buffer)满载的方式,进行bit数据的读取,能够显著减少判断buffer(a)中剩余的数据是否大于或等于N的操作,从而可以大大提高读取效率。
文档编号H04N7/26GK101505424SQ20091007681
公开日2009年8月12日 申请日期2009年1月21日 优先权日2009年1月21日
发明者季鹏飞 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1