CN1617591A - 在视讯编码器中适应性过滤离散余弦转换系数的系统与方法 - Google Patents

在视讯编码器中适应性过滤离散余弦转换系数的系统与方法 Download PDF

Info

Publication number
CN1617591A
CN1617591A CNA2004100566966A CN200410056696A CN1617591A CN 1617591 A CN1617591 A CN 1617591A CN A2004100566966 A CNA2004100566966 A CN A2004100566966A CN 200410056696 A CN200410056696 A CN 200410056696A CN 1617591 A CN1617591 A CN 1617591A
Authority
CN
China
Prior art keywords
image
value
program
big
pass filter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2004100566966A
Other languages
English (en)
Other versions
CN100546383C (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.)
Intervideo Inc
Original Assignee
Intervideo Inc
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 Intervideo Inc filed Critical Intervideo Inc
Publication of CN1617591A publication Critical patent/CN1617591A/zh
Application granted granted Critical
Publication of CN100546383C publication Critical patent/CN100546383C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/142Detection of scene cut or scene change
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/87Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving scene cut or scene change detection in combination with video compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

在视讯编码器中适应性过滤离散余弦转换系数的系统与方法。本发明涉及一种系统与方法,其系提供选择性过滤离散余弦转换(DCT)系数,且此DCT系数的过滤系在频率域中执行,而不是密集像素域(时间域)。此DCT过滤系在DCT编码的回路中进行,而不是在独立于编码回路外的处理口。此DCT过滤系有利于降低使用于编码图像的位数,其系可保护缓依从的冲器模型的占用层级,且较传统技术更能保存位而改进图像品质,例如量化参数(QP)值的增加。

Description

在视讯编码器中适应性过滤离散余弦转换系数的系统与方法
技术领域
本发明通常涉及一种视讯编码技术,特别涉及一种离散余弦转换(discrete cosine transform,DCT)系数的适应性过滤。
背景技术
各种数字影音压缩技术已经产生,其系通过一较低资料速率或者较少储存空间进行传送或储存。这样的压缩技术包含国际标准,例如H.261,H.263,H.263+,H.263++,H.264,MPEG-1,MPEG-2,MPEG-4与MPEG-7等,这些压缩技术成功地通过离散余弦转换(DCT)与移动压缩(MC)等技术达到较高压缩比。此影视压缩技术容许影视资料流被有效地透过各种数字网络,如手机、计算机网络、缆线网络、卫星等等进行传输,并储存于如硬盘、光盘、影视压缩光盘(VCDs)、数字影视光盘(DVDs)等储存媒体。已编码的数据流通过具有与编码数据流兼容语法的影视译码器进行译码。
为了相对高的影像品质,视讯编码区耗尽相当大的资料数量。然而,传输视讯的网络限制编码时使用的数据传输速率,例如一个直播卫星(DBS)系统的资料信道或者是一个固定位速率(CBR)进行传输的供节目选择的数字缆线电视网络资料信道。更者,储存媒体如硬盘的容量也可能限制编码时使用的资料位数。
因此,一个视讯编码过程经常是以交换压缩后影像品质的位数,而且该已编码的视讯可能是相当复杂的。例如通过软件来进行编码时,视讯的编码过程将导致中央处理器处理相当冗长时间后才达成。更者,图像上述问题将使得图像品质被迫降低以赶上实时处理速度。
一般在编码过程中用来控制速率或者量化控制的手段MPEGSoftware Simulation Group(MSSG)系于第十章的测试模块5(TM5)中描述。TM5有许多的缺点,例如TM5不能够保证能够符合视频缓冲检测器(VBV)的要求。结果,译码缓冲器会发生溢位与不足的情况,而引起图片序列的冻结与资料的遗失。
发明内容
本发明涉及一种系统与方法,其系提供选择性过滤离散余弦转换(DCT)系数,且此DCT系数的过滤系在频率域中执行,而不是密集像素域(时间域)。此DCT过滤系在DCT编码的回路中进行,而不是在独立于编码回路外的处理口。此DCT过滤系有利于降低使用于编码图像的位数,其系可保护缓依从的冲器模型的占用层级,且较传统技术更能保存位而改进图像品质,例如量化参数(QP)值的增加。
本发明的一实施例为一种有效压缩视讯的方法,包含:选择性低通过滤在频率域中一大区块的离散余弦转换(DCT)系数;以及量化该低通过滤的DCT系数。
本发明的一实施例为一种有效压缩视讯的视讯编码器,包含:一选择性低通过滤在频率域中一大区块的离散余弦转换(DCT)系数的手段;以及一量化该低通过滤DCT系数的手段。
本发明的一实施例为一种内嵌在有形媒体的计算器程序,包含:一选择性低通过滤在频率域中一大区块的离散余弦转换(DCT)系数的指令模块;以及一量化该低通过滤DCT系数的指令模块。
本发明的一实施例为一种视讯编码电路,包含:一用以选择性低通过滤在频率域中一大区块的DCT系数的电路;以及一用以量化该低通过滤DCT系数的电路。在一实施例中,此电路可内嵌在一视讯编码器中。
底下通过具体实施例配合所附的图式详加说明,当更容易了解本发明的目的、技术内容、特点及其所达成的功效。
附图说明
图1为图像序列的示意图。
图2为本发明的编码环境示意图。
图3为包含一译码缓冲器的译码环境示意图。
图4为编码器、译码器、资料缓冲器与一固定位速率信道的相互关系方块图。
图5为当数值于一固定位速率下供给缓冲器但数值被译码器以一变动位数率下耗尽时,缓冲器占用作为时间函数的图表。
图6包含图6A与图6B,为在视讯编码器中速率控制与量化控制的流程图。
图7为一调整至少部份虚拟缓冲器的占有层级的目标位分配T(i,p,b)的流程图。
图8A为先前技术制作大区块序列的流程图。
图8B为本发明制作大区块序列的流程图。
图9A为避免编码程序产生无益的位填充物以保持稳定的流程图。
图9B为当发现最终的缓冲器占有层级不规则时,重新设定虚拟缓冲器占有层级。
图10A为图像群组的范例。
图10B为当发现一个图像群组内有背景改变进行重设编码参数的流程图。
图11为在一视讯编码器中选择跳过数值来减少或排除译码缓冲不足的流程图。
图12为选择性DCT过滤的流程图。
图13系包含图13A与图13B,其系在视讯编码器进行适应性选择DCT过滤的流程图。
图14为具有1/32强度的8×8影像区块的低通过滤。
图15为具有1/16强度的8×8影像区块的低通过滤。
图16为具有1/8强度的8×8影像区块的低通过滤。
图17为选择一大区块模块的步骤流程图。
图18为另一种选择一大区块模块的步骤流程图。
图号说明:
102  图像                   404  编码缓存器
104  第一图像组             406  译码器
106  第一图像               408  译码缓存器
202  视讯来源               410  固定位速率资料信道
204  编码器                 412  变动位速率输出端
206  服务器                 1002 第一图像群组
208  资料储存器             1004 I图像
212  向上传输埠             1010 第二图像群组
214  人造卫星               1012 I图像
216  网际网络               1014 B图像
302  卫星接收天线           1016 B图像
304  数字视讯拨放器         1020 第三图像群组
306  电视装置               1022 先前图像
308  个人计算机             1024 先前图像
310  膝上型计算机           1026 I图像
312  手机                   1030 P图像
402  编码器                 1032 残留图像
具体实施方式
图1系描述图像102的序列,当本发明的具体实施例描述移动图像压缩编码(MPEG-2)与图像的先后次序时,其原理与功效是可适用于其它已发展的视讯规格例如H.261、H.263、H.264、MPEG-1、MPEG-4。图像此一字眼于此所代表的意义包括图像、影像、讯框、视频对象平面(VOPs)等等其它他近似的意义。视频序列包括于固定特定时间所撷取的多重视讯影像,讯框中图像的播放速率系取决于图像的速率或讯框的速率。在图像序列中的图像可为交错的图像或于互不交错的图像,如渐进式影像。对于所谓的交错的影像,系通过二个不同底色所构成的图像彼此间交错而产生。而没有交错的影像系通过以无图像间交错或渐进式影像的方式产生。
图像102的序列就像是电影或是其它相似呈现方式的影像。图像102的序列有可能像电影是有时间限制的,也可以是无时间限制的如直播卫星(DBS)系统,例如DIRECTV。如图1所示,在图像102的序列中的图像被以特定单位等分成一组组的图像,如图式中所定义的第一图像组104。第一图像组104中的第一图像106为I图像,而其它在第一图像组104中的图像可以定义为P图像或者是B图像。
在移动图像压缩编码(MPEG-2)里,一张图像是更进一步分割成更小单位,该单位称为大区块。在其它视讯撷取规格,例如MPEG-4将图像更进一步分割成其它单位,例如视频对象平面(VOPs)。而在移动图像压缩编码(MPEG-2)里,I图像系属于所有图像大区块皆为图框内编码的型态,因此建构一个影像时并不需要从其它图像中撷取资料。P图像系属于可以为所有图像大区块皆为图框内编码的型态,或者是预测模式编码。P图像的大区块可依据图像本身的数据而进行编码或译码,例如图框内编码,或者是依据较图像序列优先的图像数据,例如预测模式编码。B图像的大区块可以是图框内编码、预测模式编码、反向式预测模式编码或者是结合预测模式编码与反向式预测模式编码,如内插预测。当对依序列图像进行译码或编码时,B图像会于邻近的I图像或者P图像译码或编码后再进行译码或编码。使用预测模式编码大区块来覆盖图框内编码的优点在于使用来作为预测模式编码大区块的位数可显著的少于使用来作为图框内编码大区块的位数。
大区块包含有储存亮度的区域与储存色讯的区域。如同视讯资料流也可包含有可被编码或译码的音频讯号资料。
图2系为一种可使用本发明的编码环境的范例。一个未编码的视讯来源202提供该无编码视讯资料输入至一编码器204。未编码的视讯来源202可以是各种组件,例如摄影机、录像带、胶片、计算机化影像等等。未编码的视讯来源202更可包含一译码器,以对已编码视讯资料进行译码。未编码的视讯来源202与编码器204可为两个独立个体,也可以合并于一硬件内,作为一编码器204。另外,未编码的视讯来源202可为一模拟广播电视讯号的接收器,如此可浏览储存于数字监控系统的模拟影像,如机顶盒TiVo。
编码器204也可以为各种型态,例如特定硬件、特殊用途集成电路、在特定硬件中执行的软件或者可通过一般计算机执行的软件。该软件可被收录于有形媒介如硬盘或光盘。另外,编码器204可与其它编码器同时使用来提供多重编码信道,以使用于直播卫星(DBS)系统、数字缆线网络等等。举例而言,编码器204与其它的编码器一起输入一编码讯号给服务器206,如图2所示,服务器206可将已编码的序列储存于例如DVD 210、VCD等等的大量资料储存器208。于直播卫星(DBS)系统,服务器206可经由上传输端口212提供一编码序列的资料给译码器至一人造卫星214,服务器206也可经由网际网络216来传递编码序列给相隔遥远的使用者。如此可知,编码序列可以被如局域网络、广域网络、地面数字电视广播讯号、蜂巢式电话网络、拨号网络、点对点网络等等各种媒介区分为各种型态。例如,编码器204可以实时对图像序列进行编码,而编码器204也可非实时的对图像序列进行编码。在其它情况下,编码器204可结合数字监控系统、摄影机、特定硬件影像编码器等等。
图3系为一译码环境的范例,其包含一译码缓冲器,该译码缓冲器于视频缓冲检测器(VBV)缓冲器进行编码过程中被塑造出。已编码图像序列可以被译码与于各种环境中观看,如通过卫星接收天线302接收直播卫星(DBS)讯号、机顶盒、通过数字监控系统进行录制、经由数字视讯拨放器304进行拨放、接收地面数字广播等等。于本实施例中系以电视装置306来作为影像观赏器,但是也可以使用其它拨放器。
个人计算机308、膝上型计算机310、手机312等产品也可以用来观赏已编码的影像。具体而言,这些装置皆可以经由网际网络216来接收影像。网际网络216可以经由有线或无线的方式连结。
图4为一描述编码器402、编码缓存器404、译码器406、译码缓存器408与固定位速率资料信道410间彼此关系的方块图。固定位速率资料信道的位速率可依据多重资料信道的资料速率分配量,而进行些微修正。由于多重资料信道中的资料速率的动机分配将视为固定位速率,如此具有微小资料速率修正的近似固定位速率将产生。例如,于直播卫星(DBS)系统中,编码器402可视为一作为程序化的信道,而译码器406相当于一机顶盒内的译码器,用以接收直播卫星(DBS)讯号。熟悉该项技术者皆知由固定位速率资料信道410输出以作为实际视讯的资料速率将小于实际上固定位速率资料信道410本身的传输速率,这是因为有些传输的资料系被错误修正与资料封包等传输资料占用。因此,本发明揭露的方式不仅能于标准的MPEG操作系统中适用于固定位速率编码,也可适用于变动位速率编码。在变动位速率编码上,传输的位速率可以为以经过一特定周期长时间的平均值,特定周期时间可以为几秒钟、几分钟、几小时或任何其它合适的时间区隔,该间隔时间提供资料给译码缓冲器的最大位速率。在最大位速率时,资料经由信道传输至译码缓冲器,直到译码缓冲器没有储存空间,此时该数据信道等待进行下一张图像译码,直到自译码缓冲器移除一些数据后,再继续传输数据进入译码缓冲器。在本说明书中位输率(bit rate)不仅代表固定位速率,也可为变动位速率编码于长时间下的平均。在固定位速率编码器产生一个具有固定位速率的资料流来概括一个图像群组。
对于资料流的应用,如直播卫星(DBS)系统或当家庭数字监控系统接收一现场的广播时,编码器402实时接收视讯影像并编码,而编码器402的输出端为变动位速率(VBR)输出端412。编码器402的变动位速率(VBR)输出端412是被暂时储存于编码缓冲器404。编码缓冲器404与译码缓冲器408的作用系在于暂时储存数值,因此资料可以于不同速率下被存取。于此必须强调的是编码缓冲器404与译码缓冲器408不需要是兼容的,编码缓冲器404是不同于变动位速率(VBR)缓冲器,变动位速率(VBR)缓冲器是编码器402于编码过程时用来占有译码缓冲器408。
编码缓冲器404可以通过来内存或者共享系统的内存执行,比如个人计算机内的内存。当使用内存来作为编码缓冲器404时,该内存是被共享的,而编码缓冲器404转变成一虚拟的缓冲器。举例来说,譬如一大容量的储存装置可以用来储存影像资料与位置参数等等。
编码缓冲器404可以缓冲编码器402的变动位速率(VBR)输出端412于短时间的波动,因此编码资料可以通过固定位速率资料信道410传输至译码器406。同样的,译码缓冲器408可使用来接收由固定位速率资料信道410以相对固定位速率所传输的编码资料,并视需求以变动位速率提供该编码资料给译码器406。译码缓冲器408也可以通过内存或者共享系统的内存来执行,比如个人计算机内的内存。当使用内存来作为译码缓冲器408时,该内存是被共享的,而译码缓冲器408转变成一虚拟的缓冲器。
MPEG指定译码缓冲器408大小,如此才能通过标准的译码器对MPEG允许下的资料流进行译码。例如在MPEG-2规格下,进行DVD的编码时,缓冲器的大小约为224kB。在MPEG-1规格下,进行VCD的编码时,缓冲器的大小大约为40kB。改变规格时,编码缓冲器404与译码缓冲器408的大小可由硬件设计人员或者软件设计人员判断出。
虽然,译码缓冲器408的实际大小可以偏离基准值,但存在一影响大小与占有率的可实施限制。当译码缓存器408大小增加时,在进行序列选择与拨放初始化时,将导致延迟也相对的增加。例如一使用者更改接收直播卫星(DBS)的机顶盒信道或是于观赏DVD时往前或往后拨放,在译码器406接收该资料并进行播放前,接收到的数据将储存于译码缓冲器408。当译码缓冲器408是相当大时,将导致在选择序列与播放序列时产生较长时间的延迟。更者,如图5所示,当预计开始录放时,译码缓冲器408将系充满数据。
录放一序列时,系取决于两个状态的先后。第一个状态为经由MPEG资料流所定义的时间。MPEG资料流中的一参数值vbv-delay为一序料数据被译码器406播放初始化前于译码缓冲器208内被缓冲的时间长度。参数值vbv-delay在16位时的是0~65,535。参数值vbv-delay在90kHz脉冲信号的译码器406进行运作时可会得一较低值,因此,参数值vbv-delay长短系相当于被90,000分界。例如,该参数值vbv-delay的最大值65535对应于延迟时间大约728微秒(mS)。因此,参数值vbv-delay的延迟可在序列时被初始化录放,除了译码缓冲器408是填满的,即使该译码缓冲器408相对大容量,而译码缓存器408的占有率可以相对较小。
第二状态相当于译码缓冲器408的填充。当译码缓冲器408已经填满无法再被填入,但数据持续不断的传输至译码缓冲器408的情况下,将导致一些储存于译码缓冲器408中的数据被遗漏。为了预防这样的情况发生,译码器406可在一较参数值vbv-delay早的时间点进行初始化录放。例如译码缓冲器408大小相当于224kB大小的缓冲器时,每秒超过2.52Mega bit位传输率于少于参数值vbv-delay的最大延迟时间前即充满译码缓冲器408。
视频缓冲检测器在MPEG上的概念是倾向于限制MPEG资料流,因此不会发生译码缓冲器408的缓冲不足与缓冲区溢位的情况发生。视频缓冲检测器不需要为实际的缓冲器,并且不用实际上进行资料储存。然而,尽管视频缓冲检测器的概念存在,于MPEG的测试模式5所提供的视讯译码技术并无法保证顺从视频缓冲检测器能免于损失,缓冲不足与缓冲区溢位将发生。
译码缓冲器408的缓冲不足通常发生于译码缓冲器408将储存的资料用完的情况下。如固定位速率资料信道410的位输出率低于译码器406于一特定周期时间下的资料消耗量。当编码器402已经使用太多位于进行一特定位速率的序列编码时,即可能发生上述的情况。译码缓冲器408缓冲不足的情况将产生图像序列暂时冻结。
译码缓冲器408的缓冲区溢位通常发生于译码缓冲器408接收到多于本身所能储存的资料大小。如固定位速率资料信道410的位速率高于译码器406于一特定周期时间下的资料消耗量,就会发生缓冲溢位。或者是当编码器402在特定速率下使用太少位于进行序列编码时,也可能发生上述的情况。当译码缓冲器408不能够储存所有自固定位速率资料信道410所供给的所有资料时,将产生资料遗失。这样的缓冲区溢位可以通过位填充的方式预防,位填充的方式系藉采不经由译码器406来进行资料传递,因此译码器406所使用的位数符合在一周期时间固定位速率资料信道410所传输的资料量。然而,位填充可能产生如图9A与图9B所述的问题。
视频缓冲检测器具体化的概念被使用在编码器402上作为播放一视讯资料流,来避免译码缓冲器408发生译码缓冲不足或缓冲区溢位的情况。视频缓冲检测器缓冲器的占用层级被监控以播放一于译码缓冲器408中无译码缓冲不足或缓冲区溢位的视讯资料流。于此必须强调的是,在编码缓冲器404的缓冲不足或溢位与在译码缓冲器408中的缓冲不足或溢位是不相同的。举例来说,在译码缓冲器408中产生缓冲不足的情况,例如当持续一段周期时间,已编码的位速率超出固定位速率资料信道410所供给的资料时,但此种情形也可能导致编码缓冲器404产生溢位。更者,在译码缓冲器408中产生缓冲区溢位的情况,如持续一段周期时间,已编码的位速率小于固定位速率资料信道410所供给的资料时,但此种情形也可能导致编码缓冲器404缓冲不足。
图5系描述一般情况下当资料以一固定位速率传输至译码缓冲器,然而资料系被译码器以一变动位速率译码耗尽时,译码缓冲器占用的示意图。在MPEG TM5的系统下,资料流以一固定位速率传输资料至译码器,并无法保证译码缓冲器能免于缓冲不足与溢位的情况发生。具体化的例子,如以一固定位速率传输资料至译码缓冲器并且该译码器使用该些资料实时播放视讯。
时间(t)502被设定为水平轴。时间增加,将往水平轴右边移动。译码缓冲器占用504被设定为垂直轴。在起始点时,译码缓冲器为0。该缓冲器的最大极限值被设定为BMAX528。译码器产生一资料流,该资料流维持于缓冲状态低于BMAX528且超过0。例如译码缓冲器将依据程序省略、改变接收直播卫星(DBS)系统的选择信道或者数字缆线电视网络等等而产生波动。译码器监视已接收资料来作为系统时钟基准(SCR),例如SCR(0)506。系统时钟基准(SCR)为一基准时间的时间标记,该基准时间通过编码器内建于位资料流中,用以在译码时能读取该时间标记与当时的系统时钟能同步取样,而重组每一段编码过程中内建于位资料流中的对应该时间标记的视讯信息。当视讯资料被译码时或者视讯被播放,时间标记指出并同步视觉与声音化。
一般使用在实时视讯编码的图像型态图案系采重复的IBBPBBPBBPBBPBB排列方式。尽管I图像占用较大的数据量,但周期性的使用I图像能在更改直播卫星(DBS)系统信道后于一较短周期时间播放图像较为有利。
图像的演出或者播放次序可以自图像编码或译码次序中改变。B图像依据周围的I图像或者P图像,而不是B图像,因此,I图像或者P图像随着当一处于演出次序的B图像将被进行编码、传输、译码之后产生,而不是当该B图像将正在编码、传输、译码。例如,一个较小位置序列如图5所示包含一图像数据其排列次序为IPBBP,B图像所依据的P图像系较B图像优先被编码、译码,即使该图像以IBBPBBPBBPBBPBB的排列方式。声音资料在视讯演出时通常遵照次序。表I统计译码器于时间的异动性。为了更清楚的定义,影像群组(GOPs)将仅具有IPBBP图像,但一般而言影像群组(GOPs)不仅具有5个图像,见图5所示。
表I
时间 异动性
<T0 资料累积于缓冲器
T0 I画面被译码
T1 I画面播放,第一P画面被译码
T2 第一B画面被译码并播放
T3 第二B画面被译码并播放
T4 第一P画面播放,第二P画面被译码
译码缓冲器忽视资料直到具有时间标记作为I讯框的图像标头出现。该时间系被称为TTS0(0)508,如图5所示。对于图像的部分、讯框或者无法自行译码的数值的缓冲器而言,置于不顾的数值能够防止资料缓冲。经过TTS0(0)508后,译码缓冲器开始累积跳跃区间R0510的资料。
对一个时间区间τ0(0)512而言,译码缓冲器累积译码器即将使用的数据。时间区间τ0(0)512视为先乘载的延迟。图5的上端为时间的基准,时间的基准系依据以近似平均的方式均分一图像周期,而该图像周期系近似讯框速率的倒数或者该图像速率的倒数(1/Rf)514。如同以下所述,于相对应图像,图像的时间位置可被时间标记定义出。在时间点T0516,译码器撷取一影像群组第一张为I图像的所有数据。资料流定义出一在译码时间标记下对I图像进行译码所需时间,该时间于图中为时间流DTS0(0)518与时间T0516。
于I图像数据的补偿是依据译码缓冲器占用的相对坡度减少量520而定。为了更明确的定义出,自译码缓冲器选出的数值被描绘于图5中,该数值在图形上的出现往往是突然的,但是我们可已经由一习知技术来了解它的意义,该习知技术就是一个相对小数量的时间可以用来补偿数值。一般而言,I图像包含相对较大的数据,P图像具有较少的数据,B图像具有最少的数据。然而,熟知该项技术领域的人将可以发现具有相对较大资料总数的图框大区块可以P图像与B图像来呈现,就像I图像一样,因此P图像与B图像也可以消耗大数量的资料。在时间点T0516所被译码的I图像并非在时间点T0516播放,就像表示时间标记PTS0(1)522指示播放的时间点为T1524。
在时间点T1524,译码器播放在时间点T0516所译码出的I图像。时间区隔PTS___OFFSET 526说明自作为选择序列的译码缓冲器开始累积资料至第一图像被播放为止的延迟。译码时间标记DTS0(1)530指示译码器对位于时间点T1524序列中的第一张P图像进行译码。自译码缓冲器中所选择出的数据可通过缓冲器占用的减少量532来说明。在时间点T0516与时间点T1524间,译码缓冲器累积附加的数值,如图中跳跃534。表示时间标记PTS0(4)536指示译码器播放位于时间点T4538的第一张P图像。在此实施例中,该第一张P图像于播放前先进行译码,因此可作为向后预测、向前预测或者甚至是双方向预测编码大区块的B图像可被译码。
在时间点T2540,译码器译码并播放表示时间标记PTS0(4)536所指示的第一张B图像。无译码时间标记(DST)被播放,因为播放与编码的动作产生于相同时间间格里。这样情况可以通过一实际的译码器来说明,在译码与播放间存在有一相当小的延迟,该延迟可以用来说明数值时间与其它潜在因素。B图像所使用的数值总数是相对小,就像第一B图像在译码缓冲器占用中的相对小减少量550。然而,B图像也可以包含能够消耗相对大数据总数的图框大区块。
在时间点T3546,译码器译码并播放表示时间标记PTS0(3)548所指定的第二张B图像。
在时间点T4538,译码器译码并播放于时间点T1524原始译码的第一张P图像。在时间点T4538,译码器进行译码时间标记DTS0(4)554所指定的第二张P图像。该第二张P图像将于后面时间进行播放,这是被一表示时间标记(于图中未示)所指定。译码器持续进行译码与播放其它图片。例如,在时间点T5544译码器将对一被数据流所指定的B讯框进行译码与播放。
图6为视讯译码器的速率控制与量化控制过程的流程图。熟知该向技术领域的人将可以发现上述的过程可以以许多方式进行修改,但这样并无违背本发明精神与目的。例如,许多过程点可以结合,可以重新排列,可以省略等等。被选择的过程点可以被速率控制与量化控制过程来取代,这样的方式已在第十章节的测试模态5中揭露。在编码时,位被作为图像编码的消耗速率影响译码缓冲器的占用。请参阅图6中的括号,制程位置点与位的分配、速率的控制以及适合的量化有关。位的分配与估计对已编码的图像进行编码的位数有关。速率的控制与判断用来作为编码一大区块的量化参数基准Qj有关。适合的量化与分析大区块中用来作为修改量化参数基准Qj的活动空间与计算用来使一大区块量化的量化参数tj有关。
过程开始于步骤602,步骤602为开始接收到第1图像群组。以一具体化的方式表示,就是制程可能仅于步骤602的第一图像群组内撷取一位置点,而以后再于第1图像群组内撷取剩下的位置点。在上述的过程中,在图像被速率控制与量化控制过程制程前,该图像系被进行图像分组。一个图像组开始于一个I图像并且可包含其它图像。一般来说在一图像组中的其它图像与该I图像有关,但这不是必然的。程序由步骤602进入步骤604。
于步骤604,程序接收到图像群内的图像组编码的模式或型态。在速率控制与量化控制程序中,对图像群组中的每一个图像进行编码模式或型态判断是被使用的,于图像进行速率控制与量化控制程序步骤前。例如,在图5中曾经描述一型态为IPBBP的图像群组。程序由步骤604进入步骤606。
在步骤606,程序判断已被编码的图像群组内的P图像数目Np与B图像数目Nb,例如在一型态为IPBBP的图像群组中,有两张P图像与两张B图像被编码,因此Np的数值为2而Nb的数值也是2。如此就不会去追踪剩下的I图像的数目,这样在图像群组中唯一的I图像为第一图像。程序由步骤606进入步骤608。
在步骤608,程序初始化的值作为错杂评估Xi、Xp与Xb,和剩下将分给被编码图像群组的位数(残留位值)R。错杂评估Xi、Xp与Xb系依据方程式1-3而来。
X i = 160 · bit _ rate 115 - - - - ( 1 )
X p = 60 · bit _ rate 115 - - - - ( 2 )
X b = 42 · bit _ rate 115 - - - - ( 3 )
在方程式1-3,变量bit_rate对应于资料信道中固定位速率(每秒钟的位),就像在图4中所描述的固定位速率信道410。另外一个具体化的例子就是,变量bit_rate对应于变动位速率信道的平均或设定的平均位速率。更者,变量bit_rate对应于一变动位速率信道的断续固定位速率。
在一具体实施例,作为剩下位数R的序列起始初始值R0在方程式中系以R0表示。在序列的起始,没有在先前的图像群组与结果,也没有先前图像群组的剩余位数的滞销品。更者,如何更新剩余位数R的数值将于方程式27与28中描述。
              R0=G                        (4)
