基于减少的候选块执行运动估计的电子电路和电子设备的制作方法

文档序号:21273638发布日期:2020-06-26 23:06阅读:208来源:国知局
基于减少的候选块执行运动估计的电子电路和电子设备的制作方法

相关申请的交叉引用

本申请要求于2018年12月18日在韩国知识产权局提交的韩国专利申请no.10-2018-0164422的优先权,该韩国专利申请的公开内容通过引用整体结合于此。

本公开涉及电子电路和电子设备,更具体地,涉及用于图像或视频处理的运动估计的电子电路和电子设备。



背景技术:

如今,正在使用各种类型的电子设备。电子设备根据其包括的电子组件(例如,设备和电路)的操作来执行它自己的功能。

如今正在使用的大多数电子设备包括能够生成和输出图像和/或视频信息的组件。例如,相机设备可以拍摄对象以生成静止图像和/或运动图像的数据,并且显示设备可以基于该数据而输出可视识别的图像信息。

同时,随着对更鲜明的图像和视频信息的需求增加,用于显示图像和视频的数据的量逐渐增加,并且正在开发用于处理图像和视频的各种技术。然而,当要处理大量数据时,可能花费长时间从存储器读取数据并处理所读取的数据。在这种情况下,数据处理的速度可能降低,并且可能消耗大量功率来处理数据。



技术实现要素:

本公开的示例实施例可以减少为运动估计而参考的数据的量,而不降低运动估计的准确度或者使运动估计的准确度的降低最小化。在示例实施例中,可以基于数量减少的候选块来执行运动估计。

在一些示例实施例中,电子电路可以执行图像之间的运动估计,并且可以包括块确定器、候选选择器和运动矢量生成器。所述块确定器可以为对构成图像的块的每次递归确定与所述图像上的当前位置相对应的当前块,以及与相对于所述当前位置的相对位置相对应的候选块。所述候选选择器可以选择所述候选块中的一些。所述运动矢量生成器可以基于一个参考补丁而为所述当前块生成运动矢量,该一个参考补丁是从由所选择的候选块的候选运动矢量指示的参考补丁中确定的。

所述电子电路可以参考所述候选块,使得从与在对构成所述图像的所述块的所有递归期间参考的所有候选块相对应的所有相对位置中,交替地选择与在对构成所述图像的所述块的每次递归中参考的所述候选块相对应的所述相对位置。与在对构成所述图像的所述块的每次递归中参考的所述候选块相对应的所述相对位置的第一数量可以小于所有相对位置的第二数量。

对于构成所述图像的所述块的每次递归,与所述候选块相对应的所述相对位置中的至少一个可以改变。例如,与在对构成所述图像的所述块的递归中的第一递归中选择的所述候选块相对应的所述相对位置中的至少一个可以不同于与在所述第一递归之后的第二递归中选择的所述候选块相对应的所述相对位置中的每一个。

根据示例实施例,随着运动估计中参考的数据的量减少,可以提高运动估计的速度,并且可以降低功耗。

附图说明

通过参考附图详细描述本公开的示例性实施例,本公开的上述和其他目的和特征将变得显而易见。

图1是示出根据一些示例实施例的可以包括电子电路的电子设备的示例配置的框图。

图2是描述在图1的电子设备中执行的运动估计的概念图。

图3a至图3c是描述关于运动估计的用于构成图像的块的递归的概念图。

图4是描述执行运动估计的示例操作的流程图。

图5a和图5b是示出在运动估计中参考的当前块和候选块的示例的概念图。

图6是描述当前块和参考补丁之间的相似度的概念图。

图7和图8a至图8c是描述用于运动估计的全搜索的概念图。

图9是描述用于下一个当前块的随后的运动估计的概念图。

图10是示出根据一些示例实施例的用于执行运动估计的电子电路的示例配置的框图。

图11、图12a、图12b、图13、图14、图15a至图15d和图16是示出根据一些示例实施例的在运动估计中选择一些候选块的示例的概念图。

图17是描述根据一些示例实施例的参考候选块的计数的图表。

图18是示出根据一些示例实施例的用于执行运动估计的电子电路的示例配置的框图。

图19是描述根据一些示例实施例的用于执行运动估计的示例操作的流程图。

具体实施方式

下面,将参考附图详细并清楚地描述一些示例实施例,使得本领域技术人员能够容易地实现本公开。

图1是示出根据一些示例实施例的可以包括电子电路的电子设备1000的示例配置的框图。

例如,电子设备1000可以被实现为各种类型的电子设备(例如,台式计算机、平板计算机、膝上型计算机、智能手机、可穿戴设备、数码相机、显示设备、工作站、服务器、电动车辆、家用电器、医疗设备等)之一。

电子设备1000可以包括各种电子电路和设备。例如,电子设备1000可以包括图像处理块1100、通信块1200、音频处理块1300、缓冲存储器1400、非易失性存储器1500、用户接口1600、显示面板1700、主处理器1800以及电源管理电路1900。

图像处理块1100可以通过透镜1110接收光。图像处理块1100的图像传感器1120可以基于所接收的光生成与外部对象相关联的图像信号。该图像信号可以描述外部对象的静止图像和/或运动图像。例如,静止图像可以提供图片,而运动图像可以提供视频。

通信块1200可以通过天线1210与外部设备/系统交换信号。通信块1200的收发器1220和调制器/解调器(调制解调器)1230可以根据各种有线/无线通信协议中的一种或更多种协议来处理与外部设备/系统交换的信号。

音频处理块1300可以通过使用音频信号处理器1310来处理声音信息。音频处理块1300可以接收通过麦克风1320输入的音频,和/或可以通过扬声器1330输出音频。

缓冲存储器1400可以存储用于电子设备1000的操作的数据。例如,缓冲存储器1400可以临时存储由主处理器1800处理或要由主处理器1800处理的数据。例如,缓冲存储器1400可以包括易失性存储器(例如,静态随机存取存储器(sram)、动态ram(dram)、同步dram(sdram)等)和/或非易失性存储器(例如,相变ram(pram)、磁阻ram(mram)、阻变ram(reram)、铁电ram(fram)等)。

