CN105704488B - 视频图像数据编码方法、装置和计算机可读介质 - Google Patents

视频图像数据编码方法、装置和计算机可读介质 Download PDF

Info

Publication number
CN105704488B
CN105704488B CN201510924558.3A CN201510924558A CN105704488B CN 105704488 B CN105704488 B CN 105704488B CN 201510924558 A CN201510924558 A CN 201510924558A CN 105704488 B CN105704488 B CN 105704488B
Authority
CN
China
Prior art keywords
block
encoding
data
data blocks
data block
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.)
Active
Application number
CN201510924558.3A
Other languages
English (en)
Other versions
CN105704488A (zh
Inventor
R·多芬格
T·尼贝里
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.)
Anne Science And Technology (china) Co Ltd
ARM Ltd
Original Assignee
ARM Technology China Co Ltd
ARM Ltd
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 ARM Technology China Co Ltd, ARM Ltd filed Critical ARM Technology China Co Ltd
Publication of CN105704488A publication Critical patent/CN105704488A/zh
Application granted granted Critical
Publication of CN105704488B publication Critical patent/CN105704488B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/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/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

视频图像数据编码方法、装置和计算机可读介质。本发明有利于对数据块序列(1)的两组数据块并行编码,同时还便于在数据块序列(1)之间使用依从编码。这是通过如下操作实现:向单独编码单元分配成对的第一组数据块和第二组数据块,并确定要用于对各个第二组数据块的第一块进行编码的编码参数值(30)。为了正确地重建图像,要确保利用如下的编码参数值对属于一对数据块组的第一组数据块的块进行编码,该编码参数值将使得解码器在对第二组的第一块进行解码时使用所确定的编码参数值(30)。

Description