G = bit _ rate · N picture _ rate - - - - ( 5 )
变量G代表一可被数值信道依据一对应于图像群组的代表时间长度的总数进行转换的位数。该时间总数随着图像群组内的图像数目而改变。在方程式5中,变量bit_rate为每秒钟位,数值N对应于图像群组中的图像数目(所有型态),变量picture_rate为每秒钟的图片或讯框。程序由步骤608进入步骤610。
在步骤610,程序计算位的初始目标数Ti、Tp与Tb,例如对一个被编码的图像的初始目标位分配。需注意的是当B图像被编码时,在图像群组中的图像将被编码于序列外。例如,在速率控制与量化控制程序估计该图像的初始目标位分配,将对应的编码图像型态而依据方程式6~8。
T i = max { ( R ( 1 + N P X p X i K p + N b X b X i K b ) ) , ( bit _ rate 8 · picture _ rate ) } - - - - ( 6 )
T p = max { ( R ( N p + N b K p X b K b X p ) ) , ( bit _ rate 8 · picture _ rate ) } - - - - ( 7 )
T b = max { ( R ( N b + N p K b X p K P X b ) ) , ( bit _ rate 8 · picture _ rate ) } - - - - ( 8 )
在方程式6,当该图像为图像群组的起使为I图像时,Ti为下一个已编码图像的目标位分配,Ti是由两组括号中取其较大者。在方程式7,当下一张图像为P图像时,Tp为已被编码的下一图像的目标位分配。在在方程式8,当图像为B图像时,Tb为已被编码的图像的目标位分配。常数Kp与kb的数值系取决于用来做为图像编码的标准化矩阵。常数Kp与kb可以变化,具体的例子如Kp为1.0与kb为1.4。这些常数值可依据编码图像的特性,如数量、移动方式、组织、颜色和影像等细节而改变。
在速率控制与量化控制程序的一个具体化的例子,程序进一步依据如接续的图7所述的译码缓冲器的缓冲器占有推断来调整自初始目标位分配的目标位分配T(i,p,b)
当程序决定下一张图像被编码的目标位分配,程序由步骤610进入步骤612。一被分配为一图像的位时,该图像进一步被分配在该图像的大区块中。该图像的位分配可以依据一习知的技术,如在TM5中所提的技术或者是后续即将提到的步骤614的技术来进行估算。另外,图像于编码成大区块时可以更进步被处理成不同的次序或者是序列,该次序或者是序列将于图8A与图8B中讨论。
在步骤612,程序设定初始值来作为初始虚拟缓冲器充满。具体化的实施方式,就是每一个图像皆有一个虚拟缓冲器。变量dj i、dj p以及dj b代表作为I图像、P图像、B图像的虚拟缓冲器充满。变量j代表被编码且起始值为1的大区块的号码。J为0时代表初始状态。虚拟缓冲器充满,如dj i、dj p以及dj b,相当于该j-th大区块进行编码前的虚拟缓冲器充满,如此该虚拟缓冲器充满相对于该在大区块(j-1)充满。
d 0 i = 10 · r 31 - - - - ( 9 )
d 0 p = k p · d 0 i - - - - ( 10 )
d 0 b = k b · d 0 i - - - - ( 11 )
方程式12系呈现在方程式9中出现的反应参数值r的计算结果。其它计算该反应参数r的方式也可以被使用。
r = 2 · bit _ rate picture _ rate - - - - ( 12 )
关于方程式10与11,Kp与kb为先前于方程式6~8所定义的常数。程序由步骤612进入步骤614,或者略过而进入步骤616。
程序也可以包含一个大区块模式结论622来判断是否一个大区块该不该编码成Intra,Inter_No_MC,Inter_MC等等。可用的模式型态依据种种变因,如图像型态、图像是交错或者累进的。大区块模式判断可以被平行实施或者于步骤616、619及621中连续进行。在模式判断中有效使用一个编码成本作为移动指针的大区块模式判断将于图17中详细描述。
在步骤614,程序更新作为虚拟缓冲器充满的结果,例如dj i、dj p以及dj b。这些被更新的dj i、dj p以及dj b系依据图像的种类来进行更新,例如当I图像被编码时,数值dj i被更新。程序更新作为虚拟缓冲器充满的结果以计算编码大区块需使用的位数。更新至虚拟缓冲器充满需对应被使用来分配图像中大区块中位的技巧。例如在TM5的格式中,系此近乎线性的方式来分配图像中大区块中的位。位也可视图像(P图像或者是B图像)中的大区块的相对移动而被有利的分配在大区块,胜过判断相对的移动。
方程式13a、14a及15a描述更新虚拟缓冲区充满的计算值的一般格式:
d j i = d 0 i + B j - 1 - TMB j - 1 i - - - - ( 13 a )
d j p = d 0 p + B j - 1 - TMB j - 1 p - - - - ( 14 a )
d j b = d 0 b + B j - 1 - TMB j - 1 b - - - - ( 15 a )
变量Bj对应至已编码过的图像大区块中被用以编码的位编号,其中的j值表示为第j个大区块,同理j-1代表j的上一个但不包括第j个对应的已编码过的图像大区块中被用以编码的位编号。变量TMBj-1 i、TMBj-1 p及TMBj-1 b分别对应至j的上一个但不包括第j个对应的已编码过的图像大区块中被用以编码的位编号。
方程式13a、14a及15可表示整个虚拟缓冲区充满的计算值,亦即,在已实施的TM5程序中提及的dj i、dj p或dj b。此方式的缺点,TM5程序系为图像大区块变动而作对应配置,因此当处理的图像为运动节目,该大区块中的位便需要较拥有相同位编码,但内容较单调或缓慢的图像更为快速做出对应变化。
d j i = d 0 i + B j - 1 - ( T i · ( j - 1 ) MB _ cnt ) - - - - ( 13 b )
d j p = d 0 p + B j - 1 - ( T p · ( j - 1 ) MB _ cnt ) - - - - ( 14 b )
d j b = d 0 b + B j - 1 - ( T b · ( j - 1 ) MB _ cnt ) - - - - ( 15 b )
在具体实施例中,更新过的数值可以表示成如13c、14c及15c的形式。使用上述三个方程式的演算将使得根据图像的大区块移动的配置较有优势。上述优势,例如可以允许根据计算大区块关连动作而配置位,而非仅是一个常数值或一个预估的位移值。图像大区块中位配置方法可以一更详细的表示式条列如下如图8A及图8B所示:
d j i = d 0 i + B j - 1 - ( T i · Mact _ sum j - 1 MACT ) - - - - ( 13 c )
d j p = d 0 p + B j - 1 - ( T p · Mact _ sum j - 1 MACT ) - - - - ( 14 c )
d j b = d 0 b + B j - 1 - ( T b · Mact _ sum j - 1 MACT ) - - - - ( 15 c )
变量Mact_sumj-1则代表根据已编码过的图像大区块的动作总值,亦即,如方程式17所表示的上一个大区块,但不包括大区块j。
MACT = Σ K = 1 MB _ cnt Mact k - - - - ( 16 )
Mact _ sum j - 1 = Σ K = 1 j - 1 Mact k - - - - ( 17 )
方程式16中,参数MB_cnt代表图像中的大区块编号,且变量Mactk代表第k个图大区块相亮度的移动活力。很多方式及技巧能用以计算该移动活力,例如相异运算及绝对差异总和运算。
另一具体实施例,该虚拟缓冲区占用的更新值dj i、dj p或dj b系根据第10章所提及,关于自MPEG格式撷取的TM5模型为基础建立的方程式计算的值。
再一具体实施例,该虚拟缓冲区占用的更新值dj i、dj p或dj b系根据方程式13d、14d及15d计算所得。
d j i = d 0 i + B j - 1 - ( α i T i · ( j - 1 ) MB _ cnt + ( 1 - α i ) T i · Mact _ sum j - 1 MACT ) - - - - ( 13 d )
d j p = d 0 p + B j - 1 - ( α p T p · ( j - 1 ) MB _ cnt + ( 1 - α p ) T p · Mact _ sum j - 1 MACT ) - - - - ( 14 d )
d j b = d 0 b + B j - 1 - ( α b T b · ( j - 1 ) MB _ cnt + ( 1 - α b ) T b · Mact _ sum j - 1 MACT ) - - - - ( 15 d )
方程式13d、14d及15d的αi、αp及αb系一加权指数,其系为大约0至1之间的系数。上述的αi、αp及αb等加权指数较之先前提及的根据TM5采用的相对关连平均演算及根据方程式13c、14c及15c采用的动作平均演算方法而言,对于图像大区块的位分配有更大的容许优势。这里采用的合并分配能关连的公平的补偿位,例如某位明显的超出范围时就能发挥该分配方法的优势。加权指数αi、αp及αb的值可以在0至1之间大范围的变动。一个具体实施例,可以将加权指数αi、αp及αb的值可以在0至0.5之间,举例而言,样本的值可以设定为例如0.2、0.3、0.4及0.5等,其它超过0至1范围的值则可以一些方法加以除去。前述的方法有一具体实施例,图像编码时可以让使用者自行设定上述的αi、αp及αb的加权指数的数值。
占用虚拟缓冲区的更新值dj i、dj p或dj b系根据每一特定图像大区块计算而得。然而,一个可以理解的事实,对第一大区块的更新值,亦即,dj i、dj p或dj b会与步骤612的初始设定相同,如此则步骤614对于第一大区块的设定值可以被忽略。这个程序更可进一步由步骤S614推至步骤616。
步骤616中,将计算大区块量子数j的参考量子参数Qj。方程式18表示一个参考量子参数的计算式,这个程序更可进一步由步骤616推至步骤619。
Q j = ( d j · 31 r ) - - - - ( 18 )
步骤619中,将根据大区块计算动作的正交空间N_Sactj。一个具体实施例,系为根据步骤TM5及方程式19a、19b、21a、22及23a计算出动作的正交空间N_Sactj。上述的演算方法的缺点,系为根据TM5采用的方法分配的大区块位计算出的动作的正交空间N_Sactj,该位分配仅考虑空间活动(或本质)而未能将对象自身转动考虑进去。此外,在稍后将再详细说明的方程式23a中,TM5步骤对于计算正交空间N_Sactj有一些限制,上述限制亦将在稍后配合图8A及图8B再详细说明。
另一具体实施例,根据方程式20a、21b、21c、22及23b计算的正交空间N_Sactj。其中结合计算对象动作的参考量子参数Qj及经由正交空间达到调整效果的演算方法,即可让图像大区块位的分配同时兼顾位移(或本质)及转动的计算,因而大大的改善了图像的品质。举例,如果只有考虑对象在空间活动,在处理运动员激烈运动下局部区域图像,例如脚部的本质变化,因为通常将分配少数的位,导致产生所谓画面的「碎裂(或锯尺状)」视觉效果。发生上述情形的原因为在图像剧烈运动下的局部区域显现相对较高的空间活动(或本质),也因此分配了较少的位。此外,在稍后将再详细说明的方程式23b中,有一更进一步的具体实施例,其中采用一种空间活动的实体值,该实体值可以更吻合介于目标位与实际编码位的分配,也因此可以减少缓冲区超出与不足部分的近似,故可增加对象的对比性及鉴识度。
步骤619中,利用图像中的空间活动决定图像的品质,而有许多可行的方法能计算此一空间活动。举例,上述的程序能通过先前第10章介绍的TM5或在此单元将介绍的新方法计算空间活动。方程式19a揭示一种如第10章TM5的应用,通过以框架为基础的次图块法及以场域为基础的次图块法利用图像亮度计算出大区块j在空间活动。I图像对于第j个大区块的空间活动,亦即,本质,能够通过方程式19b计算得知,该方程式则是通过TM5提供的演算方法。
actj=1+min(vblk1,vblk2,...,vblk8)                (19a)
vblk n = 1 64 · Σ k - 1 64 ( P k n - P _ mean n ) 2 - - - - ( 19 b )
关于计算P_meann的公式稍后将于介绍方程式21a时一并描述。Pk n系由对应于第n个8乘8阶次图块撷取画素的取样。上述方程式的缺点为,方程式19b所示的算法较为复杂而且需耗费较多的CPU运算时间,对于一些慢速通用的CPU,例如微处理器,在应用到实时编码时将显得难以执行。方程式19b系参照L2正交并通过计算差异值而获得空间中位移的数值,这样的算法在全解析全屏幕下的实时编码将显得不敷使用,结果就是,通常传统的系统都要依赖硬件来负担大部分实时编码的工作。尽管硬件译码的执行速度相较于软件译码要来得更快,但相对的也有设备昂贵、缺乏支持及升级不易的缺点,其中该软件译码系一种通过软件的设置,而在通用电子装置,例如个人计算机,即可达成编码工作的方法。因此,许多图像编码技术都朝向寻求一种在一般通用的电子装置就能有效率的执行实时编码处理的方法。
方程式20a揭示另一种对于第j个大区块的空间活动计算方法的具体实施例。此外,再一种具体实施例已于方程式19a及19b揭示,该演算方法系通过加总误差的绝对值(而非误差的平方值)以计算大区块j空间活动。接着,再一具体实施例如方程式20b所示,系计算大区块j空间中的转动。
Sact j = Σ k = 1 256 | P k j - P _ mean j | - - - - ( 20 a )
Mact j = Σ k = 1 256 | P k j - P _ mean j | - - - - ( 20 b )
方程式20a中,Pk j对应于原始的图像亮度数据。方程式20b中,Pk j则对应于原始的图像亮度资料或根据大区块型态而作的转动补偿亮度资料。当对应I图像的大区块时,该Pk j值系为第j个自16乘16原始亮度数据撷取的样本值。当对应图框间图像的大区块时,该Pk j值系为16乘16原始亮度资料值。该P_meanj的演算方法于稍后将提及的方程式21b及21c描述。
承上,方程式20a及20b采用的演算方法有几个优点,可以使用一般通用电子装置搭配先前提及的速率控制及量子控制软件编码方法,达到全屏幕全解析的实时图像编码效果。当然,上述方程式20a及20b也可以用在非实时编码处理,也可以于编码过程中加入硬件支持。一个图像编码流程的具体实施例,其系一3GHz的中央处理器执行的软件编码,在处理全屏幕全解析(720×590画素)的PAL、SECAM或NTSC图像数据流实时编码显得相当有效率。
方程式20a及20b提供的演算方法能计算出基于习知L1正交演算的绝对值误差总和(Sum of Absolute Differences,SAD)。尽管上述的SAD演算方法较为复杂,但只要选择适当的处理器或内建特殊指令的CPU即可获得即有效率的编码结果。一个具体实施例,个人计算机搭配一CPU,该CPU系兼容于资料流单指令/多数据(SingleInstruction/Multiple Data,SIMD)及其延伸指令群(Stream SIMDExtensions,SSE)等特殊运算指令。另一具体实施例,个人计算机搭配一CPU,该CPU系兼容于与一相同或类似应用于SSE的整合绝对值误差加总运算指令(Packed Sum of Absolute Difference,PSAD),PSADBW,例如,市面上采用全部或部分SSE指令的Intel Pentium III、Pentium 4、Xeon、Centrino、AMD Athlon、Duron或Opteron等处理器。可以推测,目前正在研发或尚未量产的新处理器,亦会将上述的SSE运算指令内建其中。更可以进一步推测,未来将推出的新指令组仍会内建或兼容SSE指令。
方程式21a表示一计算方程式19b中样本值的演算方法。方程式21b及21c分别表示计算方程式20a及20b中样本值的方法。
P _ mea n n = 1 64 · Σ k - 1 64 P k n - - - - ( 21 a )
P _ m ean j = 1 256 · Σ k = 1 256 P k j - - - - ( 21 b )
              P_meanj=0                          (21c)
