一种软硬件配合的视频解码器实现方法

文档序号:7668871阅读:204来源:国知局
专利名称:一种软硬件配合的视频解码器实现方法
技术领域
本发明涉及一种数字视频编解码技术领域的方法,具体是一种用于视频解码器设计的整 体实现方案。
背景技术
随着视频压縮标准的相继制定,视频编解码器的应用日益广泛,目前己涉及广播、通信、 电视、娱乐等诸多领域。AVS作为我国自主制定的第二代数字音视频信源标准,其编码效率 与国际标准MPEG-4/H.264相当,因其具有国有知识产权,得到大力推行。
随着诸多新标准逐渐产业化,数字电视也逐渐开始由标清向准高清、高清开始过渡。为 实现高清视频的实时解码,普遍采用集成电路设计来实现。但新的压缩标准,如H.264、 AVS 等算法,引入多项新技术,在实现优质画面的同时也带来了更高的运算复杂性。若单靠软件 实现,其运算量过大,就目前的CPU来看是难以实现的。若只靠硬件实现,对于实际应用所 需要的高纠错、高性能、高画质等要求,硬件设计复杂并且难以实现。所以,为了满足解码 效率和灵活性方面的要求,势必要求软件、硬件系统配合,共同完成解码任务。
现有的软硬件配合多见于两种方式。
一种是软件封装、硬件实现,其实质仍然属于硬件实现,只是向应用提供了一些APIs 函数以便于使用。其缺点不仅在于硬件实现的复杂性,也在于对视频协议的依赖性,可重复 利用性降低,不利于多标准的实现。
另一种方式是软件参与了所有语法元素的解析,而解码功能块(如反量化、反变换、 预测等模块)由硬件来实现。这种方式虽然降低了硬件的复杂性,提高了实现的灵活性,但 对于高清图像来说,数据量剧增所导致的软件硬件交互时间的增加,势必加重CPU的负担。 这种实现大都需要专用的CPU配合解码,这样势必增加系统的复杂性和成本。

发明内容
本发明克服上述两种设计方法中的不足,提出一种用于视频解码器设计的实现方案,降 低硬件设计部分的复杂度,增强设计的灵活性,并且提高解码器的运行效率。
本发明采用的技术方案包含了码流预处理功能块、图像级解析功能块、条带级解码功能 块(此处称为条带级解码功能块是指所处理数据的最高级别信息为slice头信息)和软件控 制功能块,如图l所示,其中
所述码流预处理功能块,对输入码流按照相应格式进行解封装处理,同时以起始码作为标记将码流分解成不同的分段,并以链表等组织形式进行存储,为了便于软件查找所需要的 码流信息,将码流预处理过程中所得的起始码值、起始码出现的位置以及其他相关的辅助信 息以队列等形式单独存储,并与码流分段结构以指针等信息相关联。
所述图像级解析功能块,对视频协议所规定的图像级信息进行解析,当遇到第一个slice 时将之后的数据传递给条带级解码功能块进行解码。所述图像级解析功能块采用软件进行解 析,但也可通过使用相应硬件加速单元配合解析,提高解码效率。
所述条带级解码功能块,当图像级解析功能块解码到第一个slice时传递给本模块,本 模块负责对slice、宏块进行解析,之后对残差进行解码,并根据不同的标准完成图像解码、 重建。此部分运算量很大,采用硬件进行处理。
所述软件控制功能块,完成错误分析、错误恢复处理及发送控制命令的任务,协调所述 图像级解析功能块和条带级解码功能块的协同工作,在调度下图像级解析功能块和条带级解 码功能块均可独立、并行的运行。
所述图像级解析功能块完成图像级的参数的纠错处理,由于采用软件来实现,因此可选 用更为灵活复杂的算法;由于条带级解码功能块从slice —级开始解析而不是通常的宏块级, 因此硬件也可以实现一些简单的错误恢复,当出现不可恢复的错误时硬件可以采用一些掩蔽 算法,搜索到下一个slice起始位置继续解码。
由于大部分常用的视频编解码标准(如MPEG2、 H.264、 AVS等)都有slice级别,所以 以slice作为软硬件的划分可适用于多种标准,但实际并不局限于slice头,可以根据所适 应视频协议的规定灵活制定,以最小的具有起始码的可定位的单元均可。
所述图像级解析功能块与条带级解码功能块以图像slice进行划分,slice级别之上(包 含序列头信息、图像头信息、扩展头信息等等语法元素)属于图像级解析功能块;slice级 别之上(包含slice头信息、宏块头信息、参差信息等等语法元素)属于条带级解码功能块;
本发明所述的视频解码器的工作流程如下,如图3所示
首先,码流预处理功能块对输入码流进行解封装的同时进行起始码的检测,并以起始码 作为标记将码流分段及辅助信息进行存储,便于软件查找所需要的码流信息。
然后,软件控制功能块启动图像级解析功能块,图像级解析功能块完成序列头信息、图 像头信息、扩展头信息等语法元素的解析,并对可能出现的错误进行处理和恢复。
然后,软件控制功能块根据从图像级解析功能块得到的信息,决定是否启动图像解码, 若启动,则调用条带级解码功能块进行解码。同时根据码流预处理功能块提供的起始码定位 信息找到下一个起始码的位置,启动图像级解析功能块解析下一幅图像的信息。
最后,当条带级解码功能块完成解码任务后,软件控制功能块负责将解码图像送到显示设备,并将图像级解析功能块己经解析完下一幅图像的数据传给条带级解码功能块进行第二 帧图像解码。
从上述流程可以看出,在确定软件完成特定的解析工作之后,便可以调度硬件开始进行 解码,同时软件可以开始下一幅图像的解析,这样当前图像数据硬件解码与下一帧图像解析 便可以同时进行。
所述软件控制功能块的错误分析/错误恢复处理与所述条带级解码功能块同步进行,软件 根据错误分析发出相应指令以控制所述条带级解码功能块的行为。如图4所示为软件控制功 能块的状态图,其中命令1是向图像级解析功能块发出的命令,命令2是向条带级解码功能 块发出的命令,命令2有解码/跳帧/重启动等多种类型。
本发明使用软硬件相互配合的方式实现,软件与硬件彼此独立,并行处理,而硬件服从 于软件控制、调度。解码过程可以实现在图像级上的流水作业(如图2所示)。
本发明以slice头作为划分解码功能块的点,考虑到了 slice级以上码流信息大多与图 像相关,处理复杂,并可应用较复杂的纠错功能,实现更强大的功能。并且根据图像级解析 得到的信息决定是否进行图像解码,在出现较大误码的情况下不进行解码,这样可有效的降 低系统负担并提高显示效果。对于条带级的图像数据信息使用硬件解码,可充分利用硬件实 现的优点,提高解码的效率。
本发明所提出的码流预处理功能块,实现了起始码段与段之间的分离,确保在当前图像 解码前定位下一个图像级以上起始码的位置,为实现解码的图像级流水提供了条件。从图2 可以看出,本发明所能达到的解码效率将仅受控于硬件解码速度,从而为软件实现纠错提供 了较大的时间预留,大大提升了解码效率,增强了纠错能力,因此具有显著的优点和技术效 果。