非易失性存储器1500无论是否供电都可以存储数据。例如,非易失性存储器1500可以包括各种非易失性存储器(例如,闪存、pram、mram、reram、fram等)中的至少一种。例如,非易失性存储器1500可以包括可移除存储器(例如,安全数字(sd)卡或固态硬盘(ssd))和/或嵌入式存储器(例如,嵌入式多媒体卡(emmc))。

用户接口1600可以仲裁在用户和电子设备1000之间的通信。例如,用户接口1600可以包括用于接收来自用户的输入的输入接口和用于向用户提供信息的输出接口。

显示面板1700可以向用户提供可视信息。例如,显示面板1700可以基于图像数据显示静止图像和/或运动图像。例如,显示面板1700可以被实现为液晶显示器(lcd)、发光二极管(led)显示器、有机led(oled)显示器、有源矩阵oled(amoled)显示器等。

主处理器1800可以控制电子设备1000的组件的整体操作。主处理器1800可以处理各种操作以操作电子设备1000。例如,主处理器1800可以被实现为通用处理器、专用处理器、应用处理器、微处理器等,并且可以包括一个或更多个处理器核。

例如,缓冲存储器1400和/或非易失性存储器1500可以存储可由一个或更多个处理器(例如,主处理器1800)执行的指令。可以基于软件和/或固件的程序代码来提供指令。例如,当指令由主处理器1800执行时,该指令可以使主处理器1800执行本公开中描述的操作。

在一些示例实施例中,主处理器1800可以包括图像信号处理器(isp)1130、帧率转换器(frc)1730和编解码器(codec)1830。

isp1130可以对由图像传感器1120生成的图像信号执行各种信号处理。例如,isp1130可以执行诸如去马赛克、数字图像稳定、降噪、边缘增强等的图像信号处理,以输出适当描述外部对象的图像数据。例如,图像数据可以存储在缓冲存储器1400和/或非易失性存储器1500中,并且基于图像数据的可视信息可以显示在显示面板1700上。

codec1830可以对图像数据进行编码和解码。例如,codec1830可以执行编码以减少isp1130生成的图像数据的量(例如,压缩图像数据)。例如,codec1830可以对编码后的图像数据进行解码,并且可以在显示面板1700上输出基于解码后的图像数据的可视信息。

frc1730可以调整与图像数据的频率相关联的帧率。例如,frc1730可以在isp1130和codec1830之间操作,和/或可以在codec1830和显示面板1700之间操作。例如,frc1730可以将isp1130生成的图像数据的帧率转换为适合于图像数据的格式。

例如,当显示面板1700基于由codec1830解码的图像数据显示可视信息时,frc1730可以将图像数据的帧率转换为适合于显示面板1700的操作特性。例如,当描述视频信息的图像数据的帧率低于显示面板1700的帧率时,frc1730可以在视频帧之间插入中间帧以提高帧率。

图1示出了isp1130、frc1730和codec1830被包括在主处理器1800中。然而,提供图1是为了便于更好地理解,而不旨在限制本公开。在一些示例实施例中,主处理器1800可以包括应用处理器,并且应用处理器、isp1130、frc1730和codec1830可以被实现为一个片上系统(soc)。

或者,isp1130、frc1730和/或codec1830中的至少一个可以被设置在主处理器1800的外部。例如,isp1130可以与图像处理块1100中的图像传感器1120一起被实现为一个芯片,并且frc1730可以与显示面板1700一起被实现在一个显示设备内。或者,isp1130、frc1730和/或codec1830中的至少一个可以被实现为与其他组件分开的独立知识产权(ip)。

isp1130、frc1730和codec1830可以被实现为被配置成执行本公开中描述的操作的硬件电路(例如,模拟电路、逻辑电路等)。或者,isp1130、frc1730和codec1830可以被实现为软件和/或固件的程序代码,并且一个或更多个处理器(例如,主处理器1800)可以执行程序代码的指令以提供isp1130、frc1730和codec1830的操作。在一些情况下,isp1130、frc1730和codec1830中的每一个可以以硬件和软件的组合(或混合)的形式来实现。

在一些示例实施例中,isp1130,frc1730和codec1830中的每一个可以伴随运动估计。将参考图2至图19描述在电子设备1000中执行的运动估计。

电源管理电路1900可以供应用于操作电子设备1000的电力。电源管理电路1900可以通过适当地转换从电池和/或外部电源提供的电力,生成适于操作电子设备1000的组件的电力。

图2是描述在图1的电子设备1000中执行的运动估计的概念图。图3a至图3c是描述关于运动估计的用于构成图像的块的递归的概念图。

参考图2,可以执行运动估计以估计图像之间的对象的运动。例如,可以在被提供为当前帧的图像与被提供为前一帧的图像之间执行运动估计。为了运动估计,缓冲存储器1400和/或非易失性存储器1500可以存储当前帧的图像的数据和前一帧的图像的数据。

例如,为了执行运动估计,可以将每一帧的图像划分为块(例如,宏块)。在这方面,可以理解划分的块构成了图像。每个块可以被布置为对应于由图像上的坐标指示的位置。

可以将一个块划分为包括构成该块的多个像素。例如,可以划分块bk0,使得m×n个像素构成块bk0(m和n是正整数)。可以不同地改变或修改每个块的大小以适于运动估计。

例如,在运动估计中可能旨在估计对象10的运动。关于当前帧,可能在对应于块bk2的位置显示对象10。另一方面,关于前一帧,可能在对应于块bk1的位置显示对象10。在这种情况下,运动估计可以获得关于对象10的运动的从块bk1到块bk2的运动矢量mv。

运动矢量可以是指示块的位置在当前帧的图像与前一帧的图像之间的变化的元素。例如,图2中的运动矢量mv可以被应用于当前帧的块bk2,并且可以与对象10的运动或块bk1与块bk2之间的位置变化相关联。