一个具体实施例,方程式21a所示的算法表示一利用前述TM5计算第n个8乘8次图块P_meann取样值的演算方法。另一具体实施例,表示通过方程式21b及21c计算出前述P_meanj取样值的平均值的方法。方程式21b及21c具有优势,亦即可以结合空间活动(或本质)以及转动的预估计算。在处理I图像大区块时使用方程式21b,处理图框间图像大区块时则使用方程式21c。
方程式22表示一空间正交位移值的演算方法,其系通过步骤621提供的方法计算量子数,其中该量子数系应用于离散余弦转换(DiscreteCosine Transform,DCT)系数。
N _ Sact j = ( 2 · Sact j ) + Savg _ act Sact j + ( 2 · Savg _ act ) - - - - ( 22 )
如方程式22所示,第j个大区块的正交空间活动值N_Sactj系通过大区块自身的空间活动值Sactj及空间活动平均值Savg_act计算所得。其中该空间活动平均值Savg_act系可由方程式23a或23b计算所得。
Savg _ act = 1 MB _ cnt · Σ j = 1 MB _ cnt Sact j previous - - - - ( 23 a )
方程式23a表示一前述TM5描述过的演算方法,其系通过前一图像(而非目前图像)的空间活动值Sactj计算所得。因此,传统依据TM5设计的编码器根据方程式22计算正交空间活动值N_Sactj的演算方法就显得准确性较低。因为若通过方程式23a计算出一空间活动平均值Savg_act,则所谓的正交空间活动值N_Sactj更接近一对于正交化的预估值,而非实际去计算的数值。也因此,方程式23a提供的预估方法在由前一个画面或图像转至目前的画面或图像时会有其不足之处。依据TM5的思维,通过前一图像计算得到空间活动平均值Savg_Sactj后,即可以一初始值,例如400,作为上述空间活动平均值Savg_Sactj
TM5提供的编码方法利用前一图像作为空间活动值Savg_Sactj,因为TM5提供的方法系以一流程序列以一对一的方式对每一个大区块编码,因此在编码的运算时间内就无法取得空间活动平均值Savg_act,亦即不能通过空间活动平均值计算出正交空间活动值N_Sactj。更进一步的说明将于稍后图8A及8B再详述。方程式23b则表示一于TM5基础上的改良演算方法。
Savg _ act = 1 MB _ cnt · Σ j = 1 MB _ cnt Sact j current - - - - ( 23 b )
一个具体实施例,处理序列大区块在重组时有一个优点将于稍后图8A及8B再详述。该重组方法系可以在目前的图像中直接以大区块的空间活动值Sactj计算空间活动平均值Savg_act,如此正交空间活动值N_Sactj便会是真实的正交值而非预估值。上述方法可使数据更量化更可预估,如此则图像编码过的资料量将更接近实际资料量,如此也更进一步缩减或消除分别来自I图像、P图像及B图像中占用虚拟缓冲区的更新值dj i、dj p及dj b的不规则及失真。另外,值得注意的是通过方程式23b计算空间活动平均值Savg_act时并不需要自行定义一初始值,如前述取400为初始值,因为通过正在编码的图像空间活动值Sactj可以作为真实的平均值。流程由步骤619推至步骤621,如方程式13至17所述,系通过计算占用虚拟缓冲区的状态以计算实际的转动及位移。
步骤621的程序将计算量子参数mquantj,该量子参数mquantj系用以量化第j个大区块。可以理解的是,上述的量子参数mquantj可以在步骤621中使用或者先储存起来稍后再用。方程式23表示一计算量子参数mquantj的演算方法。
       mquantj=Qj·N_Sactj               (23)
方程式23中,Qj为稍早于方程式18提及的参考量子参数,N_Sactj为稍早于方程式22提及的正交空间活动值。一个具体实施例,上述的程序更进一步检查计算的量子参数mquantj及其不可预测的量化层QAC(i,j)范围限制因而卡住的情形。例如,一个具体实施例,采用标准MPEG-1图像编码并检测到计算出的量子参数mquantj其值为2并自动将该数值替换成4,该量子参数mquantj为将用在稍后大区块编码流程中,用以产生量化层QAC(i,j)的数值。然而,在MPEG-1编码中,如欲满足8位则其量化层QAC(i,j)将被限制于-255至255之间,该资料卡住的情形将导致可视的噪声,不过这个问题可以通过限制改良位内容的方式加以消除。上述实施例中的技术内容稍后将于图9A及9B,而程序由步骤627推至判断方块步骤630。
以一个具体实施例来说,过程更重新设定虚拟缓冲器占用值(dj i、dj p与dj b)与量化参数mquantj,以符合来所选择的刺激,该刺激将于接续的图9A中详细描述。程序由步骤621推至步骤632。
在步骤623内,程序对J-th的大区块进行编码。程序在步骤616之前对J-th的大区块用量化参数(mquantj)来计算进行编码。编码技术能包括例如离散余弦转换、移动向量等等的计算。在一个具体化方面,那些程序能有选择地略过那些图像B的大区块的编码会在后来的图11将有非常详细的描述。程序由步骤623推入判断方块步骤625。
在判断方块步骤625,程序判断在图像中大区块是否已在步骤616被译码,或者如图11所述可略过。当图像的大区块已经被编码完毕或者跳过该程序步骤时,程序步骤由步骤616进入步骤617。否则,程序回到步骤614来接续后续大区块的制程。
在步骤627,程序储存虚拟缓冲器的最后占用值,来作为相同型态下一张图像编码的初始位置。例如目前讯框虚拟缓冲器的最后占用值,当j为MB_cnt时,dj i、dj p、dj b的值被储存,因此,于一相同型态的下一张图像条件下,可用d0 i、d0 p、d0 b为一起始值。在某些况下,于一持续时间用来编码的位数相对较低,因此,位充系被使用来增加编码时的位数。但是位填充的使用将导致虚拟缓冲器内的占用值扭曲,而使得编码器的状态呈现不稳定。举例来说速率控制与量化控制程序包含一个以上用以更有效降低位填充的技术,其将于图9A与图9B中进一步描述。程序由步骤627进入步骤630。
在判断方块步骤630,图标说明内的关于图像的制程已经完成,接续将进行判断这个图像是否为该图像群组最后一个图像。这是可以通过监控P图像的数目Np与B图像的数目Nb的剩余值来达成,其中该P图像的数目Np与B图像的数目Nb的剩余值已于步骤66中说明。当该图像群组中仍有图像尚待处理时,程序由判断方块步骤630推至步骤632。换言之,当这个程序已经完成图像群组处理,这个程序会从判断方块步骤630发出到判断方块步骤634。
在步骤632中,这个程序提供最新、最适当的P图像数NP或是B图像数Nb,并将程序推至步骤636以进行图像群组中下一个图像的初始状态。下一个将被处理的图像不一定就是下一张被播放的图像,因为在编码程序图像可能再次被重新安排。在步骤636中,这个程序将依据刚被编码的图像更新相对应的错杂评估。例如,如果一个I图像刚刚已经被编码完成,这个程序就会针对I图像更新的错杂评估Xi,此程序可由方程式24得知。其中方程式24、方程式25及方程式26分别如下列关系是所示:
               Xi=SiQi                     (24)
               Xp=SpQp                     (25)
               Xb=SbQb                     (26)
在方程式24、方程式25及方程式26中,Si、Sp、及Sb的值,相对应于所产生的位号码(the number of bits),或是之前使用做图像编码,而该图像可分别是I图像、P图像或是B图像。Qi、Qp、及Qb的值系对应于量化参数mquantj的平均值,量化参数mquantj是用来将图像中的大区块量化。程序由步骤636推进至步骤638。
在步骤638中,程序更新了分配至图像群组的剩下位数。这个更新了分配至图像群组的剩下位数的步骤系依据是否下一张被编码的图片是来自已经存在图像群组或者下一张被编码的图片是否为新图像群组的第一张。当下一张将进行制程的图片为新图像群组的第一张时,将同时使用方程式27与方程式28。当下一张即将进行制程的图片为先前制程的相同图像群组的一图片时,仅使用方程式27。方程式27与方程式28代表R值的分配状态,因此方程式左边的R值是新的,方程式右边的R值是旧的,而方程式27及方程式28如下列所示:
             R=R-S(i,p,b)                   (27)
             R=G+R                              (28)
在方程式27,程序通过先前的R减掉用来对刚被编码的图像进行编码的位数S(i,p,b)来计算分配至图像群组的剩下位数。曾被用来图像编码的位数S(i,p,b)也可以用来计算VBV缓冲器模型占用,其将于图7中详尽的描述。方程式27可以表示出每个经过编码后的图像的计算结果。当最后一个图像群组中的图像经过编码后,一个新群组中的第一个图像成为下一个需要编码的对象,方程式27所计算出来的结果,和方程式28所计算出来的结果是相关的。在方程式28中,新的R值是根据原本的R值加上G所计算出来的,其中原本的R值可以为正数或者是负数。这个G值是由新编码后的图像群组,与相对应新图像群组的位号码有关,此位号码系通过图像的长度及对应的时间来判定。这个步骤从步骤638回到步骤610。
现在回到判断方块步骤634,在这个步骤中,完成了最后一个图像群组中的图像编码。在判断方块步骤634中,决定是否已经完成视讯序列的编码。这个步骤可以很轻易的让人了解,例如传布编码,实际上编码所用掉的时间,及后续编码所需时间。当有另一个图像群组需要被处理时,从判断方块步骤634推至到步骤640。否则,这个程序终止。
在步骤640中,这个步骤可以接收到下一个图像群组。可以从这个步骤具体的了解到在步骤640中,程序仅会撷取下个图像群组的一部分,剩下的部分,以后在撷取。更具体而言,步骤640与步骤S602是十分相似的。程序从步骤640推到步骤642。
在步骤642,程序接收到应用于该图像群组中的图像已编码的型态。在实施例中的速率控制与量化控制程序,决定图像群组中的图像该译码为何种型态是较图像进行速率控制与量化控制程序制程早一步进行。具体化而言,步骤642与步骤604近似。制程将由步骤642进入先前已叙述过的步骤644。
在步骤644,程序判断已被编码的下一个图像群组的P图像数目Np与B图像数目NB。以一个具体化的例子来说,步骤644与步骤606近似。制程将由步骤644进入先前已叙述过的步骤636,来继续进行编码程序。
VBV缓冲器模型空间占用层级的控制
图7系说明基于虚拟缓冲器的空间占用层级调整一目标位配置程序的流程图,如图所示的程序运算,此程序的描述系与MPEG-1及MPEG-2视讯编码有关,使得此虚拟缓冲器对应于视讯缓冲检测器(VBV)缓冲模型。此VBV缓冲器模型系为一概念上的模型,以提供编码器用来模仿在译码器中的缓冲器占用层级;对熟悉此项技术的人士而言,使用其它视讯编码标准作为其它缓冲器模型乃是显而易知的。在更进一步讨论图7之前,VBV缓冲器模型层级的监控将于此进行较为详细的描述。
如前述与图4有关的叙述,此VBV缓冲器模型可预知或预测在译码器缓冲器中的缓冲器层级。此译码器缓冲器的占用层级大概与编码器缓冲器的占用层级相反,如此在VBV缓冲器模型中一相对高占用层级系表示有较少的位被编码成视讯序列,以及在VBV缓冲器模型中一相对低占用层级则表示较多的位被编码成视讯序列。
此VBV缓冲器模型的占用层级Vstatus系可被计算及监控。在一实施例中,VBV缓冲器模型的占用层级Vstatus系与一预设临界值相比较,并根据此比较结果使适应编码程序,此部份将于后面配合图11做较为详述的说明。在一另一实施例中,此VBV缓冲器模型的占用层级Vstatus系用来适应性调整一图像的位目标数Ti、Tp或Tb以进行编码。此占用层级Vstatus的计算系以方程式29表示的。
V status = V status - S ( i , p , b ) + bit _ rate picture _ rate - - - - ( 29 )
方程式29代表此占用层级Vstatus的值的分配说明,等号左边的Vstatus代表新的占用层级值,而在等号右边的Vstatus则代表先前的占用层级值。在一实施例中,此占用层级Vstatus的值系为VBV缓冲器模型的初始目标值,例如,此VBV缓冲器模型的完全占用的目标值为7/8。在另一实施例中,作为缓冲器占用的初始Vstatus的值系与一具体VBV-延迟值有关。其它初始值则为熟悉此项技术的人士易于决定者。
在方程式29中,VBV缓冲器模型的占用系以下列方式计算。先前的占用层级值先减去已对图像编码的编码位数S(i,p,b),然后再加上对应于一讯框或图像的时间周期中传送的位数,以得到一新的占用层级值Vstatus。如方程式29所示,在讯框中传送的位数系等于位速率除以讯框速率。在方程式29所示的计算系适应每一图像程序的占用层级Vstatus更新。在另一实施例,修改此一方程式,以更新少于每一图像的占用层级Vstatus,例如每一其它图像。
接续说明与图7有关的内容,此程序的一实施例系先比较一图像的位目标数Ti、Tp或Tb与一临界值Tmid,并根据此比较结果调整位目标数Ti、Tp或Tb。此将有利于协助视讯编码器产生一资料流,其系依从VBV,以避免在译码器中发生缓冲不足(buffer underrun)或缓冲溢位(bufferoverrun)。
一实施例系使用五个与VBV缓冲器模型占用层级有关的参数来控制,在其它实施例中,亦可使用少于五个参数或超过五个参数。此些参数可在一非常宽的范围中变化,并可包括固定参数、变动参数、适应参数、使用者可客制化(user-customizable)参数及其它类似者。在一实施例中,将使用下列参数(以渐减的占用率排列):Vhigh、Vtarget、Vmid、Vlow及Vcritical
Vhigh相当于此VBV缓冲器模型的占用的较高值,在一实施例中,程序系努力去控制编码,使VBV缓冲器模型的占用得以维持在Vhigh以下。
Vtarget相当于此VBV缓冲器模型要求的占用层级,在一实施例中,此要求的缓冲器占用层级Vtarget可受使用者的配置。
Vmid相当于一缓冲器层级,其系为此VBV缓冲器模型的占用的一半。
Vlow相当于此VBV缓冲器模型的占用的较低值,在一实施例中,程序系努力去控制编码,使VBV缓冲器模型的占用得以维持在Vhigh以上。
Vcritical相当于一较Vlow更低的占用层级,在一实施例中,当此VBV缓冲器模型的占用下降至Vcritical以下时,此程序继续进行以略过在B图像中的大区块,较详细的说明系与下述的图11有关。
表II系为各临界层级的实例值,其它适当的数值系可为熟悉此项技术的人士所能易于决定者。
表II
   临界值     实例值
   Vhigh     约VBV缓冲器模型尺寸的63/64
   Vtarget     约VBV缓冲器模型尺寸的7/8
   Vmid     约VBV缓冲器模型尺寸的1/2
   Vlow     约VBV缓冲器模型尺寸的3/8
   Vcritical     约VBV缓冲器模型尺寸的1/4
在表II所列的实例值有利于按VBV缓冲器模型尺寸的比例排列,如前述与图4有关的详细说明。MPEG-2的VBV缓冲器模型尺寸大约为224kB,而MPEG-1的VBV缓冲器模型尺寸则大约为40kB。有关VBV缓冲器模型的尺寸系为熟悉此项技术的人士所能易于了解者,例如用于MPEG-1与MPEG-2的VBV缓冲器模型,其系可根据所使用的视讯编码标准及应用方案而变化。
再回到图7所示,在图7所示的程序中调整一图像的目标位配置Ti、Tp或Tb,其系基于该VBV缓冲器模型的占用层级的至少一部份。在一实施例中,在图7所示的程序系结合图6所示程序的步骤610;此程序可以从一选择判断方块710开始,其系先比较目标位配置Ti、Tp或Tb的值(一般在图7中以T(i,p,b)表示)与一个或多个目标临界值,例如Tmid或Thigh。举例来说,当VBV缓冲器模型占用层级相对较低,则需要求助于调整程序,以便选择目标临界值Tmid;另一范例则是当VBV缓冲器模型占用层级相对较高,需要求助于调整程序,以便选择目标临界值Thigh。在一实施例中,只有目标临界值Tmid或Thigh其中一个被使用;另一实施例中系同时使用二个目标临界值;再另一实施例中,此选择判断方块系不存在,所以二个目标临界值皆无使用。在此图解的实施例中,此调整程序系与VBV缓冲器模型占用层级与配置至已编码图像的位数目有关,此目标位配置Ti、Tp或Tb的计算过程系已描述在前述的步骤610以及图6的方程式6、7及8。方程式30a系表示此目标临界值Tmid的实例计算方式,方程式30b系表示此目标临界值Thigh的实例计算方式。
            Tmid=Vstatus-Vmid                 (30a)
T high = V status - V high + bit _ rate picture _ rate - - - - ( 30 b )
此图解实施例的程序系从选择判断方块710开始,当目标位配置Ti、Tp或Tb超过目标临界值Tmid或是目标位配置Ti、Tp或Tb少于目标临界值Thigh,则继续进行一步骤720;在其它实施例或结构配置中,若选择判断方块710不存在,则此程序将由步骤710开始,此为显而易知者。当目标位配置Ti、Tp或Tb超过目标临界值Tmid时,此VBV缓冲器模型占用系相对较低。在图解实施例中,当目标位配置的调整发生在一图像已配置有足够位时,此时目标临界值Tmid不需要调整,VBV缓冲器模型占用将会下降或保持在Vmid。其它临界值系为熟悉此项技术者所易于决定者。
当目标位配置Ti、Tp或Tb没有超过目标临界值Tmid且目标位配置Ti、Tp或Tb没有少于目标临界值Thigh,如图所示的流程系从选择判断方块710开始到一判断方块730;若选择判断方块710不存在或无使用,则此程序将由步骤720开始,然后进行判断方块730,此为显而易知者。在另一实施例,当目标位配置Ti、Tp或Tb没有超过目标临界值Tmid且目标位配置Ti、Tp或Tb没有少于目标临界值Thigh时,此程序将由选择判断方块710继续进行至结束,例如,此程序的步骤612的进行系如图6所描述者。在图中的选择判断方块710,对I图像、P图像及B图像系使用相同的目标临界值Tmid及/或Thigh进行比较。在另一实施例中,目标临界值Tmid及/或Thigh系随着图像类型而变化。
当目标位配置Ti、Tp或Tb超过目标临界值Tmid或是目标位配置Ti、Tp或Tb少于目标临界值Thigh时,即进入步骤720,此程序系调整目标位配置Ti、Tp或Tb的值,以降低位配置至该图像的数量。在另一实施例,此程序由步骤720开始,举例说明,此程序的一实施例系由一使用者所配置,以致于此程序不具有选择判断方块710,而由步骤720开始。例如,Ti、Tp或Tb的调整可供配置以减少位数量;较有利地,当有较少的位使用于图像编码时,VBV缓冲器模型占用层级与相对应的译码器缓冲器占用层级的增加。方程式31系为代表此调整程序的一般公式:
         T(i,p,b)=α·T(i,p,b)             (31)
在方程式31中,调整因素(adjustment factor)α系可小于1,使调整后的目标位配置Ti、Tp或Tb系小于最初的计算值。在一实施例中,调整因素α亦可相对地大于1,使调整后的目标位配置Ti、Tp或Tb系大于最初的计算值。澄言之,方程式31的调整系表示分别计算目标位配置Ti、Tp或Tb的调整。然而,此调整程序亦可结合目标位配置Ti、Tp或Tb的最初计算;且方程式31系相当于一指定分配的说明,亦即等号右边的值系代表调整前的目标位配置Ti、Tp或Tb,等号左边的值则代表调整后的目标位配置Ti、Tp或Tb。方程式32表示此调整因素的一计算范例:
α = 1 + V status - V t arg et V high - V low - - - - ( 32 )
如方程式32所示,当Vstatus小于Vtarget时,调整因素α系小于1;当Vstatus大于Vtarget时,调整因素α系大于1。方程式31所示调整的最终功效系使VBV缓冲器模型占用层级倾向于预设的占用层级Vtarget
值得注意的是,在选择判断方块710中当目标位配置Ti、Tp或Tb超过目标临界值Tmid时,VBV缓冲器模型占用Vstatus将代表性地较小于预设的VBV占用层级Vtarget,以致于调整因素α系小于1;较有利地,此目标位配置系可降低一数量,其系有关VBV缓冲器模型占用Vstatus低于预设的VBV占用层级Vtarget的数量。当目标位配置Ti、Tp或Tb系小于目标临界值Thigh时,VBV缓冲器模型占用Vstatus将代表性地较大于预设的VBV占用层级Vtarget,以致于调整因素α系大于1;较有利地,此目标位配置系可增加一数量,其系有关VBV缓冲器模型占用Vstatus高于预设的VBV占用层级Vtarget的数量。此程序系从步骤720继续进行至判断方块730。
在判断方块730中,不管目标位配置Ti、Tp或Tb是否有经由步骤720的调整,此程序系判定目标位配置Ti、Tp或Tb是否有落在指定范围内,此些范围限定系用来避免目标位配置Ti、Tp或Tb的值产生缓冲不足或缓冲溢位的情况,且该范围系可预定或是由目标位配置Ti、Tp或Tb以及VBV缓冲器模型占用层级Vstatus适应而来的。当目标位配置Ti、Tp或Tb落在此范围外,此程序系从判断方块730继续进行至步骤740,以约束目标位配置Ti、Tp或Tb保持在此范围内;否则,无需更进一步的调整目标位配置Ti、Tp或Tb,即可结束此程序。
方程式33系说明目标位配置Ti、Tp或Tb的上限值Tmax的范例计算。方程式34系说明目标位配置Ti、Tp或Tb的下限值Tmin的范例计算。
                     Tmax=Vstatus-Vlow            (33)
