CN101686388A - 视频流编码装置及其方法 - Google Patents

视频流编码装置及其方法 Download PDF

Info

Publication number
CN101686388A
CN101686388A CN200810165686A CN200810165686A CN101686388A CN 101686388 A CN101686388 A CN 101686388A CN 200810165686 A CN200810165686 A CN 200810165686A CN 200810165686 A CN200810165686 A CN 200810165686A CN 101686388 A CN101686388 A CN 101686388A
Authority
CN
China
Prior art keywords
macro block
buffer
unit
group
handling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200810165686A
Other languages
English (en)
Other versions
CN101686388B (zh
Inventor
鹿宝生
刘星
刘家俊
高怿之
王佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN200810165686.4A priority Critical patent/CN101686388B/zh
Priority to US12/557,252 priority patent/US8218642B2/en
Publication of CN101686388A publication Critical patent/CN101686388A/zh
Application granted granted Critical
Publication of CN101686388B publication Critical patent/CN101686388B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

提出了一种视频流编码装置及其方法,该视频流编码装置包括:分割部件,用于将视频流中的帧划分成多个处理单位,每个处理单位包括多个宏块;以及编码部件,用于并行地对每个处理单位中的多个宏块进行编码。可以在编码部件执行量化步骤中对同一处理单位中的各个块使用相同的量化参数。通过本发明的装置和方法,解除了宏块间的依赖性,在对各个宏块进行并行编码的同时,保持了高速率控制精度。

Description

视频流编码装置及其方法
技术领域
本发明一般涉及视频信号处理,更具体地涉及视频流编码装置及其方法。
背景技术
近年来,在视频编码应用中,对编码速度的要求越来越高。但是,传统的编码方法例如MPEG2,H.263等难于在多处理器系统上并行化。
传统的编码处理是把输入的视频流的帧划分为宏块(Macro Block,MB),以宏块为单位进行运动估计(Motion Estimation,ME),然后执行离散余弦变换(DCD)、量化(Q)处理、逆量化(Q-1)和逆离散余弦变换(IDCT),量化处理后的数据被进行可变长度编码(VLC),最后得到编码后的数据流。
编码方法难于并行化的原因在于,在编码处理的一些过程之间存在相互依赖性。这在速率控制处理上尤其明显,因为为了执行速率控制,当前宏块的量化处理中的量化参数必需依赖于时间上在前的宏块的编码结果。
为了解决对视频编码的并行化问题,在“A Scalable off-line MPEG-2 videoencoding scheme using a multiprocessor”,Ishfaq Ahmad,Shahriar M.Akramullah,Ming L.Liou,Muhanmmad Kafil,和“A parallel MPEG-2 video encoder withlook-ahead rate control”,Tiwari,P.Viscito,E.,Thomas J.Watson中提出了基于GOP(Group of Picture,画面组)对离线MPEG-2编码进行并行化的技术。但是,该技术仅能够离线编码,而且基于GOP的方法的速率控制精度不高。另外,在“Architecture of a Fast Motion Estimator for MPLEG Video Coding”,NamLing,Rajesh Advani中提出了对于单个宏块的运动估计处理进行并行化的方法。该方法以串行的方式处理多个宏块,而且其不能对于单个宏块的可变长度编码进行并行化。
发明内容
本发明的目的是提供一种对视频流进行实时并行编码的装置和方法。
为此,根据本发明一个方面,提出了一种视频流编码装置,可以包括:分割部件,用于将视频流中的帧划分成多个处理单位,每个处理单位包括多个宏块;以及编码部件,用于并行地对每个处理单位中的多个宏块进行编码。
根据本发明的另一个方面,提供了一种视频流编码方法,包括:分割步骤,将视频流中的帧划分成多个处理单位,每个处理单位包括多个宏块;以及编码步骤,用于并行地对每个处理单位中的多个宏块进行编码。
根据本发明各个实施例的装置和方法,可以消除宏块之间的依赖性,并提供了与实现平台无关的通用解决方案。
另外,通过将一个处理单位中对宏块的编码处理分解为第一部分,即运动估计、离散余弦变换、量化、逆量化、逆离散余弦变换,以及第二部分,即可变长度编码,以流水线的形式对此两部分进行处理,进一步提高了编码速度。由此解决并减轻了内存非共享多核体系结构的有限本地内存的局限。
此外,扩展的双缓冲技术的应用,确保缓冲器容量对于VLC操作是足够的,且可以同时进行从可变长度编码到缓冲器的输出以及从缓冲器到另一设备的输出,因而提高了编码性能。
附图说明
通过结合附图对本发明各个实施例的详细描述,本领域的技术人员可以更好地理解本发明的上述和其它方面、特点和优点,其中在所有附图中使用相同或相似的附图标记来表示相同或者相似的部件,在附图中:
图1是示出了根据本发明一个实施例的视频流编码装置的框图;
图2是示出了根据本发明一个实施例的处理单位的示意性图示;
图3是示出了根据本发明另一个实施例的视频流编码装置的框图;
图4是示出了根据本发明再一个实施例的视频流编码装置的框图;
图5是示出了根据本发明一个实施例的两组协作处理元件的处理操作之间的关系的图示;
图6是示出了根据本发明一个实施例的扩展的双缓冲器工作状态图;和
图7是示出了根据本发明一个实施例的视频流编码方法的流程图。
具体实施方式
下面将结合附图详细描述本发明的具体实施例。如果考虑到对某些相关现有技术的详细描述可能会混淆本发明的要点,则不会在这里提供其详细描述。
图1示出了根据本发明一个实施例的视频流编码装置100的构成框图。如图1所示,视频流编码装置100可以包括分割部件101和编码部件102。分割部件101用于将视频流中的帧划分成多个处理单位,其中每个处理单位可以包括多个宏块。编码部件102用于并行地对每个处理单位中的多个宏块进行编码,并输出编码后的码流。
下面将参考图2对上述处理单位进行描述。
图2是示出了根据本发明的一个实施例的处理单位的构成示意图。如图2所示,可以将视频流中的一帧分割为多个处理单位,每个处理单位中可以包括多个宏块。在本发明的实施例中,通过编码部件102对一个处理单位中所包含的各个宏块并行进行编码处理,由此获得相应的编码后的码流。在已有技术中,是以宏块为单位、按照时间顺序对视频流中的每一帧进行编码处理。而根据本发明的一个实施例,是将视频流的每一帧中按时间顺序排列的所有宏块分为若干个部分,每个部分构成一个处理单位,每个处理单位中含有连续排列的多个宏块。排列在前的处理单位称为先前处理单位,排列在后的处理单位可以称为后续处理单位。
根据本发明实施例的处理单位的大小不对本发明的技术范围构成限制,每个处理单位中可以是一个条块(slice),也可以包括多个条块,其中每个条块由一行宏块构成。每个处理单位所包括的条块的数目可以根据编码速率的控制精度的需要而任意设置。图3示出了根据本发明另一个实施例的视频流编码装置的框图。
如图3所示,根据本发明另一实施例的视频流编码装置300包括分割部件301和编码部件302。分割部件301将所输入的视频流中的每一帧划分成多个处理单位,并将所划分的各个处理单位顺序输入到编码部件302中,其中每个处理单位中包括多个宏块。编码部件302并行地对每个处理单位中的多个宏块进行编码,并输出编码后的码流。
具体地,编码部件302可以包括多个协处理元件SPE 1~N,这里假定该多个协处理元件是N个,并且正在对第M个处理单位中的宏块(MB)进行并行处理。
在一个实施方式中,编码部件302将第M个处理单位中的多个宏块均等地分成N个组,并将所划分的组分别分配给编码部件302所包括的各个协处理元件SPE 1~N,以供该多个协处理元件SPE 1~N对所分配的宏块并行地执行运动估计、离散余弦变换、量化、去量化、逆离散余弦变换、以及可变长度编码等处理。
例如,第0组宏块被分配给协处理元件SPE0,由协处理元件SPE0对第0组宏块中的宏块MB00、宏块MB01、宏块MB02、...进行运动估计、离散余弦变换、量化、去量化、逆离散余弦变换、以及可变长度编码;第1组宏块被分配给协处理元件SPE1,由协处理元件SPE1对第1组宏块中的宏块MB10、宏块MB11、宏块MB12、...进行运动估计、离散余弦变换、量化、去量化、逆离散余弦变换、以及可变长度编码等处理。类似地,第N组宏块被分配给协处理元件SPE N,由协处理元件SPE N对第N组宏块中的宏块MBn0、宏块MBn1、宏块MBn2、...进行运动估计、离散余弦变换、量化、去量化、逆离散余弦变换、以及可变长度编码等处理。
本领域技术人员可以知道,以上的实施方式是一种优选的实施方式,也可以采用协处理元件SPE 1-SPEN进行以下处理中的一种或多种:运动估计、离散余弦变换、量化、去量化、逆离散余弦变换、以及可变长度编码等,而由主处理部件或者其它部件进行其它处理,这样也可以实现并行处理的目的。甚至,可以用部分协处理元件进行上述处理中的部分处理,而用另外的协处理元件进行上述处理的其它处理。所有这些相关的变化,可以实现并行处理的技术方案,并都在本发明的保护范围之内。
另外,编码部件302将第M个处理单位中的多个宏块分成N个组,每个组中的宏块的数量也可以不是均等的,同样也可以实现对宏块的并行处理。
当各个协处理元件SPE 1~N对第M个处理单位中的各个宏块进行编码处理时,由缓冲器(图3中未示出,将在后面结合图6进行详细说明)存储对每个宏块进行可变长度编码的输出,获得该第M个处理单位的量化参数,以用于编码部件302对后续处理单位——例如下一个处理单位M+1——中的各个宏块进行编码处理。
在对第M个处理单位中的多个宏块进行编码处理时,在各个协处理元件SPE 1~N中对所有宏块使用相同的量化参数。也就是说,编码部件302对同一处理单位中的各个宏块使用相同的量化参数执行量化处理。该量化参数是参考先前处理单位的编码结果而计算得到的,例如一种方法可以是,编码部件302对第M-1个处理单位中的各个宏块进行可变长度编码后,使用MPEG-2的Test Model 5中的码率控制算法,根据实际比特和目标比特计算虚拟缓存的满度,然后再依据该虚拟缓冲的满度选择第M个处理单位的量化参数,即第M个处理单位中对所有宏块使用的相同的量化参数。
因为一个处理单位中所有宏块共享相同的量化参数,所以各个协处理元件SPE 0,SPE 1,...,SPE N可以并行地对所分配的宏块执行编码处理。经各个协处理元件SPE 0,SPE 1,...,SPE N编码处理后的视频流被合并起来作为编码后的码流输出,而且可变长度编码后的输出被作为重建后的参考帧反馈给编码部件302,用作处理后续处理单位时的参考。
例如,当前处理单位M的量化参数是参考先前处理单位的编码结果而计算得到的,根据本发明的一个实施例,该先前处理单位优选为M-1。但是本发明并不局限于此,根据本发明的其它实施例,该先前处理单位也可以是M-2,M-3等。另外,需要说明的是,每组宏块中所包含的宏块数目没有特别限定,可以为一个或任意多个。
另外,根据本发明的另一个实施例,在分割部件301和编码部件302中还可以包括相关的存储器或者缓冲器(未示出),以对分割部件301以及编码部件302中的各个元件之间所传递的数据进行缓冲操作。
图4示出了根据本发明再一个实施例的视频流编码装置的框图。
如图4所示,根据本发明再一个实施例的视频流编码装置400包括分割部件401、编码部件402、视频缓冲器403、和组间缓冲器404等。分割部件401将所输入的视频流中的每一帧划分成多个处理单位U0、U1、U2、...,并将所划分的各个处理单位U0、U1、U2、...顺序存储在视频缓冲器403中,其中每个处理单位中包括多个宏块。编码部件402从视频缓冲器403中顺序提取所存储的各个处理单位U0、U1、U2、...,并且并行地对每个处理单位中的多个宏块进行编码,并输出编码后的码流。
与图3所示的实施例不同的是,在本实施例中,把多个协处理元件SPE分为两个组,即第一组和第二组。第一组包括协处理元件SPE10,SPE11,...,第二组包括协处理元件SPE20,SPE21,...,等等。根据本实施例,第一组协处理元件SPE10,SPE11,...与第二组协处理元件SPE20,SPE21,...数量相同。本领域技术人员可以知道,可以对所有的协处理元件根据要求进行任意的分组,同样也可以实现本发明。
这里假定第一组协处理元件和第二组协处理元件的数量均是N个,并且正在对处理单位U0中的各个宏块进行并行处理。编码部件402将处理单位U0中的所有宏块均等地分成N个组,将各组分配给编码部件402所包括的第一组协处理元件SPE10,SPE11,...,以对其中的各个宏块进行并行处理。第一组协处理元件SPE10,SPE11,...对处理单位U0中的各个宏块执行运动估计、离散余弦变换、量化、逆量化、逆离散余弦变换中的至少一种处理。在第一组协处理元件SPE10,SPE11,...对处理单位U0中的各个宏块进行上述各种处理后,将处理后的各个宏块存储在组间缓冲器404中。
第二组协处理元件SPE20,SPE21,...从组间缓冲器404中读取经过第一组协处理元件处理后的处理单位U0,并对其中的各个宏块执行可变长度编码。也就是说,每个处理单位的全部编码操作是由第一组和第二组协处理元件合作完成的,即首先由第一组协处理元件SPE10,SPE11,...进行运动估计、离散余弦变换、量化、逆量化、逆离散余弦变换等,然后再由第二组协处理元件SPE20,SPE21,...对经过第一组协处理元件处理过的宏块进行可变长度编码。例如,如图4所示,处理单位U0中的各个宏块首先被分配给第一组的各个协处理元件SPE10,SPE11,...,在各个协处理元件SPE10,SPE11,...中并行地经过运动估计、离散余弦变换、量化、逆量化、逆离散余弦变换等处理,然后,将处理单位U0的处理结果传递给第二组协处理元件SPE20,SPE21,...。在第二组中,处理单位U0中的各个宏块同样被分配给各个协处理元件SPE20,SPE21,....,进而在各个协处理元件SPE20,SPE21,...中被并行地进行可变长度编码处理。
当第二组的各个协处理元件对处理单位U0中的各个宏块进行可变长度编码处理时,由缓冲器(图4中未示出,将在后面结合图6进行详细说明)存储对每个宏块进行可变长度编码的输出,获得处理单位U0的量化参数,以用于编码部件402对下一个处理单位U1中的各个宏块进行编码处理。同时,经过可变长度编码的视频流被输出作为输出码流。
当第二组的各个协处理元件对处理单位U0中的各个宏块进行可变长度编码处理时,第一组中的各个协处理元件从视频缓冲器403中读取处理单位U1中的各个宏块,并对所读取的各个宏块并行地进行相应的处理。
在第一组协处理元件SPE10,SPE11,...对处理单位U0中的多个宏块进行编码时,对处理单位U0中的所有宏块使用相同的量化参数,该量化参数来自编码部件402对处理单位U0之前的处理单位中的各个宏块进行可变长度编码后所获得的输出。更具体地,编码部件402对同一处理单位中的各个宏块使用相同的量化参数执行量化处理,并且例如,对处理单位Un所使用的量化参数来自对其之前的处理单位Un-2中的各个宏块进行可变长度编码的输出(下面将结合图5进行详细说明)。
根据本发明的另一个实施例,可以省略视频缓冲器403和组间缓冲器404的使用,而在分割部件401以及编码部件402的各组协处理元件之间直接传递各种处理数据。
由前述可知,根据本发明一个实施例的编码部件402包括两组协处理元件,第一组协处理元件并行地对每个处理单位中的各个宏块执行运动估计、离散余弦变换、量化、逆量化、逆离散余弦变换等中的至少一种处理,第二组协处理元件对经第一组协处理元件处理的各个宏块并行执行可变长度编码处理。
图5是示出了根据本发明一个实施例的两组协作处理元件的处理操作之间的关系的图示。
如图5所示,当第一组协处理元件对处理单位U0中的各个宏块处理(运动估计、离散余弦变换、量化、逆量化、逆离散余弦变换)完毕后,再由第二组协处理元件对处理单位U0中的各个宏块进行可变长度编码的处理,同时,第一组协处理元件对接下来的处理单位U1中的各个宏块进行并行处理,即,运动估计、离散余弦变换、量化、逆量化、逆离散余弦变换,依此类推。
根据本发明的一个实施例,当第一组协处理元件处理第n个处理单位中的各个宏块时,第二组协处理元件处理第n-1个处理单位中的各个宏块,其中第一组协处理元件处理第n个处理单位中的各个宏块所使用的量化参数,基于第二组协处理元件对第n-2个处理单位中的各个宏块进行可变长度编码的输出。
具体地,例如图5所示,当第一组协处理元件处理第2个处理单位U2中的各个宏块时,第二组协处理元件处理第1个处理单位U1中的各个宏块,而第一组协处理元件处理第2个处理单位U2中的各个宏块所使用的量化参数,则来自于第二组协处理元件对第0个处理单位U0中的各个宏块进行可变长度编码的输出。
当然,本发明并不局限于此,第一组协处理元件处理第n个处理单位时使用的量化参数,也可以基于第二组协处理元件对例如第n-3个、第n-4个处理单位的可变长度编码的输出。
在本实施例中,通过将一个处理单位中的各个宏块的编码处理分解为第一部分即运动估计、离散余弦变换、量化、逆量化、逆离散余弦变换处理,和第二部分即可变长度编码,以流水线的形式来对此两部分进行处理,进一步提高了编码速度。而且,该实施方式对于内存非共享的多核体系结构特别有利。内存非共享的多核体系结构中的各个协处理元件有各自的本地存储,用于存储代码和数据。但是,由于协处理元件SPE的本地存储是有限的,因此一个可执行文件甚至可能比其本地存储所能存储的还要大。在这种情况下,传统的编码方法不能有效运行在这种内存非共享的多核体系结构中。本发明的这个实施例通过把一个宏块的各个编码部分分解为由不同的协处理元件运行,可以解决因有限的本地存储而带来的无法并行运行诸如MPEG2等编码方法的不足。
在某些情况下,需要对可变长度编码的可变长度输出首先进行缓冲然后输出到例如某存储器。根据本发明的一个实施例,本发明的编码部件还包括经扩展的双缓冲器600。
图6示出了根据本发明一个实施例的扩展的双缓冲器的工作状态图。
如图6所示,扩展的双缓冲器600包括第一缓冲器601和第二缓冲器602以及尾部缓冲器603。因为各个宏块的可变长度编码的输出是变化的,此扩展的双缓冲器结构可以确保缓冲器容量对于可变长度编码(VLC)操作是足够的。该扩展的双缓冲器结构600按如下方式运行:每当完成了一个宏块的VLC操作,就把该宏块的VLC的输出顺序地存储到该双缓冲器600,并且计算所累积的输出长度,当所累积的输出长度超过预定阈值时,例如超过第一缓冲器601或第二缓冲器602的长度时,则输出被填满的缓冲器中所存储的数据,而超过的数据部分或者保持不变,或者被拷贝到适当的位置,由此交替使用第一缓冲器601和第二缓冲器602,这样与只用一个缓冲器,需要较多的等待时间相比,可以提高效率。
具体地,图6中的双缓冲器600如下工作:在状态A中,示出了初始的双缓冲器600的状态。接下来,在状态B中,当在双缓冲器600中累积的VLC的输出数据长度超过了第一缓冲器601的存储容量时,将超过部分存储在第二缓冲器602中,并把第一缓冲器601中的数据输出到其它装置,例如输出到根据本发明实施例的编码部件的主存储器(未示出)。同时,第二缓冲器602继续接收并存储各个宏块的VLC编码的输出,并将接收到的VLC编码输出顺序存储于第二缓冲器602中所存储的601超过部分之后,如状态C所示。接下来,如状态D所示,当在第二缓冲器602中顺序存储的数据超过了第二缓冲器602的存储容量时,超过的数据部分被存储到尾部缓冲器603中,同时将第二缓冲器602中存储的数据输出到其它装置,例如输出到根据本发明实施例的编码部件的主存储器(未示出),而且把尾部缓冲器603中存储的数据复制到第一缓冲器601的开头部分中,这样再接收的VLC编码输出又可以顺序存储于第一缓冲器601中所存储的602超过部分之后,由此双缓冲器600又回到了状态A的情况,并开始新一轮的循环缓冲。
本发明所提出的上述扩展的双缓冲器技术既可以解决缓冲器在寻址和数据大小方面的限制,又可以进行从可变长度编码到缓冲器的输出以及从缓冲器到另一存储器的输出,因而提高了性能。该扩展的双缓冲器技术可以应用于任何需要对不同设备间传递的数据进行缓冲的情形。
图7示出了根据本发明一个实施例的视频流编码方法的流程图。
如图7所示,根据本发明一个实施例的视频流编码方法包括:步骤701,执行分割处理,以将视频流中的帧划分成多个处理单位,其中每个处理单位包括多个宏块;接下来在步骤702,执行编码处理,以并行地对每个处理单位中的多个宏块进行编码。
根据本发明的另一个实施例,在编码步骤702中还包括执行量化处理的步骤,其中对同一处理单位中的各个宏块使用相同的量化参数。该处理单位中使用的相同量化参数来自先前处理单位中对各个宏块进行可变长度编码的输出。
根据本发明的另一个实施例,在编码步骤702中还包括步骤:将一个处理单位中的多个宏块分配给编码部件中的多个协处理元件中的每个,以对所分配的宏块执行以下处理中的一种或多种:运动估计、离散余弦变换、量化、去量化、逆离散余弦变换、和可变长度编码。
根据本发明的另一个实施例,在编码步骤702中还包括步骤:将编码部件中的多个协处理元件分为两个组,由第一组协处理元件对该处理单位中的各个宏块执行运动估计、离散余弦变换、量化、去量化、逆离散余弦变换中的至少一种处理,由第二组协处理元件对经过第一组协处理元件处理的各个宏块并行执行可变长度编码。
根据本发明的另一个实施例,在编码步骤702中还包括步骤:当第一组多个协处理元件处理第n个处理单位中的各个宏块时,第二组多个协处理元件处理第n-1个处理单位中的各个宏块,并且第一组多个协处理元件在处理第n个处理单位中的各个宏块时所使用的量化参数,来自第二组多个协处理元件对第n-2个处理单位中的各个宏块进行可变长度编码的输出。
根据本发明的另一个实施例,在编码步骤702中还包括利用扩展的双缓冲器顺序存储对每个宏块进行可变长度编码的输出的步骤,其中该扩展的双缓冲器包括第一缓冲器、第二缓冲器和尾部缓冲器,当存储的数据长度超过第一缓冲器的存储容量时,该超过部分被存储在第二缓冲器中,并输出第一缓冲器中所存储的数据,当继续存储的数据超过第二缓冲器的存储容量时,该超过部分被存储在尾部缓冲器中,并输出第二缓冲器中存储的数据,并且把尾部缓冲器中存储的数据转移到第一缓冲器,由此交替使用第一缓冲器和第二缓冲器。
在根据本发明实施例的装置和方法中,同一处理单位中的各个宏块在被量化时使用相同的量化参数,而该量化参数是通过编码先前处理单位中的宏块而计算得到的。因为同一处理单位中的各个宏块使用相同的量化参数,由此在一个处理单位的内部,打破了各个宏块之间的依赖性,从而可以在一个处理单位内部的各个宏块之间实现并行化处理。与现有技术中基于帧或者基于画面组的方案相比,本发明的基于比帧小的处理单位的方法能够以高得多的精度来控制比特率。
另外需要说明的是,本发明的实施例可以通过硬件、软件、固件或它们之间结合的方式来实现,其实现方式不对本发明的技术范围构成限制。
本发明实施例中的各个元件(单元)相互之间的连接关系不对本发明的技术范围构成限制,其中的一个或多个元件可以包括或连接于其它任意的元件。
虽然上面已经结合附图示出并描述了本发明的一些实施例,但是本领域的技术人员应当理解,在不偏离本发明的原则和精神的情况下,可以对这些实施例进行变化和修改,但它们仍然落在本发明的权利要求及其等价物的范围之内。

Claims (12)

1.一种视频流编码装置,包括:
分割部件,用于将视频流中的帧划分成多个处理单位,每个处理单位包括多个宏块;以及
编码部件,用于并行地对每个处理单位中的多个宏块进行编码。
2.如权利要求1所述的视频流编码装置,其中所述编码部件执行量化处理,并对同一处理单位中的各个宏块使用相同的量化参数,所述量化参数是参考先前处理单位的编码结果而计算得到的。
3.如权利要求1所述的视频流编码装置,其中所述编码部件包括多个协处理元件,所述每个处理单位中的多个宏块被分别分配给所述多个协处理元件,所述多个协处理元件并行地对所分配的宏块执行以下处理的至少一种:运动估计、离散余弦变换、量化、去量化、逆离散余弦变换、以及可变长度编码。
4.如权利要求1所述的视频流编码装置,其中所述编码部件包括两组协处理元件,第一组协处理元件并行地对所述处理单位中的各个宏块执行运动估计、离散余弦变换、量化、逆量化、逆离散余弦变换中的至少一种处理,第二组协处理元件对经所述第一组协处理元件处理的各个宏块并行执行可变长度编码。
5.如权利要求4所述的视频流编码装置,其中当第一组处理第n个处理单位中的各个宏块时,第二组处理第n-1个处理单位中的各个宏块,并且第一组处理第n个处理单位中的各个宏块时所使用的量化参数,来自第二组对第n-2个处理单位中的各个宏块进行可变长度编码的输出。
6.如权利要求1-5中任一项所述的视频流编码装置,还包括扩展的双缓冲器,用于顺序存储对每个宏块进行可变长度编码的输出,该扩展的双缓冲器包括第一缓冲器、第二缓冲器和尾部,其中当存储的数据长度超过第一缓冲器的存储容量时,该超过部分被存储在第二缓冲器中,并输出第一缓冲器中所存储的数据,当继续存储的数据超过第二缓冲器的存储容量时,该超过部分被存储在尾部,并输出第二缓冲器中存储的数据,且把尾部中存储的数据转移到第一缓冲器中,由此交替使用所述第一缓冲器和第二缓冲器。
7.一种视频流编码方法,包括:
分割步骤,将视频流中的帧划分成多个处理单位,每个处理单位包括多个宏块;以及
编码步骤,用于并行地对每个处理单位中的多个宏块进行编码。
8.如权利要求7所述的视频流编码方法,其中在所述编码步骤中执行量化处理,并对同一处理单位中的各个宏块使用相同的量化参数,所述量化参数是参考先前处理单位的编码结果而计算得到的。
9.如权利要求8所述的视频流编码方法,其中在所述编码步骤中,将所述每个处理单位中的多个宏块分别分配给多个协处理元件,以并行地对所分配的宏块执行以下处理中的至少一种:运动估计、离散余弦变换、量化、去量化、逆离散余弦变换、和可变长度编码。
10.如权利要求7所述的视频流编码方法,其中在所述编码步骤中,将多个协处理元件分为两个组,由第一组协处理元件并行地对所述处理单位中的各个宏块执行运动估计、离散余弦变换、量化、去量化、逆离散余弦变换中的至少一种处理,由第二组协处理元件对经所述第一组协处理单元处理的各个宏块并行执行可变长度编码。
11.如权利要求10所述的视频流编码方法,其中当第一组处理第n个处理单位中的各个宏块时,第二组处理第n-1个处理单位中的各个宏块,并且第一组在处理第n个处理单位中的各个宏块时所使用的量化参数,来自第二组对第n-2个处理单位中的各个宏块进行可变长度编码的输出。
12.如权利要求7-11中任一项所述的视频流编码方法,还包括利用扩展的双缓冲器顺序存储对每个宏块进行可变长度编码的输出的步骤,其中当存储的数据长度超过第一缓冲器的存储容量时,该超过部分被存储在第二缓冲器中,并输出第一缓冲器中所存储的数据,当继续存储的数据超过第二缓冲器的存储容量时,该超过部分被存储在尾部缓冲器中,并输出第二缓冲器中存储的数据,且把尾部缓冲器中存储的数据转移到第一缓冲器中,由此交替使用所述第一缓冲器和第二缓冲器。
CN200810165686.4A 2008-09-24 2008-09-24 视频流编码装置及其方法 Expired - Fee Related CN101686388B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN200810165686.4A CN101686388B (zh) 2008-09-24 2008-09-24 视频流编码装置及其方法
US12/557,252 US8218642B2 (en) 2008-09-24 2009-09-10 Macro-block video stream encoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810165686.4A CN101686388B (zh) 2008-09-24 2008-09-24 视频流编码装置及其方法

Publications (2)

Publication Number Publication Date
CN101686388A true CN101686388A (zh) 2010-03-31
CN101686388B CN101686388B (zh) 2013-06-05

Family

ID=42037652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810165686.4A Expired - Fee Related CN101686388B (zh) 2008-09-24 2008-09-24 视频流编码装置及其方法

Country Status (2)

Country Link
US (1) US8218642B2 (zh)
CN (1) CN101686388B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521791A (zh) * 2011-12-21 2012-06-27 珠海许继芝电网自动化有限公司 智能图形加速方法及系统
CN102724500A (zh) * 2012-06-05 2012-10-10 沙基昌 一种视频数据的压缩/解压缩方法及系统
CN103125119A (zh) * 2010-10-04 2013-05-29 松下电器产业株式会社 图像处理装置、图像编码方法以及图像处理方法
CN103268263A (zh) * 2013-05-14 2013-08-28 重庆讯美电子有限公司 一种动态调整多图形处理器负载的方法及系统
CN103581673A (zh) * 2012-08-07 2014-02-12 上海算芯微电子有限公司 视频数据的压缩/解压缩方法及系统
WO2015061964A1 (en) * 2013-10-29 2015-05-07 Hua Zhong University Of Science Technology Simulataneous metadata extraction of moving objects
CN105227959A (zh) * 2014-07-03 2016-01-06 深圳中兴力维技术有限公司 用于视频编码的多编码点混编流水方法及其装置
CN106231320A (zh) * 2016-08-31 2016-12-14 上海交通大学 一种支持多机并行编码的联合码率控制方法及系统
CN107613301A (zh) * 2017-10-17 2018-01-19 郑州云海信息技术有限公司 一种图像处理方法及装置
WO2018023553A1 (en) * 2016-08-04 2018-02-08 SZ DJI Technology Co., Ltd. Parallel video encoding

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5222803B2 (ja) * 2009-06-29 2013-06-26 京セラドキュメントソリューションズ株式会社 画像処理装置
EP2658261A4 (en) * 2010-12-21 2015-06-24 Nec Corp Motion estimation device, motion estimation method, motion estimation program, and video image encoder
US20130104177A1 (en) * 2011-10-19 2013-04-25 Google Inc. Distributed real-time video processing
US8793393B2 (en) * 2011-11-23 2014-07-29 Bluespace Corporation Video processing device, video server, client device, and video client-server system with low latency thereof
JP2015002462A (ja) * 2013-06-17 2015-01-05 ソニー株式会社 画像圧縮回路、画像圧縮方法、および伝送システム
JP6206280B2 (ja) * 2014-03-24 2017-10-04 富士通株式会社 動画像符号化装置及び動画像符号化器
US10003811B2 (en) 2015-09-01 2018-06-19 Microsoft Technology Licensing, Llc Parallel processing of a video frame

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040240548A1 (en) * 1997-11-25 2004-12-02 Amir Morad Video encoding device
CN101150719A (zh) * 2006-09-20 2008-03-26 华为技术有限公司 并行视频编码的方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785330B1 (en) * 1999-08-19 2004-08-31 Ghildra Holdings, Inc. Flexible video encoding/decoding method
KR100486524B1 (ko) * 2002-07-04 2005-05-03 엘지전자 주식회사 비디오 코덱의 지연시간 단축 장치
KR20050105268A (ko) * 2003-03-03 2005-11-03 코닌클리케 필립스 일렉트로닉스 엔.브이. 비디오 인코딩
JP3879741B2 (ja) * 2004-02-25 2007-02-14 ソニー株式会社 画像情報符号化装置および画像情報符号化方法
US8000388B2 (en) * 2006-07-17 2011-08-16 Sony Corporation Parallel processing apparatus for video compression
JP2009038501A (ja) * 2007-07-31 2009-02-19 Toshiba Corp 復号化装置および復号方法
CN101137062A (zh) * 2007-09-20 2008-03-05 四川长虹电器股份有限公司 具有双核处理器的视频编码系统双核协同编码方法
US20100020877A1 (en) * 2008-07-23 2010-01-28 The Hong Kong University Of Science And Technology Multiple reference frame motion estimation in video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040240548A1 (en) * 1997-11-25 2004-12-02 Amir Morad Video encoding device
CN101150719A (zh) * 2006-09-20 2008-03-26 华为技术有限公司 并行视频编码的方法及装置

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103125119A (zh) * 2010-10-04 2013-05-29 松下电器产业株式会社 图像处理装置、图像编码方法以及图像处理方法
US9414059B2 (en) 2010-10-04 2016-08-09 Panasonic Intellectual Property Management Co., Ltd. Image processing device, image coding method, and image processing method
CN102521791A (zh) * 2011-12-21 2012-06-27 珠海许继芝电网自动化有限公司 智能图形加速方法及系统
CN102724500A (zh) * 2012-06-05 2012-10-10 沙基昌 一种视频数据的压缩/解压缩方法及系统
CN103581673A (zh) * 2012-08-07 2014-02-12 上海算芯微电子有限公司 视频数据的压缩/解压缩方法及系统
CN103268263B (zh) * 2013-05-14 2016-08-10 讯美电子科技有限公司 一种动态调整多图形处理器负载的方法及系统
CN103268263A (zh) * 2013-05-14 2013-08-28 重庆讯美电子有限公司 一种动态调整多图形处理器负载的方法及系统
WO2015061964A1 (en) * 2013-10-29 2015-05-07 Hua Zhong University Of Science Technology Simulataneous metadata extraction of moving objects
US9390513B2 (en) 2013-10-29 2016-07-12 Hua Zhong University Of Science Technology Simultaneous metadata extraction of moving objects
CN105227959B (zh) * 2014-07-03 2019-10-25 深圳力维智联技术有限公司 用于视频编码的多编码点混编流水方法及其装置
CN105227959A (zh) * 2014-07-03 2016-01-06 深圳中兴力维技术有限公司 用于视频编码的多编码点混编流水方法及其装置
WO2018023553A1 (en) * 2016-08-04 2018-02-08 SZ DJI Technology Co., Ltd. Parallel video encoding
CN109155850A (zh) * 2016-08-04 2019-01-04 深圳市大疆创新科技有限公司 并行视频编码
US10958923B2 (en) 2016-08-04 2021-03-23 SZ DJI Technology Co., Ltd. Parallel video encoding
CN106231320A (zh) * 2016-08-31 2016-12-14 上海交通大学 一种支持多机并行编码的联合码率控制方法及系统
CN106231320B (zh) * 2016-08-31 2020-07-14 上海交通大学 一种支持多机并行编码的联合码率控制方法及系统
CN107613301A (zh) * 2017-10-17 2018-01-19 郑州云海信息技术有限公司 一种图像处理方法及装置
CN107613301B (zh) * 2017-10-17 2020-05-26 苏州浪潮智能科技有限公司 一种图像处理方法及装置

Also Published As

Publication number Publication date
US20100074337A1 (en) 2010-03-25
CN101686388B (zh) 2013-06-05
US8218642B2 (en) 2012-07-10

Similar Documents

Publication Publication Date Title
CN101686388B (zh) 视频流编码装置及其方法
CN107846597B (zh) 用于视频解码器的数据缓存方法和装置
US9661335B2 (en) Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
JP4182442B2 (ja) 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
CN101610413B (zh) 一种视频的编码/解码方法及装置
US8233537B2 (en) Efficient implementation of H.264 4 by 4 intra prediction on a VLIW processor
CN101518089B (zh) 编/解码方法、编/解码器及寻找最佳匹配块的方法及装置
US7302000B2 (en) Method and system for two-pass video encoding using sliding windows
US20150277776A1 (en) Data storage control apparatus and data storage control method
CN102939719A (zh) 用于在二进制熵编码和解码中减少源的方法和设备
CN103634604B (zh) 一种面向多核dsp运动估计的数据预取方法
CN102238383B (zh) 用于视频编解码器的多总线体系结构
KR20040095742A (ko) 화상 복호 유닛과 그것을 이용한 화상 부호화 장치 및부호화 방법, 및 화상 복호 장치 및 복호 방법
CN107801044B (zh) 后向适应装置与相关方法
CN1112654C (zh) 图像处理装置
CN102769753A (zh) H264编码器及编码方法
CN102404561A (zh) 在cuda上实现mpeg4i帧编码的方法
US9300975B2 (en) Concurrent access shared buffer in a video encoder
CN103634607B (zh) 进行影像编码预测的方法及采用该方法的影像编码装置
Rein et al. Scalable line-based wavelet image coding in wireless sensor networks
CN101488225A (zh) 一种位平面编码器的vlsi系统架构
CN103327340A (zh) 一种整数搜索方法及装置
CN114970810A (zh) 适用于稀疏神经网络计算阵列的数据处理方法和加速器
CN1520187A (zh) 用于视频数据压缩的系统和方法
JP5680504B2 (ja) ビデオ復号装置および方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130605

Termination date: 20200924

CF01 Termination of patent right due to non-payment of annual fee