CN104603834A - 用于多媒体数据处理的方法和系统 - Google Patents

用于多媒体数据处理的方法和系统 Download PDF

Info

Publication number
CN104603834A
CN104603834A CN201380046732.8A CN201380046732A CN104603834A CN 104603834 A CN104603834 A CN 104603834A CN 201380046732 A CN201380046732 A CN 201380046732A CN 104603834 A CN104603834 A CN 104603834A
Authority
CN
China
Prior art keywords
block
buffer memory
pixel block
reference pixel
pixels
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.)
Pending
Application number
CN201380046732.8A
Other languages
English (en)
Inventor
H·桑加维
M·V·R·雷迪
A·D·古普塔
A·巴沙克
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments 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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of CN104603834A publication Critical patent/CN104603834A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

在某些实施例中,提供了一种用于多媒体数据处理的方法和系统。在一实施例中,一种用于处理多媒体数据的方法包括在第一缓存中定义一个或多个像素块区域,以便缓存与参考数据对应的多个参考像素块(702)。基于预定标准,将多个参考像素块中的参考像素块分配给一个或多个像素块区域中的像素块区域(704)。基于像素块区域,将参考像素块与标签关联,以便有助于搜索参考数据,从而处理与多媒体数据的多媒体帧关联的多个像素块(706)。

Description

