摄像装置、记录装置和显示控制装置的制作方法

文档序号:22400834发布日期:2020-09-29 18:13阅读:497来源:国知局
摄像装置、记录装置和显示控制装置的制作方法

本发明涉及摄像装置、记录装置和显示控制装置。



背景技术:

已知有用作用于对图像数据进行压缩编码的图像处理装置的摄像装置。该图像处理装置通过使用摄像单元来获取运动图像信号,对所获取到的运动图像信号进行压缩编码,并将压缩编码后的图像文件记录在记录介质上。根据现有技术,压缩编码前的图像数据已通过将亮度水平限制到100尼特(nit)的sdr(标准动态范围)来表示。然而,近年来,图像数据已通过扩展亮度水平直至约10000尼特的hdr(高动态范围)来表示。因而,提供了亮度范围接近人类的可感知亮度范围的图像数据。

专利文献1描述了如下的图像数据记录装置,该图像数据记录装置在拍摄到并记录hdr图像时,生成并记录使得即使非hdr装置也能够参考hdr图像的详情的图像数据。

现有技术文献

专利文献

专利文献1:日本特开2017-139618



技术实现要素:

发明要解决的问题

尽管专利文献1描述了记录hdr图像,但专利文献1没有提到用于记录hdr图像的最佳方法。

因此,本发明提供如下的装置,该装置用于在记录诸如hdr图像等的数据量大的图像时,将该图像以适合于记录和重放的记录形式记录。此外,本发明提供用于重放以该记录形式记录的图像的显示控制装置。

用于解决问题的方案

为了解决上述问题,提供一种摄像装置,用于记录通过摄像所获得的高动态范围图像数据即hdr图像数据。所述摄像装置包括:图像传感器;编码部件,用于对通过利用所述图像传感器拍摄图像所获得的hdr图像数据进行编码;以及记录控制部件,用于将所述图像传感器所拍摄到的hdr图像数据中的、与要编码的编码区域相对应的部分分割成多个分割hdr图像数据,通过使用所述编码部件来对所述多个分割hdr图像数据中的各分割hdr图像数据进行编码,并且将编码后的多个分割hdr图像数据以预定记录格式记录在记录介质上。

此外,根据本发明的一种记录装置,包括:编码部件,用于对通过摄像所获得的hdr图像数据进行编码;以及记录控制部件,用于进行控制,以将通过利用图像传感器的摄像所获得的图像数据分割成多个分割图像数据,通过使用所述编码部件来对所述多个分割图像数据中的各分割图像数据进行编码,并将编码后的多个分割图像数据记录在具有预定格式的图像文件中。所述记录控制部件进行控制,以将用于在所述多个分割图像数据被分割之前将所述多个分割图像数据组合成图像的覆盖信息作为图像项记录在所述图像文件中。

此外,根据本发明的一种显示控制装置,包括:读出部件,用于从记录介质读取通过将要编码的编码区域的hdr图像数据分割成多个分割hdr图像数据所生成的hdr图像文件,通过使用编码部件来对所述多个分割hdr图像数据中的各分割hdr图像数据进行编码,并将所述多个分割hdr图像数据以预定记录格式作为所述hdr图像文件记录在所述记录介质上;组合部件,用于组合所读出的hdr文件中所包括的多个分割hdr图像数据;以及显示控制部件,用于进行控制,以将解码部件解码后的多个hdr图像数据各自组合,并将组合后的hdr图像数据作为一个hdr图像数据显示在显示部件上。

发明的效果

根据本发明,可以提供如下的摄像装置,该摄像装置用于在记录数据量大和分辨率高的图像时,将该图像以适合于记录和重放的记录形式记录。另外,可以提供用于重放以该记录形式记录的图像的显示控制装置。

附图说明

图1是示出摄像装置100的结构的框图。

图2是heif文件的结构的图。

图3是示出在hdr摄像模式下进行的处理的流程图。

图4是示出用于确定hdr摄像模式中的用于对图像数据进行分割的方法的处理的流程图。

图5a是示出在记录hdr图像数据时的图像数据的编码区域以及分割方法的图。

图5b是示出在记录hdr图像数据时的图像数据的编码区域以及分割方法的图。

图5c是示出在记录hdr图像数据时的图像数据的编码区域以及分割方法的图。

图5d是示出在记录hdr图像数据时的图像数据的编码区域以及分割方法的图。

图5e是示出在记录hdr图像数据时的图像数据的编码区域以及分割方法的图。

图6是示出用于生成heif文件的处理的流程图。

图7是示出在重放记录为heif文件的hdr图像数据时进行的显示处理的流程图。

图8是示出覆盖图像生成处理的流程图。

图9是示出图像项的属性获取处理的流程图。

图10是示出图像项的数据获取处理的流程图。

图11是示出针对构成主图像的图像的项id获取处理的流程图。

图12是示出针对一个图像项的图像生成处理的流程图。

图13是示出覆盖图像和分割图像之间的位置关系的图。

具体实施方式

以下将参考附图并以摄像装置100作为示例来详细说明本发明的实施例。注意,本发明不限于以下实施例。

<摄像装置的结构>

图1是示出摄像装置100的框图。如图1所示,摄像装置100包括cpu101、存储器102、非易失性存储器103、操作单元104、摄像单元112、图像处理单元113、编码处理单元114、显示控制单元115和显示单元116。此外,摄像装置100还包括通信控制单元117、通信单元118、记录介质控制单元119和内部总线130。摄像装置100通过使用摄像镜头111在摄像单元112的像素阵列上形成被摄体的光学图像。摄像镜头111可以是从摄像装置100的本体(壳体或主体)可移除的或不可移除的。另外,摄像装置100经由记录介质控制单元119相对于记录介质120写入和读取图像数据。记录介质120可以是从摄像装置100可移除的或不可移除的。

cpu101是一个或多个处理器。cpu101执行非易失性存储器103中所存储的计算机程序,以经由内部总线130控制摄像装置100的各个单元(各个功能块)所进行的操作。

存储器102是可重写的易失性存储器。存储器102临时记录用于控制摄像装置100的各单元所进行的操作的计算机程序、诸如与摄像装置100的各单元所进行的操作有关的参数等的信息、以及通信控制单元117所接收到的信息等。另外,存储器102临时记录例如摄像单元112所获取到的图像、以及图像处理单元113和编码处理单元114等处理后的图像和信息。存储器102具有足以临时记录这些图像和信息的存储容量。

非易失性存储器103是电可擦除且可记录的存储器。例如,eeprom用作非易失性存储器103。非易失性存储器103存储用于控制摄像装置100的各单元所进行的操作的计算机程序、以及诸如与摄像装置100的各单元所进行的操作有关的参数等的信息。通过计算机程序提供摄像装置100所进行的各种操作。

操作单元104提供用于操作摄像装置100的用户界面。操作单元104包括诸如电源按钮、菜单按钮和拍摄按钮等的各种按钮。各个按钮均包括开关和触摸面板等。cpu101根据经由操作单元104所输入的用户指示来控制摄像装置100。注意,尽管这里描述了cpu101基于经由操作单元104所输入的操作来控制摄像装置100的情况作为示例,但本发明不限于此。例如,cpu101可以基于经由通信单元118从远程控制器(未示出)或移动终端(未示出)等输入的请求来控制摄像装置100。

摄像镜头(镜头单元)111包括例如包含变焦透镜和调焦透镜的透镜组(未示出)、镜头控制器(未示出)、以及光阑(未示出)等。摄像镜头111可用作用于改变视角的变焦部件。镜头控制器基于从cpu101发送来的控制信号来调整焦点并控制光圈值(f值)。摄像单元112可用作用于顺次获取形成运动图像的多个图像的获取部件。作为摄像单元112,例如,使用利用例如ccd(电荷耦合器件)或cmos(互补金属氧化物半导体)器件的面型图像传感器。摄像单元112具有像素阵列(未示出),在该像素阵列中,用于将被摄体的光学图像转换成电信号的光电转换单元(未示出)布置成阵列、即二维地布置。利用摄像镜头111在像素阵列上形成被摄体的光学图像。摄像单元112将所拍摄到的图像输出至图像处理单元113或存储器102。注意,摄像单元112可以获取静止图像。

图像处理单元113对从摄像单元112输出的图像数据或从存储器102读取的图像数据进行预定的图像处理。图像处理的示例包括插值处理、缩小处理(调整大小处理)和颜色转换处理。此外,图像处理单元113通过使用摄像单元112所获取到的图像数据来进行曝光控制和测距控制等所用的预定算术处理。cpu101基于经由图像处理单元113所进行的计算处理而获得的计算结果,来进行曝光控制和测距控制等。更具体地,cpu101进行ae(自动曝光)处理、awb(自动白平衡)处理和af(自动调焦)处理等。

编码处理单元114通过对图像数据进行帧内预测编码(图片内预测编码)和帧间预测编码(画面间预测编码)等来对图像数据的大小进行压缩。编码处理单元114例如是包括半导体元件等的编码装置。编码处理单元114可以是设置在摄像装置100的外部的编码装置。编码处理单元114基于例如h.265(ituh.265或iso/iec23008-2)标准来进行编码处理。

显示控制单元115控制显示单元116。显示单元116包括显示画面(未示出)。显示控制单元115对图像数据进行调整大小处理和颜色转换处理等以生成可以在显示单元116的显示画面上显示的图像,并且将该图像(即,图像信号)输出至显示单元116。显示单元116基于从显示控制单元115发送来的图像信号来在显示画面上显示图像。显示单元116具有作为在显示画面上显示诸如菜单画面等的设置画面的功能的osd(屏幕显示)功能。显示控制单元115可以将osd图像叠加在图像信号上,并将该图像信号输出至显示单元116。显示单元116包括液晶显示器或有机el显示器等。显示单元116显示从显示控制单元115发送来的图像信号。显示单元116例如可以是触摸面板。如果显示单元116是触摸面板,则显示单元116也可用作操作单元104。

通信控制单元117由cpu101控制。通信控制单元117生成符合由ieee802.11等预先确定的无线通信标准的调制信号,并将该调制信号输出至通信单元118。另外,通信控制单元117经由通信单元118接收符合无线通信标准的调制信号,对所接收到的调制信号进行解码,并将与解码后的信号相对应的信号输出至cpu101。通信控制单元117包括用于存储通信设置的寄存器。通信控制单元117可以在cpu101的控制下调整通信期间的发送/接收灵敏度。通信控制单元117可以基于预定调制技术来进行发送/接收。通信单元118包括天线,该天线将从通信控制单元117供给的调制信号输出至位于摄像装置100外部的诸如信息通信装置等的外部装置127,并且接收来自外部装置127的调制信号。此外,通信单元118包括通信电路等。注意,尽管已经描述了通信单元118进行无线通信的情况作为示例,但通信单元118所进行的通信不限于无线通信。例如,通信单元118和外部装置127可以通过配线等彼此电连接。

记录介质控制单元119控制记录介质120。记录介质控制单元119基于来自cpu101的请求来将用于控制记录介质120的控制信号输出至记录介质120。作为记录介质120,例如,使用非易失性存储器或磁盘。如上所述,记录介质120可以是可移除的或不可移除的。记录介质120记录编码后的图像数据等。将图像数据等以适合于记录介质120的文件系统的格式存储为文件。文件的示例包括mp4文件(iso/iec14496-14:2003)和mxf(素材交换格式)文件等。功能块101~104、112~115、117和119经由内部总线130彼此可访问。

以下说明根据本实施例的摄像装置100所进行的正常操作。

在摄像装置100中,在用户操作操作单元104的电源按钮时,操作单元104向cpu101发出启动指示。响应于该指示,cpu101控制电源单元(未示出)以向摄像装置100的各个块供给电力。在供给电力时,例如,cpu101基于来自操作单元102的指示信号来判断操作单元104的模式切换开关当前处于哪个模式(例如,静止图像拍摄模式还是重放模式)。

在正常的静止图像拍摄模式下,当用户在摄像待机状态下操作操作单元104的静止图像记录按钮时,摄像装置100进行摄像处理。在摄像处理中,图像处理单元113对摄像单元112所拍摄到的静止图像的图像数据进行图像处理,编码处理单元114对该图像数据进行编码处理,并且记录介质控制单元119将编码后的图像数据作为图像文件记录到记录介质120上。注意,在摄像待机状态下,摄像单元112以预定帧频拍摄图像,图像处理单元进行显示所用的图像处理,并且显示控制单元115将这些图像显示在显示单元116上以显示实时取景图像。

在重放模式下,记录介质控制单元119读取记录介质120上所记录的图像文件,并且编码处理单元114对所读取的图像文件的图像数据进行解码。也就是说,编码处理单元114还具有解码器功能。之后,图像处理单元113进行显示所用的处理,并且显示控制单元115指示显示单元116显示图像。

尽管如上所述执行正常静止图像拍摄和重放,但根据本实施例的摄像装置具有用于不仅拍摄正常静止图像而且还拍摄hdr静止图像的hdr摄像模式。另外,摄像装置可以重放所拍摄到的hdr静止图像。

以下说明用于拍摄并重放hdr静止图像的处理。

<文件结构>

首先说明在记录hdr静止图像时使用的文件结构。

最近,开发了被称为高效率图像文件格式(以下简称“heif”)的静止图像文件格式(iso/iec23008-12:2017)。

与现有静止图像文件格式(诸如jpeg格式等)相比,该文件格式具有以下特征:

-该文件格式符合iso基媒体文件格式(以下称为isobmff)(iso/iec14496-14:2003)。

-该文件格式可以存储多个静止图像以及单个静止图像。

-该文件格式可以存储以用于压缩运动图像的压缩格式(诸如hevc/h.265或avc/h.264等)压缩的静止图像。

根据本实施例,对于hdr静止图像记录文件,采用heif。

首先说明以heif存储的数据。

heif管理要以项为单位存储的各个数据。

各项除了具有数据本身之外,还具有在文件中唯一的整数值项id(item_id)和表示项的类型的项类型(item_type)。

项分为两组:具有表示图像的数据的图像项和具有表示元数据的数据的元数据项。

这些图像项包括具有作为编码后的图像数据的数据的编码图像项、以及表示作为操作一个或多个其它图像项的结果所获得的图像的导出图像项。

导出图像项的示例是作为采用覆盖格式的导出图像项的覆盖图像。这是作为通过使用图像覆盖(imageoverlay)结构体(覆盖信息)在任意位置布置任意数量的图像项并组合这些图像项的结果所获得的覆盖图像。根据本实施例,对于导出图像项使用覆盖格式。然而,可以使用网格格式。在这种情况下,代替记录图像覆盖结构体,将用作导出图像项的图像网格(imagegrid)结构体以及多个图像项记录在hief文件中。网格格式与覆盖格式相比具有更多的约束,并且所有的图像项必须是相同大小的图像。此外,在网格格式中,不能将图像项布置在任意位置,并且重放多个图像以预定网格顺序布置的图像。

作为元数据项的示例,可以存储exif数据。

如上所述,heif可以存储多个图像项。

如果在多个图像之间存在关系,则可以描述该关系。

多个图像之间的关系的示例包括导出图像项与构成导出图像项的图像项之间的关系、以及主图像与缩略图图像之间的关系。

另外,可以以同样的方式描述图像项和元数据项之间的关系。

heif格式符合isobmff格式。由于该原因,首先简要介绍isobmff。

根据isobmff格式,用称为框(box)的结构来管理数据。

该框是以4字节的数据长度字段和4字节的数据类型字段开始、之后是具有任意长度的数据的数据结构。

数据部的结构由数据类型确定。isobmff规范和heif规范定义了多个数据类型以及各个数据类型的数据部的结构。

另外,框可以在数据中具有另一框。也就是说,框可以是嵌套的。在这种情况下,嵌套在特定框的数据部中的框被称为“子框”。

并非子框的框被称为“文件级框”,其是可以从文件的开头顺次访问的框。

以下参考图2来说明采用heif格式的文件。

首先说明文件级框。

数据类型为“ftyp”的文件类型框存储与文件的兼容性有关的信息。符合isobmff的文件规范通过使用被称为brand(类别)的4字节代码来声明由该规范定义的文件结构和文件中所存储的数据,并且将该brand存储在文件类型框中。通过将文件类型框放置在文件的开头,文件读取器可以通过检查文件类型框的内容、而无需进一步读取和解释文件的内容,来识别文件的结构。

根据heif规范,文件结构由brand“mif1”表示。另外,如果要存储的编码图像数据是hevc压缩的数据,则根据hevc压缩配置文件,文件结构由brand“heic”或“heix”表示。

数据类型为“meta”的元数据框存储各种子框,并且存储与各项有关的数据。以下详细说明这些数据。

数据类型为“mdat”的媒体数据框存储各项的数据。例如,该数据是编码图像项的编码图像数据、或者元数据项的exif数据等。

以下说明元数据框的子框。

数据类型为“hdlr”的处理程序框存储表示元数据框所管理的数据的类型的信息。根据heif规范,处理程序框的handler_type是“pict”。

数据类型为“dinf”的数据信息框指定存在该文件的对象数据的文件。在isobmff中,可以将给定文件的对象数据存储在除该文件以外的文件中。在这种情况下,将表示内部具有数据的文件的url的数据条目url框存储在数据信息框中的数据引用中。如果对象数据存在于同一文件中,则存储仅具有表示该信息的标志的数据条目url框。

数据类型为“pitm”的主要项框存储表示主图像的图像项的项id。

数据类型为“iinf”的项信息框是用于存储以下所述的项信息条目的框。

数据类型为“infe”的项信息条目存储各项的项id、项类型和标志。

作为通过对编码图像数据进行hevc压缩所获得的数据的图像项的项类型是“hvc1”,其是图像项。

采用覆盖格式的导出图像项(即,图像覆盖结构体(覆盖信息))的项类型是“iovl”,其被分类为图像项。

采用exif格式的元数据项的项类型是“exif”,其是元数据项。

此外,如果设置了图像项的标志字段的最低有效位,则可以将图像项指定为隐藏图像。如果设置了该标志,则图像项不会被视为在重放期间要显示的项,因而图像项被隐藏。

数据类型为“iref”的项参考框采用参考关系的类型、参考项的项id、以及一个或多个被参考项的项id的形式存储项之间的参考关系。

在具有覆盖格式的导出图像项的情况下,参考关系类型被设置为“dimg”,参考项的项id被设置为导出图像项的项id,并且被参考项的项id被设置为构成覆盖的各个图像项的项id。

在缩略图图像的情况下,参考关系的类型被设置为“thmb”,参考项的项id被设置为缩略图图像的项id,并且被参考项的项id被设置为主图像的项id。

数据类型为“iprp”的项属性框是用于存储项属性容器框和项属性关联框(以下说明这两者)的框。

数据类型为“ipco”的项属性容器框是用于存储各个属性数据的框的框。

各个图像项均可以具有表示图像的特性和属性的属性数据。

属性数据框包括以下。

解码器配置和初始化数据(解码器配置和初始化;在hevc的情况下,类型为“hvcc”)是用于解码器的初始化的数据。在该数据中存储有hevc参数集数据(视频参数集(videoparameterset)、序列参数集(sequenceparameterset)和图片参数集(pictureparameterset))。

图像空间幅度(类型为“ispe”)是图像大小(宽度、高度)。

颜色空间信息(颜色信息;类型为“colr”)是图像的颜色空间信息。

图像旋转信息(图像旋转;类型为“irot”)是旋转并显示图像时的旋转方向。

与图像有关的像素信息(类型为“pixi”)是表示构成图像的数据的位数的信息。

另外,根据本实施例,作为hdr元数据,将主显色量信息(主显示色量;类型为“mdcv”)和内容光度信息(内容光度信息;类型为“clli”)以属性数据框的形式存储。

尽管存在除上述属性以外的属性,但这里未说明这些属性。

数据类型为“ipma”的项属性关联框将各个项与属性之间的关联以项id以及所关联的属性的“ipco”中的索引的阵列的形式来存储。

数据类型为“idat”的项数据框是用于存储数据大小小的项数据的框。

关于采用覆盖格式的导出图像项的数据,可以将存储构成图像的位置信息等的图像覆盖结构体(覆盖信息)存储在“idat”中。覆盖信息的示例包括作为背景颜色信息的canvas_fill_value参数、以及用于指定在通过覆盖的最终合成之后的重放图像的大小的output_width参数和output_height参数。此外,覆盖信息的示例针对作为合成图像的元素的各图像,包括分别表示合成图像中的布置位置的水平位置坐标和垂直位置坐标的horizontal_offset参数和vertical_offset参数。通过使用覆盖信息中所包括的这些参数,可以重放多个图像布置在具有所指定的背景颜色和大小的单个图像内的给定位置处的合成图像。

数据类型为“iloc”的项位置框将各项的数据的位置信息以偏移基准(construction_method)、与偏移基准的偏移值和长度的形式存储。偏移基准是文件的开头或“idat”。

尽管在元数据框中存在除上述框以外的框,但这里不说明这些框。

图2示出两个编码图像项构成覆盖格式图像的结构。构成覆盖格式图像的编码图像项的数量不限于两个。随着构成覆盖格式图像的编码图像项的数量的增加,框和项的数量按照如下增加。

-将编码图像项的项信息条目添加到项信息框中。

-在项参考框的参考关系类型为“dimg”的参考项id中,编码图像项的项id的数量增加。

-项属性容器框中的解码器配置/初始化数据、图像空间范围等。

-将编码图像项和关联属性的索引的项添加到项属性关联框。

-将编码图像项的位置信息的项添加到项位置框。

-将编码图像数据添加到媒体数据框。

<hdr图像的拍摄>

以下说明摄像装置100为了拍摄并记录hdr图像所进行的处理。

最近,要记录的图像的宽度和高度不断增加。如果对大小过大的图像进行编码,则当利用其它装置对该图像进行解码时兼容性可能丢失,或者系统的规模可能增大。更具体地,根据本实施例,说明将h.265编码用于编码/解码的示例。h.265标准具有诸如档次(profile)和水平(level)等的参数,并且在图像编码方法改变或图像大小增大的情况下,这些参数改变。这些值是对图像进行解码以判断是否重放图像的装置所用的参数。在一些情况下,检查参数的装置判断为不能重放图像。本实施例说明如下的方法,该方法用于在记录图像大小大的图像的情况下,将该图像分割成多个图像显示区域,并且通过使用由heif标准所定义的覆盖技术来将这些图像显示区域的编码数据存储在heif文件中。通过以这种方式将图像分割成多个图像显示区域,各个图像显示区域的大小缩小,因而提高了与其它装置的重放兼容性。在以下的说明中,编码区域的一边的大小被设置为4096或更小。注意,编码格式可以不是h.265。另外,一边的大小可被设置为除4096以外的大小。

以下说明对编码区域的开始位置、编码区域的宽度/高度、重放区域的开始位置和重放区域的宽度/高度的对齐约束。通常,在对分割后的图像进行编码时,摄像装置对编码区域的垂直/水平编码开始对齐以及重放期间的重放宽度/高度对齐等存在硬件约束。也就是说,摄像装置需要计算一个或多个编码区域中的各编码区域的编码开始位置、重放区域的开始位置以及重放区域的宽度/高度,并对编码区域进行编码。由于摄像装置根据来自用户的指示而在多个图像大小之间切换并记录编码区域,因此摄像装置需要针对各个图像大小切换这些值。

在编码时,本实施例中所述的编码处理单元114具有开始位置在水平方向(以下称为“x方向”)上以64个像素为单位且在垂直方向(以下称为“y方向”)上以1个像素为单位给出的对齐约束。另外,编码处理单元114具有编码后的宽度和高度分别以32个像素为单位和以16个像素为单位给出的对齐约束。对重放区域的开始位置的对齐约束是开始位置是在x方向上以2个像素为单位且在y方向上以1个像素为单位给出的。另外,重放区域的宽度-高度对齐约束是宽度和高度分别是以2个像素为单位和以1个像素为单位给出的。尽管这里说明了对齐约束的示例,但通常,可以采用其它对齐约束。

以下参考图3来说明在hdr记录模式(hdr摄像模式)下在拍摄hdr图像数据时开始且在记录所拍摄到的hdr图像数据作为heif文件时结束的流程。在hdr模式中,摄像单元112和图像处理单元113进行用于通过使用色域bt.2020和pq伽马曲线来表现hdr颜色空间的处理。根据本实施例,未给出对hdr所用的记录的说明。

在s101中,cpu101判断用户是否按下了sw2。如果用户拍摄到被摄体的图像并且按下直到sw2为止(s101中为“是”),则cpu101检测到按下了sw2,并且处理进入s102。cpu101继续检测,直到按下sw2为止(s101中为“否”)。

在s102中,为了将基于由用户确定的视角所拍摄到的图像存储在heif文件中,cpu101确定编码区域在垂直方向和水平方向各自上被分割成多少个区域(分割数n),并确定如何对编码区域进行分割。将该确定的结果存储在存储器102中。以下参考图4来说明s102的处理。处理进入s103。

在s103中,cpu101初始化存储器102中的变量m,使得m=1。之后,处理进入s104。

在s104中,cpu101监视处理是否迭代了n次(在s102中确定的分割数n)。如果迭代次数达到分割数n(s104中为“是”),则处理进入s109。否则(s104中为“否”),处理进入s105。

在s105中,cpu101从上述存储器102读出与分割图像m的代码开始区域和重放区域有关的信息。处理进入s106。

在s106中,cpu101向编码处理单元114通知要对存储器102中所配置的整个图像的哪个区域进行编码,并且使得编码处理单元114对该区域进行编码。处理进入s107。

在s107中,cpu101将通过编码处理单元114所进行的编码而得到的代码数据和在编码时生成的关联信息临时存储在存储器102中。更具体地,在h.265的情况下,信息是需要稍后存储在heif文件中的诸如vps、sps和pps等的h.265标准信息。由于该信息与本实施例不直接相关,因此这里不说明该信息。h.265的vps、sps和pps是解码处理所需的各种信息,诸如代码数据大小、位深度、显示/非显示区域的指定、以及帧信息等。之后,处理进入s108。

在s108中,cpu101使变量m增加1。处理返回到s104。

在s109中,cpu101生成要存储在heif文件中的元数据。cpu101从例如摄像单元112、图像处理单元113和编码处理单元114提取重放所需的信息,并将所提取的信息作为元数据临时存储在存储器102中。更具体地,该信息是转换成exif格式的数据。由于exif数据的详情是众所周知的,因此在本实施例中未给出exif数据的说明。处理进入s110。

在s110中,cpu101对缩略图进行编码。图像处理单元113将存储器102中所存储的整个图像缩小为缩略图大小,并将该图像临时放置在存储器102中。cpu101指示编码处理单元114对放置在存储器102中的缩略图图像进行编码。此时,以满足上述的对齐约束的大小对缩略图进行编码。然而,对于编码区域和重放区域,可以采用不同的方法。也通过h.265对缩略图进行编码。处理进入s111。

在s111中,cpu101将作为编码处理单元114对缩略图进行编码的结果所获得的编码数据和在编码时生成的关联信息临时存储在存储器102中。与以上对s107的说明同样,关联信息是诸如vps、sps和pps等的h.265标准信息。之后,处理进入s112。

在s112中,cpu101已在先前步骤中将各种数据存储在存储器102中。cpu101将存储器102中所存储的数据按适当顺序组合以构建heif文件,并将该heif文件存储在存储器102中。以下参考图6来说明用于构建heif文件的流程。处理进入s113。

在s113中,cpu101指示记录介质控制单元119将存储器102中所存储的heif文件写入记录介质120。之后,处理返回到s101。

通过上述步骤,进行摄像操作,之后将heif文件记录在记录介质120上。

以下参考图4和图5a来说明上述s102中的分割方法的确定。在下文,将传感器图像区域的左上角定义为原点(0,0)。将坐标表示为(x,y),并且将宽度和高度分别表示为w和h。另外,将区域表示为[x,y,w,h],其中:(x,y)表示该区域的开始坐标,并且w和h分别表示该区域的宽度和高度。

在s121中,cpu101从存储器102获取在摄像时使用的记录模式。该记录模式表示由例如图像大小、图像宽高比和图像压缩比所确定的记录方法。用户选择这些记录模式其中之一并拍摄图像。例如,记录方法表示诸如l大小和3:2宽高比等的设置。由于摄像期间的视角根据记录模式而变化,因此cpu101确定摄像期间的视角。处理进入s122。

在s122中,cpu101获取传感器图像区域[0,0,h,v]中的重放图像的开始坐标位置(x0,y0)。之后,处理进入s123。

在s123中,从存储器102获取重放图像的区域[x0,y0,hp,vp]。之后,处理进入s124。

在s124中,cpu101需要进行编码,使得编码区域包括重放图像的区域。如上所述,代码开始位置的对齐在x方向上是基于64像素的对齐。由于该原因,如果进行编码使得编码区域包括重放图像的区域,则需要从位置(ex0,ey0)起进行编码。这样,获得了lex大小。如果lex偏移为0(s124中为“否”),则处理进入s126。然而,如果需要偏移(s124中为“是”),则处理进入s125。

在s125中,计算lex。如上所述,lex由重放图像区域和编码开始位置之间的对齐来确定。cpu101按照如下确定lex。也就是说,将x0除以作为水平编码开始位置的像素对齐的64个像素,并且将商乘以上述64个像素,以获得lex的值。由于计算是在不包括余数的情况下进行的,因此获得位于重放图像区域的开始位置的左侧的坐标。因此,获得了lex作为重放图像区域的x坐标与通过上述计算所获得的编码开始位置的x坐标之间的差。处理进入s126。

在s126中,计算重放图像的顶线的右端的最终位置的坐标。设(xn,y0)是最终位置的坐标。然后,通过将hp与x0相加来获得xn。处理进入s127。

在s127中,获得编码区域的右端,使得编码区域包括重放图像的右端。为了获得编码区域的右端w,需要对编码宽度的对齐约束。如上所述,存在各自均应是32个像素的倍数的对编码宽度和高度的约束。根据该约束与(xn,y0)之间的关系,cpu101计算在重放图像的右端的右侧是否需要rex偏移。如果需要rex(s127中为“是”),则处理进入s128。然而,如果不需要rex(s127中为“否”),则处理进入s129。

在s128中,cpu101在重放图像的右端坐标(xn,y0)的右侧添加rex以满足32个像素的对齐,并且获得编码结束位置(exn,ey0)。处理进入s129。

在s129中,cpu101获得显示区域的右下坐标。由于重放图像的大小是已知的,因此坐标为(xn,yn)。处理进入s130。

在s130中,cpu101获得编码区域的下端,使得编码区域包括重放图像的下端。为了获得编码区域的下端,需要对编码高度的对齐约束。如上所述,存在作为16个像素的倍数的对各个编码高度的约束。根据该约束与重放图像的右下坐标(xn,yn)之间的关系,cpu101计算在重放图像的下端下方是否需要vex偏移。如果需要vex(s130中为“是”),则处理进入s131。然而,如果不需要vex(s130中为“否”),则处理进入s132。

在s131中,根据上述约束与重放图像的右下坐标(xn,yn)之间的关系,cpu101计算vex并且获得编码区域的右下坐标(exn,eyn)。在计算vex时,将vex设置在从作为垂直方向上的编码开始位置的y0起的作为16个像素的倍数的位置处,使得编码区域包括yn。更具体地,假定y0=0,则将vp除以16个像素(编码高度对齐)以获得商和余数。必须确定编码区域以包括重放区域。因此,如果存在余数,则将商增加1,之后乘以上述16个像素。以这种方式,获得作为16个像素的倍数的eyn作为编码区域的下端的y坐标,使得编码区域包括vp。获得vex作为eyn和yn之间的差。注意,eyn是从yn向下偏移了vex的值,并且exn是在s128中已获得的值。处理进入s132。

在s132中,cpu101按照如下获得编码区域的大小hp'×vp'。也就是说,将基于对齐约束所获得的lex和rex与水平大小hp相加以获得hp'。另外,将基于对齐约束所获得的vex与垂直大小vp相加以获得vp'。从hp'和vp'可以获得编码区域的大小hp'×vp'。处理进入s133。

在s133中,cpu101判断要编码的水平大小hp'是否超过要分割的4096个像素。如果水平大小hp'超过4096个像素(s133中为“是”),则处理进入s134。然而,如果水平大小hp'不超过4096个像素(s133中为“否”),则处理进入s135。

在s134中,cpu101将要编码的水平大小hp'分割成两个或更多个区域,使得水平大小hp'为4096个像素或更少。例如,如果水平大小hp'为6000个像素,则对水平大小hp'进行二分割。如果水平大小hp'为9000个像素,则对水平大小hp'进行三分割。

在分割成两个区域的情况下,在满足与编码宽度有关的32像素对齐的大致中心位置处进行分割。如果未对水平大小进行均等分割,则进行分割,使得左分割图像具有更大的大小。另外,在分割成三个区域的情况下,如果未对水平大小进行均等分割,则将水平大小分割成分割区域a、b和c,使得分割区域a和b具有相同的大小,而分割区域c的大小略小于分割区域a或b的大小。此时,考虑到上述与编码宽度有关的对齐。即使在分割成三个或更多个区域的情况下,也通过相同的算法来确定进行分割的位置以及大小。处理进入s135。

在s135中,cpu101判断要编码的垂直大小vp'是否超过要分割的4096个像素。如果垂直大小vp'超过4096个像素(s135中为“是”),则处理进入s136。然而,如果垂直大小vp'不超过4096个像素(s135中为“否”),则处理结束。

在s136中,与s134同样,将vp'分割成多个分割区域,并且处理结束。

在图5b、5c、5d和5e中通过具体数值来说明s102中的分割示例。图5b至5e示出用于对图像数据进行分割的方法以及编码区域和重放区域之间的关系。

以下说明图5b。图5b示出如下的情况:将图像分割成左区域和右区域这两个区域,并且将lex、rex和vex分别添加到重放区域的左端、右端和下端。首先,就重放图像区域而言,区域[256+48,0,4864,3242]是摄像装置所要记录的最终图像的区域。重放图像区域的左上坐标是(256+48,0),其不是64个像素(上述编码的开始对齐)的倍数。因此,向坐标的左侧设置48个像素的lex,并且编码开始位置的左端是x=256的位置。随后,就重放区域的宽度而言,w=48+4864,其不是32个像素(编码宽度的对齐)的倍数。因此,为了满足与编码时的宽度有关的对齐约束,向重放图像区域的右端设置16个像素的rex。在对垂直方向进行同样计算时,vex=4个像素。由于该重放图像的大小在水平方向上超过4096,因此考虑到编码宽度的对齐,在大致中心位置对水平方向上的大小进行二分割。结果,针对分割图像1获得了编码区域[256,0,2496,3242+8],并且针对分割图像2获得了编码图像区域[256+2496,0,2432,3242+8]。

说明图5c。图5c示出如下的情况:将图像分割成左区域和右区域这两个区域,并且在重放区域的右端和下端分别设置rex和vex。重放图像区域的x位置被定义为x=0。因此,由于x位置与编码区域的64像素开始对齐一致,因此lex=0。以与上述相同的方式进行计算。结果,针对分割图像1获得了编码区域[0,0,2240,32456+8],并且针对分割图像2获得了编码图像区域[2240,0,2144,2456+8]。

说明图5d。图5d示出将图像分割成左区域和右区域这两个区域的情况。在重放区域的左端和右端分别设置lex和rex。重放图像区域的垂直大小h为3648,其是16个像素(对编码时的图像高度的约束)的倍数,因而vex=0。以与上述相同的方式进行计算。结果,针对分割图像1获得了编码区域[256+48,0,2240,3648],并且针对分割图像2获得了编码图像区域[256+2240,0,2144,3648]。

说明图5d。图5d示出如下的情况:将图像分割成四个区域(2×2个区域),并且在重放区域的左端和右端分别设置lex和rex。在这种情况下,由于编码区域在垂直方向和水平方向各自上超过4096,因此进行分割以形成2×2个区域。以与上述相同的方式进行计算。结果,针对分割图像1获得了编码区域[0,0,4032,3008],针对分割图像2获得了编码图像区域[4032,0,4032,3008],针对分割图像3获得了编码图像区域[0,3008,4032,2902],并且针对分割图像4获得了编码图像区域[4032,3008,4032,2902]。