可以执行运动估计以为构成当前帧的图像的所有块生成运动矢量。可以对构成图像的块递归地执行生成运动矢量的操作。可以根据各块的顺序执行递归。

例如,参考图3a和图3b,可以对构成一行的块递归地执行生成运动矢量的操作,然后可以对构成另一行的块继续递归地执行生成运动矢量的操作。参考图3a,生成运动矢量的操作可以在相邻行沿相同方向进行。或者,参考图3b,生成运动矢量的操作可以在相邻行沿相反方向进行。或者,参考图3c,可以沿着对角线方向对块递归地执行生成运动矢量的操作。

然而,提供图3a至图3c所示的顺序是为了便于更好地理解,本公开不限于图3a至图3c所示的顺序。与生成运动矢量的操作相关联的块的顺序可以被不同地改变或修改以适于运动估计。然而,为了便于更好地理解以下的描述,将假设运动估计是基于图3a中所示的顺序。

可以在isp1130、frc1730和codec1830中采用运动估计。例如,关于数字信号稳定或时间噪声降低,isp1130可以采用运动估计来区分预期图像分量和非预期噪声分量。例如,frc1730可以采用运动估计来生成在前一帧和下一帧之间的适当地应用对象的运动的中间帧。例如,codec1830可以采用运动估计来基于块的位置变化来压缩图像数据。此外,运动估计可以被不同地用于图像处理和视频处理。

因此,准确且有效地执行运动估计可以有助于提高图像处理和视频处理的质量。在这方面,用于估计接近人可感知的运动的运动的真实运动估计可以更有利于提高图像处理和视频处理的质量,并且可以提高用户的满意度。下面要描述的示例实施例可以便于准确和有效的真实运动估计。

图4是描述执行运动估计的示例操作的流程图。图5a和图5b是示出在运动估计中参考的当前块和候选块的示例的概念图。图6是描述当前块和参考补丁(patch)之间的相似度的概念图。图7和图8a至图8c是描述用于运动估计的全搜索的概念图。图9是描述用于下一个当前块的随后的运动估计的概念图。

本公开中描述的运动估计可以由isp1130、frc1730、codec1830和/或另一组件执行。例如,采用运动估计的组件可以包括用于执行运动估计的电子电路(参考图10),该电子电路可以执行本公开中描述的操作。另外或可替代地,当指令由一个或更多个处理器执行时,该指令可以使该一个或更多个处理器(例如,主处理器1800)执行本公开中所描述的操作。

参考图4,运动估计可以确定当前块(图4中的s110)。当前块可以指在构成被提供为当前帧的图像的块中的将在当前递归中执行生成运动矢量的操作的块。当前位置可以对应于当前块在该图像上的当前位置(例如,坐标)。如参考图3a至图3c所描述的,可以根据各块的顺序确定当前块和当前位置。

运动估计可以确定候选块(图4中的s120)。候选块可以指具有为了获得当前块的运动矢量而要参考的候选运动矢量的块。这些候选运动矢量中指示与当前块最相似的参考补丁的候选运动矢量可以被期望为适于获得当前块的运动矢量。补丁或参考补丁可以指大小与在当前帧的图像上的位置的块的大小相同的单元区域。

候选块可以与相对于当前块在图像上的当前位置的相对位置相对应。当在图像上确定了当前块的当前位置时,可以基于当前块的当前位置在相应的相对位置上确定候选块。

例如,参考图5a,当前块cb1可以对应于当前位置(x1,y1)。候选块sc11至sc61和tc11至tc61可以分别与相对于该当前位置的相对位置相对应。例如,候选块sc11可以与作为相对于当前位置(x1,y1)的相对位置的(x1+1,y1+5)相对应。为了简洁起见,下面将省略与其他候选块的位置相关联的描述。

然而,本公开不限于图5a,可以不同地改变或修改候选块的相对位置。例如,参考图5b,当前块cb1可以与当前位置(x1,y1)相对应,并且候选块sc11至sc91和tc11至tc61可以分别与相对于该当前位置的相对位置相对应。

从以下描述中,可以容易地理解,提供图5a和图5b的示例候选块是为了便于更好地理解。然而,为了便于更好地理解以下描述,将假设运动估计是基于图5a所示的当前块cb1的当前位置与候选块sc11至sc61和tc11至tc61的相对位置之间的坐标关系的。

可以考虑诸如运动估计的准确度和性能的各种因素,设计诸如候选块的数量、候选块的位置和候选块的分布的属性。例如,当候选块的数量增加时,可以提高运动估计的准确度;然而,用于运动估计的数据量可能增加,并且为运动估计花费的时间可能增加。

例如,可以设计当前块和候选块之间的距离以考虑图像上的各种范围。例如,分别在与当前块cb1的当前位置相邻的坐标对应的相对位置的候选块sc51、sc61、tc11和tc21很可能适于获得当前块cb1的运动矢量。因此,可以设计运动估计以便确定候选块sc51、sc61、tc11和tc21。

同时,在一些情况下,当与当前块cb1相对应的对象快速且大规模地移动时,分别在与当前块cb1的当前位置不相邻的坐标对应的相对位置的候选块sc11至sc41和tc31至tc61很可能适于获得当前块cb1的运动矢量。因此,可以设计运动估计以便确定候选块sc11至sc41和tc31至tc61。

例如,可以使候选块分布以考虑图像上的宽覆盖范围。例如,当未确定候选块sc21时,可能难以准确地估计从图像的左上方朝向当前块cb1的运动。可以确定候选块sc21以估计从图像的左上方朝向当前块cb1的运动。这样,可以确定候选块以考虑宽覆盖范围的运动。

可以不同地改变或修改候选块的相对位置以准确且适当地执行运动估计。例如,可以在电子设备1000操作之前,由使用运动估计的组件(例如,isp1130、frc1730、codec1830等)的设计者预先设置候选块的相对位置。或者,可以在电子设备1000的操作过程中适当地重新编程候选块的相对位置。

同时,当运动估计基于图3a中所示的顺序进行时,关于当前帧可能已经生成了候选块sc11至sc61的运动矢量。另一方面,关于当前帧可能尚未生成候选块tc11至tc61的运动矢量。然而,关于前一帧,可能已生成了候选块tc11至tc61的运动矢量。

运动估计可以从缓冲存储器1400和/或非易失性存储器1500读取参考补丁的数据,以参考由与相对位置相对应的候选块的候选运动矢量指示的参考补丁。运动估计可以基于当前帧的图像的数据,参考由候选块sc11至sc61的候选运动矢量指示的参考补丁。在这方面,候选块sc11至sc61可以被理解为空间候选块。

运动估计可以基于前一帧的图像的数据,参考由候选块tc11至tc61的候选运动矢量指示的参考补丁。在这方面,候选块tc11至tc61可以被理解为时间候选块。

返回到图4,运动估计可以计算当前块与由候选块的候选运动矢量所指示的每个参考补丁之间的相似度(图4中的s130)。指示与当前块最相似的参考补丁的候选运动矢量很可能类似于关于当前块预期要获得的运动矢量。基于相似度计算,运动估计可以确定哪个参考补丁与当前块最相似。

例如,运动估计可以基于最大相似度而确定一个参考补丁(图4中的s140)。也就是说,关于所确定的一个参考补丁计算的相似度可以是关于所有参考补丁计算的相似度中的最大相似度。在本公开中,指示所确定的一个参考补丁的候选运动矢量可以被称为最佳候选运动矢量。

可以以各种方式计算当前块与参考补丁之间的相似度。例如,参考图6,可以基于像素值计算相似度。像素值可以指与构成块或补丁的像素相对应的值(例如,rgb值、亮度值、透明度值等)。

例如,运动估计可以计算当前块的像素值与参考补丁的像素值之差。然后,运动估计可以计算所计算出的差的总和。所计算出的总和可以被理解为绝对差值之和(sad)。

可以基于sad计算相似度。当关于参考补丁计算出的sad大时,可以理解参考补丁和当前块之间的相似度小。另一方面,当关于参考补丁计算出的sad小时,可以理解参考补丁和当前块之间的相似度大。可以理解,在各参考补丁中,与最小sad相对应的参考补丁与当前块最相似。

以这样的方式,运动估计可以确定各参考补丁中与当前块最相似的一个参考补丁。然而,参考图6描述的相似度计算是可能的方式之一,并不旨在限制本公开。可以对相似度计算进行各种改变或修改以适于运动估计。

返回到图4,运动估计可以基于所确定的一个参考补丁执行全搜索(图4中的s150)。例如,所确定的一个参考补丁可能比其他参考补丁更类似于当前块,但是可能与当前块稍微不同。因此,全搜索可以提供细调,以在围绕所确定的一个参考补丁的搜索范围内搜索与当前块更相似的补丁。

运动估计可以通过全搜索确定该搜索范围内的最终参考补丁(图4中的s160)。最终参考补丁可以指在该搜索范围中包括的补丁中被确定为与当前块最相似的参考补丁。在本公开中,指示最终参考补丁的运动矢量可以被称为最终运动矢量。

参考图7,当基于相似度计算确定了由最佳候选运动矢量指示的参考补丁时,运动估计可以设置围绕所确定的参考补丁的搜索范围。该搜索范围可以指执行全搜索的范围。

该搜索范围可以包括构成所确定的参考补丁的像素。另外,该搜索范围还可以包括基于所确定的参考补丁的像素的位置而确定的像素。例如,可以将搜索范围设置为还包括以所确定的参考补丁的像素为基准沿着水平方向和垂直方向的若干像素。然而,这仅是可能的示例之一,并不旨在限制本公开。

之后,运动估计可以组合搜索范围中包括的像素以确定搜索补丁。运动估计可以基于构成每个搜索补丁的像素与构成当前块的像素之间的相似度,确定最终参考补丁。可以通过参考图6描述的方式或另一方式来计算相似度。

例如,参考图8a,运动估计可以在搜索范围内确定所包括的像素的数量与构成当前块的像素的数量相同的第一搜索补丁,并且可以计算当前块和第一搜索补丁之间的相似度。另外,参考图8b,运动估计可以以类似的方式确定搜索范围内的第二搜索补丁,并且可以计算当前块和第二搜索补丁之间的相似度。

以这样的方式,参考图8c,运动估计可以通过组合数量与构成当前块的像素的数量相同的像素,在搜索范围内确定多个搜索补丁。例如,运动估计可以以类似的方式确定第六搜索补丁和第二十五搜索补丁。另外,运动估计可以计算当前块与多个搜索补丁中的每个搜索补丁之间的相似度。

运动估计可以将多个搜索补丁中与当前块最相似的搜索补丁确定为最终参考补丁。通过图7至图8c所示的全搜索,运动估计可以确定与当前块最相似的最终参考补丁。例如,指示最终参考补丁的最终运动矢量很可能类似于运动估计预期从当前块获得的运动矢量。因此,最终运动矢量可能最适于获得当前块的运动矢量。

通过操作s110至操作s160,运动估计可以基于候选块具有的候选运动矢量中的最佳候选运动矢量,获得当前块的运动矢量。例如,可以基于指示搜索范围内的最终参考补丁的最终运动矢量来生成当前块的运动矢量。所生成的运动矢量可以描述当前块的位置变化或与当前块相关联的对象的运动。

同时,当还没有关于构成当前帧的图像的所有块生成运动矢量时(图4中的操作s170的结果为“否”),可以对没有生成运动矢量的块执行操作s110至操作s160。为此,运动估计可以重新确定当前块,使得在当前帧的图像上的当前位置移动以对应于没有生成运动矢量的块。

例如,当生成了图5a中的当前块cb1的运动矢量时,运动估计可以重新确定图9中的当前块cb2。参考图9,例如,可以确定当前块cb2,使得与当前块cb2相对应的当前位置(x2,y2)从图5a中的位置(x1,y1)移开(例如,当采用图3a所示的顺序时,(x2,y2)=(x1+1,y1))。可以执行操作s110至操作s160以生成当前块cb2的运动矢量。

为了生成当前块cb2的运动矢量,运动估计可以确定候选块sc12至sc62和tc12至tc62。候选块sc12至sc62和tc12至tc62可以与相对于当前块cb2的当前位置(x2,y2)的相对位置相对应。

运动估计可以确定候选块,使得移动后的当前位置与对应于候选块的相对位置之间的坐标关系不改变。例如,将图5a与图9进行比较,图9中的当前块cb2的当前位置与候选块sc12至sc62和tc12至tc62的相对位置之间的坐标关系可以与图5a中的当前块cb1的当前位置与候选块sc11至sc61和tc11至tc61的相对位置之间的坐标关系相同。也就是说,运动估计可以在不改变预先设置或重新编程的相对位置的情况下确定候选块。

可以对构成当前帧的图像的块递归地执行参考图4至图9描述的操作。也就是说,对于构成图像的块的每次递归,运动估计可以确定当前块和候选块,可以基于关于由候选块具有的候选运动矢量指示的参考补丁的相似度来确定最终参考补丁,并且可以根据指示最终参考补丁的最终运动矢量生成当前块的运动矢量。对于构成图像的块的每次递归,相对于当前位置的相对位置可以不改变。

在生成了构成当前帧的图像的所有块的运动矢量之后(图4中的操作s170的结果为“是”),可以完成对构成图像的块的递归。完成运动估计的图像可以被isp1130、frc1730、codec1830和/或另一组件参考。然后,例如,关于当前帧之后的下一帧,可以执行参考图4至图9描述的操作。

可以参考已经生成运动矢量的候选块来执行参考图4至图9描述的运动估计。除了当前帧的图像的数据之外,这种运动估计还可以使用前一帧的图像的数据。在这方面,这种运动估计可以被理解为采用三维递归搜索(3drs)方式。

图10是示出根据一些示例实施例的用于执行运动估计的电子电路的示例配置的框图。

在一些示例实施例中,可以提供用于执行图像之间的运动估计的电子电路2000。本公开中描述的运动估计可以由电子电路2000执行。

例如,电子电路2000可以被包括在isp1130、frc1730、codec1830和/或另一组件中。或者,电子电路2000可以被实现为独立的ip。电子电路2000可以由isp1130、frc1730、codec1830和/或另一组件共享,或者可以分别为isp1130、frc1730、codec1830和/或另一组件提供。

电子电路2000可以包括被配置为执行本公开中描述的运动估计的硬件电路(例如,模拟电路、逻辑电路等)。在一些示例实施例中,电子电路2000可以被实现为专用集成电路(asic)或现场可编程门阵列(fpga)。

另外或可替代地,电子电路2000可以是一个或更多个处理器(例如,主处理器1800)的一部分,并且可以执行被配置为执行本公开中描述的运动估计的程序代码的指令。在一些情况下,缓冲存储器1400和/或非易失性存储器1500可以存储指令,并且电子电路2000可以与缓冲存储器1400和/或非易失性存储器1500通信以执行该指令。

例如,缓冲存储器1400可以存储图像数据dat1。图像数据dat1可以至少包括当前帧的图像的数据和前一帧的图像的数据。例如,图像数据dat1可以包括像素值的信息。在执行运动估计时,电子电路2000可以与缓冲存储器1400通信以读取图像数据dat1。

尽管未在图10中示出,但是在一些情况下,非易失性存储器1500可以存储图像数据dat1。在这种情况下,电子电路2000可以与非易失性存储器1500通信以读取图像数据dat1。或者,非易失性存储器1500中的图像数据dat1可以被加载到缓冲存储器1400,并且电子电路2000可以与缓冲存储器1400通信。

例如,电子电路2000可以从缓冲存储器1400(和/或非易失性存储器1500)中的图像数据dat1读取与由候选块具有的候选运动矢量所指示的参考补丁相关联的数据,以在运动估计中参考这些参考补丁。当候选块的数量增加时,为运动估计而参考的数据的量可能增加。在这种情况下,可能花费长时间从存储器读取数据并处理所读取的数据。因此,随着处理数据的速度降低,为运动估计所花费的时间可能增加,并且可能消耗大量功率来处理数据。另外,随着用于存储器访问的带宽或频率增加,存储器的功耗可能增加。

因此,就性能和功耗而言,减少为运动估计而参考的数据的量可能有利于提高用户的满意度。将参考图11至图16描述减少运动估计中的数据的量的示例。

图11、图12a和图12b是示出根据一些示例实施例的在运动估计中选择一些候选块的示例的概念图。

参考图11,运动估计可以确定在相对于当前块cb的当前位置的相对位置上的候选块sc1至sc6和tc1至tc6。在示例实施例中,运动估计可以选择候选块sc1至sc6和tc1至tc6中的一些。为了生成当前块cb的运动矢量,运动估计可以仅使用所选择的候选块而不是使用所有候选块sc1至sc6和tc1至tc6。可以基于由所选择的候选块具有的候选运动矢量指示的参考补丁来确定一个参考补丁,并且可以基于指示根据所确定的一个参考补丁获得的最终参考补丁的最终运动矢量来获得该运动矢量。

在一些示例实施例中,运动估计可以从所有候选块sc1至sc6和tc1至tc6中交替地选择要用来生成运动矢量的候选块。例如,对于构成图像的块的每次递归,可以交替地选择候选块sc1和sc3,可以交替地选择候选块sc2和sc4,并且可以交替地选择候选块sc5和sc6。另外,可以交替地选择候选块tc1和tc2,可以交替地选择候选块tc3和tc5,并且可以交替地选择候选块tc4和tc6(这里,交替地选择候选块可以被理解为交替地选择与候选块相对应的相对位置)。

例如,图12a与对当前块cb1的递归相关联,而图12b与在图12a的递归之后对当前块cb2的递归相关联。参考图12a,可以选择候选块sc11、sc41、sc51、tc21、tc31和tc61以用于生成当前块cb1的运动矢量。另一方面,未被选择的候选块sc21、sc31、sc61、tc11、tc41和tc51可以不用于生成当前块cb1的运动矢量。

参考图12b,在生成当前块cb1的运动矢量之后,可以选择候选块sc22、sc32、sc62、tc12、tc42和tc52以用于生成当前块cb2的运动矢量。另一方面,未被选择的候选块sc12、sc42、sc52、tc22、tc32和tc62可以不用于生成当前块cb2的运动矢量。

基于图11来比较图12a与图12b,关于与在图12a的递归中选择的候选块sc11、sc41、sc51、tc21、tc31和tc61相对应的相对位置,候选块可能在图12b的递归中不被选择。另外,关于与在图12b的递归中选择的候选块sc22、sc32、sc62、tc12、tc42和tc52相对应的相对位置,候选块可能在图12a的递归中不被选择。

返回到图11,对于构成图像的块的每次递归,可以连续交替地选择与候选块sc1至sc6和tc1至tc6相对应的相对位置,并且可以仅参考与所选择的相对位置相对应的候选块的候选运动矢量以生成运动矢量。对于构成图像的所有块,可以继续交替地选择与候选块sc1至sc6和tc1至tc6相对应的相对位置。

以这样的方式,对于构成图像的块的每次递归,与为了生成运动矢量而要参考的候选块相对应的相对位置中的至少一个可以改变。

因此,与在先前递归(例如,图12a的递归)中选择的候选块相对应的相对位置中的至少一个可以不同于与在随后的递归(例如,图12b的递归)中选择的候选块相对应的相对位置中的每一个。例如,与在图12a的递归中选择的候选块sc11相对应的相对位置可以不同于与在图12b的递归中选择的候选块sc22、sc32、sc62、tc12、tc42和tc52相对应的相对位置中的每一个。

同时,关于与在先前递归中未选择的候选块相对应的相对位置,候选块可以在随后的递归中被选择。例如,关于与在图12a的递归中未选择的候选块sc21相对应的相对位置,候选块sc22可以在图12b的递归中被选择。

这样,运动估计可以参考候选块,使得从与在对构成图像的块的所有递归期间参考的所有候选块相对应的所有相对位置中,交替地选择与在对构成图像的块的每次递归(例如,图12a的递归或图12b的递归)中使用的候选块相对应的相对位置。

因此,与在对构成图像的块的每次递归中使用的候选块相对应的相对位置的数量可以小于与所有候选块相对应的所有相对位置的数量。例如,在图11的示例中,可能有与所有候选块sc1至sc6和tc1至tc6相对应的12个相对位置。然而,在图12a的递归中(或在图12b的递归中)参考的候选块可能对应有6个相对位置。

当仅使用所选择的候选块而不是使用所有候选块时,可以减少候选块的数量。在示例实施例中,可以基于数量减少的候选块的候选运动矢量来执行运动估计,并且为运动估计而参考的数据的量可以减少。例如,从存储器读取的数据的量可以小于用于参考如参考图5a描述的所有候选块的所有候选运动矢量的数据的量。

在这种情况下,为从存储器读取数据和处理所读取的数据而花费的时间可以减少。因此,随着处理数据的速度提高,为运动估计所花费的时间可以减少,并且为处理数据而消耗的功率量可以减少。随着用于存储器访问的带宽或频率降低,存储器的功耗可以降低。

同时,在一些示例实施例中,可以考虑运动估计的准确度来设计所选择的相对位置和不选择的相对位置。例如,对于构成图像的块的每次递归,可以适当地分布所选择的相对位置和不选择的相对位置,以考虑各种范围和图像上的宽覆盖范围。

例如,如果在图12a的递归中选择候选块tc41而不是候选块tc31,则可能难以准确地估计从图像的右侧朝向当前块cb1的快速运动。因此,在图12a的递归中,选择候选块tc31可能比选择候选块tc41更有利。然而,在图12b的下一次递归中,可能选择与候选块tc41的相对位置相对应的候选块tc42,而不是与候选块tc31的相对位置相对应的候选块tc32。

参考图11、图12a和图12b描述的对相对位置的选择仅仅是可能的示例之一,而本公开不限于此。可以对所选择的相对位置和不选择的相对位置进行各种改变或修改以适于运动估计,这将参考图13至图16进一步描述。

已经参考图11、图12a和图12b描述了选择要用于运动估计的候选块的相对位置。然而,可以不同地改变或修改示例实施例以确定在运动估计中将不使用的候选块的相对位置。

在这些示例实施例中,运动估计可以排除所有相对位置中的至少一个相对位置,使得与所有相对位置相对应的候选块中的至少一个候选块不用于对构成图像的块的每次递归。在这种情况下,可以理解,不选择已被排除的相对位置,并且在运动估计中不参考与未被选择的相对位置相对应的候选块的候选运动矢量。

在电子电路2000操作之前,可以由设计者预先设置所选择的相对位置和不选择的相对位置。或者,可以在电子电路2000的操作期间适当地重新编程所选择的相对位置和不选择的相对位置。

图13是示出根据一些示例实施例的在运动估计中选择一些候选块的示例的概念图。

例如,由分别在与当前块cb的当前位置相邻的坐标相对应的相对位置的候选块sc5、sc6、tc1和tc2的候选运动矢量指示的参考补丁很可能与当前块cb相似(因此,这些参考补丁很可能适于生成当前块cb的运动矢量)。在一些示例实施例中,与候选块sc5、sc6、tc1和tc2相对应的相对位置可以在对构成图像的块的所有递归中都被选择而没有不被选择。

也就是说,在一些示例实施例中,对于构成图像的块的每次递归,与用于生成运动矢量的候选块相对应的相对位置可以包括所有相对位置中与当前块在图像上的当前位置相邻的坐标对应的相对位置(例如,与候选块sc5、sc6、tc1和tc2相对应的相对位置)。

另一方面,可以交替地选择(或者可以交替地不选择)分别在与当前块cb的当前位置不相邻(或者远离当前块cb的当前位置)的坐标对应的相对位置的候选块sc1至sc4和tc3至tc6。例如,对于构成图像的块的每次递归,可以交替地选择候选块sc1和sc3,并且可以交替地选择候选块sc2和sc4。另外,可以交替地选择候选块tc3和tc5,并且可以交替地选择候选块tc4和tc6。

也就是说,在一些示例实施例中,对于构成图像的块的每次递归,可以交替地选择(或可以交替地不选择)与当前块的当前位置不相邻(或者远离当前块的当前位置)的相对位置。在这种情况下,至少一个被选择或未被选择(例如,排除)的相对位置可以包括所有相对位置中与当前块在图像上的当前位置不相邻的坐标对应的相对位置。

图14和图15a至图15d是示出根据一些示例实施例的在运动估计中选择一些候选块的示例的概念图。

图11至图13示出了交替地选择两个候选块。参考图14,本公开不限于图11至图13,而可以交替地选择(或者可以交替地不选择)若干候选块。例如,对于构成图像的块的每次递归,可以交替地选择(或者可以交替地不选择)候选块sc1至sc4,并且可以交替地选择(或者可以交替地不选择)候选块tc3至tc6。

例如,图15a与对当前块cb1的递归相关联,而图15b与对当前块cb2的递归相关联。图15c与对当前块cb3的递归相关联,而图15d与对当前块cb4的递归相关联。

参考图15a,可以选择候选块sc41和tc31,并且候选块sc41、sc51、sc61、tc11、tc21和tc31可以用于生成当前块cb1的运动矢量。另一方面,未被选择的候选块sc11、sc21、sc31、tc41、tc51和tc61可以不用于生成当前块cb1的运动矢量。

参考图15b,在生成当前块cb1的运动矢量之后,可以选择候选块sc22和tc52,并且候选块sc22、sc52、sc62、tc12、tc22和tc52可以用于生成当前块cb2的运动矢量。另一方面,未被选择的候选块sc12、sc32、sc42、tc32、tc42和tc62可以不用于生成当前块cb2的运动矢量。

参考图15c,在生成当前块cb2的运动矢量之后,可以选择候选块sc13和tc63,并且候选块sc13、sc53、sc63、tc13、tc23和tc63可以用于生成当前块cb3的运动矢量。另一方面,未被选择的候选块sc23、sc33、sc43、tc33、tc43和tc53可以不用于生成当前块cb3的运动矢量。

参考图15d,在生成当前块cb3的运动矢量之后,可以选择候选块sc34和tc44,并且候选块sc34、sc54、sc64、tc14、tc24和tc44可以用于生成当前块cb4的运动矢量。另一方面,未被选择的候选块sc14、sc24、sc44、tc34、tc54和tc64可以不用于生成当前块cb4的运动矢量。

返回到图14,对于构成图像的块的每次递归,可以连续交替地选择与候选块sc1至sc4和tc3至tc6相对应的相对位置,并且可以仅参考与所选择的相对位置相对应的候选块的候选运动矢量来生成运动矢量。对于构成图像的所有块,可以继续交替地选择与候选块sc1至sc4和tc3至tc6相对应的相对位置。

已经参考图14和图15a至图15d描述了选择要用于运动估计的候选块的相对位置。然而,可以改变或修改图14和图15a至图15d的示例以确定不用于运动估计的候选块的相对位置。

例如,在图15a的递归中,可以排除(或者可以不选择)与候选块sc41和tc31相对应的相对位置,使得不选择候选块sc41和tc31,并且可以选择与候选块sc11、sc21、sc31、tc41、tc51和tc61相对应的相对位置,使得选择候选块sc11、sc21、sc31、tc41、tc51和tc61。为了简洁起见,下面将省略与图15b至图15d的递归相关联的描述。

图16是示出根据一些示例实施例的在运动估计中选择一些候选块的示例的概念图。

例如,对于构成图像的块的每次递归,可以交替地选择(或者可以交替地不选择)候选块sc1至sc4和tc3至tc6,并且可以交替地选择(或者可以交替地不选择)候选块sc5、sc6、tc1和tc2。

如参考图11至图16所描述的,可以不同地确定所选择的相对位置和不选择的相对位置以适于运动估计。然而,本公开不限于参考图11至图16描述的方式,示例实施例可以以各种方式选择一些候选块以减少为运动估计而参考的候选块的数量。

图17是描述根据一些示例实施例的参考候选块的计数的图表。

在一些示例实施例中,对于构成图像的块的每次递归,运动估计可以不同地选择与候选块相对应的相对位置,使得在对构成图像的块的所有递归期间选择与所有候选块相对应的所有相对位置的计数是等同的(因此,使得在对构成图像的块的所有递归期间选择所有候选块的计数是等同的)。

在这些示例实施例中,对于构成图像的块的每次递归,运动估计可以不同地选择一些候选块,因此可以不同地确定要使用的候选块。为此,运动估计可以从所有相对位置中交替地选择与在对构成图像的块的每次递归中使用的候选块相对应的相对位置。

这里,“等同的”或“等同”可以表示“精确地相同或一致”。在某些情况下,“等同的”或“等同”可以包括“基本上相同或一致,在允许或可忽略的误差范围内有微小差异”。

图17示出了关于图13的示例,在对构成图像的块的所有递归期间使用候选块sc1至sc6和tc1至tc6的计数。关于图13的示例,候选块sc5、sc6、tc1和tc2可以被用于对构成图像的块的所有递归。例如,使用候选块sc5、sc6、tc1和tc2中的每一个的计数可以是“c1”。

同时,关于图13的示例,可以交替地选择候选块sc1和sc3,并且可以交替地选择候选块sc2和sc4。在这种情况下,使用候选块sc1和sc3中的每一个的计数可以是“c1/2”。在一些情况下,使用候选块sc2和sc4中的每一个的计数可以是大约“c1/2”,有微小差别。

另外,可以交替地选择候选块tc4和tc6,并且使用候选块tc4和tc6中的每一个的计数可以是“c1/2”。可以交替地选择候选块tc3和tc5,并且使用候选块tc3和tc5中的每一个的计数可以是大约“c1/2”,有微小差别。

以相同的观点,可以理解,对于构成图像的块的每次递归,运动估计不同地选择相对位置,使得在所有递归期间排除所有相对位置的计数是等同的。

在一些示例实施例中,可以按顺序选定所选择的相对位置和/或不选择的相对位置。例如,关于图13的示例,可以按顺序交替地选择候选块sc1和sc3。在这种情况下,在对构成图像的块的所有递归期间选择(或不选择)与候选块sc1和sc3相对应的相对位置的计数可以变得等同。

在一些示例实施例中,可以以伪随机方式选定所选择的相对位置和/或不选择的相对位置。例如,关于图13的示例,可以以伪随机方式选定从候选块sc2和sc4中选择的候选块。在这种情况下,可能出现微小误差,但是在对构成图像的块的所有递归期间选择(或不选择)与候选块sc2和sc4相对应的相对位置的计数可以变得几乎等同。

例如,等同地使用交替选择的候选块可能与运动估计的准确度相关联。例如,当使用与特定相对位置相对应的候选块的计数大于使用其他候选块的计数时,可能难以准确地估计从较少参考的候选块朝向当前块的运动。即使用于运动估计的候选块的数量减少,如果等同地使用交替选择的候选块,则运动估计的准确度可能不降低,或者运动估计的准确度的降低可以被最小化。

图18是示出根据一些示例实施例的用于执行运动估计的电子电路的示例配置的框图。图19是描述根据一些示例实施例的用于执行运动估计的示例操作的流程图。

参考图18,在一些示例实施例中,电子电路2000可以包括块确定器2100、候选选择器2300、相似度计算器2500、全搜索操作器2700和运动矢量生成器2900。块确定器2100、候选选择器2300、相似度计算器2500、全搜索操作器2700和运动矢量生成器2900可以被实现为被配置成执行本公开中描述的操作的硬件电路。

另外或可替代地,块确定器2100、候选选择器2300、相似度计算器2500、全搜索操作器2700和运动矢量生成器2900可以被实现为软件模块。当一个或更多个处理器(例如,主处理器1800、用于电子电路2000的单独的处理器2005等)执行指令时,可以引起块确定器2100、候选选择器2300、相似度计算器2500、全搜索操作器2700和运动矢量生成器2900的操作。

块确定器2100可以基于图像数据dat1确定当前块和候选块(图19中的s210和s220),该确定可以与参考图4中的操作s110和操作s120以及图5a和图5b描述的确定基本相同或相似。

候选选择器2300可以选择由块确定器2100确定的候选块中的一些(图19中的s225),该选择可以与参考图11至图17描述的选择基本相同或相似。例如,候选选择器2300可以根据选择规则选择一些候选块。例如,选择规则可以包括按顺序、伪随机方式等,但是本公开不限于此。

相似度计算器2500可以基于图像数据dat1,计算由块确定器2100确定的当前块与由候选选择器2300选择的候选块的候选运动矢量指示的每个参考补丁之间的相似度(图19中的s230),该计算可以与参考图4中的操作s130和图6描述的计算基本相同或相似。

相似度计算器2500可以基于最大相似度,确定由最佳候选运动矢量指示的一个参考补丁(图19中的s240),该确定可以与参考图4中的操作s140描述的确定基本相同或相似。

全搜索操作器2700可以对围绕由相似度计算器2500确定的一个参考补丁的搜索区域执行全搜索(图19中的s250),该搜索可以与参考图4中的操作s150以及图7和图8a至图8c描述的搜索基本相同或相似。

运动矢量生成器2900可以通过基于全搜索操作器2700的全搜索的结果确定搜索区域内的最终参考补丁,确定最终运动矢量(图19中的s260),该确定可以与参考图4中的操作s160以及图7和图8a至图8c描述的确定基本相同或相似。

运动矢量生成器2900可以基于最终运动矢量而生成当前块的运动矢量mv。运动矢量mv的数据可以作为运动估计数据dat2存储在缓冲存储器1400和/或非易失性存储器1500中。可以参考运动估计数据dat2来执行isp1130、frc1730、codec1830和/或另一组件的功能或操作。

上面已经描述了选择一些候选块然后使用所选择的候选块。然而,在一些示例实施例中,可以对电子电路2000进行改变或修改,以选择与要使用的候选块相对应的相对位置,然后仅确定与所选择的相对位置相对应的候选块。在这种情况下,可以适当地改变或修改块确定器2100和候选选择器2300的配置和操作。

当还没有关于构成当前帧的图像的所有块生成运动矢量时(图19中的操作s270的结果为“否”),可以对未生成运动矢量的块执行操作s210至操作s260。为此,块确定器2100可以重新确定当前块,使得在当前帧的图像上的当前位置移动以对应于未生成运动矢量的块。在生成了构成当前帧的图像的所有块的运动矢量之后(图19中的操作s270的结果为“是”),可以完成对构成图像的块的递归。

如本领域中的传统做法,可以按照执行所描述的功能的块来描述和说明实施例。这些块(这里可称为单元或模块等)由模拟和/或数字电路(例如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子组件、有源电子组件、光学组件、硬连线电路等)在物理上实现,并且可以由固件和/或软件可选地驱动。例如,电路可以体现在一个或更多个半导体芯片中,或者体现在例如印刷电路板等的基板支撑件上。构成块的电路可以由专用硬件实现,或者由处理器(例如,一个或更多个被编程的微处理器和相关电路)实现,或者由执行块的一些功能的专用硬件和执行块的其他功能的处理器的组合实现。在不脱离本公开的范围的情况下,实施例中的每个块可以在物理上被分成两个或更多个交互和离散的块。同样地,在不脱离本公开的范围的情况下,可以将实施例中的多个块物理地组合成更复杂的块。

以上描述旨在提供用于实现本公开的示例配置和操作。除了上述示例实施例之外,本公开还可以包括可以通过简单地改变或修改上述示例实施例而获得的实施方式。而且,本公开可以包括将来通过容易地改变或修改上述示例实施例而可能实现的实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1