CN111147866A - 对数据阵列进行编码 - Google Patents

对数据阵列进行编码 Download PDF

Info

Publication number
CN111147866A
CN111147866A CN201911058443.5A CN201911058443A CN111147866A CN 111147866 A CN111147866 A CN 111147866A CN 201911058443 A CN201911058443 A CN 201911058443A CN 111147866 A CN111147866 A CN 111147866A
Authority
CN
China
Prior art keywords
array
data
data values
dimensional
arrays
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
CN201911058443.5A
Other languages
English (en)
Other versions
CN111147866B (zh
Inventor
J·C·克雷芒
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.)
ARM Ltd
Original Assignee
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 Ltd filed Critical ARM Ltd
Publication of CN111147866A publication Critical patent/CN111147866A/zh
Application granted granted Critical
Publication of CN111147866B publication Critical patent/CN111147866B/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/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/192Methods 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 the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/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/423Methods 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 characterised by memory arrangements
    • H04N19/426Methods 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 characterised by memory arrangements using memory downsizing methods
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

对数据阵列进行编码。一种对数据元阵列流中的数据元阵列进行编码的设备。所述设备包括对数据元阵列进行编码的编码电路。所述设备还包括根据数据值的二维阵列来生成数据值的两个一维阵列的处理电路。所述二维阵列中的数据值表示所述数据元阵列的特性。所述两个一维阵列中的数据值分别表示沿着所述二维阵列的两个维度的数据值。所述处理电路在工作上能够使用所述两个一维阵列来对所述二维阵列中的数据值进行近似,并且在对要编码的阵列流中的数据元阵列进行编码时,使用所述二维阵列中的近似的数据值。

Description