视频图像数据编码方法、装置和计算机可读介质
技术领域
本发明涉及视频数据处理。更具体而言,本发明涉及对视频图像数据进行编码的方法和装置。
背景技术
在现有技术中,已知可以根据预定的视频编码格式(例如由运动图像专家组定义的格式(一般统称为MPEG格式))对视频图像数据(例如RGB或YUV值)进行编码。诸如MPEG之类的视频编码格式能够在图像质量不会受到显著可见损失的情况下使得视频图像数据的文件大小大幅减小。
现有技术中已知,通常,在对视频数据进行编码时,各个视频帧被划分为该帧的多个像素块(例如,在MPEG编码的情况下,为16×16个像素块),并且各块分别编码。
在例如MPEG、H.264等视频编码标准中,通常相对于来自当前帧(例如当前帧中的先前编码像素块)或先前帧(例如先前帧中相应的编码像素块)的先前编码数据(例如,基准块),对视频像素数据中的各个像素块(在MPEG编码的情况下为16×16个像素块)进行编码。因此,每个数据块包括指向先前编码数据的向量值(所谓的“运动向量”)以及描述当前数据块与该先前编码数据之间的差异的数据(“残余数据”)。(由此,使得能够从该运动向量所指向的编码视频数据以及描述(当前)帧区域与当前视频帧的区域之间差异的差异数据,来构建该(当前)帧区域的视频数据。)
数据块随后例如可以通过(例如使用近似离散余弦变换(DCT))将残余数据变换为随后被量化的一组系数来进行编码。量化步骤通常涉及将各个系数值除以整数值,然后将结果限制为值的有限集合中的一个值。
通过量化参数(QP)对量化的程度进行调整,并因此而调整在对数据进行压缩时所实现的压缩量。量化参数通常是用于表示在量化步骤期间使用的缩放矩阵(scalingmatrix)的索引。编码器可以基于例如期望比特率和待编码数据的复杂程度来选择和设置量化参数。
为了使解码器能够从编码数据(尽可能精确地)重建原始的视频图像数据,必须向解码器指示出用于对在编码过程期间代表原始视频图像数据的参数进行量化的QP值。在许多系统中,通过将表示用于对所涉及的数据块进行编码的QP值的信息包含在编码数据块中,来实现这一目的。
QP值可以被编码为绝对值。然而,通常给定块的QP值被依从(dependently)编码,亦即,该块的QP值被定义为针对前续(preceding)块(通常按光栅扫描顺序)的相对值,通常是针对前续块表示的QP值的相对值。这样做的有利之处在于,如果待编码的差异相对较小,则可以实现数据大小的减少,亦即,存储QP值所需存储器减少。
在现有技术中,还已知可以将包括多个子任务的数据处理任务并行处理。例如,已知的是,可以通过将单独组的未编码像素块在若干个编码单元之间进行分配,而将一个典型的编码处理在这些编码单元之间进行划分。如果这些组可以由多个编码单元并行地进行编码,则编码处理的并行化就意味着,借助彼此并行工作的多个编码单元,可以极大地减少执行编码处理所需的时间。
然而,由于编码在本质上是顺序进行的,亦即,块序列中的每一个块要求前续块(特别是前续块的QP值)被编码从而依赖于此才能对自身进行编码,数据块的量化参数(QP)值相对于先前数据块(通常是光栅扫描顺序)的这些值进行编码的这种视频编码格式并不容易适用于这种并行处理。
因而,希望提供一种改进技术对视频图像数据进行编码,能够同时实现依从QP编码的数据大小减少的上述优点和数据处理并行化的上述优点。
发明内容
根据本发明的第一方面,提供了一种视频图像数据编码方法,该方法包括以下步骤:将视频图像数据的未编码块的序列编码为视频编码格式的编码数据块序列,其中
在对未编码数据块进行编码时,所述视频编码格式使用编码参数;
该方法包括针对所述未编码数据块的序列的至少一对第一组未编码数据块和第二组未编码数据块,所述第一组未编码数据块和所述第二组未编码数据块包括所述视频图像数据的比特流顺序的连续(contiguous)数据块,所述第二组的第一块在比特流顺序上紧跟在所述第一组的最末块之后;
分别对所述第一组未编码数据块和第二组未编码数据块进行编码,以生成第一组编码数据块和第二组编码数据块;
其中,对所述第一组未编码数据块和第二组未编码数据块进行编码的步骤包括:
在完成对所述第一组中的所有数据块的编码之前,确定要用于对所述第二组中的未编码数据块进行编码的编码参数值;
使用所确定的编码参数值对所述第二组中的所述未编码数据块进行编码;以及
确保所述第一组中的编码数据块指示如下的编码参数值,该编码参数值使得解码器在使用所述第一组中的编码数据块的所指示的编码参数值来确定用于对所述第二组中的数据块进行解码的编码参数值时,导出针对所述第二组中的编码数据块的所确定的编码参数值。
根据本发明的第二方面,提供了一种视频图像数据编码装置,其中,对视频图像数据的编码包括将视频图像数据的未编码块的序列编码为视频编码格式的编码数据块序列,其中
在对未编码数据块进行编码时,所述视频编码格式使用编码参数;
该视频图像数据编码装置包括处理电路,该处理电路被构造成:针对所述未编码数据块的序列的至少一对第一组未编码数据块和第二组未编码数据块,所述第一组未编码数据块和所述第二组未编码数据块包括所述视频图像数据的比特流顺序的连续数据块,所述第二组的第一块在比特流顺序上紧跟在所述第一组的最末块之后;
分别对所述第一组未编码数据块和第二组未编码数据块进行编码,以生成第一组编码数据块和第二组编码数据块;
其中,对所述第一组未编码数据块和第二组未编码数据块进行编码的步骤包括:
在完成对所述第一组中的所有数据块的编码之前,确定要用于对所述第二组中的未编码数据块进行编码的编码参数值;
使用所确定的编码参数值对所述第二组中的所述未编码数据块进行编码;以及
确保所述第一组中的编码数据块指示如下的编码参数值,该编码参数值使得解码器在使用所述第一组中的编码数据块的所指示的编码参数值来确定用于对所述第二组中的数据块进行解码的编码参数值时,导出针对所述第二组中的编码数据块的所确定的编码参数值。
本发明涉及有利于依从编码和数据处理并行化的对视频图像数据进行编码的方法和装置。
待编码视频图像数据包括未编码数据块序列。
所使用的视频编码格式是如下格式,其中使用编码参数(例如,优选地,量化参数,QP)对未编码数据块进行编码,并且其中,编码数据块可以(向解码器)指示在对未编码数据块执行编码处理中使用的编码参数值。此外,解码器参照编码数据块序列中前续编码数据块的编码参数值,确定针对至少一个数据块的编码参数值。
换言之,本发明涉及在对未编码数据块进行编码时使用编码参数的视频编码格式,并且其中,可以通过将参照编码数据块序列中前续编码数据块的编码参数值而限定的相对编码参数值包含在编码数据块中,向解码器(优选地)指示在对数据块进行编码时使用的编码参数值。
如上所述,虽然数据块的依从编码(即,参照前一块确定给定块的编码参数值)有利于编码效率,但是对于编码处理的并行化却是一个巨大阻碍,因为依从性在本质上是顺序的。
然而,申请人认识到,虽然编码数据块必须被构造成,使得解码器能够基于正确块序列顺序中前续块的编码参数值而正确地导出编码数据块的编码参数值,但编码处理本身不一定要限制为按照该相同的序列顺序对数据块进行编码。
另外,申请人认识到,可以通过对依从编码的顺序本质进行分解来实现编码处理的并行化。
在本发明中,对来自待编码的未编码数据块序列的成对多组块进行编码,以生产第一组编码数据块和第二组编码数据块。该第一组编码数据块和该第二组编码数据块包括视频数据的比特流顺序的连续数据块。第二组在比特流顺序上跟在第一组之后(并且优选地在比特流顺序上紧跟在第一组之后),并且,解码器参照第一组中数据块的编码参数值来确定第二组中数据块的编码参数值。
第一组块和第二组块的编码参数值之间的依从性在先前意味着,在开始对第二组未编码数据块的编码处理之前,必须对第一组未编码数据块进行编码。然而,在本发明中,在完成对第一组中的所有数据块的编码之前,确定在对第二组中的数据块进行编码要使用的编码参数值。
因此,本发明在不参照第一组中最末数据块的编码参数值的情况下,(例如在编码参数值确定操作中)确定例如第二组中的第一数据块的编码参数值。
然后,这使得能够在完成对第一组未编码数据块的编码之前,对第二组未编码数据块进行编码,由此有利于并行地对各组未编码数据块进行编码。
因此,由于打破了第一组块和第二组块之间的编码依从性,能够实现编码处理的并行化。
然而,虽然第一组块和第二组块之间的编码依从性被打破以便于并行编码,但申请人认识到,例如MPEG的视频编码格式仍要求参照前续块定义依从编码数据块的编码参数值。
这是因为,相应的解码器仍基于按照数据块原始序列顺序(而不是对数据块进行编码的顺序)的前续数据块的编码参数值,获取给定(已依从编码)数据块的编码参数值。例如,优选地,在本发明的编码处理使用所确定的编码参数值(绝对值形式)对第二组数据块中的第一数据块进行编码时,所得到的编码数据块将包括相对编码参数值,该相对编码参数值与第一组中的最末数据块的编码参数值一起,用来确定用于第二组块中第一数据块的编码参数值。
因此,本发明的一个重要特征是将“打破(broken)”的第一组数据块与第二组数据块之间的编码参数依从性基本上“修复(repaired)”以用于解码处理。换言之,“恢复”例如第二组中的第一数据块对第一组中最末数据块(特别是第二组中第一数据块的编码参数值对第一组中最末数据块的编码参数值)的依从性,使得解码器能够正确地重建编码数据。
然而,由于是在对第一组中最末数据块的编码结束之前确定第二组中数据块的编码参数值,因此当例如对第一组中的最末数据块进行编码时,系统不一定会对该数据块进行编码以包含如下的编码参数值,该编码参数值将使得解码器在对第二组中的数据块进行解码时针对第二组中的编码数据块使用所确定的编码参数值。
为了克服这一问题,本发明确保第一组数据块中的编码数据块指示如下的编码参数值,该编码参数值将使得解码器在对第二组中的数据块进行解码时,使用针对第二组中编码数据块的所确定的编码参数值。下面更详细地描述实现这一目的的多种技术。
要进行编码的未编码数据块序列可以是任何适当的和期望的这种序列,例如其代表待编码的一些或全部视频帧。在一个优选实施方式中,未编码数据块序列是代表待编码的整个帧的块序列。
为了确定编码参数值的目的,这些块被排序为待编码视频图像数据的比特流顺序(即,按照这些块在所使用的视频编码标准(格式)定义的比特流中出现的顺序)。(视频编码标准将定义如何参照编码比特流中较早块的编码参数值来导出编码参数值。)其可以是解码器对编码块进行处理的顺序(并且在一个优选实施方式中,数据块在数据块序列中的顺序是解码器对这些块进行处理的顺序),虽然这不是必须的,例如,解码器可以使用不同的解码顺序。因此,典型情况是,并且在一个优选实施方式中,该顺序是光栅(raster)扫描顺序。然而,可以根据需要使用其他的序列顺序。
在结束第一组中最末数据块的编码之前被确定了编码参数值的第二组数据块中的数据块优选地是第二组中的第一数据块。
在本发明中所考虑的数据块可以分别代表被处理视频图像(帧)的任何适当和期望的部分。(例如依赖于所使用的视频编码格式)它们优选地分别对应于被处理帧的给定区域(范围)。
因而,每个块优选地代表被处理帧的适当(优选地,不同)区域(范围),例如该帧中的多个像素和/或采样点。因此,各个数据块优选地是像素块(其中,特别地,每个像素块包括代表适当像素颜色值(例如,RGBA或YUV颜色值)的数据)。适当的数据块大小例如可以是每帧8×8、16×16或32×32个像素。在一个特别优选实施方式中,数据块是包括例如一帧的多个16×16采样(像素)的所谓“宏块(macroblock)”。
正在编码的未编码数据块序列可以被简单划分为单对两组未编码数据块,随后可以按照本发明的方式对该对未编码数据块组进行处理。另选地,可以从整个未编码数据块序列中的一些但非全部未编码数据块,合成将按照本发明的方式处理的两组未编码数据块。
然而,在一个特别优选实施方式中,将整个未编码数据块序列(例如其代表待编码视频帧)划分为多对第一组未编码数据块和第二组未编码数据块,随后按照本发明的方式(分别)处理每一对未编码数据块组。
在这种实施方式中,本发明优选地包括如下操作:针对已划分数据块序列(例如,帧)的多个第二组数据块中的一个,确定要用于对该多个第二组数据块中每一个的(优选地为第一)数据块进行编码所使用的编码参数值。
类似地,本发明进一步包括如下操作:确保该多个第一组中每一个的编码数据块指示如下的编码参数值,该编码参数值将使得解码器使用相应第二组块中(优选地为第一)编码数据块的所确定的编码参数值,对所涉及的该第二组块中的(优选地为第一)数据块进行解码。
在这些配置中,每一对第一组未编码数据块和第二组未编码数据块可以包括单独(即,不交叠)组的未编码数据块(从而具有如下效果,即各对第一组未编码数据块和第二组未编码数据块将与所有其他对的那些组未编码数据块独立)。
然而,在一个特别优选实施方式中,其中对给定未编码数据块序列要处理多对第一组未编码数据和第二组未编码数据,各自对的第一组未编码数据块和第二组未编码数据块交叠,使得前一对两组未编码数据块的第二组未编码块还形成(充当)待处理的下一后续对的第一组未编码数据块和第二组未编码数据块的第一组未编码数据块,而待编码的该后续对的第一组未编码数据块和第二组未编码数据块的第二组未编码数据块随后还用作来自未编码数据块序列的再后续对的第一组未编码数据块和第二组未编码数据块的第一组未编码数据块,以此类推。
换言之,在一个优选实施方式中,一组未编码数据块既可以充当前一对第一组未编码数据块和第二组未编码数据块的“第二”组未编码数据块,又可以充当后一对第一组未编码数据块和第二组未编码数据块的“第一”组未编码数据块(并且,这些组未编码数据块中的至少一些组是如此)。
因此,在本发明的一个特别优选实施方式中,未编码数据块序列被划分为三组或更多组未编码数据块,并且随后将未编码数据块序列被划分后的这些组未编码数据块处理为各对后续组未编码数据块,其中按照本发明的方式对各对未编码数据块组进行处理。
在这些(和其他)设置中,每组未编码数据块可以包括任何适当和/或期望数量的数据块。每组未编码数据块优选地包含相同数量的数据块,但根据需要这些组可以包括不同数量的数据块。
在一个特别优选的实施方式中,整个未编码数据块序列被划分为多个同样大小的未编码数据块组,随后按照本发明的方式将这些组未编码数据块优选地处理为各自未编码数据块组。
在一个特别优选的实施方式中,各组未编码数据块包括正在处理的帧中的单行(且整行)数据块(例如,宏块)。因而,本发明优选地按照本发明的方式逐行对待编码视频数据帧进行处理。
然而,可以根据需要,采用其他设置,例如各组未编码数据块包括一帧中一行的某些但非全部行。例如,根据需要,可以将被处理帧的各行划分为两组数据块,一组沿着该行紧跟在另一组之后。
这里应当理解的是,对于正在处理的未编码数据块序列中的第一对未编码数据块组(按序列顺序),该第一对中的第一组数据块之前将不会有未编码数据块序列中的任何前续组未编码数据块。因而,该未编码数据块序列的第一组未编码数据块中的第一编码数据块应当(并且优选地确实)包含可以对数据块序列中的后续数据块进行依从编码的编码参数值。此外,优选的是,在对该第一组未编码数据块进行编码之前确定该编码参数值,并且该组中的第一编码数据块包含对所确定的编码参数值的指示。
因而,对于被处理的未编码数据块序列(例如,帧)中的最末(最后)一对未编码数据块组,该最后一对中的第二组数据块后面将不跟随未编码数据块序列中的任何后续组未编码数据块。因此,无需确保未编码数据块序列的最后一对第一组未编码数据块和第二组未编码数据块的第二组数据块中的块在被编码时,指示适当的编码参数值,该编码参数值将使得解码器导出例如后续组编码数据块的第一数据块的所确定的编码参数值。
因而,对于待处理的任意“中间”对的未编码数据块组,即,紧挨着各对中第一组之前有前续组未编码数据块,且紧挨着各对中第二组之后有后续组未编码数据块,例如这种给定对未编码数据块组的第一组中的第一数据块将具有为它确定的编码参数值。类似地,还将(必须)确保各对中第二组数据块中的块在被编码时,指示适当的参数值,该适当的参数值将使得解码器导出例如下一后续组编码数据块中第一数据块的所确定的编码参数值。
按照本发明的方式处理的编码参数可以是任何适当和/或期望的编码参数。在一个优选实施方式中,编码参数是表示用于一个块的编码处理的一个方面的参数。例如,在一些实施方式中,编码参数是在对数据进行编码和/或对编码进行控制时使用的参数。在一个优选实施方式中,编码参数涉及在对数据块进行编码时所采用的压缩方式,并且优选的是控制(并指示)所采用的压缩的水平。
在一个特别优选实施方式中,编码参数是量化参数(QP)(尤其是在预定视频编码格式为MPEG视频编码格式(例如H.264)的实施方式中)。
可以按照任何适当的或期望的方式确定(选择)用于给定组块的第一块的编码参数值。
在一些实施方式中,基于所涉及的数据块的特性来确定编码参数值。例如,可以基于考虑该块对于视频质量而言有多重要来确定编码参数值。例如,位于一帧中央的数据块通常对于图像质量更加重要,而在大多数情况下,使用与更低压缩率有关的编码参数值。
在一些实施方式中,可以基于数据块的内容(例如,原有像素数据)来确定编码参数值。在优选实施方式中,基于例如数据块的内容的估计复杂度和/或期望比特率来确定编码参数值。在特别优选实施方式中,在查找表中使用数据块的估计复杂度和期望比特率来确定要使用的编码参数值。这里应当理解的是,例如基于(如与率失真优化有关的)先前实验或分析的结果,将查找表预先构造成针对给定复杂度和比特率的适当编码值。
在其他实施方式中,正在编码的“第二”组数据块的例如第一块的编码参数值是基于先前数据块序列(例如,优选地,形成先前帧的数据块序列)的特性。例如,在某些情况下,待显示的连续帧之间数据块的内容从而该块的期望编码参数值不会有显著的改变,因此使得能够基于例如用于先前编码帧的相应块的编码参数值来确定要使用的编码参数值。
在一个实施方式中,基于当前数据块序列中的前续块的特性确定编码参数值。例如,可以基于选择用于当前数据块序列(例如,当前帧)中的前续块的编码参数值,确定编码参数值。
在一些实施方式中,数据块的编码参数值可以基于可用于该块所涉及数据块序列的剩余比特数的函数来确定。例如,编码参数值可以与该序列的剩余比特数的相反数(inverse)成线性关系。
申请人认识到,可以仅用有限容量就可以表示编码数据块中的编码参数值(例如,这是因为存在对编码数据块能够指示的最大相对编码参数值的限制)。因此,在优选实施方式中,将给定组数据块的例如第一块的编码参数值选择为,使得能够在单个编码块中指示任意连续数据块的编码参数值之(例如,最大)差(亦即,使得能够在单个编码块中指示可以包含在编码数据块中的(例如,最大)相对编码参数值)。
虽然如上所述,本发明要求,至少针对所考虑的每个“第二”组数据块中的例如第一数据块确定要使用的编码参数值,但在一个优选实施方式中,还针对每个“第一”组未编码数据块的例如第一块执行上述操作。换言之,在一个特别优选的实施方式中,针对数据块序列(例如,帧)所划分成的所有组(每组)未编码数据块,确定要用于对一组未编码数据块中例如第一未编码数据块进行编码的编码参数值。
因此,在一个优选实施方式中,将未编码数据块序列划分为多组未编码数据块,并针对各组未编码数据块中例如第一数据块确定编码参数值。总会出现这些对第一组未编码数据块和第二组未编码数据块交叠的情况(使得给定的一组未编码数据块既充当一对未编码数据块组的第二组未编码数据块,又充当另一对未编码数据块组的第一组未编码数据块)。
使用所确定的编码参数值优选地随后对各组中的例如第一未编码数据块进行编码。
相应地,在一个优选实施方式中,对于位于正在编码的数据块序列的另一组块之前的各组块,确保存在指示如下编码参数值的编码数据块,该编码参数值将使得解码器在对(例如)紧随其后的一组块中的(例如)第一数据块进行解码时,使用该(例如)紧随其后的一组块中的(例如)第一编码数据块的所确定的编码参数值。
可以按任何期望和适当的顺序和定时来确定所考虑的这些组未编码块的各个(例如,第一)块所使用的编码参数值。
在一个优选实施方式中,在开始对序列中任意数据块进行编码之前,(预先)执行对各组数据块的例如第一数据块的编码参数值确定,作为预处理操作。因而,在执行对这些组数据块的编码处理之前,确定所考虑的各组数据块的例如第一数据块的编码参数值。
在另一个实施方式中,并不预先对所有对数据块组执行编码参数值确定操作,但对要开始进行编码的各组数据块执行编码参数值确定操作。在该实施方式中,即时(on thefly)执行编码参数值确定操作,其中仅对待编码的一组(例如,第一)块的编码参数值确定一次。因此,针对要依次编码的这些组未编码数据块执行编码参数值确定操作。
编码参数值可以由视频编码系统的任何适当和期望的部件或元件(例如,处理器)来确定,例如视频编码系统的编码单元。
如果该系统包括多个编码单元,则编码参数值确定操作可以仅由这些单元中的一个执行,或者编码参数值确定操作可以由多个(例如,全部)编码单元分布式地(例如)并行执行。
一旦确定了要用于给定组数据块的例如第一块的编码参数值,可以优选地使用所确定的编码参数值对该组中的例如第一数据块进行编码。
可以使用任何适当和期望的编码类型对该组中的例如第一数据块进行编码。在一个优选实施方式中,其被编码为能够指示相对编码参数值的块类型(虽然这不是必须的,如下进一步所述)。
因此,在一个优选实施方式中,解码器要使用的相对编码参数值包含在(第二)组数据块的例如第一数据块的编码后的版本中,其中解码器使用该相对编码参数值导出在对数据块组中的例如第一块进行解码时要(与前续块中编码数据块的编码参数值一起)使用的编码参数值。
在这些配置中,编码数据块中包含(指示)的相对编码参数值可以是能够被解码器使用来导出在对该数据块进行解码时所用的编码参数值的任意适当和期望的相对编码参数值。
在优选实施方式中,组的给定(例如第一)块的相对编码参数值是基于对前一组的最末块的编码参数值的估计。在优选实施方式中,该估计是基于已经确定用于前续数据块组中(优选地为第一数据块)的数据块的编码参数值。
因此,在优选实施方式中,一组数据块的给定(例如第一)块中包含的相对编码参数值,是基于确定要用于对该块进行编码的编码参数值和已经确定用于被编码序列的(紧挨)前续组块中数据块的编码参数值。
在一个特别优选的这种实施方式中,如下所述,包含在一组数据块的给定(例如第一)块中的相对编码参数值优选地是基于确定用于该块的编码参数值和已经确定用于被编码块序列的(紧挨)前续组块的第一块的编码参数值。例如,相对编码参数值可以简单地表示确定用于该块的编码参数值与已经确定用于序列中(紧挨)前续组块的第一块的编码参数值之差(在一个优选实施方式中,正是这样做的)。
随后,被编码的该组块中的后续数据块可以按正常方式编码,例如根据该组中的第一数据块,和/或使用确定用于该组中第一块的编码参数值。该编码处理优选地逐块前进经过一组未编码数据块,顺次对各块执行编码处理。
可以按任何期望和适当方式执行对数据块组的实际编码。例如,可以简单地依次对数据块组进行编码。
然而,如上所述,本发明特别有利于编码操作的并行化,因此在一个特别优选实施方式中,并行地对数据块序列所划分成的数据块组进行编码。因此,在一个优选实施方式中,对于一对给定的第一组未编码数据块和第二组未编码数据块,优选的是,该对第一组未编码数据块和第二组未编码数据块将至少部分地并行(即,同时在不同编码单元上)进行编码。对于未编码数据块序列的至少一对第一组未编码数据块和第二组未编码数据块,优选地是这种情形。
相应地,在一个优选实施方式中,与对第二组未编码数据块的数据块进行的编码并行地执行对第一组未编码数据块的各未编码数据块的编码处理。
可以按任何适当和期望的方式实现和配置编码的并行化。例如,如果存在并行工作的两个编码单元,则可以将数据块序列中的交替组数据块分配给这两个编码单元中的相应单元。在多于两个编码单元的情况下,可以根据需要和期望,将这些数据块组分布在多个编码单元之间进行编码。
编码操作本身可以由整体视频处理系统的任意期望和适当部件或元件来执行。优选的是,该系统包括用于该目的的一个或多个编码单元,每个编码单元可以操作用于按一种或多种给定的视频编码格式对“原始”视频数据进行编码。如上所述,该系统优选地包括可以操作用于对多组未编码数据块并行编码的多个编码单元。为此,可以设置任意期望数量的编码单元,例如,两个编码单元,至多设置例如与给定未编码数据块序列(例如,帧)将划分成的组的数量一样多的编码单元。
该系统的编码单元可以根据需要配置和设置,例如,设置在单个处理器中,或者设置为多核系统中的独立处理核心。
如上所述,正在编码的给定一对数据块组的第二组数据块中例如第一数据块的编码后的版本包括相对编码参数值,解码器使用该相对编码参数值导出在对第二组中的数据块进行解码时使用编码参数值。解码器将使用第二组中的例如第一数据块的相对编码参数值,并参考该对中第一组的最末编码数据块的编码参数值,导出在对第二组中的例如第一数据块进行解码时使用的编码参数值。
然而,申请人认识到,在编码处理并行化的情况下,第二组中的第一数据块的编码很可能在第一组中的最末数据块结束编码之前完成。
结果,第二组中第一数据块的编码后的版本中包含的相对编码参数值将不基于前续组块的最末块的已知编码参数值,因此,不一定能够参照前续第一组中最末编码数据块的编码参数值并使用第二组中的第一编码数据块中指示的相对编码参数值正确地确定(用于对第二组中的第一数据块进行编码的)所确定的编码参数值。
为了解决这一问题,本发明的操作确保待编码的给定对数据块组的第一组中的编码数据块指示如下的编码参数值,该编码参数值使得解码器例如在使用第二组中的例如第一编码数据块中包含的相对编码参数值来导出在对第二组中的例如第一数据块进行解码时使用的编码参数值时,导出该对数据块组的第二组中的例如第一编码数据块的(正确的)所确定的编码参数值。
换言之,本发明确保,在解码器开始处理(解码)第二组中的第一编码数据块之前向解码器指示的最末编码参数值是适当的值,该适当的值用于使得解码器导出第二组中第一编码数据块的所确定的编码参数值。
随后,解码器遵循根据重建编码视频数据时所选择的视频编码格式的比特流顺序,确定在对第二组块的第一块进行解码时用于编码参数的正确值(从而能够对编码数据正确地解码)。
为此,第一组的编码数据块中指示的编码参数值应当并且优选地是如下的值,该值在例如与第二组的例如第一数据块的编码后的版本中包含的相对编码参数值一起使用时,将使得解码器导出第二组的例如第一编码数据块的(正确的)所确定的编码参数值。因此,第一组的编码数据块中指示的编码参数值应当依赖于解码器如何基于所指示的编码参数值确定要使用的编码参数值。
例如,在解码器通过将第二组的例如第一数据块中指示的相对编码参数值与前一块中使用的编码参数值组合起来(例如,相加)而确定要用于第二组的例如第一数据块的编码参数值的情况下,应当并且优选地确保第一组中的块指示如下的编码参数值,亦即,例如,第二组中的第一数据块的所确定的编码参数值减去第二组的第一数据块中指示的相对编码参数值。
可以按任何适当和期望方式确保第一组块中的编码数据块指示合适的编码参数值。
在一个优选实施方式中,通过将第一组编码数据块中的编码数据块设置为指示合适的编码参数值来实现。优选地,通过在编码块中指示将得到该块的合适编码参数值的相对编码参数值来实现。
在该情况下,优选地还使用所指示的编码参数值对第一组中的数据块进行编码。这可以(并且在一个优选实施方式中确实)包括:如果无需指示要与第二组块中的例如第一块一起使用的编码参数值(即,将要与第二组块中的例如第一块一起使用的编码参数值指示为编码器简单地基于数据块的内容和期望比特率要用于该块的值),则使用如下的编码参数值对该块进行编码,该编码参数值不同于要用于该块的编码参数值或者由要用于该块的编码参数值修改而来。
(另一方面,如果编码方案使得编码块能够指示编码参数值而无需真正使用所指示的编码参数值对数据块进行编码,则可以根据需要使用不同的编码参数值对该块进行编码。)
被设置指示合适的编码参数值的数据块可以是第一组数据块中的任何适当和期望的数据块。中一个优选实施方式中,将第一组数据块中的最末数据块设置为指示合适的编码参数值。中该情况下,本发明将确保从解码器角度所涉及的该对数据块组的第一组中的最末数据块与第二组的第一数据块之间的正确依从性。
在其他实施方式中将第一组中并非该第一组中最末数据块的给定的优选选择或期望的数据块设置为指示合适的编码参数值。这中如下的配置中特别有利,其中该组中后续数据块的编码参数值是或者可以是各块不变的(例如对于块的内容中块之间变化不是特别大的块序列而言)。例如,可以将同一个编码参数值应用于整组块。在一个优选的这种配置中,将所涉及的该对数据块组的第一组数据块中的第一数据块设置为指示合适的编码参数值。
在一个实施方式中,在编码处理本身期间执行将第一组块中的一个(或多个)块设置为指示期望的编码参数值的操作。然而,其同样可以独立于编码处理而作为后处理操作来执行。在这种配置总,首先对至少一对第一组数据块和第二组数据块进行编码,但随后对所得到的编码数据块(即,所得到的比特流)进行处理以将第一组中的编码数据块设置为指示合适的编码参数值,该合适的编码参数值将使得解码器导出第二组的例如第一编码数据块的所确定的编码参数值。
虽然该确保步骤作为后处理操作执行,但在一些情况下优选地还可以或者替代地(并且优选的是替代地)将第二组的例如第一数据块的编码参数值设置为合适的值,该合适的值使得解码器导出第二组的第一编码数据块的所确定的编码参数值(因为前一组的足膜块的编码参数值是已知的后处理)。在一个优选实施方式中,这即是所做的操作。(然而,发明人认识到,并非总是能够这样做,因为在单个编码块中不一定能够指示在某些情况下需要包含在编码数据块中的相对编码参数值。)
上述配置可以简单操作为,将第一组中的数据块设置为指示合适的编码参数值(在一个实施方式中,确实是这样做的)。因此,例如,该处理可以总是将“第一”组的最末块编码为指示期望的编码参数值。
然而,申请人认识到可能是如下情形:在任何情况下使用(并因此而指示)第一组中的数据块指示的期望编码参数值对第一组块的数据块进行编码。在这种情况下,第一组中数据块的编码后的版本已经指示了合适的编码参数值,而无需进一步“强制”第一组块中的数据块再指示。
因而,在一个优选实施方式中,首先检查第一组中的数据块是否已经指示了合适的编码参数值,然后仅当第一组中的数据块并未指示合适的编码参数值时,将第一组中的数据块设置为指示合适的编码参数值。
在该实施方式中,“确保”操作因此而包括:确定(例如,在决策阶段)第一组中数据块的编码参数值是否使得解码器导出该对组的第二组中例如第一编码数据块的所确定的编码参数值(例如使用第二组中第一数据块的相对编码参数值),如果确定第一组中数据块的编码参数值将不使得解码器导出第二组中例如第一编码数据块的所确定的编码参数值,则将第一组中数据块设置为指示合适的编码参数值(但是,如果确定第一组中数据块的编码参数值将使得解码器导出第二组中例如第一编码数据块的所确定的编码参数值,则不将第一组中(另一)数据块设置为指示合适的编码参数值)。
可以按照任何适当或期望的方式完成该确定操作,例如通过跟踪用作被编码第一组块的编码参数值,并确定何时(以及是否)是要用于第二组块的例如第一块的期望值。
因此,在一个优选实施方式中,确保步骤包括:有条件地修改第一组中数据块的编码参数值,使得确保第一组中的数据块将指示如下编码参数值,该编码参数值将使得解码器导出第二组中例如第一数据块的所确定的编码参数值。可以按任何适当和期望的方式(例如,在编码处理本身期间,或者与编码处理独立并作为后处理操作)来实现对第一组中数据块的编码参数值的修改。
将理解的是,从以上可以看出,在本发明的优选实施方式中,对于给定一对第一组编码数据块和第二组编码数据块,确定将用于该对的第二组的第一数据块的编码参数值。第二组数据块的第一编码块以及(该对的)前续第一组编码数据块中的编码块(例如,第一或最末块),将各自指示相应的相对编码参数值,其中这两个相对编码参数值将选择和设置为使得它们共同(与已经用于或者块序列中前续块所指示的任何前续编码参数值一起)使得解码器导出第二组块中第一块的所确定(选择)的编码参数值。
此外,第一组块中编码块所指示的合适的相对编码参数值或者是作为使用相应编码参数值进行编码的该组中块的结果而得到,或者是通过“强制”第一组块中编码块指示合适的相对编码参数值(并优选地使用期望的对应编码参数值)而得到。
给定一对第一组数据块和第二组数据块中的第一组数据块的给定编码数据块设置为向解码器指示特定编码参数值从而确保解码器将正确导出第二组中例如第一数据块的所确定的编码参数值,随后用于对第一组数据块中的数据块进行解码的编码类型(块类型,例如宏块)使得中编码块中指示期望的编码参数值(例如,相对编码参数值),随后可以简单实现该处理。
然而,申请人认识到,在希望将第一组中的编码数据块设置为指示编码参数值的一些情况下,该块的(原始)希望的编码类型(块类型)可能不支持指示合适的编码参数值。
例如,申请人认识到,一些编码块类型不支持向解码器指示编码参数值的编号,例如,由于它们不包含(相对编码参数值)字段。
例如,许多视频编码格式使得并未相对于所涉及的块依从的前续基准块发生变化的数据块能够按非常有效的方式编码,这不允许向解码器指示其他的编码参数值。典型地,使用如下编码类型对这种数据块进行编码,即该编码类型使用与“完全”编码类型中所用的相比缩减的(在某些情况下不同的)句法单元集合,其中,该不同的句法单元集合不包括支持向解码器指示编码参数值的句法单元。例如,在H.264视频编码格式中,使用“跳跃”句法单元将这种数据块(或这种数据块的序列)编码为“跳跃块类型,其中通常除了跳跃指示以外并未编码其他信息。(其他编码格式具有相同的句法单元。)
所谓“跳跃块”不能向解码器指示编码参数值。而是,解码器将读取跳跃指示,并响应于此将来自数据块序列中前一块的编码数据用作该跳跃指示所涉及的块的数据。申请人认识到,在需要设置为合适编码参数值的数据块例如是“跳跃”块的配置中,这可能会导致编码问题。
在需要设置为合适编码参数值的数据块例如是“跳跃”块的情形中,在某些情况下,通过将该序列中前续数据块设置为指示合适的编码参数值,仍能够确保第一组中的数据块指示如下的编码参数值,该编码参数值将使得解码器导出第二组中例如第一数据块的所确定的编码参数值。然而,这并非总是能够如此,甚至有可能是无法实现的(例如中该组中的每个数据块都是“跳跃”块的情况下)。
在一个特别优选的实施方式中,将第一组中的编码数据块设置为指示如下编码参数值(该编码参数值使得解码器导出第二组中例如第一编码块的正确的所确定的编码参数值)的处理可以(并且优选地确实)包括(如果有必要):如果无需指示要用于第二组块中例如第一块的编码参数值,则使用与用于该块的编码类型不同并且/或者由它修改而来的编码类型对要如此设置的第一组中的块进行编码。-
相应地,如果在后处理中第二组的例如第一数据块的编码参数值设置为一个合适的编码参数值,则在一个特别优选的实施方式中,该设置处理可以(并且优选地确实)包括:(如果有必要)如果无需指示编码参数值,则使用与用于该块的编码类型不同并且/或者由它修改而来的编码类型对要如此设置的第二组中的例如第一块进行编码。
例如,并且优选地,上述配置可以(并且优选地确实)包括:将要被编码为“跳跃”块的块编码为“非跳跃”块,以使得所编码的块能够向解码器传递期望的编码参数值。
在编码数据块的编码类型是从用于该块的编码类型修改而来的这些配置中,优选地,所使用的另选编码类型是足以能够指示期望编码参数值但能够对该块有效编码的编码类型(例如,包括相对编码参考值的编码类型),并且优选地是尽可能有效地对该块有效编码的编码类型(例如,优选地,尽可能接近“跳跃”编码并同时仍能够向解码器指示期望编码参数值)。因此,例如,在可能的情况下,优选地使用并非“完全”编码类型(其能够将编码参数值传递到解码器)的编码类型,而不是简单地对该块使用“完全”编码类型。
在所使用的另选编码类型是使用与用于该块的句法单元集合不同的句法单元集合的编码类型的优选配置中,其中该不同的句法单元集合包括能够支持指示合适编码参数值的至少一个句法单元。
因此,在一个优选实施方式中,确保第一组中的数据块指示适当的编码参数值的处理可以并且确实包括强制“跳跃”块成为“非跳跃”块,以提供指示(改变后)编码参数值的编码数据块。在例如决策阶段例如已确定第一组中的要求设置为合适编码参数值的数据块实际上是跳跃块,从而可以实现上述操作。
虽然主要参照在给定组的第一数据块的编码后的版本中包含相对编码参数值描述了本发明的上述实施方式,但这不是必须的。
以上描述的技术和特征同样适用于如下配置,在该配置中使用不支持数据块的编码后的版本中包含相对编码参数值的编码类型对第二组数据块中的第一块进行编码。这可能是例如给定组的第一数据块可以(并且确实)编码为跳跃块的情形。
在该情形中,其中给定组的第一数据块被确定编码为跳跃块,并且仍针对该块确定编码参数值,但该块的编码后的版本将不包含与所确定的编码参数值有关的任何信息。而是,编码将是跳跃指示。
在该情况下,解码器响应于该跳跃指示,将块序列中前一块的编码参数值用作要用于对该跳跃指示涉及的块进行解码的编码参数值。因此,仍需要确保例如直接前续组(例如第一组)中的编码数据块指示如下的编码参数值,该编码参数值将使得解码器在对第二组中例如第一块进行解码时导出第二组的例如第一编码数据块的所确定的编码参数值。
在该情况下,应当确保在解码器开始对第二组中的例如第一编码数据块(跳跃块)进行处理之前向解码器指示的最末编码参数值是第二组中例如第一编码数据块的所确定的编码参数值。例如,可以将第一组中的编码数据块设置为指示第二组中第一编码数据块的所确定的编码参数值(并且在一个优选实施方式中确实是这样做的)。
这可以(并且在一个优选实施方式中确实)包括:(如果有必要)如果无需指示用于第二组块中例如第一块的编码参数值,则使用与用于该块的编码类型不同并且/或者由它修改而来的编码参数值(即,例如,与编码器简单地基于数据块的内容和期望比特率用于该块的值不同的值)对第一组中的数据块进行编码。申请人认为,改变视频数据的块的所确定的编码类型以向解码器传递信息的思想本身是新颖和有创造性的。
因此,根据本发明的第三方面,提供了一种对视频图像数据进行编码的方法,该方法将包括未编码数据块序列的视频图像数据编码为视频编码格式的编码数据块序列,该方法包括以下步骤:
针对该序列中的至少一个数据块:
选择要用于对所述数据块进行编码的不同编码块类型,以使得能够将要传递到解码器的信息包含在所生成的相应编码数据块中。
根据本发明的第四方面,提供了一种视频图像数据编码装置,用于将包括未编码数据块序列的视频图像数据编码为视频编码格式的编码数据块序列,该装置包括处理电路,该处理电路构造成:
选择要用于对该序列中数据块进行编码的不同编码块类型,以使得能够将要传送到解码器的信息包含在所生成的相应编码数据块中。
本领域技术人员将会理解的是,本发明的这些方面和实施方式可以(并且优选地确实)包括(根据需要)此处描述的本发明的任意一个或更多个或全部特征。因此,例如,该至少一个数据块的编码类型优选地从被编码为“跳跃”块的块改变为被编码为“非跳跃”块的块,并且/或者将要传递到解码器的信息优选地是编码参数值的改变,例如,量化参数值的改变。
在选择了该块的不同编码类型时,该块随后应当(并且优选地)被编码为所选择的编码类型,以向解码器传递信息。
在本发明的这些放和实施方式的优选实施方式中,数据块的编码包括:确定在对未编码数据块进行编码时要使用的编码块类型,以生成相应的编码数据块;并且
使用与未编码数据块的所确定的编码块类型不同的编码块类型对未编码数据块进行编码以生成相应的编码数据块,从而将要传递到解码器的信息包含在所生成的相应编码数据块中。
未编码数据块的编码类型的改变(使用与所确定的编码块类型不同的编码块类型)优选地响应于识别出,需要传递(优选的是特定)(优选地是所选择的)信息到解码器,并且/或者响应于识别出未编码数据块的初始确定的编码块类型不能将所需信息传递到解码器。
因此,本发明的这些方面和实施方式优选地包括:确定数据块的初始编码块类型是否能够将所需信息传递到解码器;以及
如果确定该数据块的初始编码块类型不能将所需信息传递到解码器;
则选择并使用一个不同的编码块类型对能够将所需信息传递到解码器的块进行编码。
如果解码器具有被构造成确定在对未编码数据块进行解码时使用的块编码类型的模块,则在一个优选实施方式中,则同样在该“决策”阶段实现对编码类型的(潜在)改变。这可能要求少量的附加硬件和软件代码。
在优选实施方式中,该不同编码块类型使用与用于该块的句法单元集合不同的句法单元集合,其中该不同的句法单元集合包括能够支持向解码器指示期望信息的至少一个句法单元。
虽然以上主要参照给定未编码数据块序列(例如,代表要编码的视频帧)的处理描述了本发明,但本领域技术任意将理解的是,本发明能够(并且在优选实施方式中)应用于连续的待编码数据块序列,例如优选地,应用于待编码视频帧序列中的连续帧(各个帧)。
本发明可以实现在任何适当系统中,例如适当配置的基于微处理器的系统。在一个实施方式中,本发明实现在基于计算机和/或微处理器的系统中。
该系统可以包括任何适当和期望的部件或元件以使得能够按本发明的方式工作,例如,一个或更多个编码单元(如上所述)(一个或更多个视频编码单元),适当的一个或多个处理器(用于执行编码或其他操作),以及用于存储所需数据的存储器(例如未编码视频数据和随后的编码数据块)。
在对视频数据编码时使用的实际编码格式可以是任何适当和期望的这种格式(其至少使用在编码数据流中指示的利用了相对值的编码参数),例如MPEG和H.264。
在一个特别优选的实施方式中,本发明进一步包括:将编码处理的输出构造成预定视频编码格式(随后适于解码器进行解码)的单个连续比特流。这例如可以通过将各自编码单元的输出在比特级或字节级“拼接(stitch)”为单个连续数据流的适当的“拼接”引擎来执行。
在对若干个第一组未编码数据块和第二组未编码数据块进行编码后该操作可以作为批量操作来执行,但在一个实施方式中,在生成编码组数据块时执行该操作。换言之,例如拼接引擎的操作优选地与编码单元的操作集成,使得两组未编码数据块一旦进行了编码并由编码单元输出,这些结果就被拼接在一起成为单个连续比特流(以此类推)。
编码的数据块(编码数据的比特流)随后可以根据需要进行处理以供将来使用,例如通过适当存储和/或传送到解码器进行解码。解码器随后可以使用包含在编码数据中的相对编码参数值按正常方式对编码视频数据进行解码,以导出在对编码数据进行解码时使用的合适的编码参数值。
本发明的多种功能可以按任何期望和适当的方式执行。例如,本发明的功能可以根据需要在硬件或软件中实现。因此,例如,除非另有相反指示,本发明的多种功能元件和“装置”可以包括可操作用于执行多种功能的适当的一个或多个处理器、一个或多个控制器、功能单元、电路、处理逻辑、微处理器配置等,例如适当的专用硬件元件和/或能够编程从而以期望方式操作的可编程硬件元件。
此处还应当注意,本领域技术人员应当理解的是,本发明的多种功能等可以复制和/或在给定处理器上并行执行。同样地,多种处理阶段可以根据需要共享处理电路等。
如果使用执行上述特定功能所需的任何硬件,则视频处理器可以包括视频处理器所包含的任何一个或更多个或全部常用功能单元等。
本领域技术任意还应当理解的是,本发明的所有描述的实施方式可以(并且在一个实施方式中确实)(根据需要)包含此处描述的任何一个或更多个或全部特征。
根据本发明的方法可以至少部分地使用例如计算机程序的软件来实现。因此,可以看出,当从其他实施方式的角度来看时,本发明提供了当安装在数据处理器上时特别适于执行此处描述的方法的计算机软件,当程序元件运行在数据处理器上时包括用于执行此处描述的方法的计算机软件代码部分的计算机程序单元,以及当程序运行在数量处理系统上时包括使用执行此处描述的一个或多个方法的所有步骤的代码的计算机程序。数据处理器可以是微处理器系统、可编程FPGA(现场可编程门阵列)等。
本发明还可以扩展到包括如下软件的计算机软件载体,该软件在用于包括数处理器的操作图形处理器、呈现器(render)或微处理器系统时使得与所述数据处理器、处理器、呈现器或系统相结合执行本发明的方法的步骤。这种计算机软件载体可以是物理存储介质,例如ROM片、CD ROM、RAM、闪存或盘,或者可以是信号,例如通过线传播的电信号、光信号或者到卫星的无线电信号等。
可以进一步理解的是,并非本发明的方法的所有步骤都需要由计算机软件来执行,因此从本发明的更广泛的实施方式来说,本发明提供了计算机软件,这种软件安装在计算机软件载体上用于执行此处描述的方法的步骤的至少一个步骤。
因而,本发明适于实现为与计算机系统一起使用的计算机程序产品。这种实现可以包括一系列计算机可读指令,其固化在例如计算机可读介质的有形、非瞬时介质上的,例如盘、CD ROM、ROM、RAM、闪存或硬盘。其还可以包括如下的一系列计算机可读指令,该计算机可读指令经由调制解调器或者其他接口设备,通过有形介质(包括但不限于光或模拟通信线)或者以无形方式使用无线技术(包括但不限于微波、红外或其他传输技术)发送到计算机系统。该系列计算机可读指令具体实现了前文所述功能的全部或部分。
本领域技术人员将理解,这种计算机可读指令可以用许多编程语言编写,从而与许多计算机体系结构或操作系统一起使用。此外,这种指令可以使用现有或未来的任何存储技术(包括但不限于半导体、磁或光)存储,或者使用现有或未来的任何通信技术(包括但不限于光、红外或微波)传输。可以设想,这种计算机程序产品可以分布为具有附带印制或电子文档的可移除介质(例如,压缩打包软件),利用计算机系统预加载到例如系统ROM或固定盘上,或者通过网络(例如因特网或万维网)从服务器或电子公告牌分发。
附图说明
下面,仅作为例子并参照附图对本发明的一些优选实施方式进行描述,在附图中:
图1示意性例示了MPEG格式的编码像素块的序列,其中许多编码块包括相对QP值;
图2示意性例示了可以被编码的两行图像;
图3示意性例示了如何将两行图像分配给彼此并行工作的单独编码单元;
图4示意性例示了如何可以在两个编码单元之间分配视频图像数据帧以及其中必须打破依从性(dependency)以使得两个编码单元能够并行工作的特定像素块。
图5示意性例示了由本发明的一个实施方式中的视频编码装置执行的步骤;以及
图6示意性例示了根据本发明的一个实施方式的视频编码装置。
在附图中,尽可能用相同的附图标记表示相同的特征。
具体实施方式
此处参照附图描述的实施方式是本发明的示例性实现,其中,根据例如H.264之类的MPEG视频编码格式中的一种对未编码的像素数据块进行编码,并且其中,所使用的编码参数是量化参数(QP)。
图1示意性例示了编码像素块的序列。该序列中的第一像素块被独立地编码,并且其编码参数值(例如,在本例中,为量化参数QP)在该数据块(在本例中以绝对值项进行编码,虽然这并非是必须的)中指示。然而,后面的像素块分别参照前面的像素块进行编码,其中,针对各个像素块的QP值参照前一块的值被依从编码为相对值。视频图像数据的整个帧(或其一部分)可以被编码为如下序列:在整个帧中块的顺序遵循我们所熟悉的光栅扫描模式(即,按照解码器将对数据块进行处理的顺序)。
在图1中示意性例示的QP依从性的顺序本质展示了编码任务并行化的难点,这是因为,为了对任意给定的依从编码像素块进行编码,在原理上各先前像素块必须已经进行了编码。
图2示意性例示了视频图像数据的帧中的两个行10。本领域技术人员熟悉的是,对给定像素块的编码通常包括对运动向量和残余值等以及要用于该块的QP值进行编码。如果第二行中的第一块30相对于第一行中的最末块20(如虚线箭头所示)要被依从编码(结果减少最终编码图像的数据大小),则在现有编码系统中,块20必须在块30之前编码。此外,如果块20本身是依从编码块,则依从性链(chain of dependencies)引导回到第一行的第一像素块40。
当希望对两行并行地进行编码时,这会导致困难。下面参照图3进一步对此进行说明。
图3例示了已经分配给彼此并行工作的单独编码单元(第一编码单元和第二编码单元)的两行未编码像素块。现有技术中已知,编码处理本身通常在第一行的块和第二行的块之间交织进行,例如,首先处理行1的前两个块,然后是行2的第一块,行1的第三块,行2的第2块,等等。(为了强调这一点,在图3中各块的编号表示对块进行处理的顺序。)
(此处应当理解的是,图3中所示的编码顺序仅是出于例示的目的。)出于依从性处理的目的,并行编码器按照与上面讨论的连续编码器的编码顺序类似的方式工作(因此开始对块进行编码的顺序大致如所示,当然,对这些块的处理是并行的)。
如图3所示,行2的第一块(块2)在行1的块3、5、7、9和11之前编码,这意味着第二编码单元并不知晓在对行2的块2进行编码时要包括的正确QP值(这是因为块2要使用的正确QP值将依赖于行1的最末块使用的QP值,而行1的最末块使用的QP值尚未确立)。
然而,申请人认识到,这些依从性并不妨碍对第一视频数据块和第二行视频数据块进行编码的并行处理。
在本实施方式中,通过如下步骤实现并行处理:执行编码参数值确定操作,以在对行1的最末块进行编码之前确定用于行2的第一数据块的QP值(并因此而确定行2的下一数据块所依赖的QP值),随后确保第一行中的编码数据块指示如下的编码参数值,该编码参数值使得解码器在对第二行中的第一数据块进行解码时,对第二行中的第一编码数据块使用所确定的编码参数值。如果需要,则这包括如下步骤:修改行1中的编码数据块中的一个,例如通过改变编码模式(如从跳跃模式改变为“正常”模式)。
(应当理解的是,编码参数值确定操作还可以相对于第一行中的第一未编码像素块来执行,以确定在对第一行中的第一未编码像素块进行编码时使用的QP值。)
在图3设想的实施方式中,编码参数值确定操作是作为预处理步骤执行,其中,视频编码装置在开始由两个编码单元(一个编码单元处理行1,另一个编码单元处理行2)执行的主编码处理之前首先确定要用于块2(图2中的块30)的QP值。随后,对行2进行编码的编码单元可以使用相对QP值对块4、6、8相对于块2进行编码,另一个编码单元对行1进行处理。
同样地,在第二编码单元使用针对第二行中的第一块确定的QP值对第二行中的第一数据块进行编码时,其在编码数据块中也包括适当相对编码参数值,该适当的相对编码参数值由解码器使用以确定对所涉及的块进行编码所使用的编码参数(QP)值。
该相对编码参数(QP)值可以是任何期望的和适当的值,因为该处理将确保第一组中的编码数据块指示如下的编码参数(QP)值,该编码参数值将使得解码器在对第二组中的第一数据块进行解码时,导出针对第二组中的第一编码数据块的所确定的编码参数(QP)值。因此,无论在第二组的第一编码数据块中包含怎样的相对编码参数值,该处理都将对第一组编码块中的块进行配置,从而确保解码器在对所涉及的块进行解码时使用所确定的编码参数(QP)值(下面将进一步对此进行说明)。
虽然图2和图3示出了单一对的未编码视频图像数据组,但此处描述的原理可以应用于整个帧的视频图像数据,例如,可以将该帧的各相应对的行视为随后将按照本发明的方式进行处理的一对第一组未编码数据块和第二组未编码数据块。
图4示意性示例示了这一情形,并且示出了如何将未编码视频图像数据的帧的多行划分为将要在例如两个编码单元之间进行分配(对编码单元分配该帧的交替行)的相应对的第一组(行)视频数据和第二组(行)视频数据。
如图4中所示,该帧被划分为多对第一行像素块和第二行像素块。第一编码单元可以对该多个第一行进行编码,第二编码单元被构造成执行对该多个第二行的编码处理。(应当理解的是,虽然基于视频图像数据的帧的多行像素块执行对待编码像素块的细分(sub-division),但不一定要按照这种方式对编码处理并行化。例如,可以将图像帧中的像素块任意细分为多对第一组未编码像素块和第二组未编码像素块以分配给编码单元,然而,优选的是,对这些块在逻辑上和/或根据所使用的编码格式进行细分。
图4还示出了各行中的第一像素块的集合160,将对这些第一像素块的集合160执行编码参数(QP)值确定操作,以使得能够对这些行中的QP值进行依从编码。在图4所示例子中,要被执行编码参数(QP)值确定操作的第一像素块的集合160包括该帧各行中的第一像素块。然而,其他的设置当然也是可以的。在一些设置中,仅对多个第二行的每一个中的第一数据块执行编码参数值确定操作。
图4还示出了这些行中的最末像素块的集合150,在本示例中,其将指示如下的QP值,即这些QP值使得解码器对后一行中的第一像素块使用所确定的QP(编码参数)值。应当注意的是,最末像素块的集合150不包括最后一行中的最末像素块,这是因为不存在解码器需要执行量化参数改变的后续像素块(行)。
当对例如图4示意性例示的视频图像数据帧进行处理时,两个编码单元可以被构造成执行预处理操作,在该预处理操作中,预先确定针对集合160中每个像素块的编码参数(例如QP)值。另选地,作为在两个编码单元对各对行进行编码之前的步骤,可以在执行过程中(on-the-fly)确定集合160中各个像素块的编码参数(例如QP)值。通常,两个编码单元被构造成共享该操作,然而,在另选实施方式中,可以由两个编码单元中选择的一个来执行该操作。
将理解的是,可以由任意数量的编码单元来处理未编码视频图像数据的帧的行。在原理上,任何这种排列(permutation)都是可以的,实际上,通过为各行视频图像数据提供一个编码单元,可以实现视频图像数据编码的帧的完全并行化。在图4所示的示例中,按照重复、交替模式将这些帧的多行分配给编码单元。然而,视频编码装置例如还可以被构造成根据编码单元的可用性来分配各行。因此,无需遵循严格的交替分配模式。
图5示意性例示了由根据本发明的一个实施方式的视频编码装置执行的一系列步骤。
在步骤400,在存储器的视频图像数据缓冲器中的一个新帧可用于编码。在该实施方式中,视频编码装置执行MPEG编码,并且被构造成执行预处理操作,其中,编码参数值确定操作确定在对该帧各行中的第一块进行编码时使用的QP值。
在步骤405,视频编码装置针对该帧的各行中的每个第一块确定要用于这些块的绝对量化参数QP值。
步骤405中的QP值确定操作可以使用任意希望和适当的方法用于该处理。例如,QP值确定操作可以包括:从正在被编码的帧读入左列块,并基于这些块的内容,例如基于所确定的这些块的复杂度和期望压缩率(或带宽),确定针对这些块中每个所使用的QP值。另选地,编码参数值确定操作可以包括:基于前一编码帧中相应块的内容,确定针对这些块中每一个所使用的QP值。在其他实施方式中,编码参数值确定操作可以包括:基于当前块和前一编码帧的对应块确定QP值。
(还可以根据需要确定在帧的起始处使用的“基本”QP值(在单独的头中编码的“片段QP”值)。)
在步骤410,所确定的QP值随后存储在存储器中,以供后续对这些块中的每一个进行编码时使用。
在步骤415,读入一对连续行的块,并且在步骤420,这些块被并行地进行编码。步骤420的编码包括使用存储在存储器中的相应QP值对各行的第一块进行编码,然后,使用依赖于前一块的QP值对各行的其余块进行编码。各行中第二块和后续块的编码后的版本将包括(如果需要)相对于前一块的QP值定义的相对QP值。在步骤425,将编码数据块存储在视频编码装置的内部存储器中。
在步骤430,例如在决策阶段,确定是否需要进一步的量化参数值改变(以确保解码器将对正在编码的成对行中第二行的第一块使用所确定的QP值)。在本实施方式中,这是通过如下方式实现:当使用第二行中第一(编码)数据块(中包含)的相对QP值来导出对第二行中的第一数据块进行解码时使用的QP值时,确定成对行中第一行的最末(编码)数据块(中指示)的QP值是否将使得解码器导出成对行中第二行的第一编码数据块的所确定的QP值。
在本实施方式中,这是通过如下方式实现:对针对第一行中最末(编码)数据块(中指示)的QP值和针对第二行中第一(编码)数据块(中包含)的相对QP值进行求和。当然,也可以采用其他的配置。
如果总和等于针对第二行中第一数据块所确定的QP值,则明确解码器将导出第二行中第一编码数据块的所确定的QP值,并且在对第二行中的第一数据块进行解码时,解码器使用针对第二行中第一数据块的所确定的QP值,无需改变该QP值。在该情况下,编码装置直接进行到步骤435。
在步骤435,确定该帧中是否存在需要解码的更多行。如果该帧中存在需要解码的更多行,则流程返回步骤415。如果不存在需要解码的更多行,则流程进行到步骤440,在步骤440,已解码的行被合并(拼接(stitch))为单个比特流,例如,用于发送到解码器或存储元件。(注意,此处单独描述了步骤440,然而在优选实施方式中,该步骤被实现为集成到视频编码装置的流水线行为中的处理,并且编码行一旦可用就被拼接在一起。)
如果在步骤430确定,该对行的第一行中最末(编码)数据块(中指示)的QP值将不会使得解码器导出针对该对行的第二行中第一编码数据块的所确定的QP值(例如,由于第一行中最末(编码)数据块(中指示)的QP值与第二行中的第一(编码)数据块(中包含)的相对QP值之和不等于针对第二行中的第一数据块的所确定的QP值),则流程前进到步骤445。
在步骤445中,编码器强制使该对的第一行中的编码数据块指示如下的QP值:该QP值使得当使用第二行中第一编码数据块中包含的相对QP值来导出对第二行中的第一数据块进行解码时使用的QP值时,解码器导出针对第二行中第一编码数据块的所确定的QP值。
在本例中,其通过如下来实现:将针对第一行的最末编码数据块使用并在其中指示的相对QP值修改为指示针对该块的QP值的值,针对该块的QP值在与第二行的第一编码数据块中包含的相对QP值求和时将给出针对第二行中第一编码数据块的所确定的QP值。
该处理还可以包括:将针对第一行的最末编码块的编码块类型,从将用于该数据块的编码块类型(如果不需要指示相对QP值,该相对QP值用于导出在对第二行中的第一数据块进行解码时使用的正确QP值要被使用),改变或修改为帮助在第一行中的最末数据块的编码后的版本中指示相对QP值的不同编码块类型。
例如,为了帮助在解码器中进行QP改变,编码处理可以将“跳跃”块强制改变为“非跳跃”,从而指示如下QP值:该QP值将使得解码器在对行2的第一块解码时使用针对行2的第一块的所确定的QP值。
随后,处理前进到步骤435。
虽然在本示例中,在对这些成对的行完成了编码以后才执行步骤430和435,但这不是必须的。在其他实施方式中,步骤430和435被实现为集成到编码处理本身中的处理(在步骤420)。同样地,步骤430和435可以在对整个帧完成编码以后执行,例如作为后处理操作。
此外,应当注意的是,虽然图5示出了在编码处理的开始时(例如,在读入和对任意行的块编码之前)执行编码参数值确定操作,但应当理解的是这不是必须的。在另选实施方式中,可以在运行过程中(即在步骤415读入成对的两个连续行中的第一块的时候)执行编码参数值确定操作。另外,虽然在本例中读入并编码成对的两个连续行的块,但这不是必须的。在其他实施方式中,依赖于可用编码单元的数量,编码器可以读入和编码任意数量的连续行。
图6示意性例示了根据一个实施方式的视频编码装置。视频编码装置200被构造成对接收的两组未编码像素块执行并行MPEG编码。视频编码装置200包括第一编码单元和第二编码单元。第一编码单元示意性地由缓冲器202、离散余弦变换单元204、缓冲器206和编码器208表示。类似地,第二编码单元示意性地由缓冲器212、离散余弦变换单元214、缓冲器216和编码器218表示。应当理解的是,为了清楚说明的目的,各个编码单元仅以示意性水平进行例示,本领域技术人员应当熟悉MPEG编码单元的详细构造。视频编码装置200还包括对该装置的操作进行协调的系统控制单元220和内部存储器222,依赖于视频编码装置被配置进行操作的特定方式,内部存储器222可以由小型RAM或者一个或更多个寄存器提供。
视频编码装置200经由系统总线230连接至存储器240。存储器240包括视频图像数据缓冲器242,在视频图像数据缓冲器242中存储有未编码像素块序列,以供视频编码装置200进行编码。视频编码装置200从视频图像数据缓冲器242获取未编码像素块,并将其临时存储在缓冲器202和212中。在一个实施方式中,视频编码装置200被构造成逐行对视频图像数据进行编码,并且待编码的交替行视频图像数据分别存储在缓冲器202和212中。各个编码单元被构造成流水线。因此,待编码像素块从缓冲器202传送到DCT单元204;然后,针对各个像素块将DCT单元204中执行的DCT操作的结果存储在缓冲器206中;随后,由编码器208执行编码。各个编码像素块由第一编码单元(202;204;206;208)逐块地生成,并写入到存储器240内的第一编码器缓冲器244中。第二编码单元(212;214;216;218)执行逐块的类似编码处理,并且第二编码单元生成的编码像素块写入到存储器240内的第二编码器缓冲器246中。
存储在第一编码器缓冲器244和第二编码器缓冲器246中的两个编码单元的输出由拼接(stitch)引擎250串接(concatenate)为单个连续比特流。拼接引擎250可以形成视频编码装置200的一部分,如虚线所示。最终的单个连续比特流随后存储在存储器240内的编码视频图像数据缓冲器248中。
虽然描述上述例子时在给定组(行)的第一数据块的编码后的版本中包含相对编码参数值,但这不是必须的。
还可以使用在数据块的编码后的版本中不包含相对编码参数值的编码类型(例如第一数据块被编码为跳跃块)来对给定组(行)的待编码数据块中的第一数据块进行编码。
然而,如上所述,在这种情况下,仍能够确保例如直接在前一组中的编码数据块指示将使得解码器导出给定组的第一编码数据块的所确定的编码参数值(当使用该前一组中编码数据块的所指示的编码参数值来确定用于对给定组中的第一数据块进行解码所使用的解码参数值时)。例如,可以将直接在前组中的编码数据块设置为指示在给定组中第一编码数据块的所确定的编码参数值。
以上可以看出,在本发明的优选实施方式中,本发明至少提供了对属于图像的两组像素块执行并行编码的方式,同时还便于在整个图像上使用动态量化器压缩率。
在本发明的优选实施方式中,至少通过如下方式实现:将该图像的成对的第一组像素块和第二组像素块分配给单独的编码单元,并对每一对的至少第二组的第一块执行编码参数值确定操作,以确定将用于该第二组像素块的第一块的量化参数值。为了正确地重建图像,要确保利用如下的QP值对属于该对的第一组像素块的块进行编码,该QP值能够保证解码器在对第二组的第一块进行解码时使用所确定的QP值。

Claims (19)

1.一种对视频图像数据进行编码的方法,该方法包括以下步骤:将所述视频图像数据的未编码块的序列编码为视频编码格式的编码数据块序列,其中:
在对未编码数据块进行编码时,所述视频编码格式使用编码参数,所述编码参数是量化参数;
该方法针对所述未编码数据块的序列的至少一对第一组未编码数据块和第二组未编码数据块包括以下步骤,所述第一组未编码数据块和所述第二组未编码数据块包括所述视频图像数据的比特流顺序的连续数据块,所述第二组的第一数据块在比特流顺序上紧跟在所述第一组的最末数据块之后:
分别对所述第一组未编码数据块和第二组未编码数据块进行编码,以生成第一组编码数据块和第二组编码数据块;
其中,对所述第一组未编码数据块和第二组未编码数据块进行编码的步骤包括:
在完成对所述第一组中的所有数据块的编码之前,确定要用于对所述第二组中的未编码数据块进行编码的编码参数值;
使用所确定的编码参数值对所述第二组中的所述未编码数据块进行编码;
确定如下的编码参数值,该编码参数值适于使得解码器在对所述第二组中的数据块进行解码时,导出针对所述第二组中的编码数据块的所确定的编码参数值;以及
将所述第一组中的数据块设置为指示所确定的适当的编码参数值,
其中,将所述第一组中的数据块设置为指示所确定的适当的编码参数值的步骤包括如下步骤:
确定要用于对所述数据块进行编码的编码块类型是否使得能够在所述数据块的编码后的版本中指示编码参数值;以及
如果确定结果为否,则使用使得能够在所述数据块的编码后的版本中指示编码参数值的不同编码块类型对所述数据块进行编码。
2.根据权利要求1所述的方法,其中,所述未编码数据块的序列被划分成多对第一组未编码数据块和第二组未编码数据块并作为多对第一组未编码数据块和第二组未编码数据块处理。
3.根据权利要求2所述的方法,其中,确定针对各组未编码数据块中的第一数据块的编码参数值。
4.根据权利要求1所述的方法,所述方法包括:对于给定一对第一组未编码数据块和第二组未编码数据块,至少部分地并行对该对的所述第一组未编码数据块和所述第二组未编码数据块进行编码。
5.根据权利要求1所述的方法,所述方法进一步包括:
将要由解码器使用以确定在对所述第二组中的所述第一数据块进行解码时使用的编码参数值的相对编码参数值包含在所述第二组的第一编码数据块中;并且其中
确保所述第一组中的编码数据块指示如下的编码参数值,该编码参数值将使得解码器在使用所述第一组中的编码数据块的所指示的编码参数值来确定用于对所述第二组中的第一数据块进行解码的编码参数值时,导出针对所述第二组中的第一编码数据块的所确定的编码参数值的步骤包括:
确保所述第一组中的编码数据块指示如下的编码参数值,该编码参数值使得解码器在使用所述第二组中的第一编码数据块中包含的相对编码参数值来确定用于对所述第二组中的第一数据块进行解码的编码参数值时,导出针对所述第二组中的第一编码数据块的所确定的编码参数值。
6.根据权利要求1所述的方法,其中,将所述第一组中的数据块设置为指示所确定的适当的编码参数值的步骤包括以下步骤:
确定编码器将选择用于所述第一组中的数据块的所述编码参数值是否将使得所述解码器在确定用于对所述第二组中的数据块进行解码所使用的编码参数值时,导出针对该对组中的所述第二组中的所述编码数据块的所确定的编码参数值;以及
基于该确定,将针对所述第一组中的数据块的所述编码参数值有条件地修改为针对该块的所确定的适当的编码参数值。
7.根据权利要求1所述的方法,所述方法包括:
将要用于对数据块进行编码的编码块类型从跳跃块型改变为非跳跃块型,以将要传送到解码器的信息包含在编码数据块中。
8.一种对视频图像数据进行编码的方法,该方法将包括未编码数据块序列的视频图像数据编码为视频编码格式的编码数据块序列,该方法包括以下步骤:
针对每个未编码数据块,确定要用于对所述数据块进行编码的相应的编码块类型;针对该序列中的至少一个数据块,
选择要用于对所述未编码数据块进行编码的、与所确定的编码块类型不同的第二编码块类型,以使得能够将要传递到解码器的信息包含在所生成的相应编码数据块中;以及
一旦已经选择了所述不同的第二编码块类型,就使用所述不同的第二编码块类型对所述未编码数据块进行编码,以生成相应编码数据块,以使得将要传递到解码器的所述信息包含在所生成的相应编码数据块中。
9.根据权利要求8所述的方法,该方法包括以下步骤:
将要用于对数据块进行编码的编码块类型从跳跃块型改变为非跳跃块型,以将要传送到解码器的信息包含在编码数据块中。
10.一种对视频图像数据进行编码的装置,其中,对视频图像数据的编码包括将视频图像数据的未编码块的序列编码为视频编码格式的编码数据块序列,其中
在对未编码数据块进行编码时,所述视频编码格式使用编码参数,所述编码参数是量化参数;
该视频图像数据编码装置包括处理电路,该处理电路被构造成,针对所述未编码数据块序列的至少一对第一组未编码数据块和第二组未编码数据块,所述第一组未编码数据块和所述第二组未编码数据块包括所述视频图像数据的比特流顺序的连续数据块,所述第二组的第一数据块在比特流顺序上紧跟在所述第一组的最末数据块之后:
分别对所述第一组未编码数据块和第二组未编码数据块进行编码,以生成第一组编码数据块和第二组编码数据块;
其中,对所述第一组未编码数据块和第二组未编码数据块进行编码包括:
在完成对所述第一组中的所有数据块的编码之前,确定要用于对所述第二组中的未编码数据块进行编码的编码参数值;
使用所确定的编码参数值对所述第二组中的所述未编码数据块进行编码;
确定如下的编码参数值,该编码参数值适于使得解码器在对所述第二组中的数据块进行解码时,导出所述第二组中的编码数据块的所确定的编码参数值;以及
将所述第一组中的数据块设置为指示所确定的适当的编码参数值,
其中,将所述第一组中的数据块设置为指示所确定的适当的编码参数值包括:
确定要用于对所述数据块进行编码的编码块类型是否使得能够在所述数据块的编码后的版本中指示编码参数值;以及
如果确定结果为否,则使用使得能够在所述数据块的编码后的版本中指示编码参数值的不同编码块类型对所述数据块进行编码。
11.根据权利要求10所述的装置,其中,所述处理电路被构造成将所述未编码数据块序列划分成多对第一组未编码数据块和第二组未编码数据块并且作为多对第一组未编码数据块和第二组未编码数据块处理。
12.根据权利要求11所述的装置,其中,对所述第一组未编码数据块和第二组未编码数据块进行编码包括:
确定针对各组未编码数据块中的第一数据块的编码参数值。
13.根据权利要求10所述的装置,其中,对所述第一组未编码数据块和第二组未编码数据块进行编码的步骤包括:
对于给定一对第一组未编码数据块和第二组未编码数据块,至少部分地并行对该对的所述第一组未编码数据块和所述第二组未编码数据块进行编码。
14.根据权利要求10所述的装置,其中:
对所述第一组未编码数据块和第二组未编码数据块进行编码包括:将要由解码器使用以确定用于对所述第二组中的第一数据块进行解码的编码参数值的相对编码参数值包含在所述第二组的第一编码数据块中;并且
确保所述第一组中的编码数据块指示如下的编码参数值,该编码参数值使得解码器在使用所述第一组中的编码数据块的所指示的编码参数值来确定用于对所述第二组中的第一数据块进行解码的编码参数值时,导出针对所述第二组中的第一编码数据块的所确定的编码参数值的步骤包括:
确保所述第一组中的编码数据块指示如下的编码参数值,该编码参数值使得解码器在使用所述第二组中的第一编码数据块中包含的相对编码参数值来确定用于对所述第二组中的第一数据块进行解码的编码参数值时,导出针对所述第二组中的第一编码数据块的所确定的编码参数值。
15.根据权利要求10所述的装置,其中,将所述第一组中的数据块设置为指示所确定的适当的编码参数值包括:
确定编码器将选择用于所述第一组中的数据块的所述编码参数值是否将使得所述解码器在确定用于对所述第二组中的数据块进行解码的编码参数值时,导出针对该对组中的所述第二组中的所述编码数据块的所确定的编码参数值;以及
基于该确定,将针对所述第一组中的数据块的所述编码参数值有条件地修改为针对该块的所确定的适当的编码参数值。
16.根据权利要求10所述的装置,其中所述处理电路能够:
将要用于对数据块进行编码的编码块类型从跳跃块型改变为非跳跃块型,以将要传送到解码器的信息包含在编码数据块中。
17.一种对视频图像数据进行编码的装置,该装置将包括未编码数据块序列的视频图像数据编码为视频编码格式的编码数据块序列,该装置包括处理电路,该处理电路能够执行以下操作:
针对每个未编码数据块,确定要用于对所述数据块进行编码的相应的编码块类型;
针对该序列中的至少一个数据块,
选择要用于对所述序列中的未编码数据块进行编码的、与所确定的编码块类型不同的第二编码块类型,以将要传递到解码器的信息包含在所生成的相应编码数据块中;以及
一旦已经选择了所述不同的第二编码块类型,就使用所述不同的第二编码块类型对所述未编码数据块进行编码,以生成相应编码数据块,以使得将要传递到解码器的所述信息包含在所生成的相应编码数据块中。
18.根据权利要求17所述的装置,其中,所述处理电路能够执行以下操作:
将要用于对数据块进行编码的编码块类型从跳跃块型改变为非跳跃块型,以将要传送到解码器的信息包含在编码数据块中。
19.一种存储计算机程序的计算机可读介质,所述计算机程序包括适于当在数据处理系统上运行所述程序时执行根据权利要求1至9中任一项所述的方法的软件代码。
CN201510924558.3A 2014-12-12 2015-12-14 视频图像数据编码方法、装置和计算机可读介质 Active CN105704488B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1422132.9 2014-12-12
GB1422132.9A GB2533155B (en) 2014-12-12 2014-12-12 Video data processing system

Publications (2)

Publication Number Publication Date
CN105704488A CN105704488A (zh) 2016-06-22
CN105704488B true CN105704488B (zh) 2021-04-23

Family

ID=56007678

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510924558.3A Active CN105704488B (zh) 2014-12-12 2015-12-14 视频图像数据编码方法、装置和计算机可读介质

Country Status (5)

Country Link
US (1) US10791332B2 (zh)
JP (1) JP6912158B2 (zh)
KR (1) KR102543334B1 (zh)
CN (1) CN105704488B (zh)
GB (1) GB2533155B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11575885B2 (en) 2016-10-11 2023-02-07 Electronics And Telecommunications Research Institute Image encoding/decoding method and apparatus and recording medium for storing bitstream
US10638133B2 (en) 2018-01-31 2020-04-28 Qualcomm Incorporated Delta quantization parameter (QP) coding options for video
GB2570879B (en) * 2018-02-06 2022-08-17 Advanced Risc Mach Ltd Encoding data arrays

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060256867A1 (en) 2002-09-06 2006-11-16 Turaga Deepak S Content-adaptive multiple description motion compensation for improved efficiency and error resilience
EP1995967A4 (en) 2006-03-16 2009-11-11 Huawei Tech Co Ltd METHOD AND APPARATUS FOR ADAPTIVE QUANTIFICATION IN AN ENCODING PROCEDURE
US8351513B2 (en) * 2006-12-19 2013-01-08 Allot Communications Ltd. Intelligent video signal encoding utilizing regions of interest information
JP2009267440A (ja) 2008-04-21 2009-11-12 Canon Inc 画像符号化装置及び画像符号化方法
WO2009150808A1 (ja) 2008-06-10 2009-12-17 パナソニック株式会社 画像復号装置および画像符号化装置
JP5241622B2 (ja) 2008-07-02 2013-07-17 キヤノン株式会社 符号化装置および符号化方法
JP2011024066A (ja) * 2009-07-17 2011-02-03 Sony Corp 画像処理装置および方法
US8331703B2 (en) * 2011-02-18 2012-12-11 Arm Limited Parallel image encoding

Also Published As

Publication number Publication date
US10791332B2 (en) 2020-09-29
CN105704488A (zh) 2016-06-22
KR20160072038A (ko) 2016-06-22
GB2533155B (en) 2021-09-15
JP6912158B2 (ja) 2021-07-28
JP2016116224A (ja) 2016-06-23
US20160191937A1 (en) 2016-06-30
KR102543334B1 (ko) 2023-06-14
GB2533155A (en) 2016-06-15

Similar Documents

Publication Publication Date Title
US10313695B2 (en) Parallel decode of a progressive JPEG bitstream
US11197010B2 (en) Browser-based video decoder using multiple CPU threads
CA2760795C (en) Systems and methods for block recomposition for compound image compression
TWI539793B (zh) 用於解碼行程編碼資料的解碼器與方法
CN106233730B (zh) 生成经编码输出视频帧及数据阵列的方法和系统
US10771792B2 (en) Encoding data arrays
CN106254877B (zh) 视频处理系统、处理视频数据帧的方法、装置与存储介质
US20130251261A1 (en) Method And Apparatus For Image Data Compression
CN110896483B (zh) 压缩和解压缩图像数据的方法
US20180276873A1 (en) Providing output surface data to a display in data processing systems
CN105704488B (zh) 视频图像数据编码方法、装置和计算机可读介质
US20140092986A1 (en) Method and Apparatus for Data Compression Using Error Plane Coding
CN116250238A (zh) 用于对场景的一幅或多幅视图进行编码和解码的方法和装置
Weißenberger et al. Accelerating jpeg decompression on gpus
CN114363625A (zh) 对数据阵列进行解码
US10609408B2 (en) Video data processing system using encoding information derived from a previous frame in a sequence of video frames
WO2015041652A1 (en) A progressive jpeg bitstream transcoder and decoder
US10582207B2 (en) Video processing systems
CN114424549A (zh) 运动图像编码方法、编码处理方法、运动图像编码装置及编码处理装置
CN117939148A (zh) 用于在比特流中传输的熵编码的数据的动态排队

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20180613

Address after: cambridge

Applicant after: Advanced Risc Machines Ltd.

Applicant after: Anne science and Technology (China) Co., Ltd.

Address before: cambridge

Applicant before: Advanced Risc Machines Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant