画面内预测处理的制作方法

文档序号:7644033阅读:193来源:国知局

专利名称::画面内预测处理的制作方法
技术领域
:本发明涉及视讯信号的处理,特别是涉及能在画面内预测(intra-frameprediction)及解块(deblock)运算时减少处理宏块(macroblock)的时间。
背景技术
:目前视讯影像已被广泛使用,尤其是撷取成数字格式的视讯影像,举例来说,广播电视、DVD等等常见数字视讯的应用,数字视讯可以储存于特定的介质中,如DVD,亦可经由频道波段于各地间传输,刚撷取的数字视讯具有非常庞大的其数据,将原始的数字视讯信号压缩便可缩小其数据容量,避免占用大量的储存介质及传输频道。目前所知的有ITU-T建议的H.264标准或先进视讯编码(AdvancedVideoCoding,AVC)等数字视讯标准,其使用各种不同的压缩技术以有效压缩数据,在每一个画面的视讯数据中,所有的像素排成宏块(macroblock)阵列,每一个宏块包括16×16的像素,可以再区分为8×8或4×4的子图块(sub-block),其中,画面尺寸、纵横比、视讯分辨率以及显示屏幕等因素均会影响一个画面的宏块数量,如果是在高画质电视(Highdefinitiontelevision,HDTV)上播放高画质(highdefinition,HD)视讯,则画面的尺寸为1920×1088像素,如果是分成16×16的宏块,则高画质视讯包含120×68个宏块,也就是总共有8,160个宏块。至于压缩,压缩数据的技术有像素预测技术,主要是比较目前像素及先前已处理像素的亮度值与色度值,举例来说,如果是「画面间(inter-frame)」预测,则是比较像素与其它画面的像素,可以得到代表预测值与实际值间的差异的差余(residual)值;而如果是「画面内(intra-frame)」预测,像素则是与同画面内的其它像素进行比较,以决定差余值。可以同时进行画面间预测或画面内预测,然后选择期中具有最小的差余,就能以最少的位数来储存近乎无损的原始视讯信号。图1A-1D说明四个根据H.264标准处理16×16宏块的画面内预测的例子,图1A说明第一种预测计算,称为模式0(垂直),使用和16×16宏块最上方的像素邻近的16个像素H,因为上方的宏块已经过计算,所以已知这些邻近的像素H的值,在模式0中,每一行会用到对应的一个像素H的值,如图中箭头所示的方向图1B说明模式1(水平),使用和16×16宏块最左行邻近的16个像素V,因为左方的宏块已经过计算,已知这些邻近的像素V的值,每一列会用到水平方向所对应的一个像素V的值。图1C说明模式2(DC),需要计算16个像素H和16个像素V的平均值,宏块的每一个像素均使用这个平均值进行处理。图1D说明模式3(平面),使用16个像素H和16个像素V计算对角方向的值,另外还需要右上方宏块的16个像素D,以计算对角方向的右下方的像素。因此,如图1A-1D所示,在画面内预测中,根据H.264进行处理的宏块需要另外三个宏块的数据,图2画出了这三个宏块,其中宏块10代表要处理的宏块,则另外还需要与宏块10相邻的左侧宏块12、上方宏块14、以及右上方的宏块16来提供预测值,因为之前已计算出宏块12、14、16的值,所以可以使用这些值来预测要处理的宏块10,如前所述,使用预测值后,计算代表预测值和实际值间的差异的差余值,如果画面内预测的预测值比画面间预测好,那么图1A-1D中的四种模式哪一个具有最小差余值,就能提供最佳的预测值,可做为宏块10的值,并指定使用的是哪一种画面内模式,这些值经过储存或传输,稍后利用差余值经由译码回复原始影像。图3说明高画质影像画面中16×16宏块的排列方式,图中的画面有120宏块宽以及68宏块高,总共有8160个宏块,这些宏块以光栅扫描(rasterscan)的次序进行处理,即从左上角开始,依序处理第一列,然后再进行下一列,一次处理一个宏块,一直处理到最后位置8159的宏块,依照这个光栅扫描的次序,这个特定宏块10必须要存取宏块12、14、16(如图2)来得到预测值,如此总共要处理8160次,会浪费两个画面间的大部分时间,因为浪费了很多时间处理所有的宏块,此数字视讯领域亟需一手段能解决传统处理技术的不便,同时能减少视讯处理的时间。
发明内容本发明披露了一种用于处理视讯数据的系统和方法,如一种管理宏块的系统,该系统包含一配置装置,用于根据一画面的视讯数据建立多个宏块;这个系统同时包含一缓冲器,其内分成多个寄存器,其中每一个寄存器可以储存至少一个宏块;这个系统还包含多个处理单元,每一个处理单元都能处理至少一个宏块;这个系统还同时包含有存储器,可以储存经处理单元处理后的宏块。配置装置同时可依据宏块在画面中的位置,将这些宏块放入对应的寄存器中。本发明同时披露了一种方法,其步骤为提供一画面中的视讯数据,将其分成多个宏块,于一实施例中,宏块以光栅扫描顺序排列;然后改变待处理宏块的顺序,从光栅扫描顺序重排成另一新顺序,依照此新顺序可同时处理至少两个宏块;然后即以此新顺序处理这些宏块。本发明的系统、方法、特征及优点可藉由下列图式及详细说明而有更深入的了解,同时,于说明中所包含的其它系统、方法、特征及优点亦受如附申请专利范围的保护。这里所披露了实施例的多方观点可参考下列图式以获得更深入的了解,图式中的组件并未限定其比率,仅用于清楚说明本发明的原则,各图中相似的标号代表对应的部分。图1A~图1D说明现有用于16×16宏块的画面内预测技术。图2表示现有计算待处理宏块的预测值所需的邻近宏块。图3表示现有的待处理宏块阵列中的排列顺序。图4表示根据本发明,宏块阵列经过重排,使得待处理宏块有新的顺序。图5为本发明实施例的一的宏块处理装置的方块图。图6为图5实施例中的配置装置的方块图。图7为根据本发明实施例的一的宏块处理方法的流程图。附图符号说明宏块10、12、14、16宏块处理装置20撷取缓冲器22配置装置24缓冲器26处理单元28-128-228-3...28-L存储器30控制装置32数据取得模块40宏块生成模块42通过号次决定模块44分配模块4具体实施方式本发明提供一种以更有效率的方式处理视讯的系统及方法,当一画面中的视讯数据已分成多个宏块准备进行画面内预测处理,可根据宏块的位置将其分组以进行平行处理,藉由这种方式,本发明的实施例可同时处理两个以上的宏块,不像传统的方法一次只能处理一个宏块,利用这种平行处理系统,画面内预测计算可以大幅缩减用于处理宏块的时间,与传统的处理技术相比,甚至可以达到32倍的效率,换言之,利用本发明的系统及方法,只需要现有技术总处理时间的3%即可。图4说明高画质影像画面具有120宏块宽以及68宏块高,即1920像素宽及1088像素高,图中同时表示出待处理宏块的新顺序,于此实施例中,宏块为16像素宽及16像素高的像素阵列(16×16),虽然本实施例用于高画质画面,但是本发明亦可应用至任何尺寸、分辨率、纵横比的画面,另外,虽然本例使用16×16宏块,不过当然也可应用其它适当尺寸的宏块。为了判断可以同时处理哪些宏块,先观察各宏块间的依附关系,举个例子,因为H.264标准的画面内预测程序是根据如图2所示的宏块关系,当依附的宏块的值已知、或是依附宏块的位置超出画面,便可以处理当前的宏块,因为画面左上角的宏块(0,0)并没有有效的依附宏块可供预测,因此会包含未压缩值。经过观察,可知第二列的宏块是可以和第一列的某些宏块同时处理的,而第三列的宏块是可以和第二列的某些宏块同时处理的,依此类推。同样地,一些分处连续列中的宏块也是可以同时处理的,例如,当处理完宏块(0,0)和(1,0)后,就可以处理宏块(0,1),因为其依附宏块均为已知或超出画面,依此观点,可以同时或基本上同时处理宏块(2,0)和(0,1),同样地,也可以同时处理宏块(3,0)和(1,1),并观察到可以同时处理三个宏块(4,0)、(2,1)和(0,2),以此方式持续进行下去,当处理到靠近画面中央时,可以同时处理很多的宏块,此例中可超过60个。根据H.264的标准,16×16的宏块需要前述三个邻近的宏块,不过,也可以依附其它的宏块,例如,可以使用两个宏块来预测一个宏块,分别是左边和上面的宏块,不管如何,即使使用其它的依附方式或模式,都可以根据这个原则调整平行处理的规则,甚而可达到更高阶的平行处理。图4除了利用括号标出宏块的坐标值,另外还有一个包含小数点的数值,小数点前的数字代表「通过(pass)」号次,这里说的「通过」表示在某一段时间中同时处理一个或多个宏块的情形,于此例中,具有同样通过号次的宏块会分给不同的处理单元进行平行处理,这个处理程序可能是编码(压缩)或译码(解压缩);而小数点后的数字代表某一通过处理中的宏块号码,例如,在第一通过处理中,只有处理宏块1.1;在第二通过处理中,处理的是宏块2.1;在第三通过处理中,处理的是宏块3.1和3.2;依此类推,在第十通过处理中,处理的是宏块10.1、10.2、10.3、10.4和10.5。宏块的通过号次可以由下式决定P=X+2Y+1式(1)其中,P表示通过号次,X和Y则是宏块的坐标值,如左上角的(0,0)即表示X=0和Y=0总通过数则可由下式获得N=W+2H2式(2)其中,N代表总通过数,W是画面宽度的宏块数目,H是画面高度的宏块数目。这里称可以同时处理宏块的最大数量为最大平行阶数,可由下列算式得知当W+1>2H,则L=H式(3)否则,L=INT((W+1)/2)式(4)其中,L即为最大平行阶数,INT(x)则是表示取x的整数值。举例来说,高画质视讯为1920像素宽及1088像素高,如果定义宏块为16×16宏块,则W为120、H为68,对宏块(5,3)来说,X=5、Y=3,代入式(1)中,可得通过号次P为12。利用式(2),可知高画质视讯的总通过数N为254,这个数目和现有技术利用串行处理的方式所需的8160个通过程序相比,少了很多。另外,因为W+1没有大于2H,利用式(4)可以得到高画质视讯的最大平行阶数为60,因此,只要准备60个处理单元,而每一个处理单元都能处理一个宏块,就可以同时处理60个宏块。由图4可知,宏块的处理顺序和现有技术不一样,本发明不再利用光栅扫描顺序,而是根据通过号次来决定顺序,因此,通过号次代表了时间上的处理顺序,具有较低通过号次的宏块会比较早处理,而具有同样通过号次的宏块则为同时处理。这里补充说明一点,本发明所称「同时」可以指「实质上同时」、「时间上有重迭」、或本领域的技术人员能明了的其它含义,均不脱本发明的精神及范畴。图5是本发明实施例中的宏块处理装置20的方块图,于此实施例中,宏块处理装置20包含撷取缓冲器22(此非必要组件)、配置装置24、缓冲器26(此后称为重新排序缓冲器)、处理单元28-1,28-2,28-3,...,28-L、存储器30、以及控制装置32。重新排序缓冲器26包含多个通过号次寄存器P1,P2,...,PN,每一个通过号次寄存器用于储存具有相同通过号次的所有宏块。于某些实施例中,宏块处理装置20可以是数据压缩或数据编码装置,如此,撷取缓冲器22可以直接从视讯来源(如摄影机)接收未压缩的视讯数据,则处理单元28就是数据压缩单元或是数据编码单元,可以将这些数据进行压缩及编码,以利后续的储存及传输。另一方面,于另一实施例中,宏块处理装置20可以应用至其它装置,协助将接收的已编码或压缩的视讯数据回复成适合显示装置的视讯格式,于此实施例中,宏块处理装置20可以是数据解压缩或数据译码装置,那么处理单元28便是数据解压缩单元或数据译码单元,在此数据解压缩或数据译码装置中,撷取缓冲器22也是非必要组件,或是可为接收已压缩或编码数据的输入缓冲器。在图5中,撷取缓冲器22接收的视讯数据可为撷取的原始视讯数据,视讯数据会暂时储存在撷取缓冲器22中,等到配置装置24可排序所需数据,配置装置24从撷取缓冲器22接收画面数据,并将每一个画面的数据分成多个宏块,配置装置24可视需要产生适当大小的宏块,如4×4、4×8、8×8、8×16、16×16等等。当一个画面的宏块都已生成完毕,则配置装置24便会决定宏块要放在重新排序缓冲器26的哪一个通过号次寄存器中,于此实施例中,通过号次寄存器将对应各宏块的通过号次,举例来说,如果宏块的通过号次是3,那么便会储存在通过号次寄存器P3中,配置装置24可以利用式(1)以及每一个宏块的坐标位置计算其通过号次,另一实施方式则是根据每一宏块的位置预先计算其通过号次,然后储存在配置装置24的查找表(look-uptable)中。在配置装置24将宏块放入重新排序缓冲器26中的通过号次寄存器中的同时,处理单元28即可进行操作,或者也可以等到配置装置24将整个画面的宏块放置到通过号次寄存器中,处理单元28再开始动作。控制装置32控制通过号次寄存器,使其将储存的宏块馈入处理单元28中,必须注意,在通过号次寄存器中的宏块数量即为同时用来处理这个程序的处理单元28的数量,例如,图4中的小数点后数字即代表这个宏块是某个通过号次的第几个宏块,这个数字可以用来决定哪一个处理单元要用来处理这个宏块,举例来说,针对宏块18.5,这个宏块应储存在通过号次寄存器P18,然后第五个处理单元28-5便会从通过号次寄存器P18取得这个宏块进行处理。通过号次寄存器P1仅储存第一个宏块1.1(0,0),并且在第一通过处理时将宏块1.1传送给第一处理单元28-1,第一处理单元28-1处理完这个宏块后,将这些值传送到存储器30。于一实施例中,如果处理单元28是压缩或编码单元,则存储器30中的压缩或编码数据就可送至长效储存装置(例如DVD)、或是送至适当的传输信道(例如有线电视输出频道)。于另一实施例中,如果处理单元28是译码(解压缩)单元,则译码(解压缩)数据就暂时储存在存储器30(例如画面缓冲器)中,供显示装置播放。第一通过处理完毕的后,控制装置32指示第二通过号次寄存器P2将宏块2.1馈入处理单元28-1中。在下一个通过处理时,控制装置32指示第三通过号次寄存器P3将两个宏块3.1和3.2分别馈入处理单元28-1和28-2中,因此,两个处理单元28-1和28-2可以同时处理这两个宏块3.1和3.2。依此方式重复N次,N即为式(2)所决定的总通过号次。如果重新排序缓冲器26的通过号次寄存器的数量不足以暂存式(3)或式(4)所决定的最大平行阶数L、又或是处理单元28的数量少于最大平行阶数L,那么控制装置32可以将一个通过处理程序分成两个以上的通过处理程序,并依此分配通过号次寄存器及处理单元28。如图5所示,通过号次寄存器与处理单元28的间以一既定方式连接,像是每一个通过号次寄存器都会和第一处理单元28-1连接,而每一个通过号次寄存器都会和该次通过处理中所通过的宏块数量相同的处理单元28连接,因此,只有存有最大数量L的宏块的通过号次寄存器会和最后的处理单元28-L连接。于另一实施例中,可以改变宏块至处理单元28的分配方式,使得可处理单元28的负载较为平均,因此,可以改变前述通过号次寄存器和处理单元28的连接方式。当处理单元28根据已处理过的宏块来计算处理目前的宏块,处理单元28会从存储器30存取所需的相关数据,每一个处理单元28都可以从存储器30撷取与先前处理宏块有关的数据,通常配置装置24会依据处理单元28从存储器30存取已处理宏块的数据的能力,将宏块放入对应的寄存器中,根据H.264标准,当处理单元28处理宏块(3,2)时,处理单元28会存取有关宏块(2,2)、(3,1)及(4,1)的资料,于其它实施例中,可以定义其它的依附关系,从存储器30存取相关宏块的数据。图6是图5所示配置装置24的一实施例的方块图,于此实施例中,配置装置24包含数据取得模块40、宏块生成模块42、通过号次决定模块44以及分配模块46。当然,配置装置24可包含其它组件的组合及排列,以便用于储存宏块,并根据宏块在视讯画面中的位置配置宏块。于图6的实施例中,数据取得模块40从撷取缓冲器22取得数据,该数据可为包含撷取影像中影像讯号的数字视讯数据,数据取得模块40还会接收有关影像的大小、尺寸、分辨率等的指示,然后数据取得模块40会将这些数据传给宏块生成模块42,一次一个画面,宏块生成模块42再将视讯画面转为宏块,并赋予每一个宏块坐标,标明宏块在画面中的位置。通过号次决定模块44接收这些宏块,然后根据其坐标及既定/可定的顺序决定通过号次,如前所述,通过号次是宏块被处理的顺序,在每一个通过程序中,可以处理至少一个宏块,所谓的处理包含各种形式的运算或功能及其组合,举个例子,处理可以是依据特定标准或规格压缩视讯数据。通过号次决定模块44会根据宏块的坐标及宏块间的依附关系计算出各宏块的通过号次。分配模块46接收宏块、宏块坐标以及其通过号次,然后分配模块46将宏块分配到图5的重新排序缓冲器26的通过号次寄存器中,如此,即可根据宏块的依附关系和某一时段间的处理能力来储存宏块,这个分配程序会根据通过号次决定模块44所决定的通过号次来进行。图5和图6所揭示的宏块处理装置20及其组件可以硬件、软件、固件或其组合等方式实施,于一实施例中,宏块处理装置20可为储存在存储器中的软件或固件,由适当的指令执行系统来执行,如果是以硬件的方式呈现,则宏块处理装置20可包含离散逻辑电路、特殊应用集成电路(applicationspecificintegratedcircuit,ASIC)、可编程门阵列(programmablegatearray,PGA)、现场可编程门阵列(fieldprogrammablegatearray,FPGA)等等组件。图7是说明根据本发明实施例的一的宏块处理方法50的流程图,于步骤52中,此处理方法50先接收视讯数据,所称视讯数据可以是视讯撷取装置所撷取的数据,或是已压缩过的储存数据,当然,可于步骤52中一次接收一个画面的视讯数据,或是于步骤54中将视讯数据分成好几个画面,每一个画面的视讯数据被转成宏块,可适当定义宏块的尺寸,比如说16×16的像素阵列。在步骤56中,改变宏块的处理顺序,这个重新排序程序提供了一个新顺序,和现有的光栅扫描顺序不同,不再是从画面的左上角沿着扫描线的方向从左向右、由上而下,一直处理到右下角的最后位置,于步骤56建立的新顺序的原则是当所需的依附宏块处理完毕,便尽早处理已可处理的宏块,同时亦与宏块在画面中的位置有关。步骤58根据步骤56中所决定的新顺序将宏块分配到不同的缓冲器,将在同一时间处理的宏块会被送至相同的缓冲器。于步骤60中,依照步骤56决定的顺序处理宏块,所建立的顺序可同时处理于步骤58中储存于同一个缓冲器内的两个以上的宏块(步骤58),根据此一观点,因为系由不同或平行的处理单元同时处理两个以上的宏块,所以这种处理又称的为平行处理。图7的流程图说明了本发明的宏块处理方法,亦教示一种宏块处理软件的架构、功能及操作方式,就这一点而言,每一个步骤方块可以代表一个模块、程序段、或是部份程序代码,其中可包含一个或数个可执行的指令,以进行特定的逻辑功能,请注意图7的顺序并非固定,熟悉此技艺人士可稍加变化,或是可让某些步骤同时进行,甚至反向执行,只要能符合本发明的功能即可。于某些实施例中,本方法可为一宏块处理程序,包含一连串的可执行指令,以进行特定的逻辑功能,这个程序可以储存于计算机可读介质中,供一指令执行系统、设备或装置利用,这里所指的「计算机可读介质」是一种可容纳、储存、传输、传播或传送程序的介质,以供该指令执行系统、设备或装置利用,计算机可读介质可以是电子式,磁感式、光学式、电磁式、红外线式、半导体式或其它方式的系统、设备、装置或传播介质。上述实施例仅用于说明可能的实施方式,依据上述实施例可加以变化及修正而不脱本发明的原则,所有此类变化及修正均属本发明的范畴而受本发明的权利要求所保护。权利要求1.一种排列宏块的系统,该系统包含一配置装置,用于根据一画面的视讯数据生成多个宏块;一缓冲器,其包含多个寄存器,每一寄存器用于储存至少一宏块;多个处理单元,每一处理单元用于处理至少一宏块;以及一存储器,用于储存所述处理单元针对所述宏块的处理结果,其中,该配置装置根据所述宏块于该画面中的位置,将所述宏块放入该缓冲器中对应的寄存器内。2.如权利要求1所述的系统,其中该配置装置包含一数据取得模块,用以取得该视讯数据;一宏块生成模块,用于根据该画面的该视讯数据生成所述宏块;一通过号次决定模块,用于决定一宏块的通过号次,以指示该宏块该于何时处理;以及一分配模块,用于根据所述宏块的通过号次,分配所述宏块至对应的寄存器中;其中所述处理单元同时处理具有相同通过号次的两个以上的宏块。3.如权利要求1所述的系统,还包含一控制装置,用于指示一寄存器储存两个以上的宏块,以便之后传送至不同的处理单元。4.如权利要求3所述的系统,其中该不同的处理单元同时处理该两个以上的宏块。5.如权利要求1所述的系统,其中每一该处理单元用于从该存储器内读取与一先前处理宏块有关的数据。6.如权利要求5所述的系统,其中该配置装置是根据一处理单元从该存储器内读取与该先前处理宏块有关数据的能力,将所述宏块放入对应的寄存器中。7.如权利要求1所述的系统,其中该配置装置是根据一处理单元同时处理该两个以上宏块的能力,将所述宏块放入对应的寄存器中,其中同时处理该两个以上宏块的该能力是根据该两个以上宏块对先前处理宏块的依附关系。8.如权利要求1所述的系统,其中于一画面内预测计算中,该宏块于该画面中的位置将决定所述宏块对该先前处理宏块的该依附关系。9.如权利要求1所述的系统,其中该系统位于一编码装置中,用于压缩视讯数据,其中该系统位于一译码装置中,用于解压缩视讯数据。10.一种方法,其包含下列步骤提供一画面的视讯数据,将其分成以一光栅扫描顺序排列的多个宏块;改变所述宏块的处理顺序,从该光栅扫描顺序变更至一新顺序,该新顺序可同时处理至少两个宏块;以及以该新顺序处理该宏块。11.如权利要求10所述的方法,还包含下列步骤根据该新顺序分配所述宏块至多个寄存器,其中储存于相同寄存器中的宏块将被同时处理。12.如权利要求10所述的方法,还包含下列步骤计算每一宏块的通过号次,该通过号次代表处理的宏块的顺序。13.如权利要求12所述的方法,其中该通过号次P是利用公式P=X+2Y+1获得,其中X和Y代表该宏块位于该画面中的坐标位置。14.如权利要求13所述的方法,其中处理该宏块的步骤还包含同时处理具有相同通过号次的多个宏块。15.如权利要求10所述的方法,其中处理该宏块的步骤还包含存取待处理宏块所依附的先前处理宏块相关的数据,以进行画面内预测;其中处理该宏块的步骤包含压缩该宏块的数据。16.如权利要求10所述的方法,其中处理该宏块的步骤包含解压缩该宏块的已压缩数据。全文摘要本发明披露了一种排列及处理视讯数据宏块的系统和方法,于一实施例中,该方法是将一画面的视讯数据分成以一光栅扫描顺序排列的多个宏块,该方法还包含改变宏块的处理顺序,从光栅扫描顺序变更成为一新顺序,新顺序能同时处理至少两个宏块,宏块经过重新排序后,即处理该至少两个宏块。文档编号H04N7/32GK101047850SQ20071000625公开日2007年10月3日申请日期2007年2月7日优先权日2006年2月17日发明者库玛斯·萨伯丁申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1