对数据阵列进行编码
技术领域
本发明涉及用于对数据阵列进行编码的方法和设备,并且更具体地,涉及诸如在对视频数据帧进行编码的情况下对数据阵列流进行编码以例如用于传输和/或存储。
背景技术
通常对诸如图像数据值阵列(例如,用于显示的视频帧)的数据元(data element)阵列流(序列)进行编码,使得将数据压缩以便减少带宽和存储器消耗。这在处理资源和电力可能受限的数据处理设备(例如,便携式装置)中是特别期望的。然后可以将编码的阵列例如写出至存储器,随后读取和解码以进行输出(例如,显示)。
在对阵列进行编码时要使用的特定编码处理可能在阵列流中的各阵列之间有所不同,例如以实现所需的压缩率和数据质量。通常,目的是使对所述流中的阵列的压缩最大化(以便至少实现所需的比特率),同时尝试保持在对阵列进行解码时所再现的阵列的尽可能高的质量。特定的编码处理可能会发生变化,例如,出于编码目的将阵列划分成的块的特定大小,或者导出基准阵列(可以相对于该基准阵列来对所述阵列进行编码)的特定方式。
当对阵列流中的阵列进行编码(例如,相对于所述流中的前一阵列)时,预先获知(或者能够预测)正在被编码的阵列中的数据元(例如,视频图像数据帧看起来像什么)是有用的。这有助于做出编码决定,例如,相对于编码的阵列的输出比特数,对编码的数据的质量进行优化。良好的第一近似可以是假设正在被编码的当前阵列具有与前一阵列相同的数据元(例如,当前阵列是相对于该前一阵列来进行编码的)。然而,对已经改变(或预计会改变)阵列流中的某些内容进行检测可能是有益的,以使编码可以恰当地做出反应。
为帮助进行这种检测,可以在编码处理期间从对正在被编码的阵列的分析中收集统计信息。这样的统计信息例如可能涉及正在被编码的阵列中的数据元的特性分布,诸如跨阵列的亮度、细节水平、复杂度等。然后,可以使用已收集到的统计信息来控制在对阵列进行编码时要使用的特定编码处理。
发明内容
因此,申请人认为仍然存在对数据阵列流进行编码的改进技术的范围,例如,使用统计数据来控制对数据元阵列的编码。
当从第一方面考虑时,本发明提供了一种对数据元阵列流中的数据元阵列进行编码的方法,所述方法包括以下步骤:
当对要编码的数据元阵列流中的数据元阵列进行编码时:
根据数据值的二维阵列中的数据值来生成数据值的两个一维阵列,其中,所述数据值的二维阵列中的数据值表示所述数据元阵列中的数据元中的至少一些数据元的一个或更多个特性,并且其中,所述数据值的两个一维阵列中的数据值分别表示沿着所述数据值的二维阵列的两个维度的数据值;
存储所述数据值的两个一维阵列;以及
在对所述要编码的数据元阵列流中的所述数据元阵列或者一个或更多个后续数据元阵列进行编码时,使用所述数据值的两个一维阵列来对所述数据值的二维阵列中的数据值中的一个或更多个数据值进行近似。
当从第二方面考虑时,本发明提供了一种对数据元阵列流中的数据元阵列进行编码的设备,所述设备包括:
编码电路,所述编码电路在工作上能够对数据元阵列流中的数据元阵列进行编码;
处理电路,所述处理电路在工作上能够:
根据数据值的二维阵列中的数据值来生成数据值的两个一维阵列,其中,所述数据值的二维阵列中的数据值表示所述数据元阵列中的数据元中的至少一些数据元的一个或更多个特性,并且其中,所述数据值的两个一维阵列中的数据值分别表示沿着所述数据值的二维阵列的两个维度的数据值;以及
存储器,所述存储器在工作上能够存储所述数据值的两个一维阵列,
其中,所述处理电路在工作上还能够使用所述数据值的两个一维阵列来对所述数据值的二维阵列中的数据值中的一个或更多个数据值进行近似,并且
其中,所述编码电路在工作上还能够在对所述要编码的数据元阵列流中的所述数据元阵列或者一个或更多个后续数据元阵列进行编码时,使用所述数据值的二维阵列中的所述一个或更多个近似的数据值。
本发明涉及对诸如视频图像数据帧的数据元阵列进行编码。要编码的阵列处于诸如视频图像数据帧序列的数据元阵列流中。当要对所述流中的数据元阵列进行编码时,可以生成数据值的二维阵列中的数据值。所述数据值的二维阵列中的数据值表示所述数据元阵列中的数据元中的至少一些数据元的一个或更多个特性,使得所述二维阵列中的数据值的分布表示跨所述阵列的数据元的至少一个特性的分布。
使用来自该二维阵列中的数据值,生成数据值的两个一维阵列。为所述两个一维阵列生成的数据值表示沿所述二维阵列的相应的两个维度(例如,x和y)的方向上的数据值,使得所述两个一维阵列中的数据值的分布表示跨所述二维阵列的数据值的分布。然后,存储所述两个一维阵列。
当对生成了所述数据值的二维阵列的所述阵列进行编码时,或当对所述流中的一个或更多个后续阵列进行编码时,在该编码中使用所述数据值的二维阵列中的一个或更多个数据值的近似版本。这些近似版本是通过使用所述数据值的两个一维数据值阵列重建所述二维阵列中的数据值而生成的。
申请人已经清楚,虽然与正在被编码的阵列中的数据元相关联的一个或更多个特性的分布在对所述阵列流中的数据元阵列进行编码中可能是有用的,例如,对要使用的特定编码处理做出决定,但存储针对此类后续使用而生成的数据值的完整二维阵列可能会占用大量存储器,这例如在便携式装置中是不希望的。然而,申请人已经认识到,通过使用两个一维阵列来对所述二维阵列中的数据值进行近似,能够减少表示所述阵列中的数据元的所述一个或更多个特性所需的数据值的数量。
这样的结果是,只需要存储两个一维阵列而不是一个二维阵列,因此减少了存储这些数据值所需的存储器量。尽管可能需要更多的算术处理才能根据所述二维阵列中的数据值来生成所述两个一维阵列(而不是仅仅生成所述二维阵列),但减少存储该数据所需的所述阵列的大小(数据值的数量)也可以有助于减少在编码处理中使用存储的数据值所需的存储器事务的处理资源。
在使用所述两个一维阵列时(与是否要在后续编码中存储和使用所述二维阵列相比)减少存储器事务的处理资源可能有助于实现编码所述阵列可能需要的存储器事务的生成和处理的实时速率(例如,在对视频图像数据帧流进行编码时),例如,由于在例如便携式装置中可能存在的存储器事务时延和带宽约束的缘故。
应当清楚,减少存储器和(存储器事务)处理资源两者还有助于减少编码所述阵列所需的能耗(该能耗在例如便携式装置中再次受到约束),同时仍提供表示正在被编码的阵列中的数据元的一个或更多个特性的数据值,使得编码决定能够基于这些分布来进行。
此外,申请人已经发现,根据所述两个一维阵列重建的近似的数据值仍可以足够准确(与所述二维阵列中的原始生成的数据值相比,并因此表示正在被编码的数据元阵列中的数据元的所述一个或更多个特性),以能够做出有用的编码决定。
所述阵列中的数据元可以包括任何合适类型的数据,例如,RGB或YUV数据值。优选地,所述数据元阵列包括视频图像数据帧(视频图像数据帧流中的视频图像数据帧)。
在本文所述的任何方面和实施方式中,可以以任何期望和合适的方式来提供所述阵列流中的数据元阵列。实施方式可以包括生成所述阵列中的(至少一些或全部)数据元。实施方式还可以或代替地包括例如从存储器读入所述阵列中的(至少一些或全部)数据元。
可以以任何期望和合适的方式来生成所述阵列中的数据元。在实施方式中,可通过视频摄像机来生成所述阵列中的数据元。在其它实施方式中,生成所述阵列中的数据元可以包括渲染处理。所述渲染处理可以包括导出由所述阵列中的数据元表示的数据值(例如,通过对图元进行光栅化以生成图形片段和/或通过渲染图形片段)。
可以使用图形处理流水线以便生成所述阵列中的数据元。图形处理流水线可以包含图形流水线可以包含的任何合适和期望的处理级,例如,顶点着色器、光栅化级、渲染级等,以便生成所述阵列中的数据元。
在实施方式中,所述编码处理是通过将数据阵列划分成(多个)数据元块来对数据元阵列进行编码的逐块处理。优选地,通过确定所述数据元阵列的(例如,所述数据元阵列中的块)与相应的基准数据元阵列(例如,相应的基准数据元阵列中的块)之间的差异(残差)来对所述数据元阵列(例如,所述数据元阵列中的块)进行编码。
因此,在这种情况下,(所述)数据元阵列的编码可以并且在实施方式中包括将所述阵列划分成多个数据元块。(所述)数据元阵列的编码可以并且在实施方式中包括针对阵列(例如,阵列的每个块):生成差值阵列,该差值阵列表示所述阵列(例如,所述阵列的每个块)与基准阵列(例如,基准阵列中的块)之间的差异。然后,可以对所述差值进行编码,例如,通过向所述差值阵列应用(例如,离散余弦变换(DCT))正向变换处理来生成所述差值阵列的频域系数阵列,和/或通过向频域系数阵列应用量化处理来生成量化系数阵列。
(例如,每个)数据元阵列被划分成的块可以采用任何期望和合适的形式。在实施方式中,就数据元或位置而言,所述块可以是任何期望和合适的大小或形状,但优选为矩形(包括正方形)。例如,所述块在大小上可以(例如,皆)为4x4、4x8、8x4、8x8、8x16、16x8、16x16、16x32、32x16、32x32、32x64、64x32、64x64等的数据元或位置。在实施方式中,所述块可以(例如,皆)为可以出于编码目的将所述数据元阵列划分成的多个块中的一个块。所述多个块可以是不交叠的和/或可以在大小或形状上相似或不同。所述数据元阵列就这种块而言可以是任何期望和合适的大小、形状或配置。
当对数据元阵列进行编码时,优选地收集一些(例如,统计)数据(例如,度量)该数据表示所述数据元阵列中的数据元中的至少一些数据元的一个或更多个特性。这样收集的数据优选地用于生成所述数据值的二维阵列。因此,优选地,所述方法包括(并且所述处理电路在工作上能够)分析正在被编码的数据元阵列(例如,所述数据元阵列中的数据元素的特性)以生成所述数据值的二维阵列。
所述二维阵列表示跨所述数据元阵列的所述一个或更多个特性的分布。因此,所述二维阵列可以由例如多个离散值的统计分布f(x,y)来描述。
具有这样的分布的知识有助于提供关于正在被编码的阵列中的数据元的性质的信息,并且例如有助于预测所述阵列中的数据元如何在所述序列中变化。因此,可以将该信息(即,根据所述数据值的二维阵列导出的信息)用于对所述阵列流中的阵列的编码。
在一个实施方式中,所述数据值的二维阵列是整体生成的(然后根据所述二维阵列中的数据值生成所述两个一维阵列)。因此,所述方法可以包括(并且所述处理电路在工作上能够)根据所述数据元阵列生成数据值的二维阵列,其中,所述数据值的二维阵列中的数据值表示所述数据元阵列中的数据元中的至少一些数据元的一个或更多个特性。
在一些实施方式中,所述两个一维阵列可以是在不必整体生成二维的情况下来生成的,例如使得整个所述阵列可能在任一时刻都不可用。在这些实施方式中,可以在对数据元阵列进行编码时生成所述二维阵列中的(例如,单个)数据值(例如,其中在对所述阵列中的特定数据元进行编码时生成所述二维阵列中的特定数据值)。然后,在生成所述二维阵列中的恰当的数据值时,可以根据(例如,通过累加)所述二维阵列的行和列上的所述二维阵列中的数据值来生成所述两个一维阵列(例如,根据下面概述的实施方式)。
所述数据值的二维阵列可以以任何合适和期望的方式根据所述数据元阵列生成并因此对应于所述数据元阵列。优选地,所述数据值的二维阵列对应于(基于)所述数据元阵列中的数据元(例如,全部数据元)。
当要将数据元阵列编码为多个数据元块时,可以针对每个块生成单独的二维阵列。然而,优选地,即使将所述数据元阵列划分成多个块,也针对整个所述数据元阵列生成单个二维阵列(唯一的二维阵列)。例如,这有助于识别在整个所述数据元阵列上由所述二维阵列表示的一个或更多个特性的分布中的模式。
然而,如下应当看到,在生成所述数据值的两个一维阵列时,所述数据值的二维阵列本身可以划分成较小的区域,因为这可能有助于提供对所述二维阵列的更好近似。
可以以任何合适且期望的分辨率(例如,与所述数据元阵列的分辨率相比)来生成所述二维阵列。在一个实施方式中,按与所述数据元阵列相同的分辨率来生成所述二维阵列,因此所述二维阵列中的每个数据值表示所述数据元阵列中的单个(例如,对应)数据元(例如,视频图像数据帧的每个像素)的一个或更多个特性。
在其它实施方式中,按比所述数据元阵列粗糙的分辨率来生成所述二维阵列。因此,所述二维阵列中的每个数据值可以对应于所述数据元阵列中的多个(例如,多组)数据元。可以以任何合适和期望的方式(例如,以数据元块为单位)将所述多个数据元组合在一起。例如,所述二维阵列中的每个数据值可以对应于所述数据元阵列中的16x 16或64x 64的数据元块。这些块在一些实施方式中可以对应于出于编码目将所述数据元阵列划分成的块。
因此,可以按所需的分辨率(例如,按每个数据元或数据元块的级别)来对所述数据元阵列进行分析(例如,采样),以生成表示所述数据元的所述一个或更多个特性的分布的所述数据值的二维阵列。
(例如,分析所述阵列中的数据元并且)生成所述数据值的二维阵列的处理电路可以是所述设备的任何合适和期望的处理电路(例如,级或处理器)。当所述设备包括视频处理设备(用于对视频图像数据帧进行编码)时,所述编码电路(例如,视频编码器本身)可以生成所述数据值的二维阵列,例如作为对所述视频图像数据帧进行编码的处理的一部分。在另一实施方式中,图像信号处理器或图形处理单元(例如,生成所述视频图像数据帧的处理器)在工作上能够生成所述数据值的二维阵列。
所述数据值的二维阵列可以表示所述数据元阵列中的数据元中的至少一些数据元的任何合适和期望的一个或多个特性,例如,在对所述数据元阵列流中的阵列进行编码时可以生成或使用的特性。
在一个实施方式中,所述一个或更多个特性(例如,当所述数据元阵列包括视频图像数据帧时)包括所述阵列中的数据元的强度或亮度(例如,亮度(luma)或相对亮度)。例如,这可以被用于评估视频图像数据帧中的对比度,并且对于高动态范围(HDR)视频、成像和/或渲染可以很有用。
在一个实施方式中,所述一个或更多个特性(例如,当所述数据元阵列包括视频图像数据帧时)包括所述阵列中的数据元的复杂度(细节水平)。可以针对整个所述数据元阵列来评估所述阵列中的数据元的复杂度(例如,返回(仅返回)表示所述数据元阵列的复杂度的单个数据值)。
然而,优选地,针对所述数据元阵列中的多个(例如,独特)区域中的每个区域来评估所述阵列中的数据元的复杂度,其中,每个区域对应于所述数据元阵列中的多个数据元。因此,当所述数据值的二维阵列表示所述数据元阵列中的区域的复杂度时,优选地,所述二维阵列包括按所述数据元阵列中的每个区域的(仅)单个数据值的分辨率的数据值(即,其中所述二维阵列中的数据值表示所述数据元阵列中的相应区域的复杂度)。
所述数据值的二维阵列中的复杂度分布的表示例如允许对所述数据元阵列中的不同区域之间或者所述数据元阵列的序列中的不同阵列之间的复杂度差异进行评估,例如以供在对所述数据元阵列进行编码时使用。被评估了所述阵列中的数据元的复杂度的区域可以(但不一定)对应于所述数据元阵列中的块(在出于编码目的将所述数据元阵列划分成多个块的实施方式中)。
所述阵列(例如,所述阵列中的区域)中的数据元的复杂度可以以任何合适和期望的方式来量化(并因此由所述二维阵列中的数据值来表示)。在一个实施方式中,所述数据元阵列(例如,所述数据元阵列中的区域)中的多个数据元的复杂度是由与所述数据元阵列(例如,所述数据元阵列中的所述区域)中的所述多个数据元相关联的多个数据值(例如,表示特定变量)的方差来表示的。该方差有助于提供所述数据元阵列(例如,所述数据元阵列中的区域)的细节水平的可量化量度。
在一个实施方式中,所述数据元阵列(例如,所述数据元阵列中的区域)中的多个数据元的复杂度是由数据元阵列(例如,所述数据元阵列中的所述区域)中的每个数据元或区域(例如,用于编码的块)所耗费的编码的比特的(例如,估计的)数目来表示的。在对数据元阵列中的特定数据元或区域进行编码时所耗费的比特的数目可以指示所述数据元阵列(例如,所述数据元阵列中的区域)的复杂度。
比特数耗费的编码信息也可以帮助所述编码电路,例如,在对所述流中的下一数据元阵列进行编码时,预先获知该数据元阵列中的特定区域在被编码时可能会生成很少的比特(例如,由于区域的复杂程度较低),而其它区域可能会生成更大数量的比特(例如,由于这些区域的复杂程度较高)。例如,当所述编码电路包括速率控制电路并且对于对整个所述数据元阵列进行编码来说瞄准了目标数据速率(比特量)时,这可能会很有用。然后,可以使用耗费编码信息的比特数息来对所述数据元阵列进行对应编码,以便实现该速率。
在一个实施方式中,所述一个或更多个特性(例如,当所述数据元阵列包括视频图像数据帧时)包括所述阵列流中的各阵列(例如,连续阵列)之间的所述阵列中的数据元的变化量(例如,移动)。所述数据元的变化量(例如,移动)可以由所述阵列中的数据元的相应运动矢量(例如,x分量和y分量两者的量值,或者x分量和y分量两者的绝对量值)来表示。
可在对所述数据元阵列进行编码时生成的运动矢量有助于指示与所述阵列流中的前一阵列或下一阵列相比,数据元阵列改变了多少。运动搜索引擎可以使用该指示来定位所述流中的另一阵列中的对应数据元,例如,用于相对于当前阵列中的数据元来对这些数据元进行编码。
可以为整个阵列(即,全局)或者阵列中的区域(例如,编码块)(即,局部)提供所述阵列中的数据元的(例如,由运动矢量表示的)变化量(例如,移动)。
在一个实施方式中,所述一个或更多个特性(例如,当所述数据元阵列包括视频图像数据帧时)包括被编码的所述数据元阵列被(或已经被)编码为的编码阵列(例如,所述阵列中的块)的类型(例如,模式),例如对所述阵列(例如,所述阵列中的块)进行编码的帧间(inter)模式、帧内(intra)模式或跳过模式。所述编码的类型有助于指示数据元阵列(例如,数据元阵列中的块)与所述阵列流中的前一阵列(例如,所述阵列流中的前一阵列中的块)有多少不同,因为,例如,这种不同是指示数据元阵列(例如,数据元阵列中的块)已经相对于前一阵列进行了怎样的编码(若有的话)。所述编码的类型也可以有助于指示,对于视频图像数据帧,由于将所述编码的类型用于所述帧的不同块,大的对象何时跨所述帧中的各部分进行移动。
例如,当对视频图像数据帧进行编码时,可以相对于所述帧流中的其它帧(例如,所述帧流中的其它帧中的块)(例如,相对于所述流中的相邻的帧)来对所述帧(例如,所述帧中的块)进行编码。这样编码的帧(例如,帧中的块)被称为“帧间”块或“帧间”帧。
另选地,例如在所述编码利用所述帧中的任何空间冗余的情况下,可以将所述帧(例如,所述帧中的块)编码为隔离的帧。这样编码的(例如,块)帧被称为“帧内”块或“帧内”帧。
所述帧中的块可以被编码为“跳过”块,其中没有为该块生成编码的数据(除了指示该块是“跳过”块之外)。在对“跳过”块进行解码时,解码器接着使用并依赖于相邻的块的编码(例如,运动矢量)来估计所述“跳过”块的运动矢量。
优选地,(例如,要)用于数据元块或数据元阵列的编码的类型是由相应的(例如,整数)代码在所述数据值的二维阵列中表示的。例如,可以将数据值“2”用于指示帧内块或帧内帧,可以将“1”用于指示帧间块或帧间帧,并且可以将“0”用于指示跳过块。
当每个数据元的多个特性或者每个数据元的具有多个值的特性(举例来说,诸如运动矢量的多值函数)要由所述二维阵列中的数据值来表示时,优选地,所述方法包括以下步骤:根据所述数据元阵列生成数据值的多个二维阵列,其中,所述数据值的二维阵列中的每个二维阵列中的数据值表示所述数据元阵列中的数据元中的至少一些数据元的相应特性(例如,相应的特性的分量)。
以所述运动矢量为例,可以为所述运动矢量的每个分量(x和y)生成数据值的单独的二维阵列。(另选地,如上所述,所述二维阵列中的数据值可以表示所述运动矢量的绝对量值。)
当根据所述数据元阵列生成数据值的多个二维阵列时,优选地,生成数据值的多对一维阵列(例如,针对每个二维阵列生成两个一维阵列),以对所述二维阵列进行近似。
可以根据所述数据值的二维阵列来生成所述数据值的两个一维阵列,使得所述数据值的两个一维阵列中的数据值按任何合适和期望的方式分别表示沿着所述数据值的二维阵列的两个维度的数据值。优选地,针对数据值表示二维统计分布f(x,y)的二维阵列,所述数据值的两个一维阵列包括相应的一维统计分布a(x)和b(y)。优选地,通过对所述数据值的二维阵列(例如,所述二维统计分布)进行因式分解来生成所述数据值的两个一维阵列(例如,所述两个一维统计分布)。优选地,按f(x,y)≈a(x)b(y)的方式将所述数据值的二维阵列因式分解以生成所述值的两个一维阵列。
因此,所述数据值的一维阵列a(x)表示所述二维阵列中的沿x轴的数据值的分布,而所述数据值的另一个一维阵列分布b(y)表示所述二维阵列中的沿y轴的数据值的分布。优选地,所述两个一维阵列表示来自所述二维阵列的数据值的所沿着的两个方向彼此正交。因此,当所述数据值的二维阵列包括矩形阵列(例如,根据矩形数据元阵列生成)时,根据该矩形阵列生成所述两个一维阵列,优选地,所述两个一维阵列表示来自所述二维阵列的数据值的所沿着的方向对应于所述数据值的二维阵列的两个主轴(例如,x和y)(并因此也优选地对应于所述数据元阵列的两个主轴(例如,x和y))。
在一个实施方式中,针对沿着所述一维阵列的方向的数据值的每个集合,(例如,沿与所述一维阵列的方向正交的方向)通过对所述二维阵列中的数据值进行积分(例如,求和)来生成所述数据值的两个一维阵列。因而,优选地:
Figure BDA0002257191160000101
所述两个一维阵列中的数据值(例如,多个数据值)可以以任何合适和期望的方式对应于所述二维阵列中的数据值(例如,多个数据值)。在一个实施方式中,按与所述二维阵列中的数据值相同的分辨率来生成所述两个一维阵列中的数据值。由此,在一个实施方式中,所述一维阵列中的数据值的数目等于所述二维阵列中的沿着所述两个一维阵列表示所述二维阵列中的数据值的相应方向的数据值的数目。例如,如果所述二维阵列是n乘m大小的阵列,则所述两个一维阵列的大小分别为n个数据值和m个数据值。
可以看出,通过以这种方式将所述二维阵列因式分解成两个一维阵列,为存储a(x)(例如,包含n个数据值)和b(y)(例如,包含m个数据值)所需的存储器的量小于存储所述二维阵列所需的存储器的量(因为n+m<n·m,而且随着n和m的增加,这种差距变得越来越大)。
然而,在一个实施方式中,所述两个一维阵列可以不按精细的细节来表示来自所述二维阵列的数据值。在存储所述两个一维阵列时,这可以有助于节省存储器空间。例如,可以按比所述二维阵列中的数据值的分辨率粗糙的分辨率来对所述二维阵列中的数据值进行采样(或平均)以生成所述两个一维阵列。因此,当所述二维阵列是n乘m大小的阵列时,所述两个一维阵列可以分别具有比n和m少的数据值。
所述数据值的两个一维阵列可以表示所述数据值的整个二维阵列。例如,可以仅生成两个一维阵列(例如,针对被表示的数据元阵列的每个特性)来表示所述二维阵列中的数据值。
然而,在一个实施方式中,所述方法包括(并且所述处理电路在工作上能够)针对所述数据值的二维阵列中的多个(例如,独特的)区域中的每个区域来生成数据值的两个一维阵列。因此,优选地,所述方法包括(并且所述处理电路在工作上能够)将所述数据值的二维阵列划分成多个区域,并且生成数据值的相应的多对一维阵列,以分别表示沿着所述二维阵列中的所述多个区域的二个维度的数据值。应当清楚,使用数据值的多对一维阵列对所述二维阵列进行近似可以有助于更准确地表示所述二维阵列中的数据值,同时仍然导致存储器使用的减少。
可以将所述数据值的二维阵列划分成任何合适和期望数量的区域,例如,与出于对所述数据元阵列进行编码的目的而将所述数据元阵列划分成的块相对应。然而,优选地,所述区域不对应于所述编码块,并且例如大于所述编码块(当提供时)。在一个实施方式中,将所述数据值的二维阵列划分成九个(例如,矩形)区域(例如,3×3),并且针对所述二维阵列中的每个区域生成一对一维阵列。
(例如,使用所述二维阵列中的数据值并且)生成所述数据值的两个一维阵列的处理电路可以是所述设备的任何合适和期望的处理电路(例如,级或处理器)。这可以是(但不一定)与用于生成所述数据值的二维阵列的处理电路相同的处理电路。
当所述设备包括视频处理设备(用于对视频图像数据帧进行编码)时,所述编码电路(例如,视频编码器本身)可以生成所述数据值的两个一维阵列,例如作为对所述视频图像数据帧进行编码的处理的一部分(并且例如作为生成所述数据值的二维阵列的处理的一部分)。在另一实施方式中,图像信号处理器或图形处理单元(例如,生成所述视频图像数据帧和例如生成所述数据值的二维阵列的处理器)在工作上能够生成所述数据值的两个一维阵列。
可以针对所述阵列流中的多个(例如,连续的)数据元阵列(例如,每个数据元阵列)生成所述统计数据。由于数据元阵列是单个地(而不是成批地)进行处理和编码的,因此优选地,针对要编码的流中的(例如,每个)数据元阵列,按(单独的)二维阵列来生成所述统计数据。
在另一实施方式(例如,该另一实施方式利用所述阵列流中的连续数据元阵列之间的冗余)中,所述方法包括(并且所述处理电路在工作上能够)生成表示与所述多个阵列中的数据元相关联的一个或更多个特性的数据值的三维阵列。因此,所述数据值的三维阵列优选地包括其它实施方式的所述二维阵列,但是具有第三个“时间”维度。这可以帮助分析所述统计数据的分布在所述数据阵列流中如何随时间变化,例如,用于跟踪随时间变化的大的移动对象、亮度或细节水平(例如,复杂度)。
在这些实施方式中,在生成数据值的三维阵列时,优选地,根据所述数据值的三维阵列来生成数据值的三个一维阵列,例如,可以将统计分布函数f(x,y,z)因式分解成f(x,y,z)≈a(x)b(y)c(z),其中,c(z)是沿“时间”方向(或者沿所述数据元阵列流中的各阵列之间的方向)的所述一维阵列。
生成并存储了所述数据元的两个一维阵列后,在对正在被编码的阵列流中的数据元阵列进行编码时,使用这些一维阵列来对所述数据值的二维阵列中的数据值中的一个或更多个数据值进行近似。通过使用所述两个一维阵列中的恰当的数据元来对所述二维阵列中的数据值进行近似,可以将所述数据元的两个一维阵列用于以任何合适和期望的方式来对所述数据值的二维阵列中的数据值进行近似(例如,重建)。
在一个实施方式中,通过将数据元的所述两个一维阵列中与两个一维阵列中的要近似的数据值的行和列相对应的的数据值一起相乘,并且优选地通过将所述相乘的结果除以所述二维阵列中的所有数据值的总和,来对所述数据值的二维阵列中的数据值进行近似。因而,优选地:
Figure BDA0002257191160000121
其中,fapprox(x,y)是在对所述二维阵列进行近似时的数据值。
如将看到,这种近似需要获知所述二维阵列中的数据值(这些数据值优选地未被存储),以确定分母的二重和(double sum)。然而,所述和只是针对整个所述二维阵列的单个值(或者是所述二维阵列被划分成的每个区域的值,以生成每个区域的所述两个一维阵列),这对于所有要近似的数据值都是相同的。因此,优选地,在生成所述数据值的二维阵列时或者在生成所述数据值的两个一维阵列时,计算并例如存储所述二维阵列中的所有数据值的总和。然后,这允许根据所述两个一维阵列中的数据值来重建所述二维阵列的近似值。
然而,在一些实施方式中,可以简单地通过将与所述数据元的两个一维阵列中的要近似的数据值的行和列相对应的所述两个一维阵列中的数据值一起相乘,而例如不与所述二维阵列中的所有数据值的总和相除,来对所述数据值的二维阵列中的数据值进行近似。例如,当希望跟踪所述流中的不同阵列之间的变化时,这可能是恰当的。因此,在这些实施方式中,可能不需要计算所述二维阵列中的所有数据值的总和。
可以以任何合适和期望的方式来计算所述二维阵列中的所有数据值的总和。在一个实施方式中,通过累加所述二维阵列中的数据值来计算所述总和,因为这些数据值是例如作为生成所述数据值的二维阵列的步骤的一部分而根据所述数据元阵列生成的。
在将所述数据值的二维阵列划分成多个区域以生成数据值的相应的多对一维阵列时,优选地利用数据值的一对一维阵列和所述二维阵列中的恰当区域(即,所述要近似的数据值所处的区域)的所有数据值的总和来近似所述二维阵列中的数据值。为了使得能够跨所有所述二维阵列对数据值进行近似,优选地计算(例如,在生成所述二维阵列时累加)并存储所述二维矩阵中的每个区域中的所有数据值的总和。
优选地,根据需要从所述数据值的两个一维阵列来对所述二维阵列中的特定数据值进行近似,例如,在需要所述二维阵列中的所述特定数据值(所述特定数据值的近似值)来对所述阵列流中的数据元阵列进行编码时。由于不需要重建整个所述二维阵列,因此这有助于减少计算和存储所述二维阵列中的近似数据值所需的处理和存储器。因此,当需要(通过所述编码电路)对数据元阵列进行编码(例如,对所述阵列中的特定位置或者位置块进行编码)时,可以(例如,依次地)计算所述二维阵列中的特定的近似数据值。
优选地,(例如,临时地)存储所述二维阵列中的重建的近似数据值,以使万一再次需要所述重建的近似数据值来对所述数据元阵列中的其它数据元或对其它阵列进行编码,就能获得所述重建的近似数据值。
在对所述二维阵列中的数据值所表示的同一数据元阵列进行编码时,可以使用所述二维阵列中的重建的近似数据值。因此,在一个实施方式中,所述方法包括(并且所述编码电路在工作上能够)在对据以生成所述二维阵列的原始数据值的同一数据元阵列进行编码时,使用数据值的二维阵列中的近似的数据值。
在对所述阵列流中的后续数据元阵列进行编码时,也可以(例如,另选地)使用所述二维阵列中的重建的近似数据值。因此,在其它实施方式中,所述方法包括(并且所述编码电路在工作上能够)在对所述要编码的数据元阵列流中的一个或更多个后续数据元阵列(在据以生成所述二维阵列的原始数据值的所述数据元阵列之后)进行编码时,使用所述数据值的二维阵列中的近似的数据值。
在对所述数据元阵列(即,据以生成所述数据元的二维阵列的数据元阵列)进行编码时或者在对所述流中的一个或更多个后续数据元阵列进行编码时,可以按任何合适和期望的方式来使用所述二维阵列中的重建的近似数据值。这允许基于所述数据值的二维阵列所表示的数据元的所述一个或更多个特性(所述一个或更多个特性的近似的值)来对所述数据元阵列进行编码。此外,允许在要编码的阵列流中的各个数据元阵列之间改变(例如,以定制的方式)所述编码处理。
优选地,所述方法包括(并且所述编码电路在工作上能够)使用(基于)所述数据值的二维阵列中的所述一个或更多个近似的数据值,来控制对要编码的数据元阵列流中的所述数据元阵列或者一个或更多个后续数据元阵列的编码。
可以使用所述数据值的二维阵列中的所述一个或更多个近似的数据值,按任何合适和期望的方式来控制对所述数据元阵列或者所述一个或更多个后续数据元阵列的编码。在一个实施方式中,所述控制步骤包括:基于所述数据值的二维阵列中的所述一个或更多个近似的数据值,在对所述数据元阵列或者所述一个或更多个后续数据元阵列的编码中做出编码决定(然后优选地,根据所述编码决定对所述数据元阵列或者所述一个或更多个后续数据元阵列进行编码)。
这样的决定例如可以包括在关于要如何对所述数据元阵列(例如,所述数据元阵列中的块)或者所述一个或更多个后续数据元阵列(例如,所述一个或更多个后续数据元阵列中的块)进行编码的两个或更多个选项之间进行选择。这有助于做出(例如,最优)编码决定,以便例如针对所述编码的比特流中的输出比特数来优化所述视频图像数据帧的视觉质量(例如,在解码时)。这些编码决定还可以有助于微调对图像中的不同区域(举例来说,如文本、面孔、天空、草地等)的视频图像数据帧的编码。这种微调例如可以取决于所述视频图像数据帧中的不同区域中的其它变量,例如光强度。
要选择的编码选项可以针对特定的块(例如,就所述帧中的数据元而言具有特定大小的块)和/或例如可以包括被用于例如针对特定的块来导出所述基准阵列或基准块的特定的运动矢量和/或特定的编码模式(帧内、帧间、跳过、正向、反向、单向、双向、合并等模式)。
当以逐块方式对所述数据元阵列或者所述一个或更多个后续数据元阵列进行编码时,可以针对块单个地(并且例如独立地)做出编码决定(例如,在编码选项之间进行选择)。然后,优选地根据这些块各自的编码决定对这些块进行编码。这允许针对正在被编码的阵列中的不同数据元块来改变(例如,以定制的方式)对已经被划分成块的数据元阵列的编码。
对所述数据元阵列或者所述一个或更多个后续数据元阵列的编码可以使用数据值的仅单个二维阵列中的重建的近似数据值,其例如可以仅表示所述数据元阵列的单一特性。然而,在一些实施方式中,对所述数据元阵列或者所述一个或更多个后续数据元阵列的编码可以使用数据值的多个二维阵列中的重建的近似数据值,其优选地表示所述数据元阵列的多个特性。
按类似的方式,对所述数据元阵列或者所述一个或更多个后续数据元阵列的编码可以使用已经仅从单个数据元阵列生成的数据值的一个或更多个二维阵列中的重建的近似数据值。然而,在一些实施方式中,对所述数据元阵列或者所述一个或更多个后续数据元阵列的编码可以使用已经分别从多个数据元阵列生成的数据值的多个二维阵列中的重建的近似数据值。应当清楚,当相对于多个其它数据元阵列(例如,其它数据元阵列中的块)来对数据元阵列(例如,数据元阵列中的块)进行编码时,这是有用的。
例如,在对所述数据元阵列或者所述一个或更多个后续数据元阵列进行编码时使用分别从多个数据元阵列生成的数据值的多个二维阵列例如可以与上述实施方式相组合,使得在对所述数据元阵列或者所述一个或更多个后续数据元阵列进行编码时使用已经从多个数据元阵列生成的、优选地表示所述数据元阵列的多个特性的数据值的多个二维阵列。
当从正在编码的数据元阵列生成数据值的二维阵列并且在对同一数据元阵列进行编码时使用该二维阵列中的重建的近似数据值时,作为第一遍可以执行所述数据值的二维阵列的生成,然后作为另一遍,使用该二维阵列中的重建的近似数据值例如针对所述数据元阵列的编码做出编码决定。
在包括选择在对数据元阵列(例如,数据元阵列中的块)进行编码时使用的一组编码选项的实施方式中,在选择编码选项的步骤之后,可以执行编码处理,该编码处理根据所选择的一组编码选项来对所述阵列(例如,所述阵列中的块)进行编码。因此,所述(例如,数据处理)设备可以包括处理电路,该处理电路被配置成执行根据所选择的一组编码选项来对所述阵列(例如,所述阵列中的块)进行编码的编码处理。
所述编码处理可以包括,当选择了在对数据元阵列(例如,数据元阵列中的块)进行编码时使用的所述特定一组编码选项时,根据所选择的特定一组编码选项来对所述阵列(例如,所述阵列中的块)进行编码。另选地,所述编码处理可以包括,当未选择在对阵列(例如,阵列中的块)进行编码时使用的所述特定一组编码选项时,不根据所述特定一组编码选项来对所述阵列(例如,所述阵列中的块)进行编码。在这种情况下,可以根据所选择的不同组的编码选项来对所述数据元阵列(例如,所述数据元阵列中的块)进行编码。
所述编码处理可以采用任何期望和合适的形式。可以根据在对所述数据元阵列进行编码时要使用的标准(例如,MPEG标准)来定义所述编码处理。在实施方式中,所述编码处理可以包括熵编码。
如将清楚,所述编码处理可以包括:针对所选择的一组编码选项生成一组表示源阵列(例如,源阵列中的源块)与基准阵列(例如,基准阵列中的基准块)之间的差异的差值,通过向所述一组差值应用(例如,完整的)正向变换处理来生成针对所述一组差值的频域系数集合,和/或通过向所述一组频域系数应用(例如,完整的)量化处理来生成一组量化系数。然后,可以对所述一组量化系数执行所述(例如,熵)编码。
如将清楚,针对与阵列中的区域相对应的源块执行的所述处理中的任一处理在实践中可以分别针对与所述区域相对应的或者分别与所述阵列中的多个(不同的)区域相对应的多个源块中的各个(例如,每一个)源块来执行。
还应清楚,针对阵列执行的所述处理中的任一处理在实践中可以分别针对所述阵列流中的多个阵列中的各个(例如,每一个)阵列来执行。
在本文所述的任何方面或实施方式中,一旦进行了编码,就可以以任何期望和合适的方式来使用所述编码的块和/或编码的阵列和/或编码的阵列流。例如,可以输出所述编码的块和/或编码的阵列和/或编码的阵列流,例如,存储在存储器中和/或流传输至另一装置。因此,所述(例如,数据处理)设备可以包括输出电路(例如,写出电路),该输出电路被配置成向存储器或者另一装置输出(例如,写出)所述编码的块和/或编码的阵列和/或编码的阵列流。若使用的话,还可以按类似方式输出所述一个或更多个运动矢量。
编码的块和/或编码的阵列和/或编码的阵列流可以在稍后得到和/或接收,例如用于解码。因此,所述(例如,数据处理)设备可以包括输入电路(例如,读入电路),该输入电路被配置成从存储器输入(例如,读入)编码的块和/或编码的阵列和/或编码的阵列流。若使用的话,还可以按类似方式输入所述一个或更多个运动矢量。
在对阵列(例如,阵列中的块)进行编码之后,可以进行对编码的阵列(例如,编码的阵列中的块)进行解码的解码处理。因此,所述(例如,数据处理)设备可以包括处理电路,该处理电路被配置成执行对编码的阵列(例如,编码的阵列中的块)进行解码的解码处理。所述解码处理可以采取例如与在对所述编码的阵列(例如,编码的阵列中的块)进行编码时使用的编码处理相对应的任何期望和合适的形式。可以根据在对所述数据元阵列进行编码时所使用的标准(例如,MPEG标准)来定义所述解码处理。例如,所述解码处理可以包括熵解码。
在本文所述的任何方面或实施方式中,一旦进行了确定,就可以以任何期望和合适的方式来使用解码的阵列(例如,解码的阵列中的块)中的数据元。
例如,可以输出(例如,通过输出(例如,显示)处理器)解码的阵列(例如,解码的阵列中的块)中的数据元,例如,用于显示。在这些实施方式中,所述数据元阵列可以对应于图像,例如,图像数据帧,并且所述数据元可以对应于一个或多个像素。
可以由任何期望和合适的设备来执行本文在任何方面或实施方式中描述的处理。例如,可以由视频处理器(编解码器)来执行本文在任何方面或实施方式中描述的处理。因此,本文在任何方面或实施方式中描述的(例如,数据处理)设备可以包括或者可以是视频处理器。因此,本文在任何方面或实施方式中描述的编码电路、处理电路、输出电路或写出电路、输入电路或读入电路等可以形成视频处理器的一部分。本文在任何方面或实施方式中描述的数据处理设备可以包括或者可以是芯片上系统(SoC),或者可以形成芯片上系统(SoC)的一部分。
本文所指的存储器可以是或者是用于所述(例如,数据处理)设备的任何期望的和合适的存储器。所述存储器可以在所述数据处理设备(例如,视频处理器和/或芯片上系统(SoC))的外部。所述存储器例如可以是主系统存储器。
可以将本发明用于数据处理设备可以提供和/或使用的所有形式的数据阵列,例如用于显示的图像或帧。因此,如上所述,所述数据元阵列可以包括图像数据和/或可以对应于图像或图像数据帧。
在实施方式中,在提供和/或使用所述数据元阵列的单个数据(例如,图像)处理平台上执行本发明的各种功能。
如本领域技术人员应当清楚,本发明的(例如,数据处理)设备可以是例如包括主机(例如,中央)处理器的总体数据处理系统的一部分。所述主机处理器例如可以执行需要所述(例如,数据处理)设备进行数据处理的应用。所述主机处理器可以向所述(例如,数据处理)设备发送恰当的命令和数据,以控制该设备执行数据处理操作,并生成和/或使用由在所述主机处理器上执行的应用所需的输出。为此,所述主机处理器可以执行用于所述(例如,数据处理)设备的驱动程序和/或可以执行一个或多个编译器,用于编译要由所述(例如,数据处理)设备的可编程执行单元执行的程序。
在实施方式中,所述设备或系统可以包括存储本文所述的数据和/或存储用于执行本文所述的处理的软件的一个或更多个存储器和/或存储器装置,和/或可以与所述一个或更多个存储器和/或存储器装置进行通信。所述设备或系统可以包括用于基于所述阵列中的数据元来显示图像的显示器,和/或可以与所述显示器进行通信。所述设备或系统可以包括生成所述数据元阵列的视频摄像机,和/或可以与所述视频摄像机进行通信。
本发明可以在任何合适的系统中实现,例如适当配置的计算机或者基于微处理器的系统。在优选实施方式中,本发明是在计算机和/或基于微处理器的系统中实现的。
可以按任何期望和合适的方式来执行本发明的各种功能。例如,可以根据需要按硬件或软件来实现本发明的步骤和功能。因此,例如,除非另外加以表明,本发明的各种电路、功能部件、级(stage)以及“装置(means)”可以包括在工作上能够执行各种步骤或功能等的合适的一个或多个处理器、一个或多个控制器、功能单元、电路、处理逻辑、微处理器装置等,例如可以被编程成按期望的方式工作的恰当的专用硬件部件(处理电路)和/或可编程硬件部件(处理电路)。
可以在指定处理器上复制和/或并行执行本发明的各种步骤或功能等。同等地,若希望的话,各种处理级可以共用处理电路等。
针对必需执行上面讨论的特定的步骤或功能等的任何硬件的主旨,所述系统可以以其它方式包括所述数据处理设备和/或系统所包括的常见功能单元等中的任一个或更多个或全部。
各种数据处理级因此可以根据需要并且以任何合适的方式来实现,并且可以分别执行任何期望和合适的功能。类似地,可以以任何合适和期望的方式来定义和存储各种数据。
本领域技术人员还应清楚,本发明的所有描述的实施方式在合适时候,可以(并且在实施方式中)包括本文所述的特征中的任一个或更多个或全部。
根据本发明的方法可以至少部分地利用软件(例如,计算机程序)来实现。由此,本发明的进一步的实施方式包括:计算机软件,该计算机软件在安装在数据处理器上时具体适于执行本文所述的方法;计算机程序部件,该计算机程序部件包括当在数据处理器上运行该程序部件时执行本文所述的方法的计算机软件代码部分;以及计算机程序,该计算机程序包括当在数据处理器上运行该程序时适于执行本文所述的一种或多种方法的全部步骤的代码。所述数据处理器可以是微处理器系统、可编程FPGA(现场可编程门阵列)等。
本发明还扩展至包括这种软件的计算机软件载体,所述计算机软件载体在被用于操作包括数据处理器的数据处理设备或系统时,使与所述数据处理器、所述设备或系统结合地执行本发明的方法的步骤。这种计算机软件载体可以是物理存储介质,例如ROM芯片、CD ROM、RAM、闪速存储器或磁盘,或者可以是信号,例如导线传输电子信号、诸如卫星的光学信号或无线电信号等。
还应清楚,不是本发明的方法的所有步骤都需要通过计算机软件来执行,并由此,在进一步的实施方式中包括用于执行本文阐述的方法的步骤中的至少一个步骤的计算机软件和安装在计算机软件载体上的这种软件。
因此,本发明可以适当地具体实施为与计算机系统一起使用的计算机程序产品。这种实现可以包括在诸如计算机可读介质(例如,软盘、CD、DVD、ROM、RAM、闪速存储器或硬盘)的有形的非暂时性介质上固定的一系列计算机可读指令。这种实现还可以包括能通过有形的介质(包括但不限于光学或模拟通信线路),或者利用无线技术(包括但不限于微波、红外线或其它传输技术)无形地,经由调制解调器或其它接口装置向计算机系统传输的一系列计算机可读指令。该一系列计算机可读指令具体实施本文先前描述的全部或部分功能。
本领域技术人员应当清楚,这种计算机可读指令可以采用许多编程语言来编写,以用于随许多计算机架构或操作系统一起使用。而且,这种指令可以利用当前或将来的任何存储器技术(包括但不限于半导体、磁或光学存储器技术)来存储,或者利用当前或将来的任何通信技术(包括但不限于光学、红外线或微波通信技术)来传送。设想的是,这种计算机程序产品可以作为具有附随打印或电子文档的可去除介质(例如,收缩包装软件)分发、随计算机系统预装(例如,在系统ROM或固定盘上),或者从服务器或电子公告板通过网络(例如,因特网或万维网)分发。
附图说明
下面,仅通过示例的方式并且参照附图,对本发明的各种实施方式进行描述,其中:
图1示意性地示出了可以根据本发明的实施方式操作的数据处理系统的实施方式;
图2示出了详细说明根据本发明的实施方式的用于对图像数据帧流进行编码的步骤的流程图;
图3示意性地示出了根据本发明的实施方式的针对两个被编码的视频图像数据帧的编码数据流;
图4的(a)示出了根据本发明的实施方式的在对视频图像数据帧进行编码时生成的统计数据的二维阵列的示例;
图4的(b)示出了根据本发明的实施方式生成的重建的近似数据值的二维阵列;以及
图5的(a)、(b)以及(c)示出了要编码的视频图像数据帧和根据本发明生成的统计数据的二维阵列。
具体实施方式
附图示出了与本发明的实施方式相关的数据处理设备和系统的部件。如本领域技术人员应当清楚,可能存在附图中未例示的数据处理设备和系统的其它部件。在此还应注意,附图仅是示意性的,而且例如,实际上,所示部件可以共用有效的硬件电路,即使这些部件附图被示意性地示出为单独的部件。
如上所述,本发明的实施方式涉及对数据元阵列进行编码。现在,在对图像数据帧进行编码以用于显示的背景下,来对本发明的各种实施方式进行描述。然而,本文所述的概念可以等同地应用于要编码其它类型的数据的阵列的背景中。
图1示意性地示出了数据处理系统1的实施方式,该数据处理系统1可以提供和使用已经以本实施方式的方式进行了编码的诸如用于显示的帧的数据阵列。
在这个实施方式中,系统1包括采用芯片上系统(SoC)2的形式的数据处理设备。系统1还包括芯片外(主)存储器16、显示装置18以及视频摄像机20。
SoC 2包括中央处理单元(CPU)4、图形处理单元(GPU)6、视频处理器8、显示控制器10、互连部12以及存储器控制器14。视频处理器8包括比特流编码器9。
如在图1中示出的,CPU 4、GPU 6、视频处理器8以及显示控制器10经由互连部12彼此通信,并且经由互连部12和存储器控制器14与存储器16通信。显示控制器10还与显示装置18通信。视频摄像机20还经由互连部12与SoC 2通信。
在下面的实施方式中,视频处理器8从存储器16读入图像数据,视频处理器8的比特流编码器9对该图像数据进行编码,然后输出编码的图像数据的比特流,例如用于存储在存储器16中或用于流传输至另一装置。稍后可以例如由视频处理器8来得到并解码编码的图像数据,或者由另一个装置来接收和解码编码的图像数据。然后,可以例如由针对显示装置18的显示控制器10或者由另一装置输出解码的图像数据,以用于显示。
在这些实施方式中,可以从存储器16经由互连部12和存储器控制器14向视频处理器8提供要编码的当前“源”帧。按类似的方式,可以从存储器16经由互连部12和存储器控制器14向视频处理器8的比特流编码器9提供在对源帧进行编码时可以使用的一个或更多个先前和/或后续的“基准”帧。
在这些实施方式中,将源帧划分成要逐块地进行编码的多个源块。每个源块的大小初始为16×16数据元(像素)。然而,例如,如果要提供较低成本的编码,那么可以将每个源块进一步划分成两个16×8或8×16的源块或者四个8×8的源块。例如,如果要再次提供更低成本的编码,那么还可以将这些较小的源块中的每个较小的源块进一步划分成两个8×4或4×8的源块或者四个4×4的源块。当然,可以根据需要使用其它的源块大小。
在这些实施方式中,可以采用多种不同的模式中的一种模式来对源块进行编码,例如,要由视频处理器8的比特流编码器9根据所述源块和帧的性质确定的模式。在一种模式下,例如,使用源帧本身内的另一个块对源块进行编码,即,使用例如利用帧中的冗余的“帧内”模式编码。
而且在这些实施方式中,将所述一个或更多个基准帧划分成在对源帧进行编码时可以使用的多个块(这些块的大小可以与源块相对应),即,使用“帧间”模式编码。这种编码模式可以使用运动矢量来相对于基准帧对源帧进行编码,所述运动矢量描述如何将特定源帧中的特定源块映射(例如,通过平移、旋转和/或缩放)至基准块。
此外,可以在这些实施方式中使用的另一种模式是“跳过”模式,在该“跳过”模式中,源帧中的块不是相对于一个或更多个基准帧中的对应块来进行编码的(因此,除了所述块是“跳过”块的指示以外,没有针对所述源块生成编码的数据)。相反,通过使用并依赖于相邻块的编码(例如,运动矢量)来估计该“跳过”块的运动矢量,对“跳过”块进行解码。
现在,参照图2、图3、图4的(a)和(b),更详细地描述视频处理器8对数据元阵列流(例如图像数据帧流)中的数据元阵列进行编码的编码处理。
图2示出了详细说明用于对图像数据帧流进行编码的步骤的流程图,其中,根据在对前一帧进行编码时收集的统计数据来选择关于如何对帧进行编码的编码选项。图3示意性地示出了根据本发明的实施方式的针对两个被编码的视频图像数据帧的编码数据流。图4的(a)和(b)示出了根据本发明的实施方式的在对视频图像数据帧进行编码时生成的统计数据的二维阵列(和该二维阵列的重建的近似)的示例。
使用视频处理器8以对视频图像数据帧序列中的视频图像数据帧进行编码(步骤101,图2)。当视频图像数据帧被编码(例如,相对于所述帧序列中的前一帧)时,视频处理器8收集该帧的统计数据的二维阵列(步骤102,图2)。
表示正在被编码的帧的一个或更多个特性的这种统计数据尤其可以包括以下项中的一项或更多项:所述帧的块或像素的强度、所述帧中的块的复杂度、所述帧中的块或像素相对于所述流中的前一帧(或后续帧)中的相应块或像素的移动、以及用于对所述块或所述帧进行编码的编码类型。
然后,在对所述视频图像帧序列中的后续帧进行编码时使用作为对帧进行编码的一部分而由视频处理器8生成的所述帧的这种统计数据。例如,使用所述统计数据来选择在对正在被编码的帧流中的下一帧进行编码时要使用的特定编码选项。如上所述,一组编码选项可以针对特定的源块(例如,就所述帧中的数据元而言具有特定大小的块)和/或例如可以包括被用于针对所述特定的源块来导出所述基准块的特定运动矢量和/或特定编码模式(帧内、帧间、跳过、正向、反向、单向、双向、合并等模式)(步骤103,图2)。
下面,参照图3,更详细地描述在对视频图像数据帧序列中的后续帧进行编码时收集和使用来自一个帧的统计数据的处理。
一旦选择了编码选项(针对源块或帧),使用在对源帧进行编码期间生成的统计数据,根据这些选择的编码选项对下一源帧进行编码(步骤104,图2)。一旦以这种方式对源帧进行了编码,视频处理器8将编码的帧经由互连部12和存储器控制器14写出至存储器16(步骤105,图2)。
同时,针对所述视频图像数据帧流中的后续帧重复以下处理:生成正在被编码的下一源帧的统计数据的二维阵列,使用该统计数据来选择下一帧的编码选项,然后根据所选择的编码选项对所述流中的下一帧进行编码(步骤102至步骤104,图2)。
而且,图2还示出了对编码的帧进行解码的(某种程度上简化了的)处理(在需要该处理时)。首先,视频处理器8经由存储器控制器14和互连部12从存储器16读入编码的帧(步骤106,图2)。视频处理器8(例如,由还可以工作以对编码的帧进行解码的比特流编码器9)对已读入的编码的帧进行解码(步骤107,图2)。然后,由视频处理器8将视频图像数据的解码的帧经由显示控制器10例如输出至显示装置18。
对所述流中的所有帧重复该处理。对于已相对于所述视频图像数据帧流中的其它块或帧进行了编码的编码的比特流中的块或帧,使用编码这些块或帧所相对于的块或帧来对这些块或帧进行解码。
图3中更详细地示出了在对视频图像数据帧序列中的后续帧进行编码时收集和使用来自一个帧的统计数据的处理。
对于帧序列中的帧(“帧1”201),(由视频处理器8的比特流编码器9)向帧201应用编码处理202(相当于步骤101,图2),以便生成该帧的编码的比特流203。然后,输出编码的比特流203,例如,用于存储在图1所示的数据处理系统1的存储器16中或者用于流传输至另一装置。
在编码处理202期间,视频处理器8收集帧201的统计数据204。按与视频图像数据的二维帧相对应的二维阵列来收集统计数据204。
图4的(a)示出了在对视频图像数据帧进行编码期间可以生成的统计数据的二维阵列21的示例。应注意到,图4的(a)所示的二维阵列21的大小和该二维阵列21中的数据值是在对所述视频图像数据帧进行编码时可以生成的内容的简化版本,并且是仅出于说明的目的来提供的。
所生成的统计数据的二维阵列21包含表示正在被编码的视频图像数据帧中的数据元的特性的数据值22。每个数据值22例如对应于正在被编码的视频图像数据帧中的数据元或数据元块。如上所示,由二维阵列21中的数据值22表示的特性例如可以包括所述帧中的块或像素的强度、所述帧中的块的复杂度、所述帧中的块或像素相对于所述流中的前一帧(或后续帧)中的相应块或像素的移动、以及用于对所述块或所述帧进行编码的编码类型。如果需要表示多个特性,则生成恰当数量的二维阵列。
为了在存储统计数据时使用存储器中的较少存储空间,将统计数据的二维阵列21转换成数据值的两个一维阵列23、24。在图4的(a)中与统计数据的二维阵列21的边缘并排地示出这两个一维阵列23、24。
所述两个一维阵列23、24是通过对二维阵列21中的每行(针对沿垂直(y)方向的一维阵列23)和二维阵列21中的列(针对沿水平(x)方向的一维阵列24)中的数据值22进行求和来生成的。
因此,换句话说,对于由二维函数f(x,y)表示的二维阵列21,可以将二维阵列21因式分解成两个一维阵列a(x)24和b(y)23,即,f(x,y)≈a(x)b(y),其中,a(x)=∑yf(x,y)并且b(y)=∑xf(x,y)。
生成两个一维阵列23、24使得能够使用比二维阵列21所需的存储器少的存储器来存储所述统计数据。例如,从图4的(a)可以看出,仅需要16个数据值来存储所述两个一维阵列23、24,而将需要64个数据值来存储二维阵列21中的所有数据值22。应当清楚,存储器使用量的节省是随着二维阵列21的大小的增加而增加的。
为了使用存储在所述两个一维阵列23、24中的统计数据(例如,在图2的步骤103中),根据所述两个一维阵列23、24来重建二维阵列21的近似版本。图4的(b)示出了数据值的重建的二维阵列25。
使用所述两个一维阵列23、24中的数据值,使用下式重建数据值的二维阵列25中的近似数据值26:
Figure BDA0002257191160000251
其中,fapprox(x,y)是在对二维阵列进行近似时位置(x,y)处的数据值。
将数据值的二维阵列25中的近似数据值26(如图4的(b)所示)与最初生成的二维阵列21中的的数据值22(如图4的(a)所示)进行比较,可以看出,虽然数据值的二维阵列25中的近似数据值26与最初生成的二维阵列21中的数据值22对应的准确度有一些变化(由于在生成所述数据值的两个一维阵列23、24时的细节丢失的缘故),但在数据值的二维阵列25中的近似数据值26中保留了最初生成的二维阵列21中的数据值22的总体趋势(分别如图4的(a)和图4的(b)的二维阵列21、25中的阴影所示)。
因此,数据值的二维阵列25中的近似数据值26仍然提供能够被用于在对所述帧流中的视频图像数据帧进行编码时做出用于编码的决定的有用信息。然而,如果需要对二维阵列21中的数据值22进行更准确的近似,则可以根据初始二维阵列21生成数据值的更多一维阵列,如现在将参照图5的(a)、(b)以及(c)描述的。
图5的(a)示出了要编码的视频图像数据帧31。图5的(b)示出了可以通过跨与视频图像数据帧31中的区域相对应的二维阵列32生成数据值来组织视频图像数据帧31的统计数据。然后,可以例如以上面参照图4的(a)描述的方式,针对二维阵列32的两个轴生成两个一维阵列。
现在,参照图5的(c),对其中生成数据值的大量一维阵列的另选实施方式进行描述。图5的(c)示出了可以通过跨与帧31中的不同区域相对应的多个(例如,九个)二维阵列33生成数据值来组织视频图像数据帧31的统计数据。
对于这些区域中的每个区域,生成单独的二维阵列33。然后,对于数据值的每个单独的二维阵列33,按与仅生成单个二维阵列时的方式相同的方式,生成数据值的两个一维阵列,除了所述数据值的一维阵列是针对所述视频图像数据帧中的相应区域生成的以外。
可以看出,将生成的统计数据的组织(organisation)划分成数据值的多个二维阵列33,所述数据值的一维阵列在编码处理需要它们的数据值时,将使得能够对要重建的二维阵列33进行更准确的近似。
下一帧的编码处理所需的近似数据值26是到需要它们的时候才重建的。然而,当最初生成二维阵列21中的数据值22时(在对视频图像数据帧进行编码期间),将累加二重和∑xyf(x,y),并且存储该单一求和值以在计算各个近似数据值26时使用。
返回参照图3,一旦重建了统计数据204的近似版本205(即,如图4的(b)所示的数据值的二维阵列25中的一个或更多个近似数据值26),就可以在针对视频图像数据帧流中的下一帧(“帧2”207)的编码处理206中使用这些数据值26。
例如,可以将数据值的二维阵列25中的重建的近似数据值26用于选择在对正在被编码的帧流中的下一帧进行编码时要使用的特定编码选项。如上所述,所述一组编码选项可以针对特定源块(例如,就所述帧中的数据元而言具有特定大小的块)和/或例如可以包括被用于针对所述特定源块来导出所述基准块的特定运动矢量和/或特定编码模式(帧内、帧间、跳过、正向、反向、单向、双向、合并等模式)。
与对视频图像数据帧流中的前一帧(“帧1”201)进行编码一样,对所述视频图像数据帧流中的该下一帧(“帧2”207)进行编码生成了该帧的编码的比特流208。类似地,然后输出该编码的比特流208,例如,用于存储在图1所示的数据处理系统1的存储器16中或者用于流传输至另一装置。因此,对于所述流中的被编码的视频图像数据帧,输出所述视频图像数据帧的编码比特流203、208。
而且,如针对视频图像数据帧流中的前一帧(“帧1”201)所进行的那样,在所述流中的下一帧(“帧2”207)的编码处理206期间,视频处理器8收集帧207的统计数据209。再次按与视频图像数据的二维帧相对应的二维阵列来收集该统计数据209(举例来说,如图4的(a)所示)。
将已经以数据值的二维阵列的格式生成的帧207的统计数据209用于生成数据值的两个一维阵列(如图4的(a)所示),然后将所述两个一维阵列存储在存储器中。然后,当所述视频图像数据帧流中的下一帧(例如“帧3”)的编码处理需要所述二维阵列中的(近似的)数据值时,可以将数据值的这两个一维阵列用于计算帧207的近似统计数据210(举例来说,如在图4的(b)所示的近似的数据值的二维阵列中所示)。
针对所述要编码的帧流中的所有视频图像数据帧执行该重复的处理,从而使得能够在对所述流中的下一帧进行编码时使用已经为所述流中的一个帧生成的统计数据的近似的版本。
若希望的话,可以对本发明的上述实施方式进行多种改变、修改以及另选。
可以在其中使用数据元阵列的任何期望和合适的数据处理设备或系统中使用本实施方式。因此,例如,除了视频处理系统之外,本实施方式还可以在其它数据处理系统中使用,例如图像处理系统,以及图形处理系统。
如从上面可以看出,本发明至少在其优选实施方式中,提供了一种在对数据元阵列进行编码时使用统计数据的改进机制。这至少是在本发明的优选实施方式中,通过使用数据值的两个一维阵列,对表示被编码的数据元阵列的一个或更多个特性的数据值的二维阵列中的数据值进行近似来实现的。

