Nothing Special   »   [go: up one dir, main page]

CN102263950B - 编码设备和编码方法以及解码设备和解码方法 - Google Patents

编码设备和编码方法以及解码设备和解码方法 Download PDF

Info

Publication number
CN102263950B
CN102263950B CN201110179213.1A CN201110179213A CN102263950B CN 102263950 B CN102263950 B CN 102263950B CN 201110179213 A CN201110179213 A CN 201110179213A CN 102263950 B CN102263950 B CN 102263950B
Authority
CN
China
Prior art keywords
unit
processing
decoding
coefficient
coding
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.)
Expired - Fee Related
Application number
CN201110179213.1A
Other languages
English (en)
Other versions
CN102263950A (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 CN102263950A publication Critical patent/CN102263950A/zh
Application granted granted Critical
Publication of CN102263950B publication Critical patent/CN102263950B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及一种编码设备和编码方法以及解码设备和解码方法,能够在传送了编码图像时以低延迟得到解码图像。识别信息生成单元(21)生成共有处理识别信息或程序识别信息,所述共有处理识别信息识别通过编码处理和解码处理中的哪一个来执行在图像数据的编码处理和编码流的解码处理之间共有的处理,所述程序识别信息识别从将构成解码处理的多个处理分配给多个处理单元的分配模式或由多个处理使用的存储器的配置模式相互不同的多个解码程序中选择哪个解码程序,传送单元(22)发送由识别信息生成单元生成的共有处理识别信息或程序识别信息。本发明可以应用于例如编码设备和解码设备。

Description

编码设备和编码方法以及解码设备和解码方法
本申请是于2008年5月16日提出的、题为“编码设备和编码方法以及解码设备和解码方法”的中国专利申请No.200880001127.8的分案申请。
技术领域
本发明涉及编码设备和编码方法以及解码设备和解码方法,特别是涉及能够在传送了编码图像时以低延迟得到解码图像的编码设备和编码方法以及解码设备和解码方法。
背景技术
以往,作为代表性的图像压缩方式,有被ISO(InternationalOrganization for Standardization,国际标准化组织)标准化的JPEG(Joint Photographic Experts Group,联合图像专家组)方式。在该JPEG方式中,将图像分割成块,对每个块实施DCT(Discrete CosineTransform,离散余弦变换)以得到DCT系数,将DCT系数量化,并进一步执行熵编码,从而实现具有高质量和高压缩率的图像压缩。
近年来,对于利用被称为滤波器组(filter bank)的、使用高通滤波器和低通滤器的组合的滤波器来将图像分割成多个频带并且逐个频带地进行编码的编码方式,进行了活跃的研究。其中,小波变换编码没有DCT的在高压缩时块失真变得显著的缺点,因此被认为是超过DCT的一种新的有前途的技术。
例如,在2001年1月完成了国际标准化的JPEG2000采用将该小波变化与基于比特平面单位的比特建模和算术编码的高效熵编码组合的压缩编码方式。利用该JPEG2000方式,相对于JPEG方式实现了编码效率的显著提高。专利文献1记载了一种进一步提高了编码效率的小波变换方法。
专利文献1:日本未审查专利申请公开NO.9-130800
发明内容
在传送以上述的这种编码方式编码的图像时,在编码设备或解码设备的任意一个中都需要执行以低延迟得到解码图像的预定处理。例如,在编码设备中执行该预定处理的情况下,需要从编码设备向解码设备通知不需要在解码单元中执行该预定处理。另一方面,不在编码设备中执行该预定处理的情况下,需要从编码设备向解码设备通知需要在解码单元中执行该预定处理。
除非能够以这种方式适当地从编码设备向解码设备通知是否执行该预定处理等信息,否则很难在传送了编码图像时以低延迟得到解码图像。
本发明鉴于上述情况而作出,能够在传送了编码图像时以低延迟得到解码图像。
本发明的第1方面的编码设备是一种执行图像数据的编码处理以生成编码流的编码设备,包括:识别信息生成单元,用于生成共有处理识别信息或程序识别信息,其中,所述共有处理识别信息识别通过编码处理和解码处理中的哪一个来执行在图像数据的编码处理和编码流的解码处理之间共有的处理,所述程序识别信息识别从分配模式或配置模式相互不同的多个解码程序中选择哪个解码程序,并且,所述分配模式是将构成解码处理的多个处理分配给多个处理单元的分配模式,所述配置模式是由多个处理使用的存储器的配置模式;编码单元,用于执行图像数据的编码处理,以生成编码流;和传送单元,用于将由识别信息生成单元生成的共有处理识别信息或程序识别信息与由编码单元生成的编码流一起传送。
本发明的第1方面的解码方法是一种执行图像数据的编码处理以生成编码流的编码方法,包括以下步骤:生成共有处理识别信息或程序识别信息,其中,所述共有处理识别信息识别通过编码处理和解码处理中的哪一个来执行在图像数据的编码处理和编码流的解码处理之间共有的处理,所述程序识别信息识别从分配模式或配置模式相互不同的多个解码程序中选择哪个解码程序,并且,所述分配模式是将构成解码处理的多个处理分配给多个处理单元的分配模式,所述配置模式是由多个处理使用的存储器的配置模式;执行图像数据的编码处理,以生成编码流;以及将共有处理识别信息或程序识别信息与编码流一起传送。
在本发明的第1方面中,生成共有处理识别信息或程序识别信息,其中,所述共有处理识别信息识别通过编码处理和解码处理中的哪一个来执行在图像数据的编码处理和编码流的解码处理之间共有的处理,所述程序识别信息识别从分配模式或配置模式相互不同的多个解码程序中选择哪个解码程序,并且,所述分配模式是将构成解码处理的多个处理分配给多个处理单元的分配模式,所述配置模式是由多个处理使用的存储器的配置模式。然后,对图像数据执行编码处理,以生成编码流,并且将共有处理识别信息或程序识别信息与编码流一起传送。
本发明的第2方面的解码设备是一种执行通过执行图像数据的编码处理而得到的编码流的解码处理的解码设备,包括:取得单元,与编码流一起取得共有处理识别信息或程序识别信息,其中,所述共有处理识别信息识别通过编码处理和解码处理中的哪一个来执行在图像数据的编码处理和编码流的解码处理之间共有的处理,所述程序识别信息识别从分配模式或配置模式相互不同的多个解码程序中选择哪个解码程序,并且,所述分配模式是将构成解码处理的多个处理分配给多个处理单元的分配模式,所述配置模式是由多个处理使用的存储器的配置模式;解码单元,用于执行由取得单元取得的编码流的解码处理;和控制单元,用于控制解码单元,以按照由取得单元取得的共有处理识别信息或程序识别信息所表示的处理方式,执行解码处理。
本发明的第2方面的解码方法是一种执行通过执行图像数据的编码处理而得到的编码流的解码处理的解码方法,包括以下步骤:与编码流一起取得共有处理识别信息或程序识别信息,其中,所述共有处理识别信息识别通过编码处理和解码处理中的哪一个来执行在图像数据的编码处理和编码流的解码处理之间共有的处理,所述程序识别信息识别从分配模式或配置模式相互不同的多个解码程序中选择哪个解码程序,并且,所述分配模式是将构成解码处理的多个处理分配给多个处理单元的分配模式,所述配置模式是由多个处理使用的存储器的配置模式;以及执行控制,以使解码处理按照共有处理识别信息或程序识别信息所表示的处理方式来执行。
在本发明的第2方面中,与编码流一起取得共有处理识别信息或程序识别信息,其中,所述共有处理识别信息识别通过编码处理和解码处理中的哪一个来执行在图像数据的编码处理和编码流的解码处理之间共有的处理,所述程序识别信息识别从分配模式或配置模式相互不同的多个解码程序中选择哪个解码程序,并且,所述分配模式是将构成解码处理的多个处理分配给多个处理单元的分配模式,所述配置模式是由多个处理使用的存储器的配置模式。然后,对编码流执行解码处理,并且执行控制,以使解码处理按照共有处理识别信息或程序识别信息所表示的处理方式来执行。
根据本发明的第1和第2方面,在传送了编码图像数据时能够以低延迟得到解码图像。
附图说明
图1是示出应用了本发明的编码设备的一个实施方式的结构例子的框图。
图2是示出应用了本发明的解码设备的结构例子的框图。
图3是示出编码单元14的结构例子的框图。
图4是示意性地说明小波变换的简图。
图5是示意性地说明小波变换的简图。
图6是示出利用5×3滤波器的提升(lifting)的滤波被执行到分解级别=2的例子的简图。
图7是示意性地示出本发明的小波变换和小波逆变换的流程的简图。
图8是示出标题的结构例子的图。
图9是说明序列标题的图。
图10是说明图片标题的图。
图11是说明分区(precinct)标题的图。
图12是示出解码单元36的结构例子的框图。
图13是说明对图像数据进行编码的处理的流程图。
图14是说明生成标题的处理的流程图。
图15是说明对图像数据进行解码的处理的流程图。
图16是说明分析标题的处理的流程图。
图17是示意性地示出由编码单元和解码单元的各个要素执行的并行操作的例子的简图。
图18是示出个人计算机的结构例子的框图。
图19是示出向编码单元分配硬件资源的例子的图。
图20是示出图19中的例子的情况下的处理流程的示意图。
图21是示出向编码单元分配硬件资源的另一例子的图。
图22是示出向编码单元分配硬件资源的另一例子的图。
图23是示出图22中的例子的情况下的处理流程的示意图。
图24是示出向编码单元分配硬件资源的另一例子的图。
图25是示出图24中的例子的情况下的处理流程的示意图。
图26是示出向解码单元分配硬件资源的例子的图。
图27是示出图26中的例子的情况下的处理流程的示意图。
图28是示出向解码单元分配硬件资源的另一例子的图。
图29是示出图28中的例子的情况下的处理流程的示意图。
图30是示出向解码单元分配硬件资源的另一例子的图。
图31是示出图30中的例子的情况下的处理流程的示意图。
图32是示出编码单元的另一结构例子的框图。
图33是示出向图32中的编码单元分配硬件资源的另一例子的图。
图34是示出编码单元的另一结构例子的框图。
图35是示出与图34中的编码单元对应的解码单元的结构例子的框图。
图36是示出信息处理系统的结构例子的框图。
图37是示出子CPU核的结构例子的框图。
图38是示出主CPU核的结构例子的框图。
图39是示出小波变换关系表的结构例子的图。
图40是示出系数重新排列关系表的结构例子的图。
图41是说明编码选择控制处理的流程例子的流程图。
图42是说明计算精度选择处理的流程例子的流程图。
图43是说明编码方式选择处理的流程例子的流程图。
图44是说明解码选择控制处理的流程例子的流程图。
图45是说明解码方式选择处理的流程例子的流程图。
图46是示出利用5×3滤波器的提升的滤波被执行到分解级别=2的例子的简图。
图47是示出利用5×3滤波器的提升的滤波被执行到分解级别=2的例子的简图。
图48是示出解码单元36的另一实施方式的框图。
图49是示出编码单元14的另一实施方式的框图。
图50是示出解码单元36的另一实施方式的框图。
附图标记说明
12摄像设备、13编码设备、14编码单元、15分组生成单元、16发送单元、17标题生成单元、18序列标题生成单元、19图片标题生成单元、20分区标题生成单元、21传送单元、22识别信息生成单元、32解码设备、33显示设备、34接收单元、35分组解读单元、36解码单元、37输出单元、38标题解读单元、39序列标题解读单元、40图片标题解读单元、41分区标题解读单元、42识别信息取得单元、43解码控制单元、44编码码流取得单元、51小波变换单元、52中间计算缓冲器单元、53系数重新排列缓冲器单元、54系数重新排列单元、55熵编码单元、61熵解码单元、62系数缓冲器单元、63小波逆变换单元、100个人计算机、101 CPU、103 RAM、111高速缓冲存储器、300信息处理系统、403XDR-RAM、441主CPU核、442子CPU核、451LS、502编码选择控制单元、503解码选择控制单元、504高速缓冲存储器、516编码方式选择单元、517分配单元、524解码方式选择单元、525分配单元
具体实施方式
以下参照附图详细说明应用了本发明的具体实施方式。
图1是示出应用了本发明的编码设备的一个实施方式的结构例子的框图。
在图1中,摄像设备12与编码设备13连接。编码设备13对摄像设备12拍摄的图像进行编码。
摄像设备12具有使用CCD(Charge Coupled Device,电荷耦合器件)、CMOS(Complementary Mental-Oxide Semiconductor,互补金属氧化物半导体)等的摄像元件,拍摄对象的图像。即,摄像设备12从对象接收光并根据所接收到的光量生成由电信号形成的拍摄图像。然后,摄像设备12将所拍摄的图像转换成作为数字数据的图像数据,并将该图像数据提供给编码设备13。
编码设备13由编码单元14、识别信息生成单元21和传送单元22构成。
图像数据从摄像设备12提供给编码单元14。编码单元14按预定方法对图像数据进行编码,并将通过编码得到的编码数据提供给分组生成单元15。
识别信息生成单元21生成与在编码单元14中执行的编码处理有关的信息,并将该信息提供给传送单元22。作为与编码处理有关的信息,例如有用于识别由编码单元14和解码设备32的解码单元36(在后述的图2中示出)中的哪一个执行在编码单元14的编码处理和解码单元36的解码处理之间共有的处理的信息(共有处理识别信息)、以及用于识别从多个解码程序中选择哪个解码程序的信息(程序识别信息)等,其中,该多个解码程序在将构成解码单元36的多个处理分配给多个处理单元的分配模式或者在由多个处理使用的存储器的配置模式中彼此不同。
传送单元22将由识别信息生成单元21生成的信息转换成流格式,以生成编码码流,并在编码码流的标题(具体地说,在MPEG(Moving Picture Experts Group,运动图像专家组)标准中是用户数据区)中适当地输入描述。
而且,为了将编码码流(包括标题中包含的信息)记录到驱动器(未示出)中安装的记录介质上,传送单元22可以向驱动器发送编码码流。
即,传送单元22由分组生成单元15、发送单元16和标题生成单元17构成。
编码数据从编码单元14提供给分组生成单元15,包括与编码数据有关的信息的标题从标题生成单元17提供给分组生成单元15。分组生成单元15使编码数据分组化。即,分组生成单元15通过将编码数据分割成预定的数据大小并且附加来自标题生成单元17的标题、用于使数据的发送和接收定时同步的同步码等,生成分组。分组生成单元15将分组提供给发送单元16。
发送单元16按照图像的同步信号的定时,经由包括有线或无线的信道或者包括有线和无线的信道,利用预定的通信方法发送(送出)由从分组生成单元15提供的分组形成的编码码流。而且,用于传送分组的信道可以是专用或通用传送电缆,可以包括例如LAN(Local AreaNetwork,局域网)或互联网等一个或多个通信网络,或者可以包括某个通信中继设备。
标题生成单元17由序列标题生成单元18、图片标题生成单元19和分区标题生成单元20构成,向序列标题生成单元18、图片标题生成单元19和分区标题生成单元20提供从识别信息生成单元21提供的信息(共用处理识别信息或程序识别信息等)。
这里,从编码设备13发送的一系列图像作为整体被称为序列,构成序列的多个图像中的每个图像被称为图片。而且,在构成图片的多行中,作为将参考图6后述的小波变换的处理单位的行数被称为集合分区。即,图片由多个分区构成。
当编码设备13开始发送一系列图像时,序列标题生成单元18生成包括该一系列图像共有的信息的序列标题,并将序列标题提供给分组生成单元15。包含在序列标题中的信息将参考图9后述。
每当从编码单元14向分组生成单元15提供图片时,图片标题生成单元19就生成包括与每个图片有关的信息的图片标题,并将图片标题提供给分组生成单元15。包含在图片标题中的信息将参考图10后述。
每当从编码单元14向分组生成单元15提供分区时,分区标题生成单元20就生成包括与每个分区有关的信息的分区标题,并将分区标题提供给分组生成单元15。包含在分区标题中的信息将参考图11后述。
图2是示出应用了本发明的解码设备的结构例子的框图。
在图2中,显示设备33与解码设备32连接。
显示设备33具有显示器,在显示器上显示由解码设备32解码和输出的图像。
解码设备32由编码码流取得单元44、识别信息取得单元42、解码控制单元43、解码单元36和输出单元37构成。
编码码流取得单元44取得从图1中的发送单元16的传送单元22传送的编码码流。编码码流取得单元44将编码码流解码,提取编码码流的标题(具体地,在MPWG标准中是用户数据区)中记载的信息,并将该信息提供给识别信息取得单元42。
替代地,编码码流取得单元44通过从安装了记录有编码码流(包括标题中包含的信息)的记录介质的驱动器(未图示)读取(重放),来取得编码码流。
即,编码码流取得单元44由接收单元34、分组解读单元35和标题解读单元38构成。
接收单元34按照预定的通信方法接收从图1中的发送单元16发送的编码码流,并将编码码流提供给分组解读单元35。
分组解读单元35从接收单元34提供的编码码流的分组中提取标题和编码数据,将标题提供给标题解读单元38,并将编码数据提供给解码单元36。
标题解读单元38由序列标题解读单元39、图片标题解读单元40和分区标题解读单元41构成。
由分组解读单元35从分组中提供的序列标题被提供给序列标题解读单元39。序列标题解读单元39分析序列标题,并将序列标题中包含的信息提供给识别信息取得单元42。
由分组解读单元35从分组中提供的图片标题被提供给图片标题解读单元40。图片标题解读单元40分析图片标题,并将图片标题中包含的信息提供给识别信息取得单元42。
由分组解读单元35从分组中提供的分区标题被提供给分区标题解读单元41。分区标题解读单元41分析分区标题,并将分区标题中包含的信息提供给识别信息取得单元42。
编码码流的标题中包含的信息从编码码流取得单元44提供给识别信息取得单元42。识别信息取得单元42取得包含在编码码流的标题中的信息,即,由图1中的识别信息生成单元21生成的信息(共有处理识别信息或程序识别信息等),并将该信息提供给解码控制单元43。
解码控制单元43控制解码单元36,使其按照由从识别信息取得单元42提供的信息指示的处理方式对编码码流进行解码。
按照解码控制单元43的控制,解码单元36利用与图1中的编码单元14的编码方法对应的方法,对从分组解读单元35提供的编码数据进行解码,并将作为结果而获得的图像数据提供给输出单元37。
输出单元37将从解码单元36提供的图像数据输出到显示设备33。
在如上所述构成的编码设备13和解码设备32中,在摄像设备12中拍摄的图像在编码单元14中被编码,在分组生成单元15中被分组化并发送。分组在分组解读单元35中被解读,在解码单元36中被解码,并在显示设备33上显示。
在编码设备13和解码设备32中,除了由摄像设备12拍摄的图像外,例如还可以传送预先拍摄和累积的图像。而且,从编码设备13传送的图像可以用于在显示设备33上显示以外的目的,例如用于记录到记录设备(未图示)上。另外,尽管在该例子中作为要传送的数据仅说明了图像数据,但例如也可以与图像数据一起传送语音数据等其它种类的数据。
另外,编码设备13发送分组的方法可以是仅向解码设备32发送分组的单播,也可以是向包括解码设备32在内的多个设备发送分组的多播,还可以是向不特定多数的设备发送分组的广播。
另外,除了被附加到分组的标题上并发送到解码设备32以外,由编码设备13的识别信息生成单元21生成的信息可以被多路复用,并且例如以并行方式通过与传送图像数据(编码数据)的信道不同的信道(不同系统)从识别信息生成单元21发送给识别信息取得单元42。
图3是示出图1中的编码单元14的结构例子的框图。
如图3所示,编码单元14具有小波变换单元51、中间计算缓冲器单元52、系数重新排列缓冲器单元53、系数重新排列单元54和熵编码单元55的功能。
输入到编码单元14的图像数据经由小波变换单元51被临时累积到中间计算缓冲器单元52中。小波变换单元51对中间计算缓冲器单元52中累积的图像数据实施小波变换。即,小波变换单元51从中间计算缓冲器单元52中读出图像数据,利用分析滤波器实施滤波处理,以生成低频分量和高频分量的系数的数据,并将所生成的系数数据存储到中间计算缓冲器单元52中。小波变换单元51具有水平分析滤波器和垂直分析滤波器,针对屏幕的水平方向和屏幕的垂直方向对图像数据组执行分析滤波处理。小波变换单元51再次读出中间计算缓冲器单元52中存储的低频分量的系数数据,并利用分析滤波器对所读出的系数数据实施滤波处理,从而进一步生成高频分量和低频分量的系数的数据。所生成的系数数据被存储到中间计算缓冲器单元52中。
当在重复上述处理之后分解级别达到预定级别时,小波变换单元51从中间计算缓冲器单元52中读出系数数据,并将所读出的系数数据写入到系数重新排列缓冲器单元53中。
系数重新排列单元54按照预定的顺序读出被写入到系数重新排列缓冲器单元53中的系数数据,并将该系数数据提供给熵编码单元55。熵编码单元55利用预定的方法将所提供的系数数据量化,并按照例如霍夫曼(Huffman)编码或算术编码等预定的熵编码方式进行编码。熵编码单元55向编码单元14外部输出所生成的编码数据。
以下更详细地说明在图3的小波变换单元51中执行的处理。首先,概略地说明小波变换。在图像数据的小波变换中,如图4中概略示出的那样,将图像数据分割成高空间频率和低空间频率的频带的处理针对作为分割结果得到的低空间频率的频带中的数据递归地重复。这样,通过将低空间频率的频带中的数据收缩至更小的区域,可以执行有效的压缩编码。
图4示出将图像数据的最低频分量区域分割成低频分量的区域L和高频分量的区域H的处理被重复3次,表示分割的分级级别的总数的分割级别为3。在图4中,“L”和“H”分别表示低频分量和高频分量,关于“L”和“H”的顺序,前侧表示作为在横向上分割的结果得到的频带,后侧表示在纵向上分割的结果得到的频带。“L”和“H”前的数字表示对应区域的分级级别,低频分量的分级级别用较小的值表示。该分级级别的最大值表示小波变换在此时的分割级别(分割数)。
从图4中的例子可以理解,随着以阶梯方式从屏幕的右下区域到左上区域执行处理,低频分量被收缩。即,在图4的例子中,在屏幕的右下区域是具有最少的低频分量(包含最多的高频分量)的区域3HH的情况下,被分割成4个的屏幕的左上区域被进一步分割成4个,在这4个分割区域中,左上区域被进一步分割成4个。最左上的区域是包含最多低频分量的区域0LL。
针对低频分量重复进行变换和分割的原因是,图像的能量集中于低频分量。这一点从以下事实也可以理解:从随着分割级别从在图5A中示出其例子的分割级别=1的状态前进到在图5B中示出其例子的分割级别=3的状态,如图5B所示形成子带。
例如,图4中的小波变换的分割级别为3,结果形成10个子带。
小波变换单元51通常使用由低通滤波器和高通滤波器构成的滤波器组来执行上述处理。由于数字滤波器通常具有多个抽头(tap)长度的脉冲响应、即滤波器系数,因此,需要预先缓冲用于执行滤波处理的足够量的输入图像数据或系数数据。
同样,在多级执行小波变换的情况下,也需要缓冲足够用于执行滤波处理的个数的、在前面级生成的小波变换系数。
作为该小波变换的具体例子,下面说明使用5×3滤波器的方法。该使用5×3滤波器的方法也由JPEG 2000标准采用,并且证明该方法在能够以小的滤波器抽头数执行小波变换方面优良。
如下面的表达式(1)和(2)所示,5×3滤波器的脉冲响应(z变换表达)由低通滤波器H0(z)和高频滤波器H1(z)构成。
H0(z)=(-1+2z-1+6z-2+2z-3-z-4)/8...(1)
H1(z)=(-1+2z-1-z-2)/2...(2)
根据上述表达式(1)和(2),可以直接计算低频分量和高频分量的系数。此时,通过应用提升(lifting)技术,可以减少滤波处理中的计算。
以下更详细地说明该小波变换方法。图6示出利用5×3滤波器的提升的滤波处理被执行到分解级别=2的例子。在图6中,被指示为图的左侧的分析滤波器的部分是图3中的小波变换单元51的滤波器。被指示为图的右侧的合成滤波器的部分是后述的小波逆变换单元的滤波器。
顺便提及,在以下说明中,假设在显示设备等中,屏幕的左上角的像素作为第1像素,例如随着从屏幕的左端到右端来扫描像素而形成一行,随着从屏幕的上端到下端进行逐行扫描而形成一屏。
在图6中,在左端的列中,原图像数据的行上的对应位置上的像素数据被示为在纵向上排列。即,随着使用垂直滤波器在屏幕上纵向扫描像素而进行小波变换单元51中的滤波处理。从左端起第1到第3列表示分割级别=1的滤波处理,第4到第6列表示分割级别=2的滤波处理。从左端起第2列表示基于左端的原图像数据的像素的高频分量输出,从左端起第3列表示基于原图像数据和高频分量输出的低频分量输出。如从左端起第4到第6列所示,在分割级别=2的滤波处理中,对分割级别=1的滤波处理的输出执行处理。
在分解级别=1的滤波处理中,作为第1阶段的滤波处理,根据原图像数据的像素来计算高频分量的系数数据,作为第2阶段的滤波处理,根据在第1阶段的滤波处理中计算的高频分量的系数数据和原图像数据的像素来计算低频分量的系数数据。分解级别=1的滤波处理的例子由图6的左侧(分析滤波器侧)的第1到第3列指示。所计算的高频分量的系数数据被存储到图3的系数重新排列缓冲器单元53中。而且,所计算的低频分量的系数数据被存储到图3中的中间计算缓冲器单元52中。
在图6中,系数重新排列缓冲器单元53被示为长短交替的虚线包围的部分,中间计算缓冲器单元52被示为点线包围的部分。
根据中间计算缓冲器单元52中保持的分解级别=1的滤波处理的结果,执行分解级别=2的滤波处理。在分解级别=2的滤波处理中,作为低频分量的系数在分解级别=1的滤波处理中计算的系数数据被视为既包括低频分量也包括高频分量的系数数据,执行与分解级别=1的滤波处理同样的滤波处理。通过分解级别=2的滤波处理计算的高频分量的系数数据和低频分量的系数数据被存储到系数重新排列缓冲器单元53中。
小波变换单元51在屏幕的水平方向和垂直方向上分别执行上述的滤波处理。例如,在水平方向上执行分解级别=1的滤波处理,将生成的高频分量和低频分量的系数数据存储到中间计算缓冲器单元52中。接着,在垂直方向上对中间计算缓冲器单元52中存储的系数数据执行分解级别=1的滤波处理。通过在水平和垂直方向上的分解级别=1的处理,形成4个区域,包括分别由通过进一步将高频分量分解成高频分量和低频分量而得到的系数数据构成的区域HH和区域HL、以及分别由通过进一步将低频分量分解成高频分量和低频分量而得到的系数数据构成的区域LH和区域LL。
然后,在分解级别=2下,针对水平方向和垂直方向分别对在分解级别=1下生成的低频分量的系数数据执行滤波处理。即,在分解级别=2下,通过在分解级别=1下分割而形成的区域LL被进一步分割为4个,区域HH、区域HL、区域LH和区域LL被进一步形成在区域LL内。
小波变换单元51通过针对屏幕的纵向将滤波处理分割成用于每几行的处理,阶段地执行多次利用小波变换的滤波处理。在图6的例子中,在作为从屏幕上的第1行开始的处理的第1轮处理中,针对7行来执行滤波处理。从作为从第8行开始的处理的第2轮处理以后,每4行执行滤波处理。该行数是基于在2分解成高频分量和低频分量后生成相当于一行的最低频分量所需的行数。
顺便提及,以下将生成相当于一行的最低频分量(与最低频分量的子带的一行相当的系数数据)所需的、包含其它子带的行的集合称为分区(或行块)。这里,行表示与小波变换前的图像数据相对应的图片(帧或场)或者相当于在每个子带中形成的一行的像素数据或系数数据。即,分区(行块)表示小波变换前的原图像数据中的、生成相当于小波变换后的最低频分量的子带的一行的系数数据所需的行数的像素数据组,或者通过对像素数据组执行小波变换而得到的各个子带中的系数数据组。
根据图6,作为分解级别=2的滤波处理的结果而得到的系数C5根据系数C4和中间计算缓冲器单元52中存储的系数Ca计算,系数C4根据中间计算缓冲器单元52中存储的系数Ca、系数Cb和系数Cc计算。而且,系数Cc根据系数重新排列缓冲器单元53中存储的系数C2和系数C3以及第5行上的像素数据计算。另外,系数C3根据第5行到第7行上的像素数据计算。这样,为了得到分割级别=2的低频分量的系数C5,需要第1行到第7行上的像素数据。
相反,从滤波处理的第2轮以后,可以使用已经计算到前一轮滤波处理并且存储在系数重新排列缓冲器单元53中的系数数据,从而需要较少的行数即可。
即,根据图6,在作为分解级别=2的滤波处理的结果而得到的低频分量的系数中,作为系数C5之后的下一系数的系数C9根据系数C4、系数C8和中间计算缓冲器单元52中存储的系数Cc计算。系数C4已经通过如上所述的第1轮的滤波处理计算并存储在系数重新排列缓冲器单元53中。同样,系数Cc已经通过如上所述的第1轮的滤波处理计算并存储在中间计算缓冲器单元52中。因此,在该第2轮的滤波处理中,仅新执行用于计算系数C8的滤波处理。该新的滤波处理通过进一步使用第8行到第11行来执行。
这样,从滤波处理的第2轮以后,可以使用已经计算到前一轮滤波处理并且存储在中间计算缓冲器单元52和系数重新排列缓冲器单元53中的数据,从而仅针对每4行执行处理即可。
在屏幕上的行数与要编码的行数不一致的情况下,通过按预定方法复制原图像数据的行,使行数与要编码的行数一致,从而执行编码。
这样,用于得到相当于最低频分量的一行的系数数据的滤波处理阶段地多次(以分区为单位)针对整个屏幕的行来执行,从而能够在传送了编码数据时以低的延迟得到解码图像。
为了执行小波变换,需要用于执行小波变换本身的第1缓冲器和用于存储在将处理执行到预定的分割级别的过程中生成的系数的第2缓冲器。第1缓冲器对应于中间计算缓冲器单元52,并且在图6中示为被点线包围。第2缓冲器对应于系数重新排列缓冲器单元53,并且在图6中示为被长短交替的虚线包围。由于存储在第2缓冲器中的系数在解码时使用,因此在后级对其进行熵编码处理。
以下说明图3中的系数重新排列单元54的处理。如上所述,在小波变换单元51中计算的系数数据被存储到系数重新排列缓冲器单元53中,由系数重新排列单元54按顺序重新排列后被读出,并以编码单元为单位发送给熵编码单元55。
如上所述,在小波变换中,从高频分量侧向低频分量侧生成系数。在图6的例子中,在第1轮,从原图像的像素数据开始,通过分解级别=1的滤波处理依次生成高频分量的系数C1、系数C2和系数C3。然后,对通过分解级别=1的滤波处理得到的低频分量的系数数据执行分解级别=2的滤波处理,依次生成低频分量的系数C4和系数C5。即,在第1轮中,按照系数C1、系数C2、系数C3、系数C4和系数C5的顺序生成系数数据。按照小波变换的原理,系数数据的生成顺序必定为该顺序(从高频到低频的顺序)。
相反,在解码侧,为了立即以低的延迟进行解码,需要从低频分量开始执行图像的生成和输出。即,优选地,将在编码侧生成的系数数据从最低频分量侧到高频分量侧重新排列,然后提供给解码侧。
以下使用图6中的例子进行更详细的说明。图6的右侧示出执行小波逆变换的合成滤波器侧。解码侧的包括输出图像数据的第1行的第1轮合成处理(小波逆变换处理)使用通过编码侧的第1轮滤波处理生成的最低频分量的系数C4和C5以及系数C1来执行。
即,在第1轮合成处理中,按照系数C5、系数C4和系数C1的顺序从编码侧向解码侧提供系数数据。在解码侧,在作为与分解级别=2对应的合成处理的合成级别=2的处理中,对系数C5和系数C4执行合成处理,以生成系数Cf并存储到缓冲器中。然后,在作为与分解级别=1对应的合成处理的合成级别=1的处理中,对系数Cf和系数C1执行合成处理,并输出第1行。
这样,在第1轮合成处理中,在编码侧按照系数C1、系数C2、系数C3、系数C4和系数C5的顺序生成并且存储到系数重新排列缓冲器单元53中的系数数据按照系数C5、系数C4、系数C1...的顺序重新排列并提供给解码侧。
在图6的右侧示出的合成滤波器侧,针对从编码侧提供的系数,将编码侧的系数的编号写入括号内,将合成滤波器中的行顺序写到括号外。例如,系数C1(5)表示在图6的左侧的分析滤波器侧是系数C5,并且在合成滤波器侧是第1行。
基于通过编码侧的第2轮以后的滤波处理生成的系数数据的、解码侧的合成处理可以使用在前一轮合成处理时合成或者从编码侧提供的系数数据来执行。在图6的例子中,在使用通过编码侧的第2轮滤波处理生成的低频分量的系数C8和系数C9执行的、解码侧的第2轮合成处理中,还需要通过编码侧的第1轮滤波处理生成的系数C2和系数C3,并且第2行到第5行被解码。
即,在第2轮合成处理中,从编码侧向解码侧按照系数C9、系数C8、系数C2、系数C3的顺序提供系数数据。在解码侧,在合成级别=2的处理中,使用系数C8和系数C9以及在第1轮合成处理时从编码侧提供的系数C4而生成系数Cg并存储到缓冲器中。使用该系数Cg、上述系数C4和通过第1轮合成处理生成并存储在缓冲器中的系数Cf来生成系数Ch并存储到存储器中。
然后,在合成级别=1的处理中,使用通过合成级别=2的处理生成并且存储在缓冲器中的系数Cg和系数Ch以及从编码侧提供的系数C2(在合成滤波器中指示为系数C6(2))和系数C3(在合成滤波器中指示为系数C7(3))进行合成处理,并且第2行到第5行被解码。
这样,在第2轮合成处理中,在编码侧按照系数C2、系数C3(系数C4、系数C5)、系数C6、系数C7、系数C8和系数C9的顺序生成的系数数据按照系数C9、系数C8、系数C2、系数C3...的顺序被重新排列,并提供给解码侧。
同样,从第3轮合成处理以后,存储在系数重新排列缓冲器单元53中的系数数据按照预定顺序被重新排列并提供给解码侧,并且按照每4行来对行进行解码。
顺便提及,在与编码侧的包括屏幕下端的行的滤波处理(以下称为最后一轮)对应的解码侧的合成处理中,通过到此为止的处理生成并且存储在缓冲器中的所有系数数据被输出,从而输出行数变大。在图6的例子中,在最后一轮输出8行。
例如通过按照预定顺序设定读出存储在系数重新排列缓冲器单元53中的系数数据的读出地址,来进行系数重新排列单元54的系数数据重新排列处理。
以下参照图7更具体地说明如上所述的处理。图7示出使用5×3滤波器将利用小波变换的滤波处理实施到分解级别=2的例子。在小波变换单元51中,如图7的A中的例子所示,在水平方向和垂直方向上分别对输入图像数据的第1行到第7行执行第1轮滤波处理(图7的A中的In-1)。
在分解级别=1的第1轮滤波处理中,生成相当于基于系数C1、系数C2、系数C3的3行的系数数据,并且如图7的B中的例子所示,配置于在分解级别=1下形成的区域HH、HL和LH的每一个中(图7的B中的WT-1)。
而且,在分解级别=1下形成的区域LL通过在分解级别=2下在水平和垂直方向上的滤波处理被进一步分割为4个。关于在分解级别=2下生成的系数C5和系数C4,在分解级别=1的区域LL中,基于系数C5的一行被配置在区域LL中,基于系数C4的一行被配置在区域HH、区域HL和区域LH的每一个中。
从小波变换单元51的第2轮滤波处理以后,针对每4行执行滤波处理(图7的A中的In-2...),在分解级别=1下生成每2行的系数数据(图7的B中的WT-2),在分解级别=2下生成每1行的系数数据。
在图6的第2轮的例子中,通过分解级别=1的滤波处理生成相当于基于系数C6、系数C7的2行的系数数据,并且如图7的B中的例子所示,配置于在分解级别=1下形成的区域HH、区域HL和区域LH中的、在第1轮滤波处理中生成的系数数据之后。同样,在分解级别=1的区域LL中,通过分解级别=2的滤波处理生成的相当于一行的系数C9被配置在区域LL中,相当于一行的系数C8被配置在区域HH、区域HL和区域LH的每一个中。
在对如图7的B所示进行了小波变换后的数据进行解码时,如图7的C中的例子所示,针对编码侧的基于第1行到第7行的第1轮滤波处理,输出基于解码侧的第1轮合成处理的第1行(图7的C中的Out-1)。
接着,对于编码侧的从第2轮到紧接最后一轮之前的一轮的滤波处理,在解码侧一次输出4行(图7的C中的Out-2...)。然后,针对编码侧的最后一轮滤波处理,在解码侧输出8行。
在小波变换单元51中从高频分量侧到低频分量侧生成的系数数据被依次存储到系数重新排列缓冲器单元53中。当系数数据在系数重新排列缓冲器单元53中累积到能够进行如上所述的系数数据的重新排列的点时,系数重新排列单元54在按照合成处理所需的顺序对系数数据进行重新排列后,从系数重新排列缓冲器单元53读出系数数据。读出的系数数据被依次提供给熵编码单元55。
熵编码单元55依次对所提供的系数数据进行编码,并向编码单元14的外部输出所生成的编码数据。
如上所述在编码单元14中编码后的图像数据、即编码数据被提供给图1中的分组生成单元15。
接着,图8是示出在图1的标题生成单元17中生成的标题的结构例子的图。
在标题生成单元17中,生成序列标题、图片标题和分区标题。序列标题、图片标题和分区标题形成分级结构。
在序列标题中,作为表示序列标题的存在的标志的SequenceHeader Flag(序列标题标志)配置在开头,并且在Sequence HeaderFlag之后依次配置1位的Coeff_order、2位的Priority mode、2位的DWT filter和2位的Filter precision。
在图片标题中,作为表示图片标题的存在的标志的PictureHeader Flag(图片标题标志)配置在开头,并且在Picture Header Flag之后依次配置1位的Interlace/Progressive、2位的Bit Precision和2位的Program Choice。
在分区标题中,作为表示分区标题的存在的标志的PrecinctHeader Flag(分区标题标志)配置在开头,并且在Precinct Header Flag之后配置2位的Bit Precision。
以下参照图9说明序列标题。
序列标题中的Coeff_order表示系数重新排列的位置。例如,如果Coeff_order为0,则表示系数的重新排列在编码侧执行,如果Coeff_order为1,则表示系数的重新排列在解码侧执行。
尽管系数重新排列的处理如上参照图3所述可以在编码单元14的系数重新排列单元54中执行,但该处理也可以在解码单元36(例如后述的图48中的解码单元36的系数重新排列单元65)中执行,而不在编码单元14中执行。即,系数重新排列的处理是由编码单元14和解码单元36共有的处理,并且Coeff_order是共有处理识别信息。
由于系数重新排列的处理需要用于执行该处理的电路和用于累积系数的缓冲器(存储器),因此根据编码单元14或解码单元36是否能够具备这些硬件来选择是由编码单元14还是由解码单元36执行系数重新排列处理。例如,在编码单元14被组装到便携电话终端、PDA(Personal Digital Assistant,个人数字助理)、便携游戏设备或小型相机等所谓的便携终端等具有比较低的处理能力(throughput)的设备中的情况下,不能内置大容量的存储器,因此必然由解码单元36执行系数重新排列处理。
另一方面,在编码单元14被组装到广播设备、专业人员用的数字发射机等具有比较高的处理能力并且具有充裕的电源和充裕的硬件的设备中的情况下,在编码单元14中执行系数重新排列处理。
在例如编码单元14和解码单元36都能够执行系数重新排列处理、并且在编码单元14中执行系数重新排列处理的情况下,序列标题中的Coeff_order为0,在解码单元36中可以跳过系数重新排列的处理。
序列标题中的Priority mode是表示编码器的控制方式的控制识别信息。例如,如果Priority mode为00,则表示在编码器中执行低延迟控制,如果Priority mode为01,则表示在编码器中执行使处理能力优先的控制。顺便提及,在Priority mode中,在控制方式被扩展时等情况下使用10或11表示其它控制方式。
例如,在使处理能力优先的控制中,最好应用使得在图3的编码单元14的小波变换单元51的处理一结束就执行熵编码单元55的处理的控制。而在低延迟控制中,最好应用使得小波变换单元51的处理与熵编码单元55的处理以并行方式执行的控制。例如,在编码单元14中选择了低延迟控制的情况下,向解码单元36通知已经选择了低延迟控制,在解码单元36中也选择低延迟控制,从而作为整体降低延迟。
序列标题中的DWT filter是表示DWT滤波器的种类选择的滤波器信息。例如,如果DWT filter为00,则表示利用Irreversible(不可逆)9×7对图像数据进行滤波,如果DWT filter为01,则表示利用Irreversible 5×3对图像数据进行滤波,如果DWT filter为10,则表示利用Reversible(可逆)5×3对图像数据进行滤波。顺便提及,当利用其它种类的滤波器、例如独创设计的滤波器来对图像数据进行滤波时使用DWT filter中的11,表示该滤波器被选择。
例如,对于由JPEG 2000标准采用的5×3滤波器和9×7滤波器,利用9×7滤波器,计算次数为简单计算的大约2倍,计算所需的存储器量也变大。这样,在希望减轻硬件负荷的情况下,在编码单元14和解码单元36中最好选择5×3滤波器。另一方面,由于9×7滤波器能够进行高性能滤波,因此在需要高图像质量的情况下最好选择9×7滤波器。
序列标题中的Filter precision是表示DWT滤波的计算精度的滤波处理精度信息。例如,如果Filter precision为00,则表示以固定小数点精度实施DWT滤波,如果Filter precision为01,则表示以浮动小数点精度实施DWT滤波,如果Filter precision为10,则表示以整数精度实施DWT滤波。
例如,浮动小数点精度的计算对硬件的负荷最大,整数精度的计算对硬件的负荷最小。因此,通过按照硬件的处理能力适当地确定计算精度,可以有效使用硬件资源。另外,当处理高清晰度图像时,优选浮动小数点精度。可以如参照图42在后面说明的那样选择计算精度。
接着,参照图10说明图片标题。
图片标题中的Interlace/Progressive表示图片的结构。例如,如果Interlace/Progressive为0,则表示该图片为Interlace(隔行)图像,如果Interlace/Progressive为1,则表示该图片为Progressive(逐行)图像。
这里,例如,用于电视广播的图像信号是隔行的,但用于个人计算机或电影的图像信号是逐行的。另外,在从解码单元36输出的情况下也同样,由于液晶电视接收器是逐行的,因此,如果图像信号是隔行的,则需要将该信号转换成逐行的以输出。在隔行的情况下,编码处理和解码处理以场为单位执行,而在逐行的情况下,编码处理和解码处理以帧为单位执行。由于这些差异,通过以图片为单位从编码单元14向解码单元36通知图片是隔行还是逐行,可以在解码单元36中执行最佳的处理。
图片标题中的Bit Precision表示图片内的计算精度。例如,如果Bit Precision为00,则表示以8位精度计算图片,如果Bit Precision为01,则表示以10位精度计算图片,如果Bit Precision为10,则表示以12位精度计算图片,如果Bit Precision为11,则表示以16位精度计算图片。
例如,在输入图像为8位的情况下,已知在分解成4个的小波变换之后,小波变换系数被扩展到12位,在输入图像为12位的情况下,已知在分解成4个的小波变换之后,小波变换系数被扩展到16位。因此,为了保持精度,需要在保持小波变换系数所需的精度的同时执行编码处理。即,在编码单元14要求12位精度的情况下,即使在解码单元36中有足够的资源允许16位精度的计算,也执行12位精度的计算,从而能够利用少的资源执行解码。
图片标题中的Program Choice是表示用于图片的编码和解码的程序种类的选择的程序识别信息。例如,如果Program Choice为00,则表示选择程序A,如果Program Choice为01,则表示选择程序B,如果Program Choice为10,则表示选择程序C,如果Program Choice为11,则表示选择程序D。
这里,程序A~D是分别与应用了后述的CPU或存储器的分配方法的编码方法A~D对应的程序。例如,编码单元14可以如参照后述的图43中的流程图所说明的那样进行选择,解码单元36可以根据图片标题选择与编码单元14选择的编码方法相对应的解码方法。
以下参照图11说明分区标题。
分区标题中的Bit Precision表示分区内的计算精度。例如,如果Bit Precision为00,则表示以8位精度计算分区,如果Bit Precision为01,则表示以10位精度计算分区,如果Bit Precision为10,则表示以12位精度计算分区,如果Bit Precision为11,则表示以16位精度计算分区。
通过由分区标题中的Bit Precision通知计算精度,与图片标题中的Bit Precision同样,可以有效利用解码单元36的资源。顺便提及,在图片标题中的Bit Precision所表示的计算精度与分区标题中的BitPrecision所表示的计算精度不同的情况下,使分区标题中的BitPrecision所表示的计算精度优先。
共有处理识别信息、控制识别信息、滤波器信息、滤波处理精度信息和程序识别信息由识别信息生成单元21生成并提供给序列标题生成单元18、图片标题生成单元19、分区标题生成单元20中的每一个,并且生成序列标题、图片标题和分区标题,即,在序列标题、图片标题和分区标题的每一个中设定标志。
通过在编码设备13侧预先生成这些信息并将它们发送给解码设备32以在解码设备32中使用,在解码设备32中,可以省略处理选择的确定(例如后述的图45中的确定程序选择的处理),并且可以减轻与解码相关的负荷。在程序选择处理中,关于是否存在能够进行解码的程序功能的确定可以仅通过参照该信息来进行。
在编码设备13中,可以通过对编码处理进行时间分割并按照与编码相关的数据量(处理负荷)来适应性地提供选择模式,适当地利用不同的程序来执行编码处理。即,针对一系列图像,编码设备13可以通过在给定的期间选择程序A来执行编码,通过在下一期间选择程序D来执行编码,并且通过在更下一期间选择程序C来执行编码。
接着,图12是示出图2中的解码单元36的结构例子的框图。
如图12所示,解码单元36具有熵解码单元61、系数缓冲器单元62和小波逆变换单元63的功能。
熵解码单元61利用与熵编码单元55(图3)使用的编码方法对应的解码方法将所提供的编码数据解码,得到系数数据。系数数据被存储到系数缓冲器单元62中。小波逆变换单元63使用存储在系数缓冲器单元62中的系数数据,通过合成滤波器执行合成滤波处理(小波逆变换),并将合成滤波处理的结果再次存储到系数缓冲器单元62中。在通过按照分解级别重复该处理而得到解码图像数据(输出图像数据)时,小波逆变换单元63将其输出到外部。
以下参照图13~图16说明由各个单元执行的处理流程。
图13是说明图3中的编码单元14对图像数据进行编码的处理的流程图。
当开始编码处理时,编码单元14的小波变换单元51在步骤S1中将处理对象分区的编号A初始化。通常将编号A设定为“1”。当结束设定时,在步骤S2中,小波变换单元51取得在最低频子带中生成从顶部开始第A行中的1行所需的行数(即一个分区)的图像数据。在步骤S3中,小波变换单元51对图像数据执行用于对在屏幕的垂直方向上排列的图像数据执行分析滤波的垂直分析滤波处理,在步骤S4中,执行用于对在屏幕的水平方向上排列的图像数据执行分析滤波处理的水平分析滤波处理。
在步骤S5中,小波变换单元51确定分析滤波处理是否已经执行到最后级别。如果确定分解级别没有达到最后级别,则处理返回到步骤S3,针对当前的分解级别重复进行步骤S3和步骤S4中的分析滤波处理。
如果在步骤S5中确定分析滤波处理已经执行到最后级别,则处理前进到步骤S6。
在步骤S6中,系数重新排列单元54按照从低频到高频的顺序对分区A(从图片(帧或场)的顶部开始的第A个分区)中的系数进行重新排列。熵编码单元55在步骤S7中对系数逐行实施熵编码,并在步骤S8中送出分区A的编码数据。
在步骤S9中,小波变换单元51使编号A的值加“1”并将下一分区设定为处理对象,在步骤S10中,针对处理对象图片(帧或场)确定是否存在还未处理的图像输入行。如果确定存在还未处理的图像输入行,则处理返回到步骤S2,针对新的处理对象分区重复后续处理。
这样,重复执行步骤S2~步骤S10的处理,对各个分区进行编码。然后,如果在步骤S10中确定不存在还未处理的图像输入行,则结束对图片的编码处理。针对下一图片重新开始编码处理。
这样,小波变换单元51以分区为单位连续执行垂直分析滤波处理和水平分析滤波处理直到最后级别。这样,与以往的方法相比,一次(同时)需要保持(缓冲)的数据量小,从而能够极大地减少需要准备的缓冲器的存储器容量。另外,由于将分析滤波处理执行到最后级别,因此还能够进行后级的系数重新排列和熵编码等处理(即,能够以分区为单位执行系数重新排列或熵编码)。因此,与对整个屏幕执行小波变换的方法相比,可以极大地减少延迟时间。
接着,图14是说明图1中的标题生成单元17生成标题的处理的流程图。
该处理与编码单元14中的编码处理的开始同时开始。在步骤S21中,分组生成单元15确定是否生成(记载)序列标题。
例如,如果作为编码处理中的编码对象的图像是从编码设备13发送的一系列图像的第1个图像,则分组生成单元15确定生成序列标题。而如果该图像不是第1个图像,则分组生成单元15确定不生成序列标题。
如果分组生成单元15在步骤S21中确定生成序列标题,则处理前进到步骤S22,分组生成单元15向序列标题生成单元18提供指示生成序列标题的信号。当从分组生成单元15提供了指示生成序列标题的信号时,序列标题生成单元18从识别信息生成单元21取得图9所示的信息(参数),以生成序列标题,将序列标题提供给分组生成单元15,处理前进到步骤S23。
另一方面,如果分组生成单元15在步骤S21中确定不生成序列标题,则处理跳过步骤S22而前进到步骤S23。
在步骤S23中,分组生成单元15确定是否生成(记载)图片标题。
例如,如果作为编码对象的图像是编码处理开始后的第1个图像,以及如果编码参数已经从前一编码对象图像改变,则分组生成单元15确定生成图片标题。另一方面,如果编码参数没有从前一编码对象图像改变,则分组生成单元15确定不生成图片标题。
如果分组生成单元15在步骤S23中确定生成图片标题,则处理前进到步骤S24,分组生成单元15向图片标题生成单元19提供指示生成图片标题的信号。当从分组生成单元15提供了指示生成图片标题的信号时,图片标题生成单元19从识别信息生成单元21取得图10所示的信息(参数),以生成图片标题,将图片标题提供给分组生成单元15,处理前进到步骤S25。
另一方面,如果分组生成单元15在步骤S23中确定不生成图片标题,则处理跳过步骤S24而前进到步骤S25。在这种情况下,分组生成单元15向图像附加与针对前一编码对象图像使用的图片标题相同的图片标题。
在步骤S25中,分组生成单元15确定是否生成(记载)分区标题。
例如,如果作为编码对象的分区是编码处理开始后的第1个分区,以及如果编码参数已经从前一编码对象分区改变,则分组生成单元15确定生成分区标题。另一方面,如果编码参数没有从前一编码对象分区改变,则分组生成单元15确定不生成分区标题。
如果分组生成单元15在步骤S25中确定生成分区标题,则处理前进到步骤S26,分组生成单元15向分区标题生成单元20提供指示生成分区标题的信号。当从分组生成单元15提供了指示生成分区标题的信号时,分区标题生成单元20从识别信息生成单元21取得图11所示的信息(参数),以生成分区标题,将分区标题提供给分组生成单元15,处理前进到步骤S27。
另一方面,如果分组生成单元15在步骤S25中确定不生成分区标题,则处理跳过步骤S26而前进到步骤S27。顺便提及,在这种情况下,分组生成单元15向分区附加与针对前一编码对象分区使用的分区标题相同的分区标题。
在步骤S27中,分组生成单元15确定当前作为编码处理对象的图像中是否存在未被编码的分区。
如果分组生成单元15在步骤S27中确定当前作为编码处理对象的图像中存在未被编码的分区,则处理返回到步骤S25,此后重复同样的处理。
另一方面,如果分组生成单元15在步骤S27中确定当前作为编码处理对象的图像中不存在未被编码的分区,即,如果当前作为编码处理对象的图像中的所有分区都被编码,则处理前进到步骤S28。
在步骤S28中,发送单元16发送将在步骤S22中生成的序列标题、在步骤S24中生成的图片标题和在步骤S26中生成的分区标题附加到从编码单元14输出的编码数据中的分组。
在步骤S28的处理之后,处理前进到步骤S29,分组生成单元15确定是否从编码设备13发送的一系列图像都被编码。
如果分组生成单元15在步骤S29中确定从编码设备13发送的一系列图像没有都被编码,即,如果还有要被编码的下一图像,则处理返回到步骤S23,此后将下一图像作为编码对象重复相同的处理。
另一方面,如果分组生成单元15在步骤S29中确定从编码设备13发送的一系列图像都被编码,则结束处理。
接着,图15是说明图12中的解码单元36对图像数据进行解码的处理的流程图。
当开始解码处理时,在步骤S31中,熵解码单元61取得从解码单元36的外部提供的编码数据,在步骤S32中,逐行地执行编码数据的熵解码。在步骤S33中,系数缓冲器单元62保持通过解码得到的系数数据。在步骤S34中,小波逆变换单元63确定是否相当于一个分区的系数数据已经累积在系数缓冲器单元62中。如果确定没有累积相当于一个分区的系数数据,则处理返回到步骤S31,执行后续的处理。即,小波逆变换单元63待机,直到相当于一个分区的系数数据已经累积在系数缓冲器单元62中。
如果在步骤S34中确定相当于一个分区的系数数据已经累积在系数缓冲器单元62中,则处理前进到步骤S35。在步骤S35中,小波逆变换单元63读出系数缓冲器单元62中保持的、相当于一个分区的系数数据,并在步骤S36中,对所读出的系数数据执行用于对在屏幕的垂直方向上排列的系数数据执行合成滤波处理的垂直合成滤波处理,在步骤S37中,执行用于对在屏幕的水平方向上排列的系数数据执行合成滤波处理的水平合成滤波处理。在步骤S38中,小波逆变换单元63确定合成滤波处理是否已经执行到级别1(分解级别的值为“1”的级别),即,逆变换是否已经执行到小波变换之前的状态。如果确定没有达到级别1,则处理返回到步骤S36,重复进行步骤S36和步骤S37中的滤波处理。
如果在步骤S38中确定小波逆变换处理已经完成到级别1,则处理前进到步骤S39。在步骤S39中,小波逆变换单元63向外部输出通过小波逆变换处理得到的图像数据。
在步骤S40中,熵解码单元61确定是否结束解码处理。如果确定不结束解码处理,则处理返回到步骤S31,重复后续处理。如果在步骤S40中确定由于分区结束等而结束解码处理,则解码处理结束。
在以往的小波逆变换方法中,针对作为处理对象的分解级别的所有系数,首先在屏幕的水平方向上执行水平合成滤波处理,然后在屏幕的垂直方向上执行垂直合成滤波处理。即,在每次合成滤波处理时,合成滤波处理的结果需要保持在缓冲器中。此时,缓冲器需要保持该点的分解级别的合成滤波结果和下一分解级别的所有系数,从而需要非常大的存储器容量(要保持的数据量大)。
而且,在该情况下,不进行图像数据输出,直到在图片(帧或场)内完成所有小波逆变换,因此从输入到输出的延迟时间增加。
相反,如上所述在解码单元36的小波逆变换单元63的情况下,以分区为单位将垂直合成滤波处理和水平合成滤波处理连续执行到级别1。这样,与以往方法相比,一次(同时)需要缓冲的数据量小,从而能够极大地减少需要准备的缓冲器的存储器容量。而且,由于将合成滤波处理(小波逆变换处理)执行到级别1,因此可以在得到图片内的所有图像数据之前,(以分区为单位)依次输出图像数据,从而与以往方法相比能够极大地减少延迟时间。
接着,图16是说明图2中的标题解读单元38解读标题的处理的流程图。
当开始解码处理时,在步骤S51中,分组解读单元35确定从分组中提取的标题是否是序列标题。
如果分组解读单元35在步骤S51中确定从分组中提取的标题是序列标题,则处理前进到步骤S52,分组解读单元35将序列标题提供给序列标题解读单元39。序列标题解读单元39解读从分组解读单元35提供的序列标题,取得包含在序列标题中的信息(参数),并将该信息提供给识别信息取得单元42,处理前进到步骤S53。
另一方面,如果分组解读单元35在步骤S51中确定从分组中提取的标题不是序列标题,则处理跳过步骤S52而前进到步骤S53。
在步骤S53中,分组解读单元35确定从分组中提取的标题是否是图片标题。
如果分组解读单元35在步骤S53中确定从分组中提取的标题是图片标题,则处理前进到步骤S54,分组解读单元35将图片标题提供给图片标题解读单元40。图片标题解读单元40解读从分组解读单元35提供的图片标题,如果包含在图片标题中的信息(参数)已经被更新,即,如果信息已经从包含在前次取得的图片标题中的信息改变,则取得该信息并将其提供给识别信息取得单元42,处理前进到步骤S55。
另一方面,如果分组解读单元35在步骤S53中确定从分组中提取的标题不是图片标题,则处理跳过步骤S54而前进到步骤S55。
在步骤S55中,分组解读单元35确定从分组中提取的标题是否是分区标题。
如果分组解读单元35在步骤S55中确定从分组中提取的标题是分区标题,则处理前进到步骤S56,分组解读单元35将分区标题提供给分区标题解读单元41。分区标题解读单元41解读从分组解读单元35提供的分区标题,如果包含在分区标题中的信息(参数)已经被更新,即,如果信息已经从包含在前次取得的分区标题中的信息改变,则取得该信息并将其提供给识别信息取得单元42,处理前进到步骤S57。
另一方面,如果分组解读单元35在步骤S55中确定从分组中提取的标题不是分区标题,则处理跳过步骤S56而前进到步骤S57。
在步骤S57中,识别信息取得单元42将在步骤S52中从序列标题解读单元39提供的信息、在步骤S54中从图片标题解读单元40提供的信息、或在步骤S56中从分区标题解读单元41提供的信息提供给解码控制单元43。解码控制单元43以使解码单元36按照基于这些信息的处理方式执行解码处理的方式来控制解码单元36。
在步骤S57的处理之后,处理前进到步骤S58,分组解读单元35确定是否从编码设备13发送的一系列图像都被接收。
如果分组解读单元35在步骤S58中确定从编码设备13发送的一系列图像没有都被接收,则处理返回到步骤S51,此后重复相同的处理。
另一方面,如果分组解读单元35在步骤S58中确定从编码设备13发送的一系列图像都被接收,则结束处理。
如上所述,通过在序列标题、图片标题和分区标题的每一个中设定用于实施编码单元14和解码单元36共有的处理的各种标志,可以有效使用编码单元14和解码单元36中的资源,例如根据应用最佳地选择计算精度、小波变换的种类、CPU的分配等。
上述的各种处理例如可以如图17所示以并行方式适当地执行。
图17是示意性地示出由图3所示的编码单元14和图12所示的解码单元36中的各个单元执行的处理的各个要素的并行操作的例子的图。该图17对应于上述的图6。针对图像数据的输入In-1(图17的A),由小波变换单元51(图3)实施第1小波变换WT-1(图17的B)。如参照图6所说明的那样,该第1小波变换WT-1从第一个3行被输入的时间点开始,并生成系数C1。即,从图像数据In-1的输入之后直到小波变换WT-1开始,存在相当于3行的延迟。
所生成的系数数据被存储到系数重新排列缓冲器单元53(图3)中。此后,对输入的图像数据实施小波变换,当完成了第1轮处理后,处理直接转换到第2轮小波变换WT-2。
以与用于第2轮小波变换WT-2的图像数据In-2的输入和第2轮小波变换WT-2的处理并行的方式,由系数重新排列单元54(图3)执行系数C1、系数C4和系数C5这3个系数的重新排列Ord-1(图17的C)。
顺便提及,从小波变换WT-1完成时到重新排列Ord-1开始时的延迟是基于设备或系统结构的延迟,例如与用于指示系数重新排列单元54执行重新排列处理的控制信号的传送有关的延迟、系数重新排列单元54响应于该控制信号开始处理所需的延迟、或程序处理所需的延迟,不是编码处理所固有的延迟。
系数数据按照重新排列完成的顺序从系数重新排列缓冲器单元53中读出,被提供给熵编码单元55(图3),进行熵编码EC-1(图17的D)。该熵编码EC-1无需等待系数C1、系数C4和系数C5这全部3个系数的重新排列完成就可以开始。例如,在基于首先输出的系数C5的1行的重新排列完成时的时间点,开始针对系数C5的熵编码。在该情况下,从重新排列Ord-1的处理开始时到熵编码EC-1的处理开始时的延迟相当于1行。
已经由熵编码单元55完成了熵编码EC-1的编码数据在进行了预定的信号处理后被传送到解码单元36(图12)(图17的E)。
如上所述,针对编码单元14,在第1轮处理的相当于7行的图像数据输入之后,图像数据被依次输入,直到屏幕上的下端的行。在编码单元14中,在图像数据的输入In-n(n为2以上)之后,如上所述每4行执行小波变换WT-n、重新排列Ord-n和熵编码EC-n。在编码单元14中针对最后一轮处理的重新排列Ord和熵编码EC针对6行执行。这些处理如图17的A~图17的D所示在编码单元14中以并行方式执行。
由编码单元14通过熵编码EC-1被编码的编码数据被提供给解码单元36。解码单元36的熵解码单元61(图12)针对所提供的、通过熵编码EC-1被编码的编码数据,依次执行熵代码的解码iEC-1,从而重建系数数据(图17的F)。重建的系数数据被依次存储到系数缓冲器单元62中。一旦在系数缓冲器单元62中存储了用于执行小波逆变换的足够量的系数数据,小波逆变换单元63就从系数缓冲器单元62读出系数数据,并使用所读出的系数数据执行小波逆变换iWT-1(图17的G)。
如参照图6所说明的那样,小波逆变换单元63的小波逆变换iWT-1可以在系数C4和系数C5被存储到系数缓冲器单元62中时的时间点开始。因此,从熵解码单元61的解码iEC-1开始时到小波逆变换单元63的小波逆变换iWT-1开始时的延迟相当于2行。
在小波逆变换单元63中,当第一个小波变换的3行的小波逆变换iWT-1完成时,执行通过小波逆变换iWT-1生成的图像数据的输出Out-1(图17的H)。在输出Out-1,如上参照图6和图7所说明的那样,输出第1行的图像数据。
在编码单元14中的第1轮处理的相当于3行的编码系数数据的输入之后,通过熵编码EC-n(n为2以上)被编码的系数数据依次输入到解码单元36。在解码单元36中,如上所述,针对每4行执行熵解码iEC-n和小波逆变换iWT-n,依次执行通过小波逆变换iWT-n重建的图像数据的输出Out-n。与编码单元14中的最后一轮对应的熵解码iEC和小波逆变换iWT对6行执行,并输出8行作为输出Out。如图17的F~图17的H所示,在解码单元36中,这些处理以并行方式执行。
如上所述,编码单元14和解码单元36中的各个处理按照从屏幕的上部到下部的顺序以并行方式执行,从而能够以低的延迟执行图像压缩处理和图像解码处理。
参照图17计算在使用5×3滤波器将小波变换执行到分解级别=2的情况下从图像输入到图像输出的延迟时间。从第1行的图像数据被输入到编码单元14时到第1行的图像数据从解码单元36输出时的延迟时间是下面提及的各个要素的总和。顺便提及,这里,传送路径中的延迟、与设备的各个单元中的实际处理定时相关的延迟等取决于系统结构而不同的延迟被排除在外。
(1)从第1行输入到7行的小波变换WT-1完成的延迟D_WT
(2)与3行的系数重新排列Ord-1相关的时间D_Ord
(3)与3行的熵编码EC-1相关的时间D_EC
(4)与3行的熵解码iEC-1相关的时间D_iEC
(5)与3行的小波逆变换iWT-1相关的时间D_iWT。
参照图17尝试计算由于上述各要素导致的延迟。(1)中的延迟D_WT是相当于10行的时间。(2)中的时间D_Ord、(3)中的时间D_EC、(4)中的时间D_iEC和(5)中的时间D_iWT都是相当于3行的时间。而且,在编码单元14中,熵编码EC-1可以在重新排列Ord-1开始后的1行后开始。同样,在解码单元36中,小波逆变换iWT-1可以在熵解码iEC-1开始后的2行后开始。另外,对于熵解码iEC-1,可以在通过熵编码EC-1完成了1行的编码时的时间点开始处理。
因此,在该图17的例子中,从第1行的图像数据被输入到编码单元14时到第1行的图像数据从解码单元36输出时的延迟时间相当于10+1+1+2+3=17行。
以下将利用更具体的例子来讨论延迟时间。在所输入的图像数据是HDTV(High Definition Television,高清晰度电视)的隔行视频信号的情况下,例如一帧由1920像素×1080行的分辨率构成,并且一场为1920像素×540行。因此,假设帧频率为30Hz,作为一场的540行在16.67毫秒(=1秒/60场)的时间输入到编码单元14中。
因此,与相当于7行的图像数据的输入相关的时间延迟是0.216毫秒(=16.67毫秒×7/540行),这相对于例如一场的更新时间是极短的时间。另外,对于上述的(1)中的延迟D_WT、(2)中的时间D_Ord、(3)中的时间D_EC、(4)中的时间D_iEC和(5)中的时间D_iWT的总和同样,要处理的行数小,从而延迟时间极大缩短。
以下说明安装了上述的软件编码器或软件解码器的硬件。图18是示出个人计算机的结构示例的框图。
在图18中,个人计算机100的CPU 101-1、CPU 101-2、CPU 101-3和CPU 101-4都是按照软件程序执行各种处理的处理单元。以下在不需要彼此区分时,将CPU 101-1~CPU 101-4称为CPU 101。CPU 101经由作为共用总线的总线104与ROM(Read Only Memory,只读存储器)102和RAM(Random Access Memory,随机存取存储器)103互连。软件程序或数据被预先存储在ROM 102中。存储在ROM 102或存储单元123中的软件程序或数据被装载到RAM 103中。
高速缓冲存储器111-1内置于CPU 101-1中,高速缓冲存储器111-2内置于CPU 101-2中,高速缓冲存储器111-3内置于CPU 101-3中,高速缓冲存储器111-4内置于CPU 101-4中。在以下说明中,在不需要彼此区分时,将高速缓冲存储器111-1~高速缓冲存储器111-4称为高速缓冲存储器111。
高速缓冲存储器111是例如SRAM(Static Random AccessMemory,静态随机存取存储器)等高速操作的存储介质,由内置了高速缓冲存储器111的CPU 101独占性地使用。由于高速缓冲存储器111每单位存储容量具有高价格并且内置于CPU 101中,因此,高速缓冲存储器111的存储容量的增大也导致CPU 101的电路规模的增大。从而,为了降低成本或抑制电路规模的增大,通常将高速缓冲存储器111的存储容量保持为例如比具有大约几百兆(M)字节到几吉(G)字节的存储容量并且设置在CPU 101外部的RAM 103小的、大约几百千(K)字节到几兆(M)字节的容量。
当然,任何类型的存储器都可以用作高速缓冲存储器111,可以将其存储容量设定为任何水平。在这种情况下,假定高速缓冲存储器111是如下的存储介质:被内置有高速缓冲存储器111的CPU 101独占性地使用,允许数据以高于RAM 103的速度读或写,但其存储容量小于RAM 103并且对于能够存储的信息量有限制。
与高速缓冲存储器111相反,假定RAM 103由CPU 101-1~CPU101-4等共有,允许数据以低于高速缓冲存储器111的速度读或写,并且具有大于高速缓冲存储器111的容量。当然,RAM 103的存储容量实际上也是有限的。但是,以下为了说明的方便,假定RAM 103的存储容量相对于上述的编码处理或解码处理所需的容量足够大,不特别考虑容量的限制。
即,尽管高速缓冲存储器111允许程序或数据以高速输入和输出,但由于其容量的限制,有时难以存储软件编码器或软件解码器的所有软件程序和数据。相反,RAM 103可以存储任意的软件程序或数据,它们的输入和输出以低速执行。
CPU 101将软件程序或数据装载到内置于CPU 101本身的高速缓冲存储器111或RAM 103,使用这些程序或软件执行编码或解码中的各种处理。
输入/输出接口120还连接到总线104。键盘或鼠标等输入单元121、CRT(Cathode Ray Tube,阴极射线管)或LCD(Liquid CrystalDisplay,液晶显示器)等显示器或扬声器等输出单元122、由硬盘等构成的存储单元123以及由调制解调器等构成的通信单元124被连接到输入/输出接口120。通信单元124经由包括互联网等的网络执行通信处理。
驱动器125还根据需要连接到输入/输出接口120,适当安装磁盘、光盘、光磁盘或半导体存储器等可装卸介质131,从其中读出的软件程序根据需要被安装到存储单元123。软件程序还可以经由网络从通信单元124安装。
顺便提及,尽管在图18中说明了在个人计算机100中设置4个CPU 101,但CPU 101的个数是任意的。但是,取决于后述的软件编码器或软件解码器的安装方法,在某些情况下对于CPU 101的最小个数有限制。例如,存在需要2个CPU 101的情况或需要4个CPU 101的情况。另外,CPU 101-1~CPU 101-4在物理上可以是具有4个核的一个CPU 101。这种情况下,高速缓冲存储器111-1~高速缓冲存储器111-4可以设置在各个CPU核(CPU 101-1~CPU 101-4)中,或者被分配给各个CPU核的、由各CPU核共有的单一高速缓冲存储器111的部分区域可以是高速缓冲存储器111-1~高速缓冲存储器111-4。
在如上构成的个人计算机100中,为了以不会不必要地降低处理的效率或增加延迟时间的方式实施图3所示的编码单元14或图12中的解码单元36,需要将CPU 101或RAM 103等个人计算机100的硬件资源适当分配给编码单元14或解码单元36中的各个处理。以下将说明这样的分配的例子。
图19是示出向图3中的编码单元14分配硬件资源的例子的图。在图19所示的例子中,将CPU 101-1分配给编码单元14的小波变换单元51、系数重新排列单元54和熵编码单元55的全部处理,并且中间计算缓冲器单元52和系数重新排列缓冲器单元53形成在高速缓冲存储器111-1中。
此时,实现小波变换单元51、系数重新排列单元54和熵编码单元55各自的功能的软件程序被装入高速缓冲存储器111-1中。CPU101-1根据需要从高速缓冲存储器111-1中读出并执行软件程序的函数。
作为要编码的图像数据的亮度分量的图像数据Y和作为色度分量的图像数据C保持在RAM 103中。尽管实际上存在作为色度分量的Cb和Cr,这里为了说明的简化,将Cb和Cr集中指示为C。尽管以下说明由亮度分量Y和色度分量C构成的YC(YCbCr)分量,同样也适用于由R分量、G分量和B分量构成的RGB分量。
在图19的例子的情况下,图像数据Y和图像数据C都在CPU101-1中编码。即,通过执行小波变换单元51的处理,CPU 101-1从RAM 103读出图像数据Y,并且执行小波变换处理。此时,CPU 101-1使用高速缓冲存储器111-1的存储区域的一部分作为中间计算缓冲器单元52,使中间计算缓冲器单元52保持在小波变换处理的垂直方向和水平方向上的分析滤波处理中生成的中间数据(例如中间分割级别的低频分量)。并且,CPU 101-1使用高速缓冲存储器111-1的存储区域的另一部分作为系数重新排列缓冲器单元53,使系数重新排列缓冲器单元53保持通过小波变换生成的系数数据。
通过执行系数重新排列单元54的处理,CPU 101-1在按照预定的顺序重新排列系数数据的同时,读出高速缓冲存储器111-1的系数重新排列缓冲器单元53中保持的系数数据。通过执行熵编码单元55的处理,CPU 101-1对在通过系数重新排列单元54中的处理而按顺序重新排列的同时从高速缓冲存储器111-1读出的系数数据进行编码,生成编码数据Y。CPU 101-1将所生成的编码数据Y提供给RAM 103以存储在其中。
CPU 101-1对图像数据C与图像数据Y的情况同样地执行处理。
在如图19所示编码单元14在个人计算机100中实施的情况下,编码单元14中的所有处理由一个CPU 101执行,在编码处理的过程中生成的小波变换的中间数据或系数数据都被存储到CPU 101的高速缓冲存储器111中。
此时,与CPU 101-1同样,例如还可以将其它CPU 101-2~CPU101-4分配给编码单元14。即,如图19所示的CPU 101-1的情况那样,实现小波变换单元51、系数重新排列单元54和熵编码单元55的各功能的软件程序还被装入高速缓冲存储器111-2~高速缓冲存储器111-4的每一个中。CPU 101-2~CPU 101-4从各个高速缓冲存储器111中读出并执行这些软件程序,并且执行编码单元14的小波变换单元51、系数重新排列单元54和熵编码单元55各自的处理。此时,与高速缓冲存储器111-1同样,中间计算缓冲器单元52和系数重新排列缓冲器单元53形成在高速缓冲存储器111-2~高速缓冲存储器111-4的每一个中。
即,在该情况下,4个编码单元14由CPU 101-1~CPU 101-4实现。例如针对要编码的移动图像数据的每个图片将编码处理分配给编码单元14。即,在该情况下,CPU 101-1~CPU 101-4针对相互不同的图片以彼此并行的方式执行编码处理。图20中示意性地示出该情况下的处理流程。
在图20中,在图中的纵向上从上到下示出时间序列,由各个CPU执行的处理用方框表示。
在图20的例子中,CPU 101-1首先从RAM 103中读出作为第1图片的第1分区(P1)的亮度分量Y的图像数据Y,在使高速缓冲存储器111-1保持中间数据的同时对图像数据Y执行小波变换(P1DWT(Y)),并且在使高速缓冲存储器111-1保持所得到的系数数据之后,针对系数数据执行顺序的重新排列和熵编码(P1VLC(Y))。通过该熵编码得到的编码数据Y累积在RAM 103中。接着,CPU 101-1从RAM 103中读出作为第1分区(P1)的色度分量C的图像数据C,在使高速缓冲存储器111-1保持中间数据的同时对图像数据C执行小波变换(P1DWT(C)),并且在使高速缓冲存储器111-1保持所得到的系数数据之后,针对系数数据执行顺序的重新排列和熵编码(P1VLC(C))。通过该熵编码得到的编码数据C累积在RAM 103中。
在该时间点,相当于至少一个分区以上的编码数据Y和编码数据C被累积在RAM 103中,因此开始编码数据Y和编码数据C的输出。
这样,在CPU 101-1和高速缓冲存储器111-1中实现的小波变换单元51~熵编码单元55针对图像数据Y和图像数据C执行彼此相同的处理或保持数据。换言之,CPU 101-1和高速缓冲存储器111-1针对图像数据Y和图像数据C中的任何一个以相同的方式执行与编码有关的处理或保持数据。
当完成了针对第1分区的处理时,CPU 101-1然后从RAM 103中读出第1图片的第2分区(P2)的图像数据Y,在使高速缓冲存储器111-1保持中间数据的同时对图像数据Y执行小波变换(P2DWT(Y)),并且在使高速缓冲存储器111-1保持所得到的系数数据之后,针对系数数据执行顺序的重新排列和熵编码(P2VLC(Y))。通过该熵编码得到的编码数据Y在累积到RAM 103中之后被输出。接着,CPU 101-1从RAM 103中读出第2分区(P2)的图像数据C,在使高速缓冲存储器111-1保持中间数据的同时针对图像数据C执行小波变换(P2DWT(C)),并且在使高速缓冲存储器111-1保持所得到的系数数据之后,针对系数数据执行顺序的重新排列和熵编码(P2VLC(C))。通过该熵编码得到的编码数据C在累积到RAM 103中之后输出。
CPU 101-1以同样的方式针对第1图片的第3分区以后执行处理,并且针对最后第n个分区(Pn)的图像数据Y和图像数据C分别执行小波变换以及系数重新排列和熵编码(PnDWT(Y)、PnVLC(Y)、PnDWT(C)、PnVLC(C))。所得到的编码数据Y和编码数据C与前面的分区同样,在累积在RAM 103中之后输出。当第n个分区的编码数据C被输出时,第1图片的所有编码数据都被输出,因此对第1图片结束编码数据的输出。
与CPU 101-1的该处理并行地,如图20所示,CPU 101-2、CPU101-3和CPU 101-4可以分别针对第2图片、第3图片和第4图片,从第1分区到第n分区与CPU 101的情况同样地执行小波变换处理以及系数重新排列和熵编码,从图像数据Y和图像数据C生成编码数据Y和编码数据C,并使这些数据在保持在RAM 103中之后输出。
即,在该情况下,与CPU 101-1和高速缓冲存储器111-1同样,CPU 101-2和高速缓冲存储器111-2、CPU 101-3和高速缓冲存储器111-3、CPU 101-4和高速缓冲存储器111-4都针对图像数据Y和图像数据C执行与编码有关的处理或保持数据。
在这种情况下,在针对第1图片的处理完成时,CPU 101-1然后针对第5图片执行编码处理。与CPU 101-1中的处理并行地,CPU101-2~CPU 101-4同样地分别针对第6~第8图片执行编码处理。第9图片以后也同样地处理。
如上所述,在图19所示的分配例子的情况下,编码单元14可以同时并行地执行4个图片的编码处理。而且,在该情况下,在一系列编码处理中不需要切换CPU。另外,可以不使用RAM 103而仅使用高速缓冲存储器111来执行处理,从而小波变换单元51或系数重新排列单元54也能够高速地对中间计算缓冲器单元52或系数重新排列缓冲器单元53进行数据的读或写。因此,通过这样的硬件资源分配,编码单元14可以高速地对图像数据进行编码。即,在图19所示的分配例子的情况下,编码单元14能够以高的处理能力来执行编码。而且,不管CPU 101的个数如何(例如即使为1个时),个人计算机100都能实现编码单元14。
但是,由于高速缓冲存储器111具有小的存储容量,因此同时累积的数据量存在限制,取决于要编码的图像数据的数据量或内容,高速缓冲存储器111的容量可能不足而导致溢出,因此常常不能将图19所示的分配例子应用于执行编码所需的缓冲器量大的情况。
另外,由于图像数据Y的编码和图像数据C的编码都在一个CPU101中执行,因此从编码处理开始时到第1分区的编码数据从编码单元14输出时的时间、即编码处理中的时间延迟长。因此,从编码数据被解码单元36解码时到重建后的图像数据的图像显示在监视器上时的延迟时间也变长。同样的原因,第1个图片被显示在监视器上之前的时间变长。
图21是示出向图3中的编码单元14分配硬件资源的另一例子的图。在图21所示的例子中,与图19的情况同样,将CPU 101-1分配给编码单元14的小波变换单元51、系数重新排列单元54和熵编码单元55的全部处理。但是,应注意的是,尽管中间计算缓冲器单元52形成在高速缓冲存储器111-1中,但系数重新排列缓冲器单元53形成在RAM 103中。
此时,实现小波变换单元51、系数重新排列单元54和熵编码单元55的各功能的软件程序被装入高速缓冲存储器111-1中。CPU 101-1根据需要从高速缓冲存储器111-1中读出并执行软件程序的函数。
与图19中的例子的情况相同,在图21中的例子的情况下,图像数据Y和图像数据C都在CPU 101-1中编码。即,通过执行小波变换单元51的处理,CPU 101-1从RAM 103读出图像数据Y,并且执行小波变换处理。此时,CPU 101-1使用高速缓冲存储器111-1的存储区域的一部分作为中间计算缓冲器单元52,使中间计算缓冲器单元52保持在小波变换处理的垂直方向和水平方向上的分析滤波处理中生成的中间数据(例如中间分割级别的低频分量)。
但是应注意,与图19中的例子的情况不同,在图21中的例子的情况下,CPU 101-1使用RAM 103的存储区域的一部分作为系数重新排列缓冲器单元53,使系数重新排列缓冲器单元53保持通过小波变换生成的系数数据。
通过执行系数重新排列单元54的处理,CPU 101-1在按照预定的顺序重新排列系数数据的同时,读出RAM 103的系数重新排列缓冲器单元53中保持的系数数据。通过执行熵编码单元55的处理,CPU101-1对在通过系数重新排列单元54中的处理而按顺序重新排列的同时从RAM 103读出的系数数据进行编码,生成编码数据Y。CPU 101-1将所生成的编码数据Y提供给RAM 103以存储在其中。
CPU 101-1与图像数据Y的情况同样地对图像数据C执行处理。
在如图21所示编码单元14在个人计算机100中实施的情况下,编码单元14的所有处理由一个CPU 101执行,在编码处理的过程中生成的小波变换的中间数据被存储到高速操作的、CPU 101的高速缓冲存储器111中,通过小波变换生成的系数数据被存储到具有大容量的RAM 103中。
此时,例如与CPU 101-1同样,还可以将其它CPU 101-2~CPU101-4分配给编码单元14。即,如图21的情况那样,实现小波变换单元51、系数重新排列单元54和熵编码单元55的各功能的软件程序还被装入高速缓冲存储器111-2~高速缓冲存储器111-4的每一个中。CPU 101-2~CPU 101-4从各个高速缓冲存储器111中读出并执行这些软件程序,并且执行编码单元14的小波变换单元51、系数重新排列单元54和熵编码单元55各自的处理。此时,与高速缓冲存储器111-1同样,中间计算缓冲器单元52形成在高速缓冲存储器111-2~高速缓冲存储器111-4的每一个中,各个系数重新排列缓冲器单元53形成在RAM 103中。
即,在该情况下,4个编码单元14由CPU 101-1~CPU 101-4实现。例如针对要编码的移动图像数据的每个图片将编码处理分配给编码单元14。即,在该情况下,CPU 101-1~CPU 101-4针对相互不同的图片以彼此并行的方式执行编码处理。与图19的情况同样,图20中示意性地示出该情况下的处理流程。
在上述的图21所示的分配例子的情况下,由于系数重新排列缓冲器单元53形成在RAM 103中,因此与图19中的分配例子的情况相比,高速缓冲存储器111的更大部分被用作中间计算缓冲器单元52。即,可以使中间计算缓冲器单元52的容量变大。而且,也可以使系数重新排列缓冲器单元53的容量变大。即,在图21的例子中的分配的情况下,与图19所示的分配的情况相比,编码单元14可以抑制缓冲器溢出的发生,可以在更宽范围的条件下实现。
但是应注意,由于系数重新排列缓冲器单元53形成在允许以低于高速缓冲存储器111的速度读写的RAM 103中,因此与图19中的分配例子的情况相比处理能力降低。但是,由于多次执行数据的读或写的中间计算缓冲器单元52形成在高速操作的高速缓冲存储器111中,因此处理能力的降低小。
图22是示出向图3中的编码单元14分配硬件资源的另一例子的图。在图22所示的例子中,与图21中的分配例子相比,将分别不同的CPU分别分配给执行图像数据Y的编码的编码单元和执行图像数据C的编码的编码单元。即,将CPU 101-1分配给执行图像数据Y的编码的编码单元的小波变换单元51-1、系数重新排列单元54-1和熵编码单元55-1的全部处理,中间计算缓冲器单元52-1形成在高速缓冲存储器111-1中,系数重新排列缓冲器单元53-1形成在RAM 103中。而且,将CPU 101-2分配给执行图像数据C的编码的编码单元的小波变换单元51-2、系数重新排列单元54-2和熵编码单元55-2的全部处理,中间计算缓冲器单元52-2形成在高速缓冲存储器111-2中,系数重新排列缓冲器单元53-2形成在RAM 103中。
此时,实现小波变换单元51、系数重新排列单元54和熵编码单元55的各功能的软件程序被装入高速缓冲存储器111-1和高速缓冲存储器111-2中。CPU 101-1和CPU 101-2根据需要从高速缓冲存储器111-1或高速缓冲存储器111-2中读出并执行软件程序的函数。
在图22中的例子的情况下,图像数据Y在CPU 101-1中编码,图像数据C在CPU 101-2中编码。即,与图21中的例子的情况同样,通过针对图像数据Y执行小波变换单元51-1的处理,CPU 101-1从RAM 103读出图像数据Y,并且执行小波变换处理。此时,CPU 101-1使用高速缓冲存储器111-1的存储区域的一部分作为中间计算缓冲器单元52-1,使中间计算缓冲器单元52-1保持在小波变换处理的垂直方向和水平方向上的分析滤波处理中生成的中间数据。
与图21中的例子的情况同样,CPU 101-1使用RAM 103的存储区域的一部分作为系数重新排列缓冲器单元53-1,使系数重新排列缓冲器单元53-1保持通过小波变换生成的系数数据。通过执行系数重新排列单元54-1的处理,CPU 101-1在按照预定的顺序重新排列系数数据的同时,读出RAM 103的系数重新排列缓冲器单元53-1中保持的系数数据。通过执行熵编码单元55-1的处理,CPU 101-1对在通过系数重新排列单元54-1中的处理而按顺序重新排列的同时从RAM 103读出的系数数据进行编码,生成编码数据Y。CPU 101-1将所生成的编码数据Y提供给RAM 103以存储在其中。
但是应注意,与图21中的例子的情况不同,在图22的例子的情况下,与CPU 101-1中的处理并行地,CPU 101-2针对图像数据C与图21中的例子的情况同样地执行小波变换以及系数重新排列和熵编码。
在如图22所示编码单元14在个人计算机100中实施的情况下,针对图像数据Y和图像数据C的编码单元14的所有处理由分别不同的单个CPU 101执行,在它们的编码处理的过程中生成的小波变换的中间数据被存储到内置于各个CPU 101的高速缓冲存储器111中,通过各自的小波变换生成的系数数据被存储到RAM 103中。即,以2个CPU为一组来执行编码处理。
此时,例如与CPU 101-1和CPU 101-2同样,还可以将其它CPU101-3和CPU 101-4分配给编码单元14。即,如图22的情况那样,实现小波变换单元51、系数重新排列单元54和熵编码单元55的各功能的软件程序还被装入高速缓冲存储器111-3和高速缓冲存储器111-4的每一个中。CPU 101-3和CPU 101-4从各个高速缓冲存储器111中读出并执行这些软件程序,并且执行编码单元14的小波变换单元51、系数重新排列单元54和熵编码单元55各自的处理。此时,用于图像数据Y的中间计算缓冲器单元52-1形成在高速缓冲存储器111-3中,用于图像数据C的中间计算缓冲器单元52-2形成在高速缓冲存储器111-4中,用于图像数据Y的系数重新排列缓冲器单元53-1和用于图像数据C的系数重新排列缓冲器单元53-2都形成在RAM 103中。
即,在该情况下,2个编码单元14由CPU 101-1~CPU 101-4实现。例如针对要编码的移动图像数据的每个图片将编码处理分配给编码单元14。例如,CPU 101-1和CPU 101-2构成为执行第奇数个图片的编码处理,CPU 101-3和CPU 101-4构成为执行第偶数个图片的编码处理。图23中示出该情况下的处理流程。
在图23的例子中,CPU 101-1从RAM 103中读出第1图片的第1分区(P1)的图像数据Y,在使高速缓冲存储器111-1保持中间数据的同时对图像数据Y执行小波变换(P1DWT(Y)),并且在RAM 103保持所得到的系数数据之后,针对系数数据执行顺序的重新排列和熵编码(P1VLC(Y))。通过该熵编码得到的编码数据Y累积在RAM 103中。与CPU 101-1中的处理并行地,CPU 101-2从RAM 103中读出第1图片的第1分区(P1)的图像数据C,在使高速缓冲存储器111-2保持中间数据的同时对图像数据C执行小波变换(P1DWT(C)),并且在RAM 103中保持所得到的系数数据之后,针对系数数据执行顺序的重新排列和熵编码(P1VLC(C))。通过该熵编码得到的编码数据C也累积在RAM 103中。
因此,利用该情况下的编码单元14,在CPU 101-1和CPU 101-2完成针对第1分区的熵编码的时间点,相当于一个分区以上的编码数据(编码数据Y和编码数据C)被累积在RAM 103中,从而可以开始编码数据的输出。
同样,针对第2分区以后,CPU 101-1将图像数据Y编码,与此并行地,CPU 101-2将图像数据C编码。当最后第n个分区(Pn)的图像数据Y和图像数据C被编码并且编码数据Y和编码数据C被输出时,由于第1图片的所有编码数据都被输出,因此对第1图片结束编码数据的输出。
与CPU 101-1和CPU 101-2中的处理并行地,如图23所示,CPU101-3和CPU 101-4可以对第2图片执行与CPU 101-1和CPU 101-2中的处理同样的编码处理。即,在该情况下,CPU 101-3针对第2图片的图像数据Y执行编码处理,CPU 101-4针对第2图片的图像数据C执行编码处理。
在这种情况下,在针对第1图片的处理完成时,CPU 101-1和CPU 101-2然后针对第3图片执行编码处理。与CPU 101-1和CPU101-2中的处理并行地,CPU 101-3和CPU 101-4同样地针对第4图片执行编码处理。第5图片以后也同样地处理。
如上所述,在图22所示的分配例子的情况下,通过并行地对图像数据Y和图像数据C进行编码,可以使编码数据的输出开始定时、即第1分区的编码数据Y和编码数据C的输出定时早于图19或图21中的例子的情况,因此可以减少编码处理中的延迟时间。附带地说,由于同样的原因,在图22所示的分配例子的情况下,第1图片的编码也可以比图19或图21中的例子的情况更快地完成。
因此,在解码单元36中将在编码单元14中编码的编码数据依次解码并且将重建后的图像数据的图像显示在监视器上的情况下,从开始编码时到显示第一个图片时的延迟时间在图22所示的分配例子的情况下比在图19或图21中的例子的情况下要短。
另外,与图21中的例子的情况同样,中间计算缓冲器单元52形成在高速缓冲存储器111中,系数重新排列缓冲器单元53形成在RAM103中。从而与图19中的例子的情况相比,可以使中间计算缓冲器单元52和系数重新排列缓冲器单元53的容量更大,可以更多地抑制缓冲器溢出的发生,并且可以使处理能力的降低更小。
顺便提及,在图22中的例子的情况下,由于对图像数据Y的小波变换的中间数据和对图像数据C的小波变换的中间数据累积在相互不同的高速缓冲存储器111中,因此与图21中的例子的情况相比,可以使中间计算缓冲器单元52的容量更大,并且可以更多地抑制缓冲器溢出的发生。
但是应当注意,实际上由于图像数据Y与图像数据C相比包含更大量的信息并且在图形上更为复杂,因此编码处理所需的时间更长。因此,由于在CPU 101-2中发生待机时间,CPU 101的使用效率比图21的情况降低,处理能力也比图21的情况降低。
图24是示出向图3中的编码单元14分配硬件资源的另一例子的图。在图24所示的例子中,与图22中的分配例子相比,将分别不同的CPU 101分别分配给小波变换单元51、系数重新排列单元54和熵编码单元55。
即,将CPU 101-1分配给执行图像数据Y的小波变换处理的小波变换单元51-1,将CPU 101-2分配给执行图像数据Y的系数数据的系数重新排列的系数重新排列单元54-1和执行图像数据Y的系数数据的熵编码的熵编码单元55-1。中间计算缓冲器单元52-1形成在CPU101-1的高速缓冲存储器111-1中,系数重新排列缓冲器单元53-1形成在RAM 103中。
同样,将CPU 101-3分配给执行图像数据C的小波变换处理的小波变换单元51-2,将CPU 101-4分配给执行图像数据C的系数数据的系数重新排列的系数重新排列单元54-2和执行图像数据C的系数数据的熵编码的熵编码单元55-2。中间计算缓冲器单元52-2形成在CPU101-3的高速缓冲存储器111-3中,系数重新排列缓冲器单元53-2形成在RAM 103中。
此时,实现小波变换单元51的功能的软件程序被装入高速缓冲存储器111-1和高速缓冲存储器111-3中,实现系数重新排列单元54和熵编码单元55的各功能的软件程序被装入高速缓冲存储器111-2和高速缓冲存储器111-4中。CPU 101-1~CPU 101-4分别根据需要从各个高速缓冲存储器111中读出并执行这些软件程序的函数。
在图24中的例子的情况下,图像数据Y在CPU 101-1和CPU101-2中编码,图像数据C在CPU 101-3和CPU 101-4中编码。即,针对图像数据Y,通过执行小波变换单元51-1的处理,CPU 101-1从RAM 103读出图像数据Y,并且执行小波变换处理。此时,CPU 101-1使用高速缓冲存储器111-1的存储区域的一部分作为中间计算缓冲器单元52,使中间计算缓冲器单元52保持在小波变换处理的垂直方向和水平方向上的分析滤波处理中生成的中间数据。
与图22中的例子的情况同样,CPU 101-1使用RAM 103的存储区域的一部分作为系数重新排列缓冲器单元53,使系数重新排列缓冲器单元53保持通过小波变换生成的系数数据。
但是应当注意,与图22中的例子的情况不同,在图24的例子的情况下,通过执行系数重新排列单元54的处理,CPU 101-2在按照预定的顺序重新排列系数数据的同时,读出由CPU 101-1生成并且保持在RAM 103的系数重新排列缓冲器单元53中的系数数据。通过执行熵编码单元55的处理,CPU 101-2对在通过系数重新排列单元54中的处理而按顺序重新排列的同时从RAM 103读出的系数数据进行编码,生成编码数据Y。CPU 101-2将所生成的编码数据Y提供给RAM103以存储在其中。
与CPU 101-1和CPU 101-2的该处理并行地,CPU 101-3和CPU101-4针对图像数据C如图22中的例子的情况所示执行小波变换以及系数重新排列和熵编码。
在如图24所示编码单元14在个人计算机100中实施的情况下,以CPU 101-1~CPU 101-4这4个CPU为一组来执行编码处理。因此,在这种情况下,一个编码单元14由CPU 101-1~CPU 101-4来实现。自然地,编码单元14构成为执行要编码的移动图像数据的所有图片的编码处理。图25中示出该情况下的处理流程。
由于CPU 101-1~CPU 101-4彼此独立地操作,因此,如图25中的例子所示,并行地执行各个处理。
在图25的例子中,CPU 101-1从RAM 103中读出第1图片的第1分区(P1)的图像数据Y,在使高速缓冲存储器111-1保持中间数据的同时对图像数据Y执行小波变换(P1DWT(Y)),并且将所得到的系数数据存储到RAM 103中。
在将系数数据存储到RAM 103中后,CPU 101-1接着从RAM103中读出第1图片的第2分区(P2)的图像数据Y,在使高速缓冲存储器111-1保持中间数据的同时对图像数据Y执行小波变换(P2DWT(Y)),并且将所得到的系数数据存储到RAM 103中。此时,与CPU 101-1的P2DWT(Y)的处理并行地,CPU 101-2读出存储在RAM 103中的第1分区(P1)的系数数据,执行顺序的重新排列和熵编码(P1VLC(Y))。在将所得到的编码数据Y存储到RAM 103中后,CPU 101-2接着读出存储在RAM 103中的第2分区(P2)的系数数据,执行顺序的重新排列和熵编码(P2VLC(Y))。
即,CPU 101-1和CPU 101-2使处理对象相互错开一个分区来并行地执行小波变换以及系数重新排列和熵编码。同样,针对第3分区以后,并行地执行小波变换以及系数重新排列和熵编码。
与对该图像数据Y的编码处理并行地,CPU 101-3和CPU 101-4同样地对图像数据C执行处理。即,与CPU 101-1的P1DWT(Y)的处理的执行并行地,CPU 101-3执行P1DWT(C)的处理,并且与CPU101-1的P2DWT(Y)的处理的执行并行地,CPU 101-3执行P2DWT(C)的处理,CPU 101-4执行P1VLC(C)的处理。
因此,利用该情况下的编码单元14,在CPU 101-2和CPU 101-4完成针对第1分区的熵编码的时间点,相当于一个分区以上的编码数据(编码数据Y和编码数据C)被累积在RAM 103中,从而可以开始编码数据的输出。
同样,针对第2分区以后,CPU 101-1和CPU 101-2将图像数据Y编码,与此并行地,CPU 101-3和CPU 101-4将图像数据C编码。当最后第n个分区(Pn)的图像数据Y和图像数据C被编码并且编码数据Y和编码数据C被输出时,由于第1图片的所有编码数据都被输出,因此对第1图片结束编码数据的输出。
第2图片以后也同样地处理。
如上所述,在图24所示的分配例子的情况下,与图22中的例子的情况同样,可以使编码数据的输出开始定时变早,可以减少延迟时间。附带地说,如图25所示,在图24所示的分配例子的情况下,编码单元14可以比图22中的例子的情况更快地执行第1图片的编码。因此,在解码单元36中将在编码单元14中编码的编码数据依次解码并且将重建后的图像数据的图像显示在监视器上的情况下,从开始编码时到显示第一个图片时的延迟时间可以变短。
另外,与图21中的例子的情况同样,中间计算缓冲器单元52形成在高速缓冲存储器111中,系数重新排列缓冲器单元53形成在RAM103中。从而与图19中的例子的情况相比,可以使中间计算缓冲器单元52和系数重新排列缓冲器单元53的容量更大,可以更多地抑制缓冲器溢出的发生,并且可以使处理能力的降低更小。
在图24中的例子的情况下,与图22中的例子的情况同样,由于对图像数据Y的小波变换的中间数据和对图像数据C的小波变换的中间数据累积在相互不同的高速缓冲存储器111中,因此与图21中的例子的情况相比,可以使中间计算缓冲器单元52的容量更大,并且可以更多地抑制缓冲器溢出的发生。
但是应当注意,实际上由于图像数据Y与图像数据C相比包含更大量的信息并且在图形上更为复杂,因此编码处理所需的时间更长。因此,在CPU 101-3和CPU 101-4中发生待机时间,并且由于CPU 101在编码处理的过程中切换,因此控制变得复杂并且处理时间也增加。因此,CPU 101的使用效率比图22的情况降低,处理能力也比图22的情况降低。
由于小波变换、系数重新排列和熵编码的各处理都由多个函数构成,因此还可以在上述的小波变换和系数重新排列之间以外的定时改变要分配的CPU 101。但是,除非在能够并行执行的处理的情况下,否则即使分配了相互不同的CPU 101,也不能缩短处理时间。在图3所示的编码单元14中,难以使小波变换单元51的处理中包含的详细处理彼此并行。而且,由于系数重新排列是从系数重新排列缓冲器单元53中读出系数数据,因此如果相互不同的CPU 101被分配给该系数重新排列和熵编码,则在CPU 101之间还需要进行系数数据的传送,从而使得处理效率低。因此,在编码单元14中,如上所述,最好在小波变换与系数重新排列和熵编码之间分开。
在如以往的计算机那样由计算机自动地分配执行处理的CPU的情况下,该分配按照负荷状况等进行。这样,可能不总是以这种方式在最佳位置分割处理并分配给相互不同的CPU。取决于情况,编码处理的效率可能极大降低。通过如图25中的例子所示预先在小波变换与系数重新排列和熵编码之间分割处理,编码单元14能够以好的效率执行编码处理。
图26是示出向图12中的解码单元36分配硬件资源的例子的图。在图26所示的例子中,与图19中的编码单元14的例子的情况同样,将CPU 101-1分配给解码单元36的熵解码单元61和小波逆变换单元63的全部处理,并且系数缓冲器单元62形成在高速缓冲存储器111-1中。
此时,实现熵解码单元61和小波逆变换单元63的各功能的软件程序被装入高速缓冲存储器111-1中。CPU 101-1根据需要从高速缓冲存储器111-1中读出并执行软件程序的函数。
要解码的编码数据Y和编码数据C保持在RAM 103中。
在图26的例子的情况下,编码数据Y和编码数据C都在CPU101-1中解码。即,通过执行熵解码单元61的处理,CPU 101-1从RAM103读出编码数据Y,并且执行熵解码。CPU 101-1使用高速缓冲存储器111-1的存储区域的一部分或全部作为系数缓冲器单元62,使系数缓冲器单元62保持通过熵解码生成的系数数据。
通过执行小波逆变换单元63的处理,CPU 101-1读出高速缓冲存储器111-1的系数缓冲器单元62中保持的系数数据,执行小波逆变换处理,重建图像数据Y。CPU 101-1将所重建的图像数据Y提供给RAM 103以存储在其中。
CPU 101-1对图像数据C与图像数据Y的情况同样地执行处理。
在如图26所示解码单元36在个人计算机100中实施的情况下,解码单元36中的所有处理由一个CPU 101执行,通过熵解码处理生成的系数数据被存储到CPU 101的高速缓冲存储器111中。
此时,与CPU 101-1同样,例如还将其它CPU 101-2~CPU 101-4分配给解码单元36。即,如图26所示的CPU 101-1的情况那样,实现熵解码单元61和小波逆变换单元63的各功能的软件程序还被装入高速缓冲存储器111-2~高速缓冲存储器111-4的每一个中。CPU101-2~CPU 101-4从各个高速缓冲存储器111中读出并执行这些软件程序,并且执行解码单元36的熵解码单元61和小波逆变换单元63。此时,与高速缓冲存储器111-1同样,系数缓冲器单元62形成在高速缓冲存储器111-2~高速缓冲存储器111-4的每一个中。
即,在该情况下,4个解码单元36由CPU 101-1~CPU 101-4实现。例如针对编码数据的编码之前的图像数据的每个图片来分配解码单元36。即,在该情况下,CPU 101-1~CPU 101-4针对相互不同的图片彼此并行地执行解码处理。图27中示意性地示出该情况下的处理流程。
如图27所示,执行熵解码单元61的处理的CPU 101-1从RAM103中读出第1图片的第1分区的编码数据Y,执行熵解码(P1VLD(Y)),并且将所得到的系数数据存储到高速缓冲存储器111-1的系数缓冲器单元62中。接着,执行小波逆变换单元63的处理的CPU101-1从系数缓冲器单元62中读出系数数据,执行小波逆变换(P1DWT(Y)),并且将所得到的图像数据Y提供给RAM 103以保持在其中。在完成了针对图像数据Y的处理之后,CPU 101-1然后针对编码数据C执行同样的处理(P1VLD(C)、P1DWT(C))。
在该时间点,相当于至少一个分区以上的图像数据Y和图像数据C被累积在RAM 103中,因此开始图像数据Y和图像数据C的输出。
在完成了针对第1分区的解码处理后,CPU 101-1同样地针对第2分区以后执行解码处理(P2VLD(Y)、P2DWT(Y)、P2VLD(C)、P2DWT(C)...)。
如图27所示,与CPU 101-1的该处理并行地,还可以由CPU101-2针对第2图片、CPU 101-3针对第3图片、CPU 101-4针对第4图片来执行同样的解码处理。在这种情况下,在针对第1图片的处理完成时,CPU 101-1然后针对第5图片执行解码处理。与CPU 101-1中的处理并行地,CPU 101-2~CPU 101-4同样地分别针对第6~第8图片执行解码处理。第9图片以后也同样地处理。
这样,在图26所示的分配的情况下,解码单元36可以同时并行地执行4个图片的解码处理。而且,在该情况下,在一系列解码处理中不需要切换CPU。另外,可以不使用RAM 103而仅使用高速缓冲存储器111来执行处理,从而解码单元36能够高速地对编码数据进行解码。即,解码单元36能够以高处理能力执行解码处理。
而且,不管CPU 101的个数如何(例如即使为1个时),个人计算机100都能实现解码单元36。
但是,由于高速缓冲存储器111具有小的容量,因此能够同时累积的数据量存在限制,取决于要解码的编码数据的数据量或内容,高速缓冲存储器111的容量可能不足而导致溢出,因此常常不能将图26所示的分配示例应用于执行解码所需的缓冲器量大的情况。
图28示出向图12中的解码单元36分配硬件资源的另一例子。在图28所示的例子中,将分别不同的CPU 101分别分配给执行编码数据Y的解码的解码单元和执行编码数据C的解码的解码单元。
即,将CPU 101-1分配给执行编码数据Y的解码的解码单元的熵解码单元61-1和小波逆变换单元63-1的全部处理,系数缓冲器单元62-1形成在高速缓冲存储器111-1中。而且,将CPU 101-2分配给执行编码数据C的解码的解码单元的熵解码单元61-2和小波逆变换单元63-2的全部处理,系数缓冲器单元62-2形成在高速缓冲存储器111-2中。
此时,实现熵解码单元61和小波逆变换单元63的各功能的软件程序被装入高速缓冲存储器111-1和高速缓冲存储器111-2中。CPU101-1和CPU 101-2根据需要从高速缓冲存储器111-1或高速缓冲存储器111-2中读出并执行软件程序的函数。
在图28中的例子的情况下,编码数据Y在CPU 101-1中解码,编码数据C在CPU 101-2中解码。即,通过熵解码单元61-1的处理,CPU 101-1从RAM 103读出编码数据Y,并且执行熵解码。CPU 101-1使用高速缓冲存储器111-1的存储区域的一部分或全部作为系数缓冲器单元62-1,使系数缓冲器单元62-1保持通过熵解码生成的系数数据。
通过执行小波逆变换单元63-1的处理,CPU 101-1读出高速缓冲存储器111-1的系数缓冲器单元62-1中保持的系数数据,执行小波逆变换处理,重建图像数据Y。CPU 101-1将所重建的图像数据Y提供给RAM 103以存储在其中。
通过执行熵解码单元61-2的处理,CPU 101-2从RAM 103读出编码数据C,并且执行熵解码。CPU 101-2使用高速缓冲存储器111-2的存储区域的一部分或全部作为系数缓冲器单元62-2,使系数缓冲器单元62-2保持通过熵解码生成的系数数据。
通过执行小波逆变换单元63-2的处理,CPU 101-2读出高速缓冲存储器111-2的系数缓冲器单元62-2中保持的系数数据,执行小波逆变换处理,重建图像数据C。CPU 101-2将所重建的图像数据C提供给RAM 103以存储在其中。
在如图28所示解码单元36在个人计算机100中实施的情况下,解码单元36中的针对图像数据Y和图像数据C的全部处理由分别不同的单个CPU 101执行,通过熵解码生成的系数数据被存储到内置于每个CPU 101中的高速缓冲存储器111中,通过小波逆变换重建的图像数据Y和图像数据C都被存储到RAM 103中。即,以2个CPU为1组执行解码处理。
此时,与CPU 101-1和CPU 101-2同样,例如还将其它CPU 101-3和CPU 101-4分配给解码单元36。即,如图28中的CPU 101-1和CPU101-2的情况那样,实现熵解码单元61和小波逆变换单元63的各功能的软件程序还被装入高速缓冲存储器111-3和高速缓冲存储器111-4中。CPU 101-3和CPU 101-4从各个高速缓冲存储器111中读出并执行这些软件程序,并且执行解码单元36的熵解码单元61和小波逆变换单元63的各处理。此时,用于编码数据Y的系数缓冲器单元62-1形成在高速缓冲存储器111-3中,用于编码数据C的系数缓冲器单元62-2形成在高速缓冲存储器111-4中。
即,在该情况下,2个解码单元36由CPU 101-1~CPU 101-4实现。例如针对编码数据的编码之前的图像数据的每个图片来分配解码单元36。例如,CPU 101-1和CPU 101-2构成为执行第奇数个图片的解码处理,CPU 101-3和CPU 101-4构成为执行第偶数个图片的解码处理。图29中示出该情况下的处理流程。
在该情况下,如图29所示,执行熵解码单元61-1的处理的CPU101-1从RAM 103中读出第1图片的第1分区的编码数据Y,执行熵解码(P1VLD(Y)),并且将所得到的系数数据存储到高速缓冲存储器111-1的系数缓冲器单元62-1中。接着,执行小波逆变换单元63-1的处理的CPU 101-1从系数缓冲器单元62-1中读出系数数据,执行小波逆变换(P1DWT(Y)),并且将所得到的图像数据Y提供给RAM 103以保持在其中。
与该处理并行地,执行熵解码单元61-2的处理的CPU 101-2从RAM 103中读出第1图片的第1分区的编码数据C,执行熵解码(P1VLD(C)),并且将所得到的系数数据存储到高速缓冲存储器111-2的系数缓冲器单元62-2中。接着,执行小波逆变换单元63-2的处理的CPU 101-2从系数缓冲器单元62-2中读出系数数据,执行小波逆变换(P1DWT(C)),并且将所得到的图像数据C提供给RAM 103以保持在其中。
因此,利用该情况下的解码单元36,在CPU 101-1和CPU 101-2完成针对第1分区的小波逆变换的时间点,相当于一个分区以上的图像数据(图像数据Y和图像数据C)被累积在RAM 103中,从而可以开始图像数据的输出。
同样,针对第2分区以后,分别由CPU 101-1和CPU 101-2彼此并行地将编码数据Y和编码数据C解码。
与CPU 101-1和CPU 101-2的该处理并行地,还可以由CPU101-3和CPU 101-4针对第2图片来执行与CPU 101-1和CPU 101-2中的处理同样的解码处理。在该情况下,CPU 101-3针对第2图片的编码数据Y执行解码,CPU 101-4针对第2图片的编码数据C执行解码。
在这种情况下,在针对第1图片的处理完成时,CPU 101-1和CPU 101-2然后针对第3图片执行解码处理。与CPU 101-1和CPU101-2中的处理并行地,CPU 101-3和CPU 101-4同样地针对第4图片执行解码处理。第5图片以后也同样地处理。
因此,在图28所示的分配例子的情况下,通过并行地对编码数据Y和编码数据C进行解码,可以使重建后的图像数据的输出定时、即第1分区的图像数据Y和图像数据C的输出定时早于图26中的例子的情况,因此可以减少解码处理中的延迟时间。
附带地说,由于同样的原因,在图28所示的分配例子的情况下,第1图片的解码也可以比图26中的例子的情况更快地完成。因此,在监视器上显示在解码单元36中重建的图像数据的图像的情况下,从开始解码时到显示第一个图片时的延迟时间在图28所示的分配例子的情况下比在图26中的例子的情况下要短。
另外,由于通过对编码数据Y进行解码得到的系数数据和通过对编码数据C进行解码得到的系数数据累积在相互不同的高速缓冲存储器111中,因此与图26中的例子的情况相比,可以使系数缓冲器单元62的容量更大,并且可以更多地抑制缓冲器溢出的发生。
顺便提及,由于图像数据Y与图像数据C相比包含更大量的信息并且在图形上更为复杂,因此解码处理所需的时间更长。因此,由于在CPU 101-3或CPU 101-4中发生待机时间,因此CPU 101的使用效率比图26的情况降低,处理能力也比图26的情况降低。
图30示出图12中的解码单元36的分配的另一例子。在图30所示的例子中,与图28中的分配例子相比,将分别不同的CPU 101分别分配给熵解码单元61和小波逆变换单元63。
即,将CPU 101-1分配给对编码数据Y进行解码的熵解码单元61-1,将CPU 101-2分配给对在熵解码单元61-1中生成的系数数据执行小波逆变换处理的小波逆变换单元63-1。系数缓冲器单元62-1形成在高速缓冲存储器111-2中。
同样,将CPU 101-3分配给对编码数据C进行解码的熵解码单元61-2,将CPU 101-4分配给对在熵解码单元61-2中生成的系数数据执行小波逆变换处理的小波逆变换单元63-2。系数缓冲器单元62-2形成在高速缓冲存储器111-4中。
此时,实现熵解码单元61的功能的软件程序被装入高速缓冲存储器111-1和高速缓冲存储器111-3中,实现小波逆变换单元63的各功能的软件程序被装入高速缓冲存储器111-2和高速缓冲存储器111-4中。CPU 101-1~CPU 101-4分别根据需要从各个高速缓冲存储器111中读出并执行这些软件程序的函数。
在图30中的例子的情况下,编码数据Y在CPU 101-1和CPU101-2中解码,编码数据C在CPU 101-3和CPU 101-4中解码。即,通过执行熵解码单元61-1的处理,针对编码数据Y,CPU 101-1从RAM 103读出编码数据Y,并且执行熵解码处理。此时,CPU 101-1使用高速缓冲存储器111-2的存储区域的一部分或全部作为系数缓冲器单元62,使系数缓冲器单元62保持所生成的系数数据。
通过执行小波逆变换单元63-1的处理,CPU 101-2读出由CPU101-1生成并保持在RAM 103的系数缓冲器单元62中的系数数据,作为小波变换处理而在垂直方向和水平方向上分级地执行合成滤波处理,生成图像数据Y。CPU 101-2将所生成的图像数据Y提供给RAM103以存储在其中。
与CPU 101-1和CPU 101-2的该处理并行地,CPU 101-3和CPU101-4如图30中的例子的情况那样,针对图像数据C执行熵解码处理和小波逆变换处理。
在如图30所示解码单元36在个人计算机100中实施的情况下,以CPU 101-1~CPU 101-4这4个CPU为一组来执行解码处理。因此,在这种情况下,一个解码单元36由CPU 101-1~CPU 101-4来实现。自然地,解码单元36构成为执行要解码并重建的移动图像数据的所有图片的解码处理。图31中示出该情况下的处理流程。
由于CPU 101-1~CPU 101-4彼此独立地操作,因此,如图31中的例子所示,可以并行地执行各个处理。
在该情况下,如图31所示,执行熵解码单元61-1的处理的CPU101-1从RAM 103中读出第1图片的第1分区的编码数据Y,执行熵解码(P1VLD(Y)),并且将所得到的系数数据存储到高速缓冲存储器111-2的系数缓冲器单元62-1中。执行熵解码单元61-1的处理的CPU 101-1针对第2分区的编码数据Y同样地执行熵解码(P2VLD(Y))。
与P2VLD(Y)并行地,执行小波逆变换单元63-1的处理的CPU101-2从系数缓冲器单元62-1中读出第1图片的第1分区的系数数据,执行小波逆变换(P1DWT(Y)),并且使所得到的图像数据Y在保持在RAM 103中后输出。执行小波逆变换单元63-1的处理的CPU 101-2同样地针对第2分区的系数数据执行小波逆变换(P2DWT(Y))。
即,同样地针对第3分区以后,CPU 101-1和CPU 101-2将处理对象彼此错开一个分区来并行地执行熵解码和小波逆变换。
与该针对图像数据Y的编码处理并行地,CPU 101-3和CPU101-4同样地针对图像数据C执行处理。即,与CPU 101-1的P1DWT(Y)的处理的执行并行地,CPU 101-3执行P1DWT(C)的处理,并且,与CPU 101-1的P2DWT(Y)的处理的执行并行地,CPU 101-3执行P2DWT(C)的处理,CPU 101-4执行P1VLC(C)的处理。
因此,利用该情况下的解码单元36,在CPU 101-2和CPU 101-4完成针对第1分区的小波逆变换的时间点,相当于一个分区以上的图像数据(图像数据Y和图像数据C)被累积在RAM 103中,从而可以开始图像数据的输出。
同样,针对第2分区以后,由CPU 101-1和CPU 101-2对编码数据Y进行解码,与此并行地,由CPU 101-3和CPU 101-4对编码数据C进行解码。当最后第n个分区(Pn)的编码数据Y和编码数据C被解码并且图像数据Y和图像数据C被输出时,由于第1图片的所有图像数据都被输出,因此对第1图片结束图像数据的输出。
第2图片以后也同样地处理。
如上所述,在图30所示的分配例子的情况下,通过并行地执行熵解码处理和小波逆变换处理,可以使重建后的图像数据的输出开始定时、即第1分区的图像数据Y和图像数据C的输出定时早于图28中的例子的情况,因此可以减少解码处理中的延迟时间。附带地说,由于同样的原因,在图30所示的分配例子的情况下,第1图片的解码可以比图28中的例子的情况更快地完成。
因此,在监视器上显示在解码单元36中重建的图像数据的图像的情况下,从开始解码处理时到显示第一个图片时的延迟时间在图30所示的分配例子的情况下比在图28中的例子的情况下要短。
另外,与图28中的例子的情况同样,由于通过对编码数据Y进行解码得到的系数数据和通过对编码数据C进行解码得到的系数数据累积在相互不同的高速缓冲存储器111中,因此与图26中的例子的情况相比,可以使系数缓冲器单元62的容量更大,并且可以更多地抑制缓冲器溢出的发生。
但是应当注意的是,实际上,由于图像数据Y与图像数据C相比包含更大量的信息并且在图形上更为复杂,因此解码处理所需的时间更长。因此,在CPU 101-3和CPU 101-4中发生待机时间,并且由于CPU 101在解码处理的过程中切换,因此控制变得复杂并且处理时间也增加。因此,CPU 101的使用效率比图28的情况降低,处理能力也比图28的情况降低。
由于熵解码和小波逆变换的各处理都由多个函数构成,因此还可以在上述的熵解码和小波逆变换之间以外的定时改变要分配的CPU101。但是,除非在能够并行执行的处理的情况下,否则即使分配了相互不同的CPU 101,也不能缩短处理时间。在图12所示的解码单元36中,难以使熵解码处理或小波逆变换中包含的详细处理彼此并行。因此,在解码单元36中,如上所述,最好在熵解码与小波逆变换之间分开。
在如以往的计算机那样由计算机自动地分配执行处理的CPU的情况下,该分配按照负荷状况等进行。这样,可能不总是以这种方式在最佳位置分割处理并分配给相互不同的CPU。取决于情况,解码处理的效率可能极大降低。通过如图30中的例子所示预先在熵解码与小波逆变换之间分割处理,解码单元36能够以好的效率执行解码处理。
这样,尽管在图3中说明了系数的重新排列紧接在小波变换之后(熵编码之前)执行,但只要编码数据按照从低频到高频的顺序被提供给解码单元36(图12)的小波逆变换单元63即可(即,只要编码数据按照从通过对属于低频子带的系数数据进行编码得到的编码数据、到通过对属于高频子带的系数数据进行编码得到的编码数据的顺序提供即可),并且重新排列的定时可以是紧接在小波变换之后以外的定时。
例如,如图32所示,可以重新排列通过熵编码得到的编码数据的顺序。与图3的情况同样,图32的情况下的编码单元14具有小波变换单元51、中间计算缓冲器单元52和熵编码单元55,但是,代替图3中的系数重新排列缓冲器单元53和系数重新排列单元54,具有代码重新排列缓冲器单元213和代码重新排列单元214。
从小波变换单元51输出的系数数据被提供给熵编码单元55。熵编码单元55按照提供的顺序对所提供的系数数据进行编码,使代码重新排列缓冲器单元213保持通过编码得到的编码数据。即,编码数据按照从高频到低频的顺序提供给代码重新排列缓冲器单元213。代码重新排列单元214通过按照执行小波逆变换处理的顺序、即按照从低频到高频的顺序读出代码重新排列缓冲器单元213中保持的编码数据,对编码数据进行重新排列,并使编码数据在保持在RAM 103中后按照该顺序输出。
在图32中还示出向这样的编码单元14分配硬件资源的例子。在图32的例子的情况下,以编码处理的所有各个处理都在一个CPU 101中执行的方式来进行分配。即,在重新排列编码数据的顺序的情况下,可以与参照图19说明的重新排列系数数据的情况同样地分配硬件资源。同样,硬件资源也可以如图21、图22或图24的例子所示进行分配。图33中示出如图24的例子所示分配硬件资源的方式。
如图33所示,在该情况下,将CPU 101-1分配给执行图像数据Y的小波变换处理的小波变换单元51-1,将CPU 101-2分配给执行图像数据Y的系数数据的熵编码的熵编码单元55-1和执行编码数据Y的重新排列的代码重新排列单元214-1。中间计算缓冲器单元52-1形成在CPU 101-1的高速缓冲存储器111-1中,代码重新排列缓冲器单元213-1形成在RAM 103中。
同样,将CPU 101-3分配给执行图像数据C的小波变换处理的小波变换单元51-2,将CPU 101-4分配给执行图像数据C的系数数据的熵编码的熵编码单元55-2和执行编码数据C的重新排列的代码重新排列单元214-2。中间计算缓冲器单元52-2形成在CPU 101-3的高速缓冲存储器111-3中,代码重新排列缓冲器单元213-2形成在RAM 103中。
这样,在重新排列编码数据的顺序的情况下,与重新排列系数数据的情况同样,通过适当地执行硬件资源的分配,编码单元14能够以好的效率执行编码处理。顺带提及,在重新排列编码数据的顺序的情况下同样,当如图33所示要将多个CPU 101分配给小波变换单元51-1、熵编码单元55-1和代码重新排列单元214-1(或者小波变换单元51-2、熵编码单元55-2和代码重新排列单元214-2)时,预先确定CPU 101的切换位置,从而能够抑制硬件资源的不适当分配。
硬件资源的分配方法可以是上述方法以外的方法。例如,在图33的例子中,代码重新排列缓冲器单元213-1可以形成在高速缓冲存储器111-2中,代码重新排列缓冲器单元213-2可以形成在高速缓冲存储器111-4中,CPU 101-1可以分配给熵编码单元55-1,CPU 101-3可以分配给熵编码单元55-2,或者相互不同的CPU 101可以分配给小波变换单元51-1、熵编码单元55-1和代码重新排列单元214-1,相互不同的CPU 101可以分配给小波变换单元51-2、熵编码单元55-2和代码重新排列单元214-2。
在这种情况下,解码单元36的结构和硬件资源的分配方法与以上参照图26~图31所说明的情况相同。
重新排列可以在解码单元36侧执行。在这种情况下,如图34所示,编码单元14具有小波变换单元51、中间计算缓冲器单元52和熵编码单元55,不具有图3所示的系数重新排列缓冲器单元53和系数重新排列单元54。
当然,此时编码单元14中的对CPU 101的分配可以与参照图20~图25所述的重新排列系数数据的情况同样地执行。即,在该情况下同样,通过适当地执行硬件资源的分配,编码单元14能够以好的效率执行编码处理。作为一例,图34中示出与图24中的例子对应的例子。
图35示出此时对应于编码单元14的解码单元36的结构。即,解码单元36在系数缓冲器单元62和小波逆变换单元63之间具有用于重新排列系数数据的顺序的系数重新排列缓冲器单元223。在此时的解码单元36中,对CPU 101的分配可以与参照图26~图31所述的例子同样地执行。即,在该情况下同样,通过适当地执行硬件资源的分配,解码单元36能够以好的效率执行解码处理。作为一例,图35中示出与图30中的例子对应的例子。
在图35中的例子的情况下,保持从系数缓冲器单元62-1输出的亮度分量Y的系数数据的系数重新排列缓冲器单元223-1和保持从系数缓冲器单元62-2输出的色度分量C的系数数据的系数重新排列缓冲器单元223-2形成在ROM 103中。
执行小波逆变换单元63-1的处理的CPU 101-2按照重新排列的顺序、即按照从高频到低频的顺序,从ROM 103的系数重新排列缓冲器单元223-1中读出亮度分量Y的系数数据,并按照该顺序对系数数据执行小波逆变换处理。CPU 101-2使所生成的图像数据Y在保持到RAM 103中后输出。
同样,执行小波逆变换单元63-2的处理的CPU 101-4按照重新排列的顺序、即按照从低频到高频的顺序,从ROM 103的系数重新排列缓冲器单元223-2中读出色度分量C的系数数据,并按照该顺序对系数数据执行小波逆变换处理。CPU 101-4使所生成的图像数据C在保持到RAM 103中后输出。
通过如上所述适当地向CPU 101分配编码单元14和解码单元36中的各个处理,可以提高编码单元14和解码单元36的处理效率,并且提高处理能力或降低延迟时间。
存在编码单元14或解码单元36要求的特性取决于图像而不同的情况。为了还适当地适应这种情况,可以预先准备上述的多个分配模式,根据条件适当选择分配模式。以下将说明该情况。首先说明安装了软件编码器或软件解码器的硬件。图36是示出安装了软件编码器或软件解码器的信息处理系统的结构例子的框图。
如图36所示,信息处理系统300是由信息处理设备301、经由PCI总线302与信息处理设备301连接的存储设备303、作为多个视频磁带记录器(VTR)的VTR 304-1~VTR 304-S、用于用户对它们执行操作输入的鼠标305、键盘306和操作控制器307构成的系统,并且是通过所安装的程序来执行上述的图像编码处理、图像解码处理等的系统。
例如,信息处理系统300的信息处理设备301能够使存储设备303存储通过对存储在由RAID(Redundant Arrays of Independent Disks,独立磁盘冗余阵列)构成的大容量的存储设备303中的移动图像内容进行编码而得到的编码数据,能够使存储设备303存储通过对存储在存储设备303中的编码数据进行解码得到的解码图像数据(移动图像内容),或者使编码数据或解码图像数据经由VTR 304-1~VTR 304-S记录到视频磁带上。另外,信息处理设备301还构成为能够将记录在安装在VTR 304-1~VTR 304-S上的视频磁带上的移动图像内容捕获到存储设备303上。此时,信息处理设备301可以对移动图像内容进行编码。
信息处理设备301具有微处理器401、GPU(Graphics ProcessingUnit,图形处理单元)402、XDR(Extreme Data Rate,极速数据率)-RAM 403、南桥(southbridge)404、HDD(Hard Disk Drive,硬盘驱动器)405、USB接口(USB I/F)406和声音输入/输出编解码器407。
GPU 402经由专用总线411连接到微处理器401。XDR-RAM 403经由专用总线412连接到微处理器401。南桥404经由专用总线连接到微处理器401的I/O控制器444。HDD 405、USB接口406和声音输入/输出编解码器407也连接到南桥404。扬声器421连接到声音输入/输出编解码器407。而且,显示器422连接到GPU 402。
另外,鼠标305、键盘306、VTR 304-1~VTR 304-S、存储设备303和操作控制器307还经由PCT总线302连接到南桥404。
鼠标305和键盘306接收用户的操作输入,经由PCI总线302和南桥404将指示用户的操作输入的内容的信号提供给微处理器401。存储设备303和VTR 304-1~VTR 304-S构成为能够记录或重放预定的数据。
驱动器308还根据需要连接到PCI总线302,适当地安装磁盘、光盘、光磁盘或半导体存储器等可装卸介质311,并且根据需要将从其中读出的软件程序装入HDD 405。
微处理器401是将以下部件集成到一个芯片中并实现例如4[GHz]的操作频率的多核结构:执行OS(Operating System,操作系统)等基本程序的通用的主CPU核441;子CPU核442-1~子CPU核442-8,是经由共用总线445连接到主CPU核441的多个RISC(ReducedInstruction Set Computer,精简指令集计算机)的(这种情况下为8个)信号处理处理器;存储器控制器443,针对具有例如256[M字节]的容量的XDR-RAM 403执行存储器控制;以及I/O(输入/输出)控制器444,管理对南桥404的数据输入和输出。
在起动时,根据存储在HDD 405中的控制程序,微处理器401读出存储在HDD 405中的必要的应用程序并将该应用程序展开到XDR-RAM 403,然后根据该应用程序和操作者的操作执行必要的控制处理。
并且,通过执行软件,微处理器401例如能够实现上述的编码处理或解码处理,使作为编码结果得到的编码流经由南桥404提供给HDD 405以存储在其中,或者将作为解码结果得到的移动图像内容的重放视频向GPU402进行数据传送,以显示在显示器422上。
尽管使用微处理器401内的各个CPU核的方法是任意的,但例如主CPU核441可以执行与图像编码处理或图像解码处理的控制有关的处理,8个子CPU核442-1~子CPU核442-8可以构成为例如以参照图17说明的同时、并行的方式执行小波变换、系数重新排列、熵编码、熵解码、小波逆变换、量化和反量化等各处理。此时,如果主CPU核441构成为以分区为单位向8个子CPU核442-1~子CPU核442-8中的每一个分配处理,则编码处理或解码处理与参照图17说明的情况同样,以分区为单位以同时、并行的方式执行。即,可以提高编码处理或解码处理的效率,缩短处理整体的延迟时间,并且降低负荷、处理时间和处理所需的存储器容量。当然,各处理也可以用这以外的方法来执行。
GPU 402构成为除了与使要在显示器422上显示的移动图像内容的重放视频移动时的纹理的粘贴等有关的最终绘制处理之外,还管理执行在显示器422上一次显示多个移动图像内容的重放图像和静止图像内容的静止图像时的坐标变换计算处理、以及针对移动图像内容的重放图像和静止图像内容的静止图像的放大/缩小处理等的功能,从而减轻对微处理器401的处理负荷。
在微处理器401的控制下,GPU 402对所提供的移动图像内容的视频数据或静止图像内容的图像数据实施预定的信号处理,向显示器422发送出作为结果得到的视频数据或图像数据,并且在显示器422上显示图像信号。
这样,由微处理器401的8个子CPU核442-1~子CPU核442-8以同时、并行的方式解码的多个移动图像内容的重放视频经由总线411向GPU 402进行数据传送。此时的传送速度例如是最大30[G字节/秒],从而即使具有特殊效果的复杂重放图像也能够高速、平滑地显示。
另外,微处理器401还能够对移动图像内容的视频数据和音频数据中的音频数据实施音频混合处理,并将作为结果得到的编辑音频数据经由南桥404和声音输入/输出编解码器407发送给扬声器421,从而能够从扬声器421输出基于音频信号的音频。
如图37所示,作为高速缓冲存储器的LS(Local Store,局部存储器)451-1~LS 451-8分别内置于上述的信息处理系统300的微处理器401的8个子CPU核442-1~子CPU核442-8中。即,8个子CPU核442-1~子CPU核442-8可以使用它们内置的LS 451-1~LS 451-8和XDR-RAM 403的存储区域。
与图18中的个人计算机100的高速缓冲存储器111的情况同样,LS 451-1~LS 451-8可以由子CPU核442-1~子CPU核442-8分别独占性地使用,可以不经由共用总线445来执行数据的读或写,并且可以比XDR-RAM 403更高速地操作。因此,LS 451-1~LS 451-8能够比XDR-RAM 403更高速地进行数据的读或写。但应注意,与XDR-RAM 403相比,LS 451-1~LS 451-8的每容量的单价高并且其容量小。
尽管实际上XDR-RAM 403的容量也是有限的,但以下假定XDR-RAM 403的容量足够大,相反,LS 451-1~LS 451-8具有小容量并且仅能够保持最小必需的数据。
在以下说明中,在不需要彼此区分时,将子CPU核442-1~子CPU核442-8称为子CPU核442。并且,在不需要彼此区分时,将LS 451-1~LS 451-8称为LS 451。
对于子CPU核442-1~子CPU核442-8,由主CPU核441从预先准备的上述多个分配方法中选择最佳的一个,并且按照该分配方法分配编码单元14和解码单元36中的各处理。
图38中示出主CPU核441所具有的功能块。
如图38所示,主CPU核441具有:OS 501,是执行信息处理系统300整体的控制并使硬件执行软件程序的处理的基本软件;编码选择控制单元502,在安装了编码单元14时执行分配方法的选择;解码选择控制单元503,在安装了解码单元36时执行分配方法的选择;以及高速缓冲存储器504,是主CPU核441的本地高速缓冲存储器。
OS 501管理信息处理系统300的硬件资源,根据来自编码选择控制单元502或解码选择控制单元503的请求,提供作为与硬件资源有关的信息的资源信息,或者向处理分配硬件资源。
例如,OS 501从HDD 405读出编码程序或解码程序,并将其分配给LS 451或XDR-RAM 403,或者使子CPU核442执行处理。另外,例如OS 501确保XDR-RAM 403所需的容量的区域。
编码选择控制单元502具有大小信息取得单元511、资源信息取得单元512、计算精度选择单元513、中间计算缓冲器使用量计算单元514、系数重新排列缓冲器使用量计算单元515、编码方式选择单元516和分配单元517。
大小信息取得单元511从XDR-RAM 403取得保持在XDR-RAM403中的作为处理对象的图像数据541的大小信息,包括图像的垂直和水平大小、位深度、小波滤波器的种类、小波变换的分解数等信息中的至少一个。资源信息取得单元512经由OS 501取得包括当前可用的子CPU核的个数、LS 451的容量等信息中的至少一个的资源信息。计算精度选择单元513根据编码参数531执行熵编码中的计算选择,其中编码参数531是编码是否是可逆的、是否时延(latency)优先、是否处理能力优先或是否精度优先等与编码有关的预定义设定信息。
中间计算缓冲器使用量计算单元514针对每个分量计算表示中间计算缓冲器单元52需要的容量的中间计算缓冲器使用量。系数重新排列缓冲器使用量计算单元515针对每个分量计算表示系数重新排列缓冲器单元53需要的容量的系数重新排列缓冲器使用量。
编码方式选择单元516根据各种条件从保持在XDR-RAM 403中的编码程序543-1、编码程序543-2、...中选择一个要执行的程序。编码程序543-1、编码程序543-2、...均为用于实现图3中的编码单元14的软件程序,并且预先定义了向程序本身分配硬件的方法。但应注意,分配方法针对各软件程序是不同的。在以下说明中,在不需要彼此区分时,将编码程序543-1、编码程序543-2、...称为编码程序543。分配单元517按照编码程序543的分配方法,向由编码方式选择单元516选择的编码程序543分配子CPU核442-1~子CPU核442-8等硬件资源。
解码选择控制单元503具有大小信息取得单元521、资源信息取得单元522、系数缓冲器使用量计算单元523、解码方式选择单元524和分配单元525。
大小信息取得单元521取得保持在XDR-RAM 403中的作为处理对象的编码数据542的大小信息,包括图像的垂直和水平大小、位深度、小波滤波器的种类、小波变换的分解数等信息中的至少一个。资源信息取得单元522经由OS 501取得信息处理系统300的资源信息。
系数缓冲器使用量计算单元523针对每个分量计算表示系数缓冲器单元62需要的容量的系数缓冲器使用量。
解码方式选择单元524根据各种条件从保持在XDR-RAM 403中的解码程序544-1、解码程序544-2、...中选择一个要执行的程序。解码程序544-1、解码程序544-2、...均为用于实现图12中的解码单元36的软件程序,并且预先定义了向程序本身分配硬件的方法。但应注意,分配方法针对各软件程序是不同的。在以下说明中,在不需要彼此区分时,将解码程序544-1、解码程序544-2、...称为解码程序544。分配单元525按照解码程序544的分配方法,向由解码方式选择单元524选择的解码程序544分配子CPU核442-1~子CPU核442-8等硬件资源。
表示预设的编码条件的编码参数531和表示预设的解码条件的解码参数532存储在高速缓冲存储器504中。另外,用于编码方式的选择的小波变换关系表533和系数重新排列关系表534保持在高速缓冲存储器504中。
如图39所示,小波变换关系表533是由分解数、5×3滤波器、9×7滤波器的项目构成的表信息,是用于得到关系指数的表信息,该关系指数用于计算用于小波变换的中间计算缓冲器单元52需要的容量。
另外,如图40所示,系数重新排列关系表534是由分解数、5×3滤波器、9×7滤波器的项目构成的表信息,是用于得到关系指数的表信息,该关系指数用于计算系数重新排列缓冲器单元53需要的容量。
以下说明上述的主CPU核441执行的各个处理。
首先参照图41的流程图说明由编码选择控制单元502执行的编码选择控制处理的流程例子。编码选择控制处理是为了在执行编码处理时从子CPU核442-1~子CPU核442-8的分配方式彼此不同的多个编码程序543中选择一个而执行的处理。例如,当用户指示执行编码处理时,编码选择控制单元502开始编码选择控制处理。
当开始了编码选择控制处理时,在步骤S101中,大小信息取得单元511取得针对保持在XDR-RAM 403中的作为处理对象的图像数据541的大小信息。在步骤S102中,资源信息取得单元512经由OS501取得作为与可用的硬件资源有关的信息的资源信息。在步骤S103中,计算精度选择单元513根据编码参数531、大小信息等选择和设定编码处理的计算精度。以下说明计算精度选择处理的详细流程。
当选择了计算精度时,中间计算缓冲器使用量计算单元514在步骤S104中使用小波变换关系表533等计算表示中间计算缓冲器单元52需要的容量的中间计算缓冲器使用量。系数重新排列缓冲器使用量计算单元515在步骤S105中使用系数重新排列关系表534等计算表示系数重新排列缓冲器单元53需要的容量的系数重新排列缓冲器使用量。
在步骤S106中,编码方式选择单元516根据大小信息、资源信息、所选择的计算精度、以及所计算的中间计算缓冲器使用量和系数重新排列缓冲器使用量等各种信息,选择编码方式。编码方式选择处理的详情将后述。
当选择了编码方式时,在步骤S107中,分配单元517按照所选择的编码程序543的分配方法,向各处理分配子CPU核442-1~子CPU核442-8。
当完成了步骤S107中的处理时,结束编码选择控制处理。
接着参照图42的流程图说明在图41的步骤S103中执行的计算精度选择处理的流程例子。
当开始了计算精度选择处理时,在步骤S121中,计算精度选择单元513根据大小信息确定在小波变换处理中使用的滤波器类型是5×3滤波器还是9×7滤波器。如果确定是5×3滤波器,则处理前进到步骤S122。
在步骤S122中,计算精度选择单元513根据编码参数531确定是否执行可逆编码作为熵编码。如果确定执行可逆编码,则处理前进到步骤S123。在步骤S123中,计算精度选择单元513根据大小信息确定图像数据541的位深度是否是13以下。
如果确定位深度是13以下,则处理前进到步骤S124。在步骤S124中,计算精度选择单元513选择和设定16位固定小数点型作为计算精度。当步骤S124中的处理完成时,完成计算精度选择处理,处理返回到图41中的步骤S103,执行步骤S104以后的处理。
另外,如果在图42的步骤S123中确定位深度大于13,则处理前进到步骤S125。在步骤S125中,计算精度选择单元513选择和设定32位固定小数点型作为计算精度。当步骤S125中的处理完成时,完成计算精度选择处理,处理返回到图41中的步骤S103,执行步骤S104以后的处理。
如果在图42的步骤S122中确定执行不可逆编码作为熵编码,则处理前进到步骤S126。在步骤S126中,计算精度选择单元513根据编码参数531确定是否精度优先。如果确定不是精度优先,则处理返回到步骤S123,重复此后的处理。
如果在步骤S126中确定精度优先,则处理前进到步骤S127。而且,如果在步骤S121中根据大小信息确定在小波变换处理中使用的滤波器的类型是9×7滤波器,则处理前进到步骤S127。
在步骤S127中,计算精度选择单元513选择和设定32位浮动小数点型作为计算精度。当步骤S127中的处理完成时,完成计算精度选择处理,处理返回到图41中的步骤S103,执行步骤S104以后的处理。
如上所述来选择计算精度。
接着,参照图43的流程图说明在图41的步骤S106中执行的编码方式选择处理的流程例子。
在步骤S141中,根据由中间计算缓冲器使用量计算单元514计算的中间计算缓冲器使用量和由资源信息取得单元512确认的、表示LS 451的可用存储容量的可用容量,编码方式选择单元516确定LS451的可用容量是否是作为用于2个分量的中间计算缓冲器单元52足够的容量。即,编码方式选择单元516确定LS 451的可用容量是否等于或大于2个分量的各自的中间计算缓冲器使用量之和。如果确定足够,则处理前进到步骤S142。
在步骤S142中,根据由中间计算缓冲器使用量计算单元514计算的中间计算缓冲器使用量、由系数重新排列缓冲器使用量计算单元515计算的系数重新排列缓冲器使用量、以及由资源信息取得单元512确认的LS 451的可用容量,编码方式选择单元516确定LS 451的可用容量是否是作为用于2个分量的中间计算缓冲器单元52和系数重新排列缓冲器单元53足够的容量。即,编码方式选择单元516确定LS451的可用容量是否等于或大于2个分量的各自的中间计算缓冲器使用量和系数重新排列缓冲器使用量之和。如果确定足够,则处理前进到步骤S143。
在步骤S143中,编码方式选择单元516根据编码参数531确定是否处理能力优先。如果确定处理能力优先,则处理前进到步骤S144。
在步骤S144中,编码方式选择单元516选择应用参照图19说明的分配方法的编码方式A。即,在这种情况下,如图19所示,一个子CPU核442被分配给编码单元14的所有处理。并且,中间计算缓冲器单元52和系数重新排列缓冲器单元53都形成在LS 451中。当步骤S144的处理完成时,编码方式选择处理完成,处理返回到图41的步骤S106,处理前进到步骤S107。
如果在图43的步骤S142中确定LS 451的可用容量不足够作为用于2个分量的中间计算缓冲器单元52和系数重新排列缓冲器单元53,则处理前进到步骤S145。在步骤S145中,编码方式选择单元516根据编码参数531确定是否处理能力优先。如果确定处理能力优先,则处理前进到步骤S146。如果在步骤S143中确定不是处理能力优先,则处理前进到步骤S146。
在步骤S146中,编码方式选择单元516选择应用参照图21说明的分配方法的编码方式B。即,在这种情况下,如图21所示,1个子CPU核442被分配给编码单元14中的所有处理。并且,中间计算缓冲器单元52形成在LS 451中,系数重新排列缓冲器单元53形成在作为共享存储器的XDR-RAM 403中。当步骤S146的处理完成时,编码方式选择处理完成,处理返回到图41的步骤S106,处理前进到步骤S107。
如果在图43的步骤S145中确定不是处理能力优先,则处理前进到步骤S147。在步骤S147中,编码方式选择单元516根据由资源信息取得单元512取得的资源信息,确定当前可用的子CPU核442的个数是否为1个。如果确定为1个,则处理返回到步骤S146。如果在步骤S147中确定存在多个可用的子CPU核442,则处理前进到步骤S148。在步骤S148中,编码方式选择单元516根据由资源信息取得单元512取得的资源信息,确定当前可用的子CPU核442的个数是否为2个。如果确定为2个,则处理前进到步骤S149。
在步骤S149中,编码方式选择单元516选择应用参照图22说明的分配方法的编码方式C。即,在这种情况下,如图22所示,以2个子CPU核442为一组,一个子CPU核442被分配给对图像数据Y进行编码的编码单元14中的所有处理,另一个子CPU核442被分配给对图像数据C进行编码的编码单元14的所有处理。并且,用于图像数据Y的小波变换的中间计算缓冲器单元52-1形成在对图像数据Y进行编码的子CPU核442的LS 451中,用于图像数据C的小波变换的中间计算缓冲器单元52-2形成在对图像数据C进行编码的子CPU核442的LS 451中。而且,保持从图像数据Y生成的系数数据的系数重新排列缓冲器单元53-1和保持从图像数据C生成的系数数据的系数重新排列缓冲器单元53-2都形成在作为共享存储器的XDR-RAM403中。当步骤S149的处理完成时,编码方式选择处理完成,处理返回到图41的步骤S106,处理前进到步骤S107。
如果在图43的步骤S141中确定LS 451的可用容量不足够作为用于2个分量的中间计算缓冲器单元52,则处理前进到步骤S150。在步骤S150中,根据由中间计算缓冲器使用量计算单元514计算的中间计算缓冲器使用量、以及由资源信息取得单元512确认的LS 451的可用容量,编码方式选择单元516确定LS 451的可用容量是否是作为用于1个分量的中间计算缓冲器单元52足够的容量。即,编码方式选择单元516确定LS 451的可用容量是否等于或大于每个分量的中间计算缓冲器使用量。如果确定足够,则处理前进到步骤S151。
在步骤S151中,编码方式选择单元516根据由资源信息取得单元512取得的资源信息,确定当前可用的子CPU核442的个数是否为1个。如果确定存在多个可用的子CPU核442,则处理前进到步骤S152。在步骤S152中,编码方式选择单元516根据由资源信息取得单元512取得的资源信息,确定当前可用的子CPU核442的个数是否为2个。如果确定为2个,则处理返回到步骤S149。
如果在步骤S152中确定当前可用的子CPU核442的个数为3个以上,则处理前进到步骤S153。在步骤S153中,编码方式选择单元516根据编码参数531确定是否处理能力优先。如果确定处理能力优先,则处理返回到步骤S149。
如果在步骤S153中确定不是处理能力优先,则处理前进到步骤S154。另外,如果在步骤S148中确定当前可用的子CPU核442的个数为3个以上,则处理前进到步骤S154。
在步骤S154中,编码方式选择单元516选择应用参照图24说明的分配方法的编码方式D。即,在这种情况下,如图24所示,以4个子CPU核442为一组,相互不同的子CPU核442被分配给对图像数据Y进行编码的编码单元14的小波变换单元51-1的处理、对图像数据Y进行编码的编码单元14的系数重新排列单元54-1和熵编码单元55-1的处理、对图像数据C进行编码的编码单元14的小波变换单元51-2的处理、以及对图像数据C进行编码的编码单元14的系数重新排列单元54-2和熵编码单元55-2的各处理。
并且,对图像数据Y进行编码的编码单元14的中间计算缓冲器单元52-1形成在被分配了小波变换单元51-1的处理的子CPU核442的LS 451中,对图像数据C进行编码的编码单元14的中间计算缓冲器单元52-2形成在被分配了小波变换单元51-2的处理的子CPU核442的LS 451中。
而且,对图像数据Y进行编码的编码单元14的系数重新排列缓冲器单元53-1和对图像数据C进行编码的编码单元14的系数重新排列缓冲器单元53-2都形成在作为共享存储器的XDR-RAM 403中。当步骤S154的处理完成时,编码方式选择处理完成,处理返回到图41的步骤S106,处理前进到步骤S107。
如果在图43的步骤S150中确定LS 451的可用容量不足够作为用于1个分量的中间计算缓冲器单元52,则处理前进到步骤S155。并且,如果在步骤S151中确定当前可用的子CPU核的个数是1个,则则处理前进到步骤S155。在这种情况下,由于预先准备的4个编码方式都不能选择(不能实施),因此在步骤S155中,编码方式选择单元516执行错误处理,例如向用户提供通知。当步骤S155的处理完成时,编码方式选择处理完成,处理返回到图41的步骤S106,处理前进到步骤S107。
如上所述,编码选择控制单元502可以根据图像数据541的大小信息、资源信息、编码参数等适当地执行硬件资源的分配,从而编码单元14在实际条件下可以更有效地操作。
顺便提及,该分配能够以任何单位执行。例如,该分配可以逐个分区地执行,或者可以逐个图片地执行。另外,尽管以上说明了预先准备4个分配方法,由编码方式选择单元516从其中选择一个,但可以准备任意个数的硬件资源分配方法。即,编码程序543的个数是任意的。并且,硬件资源的分配方法是任意的,可以是上述4个分配方法以外的方法。
另外,通过使用8个子CPU核442-1~子CPU核442-8中的任意的子CPU核442,可以组合使用上述编码方式A~编码方式D(以并行方式操作)。即,例如,编码选择控制单元502可以为各个分区或各个图片采用相互不同的编码方式,并且改变分配硬件资源的方式。这样,编码选择控制单元502能够以更有效地利用硬件资源的方式向编码单元14中的各个处理分配硬件资源,从而使编码单元14能够更有效地操作。
接着参照图44的流程图说明由解码选择控制单元503执行的解码选择控制处理的流程例子。解码选择控制处理是为了在执行解码处理时从子CPU核442-1~子CPU核442-8的分配方式彼此不同的多个解码程序544中选择一个而执行的处理。例如,当用户指示执行解码处理时,解码选择控制单元503开始解码选择控制处理。
当开始了解码选择控制处理时,在步骤S201中,大小信息取得单元521取得针对保持在XDR-RAM 403中的作为处理对象的编码数据542的大小信息。在步骤S202中,资源信息取得单元522经由OS501取得作为与可用的硬件资源有关的信息的资源信息。
在步骤S203中,系数缓冲器使用量计算单元523使用小波变换关系表533等计算表示系数缓冲器单元62需要的容量的系数缓冲器使用量。
在步骤S204中,解码方式选择单元524根据大小信息、资源信息、所计算的系数缓冲器使用量等各种信息,选择解码方式。解码方式选择处理的详情将后述。
当选择了解码方式时,在步骤S205中,分配单元525按照所选择的解码程序544的分配方法,向各处理分配子CPU核442-1~子CPU核442-8。
当完成了步骤S205中的处理时,结束解码选择控制处理。
接着,参照图45的流程图说明在图44的步骤S204中执行的解码方式选择处理的流程例子。
在步骤S221中,根据由系数缓冲器使用量计算单元523计算的系数缓冲器使用量和由资源信息取得单元522确认的LS 451的可用容量,解码方式选择单元524确定LS 451的可用容量是否是作为系数缓冲器单元62足够的容量。即,解码方式选择单元524确定LS 451的可用容量是否等于或大于每个分量的系数缓冲器使用量。如果确定足够,则处理前进到步骤S222。
在步骤S222中,解码方式选择单元524根据解码参数532确定在解码处理中是否处理能力优先。如果确定处理能力优先,则处理前进到步骤S223。
在步骤S223中,根据由系数缓冲器使用量计算单元523计算的系数缓冲器使用量和由资源信息取得单元522确认的LS 451的可用容量,解码方式选择单元524确定LS 451的可用容量是否是作为用于2个分量的系数缓冲器单元62足够的容量。即,解码方式选择单元524确定LS 451的可用容量是否等于或大于2个分量的各自的系数缓冲器使用量之和。如果确定足够,则处理前进到步骤S224。
在步骤S224中,解码方式选择单元524选择应用参照图26说明的分配方法的解码方式A。即,在这种情况下,如图26所示,1个子CPU核442被分配给解码单元36的所有处理。并且,系数缓冲器单元62形成在LS 451中。当步骤S224的处理完成时,解码方式选择处理完成,处理返回到图44的步骤S204,处理前进到步骤S205。
如果在图45的步骤S222中确定在解码处理中不是处理能力优先,则处理前进到步骤S225。在步骤S225中,解码方式选择单元524根据由资源信息取得单元522取得的资源信息,确定当前可用的子CPU核442的个数是否为1个。如果确定为1个,则处理返回到步骤S223,重复后续的处理。如果在步骤S225中确定存在多个可用的子CPU核442,则处理前进到步骤S226。
在步骤S226中,解码方式选择单元524根据由资源信息取得单元522取得的资源信息,确定当前可用的子CPU核442的个数是否为2个。如果确定为2个,则处理前进到步骤S227。并且,如果在步骤S223中确定LS 451的可用容量不足够作为用于2个分量的系数缓冲器单元62,则处理前进到步骤S227。
在步骤S227中,解码方式选择单元524选择应用参照图28说明的分配方法的解码方式B。即,在这种情况下,如图28所示,以2个子CPU核442为一组,一个子CPU核442被分配给对编码数据Y进行解码的解码单元36中的所有处理,另一个子CPU核442被分配给对编码数据C进行解码的解码单元36中的所有处理。并且,对编码数据Y进行解码的解码单元36的系数缓冲器单元62-1形成在被分配了对编码数据Y进行解码的解码单元36的子CPU核442的LS 451中,对编码数据C进行解码的解码单元36的系数缓冲器单元62-2形成在被分配了对编码数据C进行解码的解码单元36的子CPU核442的LS 451中。当步骤S227的处理完成时,解码方式选择处理完成,处理返回到图44的步骤S204,处理前进到步骤S205。
如果在图45的步骤S226中确定当前可用的子CPU核442的个数为3个以上,则处理前进到步骤S228。
在步骤S228中,解码方式选择单元524选择应用参照图30说明的分配方法的解码方式C。即,在这种情况下,如图30所示,以4个子CPU核442为一组,相互不同的子CPU核442被分配给对编码数据Y进行解码的解码单元36的熵解码单元61-1的处理、对编码数据Y进行解码的解码单元36的小波逆变换单元63-1的处理、对编码数据C进行解码的解码单元36的熵解码单元61-2的处理、对编码数据C进行解码的解码单元36的小波逆变换单元63-2的处理。
并且,对编码数据Y进行解码的解码单元36的系数缓冲器单元62-1形成在被分配了小波逆变换单元63-1的处理的子CPU核442的LS 451中,对编码数据C进行解码的解码单元36的系数缓冲器单元62-2形成在被分配了小波逆变换单元63-2的处理的子CPU核442的LS 451中。
当步骤S228的处理完成时,解码方式选择处理完成,处理返回到图44的步骤S204,处理前进到步骤S205。
如果在图45的步骤S221中确定LS 451的可用容量不足够作为系数缓冲器单元62,则处理前进到步骤S229。在这种情况下,由于预先准备的3个解码方式都不能选择(不能实施),因此在步骤S229中,解码方式选择单元524执行错误处理,例如向用户提供通知。当步骤S229的处理完成时,解码方式选择处理完成,处理返回到图44的步骤S204,处理前进到步骤S205。
如上所述,解码选择控制单元503可以根据编码数据542的大小信息、资源信息或解码参数532等适当地执行硬件资源的分配,从而解码单元36在实际条件下可以更有效地操作。
顺便提及,该分配能够以任何单位执行。例如,该分配可以逐个分区地执行,或者可以逐个图片地执行。另外,尽管以上说明了预先准备3个分配方法,由解码方式选择单元524从其中选择一个,但可以准备任意个数的硬件资源分配方法。即,解码程序544的个数是任意的。并且,硬件资源的分配方法是任意的,可以是上述3个分配方法以外的方法。
另外,通过使用8个子CPU核442-1~子CPU核442-8中的任意的子CPU核442,可以组合使用上述解码方式A~解码方式C(以并行方式操作)。即,例如,解码选择控制单元503可以为各个分区或各个图片采用相互不同的解码方式,并且改变分配硬件资源的方式。这样,解码选择控制单元503能够以更有效地利用硬件资源的方式向解码单元36的各个处理分配硬件资源,从而使解码单元36能够更有效地操作。
以下说明分配的具体例子。
作为第1个例子,假定要编码的图像数据541的图像大小为1920像素×1080像素,数据结构是由亮度分量Y和色度分量C构成的分量Y/C,位深度为12位,用于小波变换的滤波器是5×3滤波器,小波变换的分解级别为4,并且没有进行精度优先的设定。另外,假定当前可用的子CPU核442的个数为4个以上,每个子CPU核442的LS 451的容量为256[K字节]。
而且,对于编码参数531,将不可逆编码和时延优先设定为编码条件。另外,对于解码参数532,将时延优先设定为解码条件。
在这种情况下,计算精度选择单元513如图42所示的流程图那样,执行计算精度选择处理,并且根据5×3滤波器、可逆编码、无精度优先设定和13以下的位深度的条件,选择16位固定小数点型。而且,使用小波变换关系表533,中间计算缓冲器使用量计算单元514根据5×3滤波器和分解数为4的条件,将“7.5”设定为关系指数,并且通过使输入图像的水平大小(1920像素)、计算精度(16位)和关系指数(7.5)相乘,计算中间计算缓冲器使用量。
另外,通过使用系数重新排列关系表534,系数重新排列缓冲器使用量计算单元515根据5×3滤波器和分解数为4的条件,将“42.25”设定为关系指数,并且通过使输入图像的水平大小(1920像素)、单位大小和关系指数(42.25)相乘,计算系数重新排列缓冲器使用量。
根据上述计算结果和资源信息等,编码方式选择单元516如图43所示的流程图那样,执行编码方式选择处理。由于LS 451的可用容量足够作为用于2个分量的中间计算缓冲器单元52,但不够作为用于2个分量的中间计算缓冲器单元52和系数重新排列缓冲器单元53,并且优先项目是时延,可用子CPU核442的个数为4个,因此,编码方式选择单元516选择如图24所示执行分配的编码方式D。
通过这样的分配,编码单元14能够如图25所示继续进行编码处理。即,通过这样的分配,编码单元14能够以低的延迟来执行编码处理。
在该条件下分配解码单元36的情况下,解码方式选择单元524如图45所示的流程图那样,执行解码方式选择处理。由于LS 451的可用容量足够作为系数缓冲器单元62,并且优先项目是时延,可用子CPU核442的个数为4个,因此,解码方式选择单元524选择如图30所示执行分配的解码方式C。
通过这样的分配,解码单元36能够如图31所示继续进行解码处理。即,通过这样的分配,解码单元36能够以低的延迟来执行解码处理。
例如,在电视会议系统等要求实时地执行数据交换的系统中,要求以低的延迟来执行编码处理或解码处理。即使将这样的情况下,编码选择控制单元502和解码选择控制单元503也能够适当地分配硬件资源,从而编码单元14和解码单元36能够以低的延迟执行处理。
作为第2个例子,假定要编码的图像数据541的图像大小为1280像素×720像素,数据结构是由亮度分量Y和色度分量C构成的分量Y/C,位深度为12位,用于小波变换的滤波器是9×7滤波器,小波变换的分解级别为4。另外,假定当前可用的子CPU核442的个数为4个以上,每个子CPU核442的LS 451的容量为256[K字节]。
而且,对于编码参数531,将处理能力优先设定为编码条件。另外,对于解码参数532,将处理能力优先设定为解码条件。
在这种情况下,计算精度选择单元513如图42所示的流程图那样,执行计算精度选择处理,并且根据9×7滤波器的条件,选择32位浮动小数点型。而且,使用小波变换关系表533,中间计算缓冲器使用量计算单元514根据9×7滤波器和分解数为4的条件,将“11.25”设定为关系指数,并且通过使输入图像的水平大小(1280像素)、计算精度(32位)和关系指数(11.25)相乘,计算中间计算缓冲器使用量。
另外,通过使用系数重新排列关系表534,系数重新排列缓冲器使用量计算单元515根据9×7滤波器和分解数为4的条件,将“94.75”设定为关系指数,并且通过使输入图像的水平大小(1280像素)、单位大小和关系指数(94.75)相乘,计算系数重新排列缓冲器使用量。
根据上述计算结果和资源信息等,编码方式选择单元516如图43所示的流程图那样,执行编码方式选择处理。由于LS 451的可用容量足够作为用于2个分量的中间计算缓冲器单元52,但不够作为用于2个分量的中间计算缓冲器单元52和系数重新排列缓冲器单元53,并且优先项目是处理能力,因此,编码方式选择单元516选择如图21所示执行分配的编码方式B。
通过这样的分配,编码单元14能够如图20所示继续进行编码处理。即,通过这样的分配,编码单元14能够以高的处理能力来执行编码处理。
在该条件下分配解码单元36的情况下,解码方式选择单元524如图45所示的流程图那样,执行解码方式选择处理。由于LS 451的可用容量足够作为系数缓冲器单元62,优先项目是处理能力,并且LS 451的可用容量还足够作为用于2个分量的系数缓冲器单元62,因此,解码方式选择单元524选择如图26所示执行分配的解码方式A。
通过这样的分配,解码单元36能够如图27所示继续进行解码处理。即,通过这样的分配,解码单元36能够以高的处理能力来执行解码处理。
例如,存在如下情况:如在处理具有高的帧速率的图像数据的系统中,要求以高的速度(高的处理能力)来执行编码处理或解码处理。即使在这样的情况下,编码选择控制单元502和解码选择控制单元503也能够适当地分配硬件资源,从而编码单元14和解码单元36能够以高的处理能力执行处理。
作为第3个例子,假定要编码的图像数据541的图像大小为4096像素×2160像素,数据结构是由亮度分量Y和色度分量C构成的分量Y/C,位深度为12位,用于小波变换的滤波器是9×7滤波器,小波变换的分解级别为4。另外,假定当前可用的子CPU核442的个数为4个以上,每个子CPU核442的LS 451的容量为256[K字节]。
而且,对于编码参数531,将处理能力优先设定为编码条件。另外,对于解码参数532,将处理能力优先设定为解码条件。
在这种情况下,计算精度选择单元513如图42所示的流程图那样,执行计算精度选择处理,并且根据9×7滤波器的条件,选择32位浮动小数点型。而且,使用小波变换关系表533,中间计算缓冲器使用量计算单元514根据9×7滤波器和分解数为4的条件,将“11.25”设定为关系指数,并且通过使输入图像的水平大小(1280像素)、计算精度(32位)和关系指数(11.25)相乘,计算中间计算缓冲器使用量。
另外,通过使用系数重新排列关系表534,系数重新排列缓冲器使用量计算单元515根据9×7滤波器和分解数为4的条件,将“94.75”设定为关系指数,并且通过使输入图像的水平大小(1280像素)、单位大小和关系指数(94.75)相乘,计算系数重新排列缓冲器使用量。
根据上述计算结果和资源信息等,编码方式选择单元516如图43所示的流程图那样,执行编码方式选择处理。由于LS 451的可用容量不够作为用于2个分量的中间计算缓冲器单元52,但足够作为用于1个分量的中间计算缓冲器单元52,并且可用子CPU核442的个数为4个,优先项目是处理能力,因此,编码方式选择单元516选择如图22所示执行分配的编码方式C。
通过这样的分配,编码单元14能够如图23所示继续进行编码处理。即,通过这样的分配,编码单元14能够以高于编码方式D的处理能力和低于编码方式B的延迟来执行编码处理。
在该条件下分配解码单元36的情况下,解码方式选择单元524如图45所示的流程图那样,执行解码方式选择处理。由于LS 451的可用容量足够作为系数缓冲器单元62,优先项目是处理能力,LS 451的可用容量不够作为用于2个分量的系数缓冲器单元62,并且可用的子CPU核442的个数为4个,因此,解码方式选择单元524选择如图28所示执行分配的解码方式B。
通过这样的分配,解码单元36能够如图29所示继续进行解码处理。即,通过这样的分配,解码单元36能够以高于解码方式C的处理能力和低于解码方式A的延迟来执行解码处理。
例如,存在如下情况:如在处理具有高清晰度视频的图像数据的系统中,尽管要求以高的速度(高的处理能力)来执行编码处理或解码处理,但图像数据的数据量很大。在这样的情况下,如果为了提高处理能力而由一个子CPU核442执行编码处理和解码处理,则LS 451的容量可能变得不足,从而导致不希望的延迟增加。因此,编码选择控制单元502和解码选择控制单元503能够以如下方式适当地分配硬件资源:编码单元14和解码单元36不会由于缓冲器溢出的发生等而导致延迟时间不希望地增加,并且使处理能力尽可能地提高。
在图3的编码单元14和图12的解码单元36中,如上所述,在编码单元14中执行了重新排列小波变换系数的处理后,将编码数据发送给解码单元36。但是,在编码单元14中可以跳过重新排列小波变换系数的处理,而在将编码数据发送到解码单元36后在解码单元36中执行重新排列小波变换系数的处理。即,可以如图46所示,在编码单元14中执行了重新排列小波变换系数的处理后,将编码数据发送给解码单元36,或者可以如图47所示,在将编码数据发送到解码单元36后,在解码单元36中执行重新排列小波变换系数的处理。
在这种情况下,如图48所示,解码单元36需要包括系数重新排列单元65。图48是示出解码单元36的另一实施方式的框图。
在图48中,与图12的解码单元36同样,解码单元36包括熵解码单元61、系数缓冲器单元62和小波逆变换单元63,另外还包括系数重新排列单元65。
系数重新排列单元65执行作为熵解码单元61的解码结果得到的小波变换系数的重新排列,即,系数重新排列单元65执行与图2中的系数重新排列单元54同样的小波变换系数重新排列,并将它们提供给小波逆变换单元63以存储在其中。
编码单元14和解码单元36中的哪个执行小波变换系数的重新排列可以根据各个设备的资源而适当地确定。
而且,在编码单元14中,在熵编码单元55中执行小波变换系数的量化。但是,例如可以设置量化单元,该量化单元对由小波变换单元51输出的小波变换系数进行量化,并将它们存储到系数重新排列缓冲器单元53中。
图49是示出编码单元14的另一实施方式的框图。
在图49中,编码单元14包括量化单元56,构成编码单元14的其它块与图3中的编码单元14相同。
量化单元56对由小波变换单元51输出的小波变换系数进行量化,并将它们存储到系数重新排列缓冲器单元53中。这样,通过与熵编码单元55分离地设置量化单元56,能够以最佳地执行各种处理或者使延迟时间变少的方式执行预定的CPU或存储器的分配。
量化单元56可以设置在系数重新排列单元54和熵编码单元55中。这种情况下,由系数重新排列单元54输出的小波变换系数被量化,并被提供给熵编码单元55。
接着,图50是示出解码单元36的另一实施方式的框图。
在图50中,解码单元36包括反量化单元66,构成解码单元36的其它块与图48中的解码单元36相同。
反量化单元66对由系数重新排列单元65输出的小波变换系数进行量化,并将它们提供给小波逆变换单元63。通过设置反量化单元66,与设置量化单元56的情况同样,能够以最佳地执行各种处理或者使延迟时间变少的方式执行预定的CPU或存储器的分配。
反量化单元66可以设置在熵解码单元61和系数缓冲器单元62中。这种情况下,反量化单元66执行由熵解码单元61输出的系数数据的反量化,并将其存储到系数缓冲器单元62中。
上述一系列的处理可以通过硬件来执行,或者可以通过软件来执行。
例如,如图19所示,编码单元14可以由执行小波变换单元51、系数重新排列单元54和熵编码单元55的各处理的一个处理单元、以及形成有中间计算缓冲器单元52和系数重新排列缓冲器单元53的一个存储单元构成。
同样,如图21所示,编码单元14可以由执行小波变换单元51、系数重新排列单元54和熵编码单元55的各处理的一个处理单元、形成有中间计算缓冲器单元52并且允许高速读写的第1存储单元、以及形成有系数重新排列缓冲器单元53的大容量的第2存储单元构成。
同样,如图22所示,编码单元14可以由执行小波变换单元51-1、系数重新排列单元54-1和熵编码单元55-1的各处理的第1处理单元、形成有中间计算缓冲器单元52-1并且允许高速读写的第1存储单元、执行小波变换单元51-2、系数重新排列单元54-2和熵编码单元55-2的各处理的第2处理单元、形成有中间计算缓冲器单元52-2并且允许高速读写的第2存储单元、以及形成有系数重新排列缓冲器单元53-1和系数重新排列缓冲器单元53-2的大容量的第3存储单元构成。
同样,如图24所示,编码单元14可以由执行小波变换单元51-1的处理的第1处理单元、形成有中间计算缓冲器单元52-1并且允许高速读写的第1存储单元、执行系数重新排列单元54-1和熵编码单元55-1的各处理的第2处理单元、执行小波变换单元51-2的处理的第3处理单元、形成有中间计算缓冲器单元52-2并且允许高速读写的第2存储单元、执行系数重新排列单元54-2和熵编码单元55-2的各处理的第4处理单元、以及形成有系数重新排列缓冲器单元53-1和系数重新排列缓冲器单元53-2的大容量的第3存储单元构成。
同样,如图26所示,解码单元36可以由执行熵解码单元61和小波逆变换单元63的各处理的一个处理单元、以及形成有系数缓冲器单元62的存储单元构成。
同样,如图28所示,解码单元36可以由执行熵解码单元61-1和小波逆变换单元63-1的各处理的第1处理单元、形成有系数缓冲器单元62-1的第1存储单元、执行熵解码单元61-2和小波逆变换单元63-2的各处理的第2处理单元、以及形成有系数缓冲器单元62-2的第2存储单元构成。
同样,如图30所示,解码单元36可以由执行熵解码单元61-1的处理的第1处理单元、执行小波逆变换单元63-1的处理的第2处理单元、形成有系数缓冲器单元62-1的第1存储单元、执行熵解码单元61-2的处理的第3处理单元、执行小波逆变换单元63-2的处理的第4处理单元、以及形成有系数缓冲器单元62-2的第2存储单元构成。
在编码单元14或解码单元36如上所述由硬件构成的情况下,可以得到与如上所述将软件程序分配给硬件的情况相同的效果。
在通过软件执行一系列处理的情况下,将构成软件的程序从程序记录介质安装到嵌入专用硬件中的计算机、或者例如能够在安装了各种程序时执行各种功能的通用计算机、或者由多个设备构成的信息处理系统的信息处理设备等。
例如图18或图36所示,该记录介质不仅由存储了程序并且与设备主体分离地交付以向用户分发程序的可装卸介质131或可装卸介质311构成,而且由以预先嵌入到设备主体中的状态分发给用户的、记录了程序的ROM 102、包括在存储单元123或存储设备303中的硬盘或HDD 405等构成,其中,上述可装卸介质131或可装卸介质311例如为磁盘(包括软盘)、光盘(包括CD-ROM(Compact Disk-ReadOnly Memory,光盘只读存储器)或DVD(Digital Versatile Disk,数字通用盘))、光磁盘(包括MD(Mini-Disk,迷你盘)(注册商标))或半导体存储器。
顺便提及,在本说明书中,描述记录在记录介质上的程序步骤当然既包括按上述顺序并按时间序列执行的处理,也包括不一定按时间序列执行而是以并行方式或者独立地执行的处理。
另外,在本说明书中,系统表示由多个设备构成的整个设备。
以上作为一个设备说明的部件可以分割并构成为多个设备。相反,以上作为多个设备说明的部件可以组合并构成为一个设备。并且,上述以外的结构当然可以追加到各个设备的结构中。并且,只要系统整体的结构或操作基本上相同,则可以将给定设备的结构的一部分包括到另一设备的结构中。
即,本发明的实施方式不限于上述实施方式,在不脱离本发明的范围的情况下,可以进行各种改变。

Claims (12)

1.一种编码设备,执行图像数据的编码处理以生成编码流,包括:
识别信息生成单元,用于生成程序识别信息,其中所述程序识别信息识别从分配模式或配置模式相互不同的多个解码程序中选择哪个解码程序,其中,所述分配模式是将构成解码处理的多个处理分配给多个处理单元的分配模式,所述配置模式是由多个处理使用的存储器的配置模式;
编码单元,用于执行图像数据的编码处理,以生成编码流;和
传送单元,用于将由识别信息生成单元生成的程序识别信息与由编码单元生成的编码流一起传送,
其中,所述识别信息生成单元还生成表示将低延迟优先控制和处理能力优先控制中的哪一个选择作为用于编码处理的控制方法的控制识别信息,其中,所述低延迟优先控制使以低延迟来执行编码优先,所述处理能力优先控制使以高处理能力来执行编码优先;并且
传送单元还将由识别信息生成单元生成的控制识别信息与编码流一起传送。
2.如权利要求1所述的编码设备,其中,
传送单元将由识别信息生成单元生成的程序识别信息插入到编码流中。
3.如权利要求2所述的编码设备,其中,
传送单元将由识别信息生成单元生成的程序识别信息插入到编码流的标题中。
4.如权利要求3所述的编码设备,其中,
传送单元将由识别信息生成单元生成的程序识别信息插入到被插入到编码流的标题中的序列标题或图片标题中。
5.如权利要求1所述的编码设备,其中,
传送单元将由识别信息生成单元生成的程序识别信息以及编码流记录到记录介质上。
6.如权利要求1所述的编码设备,其中,
构成编码处理的多个处理包括:
滤波处理,对于图像数据,针对每个分区执行滤波处理,生成由针对每个频带分解的系数数据构成的多个子带,其中每个分区包括相当于生成相当于最低频分量的子带的至少1行的系数数据所需的行数的图像数据;
存储处理,针对每个分区存储通过滤波处理生成的系数数据;
系数重新排列处理,按照执行合成处理的顺序对通过存储处理存储的系数数据进行重新排列,其中在所述合成处理中,被分解为频带的多个子带的系数数据被合成以生成图像数据;和
编码处理,对通过系数重新排列处理而重新排列的系数数据进行编码。
7.如权利要求1所述的编码设备,其中,
构成编码处理的多个处理包括:
滤波处理,对于图像数据,针对每个分区执行滤波处理,生成由针对每个频带分解的系数数据构成的多个子带,其中每个分区包括相当于生成相当于最低频分量的子带的至少1行的系数数据所需的行数的图像数据;
存储处理,针对每个分区存储通过滤波处理生成的系数数据;和
编码处理,对通过存储单元存储的系数数据进行编码。
8.如权利要求6所述的编码设备,其中,
识别信息生成单元生成识别在滤波处理单元中使用的滤波器的滤波器信息;
传送单元将由识别信息生成单元生成的滤波器信息与编码流一起传送。
9.如权利要求8所述的编码设备,其中,
识别信息生成单元生成表示滤波处理的精度是固定小数点精度、浮动小数点精度、还是整数精度的滤波处理精度信息;
传送单元将由识别信息生成单元生成的滤波处理精度信息与编码流一起传送。
10.一种编码方法,执行图像数据的编码处理以生成编码流,包括以下步骤:
生成程序识别信息,其中所述程序识别信息识别从分配模式或配置模式相互不同的多个解码程序中选择哪个解码程序,其中,所述分配模式是将构成解码处理的多个处理分配给多个处理单元的分配模式,所述配置模式是由多个处理使用的存储器的配置模式;
执行图像数据的编码处理,以生成编码流;以及
将程序识别信息与编码流一起传送,
所述编码方法还包括:
生成表示将低延迟优先控制和处理能力优先控制中的哪一个选择作为用于编码处理的控制方法的控制识别信息,其中,所述低延迟优先控制使以低延迟来执行编码优先,所述处理能力优先控制使以高处理能力来执行编码优先;和
将所生成的控制识别信息与编码流一起传送。
11.一种解码设备,执行通过执行图像数据的编码处理而得到的编码流的解码处理,包括:
取得单元,与编码流一起取得程序识别信息和表示将低延迟优先控制和处理能力优先控制中的哪一个选择作为用于编码处理的控制方法的控制识别信息,其中所述程序识别信息识别从分配模式或配置模式相互不同的多个解码程序中选择哪个解码程序,其中,所述分配模式是将构成解码处理的多个处理分配给多个处理单元的分配模式,所述配置模式是由多个处理使用的存储器的配置模式,所述低延迟优先控制使以低延迟来执行编码优先,所述处理能力优先控制使以高处理能力来执行编码优先;
解码单元,用于执行由取得单元取得的编码流的解码处理;和
控制单元,用于控制解码单元,以按照由取得单元取得的程序识别信息和控制识别信息所表示的处理方式,执行解码处理。
12.一种解码方法,执行通过执行图像数据的编码处理而得到的编码流的解码处理,包括以下步骤:
与编码流一起取得程序识别信息和表示将低延迟优先控制和处理能力优先控制中的哪一个选择作为用于编码处理的控制方法的控制识别信息,其中所述程序识别信息识别从分配模式或配置模式相互不同的多个解码程序中选择哪个解码程序,其中,所述分配模式是将构成解码处理的多个处理分配给多个处理单元的分配模式,所述配置模式是由多个处理使用的存储器的配置模式,所述低延迟优先控制使以低延迟来执行编码优先,所述处理能力优先控制使以高处理能力来执行编码优先;
执行编码流的解码处理;以及
执行控制,以使解码处理按照程序识别信息和控制识别信息所表示的处理方式来执行。
CN201110179213.1A 2007-05-17 2008-05-16 编码设备和编码方法以及解码设备和解码方法 Expired - Fee Related CN102263950B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2007-132156 2007-05-17
JP2007132156 2007-05-17

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2008800011278A Division CN101569170B (zh) 2007-05-17 2008-05-16 编码设备和编码方法以及解码设备和解码方法

Publications (2)

Publication Number Publication Date
CN102263950A CN102263950A (zh) 2011-11-30
CN102263950B true CN102263950B (zh) 2014-10-01

Family

ID=40031859

Family Applications (4)

Application Number Title Priority Date Filing Date
CN2008800011278A Expired - Fee Related CN101569170B (zh) 2007-05-17 2008-05-16 编码设备和编码方法以及解码设备和解码方法
CN2008800004518A Expired - Fee Related CN101543038B (zh) 2007-05-17 2008-05-16 信息处理装置和方法
CN201110179213.1A Expired - Fee Related CN102263950B (zh) 2007-05-17 2008-05-16 编码设备和编码方法以及解码设备和解码方法
CN2008800004503A Expired - Fee Related CN101543037B (zh) 2007-05-17 2008-05-16 信息处理设备和方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN2008800011278A Expired - Fee Related CN101569170B (zh) 2007-05-17 2008-05-16 编码设备和编码方法以及解码设备和解码方法
CN2008800004518A Expired - Fee Related CN101543038B (zh) 2007-05-17 2008-05-16 信息处理装置和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2008800004503A Expired - Fee Related CN101543037B (zh) 2007-05-17 2008-05-16 信息处理设备和方法

Country Status (4)

Country Link
US (2) US8503809B2 (zh)
JP (1) JP5152598B2 (zh)
CN (4) CN101569170B (zh)
WO (2) WO2008143156A1 (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8411734B2 (en) 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
JP4793320B2 (ja) * 2007-05-17 2011-10-12 ソニー株式会社 情報処理装置および方法
CN101569170B (zh) * 2007-05-17 2011-11-16 索尼株式会社 编码设备和编码方法以及解码设备和解码方法
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
JP2011071649A (ja) * 2009-09-24 2011-04-07 Sony Corp 画像処理装置および方法
JP5263621B2 (ja) * 2009-09-24 2013-08-14 ソニー株式会社 画像処理装置および方法
CN102118537B (zh) * 2009-12-31 2015-04-15 深圳富泰宏精密工业有限公司 图片错误隐藏系统及方法
WO2011098664A1 (en) 2010-02-11 2011-08-18 Nokia Corporation Method and apparatus for providing multi-threaded video decoding
CN101894255B (zh) * 2010-06-13 2012-04-25 电子科技大学 一种基于小波变换的集装箱号码定位方法
US8885729B2 (en) 2010-12-13 2014-11-11 Microsoft Corporation Low-latency video decoding
US9706214B2 (en) 2010-12-24 2017-07-11 Microsoft Technology Licensing, Llc Image and video decoding implementations
JP5850214B2 (ja) * 2011-01-11 2016-02-03 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
BR112013033552B1 (pt) 2011-06-30 2022-02-22 Microsoft Technology Licensing, Llc Método em um sistema de computador que implementa um decodificador de vídeo, método em um sistema de computação, meio legível por computador e sistema de computação
US8731067B2 (en) 2011-08-31 2014-05-20 Microsoft Corporation Memory management for video decoding
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
KR101859369B1 (ko) 2012-04-16 2018-06-27 삼성전자주식회사 데이터 프로세싱 방법 및 이를 이용한 데이터 프로세싱 유닛
US9286648B2 (en) * 2012-08-03 2016-03-15 Nadar Mariappan S Zero communication block partitioning
US20140072027A1 (en) * 2012-09-12 2014-03-13 Ati Technologies Ulc System for video compression
US9665572B2 (en) * 2012-09-12 2017-05-30 Oracle International Corporation Optimal data representation and auxiliary structures for in-memory database query processing
US9979960B2 (en) 2012-10-01 2018-05-22 Microsoft Technology Licensing, Llc Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions
US9661340B2 (en) * 2012-10-22 2017-05-23 Microsoft Technology Licensing, Llc Band separation filtering / inverse filtering for frame packing / unpacking higher resolution chroma sampling formats
US9330053B1 (en) * 2013-07-24 2016-05-03 Sprint Communications Company L.P. True push architecture for internet protocol notification
RU2013137742A (ru) * 2013-08-12 2015-02-20 ЭлЭсАй Корпорейшн Сжатие и восстановление изображений с глубиной с использованием данных о глубине и амплитуде
FR3022064A1 (fr) * 2014-06-04 2015-12-11 I Ces Innovative Compression Engineering Solutions Precision adaptative et quantification d'une matrice transformee par ondelettes
WO2016002577A1 (ja) 2014-07-03 2016-01-07 ソニー株式会社 画像処理装置および方法
US10373092B2 (en) * 2015-09-08 2019-08-06 Oracle International Corporation System and method for providing a tradeoff between time and quality for a task
US9584620B1 (en) * 2015-12-31 2017-02-28 International Business Machines Corporation Caching in storage clients
CN107888322B (zh) * 2016-09-30 2020-09-11 扬智科技股份有限公司 以太网络物理层的解码方法与以太物理层电路
US10368080B2 (en) 2016-10-21 2019-07-30 Microsoft Technology Licensing, Llc Selective upsampling or refresh of chroma sample values
CN106717000A (zh) * 2016-12-12 2017-05-24 深圳市大疆创新科技有限公司 图像信号处理方法和装置
KR20210004702A (ko) * 2019-07-05 2021-01-13 삼성전자주식회사 Ai 프로세서 및 이의 신경망 연산 수행 방법
CN111314778B (zh) * 2020-03-02 2021-09-07 北京小鸟科技股份有限公司 基于多种压缩制式的编解码融合处理方法、系统及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6917384B1 (en) * 1999-06-14 2005-07-12 Canon Kabushiki Kaisha Image sensing apparatus, method and recording medium storing program for method of setting plural photographic modes and variable specific region of image sensing, and providing mode specific compression of image data in the specific region

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5229936A (en) * 1991-01-04 1993-07-20 Franklin Electronic Publishers, Incorporated Device and method for the storage and retrieval of inflection information for electronic reference products
US5389922A (en) * 1993-04-13 1995-02-14 Hewlett-Packard Company Compression using small dictionaries with applications to network packets
GB2295936B (en) * 1994-12-05 1997-02-05 Microsoft Corp Progressive image transmission using discrete wavelet transforms
JP3213222B2 (ja) * 1995-11-02 2001-10-02 株式会社リコー 符号化方法
JP3213582B2 (ja) * 1997-05-29 2001-10-02 シャープ株式会社 画像符号化装置及び画像復号装置
US6707948B1 (en) * 1997-11-17 2004-03-16 The Regents Of The University Of California Image compression for memory-constrained decoders
JP2000184204A (ja) * 1998-12-11 2000-06-30 Canon Inc 画像処理装置及び方法及び記憶媒体
CN100394692C (zh) * 1999-04-15 2008-06-11 株式会社理光 数据高速压缩伸展方法及其装置
JP2001275112A (ja) 2000-01-19 2001-10-05 Oki Electric Ind Co Ltd データ圧縮装置
JP3906630B2 (ja) * 2000-08-08 2007-04-18 ソニー株式会社 画像符号化装置及び方法並びに画像復号装置及び方法
EP1655970A2 (en) * 2000-09-19 2006-05-10 Matsushita Electric Industrial Co., Ltd. Image signal transmitter
KR100366382B1 (ko) * 2001-02-12 2002-12-31 (주) 멀티비아 동영상 부호화 장치 및 방법
US6757429B2 (en) * 2001-02-21 2004-06-29 Boly Media Communications Inc. Method of compressing digital images
JP4267848B2 (ja) 2001-09-25 2009-05-27 株式会社リコー 画像符号化装置、画像復号装置、画像符号化方法、及び、画像復号方法
JP2003116133A (ja) 2001-10-09 2003-04-18 Kddi Corp 動画像圧縮符号化伝送品質制御方式および方法
JP2003274185A (ja) * 2002-03-19 2003-09-26 Sanyo Electric Co Ltd 画像処理方法とその方法を利用可能な画像符号化装置
JP3988990B2 (ja) * 2002-08-27 2007-10-10 株式会社リコー 符号変換装置、符号変換方法、プログラム及び記録媒体
JP4045913B2 (ja) * 2002-09-27 2008-02-13 三菱電機株式会社 画像符号化装置、画像符号化方法、および画像処理装置
JP2004166096A (ja) * 2002-11-15 2004-06-10 Ricoh Co Ltd 画像送信装置、画像受信装置、ネットワークシステム、プログラム、記憶媒体、画像送信方法及び画像受信方法
JP3952459B2 (ja) * 2002-11-15 2007-08-01 株式会社リコー 画像処理装置、プログラム、記憶媒体及び画像処理方法
JP2004214828A (ja) * 2002-12-27 2004-07-29 Ricoh Co Ltd 画像処理装置、画像処理方法、画像処理用コンピュータプログラム、及びこの画像処理用コンピュータプログラムを記憶する記憶媒体
US7623719B2 (en) * 2003-09-26 2009-11-24 The Regents Of The University Of California Video encoding methods and devices
JP4194472B2 (ja) 2003-11-04 2008-12-10 キヤノン株式会社 画像処理方法及び装置
JP4665898B2 (ja) * 2004-02-23 2011-04-06 日本電気株式会社 2次元信号の符号化/復号方法および装置
JP2005303854A (ja) 2004-04-15 2005-10-27 Nec Engineering Ltd 画像データ転送システムおよびその転送方法
WO2006013690A1 (ja) * 2004-08-04 2006-02-09 Matsushita Electric Industrial Co., Ltd. 画像復号装置
US7970049B2 (en) * 2005-01-05 2011-06-28 Creative Technology Ltd Method and apparatus for encoding video in conjunction with a host processor
TW200746655A (en) 2005-11-18 2007-12-16 Sony Corp Encoding device and method, decoding device and method, and transmission system
US20080126278A1 (en) * 2006-11-29 2008-05-29 Alexander Bronstein Parallel processing motion estimation for H.264 video codec
JP4517306B2 (ja) * 2007-05-17 2010-08-04 ソニー株式会社 情報処理装置および方法
JP4525704B2 (ja) * 2007-05-17 2010-08-18 ソニー株式会社 符号化装置および方法、記録媒体、並びにプログラム。
CN101569170B (zh) * 2007-05-17 2011-11-16 索尼株式会社 编码设备和编码方法以及解码设备和解码方法
US8121197B2 (en) * 2007-11-13 2012-02-21 Elemental Technologies, Inc. Video encoding and decoding using parallel processors
US20100086024A1 (en) * 2008-10-02 2010-04-08 Nec Laboratories America, Inc. Streaming scalable video over fading wireless channels
US20100226428A1 (en) * 2009-03-09 2010-09-09 Telephoto Technologies Inc. Encoder and decoder configuration for addressing latency of communications over a packet based network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6917384B1 (en) * 1999-06-14 2005-07-12 Canon Kabushiki Kaisha Image sensing apparatus, method and recording medium storing program for method of setting plural photographic modes and variable specific region of image sensing, and providing mode specific compression of image data in the specific region

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ITU-T.Advanced video coding for generic audiovisual services.《Advanced video coding for generic audiovisual services》.2005,正文第45,49,250-261页. *
JP特开2000-358183A 2000.12.26
JP特开2004-166096A 2004.06.10
JP特开平9-130800A 1997.05.16

Also Published As

Publication number Publication date
CN101543038B (zh) 2013-01-02
WO2008143156A1 (ja) 2008-11-27
WO2008143157A1 (ja) 2008-11-27
JP5152598B2 (ja) 2013-02-27
CN101569170A (zh) 2009-10-28
US20100061643A1 (en) 2010-03-11
US8260068B2 (en) 2012-09-04
US8503809B2 (en) 2013-08-06
CN102263950A (zh) 2011-11-30
CN101543037B (zh) 2012-05-30
CN101543038A (zh) 2009-09-23
US20090175548A1 (en) 2009-07-09
CN101543037A (zh) 2009-09-23
CN101569170B (zh) 2011-11-16
JPWO2008143156A1 (ja) 2010-08-05

Similar Documents

Publication Publication Date Title
CN102263950B (zh) 编码设备和编码方法以及解码设备和解码方法
CN101237577B (zh) 信息处理设备和方法
KR100664928B1 (ko) 비디오 코딩 방법 및 장치
CN101237576B (zh) 信息处理装置和方法
CN101543077B (zh) 信息处理装置和方法
CN101133649B (zh) 编码装置、编码方法以及解码装置、解码方法
US8254707B2 (en) Encoding device, encoding method, encoding program, decoding device, decoding method, and decoding program in interlace scanning
CN101106719B (zh) 小波变换设备、小波逆变换设备和方法
JP4888729B2 (ja) 符号化装置および方法、並びに、復号装置および方法
RU2691962C2 (ru) Устройство обработки изображений и способ обработки изображений
JP4356028B2 (ja) 情報処理装置および方法
CN109076226A (zh) 图像处理装置和方法
US20200128274A1 (en) Method, apparatus and system for encoding and decoding video data
CN104126304A (zh) 图像处理装置和方法
TWI733986B (zh) 用以編碼和解碼視頻資料之方法、設備及系統
US7120306B2 (en) Image processing method and image coding apparatus utilizing the image processing method
JP4517306B2 (ja) 情報処理装置および方法
US20240196014A1 (en) Encoder and method of encoding a sequence of frames
CN1875635A (zh) 用于视频转码的变换域子采样
CN101415119B (zh) 用以压缩图像数据的装置及方法
Bhattar et al. Strip based coding for large images using wavelets
CN102131082A (zh) 图像处理装置和图像处理方法
CN111316645A (zh) 编码器、编码系统和编码方法
CN118301370A (zh) 一种用于jpeg-xs编解码的小波快速变换方法
JPS63227271A (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: 20141001

Termination date: 20150516

EXPY Termination of patent right or utility model