图l是本发明的功能框图2是本发明所实现的图像级流水图3是本发明中解码部分流程图。
图4是软件控制功能块的状态分析示意图。
具体实施例方式
下面结合附图和一个具体实施的案例对本发明作进一步详细的说明。 为了实现在硬件解码的同时开始下一帧图像头信息的解码,必须要求在硬件解码之前定位下一个图像头起始码(或者图像头之上级别头起始码)的位置,本发明通过码流预处理功 能块,在码流解析(即解包头)的同时进行起始码的检测,为实现数据高速处理, 一般采用 硬件加速实现的方式。如图1所示,通过码流预处理后的数据和相应辅助信息被分别存储于 两块不同的缓存区,数据分段以起始码作为标记并按链表的结构方式进行存储,为了便于后 续功能块对起始码以及其他辅助信息的访问,对解析过程中所得的数据段的位置、起始码字 节以及其他信息(用于解码或者播放等用途)以队列的形式进行存储,并通过地址信息与实 际的数据链表相关联。整个码流预处理流程独立于解码流程。
解码流程以码流预处理功能块所输出的数据链表以及起始码队列作为输入而进行,包括 图像级解析功能块、条带级解码功能块和软件控制功能块,具体的步骤包括
1) 以起始码为标志解码头信息;(图像级解析功能块)
2) 对解码得到的参数进行软件纠错处理;(软件控制)
3) 重复执行l)、 2)直至搜索到下一帧图像的起始码(或者以上级别头起始码),等待硬件;
4) 硬件完成上一次解码任务后,若有新的解码命令,则开始新的解码;否则等待命令。
5) 硬件开始解码当前图像后,回到l);(条带级解码功能块) 下面对上述步骤做辅助的说明。
整个解码过程以软件控制作为主线,在符合一定条件的情况下发送新起始码解码的命令 或图像解码的命令,两种命令的接收者分别为图像级解析功能块和条带级解码功能块。解码 器初始化时由软件控制单元发出第一个起始码解码的命令,其后图像级解析功能块开始执行 命令,软件控制单元等待该命令执行完毕后执行纠错分析处理,在无错误的情况下继续发送 下一个起始码解码命令直至条件满足发送图像解码命令;条带级解码功能块接收到图像解码 命令后,开始硬件解码,此时软件控制单元无需等待硬件解码完毕即可发送下一个起始码解 码命令。
上述发送图像解码命令的条件为图像级解析功能块完成了下一个图像头或图像级别以 上头结构的解码。
从上述过程可以看出,图像级解析功能块与软件控制单元处于审行关系,可以纳入软件 控制过程中,也可使用专门的硬件来执行。条带级解码功能块使用纯硬件方式来实现,降低 了整个解码过程由于软硬件交互而产生的额外开销,特别是对于多slice编码的码流,其性 能提高尤为明显。但对于不同的视频协议来说,这种划分并不是唯一的(例如,若每帧图像 只有一个slice,则可以使用软件来解所有sHce头)。对AVS来说,由于slice头结构中信 息量少,并且纠错方式相对单一,因此用硬件实现其解码比较容易,故选择以slice作为两 个功能块的划分点。对于大部分常用的视频编解码标准(如MPEG2、 H. 264、 AVS等)都有slice级别,所以 以slice作为软硬件的划分可适用于多种标准,但实际并不局限于slice头,可以根据所适 应视频协议的规定灵活制定,以最小的具有起始码的可定位的单元均可。
通过上述说明可以看出,本发明相对于串行解码头信息与数据信息的实现方案来说,具 有明显的效率提高,而软件的适时参与使其在时间开销和灵活性上得到折中。
以上实施案例仅用以说明本发明而并非限制本发明所描述的技术方案,因此,尽管本说 明书参照上述的各个实施例对本发明已进行了详细的说明,但本领域的普通技术人员应当理 解,仍然可以对本发明进行修改或者等同替换,而一切不脱离本发明的精神和范围的技术方 案及其改进,均应涵盖在本发明的权利要求范围当中。
权利要求
1. 一种软硬件配合的视频解码器实现方法,包含了码流预处理功能块、图像级解析功能块、条带级解码功能块和软件控制功能块,其特征在于1)所述码流预处理功能块,对输入码流按照相应格式进行解封装处理,同时以起始码作为标记将码流分解成不同的各个段,将码流分段以链表等组织形式进行存储;2)所述图像级解析功能块与条带级解码功能块以图像slice进行划分,slice级别之上属于图像级解析功能块;slice级别之下属于条带级解码功能块;3)所述图像级解析功能块,对视频协议所规定的图像级信息进行解析,当遇到第一个slice时将之后的数据传递给条带级解码功能块进行解码,此部分采用软件进行解析,但也可通过使用相应硬件加速单元配合解析,提高解码效率;4)所述条带级解码功能块,当图像级解析功能块解码到第一个slice时传递给条带级解码功能块,条带级解码功能块负责对slice、宏块进行解析,之后对残差进行解码,并根据不同的标准完成图像解码、重建,此部分采用硬件进行处理;5)所述软件控制功能块,完成错误分析、错误恢复处理及发送控制命令的任务,协调所述图像级解析功能块和条带级解码功能块的协同工作,在调度下图像级解析功能块和条带级解码功能块均可独立、并行的运行。
2. 如权利要求1所述的一种软硬件配合的视频解码器实现方法,其特征在于,以slice作 为软硬件的划分标准,但并不局限于slice头,可以根据所适应视频协议的规定灵活制 定,以最小的具有起始码的可定位的单元均可。
3. 如权利要求1所述的一种软硬件配合的视频解码器实现方法,其特征在于,在确定软件 完成特定的解析工作之后,便可以调度硬件开始解码,同时软件可以开始下一幅图像的 解析,这样当前图像数据硬件解码与下一帧图像解析便可以同时进行,软件与硬件彼此 独立,并行处理,而硬件服从于软件控制、调度。
4. 如权利要求1所述的一种软硬件配合的视频解码器实现方法,其特征在于,图像级解析 功能块完成图像级参数的纠错处理,由于采用软件来实现,因此可选用更为灵活复杂的 算法;由于条带级解码功能块从slice —级开始解析而不是通常的宏块级,因此硬件也 可以实现一些简单的错误恢复,当出现不可恢复的错误时硬件可以采用一些掩蔽算法, 搜索到下一个slice起始位置继续解码。
全文摘要
本发明属于数字视频编解码技术领域,所提出的一种软硬件配合的视频解码器实现方案主要包含以下内容通过码流预处理功能块,以起始码为标记将原始码流分解成若干分段,以特定结构进行存储;将视频解码器分为图像级解析和条带级解码,并使用不同的方法处理,其中图像级解析使用软件处理(对于不同应用可同时考虑使用硬件加速),条带级解码使用硬件处理;软件负责调度、纠错等复杂多变的处理,硬件负责解码等大运算量的处理,软硬件协同工作,并行处理数据。本发明在保证整体性能的前提下,降低了硬件设计的复杂度,增强了实现的灵活性,使之能够应用于不同的视频解码器;软硬件的并行处理也使在更低的系统要求下实现高清解码器成为可能。
文档编号H04N7/26GK101466037SQ20071030373
公开日2009年6月24日 申请日期2007年12月21日 优先权日2007年12月21日
发明者何文学, 王大旗 申请人:北京中电华大电子设计有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1