Claims (21)

1.一种对数据元阵列流中的数据元阵列进行编码的方法,所述方法包括以下步骤:
在对要编码的数据元阵列流中的数据元阵列进行编码时:
根据数据值的二维阵列中的数据值来生成数据值的两个一维阵列,其中,所述数据值的二维阵列中的数据值表示所述数据元阵列中的数据元中的至少一些数据元的一个或更多个特性,并且其中,所述数据值的两个一维阵列中的数据值分别表示沿着所述数据值的二维阵列的两个维度的数据值;
存储所述数据值的两个一维阵列;以及
在对所述要编码的数据元阵列流中的所述数据元阵列或者一个或更多个后续数据元阵列进行编码时,使用所述数据值的两个一维阵列来对所述数据值的二维阵列中的数据值中的一个或更多个数据值进行近似。
2.根据权利要求1所述的方法,所述方法还包括以下步骤:根据所述数据元阵列生成所述数据值的二维阵列,其中,所述数据值的二维阵列中的数据值表示所述数据元阵列中的数据元中的至少一些数据元的一个或更多个特性。
3.根据权利要求1或2所述的方法,其中,所述一个或更多个特性包括所述阵列中的数据元的强度或亮度、所述阵列中的数据元的复杂度、所述阵列中的数据元在所述阵列流中的各阵列之间的变化量和/或正在被编码的数据元阵列被编码为的编码的阵列的类型。
4.根据权利要求3所述的方法,所述方法还包括以下步骤:针对所述数据元阵列中的多个区域中的每个区域评估所述阵列中的数据元的复杂度,其中,每个区域对应于所述数据元阵列中的多个数据元。
5.根据权利要求1或2所述的方法,其中,所述二维阵列中的数据值表示二维统计分布,并且所述数据值的所述两个一维阵列包括相应的一维统计分布,其中,所述方法还包括以下步骤:通过将所述二维统计分布进行因式分解来生成两个一维统计分布。
6.根据权利要求1或2所述的方法,所述方法还包括以下步骤:针对沿着所述一维阵列的方向的数据值的每个集合,通过对所述二维阵列中的数据值进行积分来生成所述数据值的两个一维阵列。
7.根据权利要求1或2所述的方法,所述方法还包括以下步骤:将所述数据值的二维阵列划分成多个区域,并且生成数据值的相应多对一维阵列,以分别表示沿着所述二维阵列中的所述多个区域的两个维度的数据值。
8.根据权利要求1或2所述的方法,所述方法还包括以下步骤:通过将与所述数据元的两个一维阵列中要近似的数据值的行和列相对应的所述两个一维阵列中的数据值一起相乘,并且除以所述二维阵列中的所有数据值的总和,来对所述数据值的二维阵列中的数据值进行近似。
9.根据权利要求1或2所述的方法,所述方法还包括以下步骤:使用所述数据值的二维阵列中的一个或更多个近似的数据值,来控制对所述要编码的数据元阵列流中的所述数据元阵列或者一个或更多个后续数据元阵列的编码。
10.根据权利要求9所述的方法,其中,所述控制步骤包括:基于所述数据值的二维阵列中的所述一个或更多个近似的数据值,在对所述数据元阵列或者所述一个或更多个后续数据元阵列的编码中做出编码决定。
11.一种对数据元阵列流中的数据元阵列进行编码的设备,所述设备包括:
编码电路,所述编码电路在工作上能够对数据元阵列流中的数据元阵列进行编码;
处理电路,所述处理电路在工作上能够:
根据数据值的二维阵列中的数据值来生成数据值的两个一维阵列,其中,所述数据值的二维阵列中的数据值表示所述数据元阵列中的数据元中的至少一些数据元的一个或更多个特性,并且其中,所述数据值的两个一维阵列中的数据值分别表示沿着所述数据值的二维阵列的两个维度的数据值;以及
存储器,所述存储器在工作上能够存储所述数据值的两个一维阵列,
其中,所述处理电路在工作上还能够使用所述数据值的两个一维阵列来对所述数据值的二维阵列中的数据值中的一个或更多个数据值进行近似,并且
其中,所述编码电路在工作上还能够在对要编码的数据元阵列流中的所述数据元阵列或者一个或更多个后续数据元阵列进行编码时,使用所述数据值的二维阵列中的一个或更多个近似的数据值。
12.根据权利要求11所述的设备,其中,所述编码电路在工作上能够根据所述数据元阵列生成所述数据值的二维阵列,其中,所述数据值的二维阵列中的数据值表示所述数据元阵列中的数据元中的至少一些数据元的一个或更多个特性。
13.根据权利要求11或12所述的设备,其中,所述一个或更多个特性包括所述阵列中的数据元的强度或亮度、所述阵列中的数据元的复杂度、所述阵列中的数据元在所述阵列流中的各阵列之间的变化量和/或正在被编码的数据元阵列被编码为的编码的阵列的类型。
14.根据权利要求13所述的设备,其中,所述处理电路在工作上能够针对所述数据元阵列中的多个区域中的每个区域来评估所述阵列中的数据元的复杂度,其中,每个区域对应于所述数据元阵列中的多个数据元。
15.根据权利要求11或12所述的设备,其中,所述二维阵列中的数据值表示二维统计分布,并且所述数据值的两个一维阵列包括相应的一维统计分布,并且其中,所述处理电路在工作上能够通过将所述二维统计分布进行因式分解来生成两个一维统计分布。
16.根据权利要求11或12所述的设备,其中,所述处理电路在工作上能够针对沿着所述一维阵列的方向的数据值的每个集合,通过对所述二维阵列中的数据值进行积分来生成所述数据值的两个一维阵列。
17.根据权利要求11或12所述的设备,所述设备还包括:将所述数据值的二维阵列划分成多个区域,并且生成数据值的相应多对一维阵列,以分别表示沿着所述二维阵列中的所述多个区域的两个维度的数据值。
18.根据权利要求11或12所述的设备,其中,所述处理电路在工作上能够通过将与所述数据元的两个一维阵列中要近似的数据值的行和列相对应的所述两个一维阵列中的数据值一起相乘,并且除以所述二维阵列中的所有数据值的总和,来对所述数据值的二维阵列中的数据值进行近似。
19.根据权利要求11或12所述的设备,其中,所述编码电路在工作上能够使用所述数据值的二维阵列中的所述一个或更多个近似的数据值,来控制对要编码的数据元阵列流中的所述数据元阵列或者一个或更多个后续数据元阵列的编码。
20.根据权利要求19所述的设备,其中,所述编码电路在工作上能够通过基于所述数据值的二维阵列中的所述一个或更多个近似的数据值,在对所述数据元阵列或者所述一个或更多个后续数据元阵列的编码中做出编码决定来控制所述编码。
21.一种存储计算机软件代码的计算机可读存储介质,该计算机软件代码当在数据处理系统上执行时,执行根据权利要求1至10中任一项所述的方法。
CN201911058443.5A 2018-11-02 2019-11-01 对数据阵列进行编码 Active CN111147866B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1817920.0A GB2578633B (en) 2018-11-02 2018-11-02 Encoding data arrays
GB1817920.0 2018-11-02

