专利名称:一种视频编码方法
技术领域:
本发明涉及多媒体技术领域,尤其涉及一种视频编码方法。
技术背景随着经济的发展和人民生活水平的提高,以视频为主多媒体技术得到迅猛 的发展和普及,数字视频编码系统的需求量越来越大。视频编码标准规定了一 套完整的视频压縮编码算法工具集,是视频压縮技术的核心。世界上已经有多家国际组织和公司提出了自己的视频压縮编码算法,其中H. 264/AVC(以下简 为H. 264)是最为先进的视频编码标准之一。它不用众多的选项,获得比H. 263、 MPEG2好得多的压縮性能;增强了对各种信道的适应能力,采用"网络友好" 的结构和语法,有利于对误码和丢包的处理;应用范围较宽,以满足不同速率、 不同解析度及不同传输(存储)场合的需求,同时保持良好的主、客观画面质量。采用数字信号处理器(Digital Signal Processor, DSP)进行视频编码 是一种高性价比的视频编码系统实现方案。DSP具有较强的计算能力,尤其适 用于数字视频编码等计算密集的实时应用领域,较之芯片等硬件实现具有可升 级,易扩展等众多优点。但是由于凡264算法的复杂性,单个DSP往往不能满足标清、高清环境下 H. 264视频编码的实时数据处理要求。实际中经常使用两个或者多个DSP进行 并行处理,实现标清及至高清的比264实时编码。在这类系统中若并行处理的 调度方法不当,可能会因原始图像数据的传输和重构参考帧数据的同步而消耗 大量的DSP的运算资源,而且并行处理的DSP越多,每个DSP的开销也越大, 这会降低编码效率,限制系统性能提升,更为严重的可能会使增加DSP的运算与开销相抵,影响系统设计的成败。 发明内容本发明的目的在于提出一种视频编码方法,适用于采用多DSP方案的 H.264编码系统,能够提高多DSP编码系统的编码效率和系统性能,有效地解 决H. 264编码程序在多DSP系统平台上运行的效率问题。为达此目的,本发明采用以下技术方案一种视频编码方法,包括以下步骤A、 确定条带高度,按光栅扫描顺序将图像分割为不少于2个的包含所述 图像左右垂直边界的条带,将所述条带的数据按照编号顺序发送给相应的条带编码DSP;B、 所述条带编码DSP对输入的条带数据进行编码,生成条带级比特流, 同时启动下一帧待编码图像对应条带数据的传输,如果存在上相邻条带,在编 码到上条带搜索范围以下时启动上相邻条带参考图像数据的传输;C、 所述条带编码完成,如果存在下相邻条带,启动下相邻条带参考图像 数据的传输;D、 调整下一帧待编码图像条带高度,并转至步骤A,直到所有条带完成 编码;E、 对所有条带编码DSP的生成码流进行处理。步骤A中,第一帧图像和第二帧图像的条带高度根据条带编码DSP的个数 平均分配,之后图像的条带高度根据以下公式得出=甜","+A5^m-1, Ho' iV ,AST/, 0= 0, A5/^,尸16, / e [1,Z/m线iV],/ e
we[O,oo] "e
其中SPU为第m帧图像第n条带的高度,ASHm, 为第m帧图像第n条带6的高度调整值,W为图像的宽度,H为图像的高度,并可被16整除,N为条带 编码DSP的个数,Hmb为宏块高度。计算出StU后,对其上下界进行限制,公式如下-<formula>formula see original document page 7</formula>其中L为下界值,U为上界值。 步骤B还包括以下步骤如果为第一帧图像,按由上到下的顺序延迟相应迟滞时间逐个启动条带编 码DSP。所述迟滞时间由以下公式得出<formula>formula see original document page 7</formula>其中n为条带序数,TD。,n为第n条带对应的迟滞时间,SH。,。为图像的第n 条带的高度,W为图像宽度,B为传输参考图像数据的总线带宽。步骤B中,如果当前图像用做参,考帧,且当前条带存在上相邻条带,在完 成上相邻条带参考图像数据的编码后,启动上相邻条带参考图像数据的传输, 所述参考图像数据的传输优先级高于原始图像数据的传输。步骤C中,如果当前图像用做参考帧,且当前条带存在下相邻条带,在完 成当前条带数据的编码后,启动下相邻条带参考图像数据的传输,步骤D中, 下一帧待编码图像条带高度调整值由以下公式得出<formula>formula see original document page 7</formula>其中TE^为第m帧图像第n条带的编码时间,T&为第m帧图像中所有条带编码时间的平均值。所述条带编码DSP由主控CPU进行调度,主控CPU与条带编码DSP采用 PCI总线方式连接,进行数据交换和通讯。所述条带编码DSP采用总分或分立方式采集待编码条带的数据,以保证同 一时间内的编码条带属于同一帧图像。所述条带编码DSP对每个宏块编码的同时,逐个宏块或逐个宏块行进行去 块滤块处理,每个条带进行运动估计的范围在初始上下条带高度的一半范围以 内。采用了本发明的技术方案,可以控制两个或者多个DSP联合工作,减少甚 至消除多个DSP编码时因数据传输和同步而导致的等待时间开销,能够动态调 整每个DSP的负载,确保每个DSP都能发挥其强大的数据处理能力,实时进行 H.264编码,提高了多DSP编码系统的性能。
图l是本发明具体实施方式
中视频编码的流程图。
具体实施方式
下面结合附图并通过具体实施方式
来进一步说明本发明的技术方案。 多DSP编码系统包括主控CPU、图像采集DSP和若干个的条带编码DSP, 以及PCI总线和图像采集总线等数据通讯通道。主控CPU控制外设、输出编码数据及完成人机交互功能。图像采集DSP 及条带编码DSP组成编码子系统,接受主控CPU的控制,完成原始音视频信号 的采集、多DSP调度和编码输出等功能。主控CPU、图像采集DSP和条带编码 DSP之间通过PCI总线连接,进行命令和数据的传送,以保证系统内部数据通信的充足带宽和扩展性。PCI总线上还提供扩展插槽,能过PCI扩展板可以灵 活地增减条带编码DSP的数量。主控CPU和每个DSP都在内存中设消息区和数据共享区,通过PCI可以互 相访问,其中消息区又分为命令区和应答区,CPU/DSP定时査询本地的命令区, 根据命令的发出者和优先级做出响应,并返回应答到命令发送者的应答区。DSP 的数据区有参考图像区和编码图像区,图像采集DSP承担一部分条带编码工作 并兼有图像数据采集和分发的功能,条带编码DSP只用做条带编码,主控CPU 数据共享区为码流组装区。每个条带编码DSP上运行相同的编码程序,负责一个条带数据的编码,条 带编码参数由第一个条带编码DSP(在本系统中是图像采集DSP)计算后发送给 每个DSP,编码数据直接发送到主控CPU的数据共享区中进行组装。DSP的PCI传输采用DMA方式,可以在编码的同时进行数据传输。图l是本发明具体实施方式
中视频编码的流程图。如图1所示,视频编码流 程包括以下步骤步骤IOI、图像采集DSP通过视频输入设备采集一帧待编码的原始图像,按 光栅扫描顺序划分若干个的包含图像左右垂直边界的条带并计算条带高度,通 过PCI总线开始将各个条带的原始图像数据按照编号顺序发送给相应的条带编 码DSP。初始给每个条带编码DSP分配相同高度条带,之后根据此前编码时间动态 调整条带的高度,以平衡每个DSP的负载达到最优的调度效果。因开始第二帧 编码时只能得到第一个条带编码时间数据,所以第二帧的和带划分与第一帧相 同。本步骤中图像采集DSP通过PCI总线采用乒乓方式向条带编码DSP的编码图 像区中写入原始的条带数据,首先写入l区,开始编码l区条带后,下一帧待编 码条带放入2区,如此循环切换,采用乒乓存储方式可以减小等待输入图像的时间。步骤102、如果是第一帧图像,图像采集DSP计算每个条带编码DSP启动 的迟滞时间,并延迟相应的时间逐个启动条带编码DSP。延迟一定时间是为了 在当前条带编码结束前,所需要的上相邻条带参考图像数据传输完毕,无等待 地直接开始下一条带数据的编码。只在启动时延迟一定时间,之后编码完毕立 即进行下一条带编码,通过调整条带高度自动进行迟滞时间的调整。迟滞时间由以下公式得出<formula>formula see original document page 10</formula> 其中n为条带序数,TD。,。为第n条带对应的迟滞时间,SH。.n为图像的第n 条带的高度,W (以像素为单位)为图像宽度,B为传输参考图像数据的总线 带宽。步骤103、计算下一帧图像的条带高度的调整值。为达到最优的调度效果, 需平衡每个DSP的运算负载,使不同的条带编码DSP编码同一帧图像的每个条带 的时间基本相同,这里采用调整条带高度的方式调整DSP的运算负载。因在当 前条带编码结束前,下一条带原始图像数据己经传送完毕,所以需要使用上一 帧图像每个条带的编码时间数据来计算下一帧图像的条带的高度调整值。图像的条带高度根据以下公式得出<formula>formula see original document page 10</formula> 其中Sl为第m帧图像第n条带的高度,ASHm. 为第m帧图像第n条带 的高度调整值,W (以像素为单位)为图像的宽度,H (以像素为单位)为图像 的高度,并可被16整除,N为条带编码DSP的个数,Hmb为宏块高度。计算出SIi,n后,对其上下界进行限制,公式如下"y 離(,"6)x16, U,7(豐 "6)x16 , 其中L为下界值,U为上界值。步骤104、启动下一条带原始图像数据的传输,数据区进行乒乓轮换。步骤105,当前条带在编码到上相邻条带搜索范围以下后,因上相邻条带 搜索范围内的参考图像数据已经生成,立即启动参考图像数据的传输,DSP则 继续进行当前条带内数据的编码。由于整帧图像划分为若干个条带分给不同的DSP进行处理,每个条带编码 DSP对应一个条带,在进行运动搜索时需要其他条带的参考图像数据,每个DSP 使用不同的内存,无法直接得到其他条带的参考图像数据,若限制条带边缘的 宏块搜索范围,会造成码流增大,图像质量下降,甚至解码后会看出条带边界。 对不同条带的参考图像数据进行同步后,就能解决这些问题。步骤106、当前条带编码结束,如果当前图像用做参考帧,且当前条带存 在下相邻条带,在完成当前条带数据的编码后,启动下相邻条带参考图像数据 的传输,下一帧待编码图像条带高度调整值由以下公式得出A5凡 = 16xcez7(7^-2'"—x!)r(2 16WAMwe[O,iV-l], me [2,oo]其中TEm.n为第m帧图像第n条带的编码时间,TAm为第m帧图像中所有条带编码时间的平均值。同时每个条带编码DSP将各自条带编码生成的比特流,开始写入主控CPU 的共享内存区的码流组装区中。主控CPU将收到的所有条带级比特流按照顺序 输出。条带编码DSP采用总分或分立方式采集待编码条带的数据,以保证同一时 间内的编码条带属于同一帧图像。条带编码DSP对每个宏块编码的同时,逐个宏块或逐个宏块行进行去块滤 块处理,每个条带进行运动估计的范围在初始上下条带高度的一半范围以内。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局 限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变 化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该 以权利要求的保护范围为准。
权利要求
1. 一种视频编码方法,其特征在于,包括以下步骤A、确定条带高度,按光栅扫描顺序将图像分割为不少于2个的包含所述图像左右垂直边界的条带,将所述条带的数据按照编号顺序发送给相应的条带编码DSP;B、所述条带编码DSP对输入的条带数据进行编码,生成条带级比特流,同时启动下一帧待编码图像对应条带数据的传输,如果存在上相邻条带,在编码到上条带搜索范围以下时启动上相邻条带参考图像数据的传输;C、所述条带编码完成,如果存在下相邻条带,启动下相邻条带参考图像数据的传输;D、调整下一帧待编码图像条带高度,并转至步骤A,直到所有条带完成编码;E、对所有条带编码DSP的生成码流进行处理。
2、 根据权利要求1所述的一种视频编码方法,其特征在于,步骤A中, 第一帧图像和第二帧图像的条带高度根据条带编码DSP的个数平均分配,之后 图像的条带高度根据以下公式得出-<formula>formula see original document page 2</formula>其中SFU为第m帧图像第n条带的高度,ASHm.n为第m帧图像第n条带 的高度调整值,W为图像的宽度,H为图像的高度,并可被16整除,N为条带 编码DSP的个数,Hmb为宏块高度。
3、 根据权利要求2所述的一种视频编码方法,其特征在于,计算出SPU 后,对其上下界进行限制,公式如下<formula>formula see original document page 3</formula>其中L为下界值,U为上界值。
4、 根据权利要求1所述的一种视频编码方法,其特征在于,步骤B还包 括以下步骤如果为第一帧图像,按由上到下的顺序延迟相应迟滞时间逐个启动条带编 码DSP。
5、 根据权利要求4所述的一种视频编码方法,其特征在于,所述迟滞时 间由以下公式得出<formula>formula see original document page 3</formula>其中n为条带序数,TD。,n为第n条带对应的迟滞时间,SH。,。为图像的第n 条带的高度,W为图像宽度,B为传输参考图像数据的总线带宽。
6、 根据权利要求1所述的一种视频编码方法,其特征在于,步骤B中, 如果当前图像用做参考帧,且当前条带存在上相邻条带,在完成上相邻条带参 考图像数据的编码后,启动上相邻条带参考图像数据的传输,所述参考图像数 据的传输优先级高于原始图像数据的传输。
7、 根据权利要求1所述的一种视频编码方法,其特征在于,步骤C中, 如果当前图像用做参考帧,且当前条带存在下相邻条带,在完成当前条带数据 的编码后,启动下相邻条带参考图像数据的传输,步骤D中,下一帧待编码图 像条带高度调整值由以下公式得出<formula>formula see original document page 3</formula>其中TE^为第ra帧图像第n条带的编码时间,TA 为第m帧图像中所有条 带编码时间的平均值。
8、 根据权利要求1所述的一种视频编码方法,其特征在于,所述条带编 码DSP由主控CPU进行调度,主控CPU与条带编码DSP采用PCI总线方式连接, 进行数据交换和通讯。
9、 根据权利要求1所述的一种视频编码方法,其特征在于,所述条带编 码DSP采用总分或分立方式采集待编码条带的数据,以保证同一时间内的编码 条带属于同一帧图像。
10、 根据权利要求1所述的一种视频编码方法,其特征在于,所述条带编 码DSP对每个宏块编码的同时,逐个宏块或逐个宏块行进行去块滤块处理,每 个条带进行运动估计的范围在初始上下条带高度的一半范围以内。
全文摘要
本发明公开了一种视频编码方法,将图像分割为不少于2个条带,将条带的数据发送给相应的条带编码DSP;条带编码DSP对输入的条带数据进行编码,生成条带级比特流,同时启动下一帧待编码图像对应条带数据的传输,如果存在上相邻条带,在编码到上条带搜索范围以下时启动上相邻条带参考图像数据的传输;条带编码完成,如果存在下相邻条带,启动下相邻条带参考图像数据的传输;调整下一帧待编码图像条带高度,对所有条带编码DSP的生成码流进行处理。采用了本发明的技术方案,能够提高多DSP编码系统的编码效率和系统性能,有效地解决H.264编码程序在多DSP系统平台上运行的效率问题。
文档编号H04N7/26GK101272497SQ20081010599
公开日2008年9月24日 申请日期2008年5月7日 优先权日2008年5月7日
发明者余晓建, 欣 李, 邹箭宇 申请人:北京数码视讯科技股份有限公司