这样,cpu101需要根据记录模式来确定重放图像的区域,并且针对各个区域计算分割区域。作为另一方法,可以预先进行这些计算,并且可以将结果存储在存储器102中。cpu101可以从存储器102读取与同记录模式相对应的分割区域和重放区域有关的信息,并且设置编码处理单元114的设置。

在如本实施例那样、将拍摄图像分割成多个分割图像并进行记录的情况下,需要组合多个显示区域以从所记录的图像恢复拍摄图像。在生成合成图像时,由于不需要额外的数据编码处理和记录处理,因此如果在分割图像之间不存在重叠区域,则更加高效。由于该原因,根据本实施例,确定各个重放区域和各个编码区域,使得在分割图像之间的边界处不存在重叠部分(无重叠区域)。然而,可以根据诸如硬件对齐约束等的条件来在分割图像之间设置重叠区域。

以下参考图6来说明s112中提到的用于构建heif文件的方法。由于heif文件具有图2所示的结构,因此cpu101从文件的开头起顺次在存储器102中构建文件。

在步骤s141中,生成“ftyp”框。该框是用于获知文件的兼容性的框,并且放置在文件的开头。cpu101将“heic”存储在框的主要brand中,并将“mif1”和“heic”存储在兼容brand中。根据本实施例,使用这些值。然而,可以使用其它值。处理进入s142。

在步骤s142中,生成“meta”框。该框是用于存储以下所述的多个框的框。cpu101生成该框,并且处理进入s143。

在s143中,生成要存储在“iinf”框中的“hdlr”框。该框描述以上所述的“meta”框的属性。cpu101将“pict”存储在该类型中,并且处理进入s144。注意,“pict”是表示元数据框所管理的数据的类型的信息。根据heif规范,将处理程序框的handler_type定义为“pict”。

在s144中,生成要存储在“iinf”框中的“dinf”框。该框表示作为该文件的对象的数据的位置。cpu101生成该框,并且处理进入s145。

在s145中,生成要存储在“iinf”框中的“pitm”框。该框存储表示主图像的图像项的项id。由于主图像是通过覆盖组合的覆盖图像,因此cpu101将覆盖信息项id存储为主图像的项id。处理进入s146。

在s146中,生成要存储在“meta”框中的“iinf”框。该框是用于管理项的列表的框。这里,在数据长度字段中设置初始值,并且在数据类型字段中存储“iinf”。之后,处理进入s147。

在s147中,生成要存储在“iinf”框中的“infe”框。“infe”框是用于登记与文件中所存储的各个项有关的项信息的框。针对各个项生成“infe”框。就分割图像而言,将各个分割图像作为一个项登记在该框中。另外,将用于从多个分割图像构建主图像的覆盖信息、exif信息和缩略图图像登记为个体项。此时,如上所述,将覆盖信息、分割图像和缩略图图像登记为图像项。可以将表示隐藏图像的标志添加到图像项。通过添加该标志,在重放期间不显示图像。也就是说,通过将隐藏的图像标志添加到图像项,可以指定在重放期间要隐藏的图像。因而,针对分割图像设置表示隐藏图像的标志,而针对覆盖信息项不设置该标志。以这种方式,将各个分割图像从要显示的图像中排除,并且仅通过基于覆盖信息的多个分割图像的覆盖合成而得到的图像变为要显示的图像。针对各个项生成“infe”框,并将该“infe”框存储在上述的“iinf”中。处理进入s148。

在s148中,生成要存储在“iinf”框中的“iref”框。该框存储表示通过覆盖所构建的图像(主图像)和构成该图像的分割图像之间的关系的信息。由于在上述的s102中确定了分割方法,因此cpu101基于所确定的分割方法来生成该框。处理进入s149。

在s149中,生成要存储在“iinf”框中的“iprp”框。该框是用于存储项的属性的框,并且是用于存储在s150中生成的“ipco”框和在s151中生成的“ipma”框的框。处理进入s150。

在s150中,生成要存储在“iprp”框中的“ipco”框。该框是项的属性容器框,并且存储各种属性。存在多个属性,并且cpu101生成以下所述的属性容器框,并将所生成的框存储在“ipco”框中。属性分为两组:针对各图像项生成的属性和针对多个图像项共同生成的属性。生成“colr”框,作为用作主图像的包括覆盖信息的覆盖图像与分割图像共同的信息。“colr”框存储诸如hdr伽马曲线等的颜色信息作为与主图像(覆盖图像)和分割图像有关的颜色空间信息。针对各个分割图像,生成“hvcc”框和“ispe”框。在上述的s107和s111中,cpu101读取在编码时生成的并存储在存储器102中的关联信息,并且生成属性容器框“hvcc”。“hvcc”中所存储的关联信息不仅包括对编码区域进行编码时使用的信息以及编码区域的大小(宽度和高度),而且还包括重放区域的大小(宽度和高度)以及重放区域在编码区域中的位置信息等。对关联信息进行golomb压缩并记录在属性容器框“hvcc”中。由于golomb压缩是众所周知的压缩方法,因此这里不说明golomb压缩。另外,将分割图像的重放区域的大小(宽度和高度)信息(例如,2240×2450)存储在“ispe”框中。生成用于存储表示用作主图像的覆盖图像的旋转的信息的“irot”框和表示图像数据的位数的“pixi”框。可以针对主图像(覆盖图像)和分割图像单独生成“pixi”框。然而,根据本实施例,由于覆盖图像和分割图像具有相同的位数、即10位,因此生成仅一个“pixi”框。另外,生成用于存储hdr互补信息的“clli”和“mdcv”框。此外,作为缩略图图像的属性,从主图像(覆盖图像)分别生成以下的框:存储颜色空间信息的“colr”框、存储编码时使用的信息的“hvcc”框和存储图像大小的“ispe”框、存储与图像数据的位数有关的信息的“pixi”框、以及存储hdr互补信息的“clli”框。生成这些属性容器框并将这些属性容器框存储在“ipco”框中。处理进入s151。

在步骤s151中,生成“ipma”框。该框是描述项和属性之间的关系的框,并且表示上述属性中的哪个属性与各个项有关。cpu101根据存储器102中所存储的各种数据来确定项和属性之间的关系,并生成该框。处理进入s152。

在步骤s152中,生成“idat”框。该框存储表示如何布置分割图像的重放区域以生成覆盖图像的覆盖信息。覆盖信息包括作为背景颜色信息的canvas_fill_value参数、以及表示整个覆盖图像的大小的output_width参数和output_height参数。覆盖信息针对作为合成元素的各个分割图像还包括分别表示用于组合分割图像的水平位置坐标和垂直位置坐标的horizontal_offset参数和vertical_offset参数。cpu101基于在s102中确定的分割方法来将这些信息写入参数。更具体地,cpu101将整个重放区域的大小写入表示覆盖图像的大小的output_width参数和output_height参数。之后,cpu101将从重放区域的左上角的开始坐标位置(x0,y0)起直到分割图像的左上位置为止测量到的宽度方向和高度方向上的偏移值分别写入表示各个分割图像的位置信息的horizontal_offset参数和vertical_offset参数。通过以这种方式生成覆盖信息、并且在重放图像时基于horizontal_offset参数和vertical_offset参数来布置和组合分割图像,可以重放分割之前的图像。根据本实施例,分割图像不具有重叠区域。因此,描述位置信息,使得分割图像以不会彼此重叠的方式布置。然后,通过指定通过组合分割图像所获得的图像中的、基于output_width参数和output_height参数所要显示的区域,仅可以重放(显示)该重放区域。cpu101生成存储以这种方式生成的覆盖信息的“idat”框。处理进入s153。

在步骤s153中,生成“iloc”框。该框是表示文件中的配置了各种数据中的各数据的位置的框。由于各种信息存储在存储器102中,因此该框是基于信息的大小所生成的。更具体地,表示覆盖的信息被存储在上述的“idat”中,并且“iloc”框中所存储的信息是“idat”内部的位置和大小信息。此外,缩略图数据和代码数据12被存储在“mdat”框中,并且“iloc”框中所存储的信息是位置和大小信息。处理进入s154。

在步骤s154中,生成“mdat”框。该框是包括以下所述的多个框的框。cpu101生成“mdat”框,并且处理进入s155。

在步骤s155中,将exif数据存储在“mdat”框中。由于在上述s109中将exif元数据存储在存储器102中,因此cpu101从存储器102读取exif,并将exif附加到“mdat”框。处理进入s156。

在s156中,将缩略图数据存储在“mdat”框中。由于在上述s110中将缩略图数据存储在存储器102中,因此cpu101从存储器102中读取缩略图数据,并将缩略图数据附加到“mdat”框。处理进入s157。

在s157中,将编码图像1的数据存储在“mdat”框中。由于在上述s106的第一次迭代中将分割图像1的数据存储在存储器102中,因此cpu101从存储器102读取数据并将数据附加到“mdat”框。重复该操作,直到编码图像n为止,使得所有的编码图像1~n都被附加到“mdat”框。通过这些步骤,cpu101构建heif文件。

通过上述处理,可以将hdr图像以图2所示的heif格式记录在记录介质120上。如上所述,在拍摄hdr图像时,根据本实施例的摄像装置100将所拍摄到的hdr图像分割成多个分割hdr图像,通过hevc对这些图像进行压缩编码,并将这些图像以heif格式记录。相比之下,在拍摄到sdr图像时,摄像装置100在无需对sdr图像进行分割的情况下对sdr图像进行jpeg压缩编码,并将该sdr图像以jpeg文件的形式记录。

<hdr图像的重放>

以下说明摄像装置100所进行的用于重放以heif格式记录在记录介质120上的hdr图像文件的处理。注意,参考摄像装置100重放hdr图像的情况来说明本实施例。然而,在图像处理装置重放以heif格式记录在记录介质120上的hdr图像的情况下,相同的处理可以由不具有摄像单元的图像处理装置进行。

参考图7来说明在主图像是覆盖图像的情况下进行的heif重放(显示)处理。

在步骤s701中,cpu101使用记录介质控制单元119将存在于记录介质120中的指定文件的开头部分读取到存储器102中。之后,cpu101检查在所读取的文件的开头部分中是否存在具有适当结构的文件类型框,并且进一步检查在文件类型框中的brand中是否存在表示heif的“mif1”。

可选地,如果记录了与独特文件结构相对应的brand,则cpu101检查该brand的存在。只要brand确保了特定结构,就可以通过检查brand来消除用于检查结构的一些后续步骤(例如,步骤s703和s704)。

在步骤s702中,cpu101将指定文件的元数据框从记录介质120读取到存储器102中。

在步骤s703中,cpu101在步骤s702中所读取的元数据框内搜索处理程序框并检查结构。在heif的情况下,处理程序类型必须为“pict”。

在步骤s704中,cpu101在步骤s702中所读取的元数据框内搜索数据信息框并检查结构。根据本实施例,由于假定数据存在于同一文件中,因此cpu101检查表示该信息的标志是否设置在数据条目url框中。

在步骤s705中,cpu101在步骤s702中所读取的元数据框内搜索主项框,并获取主图像的项id。

在步骤s706中,cpu101在步骤s702中所读取的元数据框内搜索项信息框,并获取与在步骤s705中获取到的主图像的项id相对应的项信息条目。在通过上述hdr摄像处理所记录的heif格式图像文件的情况下,覆盖信息被指定为主图像。也就是说,在与主图像的项id相对应的项信息条目中,项类型为“iovl”,其表示覆盖。

在步骤s707中,cpu101进行覆盖图像生成处理。以下参考图8来说明覆盖图像生成处理。

在步骤s708中,cpu101将步骤s707中所生成的覆盖图像经由显示控制单元115显示在显示单元116上。

注意,在显示所生成的覆盖图像时,可能需要指定图像的颜色空间信息。由于在图像的颜色空间信息中、色域由颜色空间属性“colr”的color_primaries指定并且(与伽马相对应的)传递特性由transfer_characteristics指定,因此使用这些值。作为hdr图像的示例,将rec.itu-rbt.2020用于色域,并且将itu-rbt.2100(pq)用于传递特性。

另外,如果在项属性容器框中存在诸如“mdcv”和“clli”等的hdr元数据,则可以使用hdr元数据。

以下参考图8来说明覆盖图像生成处理。

在步骤s801中,cpu101对覆盖图像进行属性获取处理。以下参考图9来说明该处理。

在步骤s802中,cpu101对覆盖图像进行覆盖信息获取处理。由于覆盖信息记录在“idat”框中,因此获取到“idat”框中所存储的数据。

覆盖信息包括覆盖图像的图像大小(output_width参数、output_height参数)、以及构成覆盖图像的各个图像项(分割图像项)的位置信息(horizontal_offset,vertical_offset)等。

覆盖信息被视为项类型为覆盖“iovl”的图像项的图像项数据。

以下参考图10来说明该获取处理。

在步骤s803中,cpu101对所有的分割图像项进行项id获取处理。以下参考图11说明该处理。

在步骤s804中,cpu101使用步骤s802中所获取到的覆盖信息中的覆盖图像大小来保留用于存储该大小的图像数据的存储器。该存储器区被称为“画布(canvas)”。

在步骤s805中,cpu101将分割图像计数器n初始化为0。

在步骤s806中,cpu101检查分割图像计数器n是否等于分割图像项的数量。如果这两者相等,则处理进入步骤s2210。然而,如果这两者不相等,则处理进入步骤s807。

在步骤s807中,cpu101对一个图像项(第n个分割图像项)进行图像生成处理。以下参考图12来说明该处理。

在步骤s808中,cpu101根据步骤s802中所获取的覆盖信息,来将步骤s807中所生成的第n个分割图像项的图像(分割图像)放置在步骤s804中所保留的画布上。

在覆盖中,构成覆盖的分割图像可以布置在画布上的任何位置,并且这些位置在覆盖信息中描述。然而,不显示覆盖图像的外侧。因此,在各个分割图像布置在画布上时,仅布置分割图像的编码区域中的与覆盖图像的区域重叠的区域(即,仅分割图像的重放区域)。

以下参考图13来说明该处理。

定义坐标系,使得覆盖图像的左上角为原点(0,0),x坐标沿右方向增加,并且y坐标沿下方向增加。

覆盖图像的大小包括宽度wo和高度ho(0<wo,0<ho)。

因此,覆盖图像的左上的坐标为(0,0),并且覆盖图像的右下角的坐标为(wo-1,ho-1)。

另外,分割图像的大小包括宽度wn和高度hn(0<wn,0<hn)。

设(xn,yn)表示分割图像的左上的位置。

然后,分割图像的左上坐标为(xn,yn),并且其右下坐标为(xn+wn-1,yn+hn-1)。

可以通过以下所述的方法来获得分割图像中的与覆盖图像(画布)的重叠区域。

在以下情况下,不存在重叠区域:

wo-1<xn(分割图像的左端位于覆盖图像的右端的右侧),

xn+wn-1<0(分割图像的右端位于覆盖图像的左端的左侧),

ho-1<yn(分割图像的上端低于覆盖图像的下端),以及

yn+hn-1<0(分割图像的下端高于覆盖图像的上端)。

在这些情况下,不对图像进行处理。

然而,在以下情况下,整个分割图像变为重叠区域:

0<=xn且(xn+wn-1)<=(wo-1)且0<=yn且(yn+hn-1)<=(ho-1)。

在这种情况下,将整个分割图像放置在画布上的指定位置(xn,yn)处。

在除上述情况以外的情况下,将布置分割图像的一部分。设(xl,yt)表示重叠区域的左上坐标,并且(xr,yb)表示重叠区域的右下坐标。然后,按照如下确定左端xl:

if(0<=xn)

xl=xn;

else

xl=0;

按照如下确定右端xr:

if(xn+wn-1<=wo-1)

xr=xn+wn-1;

else

xr=wo–1;

按照如下确定上端yt:

if(0<=yn)

yt=yn;

else

yt=0;

按照如下确定下端yb:

if(yn+hn-1<=ho-1)

yb=yn+hn-1;

else

yb=ho–1;

重叠区域的大小由宽度xr-xl+1和高度yb-yt+1来定义。

如上所述,重叠区域的左上坐标(xl,yt)和右下坐标(xr,yb)是由画布的左上被定义为原点(0,0)的坐标系定义的坐标。

重叠区域的左上坐标(x1,yt)由分割图像的左上被定义为原点的以下坐标系按照如下表示:

xl'=xl–xn;以及

yt'=yt–yn;

以下给出总结。

在与分割图像的左上相距距离(xl',yt')的位置处切出宽度为(xr-xl+1)且高度为(yb-yt+1)的矩形,并且将该矩形放置在画布上的位置(xl,yt)处。

以这种方式,可以将分割图像的重放区域放置在画布上的适当位置处。

在步骤s809中,cpu101使分割图像计数器n增加1,并且处理返回到步骤s806。

在步骤s810中,cpu101判断在步骤s801中获取到的覆盖图像的属性中是否存在旋转属性“irot”。如果存在旋转特性,cpu101检查旋转角度。然而,如果不存在旋转属性、或者如果存在旋转属性但旋转角度为0,则处理结束。如果存在旋转属性且旋转角度不是0,则处理进入步骤s811。

在步骤s811中,cpu101使步骤s806~s809中所生成的画布图像旋转了在步骤s810中获取到的角度,并将该图像视为生成图像。

以这种方式,生成了覆盖图像。

尽管以上说明是参考将步骤s806~s809的处理重复了与分割图像的数量相等的次数进行的,但可以在能够进行并行处理的环境中,将步骤s806~s809的处理并行进行与分割图像的数量相等的次数。

以下参考图9来说明图像项属性获取处理。

在步骤s901中,cpu101在元数据框内的项属性框中的项属性关联框中搜索指定图像项id的条目,并获取该条目中所存储的属性索引的阵列。

在步骤s902中,cpu101将阵列计数器n初始化为0。

在步骤s903中,cpu101检查阵列计数器n是否等于阵列元素的数量。如果这两者相等,则处理结束。然而,如果这两者不相等,则处理进入步骤s904。

在步骤s904中,cpu101从元数据框内的项属性框中的项属性容器框获取由阵列的第n个元素中的索引表示的属性。

在步骤s905中,cpu101使阵列计数器n增加1,并且处理返回步骤s903。

以下参考图10来说明图像项数据获取处理。

在步骤s1001中,cpu101在元数据框内的项位置框中搜索指定图像项id的条目,并且获取偏移基准(construction_method)、偏移和长度。

在步骤s1002中,cpu101检查在步骤s1001中获取到的偏移基准。值0的偏移基准表示与文件的开头的偏移,并且值1的偏移基准表示项数据框内的偏移。如果偏移基准为0,则处理进入步骤s1003。然而,如果偏移基准为1,则处理进入步骤s1004。

在步骤s1003中,cpu101将在数量上与从文件的开头偏移的字节位置起的长度相等的字节加载到存储器102中。

在步骤s1004中,cpu101将在数量上与从元数据框内的项数据框的数据部分的开头偏移的字节位置起的长度相等的字节加载到存储器102中。

以下参考图11来说明构成主图像的图像的项id获取处理。

在步骤s1101中,cpu101在元数据框内的项参考框中搜索参考类型为“ding”且参考项id与主图像的项id相同的条目。

在步骤s1102中,cpu101获取步骤s1101中所获取的条目中的被参考项id的阵列。

参考图12来说明针对一个编码图像项的图像生成处理。

在步骤s1201中,cpu101获取图像项的属性。已经参考图9说明了该步骤。

在步骤s1202中,cpu101获取图像项的数据。已经参考图10说明了该步骤。图像项的数据是编码图像数据。

在步骤s1203中,cpu101通过使用作为在步骤s1201中获取到的属性其中之一的解码器配置/初始化数据来对解码器进行初始化。

在步骤s1204中,cpu101利用解码器对在步骤s1202中获取到的编码图像数据进行解码并获取解码结果。

在步骤s1205中,cpu101检查是否需要像素格式转换。

如果不需要像素格式转换,则处理结束。然而,如果需要像素格式转换,则处理进入步骤s1206。

如果解码器的输出数据的像素格式和显示装置所支持的图像的像素格式不同,则需要像素格式转换。

例如,如果解码器的输出数据的像素格式为ycbcr(亮度-色差)格式,并且如果显示装置的图像的像素格式为rgb格式,则需要从ycbcr格式向rgb格式的像素格式转换。另外,即使在这两个格式是相同的ycbcr格式时,如果位深度(8位、10位等)或色差样本(4:2:0、4:2:2等)不同,则也需要进行像素格式转换。

注意,由于在颜色空间信息属性“colr”的matrix_coefficients中指定在将rgb格式转换成ycbcr格式时所使用的系数,因此可以使用系数的倒数来将ycbcr格式转换成rgb格式。

在步骤s1206中,cpu101将在步骤s1204中获取到的解码器输出数据转换成期望像素格式。

这样,可以生成所指定的编码图像项的图像。

通过上述处理,可以重放以图2所示的heif格式记录在记录介质120上的hdr图像。

其它实施例

尽管以上参考实施例说明了本发明,但本发明不限于此,并且在没有背离本发明的范围的范围内的各种实施例也包含在本发明中。本发明不限于上述实施例,并且可以在未背离本发明的精神和范围的情况下进行各种改变和修改。因此,添加了所附的权利要求书以公开本发明的范围。

此外,上述实施例的功能可被实现为控制方法,并且该控制方法可以由图像处理装置实现。可选地,具有上述实施例的功能的程序可被实现为控制程序,并且该控制程序可以由图像处理装置中所包括的计算机来执行。注意,该控制程序记录在例如计算机可读非易失性记录介质中。

可以将实现上述实施例的一个或多个功能的程序经由网络或记录介质供给至系统或装置,并且该系统或装置中的至少一个处理器可以读取并执行该程序。本发明可以通过这样的处理来实现。可选地,本发明可以由提供这些功能至少之一的电路(例如,asic)来实现。

本申请要求2018年2月16日提交的日本专利申请2018-026307的优先权,其全部内容通过引用而被包含于此。

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