Publications (2)

Publication Number Publication Date
CN111147866A true CN111147866A (zh) 2020-05-12
CN111147866B CN111147866B (zh) 2023-12-08

Family

ID=64655680

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911058443.5A Active CN111147866B (zh) 2018-11-02 2019-11-01 对数据阵列进行编码

Country Status (3)

Country Link
US (1) US10958906B2 (zh)
CN (1) CN111147866B (zh)
GB (1) GB2578633B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2578633B (en) * 2018-11-02 2021-10-13 Advanced Risc Mach Ltd Encoding data arrays
US11729387B1 (en) * 2020-12-03 2023-08-15 Amazon Technologies, Inc. Automatic configuration of settings for a video encoder

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796435A (en) * 1995-03-01 1998-08-18 Hitachi, Ltd. Image coding system with adaptive spatial frequency and quantization step and method thereof
CN1764279A (zh) * 2001-09-18 2006-04-26 微软公司 图像和视频编码用的改进的块变换和量化
US20140307782A1 (en) * 2011-11-07 2014-10-16 Canon Kabushiki Kaisha Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and storage medium
CN105612744A (zh) * 2013-10-01 2016-05-25 索尼公司 视频数据编码和解码
JP2017147508A (ja) * 2016-02-15 2017-08-24 日本放送協会 符号化装置、復号装置、及びプログラム
CN107896331A (zh) * 2016-10-03 2018-04-10 Arm有限公司 选择编码选项的方法、数据处理装置、计算机可读存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0479510B1 (en) * 1990-09-29 2000-06-28 Victor Company Of Japan, Ltd. Image signal coding/decoding system using adaptive quantization
DE69231426T2 (de) * 1991-02-07 2001-02-22 Canon Kk Vorrichtung zum Kodieren von Bildern
KR0176448B1 (ko) * 1991-07-19 1999-05-01 강진구 이미지 코딩 방법 및 장치
US5726711A (en) * 1993-01-13 1998-03-10 Hitachi America, Ltd. Intra-coded video frame data processing methods and apparatus
US5440346A (en) * 1993-06-16 1995-08-08 Intel Corporation Mode selection for method and system for encoding images
JP3733161B2 (ja) * 1995-08-01 2006-01-11 キヤノン株式会社 画像処理装置および方法
US6167161A (en) * 1996-08-23 2000-12-26 Nec Corporation Lossless transform coding system having compatibility with lossy coding
US8588295B2 (en) * 2009-03-09 2013-11-19 Mediatek Inc. Methods and electronic devices for quantization and de-quantization
US10277915B2 (en) * 2011-11-07 2019-04-30 Qualcomm Incorporated Signaling quantization matrices for video coding
US9392288B2 (en) * 2013-10-17 2016-07-12 Google Inc. Video coding using scatter-based scan tables
GB2578633B (en) * 2018-11-02 2021-10-13 Advanced Risc Mach Ltd Encoding data arrays

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796435A (en) * 1995-03-01 1998-08-18 Hitachi, Ltd. Image coding system with adaptive spatial frequency and quantization step and method thereof
CN1764279A (zh) * 2001-09-18 2006-04-26 微软公司 图像和视频编码用的改进的块变换和量化
US20140307782A1 (en) * 2011-11-07 2014-10-16 Canon Kabushiki Kaisha Image coding apparatus, image coding method, image decoding apparatus, image decoding method, and storage medium
CN105612744A (zh) * 2013-10-01 2016-05-25 索尼公司 视频数据编码和解码
JP2017147508A (ja) * 2016-02-15 2017-08-24 日本放送協会 符号化装置、復号装置、及びプログラム
CN107896331A (zh) * 2016-10-03 2018-04-10 Arm有限公司 选择编码选项的方法、数据处理装置、计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
于洋;崔新宇;桑爱军;陈绵书;陈贺新;李晓妮;: "快速Walsh变换与多视角视频编码", 中国光学, no. 02, pages 56 - 62 *
桑爱军;穆森;王墨林;崔海廷;陈贺新;: "基于多维矢量矩阵的多视角视频编码", 吉林大学学报(工学版), no. 04, pages 267 - 272 *