用于多媒体数据处理的方法和系统
技术领域
本发明涉及数据处理领域。
背景技术
在示例情形中,与多媒体数据处理相关的技术的高速发展会对各种多媒体处理器的相应的计算能力提出更高的要求。多媒体数据处理可以包括出于压缩目的而对多媒体数据进行编码。执行对多媒体数据的压缩可能是为了在存储期间节省内存,或者在传输期间有效地使用可用的带宽。可以使用足以实现多媒体数据压缩的编码机制来对多媒体数据进行编码。接着,可以出于显示/观察的目的而对多媒体数据进行解压缩(例如,解码)。
此外,在示例情形中,各种视频编码格式(paradigms)可以包括基于参考帧对与多媒体数据对应的帧进行编码,由此优化存储容量并且还增强多媒体处理器的性能。在示例情形中,多媒体数据处理可以包括执行运动补偿,其中从内存中提取(fetch)与参考帧(例如,先前已解码的帧且存储在内存中)关联的参考像素,并且进行插值以形成预测帧。可以从当前帧中减去该预测帧,以获得与当前帧对应的残差样本。这些残差样本接着可以被编码,以便对当前帧进行编码。在示例情形中,当执行运动补偿时,从内存中随机地提取参考像素(以便对帧的各种部分进行编码),并且在提取的参考像素之间可以存在显著程度的重叠。根据示例情形,由于提取参考像素的随机特性,内存带宽消耗以及功率耗散会增加。
发明内容
公开了一种用于多媒体数据处理的方法和系统。在一个实施例中,为了处理多媒体帧,将多媒体帧划分为多个块分区,其中每个分区包括多个像素块。在一个实施例中,针对与多媒体帧的第一块分区关联的多个像素块确定第一参考区域。在一个实施例中,在从内存中提取第一参考区域之前,在第一缓存中确定第一参考区域的存在。如果第一参考区域被确定为在第一缓存中不可用,则在第二缓存中检查第一参考区域的存在。如果第一参考区域被确定为在第二缓存中不可用,则从内存中提取第一参考区域。
在一个实施例中,方法包括在第一缓存中定义一个或多个像素块区域,以便缓存与参考数据对应的多个参考像素块。基于预定标准,将多个参考像素块中的参考像素块分配给一个或多个像素块区域中的像素块区域。基于像素块区域,将参考像素块与标签关联,从而有助于搜索参考数据,以便处理与多媒体数据的多媒体帧关联的多个像素块。
在一实施例中,搜索参考数据包括,通过将与第一参考区域关联的标签信息和与一个或多个像素块区域关联的跨度信息进行比较,以此识别一个或多个像素块区域中有可能包括第一参考区域的像素块区域。进一步地,在所识别的一个或多个像素块区域中确定与第一参考区域关联的一个或多个参考像素块的存在。在一实施例中,确定一个或多个参考像素块的存在包括,基于跨度信息以及第一参考区域在与参考数据关联的参考帧内的位置来确定所识别的一个或多个像素块区域中的每一个像素块区域内的第一参考区域的可能偏移。通过检查在所确定的可能偏移处与每个参考像素块关联的多个可用性标签,可以确定在所识别的一个或多个像素块区域中在所确定的可能偏移处的第一参考区域的存在。
在一实施例中,用于从内存中提取与第一参考区域关联的一个或多个参考像素块中的参考像素块的最小粒度和在与内存关联的预取缓冲器中进行缓存的最小粒度相匹配。在一实施例中,与参考帧内的第一参考区域关联的一个或多个参考像素块相邻且在参考帧内形成矩形区域的一个或多个额外的参考像素块一起被提取。在一实施例中,一个或多个额外的参考像素块以及第一参考区域对应于参考帧内的多个块分区中的一个块分区。在一实施例中,一个或多个额外的参考像素块以及第一参考区域对应于参考帧内的相邻块分区。
在一个实施例中,公开了一种被配置为处理多媒体数据的系统。该系统包括内存、缓存单元以及处理单元。内存被配置为存储与参考数据对应的一个或多个参考帧。缓存单元与内存通信地关联并且包括第一缓存和第二缓存。处理单元与内存和缓存通信地关联,并且被配置为在第一缓存中定义一个或多个像素块区域,以便缓存与参考数据对应的多个参考像素块。处理单元被进一步配置为:(1)基于预定标准,将多个参考像素块中的参考像素块分配给一个或多个像素块区域中的像素块区域;以及(2)基于像素块区域,将参考像素块与标签关联,从而有助于搜索参考数据,以便处理与多媒体帧关联的多个像素块。
在一个实施例中,公开了一种计算机可读介质,其存储一组指令,当该组指令被执行时,使计算机执行多媒体数据处理的方法。该方法包括在第一缓存中定义一个或多个像素块区域,以便缓存与参考数据对应的多个参考像素块。参考数据可以与参考帧关联。该方法还包括基于预定标准,将多个参考像素块中的参考像素块分配给一个或多个像素块区域中的像素块区域。此外,该方法包括基于像素块区域,将参考像素块与标签关联,从而有助于搜索参考数据,以便处理与多媒体帧关联的多个像素块。
附图说明
图1是根据实施例的、被配置为处理多媒体数据的示例系统的框图。
图2示出根据实施例的、在第一缓存中定义的多个示例像素块区域。
图3A-3C示出根据实施例的、在多个参考数据提取之间的重叠的示例利用(例如,通过使用图1中的系统)。
图4A描绘根据实施例的示例处理流程的简化概述,该示例处理流程示出对与多媒体数据关联的多媒体帧的处理。
图4B示出根据实施例的、在多媒体帧的处理期间与第一缓存关联的读/写操作的示例调度。
图5示出根据实施例的、搜索参考数据以便处理与多媒体帧关联的多个像素块的示例过程。
图6A-6C示出根据实施例的示例提取在与参考数据关联的参考帧内彼此相邻的参考像素块。
图7是根据实施例的示出多媒体数据处理的示例方法的流程图。
图8A-8B共同示出根据实施例的流程图,该流程图示出参考数据搜索以便执行对多媒体帧的处理的示例方法。
具体实施方式
在示例情形中,多媒体数据处理可以包括针对与多媒体数据对应的帧执行运动补偿。在示例情形中,当执行运动补偿时,从内存中随机地提取参考像素(以便对帧的各个部分进行编码),并且在提取的参考像素之间存在显著程度的重叠。根据示例情形,由于提取参考像素的随机特性,可能增加内存带宽消耗以及功耗。
图1是根据实施例的被配置为处理多媒体数据的示例系统100的框图。在一实施例中,系统100被配置为视像编解码器(例如,视频编码器/解码器),以便处理多媒体数据。在一实施例中,系统100被配置为被包含在多媒体系统内。在一实施例中,系统100被配置为在多媒体系统的外部并且与多媒体系统通信地关联。多媒体系统的示例可以包括但不限于:(1)多媒体设备,例如蜂窝电话、数字视频摄像机以及数字摄像录像机;(2)数据处理设备,例如个人计算机、便携式计算机以及个人数字助理(PDA);和(3)消费电子产品,例如机顶盒,数字视频光盘(DVD)播放器和视频网络服务器。根据示例情形,系统100可以是能够执行一组指令(顺序和/或以其他方式)以便执行多媒体数据的处理的任何机器。
多媒体数据可以通过系统100从媒体捕获设备接收。媒体捕获设备的示例可以包括视频照相机或摄像录像机。媒体捕获设备可以是,例如,独立的设备、或者移动设备(例如,智能手机)的一部分、或者数据处理装置(例如,个人计算机、笔记本电脑装置或个人数字助理(PDA)。多媒体数据还可以通过系统100从转码系统(其可以以例如硬件、软件和/或固件中的任何一种实施)接收,转码系统可以是独立的设备,或者媒体捕获设备的一部分。
根据示例情形,多媒体数据可以包括多媒体帧序列(在下文中可替换地被称为“帧”),并且帧序列中的每个帧可以包括多媒体数据的多个块(例如,宏块)。多媒体数据的示例可以包括但不限于,音频数据、视频数据、音频视频(A/V)数据、图像数据、文本数据和它们的组合。对多媒体数据的处理的一个示例可以包括出于编码/解码目的,针对与多媒体数据对应的帧执行运动补偿。针对多媒体数据的帧执行运动补偿包括相对于参考帧(例如,先前已解码的帧)对帧进行编码/解码。在一实施例中,与参考帧关联的一个或多个参考像素可以被插值以配置预测帧,以便对帧进行编码。可以从帧中减去该预测帧,以获得与该帧对应的残差样本。这些残差样本接着可以被编码,以便对帧进行编码。
系统100包括处理单元102、内存104、缓存单元106和总线108。在一实施例中,处理单元102可以被体现为多核心处理器、单核心处理器、或者一个或多个多核心处理器和一个或多个单核心处理器的组合。例如,处理单元102可以被体现为各种处理设备中的一种或多种,例如协处理器、微处理器、控制器、数字信号处理器(DSP)、具有或不具有附带的DSP的处理电路、或者包括集成电路(例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、微控制器单元(MCU)、硬件加速器、专用计算机芯片等)的各种其他处理设备。在一实施例中,处理单元102可以被配置为执行硬编码功能。在一实施例中,处理单元102被体现为软件指令的执行器,其中当指令被执行时,这些指令可以将处理单元102具体配置为执行本文所述的算法和/或操作。处理单元102还可以包括时钟、算术逻辑单元(ALU)以及被配置为支持处理单元102的操作的逻辑门等。在一实施例中,内存104被配置为存储多媒体数据。在一实施例中,内存104被配置为存储参考数据(例如,以多个参考帧的形式),以便处理与多媒体数据关联的多媒体帧。
在一实施例中,多媒体数据的解码帧可以被存储在内存104中,作为与参考数据对应的参考帧。内存104的示例包括但不限于,随机存取存储器(RAM)、双端口RAM、同步动态RAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)等。在一实施例中,缓存单元106被配置为对存储在内存104中的频繁使用的参考数据进行缓存。由于与内存104关联的有限带宽以及高流量状况,将参考数据存储在缓存单元106中提高了与系统100关联的处理性能。缓存单元106包括第一缓存106a和第二缓存106b。在一实施例中,第一缓存106a可以包括一个或多个缓存体(bank),它们可以被实施为缓存参考数据。更具体地,可以认为与第一缓存106a关联的存储空间被分区(例如,被分为物理分区或虚拟分区),并且每个这样的分区可以被称为缓存体,其可以用于缓存参考数据。缓存体在本文中将参考图4进一步解释。在一实施例中,第二缓存106b可以包括一个或多个缓存体,它们可以被实施为缓存参考数据。在一实施例中,处理单元102、内存104和缓存单元106被配置为经由或通过总线108互相通信地关联、耦合或连接。总线108的示例可以包括但不限于,数据总线、地址总线、控制总线等。
总线108可以是例如串行总线、双向总线或单向总线。对于多媒体数据处理,与多媒体数据对应的每个帧可以被划分为多个像素块。例如,该帧可以被划分为多个16×16的像素块,其可以被称为例如宏块。每个这样的宏块可以进一步被划分为(多个)部分,例如,划分为4个分区,其中每个分区可以包括4个4×4的像素块。像素块的每个这样的分区在本文中可以被称为块分区。如上所述,为了处理帧,可以针对帧的各个部分,例如针对与帧的块分区关联的多个像素块,提取参考数据。在一实施例中,处理单元102被配置为确定要被实施以处理与多媒体数据的帧的块分区关联的多个像素块的参考数据。
如所解释的,参考数据以一个或多个参考帧的形式被存储在内存104中。一个或多个参考帧中的每个参考帧包括一个或多个参考像素块。应注意,术语“参考像素块”可以被解释为指代,例如与多媒体数据的帧关联的参考帧内的“m×n”的像素块,其中m和n是正整数。确定要被实施以处理与多媒体数据的帧的每个块分区关联的多个像素块的参考数据可以包括,确定参考帧中可能被用于处理目的的参考像素块。在一实施例中,从内存104中提取的参考像素块被存储在缓存单元106中,以方便进一步访问参考数据。
在一实施例中,处理单元102被配置为在与缓存单元106关联的第一缓存106a中定义一个或多个像素块区域,以便缓存与先前从内存104中提取的参考数据对应的多个参考像素块。像素块区域可以被视为第一缓存106a内的存储空间的一个分配(allotment),该存储空间能够缓存一个或多个参考像素块。可以在第一缓存106a中定义一个或多个这样的存储空间,以便缓存从内存104中提取的多个参考像素块。在一实施例中,像素块区域可以与第一缓存106a的一个或多个缓存体中的缓存体关联。在一实施例中,要定义的像素块区域的数量可以基于视频压缩格式来确定。视频压缩格式的示例包括但不限于,视频编码专家组(VCEG)、H.120、H.261、移动图像专家组(MPEG)、MPEG-1部分2,H.262或MPEG-2部分2,H.263、MPEG-4部分2,H.264或MPEG-4AVC、VC-2(Dirac)、高效率视频编码(HEVC)等。
在一实施例中,每个像素块区域通过跨度信息、基地址、缓存体识别标签和/或参考索引来定义。跨度信息(span information)指示沿每个像素块区域的长度方向(例如,高)以及宽度方向(例如,宽)的尺寸。基地址(base address)是来自或关于每个像素块区域的左上地址(例如,左上像素位置的像素坐标)自参考帧定义的空间内预先确定的原点的偏移,并且指示像素块区域在参考帧定义的空间内的位置。每个像素块区域的基地址通过x和y坐标来表示。缓存体识别标签指示每个像素块区域所关联的缓存体。参考索引指示与每个像素块区域关联的参考帧。例如,如果内存104中的参考数据包括32个参考帧并且像素块区域与32个参考帧中的参考帧#5关联,则像素块区域的参考索引可以指示从其提取包含在像素块区域中的参考像素块的参考帧#5。
在一实施例中,处理单元102还被配置为将与参考数据对应的多个参考像素块中的参考像素块分配给一个或多个像素块区域中的像素块区域。在一实施例中,处理单元102基于预定标准将参考像素块分配给像素块区域。在一实施例中,预定标准包括但不限于,参考像素块在参考帧定义的空间内的位置。
在一实施例中,基于像素块区域,将每个参考像素块与标签关联,以便有助于搜索参考数据,从而处理与多媒体数据的帧关联的多个像素块。在一实施例中,标签可以被配置为提供参考像素块在像素块区域内的位置的指示。在一实施例中,标签可以基于参考像素块自与对应的像素块区域关联的基地址的偏移来定义。在一实施例中,每个像素块区域的宽度和高度是32像素×32像素,并且像素块区域的粒度是4×4像素块。因此,沿每个x和y方向可以包括8个4×4参考像素块。每个4×4参考像素块可以基于自对应的像素块区域的基地址的偏移而与一标签关联。沿x和y方向的偏移将各自使用3比特,并且因此每个标签的尺寸为6比特。基于该标签,可以在一个或多个像素块区域中的每一个中搜索4×4像素块。
在各种示例缓存技术中,内存中的参考数据被组织成4×4参考像素块的形式,并且内存中的每个4×4参考像素块与一标签关联,该标签指示参考帧定义的空间中沿x方向的位移和沿y方向的位移。考虑到根据一个或多个多媒体编码格式,参考帧的最大尺寸是8K×8K像素,沿x和y方向的4×4参考像素块的数量分别是2K。由于4×4像素块是基于x和y坐标被标记的(tagging),因此标签的尺寸对于x将是11比特且对于y将是11比特,从而总计多达22比特。同样,从内存中提取的每个4×4像素块相对于该4×4像素块所属于的参考帧被标记。一些多媒体编码格式,例如H.264,在内存中允许多达32个参考帧。基于32个参考帧进行标记导致向标签增加5比特。因此当使用32个参考帧时,每个参考像素块的标签的尺寸可以是27比特。在一实施例中,大约288个标签被用于执行良好的缓存。由于每个标签的尺寸是27比特,因此在缓存期间涉及288个27比特的比较。执行288个27比特的比较以便确定且提取参考数据将会耗费大量的功率。在第一缓存106a中定义像素块区域并且按照自对应的像素块区域的基地址的偏移标记参考像素块,使标签的尺寸从27比特减少到6比特,由此降低了比较的成本并且极大地节约了功耗。
在一实施例中,从内存104中提取一个或多个参考像素块中的每个像素块的最小粒度与在与内存104的预取缓冲器中进行缓存的最小粒度匹配,以便使内存104的性能最优。例如,如果预取缓冲器中的数据组织是基于块的,则使参考像素块的提取按块进行,由此优化参考数据的提取。类似地,如果预取缓冲器中的数据组织是基于线的(例如,成行的参考数据提取是顺序提取的),则使参考像素的提取为基于线的参考数据提取。在一实施例中,每个像素块区域被稀疏地填充并且包括选定的若干参考像素块条目(select few reference pixel block entries)(也称为元素)。在一实施例中,一个或多个像素块区域中的每个像素块区域包括9个元素,即9个参考像素块与每个像素块区域关联。在一实施例中,与像素块区域关联的每个元素基于它在对应的参考帧内的位置而被分配像素块区域内的特定位置。
在一实施例中,属于单个参考帧的参考像素块被分配给一个或多个像素块区域中的一像素块区域。在一实施例中,每个像素块区域被定义在与第一缓存106a关联的一个或多个缓存体中的缓存体内。在一实施例中,缓存体识别标签与每个像素块区域关联,以便指示在其内定义每个像素块区域的缓存体。
在一实施例中,第二缓存106b被组织为缓存与关联于多媒体数据的多个块分区中的第一块分区关联的参考数据,以便在多媒体数据的一个或多个随后的块分区的处理期间使参考数据可用。在一实施例中,按照光栅扫描顺序处理多媒体数据的帧内的像素块。应注意,术语“光栅扫描顺序”可以被解释为指代,例如从左至右和从上至下的顺序。因此,从左至右处理一行中的像素块,之后处理多媒体数据的帧内的后续行中的像素块。在与帧关联的一个或多个后续行的处理期间,与一个或多个先前行关联的参考数据可能已经从第一缓存106a中删除。然而,在帧的相邻行中的像素块可能具有参考数据提取的公共性。本文所公开的第二缓存106b使得能够将参考数据提取的公共性用于帧的相邻行。在一实施例中,第二缓存106b被定义为具有沿宽度方向的与帧的块分区的宽度相等的跨度以及沿长度方向(例如,高度)的可变尺寸(这取决于系统100的配置)。
在一实施例中,如果与参考数据关联的参考像素块位于第二缓存106b的跨度内,则将从内存104中提取的参考数据充填(populate)在第二缓存106b中。在一实施例中,在第一缓存106a中的参考数据过期之后,将缓存在第一缓存106a中的参考数据充填在第二缓存106b中。在一实施例中,每次在从一个缓存体中读取所有的(或预选数量的)存储在该缓存体中的参考数据之后,使缓存在第一缓存106a中的参考数据对于该缓存体过期。在帧的后续行的处理期间,确定第二缓存106b内的空间的可用性,以便缓存提取的参考像素块。如果第二缓存106b中的空间被确定为可用,则将提取的参考像素块充填在第二缓存106b中。在一实施例中,如果第二缓存106b中的空间被确定为不可用,则删除第二缓存106b中的一个或多个先前缓存的参考像素块。第二缓存106b的原点被偏移预定余量(margin),以便在删除了一个或多个先前缓存的参考像素块之后,缓存提取的参考像素块。原点被偏移以有助于从第二缓存106b的一行中同时读取参考数据,同时将参考数据写入第二缓存106b的另一行中。在一实施例中,第二缓存106b以基于块的方式组织,并且被充填在第二缓存106b中的参考数据用水平和/或垂直方向的位置来标记。
在一个实施例中,第二缓存106b以基于线的方式组织。此外,在一实施例中,如果确定在第一缓存106a中不存在参考数据,则在第二缓存106b中搜索参考数据。如果确定在第二缓存106b中存在参考数据,则将参考数据分配给第一缓存106a的其中一个像素块区域,用于进一步的参考像素提取。然而,根据一个实施例,如果参考数据被确定为不可用,即在第二缓存106b中不存在参考数据,则从内存104中提取参考数据。用于从第二缓存106b中提取参考数据的处理周期的数量(例如,10个处理周期)少于用于从内存104中提取参考数据的处理周期的数量(例如,100个处理周期)。在一实施例中,第二缓存106b是“单向关联/直接映射的”,使得内存104中的每个条目被缓存在第二缓存106b中的一个特定位置处。在一实施例中,参考数据的多个亮度(在本文中被称为“亮度”)分量和多个色度(在本文中被称为“色度”)分量被分开地缓存在第二缓存106b和/或内存104中。在一实施例中,亮度分量在内存104和/或第二缓存106b中被组织为4×4的像素块,而色度分量被组织为8×2的像素块。
在一实施例中,处理单元102被配置为提取相邻于与参考帧内的第一参考区域关联的一个或多个参考像素块且在参考帧内形成矩形区域的的一个或多个额外的参考像素块。在一实施例中,一个或多个额外的参考像素块和第一参考区域对应于参考帧内的多个块分区中的一块分区。在一实施例中,一个或多个额外的参考像素块和第一参考区域对应于参考帧内的相邻块分区。在一实施例中,处理单元102被配置为生成内存提取命令,以便从内存104中提取一个或多个额外的参考像素块和与第一参考区域关联的一个或多个参考像素块。在一实施例中,处理单元102被进一步配置为基于生成的内存提取命令,从内存中提取一个或多个额外的参考像素块和与第一参考区域关联的一个或多个参考像素块。
在一实施例中,系统100额外地包括以下部件,例如输入单元(例如,图像处理设备)、视频显示单元(例如,液晶显示器(LCD),阴极射线管(CRT)等)、光标控制设备(例如,鼠标)、驱动单元(例如,磁盘驱动器)、信号生成单元(例如,扬声器)和/或网络接口单元。输入单元被配置为将多媒体数据传送给处理单元102,以便对多媒体数据进行处理。驱动单元包括机器可读介质,在其上存储体现本文所描述的一个或多个方法和/或功能的一组或多组指令(例如,软件)。在一实施例中,该软件在系统100执行它期间完全或部分位于内存104和/或处理单元102内,使得内存104和处理单元102也构成了机器可读介质。该软件还可以经由网络接口单元通过网络发送和/或接收。
术语“机器可读介质”可以被解释为包括存储一组或多组指令的单个介质和/或多个介质(例如,集中式数据库和/或分布式数据库,和/或关联的缓存和服务器)。此外,术语“机器可读介质”可以被解释为包括能够存储、编码和/或携带一组指令以便由系统100执行并且使系统100执行各种实施例的任何一个或多个方法的任何介质。此外,术语“机器可读介质”可以被解释为包括但不限于,固态存储器、光学和磁介质以及载波信号。
图2示出根据实施例的在第一缓存106a中定义的多个示例像素块区域。在图2中描绘了3个像素块区域,例如第一像素块区域202a、第二像素块区域202b和第三像素块区域202c。应注意,可以在第一缓存106a中定义多个这样的像素块区域,以便缓存从第二缓存106b和内存104之一中提取的参考像素块。如参考图1所解释的,每个像素块区域可以被视为第一缓存106a内的存储空间的一个分配,该存储空间能够缓存多个参考像素块。在一实施例中,所定义的像素块区域的数量是基于视频压缩格式来确定的。
此外,如参考图1所解释的,每个像素块区域是通过跨度信息、基地址和/或参考索引来定义的。在一实施例中,像素块区域的基地址可以根据像素块区域自第一缓存106a定义的存储空间内的预定义位置(在本文中称为“原点”)的位移来定义。在一实施例中,原点可以关联于坐标(0,0),并且测量与像素块区域对应的最左上方的像素自原点的位移,从而计算x和y方向的位移,以便定义与像素块区域对应的基地址。在图2中,第一像素块区域202a被描绘为与自原点(0,0)的沿x方向的位移BA0_X以及沿y方向的位移BA0_Y关联,并且通过基地址(BA0_X,BA0_Y)来定义。第二像素块区域202b被描绘为与自原点(0,0)的沿x方向的位移BA1_X以及沿y方向的位移BA1_Y关联,并且通过基地址(BA1_X,BA1_Y)来定义。类似地,第三像素块区域202c被描绘为与自原点(0,0)的沿x方向的位移BA2_X以及沿y方向的位移BA2_Y关联,并且通过基地址(BA2_X,BA2_Y)来定义。
为处理帧的多个像素块所提取的、与参考数据对应的每个参考像素块被分配给一个或多个像素块区域中的像素块区域。在一实施例中,一个或多个参考像素块中的每个参考像素块是4×4的像素块。在一实施例中,基于预定标准,将与参考数据对应的每个参考像素块分配给像素块区域。在一实施例中,预定标准包括但不限于,参考像素块在参考帧(例如,内存104中已经提取参考像素块的参考帧)定义的空间内的位置。多个像素块区域中的每个像素块区域可以包括分配于其中的一个或多个参考像素块。
为了处理帧的像素块,确定像素块的参考数据,并且在像素块区域中搜索参考数据的存在。将与参考数据关联的标签信息和(1)跨度信息和/或(2)像素块区域的基地址进行比较,并且识别有可能包括与参考数据关联的参考像素块的一个或多个像素块区域。考虑例如与参考数据关联并且被分配给第三像素块区域202c的参考像素块204。参考像素块204被设置在第一像素块区域202a、第二像素块区域202b和第三像素块区域202c中的每一个公共的区域中。在像素块区域中执行对参考像素块204的搜索之后,确定了第一像素块区域202a、第二像素块区域202b和第三像素块区域202c有可能包括参考像素块204。将与要被提取的参考数据关联的标签信息和3个像素块区域中的每一个中的参考像素块的标签进行比较,并且确定了参考像素块204在像素块区域202c中是可用的。
如果参考像素块被确定为在由第一缓存106a定义的像素块区域中不可用,则确定参考像素块在第二缓存106b中是否可用。如果确定了在第二缓存106b中存在参考像素块,则从第二缓存106b中提取参考像素块并且缓存在像素块区域中,以便处理与帧对应的多个像素块。如果参考像素块被确定为在第二缓存106b中不可用,则从内存104中提取参考像素块。在一实施例中,缓存操作被配置为在大约100个周期内完成,并且因此同时处理多个像素块,以便实现最优的性能。在示例实施例中,同时处理一组4个相邻的像素块。这4个像素块被同时处理,以便利用4个像素块的参考数据提取之间的重叠。这在本文中参考图3A-3C进一步解释。
图3A-3C示出根据实施例的多个参考数据提取之间的重叠的示例性利用(例如,通过使用图1中的系统)。如在本文中参考图1所解释的,多媒体帧被划分为宏块,例如16×16的像素块,并且每个宏块被进一步分区为(多个)部分。图3A示出与多媒体帧关联的宏块302。宏块302被进一步划分为4个相邻的块分区,例如第一块分区304a、第二块分区304b、第三块分区304c和第四块分区304d。每个块分区包括多个像素块(没有显示在图3A中)。在一实施例中,每个块分区包括4个4×4像素块。如在本文中参考图2所解释的,与多个块分区中的每个块分区关联的像素块被同时处理,以便利用参考像素块的参考数据提取之间的重叠。因此,为了处理每个块分区中的多个像素块,确定参考区域。在本文中参考图3B解释参考区域的确定。
为了处理每个块分区中的多个像素块,确定要被提取的(参考数据中的)参考区域。在图3B中,基于与每个块分区对应的像素块在参考帧306中的位置,4个参考区域(在图3B中以虚线方形描绘),例如第一参考区域308a、第二参考区域308b、第三参考区域308c以及第四参考区域308d,被确定为与4个分区中的多个像素块对应。如在本文中参考图1所解释的,由于内存104中的数据组织(或与内存104关联的预取缓冲器)被描绘为基于块的,因此提取参考像素的最小粒度是基于块的。因此,确定了为了提取与第一块分区关联的像素块的参考数据,将从内存104中提取与第一参考区域308a对应的9个参考像素块。此外,确定了从内存104中提取分别与第二参考区域308b、第三参考区域308c和第四参考区域308d对应的9个参考像素块、6个参考像素块以及9个参考像素块。如果针对相邻参考区域所提取的参考像素块重叠,则可以使针对其中一个参考区域所提取的并且缓存在像素块区域中的参考像素块对于后续提取是可用的,并且该可用的参考像素块被复用,如在本文中参考图3C所解释的。
图3C示出像素块302的4个相邻块分区的多个参考像素块提取。在与第一块分区302a关联的像素块的处理期间,在第一缓存106a中定义的像素块区域没有参考数据。因此,确定在第一缓存106a的像素块区域中存在要被实施以处理与第一块分区304a关联的像素块的9个参考像素块。最初,在第一缓存106a中定义的像素块区域没有参考数据,并且确定了在第一缓存106a中9个参考像素块是不可用的;而且,9个参考像素块中的每个参考像素块的缺少在第一参考区域308a中被记录为“MISS”。由于期望的参考数据被确定为在第一缓存106a中不可用,因此将从内存104中提取9个参考像素块。一组4个处理周期(在图3C中以圆圈表示)将被实施以提取期望的9个参考像素块。在一实施例中,在每个处理周期中提取4个像素块,并且因此,除了9个参考像素块之外,还提取了数个额外的像素块。这些像素块在图3C中被标为“无关”(或“N/R”)。这9个参考像素块从内存104中提取并且缓存在第一缓存106a中的一个或多个像素块区域中。
如图3B中所示,第一参考区域308a的右边缘310a和第二参考区域308b的左边缘310b位于3个公共的方形块中,这在第一参考区域308a和第二区域308b之间生成重叠。由于为了处理第一块分区304a而进行的参考数据提取,要被实施以处理与第二块分区304b对应的像素块的参考像素块已经被提取并且被缓存在第一缓存106a中。因此,在检查要被实施以处理第二块分区304b的9个参考像素块的存在时,确定了3个参考像素块是可用的,并且因此,3个参考像素块的存在被记录为“HIT”,而剩余的6个参考像素块的缺少被记录为“MISS”。为了提取6个参考像素块,实施4个处理周期。在实施的参考数据的提取期间可能提取除了6个参考像素块之外的一些额外的参考像素块,并且这些像素块被标为“N/R”。这6个像素块从内存104中提取并且被缓存在第一缓存106a中的一个或多个像素块区域中。
此外,第一参考区域308a的下边缘310c和第三参考区域308c的上边缘310d位于2个公共的方形块中,从而在第一参考区域308a和第三参考区域308c之间生成重叠。由于为了处理第一块分区304a而进行的参考数据提取,要被实施以处理与第三块分区304c对应的像素块的2个参考像素块已经被提取并且被缓存在第一缓存106a中。在检查要被实施以处理第三块分区304c的6个参考像素块的存在时,确定了2个参考像素块是可用的,并且因此,2个参考像素块的存在被记录为“HIT”,而剩余的4个参考像素块的缺少被记录为“MISS”。为了提取4个参考像素块,实施2个处理周期。在实施的参考数据的提取期间可能提取除了4个参考像素块之外的一些额外的参考像素块,并且这些参考像素块被标为“N/R”。这4个参考像素块从内存104中提取并且被缓存在第一缓存106a中的一个或多个像素块区域中。
类似地,为了处理与第四分区304d对应的像素块,检查在第一缓存106a的像素块区域中9个参考像素块的可用性,并且相应地,将参考像素块与HIT或MISS关联。那些被记录为MISS的像素块从内存104中提取并且被缓存在第一缓存106a的像素块区域中。提取的参考数据被用于处理帧的多个块分区中的像素块。在本文中参考图4A解释处理多媒体数据时包括的各个阶段。
图4A描绘了根据实施例的示例性处理流程的简化概况,该示例处理流程示出在系统100中与多媒体数据关联的多媒体帧的处理。在一实施例中,多媒体帧的处理以三个阶段来执行,例如缓存阶段402、直接内存访问(DMA)阶段404以及过滤阶段406。在缓存阶段402中,在步骤408处,(例如,通过图1的处理单元102)确定要被实施以处理帧的参考数据,并且随后在步骤410处,在第一缓存106a中(例如,通过处理单元102)检查参考数据的存在。尽管在图4A中,帧被描绘为到缓存阶段402的输入,但是在某些实施例中,该帧被划分为块,并且每个块被进一步分区,针对帧的每个分区内的多个像素块确定并提取参考数据(如在本文中参考图3A-3C所解释的)。在一实施例中,要被提取的参考像素块的尺寸被确定为稍大于帧的对应像素块的尺寸。例如,对于帧的4×4像素块,确定要从参考帧中提取9×9参考像素块(每个边上具有5个额外的像素,即3个额外的像素在左边,2个在右边),用于在运动补偿期间进行插值。类似地,对于帧的8×8像素块,可以确定从参考帧中提取13×13参考像素块,用于进行插值。
如在本文中参考图1和图2所解释的,处理单元102可以被配置为在第一缓存106a中定义像素块区域。这些像素块区域被配置为能够缓存与先前从第二缓存106b和内存104之一中提取的参考数据对应的多个参考像素块。在确定了帧的参考数据之后,(例如,使用图1的处理单元102)识别有可能包括参考数据的一个或多个像素块区域。(例如,使用图1的处理单元102)确定在所识别的像素块区域中与参考数据关联的一个或多个参考像素块的存在。
在DMA阶段404中,在步骤412处,在确定了在所识别的像素块区域中与参考数据关联的一个或多个参考像素块不可用之后,(例如,通过图1的处理单元102)生成一个或多个内存提取命令,以从第二缓存106b和内存104之一中提取一个或多个参考像素块。在一实施例中,在确定了在像素块区域中参考像素块不可用之后,在第二缓存106b中检查参考像素块的可用性。如果参考像素块被确定为在第二缓存106b中可用,则提取参考像素块并且将其缓存在第一缓存106a的像素块区域中,用于处理帧的像素块。如果参考像素块被确定为在第二缓存106b中不可用,则不得不从内存104中提取参考像素块。在步骤414处,基于生成的内存提取命令,从内存104中(例如,通过图1的处理单元102)提取参考数据。在步骤416处,基于预定标准,将从内存104/第二缓存106b中提取的一个或多个参考像素块中的每个参考像素块分配(例如,通过图1的处理单元102)给在第一缓存106a中定义的一个或多个像素块区域中的像素块区域。在一实施例中,预定标准包括但不限于,参考像素块在参考帧内的位置以及像素块区域在参考帧定义的空间内的位置。在分配之后,将一个或多个参考像素块中的每个参考像素块基于像素块区域与标签关联(例如,通过图1的处理单元102),从而有助于搜索参考数据,以便处理帧的后续像素块。
在过滤阶段406中,在步骤418处,(例如,通过处理单元102)读取被提取且分配给一个或多个像素块区域中的像素块区域的一个或多个参考像素块(与帧的像素块对应),并且进行处理以获得预测帧。该预测帧随后可以被用于处理(例如,基于运动补偿而进行编码/解码)多媒体数据的帧。
图4B示出根据实施例的在多媒体帧处理期间与第一缓存关联的读/写操作的示例调度。在一实施例中,第一缓存106a被划分为多个缓存体,以便进行读/写操作的调度。在一实施例中,第一缓存106a被设计为以三个缓存体操作,例如,以流水线/顺序方式的缓存体0、缓存体1以及缓存体2。在图4B中,缓存体0、缓存体1以及缓存体2分别用数字0、1和2表示。流水线方法排除了对给定的缓存体同时执行读和写操作的可能性。
在一实施例中,流水线具有3个流水线时隙(slot),这3个流水线时隙与在系统100中处理多媒体数据期间所涉及的各个阶段对应。在图4B中所描绘的3个流水线时隙是前时隙432、DMA时隙434和后时隙436。在一实施例中,前时隙432对应于以下处理阶段,包括:确定要从图1的内存104中提取的参考数据、以及生成用于提取参考数据的内存提取命令;DMA时隙434对应于以下处理阶段,包括:提取参考数据、以及将提取的参考数据分配给第一缓存106a中的像素块区域(对图1的第一缓存106a进行写操作);并且后时隙436对应于以下处理阶段,包括:(例如,通过图1的处理单元102)读取参考数据,以便配置预测帧,用于处理与多媒体数据关联的帧。使缓存体(0,1和2)按顺序且循环的方式通过流水线时隙432-436的多个通道(pass)420-428(由虚线垂直柱表示)隶属于(subject)流水线时隙(432,434和436)。
在图4B中,在流水线时隙(432-436)的第一通道420中,使缓存体0隶属于前时隙432。确定要被提取的参考数据(对应于与帧关联的多个像素块)。更具体地,识别要被实施以处理多个像素块的参考数据,并且在第一缓存106a中以及随后在第二缓存106b中检查参考数据的存在。在确定了参考数据在第一缓存106a和第二缓存106b中不可用之后,将从内存104中提取参考数据。将与要从内存104中提取的参考数据对应的参考像素块(例如,在图3C中被记录为MISS的参考像素块)分配给缓存体0。
在一实施例中,在执行提取操作之前,检查缓存体(例如,缓存体0、缓存体1或缓存体2)内用于容纳要被提取的参考像素块的空间的可用性。如果在缓存体中有足够的空间容纳参考像素块,则将参考像素块分配给缓存体,并且连同已经存在于缓存体中的一组参考像素块一起进行处理。然而,如果该空间被确定为不足,则将参考像素块在下一个后续的通道中分配给新的缓存体。在一实施例中,最大可能数量的参考像素块被容纳在缓存体中。在一实施例中,与帧的4个宏块对应的参考像素块被分配给缓存体。在一实施例中,与帧的宏块对应的所有参考像素块可以被包含在单个缓存体中。在一实施例中,如果与宏块对应的所有参考像素块不能被容纳在一个缓存体中,则与那个宏块对应的参考像素块在流水线时隙(432-436)的下一个通道期间被包含在下一个缓存体中。
如图4B中所描绘的,在第一通道420期间,使缓存体0隶属于前时隙432。在第二通道422期间,使缓存体1隶属于前时隙432并且使缓存体0隶属于DMA时隙434。在前时隙432期间定义的所有像素块区域与缓存体的缓存体地址关联,或者用缓存体的缓存体地址标记。在一实施例中,为了缓存与帧的第一块分区的像素块对应的参考像素块而定义的像素块区域与缓存体0关联。为了帧的后续块分区而定义的所有像素块分区可以与缓存体1关联。
在第三通道424期间,使缓存体2隶属于前时隙432,使缓存体1隶属于DMA时隙,并且使缓存体0隶属于后时隙436(过滤阶段)。在第四通道426中使缓存体2隶属于DMA时隙434之前,由于与缓存体0关联的像素块区域将不会被实施并且与缓存体1关联的像素块区域将会被保留用于处理缓存体2,因此缓存体0中的所有像素块区域是无效的并且被删除。在一示例实施例中,缓存体2可以包括与关联于参考帧内的一行像素块的参考像素块关联的多媒体数据。缓存体1可以包括与该行参考像素块中的参考像素块左边的一个或多个参考像素块关联的多媒体数据,并且缓存体0可以包括与位于参考帧内的该行参考像素块之上的顶行中的一个或多个像素块关联的多媒体数据。当处理缓存体2的参考像素块时,可以使用与缓存体1的一个或多个参考像素块关联的多媒体数据,然而,当处理缓存体2的参考像素块时,不可以使用与缓存体0的一个或多个参考像素块关联的多媒体数据,这是因为缓存体0的一个或多个参考像素块属于顶行。因此,当处理缓存体2时,缓存体0的一个或多个像素块区域可能是无效的和/或删除的,从而生成可用空间,以容纳在处理多媒体数据期间可能被使用的其他额外的参考数据。在一实施例中,在第五通道428期间,使缓存体2隶属于后时隙436。在一实施例中,使多个缓存体同时隶属于前时隙432、DMA时隙434和/或后时隙436。
图5示出根据实施例的搜索参考数据的示例过程,以便处理与多媒体帧关联的多个像素块。如在本文中参考图3A-3C所解释的,为了处理与多媒体帧的块分区关联的像素块,确定每个块分区的参考区域,并且接着检查它们的存在,即在图1的第一缓存106a中进行搜索。更具体地,在第一缓存106a中的一个或多个像素块区域中检查与每个参考区域对应的参考像素块的存在。因此,执行参考像素块的范围检查502,其中将与参考像素块关联的参考号(ref#)504和位置坐标(X,Y)506分别和与每个像素块区域关联的标签信息中的参考索引508和跨度信息/基地址510进行比较,以识别像素块区域有可能包括参考像素块。如在本文中参考图3A-3C所解释的,在存储在内存104中的参考帧内确定参考区域,并且因此,用与参考帧对应的参考号(ref#)504和与参考帧内的位置对应的位置坐标506来标记参考区域内的参考像素块。第一比较模块512(在图5中描绘为CMP1)被用来执行一个或多个像素块区域的参考号(ref#)504和参考索引508之间的比较。此外,第二比较模块514(在图5中被描绘为CMP2)被用来执行位置坐标506和跨度信息/基地址510之间的比较。
在一实施例中,跨度信息指示沿每个像素块区域的长度方向(例如,像素块区域的高度)以及宽度方向(例如,像素块区域的宽度)的尺寸。在比较期间,确定是否
X>=BA-X且<BA-(X+像素块区域的宽度)和
Y>=BA-Y且<BA-(Y+像素块区域的高度)
其中,BA是一个或多个像素块区域中的每个像素块区域的基地址。
基于两个比较模块512和514的输出,在模块516处确定有可能包括参考像素块的像素块区域。随后,执行偏移检查518,确定被识别为有可能包括参考像素块的像素块区域内的参考像素块的存在。在偏移检查518处,确定包含于参考像素块的位置坐标506(X,Y)中的偏移信息与包含于这些像素块区域内的元素(先前被提取并且缓存在像素块区域中的参考像素块)的偏移相匹配。在图5中,每个像素块区域被描绘为包括9个元素,然而应注意,像素块区域可以包括更多或更少数量的元素。第三比较模块520被用于将有可能包括参考像素块的每个像素块区域内的元素522a-522i的标签信息与参考像素块的偏移信息进行比较。第三比较器模块520(在图5中被描绘为CMP3)被描绘为包括数量与像素块区域中的元素的最大数量相等的比较器(各自在图5中被描绘为CMP3520内的CMP),用于以并行方式执行比较。对于位于所确定的可能偏移处的一个或多个元素,检查与所确定的可能偏移处的元素关联的多个可用性标签。在一实施例中,根据图1的系统100的设计,允许在单个像素块区域中存在参考像素块。在一实施例中,如果存在参考像素块,则多个可用性标签中与元素关联的一个可用性标签被标为HIT 524,并且如果不存在,则该可用性标签被标为MISS。如果可用性标签指示参考像素块的存在(例如,HIT 524),则通过地址编码器528对元素的地址(例如,HIT地址526)进行编码。
如果可用性标签指示不存在参考块,则在第四比较器模块530(在图5中被描绘为CMP4)处,通过以下步骤执行体检查:将当前的缓存体识别标签532(BANK#)和与识别的像素块区域关联的多个缓存体识别标签534中的每一个进行比较(在本文中参考图4B所解释的),从而确定具有当前的缓存体识别标签532的一个或多个像素块区域。随后,检查具有当前的缓存体识别标签534的所确定的像素块区域是否具有可用空间以分配在所识别的像素块区域中不存在的参考像素块。在所确定的像素块区域内的所确定的可能偏移处不存在元素可以指示空间的可用性。同样,所确定的可能偏移处不存在元素由下一个指针536的有效性来指示。在第五比较器模块538(在图5中被描绘为CMP5)处,将该下一个指针536与缓存体检查的输出进行比较。如果缓存体检查产生输出并且下一个指针538是有效的,则使用编码器542来确定不存在的元素的地址(例如,MISS地址540)。从内存104或第二缓存106b中提取(例如,使用图1的处理单元)参考像素块,并且分配给(例如,使用图1的处理单元102)所识别的像素块区域之一。如果具有当前的缓存体识别标签532的所识别的像素块区域中没有一个具有可用空间,则生成新的像素块区域,以分配从内存104或第二缓存106b中提取的参考像素块。
在一实施例中,确定缓存体内的空间的可用性,以便容纳要从内存中提取的参考像素块。在确定了空间的可用性之后,将参考像素块分配给缓存体。在一实施例中,为了减少从内存104中数据提取的延迟,使用单个内存提取命令,结合要从内存104中一起提取的一个或多个额外的参考像素块,提取与第一参考区域对应的参考像素块。在一实施例中,(例如,使用图1的处理单元102)确定连同参考像素块要被提取的一个或多个额外的参考像素块,使得参考像素块和一个或多个额外的参考像素块在参考帧内彼此相邻。同样,确定一个或多个额外的参考像素块,使得一个或多个额外的参考像素块和参考像素块一起在参考帧内形成矩形区域(毗连区域)。在一实施例中,一个或多个额外的参考像素块和参考像素块对应于帧内的多个块分区中的一个块分区。在一实施例中,参考像素块和一个或多个额外的参考像素块可以属于参考帧内的相邻块分区,并且可以一起形成参考帧内的矩形区域(毗连区域)。可以基于单个内存提取命令,从内存104中一起提取一个或多个额外的参考像素块和参考像素块。
在一实施例中,一个块分区的参考像素块和一个或多个额外的参考像素块可以与相邻块分区的一个或多个参考像素块合并在一起,同时一起被提取。参考像素块、一个或多个额外的参考像素块以及一个或多个参考像素块可以形成矩形(毗连区域),并且可以基于单个内存提取命令从内存104中提取。一个或多个额外的参考像素块和参考像素块可以被分配给相同的或不同的缓存体,同时从内存104中一起被提取。在一实施例中,可以针对缓存体(例如,使用图1的处理单元102)生成内存提取命令,以便从内存104中提取所分配的参考像素块和一个或多个额外的参考像素块。可以基于生成的内存提取命令从内存104中(例如,使用图1的处理单元102)提取所分配的参考像素块和一个或多个额外的参考像素块。由于参考像素块和一个或多个额外的参考像素块是一起从内存中提取的,因此用于从内存中提取参考数据的标签的总数量可以被降低,从而有助于与系统性能规格相一致。
在一实施例中,由于缓存单元106和系统100的组织结构,第一缓存106a可能不涉及预测性的预提取,并且将从内存104中单独地提取第一缓存106a中不可用的每个参考像素块。每个参考像素块可以被分配一标签。在某些平台中(例如,OMAPTM),可允许的标签的数量被限制,并且向每个参考像素块分配一标签使得难以满足系统性能规格。此外,参考数据提取的尺寸被维持在系统100中可允许的最大突发尺寸。在一实施例中,分解逻辑(break down logic)被实施以维持最大突发尺寸内的参考数据提取。最大突发尺寸包括例如8个数据阶段。从内存104中提取的参考数据在图6A-6C中进一步解释。
图6A-6C示出根据实施例的、在图1的系统100中示例提取在与多媒体数据关联的参考帧内彼此相邻的参考像素块。图6A描绘了与参考帧关联的两个相邻块分区602a和602b。这两个相邻块分区602a和602b中的每一个包括16个参考像素块,如图6A中所示。在执行对用于处理与块分区602a和602b对应的一个或多个像素块的参考数据的搜索之后,确定带阴影的参考像素块组604a、604b、604c和604d是缓存单元106中不可用的参考像素块,并且将从图1的内存104中提取。
带阴影的参考像素块组604a、604b和604c中的每一个包括4个参考像素块,并且带阴影的参考像素块组604d包括一对参考像素块,如图6A所示。可以组合参考像素块提取命令,如在本文中参考图6B和6C所解释的,而不是针对每一个带阴影的参考像素块组604a、604b、604c和604d中的每个参考像素块生成参考像素块提取命令(使得为了处理带阴影的参考像素块组604a、604b和604c而生成4个参考像素块提取命令,并且为了处理带阴影的参考像素块组604d而生成2个参考像素块提取命令)。
在图6B中,将一个块分区中的相邻像素块的参考像素块提取组合,由此优化系统容量并且提高性能。例如,对于每一个带阴影的参考像素块组604a、604b、604c和604d,可以生成一个参考像素块提取命令。如图6B中所描绘的,通过组合带阴影的参考像素块组604a、604b、604c和604d中的各个参考像素块的参考像素块提取命令来生成参考像素块提取命令。例如,参考像素块提取命令606a可以被用于提取带阴影的参考像素块组604a。类似地,参考像素块提取命令604b、604c和604d可以被用于提取带阴影的参考像素块组604b、604c和604d。由此参考像素块提取的数量从14减少到4,从而增加了缓存性能。
在图6C中,将相邻块分区(例如,块分区602a和602b)中的相邻像素块的参考像素块提取组合。除了生成参考像素块提取命令606a和606d之外,还将(相邻块分区602a和602B中的)相邻的带阴影的参考像素块组604b和604c的参考数据提取组合成单个的参考像素块提取命令606e,以便提取带阴影的参考像素块组604b和604c。由此参考像素块提取的数量从14减少到3,从而进一步增加了缓存性能。
图7是根据实施例的示出用于多媒体数据处理的示例方法的流程图。在一实施例中,方法700可以通过诸如图1的系统100的系统来实施。流程图的操作以及流程图中的操作的组合可以通过各种手段(例如,硬件、固件、处理器、电路和/或与执行包括一个或多个计算机程序指令的软件关联的其他设备)来实现。借助于系统100来描述方法700的操作。然而,可以通过使用任何其他系统来描述和/或实施方法的操作。方法700开始于操作702。在操作702处,在第一缓存中(例如,图1的第一缓存106a)定义一个或多个像素块区域(例如,在本文中参考图2解释的像素块区域),以便缓存与参考数据对应的多个参考像素块。在一实施例中,可以从内存(例如,图1的内存104)和第二缓存(例如,图1的第二缓存106b)之一中提取参考数据。在一实施例中,参考数据可以对应于存储在内存中的一个或多个参考帧中的一个参考帧。
如在本文中参考图1所解释的,每个像素块区域可以被视为第一缓存内的存储空间的一个分配,该存储空间能够缓存一个或多个参考像素块。在第一缓存内可以定义(例如,通过使用诸如图1的处理单元102的处理单元)一个或多个这样的存储空间,以便缓存从内存中提取的多个参考像素块。在一实施例中,要被定义的像素块区域的数量可以基于视频压缩格式来确定。视频压缩格式的示例包括但不限于,视频编码专家组(VCEG)、H.120、H.261、移动图像专家组(MPEG)、MPEG-1部分2,H.262或MPEG-2部分2,H.263、MPEG-4部分2,H.264或MPEG-4AVC、VC-2(Dirac)、高效率视频编码(HEVC)等。
在一实施例中,每个像素块区域通过跨度信息、基地址、缓存体识别标签和/或参考索引来定义。跨度信息指示沿每个像素块区域的长度方向(例如,高)以及宽度方向(例如,宽)的尺寸。基地址是每个像素块区域的左上地址自在参考帧定义的空间内预先确定的原点的偏移,并且指示像素块区域在参考帧定义的空间内的位置。每个像素块区域的基地址以x和y坐标来表示。缓存体识别标签指示与每个像素块区域关联的缓存体。参考索引指示与每个像素块区域关联的参考帧。例如,如果内存104中的参考数据包括32个参考帧并且像素块区域与32个参考帧中的参考帧#5关联,则像素块区域的参考索引可以指示从其中提取包含于像素块区域中的参考像素块的参考帧。
在操作704处,基于预定标准,将多个参考像素块中的一个参考像素块分配给一个或多个像素块区域中的一个像素块区域。预定标准包括但不限于,参考像素块在参考帧内的位置以及像素块区域在参考帧定义的空间内的位置。在一实施例中,属于单个参考帧的参考像素块被分配给一个或多个像素块区域中的一个像素块区域。在一实施例中,像素块区域被稀疏地填充并且包括若干参考像素块条目(也称为元素)。在一实施例中,一个或多个像素块区域中的像素块区域包括9个元素。在一实施例中,与像素块区域关联的一个或多个元素中的每个元素基于它在对应的参考帧定义的空间内的位置被分配像素块区域内的一个特定位置。在一实施例中,将缓存体识别标签(如先前所述)与每个像素块区域关联,以指示一个或多个像素块区域中的每个像素块区域被定义在其内的缓存体。在操作706处,基于像素块区域,将参考像素块与标签关联,以便有助于参考数据的搜索,从而处理与多媒体帧关联的多个像素块。在图8A-8B中解释了为了处理多媒体帧而对参考数据进行的搜索。
图8A-8B共同示出根据实施例的流程图,其示出搜索参考数据以便执行多媒体帧的处理的示例方法800。在一实施例中,方法800可以通过诸如图1的系统100的系统来实现。流程图的操作以及流程图中的操作的组合可以通过各种手段(例如,硬件、固件、处理器、电路和/或与执行包括一个或多个计算机程序指令的软件关联的其他设备)来实现。借助于系统100来描述方法800的操作。然而,可以通过使用任何其他的系统来描述和/或实施方法的操作。方法800开始于操作802。在操作802处,为了处理多媒体帧,确定与多媒体帧中的多个块分区中的一个块分区内的多个像素块对应的第一参考区域。例如,对于多媒体帧的4×4像素块,确定从参考帧中提取9×9参考区域(每个边上具有5个额外的像素,即3个额外的像素在左边,2个在右边),用于运动补偿期间的插值。类似地,对于帧的8×8像素块,可以确定从参考帧中提取13×13参考像素块。如在本文中参考图3A-3C所解释的,第一参考区域被确定在存储于内存(例如,图1的内存104)中的参考帧内,并且因此,用与参考帧对应的参考号以及与参考帧内的位置对应的位置坐标来标记第一参考区域内的参考像素块。在操作804处,通过将与第一参考区域关联的标签信息和与每个像素块区域关联的跨度信息进行比较,以此识别第一缓存(例如,图1的第一缓存106a)的一个或多个像素块区域中有可能包括第一参考区域的像素块区域。与第一参考区域关联的标签信息包括参考号(例如,图5的ref#504)和位置坐标(例如,图5的(X,Y)506)。跨度信息指示沿每个像素块区域的长度方向(例如,高度)以及宽度方向(例如,宽度)的尺寸。在比较期间,确定是否
X>=BA-X且<BA-(X+像素块区域的宽度)和
Y>=BA-Y且<BA-(Y+像素块区域的高度)
其中,BA是一个或多个像素块区域中的每个像素块区域的基地址,并且(X,Y)是与第一参考区域关联的位置坐标。
对于所识别的像素块区域,执行偏移检查,以确定在所识别的像素块区域内的参考像素块的存在。在偏移检查期间,基于与每个所识别的像素块区域关联的跨度信息以及第一参考区域在参考帧内的位置,确定每一个所识别的像素块区域内的第一参考区域的可能偏移。通过检查在所确定的可能偏移处与每个参考像素块关联的多个可用性标签,确定在每个所识别的像素块区域中在所确定的可能偏移处的第一参考区域的存在。在操作806处,通过检查在所确定的可能偏移处与参考像素块关联的多个可用性标签,确定在每个所识别的像素块区域中在所确定的可能偏移处的第一参考区域的存在。在一实施例中,如果存在参考像素块,则将与参考像素块关联的可用性标签标为HIT,并且如果不存在参考像素块,则该可用性标签被标为MISS。在一实施例中,可以按照在本文中参考图3C如解释地执行可用性标签的标注。
在操作808处,验证第一参考区域是否被确定为存在于第一缓存的像素块区域中。如果在第一缓存的像素块区域中不存在第一参考区域,则在操作810处,确定第二缓存(例如,第二缓存106b)中第一参考区域的存在。与此相反,在确定了第一缓存的像素块区域中存在第一参考区域之后,执行操作812。在操作812处,基于第一参考区域处理多媒体帧的块分区中的多个像素块。处理多媒体帧的示例可以包括针对多媒体数据的帧执行运动补偿,用于编码/解码目的。在操作810处确定第二缓存中的第一参考区域的存在之后,随后执行操作814。在操作814处,验证第一参考区域是否被确定为存在于第二缓存中。如果第一参考区域被确定为存在于第二缓存中,则执行操作816。在操作816处,将与第一参考区域关联的参考像素块从第二缓存中提取到第一缓存中。
替换地,如果第一参考区域被确定为不在第二缓存中,则在操作818处,生成内存提取命令,以便从内存中提取与第一参考区域关联的参考像素块。在一实施例中,针对与第一缓存关联的多个缓存体中的缓存体生成(例如,使用图1的处理单元102)内存提取命令。在一实施例中,确定要被与第一参考区域一起提取的一个或多个额外的参考像素块,使得一个或多个额外的参考像素块以及与第一参考区域关联的一个或多个参考像素块在参考帧内彼此相邻,并且在参考帧内形成矩形区域(毗连区域)。在一实施例中,生成内存提取命令,以提取第一参考区域和一个或多个额外的参考像素块,如在本文中参考图6A-6C所解释的。在一实施例中,一个或多个额外的参考像素块和第一参考区域对应于参考帧内的多个块分区中的一个块分区。在一个实施例中,一个或多个额外的参考像素块和第一参考区域对应于参考帧内的相邻块分区。一个或多个额外的参考像素块和第一参考区域可以与相同的或不同的缓存体关联。
在操作820处,基于生成的内存提取命令,从内存中提取与第一参考区域关联的参考像素块。在一实施例中,基于生成的内存提取命令,从内存中提取第一参考区域连同一个或多个额外的参考像素块。用于从内存中提取每个第一参考区域的最小粒度和与内存关联的预取缓冲器的尺寸相匹配。可以按照在本文中参考图6A-6C所解释地从内存中提取参考像素块。一旦从内存或第二缓存中提取了参考像素块,就接着执行操作822。
在操作822处,基于预定标准,将提取的参考像素块分配给第一缓存中的一个或多个像素块区域。预定标准包括但不限于,参考像素块在参考帧定义的空间内的位置。与被分配的参考像素块关联的缓存体被配置为在与缓存体关联的所有参考像素块从缓存体中读取之后过期。在缓存体过期之后,从第一缓存中删除与缓存体关联的参考像素块,并且将其分配给与第二缓存关联的缓存体,以便处理与多媒体帧关联的后续像素块。在一实施例中,确定第二缓存内的空间的可用性,以便缓存提取的一个或多个参考像素块。在确定了空间的可用性之后,在第二缓存中缓存提取的参考像素块。替换地,在确定了空间的不可用性之后,删除第二缓存中的一个或多个先前缓存的参考像素块,并且第二缓存的原点被偏移预定余量,以便缓存提取的参考像素块。使被分配给第一缓存的每个参考像素块经历操作824。在操作824处,基于像素块区域,将每个参考像素块与标签关联,以便有助于在处理多媒体帧期间搜索第一参考区域。
在不以任何方式限制随附权利要求的范围、解释以及应用的情况下,本文公开的一个或多个示例实施例的优点包括,降低内存带宽的消耗且随之降低内存的功耗,并且增加与多媒体数据关联的重放时间(例如,重放时间可以被增加3个小时)。在第一缓存中定义像素块区域并且按照自对应的像素块区域的基地址的偏移标记参考像素块,这降低了标记参考数据的尺寸,由此降低了比较的成本并且显著节约了功耗。同样,通过使用第二缓存,减少了处理周期的总数量,因为被用于从第二缓存提取参考数据的处理周期的数量(例如,10个处理周期)低于被用于从内存提取参考数据的处理周期的数量(例如,100个处理周期)。同样,通过将与多媒体数据的帧中的相邻像素块关联的参考像素块成组(group),每突发的数据相位的数量与替换的缓存格式中的1个相比,被增加到大约8个。每突发的数据相位的增加降低了互连和内存接口的功率。
此外,由于参考数据提取的尺寸与内存的预取缓冲器的最大尺寸相匹配,因此在系统中功率被有效地使用,因为相等量的功率被消耗用于提取与预取缓冲器相等尺寸的一个像素块或者一个或多个像素块。本文公开的系统被配置为以流水线方式操作,使得内存提取操作(例如,DMA)高效。在图4的详细描述中所描述的3个缓存体的流水线操作消除了用于维持一致性的复杂逻辑,并且允许各个阶段并行且高效地操作。此外,在本技术中,归功于较高关联性(associativeity),内存规格被降低。而且,本文公开的方法和系统使得能够实现接近每秒120帧的帧速率。
本文公开的各种设备、模块、分析器、生成器等可以使用硬件电路(例如,基于互补金属氧化物半导体(CMOS)的逻辑电路)、固件、软件和/或硬件、固件和/或软件的任何组合(例如,体现在机器可读介质中)来实现和操作。例如,各种电气结构和方法可以使用晶体管、逻辑门和电路(例如,专用集成电路(ASIC)和/或数字信号处理器(DSP)电路)来体现。
具体地,系统100、处理单元102、处理器104和缓存单元106可以使用软件和/或使用晶体管、逻辑门和电路(例如,诸如ASIC电路的集成电路)来实现。本发明的各种实施例可以包括存储或以其他方式体现在计算机可读介质上的一个或多个计算机程序,其中计算机程序被配置为使处理器或计算机执行一个或多个操作。存储、体现计算机程序或类似语言,或者用其编码的计算机可读介质可以被体现为存储一个或多个软件程序的有形数据存储设备,该一个或多个软件程序被配置为使处理器或计算机执行一个或多个操作。这类操作可以是例如,本文所述的任何步骤或操作。此外,有形数据存储设备可以被体现为一个或多个易失存储器器件、一个或多个非易失存储器器件和/或一个或多个易失存储器器件和非易失存储器器件的组合。
同样,在各种实施例中被描述和示为分立或分开的技术、设备、子系统和方法可以与其他系统、模块、技术或方法组合或集成,而不偏离本技术的范围。被示为或讨论为彼此直接耦合或通信的其他项目可以通过一些接口或设备耦合,使得这些项目可以不再被认为是彼此直接耦合,而仍然可以是间接耦合并且在电气上、机械上或以其他方式彼此通信。在研究了本文所公开的示例实施例之后,本领域技术人员可以进行可确定的变化、替代以及改变的其他示例,而不偏离本技术的精神以及范围。此外,为了说明目的,具体实施方式涉及与帧关联的像素块;然而,本文所公开的方法和系统的范围不限于像素块,而是可以被扩展到包括依据HEVC格式的编码单元。
本领域技术人员将理解,在本发明的范围内,可以对示例实施例进行进一步的修改,并且许多其他的实施例也是存在的。

Claims (20)

1.一种方法,其包括:
在第一缓存中定义一个或多个像素块区域,以便缓存与参考数据对应的多个参考像素块;
基于预定标准,将所述多个参考像素块中的参考像素块分配给一个或多个像素块区域中的像素块区域;以及
将所述参考像素块与基于所述像素块区域的标签关联,以便有助于搜索所述参考数据,从而处理与多媒体帧关联的多个像素块。
2.根据权利要求1所述的方法,其中所述像素块区域是通过以下中的至少一个来定义的:指示沿所述像素块区域的长度方向和宽度方向的尺寸的跨度信息;基地址;指示与所述像素块区域关联的参考帧的参考索引;以及指示与所述像素块区域关联的缓存体的缓存体识别标签。
3.根据权利要求1所述方法,其中所述搜索包括:
确定在所述多媒体帧中的多个块分区中的第一块分区中与所述多个像素块对应的第一参考区域;
通过将与所述第一参考区域关联的标签信息和与所述一个或多个像素块区域关联的跨度信息进行比较,以此识别所述一个或多个像素块区域中有可能包括所述第一参考区域的一个或多个像素块区域;以及
确定在所识别的一个或多个像素块区域中与所述第一参考区域关联的一个或多个参考像素块的存在。
4.根据权利要求3所述的方法,其中确定所述一个或多个参考像素块的存在包括:
基于所述跨度信息以及所述第一参考区域在与所述参考数据关联的参考帧内的位置来确定所述第一参考区域在所识别的一个或多个像素块区域内的可能偏移;以及
通过检查在所确定的可能偏移处与所述一个或多个参考像素块关联的多个可用性标签来确定所述第一参考区域在所识别的一个或多个像素块区域中的所确定的可能偏移处的存在。
5.根据权利要求3所述的方法,其进一步包括:
如果所述第一参考区域被确定为在所识别的一个或多个像素块区域中不存在,则在第二缓存中确定所述一个或多个参考像素块的存在;以及
从以下之一中提取与所述第一参考区域关联的所述一个或多个参考像素块:
如果所述第一参考区域被确定为在所述第二缓存中存在,则从所述第二缓存中提取;以及
如果所述第一参考区域被确定为在所述第二缓存中不存在,则从内存中提取。
6.根据权利要求5所述的方法,其进一步包括在所述第一缓存中缓存提取的一个或多个参考像素块,以便处理与所述多媒体帧关联的所述多个像素块。
7.根据权利要求6所述的方法,其进一步包括在从所述第一缓存中读取所述一个或多个参考像素块之后,在所述第二缓存中缓存提取的一个或多个参考像素块,以便处理与所述多媒体帧关联的后续像素块。
8.根据权利要求7所述的方法,其中在所述第二缓存中缓存提取的一个或多个参考像素块包括:
确定所述第二缓存内用于缓存提取的一个或多个参考像素块的空间的可用性;以及
执行以下步骤之一:
如果所述空间被确定为在所述第二缓存内可用,则在所述第二缓存中缓存提取的一个或多个参考像素块;以及
如果所述空间被确定为在所述第二缓存内不可用,则在所述第二缓存中删除一个或多个先前缓存的参考像素块,其中所述第二缓存的原点被偏移预定余量,以便在删除了所述一个或多个先前缓存的参考像素块之后,缓存提取的一个或多个参考像素块。
9.根据权利要求5所述的方法,其中从所述内存中提取与所述第一参考区域关联的所述一个或多个参考像素块中的参考像素块的最小粒度和在与所述内存关联的预取缓冲器中进行缓存的最小粒度相匹配。
10.根据权利要求9所述的方法,其中从所述内存中提取与所述第一参考区域关联的所述一个或多个参考像素块包括,确定要连同与所述第一参考区域关联的所述一个或多个参考像素块一起被提取的一个或多个额外的参考像素块,其中所述一个或多个额外的参考像素块以及所述第一参考区域在所述参考帧内彼此相邻,并且一起在所述参考帧内形成矩形区域。
11.根据权利要求10所述的方法,其中所述一个或多个额外的参考像素块和所述第一参考区域对应于所述参考帧内的多个块分区中的一个块分区。
12.根据权利要求10所述的方法,其中所述一个或多个额外的参考像素块和所述第一参考区域对应于所述参考帧内的相邻块分区。
13.根据权利要求10所述的方法,其中从所述内存中提取与所述第一参考区域关联的所述一个或多个参考像素块进一步包括:
生成内存提取命令,以便从所述内存中提取所述一个或多个额外的参考像素块以及与所述第一参考区域关联的所述一个或多个参考像素块;以及
基于生成的内存提取命令,从所述内存中提取所述一个或多个额外的参考像素块以及与所述第一参考区域关联的所述一个或多个参考像素块。
14.一种系统,其包括:
内存,其被配置为存储与参考数据对应的一个或多个参考帧;
缓存单元,其与所述内存通信地关联并且包括第一缓存和第二缓存;以及
处理单元,其与所述内存和所述缓存单元通信地关联,所述处理单元被配置为:
在所述第一缓存中定义一个或多个像素块区域,以便缓存与所述参考数据对应的多个参考像素块;
基于预定标准,将所述多个参考像素块中的参考像素块分配给所述一个或多个像素块区域中的像素块区域;以及
将所述参考像素块与基于所述像素块区域的标签关联,从而有助于搜索所述参考数据,以便处理与多媒体帧关联的多个像素块。
15.根据权利要求14所述的系统,其中所述处理单元进一步被配置为:
确定在所述多媒体帧中的多个块分区中的第一块分区中与所述多个像素块对应的第一参考区域;
通过将与所述第一参考区域关联的标签信息和与所述一个或多个像素块区域关联的跨度信息进行比较,以此识别所述一个或多个像素块区域中有可能包括所述第一参考区域的一个或多个像素块区域;以及
确定在所识别的一个或多个像素块区域中与所述第一参考区域关联的一个或多个参考像素块的存在。
16.根据权利要求15所述的系统,其中所述处理单元进一步被配置为:
如果所述第一参考区域被确定为在所识别的一个或多个像素块区域中不存在,则在所述第二缓存中确定所述一个或多个参考像素块的存在;以及
从以下之一中提取与所述第一参考区域关联的所述一个或多个参考像素块:
如果所述第一参考区域被确定为在所述第二缓存中存在,则从所述第二缓存中提取;以及
如果所述第一参考区域被确定为在所述第二缓存中不存在,则从所述内存中提取。
17.根据权利要求16所述的系统,其中从所述内存中提取与所述第一参考区域关联的所述一个或多个参考像素块包括,确定要连同与所述第一参考区域关联的所述一个或多个参考像素块一起被提取的一个或多个额外的参考像素块,其中所确定的一个或多个参考像素块以及所述第一参考区域对应于所述参考帧内的多个块分区中的一个块分区和相邻块分区中的一个。
18.一种计算机可读介质,其存储一组指令,当该组指令被执行时,使计算机执行一种方法,所述方法包括:
在第一缓存中定义一个或多个像素块区域,以便缓存与参考数据对应的多个参考像素块;
基于预定标准,将所述多个参考像素块中的参考像素块分配给所述一个或多个像素块区域中的像素块区域;以及
将所述参考像素块与基于所述像素块区域的标签关联,从而有助于搜索所述参考数据,以便处理与多媒体帧关联的多个像素块。
19.根据权利要求18所述的计算机可读介质,其中搜索所述参考数据包括:
确定在所述多媒体帧中的多个块分区中的第一块分区中与所述多个像素块对应的第一参考区域;
通过将与所述第一参考区域关联的标签信息和与所述一个或多个像素块区域关联的跨度信息进行比较,以此识别所述一个或多个像素块区域中有可能包括所述第一参考区域的一个或多个像素块区域;以及
确定在所识别的一个或多个像素块区域中与所述第一参考区域关联的一个或多个参考像素块的存在。
20.根据权利要求19所述的计算机可读介质,其进一步包括:
如果所述第一参考区域被确定为在所识别的一个或多个像素块区域中不存在,则在第二缓存中确定所述一个或多个参考像素块的存在;以及
从以下之一中提取与所述第一参考区域关联的所述一个或多个参考像素块:
如果所述第一参考区域被确定为在所述第二缓存中存在,则从所述第二缓存中提取;以及
如果所述第一参考区域被确定为在所述第二缓存中不存在,则从内存中提取。
CN201380046732.8A 2012-09-07 2013-09-09 用于多媒体数据处理的方法和系统 Pending CN104603834A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/606,237 US20140071146A1 (en) 2012-09-07 2012-09-07 Methods and systems for multimedia data processing
US13/606,237 2012-09-07
PCT/US2013/058765 WO2014039969A1 (en) 2012-09-07 2013-09-09 Methods and systems for multimedia data processing

Publications (1)

Publication Number Publication Date
CN104603834A true CN104603834A (zh) 2015-05-06

Family

ID=50232825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380046732.8A Pending CN104603834A (zh) 2012-09-07 2013-09-09 用于多媒体数据处理的方法和系统

Country Status (4)

Country Link
US (2) US20140071146A1 (zh)
JP (1) JP6263538B2 (zh)
CN (1) CN104603834A (zh)
WO (1) WO2014039969A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273310A (zh) * 2017-06-30 2017-10-20 浙江大华技术股份有限公司 一种多媒体数据的读取方法、装置、介质及设备
WO2019041222A1 (zh) * 2017-08-31 2019-03-07 深圳市大疆创新科技有限公司 编码方法、解码方法以及编码装置和解码装置
CN112166611A (zh) * 2018-06-14 2021-01-01 腾讯美国有限责任公司 双向预测运动矢量细化中的存储器带宽优化技术
CN112862725A (zh) * 2021-03-12 2021-05-28 上海壁仞智能科技有限公司 用于计算的方法、计算设备和计算机可读存储介质

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10085016B1 (en) * 2013-01-18 2018-09-25 Ovics Video prediction cache indexing systems and methods
US20150193907A1 (en) * 2014-01-08 2015-07-09 Nvidia Corporation Efficient cache management in a tiled architecture
US9762919B2 (en) 2014-08-28 2017-09-12 Apple Inc. Chroma cache architecture in block processing pipelines
WO2016143336A1 (ja) * 2015-03-10 2016-09-15 日本電気株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化プログラムを記憶する記録媒体
CN105323586B (zh) * 2015-04-07 2016-11-09 佛山世寰智能科技有限公司 一种用于多核并行视频编码和解码的共享内存接口
US10809928B2 (en) 2017-06-02 2020-10-20 Western Digital Technologies, Inc. Efficient data deduplication leveraging sequential chunks or auxiliary databases
US10503608B2 (en) 2017-07-24 2019-12-10 Western Digital Technologies, Inc. Efficient management of reference blocks used in data deduplication
TW202129591A (zh) * 2019-09-20 2021-08-01 日商索尼股份有限公司 圖像處理裝置及圖像處理方法以及程式

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353418A (en) * 1989-05-26 1994-10-04 Massachusetts Institute Of Technology System storing thread descriptor identifying one of plural threads of computation in storage only when all data for operating on thread is ready and independently of resultant imperative processing of thread
US6219688B1 (en) * 1993-11-30 2001-04-17 Texas Instruments Incorporated Method, apparatus and system for sum of plural absolute differences
US20030163643A1 (en) * 2002-02-22 2003-08-28 Riedlinger Reid James Bank conflict determination
US9137541B2 (en) * 2003-05-23 2015-09-15 Broadcom Corporation Video data cache
US7336284B2 (en) * 2004-04-08 2008-02-26 Ati Technologies Inc. Two level cache memory architecture
US20050286777A1 (en) * 2004-06-27 2005-12-29 Roger Kumar Encoding and decoding images
US20060050976A1 (en) * 2004-09-09 2006-03-09 Stephen Molloy Caching method and apparatus for video motion compensation
US20070008323A1 (en) * 2005-07-08 2007-01-11 Yaxiong Zhou Reference picture loading cache for motion prediction
US7427990B2 (en) * 2006-01-30 2008-09-23 Ati Technologies, Inc. Data replacement method and circuit for motion prediction cache
JP2007279829A (ja) * 2006-04-03 2007-10-25 Fuji Xerox Co Ltd 画像処理装置およびプログラム
US7649538B1 (en) * 2006-11-03 2010-01-19 Nvidia Corporation Reconfigurable high performance texture pipeline with advanced filtering
JP2010102623A (ja) * 2008-10-27 2010-05-06 Nec Electronics Corp キャッシュメモリ及びその制御方法
US8510496B1 (en) * 2009-04-27 2013-08-13 Netapp, Inc. Scheduling access requests for a multi-bank low-latency random read memory device
US8458405B2 (en) * 2010-06-23 2013-06-04 International Business Machines Corporation Cache bank modeling with variable access and busy times

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273310A (zh) * 2017-06-30 2017-10-20 浙江大华技术股份有限公司 一种多媒体数据的读取方法、装置、介质及设备
WO2019041222A1 (zh) * 2017-08-31 2019-03-07 深圳市大疆创新科技有限公司 编码方法、解码方法以及编码装置和解码装置
CN112166611A (zh) * 2018-06-14 2021-01-01 腾讯美国有限责任公司 双向预测运动矢量细化中的存储器带宽优化技术
CN112862725A (zh) * 2021-03-12 2021-05-28 上海壁仞智能科技有限公司 用于计算的方法、计算设备和计算机可读存储介质
CN112862725B (zh) * 2021-03-12 2023-10-27 上海壁仞智能科技有限公司 用于计算的方法、计算设备和计算机可读存储介质

Also Published As

Publication number Publication date
JP6263538B2 (ja) 2018-01-17
US9612962B2 (en) 2017-04-04
US20150074318A1 (en) 2015-03-12
WO2014039969A1 (en) 2014-03-13
JP2015534169A (ja) 2015-11-26
US20140071146A1 (en) 2014-03-13

Similar Documents

Publication Publication Date Title
CN104603834A (zh) 用于多媒体数据处理的方法和系统
CN105579926B (zh) 多核处理器的加速热减轻
US9510007B2 (en) Configurable buffer allocation for multi-format video processing
TWI582751B (zh) 避免發送未改變區域至顯示器之技術
US9466090B2 (en) Subset based compression and decompression of graphics data
TWI524326B (zh) 減少移動補償及顯示刷新之功耗的dram壓縮方案
CN105247478B (zh) 用于存储命令的方法及相关装置
CN106558083A (zh) 一种webp压缩算法帧内预测阶段的加速方法、装置及系统
US10373288B2 (en) Transpose of image data between a linear and a Y-tiled storage format
US20130259138A1 (en) Hardware accelerated distributed transcoding of video clips
US20210233280A1 (en) Encoding device control method and device, and storage medium
CN105960637B (zh) 基于块的索引技术
US20150016530A1 (en) Exhaustive sub-macroblock shape candidate save and restore protocol for motion estimation
KR20170023484A (ko) 이미지 처리장치 및 방법
CN109089120B (zh) 分析辅助编码
US9020282B2 (en) Coder based partial image storage and retrieval
CN104956671A (zh) 视频帧重建
US8548275B2 (en) Image processing device and image processing method
CN112911285B (zh) 硬件编码器帧内模式决策电路、方法、装置、设备及介质
CN104113759A (zh) 视频系统、视频帧缓存再压缩/解压缩方法与装置
US10380106B2 (en) Efficient method and hardware implementation for nearest neighbor search
US8908777B2 (en) Memory request ordering for a motion compensation process, implemented by a picture processing apparatus, a picture processing method, and a picture processing program
Zeinolabedin et al. An area-and energy-efficient FIFO design using error-reduced data compression and near-threshold operation for image/video applications
CN104407367A (zh) 提高卫星导航终端接收机基带信号处理能力的装置与方法
CN105163123B (zh) 一种hevc帧间预测子块mv信息的存取方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150506