T min = max ( V max + bit _ rate picture _ rate - V high , 0 ) - - - - ( 34 )
当目标位配置Ti、Tp或Tb超过上限值Tmax时,目标位配置Ti、Tp或Tb再分配该上限值Tmax,且当目标位配置Ti、Tp或Tb低于下限值Tmin时,则目标位配置系再分配该下限值Tmin
方程式33所示的上限值Tmax的应用系有助于限制此目标位配置Ti、Tp或Tb的相对高值,使VBV缓冲器模型占用层级可以保持在VBV缓冲模型的较低预设占用范围层级Vlow以上。方程式34所示的下限值Tmin的应用系有助于限制此目标位配置Ti、Tp或Tb的相对低值,使缓冲器占用层级可以保持在较高预设占用范围层级Vhigh以下,甚至是在资料信道中以固定位速率累积资料超过时间之后。下限值Tmin系相当于在方程式中以逗号分离的数量;其它上限值Tmax与下限值Tmin系为熟悉此项技术的人士所易于决定者。目标位配置Ti、Tp或Tb代表编码器可达到的目标,且目标与实际使用至编码图像的位数目具有相对小的变化,使缓冲器占用层级Vstatus仍然可以稍微脱离预设占用范围层级Vlow及Vhigh
在进行至步骤740之后,即结束整个调整程序。例如,图7所描述的调整程序系结合图6的步骤610的速率控制与量化控制程序,此调整程序从步骤610继续进行下去。
从事此项技术者对上述的程序以不同方式所做的修改仍未脱离本发明所揭示的精神与范围。例如,在另一实施例,所示程序的各种不同部份系可结合在一起,可以可供替代的顺序重新排列,可以被移除,以及其它类似者,例如在一实施例中,选择判断方块710并不存在,而在另一实施例中,判断方块730及步骤740系可供选择,且不一定要存在。
大区块处理顺序
图8A所示为先前技术的处理大区块顺序的流程图,图8B所示为本发明处理大区块顺序的一实施例流程图。图8B所示的处理顺序有利于容许一图像大区块的空间活动及/或移动活动的计算,以便使实际数值可用来计算总数与平均数,对于于从前一图像计算而估算出总数与平均数。
图8A所示的传统顺序系从步骤802开始,在步骤802中,此程序系执行单一大区块的空间活动(本质)及/或移动估算的计算,此程序再从步骤802继续进行至步骤804。
在步骤804中,此程序使用空间活动及/或移动估算的计算来执行此大区块的离散余弦转换(discrete cosine transformation,DCT)。空间活动的计算一般正常系以空间活动的总数表示;然而,在此程序的此特点,对于已编码图像的空间活动的计算并未被完成,结果则使用前一图像的估算值。例如,采用前一图像的总空间活动来计算一平均值。在另一实施例,前一图像的移动估算亦可采用,无论此些估算是否接近实际值。当在前一图像与已编码图像之间存在一场景变化时,此估算系相当不正确,此些不正确会损害图像品质,并导致在图像编码的目标位数与实际使用于图像编码的位数之间系为误差配合者。此些消耗于图像编码的位数变化系不利于导致缓冲不足或缓冲溢位。接着此程序将从步骤804进行至步骤806。
在步骤806中,此程序系执行此大区块的DCT系数的可变长度编码(variable 1ength coding,VLC),此VLC系压缩DCT系数,此程序从步骤806继续进行至判断方块808。
在判断方块808中,此程序判断在此图像中的所有大区块是否已经完成编码,当仍有大区块继续在编码时,此程序系从判断方块808回到步骤802;否则,即结束此程序直到重新开始。
根据图8B所叙述的一实施例的新顺序,其系从步骤852开始。在步骤852中,此程序系执行欲编码的图像中所有大区块的空间活动及/或移动估算的计算,其系有助于容许空间活动即/或移动估算的总数与平均值系以技术的数量进行计算,并非以估算值,而是更进一步以图像编码前的场景变化进行准确的计算。在另一优点的范例中,在TM5,此空间活动测量Savg_actj的平均值400系用来作为第一图像的测量的″推测″。在使用此空间活动的前,处理所有大区块的空间活动,此空间活动测量Savg_actj的平均值可以直接计算,并可有助于避免不确定的″推测″。
更进一步地,实际总数与平均值的使用系容许实际位数用来编码一图像,以配合具有较高正确性的目标位配置。此将有助于减少非预期缓冲不足或缓冲溢位的变化以及增加图像品质。在一实施例中,大区块的实际移动估算系用来分配位给大区块,使具有较高移动的大区块可分配到较高的位数。相反地,在具有大区块的传统系统的大区块处理过程中,一般大区块的位系利用前一图像的大区块相对移动来分配,其系可能为正确或是不正确的。此程序将从步骤852继续进行至步骤854。
在步骤854中,此程序系对图像中的所有大区块执行DCT计算,接着此程序从步骤854继续进行至步骤856。
在步骤856中,此程序对此图像中的所有大区块执行DCT系数的可变长度编码(VLC),而后此程序将结束直至重新开始。
在另一实施例中,在步骤852中所描述的程序,对所有大区块进行空间活动及/或移动估算的计算,然后不断重复进行大区块的DCT计算与VLC,直至此图像的所有大区块处理完成为止。
位填补(Bit Stuffing)
位填补或字节填补系为一编码器常用的技术手段,其系用来保护对抗会引起译码器发生缓冲溢位的资料流产生。当用来图像编码的位数在一持续的时间周期内相当低时,此译码器从位于较低速率的译码器缓冲器补偿到资料信道增加资料至译码器缓冲器的速率。当资料的累积持续一适当的时间周期使译码器缓冲器整个填满时,由数据信道所传送的数据将会丧失。一图像序列的实例可进行较高的压缩,使图像序列引起位填补,且每一图像实际上是完全黑的。为了对付不同的资料速率,以便使缓冲溢位不会发生,此编码器系将数据埋藏在无使用的资料流中,但此会消耗空间。此程序为已知的位填补。
位填补可以在一编码程序中的不同位置实施。在一实施例中,在图6所述的编码程序中的步骤632之后以及步骤636之前,系可完成位填补。在一实施例中,当VBV缓冲器模型占用达到一预定层级时,编码程序将引起位填补,例如与较早描述的图7有关的层级Vhigh。在一实施例中,当VBV缓冲器模型占用约为VBV缓冲器模型容量的63/64时,将引起位填补。
虽然有益于解决译码器缓冲溢位问题,位填补仍会对编码程序引起其它问题,包含使用在位填补的位也可以是一种不佳的解决方式。在使用于图像编码位数S(i,p,b)中计算使用在位填补的位数系表示此编码器有使用超过最初目标值的较多位数用来编码图像;此可更进一步解释,对降低品质图像的编码系会减少使用于图像编码的位数。超过一时间周期,更会对使用于译码图像的位数引起更进一步的减少,并与使用在位填补的位数呈比例关系。在使用较多位于位填补时,较少的位留待实际编码图像,而超过时间后会降低已编码图像的品质。
图9A所示为有助于编码程序稳固的流程,因此降低或消除位填补所引起的编码程序不稳定的倾向,以及超过时间的图像品质退化的倾向。如后面所描述者,在图9A所叙述的程序可以在一编码程序中的多种位置中实施。
从事此项技术者对上述的程序以不同方式所做的修改仍未脱离本发明所揭示的精神与范围。例如,在另一实施例,所示程序的各种不同部份系可结合在一起,可以可供替代的顺序重新排列,可以被移除,以及其它类似者。此程序可以在判断方块902或是判断方块904开始。在一实施例中,只有一个判断方块902或判断方块904系存在于此程序中。如图所示的实施例,判断方块902以及判断方块904系同时存在于此程序中,例如,在图像编码之前,此程序可以从判断方块902开始;在图像编码之后,此程序则可从判断方块904开始。例如,在图9A程序开始的判断方块902可以结合图6所述步骤612之后和步骤614之前的速率控制与量化控制程序。在另一范例,在图9A程序开始的判断方块904可以结合图6所述程序的步骤627。
在判断方块902中,此程序系判断在欲编码图像与前一已编码图像间是否有景象变化,此景象变化的判定可以在图像编码前执行。在一实施例中,判断方块902系为选择性的,各种方法可以用来判断是否具有景象变化。在一实施例中,此程序系重新使用编码图像计算的结果,例如绝对差异和(SAD)测量。在一实施例中,景象变化的侦测系随着图像类型而改变。在一实施例中,对I-图像而言,现行在图像的平均空间活动Sact_avg系与相对应的先前平均空间活动相比较;例如,当现行活动至少为2次或少于先前I-图像的一半时,系可侦测到景象变化,亦可使用其它因素,例如3次及1/3,4次及1/4,或是熟悉此习知技术可易于思及者。另外,为了宣告新的景象变化而将先前景象变化宣告,所以有一实施例对最小图像数量采用一额外的标准。对P-图像而言,移动活动的平均值可以用来代替平均空间活动来侦测一景象变化,其系可一起使用相关的比较因素,例如(2,1/2)、(3,1/3)、(4,1/4)及其它类似者。为了增加此判断的强硬度,一实施例更进一步对现行P-图像使用一最小平均移动活动测量,由此平均移动活动本身可以表明较高的移动,故可应用于景象变化。例如,介于1000至4000范围的最小平均移动活动测量的值系可用来表示较高的移动。
此程序系由判断方块902继续进行至结束,例如,当此程序判断无任何场景变化时,即进入步骤614。此外,在编码程序的其它部份及应用系可判断是否有场景变化,且先前的慢断可以重新使用于判断方块902,以检查步骤的标示或发信号所表示的场景变化存在与否。当此程序判断有场景变化时,将由判断方块902继续进行至次程序906。
在判断方块904中,此程序判断此编码过程是否在一临界状态(critical state)。在一可供选择的程序中,只有判断方块902或判断方块904其中一个存在,而其它为选择性地。当判断904存在于程序中时,在图像编码后系会引起VBV缓冲器模型占用的监控。判断编码程序是否处于临界状态的标准可在很宽广的范围中变化。在一实施例中,当量化参数值mquantj不是较低者,例如不是在最低的可能值,此临界状态相当于编码程序所执行的位填补。此相当于较低值的量化参数值mquantj,例如最低可能值,将根据编码标准的语法而改变。当VBV缓冲器模型占用已判断为临界状态时,此程序将由判断方块904继续进行至次程序906;否则,此程序将进行至结束,例如,进入如图6所数程序的步骤627。
在次程序906中,此程序使最初状况的虚拟缓冲器占用值标准化,并以先前描述的步骤602所述的变量d0 i、d0 p及d0 b表示。此些标准化值可利用各种技术计算,在如图所示的次程序906中,此标准化值系依赖VBV缓冲器模型的占用层级。此次程序包括一步骤908、一判断方块910、一步骤912及一步骤914。
在步骤908中,此程序的一实施例系计算方程式35及36a或36b的sum值及delta值。
sum = d 0 i + d 0 p + d 0 b - - - - ( 35 )
           delta=vbv_buffer_size-Vstatus         (36a)
              delta=Vinitial-Vstatus            (36b)
