CN101895746A - 解码处理设备及方法、数据分发程序和解码处理程序 - Google Patents

解码处理设备及方法、数据分发程序和解码处理程序 Download PDF

Info

Publication number
CN101895746A
CN101895746A CN2010101812662A CN201010181266A CN101895746A CN 101895746 A CN101895746 A CN 101895746A CN 2010101812662 A CN2010101812662 A CN 2010101812662A CN 201010181266 A CN201010181266 A CN 201010181266A CN 101895746 A CN101895746 A CN 101895746A
Authority
CN
China
Prior art keywords
decoding processing
vertical strip
decoding
processing
result
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
CN2010101812662A
Other languages
English (en)
Other versions
CN101895746B (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Publication of CN101895746A publication Critical patent/CN101895746A/zh
Application granted granted Critical
Publication of CN101895746B publication Critical patent/CN101895746B/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

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

解码处理设备及方法、数据分发程序和解码处理程序
技术领域
本发明涉及用于对以诸如宏块之类的预定处理块为单位编码的运动图像数据进行解码的解码处理设备、解码处理方法、数据分发程序和解码处理程序。
背景技术
近年来,已经见证了诸如MPEG-2(运动图像专家组阶段2)、MPEG-4(运动图像专家组阶段4)、H.264(MPEG-4高级视频编码)和微软公司开发的VC-1之类的运动图像编码方法的广泛使用。使用用以上方法中的任一方法编码的运动图像涉及解码处理。当为了负荷分散而用并行地执行解码处理的多个处理器对由这些运动图像编码方法之一编码的运动图像数据进行解码时,每个处理器通常以构成最小处理单位的宏块为单位来执行其处理。
如图11中所示,宏块是组成具有预定图像宽度和图像高度的单个画面(即,一帧)的图像的分割区域中的一个分割区域(split area)。每个分割区域测量16乘16像素(正方形像素块)。
根据最近开发的诸如MPEG-4、H.264和VC-1之类的运动图像编码方法,规定通过参考位于要处理的宏块的左方、左上方、上方和右上方的宏块的解码结果来解码目标宏块。
例如,如图12中所示,假定用阴影示出的位于中心的宏块是要处理的宏块。在该情况中,解码所考虑的宏块的图像数据需要参考位于该目标宏块左方、左上方、上方和右上方的4个宏块的解码结果。对目标宏块的解码需要在对至少位于所考虑的宏块的左方、左上方、上方和右上方的4个宏块的解码完成后开始。
反过来,只要保持了上述宏块处理顺序,就可以在处理器之间没有冲突地执行解码处理,而不论哪个处理器处理哪个宏块。即,只要所定义的宏块处理顺序保持完好,则所涉及的多个处理器就可以以任何顺序处理宏块。
在上述情形中,已经提出了各种解码处理方法。例如,日本专利早期公开No.2006-129284和No.2006-129285(以下,分别称为专利文件1和2)公开了一种技术,通过该技术,在所涉及的每个宏块的处理状态(例如,执行进行中、处理完成等)被管理和被扫描(如果可能,是并行的)的同时,宏块被处理。
具体而言,如图13中所示,专利文件1和2中所公开的技术涉及这样的处理器,各个处理器同时处理位于上一宏块行的目标宏块的左边第二个宏块的那个宏块。
即,如图13中所示,处理器1、2和3中的每一个处理器处理具有图像宽度的一行宏块。位于下一行的宏块由另一处理器处理。
处理器1、2和3中的每一个处理器从左到右顺次处理每一行的宏块。下一行的每一个宏块被推迟两个块处理。
日本专利早期公开No.2008-072647(以下称为专利文件3)公开了这样的技术,该技术利用了帧内宏块与帧间宏块之间没有依赖性这一优点,并且涉及紧在帧间宏块前划定每个宏块行的界限以确定要由处理器分担的宏块之间的分界。
日本专利早期公开No.2006-319944号公报(以下称为专利文件4)公开了这样的技术,该技术涉及以反映所使用的解码器的数目的方式来水平地对画面分片,这些画面片段由多个解码器分担。水平地对画面分片意味着将画面在垂直方向上分割成多个区域。
发明内容
当用诸如MPEG-4、H.264或VC-1之类的运动图像编码方法中的任一方法编码的运动图像数据要被解码时,需要考虑以下3个问题(a)到(c)来提高解码执行的效率:
(a)因宏块被分派给不同处理器以便处理的次序而引起的处理器等待时间;
(b)用于正确控制处理宏块的次序的方案的复杂度;
(c)所要参考的宏块的处理结果的通信频率以及这样的数据转送所需要的成本。
在由上面引用的专利文件1和2公开的技术的情况中,每个宏块的处理状态被管理以使得以上问题(a)可以被有效解决。然而,复杂度有可能增大,从而使得以上问题(b)不能被有效解决。
并且,在由专利文件1和2公开的技术的情况中,需要在以宏块为单位执行解码处理的多个处理器之间通信上一行的宏块的处理结果。该通信需要以很高频率的方式(例如每宏块地)执行。一般,处理器之间的通信需要经由与处理器分离的慢存储器(例如,辅助缓存器)来执行。已经指出,这会导致不能充分解决以上问题(c)。
在由以上引用的专利文件3讨论的技术的情况中,所涉及的方案相对简单,使得问题(a)、(b)和(c)看起来被有效解决了。然而,根据专利文件3的技术,在帧内宏块与帧间宏块的频率之间存在差异,使得并行处理的程度可能根据输入流而不同或甚至可能是不并行的。因此,不能明显地提高执行解码处理的效率。
根据由以上引用的专利文件4所公开的技术,画面被如上所述水平地分片。该技术仅能适用于一个宏块行总是构成一个片段的MPEG-2设置。
MPEG-4、H.264和VC-1也规定了片段。因为在跨越片段的宏块之间没有依赖关系,所以可以构想到将片段之间的边界视为要由处理器共享的宏块的边界。然而,如在以上专利文件3的技术中的情况中一样,并行处理的程度可能根据输入流而正好是不并行的。此外,在考虑单独的图像的情况中,除了I图像以外,它们相互依赖以用于运动补偿。这使得并行处理明显有困难。
如上所述,所有目前提出的解码方法都不能解决以上问题(a)、(b)和(c)中的至少一个。在这一点上,这些方法都不足以提高执行解码处理的效率。
鉴于以上情形做出了本发明,并且本发明提供能够为了安全和充分地提高解码经编码的运动图像数据的效率的目的而清除所有以上问题(a)、(b)和(c)的布置。
在执行本发明时并且根据本发明一个实施例,提供了一种解码处理设备,包括:多个解码处理装置,用于以预定处理块为单位解码运动图像数据;分发装置,被配置为使得,当被提供经编码的运动图像数据时,所述分发装置根据所述多个解码处理装置的数目,将由所述运动图像数据形成的画面中的每一个画面分割成以所述处理块作为最小单位的垂直条带,所述分发装置还将属于所分割出的垂直条带中的每个垂直条带的运动图像数据分发给所述解码处理装置中不同的一个解码处理装置;以及形成装置,用于当被从所述多个解码处理装置提供经解码的运动图像数据时形成一个画面的图像数据。
当本发明被实施为上述解码处理设备时,分发装置在接收到运动图像数据之后,根据所配置的解码处理装置的数目,将每个画面分割成以处理块为最小单位的垂直条带。属于每一个所分割出的垂直条带的运动图像数据被分发给解码处理装置中不同的一个解码处理装置。
由分发装置分发给多个解码处理装置的运动图像数据被各个解码处理装置以预定处理块为单位解码,从而像素数据被恢复并被馈送到形成装置。形成装置进而从所提供的像素数据中恢复数据压缩之前的一个画面的图像。
如所描述的,一个画面(即,一帧)的图像数据被分割成垂直条带。所分割出的垂直条带中的每个垂直条带由解码处理装置中不同的一个解码处理装置解码。根据该结构,当位于每个垂直条带中最左边或最右边的部分要被处理并且属于另一垂直条带的处理块的处理结果需要用于此处理时,必要的处理结果被处理相邻垂直条带的另一解码处理装置获得。这消除了在由解码处理装置执行处理期间对等待时间的需要。
在每个垂直条带最左边和最右边的部分,仅需要考虑在处理相邻垂直条带的解码处理装置之间的处理结果的发送和接收。这使得相对容易控制处理块被处理的次序。
解码处理结果的发送和接收仅发生在每个垂直条带的最左边和最右边的部分处。这意味着减少了解码处理装置之间的解码处理结果的传送。这转化为降低的数据转送成本。
即,可以消除解码处理装置的等待时间。不需要安装用于控制解码处理的次序的复杂装置,因为解码处理装置之间的数据传送被使得最小。这使得能够执行整体上高效的解码处理。
根据本发明的实施例,如上所述,可以消除多个解码处理装置之间进行处理的等待时间。
多个解码处理装置之间的依赖度被降低了,并且处理块被这些装置处理的次序容易被控制。
此外,在多个解码处理装置之间传送(即,发送和接收)解码处理结果的频率被降低了。这进而又降低了数据传送成本。
附图说明
在阅读以下描述和附图之后,本发明的更多目的和优势将变得显而易见,在附图中:
图1是说明作为本发明一个实施例的解码处理设备的典型结构的框图;
图2是说明该解码处理设备的比特流分析装置如何分发图像数据的示意图;
图3是也说明该比特流分析装置如何分发图像数据的另一示意图;
图4A和图4B是说明该比特流分析装置例示性地如何分割画面以及例示性地如何分发宏块数据的示意图;
图5A和图5B是也说明该比特流分析装置例示性地如何分割画面以及例示性地如何分发宏块数据的另一示意图;
图6A和图6B是也说明该比特流分析装置例示性地如何分割画面以及例示性地如何分发宏块数据的其它示意图;
图7是说明由解码处理器(0)到2(N-1)中的每个解码处理器对被分派给所考虑的解码处理器的垂直条带进行解码所执行的解码处理的流程图。
图8是说明图7的步骤S3中以宏块为单位执行的解码处理的流程图。
图9是说明在图1的解码处理设备中的每个处理相邻垂直条带的解码处理器之间如何发送和接收解码处理结果的示意图;
图10是说明解码处理器(0)到2(N-1)如何并行地执行解码处理的示意图;
图11是说明画面与宏块之间的关系的示意图;
图12是说明其解码处理结果被参考用于以宏块为单位的解码处理的那些周围的宏块的示意图;以及
图13是说明对于传统解码处理,画面如何被分片的示意图。
具体实施方式
以下,将参考附图来描述代表设备、方法和程序的本发明的优选实施例。
[实施例的概要]
以下要说明的作为本发明的一个实施例的解码处理设备也包括体现本发明的方法和程序。该解码处理设备能够对用最近提出的运动图像编码方案(例如,MPEG-4、H.264和VC-1)中任何一种方案编码的运动图像数据进行解码。
现在将说明体现本发明的解码处理设备的概要。该解码处理设备以宏块(mb)为单位来执行运动图像数据的解码处理。该设备包括用于进行并行处理的多个解码处理器(即,解码处理单元)。
本实施例的解码处理设备将由经编码的运动图像数据形成的每个画面分割成垂直条带(带状区域)。属于每个垂直条带的所有宏块由这些解码处理器中的一个处理器来处理。可以说,这些垂直条带是通过分割画面而创建的分割部分。
每个解码处理器以宏块为单位对被分派给所考虑的解码处理器的垂直条带进行解码,从左上方的宏块开始并从左向右进行,并且按宏块行从上向下进行。
如以上参考图12所提及的,最近提出的运动图像编码方案(例如,MPEG-4、H.264和VC-1)要求通过参考位于作为解码目标的宏块的左方、左上方、上方和右上方的宏块来解码该目标宏块。
通过各个解码处理器如下所述地处理各个宏块行来满足以上要求:
(1)在解码给定垂直条带最左边的宏块之前,负责的解码处理器从处理位于左方的垂直条带的另一解码处理器接收位于左方的宏块的处理结果。
(2)在解码了该垂直条带最左边的宏块之后,负责的解码处理器将解码结果发送给处理位于左方的垂直条带的解码处理器。
(3)在处理该垂直条带最右边的宏块之前,负责的解码处理器从处理位于右方的垂直条带的另一解码处理器接收位于目标宏块右上方的宏块的处理结果。
(4)在解码了该垂直条带最右边的宏块之后,负责的解码处理将处理结果发送给处理位于右方的垂直条带的解码处理器。
解码处理结果在解码处理器之间的发送和接收(即,通信处理)是借助缓冲器布置而通过阻塞式存取(blocking access)来执行的。
即,准备接收另一宏块的解码处理结果的解码处理器在缓冲器空闲时被置于等待状态。准备发送宏块的解码处理结果的解码处理器在缓冲器充满时也被置于等待状态。
在这样的情况中,被发送给缓冲器以及临时放置在缓冲器中以由另一解码处理器接收的数据(即,解码处理结果)基于先进先出(FIFO)被从其取出。缓冲器的存储容量被使得大于正被传送的一个宏块的解码处理结果的大小。
此外,该实施例的解码处理设备采用了这样的方案,该方案中所配置的解码处理装置以所谓的阶梯样式(stepped pattern)并行地解码画面的垂直条带。
更具体而言,处理画面最左边的条带的解码处理器从顶部的第一个宏块行开始解码处理。当解码处理器到达第二个宏块行时,处理位于紧右方的垂直条带的另一解码处理器开始处理该垂直条带顶部的宏块行。
当处理该画面最左边的垂直条带行的解码处理器到达从顶部起的第三个宏块行时,处理位于紧右方的垂直条带的解码处理器开始处理该垂直条带的第二个宏块行。
之后,处理位于更右方的垂直条带的另一解码处理器开始处理顶部的第一个宏块行。以这种方式,由不同的解码处理器以阶梯样式来处理各个不同的垂直条带中距离一个宏块行的宏块。
以上布置消除了在通常的设置中容易因宏块被分派给不同解码处理器的次序关系引起的那些解码处理器等待时间。
此外,还使得用于正确控制宏块的处理次序的布置尽可能简单。具体而言,如上所述,解码处理结果在解码处理器之间的发送和接收是借助缓冲器布置而通过阻塞式存取来执行的。
此外,该画面被分割成垂直条带,并且各个垂直条带被分派给所配置的解码处理器中不同的一个解码处理器。该结构使得每个解码处理器仅在所考虑的垂直条带最左边和最右边的块被处理时才能够与另一解码处理器交换数据。
因此,用于在解码处理器之间发送和接收宏块的解码处理结果的通信频率被降低。这转化为减少的数据传送成本。以下是对该实施例的解码处理设备更详细的说明。
[解码处理设备的典型结构]
图1是说明该实施例的解码处理设备的典型结构的框图。如图1所示,该解码处理设备包括比特流分析装置1和多个解码处理器2(0),2(1),…2(N-1)。
在这些解码处理器之间,***了第一发送和接收缓冲器3(0),3(1),…3(N-2)、第二发送和接收缓冲器4(0),4(1),…4(N-2)和帧存储器5。
如稍后将更详细说明的,比特流分析装置1用作分发装置,其用于接收比特流,将比特流划分成多个部分,并且将这多个部分分发给位于下游的多个解码处理器2(0),2(1),…2(N-1)。
解码处理器2(0),2(1),…2(N-1)中的每一个用作解码处理装置,其用于对以宏块为单位编码的运动图像数据执行解码处理。
帧存储器5用作形成装置,其用于从多个解码处理器2(0),2(1),…2(N-1)接收解码后的图像数据并且从所接收到的数据形成一个画面(即,一个图像或一帧)的图像数据。
比特流分析装置1被从外部提供由编码的运动图像数据组成的比特流。比特流的源通常包括:调谐装置,其接收并解调被编码并被发送的广播信号;和再现处理装置,其读出并再现被编码并被记录在诸如DVD(数字通用盘)之类的记录介质上的数字内容。
比特流是经熵编码的。当被提供这样的比特流时,比特流分析装置1根据所提供的比特流被进行熵编码当时所利用的运动图像编码标准来对其进行熵解码。
如果在熵解码期间获得了有关要被解码的整个运动图像或有关作为处理目标的整个图像的某些参数,则比特流分析装置1将所获得的参数无差别地转发给所有下游的解码处理器2(0)到2(N-1)。说明性地,可能获得的参数包括DCT(离散余弦变换)系数和运动向量。
比特流分析装置1继而获取一个图像(一个画面)的宏块数据。然后,比特流分析装置1根据预定的方案将所提及的一个图像(一个画面)分割成多个垂直条带。如稍后将更详细描述的,该画面在水平方向上被分割成多个垂直条带,如图2中所示。
然后,比特流分析装置1将属于垂直地分割出的条带中的各个条带的宏块数据分发给被固定地分派用于各个垂直条带的解码处理器2(0)到2(N-1)。比特流分析装置1重复这样的宏块数据分发处理与所提及的比特流中所包括的图像(画面)的数目一样多的次数。
如所描述的,比特流分析装置1根据预定方案将每个图像(画面)分割成多个垂直条带,并且将属于这些垂直条带中的各个条带的宏块数据分发给被固定地分派用于这些垂直条带的解码处理器2(0)到2(N-1)。
比特流分析装置1仅需要对宏块数据执行进行正确的熵解码所必要的最少解码。例如,不需要执行关于DCT系数的逆DCT处理。这样的独立于熵编码的解码处理可以由解码处理器2(0)到2(N-1)执行。
解码处理器2(0)到2(N-1)中的每一个解码处理器通过参考从帧存储器5馈送的参考图像来以宏块为单位对来自比特流分析装置1的宏块数据执行最终的解码处理。
更具体而言,解码处理器2(0)到2(N-1)中的每一个执行诸如逆Z字形(zigzag)转换、逆量化、逆正交变换(包括重叠平滑滤波)和画面内预测(包括AC/DC预测)之类的处理。
解码处理器2(0)到2(N-1)中的每一个还执行诸如运动向量估计、运动补偿(包括加权预测、距离缩减(range reduction)和强度补偿(intensitycompensation))和去块滤波之类的处理。
如上所述,比特流分析装置1将每个画面(图像)分割成多个垂直条带,并且将每个垂直条带的宏块数据分派给这些解码处理器中不同的一个解码处理器。在解码后,如图12中所示,每个解码处理器需要位于作为处理目标的宏块的左方、左上方、上方和右上方的宏块的解码结果。
为此,当处理作为处理目标的垂直条带最左边和最右边的宏块时,解码处理器2(0)到2(N-1)中的每一个解码处理器需要向相邻的解码处理器发送数据并从其接收数据。
因此,当要处理每个垂直条带最左边或最右边的宏块时,并且当要与相邻的解码处理器交换数据时,每个解码处理器使用置于解码处理器之间的第一缓冲器3和第二缓冲器4来进行数据交换。
即,在图1中,第一缓冲器3(0)至3(N-2)构成用于将数据从解码处理器2(i)传送给解码处理器2(i+1)的缓冲模块。变量“i”是0和N-2之间的整数。
类似地,第二缓冲器4(0)至4(N-2)构成用于将数据从解码处理器2(i+1)传送给解码处理器2(i)的缓冲模块。变量“i”是0和N-2之间的整数。
第一缓冲器3(0)至3(N-2)和第二缓冲器4(0)至4(N-2)是基于阻塞式存取来存取的。即,当准备从第一缓冲器3(i-1)或从第二缓冲器4(i)读取数据时,如果所考虑的缓冲器空闲,则解码处理器2(i)被置于等待状态。然后,解码缓冲器2(i)等待要被放置到此缓冲器中的数据。
类似地,当准备向第二缓冲器4(i-1)或第一缓冲器3(i)写入数据时,如果所考虑的缓冲器充满,则解码处理器2(i)被置于等待状态。解码处理器2(i)等待缓冲器在内部重建空闲区域。在这种情况中,从该缓冲器中读出的数据被删除以使得缓冲器重建其空闲区域。
如所描述的,第一缓冲器3和第二缓冲器4基于阻塞式存取来存取使得宏块处理的次序被简单精确地控制。
顺便提及,第一缓冲器3(0)到3(N-2)的容量和第二缓冲器4(0)到4(N-2)的容量仅需与要被传送的一个宏块的处理结果的数据大小一样大。
很明显,也可以具有具备用于更大数据大小的空间的缓冲器容量。如果第一缓冲器3(0)到3(N-2)的容量和第二缓冲器4(0)到4(N-2)的容量足够大,则可以基于先进先出(FIFO)的方式向缓冲器写入数据和从其中读出数据。
如上所述,第一缓冲器3(0)到3(N-2)和第二缓冲器4(0)到4(N-2)被***在解码处理器之间。该结构允许解码处理器在其间交换与该画面的另一垂直条带紧邻的宏块的解码处理结果。
在该画面最左边的垂直条带要被处理的情况中,在左方没有宏块,因此不需要参考位于目标宏块的左方和左上方的宏块的处理结果。类似地,在该画面最右边的垂直条带要被处理的情况中,在右方没有宏块并且不需要参考位于目标宏块的右上方的宏块的处理结果。
通过解码处理器2(0)到2(N-1)的每一个解码处理器的解码处理获得的图像数据被提供并被记录到帧存储器5。帧存储器5临时地容纳来自解码处理器2(0)到2(N-1)的解码结果的图像数据。
如图1中所示,被临时存储在帧存储器5中的图像数据被解码处理器2(0)至2(N-1)中的各个解码处理器作为用于运动补偿的参考图像来参考,或被输出到外部作为用于形成运动图像的图像数据。
如上所述,该实施例的解码处理设备在被提供比特流时,使得比特流分析装置1将每个画面分割成垂直条带。属于这些垂直分割出的条带中各个条带的宏块数据被提供给并行地执行解码处理的解码处理器2(0)至2(N-1)中不同的一个解码处理器。
如稍后将描述的,该实施例的解码处理设备将该画面中被垂直分割出的条带中的各个条带分发给解码处理器中不同的一个解码处理器,如图2中所示。该画面最左边的垂直条带被分派给解码处理设备中的解码处理器2(0),下一个垂直条带被分派给解码处理设备中的解码处理器2(1),等等。
处理该画面最左边的垂直条带的解码处理器2(0)从最左边的垂直条带的顶部的第一个宏块行开始解码处理。当解码处理器2(0)到达第二个宏块行时,处理位于右方的垂直条带的解码处理器2(1)开始处理该垂直条带的顶部的第个一宏块行。
当处理该画面最左边的垂直条带的解码处理器2(0)到达从顶部起的第三个宏块行时,处理位于右方的垂直条带的解码处理器2(1)开始处理从该垂直条带的顶部起的第二个宏块行。
处理位于更右方的垂直条带的解码处理器2(2)则开始处理在顶部的第一宏块行。以这种方式,同时被处理的宏块行跨越该画面的垂直条带形成阶梯样式。
如所描述的,当如图12所示,作为解码目标的宏块周围的宏块在并行处理期间被参考时,宏块处理的次序未被明显改变。
[画面的分割和宏块数据的分发]
以下描述比特流分析装置1所执行的将宏块数据分发给解码处理器2(0)至2(N-1)的处理。图2和图3是说明比特流分析装置1通常如何将宏块数据分发给解码处理器2(0)至2(N-1)的示意图。
如图2中所示,该实施例的比特流分析装置1将所提供的比特流中所包含的每个画面(即,图像)在水平方向上分割成与所配置的解码处理器2(0)至2(N-1)的数目一样多的垂直条带。在该情况中,为了控制的目的,每个垂直条带的起始位置(即,左上方位置)用mb_offset(i)来确定,并且其宽度(水平方向上的宽度)用mb_width(i)来确定。
现在将更详细地描述该画面是如何被分割成垂直条带的。在该实施例中,如图2中所示,以宏块为单位的图像宽度用pic_mb_width来确定,其中宏块是有关由作为处理目标的比特流形成的每个画面的最小单位。还如图2中所示,以作为有关由目标比特流形成的每个画面的最小单位的宏块为单位的图像高度用pic_mb_height来确定。还如图2中所示,以作为有关由目标比特流形成的每个画面的最小单位的宏块为最小单位的图像高度用pic_mb_height表示。
例如,假定该比特流包含遵循所谓的完全高清晰(HD)电视标准的1920×1080像素的图像。在这种情况中,如果每个画面被换算成16×16像素的用作最小单位的宏块,则图像宽度(pic_mb_width)用120个宏块(mb)表示并且图像高度(pic_mb_height)用68个宏块(mb)表示。
如所描述的,由该实施例的比特流分析装置1使用的图像宽度(pic_mb_width)和图像高度(pic_mb_height)是以宏块作为最小单位从画面换算得出的。因此,在随后的描述中,画面上的位置的坐标将全都以宏块为单位来定义。
对于比特流分析装置1,用变量N来定义下游所配置的解码处理器2(0)到2(N-1)的数目。在该示例中,如图1中所示,用于标识每个解码处理器的变量(索引)开始于0,以使得所配置的解码处理器的数目给定为N。
此外,解码处理器2(0)至2(N-1)中的每一个解码处理器被分派变量mb_offset(i)和mb_width(i)。如图2中所示,变量mb_offset(i)表示通过分割画面形成的每个垂直条带在水平方向上(沿x轴)的起始位置(即,左上方的位置)。还如图2中所示,变量mb_width(i)指示通过分割画面形成的每个垂直条带的宽度(条带宽度)。
利用该实施例,如上所述,每个画面(图像)如图2中所示那样在水平方向上被分割为使得每个条带的大小在(画面的)垂直方向上保持不变。
该画面的每个垂直分割出的条带的范围因此可以用所提及的垂直条带在水平方向上(沿x轴)的起始位置mb_offset(i)和该垂直条带的宽度mb_width(i)来适当地确定。
之后,通过使用以上述宏块为最小单位的图像宽度(pic_mb_width)和图像高度(pic_mb_height)以及所配置的解码处理器的数目N来获得变量mb_offset(i)和mb_width(i)。
在图3中示出更详细的获得这些值的方式。如图3中的表达式(1)所示,图像宽度(pic_mb_width)被除以解码处理器数N来获得商的整数部分作为变量div_mb。可以说,表达式(1)是用于获取当画面被分割成与所配置的解码处理器的数目一样多的垂直条带时该画面每个垂直条带的参考宽度的表达式。
接下来获取的是变量mod_mb,变量mod_mb指示从图像宽度(pic_mb_width)除以解码处理器数N得到的商的余数,如图3的表达式(2)所示。可以说,表达式(2)是用来获取用于调节通过图3的表达式(1)获得的每个垂直条带的参考宽度的宏块的数目的表达式。
如果通过图3中的表达式(2)获得的变量mod_mb不是0(零),则用该变量表示的那个垂直条带的参考宽度被增加1。即,如果变量mod_mb是“1”,则给定垂直条带的参考宽度加上“1”来构成该垂直条带的宽度。如果变量mod_mb是“2”,则这两个垂直条带的参考宽度都加上“1”来构成这两个垂直条带的宽度。
对于该实施例,变量“i”因此确定出具体的解码处理器并且提供值的范围为从0到N-1的信息,0到N-1表示所提及的解码处理器在编号的一连串所配置的解码处理器中的序数位置。变量“i”还用作确定要由所述具体解码处理器处理的垂直条带的信息。
为此,如果变量“i”比从图像宽度除以N得到的余数mod_mb小,则图3中的表达式(3)被用来获取由用变量“i”确定的解码处理器2(i)处理的那个垂直条带的宽度mb_width(i)。在这种情况中,用变量div_mb表示的垂直条带的参考宽度加上“1”构成要由解码处理器2(i)处理的垂直条带的宽度mb_width(i)。
因此,只要i<mod_mb,由解码处理器2(i)处理的垂直条带的宽度mb_width(i)就通过对参考宽度div_mb加“1”获得。
如果变量“i”等于或大于从图像宽度除以N得到的余数mod_mb,则图3中的表达式(4)被用来获取由用变量“i”确定的解码处理器2(i)处理的垂直条带的宽度mb_width(i)。
在该情况中,用变量div_mb表示的垂直条带的参考宽度本身构成要由解码处理器2(i)处理的垂直条带的宽度mb_width(i)。因此,只要i≥mod_mb,参考宽度div_mb本身就成为由解码处理器2(i)处理的垂直条带的宽度mb_width(i)。
指示每个垂直条带的起始位置(即,左上方的位置)的值mb_offset(i)是考虑了使用图3中的表达式(3)和(4)计算出的每个垂直条带的宽度mb_width(i)获得的。
具体而言,如果变量“i”是0(零),则其指向要由第一解码处理器2(0)处理的最左边的垂直条带。那么,由解码处理器2(0)处理的垂直条带的起始位置mb_offset(0)是0(零),如图3中的表达式(5)所示。
如果变量“i”大于0(零),则向该垂直条带的起始位置增加紧前的垂直条带的宽度来提供解码处理器(i)的起始位置mb_offset(i)。因此,如果变量“i”大于0(零),则要由解码处理器(i)处理的垂直条带的起始位置mb_offset(i)是使用图3中的表达式(6)获得的。
即,当变量“i”大于0时,通过向该垂直条带的起始位置mb_offset(i-1)增加紧前的垂直条带的宽度mb_width(i-1)来获得起始位置mb_offset(i)。
如图2中所示的以上过程使得比特流分析装置1能够适当地标识和分割垂直条带,垂直条带的图像高度pic_mb_height保持不变,但是其起始位置mb_offset(i)和宽度mb_width(i)改变。
如图2中所示,每个画面可以被分割成与所配置的解码处理器2(0)至2(N-1)的数目一样多的垂直条带。并且如图2中所示,能够适当地标识垂直条带的起始位置mb_offset(0)到mb_offset(N-1)以及它们的宽度mb_width(0)到mb_width(N-1)。
参考图2,比特流分析装置1向解码处理器2(0)提供画面最左边的垂直条带的宏块数据,最左边的垂直条带是要由解码处理器2(0)处理的垂直条带。
还参考图2,比特流分析装置1向解码处理器2(1)提供从画面左方起第二个垂直条带的宏块数据,从画面左方起第二个垂直条带是要由解码处理器2(1)处理的垂直条带。以这种方式,分割出的垂直条带的宏块数据被分发给分别被分派给这些垂直条带的解码处理器2(0)至2(N-1)。
因此,比特流分析装置1能够基于如以上参考图3所说明的那样获得的变量mb_offset(i)和mb_width(i)来将宏块数据分发给相对应的解码处理器。
更具体而言,仅需要其水平位置大于mb_offset(i)并且小于mb_offset(i)加mb_width(i)的宏块数据被发送给解码处理器2(i)。
[画面如何被分割以及宏块数据如何被分发的具体示例]
接下来说明由比特流分析装置1按照以上参考图2和图3所述那样分割画面并分发宏块数据而执行的处理的某些具体示例。图4A至图6B是说明比特流分析装置1示例性地如何分割画面以及示例性地如何分发宏块数据的示意图。
现在,将讨论三个示例:以宏块作为最小单位的图像宽度pic_mb_width是100个宏块的示例(图4A和图4B);以宏块作为最小单位的图像宽度pic_mb_width是101个宏块的另一示例(图5A和图5B);和以宏块作为最小单位的图像宽度pic_mb_width是102个宏块的另一示例(图6A和图6B)。对于这三个示例中的每一个示例,假定所配置的解码处理器的数目为3。
[图像宽度是100个宏块的情况]
图4A是图4B说明在以宏块作为最小单位的图像宽度pic_mb_width是100个宏块并且所配置的解码处理器的数目N为3的情况中,比特流分析装置1执行何种处理。
图4A示出由比特流分析装置1执行的处理。图4B是说明比特流分析装置1如何典型地将画面分割成垂直条带的示意图。
在该示例中,如图4A中的表达式(1)所述,以宏块为单位表示的图像宽度“100”被除以解码处理器数“3”来给出商“33”。然后,商“33”被输入用作每个垂直条带的参考宽度的变量div_mb。
并且,如图4A中的表达式(2)所示,从以宏块为单位的图像宽度“100”除以解码处理器数“3”得到的余数“1”被输入变量mod_mb。
然后,每个垂直条带的宽度mb_width(i)和其起始位置mb_offset(i)基于如上所述获得的变量div_mb和mod_mb以及基于变量“i”被确定。
对于由解码处理器(0)处理的垂直条带,变量“i”为0(零),其小于变量mod_mb的值“1”(i<1)。图3中的表达式(3)因此适用于该情况。如图4A中的表达式(3)所示,所考虑的垂直条带的宽度mb_width(0)被给出为“34”。即,所提及的垂直条带的宽度mb_width(0)是参考宽度“33”加“1”。
对于由解码处理器(0)处理的垂直条带,变量“i”为0(零),其与图3中的表达式(5)所指示的参考值“0”相同(i=0)。因此,图3中的表达式(5)适用于该情况。如图4A中的表达式(4)所示,所考虑的垂直条带的起始位置mb_offset(0)被给出为0。
对于由解码处理器(1)处理的垂直条带,变量“i”为1,其与变量mod_mb的值“1”相同(i=1)。图3中的表达式(4)因此适用于该情况。如图4A中的表达式(5)所示,所考虑的垂直条带的宽度mb_width(1)被给出为“33”。即,所提及的垂直条带的宽度mb_width(1)保持与参考宽度“33”相同。
对于由解码处理器(1)处理的垂直条带,变量“i”为1,其大于图3中的表达式(6)所指示的参考值“0”(i>0)。图3中的表达式(6)因此适用于该情况。如图4A中的表达式(6)所示,所考虑的垂直条带的起始位置mb_offset(1)被给出为“34”。
即,当前处理的垂直条带的起始位置mb_offset(1)是通过将紧前的垂直条带的宽度mb_width(0)(=34)与那个垂直条带的起始位置mb_offset(0)(=0)相加来确定的。
对于由解码处理器(2)处理的垂直条带,变量“i”为2,其大于变量mod_mb的值“1”(i>1)。图3中的表达式(4)因此适用于该情况。如图4A中的表达式(7)所示,所考虑的垂直条带的宽度mb_width(2)被给出为“33”。即,所提及的垂直条带的宽度mb_width(2)保持与参考宽度“33”相同。
对于由解码处理器(2)处理的垂直条带,变量“i”为2,其大于图3中的表达式(6)所指示的参考值“0”(i>0)。图3中的表达式(6)因此适用于该情况。如图4A中的表达式(8)所示,所考虑的垂直条带的起始位置mb_offset(2)被给出为“67”。
即,当前处理的垂直条带的起始位置mb_offset(2)是通过将紧前的垂直条带的宽度mb_width(1)(=33)与那个垂直条带的起始位置mb_offset(1)(=34)相加来确定的。
在该示例中,如图4B中所示,要由解码处理器2(0)处理的垂直条带是通过该垂直条带的起始位置mb_offset(0)(=0)和宽度mb_width(0)(=34)来确定的。
以相似的方式,要由解码处理器2(1)处理的垂直条带是通过该垂直条带的起始位置mb_offset(1)(=34)和宽度mb_width(1)(=33)来确定的。
此外,要由解码处理器2(2)处理的垂直条带是通过该垂直条带的起始位置mb_offset(2)(=67)和宽度mb_width(2)(=33)来确定的。
[图像宽度为101个宏块的情况]
图5A和图5B说明在以宏块作为最小单位的图像宽度pic_mb_width是101个宏块并且所配置的解码处理器的数目N为3的情况中,比特流分析装置1执行何种处理。
图5A示出由比特流分析装置1执行的处理。图5B是说明比特流分析装置1如何典型地将画面分割成垂直条带的示意图。
在该示例中,如图5A中的表达式(1)所述,以宏块为单位表示的图像宽度“101”被除以解码处理器数“3”来给出商“33”。然后,商“33”被输入用作每个垂直条带的参考宽度的变量div_mb。
并且,如图5A中的表达式(2)所示,从以宏块为单位的图像宽度“101”除以解码处理器数“3”得到的余数“2”被输入变量mod_mb。
然后,每个垂直条带的宽度mb_width(i)和其起始位置mb_offset(i)基于如上所述获得的变量div_mb和mod_mb以及基于变量“i”来确定。
对于由解码处理器(0)处理的垂直条带,变量“i”为0(零),其小于变量mod_mb的值“2”(i<2)。图3中的表达式(3)因此适用于该情况。如图5A中的表达式(3)所示,所考虑的垂直条带的宽度mb_width(0)被给出为“34”。即,所提及的垂直条带的宽度mb_width(0)是参考宽度“33”加“1”。
对于由解码处理器(0)处理的垂直条带,变量“i”为0(零),其与图3中的表达式(5)所指示的参考值“0”相同(i=0)。因此,图3中的表达式(5)适用于该情况。如图5A中的表达式(4)所示,所考虑的垂直条带的起始位置mb_offset(0)被给出为0。
对于由解码处理器(1)处理的垂直条带,变量“i”为1,其小于变量mod_mb的值“2”(i<2)。图3中的表达式(3)因此适用于该情况。如图5A中的表达式(5)所示,所考虑的垂直条带的宽度mb_width(1)被给出为“34”。即,所提及的垂直条带的宽度mb_width(1)是参考宽度“33”加“1”。
对于由解码处理器(1)处理的垂直条带,变量“i”为1,其大于图3中的表达式(6)所指示的参考值“0”(i>0)。图3中的表达式(6)因此适用于该情况。如图5A中的表达式(6)所示,所考虑的垂直条带的起始位置mb_offset(1)被给出为“34”。
即,当前处理的垂直条带的起始位置mb_offset(1)是通过将紧前的垂直条带的宽度mb_width(0)(=34)与那个垂直条带的起始位置mb_offset(0)(=0)相加来确定的。
对于由解码处理器(2)处理的垂直条带,变量“i”为2,其与变量mod_mb的值“2”相同(i=2)。图3中的表达式(4)因此适用于该情况。如图5A中的表达式(7)所示,所考虑的垂直条带的宽度mb_width(2)被给出为“33”。即,所提及的垂直条带的宽度mb_width(2)保持与参考宽度“33”相同。
对于由解码处理器(2)处理的垂直条带,变量“i”为2,其大于图3中的表达式(6)所指示的参考值“0”(i>0)。图3中的表达式(6)因此适用于该情况。如图5A中的表达式(8)所示,所考虑的垂直条带的起始位置mb_offset(2)被给出为“68”。
即,当前处理的垂直条带的起始位置mb_offset(2)是通过将紧前的垂直条带的宽度mb_width(1)(=34)与那个垂直条带的起始位置mb_offset(1)(=34)相加来确定的。
在该示例中,如图5B中所示,要由解码处理器2(0)处理的垂直条带是通过该垂直条带的起始位置mb_offset(0)(=0)和宽度mb_width(0)(=34)来确定的。
以类似的方式以相似的方式,要由解码处理器2(1)处理的垂直条带是通过该垂直条带的起始位置mb_offset(1)(=34)和宽度mb_width(1)(=34)来确定的。此外,要由解码处理器2(2)处理的垂直条带是通过该垂直条带的起始位置mb_offset(2)(=68)和宽度mb_width(2)(=33)来确定的。
[图像宽度为102个宏块的情况]
图6A和图6B说明在以宏块作为最小单位的图像宽度pic_mb_width是102个宏块并且所配置的解码处理器的数目N为3的情况中,比特流分析装置1执行何种处理。
图6A示出由比特流分析装置1执行的处理。图6B是说明比特流分析装置1如何典型地将画面分割成垂直条带的示意图。
在该示例中,如图6A中的表达式(1)所述,以宏块为单位表示的图像宽度“102”被除以解码处理器数“3”来给出商“34”。然后,商“34”被输入用作每个垂直条带的参考宽度的变量div_mb。
并且,如图6A中的表达式(2)所示,从以宏块为单位的图像宽度“102”除以解码处理器数“3”得到的余数被输入变量mod_mb。因为在这种情况中没有余数,所以,值“0”被输入变量mod_mb。
然后,每个垂直条带的宽度mb_width(i)和其起始位置mb_offset(i)基于如上所述获得的变量div_mb和mod_mb以及基于变量“i”被确定。
对于由解码处理器(0)处理的垂直条带,变量“i”为0(零),其与变量mod_mb的值“0”相同(i=0)。图3中的表达式(4)因此适用于该情况。如图6A中的表达式(3)所示,所考虑的垂直条带的宽度mb_width(0)被给出为“34”。即,所提及的垂直条带的宽度mb_width(0)与参考宽度“34”相同。
对于由解码处理器(0)处理的垂直条带,变量“i”为0(零),其与图3中的表达式(5)所指示的参考值“0”相同(i=0)。因此,图3中的表达式(5)适用于该情况。如图6A中的表达式(4)所示,所考虑的垂直条带的起始位置mb_offset(0)被给出为0。
对于由解码处理器(1)处理的垂直条带,变量“i”为1,其大于变量mod_mb的值“0”(i>0)。图3中的表达式(4)因此适用于该情况。如图6A中的表达式(5)所示,所考虑的垂直条带的宽度mb_width(1)被给出为“34”。即,所提及的垂直条带的宽度mb_width(1)保持与参考宽度“34”相同。
对于由解码处理器(1)处理的垂直条带,变量“i”为1,其大于图3中的表达式(6)所指示的参考值“0”(i>0)。图3中的表达式(6)因此适用于该情况。如图6A中的表达式(6)所示,所考虑的垂直条带的起始位置mb_offset(1)被给出为“34”。即,当前处理的垂直条带的起始位置mb_offset(1)是通过将紧前的垂直条带的宽度mb_width(0)(=34)与那个垂直条带的起始位置mb_offset(0)(=0)相加来确定的。
对于由解码处理器(2)处理的垂直条带,变量“i”为2,其大于变量mod_mb的值“0”相同(i>0)。图3中的表达式(4)因此适用于该情况。如图6A中的表达式(7)所示,所考虑的垂直条带的宽度mb_width(2)被给出为“34”。即,所提及的垂直条带的宽度mb_width(2)保持与参考宽度“34”相同。
对于由解码处理器(2)处理的垂直条带,变量“i”为2,其大于图3中的表达式(6)所指示的参考值“0”(i>0)。图3中的表达式(6)因此适用于该情况。如图6A中的表达式(8)所示,所考虑的垂直条带的起始位置mb_offset(2)被给出为“68”。
即,当前处理的垂直条带的起始位置mb_offset(2)是通过将紧前的垂直条带的宽度mb_width(1)(=34)与那个垂直条带的起始位置mb_offset(1)(=34)相加来确定的。
在该示例中,如图6B中所示,要由解码处理器2(0)处理的垂直条带是通过该垂直条带的起始位置mb_offset(0)(=0)和宽度mb_width(0)(=34)来确定的。
以类似的方式以相似的方式,要由解码处理器2(1)处理的垂直条带是通过该垂直条带的起始位置mb_offset(1)(=34)和宽度mb_width(1)(=34)来确定的。此外,要由解码处理器2(2)处理的垂直条带是通过该垂直条带的起始位置mb_offset(2)(=68)和宽度mb_width(2)(=34)来确定的。
如图4A至图6B中所示,比特流分析装置1能够根据以用作画面的最小单位的宏块为单位的图像宽度并且根据被配置来执行解码处理的解码处理器的数目,将由比特流形成的画面中的每一个画面分割成多个垂直条带。
因此,不论被提供的运动画面数据的画面大小如何,比特流分析装置1都可以根据图像数据的画面大小将每个画面适当地分割成垂直条带。这些垂直条带中的每个垂直条带被分发给被配置来执行并行处理的解码处理器中不同的一个解码处理器。
更具体而言,如上所述,仅需要其水平位置大于mb_offset(i)并小于mb_offset(i)加mb_width(i)的宏块数据被发送给解码处理器2(i)。
[由解码处理器2(i)执行的处理]
如上所述,每个画面被比特流分析装置1分割成垂直条带,并且这样形成的垂直条带的宏块数据被分发给所分别分派的用于解码处理的解码处理器2(0)到2(N-1)。
以下参考图7和图8的流程图描述的是由该实施例的解码处理设备中所包括的解码处理器2(0)到2(N-1)中的每个解码处理器执行的解码处理。
图7是说明由解码处理器(0)到2(N-1)中的每一个解码处理器对被分派给所考虑的解码处理器的垂直条带进行解码所执行的解码处理的流程图。图8是说明在图7的步骤S3中以宏块为单位执行的解码处理的流程图。
由图1中所示的解码处理器(0)到2(N-1)中的每一个解码处理器执行的解码处理对于所配置的所有解码处理器是相同的。因此,为了简单和图解的目的,在随后的段落中将说明作为由解码处理器2(i)(“i”是0和N-1之间的整数)执行的处理的解码处理。
首先说明的是对画面中被分派给解码处理器2(0)到2(N-1)中的每一个解码处理器的垂直条带的解码处理。当给定画面的图像数据被处理时,画面的原点被定义为其左上方的位置。即,如图2中所示,原点在(0,0)处,(0,0)定义沿水平轴和垂直轴(即,x轴和y轴)的左上方位置。
针对每个垂直条带(即,分割区域)的处理的起始位置在y轴上的0处并在x轴上的mb_offset(i)处。即,针对每个垂直条带的处理的起始位置被确定为(mb_offset(i),0)。
在图7的步骤S1中,解码处理器2(i)将指示y轴上的位置的变量mb_y(i)设为0。在步骤S2中,解码处理器2(i)将指示x轴上的位置的变量mb_x(i)设置为变量mb_offset(i)的值,变量mb_offset(i)表示要由解码处理器2(i)处理的垂直条带在x轴上的起始位置。
在步骤S3中,解码处理器2(i)对在用(mb_x(i),mb_y(i))确定的位置中的宏块执行解码处理(MB处理)。稍后将更详细地讨论步骤S3的处理。
在完成步骤S3中对位于(mb_x(i),mb_y(i))的宏块的解码处理(MB处理)之后,解码处理器2(i)进行到步骤S4。在步骤S4中,解码处理器2(i)将变量mb_x(i)增加“1”。
解码处理器2(i)从步骤S4进行到步骤S5。在步骤S5,解码处理器2(i)进行检查来判定指示x轴上的位置的变量mb_x(i)是否小于所考虑的垂直条带在x轴上的起始位置mb_offset(i)加上其宽度mb_width(i)的值。
步骤S5中的检查包括判断是否对构成由解码处理器2(i)处理的垂直条带中一个宏块行的所有宏块完成了解码处理(MB处理)。
如果在步骤S5中判定还未对所考虑的垂直条带中构成一个宏块行的所有宏块完成解码处理(MB处理),则重回到步骤S3并重复随后的步骤。
即,如果发现指示x轴上的位置的变量mb_x(i)小于mb_offset(i)加mb_width(i),则意味着还未对构成一个宏块行的所有宏块完成解码处理。在该情况中,重复步骤S3和随后的步骤。
如果在步骤S5中判定对所考虑的垂直条带中构成一个宏块行的所有宏块完成了解码处理(MB处理),则进行到步骤S6。在步骤S6中,解码处理器2(i)将变量mb_y(i)增加“1”。
即,如果发现指示x轴上的位置的变量mb_x(i)不小于mb_offset(i)加mb_width(i),则意味着对构成一个宏块行的所有宏块完成了解码处理。在该情况中,进行到步骤S6并执行S6。
解码处理器2(i)从步骤S6进行到步骤S7。在步骤S7中,解码处理器2(i)进行检查来判断指示y轴上的位置的变量mb_y(i)是否小于画面的图像高度pic_mb_height。
步骤S7中的检查包括判断是否对构成由解码处理器2(i)处理的那个垂直条带其垂直方向上的所有宏块行的所有宏块完成了解码处理(MB处理)。
如果在步骤S7中判定还未对构成所考虑的垂直条带其垂直方向上的所有宏块行的所有宏块完成解码处理(MB处理),则解码处理器2(i)返回到步骤S2并重复步骤S2和随后的步骤。
即,如果发现指示y轴上的位置的变量mb_y(i)小于画面的图像高度pic_mb_height,这意味着还未对构成所考虑的垂直条带的所有宏块行的所有宏块完成解码处理。在该情况中,重复步骤S2和随后的步骤以使得下一宏块行可以被处理。
如果在步骤S7中判定对构成所考虑的垂直条带中的所有宏块行的所有宏块完成了解码处理(MB处理),则解码处理器2(i)结束图7中所示的处理。
即,如果发现指示y轴上的位置的变量mb_y(i)不小于画面的图像高度pic_mb_height时,则意味着对构成所考虑的垂直条带的所有宏块行完成了解码处理。在该情况中,图7中所示的处理结束,并且对新的画面(即,新的图像)开始解码处理。
以上述方式,该实施例的解码处理设备中所配置的解码处理器2(i)中的每个解码处理器将要由解码处理器处理的垂直条带中左上方的宏块视为解码处理的起始块。
解码处理器2(i)对从起始块开始到最右边的块为止构成一个宏块行的这些宏块中的每个宏块执行解码处理。在完成一个宏块行之后,解码处理器2(i)同样地开始处理下一宏块行。以这种方式,每个垂直条带中的各个宏块从左上方的块开始到右下方的块为止被解码。
[以宏块为单位的解码处理(MB处理)]
现在,将参考图8来描述图7的步骤S3中所执行的宏块的解码(MB处理)。该实施例的解码处理器2(i)如上所述以宏块为单位执行解码处理。当处理给定的宏块时,解码处理器2(i)需要参考如图12中所示的位于作为目标的宏块的左方、左上方、上方和右上方的宏块的解码结果。
利用该实施例的解码处理设备,如图2中所示,每个画面被分割成垂直条带,每个垂直条带由所配置的解码处理器中不同的一个解码处理器处理。
因此,当处理给定垂直条带最左边或最右边的部分时,解码处理器2(i)需要从处理相邻的垂直条带的另一解码处理器接收宏块的解码结果。解码处理器2(i)可能也有必要将宏块的解码结果提供给另一解码处理器。
如上所述在解码处理器之间进行的宏块的解码结果的发送和接收可以以图8中所示的过程实现。为了简明,将通过参考图9来描述如何在处理相邻的垂直条带的解码处理器之间发送和接收解码处理结果来说明图8的流程图。
图9是说明如何在该实施例的解码处理设备中处理相邻的垂直条带的解码处理器之间交换解码处理结果的示意图。
说明性地,假定在图9中,作为解码目标的宏块A位于由解码处理器2(i)处理的垂直条带的最左边。在这种情况中,对宏块A进行解码需要分别获得位于宏块A的左方、左上方、上方和右上方的宏块Y、X、B和C的解码结果。
如图9中所示,宏块X、Y和Z中的每个宏块属于要由另一解码处理器2(i-1)处理的不同垂直条带。为此,当对图9中的宏块A进行解码时,解码处理器2(i)从解码处理器2(i-1)接收宏块Y的处理结果。
对此来说,已经解码了宏块Y的解码处理器2(i-1)进而将解码结果发送给解码处理器2(i)。在该情况中,当在解码处理器2(i)对在宏块A所属于的那行紧前的行的宏块B进行解码时,已经从解码处理器2(i-1)接收到了位于左上方的宏块X的解码结果,如图9中的箭头所示。这样接收到的解码结果之后被用于解码处理。
宏块B和C已经被相同的解码处理器2(i)解码。因此,宏块B和C的解码结果仅需要被之前解码它们的相同解码处理器参考。
在执行宏块A的解码处理之后,解码处理器2(i)将解码结果发送给解码处理器2(i-1)。当解码宏块Z时,解码处理器2(i-1)接收并利用从解码处理器2(i)发送的宏块A的解码结果。
当位于由解码处理器2(i)处理的垂直条带中最右边的宏块D要被处理时,除了发送和接收数据的次序可能有些不同以外,上述过程也基本适用。
即,当解码宏块D时,解码处理器2(i)从处理包含宏块E并位于右方的相邻垂直条带的另一解码处理器2(i+1)接收宏块E的解码结果。因此,在解码宏块E之后,解码处理器2(i+1)将解码结果发送给解码处理器2(i)。
当处理宏块D时,解码处理器2(i)需要位于作为目标的宏块D的左方、左上方和上方的宏块的解码结果。这些块已经被解码处理器2(i)解码,因此仅需要由相同的解码处理器利用这些解码结果。
在解码宏块D之后,解码处理器2(i)将解码结果发送给解码处理器2(i+1)。这使得解码处理器2(i+1)在解码宏块F时利用位于正被处理的宏块F左方的宏块D的解码结果。
以上述方式,解码处理器之间的通信使得每个解码处理器在处理由该解码处理器处理的垂直条带中每个宏块行中最左边的宏块时,能够获取位于作为目标的宏块的左方的那个宏块的处理结果。在这种情况中,仅需接收在紧前的宏块行的处理期间位于目标宏块左上方的宏块的处理结果之后将其存储。类似地,当各个垂直条带中每个宏块行最右边的宏块要被处理时,可以获得右上方宏块的处理结果。
如果位于作为处理目标的宏块的左方、左上方、上方和右上方的宏块属于相同垂直条带,则不需要解码处理器之间的通信。解码处理的结果仅需要由相同解码处理器保存和被其利用。
如所描述的,当该实施例的解码处理设备具有的一个解码处理器处理给定垂直条带的最左边或最右边的部分时,所考虑的解码处理器被布置来与处理与当前处理的垂直条带相邻的另一垂直条带的另一解码处理器交换解码结果。
在图8中所示的解码处理的步骤S32、S34、S37和S39(以下说明)中执行用于发送和接收解码结果的处理。
实践中,解码处理结果是通过如图1中所示在每两个解码处理器之间***的第一缓冲器3(0)至3(N-2)和第二缓冲器4(0)至4(N-2)来发送和接收的。
现在将参考图8来详细描述图7的步骤S3中所执行的以宏块为单位的解码处理。在图7的处理中,如上所述,作为目标的宏块的位置是用指示x轴上的位置的变量mb_x(i)和表示y轴上的位置的变量mb_y(i)来指定的。
在图8的步骤S31中,解码处理器2(i)进行检查来判定是否满足以下两个条件1和2:
-目标宏块在x轴上的位置mb_x(i)应当与作为处理目标的垂直条带在x轴上的起始位置mb_offset(i)一致(条件1);以及
-所考虑的垂直条带不应是画面的最左边的垂直条带(条件2)。
因此,步骤S31中的检查包括判断作为处理目标的宏块是否位于其所属于的那个垂直条带的最左边以及所考虑的垂直条带是否是画面最左边的垂直条带。
如果在步骤S31中发现以上条件1和2都满足,则解码处理器2(i)进行到步骤S32。在步骤S32中,解码处理器2(i)从第一缓冲器3(i-1)接收位于目标宏块左方的宏块的解码处理结果。
步骤S32中的处理是如参考图9所述通过从解码处理器2(i-1)接收宏块Y的解码结果来解码作为处理目标的宏块A这样的处理。
如果在步骤S31中发现以上条件1和2中的至少一个被满足,则进行到步骤S33来进行另一判断。在步骤S32的处理之后也进行到步骤S33。
在步骤S33中,解码处理器2(i)进行检查来判断是否满足以下三个条件3、4和5:
-作为处理目标的宏块的位置mb_x(i)应当等于当前处理的垂直条带在x轴上的起始位置mb_offset(i)加上所考虑的垂直条带的宽度mb_width(i)再减去“1”(条件3);
-变量“i”应当等于N-1(条件4);以及
-作为处理目标的宏块在y轴上的位置mb_y(i)应当比0大(条件5)。
因此步骤S33中的检查包括判断:目标宏块是否位于其所属于的那个垂直条带的最右边,所考虑的垂直条带是否不是画面最右边的垂直条带,以及目标宏块是否不是位于所考虑的垂直条带上方的第一个宏块行中。
如果在步骤S33中发现3个条件3、4和5都满足,则解码处理器2(i)进行到步骤S34。在步骤S34中,解码处理器2(i)从第二缓冲器4(i)接收位于目标宏块的右上方的那个宏块的解码处理结果。
步骤S34中的处理是如参考图9所述通过从解码处理器2(i+1)接收宏块E的解码结果来解码作为处理目标的宏块D这样的处理。
如果在步骤S33中未发现3个条件3、4和5中的至少一个被满足,则进行到步骤S35进行解码处理。在步骤S34的处理之后也进行到步骤S35。
在步骤S35中,解码处理器2(i)以由用于作为解码目标的运动图像数据的运动图像编码标准规定的方式来从坐标(mb_x(i),mb_y(i))处的宏块数据中解码像素。解码处理器2(i)继而将解码结果写入帧存储器5。
步骤S35中所执行的具体处理包括由上述解码处理器2(0)至2(N-1)执行的各种处理。在日本专利申请No.2006-129284中的第[0039]段至第[0051]段中例示性地说明了运动图像数据解码处理的一个示例。由于解码处理可能根据所使用的运动图像编码标准而不同,所以需要根据有效的各个运动图像编码标准的规范来执行解码。
当解码处理器2(i)已经完成其宏块解码处理时,步骤S35的目的被实现。然后,解码处理器2(i)进行到步骤S36以进行另一判断。
在步骤S36中,解码处理器2(i)进行检查来判定是否满足以下3个条件6、7和8:
-作为处理目标的宏块在x轴上的位置mb_x(i)应当与当前处理的垂直条带在x轴上的起始位置mb_offset(i)一致(条件6);
-变量“i”应当比0(零)大(条件7);以及
-作为处理目标的宏块在y轴上的位置mb_y(i)应当小于图像高度pic_mb_height减去“1”(条件8)。
因此步骤S36中的检查包括判断目标宏块是否位于其所属于的垂直条带中的最左边,所考虑的垂直条带是否不是画面最左边的垂直条带,以及目标宏块是否不是位于所考虑的垂直条带底部的那个宏块行中。
如果在步骤S36中发现3个条件6、7和8都被满足,则解码处理器2(i)进行到步骤S37。在步骤S37中,解码处理器2(i)将目标宏块的解码处理结果发送给第二缓冲器4(i-1)。
步骤S36中的处理是如参考图9所述那样的宏块A是解码目标并且宏块A的解码结果被发送给解码处理器2(i-1)的处理。
如果在步骤S36中未发现3个条件6、7和8中的至少一个被满足,则进行到步骤S38以进行另一判断。在步骤S37的处理之后也进行到步骤S38。
在布置S38中,解码处理器2(i)进行检查来判定是否满足以下两个条件9和10:
-作为处理目标的宏块在x轴上的位置mb_x(i)应当与当前处理的垂直条带在x轴上的起始位置mb_offset(i)加上所考虑的垂直条带的宽度mb_width(i)减去“1”相同(条件9);以及
-变量“i”应当与N-1相同(条件10)。
因此,步骤S38中的检查包括判断目标宏块是否位于其所属于的垂直条带的最右边以及所考虑的垂直条带是否不是画面最右边的垂直条带。
如果在步骤S38中发现以上条件9和10都满足,则解码处理器2(i)进行到步骤S39。在步骤S39中,解码处理器2(i)将目标宏块的解码处理结果发送给第一缓冲器3(i)。
在步骤S38中的处理是如参考图9所述那样的宏块D是处理目标并且宏块D的解码结果被发送给解码处理器2(i+1)的处理。
如果在步骤S38中未发现条件9和10中的至少一个被满足,则图8中所示的处理(即目标宏块的解码处理)结束。在步骤S39的处理之后,图8中的处理也结束。
在图8的处理中用于数据接收的步骤S32和S34中可能发生,在要从其读出结果的缓冲器3(i-1)或4(i)中没有解码处理结果。如果发生这样的情况,则解码处理器等待解码处理结果被输入缓冲器。
在图8的处理中用于数据发送的步骤S37或S39中也可能发生,要向其写入解码处理结果的缓冲器4(i-1)或3(i)被证明充满数据。在这种情况中,解码处理器等待缓冲器变成空闲。
如所描述的,所谓的阻塞式存取使用在所配置的解码处理器之间***的缓冲器来实现。这使得可以容易地并适当地控制处理宏块的次序。
如以上参考图7和图8所述,该实施例中的解码处理设备中的解码处理器2(0)至2(N-1)中的每一个一次解码处理一个宏块。此外,该实施例的解码处理设备中的解码处理器2(0)至2(N-1)并行地解码宏块行,这些宏块行在画面的不同垂直条带中交错地一个在另一的上方。
即,作为处理目标的宏块行交错地一行在另一行上方,每一行由从被分派画面最左边的垂直条带的解码处理器开始到被分派最右边的垂直条带的解码处理器为止的解码处理器中的一个来处理。
图10是说明解码处理器(0)至2(N-1)如何并行地执行解码处理的示意图。对于该实施例的解码处理设备,假定属于最左边的垂直条带(列0)的宏块行“j”(N-1≤j<pic_mb_height)是处理目标。
基于该假设,在列1的垂直条带中,宏块行j-1是处理目标;在列2的垂直条带中,宏块行j-2是处理目标,等等。在列N-1的垂直条带中,宏块行j-N+1是处理目标。
利用该实施例的解码处理设备,如所描述的,画面的垂直条带被指从被分派画面最左边的垂直条带的解码处理器开始到被分派最右边的垂直条带的解码处理器为止的这些解码处理器并行地解码,这些垂直条带对于每个解码处理器交错一个宏块行。
[实施例的效果]
如上所述,配备了用于以宏块为单位执行解码处理的多个解码处理器的解码处理设备在尝试提高并行执行解码处理的效率时,面临3个主要问题。
(a)由宏块被分派给用于进行处理的不同处理器的次序引起的处理器等待时间;
(b)用于正确控制处理宏块的次序的方案的复杂度;
(c)通信所要参考的宏块的处理结果频率以及这样的数据传送所需要的成本。
根据上述实施例的解码处理设备,如参考图10所详细说明的,画面的垂直条带被所配置的解码处理器并行地解码,这些垂直条带对于每个解码处理器交错一个宏块行。该布置解决了以上问题(a)。
以上解决方案的原因是:尽管解码每个垂直条带中各个宏块行上最左边的宏块需要位于目标宏块左方和左上方的宏块的解码结果,但是包含位于左方和左上方的宏块的宏块行已经被其它解码处理器处理了。
尽管解码每个垂直条带中各个宏块行上最右边的宏块需要位于目标宏块右上方的宏块的解码结果,但是包含位于右上方的宏块的宏块行正被另一解码处理器并行地处理。之后,当达到当前处理宏块行的最右边的部分时,很有可能位于右上方的宏块已经被处理了。
以上述方式,通过使宏块行交错地一个在另一个上方来由所配置的解码处理器处理可以解决以上问题(a)。
根据上述实施例的解码处理设备,处理宏块的次序通过处理每个垂直条带最左边和最右边的宏块的处理器之间的传送来自动控制。该控制可以通过标准的块传送机制来实现;不必有针对该目的的专门装置。该特征消除了以上的问题(b)。
在上述实施例的解码处理设备中,对于画面的每个垂直条带中最左边和最右边的宏块仅需要不同处理器间的传送。这意味着最小化了以上问题(c)。
特别地,当给定宏块是要由给定解码处理器处理的目标时,位于目标宏块的上方的宏块由相同解码处理器处理。不需要采取在不同处理器间传送上方宏块的处理结果这样耗费成本的传送。数据可以通过与所考虑的解码处理器紧密耦合的主缓存等高速存储器来转送,这是很明显的优势。
如上所述,上述实施例的解码处理设备能够解决所有以上3个问题(a)、(b)和(c)。
作为另一优势,仅在画面的各个垂直条带中的宏块行中最左边和最右边的部分处需要解码处理器之间的时间同步。换而言之,仅在每个垂直条带中宏块行的最左边和最右边的部分处才能找得到一个解码处理器有可能等待来自另一解码处理器的数据的点。
为此,即使在宏块之间存在处理时间的不同,对于每个垂直条带中的每个宏块行,处理时间趋于变得相等。如果在处理每个垂直条带中的宏块行(不是各个宏块)的不同解码处理器之间几乎不存在处理时间上的差异,则解码处理被以可能的最高程度的效率并行地执行。
如果在图像中垂直地布置的宏块数目相当大,则总的解码处理时间可以被近似地定义为“1”除以所配置的处理器数目(即,1/处理器数)。即,解码处理的速度可以被增强。
[本发明的方法和程序]
如以上参考图2至图6B所述,比特流分析装置1将由运动图像数据形成的画面分割成多个部分,这多个部分的宏块数据之后被分发给多个解码处理器。画面的分割和数据的分发是使用根据本发明的方法来完成的。
比特流分析装置1可以由计算机构成。那么,以上参考图2至图6B所述的用于分割画面的方法和用于分发运动图像数据的方法可以使用比特流分析装置1所执行的程序来实现。该程序以可被比特流分析装置1执行的方式构成实施本发明的数据分发程序。
以上参考图7至图10所讨论的用于解码经编码的运动图像数据的方法构成了体现本发明的解码处理方法。使得图7至图10中所示的处理被解码处理器执行的程序构成了体现本发明的解码处理程序。
[其它]
对于图像的分辨率或并行执行的解码处理的数目没有限制。各种分辨率的运动图像数据都可以使用本发明实施例的设备、方法或程序来解码。并且,可以提供所需要数目的被配置用来进行并行解码处理的解码处理器。
例如,本发明如果被实现为使用并行配置的3个解码处理器来对完全高清晰(1,920×1080像素)的图像进行解码,是特别有利的。即,当所配置的解码处理器的数目相比于垂直布置的宏块的数目不是很大时,可以突显出本发明的益处。
有限数目的解码处理器在以上情况中是优选的原因在于:如果安排太多解码处理器,则图像中要被解码的目标部分越高或越低,越多数目的解码处理器变得冗余。与期望相反,越多数目的解码处理器往往导致越多冗余的解码处理器,导致劣化的效率。
显然,解码处理器的数目可以被适当地确定,以在不同分辨率的图像被处理时高效地执行解码处理,而不论它们具有的分辨率比完全高清晰低还是高。
画面可以以不同方式被分割成垂直条带。例如,画面的中心部分可以比画面的其它部分被分割成更宽或更窄的垂直条带。然而,如以上结合本发明的实施例所讨论的,画面应当优选地被分割成大致相同宽度的垂直条带,以使本发明的益处最大。以这种方式分割画面使得很有可能使宏块行之间的处理时间的差异最小。
可替换地,不同性能级别的解码处理器可以被组合使用。在这样的情况中,被分派给所配置的解码处理器中的每个解码处理器的垂直条带的宽度可以根据所考虑的处理器的性能来调节。
具体地,较宽的垂直条带可以被分派给具有较高性能的解码处理器,而较窄的垂直条带可以被分派给具有较低性能的解码处理器。
在所配置的多个解码处理器在性能上大致相同的另一情况中,它们可以根据正被处理的所分派的垂直条带的图像数据来处理不同的负荷。
在该情况中,作为解码目标的图像数据的特征(例如从比特流分析装置1输出的DCT系数中的AC分量的量)被获得。这样获得的量被用来对在被解码时有可能变成较重负荷的处理块和将被证实为是较轻解码负荷的处理块进行区分。
如果发现垂直条带包含许多在被解码时有可能是较重负荷的处理块,则可以使该垂直条带较窄;如果发现垂直条带几乎没有具有重解码负荷的处理块,则可以使该垂直条带较宽。
如所描述的,可以以下述方式来确定被分派给各个解码处理器的垂直条带的宽度,即,尽可能使所配置的多个解码处理器上的解码处理负荷在它们之间均等。
利用上述实施例,如果从图像宽度除以所配置的解码处理器的相除中产生余数,则垂直条带的宽度被从画面中最左边的垂直条带开始相对应地调节,如参考图4A至图5B所讨论的。可替换地,垂直条带的宽度也可以被从画面中最右边的垂直条带开始调节。
作为另一替换例,垂直条带的宽度可以以预定次序被调节,例如从画面的中心部位的垂直条带向最右边的垂直条带再到最左边的垂直条带。即,可以以所希望的画面中所布置的条带的次序来调节垂直条带的宽度。
解码处理器可以由CPU上运行的软件程序来实现,如稍后将描述的。自然地,解码处理器还可以由硬件电路来实现或以任何其它合适的方式来实现。为了分散功能,解码处理器也可以位于并行操作的多个设备段中。
缓冲模块可以用涉及FIFO电路的使用的硬件或需要使用信号通讯(semaphore)的软件来实现。简单而言,信号通讯是对并行运行的处理进行同步并控制中断处理的方案。
为了简明和图示,上述实施例被示出为在所配置的解码处理器中的每两个解码处理器之间***第一发送和接收缓冲器3(0)至3(N-2)中的一个和第二发送和接收缓冲器4(0)至4(N-2)中的一个。可替换地,缓冲模块可以被布置为用作单个模块,这单个模块在解码处理器之间发送和接收数据同时仲裁来自所有这些处理器的请求。
上述实施例的解码处理设备本质的前提条件被限制为要被解码的目标区域与位于其左方、左上方、上方和右上方的区域之间的依赖关系。只要考虑的是涉及类似依赖关系的二维数据处理,本发明不仅适用于运动图像的解码,并且也适用于诸如编码、静止图像处理和图像质量增强之类的其它各种处理。
即,尽管本发明以上是以用于执行解码处理的实施例的形式来描述的,但是可替换地,本发明可以被实现为将画面分割成如上所述的多个垂直条带并且以宏块为单位编码这些垂直条带中的每一个垂直条带的实施例。
对于以上可替换的实施例,可能有必要获取从相邻垂直条带的宏块的编码中得到的处理结果。在这种情况中,与上述解码处理的情况一样,数据可以在多个编码处理器之间发送和接收。
不需要将处理单位(即,独立的数据单位)限制为16乘16像素的宏块。可以以各种大小和形状的处理块为单位来处理数据。
处理块可以根据处理块之间的依赖性的方向以及分割和扫描块的方向而被改变。这样的关系和方向可以按照需要被旋转或翻转,从而可以获得不同版本的处理块。即,根据本发明,分割或以其他方式操控要处理的块(例如,宏块)的方向可以根据处理结果需要被参考的处理块的位置来调节。以这种方式,可以以提供合适的诸如解码之类的图像处理的方式来实现本发明。
关于上述实施例,说明了目标宏块是通过参考位于目标块的左方、左上方、上方和右上方的宏块的解码处理结果来处理的。然而,这对于本发明不是限制性的。
可替换地,当仅位于作为处理目标的左方和左上方的宏块要被参考时,本发明的实施例也适用。在该情况中,如果宏块A是以上参考图9所讨论的处理目标,则宏块Y的处理结果从解码处理器2(i-1)被发送给解码处理器2(i)。当宏块A正被处理时,解码处理器2(i)仅需要从解码处理器2(i-1)接收宏块Y的处理结果。
类似地,当目标宏块通过仅参考位于目标块的右上方的宏块来处理时,本发明的实施例也适用。在该情况中,如果宏块D是如上参考图9所讨论的处理目标时,则宏块E的处理结果可以从解码处理器2(i+1)被发送给解码处理器2(i)。当宏块D正被处理时,解码处理器2(i)仅需要从解码处理器2(i+1)接收宏块E的处理结果。
本申请包含与2009年5月22日向日本专利局提交的日本在先专利申请JP 2009-124180中所公开的主题有关的主题,该申请的全部内容通过引用结合于此。
本领域技术人员应当理解,根据设计要求和其它因素可以进行各种修改、组合、子组合和更改,只要它们在所附权利要求及其等同物的范围内即可。

Claims (14)

1.一种解码处理设备,包括:
多个解码处理装置,所述多个解码处理装置用于以预定处理块为单位解码运动图像数据;
分发装置,所述分发装置被配置为使得,当被提供经编码的运动图像数据时,所述分发装置根据所述多个解码处理装置的数目,将由所述运动图像数据形成的画面中的每一个画面分割成以所述处理块作为最小单位的垂直条带,所述分发装置还将属于所分割出的垂直条带中的各个垂直条带的运动图像数据分发给所述解码处理装置中不同的一个解码处理装置;以及
形成装置,所述形成装置用于当被从所述多个解码处理装置提供经解码的运动图像数据时形成一个画面的图像数据。
2.根据权利要求1所述的解码处理设备,其中,所述垂直条带中的各个垂直条带被分派给所述多个解码处理装置中的各个解码处理装置,所述多个解码处理装置从上到下对每一个处理块行中的各个处理块执行解码处理;
当对每个处理块执行解码处理时,所提及的解码处理装置使用至少位于所提及的处理块的左方、左上方和右上方的处理块的处理结果;
如果另一垂直条带位于所分派的垂直条带的左方并且如果所述所分派的垂直条带最左边的处理块要被处理,则所述所提及的解码处理装置从处理位于左方的所述另一垂直条带的解码处理装置接收位于作为目标的处理块左方的处理块的处理结果;
所述所提及的解码处理装置使用所接收到的位于左方的处理块的处理结果以及在上一行中的块被处理期间所接收到的处理块的处理结果来执行解码处理;
所述所提及的解码处理装置将该解码处理的结果发送给处理位于左方的所述另一垂直条带的解码处理装置;
如果另一垂直条带位于所述所分派的垂直条带的右方并且如果所述所分派的垂直条带最右边的处理块要被处理时,则所述所提及的解码处理装置从处理位于右方的所述另一垂直条带的解码处理装置接收位于作为目标的处理块右上方的处理块的处理结果;
所述所提及的解码处理装置使用所接收到的位于右上方的处理块的处理结果来执行解码处理;并且
所述所提及的解码处理装置将该解码处理的结果发送给处理位于右方的所述另一垂直条带的解码处理装置。
3.根据权利要求1所述的解码处理设备,还包括临时存储装置,所述临时存储装置每一个被***在所述多个解码处理装置的任何两个解码处理装置之间,使得所述临时存储装置用来发送和接收处理结果;
其中,如果准备接收处理结果的解码处理装置在其可接入的临时存储装置的接收区域空闲的话,则该解码处理装置被置于等待状态;并且
如果准备发送处理结果的解码处理装置在其可接入的临时存储装置的发送区域充满的话,则该解码处理装置被置于等待状态。
4.根据权利要求1所述的解码处理设备,其中,所述多个解码处理装置在以从分派给它们的最左边的垂直条带开始并在最右边的垂直条带结束的方式开始一个接一个地执行解码处理之后,并行地操作;并且
一个解码处理装置开始对处理块行进行解码之后,被分派了位于当前垂直条带紧右方的垂直条带的另一解码处理装置随后在一个处理块行的延迟之后开始对一个处理块行进行解码处理,从而目标处理块在所述画面上形成阶梯状样式。
5.根据权利要求1所述的解码处理设备,其中,所述分发装置将所述画面的水平宽度换算成以所述处理块的水平宽度为最小单位的宽度;
所述分发装置将换算后的画面的水平宽度除以所述多个解码处理装置的数目;
如果所述相除没有余数,则所述分发装置将所述相除的商分割成水平宽度,每一个水平宽度与所述垂直条带中的每一个垂直条带有关;
如果所述相除产生余数,则所述分发装置将所述相除的商视为所述垂直条带中的每一个垂直条带的水平参考宽度,并且将数目与所述余数对应的剩余的垂直条带中的每一个垂直条带的水平参考宽度加1,从而所述垂直条带中的每一个垂直条带的水平宽度被确定使得所述画面能够被相应地分割成所述垂直条带。
6.根据权利要求1所述的解码处理设备,其中,所述垂直条带中的各个垂直条带被分派给所述多个解码处理装置中的各个解码处理装置,所述多个解码处理装置从上到下对每一个处理块行中的各个处理块执行解码处理;
所提及的解码处理装置使用位于所提及的处理块的左方的处理块的处理结果;
如果另一垂直条带位于所分派的垂直条带的右方并且如果所述所分派的垂直条带最右边的处理块要被处理,则所述所提及的解码处理装置将所述最右边的处理块的处理结果发送给处理位于右方的所述另一垂直条带的解码处理装置;以及
如果另一垂直条带位于所述所分派的垂直条带的左方并且如果所述所分派的垂直条带最左边的处理块要被处理,则所述所提及的解码处理装置从处理位于左方的所述另一垂直条带的解码处理装置接收作为目标的处理块的处理结果。
7.根据权利要求1所述的解码处理设备,其中,所述垂直条带中的各个垂直条带被分派给所述多个解码处理装置中的各个解码处理装置,所述多个解码处理装置从上到下对每一个处理块行中的各个处理块执行解码处理;
所提及的解码处理装置使用位于所提及的处理块的右上方的处理块的处理结果;
如果另一垂直条带位于所分派的垂直条带的左方并且如果所述所分派的垂直条带最左边的处理块要被处理,则所述所提及的解码处理装置将所述最左边的处理块的处理结果发送给处理位于左方的所述另一垂直条带的解码处理装置;以及
如果另一垂直条带位于所述所分派的垂直条带的右方并且如果所述所分派的垂直条带最右边的处理块要被处理,则所述所提及的解码处理装置从处理位于右方的所述另一垂直条带的解码处理装置接收作为目标的处理块的处理结果。
8.一种解码处理方法,包括以下步骤:
使得被提供经编码的运动图像数据的分发装置根据多个解码处理装置的数目,将由所述运动图像数据形成的画面中的每个画面分割成以预定处理块为最小单位的垂直条带,所述分发装置还被使得将属于所分割出的垂直条带中的每个垂直条带的运动图像数据分发给所述解码处理装置中不同的一个解码处理装置;
使得被提供所分发的运动图像数据的所述解码处理装置中的每一个解码处理装置以所述处理块为单位对所述运动图像数据执行解码处理;以及
使得形成装置从在前一步骤中由所述多个解码处理装置解码出的运动图像数据形成一个画面的图像数据。
9.根据权利要求8所述的解码处理方法,其中,所述垂直条带中的各个垂直条带被分派给所述多个解码处理装置中的各个解码处理装置,所述多个解码处理装置被使得从上到下对每一个处理块行中的各个处理块执行解码处理,所述解码处理方法还包括以下步骤:
当对每个处理块执行解码处理时,使得所提及的解码处理装置使用至少位于所提及的处理块的左方、左上方和右上方的处理块的处理结果;
如果另一垂直条带位于所分派的垂直条带的左方并且如果所述所分派的垂直条带最左边的处理块要被处理,则使得所述所提及的解码处理装置从被使得处理位于左方的所述另一垂直条带的解码处理装置接收位于作为目标的处理块左方的处理块的处理结果;
使得所述所提及的解码处理装置使用所接收到的位于左方的处理块的处理结果以及在上一行中的块被处理期间所接收到的处理块的处理结果来执行解码处理;
使得所述所提及的解码处理装置将该解码处理的结果发送给被使得处理位于左方的所述另一垂直条带的解码处理装置;
如果另一垂直条带位于所述所分派的垂直条带的右方并且如果所述所分派的垂直条带最右边的处理块要被处理时,则使得所述所提及的解码处理装置从被使得处理位于右方的所述另一垂直条带的解码处理装置接收位于作为目标的处理块右上方的处理块的处理结果;
使得所述所提及的解码处理装置使用所接收到的位于右上方的处理块的处理结果来执行解码处理;并且
使得所述所提及的解码处理装置将该解码处理的结果发送给被使得处理位于右方的所述另一垂直条带的解码处理装置。
10.根据权利要求8所述的解码处理方法,其中,临时存储装置被***在所述多个解码处理装置的任何两个解码处理装置之间,使得所述临时存储装置用来发送和接收处理结果,所述解码处理方法还包括以下步骤:
如果准备接收处理结果的解码处理装置在其可接入的临时存储装置的接收区域空闲的话,则将该解码处理装置置于等待状态;以及
如果准备发送处理结果的解码处理装置在其接入的临时存储装置的发送区域充满的话,则将该解码处理装置置于等待状态。
11.一种数据分发程序,由被结合到解码处理设备中的计算机使用,所述解码处理设备具有用于以预定处理块为单位对运动图像数据执行解码处理的多个解码处理装置,所述计算机用作用于将所述运动图像数据分发给所述多个解码处理装置的分发装置,所述数据分发程序执行包括以下步骤的分发处理:
使得被提供经编码的运动图像数据的分发装置根据多个解码处理装置的数目,将由所述运动图像数据形成的画面中的每个画面分割成以预定处理块为最小单位的垂直条带,所述分发装置还被使得将属于所分割出的垂直条带中的每个垂直条带的运动图像数据分发给所述解码处理装置中不同的一个解码处理装置。
12.一种解码处理程序,由多个计算机中的每个计算机执行,所述多个计算机被结合在用于对运动图像数据执行解码处理在解码处理设备中并且用作用于以预定处理块为单位对运动图像数据执行解码处理的多个解码处理装置;
其中,由要被解码的运动图像数据形成的画面中的每一个画面根据所述多个计算机的数目被分割成以所述处理块为最小单位的垂直条带,使得属于所分割出的垂直条带中的每一个垂直条带的运动图像数据被分发给所述计算机中不同的一个计算机;并且
所述垂直条带中的各个垂直条带被分派给所述多个计算机中的各个计算机,所述多个计算机被使得从上到下对每一个处理块行中的各个处理块执行解码处理,所述解码处理程序执行包括以下步骤的处理:
当对每个处理块执行解码处理时,使得所提及的计算机使用至少位于所提及的处理块的左方、左上方和右上方的处理块的处理结果;
如果另一垂直条带位于所分派的垂直条带的左方并且如果所述所分派的垂直条带最左边的处理块要被处理,则使得所述所提及的计算机在第一接收步骤中从被使得处理位于左方的所述另一垂直条带的计算机接收位于作为目标的处理块左方的处理块的处理结果;
使得所述所提及的计算机在第一解码步骤中使用接收到的前一接收步骤中位于左方的处理块的处理结果和在上一行的块被处理期间接收到的位于左方的处理块的处理结果,来执行解码处理;
使得所述所提及的计算机在第一发送步骤中将该解码处理的结果发送给被使得处理位于左方的所述另一垂直条带的计算机;
如果另一垂直条带位于所述所分派的垂直条带的右方并且如果所述所分派的垂直条带最右边的处理块要被处理时,则使得所述所提及的计算机在第二接收步骤中从被使得处理位于右方的所述另一垂直条带的计算机接收位于作为目标的处理块右上方的处理块的处理结果;
使得所述所提及的计算机在第二解码步骤中使用在前一接收步骤中所接收到的位于右上方的处理块的处理结果来执行解码处理;以及
使得所述所提及的计算机将所述第二解码步骤中的解码处理的结果发送给被使得处理位于右方的所述另一垂直条带的计算机。
13.根据权利要求12所述的解码处理程序,其中,临时存储装置被***在所述多个计算机的任何两个计算机之间,使得所述临时存储装置用来发送和接收处理结果,所述解码处理程序还包括以下步骤:
如果准备接收处理结果的计算机在其可接入的临时存储装置的接收区域空闲的话,则将该计算机置于等待状态;以及
如果准备发送处理结果的计算机在其接入的临时存储装置的发送区域充满的话,则将该计算机置于等待状态。
14.一种解码处理设备,包括:
多个解码处理部件,所述多个解码处理部件被配置为以预定处理块为单位解码运动图像数据;
分发部件,所述分发部件被配置为使得,当被提供经编码的运动图像数据时,所述分发部件根据所述多个解码处理部件的数目,将由所述运动图像数据形成的画面中的每一个画面分割成以所述处理块作为最小单位的垂直条带,所述分发部件还将属于所分割出的垂直条带中的每个垂直条带的运动图像数据分发给所述解码处理部件中不同的一个解码处理部件;以及
形成部件,所述形成部件被配置为当被从所述多个解码处理部件提供经解码的运动图像数据时形成一个画面的图像数据。
CN2010101812662A 2009-05-22 2010-05-17 解码处理设备及方法和数据分发方法 Expired - Fee Related CN101895746B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009124180A JP5343703B2 (ja) 2009-05-22 2009-05-22 復号処理装置、復号処理方法、およびプログラム
JP2009-124180 2009-05-22

Publications (2)

Publication Number Publication Date
CN101895746A true CN101895746A (zh) 2010-11-24
CN101895746B CN101895746B (zh) 2013-04-24

Family

ID=43104790

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101812662A Expired - Fee Related CN101895746B (zh) 2009-05-22 2010-05-17 解码处理设备及方法和数据分发方法

Country Status (3)

Country Link
US (1) US9179158B2 (zh)
JP (1) JP5343703B2 (zh)
CN (1) CN101895746B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103763556A (zh) * 2014-01-29 2014-04-30 广东威创视讯科技股份有限公司 视频图像编解码装置及其方法、传输***及其方法
CN105812809A (zh) * 2012-04-27 2016-07-27 富士通株式会社 视频图像解码装置及方法
CN107172441A (zh) * 2012-06-29 2017-09-15 佳能株式会社 图像编码装置及方法、图像解码装置及方法
CN110058792A (zh) * 2018-01-18 2019-07-26 伊姆西Ip控股有限责任公司 扩大存储空间的方法、设备以及计算机程序产品
CN111447453A (zh) * 2020-03-31 2020-07-24 西安万像电子科技有限公司 图像处理方法及装置
CN113170164A (zh) * 2019-11-20 2021-07-23 株式会社 Xris 用于对图像信号进行编码/解码的方法及其装置
CN113287323A (zh) * 2019-01-08 2021-08-20 高通股份有限公司 用于流媒体数据的多解码器接口
WO2023184923A1 (en) * 2022-03-28 2023-10-05 Beijing Xiaomi Mobile Software Co., Ltd. Encoding/decoding video picture data

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9060174B2 (en) 2010-12-28 2015-06-16 Fish Dive, Inc. Method and system for selectively breaking prediction in video coding
JP2014220550A (ja) * 2013-05-01 2014-11-20 株式会社Jvcケンウッド フィルタ処理装置、フィルタ処理方法及びフィルタ処理プログラム
CN104754353B (zh) * 2013-12-31 2018-08-10 珠海全志科技股份有限公司 Vc-1编解码insc的实现方法及***
JP7252094B2 (ja) 2019-08-20 2023-04-04 ラピスセミコンダクタ株式会社 半導体装置及びトランジスタ

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060093042A1 (en) * 2004-10-29 2006-05-04 Hideharu Kashima Coding apparatus, decoding apparatus, coding method and decoding method
US20060093043A1 (en) * 2004-10-29 2006-05-04 Hideharu Kashima Coding apparatus, decoding apparatus, coding method and decoding method
JP2006319944A (ja) * 2005-04-15 2006-11-24 Sony Corp 復号制御装置および方法、記録媒体、並びに、プログラム
CN1870752A (zh) * 2005-05-23 2006-11-29 其乐达科技股份有限公司 应用于视频编码/解码的解块滤波方法及其装置
US20080069244A1 (en) * 2006-09-15 2008-03-20 Kabushiki Kaisha Toshiba Information processing apparatus, decoder, and operation control method of playback apparatus
CN101184245A (zh) * 2007-12-25 2008-05-21 北京数码视讯科技股份有限公司 一种视频编码的方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07115649A (ja) * 1993-10-15 1995-05-02 Mitsubishi Electric Corp 映像信号符号化復号化装置
KR960706739A (ko) * 1994-10-07 1996-12-09 이데이 노부유끼 화상 데이타 기록 장치 및 화상 데이타 재생 장치(picture date recording apparatus and picture data reproducing apparatus)
US5646687A (en) * 1994-12-29 1997-07-08 Lucent Technologies Inc. Temporally-pipelined predictive encoder/decoder circuit and method
US6263023B1 (en) * 1998-10-15 2001-07-17 International Business Machines Corporation High definition television decoder
US7050497B2 (en) * 2001-03-28 2006-05-23 Thomson Licensing Process and device for the video coding of high definition images
US20030138045A1 (en) * 2002-01-18 2003-07-24 International Business Machines Corporation Video decoder with scalable architecture
US8401084B2 (en) * 2002-04-01 2013-03-19 Broadcom Corporation System and method for multi-row decoding of video with dependent rows
FR2854754B1 (fr) * 2003-05-06 2005-12-16 Procede et dispositif de codage ou decodage d'image avec parallelisation du traitement sur une pluralite de processeurs, programme d'ordinateur et signal de synchronisation correspondants
US20040258162A1 (en) * 2003-06-20 2004-12-23 Stephen Gordon Systems and methods for encoding and decoding video data in parallel
JP4699685B2 (ja) * 2003-08-21 2011-06-15 パナソニック株式会社 信号処理装置及びそれを用いた電子機器
JP3833224B2 (ja) * 2004-01-30 2006-10-11 キヤノン株式会社 符号化方法及び装置、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP4819517B2 (ja) * 2005-02-16 2011-11-24 オリンパス株式会社 画像処理方法及び画像処理装置
JP4182442B2 (ja) * 2006-04-27 2008-11-19 ソニー株式会社 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
US8000388B2 (en) * 2006-07-17 2011-08-16 Sony Corporation Parallel processing apparatus for video compression
WO2009142021A1 (ja) * 2008-05-23 2009-11-26 パナソニック株式会社 画像復号化装置、画像復号化方法、画像符号化装置、及び画像符号化方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060093042A1 (en) * 2004-10-29 2006-05-04 Hideharu Kashima Coding apparatus, decoding apparatus, coding method and decoding method
US20060093043A1 (en) * 2004-10-29 2006-05-04 Hideharu Kashima Coding apparatus, decoding apparatus, coding method and decoding method
JP2006319944A (ja) * 2005-04-15 2006-11-24 Sony Corp 復号制御装置および方法、記録媒体、並びに、プログラム
CN1870752A (zh) * 2005-05-23 2006-11-29 其乐达科技股份有限公司 应用于视频编码/解码的解块滤波方法及其装置
US20080069244A1 (en) * 2006-09-15 2008-03-20 Kabushiki Kaisha Toshiba Information processing apparatus, decoder, and operation control method of playback apparatus
CN101184245A (zh) * 2007-12-25 2008-05-21 北京数码视讯科技股份有限公司 一种视频编码的方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105812809A (zh) * 2012-04-27 2016-07-27 富士通株式会社 视频图像解码装置及方法
CN105812809B (zh) * 2012-04-27 2018-12-07 富士通株式会社 视频图像解码装置及方法
CN107172441A (zh) * 2012-06-29 2017-09-15 佳能株式会社 图像编码装置及方法、图像解码装置及方法
CN107172441B (zh) * 2012-06-29 2020-01-17 佳能株式会社 图像编码装置及方法、图像解码装置及方法
CN103763556A (zh) * 2014-01-29 2014-04-30 广东威创视讯科技股份有限公司 视频图像编解码装置及其方法、传输***及其方法
CN110058792A (zh) * 2018-01-18 2019-07-26 伊姆西Ip控股有限责任公司 扩大存储空间的方法、设备以及计算机程序产品
CN113287323A (zh) * 2019-01-08 2021-08-20 高通股份有限公司 用于流媒体数据的多解码器接口
CN113287323B (zh) * 2019-01-08 2023-08-18 高通股份有限公司 用于检索媒体数据的方法、客户端设备及计算机可读介质
CN113170164A (zh) * 2019-11-20 2021-07-23 株式会社 Xris 用于对图像信号进行编码/解码的方法及其装置
CN111447453A (zh) * 2020-03-31 2020-07-24 西安万像电子科技有限公司 图像处理方法及装置
CN111447453B (zh) * 2020-03-31 2024-05-17 西安万像电子科技有限公司 图像处理方法及装置
WO2023184923A1 (en) * 2022-03-28 2023-10-05 Beijing Xiaomi Mobile Software Co., Ltd. Encoding/decoding video picture data

Also Published As

Publication number Publication date
JP2010273190A (ja) 2010-12-02
US9179158B2 (en) 2015-11-03
CN101895746B (zh) 2013-04-24
JP5343703B2 (ja) 2013-11-13
US20100296585A1 (en) 2010-11-25

Similar Documents

Publication Publication Date Title
CN101895746B (zh) 解码处理设备及方法和数据分发方法
JP6281851B2 (ja) 画像復号化装置、画像符号化装置、画像復号化方法、画像符号化方法、プログラムおよび集積回路
US9667972B2 (en) Image coding device, image coding method, and image coding integrated circuit
US8073053B2 (en) Image encoding device that encodes an arbitrary number of moving pictures
JP4182442B2 (ja) 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
US10757431B2 (en) Method and apparatus for processing video
US7102551B2 (en) Variable length decoding device
US20100061464A1 (en) Moving picture decoding apparatus and encoding apparatus
US20060023791A1 (en) Method and apparatus for decoding moving picture to which post filtering is applied
US20080288953A1 (en) Information processing device and method
US20190297344A1 (en) Encoding video using two-stage intra search
JP5324431B2 (ja) 画像復号装置、画像復号システム、画像復号方法、及び集積回路
CN116600134B (zh) 一种适配图形引擎的并行视频压缩方法和装置
US8170104B2 (en) Apparatus and method for motion vector prediction
JP5265984B2 (ja) 画像符号化装置及び復号装置
JPH0221776A (ja) 予測性静止画像エンコーダ・デコーダ
JPH07115649A (ja) 映像信号符号化復号化装置
JPH0870457A (ja) 並列処理による画像復号装置
US11622106B2 (en) Supporting multiple partition sizes using a unified pixel input data interface for fetching reference pixels in video encoders
US8284838B2 (en) Apparatus and related method for decoding video blocks in video pictures
CN113115043A (zh) 视频编码器、视频编码***和视频编码方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130424

Termination date: 20170517