CN1882093B - 利用编码历史信息的编码转换*** - Google Patents
利用编码历史信息的编码转换*** Download PDFInfo
- Publication number
- CN1882093B CN1882093B CN 200610099782 CN200610099782A CN1882093B CN 1882093 B CN1882093 B CN 1882093B CN 200610099782 CN200610099782 CN 200610099782 CN 200610099782 A CN200610099782 A CN 200610099782A CN 1882093 B CN1882093 B CN 1882093B
- Authority
- CN
- China
- Prior art keywords
- data
- quantitative calibration
- image
- encoding process
- code
- 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
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供用于改变作为根据MPEG标准编码处理的结果获得的编码比特流的GOP结构和比特率代码转换器。根据本发明提供的代码转换器,可把在过去编码处理中产生的编码参数发射到MPEG编码器,MPEG编码器进行当前编码处理作为历史信息。从发射的编码参数选择与当前编码处理相称的最佳编码参数,并在当前编码处理中重新使用所选择的编码参数。结果是,即使重复地执行解码和编码处理也不会恶化图像质量。
Description
本专利中请是下列专利申请的分案申请:
中请号:200410088170.6
申请日:1999年3月10日
发明名称:利用编码历史信息的编码转换***
技术领域
本发明涉及编码转换***、视频编码设备、数据流处理***和用于改变GOP(图像组)结构和作为基于MPEG(运动图像专家组)标准的编码处理结果所获得的编码比特流的比特率的视频解码设备。
背景技术
近年来,用于生产和播送电视节目的广播站通常在使用用于压缩和编码视频数据的MPEG技术。特别是,MPEG技术正在变为用于在磁带或随机存取记录介质上记录视频数据和用于通过电缆或卫星发送视频数据的一种de-facto标准。
下面是由广播站执行的典型处理直至将该站产生的视频节目传输到每个家庭的简要过程描述。首先,摄录一体机(综合摄象机和VTR为一体的一种设备)中采用的编码器编码源视频数据并将编码数据记录到VTR的磁带上。同时,摄录一体机中采用的编码器编码该源视频数据为适于VTR磁带的记录格式的编码比特流。典型地,记录在磁带上的MPEG比特流的GOP结构是其中一个GOP是由两帧组成的结构。GOP结构的一个示例是包含I-、B-、I-、B-、I-、B-等等类型的一系列图像的一种结构。记录在磁带上的MPEG比特流的比特率是18Mbps。随后,中央广播站执行编辑处理以便编辑记录在磁带上的视频比特流。为此目的,将记录在磁带上的视频比特流的GOP结构转换为适于编辑处理的GOP结构。适于编辑处理的GOP结构是其中一个GOP由一帧组成的结构。更具体地说,适于编辑处理的GOP结构的图像是所有I-图像。这是因为,为了在帧单元中进行编辑处理,与其他图像不相关的I-图像最适宜。在转换GOP结构的实际操作中,记录在磁带上的视频比特流一次解码为基带视频数据。然后,该基带视频数据被再编码以便包含所有I-图像。通过以这种方式执行解码和再编码处理,就有可能产生具有适于编辑处理GOP结构的比特流。
其次,为了从中央广播站向本地广播站发送作为编辑处理结果而获得的一个编辑的视频节目,则有必要将GOP结构和编辑的视频节目的比特流的比特率改变为适于传输的GOP结构和比特率。适于在广播站之间传输的GOP结构是其中一个GOP由15帧组成的GOP结构。这种GOP结构的一个事例是包含I-、B-、B-、P-、B-、B-、P-等等类型的一系列图像的一种结构。至于适于在广播站之间传输的比特率,由于通常具有诸如光纤的高传输容量的专用线路安装在广播站之间,则希望至少50Mbps的高比特率。实际上,完成编辑处理的视频节目的比特流被一次解码回为视频数据。然后,该基带视频数据再编码以便得到适于在上述的广播站之间传输的GOP结构和比特率。
在本地广播站,从中央广播站接收的视频节目通常经历编辑处理以便向本地广播站坐落的街区***特别商业广告。很象在中央广播站执行的编辑处理,从中央广播站接收的视频节目比特流一次解码回为基带视频数据。然后,该基带视频数据再编码以便包含所有I-图像。结果,有可能产生具有适于编辑处理的GOP结构的比特流。
随后,为了通过电缆或卫星向每个家庭发送在本地广播站完成的编辑处理的视频节目,GOP结构和比特流的比特率被分别转换为适于传输到每个家庭的GOP结构和比特率。适于传输到每个家庭的GOP结构是其中一个GOP由15帧组成的一种结构。这种GOP结构的一个示例是包含I-、B-、B-、P-、B-、B-、P-等等类型的一系列图像的一种结构。适于传输到每个家庭的比特率具有如大约5Mbps一样低的典型值。经常完成编辑处理的视频节目的比特流再解码回为基带视频数据。随后,该基带视频数据再编码为适于传输到每个家庭的GOP结构和比特率。
正如从上述中所观察到的,从中央广播站向每个家庭发送的视频节目在传输期间多次经历重复的解码和编码处理。实际上,在广播站执行除上述的信号处理之外的各种信号处理并且经常为每种信号处理执行解码和编码处理。从而,需要重复执行解码和编码处理。
然而,基于MPEG标准的编码和解码处理并不是通常所知的彼此百分之百的逆处理。更具体地,经历编码处理的基带视频数据不完全与作为在前一代的编码转换中执行的解码处理的结果所获得的视频数据相同。因此,解码和编码处理导致图像质量恶化。从而,存在有每次执行编码和解码处理时出现图像质量恶化的问题。换句话说,每次重复解码和编码处理时就累积图像质量恶化的效果。
发明内容
因此本发明的一个目的是解决上述问题以便提供即使对完成基于MPEG标准的编码处理的比特流重复执行编码和解码处理以便改变该比特流的GOP结构和比特率时也不导致图像质量恶化的编码转换***、视频编码设备、数据流处理***和视频解码设备。此外,本发明的一个目的是提供即使重复执行编码和解码处理也不导致图像质量恶化的编码转换***、视频编码设备、数据流处理***和视频解码设备。
为了达到以上目的,根据本发明提供的代码转换器,能够在当前编码处理中利用在先前编码处理中产生和使用的编码参数。结果,即使重复执行解码和编码处理,图像质量也不恶化,这就是说,有可能减轻由于重复编码处理造成的图像质量中的累积恶化。
根据本发明提供的代码转换器,在作为当前编码处理的结果而获得的编码比特流的用户数据区域中描述在先前编码处理中产生和使用的编码参数并且该编码比特流遵循MPEG标准。因此有可能利用任何现存解码器来解码该编码比特流。此外,不必提供用于发送在先前编码处理中产生和使用的编码参数的专用线路。结果,有可能利用现存的数据流传输环境来发送在先前编码处理中产生和使用的编码参数。
根据本发明提供的代码转换器,在作为当前编码处理的结果而获得的编码比特流的用户数据区域中只描述在编码处理中产生和使用的所选择的先前编码参数。结果,有可能发送在过去执行的编码处理中产生和使用的编码参数而不需要显著增加输出比特流的比特率。
根据本发明提供的代码转换器,只有当前编码处理的最优编码参数从在先前编码处理中产生和使用的编码参数中进行选择以便在当前编码处理中使用。结果,即使重复执行先前的解码和编码处理也决不积累图像质量中的恶化。
根据本发明提供的代码转换器,只有当前编码处理的最优编码参数是根据来自先前编码处理中产生和使用的先前的编码参数图像类型进行选择的以便在当前编码处理中使用。结果,即使重复执行解码和编码处理也决不积累图像中的质量恶化。
根据本发明提供的代码转换器,有关是否再利用先前编码处理中产生和使用的先前编码参数的决定是根据包括在先前编码参数中的图像类型做出的。从而,可以执行最优编码处理。
附图说明
为了更完整地理解本发明,将参照以下说明和附图,其中:
图1是用于描述高效编码处理原理所使用的说明图;
图2是表示在图像数据压缩中使用的图像类型的说明图;
图3是表示在图像数据压缩中使用的图像类型的说明图;
图4是用于描述编码运动图像视频信号的处理原理所使用的说明图;
图5是表示用于编码和解码运动图像视频信号的设备配置方框图;
图6A至6C是描述格式转换所用的说明图;
图7是表示图5所示的设备中采用的编码器18的配置方框图;
图8是用于描述在图7所示的编码器18中采用的预测模式转换电路52的操作所用的说明图;
图9是用于描述在图7所示的编码器18中采用的预测模式转换电路52的操作所用的说明图;
图10是用于描述在图7所示的编码器18中采用的预测模式转换电路52的操作所用的说明图;
图11是用于描述在图7所示的编码器18中采用的预测模式转换电路52的操作所用的说明图;
图12是表示在图5所示的设备中采用的解码器配置方框图;
图13是用于描述基于图像类型的SNR控制的说明图;
图14是表示由本发明提供的代码转换器101的配置方框图;
图15是表示图14所示的代码转换器101的更详细配置的方框图;
图16是表示在图14所示的代码转换器101的解码设备102中采用的解码器111的配置方框图;
图17是表示宏块像素的说明图;
图18是表示记录编码参数的区域的说明图;
图19是表示在图14所示的代码转换器101的解码设备106中采用的解码器121的配置方框图;
图20是表示在图15所示的代码转换器101中采用的历史格式化器211的典型配置方框图;
图21是表示在图15所示的代码转换器101中采用的历史解码器203的典型配置方框图;
图22是表示在图15所示的代码转换器101中采用的转换器212的典型配置方框图;
图23是表示在图22所示的转换器212中采用的填充电路323的典型配置方框图;
图24A到I是用于解释图22所示的转换器212的操作的定时图;
图25是表示在图15所示的代码转换器101中采用的转换器202的典型配置方框图;
图26是表示图25所示的转换器202中采用的删除电路343的典型配置方框图;
图27是表示在图15所示的代码转换器101中采用的转换器212的另一个典型配置方框图;
图28是表示在图15所示的代码转换器101中采用的转换器202的另一个典型配置方框图;
图29是表示在图15所示的代码转换器101中采用的用户数据格式化器213的典型配置方框图;
图30是表示采用均在图14所示的多个代码转换器101的实际***配置方框图;
图31是表示用于记录编码参数的区域图;
图32是用于解释图14所示的代码转换器101中采用的编码设备106执行的处理的流程图,以确定可改变的图像类型;
图33是表示改变图像类型的一个示例图;
图34是表示改变图像类型的另一个示例图;
图35是用于描述由图14所示的代码转换器101中采用的编码设备106执行的量化控制处理说明图;
图36是用于解释由图14所示的代码转换器101中采用的编码设备106执行的量化控制处理流程图;
图37是表示紧密耦合的代码转换器101的配置方框图;
图38是用于描述MPEG数据流的语法说明图;
图39是用于描述图38所示的语法配置说明图;
图40是用于描述以固定长度记录历史信息的history_stream()的语法说明图;
图41是用于描述以固定长度记录历史信息的history_stream()的语法说明图;
图42是用于描述以固定长度记录历史信息的history_stream()的语法说明图;
图43是用于描述以固定长度记录历史信息的history_stream()的语法说明图;
图44是用于描述以固定长度记录历史信息的history_stream()的语法说明图;
图45是用于描述以固定长度记录历史信息的history_stream()的语法说明图;
图46是用于描述以固定长度记录历史信息的history_stream()的语法说明图;
图47是用于描述以可变长度记录历史信息的history_stream()的语法说明图;
图48是用于描述sequence_header()的语法说明图;
图49是用于描述sequence_extension()的语法说明图;
图50是用于描述extension_and_user_data()的语法说明图;
图51是用于描述user_data()的语法说明图;
图52是用于描述group_of_picture_header()的语法说明图;
图53是用于描述picture_header()的语法说明图;
图54是用于描述coding_()的语法说明图;
图55是用于描述extension_data()的语法说明图;
图56是用于描述quant_matrix_extension()的语法说明图;
图57是用于描述copyright_extension()的语法说明图;
图58是用于描述picture_display_extension()的语法说明图;
图59是用于描述picture_data()的语法说明图;
图60是用于描述slice()语法的说明图;
图61是用于描述macroblock()语法的说明图;
图62是用于描述macroblock_mode()的语法说明图;
图63是用于描述motion_vector(s)的语法说明图;
图64是用于描述motion_vector(r,s)的语法说明图;
图65是用于描述用于I图像的宏块类型的可变长度代码的说明图;
图66是用于描述用于P图像的宏块类型的可变长度代码的说明图;
图67是用于描述用于B图像的宏块类型的可变长度代码的说明图;
具体实施方式
在描述本发明提供的代码转换器之前,解释一下压缩和编码运动图像视频信号的处理。应注意此说明书中使用的技术术语‘***’是指包含多个设备和方式的整个***。
如上所述,在发送运动图像视频信号到诸如电视会议***和电视电话***的远程目标的***中,视频信号利用该视频信号的行相关和帧内相关进行压缩和编码处理以便允许高度有效地利用传输线路。通过利用行相关,经过执行典型的DCT(离散余弦变换)处理就能压缩视频信号。
通过利用帧内相关,能进一步压缩和编码视频信号。假定帧图像PC1、PC2和PC3分别在图1所示的时刻t1、t2和t3上产生。在这种情况中,计算帧图像PC1和PC2之间的图像信号内的差别以便产生帧图像PC12。同样,计算帧图像PC2和PC3之间的图像信号内的差别以便产生帧图像PC23。通常,沿时间轴彼此相邻的帧图像之间的图像信号内的差别很小。因此,包含在帧图像PC21和PC23中的信息量也少并且包括在作为编码这种差别的结果所获得的差别信号内的代码量也少。
然而,通过仅发送差别信号就不能恢复原始图像。为了获得原始图像,把帧图像分为三种类型,即在视频信号的压缩和编码处理中均用做最小处理单位的I-、P-和B-图像。
假定图2的GOP(图像组)包含十七帧,即均作为处理视频信号的最小单位处理的帧F1到F17。更具体地,第一帧F1、第二帧F2和第三帧F3分别作为I-、B-和P-图像进行处理。后面的帧,即第四到第十七帧,交替作为B-和P-进行处理。
在I-图像情况中,发送整个帧的一个视频信号。相反,在P-图像或B-图像的情况中,只发送视频信号内的差作为代替整个帧的视频信号。更具体地,在图2所示的P-图像的第三帧F3的情况中,只发送在P-图像和长期领先的I-和P-图像之间的视频信号内的差作为视频信号。在图3所示的B-图像的第二帧F2的情况中,例如,只发送在B-图像和长期领先的帧、连续帧或领先和长期连续帧的平均值之间的视频信号内的差作为视频信号。
图4是表示根据以上所述来编码运动图像视频信号的技术原理图。如图4所示第一帧F1作为I-图像进行处理。因此,整个帧F1的视频信号作为数据F1X(内部图像编码)发送到传输线路。另一方面,第二帧F2作为B-图像进行处理。在这种情况中,发送第二帧F2和长期领先帧F1、连续帧F3或领先帧F1与连续帧F3的平均值之间的差作为数据F2X。
更详细说明,B-图像的处理可以分为四种类型。在第一类型处理中,发送由图4的符号SP1表示的原始帧F2的数据作为与I-图像相同情况的数据F2X。因此,第一类型的处理就是所说的内部图像编码。在第二类型的处理中,发送在第二帧中F2和长期连续的第三帧F3之间由符号SP2表示的差作为数据F2X。由于该连续帧是作为基准或预测图像取出的,则这个处理被称为后向预测编码。在第三类型的处理中,发送在第二帧F2和领先帧F1之间的由符号SP3表示的差作为具有P-图像情况的数据F2X。由于领先帧是作为预测图像取出的,则这个处理被称为前向预测编码。在第四类型的处理中,发送在第二帧F2和连续第三帧F3与领先第一帧F1的平均值之间的由符号SP4表示的差作为F2X。由于该领先和连续帧是作为预测图像取出的,则这个处理被称为前向和后向预测编码。实际上,选择上述四种处理类型之一以便产生作为处理结果所获得的传输数据的最小量。
应注意,在上述的第二、第三或第四类型的处理结果获得的差的情况下,也与该差一起发送在计算该差中使用的帧图像(预测图像)之间的一个运动矢量。更具体地,在前向预测编码的情况中,运动矢量是帧F1和帧F2之间的一个矢量X1。在后向预测编码的情况中,运动矢量是帧F2和帧F3之间的一个矢量X2。在前向和后向预测编码的情况中,发送运动矢量X1和运动矢量X2二者。
与上述B-图像非常相似,在P-图像的帧F3的情况下,选择前向预测编码或内部图像处理以便产生作为处理结果得到的发送数据的最小量。如果选择前向预测编码,那么连同运动矢量X3一起发送由第三帧F3和领先第一帧F1之间的符号SP3表示的差作为数据F3X。另一方面,如果选择内部图像处理,那么就发送由符号SP1表示的原始帧F3的数据F3X。
图5是表示基于上述原理来编码运动图像视频信号以及发送和解码该编码信号的一个***的典型配置方框图。信号编码设备1将输入视频信号编码并通过用做传输线路的记录介质3发送此编码的视频信号到信号解码设备2。信号解码设备2重放记录在记录介质3上的编码信号并将此重放信号解码为输出信号。
在信号编码设备1中,把输入视频信号送到将其分离为亮度和色度信号的预处理电路11。在此实施例的情况中,色度信号是个色差信号。模拟亮度信号和色差信号然后分别送入A/D转换器12和13以便均转换为数字视频信号。从A/D转换中得到的数字视频信号随后送入帧存储器单元14以便在那里存储。帧存储器单元14包含用于存储亮度信号的亮度信号帧存储器15和用于存储色差信号的色差信号帧存储器16。
格式转换电路17将存储在帧存储器单元14中的帧格式信号转换为图6A至6C所示的块格式信号。详细地说,视频信号存储在帧存储器单元14中作为图6A所示的帧格式数据。如图6A所示,此帧格式是均包含H个点的V行集合。格式转换电路17将一帧信号划分为均包含图6B所示的16行的N个片。每片则划分为如图6B所示的M片宏块。如图6C所示,一个宏块包括相应于16*16像素(点)的亮度信号Y。此亮度信号Y进一步划分为均包含8*8点的Y[1]至Y[4]。此16*16-点亮度信号与8*8-点Cb信号和8*8-点Cr信号有关。
具有由上述格式转换电路17执行的格式转换结果所得的块格式的数据送到用于编码此数据的编码器18。后面将参考图7详细描述编码器18的配置。
由编码器18执行编码的结果所得的信号作为比特流输出到传输线路。典型地,此编码信号作为数字信号送到用于在用做传输线路的记录介质3上记录编码信号的记录电路19中。
在信号解码设备2中使用的重放电路30重放来自记录介质3的数据,从而将数据送到解码设备的解码器31以便解码此数据。后面将参考图12详细描述解码器31的配置。
由解码器31执行的解码结果所获得的数据馈送到格式转换电路32以便将数据块格式转换回为帧格式。随后,具有帧格式的亮度信号馈送到帧存储单元33的亮度信号帧存储器34以便在那里存储。另一方面,具有帧格式的色差信号馈送到帧存储器单元33的色差信号帧存储器35中以便在那里存储。亮度信号从亮度信号帧存储器34中读出并送到D/A转换器36。另一方面,色差信号从色差信号帧存储器35中读出并送到D/A转换器37。D/A转换器36和37将这些信号转换为模拟信号,然后将这些模拟信号送到后处理电路38以便合成亮度和色差信号并产生一个合成的输出。
下一步,参考图7描述解码器18的配置。要编码的图像数据送到宏块单元中的运动矢量检测器电路50。运动矢量检测电路50根据事先设定的预定序列处理每帧的图像数据作为I-、P-或B-图像。更具体地,通常包含图2和图3所示的帧F1到F17的GOP的图像数据被处理为I-、B-、P-、B-、P-、---、B-和P-图像的一个序列。
将由运动矢量检测电路50处理为诸如图3所示的帧F1的I-图像的一帧图像数据馈送到帧存储器单元51的前向资源图像区域51a以便在那里存储。要由运动矢量检测电路50处理为诸如帧F2的P-图像的一帧图像数据馈送到帧存储器单元51的参考资源图像区域51b以便在那里存储。要由运动矢量检测电路50处理为诸如帧F3的P-图像的一帧图像数据馈送到帧存储器单元51的后向资源图像区域51c以便在那里存储。
当诸如帧F4或F5的下两帧的图像数据相继送到运动矢量检测电路50以便分别被处理为B-和P-图像时,区域51a、51b和51C按如下更新。当帧F4的图像数据由运动矢量检测电路50处理时,存储在后向资源图像区域51c中的帧F3的图像数据就传送到前向资源图像区域51a,从而重写早先存储在资源图像区域51b的帧F1的图像数据。所处理的帧F4的图像数据存储在参考资源图像区域51b中,从而重写早先存储在资源图像区域51b的帧F2上的图像数据。然后,所处理的F5的图像数据存储在后向资源图像区域51c中,从而重写已经以任何方式传送到前向资源图像区域51a的帧F3的图像数据。重复上述操作以便处理后来的GOP的帧。
存储在帧存储器单元51中的每个图像的信号由预测模式切换电路52读出以便经受用于帧预测模式或场预测模式的准备操作,也就是,将由处理单元53执行的处理类型。
接着,或者在帧预测模式或者场预测模式,这些信号进行计算以便获得内部图像预测编码,诸如在内部图像处理/前向/后向前向和后向预测确定电路54执行控制下的前向、后向和前向和后向预测。在处理单元中执行的处理类型是根据表示在参考图像和此参考图像的预测图像之间的差的预测差错信号来确定的。参考的图像是经历此处理的一个图像而预测图像是领先和连续此参考图像的一个图像。由于这个原因,运动矢量检测电路50(严格地说,是在后面将要描述的矢量检测电路50中采用的预测模式切换电路52)产生在确定由处理单元53执行的处理类型中使用的预测差错信号的绝对值之和。代替此预测差错信号的绝对值之和,也可以利用预测差错信号的平方和进行这种确定。
预测模式切换电路52以帧预测模式和场预测模式执行用于由处理单元53执行的处理的以下准备操作。
预测模式切换电路52接收由运动矢量检测电路50馈送到那儿的四个亮度块[Y1]到[Y4]。在每块中,奇数场的行数据与图8所示的偶数场的行数据混合。此数据可以按常规传给处理单元53。要由处理单元53执行的具有图8所示配置的数据处理被称为以帧预测模式的处理,其中对包含四个亮度块的每个宏块执行预测处理并且运动矢量对应于四个亮度块。
预测模式切换电路52然后再配置由运动矢量检测电路50提供的信号。代替具有图8所示配置的信号,具有图9所示配置的信号可以传送到处理单元53。如图9所示,两个亮度块[Y1]和[Y2]均由通常只是奇数场的行的点构成而其他两个亮度块[Y3]和[Y4]均由典型地只是偶数场的行的点构成。具有由处理单元53执行的图9所配置的数据处理被称为以场预测模式的处理,其中一个运动矢量对应于两个亮度块[Y1]和[Y2]而另外的运动矢量对应于其他两个亮度块[Y3]和[Y4]。
预测模式切换电路52选择具有图8或图9所示配置的数据以便按如下所述馈送到处理单元53。预测模式切换电路52计算对于帧预测模式即,对于由具有图8所示配置的运动矢量检测电路50所提供的数据所计算的预测差错绝对值之和,以及对于场预测模式,即对于具有作为具有图8所示配置的数据转变的结果所获得的图9所示配置的数据所计算的预测差错绝对值之和。应注意,后面将详细描述预测差错。预测模式切换电路52于是比较对数据所计算的预测差错绝对值之和以便确定哪种模式产生最小和。然后,预测模式切换电路52选择用于分别产生最小和的帧预测模式或场预测模式的图8或图9所示配置之一。预测模式切换电路52最后输出具有所选配置的数据到处理单元53以便按对应于所选配置的模式处理此数据。
应注意,实际上,预测模式切换电路52是包括在运动矢量检测电路50之内的。也就是说,具有图9所示配置的数据准备、绝对值的计算、绝对值的比较、数据配置的选择以及输出具有选择配置的数据到处理单元53的操作全部是由运动矢量检测电路50来执行,而预测模式切换电路52仅仅输出运动矢量检测电路50提供的信号到处理单元53的后一级。
应注意,在帧预测模式中,色差信号和与图8所示的偶数场行数据混合的奇数场行数据送到处理单元53。另一方面,在图9所示的场预测模式中,色差块Cb的四个上半行被用做对应于亮度块[Y1]和[Y2]的奇数场的色差信号,同时色差块Cb的四个下半行被用做对应于亮度块[Y3]和[Y4]的偶数场的色差信号。同样,色差块Cr的四个上半行被用做对应于亮度块[Y1]和[Y2]的奇数场的色差信号,同时色差块Cr的四个下半行被用做对应于亮度块[Y3]和[Y4]的偶数场的色差信号。
如上所述,运动矢量检测电路50输出预测差错绝对值之和到预测确定电路54以便用于确定处理单元53是否应当执行内部图像预测、前向预测、后向预测、前向和后向预测。
为详细说明,按如下求出内部图像预测中的预测差错绝对值之和。对于内部图像预测,运动矢量检测电路50计算在参考图像的宏块信号Aij的和∑Aij的绝对值|∑Aij|和同一参考图像的宏块信号Aij的绝对值|Aij|的和∑|Aij|之间的差。对于前向预测,预测差错绝对值之和是在参考图像的宏块信号Aij和后向预测图像或领先图像的宏块信号Bij之间的差(Aij-Bij)的绝对值|Aij-Bij|之和∑|Aij-Bij|。除后向预测中使用的预测图像是后向预测图像或连续图像之外,以与前向预测相同的方式求出后向预测的预测差错绝对值之和。至于前向和后向预测,在求和运算时使用前向预测图像和后向预测图像二者的宏块信号Bij的平均。
每种预测技术的差错预测的绝对值之和送到预测确定电路54,此电路选择具有作为内部图像预测的预测差错的绝对值之和的最小和的前向预测、后向预测或向前和后向预测。预测确定电路54进一步比较最小和与内部图像预测之和并选择或者内部图像预测或者具有比处理单元53执行的处理的预测模式更小和的内部图像预测。更具体地,如果发现内部图像预测之和比内部图像预测的最小和更小,那么预测确定电路54就选择内部图像预测作为将由处理单元53执行的处理类型。另一方面,如果求出内部图像预测之最小和比内部图像预测的和更小,那么预测确定电路54就选择内部图像预测作为将由处理单元53执行的处理类型。如上所述,内部图像预测代表作为具有最小和的处理的预测模式所选择的前向预测、后向预测或前向和后向预测。为每个图像(或帧)确定预测模式同时为每个图像组确定帧预测或场预测。
如上所述,运动矢量检测电路50利用预测模式切换电路52输出用于预测模式切换电路52所选帧预测模式或场预测模式的参考图像的宏块信号到处理单元53。同时,运动矢量检测电路50还检测在参考图像和用于由预测确定电路54所选的四个预测模式之一的预测图像之间的一个运动矢量。运动矢量检测电路50然后将此运动矢量输出到可变长度编码电路58和运动补偿电路64。以这种方式,运动矢量检测电路50输出对应于如前述所选的预测模式的预测差错的绝对值最小和的一个运动矢量。
当运动矢量检测电路50从前向资源图像区域51a中读出I-图像的图像数据、GOP的第一帧时,预测确定电路54设定内部图像预测,严格地说,是内部帧或内部场预测作为预测模式,从而设定在连接点a上的处理单元53中采用的开关53d。利用此位置上设定的开关53d,I-图像数据送到DCT模式切换电路55。如后面将要解释的,内部图像预测模式是其中不执行运动补偿的一个模式。
DCT模式切换电路55以混合状态或图10所示的帧DCT模式接收通过开关53d从预测模式切换电路52传送到这儿的数据。DCT模式切换电路55然后将此数据转换为分离的状态或图11所示的场DCT模式。在帧DCT模式中,在每四个亮度块中混合奇数和偶数场的行的数据。另一方面,在场DCT模式中,奇数场的行放入四个亮度块的两个内而偶数场行放入其他两个块中。以混合或分离状态将I-图像的数据送到DCT电路56。
在馈送此数据到DCT电路56之前,DCT模式切换电路55比较具有彼此混合的奇数和偶数场的行的数据的DCT处理的编码效率与具有彼此分离的奇数和偶数场的行的数据的DCT处理的编码效率以便选择具有更高效率的数据。对应于所选数据的帧DCT模式或场DCT模式被确定为DCT模式。
编码效率按如下彼此进行比较。在具有如图10所示的彼此混合的奇数和偶数场的行的数据的情况中,计算偶数场的行的信号与垂直相邻与此偶数场的奇数场的行信号之间的差。然后,求出此差的绝对值平方或绝对值和。最后,计算在两个相邻的偶数和奇数场之间的差的绝对值之和或平方。
在具有图11所示的彼此分离的奇数和偶数场的行的数据的情况中,计算垂直相邻的偶数场的行之间的信号差和垂直相邻的奇数场的行之间的信号差。然后,求出每个差的绝对值平方或绝对值和。最后,计算在两个相邻偶数场和两个相邻奇数场之间的所有差的绝对值之和或平方。
对图10所示数据所计算的和与对图11所示数据所计算的和进行比较以便选择DCT模式。更具体地,如果发现前者小于后者,那么选择帧DCT模式。另一方面,如果发现后者小于前者,那么选择场DCT模式。
最后,具有对应于所选DCT模式配置的数据送到DCT电路56,同时,用于表示所选DCT模式的一个DCT标志送到可变长度编码电路58和运动补偿电路64。
由预测模式切换电路52确定的图8和图9的帧预测和场预测模式与由DCT模式切换电路55确定的图10和图11的DCT模式之间的比较清楚地表明就亮度块而言,帧预测和场预测模式的数据结构大体上分别与帧DCT模式和场DCT模式的数据结构相同。
如果预测模式切换电路52选择其中奇数偶数行彼此混合的帧预测模式,那么DCT模式切换电路55也选择具有奇数偶数行混合的DCT预测模式就完全在可能性的界线之内。如果预测模式切换电路52选择其中奇数偶数行彼此分离的场预测模式,那么DCT模式切换电路55也选择具有奇数偶数行分离的场DCT模式就完全在可能性的界线之内。
但是,应注意,所选的DCT模式不总是对应于所选的预测模式。在任何条件下,预测模式切换电路52选择帧预测或提供预测差错绝对值最小和的场预测模式并且DCT模式切换电路55选择给出最佳编码效率的DCT模式。
如上所述,I-图像数据由DCT模式切换电路55输出到DCT电路56。DCT电路56于是对随后提供到量化电路57的转换为DCT系数的数据进行处理。量化电路57然后以调整到存储在传输缓冲器59的数据量的量化标度进行量化处理,所说的量化标度反馈给量化电路57,这在后面将描述。完成量化处理的I图像数据然后送到可变长度编码电路58。
可变长度编码电路58接收从量化电路57提供的I图像数据,以便以还由量化电路57提供到那儿的量化标度转换此图像数据为可变长度代码诸如Huffman代码。此可变长度代码然后存储在传输缓冲器59中。
除了量化电路57提供的图像数据和量化标度外,可变长度编码电路58还接收来自预测确定电路54的预测模式信息、来自运动矢量检测电路50的运动矢量信息、来自预测模式切换电路52的预测标志和来自DCT切换电路55的DCT标志。预测模式中的信息表示在内部图像编码、前向预测编码、后向预测编码或前向和后向预测编码中的哪个处理类型由处理单元执行。预测标志表示从预测模式切换电路52提供到处理单元53的数据是在帧预测模式还是在场预测模式。DCT标志表示从DCT模式切换电路55提供到DCT电路56的数据是以帧DCT还是以场DCT模式设定。
传输缓冲器59暂存输入数据,从而将存储在那儿的数据量反馈到量化电路57。当存储在传输缓冲器59中的数据量超出允许范围的上限时,量化控制信号就递增量化电路57的量化标度以便减小量化结果所得的数据量。另一方面,当存储在传输缓冲器的数据量变得小于允许范围的下限时,量化控制信号就递减量化电路57的量化标度以便提高量化结果所得的数据量。以这种方式,在传输缓冲器59中能够防止溢出和下溢。
随后,存储在传输缓冲器59中的数据在预定定时被反馈以便送到记录电路19从而将数据记录到用做传输线路的记录介质3上。
I图像数据和量化电路57输出的量化标度也送到反向量化电路60以便以对应于此量化标度的反量化标度对数据进行反向量化。由反向量化电路60输出的数据然后馈送到IDCT(反向离散余弦变换)电路61以便执行反向离散余弦变换。最后,由IDCT电路61输出的数据利用处理器62送到帧存储器单元63以便存储在此帧存储器单元63的前向预测图像区域63a中。
提供到运动矢量检测电路50以便在此处理的GOP包含一系列I-、B-、P-、B-、P-、B-等图像。在这种情况中,处理第一帧数据为上述的I-图像之后,在处理作为B-图像的第二帧数据之前处理第三帧数据为P-图像。这是因为B-图像可以进行后向预测,后向预测涉及连续P-图像并且除非事先已经执行连续P-图像之外,不能执行后向预测。应注意,P-图像数据以GOP的预测模式切换电路52设定的帧预测或场预测模式的格式从预测模式切换电路52传送到处理单元53并总是在前述的内部帧预测模式中由处理单元53进行处理。
由于上述原因,处理作为I-图像的第一帧之后,运动矢量检测电路50开始处理存储在后向资源图像区域51C中的P-图像。然后,预测模式切换电路52利用看作用于每个预测模式单元的宏块计算在由运动矢量检测电路50提供到那儿的帧或I图像数据的预测差错之间的差的绝对值之和并将此和送到如上所述的预测确定电路54。当输入GOP的第一帧I-图像时,I-图像本身的数据以帧预测或曾由用于P-图像的GOP的预测模式切换电路52设定的场预测模式传送到处理单元53中。另一方面,预测确定电路54确定其中由处理单元53处理P-图像的数据的预测模式,即,根据由用于每个预测模式的预测模式切换电路52计算的预测差错绝对值之和,选择作为将由处理单元53执行的处理类型的或者内部图像、前向、后向或者前向和后向预测。严格地讲,在P-图像的情况中,处理类型可以是内部图像或如上所述的前向预测模式。
在第一个场所,在内部图像预测模式中,处理单元53在接触点A设定开关。因此,P-图像数据利用DCT模式切换电路55、DCT电路56、量化电路57、可变长度编码电路58和传输缓冲器59(对于I图像的情况)传送到传输线。P-图像数据利用量化电路57、反量化电路60、IDCT电路61和处理器62也送到帧存储器单元63以便存储在它的后向预测图像区域63b中。
在第二个地方,在前向预测模式中,处理单元53在接触点b设定开关53d并且运动补偿电路64读出来自帧存储器单元63的前向预测图像区域63a的数据,从而根据由运动矢量检测电路50提供到运动补偿电路64的运动矢量对数据执行运动补偿。在这种情况中,存储在前向预测图像区域63a的数据是I图像数据。这就是说,由预测确定电路54形成前向预测图像,运动补偿电路64通过从前向预测图像区域63a的读地址中读出I图像数据来产生前向预测图像数据的数据。读地址是从运动矢量检测电路50当前输出的宏块位置移位相应于此运动矢量的一个距离的位置。
由运动补偿电路64读出的前向预测数据与参考图像即P-图像数据有关,并送到处理单元53中使用的处理器53a中。处理器53a从由预测模式切换电路52提供的参考图像的宏块数据中减去由运动补偿电路64提供的前向预测图像即I-图像的数据以便求出预测中的差或差错。差数据利用DCT切换电路55、DCT电路56、量化电路57、可变长度编码电路58和传输缓冲器59传送到传输线。差数据也由反向量化电路60和IDCT电路61进行本地解码并且从本地解码得到的结果馈送到处理器62。
由运动补偿电路64提供到处理器53a的前向预测图像数据也送到处理器62中。在处理器62中,前向预测图像的数据加到由IDCT电路61输出的差数据以便产生原始P-图像数据。原始P-图像的数据然后存储到帧存储器单元63的后向预测图像区域63b。
I图像和P-图像的数据段分别存储在如前所述的前向预测图像区域63a和后向预测图像区域63b之后,由运动矢量检测电路50开始B-图像的第二帧的处理。B-图像由预测模式切换电路52以与前述的P-图像相同的方式进行处理,除了在B-图像的情况中,由预测确定电路54确定的处理类型可以是除内部图像预测模式或前向预测模式之外的后向预测模式或前向和后向预测模式。
在内部图像预测模式或前向预测模式的情况中,如前述的P-图像情况一样,在接触点a和b上设定开关53d。在这种情况中,以上述P-图像相同的方式处理和传送由预测模式切换电路52输出的B-图像数据。
另一方面,后向预测模式或前向和后向预测模式的情况下,分别在接触点c和d设定开关53d。
在其中在接触点c设定开关53d的后向预测模式中,运动补偿电路64从帧存储单元63的后向预测图像区域63b中读出数据,以便根据由运动矢量检测电路50提供到运动补偿电路64的运动矢量对数据进行运动补偿。在这种情况中,存储在后向预测图像区域63b中的数据是P-图像数据。这就是说,由于由预测确定电路54通知形成后向预测模式,则运动补偿电路64通过从后向预测图像区域63b中的读地址读出P-图像数据来产生后向预测图像数据。读地址是从运动矢量检测电路50当前输出的宏块位置移位相应于此运动矢量的一个距离的位置。
由运动补偿电路64读出的后向预测数据与参考图像即B-图像数据有关,并送到处理单元53中使用的处理器53b中。处理器53b从由预测模式切换电路52提供的参考图像的宏块数据中减去由运动补偿电路64提供的后向预测图像即P-图像的数据以便求出预测中的差或差错。差数据利用DCT切换电路55、DCT电路56、量化电路57、可变长度编码电路58和传输缓冲器59传送到传输线。
另一方面,在其中在接触点d设定开关53d的前向和后向预测模式中,在这种情况中,运动补偿电路64从帧存储单元63的前向预测图像区域63a中读出I-图像数据和从后向预测图像区域63b中读出P-图像数据,以便根据由运动矢量检测电路50提供到运动补偿电路64的运动矢量对数据进行运动补偿。
这就是说,由于由预测确定电路54通知后向预测模式,则运动补偿电路64通过分别从前向预测图像区域63a和后向预测图像区域63b中的读地址读出I-和P-图像数据来产生前向和后向预测图像数据。读地址是从运动矢量检测电路50当前输出的宏块位置移位相应于此运动矢量的一个距离的位置。在这种情况中,有两个运动矢量,即,用于前向和后向预测图像的运动矢量。
由运动补偿电路64读出的前向和后向预测数据与参考图像即B-图像数据有关,并送到处理单元53中使用的处理器53c中。处理器53c从由运动矢量检测电路50使用的预测模式切换电路52提供的参考图像的宏块数据中减去由运动补偿电路64提供的预测图像数据以便求出预测中的差或差错。差数据利用DCT切换电路55、DCT电路56、量化电路57、可变长度编码电路58和传输缓冲器59传送到传输线。
由于B-图像绝不用做另一帧的预测图像,则它不存储在帧存储器单元63中。
应注意,通常,帧存储器单元63的前向预测图像区域63a和后向预测图像区域63b被实施为从一个切换到另一个的存储体(banks)。因此,在读出前向预测图像的操作中,帧存储器单元63设定到前向预测图像区域63a,另一方面,在读出后向预测图像的操作中,帧存储器单元63设定到后向预测图像区域63b。
当上述描述集中在亮度块时,色差信号也以与亮度块相同的方式在图8至11所示的宏块单元中进行处理和传送。应注意,作为色差块处理中的运动矢量,与垂直和水平方向有关的亮度块的运动矢量分量与其每个切半的量值一起使用。
图12是表示在图5所示的运动图像编码/解码设备中使用的解码器31的配置方框图。通过由记录介质3实施的传输线路发送的编码图像数据利用运动图像编码/解码设备的重放电路30由解码器31接收并随后暂存在解码器31中使用的接收缓冲器81中。然后,图像数据馈送到在解码器31的解码电路90中使用的可变长度解码电路82中。可变长度解码电路82对从接收缓冲器8 1读出的图像数据进行可变长度解码,以便输出一个运动矢量、预测模式信息、给运动补偿电路87的帧/场预测标志和帧/场DCT标志和量化标度以及给反量化电路83的解码图像数据。
反量化电路83以也可变长度解码电路82接收的量化标度对可变长度解码电路82馈送到那儿的图像数据执行反量化。反量化电路83输出作为反向量化结果所得的DCT系数到用于执行IDCT(反向离散余弦变换)的电路IDCT 84,从而馈送此IDCT结果到处理器85。
在I-图像情况中,由IDCT电路84馈送到处理器85的图像数据由处理器85按常规输出到帧存储器单元86以便存储在帧存储器单元86的前向预测图像区域86a中。存储在前向预测图像区域86a中的I图像数据将用于在前向预测模式中的I-图像之后,产生馈送到处理器85的P-或B-图像的图像数据的前向预测图像数据。I-图像数据也输出到在图5所示的用于运动图像编码/解码设备中的格式转换电路32。
当电路IDCT 84提供的图像数据是具有领先一帧的P-图像数据时,即I-图像的图像数据由运动补偿电路87从帧存储器单元86的前向预测图像区域86a中读出。在运动补偿电路87中,I图像数据的图像数据经受由可变长度解码电路82提供的运动矢量的运动补偿。完成运动补偿的图像数据随后送到处理器85以便加到实际为差数据的由电路IDCT 84提供的图像数据。加入的结果,即解码的P-图像数据馈送到帧存储器单元86以便存储在如上所述的帧存储器单元86的后向预测图像区域86b中。存储在后向预测图像区域86b中的P-图像数据在后向预测模式之后将产生馈送到处理器85的B-图像的图像数据的后向预测图像数据。
另一方面,由以内部帧预测模式的信号编码设备1处理的P-图像数据由处理器85不经历任何处理就输出到I-图像情况的后向预测图像区域86b。
由于P-图像之后处理B-图像之后,将显示P图像,那么,在这个时刻,P-图像不输出到格式转换电路32。与编码器18很相似,解码器31在B-图像之前处理和传送P-图像,即使是在B-图像之后接收P-图像也一样。
由IDCT电路84输出的B-图像图像数据由处理器85根据可变长度解码电路82提供的预测模式信息进行处理。更具体地,处理器85可以输出以与I-图像情况相同的内部图像预测模式或处理以前向预测、后向预测或前向和后向预测模式的图像数据。在前向预测中,在前向预测、后向预测或前向和后向预测模式中,运动补偿电路87读出分别存储在86a中I图像数据、存储在86b中的P-图像数据或存储在86的86a和86b中I-和P-图像数据。运动补偿电路87然后根据可变长度解码电路82输出的运动矢量对从帧存储器单元86中读出的图像进行运动补偿以便产生预测图像。在上述的内部图像预测模式中,因为处理器85不要求预测图像,那么就不产生预测图像。
在运动补偿电路87中,经受运动补偿的预测图像由处理器85加到B-图像的图像数据上,严格地说,是加到IDCT电路84输出的差数据上。于是处理器85输出的数据馈送到如I-图像情况的格式转换电路32。
但是,由于处理器85输出的数据是B-图像图像数据,那么在产生预测图像时不需要此数据。因此,处理器85输出的数据不存储在帧存储器单元86中。
已经输出B-图像数据之后,由运动补偿电路87从86b中读出P-图像数据并馈送到处理器85。但是,这次,由于此数据在存储在后向预测图像区域86b之前已经经历了运动补偿则此数据不经受运动补偿。
解码器31不包括用于图5所示的编码器18中的预测模式切换电路52和DCT模式切换电路55的计数器部分的电路。因为计数器部分的处理,即把具有图9和11所示的彼此分离的偶数和奇数场的信号格式分别转换回为具有图8和图10所示彼此混合的偶数和奇数场的信号格式是由运动补偿电路87执行的。
当如以上描述集中亮度信号时,色差信号也以亮度信号相同的方式以图8至11所示的宏块单元进行处理和传送。应注意,作为色差信号处理中的运动矢量,与垂直和水平方向的色差块有关的亮度信号的运动矢量分量与其每个切半的数量一起使用。
图13是表示根据SNR(信噪比)的编码图像质量图。如图所示,图像质量更多地取决于图像类型。更具体地,发送的I-和P-图像分别具有高质量,但B-图像具有更低的质量。图13所示的图像质量中的人为变量是利用视觉感官的人的特征的一种技术。也就是说,通过改变质量,该质量表现得比利用所有图像的平均情况更好。改变图像质量的控制由图7所示的用于编码器18中的量化电路57来执行。
图14和15是表示本发明提供的代码转换器101的配置。图15更详细地表示图14所示的配置。代码转换器101把提供到视频解码设备102的GOP结构和编码视频比特流的比特率分别转换为操作者希望和主机规定的GOP结构和比特率。实际上,通过假定均具有全部只是与代码转换器101相同功能的三个其他代码转换器连接在代码转换器101的前级来解释代码转换器101的功能。为了将GOP结构和比特流的比特率分别转换为多个GOP结构之一和多个比特率之一,则第一、第二、和第三代代码转换器以串联方式进行连接并且图15所示的***代码转换器101连接在第一、第二、和第三代代码转换器的串联连接之后。应注意,第一、第二、和第三代代码转换器未在图15中表示。
在本发明以下的描述中,由第一代代码转换器执行的编码处理被称为第一代编码处理而连接在第一代代码转换器之后的第二代代码转换器执行的编码处理被称为第二代编码处理。同样,连接在第二代代码转换器之后的第三代代码转换器执行的编码处理被称为第三代编码处理而连接在第三代代码转换器之后的***代码转换器即图15所示的代码转换器101执行的编码处理被称为***编码处理。此外,所用的以及作为第一代编码处理结果所得的编码参数被称为第一代编码参数而所用的以及作为第二代编码处理结果所得的编码参数被称为第二代编码参数。类似地,所用的以及作为第三代编码处理结果所得的编码参数被称为第三代编码参数而所用的以及作为***编码处理结果所得的编码参数被称为***编码参数或当前编码参数。
首先,解释由第三代代码转换器产生和提供给图15所示的***代码转换器101的第三代编码视频比特流ST(3rd)。第三代编码视频比特流ST(3rd)是作为由在***代码转换器101处提供的第三代代码转换器执行的第三代编码处理结果所得的编码视频比特流。在从第三代处理结果中得到的第三代编码视频比特流ST(3rd)中,在第三代编码处理产生的编码参数被分别描述为GOP层、图像层、限幅层和第三代的编码视频比特流ST的宏块层和序列层上的sequence-header()函数、sequence-extension()函数、goup-of-picture-header()函数、picture-header()函数、picture-coding-extension()函数、picture-data()函数、silce()函数和macroblock()函数。在从第三代编码处理中得到的第三代编码视频比特流ST描述在第三代编码处理中使用的第三代编码参数这个事实遵循MPEG 2标准而不揭示任何的新颖性。
本发明提供的代码转换器101的要点技术不是在第三代编码视频比特流ST中描述的第三代编码参数这个事实,而是在第三代编码视频比特流ST中包括的分别作为第一和第二代编码处理结果所得的第一和第二代编码参数这个事实。第一和第二代编码参数作为在第三代编码视频比特流ST的图像层的用户-数据区域中的历史数据流()。在本发明中,在第三代编码视频比特流ST的图像层的用户-数据区域中描述的历史数据流被称为“历史信息”而描述为历史流的参数被称为“历史参数”。在命名参数的另一种方式中,在第三代编码视频比特流ST中描述的第三代编码参数也可以被称为当前编码参数。在这种情况中,在第三代编码视频比特流ST的图像层的用户-数据区域中描述为历史流()的第一和第二代编码参数被称为“过去编码参数”,因为如果从第三代编码处理看,第一和第二代编码处理是在过去执行的每个处理。
分别作为第一和第二代编码处理的结果所得的第一和第二代编码参数除上述第三代编码参数之外也描述在第三代编码视频比特流ST(3rd)中的原因是要避免图像质量的恶化,即使在代码转换中重复地改变GOP结构和编码数据流的比特流时也一样。例如,一个图像可以在第一代编码处理中被编码为P-图像,并且,为了改变第一代编码视频比特流的GOP结构,此图像在第二代编码处理中被编码为B-图像。为了进一步改变第二代编码视频比特流的GOP结构,此图像在第三代编码处理中再次被编码为P-图像。因为基于MPEG标准的常规编码和解码处理是100%的反处理,那么每次执行通常已知的编码和解码处理时图像质量就恶化。在这种情况中不仅仅在第三代编码处理中再计算诸如量化标度、运动矢量和预测模式的编码参数。而是,再利用在第一代编码处理中产生诸如量化标度、运动矢量和预测模式的编码参数。诸如在第一代编码处理中最新产生的量化标度、运动矢量和预测模式的编码参数明显地具有高于在第三代编码处理中最新产生的计数器部分编码参数的精度。因此,通过再利用在第一代编码处理中产生的编码参数,有可能降低图像质量恶化的程度,即使重复地执行编码和解码电路也一样。
通过详细解释图15所示的***代码转换器101执行的解码和编码处理来将根据上述本发明的处理作为例证。视频解码设备102利用第三代编码参数解码和编码包括在第三代编码视频比特流ST(3rd)中的视频信号以便产生解码的基带数字视频信号。此外,视频解码设备102还解码在第三代编码视频比特流ST(3rd)的图像层的用户数据区域中被描述为历史流的第一和第二代编码参数。借助于参考如下图16来详细描述视频解码设备102的配置和操作。
图16是表示视频解码设备102的详细配置图。如图所示,视频解码设备102包含用于缓冲提供的编码比特流的缓冲器81、用于对此编码比特流执行可变长度解码处理的可变长度解码电路112、用于根据可变长度解码电路112提供的量化标度对完成可变长度解码处理的数据进行反量化的反量化电路83、用于对完成反量化的DCT系数进行反向离散余弦变换的IDCT电路84。用于执行运动补偿处理的处理器85、帧存储器单元和运动补偿电路87。
为了解码第三代编码视频比特流ST(3rd),可变长度解码电路112提取在第三代编码视频比特流ST(3rd)图像层、限幅层和宏块层上描述的第三代编码参数。典型地,由可变长度解码电路112提取的第三代编码参数包括表示图像类型的图像编码类型、表示量化标度步长大小的量化器标度代码、表示预测模式的宏块类型、表示运动矢量的运动矢量、表示帧预测模式的帧/场-运动类型和表示DCT模式或场DCT模式的dct类型。量化器-标度代码编码参数馈送到反量化电路83。另一方面,诸如图像编码类型、量化器标度代码、宏块类型、运动矢量、帧/场运动类型和dct类型其余编码参数馈送到运动补偿电路87。
可变长度解码电路112不仅提取上述的用于解码第三代编码视频比特流ST(3rd)所需的编码参数,而且还提取作为来自第三代编码视频比特流ST(3rd)的序列层、GOP层、图像层、限幅层和宏块层的、要发送到连接在图15所示的代码转换器101之后的第五代代码转换器的所有其他第三代编码参数。不必说诸如上述的在第三代处理中使用的图像编码类型、量化器标度代码、宏块类型、运动矢量、帧/场运动类型和dct-类型的以上第三代编码参数也包括在第三代历史信息中。操作者和主机根据传输容量事先确定什么编码参数要作为历史信息提取。
此外,可变长度解码电路112还提取在第三代编码视频比特流ST(3rd)的图像层的用户数据区域中描述的用户数据。从而馈送此用户数据到历史解码设备104。
历史解码设备104从第三代编码视频比特流ST(3rd)的用户层中的用户数据中提取作为历史信息描述的第一和第二代编码参数。更具体地,通过分析从可变长度解码电路12中接收的用户数据句法,历史解码设备104能够检测在用户数据中描述的历史数据ID和利用它来提取converted-history-stream()。然后,通过提取在预定间隔***的converted-history-stream()的1比特标志比特(标志比特),历史解码设备104能够得到histroy-stream()。通过分析history-stream()的句法,历史解码设备104能够提取记录在history-stream()中的第一和第二代编码参数。后面将详细描述历史解码设备104的配置和操作。
为了最终馈送第一、第二和第三代编码参数到用于执行***编码处理的视频编码设备106,历史信息复合设备103在视频解码设备102解码的基带视频数据中复合第一、第二和第三代编码参数。历史信息复合设备103接收来自视频解码设备102的基带视频数据、来自在视频解码设备102中使用的可变长度解码电路112的第三代编码参数和来自历史解码设备104的第一和第二代编码参数,从而在基带视频数据中复合第一、第二和第三代编码参数。具有在那里复合的第一、第二和第三代编码参数的基带视频数据然后馈送到编码参数分离设备105。
下面,通过参照图17和18解释在基带视频数据中复合第一、第二和第三代编码参数的技术。图17是表示由根据MPEG标准定义的均包含16像素16像素部分的亮度信号部分和色差信号部分构成的宏块图。包含16像素16像素的部分之一是由亮度信号的子块Y[0]、Y[1]、Y[2]和Y[3]构成而其他部分由色差信号的子块Cr[0]、Cr[1]、Cb[0]和Cb[1]构成。子块Y[0]、Y[1]、Y[2]和Y[3]和子块Cr[0]、Cr[1]、Cb[0]和Cb[1]均包含8像素8像素。
图18是表示视频数据的格式图。根据ITU推荐的RDT 601定义,此格式表示用于广播工业的所谓D1格式。由于D1格式被标准化为用于发送视频数据的格式,视频数据1个像素由10比特表示。
遵循MPEG标准解码的基带视频数据是8比特长度。在本发明提供的代码转换器中,遵循MPEG标准解码的基带视频数据利用如图8所示的10比特D1格式的8个高位比特D9至D2进行发送。因此,8比特解码视频数据流下在D1格式中未分配的2个低位比特D1和D2。由本发明提供的代码转换器利用包含这些用于发送历史信息的未分配比特的未分配区域。
图18所示的数据块是用于发送在宏块的8个子块中的一个像素的数据块。由于每个子块实际上包含如上所述的64(=8×8)像素,那么要求图18所示的每个64数据块发送包含8个子块的宏块数据量(VOLUME)。如上所述,亮度和色差信号宏块包含均由64(=8×8)像素构成的8个子块。因此,亮度和色差信号宏块包含8×64像素=512像素。由于每个像素剩下如上所述未分配的2比特,那么亮度和色差信号宏块具有512像素2未分配比特/像素=1024未分配比特。顺便指出,一代历史信息是256比特长。因此,前四(=1024/256)代历史信息就能叠加在用于亮度和色差信号的视频数据宏块上。在图18所示的例子中,第一、第二和第三代历史信息通过利用D1和D0的2个低位比特被叠加在视频数据的一个宏块上。
编码参数分离设备105从发送到那里的数据的8个高位比特中提取基带视频数据作为D1格式和来自2个低位比特中和历史信息。在图15所示的例子中,编码参数分离设备105从发送的数据中提取基带视频数据,从而馈送基带视频数据到视频编码设备106。同时,编码参数分离设备105从发送的数据中提取包含第一、第二和第三代编码参数的历史信息,从而馈送此历史信息到视频编码设备106和历史编码设备107。
视频编码设备106把由编码参数分离设备105提供到那里的基带视频信号编码为具有操作者和主机规定的GOP结构和比特流。应注意,改变GOP结构意味着改变包括在GOP中的图像数目、改变在两个连续I-图像之间存在的P-图像数目或改变在两个连续I-图像之间或在I-图像和P-图像之间存在的B-图像数目。
在图15所示的实施例中,提供的基带视频数据包括叠加在那里的第一、第二和第三代编码参数的历史信息。因此视频编码设备106借助于选择再利用这些历史信息段就能够执行***编码处理以便降低图像质量恶化的程度。
图19是表示在视频编码设备106中使用的编码器121的配置实物图。如图所示,编码器121包括运动矢量检测电路50、预测模式切换电路52、处理器53、DCT切换电路55、DCT电路56、量化电路57、可变长度编码电路58、传输缓冲器59、反量化电路60、反DCT电路61、处理器62、帧存储器63和运动补偿64。这些电路的功能几乎与图7所示的编码器18中使用的一样,从而不必对其重复说明。以下集中描述在图7所示的编码器121和编码器18之间的差别。
编码器121也包括用于控制构成编码器121的其他上述成分的操作和功能的控制器70。控制器70从操作者和主机接收规定GOP结构的一个指令,从而确定构成GOP结构的图像类型。此外,控制器70还从操作者或主机接收目标比特率信息,从而控制量化电路57以便设定由编码器121以规定的目标比特率输出的比特率。
此外,控制器70还接收由编码参数分离设备105输出的多代历史信息,以便通过再利用此历史信息编码参考图像。控制器70的功能在下面进行描述。
首先,控制器70对于从操作者或主机规定的GOP结构所确定的存在参考图像类型是否匹配包括在历史信息中的图像类型形成一个判定。也就是说,控制器70对于参考图像是否在过去以与规定图像类型相同的图像类型进行编码形成一个判定。
上述的判定格式可以通过利用图15所示的例子进行说明。控制器70对于是否分配给在***编码处理中的参考图像的图像类型与在第一代编码处理中的参考图像的类型、在第二代编码处理中的参考类型或第三代编码处理中的参考图像类型相同形成一个判定。
如果判定结果表示分配给在***编码处理中的参考图像的图像类型与任何前代编码处理的参考图像的图像类型不同,那么控制器70执行正常编码处理。这个判定结果指的是此参考图像决不经历以前在分配给***编码处理中的参考图像的图像类型中的第一、第二和第三代编码处理。另一方面,如果判定结果表示分配给在***编码处理中的参考图像的图像类型与任何前代编码处理的参考图像的图像类型相同,那么控制器70通过再利用前代参数执行参数再利用处理。这个判定结果指的是此参考图像经历以前在分配给***编码处理中的参考图像的图像类型中的第一、第二和第三代编码处理。
首先,解释由控制器70执行的正常编码处理。为了使控制器70作出关于应该选择帧预测模式或场预测模式的哪一个的决定,运动矢量检测电路50检测在帧预测模式中的预测差错和场预测模式中的预测差错,以便馈送预测差错值给控制器70。控制器70将此值彼此进行比较,以便选择具有最小预测模式的预测模式。预测模式切换电路52然后执行信号处理以便对应由控制器70选择的预测模式,从而馈送作为处理结果所得的信号到处理单元53。利用所选的帧预测模式,预测模式切换电路52执行信号处理以便按接收信号的样子馈送亮度信号到处理单元53,并执行色差信号的信号处理以便如先前参考图8描述的那样混合奇数场行和偶数场行。另一方面,利用所选的场预测模式,预测模式切换电路52执行亮度信号的信号处理以便使亮度子块Y[1]和Y[2]包含奇数场行而亮度子块Y[3]和Y[4]包含偶数场行,并执行色差信号的处理以便如先前参考图9描述的使上四行包含奇数场行而下四行包含偶数场行。
此外,为了使控制器70作出关于要选择内部图像预测模式、前向预测模式、后向预测模式或前向和后向预测模式的哪一个的决定运动矢量检测电路50产生用于每个预测模式的预测差错,从而提供预测差错到控制器70。控制器70从前向预测模式、后向预测模式或前向和后向预测模式中选择具有最小预测差错的模式作为中间图像预测模式。然后,控制器70比较所选的中间图像预测模式的最小预测差错与内部图像预测模式的预测差错,从而选择或者所选的中间图像预测或者具有最小预测差错的内部图像预测模式作为预测模式。更详细地,如果发现内部图像预测模式的预测差错更小,则建立内部图像预测模式。另一方面,如果发现中间图像预测模式的预测差错更小,则建立具有最小预测差错的所选的前向预测、后向预测模式或前向或后向预测模式。控制器70然后控制处理器53和运动补偿64以便在所建立的预测模式中操作。
另外,为了使控制器70作出有关要选择帧DCT模式或场DCT模式的哪一个的决定,DCT模式开关电路55转换四个亮度子块的数据为具有包含混合奇数和偶数场行的DCT模式格式的信号和具有包含分离的奇数和偶数场行的场DCT模式格式的数据,从而馈送此转换得到的信号到DCT电路56。DCT电路56计算包含混合奇数和偶数场行信号的DCT处理编码效率和包含分离的奇数和偶数场行信号的DCT处理的编码效率,从而馈送此计算的编码效率到控制器70。控制器70彼此间的编码效率,以选择具有最高效率的DCT模式。控制器70然后控制DCT模式开关电路55在所选的DCT模式中进行工作。
控制器70还接收表示操作者或主机规定的希望比特率的目标比特率和表示存储在传输缓冲器59中的数据量或缓冲器59内剩余的驻留空闲区大小的信号,以便根据目标比特率和缓冲器59内剩余的驻留空闲区大小产生用于控制量化电路57所用的量化步长大小的反馈q标度代码。此反馈q标度代码根据传输缓冲器59内剩余的驻留空闲区大小所产生的控制信号以便在防止在缓冲器59中溢出或下溢并使比特流以目标比特率从传输缓冲器59输出。更具体地,例如,如果在传输缓冲器59中缓冲的数据量变小,则减小量化步长使得增加下次编码的图像比特数。另一方面,如果在传输缓冲器59中缓冲的数据量变大,则增加量化步长使得减小下次编码的图像比特数。应注意,量化步长大小正比于反馈q标度代码。也就是说,当反馈q标度代码增加时,量化步长也增大。另一方面,当反馈q标度代码减小时,量化步长也减小。
下面,解释以代码转换器101为特征的再利用编码参数的参数再用编码处理。为了使示例容易理解,假定参考图像被编码为第一代编码处理中的I-图像,第二代编码处理中的P-图像和第三代编码处理中的B-图像,并得再次编码为当前***编码处理中的I-图像。在这种情况中,由于参考图像以前以分配给***编码处理的I-图像的所要求的图像类型在第一代编码处理中进行编码,那么控制器70利用第一代编码参数而不是利用从提供的视频数据中产生的新的编码参数来执行编码处理。要在***编码处理中再利用的这种编码参数的代表包括表示量化-标度步长大小的量化器标度代码、表示预测模式的宏块类型、表示运动矢量的运动矢量、表示帧预测模式或场预测模式的帧/场运动类型和表示帧DCT模式或场DCT模式的dct类型。控制器70不再利用作为历史信息接收的所有编码参数。而是控制器70只利用当作再利用判定的编码参数并新产生先前编码参数对其不适宜再利用的编码参数。
下面,通过集中在与前述正常编码处理的差异来解释再利用编码参数的参数再用编码处理。在正常编码处理中,运动矢量检测电路50检测参考图像的运动矢量。另一方面,在再利用编码参数的参数再用编码处理中,运动矢量检测电路50不检测参考图像的运动矢量。而是,运动矢量检测电路50再利用作为第一代历史信息传送的运动-矢量。使用第一代运动矢量的原因将按如下进行解释。由于作为第三代编码比特流的编码处理结果所得的基带视频数据经历至少三次编码处理,则与原始视频数据相比其图像质量明显不好。从具有不好图像质量的视频数据中检测的运动矢量就不精确。更具体地,提供给作为第一代历史信息的***代码转换器101的运动矢量当然具有高于在***编码处理中检测的运动矢量的精确度。通过再利用作为***编码参数接收的运动矢量,在***编码处理期间图像质量不恶化。控制器70馈送作为第一代历史信息接收的运动矢量到运动补偿64和可变长度编码电路58以便用做在***编码处理中编码的参考图像的运动矢量。
在正常处理中,运动矢量检测电路50检测帧预测模式中的预测差错和场预测模式中的预测差错以便选择或者帧预测模式或场预测模式。另一方面,在基于再利用编码参数的参数再用编码参数中,运动矢量检测电路50既不检测帧预测模式中的预测差错也不检测场预测模式中的预测差错。而是作为第一代历史信息接收的帧/场运动类型以便表示再利用帧预测模式或场预测模式。这是因为在第一代编码处理中检测的每个预测模式的预测差错具有高于在***编码处理中检测的每个预测模式的预测差错的精确度。因此,基于均具有高精确度的预测差错选择的预测模式将允许执行更优的编码处理。更具体地,控制器70馈送表示作为第一代历史信息接收的帧/场运动类型的控制信号到预测模式切换电路53。此控制信号驱动预测模式切换电路52根据再利用的帧/场运动类型执行信号处理。
在正常处理中,运动矢量检测电路50还检测在每个内部图像预测模式、前向预测模式、后向预测模式和前向和后向预测模式中的预测差错以便选择这些预测模式之一。另一方面,在基于再利用编码参数的处理中,运动矢量检测电路50不检测这些预测模式的预测差错。而是,选择由作为第一代历史信息接收的宏块类型表示的内部图像预测模式、前向预测模式、后向预测模式和前向和后向预测模式之一。这是因为在第一代处理中检测的每个预测模式的预测差错具有高于在***处理中检测的每个预测模式的预测差错的精确度。因此,基于均具有高精确度预测差错所选的预测模式将允许执行更高效率的编码处理。更具体地,控制器70选择由包括在第一代历史中的宏块类型表示的预测模式并控制处理器53和运动补偿64在所选的预测模式中操作。
在正常编码处理中,DCT模式开关电路55馈送转换为帧DCT模式格式的信号和转换为场DCT模式格式的信号二者到DCT电路56以便用于比较帧DCT模式中的编码效率与场DCT模式中的编码效率。另一方面,在基于再利用编码参数的处理中,既不产生转换为帧DCT模式格式的信号也不产生转换为场DCT模式格式的信号。而是,只执行包括在第一代历史信息中的dct类型表示的DCT模式中的处理。更具体地,控制器70再利用包括在第一代历史信息中的dct类型并控制DCT模式开关电路55以便根据由dct类型表示的DCT模式执行信号处理。
在正常编码处理中,控制器70根据操作者或主机规定的目标比特率和传输缓冲器59中剩余的驻留空闲区大小控制在量化电路57中使用的量化步长大小。另一方面,在基于再利用编码参数的处理中,控制器70根据操作者或主机规定的目标比特率、传输缓冲器59中剩余的驻留空闲区大小和包括在历史信息中的过去的量化标度控制在量化电路57中使用的量化步长大小。应注意,在以下描述中,包括在历史信息中的过去量化标度被称为历史q标度代码。在后面要描述的历史数据流中,量化标度被称为量化器标度代码。
首先,控制器70产生表示与正常编码处理情况相同的当前量化标度反馈q标度代码。反馈q标度代码设置成从传输缓冲器59中剩余的驻留空闲区大小中确定的这样一个值以致于在传输缓冲器59中既不出现溢出也不出现下溢。于是,表示包括在第一代历史数据流中的先前量化标度的历史-q-标度-代码与表示当前量化标度的反馈q标度代码进行比较以便确定哪个量化标度更大。应注意,大量化标度意指大量化步长。如果发现表示当前量化标度的反馈-q-标度-代码大于表示多个先前量化标度中最大的历史q标度代码,那么控制器70就馈送表示当前量化标度的反馈q标度代码到量化电路57。另一方面如果发现表示最大先前量化标度的历史q标度代码大于表示当前量化标度的反馈q标度代码,那么控制器70就馈送表示最大先前量化标度的历史q标度代码到量化电路57。控制器70选择在包括在历史信息中的多个先前量化标度中和从传输缓冲器59中剩余的驻留空闲区大小中导出的当前量化标度中选择最大的一个。换句话说,控制器70控制量化电路57利用在当前编码处理(或***编码处理)和先前编码处理(第一、第二和第三代编码处理)中使用的量化步长中的最大量化步长进行量化。下面描述其原因。
假定在第三代编码处理中产生的数据流比特率是4Mbps并且执行***编码处理的编码器121设定的目标比特率是15Mbps。通过简单地递减量化步长实际上不能获得高于先前比特率的这样一个目标比特率。这是因为以小量化步长对完成先前以大量化步长执行的编码处理的图像执行当前的编码处理决不改善图像的质量。这就是说,以小量化步长对完成先前以大量化步长执行的编码处理的图像执行当前的编码处理仅仅增加合成的比特数,但不帮助改善图像的质量。因此,通过利用在用于当前编码处理(或***处理)和先前编码处理(或第一、第二和第三代编码处理)中的最大量化步长,可以执行最有效的编码处理。
下面,通过参考图15解释历史解码设备104和历史编码设备107。如图所示,历史解码设备104包括用户数据解码器201、转换器202和历史解码器203。用户解码器201解码由视频解码设备102提供的用户数据。转换器202转换由用户数据解码器201输出的数据而历史解码器203重放来自转换器202输出的数据的历史信息。
另一方面,历史编码设备107包括历史格式化器211、转换器212和用户数据格式化器213。历史格式化器211格式化由编码参数分离设备105馈送到那的三代编码参数。转换器212转换历史格式化器211输出的数据而用户数据格式化器213格式化转换器212输出的数据为用户数据格式。
用户数据解码器201解码由视频解码设备102馈送的用户数据,以便提供解码结果到转换器202。后面将描述用户数据的细节。在任何速率,由用户数据()表示的用户数据包含用户数据起始代码和用户数据。根据MPEG规范,禁止用户数据中的23个连续:“0”比特的产生以便预防不正确的检测起始代码。由于历史信息可以包括23个或更多个连续“0”比特,则有必要处理和转换历史信息为以后将参照图38描述的转换的历史数据流()。通过***“1”比特来执行此转换的部件是在历史编码设备107中使用的转换器212。另一方面,在历史解码设备104中使用的转换器202与在历史编码设备107中使用的转换器212所执行的转换相反,它执行删除比特的转换。
历史解码器203从转换器202输出的数据中产生历史信息,从而输出此信息到历史信息复用设备103。
另一方面,在历史编码设备107中使用的历史格式化器211转换由编码参数分离设备105馈送到那的三代编码参数格式为历史信息格式。历史信息格式可以有下面将描述的图40到46所示的固定长度或下面也要描述的如图47所示的可变长度。
由历史格式化器211格式化的历史信息被转换器212转化为转化的历史数据流()以便防止如上所述的不正确地检测用户数据()的起始代码。这就是说,当历史信息可能包括23个或更多个连续的“0”比特时,MPEG规范禁止了用户数据中23个连续“0”比特的产生。因此,在后面要描述的历史数据流中,根据构成的禁止转换器212通过***“1”比特转换历史信息。
用户格式化器213根据后面要描述的图38所示的句法将数据-ID和用户-数据-数据流-代码加到由转换器212馈送的converted-history-stream()中以便产生能够***video-stream()的用户数据,从而输出用户数据到视频编码设备106。
图20是表示历史格式化器211的典型配置方框图。如图20所示,代码语言转换器301和代码长度转换器305从编码参数分离设备105中姐艘项目数据和项目-号数据。项目数据是编码参数,即这次作为历史信息发送的编码参数。项目号数据是用于识别包括此编码参数的数据流的信息。项目号数据的例子是句法名称和后面要描述的序列首部名称。代码语言转换器301转换馈送到此的编码参数为遵循规定句法的代码语言,从而输出此代码到桶型移位器302。桶型移位器302将馈送到此的代码语言桶型位移对应于地址产生电路306馈送到此的信息的一个位移量,从而以字节单位输出移位的代码到开关303。开关303的接触位置可以由地址产生电路306输出的不同选择信号进行转换,它具有如桶型移位器302馈送的一样多的多对接触极。开关303将桶型移位器302馈送到此的代码传送到单元RAM单元304以便以地址产生电路306规定的写地址进行存储。存储RAM单元304中的代码于从地址产生电路306规定的读地址中读出并馈送到下级提供的转换器212。如果必要,从RAM单元304读出的代码利用开关303再次馈送到RAM单元304以便再次在那存储。
代码长度转换器305从馈送到此的句法和编码参数中确定编码参数的代码长度,从而输出代码长度信息到地址产生电路306。地址产生电路306根据从代码长度转换器305中接收的代码长度信息产生上述的位移量、比特选择信号、写地址和读地址。位移量、比特选择信号、地址分别馈送到桶型移位器302、开关303和RAM单元304中。
如上所述,历史格式化器211用做用于对馈送到此的编码参数选择可变长度编码处理和用于输出此可变长度编码处理的结果的所谓可变长度编码器。
图22是表示转换器212的典型配置方框图。在这个典型配置中,8比特数据从历史格式化器211和转换器212之间提供的缓冲器存储器单元320中的读地址中读出并馈送到8比特D型触发电路(D-FF)321以便在此保持。读地址由控制器326产生。从8比特D型触发电路(D-FF)321读出的8比特数据馈送到填充电路323和8比特D型触发电路322以便在此保持。从8比特D型触发电路322读出的8比特数据也馈送到填充电路323。更详细地,从8比特D型触发电路321读出的8比特数据与从8比特D型触发电路322读出的8比特数据链接以便形成16比特并行数据,随后将此并行数据馈送到填充电路323。
填充电路323***代码“1”到信号规定的填充位置以便产生具有馈送到桶型移位器324的总共17比特的数据。表示填充位置的信号由控制器326馈送并且***代码“1”的操作被称为填充。
桶型移位器324将填充电路323馈送到此的数据桶型移位由从控制器326中接收的信号表示的位移量,从而从此位移的数据中提取8比特数据。提取的数据然后输出到8比特D型触发电路325以便在此存储。保持在8比特D型触发电路325的数据最后利用缓冲器存储器单元327输出到后级提供的用户数据格式化器213中。这就是说,数据以控制器326产生的写地址暂存在转换器212和用户格式化器213之间提供的缓冲器存储器单元327中。
图23是表示填充电路323典型配置的方框图。在这个配置中,从D型触发电路321和322中接收的16比特数据馈送到开关331-16到331-1的接触点上。馈送到开关331-i(其中i=0-15)接触点的数据段也馈送到开关331-i的接触点C。开关331-i(其中i=0-16)是相邻于开关331-i(其中i=0-15)的开关(分别如图MSB侧的开关331-i(其中i=0-15)。例如在相邻开关331-12的MSB侧,馈送到开关331-13的接触点a的LSB的第十三段数据也馈送到开关331-12的接触点C。同时馈送到开关331-14的接触点a的LSB的第十四段数据也馈送到开关331-13的接触点C。
然而,在开关331-1的底端提供的开关331-0的接触点a是开路的,因为在对应于LSB的开关331-0的底端没有提供开关。此外,在开关331-15的顶端提供的开关331-16的接触点C也是开路的,因为在对应于MSB的开关331-16的顶端没有提供开关。
数据“1”馈送到开关331-0至331-16的接触点b。解码器332在由控制器326接收的填充位置信号表示的填充位置将开关331-0至331-16之一转换到接触点b以便***数据“1”到此填充位置。在填充位置处的开关LSB端的开关331-0至331-16转换到其接触点C而在填充位置处的开关MSB端的开关331转换到其接触点a。
图23表示数据“1”***到LSB端第十三比特的一个例子。因此,在这种情况中,开关331-0至331-12转换到其接触点C并且开关331-14至331-16转换到其接触点a。开关331-13转换到其接触点b。
利用上述配置,图22所示的转换器212将22比特代码转换为包括***数据“1”到23比特代码,从而输出转换的23比特结果。
图24是表示由图22所示的转换器212的多个部分输出的数据段定时图。当转换器212中实用的控制器326与数据字节的时钟信号同步地产生图24A所示的读地址时,存储在此读地址的字节数据就从缓冲器存储器单元320中读出并暂时保持在D型触发器电路321中。然后,从D型触发器电路321读出的图24B的数据馈送到填充电路323和D型触发器电路322以便在那保持。从D型触发器电路322读出图24C的数据与从D型触发器电路321读出的图24B的数据链接并且作为图24D所示的链接结果得到的数据馈送到填充电路323。
从而,利用读地址的定时A1,从D型触发器电路321读出的图24B的数据的第一字节D0馈送到填充电路323作为图24D所示的数据的第一字节。然后,利用读地址A1的定时,从D型触发器电路321读出的和与从D型触发器电路322读出的图24C的数据的第一字节D0链接的图24B的数据的第二字节D1送到填充电路322作为图24D中所示的数据的第二个两字节。随后,利用读地址A3的定时,从D型触发器电路321读出的和与从D型触发器电路322读出的图24C的数据的第二字节D1链接的图24B的数据的第三字节D2送到填充电路323作为图24D中所示的数据的第三个两字节等等。
填充电路323从控制器326接收表示要在其中***“1”的填充位置的图24E的一个信号。在填充电路323使用的解码器332将填充位置上的开关331-0至331-16之一转换到那儿的接触点b。在填充位置处的开关LSB一侧上的开关331转换到其接触点c而在填充位置处的开关MSB一侧上的开关331转换到其接触点a。结果,填充电路323将数据“1”到***填充位置信号中,从而输出具有图24F所示的***的数据“1”的数据。
桶形移位器324桶形移位由填充电路323馈送到那儿的数据由从控制器326接收的位移信号表示的一个位移量,从而输出图24H所示的位移信号。此位移信号在输出到如图24I所示的后级之前暂时保持在D类型触发器电路325中。
从D类型触发器电路325输出的数据包括***到22比特数据后位置中的数据“1”。因此,连续的0比特数决不超出22个,即使在数据“1”和下一数据“1”之间的所有比特都为“0”时也如此。
图25表示转换器202的典型配置方框图。在转换器202中使用的从D型触发电路341到控制器346范围内的部件与图22所示的在转换器212使用从D型触发电路321到控制器326范围内的部件相同这个事实表示以前的配置与后来的配置大体相同。转换器202与转换212的不同之处在于,在前一个情况中,采用删除电路343替代后者的填充电路323。否则,转换器202的配置就与图22所示的转换器212的配置相同。
在转换器202中使用的删除电路343在由控制器346输出的信号表示的删除位置上删除一个比特。删除位置对应于图23所述的填充电路323***数据“1”的填充位置。
转换器202的其余操作与图22所示的转换器执行的操作相同。
图26是表示删除电路343的典型配置方框图。在这个配置中,从D型触发电路341和342中接收的16比特数据的LSB端的15比特馈送到开关351-0和351-14的接触点a。馈送到开关351-i(i=1-14)接触点a的数据段也馈送到开关351-i(i=0-13)的接触点b。开关351-i(i=1-14)是在开关351-i(i=0-13)的MSB端(或图所示的上端)上的相邻的开关351-i(i=1-13)。例如,馈送到相邻351-12的MSB端的开关351-13的接触点a的LSB的第十三段数据也馈送到开关351-12的接触点b。同时,馈送到相邻351-13的MSB端的开关351-14的接触点a的LSB的第十四段数据也馈送到开关351-13的接触点b。解码器352在由控制器346输出的信号表示的删除位置上删除一个比特,从而输出排除此删除比特的其余15比特数据。
图26表示删除来自LSB(输入比特12)的第十三输入比特的一个状态。因此,在这种情况中,开关351-0至351-11转换到其接触点a以便照原样输出来自LSB(比特0)的12个输入比特到第十二比特(比特11)。另一方面,开关351-12至351-14转换到接触点b以便分别传送第十四至第十六输入比特(输入比特13至15)为第十三至十五输出比特(输出比特12到14)。在此状态,来自LSB(输入比特12)的第十三输入比特不连接到输出线路。
16比特数据馈送到图23所示的填充电路323和图26所示的删除电路343。这是因为馈送到填充电路323的数据是由图22所示的转换器212中使用的8比特D型触发电路321和322输出的数据段链接的结果。同样,馈送到删除电路343的数据是由图25所示的转换器202中使用的8比特D型触发电路341和342输出的数据段链接的结果。在图22所示的转换器212中使用的桶型触发器324将填充电路323馈送到此的17比特数据桶型移位由从控制器326接收的信号表示的一个位移量,从而最终从移位的数据中提取典型的8比特数据。同样,在图25所示的转换器202中使用的桶型移位器344将填充电路324馈送到此的15比特数据桶型移位由从控制器346接收的信号表示的一个位移量,从而最终从移位的数据中提取典型的8比特数据。
图21是表示用于在转换器202中解码完成历史格式化处理的数据的历史解码器203的典型配置方框图。由转换器202馈送到历史解码器203的编码参数数据馈送给RAM单元311以便以地址产生电路315规定的写地址在此存储。地址产生电路315也输出具有预定定时的读地址到RAM单元311。在那个时刻,以读地址存储在RAM单元311的数据输出到桶型移位器312。桶型移位器312将馈送到此数据桶型移位对应于由地址产生电路315馈送到此的信息的一个位移量,从而输出此移位的数据到反向代码长度转换器313和314。
反向代码长度转换器313和314也接收包括来自转换器202的编码参数的数据流的句法名称。反向代码长度转换器313根据句法确定来自此数据或馈送到此的代码长度的编码参数的代码长度,从而输出代码长度信息到地址产生电路315。
另一方面,反向代码长度转换器314根据句法解码或反向编码由桶型移位器312馈送的数据,从而输出解码出来结果到历史信息复合设备103。
此外,反向代码长度转换器314也提取用于识别包括什么样的代码语言所需的信息,即用于确定代码非限定性所需的信息,从而输出此信息到地址产生电路315。地址产生电路315根据从反向代码长度转换器313接收的此信息和代码长度产生写和读地址以及位移量,从而将写/读地址输出到RAM单元311和位移量输出到桶型寄存器312。
图27是表示转换器212的另一典型配置的方框图。在此配置中使用的计数器361计数馈送到此的连续0比特数据的数目,从而输出计数结果到控制器326。当馈送到计数器361的连续0比特数据数目达到22时,控制器326就输出代表填充位置的信号到填充电路323。同时,控制器326复位计数器361,以便允许计数器361再开始从0计数连续0比特数目。其余的配置和操作与图22所示的转换器212的配置和操作相同。
图28是表示转换器202的另一典型配置方框图。再此配置中使用的计数器371计数馈送到此的连续0比特数据的数目,从而输出计数结果到控制器346。当馈送到计数器371的连续0比特数据数目达到22时,控制器346就输出代表删除位置的信号到删除电路343。同时,控制器346复位计数器371,以便允许计数器371再开始从0计数连续0比特数目。其余的配置和操作与图25所示的转换器202的配置和操作相同。
如上所述,在图27和28所示的典型配置中,数据“1”作为标志比特***,并且当计数器检测包含预定连续0比特数目的预定码型时,数据“1”相应地被删除。图27和28所示的典型配置允许利用比图22和25分别所示的配置更高的效率进行处理。
图29是表示用户格式化器213的典型配置方框图。在此配置中,当控制器383输出读地址到在转换器212和用户数据格式化器213之间提供的缓冲器存储器(未示出)时,数据就从读地址读出并馈送到在用户数据格式化器213中使用的开关382的接触点a。应注意缓冲器本身未在图中表示。在ROM单元381中,存储用于产生诸如用户数据代码和数据ID的用户数据()所需的数据。控制器313转换开关382到具有预定定时的接触点a或接触点b以便允许开关382选择存储ROM单元381中数据或由转换器212馈送的数据并传送所选的数据。以这种方式,具有用户数据()格式的数据输出到视频编码设备106中。
值得注意,借助于利用用于删除从类似于图29所示的用户数据格式化器213中使用的ROM单元381的ROM单元中读出的***数据的一个开关输出输入数据能够实施用户数据解码器201。用户数据解码器201的配置未在图中显示。
图30是表示用于视频室业务的串联连接多个代码转换101-1至101-N的实施状态方框图。在代码转换器101-i(i=1-N)中使用的历史信息复合设备103-i在用于在记录编码参数所用的区域中存储最当前编码参数的区域均写入本身所用的最当前的编码参数。结果,基带图像数据包括编码参数或与图像数据的宏块有关的四个最新代的世代历史信息。
在编码设备106-i中使用的图19的编码器121-i中使用的可变长度编码电路58根据从编码参数分离电路105-i中接收的当前编码参数对从量化电路57中接收的视频数据编码。结果,当前编码参数在包括在可变长度编码电路58产生的比特流中的图像首部()中通常被复用。
此外,可变长度编码电路58也将用户数据复用为输出比特流,所说的用户数据包括世代历史信息并从历史编码设备107-i接收。此复用处理不是类似图18所示处理的实施处理,而是将用户数据复用比特流。于是,由视频编码设备106-i输出的比特流利用SDTI 108-i在下级馈送到代码转换器101-(i+1)。
代码转换器101-I和101-(i+1)的配置与图15所示的配置相同。他们执行的处理因此能参照图15进行解释。如果希望在利用实际编码参数历史的编码操作中将当前图像类型从I-图像转换为P-或B-图像,那么为先前所用的P-或B-图像的类型搜索先前编码参数的历史。如果在历史中发现P-或B-图像历史,那么包括运动矢量的参数就用来改变图像类型。另一方面,如果在历史中未发现P或B-图像历史,那么就放弃没有运动检测的图像类型的修改。不必说,假如执行运动检测的话,即使在历史中未发现P或B-图像的编码参数也能改变图像类型。
在图18所示的格式中,在图像数据中体现四代编码参数。作为选择,每个I-、P-和B-图像的参数也可以在类似于图31所示的一个格式中体现。在图31所示的例子中,对于操作中的每个图像类型记录编码参数或一代图像历史信息以便在先前出现的图像类型中编码相同的伴随改变的宏块。在这种情况中,图16所示的解码器111输出用于I-、P-和B-图像的一代编码参数而不是最当前、第一、第二和第三前代编码参数以便馈送到图19所示的编码器121。
此外,由于不使用Cb[1][X]和Cr[1][X],本发明也可以应用不使用Cb[1][X]和Cr[1][X]区域的4:2:0格式的图像数据。在此例子的情况中,解码设备102取出解码过程中编码参数并识别此图像类型。解码设备102写入或复合此编码参数为对应于图像信号的图像类型的位置并输出此复合的图像信号到编码参数分离设备105。编码参数分离设备105从图像数据中分离编码参数,通过利用分离的编码参数编码参数分离设备105能够执行后解码编码处理同时考虑通过采取要改变的图像类型和馈送到此的编码参数改变此图像类型。
代码转换器101具有不同于参数再利用编码处理的另一种操作以便仅在控制器70不允许运动矢量检测电路操作的情况下阻止我的一个可变图像类型。
参考图32所示的流程图解释其他操作。如图32所示,流程从步骤S1开始,在此步骤用于每个图像类型的编码参数或一代图像历史信息馈送到编码器121的控制器70。处理流程然后进行到步骤S2,在此步骤编码参数分离设备105对于图像历史信息是否包括在改变到B图像中使用的编码参数形成一个判定。如果图像历史信息包括在改变到B图像中使用的编码参数,那么处理流程进到步骤S3。
在步骤S3,控制器70对于图像历史信息是否包括在改变到P图像中使用的编码参数形成一个判定。如果图像历史信息包括在改变到P图像中使用的编码参数,那么处理流程进到步骤S4。
在步骤S4,控制器70确定可变图像类型是I-、P-和B-图像。另一方面,如果在步骤S3形成的判定结果表示图像历史信息不包括在改变到P图像中使用的编码参数,那么处理流程进到步骤S5。
在步骤S5,控制器70确定可变图像类型是I-和B-图像。此外,控制器70通过只利用前向预测矢量和包括在B图像的历史信息中的非后向预测矢量执行特定处理来确定P-图像的伪变化也是可能的。另一方面,如果在步骤S2形成的判定结果表示图像历史信息不包括在改变到B图像中使用的编码参数,那么处理流程进到步骤S6。
在步骤S6,控制器70对于图像历史信息是否包括在改变到P图像中使用的编码参数形成一个判定。如果图像历史信息包括在改变到P图像中使用的编码参数,那么处理流程进到步骤S7。
在步骤S7,控制器70确定可变图像类型是I-和P-图像。此外,编码参数分离设备105通过只利用前向预测矢量和包括在B图像的历史信息中的非后向预测矢量执行特定处理来确定P-图像的变化也是可能的。
另一方面,如果在步骤S6形成的判定结果表示图像历史信息不包括在改变到P图像中使用的编码参数,那么处理流程进到步骤S8。在步骤S8,控制器70确定只有可变图像类型是I图像,因为不存在运动矢量。I图像不能改变到除I图像之外的任何其他特征类型。
完成步骤S4、S5、S7或S8之后,处理流程进到S9,在此步骤,控制器70在图中未显示的显示单元上通知用户此可变图像类型。
图33是表示图像类型改变的例子图。当图像类型改变时,包含GOP结构的帧数也改变。为更详细,在这些例子中,长GOP结构改变为第二代短GOP结构。然后,第二代GOP结构在第三代变回为长GOP。此长GOP结构具有N=15和M=3,其中N是构成GOP的帧数而M是根据帧表达的P图像出现的周期。另一方面,短GOP具有N=1和M=1,其中M是根据帧表达的I图像出现的周期。应注意图中所示的虚线表示两个相邻GOP之间的边界。
当第一代GOP结构变为第二代GOP结构时,所有帧的图像类型能够改变为I图像,这从处理说明中看是显而易见的以便确定以上给出的可变图像类型。当这些图像类型改变时,在第一代编码资源视频信号进行处理的所有运动矢量就被存储或留下。然后,此时短GOP结构在第三代变回为长GOP结构。即,即使图像类型改变,也再利用当资源视频信号在第一代编码时保存的每个类型的运动矢量,从而允许变回长GOP结构使得避免了图像质量的恶化。
图34是表示在图像类型中变化的另一示例图。在这些例子的情况中,在第二代从具有N=14和M=2的长GOP结构变化到具有N=2和M=2的短GOP结构并随后到具有N=1和M=1的短结构并最后到在***具有未定帧计数N的随机GOP。
在这些例子中还有,保存当资源视频信号作为第一代被编码时进行处理的每个图像类型的运动矢量,直至***。结果,通过再利用保存的编码参数,即使图像类型以图34所示的复杂方式改变图像质量的恶化也能降低到最小。此外,如果有效利用保存的编码参数的量化标度,就能实施只引起小量图像质量恶化的编码处理。
通过参考图35解释量化标度的再利用。图35是表示某个参考帧总是利用来自第一到***的I图像编码的情况图。只有比特率从第一代的4Mbps变为第二代的18Mbps然后是第三代的50Mbps最后回到***的4Mbps。
当在第一代产生的4Mbps比特流的比特率变到第二代的18Mbps比特率时,即使以伴随比特率增长的小量化标度执行后解码编码处理也不改善图像质量。这是因为以前以原始量化步长量化的数据没有存储。因此,在如图35所示的处理过程中以跟随比特率升高的小量化步长的量化仅仅增加了信息量而并没有导致图像质量的改善。由于此原因,如果执行控制以便维持以前所用的最原始或最大的量化标度,那么就能最少地损耗和最高效地实施编码处理。
如上所述,当比特率改变时,通过利用以前的量化标度历史,能够最有效地实施编码处理。
通过参考图36所示的流程图解释此量化控制处理。如图所示,流程从步骤S11开始,在此步骤,控制器70对于输入图像历史信息是否包括从现在要改变的图像类型的编码参数形成一个判定。如果判断结果表示输入图像历史信息包括要改变的图像类型编码参数,那么处理流程进到步骤S12。
在步骤S12,控制器70从上述用于包括在图像历史信息中的比较的编码参数中提取历史q标度代码。
处理流程随后进到步骤S13,在此步骤,控制器70根据传输缓冲器59的数据满度计算反馈q标度代码的候选值。
流程然后进到S14,在此步骤,控制器70做出历史q标度代码是否比反馈q标度代码大或粗的判断。如果判断结果表示历史q标度代码比反馈q标度代码大或粗,那么流程继续到步骤S15。
在步骤S15,控制器70馈送作为量化标度的历史q标度代码到量化电路57,量化电路57然后通过利用历史q标度代码执行量化处理。
流程然后进到步骤S16,在此步骤,控制器70对于包括在帧中的所有的宏块是否已被量化形成一个判定。如果判定结果表示包括在帧中的所有的宏块还未被量化,那么流程返回到S13以便重复地执行步骤S13到步骤S16的处理部分直至包括在帧中的所有宏块都被量化。
另一方面,如果在步骤S14形成的判定结果表示历史q标度代码不大于反馈q标度代码,即历史q标度代码小于反馈q标度代码,那么流程继续到步骤S17。
在步骤S17,控制器70馈送作为量化标度的反馈q标度代码到量化电路57,量化电路57然后通过利用反馈q标度代码执行量化处理。
另一方面,如果在步骤S11形成的判定结果表示输入图像历史信息不包括要改变的图像类型的编码参数,那么流程进到步骤S18。
在步骤S18,量化电路57从控制器70接收反馈q标度代码的候选值。
流程然后进到步骤S19,在此步骤量化电路57通过利用Q反馈执行量化处理。
流程然后进到步骤S20,在此步骤,控制器70对于包括在帧中的所有的宏块是否已被量化形成一个判定。如果判定结果表示包括在帧中的所有的宏块还未被量化,那么流程返回到步骤S18以便重复地执行步骤S18到步骤S20的处理部分直至包括在帧中的所有宏块都被量化。
以前参考图15解释的代码转换器101通过在基带视频数据复用这些参数,馈送以前的第一、第二和第三代编码参数到视频编码设备106。但是在本发明中,在基带视频数据中复用以前的编码参数的技术不是绝对需要的。例如,以前的编码参数可以通过利用诸如于图37所示的基带视频数据线路分离提供的数据总线的传输线路来传送。
图37所示的视频解码设备102、历史解码设备104、视频编码设备106和历史编码设备107分别与前面已参考图15描述的视频解码设备102、历史解码设备104、视频编码设备106和历史编码设备107完全相同的配置和功能。
在视频解码设备102中使用的可变长度解码电路112从序列层、GOP层、图像层、限幅层和第三代编码视频ST(3rd)的宏块层提取第三代编码参数,从而馈送此参数到历史编码设备107和视频编码设备106中使用的控制器70。历史编码设备107转换馈送到此的第三代编码参数成为未能在图像层上的用户数据区域中进行描述的转换的历史数据流(),从而馈送此转换的历史数据流()到用户数据的视频编码设备106中使用的可变长度编码电路58。
此外,可变长度解码电路112也从第三代编码的视频比特流ST(3rd)的图像层上的用户数据区域中提取包括以前第一和第二代编码参数的用户数据(用户数据),从而馈送此用户数据到历史解码设备104和在视频编码设备106中使用的可变长度编码电路58。历史解码设备104从在作为转换的历史数据流()的用户数据中描述的用户数据的历史数据流中提取第一和第二代编码参数,从而馈送此参数到视频编码设备106中使用的控制器70。视频编码设备106的控制器70根据从历史解码设备104中接收的第一和第二代编码参数以及从视频解码设备102中接收的第三代编码参数控制由视频编码设备106执行的编码处理。
同时,在视频编码设备106中使用的可变长度编码电路58接收包括来自视频解码设备102的第一和第二代编码参数的用户数据(用户-数据)和包括来自历史编码设备107的第三代编码参数的用户数据(用户-数据),从而在作为历史信息的***编码视频比特流的图像层上的用户数据区域中描述用户数据段。
图38是表示用于解码MPEG视频数据流所用的句法图。解码器根据此句法解码MPEG比特数据流。以便从比特流中提取多个同样的数据项目或同样的数据单元。在下面将要解释的句法中,函数和条件状态均由通常的字符串表示而数据单元由粗线字符表示。由表示数据项目名称的助记(Mnemonic)描述的数据项目,有些情况下,助记还指示包括数据项和数据项类型的位长度。
首先,解释在图38所示的句法中所用的函数。next-start-code()是用于搜索在比特流中描述的起始代码的比特流的一个函数。在图38所示的句法中,next-start-code()函数跟随sequence-header()函数和顺序设定的sequence-extension()函数以便表示比特流包括由sequence-header()和sequence-extension()函数限定的数据单元。因此,在sequence-header()和sequence-extension()函数的开始描述的一种数据单元即起始代码就由next-start-code()功能从操作中的比特流中求出以便对此比特流解码。起始代码然后作为基准,以便进一步找到sequence-header()和sequence-extension()函数以及由sequence-header()和sequence-extension()函数定义的解码数据元。
应指出,sequence-header()函数是用于定义MPEG比特流中序列层的标题数据的函数,而sequence_extension()函数是用于定义MPEG比特流中序列层的扩展数据的函数。
在sequence_extension()函数后说明do{}while语句。do{}while语句包括在do语句后的{}块和在{}块后的while语句。只要while语句定义的条件为真,从比特流中提取由do语句后{}块中的函数描述的数据元。也就是说,只要while语句定义的条件为真,do{}while语法定义解码处理,以提取由do语句后的{}块中的函数描述的数据元。
while语句中使用的nextbit()是用于把比特流中出现的一个比特或比特串与下一个将要解码的数据元比较的函数。在图38所示的语法例子中,nextbit()函数将比特流中出现的比特串与用来表明视频序列结束的序列结束码比较。如果比特流中出现的该串比特与序列结束码不匹配,while语句定义的条件则为真。于是,sequence_extension()函数后描述的do{}while语句表明只要用来表示视频序列结束的序列结束码未出现在比特流中,则在比特流中描述由do语句后的{}块中的函数描述的数据元。
在比特流中的sequence_extension()函数定义的数据元之后,描述extension_and_user_data(0)函数定义的数据元。extension_and_user_dara(0)函数是用于定义扩展数据和MPEG比特流序列层的用户数据的函数。
extension_and_user_data(0)函数之后的do{}while语句是只要while语句定义的条件是真,则从比特流提取do语句后的{}块中的函数描述的数据元。while语句中使用的nextbit()函数是用来通过将比特串与该函数中规定的起始代码比较来做出比特流中出现的一个比特或一串比特是否分别与图像起始代码或起始代码组匹配的判断的函数。如果比特流中出现的该串比特与图像起始代码或起始代码组匹配,则认为while语句定义的条件为真。因此,如果图像起始代码或起始代码组出现在比特流中,则在该起始代码之后描述do语句后的块中的函数定义的数据元的代码。因此,通过找到由图像起始代码或起始代码组表示的起始代码,则可从比特流中提取由do语句的{}块中的函数定义的数据元。
在do语句{}块的开始描述的if语句陈述了“如果起始代码组出现在比特流中”的条件。由if语句陈述的真实(满足)条件表示在起始代码组后接着描述由group_of_picture_header(1)函数和extension_and_user_data(1)函数定义的数据元。
group_of_picture_header(1)函数是用于定义MPEG比特流GOP层的标题数据的函数,extension_and_user_data(1)函数是用于定义名为扩展数据的扩展数据和或名为MPEG比特流GOP层的用户数据的用户数据的函数。
此外,在该比特流中,在由group_of_picture_header(1)函数和extension_and_user_data(1)函数定义的数据元之后描述由picture_header()函数和pictyre_coding_extension()函数定义的数据元。当然,如果if语句定义的条件不是真,则不描述group_of_picture_header(1)函数和extension_and_user_data(1)函数定义的数据元。这种情况下,在由extension_and_user_data(0)函数后定义的地址点元之后描述由picture_header()函数和picture_coding_extension()函数定义的数据元。
picture_header()函数是用来定义标题数据到MPEG数据流的图像层的函数,picture_coding_extension()函数是用来定义MPEG数据流图像层的第一扩展数据的函数。
下一个while语句是用于定义条件的函数。只要while语句定义的条件为真,则判断while语句定义的条件后的块中描述的每个if语句定义的条件是真还是假。while语句中使用的nextbits()函数是用于做出有关比特流中出现的一串比特是否分别与扩展起始代码和用户起始代码匹配的判断的函数。如果比特流中出现的该串比特与扩展起始代码和用户数据起始匹配,则认为while语句定义的条件语句为真。
while语句后的{}块中的第一if语句是用于做出有关比特流中出现的一串比特是否与扩展起始代码匹配的判断的函数。与32比特扩展起始代码匹配的比特流中出现的比特串表示在比特流中的扩展起始代码后描述由extension_data(2)函数定义的数据元。
第二if语句是用于做出有关比特流中出现的数据串是否与用户数据起始代码匹配的判断的函数。如果比特流中出现的比特串与32比特用户数据起始数据代码匹配,则判断由第三if语句定义的条件是真还是假。用户数据起始代码是用于表明MPEG比特流图像层的用户数据区开始的起始代码。
while语句后的{}块中第三if语句是用于做出有关比特流中出现的比特串是否与历史数据ID匹配的判断的函数。与8比特历史数据ID匹配的比特流中出现的比特串表示在由MPEG比特流图像层的用户数据区中的8比特历史数据ID表示的代码后描述由converted_history_stream()函数定义的数据元。
converted_history_stream()函数是用于描述发射MPEG编码处理中使用的所有编码参数的历史信息和历史数据的函数。后面将描述由该converted_history_stream()函数定义的数据元的细节。历史数据ID是用于表明MPEG比特流图像层的用户数据区中的历史信息和历史数据描述开始的起始代码。
else语句是表示由第三if语句定义的假条件情况的语法。因此,如果MPEG比特流图像层的用户数据区中未描述converted_history_stream()函数定义的数据元,则描述由user_data()函数定义的数据元。
picture_data()函数是用于描述与MPEG比特流图像层的用户数据后的限幅层和宏块层有关的数据元的函数。通常,在user_data()函数定义的数据元或比特流图像层的用户数据区中描述converted_history_stream()函数定义的数据元后描述由该pictrue_data()函数定义的数据元。然而,如果表明图像层数据元的比特流中既不存在扩展起始代码也不存在用户数据起始代码,则在由picture_coding_extension()函数定义的数据元后描述由该picture_data()函数定义的数据元。
在该picture_data()函数定义的数据元之后,依次描述由sequence_header()函数和sequence_extension()函数定义的数据元。由sequence_header()函数和sequence_extension()函数描述的数据元与由在视频数据流序列开始描述的sequence_header()函数和sequence_extension()函数定义的数据元完全相同。在数据流中定义相同数据部分的原因是防止不能再接收序列层的数据,从而防止当数据流接收装置在诸如与图像层对应的比特流部分之类数据流中部开始接收比特流时不能再解码数据流。
在sequence_header()函数和sequence_extension()函数定义的数据元之后,即在数据流结尾,描述用于表明该序列结束的32比特序列结束代码。
图39是至此描述的语法基本结构的概略示意图。
接下来说明converted_history_stream()函数定义的历史流。
converted_histroy_stream()函数是于向MPEG比特流图像层的用户数据区中***表示历史信息的历史流的函数。应指出,单词‘converted’表示该数据流已完成了对由将要***的历史数据构成的历史流的至少每隔22比特***一个标志比特到用户区以避免开始仿效的转换处理。
以图40至46所示的固定长度历史流的格式之一或后面将描述的图47所示的可变长度历史流描述converted_history_stream()函数。如果在编码器一侧选择固定长度历史流,具有在对来自历史流的数据元解码的解码器中采用的电路和软件变简单的优点。另一方面,如果在编码器一侧选择可变长度历史流,编码器能在需要时任意选择图像层的用户区中描述的历史信息或数据元。因此,可减少历史流的数据量。结果是,还可整个降低比特流的数据率。
本发明的说明中引用的历史信息、历史数据和历史参数是相关技术编码处理中使用的编码参数或数据元,而不是在当前编码处理或在最后阶段执行的编码处理中使用的编码参数数据。考虑作为第一代的编码处理中的I图像,作为第二代的编码处理中的P图像和作为第三代的编码处理中的B图像来编码和发射图像的情况。在该序列的预定位置、GOP图像、限幅和作为第三代的编码处理结果产生的编码比特流的宏块层描述第三代编码处理中使用的编码参数。另一方面,第一和第二代编码处理中使用的编码参数不记录在该序列或用于记录第三代编码处理中使用的编码参数的GOP层中,而是作为编码参数的历史信息记录在图像层的用户数据区。
首先,基准图40至46说明固定长度历史流的语法。
在第一位置,把与前面的编码处理中使用的序列层的序列标题有关的编码参数,即通常是第一和第二代的编码处理作为历史流***在最后阶段执行的编码处理,即通常是第三代编码处理中产生的比特流图像层的用户数据区。应指出,与前面编码处理中产生的比特流序列层的序列标题有关的历史信息不***在最后阶段执行的编码处理中产生的比特流序列层的序列标题中。
与前面编码处理中使用的序列标题相关的数据元包括如图40所示的序列标题代码,序列标题出现标记,水平量值,垂直量值,宽高比信息,帧频代码,比特率值,标志比特,VBV缓冲量值,制约参数标记,负载内部量化器矩阵,内部量化器矩阵,负载非内部量化器矩阵,和非内部量化器矩阵。
上面列出的数据元描述如下。序列标题代码数据元是序列层的起始同步化代码。序列标题出现标记数据元是用于表明序列标题中的数据是有效还是无效的标记。水平量值数据元是包括水平方向中低位12比特图像像素数量的数据。垂直量值数据元是包括垂直方向中低位12比特的图像像素数量的数据。宽高比信息数据元是宽高比,即图像的高度与宽度之比,或显示屏幕的宽高比。帧频代码数据元是表示图像显示周期的数据。
比特率值数据元是包括用于限制所产生的比特数量的比特率的低位18比特的数据。该数据以400bps单位集拢。标志比特数据元是用于防止起始代码仿效而***的比特数据。VBV缓冲量值数据元是包括用于确定控制产生代码量中使用的虚拟缓冲量(视频缓冲检验器)的值的低位10比特的数据。制约参数标记数据元是用于表明参数是否受限制的标记。负载内部量化器矩阵数据元是用于表示是否存在内部MB量化矩阵数据的标记。内部量化器矩阵数据元是内部MB量化矩阵的值。负载内部非量化器矩阵数据元是用于表示是否存在非内部MB量化矩阵的数据的标记。非内部量化器矩阵数据元是非内部MB量化矩阵的值。
接下来描述表示前面编码处理中使用的序列扩展的数据元作为在最后阶段执行的编码处理中产生的比特流图像层的用户区中的历史流。
表示前面编码中使用的序列扩展的数据元包括如图40和41所示的扩展起始代码,扩展起始代码识别符,序列扩展出现标记,轮廓和电平识别,逐行序列,色度格式,水平量扩展,垂直量扩展,比特率扩展,vbv缓冲量扩展,低延迟,帧频扩展n和帧频扩展d。
上面列出的数据元描述如下。扩展起始代码数据元是扩展数据的起始同步代码。扩展起始代码识别符数据元是用于表示发射扩展数据的数据。序列扩展出现标记数据元是用于表示序列扩展中的数据是有效还是无效的标记。轮廓和电平识别数据元是规定视频数据的轮廓和电平的数据。逐行序列数据元是表明已从顺序扫描获得视频数据的数据。色度格式数据元是规定视频数据的色差格式的数据。
水平量扩展数据元是要加到序列标题的水平量值的两个高位比特数据。垂直量扩展数据元是要加到序列标题的垂直量值的两个高位比特数据。比特率扩展数据元是要加到序列标题的比特率值的12个高位比特数据。vbv缓冲量扩展数据元是要加到序列标题的vbv缓冲量值的8个高位比特数据。低延迟数据元是用于表示不包括B图像的数据。帧频扩展n数据元是用于获得与序列标题的帧频代码结合的帧频的数据。帧频扩展d数据元是用于获得与序列标题的帧频代码结合的帧频的数据。
接下来,描述表示前面编码处理中使用的序列层的序列显示扩展的数据元作为比特流图像层的用户区中的历史流。
描述为序列显示扩展的数据元是如图41所示的扩展起始代码,扩展起始代码识别符,序列显示扩展出现标记,视频格式,彩色译码,基色,传送特性,矩阵系数,显示水平量和显示垂直量。
上面列出的数据元描述如下。扩展起始代码数据元是扩展数据的起始同步代码。扩展起始代码识别符数据元是用来表示发射扩展数据的数据。序列显示扩展出现标记数据元是用于表示序列扩展中的数据元是有效还是无效的标记。视频格式数据元是表示源信号视频格式的数据。彩色译码数据元是用于表示色空间的详细数据存在的数据。基色数据元是表示源信号的彩色特性细节的数据。传送特性数据元是表示已如何执行光电转换细节的数据。矩阵系数数据元是表示如何从光的三原色转换成源信号的细节的数据。显示水平量数据元是表示启动区或准备显示的水平量的数据。显示垂直量数据元是表示启动区或准备显示的垂直量的数据。
接下来描述表示前面编码处理中产生的宏块的相位信息的宏块分配数据(名为用户数据中的宏块分配)作为在最后阶段执行的编码处理中产生的比特流图像层的用户区中的历史流。
表示宏块相位信息的用户数据中的宏块分配包括如图41所示的诸如宏块分配出现标记,v相位和h相位之类的数据元。
上面列出的数据元描述如下。宏块分配出现标记数据元是用于表示用户数据中的宏块分配的数据元是有效还是无效的标记。v相位数据元是表示当宏块从图像数据分离时获得的垂直方向相位信息的数据。h相位数据元是表示当宏块从图像数据分离时获得的水平方向相位信息的数据。
接下来描述表示前面的编码处理中使用的GOP层的GOP标题的数据元作为在最后阶段执行的编码处理中产生的比特流图像层的用户区中的历史流。
表示GOP标题的数据元是如图41所示的起始代码组,图像标题组出现标记,时间代码,闭路gop(closed_gop)和开路链路。
上面列出的数据元描述如下。起始代码组数据元是GOP层户的起始同步代码。图像标题组出现标记数据元是用于表示图像标题组中的数据元是有效还是无效的标记。时间代码数据元是表示从GOP的第一图像的开始测量的时间长度的时间代码。闭路gop数据元是用于表示是否能够从另一个GOP执行一个GOP中的图像独立重放操作的标记。开路链路数据元是用于表示由于诸如编辑之类的原因不能用高精度重放在GOP开始的B图像的标记。
接下来描述表示前面编码处理中使用的图像层的图像标题数据元作为在最后阶段执行的编码处理中产生的比特流图像层的用户区中的历史流。
与图像标题有关的数据元是如图41和42所示的图像起始代码,暂时基准,图像编码类型,vbv延迟,全像素前向矢量,前向f代码,全像素后向矢量和后向f代码。
上面列出的数据元描述如下。图像起始代码数据元是图像层的起始同步代码。暂时基准数据元是用于表示图像显示顺序的编号。该编号在GOP的开始复位。图像编码类型数据元是用于表示图像类型的数据。vbv延迟数据元是表示在随机存取的虚拟缓冲初始状态的数据。全像素前向矢量数据元是用于表示是以像素单元还是以半像素单元为单位表示前向运动矢量精确度的标记。前向f代码数据元是表示前向运动矢量搜索范围的数据。全像素后向矢量数据元是用于表示是以像素单元还是以半像素单元为单位表示后向运动矢量精确度的标记。后向f代码数据元是表示后向运动矢量搜索范围的数据。
接下来描述表示前面编码处理中使用的图像层的图像编码扩展的数据元作为在最后阶段执行的编码处理中产生的比特流图像层的用户区中的历史流。
与图像编码扩展有关的数据元是如图42所示的扩展起始代码,扩展起始代码识别符,f代码[0][1],f代码[1][0],f代码[1][1],内部dc精度,图 像结构,顶场第一,帧预测帧dct,隐藏运动矢量,q标度型,内部vlc格式,隔行扫描,重复第一场,色度420型,逐行帧,组合显示标记,v轴,场序列,子载波,短脉冲幅度和子载波相位。
上面列出的数据元描述如下。扩展起始代码数据元是用于表示图像层扩展数据开始的起始代码。扩展起始代码识别符数据元是用于表示发射哪个扩展数据的代码。f代码[0][0]数据元是表示在前向的水平运动矢量搜索范围的数据。f代码[0][1]数据元是表示在前向的垂直运动矢量搜索范围的数据。f代码[1][0]数据元是表示在后向的水平运动矢量搜索范围的数据。f代码[1][1]数据元是表示在后向的垂直运动矢量搜索范围的数据。
内部dc精度是表示DC系数精度的数据。图像结构数据元是用于表示该数据结构是帧结构还是场结构的数据。在场结构的情况下,图像结构数据元还表明该场结构是高位场还是低位场。顶场第一数据元是用于表明帧结构的第一场是高位场还是低位场的数据。预测帧dct数据元是用于表明在帧结构的情况下仅在帧DCT模式执行帧模式DCT预测的数据。隐藏运动矢量数据元是用于表示宏块包括用于隐藏传输误差的运动矢量的数据。
q标度型数据元是用于表明采用线性量化标度还是非线性量化标度的数据。内部vlc格式数据元是用于表明是否在内部宏块使用另一个2维VLC的数据。隔行扫描数据元是表示选择使用曲折扫描或隔行扫描的数据。重复第一场数据元是在2:3下拉(pull down)情况下使用的数据。色度420型数据元是在4:2:0信号格式的情况下等于下一个逐行帧数据元的值或否则等于0的数据。逐行帧数据元是用于表示是否已从顺序扫描获得该图像的数据。组合显示标记数据元是用于表示源信号是否是组合信号的标记。
v轴数据元是在PAL源信号的情况中使用的数据。场序列数据元是在PAL源信号的情况中使用的数据。子载波数据元是在PAL源信号的情况中使用的数据。短脉冲幅度数据元是在PAL源信号的情况中使用的数据。子载波相位数据元是在PAL源信号的情况中使用的数据。
接下来,描述在前面编码处理中使用的量化矩阵扩展作为在最后阶段执行的编码处理中产生的比特流图像层的用户区中的历史流。
与量化矩阵扩展有关的数据元是如图43所示的扩展起始代码,扩展起始代码识别符,量化矩阵扩展出现标记,负载内部量化器矩阵,内部量化器矩阵[64],负载非内部量化器矩阵,非内部量化器矩阵[64],负载色度内部量化器矩阵,色度非内部量化器矩阵[64],负载色度内部量化器矩阵和色度非内部量化器矩阵[64]。
上面列出的数据元描述如下。扩展起始代码数据元是用于表示量化矩阵扩展开始的起始代码。扩展起始代码识别符数据元是用于表示发射哪个扩展数据的代码。量化矩阵扩展出现标记数据元是用于表示量化矩阵扩展的数据元是有效还是无效的标记。负载内部量化器矩阵数据元是用于表示内部宏块的量化矩阵数据是否存在的数据。内部量化矩阵数据元是表示内部宏块量化矩阵值的数据。
负载非内部量化器矩阵数据元是用于表示非内部宏块的量化矩阵数据是否存在的数据。非内部量化器矩阵数据元是表示非内部宏块的量化矩阵值的数据。负载色度内部量化器矩阵数据元是用于表示色差内部宏块的量化矩阵数据是否存在的数据。色度内部量化器矩阵数据元是表示色差内部宏块的量化矩阵值的数据。负载色度非内部量化器矩阵数据元是用于表示色差非内部宏块的量化矩阵数据是否存在的数据。色度非内部量化器矩阵数据元是表示色差非内部宏块的量化矩阵值的数据。
接下来,描述前面编码处理中使用的版权扩展作为最后阶段执行的编码处理中产生的比特流图像层的用户区中的历史流。
与版权扩展有关的数据元是如图43所示的扩展起始代码,扩展起始代码识别符,版权扩展出现标记,版权标记,版权识别符,原件或复制件,版权号码1,版权号码2和版权号码3。
上面列出的数据元描述如下。扩展起始代码数据元是用于表示版权扩展开始的起始代码。扩展起始代码识别符数据元是用于表示发射哪个扩展数据的代码。版权扩展出现标记数据元是用于表示版权扩展的数据元是有效还是无效的标记。版权标记数据元是用于表示直到下一个版权扩展或序列结束的范围内是否已对编码视频数据给予版权的标记。
版权识别符数据元是用于识别对由ISO/IEC JTC/SC29规定的版权分类的规定的数据。原件或复制件数据元是用于表示比特流数据是原始还是复制数据的标记。版权号码1数据元表示版权号码的44至63比特。版权号码2数据元表示版权号码的22至43比特。版权号码3数据元表示版权号码的0至21比特。
接下来,描述前面编码处理中使用的图像显示扩展(图像显示扩展)作为最后阶段执行的编码处理中产生的比特流图像层的用户区中的历史流。
表示图像显示扩展的数据元是如图44所示的扩展起始代码,扩展起始代码识别符,图像显示扩展出现标记,帧中心水平偏移1,帧中心垂直偏移1,帧中心水平偏移2,帧中心垂直偏移2,帧中心水平偏移3和帧中心垂直偏移3。
描述上面列出的数据元如下。扩展起始代码数据元是用于表示图像显示扩展开始的起始代码。扩展起始代码识别符数据元是用于表示发射哪个扩展数据的代码。图像显示扩展出现标记数据元是用于表示图像显示扩展的数据元是有效还是无效的标记。帧中心水平偏移数据元是显示区在水平方向的偏移,帧中心垂直偏移数据元是显示区在垂直方向的偏移。可分别定义多达三个水平和垂直偏移的偏移值。
描述用户数据作为在表示如图44所示的最后阶段执行的编码处理中产生的比特流图像层的用户区中已说明的图像显示扩展的历史信息后的历史流。
在用户数据之后,描述在前面编码处理中使用的宏块上的信息作为图44至46所示的历史流。
宏块上的信息包括如图44至46所示的与宏块位置有关的数据元,与宏块模式有关的数据元,与量化步骤的控制有关的数据元,与运动补偿有关的数据元,与宏块码型有关的数据元,和与产生的代码量有关的数据元。与宏块位置有关的数据元包括例如宏块地址h,宏块地址v,限幅标题出现标记和跳越宏块标记。与宏块模式有关的数据元包括例如宏块量化,前向宏块运动,后向宏块运动,宏块码型,宏块内部,时空加权代码标记,帧运动类型和dct类型。与量化步骤的控制有关的数据元包括例如量化器标度代码。与运动补偿有关的数据元包括PMV[0][0][0],PMV[0][0][1],运动垂直场选择[0][0],PMV[0][1][0],PMV[0][1][1],运动垂直场选择[0][1],PMV[1][0][0],PMV[1][0][1],运动垂直场选择[1][0],PMV[1][1][0],PMV[1][1][1]和运动垂直场选择[1][1]。与宏块码型有关的数据元包括例如编码块码型,与产生的代码量有关的数据元是num_mv比特,num_coef比特和num其它比特等。
下面详细描述与宏块有关的数据元。
宏块地址h数据元是定义宏块目前在水平方向的绝对位置的数据。宏块地址v数据元是定义宏块目前在垂直方向的绝对位置的数据。限幅标题出现标记数据元是用于表示该宏块位于限幅层开始,以及是否伴随有限幅标题的标记。跳越宏块标记数据元是用于表示是否在解码处理中跳越该宏块的标记。
宏块量化数据元是从图65至67所示的宏块类型得到的数据。该数据元表示比特流中是否出现量化器标度代码。宏块前向运动数据元是从图65至67所示的宏块类型得到的数据,并在解码处理中使用。宏块后向运动数据元是从图65至67所示的宏块类型得到的数据,并在解码处理中使用。宏块码型数据元是从图65至67所示的宏块类型得到的数据,它表示比特流中是否出现编码的块码型。
宏块内部数据元是从图65至67所示的宏块类型得到的数据,并在解码处理中使用。时空加权代码标记数据元是从图65至67所示的宏块类型得到的标记,用于表明比特流中是否存在可用时间标度表示的低位层图像的上抽样技术的时空加权代码。
帧运动类型数据元是用于表示帧的宏块预测类型的2比特代码。帧运动类型值“00”表示有两个预测矢量并且该预测类型是基于场的预测类型。帧运动类型值“01”表示有一个预测矢量并且该预测类型是基于场的预测类型。帧运动类型值“10”表示有一个预测矢量并且该预测类型是基于帧的预测类型。帧运动类型值“11”表示有一个预测矢量并且该预测类型是双主(dual_prime)预测类型。场运动类型数据元是表示场的宏块运动预测的2比特代码。场运动类型值“01”表示有一个预测矢量并且该预测类型是基于场的预测类型。场运动类型值“10”表示有两个预测矢量并且该预测类型是基于18×8宏块的预测类型。场运动类型值“11”表示有一种预测矢量并且该预测类型是双主预测类型。dct类型数据元是用于表示是以帧DCT模式还是以场DCT模式执行DCT的数据。量化器标度代码数据元表示宏块的量化步调(step size)。
下面描述与运动矢量有关的数据元。为减少解码处理中所需的运动矢量幅度,通过实际上对一个特定运动矢量和前面解码的运动矢量之间的差编码来对该特定运动矢量进行编码处理。用于对运动矢量解码的解码器必须维持四个运动矢量预测值,每个预测值包括水平和垂直分量。这些运动矢量预测值用PMV[r][s][v]表示。下标[r]是用于表示宏块中的运动矢量是第一还是第二矢量的标记。更具体地说,[r]值是“0”表示第一矢量,而[r]值为“1”表示第二矢量。下标[s]是用于表示宏块中的运动矢量的方向是前向还是后向的标记。更具体地说,[s]值为“0”表示前向运动矢量,而[s]值为“1”表示后向运动矢量。下标[v]是用于表示宏块中的运动矢量分量是水平还是垂直方向的标记。更具体地说,[v]值为“0”表示运动矢量的水平分量,而[v]值为“1”表示运动矢量的垂直分量。
因此,PMV[0][0][0]是表示第一矢量的前向运动矢量的水平分量的数据。PMV[0][0][1]是表示第一矢量的前向运动矢量的垂直分量的数据。PMV[0][1][0]是表示第一矢量的后向运动矢量的水平分量的数据。PMV[0][1][1]是表示第一矢量的后向运动矢量的垂直分量的数据。PMV[1][0][0]是表示第二矢量的前向运动矢量的水平分量的数据。PMV[1][0][1]是表示第二矢量的前向运动矢量的垂直分量的数据。PMV[1][1][0]是表示第二矢量的后向运动矢量的水平分量的数据。PMV[1][1][1]是表示第二矢量的后向运动矢量的垂直分量的数据。
运动垂直场选择[r][s]是用于表示使用那种预测格式的基准场的数据。更具体地说,运动垂直场选择[r][s]的值为“0”表示顶基准场,而运动垂直场选择[r][s]的值为“1”表示使用底基准场。
在运动垂直场选择[r][s]中,下标[r]是用于表示宏块中的运动矢量是第一还是第二矢量的标记。更具体地说,[r]值为“0”表示第一矢量,而[r]值为“1”表示第二矢量。下标[s]是用于表示宏块中的运动矢量的方向是前向还是后向的标记。更具体地说,[s]值为“0”表示前向运动矢量,而[s]值为“1”表示后向运动矢量。因此,运动垂直场选择[0][0]表示在产生第一矢量的前向运动矢量中使用的基准场。运动垂直场选择[0][1]表示在产生第一矢量的后向运动矢量中使用的基准场。运动垂直场选择[1][0]表示在产生第二矢量的前向运动矢量中使用的基准场。运动垂直场选择[1][1]表示在产生第二矢量的后向运动矢量中使用的基准场。
编码块码型数据元是表示在每个用于存储DCT系数的多个DCT块中的哪个DCT块包含一个合理或非零DCT系数的可变长度数据。num_mv比特是表示宏块中运动矢量代码量的数据。num_coef比特数据元是表示宏块中DCT系数的代码量的数据。图46所示的num其它比特数据元是表示除运动矢量和DCT系数外宏块中代码量的数据。
下面参考图47至64说明对来自具有可变长度的历史流的数据元解码的语法。
如图47所示,具有可变长度的历史流包括由next_start_code()函数,sequence_header()函数,sequence_extension()函数,extension_and_user_data(0)函数,group_of_pictrue_header()函数,extension_and_user_data(1)函数,picture_header()函数,picture_coding_extension()函数,extension_and_user_data(2)函数和picture_data()函数定义的数据元。
由于next_start_code()函数是用于搜索起始代码比特流的函数,在如图48所示的历史流的开始描述由sequence_header()函数定义并在前面编码处理中使用的数据元。
sequence_header()函数定义的数据元包括如图48所示的序列标题代码,序列标题出现标记,水平量值,垂直量值,宽高比信息,帧频代码,比特率值,标志比特,VBV缓冲量值,制约参数标记,负载内部量化器矩阵,内部量化器矩阵,负载非内部量化器矩阵和非内部量化器矩阵。
上面列出的数据元描述如下。序列标题代码数据元是序列层的起始同步代码。序列标题出现标记数据元是用于表示序列标题中的数据是有效还是无效的标记。水平量值数据元是包括水平方向低位12个比特的图像像素数量的数据。垂直量值数据元是包括垂直方向低位12个比特的图像像素数量的数据。宽高比信息数据元是图像像素的宽高比,即图像的宽高比,或显示屏幕的宽高比。帧频代码数据元是表示图像显示周期的数据。比特率值数据元是包括用于限制产生的比特的比特率的低位18个比特的数据。集拢在400bsp单位中。
标志比特数据元是为防止起始代码仿效而***的比特数据。VBV缓冲量值数据元是包括用于确定在控制产生的代码量中使用的虚拟缓冲量(视频缓冲检验器)的低位10比特值的数据。制约参数标记数据元是用于表示是否制约这些参数的标记。负载内部量化器矩阵数据元是用于表示内部MB量化矩阵数据是否存在的标记。内部量化器矩阵数据元是内部MB量化矩阵的值。负载非内部量化器矩阵数据元是用于表示非内部MB量化矩阵内的数据是否存在的标记。非内部量化器矩阵数据元是非内部MB量化矩阵的值。
在sequence_header()函数定义的数据元后,描述sequence_extension()函数定义的数据元作为图49所示的历史流。
sequence_extension()函数定义的数据元包括如图49所示的扩展起始代码,扩展起始代码识别符,序列扩展出现标记,轮廓和电平识别,逐行序列,色度格式,水平量扩展,垂直量扩展,比特率扩展,vbv缓冲量扩展,低延迟,帧频扩展n和帧频扩展d。
上面列出的数据元描述如下。扩展起始代码数据元是扩展数据的起始同步代码。扩展起始代码识别符数据元是用于表示发射哪个扩展数据的数据。序列扩展出现标记数据元是用于表示序列扩展中数据是有效还是无效的标记。轮廓和电平识别数据元是规定视频数据的轮廓和电平的数据。逐行序列数据元是表明已从顺序扫描获得视频数据的数据。色度格式数据元是规定视频数据的色差格式的数据。水平量扩展数据元是要加到序列标题的水平量值作为两个高位比特的数据。垂直量扩展数据元是要加到序列标题的垂直量值作为两个高位比特的数据。比特率扩展数据元是要加到序列标题的比特率值作为12个高位比特的数据。vbv缓冲量扩展数据元是要加到序列标题的vbv缓冲量值作为8个高位比特的数据。
低延迟数据元是用于表示不包括B图像的数据。帧频扩展n数据元是用于获得与序列标题的帧频代码结合的帧频的数据。帧频扩展d数据元是用于获得与序列标题的帧频代码结合的帧频的数据。
在sequence_extension()函数定义的数据元之后,描述由extension_and_user_data(0)函数定义的数据元作为图50所示的历史流。对于除2之外的(i)值,extension_and_user_data(i)函数仅描述由user_data()函数定义的数据元作为历史流而不是描述由extension_data()函数定义的数据元。因此,extension_and_user_data(0)函数仅描述由user_data()函数定义的数据元作为历史流。
user_data()函数根据与图51所示的相同语法描述用户数据作为历史流。
在由extension_and_user_data(0)函数定义的数据元之后,把由图52所示的group_of_picture_header()函数定义的数据元和由图50所示的extension_and_user_data(1)函数定义的数据元描述为历史流。然而,应指出,如果在历史流中描述表示GOP层的起始代码的起始代码组,则仅描述group_of_picture_header()函数定义的数据元和由extension_and_user_data(1)函数定义的数据元。
如图52所示,由group_of_picture_header()函数定义的数据元是起始代码组,图像标题出现标记组,时间代码,闭路gop和开路链路。
上面列出的数据元描述如下。起始代码组数据元是GOP层的起始同步代码。图像标题出现标记组数据元是用于表示图像标题组中的数据元是有效还是无效的标记。时间代码数据元是表示从GOP的第一图像的开始测量的时间长度的时间代码。闭路gop数据元是用于表示是否能够从另一个GOP执行一个GOP中的图像独立重放操作的标记。开路链路数据元是用于表示由于诸如编辑之类的原因不能用高精度重放在GOP开始的B图像的标记。
与图50所示的extension_and_user_data(0)函数非常相似,extension_and_user_data(1)函数仅描述由user_data()函数定义的数据元作为历史流。
如果历史流中未描述表示GOP层的起始代码的起始代码组,历史流中也不描述由group_of_picture_header()函数定义的数据元和extension_and_user_data(1)函数定义的数据元。这种情况下,在由extension_and_user_data(0)函数定义的数据元后描述由picture_header()函数定义的数据元。
由picture_header()函数定义的数据元是如图53所示的图像起始代码,时间基准,图像编码类型,vbv延迟,全像素前向矢量,前向f代码,全像素后向矢量,后向f代码,外部比特图像和外部信息图像。
上面列出的数据元具体描述如下。图像起始代码数据元是图像层的起始同步代码。时间基准数据元是用于表示图像显示顺序的编号。在GOP的开始复位该编号。图像编码类型数据元是用于表示图像类型的数据。vbv延迟数据元是表明虚拟缓冲器在随机存储的初始状态的数据。全像素前向矢量数据元是用于表示以整个像素单元还是以半像素单元为单位表示前向运动矢量精度的标记。前向f代码数据元是表示前向运动矢量搜索范围的数据。全像素后向矢量数据元是用于表示以整个像素单元还是以半像素单元为单位表示后向运动矢量精度的标记。后向f代码数据元是表示后向运动矢量搜索范围的数据。外部比特图像数据元是用于表示下列附加信息是否存在的标记。更具体地说,外部比特图像的值为“0”表示不存在下列附加信息,而外部比特图像的值为“1”表示存在下列附加信息。外部信息图像数据元是按说明书保留的信息。
在picture_header()函数定义的数据元之后,描述图54所示的picture_coding_extension()函数定义的数据元作为历史流。
picture_coding_extension()函数定义的数据元是如图54所示的扩展起始代码,扩展起始代码识别符,f代码[0][0],f代码[0][1],f代码[1][0],f代码[1][1],内部dc精度,图像结构,顶场第一,帧预测帧dct,隐藏运动矢量,q标度型,内部vlc格式,隔行扫描,重复第一场,色度420型,逐行帧,组合显示标记,v轴,场序列,子载波,短脉冲幅度和子载波相位。
上面列出的数据元描述如下。扩展起始代码数据元是用于表示图像层扩展数据开始的起始代码。扩展起始代码识别符数据元是用于表示发射哪个扩展数据的代码。f代码[0][0]数据元是表示在前向的水平运动矢量搜索范围的数据。f代码[0][1]数据元是表示在前向的垂直运动矢量搜索范围的数据。f代码[1][0]数据元是表示在后向的水平运动矢量搜索范围的数据。f代码[1][1]数据元是表示在后向的垂直运动矢量搜索范围的数据。内部dc精度数据元是表示DC系数精度的数据。
图像结构数据元是用于表示该数据结构是帧结构还是场结构的数据。在场结构的情况下,图像结构数据元还表明该场结构是高位场还是低位场。顶场第一数据元是用于表明帧结构的第一场是高位场还是低位场的数据。帧预测帧dct数据元是用于表明在帧结构的情况下仅以帧模式执行帧模式DCT预测的数据。隐藏运动矢量数据元是用于表示内部宏块包括用于隐藏传输误差的运动矢量的数据。q标度型数据元是用于表明采用线性量化标度还是非线性量化标度的数据。内部vlc格式数据元是用于表明是否在内部宏块使用另一个2维VLC的数据。
隔行扫描数据元是表示选择使用曲折扫描或隔行扫描的数据。重复第一场数据元是在2:3下拉情况下使用的数据。色度420型数据元是在4:2:0信号格式的情况下等于下一个逐行帧数据元的值或否则等于0的数据。逐行帧数据元是用于表示是否已从顺序扫描获得该图像的数据。组合显示标记数据元是用于表示源信号是否是组合信号的标记。v轴数据元是在PAL源信号的情况中使用的数据。场序列数据元是在PAL源信号的情况中使用的数据。子载波数据元是在PAL源信号的情况中使用的数据。短脉冲幅度数据元是在PAL源信号的情况中使用的数据。子载波相位数据元是在PAL源信号的情况中使用的数据。
在picture_coding_extension()函数定义的数据元之后,描述由图50所示的extension_and_user_data(2)函数定义的数据元。然而,应指出,只有比特流中存在表示扩展的起始代码的扩展起始代码,才由extension_and_user_data(2)函数描述extension_data()函数定义的数据元。另外,只有比特流中存在如图50所示的表示用户数据的起始代码的用户数据起始代码,才在由extension_data()函数定义的数据元之后由extension_and_user_data(2)函数描述由user_data()函数定义的数据元。就是说,如果比特流中即不存在扩展的起始数据也不存在用户数据的起始代码,在比特流中不描述由extension_data()函数定义的数据元和由user_data()函数定义的数据元。
extension_data()函数是用于描述表示扩展起始代码的数据元和由quant_matrix_extension()函数,picture_coding_extension()函数,copyright_extension()函数和pictrue_display_extension()函数定义的数据元作为图55所示的比特流中的历史流的函数。
由quant_matrix_extension()函数定义的数据元是如图56所示的扩展起始代码,扩展起始代码识别符,量化矩阵扩展出现标记,负载内部量化器矩阵,内部量化器矩阵[64],负载非内部量化器矩阵,非内部量化器矩阵[64],负载色度内部量化器矩阵,色度内部量化器矩阵[64],负载色度非内部量化器矩阵和色度非内部量化器矩阵[64]。
上面列出的数据元描述如下。扩展起始代码数据元是用于表示量化矩阵扩展开始的起始代码。扩展起始代码识别符数据元是用于表示发射哪个扩展数据的代码。量化矩阵扩展出现标记数据元是用于表示量化矩阵扩展的数据元是有效还是无效的标记。负载内部量化器矩阵数据元是用于表示内部宏块的量化矩阵数据是否存在的数据。内部量化矩阵数据元是表示内部宏块量化矩阵的值的数据。
负载非内部量化器矩阵数据元是用于表示非内部宏块的量化矩阵数据是否存在的数据。非内部量化器矩阵数据元是表示非内部宏块的量化矩阵值的数据。负载色度内部量化器矩阵数据元是用于表示色差内部宏块的量化矩阵数据是否存在的数据。色度内部量化器矩阵数据元是表示色差内部宏块的量化矩阵值的数据。负载色度非内部量化器矩阵数据元是用于表示色差非内部宏块的量化矩阵数据是否存在的数据。色度非内部量化器矩阵数据元是表示色差非内部宏块的量化矩阵值的数据。
由copyright_extension()函数定义的数据元是如图57所示的扩展起始代码,扩展起始代码识别符,版权扩展出现标记,版权标记,版权识别符,原件或复制件,版权号码1,版权号码2和版权号码3。
上面列出的数据元描述如下。扩展起始代码数据元是用于表示版权扩展开始的起始代码。扩展起始代码识别符数据元是用于表示发射哪个扩展数据的代码。版权扩展出现标记数据元是用于表示版权扩展数据元是有效还是无效的标记。
版权标记数据元是用于表示直到下一个版权扩展或序列结束的范围内是否已对编码视频数据给予版权的标记。版权识别符数据元是用于识别对由ISO/IEC JTC/SC29规定的版权分类的规定的数据。原件或复制件数据元是用于表示比特流数据是原始还是复制数据的标记。版权号码1数据元表示版权号码的44至63比特。版权号码2数据元表示版权号码的22至43比特。版权号码3数据元表示版权号码的0至21比特。
由picture_display_extension()函数定义的数据元是如图58所示的扩展起始代码识别符,帧中心水平偏移和帧中心垂直偏移。
描述上面列出的数据元如下。扩展起始代码识别符数据元是用于表示发射哪个扩展数据的代码。帧中心水平偏移数据元是显示区在水平方向的偏移,该水平偏移的数值可由帧中心偏移数值定义。帧中心垂直偏移数据元是显示区在垂直方向的偏移。该垂直偏移的数值可由帧中心偏移数值定义。
如图47的可变长度历史流所示,把由picture_data()函数定义的数据元描述为extension_user(2)函数定义的数据元之后的历史流。
如图59所示,由picture_data()函数定义的数据元是由slice()函数定义的数据元。应指出,如果比特流中不存在表示slice()函数的起始代码的限幅起始代码,在比特流中则不描述由slice()函数定义的数据元。
如图60所示,slice()函数是用于描述诸如限幅起始代码,限幅量化器标度代码,内部限幅标记,内部限幅,保留比特,外部比特限幅,外部信息限幅和由macroblock()函数定义的数据元之类的数据元作为历史流的函数。
上面列出的数据元描述如下。限幅起始代码数据元是用于表示由slice()函数定义的数据元的起始代码。限幅量化器标度代码数据元是为限幅层中存在的宏块定义的量化步骤大可。然而,当已设定量化器标度代码时最好使用为宏块设定的量化器标度代码。
内部限幅标记数据段是用于表示比特流中是否存在内部限幅和保留比特的标记。内部限幅数据元是用于表示限幅层中是否存在非内部宏块的标记。更具体地说,如果限幅层中的任何宏块之一是非内部宏块。内部限幅标记的值为“0”。另一方面,如果限幅层中的所有宏块是非内部宏块,内部限幅标记的值为“1”。保留比特数据元是值为“0”的7比特数据。外部比特限幅数据元是用于表示是否存在外部信息限幅数据元,即作为历史流增加的信息的标记。更具体地说,如果存在下一个外部信息限幅数据元,外部比特限幅标记的值为“1”。另一方面,如果不存在下一个外部信息限幅数据元,外部比特限幅标记的值为“0”。
在由slice()函数定义的数据元之后,描述由macroblock()函数定义的数据元作为历史流。
如图61所示,macroblock()函数是用于定义诸如宏块转义,宏块地址增量和宏块量化器标度代码之类的数据元以及由macroblock_mode()函数和macroblock_vectors(s)函数定义的数据元的函数。
上面列出的数据元描述如下。宏块转移数据元是具有用于表示基准宏块和前面的宏块之间在水平方向的差是否至少是34或更大的固定长度的比特串。如果基准宏块和前面的宏块之间在水平方向的差至少是34或更大,向宏块地址增量数据元的值加33。宏块地址增量数据元是基准宏块和前面的宏块之间在水平方向的差。如果在宏块地址增量数据元前存在一个宏块转移数据元,作为向宏块地址增量数据元的值加33的结果获得的值表示在基准宏块和前面的宏块之间在水平方向的实际差。
宏块量化器标度代码数据元是每个宏块中设定的量化步调。表示限幅层的量化步调的限幅量化器标度代码数据元也是在每个限幅层中设定的。然而,为宏块设定的宏块标度代码在限幅量化器标度代码之前。
在宏块地址增量数据元之后,描述由macroblock_mode()函数定义的数据元。如图62所示,macroblock_mode()函数是用于描述作为历史流的诸如宏块类型。帧运动类型,场运动类型和dct类型之类的数据元的函数。
上面列出的数据元描述如下。宏块类型数据元是表示宏块编码类型的数据。具体地说,宏块类型数据元是具有从诸如如图65至67所示的宏块量化、dct类型标记、宏块前向运动和宏块后向运动之类的标记产生的可变长度的数据。宏块量化标记是用于表示是否设定用于为宏块设定量化步调的宏块量化器标度代码的标记。如果比特流中存在宏块量化器标度代码,宏块量化标记的值为“1”。
dct类型标记是用于表示在帧DCT模式或场DCT模式中是否存在表明基准宏块已编码的dct类型。换句话说,dct类型标记是用于表示基准宏块是否经历DCT的标记。如果比特流中存在dct类型,dct类型标记的值为“1”。宏块前向运动是表示基准宏块是否已经历前向预测的标记。如果基准宏块已经历前向预测,宏块前向运动标记的值为“1”。另一方面,宏块后向运动是表示基准宏块是否已经历向后预测的标记。如果基准宏块已经历后向预测,宏块后向运动标记的值为“1”。
如果宏块前向运动标记或宏块后向运动标记的值是“1”,以帧预测模式传送图像,并且帧周期帧dct的值为“0”,在表示宏块类型的数据元之后描述表示帧运动类型的数据元。应指出,帧周期帧dct是用于表示比特流中是否存在帧运动类型的标记。
帧运动类型数据元是表示帧宏块的预测类型的2比特代码。帧运动类型值“00”表示有两个预测矢量并且该预测类型是基于场的预测类型。帧运动类型值“01”表示有一个预测矢量并且该预测类型是基于帧的预测类型。帧运动类型值“10”表示有一个预测矢量并且该预测类型是基于帧的预测类型。帧运动类型值“11”表示有一个预测矢量并且该预测类型是双主预测类型。
如果宏块运动前向标记或宏块运动后向标记的值是“1”,并且不以帧预测模式传送图像,在表示宏块类型的数据元之后描述表示帧运动类型的数据元。
场运动类型数据元是表示场宏块的运动预测的2比特代码。场运动类型值“01”表示有一个预测矢量并且该预测类型是基于场的预测类型。场运动类型值“10”表示有两个预测矢量并且该预测类型是基于18×8宏块的预测类型。场运动类型值“11”表示有一个预测矢量并且该预测类型是双主预测类型。
如果以帧预测模式传送图像,帧周期帧dct表示在比特流中存在帧运动类型,帧周期帧dct也表示比特流中存在dct类型,在表示宏块类型的数据元后描述表示dct类型的数据元。应指出,dct类型数据元是用于表示是以帧DCT模式还是以场DCT模式执行DCT的数据。
如图61所示,如果基准宏块是前向预测宏块或完成隐藏处理的内部宏块,描述由motion_vectors(0)函数定义的数据元。如果基准宏块是后向预测宏块,描述由motion_vectors(1)函数定义的数据元。应指出,motion_vectors(0)函数是用于描述与第一运动矢量有关的数据元的函数,motion_vectors(1)函数是用于描述与第二运动矢量有关的数据元的函数。
如图63所示,motion_vectors(s)函数是用于描述与一个运动矢量有关的数据元的函数。
如果仅有一个运动矢量并且不采用双主预测模式,描述由运动垂直场选择[0][s]和运动矢量[0][s]定义的数据元。
运动垂直场选择[r][s]是用于表示作为前向预测或后向预测矢量的第一矢量是通过基准底场或顶场形成的矢量。下标[r]表示第一或第二矢量,而下标[s]表示前向预测或后向预测矢量。
如图64所示,motion_vectors(r,s)函数是用于描述与运动代码[r][s][t]有关的数据阵列,与运动残留[r][s][t]有关的数据阵列和表示dmvector[t]的数据的函数。
运动代码[r][s][t]是具有用于通过在-16到+16范围中的值表示运动矢量幅度的可变长度的数据。运动代码[r][s][t]是具有用于表示运动矢量残留的可变长度的数据。因此,通过使用运动代码[r][s][t]和运动残留[r][s][t]的值,可描述详细的运动矢量。dmvector[t]是用于标度具有时间距离的现存运动矢量以便在双主预测模式中产生顶和底场之一(例如顶场)中的运动矢量,和用于在垂直方向校正以便反映顶和底场的行之间在垂直方向移动的数据。下标[r]表示第一或第二矢量,而下标[s]表示前向预测或后向预测矢量。下标[t]表示该运动矢量是垂直或水平方向中的分量。
首先,motion_vectors(r,s)函数描述表示水平方向中的运动代码[r][s][0]的数据阵列作为如图64所示的历史流。由f代码[s][t]表示运动残留[0][s][t]和运动残留[1][s][t]二者的比特数。因此,除“1”外的f代码[s][t]的值表示比特流中存在运动残留[0][s][t]。运动残留[r][s][0],即水平方向分量不是“1”和运动代码[r][s][0],即水平方向分量不是“0”的事实表明比特流中包括表示运动残留[r][s][0]的数据元并且存在运动矢量的水平方向分量。这种情况下,描述表示运动残留[r][s][0],即水平分量的数据元。
接下来,描述在垂直方向表示运动残留[r][s][1]的数据阵列作为历史流。同样,由f代码[s][t]表示运动残留[0][s][t]和运动残留[1][s][t]二者的比特数。因此,除“1”外的f代码[s][t]的值表示比特流中存在运动残留[r][s][t]。运动残留[r][s][t],即垂直方向分量不是“1”和运动代码[r][s][1],即垂直方向分量不是“0”的事实表明比特流中包括表示运动残留[r][s][1]的数据元并且存在运动矢量的垂直方向分量。这种情况下,描述表示运动残留[r][s][1],即垂直分量的数据元。
应指出,在可变长度格式中,可消除历史信息以便降低发射比特的传送速度。
例如,为传送宏块类型和motion_vector(),而不传送量化器标度代码,限幅量化器标度代码设定为“00000”以便降低比特率。
另外,为了传送宏块类型而不传送motion_vector(),量化器标度代码和dct类型,采用“未编码”作为宏块类型,以便降低比特率。
此外,为了仅传送图像编码类型而不传送slice()后的所有信息,采用没有限幅起始代码的picture_data(),以便降低比特率。
如上所述,为了防止23个连续的0比特出现在用户数据中,每隔22个比特***一个“1”比特。然而,应指出,还可针对小于22的每个比特数量***一个“1”比特。另外,不是通过对连续的0比特数量计数来***“1”比特,而可通过检验Byte_allign***一个“1”比特。
另外,在MPEG中,禁止产生23个连续的0比特。然而,实际上,只有从一个字节的开始起始的这23个比特的序列是一个问题。也就是说,不从字节的开始起始的这23个比特的序列不成为问题。因此,在除LSB外的位置通常可以每24比特***一个“1”比特。
此外,当以如上所述接近视频基本数据流的格式形成历史信息时,也可以接近分组化的基本数据流或传送数据流的格式形成历史信息。另外,即使基本数据流的用户数据根据上面的描述放置在图像数据前面,用户数据也可放置在另一个位置。
应指出,由计算机执行的用于执行上述处理部分的程序可通过诸如因特网之类的网络形式媒体或数字卫星以及由诸如磁盘和CD-ROM之类信息记录介质实现的形式媒体提供给用户。
Claims (19)
1.一种编码设备,用于执行编码通过编码数据流的解码处理得到的图像数据的编码处理,该设备包括:
接收装置,用于接收在过去对编码数据流的编码处理或解码处理中使用的历史量化标度和生成编码数据流时使用的当前量化标度、以及图像数据;
选择装置,用于从通过所述接收装置接收的历史量化标度和当前量化标度中选择最佳量化标度,作为对图像数据执行的编码处理中将被使用的使用量化标度;以及
编码装置,用于使用通过所述选择装置选择的使用量化标度,对图像数据执行编码处理。
2.如权利要求1所述的编码设备,还包括:
量化标度计算装置,用于计算量化标度作为目前的量化标度,其中当通过所述编码装置对图像数据执行编码处理时,生成该量化标度,
所述选择装置从通过所述接收装置接收的历史量化标度和当前量化标度、以及通过所述量化标度计算装置计算的目前的量化标度中,选择最佳量化标度,作为在编码处理中将被使用的使用量化标度。
3.如权利要求1所述的编码设备,其中
所述编码装置执行编码处理,其中所有的画面都为I画面。
4.如权利要求1所述的编码设备,其中
所述编码装置改变比特率或GOP结构,并执行所述编码处理。
5.如权利要求4所述的编码设备,其中
所述编码装置根据MPEG方法执行编码处理,所述MPEG方法具有序列层、GOP层、画面层、限幅层、和宏块层。
6.如权利要求1所述的编码设备,其中
所述编码数据流是全部画面被编码为I画面的处理过的形式。
7.如权利要求1所述的编码设备,还包括:
传送装置,用于传送通过所述选择装置选择的使用量化标度和通过所述编码装置编码的编码后的图像数据。
8.如权利要求7所述的编码设备,其中
所述传送装置将通过所述选择装置选择的使用量化标度描述在通过所述编码装置编码的编码后的图像数据中,并与其一起传送。
9.一种用于编码设备的编码方法,用于执行编码通过编码数据流的解码处理得到的图像数据的编码处理,该方法包括:
接收步骤,接收在过去对编码数据流的编码处理或解码处理中使用的历史量化标度和生成编码数据流时使用的当前量化标度、以及图像数据;
选择步骤,从通过在接收步骤的处理而接收的历史量化标度和当前量化标度中,选择最佳量化标度,作为在对图像数据执行的编码处理中将被使用的使用量化标度;以及
编码步骤,使用通过在选择步骤的处理而选择的使用量化标度,对通过在接收步骤的处理接收的图像数据执行编码处理。
10.一种编码设备,用于执行编码通过编码数据流的解码处理得到的图像数据的编码处理,该设备包括:
接收装置,用于接收在过去对编码数据流的编码处理或解码处理中使用的历史量化标度,以及图像数据;
选择装置,用于从通过所述接收装置接收的历史量化标度以及通过量化标度计算装置计算的目前的量化标度中,选择最佳量化标度,作为在对图像数据执行的编码处理中将被使用的使用量化标度;
编码装置,用于使用通过所述选择装置选择的使用量化标度,对通过所述接收装置接收的图像数据执行编码处理;以及
量化标度计算装置,用于计算量化标度作为目前的量化标度,其中当通过所述编码装置对图像数据执行编码处理时,生成该量化标度。
11.一种解码设备,用于执行对编码数据流解码的解码处理,该设备包括:
接收装置,用于接收在过去对编码数据流的编码处理或解码处理中使用的历史量化标度和生成编码数据流时计算的当前量化标度、以及编码数据流;
解码装置,用于使用通过所述接收装置接收的当前量化标度,执行通过所述接收装置接收的编码数据流的解码处理,以生成图像数据;以及
传送装置,用于传送历史量化标度和当前量化标度以及通过所述解码装置生成的图像数据,使得当要对通过所述解码装置生成的图像数据执行再编码处理时,从通过所述接收装置接收的历史量化标度和当前量化标度中选择最佳量化标度,作为图像数据的再编码处理中将被使用的使用量化标度。
12.如权利要求11所述的解码设备,其中
所述传送装置将通过所述接收装置接收的历史量化标度和当前量化标度多路复用到通过所述解码装置生成的图像数据中,并与其一起传送。
13.如权利要求11所述的解码设备,其中
在编码数据流中描述历史量化标度和当前量化标度,以及
所述接收装置从编码数据流中得到历史量化标度和当前量化标度。
14.如权利要求13所述的解码设备,其中
在编码数据流的不同区域中描述历史量化标度和当前量化标度。
15.如权利要求11所述的解码设备,其中
编码数据流是根据MPEG方法编码的形式,所述MPEG方法具有序列层、GOP层、画面层、限幅层、和宏块层。
16.如权利要求11所述的解码设备,其中
编码数据流是将所有画面编码为I画面的处理过的形式。
17.一种用于解码设备的解码方法,用于执行对编码数据流解码的解码处理,该方法包括以下步骤:
接收在过去对编码数据流的编码处理或解码处理中使用的历史量化标度和生成编码数据流时计算的当前量化标度、以及编码数据流;
使用所接收的当前量化标度,执行所接收的编码数据流的解码处理,以生成图像数据;以及
传送历史量化标度和当前量化标度、以及图像数据,使得当要对生成的图像数据执行再编码处理时,从通过所述接收装置接收的历史量化标度和当前量化标度中选择最佳量化标度,作为图像数据的再编码处理中将被使用的使用量化标度。
18.一种解码设备,用于执行对编码数据流解码的解码处理,该设备包括:
接收装置,用于接收在过去对编码数据流的编码处理或解码处理中使用的历史量化标度和生成编码数据流时计算的当前量化标度、以及编码数据流;
解码装置,用于使用通过所述接收装置接收的当前量化标度,执行通过所述接收装置接收的编码数据流的解码处理,以生成图像数据;以及
传送装置,用于传送历史量化标度和当前量化标度,使得当要对通过所述解码装置生成的图像数据执行再编码处理时,从通过所述接收装置接收的历史量化标度和当前量化标度中选择最佳量化标度,作为图像数据的再编码处理中将被使用的使用量化标度。
19.一种用于解码设备的解码方法,用于执行对编码数据流解码的解码处理,该方法包括以下步骤:
接收在过去对编码数据流的编码处理或解码处理中使用的历史量化标度和生成编码数据流时计算的当前量化标度、以及编码数据流;
使用所接收的当前量化标度,执行所接收的编码数据流的解码处理;以及
传送历史量化标度和当前量化标度,使得当要对生成的图像数据执行再编码处理时,从历史量化标度和当前量化标度中选择最佳量化标度,作为图像数据的再编码处理中将被使用的使用量化标度。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP058118/98 | 1998-03-10 | ||
JP5811898 | 1998-03-10 | ||
JP157243/98 | 1998-06-05 | ||
JP15724398 | 1998-06-05 |
Related Parent Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB991076648A Division CN1178516C (zh) | 1998-03-10 | 1999-03-10 | 利用编码历史信息的编码转换*** |
CNA2004100881706A Division CN1599463A (zh) | 1998-03-10 | 1999-03-10 | 利用编码历史信息的编码转换*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1882093A CN1882093A (zh) | 2006-12-20 |
CN1882093B true CN1882093B (zh) | 2011-01-12 |
Family
ID=37520034
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610099781 Expired - Fee Related CN1882092B (zh) | 1998-03-10 | 1999-03-10 | 利用编码历史信息的编码转换*** |
CN 200610099782 Expired - Fee Related CN1882093B (zh) | 1998-03-10 | 1999-03-10 | 利用编码历史信息的编码转换*** |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610099781 Expired - Fee Related CN1882092B (zh) | 1998-03-10 | 1999-03-10 | 利用编码历史信息的编码转换*** |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN1882092B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8498330B2 (en) * | 2009-06-29 | 2013-07-30 | Hong Kong Applied Science and Technology Research Institute Company Limited | Method and apparatus for coding mode selection |
HUE057597T2 (hu) | 2010-04-13 | 2022-05-28 | Ge Video Compression Llc | Videó kódolás képek többes fa struktúrájú alosztásainak használatával |
KR102481529B1 (ko) | 2010-04-13 | 2022-12-23 | 지이 비디오 컴프레션, 엘엘씨 | 평면 간 예측 |
TWI666882B (zh) | 2010-04-13 | 2019-07-21 | 美商Ge影像壓縮有限公司 | 在樣本陣列多元樹細分中之繼承技術 |
KR101549644B1 (ko) | 2010-04-13 | 2015-09-03 | 지이 비디오 컴프레션, 엘엘씨 | 샘플 영역 병합 |
CN105915924B (zh) * | 2010-04-13 | 2019-12-06 | Ge视频压缩有限责任公司 | 跨平面预测 |
KR102273670B1 (ko) * | 2014-11-28 | 2021-07-05 | 삼성전자주식회사 | 움직임 보상 정보를 수정하는 데이터 처리 시스템과 데이터 처리 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996024222A1 (en) * | 1995-01-30 | 1996-08-08 | Snell & Wilcox Limited | Video signal processing |
WO1996025823A2 (en) * | 1995-02-15 | 1996-08-22 | Philips Electronics N.V. | Method and device for transcoding video signals |
US5657086A (en) * | 1993-03-31 | 1997-08-12 | Sony Corporation | High efficiency encoding of picture signals |
US5675379A (en) * | 1994-08-31 | 1997-10-07 | Sony Corporation | Method and apparatus for encoding moving picture signals and recording medium for recording moving picture signals |
-
1999
- 1999-03-10 CN CN 200610099781 patent/CN1882092B/zh not_active Expired - Fee Related
- 1999-03-10 CN CN 200610099782 patent/CN1882093B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5657086A (en) * | 1993-03-31 | 1997-08-12 | Sony Corporation | High efficiency encoding of picture signals |
US5675379A (en) * | 1994-08-31 | 1997-10-07 | Sony Corporation | Method and apparatus for encoding moving picture signals and recording medium for recording moving picture signals |
WO1996024222A1 (en) * | 1995-01-30 | 1996-08-08 | Snell & Wilcox Limited | Video signal processing |
WO1996025823A2 (en) * | 1995-02-15 | 1996-08-22 | Philips Electronics N.V. | Method and device for transcoding video signals |
Also Published As
Publication number | Publication date |
---|---|
CN1882092B (zh) | 2012-07-18 |
CN1882092A (zh) | 2006-12-20 |
CN1882093A (zh) | 2006-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1332565C (zh) | 利用编码历史信息的编码转换*** | |
KR100571307B1 (ko) | 코딩 시스템 및 방법, 부호화 장치 및 방법, 복호화 장치및 방법, 기록 장치 및 방법, 및 재생 장치 및 방법 | |
JP3724205B2 (ja) | 復号装置および方法、並びに記録媒体 | |
CN1882093B (zh) | 利用编码历史信息的编码转换*** | |
JP3724203B2 (ja) | 符号化装置および方法、並びに記録媒体 | |
JP3724204B2 (ja) | 符号化装置および方法、並びに記録媒体 | |
JP3890838B2 (ja) | 符号化ストリーム変換装置、および、符号化ストリーム変換方法、並びに、記録媒体 | |
JP4016290B2 (ja) | ストリーム変換装置およびストリーム変換方法、符号化装置および符号化方法、並びに、記録媒体 | |
JP4139983B2 (ja) | 符号化ストリーム変換装置、および、符号化ストリーム変換方法、並びに、ストリーム出力装置、および、ストリーム出力方法 | |
JP4539637B2 (ja) | ストリーム記録装置およびストリーム記録方法、ストリーム再生装置およびストリーム再生方法、ストリーム伝送装置およびストリーム伝送方法、並びに、プログラム格納媒体 | |
JP4016294B2 (ja) | 符号化装置および符号化方法、ストリーム変換装置およびストリーム変換方法、並びに記録媒体 | |
JP4543321B2 (ja) | 再生装置及び方法 | |
JP4478630B2 (ja) | 復号装置および復号方法、プログラム、並びに記録媒体 | |
JP4482811B2 (ja) | 記録装置及び方法 | |
JP3817951B2 (ja) | ストリーム伝送装置および方法、並びに記録媒体 | |
JP3724202B2 (ja) | 画像データ処理装置および方法、並びに記録媒体 | |
JP4016349B2 (ja) | ストリーム変換装置およびストリーム変換方法、並びに、記録媒体 | |
JP4016293B2 (ja) | 符号化装置および符号化方法、並びに記録媒体 | |
JP2000059770A (ja) | データ伝送装置および方法、並びに提供媒体 | |
JP4016347B2 (ja) | ストリーム変換装置およびストリーム変換方法、並びに、記録媒体 | |
JP2007124703A (ja) | 復号装置および復号方法、伝送装置および伝送方法、並びに記録媒体 | |
JP2000232647A (ja) | 符号化装置および方法、並びに提供媒体 | |
JP2007124704A (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: 20110112 Termination date: 20150310 |
|
EXPY | Termination of patent right or utility model |