对方程式35而言,于最初状况的虚拟缓冲器占用层级的值系通过前述图6的步骤612中所描述的方程式9、10及11的应用而取得的。如方程式36a及36b所示,在一缓冲器模型中delta系随着占用层级的减少而增加,在方程式36a,变量vbv_buffer_size与用于编码的VBV缓冲器模型的容量有关,在方程式36b,变量Vinitial系与VBV缓冲器模型占用层级的最初值有关。在一实施例中,Vinitial的值约为VBV缓冲器模型容量的7/8。在另一实施例中,代替Vinitial,此程序可以使用一目标占用层级,例如Vtatget,但其应注意的是该最初值与目标占用可为相同值。在另一实施例,delta系与缓冲器模型尺寸减去缓冲器模型占用层级的差异值有关,VBv缓冲器模型系随着用于编码的标准而改变,例如,如潜入图4所述描述,此MPEG-1与MPEG-2编码标准明确说明其VBV缓冲器尺寸分别为40kB与224kB,其它标准则明确说明VBV缓冲器模型的内存容量。此程序系由步骤908继续进行至判断方块910。
在判断方块910中,此程序判断sum值是否有少于预定临界值Tnorm,此预定临界值Tnorm应该与指明可使用范围的一些数值有关,例如,此预定临界值Tnorm为0,其它值则为熟西此记设者易于思及者。当sum值小于Tnorm值时,本程序由判断方块910继续进行至步骤914。
此delta值系与方程式36a中VBV缓冲器模型的未占用空间有关,或是与方程式36b中在最初VBV缓冲器模型状态与现行VBV缓冲器模型状态间的差异有关,其它在虚拟缓冲层级与未占用层总和间的比较将易于了解。例如,在另一实施例中,可以进行一少于或等于的比较,包含补偿等。
在步骤912中,此程序的一实施例根据方程式37、38及39再分配虚拟缓冲器占用值给具有标准化值的最初状况d0 i、d0 p及d0 b
d 0 i = delta · fr i - - - - ( 37 )
d 0 p = delta · fr p - - - - ( 38 )
d 0 b = delta · fr b - - - - ( 39 )
在方程式37、38及39中,delta值可由方程式36计算而来,且fri、frp及frb的值可在很广的范围中变化,这些fri、frp及frb的值一般系介于0和1的范围内,并可为相同值或相异值。再者,在一实施例中,fri、frp及frb的值系可选自总和值接近1,例如为1。在一实施例中,这些fri、frp及frb值系分别为5/17、5/17及7/17,此fri、ffp及frb的其它可易于为熟悉此项技术的人士决定。然后此程序可以结束,例如,进入图6所示程序的步骤614。
再回到步骤914,在此程序的此处,此程序已判断sum值并未小于Tnorm值,在步骤914中,此程序的一实施例根据方程式40、41及42再分配虚拟缓冲器占用变量给具有标准化值的最初状况d0 i、d0 p及d0 b
d 0 i = d 0 i · delta sum - - - - ( 40 )
d 0 p = d 0 p · delta sum - - - - ( 41 )
d 0 b = d 0 b · delta sum - - - - ( 42 )
方程式40、41及42系有关再分配虚拟缓冲器占用变量给最初状况d0 i、d0 p及d0 b。在等号右边的值系为调整前的数值,且在等号左边的职责为调整后的数值。当delta值与sum值近乎相同时,此些值系产生较小的调整。当sum值较高于delta值时,最初状态的虚拟缓冲器占用变量的值d0 i、d0 p及d0 b系相对的减少,需注意的是,消对小的执亦可加至方程式40-42的总和值中,以避免被零问题(zero problem)分割。调整后,此程序随即结束,例如,继续进行图6所述程序的步骤614。
图9B所示为关于一最终缓冲器占用层级侦测的虚拟缓冲器占用层级的重设程序的流程图。此重设程序系可结合至编码程序,例如先前图6所述速率控制与量化控制程序的步骤627。
此程序由判断方块952开始,在前述图6所述速率控制与量化控制程序的步骤627的解释,可应用的虚拟缓冲器的最终占用(填满)等,即dj i、dj p及dj b值,其中j=MB_cnt,可以作为下一相同型式图像编码的最初状况,即此些d0 i、d0 p及d0 b值系用于相同型式(I、P或B)的图像。当通过TM5所述的程序进行编码时,可应用的虚拟缓冲器的最终占用,即dj i、dj p及dj b值,一直可以作为下一相同型式图像编码的最初状况。然而,可应用的虚拟缓冲器的最终占用并非总是可供使用的适当值。
在判断方块952中,此程序判断可应用的虚拟缓冲器的最终占用,即dj i、dj p及dj b值,是否适合使用。在一实施例中,适当值系以此数值是否完全合理来判断,一虚拟缓冲仿真一实体缓冲器,实体缓冲器可为空的、可被资料部份占用,或是完全被资料占用。然而,一实体缓冲器无法拥有数据的负数量,为了区别实体可获得值与非实体可获得值,本程序的一实施例系比较可应用的虚拟缓冲器的最终占用值与预定的临界值tr。
在一实施例中,tr值系为零,以区别实际可获得的缓冲占用与非实际可获得的缓冲占用。虽然tr值系相当于一范围值,包含从0到1、2、3等,此tr值不会容许一负值视为适当的最终占用。当使用的tr值为零时,本程序系利用检查正或负的标示来区别实体可获得值与非实体可获得值,标示系与可应用的虚拟缓冲器的最终占用有关。当进行整数比较时,此种比较系使用不等式,例如大于负一,即>-1,亦可使用如相当于-1的tr值。当最终占用值不适合作为下一相同型式图像的最初状况时,此程序即由判断方块952继续进行至步骤954;否则,此程序将由判断方块952继续进行至步骤956。
在步骤954中,本程序对已编码成适当值的图像型式的最终缓冲器占用值dj i、dj p及dj b值进行重设,其中j=MB_cnt,此适当值包含从零至可应用的虚拟缓冲器容量间的任何值。在一实施例中,最终缓冲器占用值可以重设为接近零的较低值,例如零本身。此程序可以从步骤954进入选择步骤958,或是从步骤954直接进入步骤956。
在选择步骤958中,本程序使虚拟缓冲器占用值dj i、dj p及dj b标准化。在前一步骤954,此程序将非实体可获得值校正为虚拟占用值dj i、dj p及dj b,其系可应用于已编码的图像型式。例如,此程序可以取得可应用的虚拟占用值dj i、dj p及dj b的前负值,并分配该负值以保持虚拟占用值dj i、dj p及dj b的总和为零。例如,在一实施例,此程序加入一半的负值分别给二个其它虚拟占用值。而后此程序系从选择步骤958前进至步骤956。
在步骤956,其系储存经由步骤954重设或是经由判断方块652无修改的最终虚拟缓冲器占用值,而后结束整个程序。与此程序结束后,可继续进行前述图6所示速率控制与量化控制程序的步骤619。
图像群组(GOP)中的场景变化(Scene Change)
图10A所示为一图像群组的范例,场景在序列图像间的变化亦可在一图像群组中出现,其中该场景变化系源自摄影机镜头的变化、不同节目的替换、切换至广告时、编辑或其它原因。随着场景的变化,播映中图像的大区块会因与前一图像的大区块关联较少或者甚至无关联,考虑这样的情形故多采用图框内编码而非预估编码。因为I图像仅包含图框内编码,在处理场景变化的情形时通常采用I图像方式是较为便利的选择。
虽然一般倾向用I图像方式编码处理场景变化的情形,但若是一个图像群组结构,亦即,序列图像的型式,可以通过一些系统或编码器外控制而达到预测的效果。例如,一个直播卫星(Direct BroadcastSatellite,DBS)系统便通过编码器取得I图像、P图像及B图像的预定格式,结果,场景变化可能发生在上述的P图像或B图像中。传统的编码器可通过参考自预定大区块的一个接续的I图像或一个接续的P图像,将B图像场景变化的部分补足。
在P图像的场景变化仍可能有问题,P图像可以包含图框内编码大区块,亦可以包含预估编码大区块,然而,P图像无法参考接续的图像,因此场景的变化将特别以只含图框内编码的方式对大区块进行编码。事实上,对传统编码器而言,一个场景变化的P图像可视为一个I图像,但是该I图像具有P图像的位配置及文件头信息。对一个传统编码器而言,一个P图像的位配置较一个I图像少,因此当场景变化时便较容易察觉到图像品质变差。一些其它格式的图像,例如B图像或另外的P图像,皆可以通过一个P图像作场景改变时的预估编码,因此场景改变时P图像的影像传送品质较低。
如前述的图1及图5,序列图像被改编成图像群组,该群组始于一I图像而结束于一紧接后续的I图像之前。图像群组中的个别图像可以依照呈现的顺序或编码的顺序编排,例如,一个第一图像群组1002如图10A所示系为依照呈现的顺序编排。一个I图像1004如图10A所示系为另一图像群组。
序列图像可以于编码及译码过程中依照呈现的顺序重新编排,例如,第一图像群组1002,依序列图像的第一群组,能编入一个第二图像群组1010,同理亦可编入一个第三图像群组1020,其中该第三图像群组系为该序列中将要出现的群组,上述该第二图像群组及第三图像群组系以编码的顺序呈现,当与来自其它群组的I图像1012遇到时,该第二图像群组1010产生一个结尾,因为重新排序的关系,因应编码而重新编排时,两个来自第一图像群组1002并依照呈现的顺序编排的B图像1014、1016将不在该图像群组中。如图10B所示的程序,系在一编码顺序中一个图像群组与另一群组的相互关系。
第三图像群组1020将于图10B所示的流程中详述。第三图像群组1020包括两个在该第三图像群组1020的I图像1026的先前图像1022、1024,以图式为例,第三图像群组1020的场景改变发生在该第三图像群组1020的P图像1030位置。图10B所描述的程序,其优点为可通过找出场景变化及重新配置第三图像群组1020中残留图像1032的残留位值,以改善图像的品质。
图10B所示为一侦测图像群组(GOP)中因应场景变化重设编码参数的流程图。在图式中的具体实施例,程序中的编码顺序系对该图像群组编排成群组的描述。
如图10B所示的程序,识别并重新配置图像群组中残留图像的残留位值,而无须变动到该图像群组的基本结构。在场景变化的P图像中,可通过配置较多位而改善图像品质。上述程序可与稍早于图6所述的速率控制及量化控制方法结合使用,例如,图10B所示的程序可以于图6所示的步骤610之前并入实施。熟知此技术的人士将可理解基于不超出本实施例的精神与范围所作出的不同的改良方式。例如,另一实施例,截至目前为止描述的各种程序系可合并使用、重新排序、移除某些步骤或其它类似的组合而形成一新程序。
此程序系从判断方块1052开始,在判断方块1052中,此程序判断在图像的何处系为一场景变化或一瞬间动作上相对大量变化的点,有许多方法能达成上述判断一场景变化点。在一实施例中,本程序系利用现有的图像模拟运算,例如,一个具体实施例为一利用绝对差异总和(SAD)测量方法的程序,其中该SAD测量方法系可相对应用在一预定值、一移动平均值或兼采前述其中之一的判断场景变化方法。例如,一个超过预定层级值的SAD测量或一个超过移动平均值两个层级的SAD测量系可应用在判断场景变化,上述SAD测量的优点系为可侦测一场景变化或一瞬间动作上相对大量变化的点。可以理解的是,或许还有另一部分的编码流程同样追踪该场景变化,且在另一实施例,若有另外的场景变化则跳回判断方块1052。接着,在场景变化被判断以后,程序由上述的判断方块1052推进至另一判断方块1054;否则,上述程序将继续进行至结束,例如,接续进入前述图6所述速率控制及量化控制程序的步骤610。
在判断方块1054中,此程序判断在P型状况下哪一种类型的图像要被编码。在另一实施例中,如图10B所示亦可将判断方块1052及判断方块1054的先后顺序交换。承上,当该图像被编码成P图像后,程序由判断方块1054前进至步骤1056。否则,该程序直接结束,例如,接续进入前述图6所述速率控制及量化控制程序的步骤610。
在步骤1056中,其系一重新配置图像群组中残留图像的残留位的程序。以图10A中的第三图像群组1020为例,当于一P图像1030中判断一场景变化时,该残留图像1032中系有较原本为佳的重新配置的残留位R。在另一实施例中,将该P图像1030视为一I图像,并且对其残留图像1032作编码动作,但并不变动该P图像1030的型态,所以亦不变动该图像群组的结构。
前述将该P图像1030视为一I图像并且对其残留图像1032作编码动作的流程系可由许多方式达成,例如,在一实施例中,一程序的实施例系可通过将场景变化的P图像编码而减少该P图像的编码量Np,且利用该减少的Np通过方程式6重整目标位配置,其中该方程式6系旧式演算系统中专门用以计算一个I图像的目标位配置Ti,其系可应用于如图10B所示的用于场景变化情况下计算一个P图像的目标位配置的流程,方程式43表示一计算上述目标位配置的表现,记为Tp′
T p ' = max { ( R 1 + ( N p - 1 ) X p X i K p + N b X b X i K b ) , ( bit _ rate 8 · picture _ rate ) } - - - - ( 43 )
此一改良式目标位配置方式,系应用于一含有较大位的P图像,如此针对该P图像的场景变化系可编码成更高品质的格式。方程式7及8系可应用在图像群组中残留的P图像及B图像次序列的编码。上述该程序更可随意的调整对应于场景变化的复杂的预估值Xi、Xp及Xb,例如图6所示,稍早提及应用方程式1至3的步骤608所提供的速率控制及量化控制方法。此程序然后结束,例如,继续进入步骤610的速率控制及量化控制程序。可以理解的是,当一个图像群组中不止一个场景变化,可以重复使用如图10A及图10B所示的流程。
B图像大区块的选择性跳过(Selective Skipping)
图11所示为在一视讯编码器中资料的选择性跳过流程示意图。此一选择性跳过资料系可使视讯编码器即使在极端的情况下亦能保持良好的速率控制。该选择性跳过资料系可使该视讯编码器产生资料流型式,该资料流系可解决译码器缓冲器的占用层级较低的缺点,例如可改善译码器缓冲器的缓冲不足的问题。前述的译码器缓冲器的缓冲不足可能发生在当录放位速率超过一资料信道可承受的特定位传输速率一定的时间后,译码器缓冲器的缓冲存储器耗尽所导致,该译码器缓冲器的缓冲不足情形,系影像播放时极不欲见到的情况且缓冲不足亦将导致播放的暂时中断。
即使并未发生前述译码器缓冲器的缓冲不足情形,资料流的译码器缓冲器占用层级较低的情形仍是极不欲见到的,如同早先于图4所示,一个缓冲器模型,例如VBV缓冲器模型,其系通常应用于一编码过程中用以调整译码器缓冲区器的占用层级。当传统编码器缓冲器占用层级是极危险的低标时,该传统编码器必须严格地保持编码位数并在维持速率控制以及图像品质之间作一妥协。前述VBV缓冲器模型占用层级过低的状况,可以很明显从大区块的品质严重下降的现象中观察到。
图11揭示一流程,其系当侦测到过低的缓冲器模型占用层级率时将跳过某些选定的大区块而不予编码,如此可通过减少某些不影响图像品质的位数的编码,以保持相对于传统技术仍具有良好的速率控制的效果。例如图11所示的程序能与先前提及的图6所示的速率控制及量化控制程序结合使用,熟知此一技术的人士可以在不超出本发明的精神与范围的情形下,当能理解一些延伸的应用方法。例如,在另一实施例,前述种种程序的各部分可以被合并使用、可以重新调整顺序、可以移除某些步骤,诸如此类等。
此程序系开始于判断方块1102,其系判断在一B图像中指定哪一图像编码,其中该B图像系可来自其它图像,I图像或P图像,B图像系以预估编码为基础的方式编码成大区块,其中该I图像或P图像系较播放顺序在时间上稍早或稍晚。然而,在编码过程中,上述用以辅助编码的其它图像(I图像或P图像),系较早于该B图像编码前即已编译。当前述B图像被编码后,程序由判断方块1102前进至判断方块1104;否则,该流程立刻结束,例如,回到前述图6所述的步骤623提供的程序。
在判断方块1104中,该程序系判断是否VBV缓冲器占用层级相对处于较低的状态。在编码流程中,若对一图像的B图像进行编码,则必须考虑编码时将有一个较大的位消耗量,另一情况,系为上述的位消耗量可能造成VBV缓冲器的低占用层级,例如,该程序可监控在前述图7所示VBV缓冲器模型的占用层级Vstatus,而且比较此占用层级Vstatus与一预定临界值,例如Vcritical,可于该编码过程中比较每个变化点中对于上述两数值的差异。在一实施例中,在一图像编码之后以及已判断VBV缓冲器模型的占用层级之后即可进行比较,例如前述图6所述速率控制与量化控制的步骤638或步骤610之后。在一实施例中,在编码前图像的大区块明显比编码过后为佳,因此,亦保留当希望保存较大位量时能够跳过所有大区块的实施方式。
在一范例中,Vcritical系设定为VBV缓冲器模型容量的1/4,需注意的是,VBV缓冲器模型或类似缓冲器的容量系随着编码标准而改变,Vcritical的适当值可以选自一宽广的范围,例如,也可以使用VBV缓冲器模型容量的1/16、1/8、1/10及3/16等其它值,其它值系为熟知此技术的人士所易于决定者。在一实施例中,此程序容许此Vcritical值得设定由一使用者所设定。当VBV缓冲器模型占用层级vstatus掉落于预定临界值以下时,此程序系从判断方块1104继续进行至步骤1106;否则,此程序系从判断方块1104进行至步骤1108。
在步骤1106,此程序跳过在B图像中的大区块。在一实施例中,所有大区块都被跳过,在另一实施例中,则跳过被选择的方块。例如,跳过大区块的数目系与VBV缓冲器的占用层级Vstatus有关,一已译码的B图像形成,但对跳过大区块却具有相对小的资料。在一编码过程中,在资料流中的位或标示旗帜即表示跳过的大区块,例如,在一已知为″直接模式″的技术中,其表示跳过大区块的标示旗帜系插入在前、后(在显示时间)I图像或P图像的大区块间的译码过程中;另一标示旗帜则代表从显示时间前的I图像或P图像复制而来的跳过大区块;更有一标示旗帜代表从显示时间后的I图像或P图像复制而来的跳过大区块。此些大区块的跳过系有助于已较少位对B图像进行编码,在一范例中,含有所有跳过大区块的MPEG-2的B图像的编码仅需使用约300位。在B图像大区块的选择性跳过完成时,此程序即结束,例如,再回到前述图6所述程序的步骤623。
在步骤1108中,此程序已判断VBV缓冲器占用层级Vstatus并未相对较低,且此程序对B图像的大区块编码。在完成对B图像的大区块编码后,此程序即可结束,例如,回到图6的步骤623。在判断方块1102的判断及/或判断方块1104系可在图6的程序中的不同点进行,然后再进行步骤1106或步骤1108。
适应性I、P讯框及B讯框DCT过滤
一MPEG或是其它视讯编码器会遭遇到较困难压缩至一较低位速率的视讯序列,此种情况可以利用可变位速率压缩来避免,其中编码器对这些难以编码场景提高其实时位速率,然而,固定位速率压缩技术,其系可在视讯压缩光盘(VCD)、数字TV播放(包括卫星、缆线或其它大气传播),及其它类似者,在位速率的适应性的增加通常无法应用在VBV缓冲器模型顺从限制有用的编码图像的位数目,反而容许品质。例如,传统编码器会增加量化参数QP的值,然后产生可见压缩加工物(visiblecompression artifacts),压缩加工物的范例系可被直接观察到,包括在这些难以编码视讯场景中的一压缩瑕疵(Blockiness)及抖动(jerkiness)现象。
在图11所描述的一程序系维持VBV缓冲器的要求及合理图像品质,其系对VBV缓冲器模型占用层级的反应来选择性跳过在B图像中的大区块编码,描述在图12及图13的程序可用来结合或独立于前述图11所示的程序。
在图12及图13中,此程序有助于选择性及/或适应性的过滤离散余弦转换(DCT)系数,以降低图像编码所需的位数,此程序可以适应性的过滤DCT系数,其系相对于VBV缓冲器模型占用层级及可观察到的量化参数层级。选择性过滤系有助于改善在使用于图像编码的位数与图像品质间的交换,此情况系为受限制的编码位和要求的VBV缓冲器模型遵循或是相似的缓冲器模型遵循。此DCT系数的过滤有异于过滤传统量化表所提供的过滤,此量化表的内容一般在编码过程中系固定者,且在比特流中传送,使得编码器与译码器可以在一封闭回路(closed-loop)中使用相同的量化表。在此描述的DCT系数过滤系与仅在编码器中DCT系数的选择性″开放回路(open-loop)″过滤有关。较有利地,在译码器中不需要任何补偿调整。
选择性DCT过滤通常系描述在8×8影像区块格式中,此8×8影像区块系使用在MPEG1、MPEG2以及MPEG4中,从事此技艺的人士应该了解此DCT过滤技术亦可适用于其它视讯压缩标准,例如H.264,其区块尺寸为4×4。
图12所示为选择性DCT过滤程序的流程图,在此编码过程中,编码器执行一移动搜寻1210,执行一移动压缩1220,并继续进行DCT系数的计算1230。在一实施例中,然后此程序进行选择性过滤1240该DCT系数及/或选择性限制QP值1250至相对较低值,可了解的是过滤1240及QP值的限定与界限1250系可选择性的应用于相对的VBV缓冲器模型占用层级及/或应用于较高QP值的检测。由于较高QP值可以降低使用于资料编码的位数,以致高QP值引人注目地降低图品质而增加图像压缩瑕疵。然后此程序继续进行DCT系数的量化1260。当过滤和限制之后,此程序以调整的QP值对过滤的DCT系数进行量化,可了解的是当VBV缓冲器模型占用层级为较高时,此程序可选择不过滤DCT系数以及不修改QP值。如后面图13所描述的内容,此程序的一实施例也可以改变相对于VBV缓冲器模型占用层级的过滤强度。在图13所述的程序,频率域(frequencydomain)中的过滤技术范例将首次被叙述。
在频率域中,ωX和ωy分别代表沿着水平方向与垂直方向的频率域变量,其系在一影像资料的8×8区块中的2-D离散余弦转换(DCT)后或是在移动压缩后的残留误差。在此频率域中,ωX=0与ωy=0的值相当于DCT系数,换言之,影像资料的8×8区块中的平均值或残留误差,而当ωX=7与ωy=7的值相当于在8×8区块的影像资料中的最高频率详述或残留误差,可了解的是对于4×4区块的影像资料而言,ωX=3与ωy=3的值相当于最高频率详述。
人类视觉与感知能力对低频率具有较多的敏感性,对较跟贫则具有较少的敏感性,同时,相对有许多视讯影像在高频相对于低频时则具有较少的能量。然而,当视讯资料以DCT系数的量化予以压缩时,特别是当量化器(Quantizer)等级采用高值(必须包含大量化误差)时,高细节讯框(high-detail frames)的残留误差在高频区域具有重要的能力,此将导致此些图像需要重大数量的位来被压缩,甚至是在最高量化器等级值。
稍后在图13所描述的程序中,检测编码场景系为如此困难,且一低通滤波器系选择性应用在编码过程的影像区块,应用时,在执行移动搜寻之后则提供一过滤步骤。如此,高频系数将被牺牲(其值将降低或甚至设定为0),且因此将稍微降低空间分辨率,特别是一视讯图像的高细节部份,然而,在影像品质的总平衡系被大大的改善。在一实施例中,系使用一非分离角锥型低通滤波器, ″角锥″指的是当滤波器频率响应由低频(从DC)改变为高频(最大AC)时的倾斜形状,当然,其它滤波器形状系可由熟知此项技术的人士所易于决定者。在一实施例中,此角锥型滤波器系依靠一正值参数,s≥1,并可以方程式44表示。
H s ( ω x , ω y ) = max { 0 , s - ω x - ω y } s , 0 ≤ ω x , ω y ≤ 7 - - - - ( 44 )
可了解的是频率变量的范围系根据以适当编码标准定义的影像区块尺寸,s的倒数,即1/s,有关此滤波器的强度。在一实施例中,滤波器强度(1/s)的值系介于0与1之间,尤其是当滤波器强度(1/s)为0时,即s→∞,频率响应Hs具有固定值=1,其意思为无过滤(DCT系数没有改变)。当滤波器强度(1/s)相对较高时,s=1,且任何地方的Hs具有固定值为0,除了当ωX=ωy=0(DC系数)之外。在有限制的案例中,滤波器的应用系利用因素8在水平方向与垂直方向有效降低视讯图像(即每8个样本取一个)。
滤波器的形状可以随着强度参数而改变,在所示的范例中,强度(1/s)的描述相当于1/32(弱)、1/16(中)及1/8(强),表III、表IV及表V所示为这些变化滤波器强度的范例。相对于表III、表IV及表V的滤波器的图式分别如图14、图15及图16所示,可了解的是从事此技术的人士可以做许多可能性的变化,包含滤波器状的变化与滤逼器强度的变化。例如,在其它实施例中,可以使用超过三个不同的滤波器或是少于三个滤波器。
表III
32 31 30 29 28 27 26 25
31 30 29 28 27 26 25 24
30 29 28 27 26 25 24 23
29 28 27 26 25 24 23 22
                       /32(弱,强度=1/32)
28 27 26 25 24 23 22 21
27 26 25 24 23 22 21 20
26 25 24 23 22 21 20 19
25 24 23 22 21 20 19 18
表IV
16 15 14 13 12 11 10 9
15 14 13 12 11 10 9  8
14 13 12 11 10 9  8  7
13 12 11 10 9  8  7  6
                       /16(中,强度=1/16)
12 11 10 9  8  7  6  5
11 10 9  8  7  6  5  4
10 9  8  7  6  5  4  3
9  8  7  6  5  4  3  2
表V
8 7 6 5 4 3 2 1
7 6 5 4 3 2 1 0
6 5 4 3 2 1 0 0
5 4 3 2 1 0 0 0
                 /8(强,强度=1/8)
4 3 2 1 0 0 0 0
3 2 1 0 0 0 0 0
2 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
在表III、表IV及表V中,此DC DCT系数(ωX=0及ωy=0)位于上面左边,水平频率变量ωX逐渐向右增加,且垂直频率变量ωy则逐渐向下增加,其它强度及形状亦为熟悉此技术的人士易于思及者。
值得注意的是在所示范例中,滤波器分别使用9/16(18/32)(弱)、1/8(2/16)(中)以及0(强),其系为位于最高频率DCT系数位置AC(7,7)的三个滤波器强度,且保持在DC位置(0,0)的值为1;决定好滤波器时,DC系数不会改变。对其他DCT系数的滤波器值系位在连接此些点的平面上,使较高的滤波器具有较陡峭的倾斜平面。当然,其它变化亦为熟悉此技术的人士易于决定者,并可包含具曲面的形状。
在一实施例中,变量s系选自2幂(例如1/8、1/16、1/32等),以便使此除法可有效地利用比复合式除法运算较为快速的位转换运算完成。然而,可以了解的是滤波器强度可假设为介于0和1之间的其它正值。更进一步地,有较多地通用滤波器系使用双位转换来支持倍数变量的乘法运算与除法运算,例如,处理器系可支持多媒体延伸(multimediaextension,MMX)指令集或是单指令多数据(Single InstructionMultiple Data,SIMD),其系已描述于前述的图6。2幂的利用将大幅简化这些或相似架构的全面性补偿,并增加处理速度,使视讯编码可以实时完成。例如,过滤程序系有助于以相对可忽略的计算来补偿,且在一范例中其系大概为1%。
稍后在图13所描述的详细程序中,此DCT过滤可以应用在全部视讯序列,适应于一图像的基础案例,大区块接着大区块的基础,或是三者的结合。可了解的是低通滤波器可设定为永远使用,例如,在专用的硬件编码器,但其滤波器响应系可选择地,使此低通滤波器无功效,因而使此滤波器有效失去作用。不管是否应用于DCT过滤及DCT过滤强度,因素数量系可被适当采用。在一实施例中,已计算好的状态变量系有效用来做判断,使额外的处理器经常费用及/或额外的硬件电路系为较低者。例如,在一实施例中,此DCT过滤的选择系基于下列二个参数的观察:VBV缓冲器模型占用及现行讯框的平均运行的QP,此VBV缓冲器模型系详细描述于前述图7中,有利地,VBV缓冲器模型或其它类似缓冲器模型的理论占用层级通常系通过一视讯编码器来维持,例如一MPEG视讯编码器。
平均运行量化参数QP也是一种状态变量,其系维持在一视讯编码器中。当许多变化存在于计算一运行平均值时,例如,多少样本被使用于运行平均值中,不管此运行平均值是否为不规则地衡量等,许多视讯编码器追踪此QP的平均值以监控视讯品质。一运行平均值QP系相对的高,例如一接近上界限的QP系接近31,其表示具有相对压缩瑕疵图像的较低品质编码。相反地,一相对低运行平均值QP等,其平均值系接近一最低界限,例如1,其表示编码器在编码过程具有较高视讯品质且无压缩瑕疵。在一实施例中,图像数量(N)一般用来计算一移动或运行平均QP,此数量系位于2-30范围中。
在一实施例中,相对于VBV缓冲器模型状况及平均运行QP,在(a)使用DCT过滤与使用一较低QP值或(b)不执行DCT过滤及使用一较高QP值间进行交换,可以了解的是(b)可相对于传统编码技术。
在一实施例中,当编码器应用于DCT过滤时,另一除法可以用来判断过滤的强度或大小,为从事此技技术者了解的,滤波器强度数量系可由编码器选择而在一较广的范围内变化,例如2、3、4或更多滤波器强度。在所示实施例中,表III、表IV及表V,此编码器自3个具有相对滤波器系数矩阵的滤波器强度(1/32为弱,1/16为中,1/8为强)中选择,在滤波器强度上的许多变化系为可能的。
在滤波器系数的另一范例,滤波器进行的过滤数量可随着滤波器频率响应的调整而变化,如表VI、表VII及表VIII所示。即使波器强度(1/s)保留在相同值,过滤数量也会因而改变。描述在表VI、表VII及表VIII的滤波器响应,对每一滤波器而言,滤波器的强度(1/s)为1/16。
表VI
16 15 14 13 12 11 10 9
15 14 13 12 11 10 9  0
14 13 12 11 10 9  0  0
13 12 11 10 9  0  0  0
                        /16(弱)
12 11 10 9  0  0  0  0
11 10 9  0  0  0  0  0
10 9  0  0  0  0  0  0
9  0  0  0  0  0  0  0
表VII
16 14 12 10 8  6  4  2
14 12 10 8  6  4  2  0
12 10 8  6  4  2  0  0
10 8  6  4  2  0  0  0
                             /16(中)
8  6  4  2  0  0  0  0
6  4  2  0  0  0  0  0
4  2  0  0  0  0  0  0
2  0  0  0  0  0  0  0
表VIII
16 8  4  2  0  0  0  0
8  4  2  0  0  0  0  0
4  2  0  0  0  0  0  0
2  0  0  0  0  0  0  0
                 /16(强)
0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0
此过滤运算包含在DCT系数与先前所列系数间的一简单数量的乘法运算,许多处理器支持可执行平行倍数乘法运算的指令。一范例的处理器架构系可支持SSE指令集或是MMS指令集,以及大量相乘的指令″PMUL″。有利地,除法运算可有效率的右位转换运算有关,只要是2幂的因素。适应性选择DCT过滤程序将被详述于后。
图13所示为在一视讯编码器中适应性选择DCT过滤程序之一范例流程图,从事此项技术者对上述的程序以不同方式所做的修改仍未脱离本发明所揭示的精神与范围,例如,在另一实施例中,所示程序的各种不同部份系可结合在一起,可以可供替代的顺序重新排列,可以被移除,以及其它类似者。
此程序由步骤1302开始,其中此程序系检索VBV缓冲器模型占用层级,其系可以先前的图像编码进行更新。较有利地,缓冲器模型的占用层级系已在一编码程序中计算完成,可了解的是此程序并不需要检索占用层级直到使用占用层级,但是在步骤1302所示的资料检索更为清楚。此程序将从步骤1302前进至步骤1304。
在步骤1304中,本程序计算或检索该运行QP平均值,其系为已知的移动平均值。在一实施例中,运行平均值系来自现存运行平均值的重新使用。在另一实施例中,运行平均值系分开计算的。在另一实施例中一新的QP运行平均值系由现存运行平均值计算而来的,且一最近的运行平均值的衡量系以方程式45表示。
      QPx_avg=*(QPrun+QPx_prev)                  (45)
在方程式45,QPrun相当于由系统状态变量检索出的一平均运行QP,且QPx_prev相当于相同型式(I、P或B)之前图像的QP值。方程式45的结果QPx_avg之后可以被使用于与一被选择的临界值进行比较,即过滤的QP临界值(QPflt_thr)。而后此程序从步骤1304前进至判断方块1306。
在判断方块1306中,此程序比较运行平均QP与一临界值,例如一预定的临界值。在一实施例中,可选择QPflt_thr,使QPflt_thr相当于一平均QP的视讯品质临界值QPx_avg,其系表示在视讯中的压缩瑕疵几乎为明显的。可了解的是此临界值可载在一宽广的范围内变化,且可依据环境状态,例如视讯分辨率、视讯的讯框速率以及位速率上的限制。在一实施例中,此程序可以对较低分辨率视讯使用一较小的临界值。在一实施例中,此程序可以使用一QPflt_thr=6的临界值于VCD尺寸视讯(352×240)或是较小的分辨率。对DVD而言,即NTSC(720×480),或其它类似尺寸视讯,QPflt_thr=14的值系有利于使用。较小分辨率视讯,例如VCD,因其低分辨率视讯较高分辨率视讯具有较大的实际像素尺寸,所以对视讯压缩瑕疵具有更多的敏感性,亦可使用其它值,且其它值仍然可为熟悉不同编码标准(MPEG4/H.264)或不同视讯讯框尺寸及讯框速率等领域的人士所易于决定者。
如图所示的程序,当运行平均值超过临界值(QPx_avg>QPflt_thr)时,程序将从判断方块1306继续进行至步骤1308;否则,程序将从判断方块1306继续进行至1312。
在步骤1308,此程序设定一标示旗帜来表示判断方块1322在过滤图像的所有大区块而进入步骤1324,可了解的是此程序变化为可能的,且在此程序的另一实施例中,少于所有大区块被过滤,用以检测超过临界值运行平均值。再回到图标的实施例,其中所有大区块被选择以运行平均值超过临界值进行过滤,此程序系从步骤1308前进至步骤1310。
在步骤1310,本程序选择一滤波器强度来应用于DCT系数,如前面所描述者,滤波器的作用可以随着滤波器频率响应与滤波器强度(1/s)而改变。在所示的程序中,在步骤1302检所到的VBV缓冲器模型占用层级系用来判断该滤波器强度。在一实施例中,对VBV缓庆模型占用层级的最初与长期目标为VBV缓冲器模型容量的7/8(7/8的vbv_buffer_size)。此VBV缓冲器模型容量的7/8的目的为视讯编码器的代表性目的,可了解的是此标准可在广泛的范围内变化,且亦随着过滤强度的数目而改变,此过滤强度为编码器所选择者,且系基于VBV缓冲器模型占用的不同VBV目的及/或临界值。
在一实施例中,较低的VBV缓冲器模型占用,可应用滤波器的强度则较强。在一实施例中,该VBVcur表示VBV缓冲器模型占用的当前图像或讯框,且滤波器强度系选自下列内容。当(VBVcur>6/8*vbv_buffer_size)时,DCT过滤强度设定为弱;在6/8*vbv_buffer_size的临界值以下,若(VBVcur>3/8*vbv_buffer_size),DCT过滤强度设定为中;在3/8*vbv_buffer_size的临界值以下,DCT过滤强度设定为强。之后此程序系从步骤1310前进至步骤1320。
现在再回到判断方块1306,当运行平均值系小于或等于临界值,QPx_avg≤QPflt_thr,此程序继续进行至步骤1312,其中被选择的大区块可被过滤。在一实施例中,此程序决定过滤应该应用在所选择的大方块,且过滤系在一较弱的强度,例如前述表III所叙述的较弱滤波器强度。此程序将从步骤1312前进至步骤1320。
在步骤1320中,本程序系计算的大区块的量化参数。此步骤13320相当于处理一图像大区块的回路的开始,物同技术可以用来计算此量化参数(QP)。在一实施例中,系使用MPEG的TM5所描述的标准技术来计算QP值。在另一实施例中,亦可使用其它技术,例如,描述于前述图6所示的QP计算技术,在TM5型式的速率控制,一特定的大区块(MB)i的量化参数(QP)系利用虚拟缓冲器状态与大区块的空间活动来决定,假如先前MB的位配置过量,即太多位被消耗,该TM5速率控制可以利用分配一较高QP值给后续的大区块(MB)来补偿。
值得注意的是,TM5型式的速率控制系使用一方法,称之为″适应性量化(adaptive quantization)″,来分配一相对小的QP给平面区域(低特征)的大区块,并分配一相对高的QP给在忙碌或高特征区域的大区块。结果,许多大区块仍不利地及一贯地分配相对高QP值而导致是绝不愉快的加工物,例如压缩瑕疵。如稍后所描述者,当执行DCT过滤来降低在编码过程中位消耗数量而依从VBV缓冲器模型限制时,本程序的一实施例有利于降低相对高的QP值而减少压缩瑕疵。此程序系从步骤1320前进至判断方块1322。
在判断方块1322中,本程序判断是否过滤所有的大区块或是只过滤选择的大区块。在图所示的程序中,此程序监控在步骤1308设定标示旗帜的状态,当所有大区块全部被过滤时,此程序将从判断方块1322继续进行至步骤1324;否则,此程序将从判断方块1322继续进行至判断方块1328。
在步骤1324中,本程序应用选择的DCT滤波器至DCT系数,并利用资料中的增加零数量过滤来减少位数,因而使数据压缩的数量减少。例如,额外的零存在可有助于增加连续遭遇零数量,其系可以压缩运行长度来代表。此程序将从步骤1324前进至步骤1326。
在步骤1326中,此程序设置一上界限值于QP值,以减轻影像压缩瑕疵,相较于一使用相同QP值的中间大区块(包含前面的、后面的及插入的模式)而言,在一内部大区块(intra-macroblock)中更可明显观察到影像压缩瑕疵效应。在一实施例中,一较小QP界限值系有利于使用在内部大区块更甚于使用在中间大区块。一内部大区块的上界限值与一中间大区块的上界限值系分别表示为QPintra_thr与QPinter_thr。在一实施例中,此些界限值可根据方程式46的VBV缓冲器模型占用来进行适应性选择。
Figure A20041005669600601
例如,若当前VBV缓冲器占用层级系介于VBV缓冲器模型容量的4/8与5/6之间,使得内部大区块的QP上界限值与中间大区块的QP上界限值分别选择为14与20。对QP界限值的其它值,亦即,QPintra_thr与QPinter_thr的其它值系为熟悉此技术者易于决定者。该上界限值系应用于步骤1320的QP计算。当步骤1320计算的QP值大于所给的界限值(QPintra_thr与QPinter_thr)时,系使用结合的QP界限值。此程序则从步骤1326前进至步骤1330,其中该大区块系为已编码者。
现在再回到判断方块1328,在此程序的此点,该程序判定步骤1324的DCT过滤应用,并判断大区块于步骤1326可能的QP调整。在一实施例中,当运行QP值超过前述方程式46所述的临界值时,此程序从判断方块1328继续进行到DCT过滤步骤1324以及QP调整状态。当运行QP值位超过临界值时,使程序并没有进行DCT过滤以及QP的调整,进行前进至步骤1330。
在步骤1330中,本程序编码该大区块,此编码过程可以是通过判断方块1328进入至步骤1330的未过滤编码,或是通过步骤1326进入步骤1330的已过滤编码。而后此程序系从步骤1330前进至判断方块1332。
在判断方块1332中,本程序判断图像中的所有大区块是否已经完成编码过程,当大区块仍然处于编码状态时,此程序即会回到步骤1320继续整个处理程序;否则,此程序将结束,并可于要求的后续讯框的编码过程重新开始。
大区块模式判断
图17为选择一大区块模式的流程图。习知的视讯编码技术在选择大区块模式时是采用一种不适当的判断方式。于本发明的一具体化实施例中于模式判断时加入编码成本作为移动向量,藉此增加选择模式的品质。更者,于判断时额外再使用一个L1基准,以降低使用编码成本作为移动向量所增加的计算复杂度。
在步骤1710,程序执行一移动搜寻。当进行完该大区块的每一个编码模式移动向量搜寻(内部移动补偿、零移动向量、场内移动补偿等)后,进行一剩余错误的量测,为了判断某些大区块适当的编码模式,一般的编码器计算平方和的总数,也就是大家所知的L-2基准。该平方的和数接续与原始图像值进行比对。在一般的系统内,最小平方和为光学编码模式。
计算平方和的缺点是它是一个相当奢侈的计算程序并且会导致编码过程变慢。例如,当进行这种型态的方块计算的判断模式总和将消耗MPEG压缩的全部编码复杂性的10%。
在步骤1720,程序计算或接收作为移动向量的绝对差异总和(SAD)。在本发明中,绝对值总和,也就是L1基准,于模式判断时被用来作为测量基准。更佳的是,剩余错误的绝对值总和实际上等于移动收寻中程序判断何者为最佳候补大区块预测的绝对差异总和值(SAD)。除了原始画素的L1基准之外,该剩余错误的L1基准编码器也能够使用,而不需要更进一步的计算。不管从哪里计算,因为L1基准的运算程序不需要乘法计算,所以L1基准较计算L2基准较为简便且CPU能力耗费较少。另外,选择程序直接的持有效的指令如先前图6中所描述。
另外一个缺点系为习知用来模式判断的方法是纯粹通过扭取量测来判断,即模式判断选择具有最少扭取的模式。然而,每一个模式并不符合相对应消耗的位数。例如,没有移动向量的大区块模式较其它模式小。因此,利用习知方式所选择出来的模式可以选择出一个模式,其无法避免每一位消耗时画面扭取的问题。
在很多情况下,一个具有稍微较大扭取与较小运动向量差值(DMV)或者较少运动向量(DMV的值将判断该移动向量编码所使用的位数)可以较一具有较低扭曲的模式具有较佳扭取速率型态。如一个DMV的范例,如果一个特定MB的移动向量(MV)为(4,3),这个MB的MV仿真为(3,6),因此该DMV为(4-3,3-6)=(1,-3)。在这个例子中,用来修改SAD的DMV值为|1|+|-3|=4。
在步骤1730,程序通过调整SADORG为SADMOD来补偿在SAD计算的移动向量的编码成本。一个具体化的例子使用一个相对简易判断原则来考虑DMVs速率与他们相关的扭曲。一个具体化的实施例,因为判断原则与图像及移动补偿型态呈现高度相关时,该判断原则的选择系依据该图像为P图像、B图像与是否该图像使用场仿真或者讯框仿真(对交错式视讯与对累进式视讯)。用半画素单位表示的DMV的实际值能于该目标使用。该水平与垂直的绝对值总和可以使用于下列作为判断原则方程式的数值。
一个具体化的实施例,DMVs相关的成本被转换成等价值的SAD,因此许多模式的SAD可以被更适当的比对。具体而言,与每一个模式相关的DMV是首先被计算,然后再计算被DMV修改后的每一个模式的SADs,接续,该被修改过的SADs作为模式判断。例如,P图像系使用下列定义为原则1的原则。其它原则将合并此处描述的理论与优点经由该技艺中原本的技巧快速的判断。
在下列公式,当DMV经转换与作为模式判断后,SADmod可视为为SAD。然而,SADorg的SAD值来自于移动估计。下列所表示的原则可以被修改以配合L2基准。
P图像-进行序列:
对于这些大区块(MBs),一个MB可以被译码,为下列三个型态之一:
Intra,Inter_No_MC,andInter_MC.Rule1:
A.Inter_MC SAD被修改为:
SADmod(Inter_MC)=SADorg+min((DMV+1)*4,32)
B.Inter_No_MC作为初始值:SADmod(Inter_No_MC)=SADorg
C.Intra MB被修改为SADmod(Intra)=SADorg-128
P讯框-交错序列:
对这些大区块,MB可以被译码,为下列四个型态之一:
Intra,Inter_No_MC,Inter_MC_frame and Inter_MC_field.Inter_MC_field mode使用两个移动向量,因此依据原则2有两个DMVs
A.Inter_MC_frameSAD被修改为:
SADmod(Inter_MC_frame)=SADorg+min((DMV+1)*4,32)
B.Inter_MC_frame SAD被修改为:
SAD mod ( Inter _ MC _ field ) = SAD org + min ( Σ 1 2 ( DMV k + 1 * 4,64 ) )
C.Inter_No_MC作为初始值:SADmod(Inter_No_MC)=SADorg
D.Intra MB被修改为SADmod(Intra)=SADorg-128
B讯框-进行序列
对这些大区块,MB可以被译码,为下列四个型态之一:Intra,forward,backward and interpolated modes.原则3:
A.Forward SAD被修改为:
SADmod(Forward)=SADorg+min((DMV+1)*4,32)
B.Backward SAD被修改为:
SADmod(Backward)=SADorg+min((DMV+1)*4,32)
C.Interpolated SAD被修改为:
SAD mod ( Interpolated ) = SAD org + min ( Σ 1 2 ( DMV k + 1 * 4,64 ) ) 因为它使用两个移动向量。
D.Intra MB被修改为SADmod(Intra)=SADorg-128
B讯框-交错序列
对这些大区块,MB可以被译码,为下列七个型态之一:Intra,forward,forward_field,backward,backward_field,interpolated,interpolated_field modes.
A.向前模式的SAD被修改为:
SADmod(Forward)=SADorg+min((DMV+1)*4,32)
B.向前场模式的SAD被修改为:
SAD mod ( forward _ field ) = SAD org + min ( Σ 1 2 ( DMV k + 1 * 4,64 ) ) , 因为它使用两个移动向量。
C.向后模式的SAD被修改为:
SADmod(backward)=SADorg+min((DMV+1)*4,32)
D.向后场模式的SAD被修改为:
SAD mod ( backward _ field ) = SAD org + min ( Σ 1 2 ( DMV k + 1 * 4,64 ) ) , 因为它使用两个移动向量。
E.修改讯框模式的SAD被修改为:
SAD mod ( interpolate _ field ) = SAD org + min ( Σ 1 2 ( DMV k + 1 * 4,64 ) ) , 因为它使用两个移动向量。
F.修改场模式的SAD被修改为:
SAD mod ( interpolate _ field ) = SAD org + min ( Σ 1 4 ( DMV k + 1 * 4,128 ) ) , 因为它使用四个移动向量。
G.Intra MB被修改为SADmod(Intra)=SADorg-128
在步骤1740,程序选择该大区块的该模式。当该SAD计算值被转换并且符合适当的原则,在转化后,程序选择具有一最低SAD的模式为一具体化范例。实验结果指出使用L1基准与作为编码模式判断以修改方程式能够较习知使用L2基准模式判断运作的更好,在PSNR(peaksignal-to-noise ratio)有0.4dB平均,其显示具有相当品质上的改变。另外,因为L1基准较L2基准执行快速,故可得到较好的品质。
图18为选择一大区块模式的方式的另一种流程图。在步骤1802,执行一种作为讯框或图像的移动估计。该移动估计将提供给步骤1804来计算差异移动向量并且提供给步骤1810来判断SAD的计算值。在步骤1804,差异移动向量被计算。差异移动向量系依据先前的移动向量与由步骤1806所提供的数质。在步骤1808,已转换的SAD值被计算出。在步骤1812,已转换的SAD值被比较,并且大区块模式被选择。在一个具体化的实施例中,模式的选择系对应于全部SAD中具有最低SAD值的模式。
以上所述的实施例仅系为说明本发明的技术思想及特点,其目的在使熟习此项技艺的人士能够了解本发明的内容并据以实施,当不能以之限定本发明的专利范围,即大凡依本发明所揭示的精神所作的均等变化或修改,仍应涵盖在本发明的专利范围内。

Claims (25)

1、一种有效压缩视讯的方法,包括:
选择性低通过滤在频率域中一大区块的离散余弦转换(DCT)系数;以及
量化该低通过滤的DCT系数。
2、根据权利要求1所述的方法,还包括选择性限制一量化参数(QP),其系用来量化该低通过滤的DCT系数至一预定层级,使计算至该预定层级上的QP值为较低者。
3、根据权利要求1所述的方法,其中该选择性低通过滤的步骤系至少部份通过一缓冲器模型占用层级来完成。
4、根据权利要求3所述的方法,其中该缓冲器模型系为一视讯缓冲检测器(VBV)缓冲器模型。
5、根据权利要求1所述的方法,其中该选择性低通过滤的步骤系至少部份通过在一运行QP平均值与一临界值之间的比较来完成。
6、根据权利要求1所述的方法,还包括选择性过滤一图像的所有大区块的DCT系数,其系通过在一运行QP平均值与一临界值之间的比较来完成。
7、根据权利要求6所述的方法,还包括调整该过滤的DCT系数的数量,其系通过一缓冲器模型占用层级来完成。
8、根据权利要求1所述的方法,还包括:
判断是否过滤一图像的所有大区块或是只过滤该图像的选择大区块,其系利用一运行QP平均值与一临界值之间的比较来判断;
当所有大区块全部已过滤完成:
根据一缓冲器模型占用层级来适应性选择一过滤强度;
对该图像的所有大区块进行低通过滤;以及
限制用来量化该DCT系数的QP值。
9、根据权利要求1所述的方法,还包括:
判断是否过滤一图像的所有大区块或是只过滤该图像的选择大区块,其系利用一运行QP平均值与一临界值之间的比较来判断;
当选择的大区块全部已过滤完成:
通过一大区块的QP值与一临界值之间的比较来进行选择性低通过滤;以及
限制用来量化该DCT系数的QP值。
10、根据权利要求9所述的方法,其中用于选择大区块的该低通过滤系为固定者。
11、根据权利要求9所述的方法,还包括适应性调整用于该大区块QP值与临界值间的比较的该临界值,其系利用一缓冲器占用层级来调整。
12、根据权利要求1所述的方法,其中该DCT系数的低通过滤系以易懂的方式出现在一视讯编码器,使一对应的量化表毋需提供给产生的比特流。
13、一种有效压缩视讯的视讯编码器,包括:
一选择性低通过滤在频率域中一大区块的离散余弦转换(DCT)系数的手段;以及
一量化该低通过滤DCT系数的手段。
14、根据权利要求13所述的视讯编码器,还包括一选择性限制一量化参数(QP)的手段,其系用来量化该低通过滤的DCT系数至一预定层级,使计算至该预定层级上的QP值为较低者。
15、根据权利要求13所述的视讯编码器,其中该选择性低通过滤的手段系至少部份通过一缓冲器模型占用层级来完成。
16、根据权利要求13所述的视讯编码器,还包括一选择性过滤一图像的所有大区块的DCT系数的手段,其系通过在一运行QP平均值与一临界值之间的比较来进行。
17、一种内嵌在有形媒体的计算器程序,包括:
一选择性低通过滤在频率域中一大区块的离散余弦转换(DCT)系数的指令模块;以及
一量化该低通过滤DCT系数的指令模块。
18、根据权利要求17所述的计算器程序,还包括一选择性限制一量化参数(QP)的指令模块,其系用来量化该低通过滤的DCT系数至一预定层级,使计算至该预定层级上的QP值为较低者。
19、根据权利要求17所述的计算器程序,其中该选择性低通过滤的指令模块系为至少部份通过一缓冲器模型占用层级。
20、根据权利要求17所述的计算器程序,还包括一选择性过滤一图像的所有大区块的DCT系数的指令模块,其系通过在一运行QP平均值与一临界值之间的比较。
21、一种视讯编码电路,包括:
一电路,用以选择性低通过滤在频率域中一大区块的DCT系数;以及
一电路,用以量化该低通过滤DCT系数。
22、根据权利要求21所述的视讯编码电路,还包括一选择性限制一量化参数(QP)的电路,其系用来量化该低通过滤的DCT系数至一预定层级,使计算至该预定层级上的QP值为较低者。
23、根据权利要求21所述的视讯编码电路,其中该用以选择性低通过滤的电路系至少部与一缓冲器模型占用层级有关。
24、根据权利要求21所述的视讯编码电路,还包括一选择性过滤一图像的所有大区块的DCT系数的电路,其系通过在一运行QP平均值与一临界值之间的比较来进行。
25、一种内嵌有根据权利要求21所述的电路的视讯编码器。
CNB2004100566966A 2003-08-14 2004-08-16 在视讯编码器中适应性过滤离散余弦转换系数的系统与方法 Expired - Fee Related CN100546383C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/642,107 US20040252758A1 (en) 2002-08-14 2003-08-14 Systems and methods for adaptively filtering discrete cosine transform (DCT) coefficients in a video encoder
US10/642,107 2003-08-14

Publications (2)

Publication Number Publication Date
CN1617591A true CN1617591A (zh) 2005-05-18
CN100546383C CN100546383C (zh) 2009-09-30

Family

ID=34136530

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100566966A Expired - Fee Related CN100546383C (zh) 2003-08-14 2004-08-16 在视讯编码器中适应性过滤离散余弦转换系数的系统与方法

Country Status (4)

Country Link
US (1) US20040252758A1 (zh)
EP (1) EP1515564A3 (zh)
JP (1) JP2005102170A (zh)
CN (1) CN100546383C (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101449588B (zh) * 2006-10-31 2012-12-05 株式会社Ntt都科摩 用于视频压缩的空间稀疏性诱导瞬时预测
CN102870415A (zh) * 2010-05-12 2013-01-09 日本电信电话株式会社 活动图像编码控制方法、活动图像编码装置以及活动图像编码程序
US9179165B2 (en) 2010-05-07 2015-11-03 Nippon Telegraph And Telephone Corporation Video encoding control method, video encoding apparatus and video encoding program
CN111161234A (zh) * 2019-12-25 2020-05-15 北京航天控制仪器研究所 一种离散余弦变换测量基排序方法

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MXPA04002265A (es) * 2002-07-11 2004-06-29 Matsushita Electric Ind Co Ltd Metodo de determinacion de resistencia de filtracion, metodo de codificacion de pelicula y metodo de decodificacion de pelicula.
KR100561394B1 (ko) * 2002-12-30 2006-03-16 삼성전자주식회사 영상 부호화 시 부호화 모드 결정 및 관리 장치와 그 방법
US7940799B2 (en) * 2003-02-04 2011-05-10 Panasonic Corporation Code conversion method and device thereof
US8018850B2 (en) * 2004-02-23 2011-09-13 Sharp Laboratories Of America, Inc. Wireless video transmission system
CN100579223C (zh) * 2004-12-02 2010-01-06 索尼株式会社 编码装置和方法
US20060285590A1 (en) * 2005-06-21 2006-12-21 Docomo Communications Laboratories Usa, Inc. Nonlinear, prediction filter for hybrid video compression
US7933294B2 (en) 2005-07-20 2011-04-26 Vidyo, Inc. System and method for low-delay, interactive communication using multiple TCP connections and scalable coding
AU2006346225B8 (en) * 2005-07-20 2010-03-25 Vidyo, Inc. System and method for scalable and low-delay videoconferencing using scalable video coding
US8289370B2 (en) 2005-07-20 2012-10-16 Vidyo, Inc. System and method for scalable and low-delay videoconferencing using scalable video coding
CA2779498C (en) * 2005-07-20 2015-06-30 Vidyo, Inc. System and method for a conference server architecture for low delay and distributed conferencing applications
WO2008060262A1 (en) * 2005-09-07 2008-05-22 Vidyo, Inc. System and method for scalable and low-delay videoconferencing using scalable video coding
US8644386B2 (en) * 2005-09-22 2014-02-04 Samsung Electronics Co., Ltd. Method of estimating disparity vector, and method and apparatus for encoding and decoding multi-view moving picture using the disparity vector estimation method
SG130982A1 (en) * 2005-10-04 2007-04-26 St Microelectronics Asia Macro-block quantization reactivity compensation
KR100723507B1 (ko) * 2005-10-12 2007-05-30 삼성전자주식회사 I-프레임 움직임 예측을 이용한 동영상 압축 장치의 적응양자화 제어기 및 적응 양자화 제어 방법
JP4644097B2 (ja) * 2005-10-31 2011-03-02 富士通セミコンダクター株式会社 動画像符号化プログラム、プログラム記憶媒体、および符号化装置。
US7734053B2 (en) * 2005-12-06 2010-06-08 Fujitsu Limited Encoding apparatus, encoding method, and computer product
JP4666255B2 (ja) 2005-12-27 2011-04-06 日本電気株式会社 符号化データ選定、符号化データ設定、再符号化データ生成及び再符号化の方法及び装置
FR2906433B1 (fr) * 2006-09-22 2009-02-27 Canon Kk Procedes et dispositifs de codage et de decodage d'images, programme d'ordinateur les mettant en oeuvre et support d'informaton permettant de les mettre en oeuvre
US8542726B2 (en) 2006-10-17 2013-09-24 Microsoft Corporation Directional and motion-compensated discrete cosine transformation
CN101647278B (zh) * 2006-12-12 2012-05-30 梵提克斯公司 用于视频编码标准的改进的视频速率控制
ES2369214T3 (es) 2007-03-14 2011-11-28 Nippon Telegraph And Telephone Corporation Método y dispositivo de estimación de la cantidad de código, su programa y medio de almacenamiento.
CA2678574C (en) 2007-03-14 2015-06-16 Nippon Telegraph And Telephone Corporation Motion vector search method and apparatus, program therefor, and storage medium which stores the program
KR101075606B1 (ko) * 2007-03-14 2011-10-20 니폰덴신뎅와 가부시키가이샤 양자화 제어 방법 및 장치, 그 프로그램 및 프로그램을 기록한 기록 매체
EP2120463B1 (en) 2007-03-14 2014-12-10 Nippon Telegraph and Telephone Corporation Encoding bit rate control method, device, program, and recording medium containing the program
CA2688249C (en) * 2007-06-19 2015-07-07 Vantrix Corporation A buffer-based rate control exploiting frame complexity, buffer level and position of intra frames in video coding
JP2010287916A (ja) * 2007-09-10 2010-12-24 Panasonic Corp 画像符号化方法
US8111757B2 (en) * 2007-09-28 2012-02-07 Motorola Mobility, Inc. Method and apparatus for video signal processing
WO2009045683A1 (en) * 2007-09-28 2009-04-09 Athanasios Leontaris Video compression and tranmission techniques
EP2524504A1 (en) * 2010-01-14 2012-11-21 Dolby Laboratories Licensing Corporation Buffered adaptive filters
JPWO2011121894A1 (ja) * 2010-03-31 2013-07-04 三菱電機株式会社 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法
AU2012225513B2 (en) 2011-03-10 2016-06-23 Vidyo, Inc. Dependency parameter set for scalable video coding
US20130016776A1 (en) * 2011-07-12 2013-01-17 Vidyo Inc. Scalable Video Coding Using Multiple Coding Technologies
US9426494B2 (en) * 2011-07-18 2016-08-23 Ziilabs Inc., Ltd. Systems and methods with early variance measure used to optimize video encoding
US20140198840A1 (en) * 2011-08-31 2014-07-17 New Motech Co., Ltd. Method and apparatus for adaptive loop filter with constrained filter coefficients
US9313486B2 (en) 2012-06-20 2016-04-12 Vidyo, Inc. Hybrid video coding techniques
US9936203B2 (en) * 2015-04-13 2018-04-03 Qualcomm Incorporated Complex region detection for display stream compression
CN109413427B (zh) 2017-08-17 2022-04-08 腾讯科技(深圳)有限公司 一种视频帧编码方法及终端
KR102598789B1 (ko) * 2018-07-02 2023-11-07 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩에서의 필터링을 위한 장치 및 방법
CN110876060B (zh) * 2018-08-31 2022-07-15 网宿科技股份有限公司 一种编码过程中的码率调整方法及装置
WO2020139169A1 (en) 2018-12-28 2020-07-02 Huawei Technologies Co., Ltd. Method and apparatus of sharpening interpolation filtering for predictive coding
US11366979B2 (en) 2019-11-14 2022-06-21 Alibaba Group Holding Limited Using selected components of frequency domain image data in artificial intelligence tasks
US11170260B2 (en) 2019-11-14 2021-11-09 Alibaba Group Holding Limited Techniques for determining importance of encoded image components for artificial intelligence tasks
US11403783B2 (en) 2019-11-14 2022-08-02 Alibaba Group Holding Limited Techniques to dynamically gate encoded image components for artificial intelligence tasks

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3613343A1 (de) * 1986-04-19 1987-10-22 Philips Patentverwaltung Hybrid-codierer
JPH03256452A (ja) * 1990-03-07 1991-11-15 Ricoh Co Ltd 画像データ処理方式
US5200820A (en) * 1991-04-26 1993-04-06 Bell Communications Research, Inc. Block-matching motion estimator for video coder
US6026190A (en) * 1994-10-31 2000-02-15 Intel Corporation Image signal encoding with variable low-pass filter
US5686963A (en) * 1995-12-26 1997-11-11 C-Cube Microsystems Method for performing rate control in a video encoder which provides a bit budget for each frame while employing virtual buffers and virtual buffer verifiers
JP2001128176A (ja) * 1999-10-28 2001-05-11 Asahi Optical Co Ltd 画像圧縮および伸張装置
US6678332B1 (en) * 2000-01-04 2004-01-13 Emc Corporation Seamless splicing of encoded MPEG video and audio
JP2001275110A (ja) * 2000-03-24 2001-10-05 Matsushita Electric Ind Co Ltd 動的なループ及びポストフィルタリングのための方法及び装置
US6763070B1 (en) * 2001-05-29 2004-07-13 Cisco Technology, Inc. Methods and apparatus for selecting a cut-off index

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101449588B (zh) * 2006-10-31 2012-12-05 株式会社Ntt都科摩 用于视频压缩的空间稀疏性诱导瞬时预测
US9179165B2 (en) 2010-05-07 2015-11-03 Nippon Telegraph And Telephone Corporation Video encoding control method, video encoding apparatus and video encoding program
CN102870415A (zh) * 2010-05-12 2013-01-09 日本电信电话株式会社 活动图像编码控制方法、活动图像编码装置以及活动图像编码程序
US9179149B2 (en) 2010-05-12 2015-11-03 Nippon Telegraph And Telephone Corporation Video encoding control method, video encoding apparatus, and video encoding program
CN111161234A (zh) * 2019-12-25 2020-05-15 北京航天控制仪器研究所 一种离散余弦变换测量基排序方法
CN111161234B (zh) * 2019-12-25 2023-02-28 北京航天控制仪器研究所 一种离散余弦变换测量基排序方法

Also Published As

Publication number Publication date
JP2005102170A (ja) 2005-04-14
CN100546383C (zh) 2009-09-30
EP1515564A3 (en) 2006-05-24
US20040252758A1 (en) 2004-12-16
EP1515564A2 (en) 2005-03-16

Similar Documents

Publication Publication Date Title
CN1617591A (zh) 在视讯编码器中适应性过滤离散余弦转换系数的系统与方法
CN1617592A (zh) 视讯编码器选择一大区块模式的系统与方法
CN1178516C (zh) 利用编码历史信息的编码转换系统
CN1241416C (zh) 编码系统和方法、编码及解码、记录及再现的设备和方法
CN1192610C (zh) 记录/回放装置、记录/回放方法和记录媒体
CN1272967C (zh) 视频编码方法和装置
CN1075323C (zh) 运动矢量编码和解码方法及装置,图像信号编码和解码方法及装置
CN1719905A (zh) 编码装置、编码方法、编码方法程序及相应的记录媒体
CN1339922A (zh) 编码信号的分离和合并装置、方法及计算机程序产品
CN1513268A (zh) 编码方法、译码方法、编码装置、译码装置、图象处理系统、编码程序和译码程序
CN1090455A (zh) 动态图象的编码/解码方法、装置及其存储介质
CN1943246A (zh) 图像解码方法
CN1213935A (zh) 分层图像编码解码、数字广播信号记录及图像音频的解码
CN1537384A (zh) 用于子像素值内插的方法
CN1926576A (zh) 用于数字编码3d立体视频图像的方法和系统
CN1738434A (zh) 用于3d子带编码的嵌入式基层编解码器
CN1462556A (zh) 运动图像编码设备
CN1778110A (zh) 图像解码设备和图像解码方法
CN1630374A (zh) 用于前向预测的隔行扫描视频帧的场的预测运动矢量
CN1735208A (zh) 在运动补偿的时间滤波中的自适应更新
CN1725844A (zh) 数字媒体流的反向表示
CN1898965A (zh) 运动图象编码方法和装置
CN1767650A (zh) 用于在数字广播接收机中处理图像信号的设备和方法
CN1756357A (zh) 信息处理设备以及其中使用的程序
CN1882092A (zh) 利用编码历史信息的编码转换系统

Legal Events

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

Granted publication date: 20090930

Termination date: 20150816

EXPY Termination of patent right or utility model