Also Published As

Publication number Publication date
GB2578633B (en) 2021-10-13
US20200145660A1 (en) 2020-05-07
GB2578633A (en) 2020-05-20
CN111147866B (zh) 2023-12-08
GB201817920D0 (en) 2018-12-19
US10958906B2 (en) 2021-03-23

Similar Documents

Publication Publication Date Title
Hu et al. Learning end-to-end lossy image compression: A benchmark
Hu et al. Improving deep video compression by resolution-adaptive flow coding
Kim et al. A real-time convolutional neural network for super-resolution on FPGA with applications to 4K UHD 60 fps video services
KR101274804B1 (ko) 통합된 공간 시간 예측
CN111986278B (zh) 图像编码装置、概率模型生成装置和图像压缩系统
CN109756734B (zh) 对数据阵列进行编码的方法和设备
CN107211131B (zh) 对数字图像块进行基于掩码的处理的系统和方法
CN101103632A (zh) 利用动态地基于法向流的量化步长来处理视频信号的方法
US9621901B1 (en) Encoding of computer-generated video content
US10148963B2 (en) Methods of and apparatus for encoding data arrays
KR20130105843A (ko) 저 복잡도 부호화의 비디오 코덱 방법 및 장치
CN107005702B (zh) 用于处理数字图像的块的系统和方法
CN111147866B (zh) 对数据阵列进行编码
CN109246430A (zh) 虚拟现实360度视频快速帧内预测和cu划分提前决策
CN107896331B (zh) 选择编码选项的方法、数据处理装置、计算机可读存储介质
Shin et al. Expanded adaptive scaling normalization for end to end image compression
US20190158847A1 (en) Encoding data arrays
US10979704B2 (en) Methods and apparatus for optical blur modeling for improved video encoding
CN111343465A (zh) 电子电路和电子设备
KR102250088B1 (ko) 비디오 스트림을 복호화하는 방법 및 장치
CN103248885B (zh) 帧内图像预测编解码方法及视频编解码器
US10764607B2 (en) Data processing systems for encoding video data
US10924738B2 (en) Selecting encoding options
Popa et al. Hardware acceleration of background modeling in the compressed domain
WO2023245460A1 (en) Neural network codec with hybrid entropy model and flexible quantization

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant